My digital TV has a menu containing a guide to several days' worth
of forthcoming programmes on each channel. When I first bring up the
guide, there are lots of blanks in the schedule. Over the next few
minutes these gaps are gradually filled, seemingly at random. How does
this happen and what determines the order in which the holes in the
schedule are filled?
On a digital TV channel the guide data can be multiplexed into a sub channel on the MPEG carrier. In the normal course of events this does not need to be a very fast channels. When a TV starts up from cold it obviously needs to read this channel and store the information. I have no idea how it is decide which order to traansmit the data in. This data is being streamed so when you switch your TV on from cold it may start reading at any point in the stream. If your TV is left in "standby" or even switched off but with power connected, it should retain the guide information in memory and will only have to update any changes from the last time it was switched on.
Some TVs may have non-volatile memory and retain guide data when depowered, mine does not.
The answer is: software design and the notorious laziness of software engineers.
When I read a question like "Blank look" I wish I had "New Scientist" subscription, so I could cancel it!
Oh, I actually did cancel my subscription three years ago after reading a question about the relationship between shaving quality and the speed of an electric shaver...
I was taught that there is no such thing as a stupid question.
Admittedly, some questions deserve more attention than others, but to discourage an enquiring mind is a shameful thing. When my children ask me a question that seems stupid I try to answer it constructively by posing another question back to them.
It seems a bit drastic, to stop a subscription for a magazine based on
an editorial decision to choose one question that you consider
inappropriate.
Actually, this is probably a great example of the notorious intelligence and dedication of software engineers.
The specification for Electronic Program Guide probably looks like:
"You have to send down information for all programs for the next 168 hours for up to 200 stations. Any item can be superseded at the last moment because a program is rescheduled. All data must be in a standard format so it can be read by up to 1500 makes and models of box. Some of these boxes were designed ten years ago and have almost no memory capacity. All data is supplied and modified at random times by 200 different station owners, who are arbitrarily allocated to different multiplex frequencies. All data is subject to corruption by signal problems, so must have error correction. Oh, and by the way, you can only have 0.1% of the available bandwidth because the programs are more important. And the data flow is strictly one way - no box can ask you for what it wants, so you have to assume all boxes can start from a cold reboot at any time".
Seems to me that my EPG works rather better than I might have expected.
Actually, I don't understand how this works at all. Station channels (about 120 choices) are multiplexed onto digital channels (about twenty of them). Presumably the box can only tune to one multiplex frequency at a time. I can start my box from cold, watch one station on one multiplex, and call up an EPG for all stations on all multiplexes. How does it pick up the EPG data for the other multiplexes before I switch to a program on that multiplex?
Digital television is sent as a series of packets of information,
each containing a block of compressed video, audio or the TV programme
data your questioner mentions. These packets are interleaved to produce a
stream that can be picked up quickly after selecting the channel.
The amount of compressed data generated by audio and
particularly video varies: slowly changing scenes need less bandwidth
then fast-changing ones. So the TV programme data is chopped up and
transmitted when there is spare capacity left by the other data streams.
Since it is effectively transmitted one line at a time, it does not
have to be sent in any order.
The answer depends on the type of box you have to receive television
programmes. Free-to-air boxes are probably receive-only devices so
cannot request specific data. I suspect the whole schedule is broadcast
in repeated chunks and the box has to wait for the relevant data to be
received before showing it, similar to waiting for a page to come round
in the UK's teletext system.
With cable boxes, the transfer of data from a server to
your box takes time. If you had to wait for this information for every
page you wanted to skip before reaching your desired page of TV
programmes you would quickly get frustrated by how slow it is. To combat
this, when you move to a new page a request for that page's data is
sent in the background. If you are still viewing that page when the data
arrives it is displayed. If, however, you have moved to another page,
the data for the previous page is either discarded or cached locally in
case you go back. This is a technique called "lazy loading".
If you have a cable box and don't see all the programmes
on the page appear together then this suggests poor implementation,
probably because the code to update the display is inefficient.
For both box types the order in which the information
appears on the screen depends on the way the server's software is
written. The order that TV programme information is sent in the data
packets could be determined by factors such as the order in which it was
originally added to the database, or which data the database server has
previously cached to improve performance.
Two fine answers from Moderator, but I still have a hangup.
My DTB tuner picks up about 100 stations from multiplex channels numbered from about 21 to 68, and from at least 2 separate ground-based transmitter sites (Crystal Palace and West Berks, I think).
If I am watching, say, BBC4 on station 9, and put up the all-channel EPG at 20:58, then ALL the program details update around 21:00 as the program changes roll over, including ones on the other multiplexes and other transmitters. I still have live BBC4 in my picture-in-guide format.
Does that mean every multiplex carries program information for all other transmitters and multiplexes too? Or does it mean my digital box has a second tuner that cycles through all channels just pulling the EPG stuff?