Information Technology Reference
In-Depth Information
MPEG-2 decoders also have a quantity of buffer memory. The challenge to the multiplexer is to take packets from
each program in such a way that neither its own buffers nor the buffers in any decoder either overflow or underflow.
This requirement is met by sending packets from all programs as evenly as possible rather than bunching together
a lot of packets from one program. When the bit rates of the programs are different, the only way this can be
handled is to use the buffer contents indicators. The fuller a buffer is, the more likely it should be that a packet will
be read from it. This a buffer content arbitrator can decide which program should have a packet allocated next.
If the sum of the input bit rates is correct, the buffers should all slowly empty because the overall input bit rate has
to be less than the payload bit rate. This allows for the insertion of Program Specific Information. While PATs and
PMTs are being transmitted, the program buffers will fill up again. The multiplexer can also fill the buffers by
sending more PCRs as this reduces the payload of each packet. In the event that the multiplexer has sent enough
of everything but still cannot fill a packet then it will send a null packet with a PID of 8191. Decoders will discard null
packets and as they convey no useful data, the multiplexer buffers will all fill while null packets are being
transmitted.
In a statistical multiplexer or statmux, the bit rate allocated to each program can vary dynamically. Figure 6.9 shows
that there must be tight connection between the statmux and the associated compressors. Each compressor has a
buffer memory which is emptied by a demand clock from the statmux. In a normal, fixed bit rate, coder the buffer
contents feeds back and controls the requantizer. In statmuxing this process is less severe and only takes place if
the buffer is very close to full, because the buffer content is also fed to the statmux.
Figure 6.9: A statistical multiplexer contains an arbitrator which allocates bit rate to each program as a function of
program difficulty.
The statmux contains an arbitrator which allocates packets to the program with the fullest buffer. Thus if a particular
program encounters difficult material it will produce large prediction errors and begin to fill its output buffer. This will
cause the statmux to allocate more packets to that program. In order to fill more packets, the statmux clocks more
data out of that buffer, causing the level to fall again. Of course, this is only possible if the other programs in the
transport stream are handling typical video.
In the event that several programs encounter difficult material at once, clearly the buffer contents will rise and the
requantizing mechanism will have to operate.
6.7 Remultiplexing
In real life a program creator may produce a transport stream which carries all its programs simultaneously. A
service provider may take in several such streams and create its own transport stream by selecting different
programs from different sources. In an MPEG-2 environment this requires a remultiplexer, also known as a
transmultiplexer. Figure 6.10 shows what a remultiplexer does.
 
Search WWH ::




Custom Search