The
ATSC receiver
The receiver operates an internal clock, kept synchronized by the segment
syncs. This clock tells the receiver when to expect the next trellis number.
When the time comes, the amplitude of the received signal is measured and
compared against the eight possible figures. The closest figure is passed
on to a trellis decoder, which retrieves the original two bytes.
A “de-interleaver” sorts the interleaved data into the original data packets. The data “payload” bytes are used to re-calculate the 20 FEC bytes, and the result is compared to what was received from the transmitter. If they match, the “payload” is sent on to the transport demultiplexer. If they don't match, first an attempt is made to use the FEC bytes to correct the error. (remember that up to 10 bytes of error can be corrected) If that fails, the receiver may search its memory for a packet with a similar set of FEC bytes, and pass that along. If the received data is far enough off, it will simply be discarded.
The receiver now has a series of 188-byte “transport stream packets”. Some of these are audio; some are video; some are the PSIP tables. Some could be other forms of data. Each of these packets has a protocol ID, or PID. This is a hexidecimal19 number that describes which datastream a particular packet is associated with. For example, WTVF-DT's PIDs:
|
Program |
Audio 1 |
Audio 2 |
Video |
|---|---|---|---|
|
Newschannel 5 HD |
0x0024 |
None |
0x0021 |
|
Newschannel 5+ |
0x0034 |
0x0035 |
0x0031 |
It's also transmitted at a fixed location within the packet. That allows a given process in the receiver to monitor each packet at the location of the PID, and ignore the packet if it's meant for a different datastream. In the above example, if you've told your TV you want to watch Newschannel 5+, it will ignore packets with PIDs 0x0021 and 0x0024. Only those with 0x0034, 0x0035, and 0x0031 will be passed on.
The Program Map Table (PMT) tells the receiver which PIDs are associated with which program, and what kind of packet they are. (audio 1, audio 2, video, etc.) Each stream of packets is routed to a decoder appropriate for the packet type.
Audio packets are passed to an AC-3 decoder. This decoder splits packets among the six possible audio channels. The stream for each channel is converted back to analog, amplified, and sent to the speakers.
Video packets go to a MPEG-2 decoder. A series of I, P, and B frames are decoded to a series of complete pictures20. Slices are split into macroblocks, macroblocks into blocks, and blocks into individual luminance, red, and blue pixels. Luminance, red, and blue are dematrixed21 back to the original red, green, and blue values. They're then converted back to analog and sent to the picture tube.
And voila! - you have a digital picture and sound.