Implementation of MPEG system target decoder
The MPEG-2 system standard provides methods for multiplexing a number of elementary MPEG streams into a single system stream. It also defines methods to maintain the synchronization and timing of compressed streams. This is achieved by exact definitions of the times at which data arrive to the decoder, timing of data flow in the decoder and timing of decoding and presentation events. For this purpose, the standard defines a conceptual model for a target decoder, called "system target decoder" (STD), which is used to model the decoding process. System streams generated by the multiplexer should comply with the specifications imposed by the STD model to guarantee the normal operations of real time decoding and presentation process. Therefore, this model is necessary during the construction and verification of system streams. The multiplexer should observe the behavior of STD to ensure that decoder buffers will not overflow or underflow due to encoding or multiplexing issues when receiving the system stream. To achieve this, the scheduler that coordinates the multiplexing order of system packs should consider the monitored information from STD as one of the scheduling control parameters to follow the specifications imposed by STD. This paper describes the theoretical principles, design considerations and architecture of program and transport STDs. The implementations of these target decoders in a software package for verification of MPEG system streams is presented. This implementation uses Microsoft DirectShow. The results of decoding some sample system streams are also presented.