METHOD AND APPARATUS FOR MPEG-2 PROGRAM ID RE-MAPPING FOR MULTIPLEXING SEVERAL PROGRAMS INTO A SINGLE TRANSPORT STREAM
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates to the systems and methods for multiplexing packet streams on a shared transport channel, and, more particularly, to a method for ensuring unique identification of packets associated with one or more program streams to be multiplexed on an single transport channel.
Discussion of the Prior Art
The MPEG-2 Generic Coding of Moving Pictures and Associated Audio: Systems Recommendation H.222,0 ISO/IEC 13818-1 defines the mechanisms for combining, or multiplexing, several types of multimedia information into one program stream. This standard uses a known method of multiplexing, called packet multiplexing. With packet multiplexing, elementary streams comprising data, video, audio, etc. are interleaved one after the other into a single MPEG-2 stream.
Transport Streams (TSs) are defined for transmission networks that may suffer from occasional transmission errors. The Packetized Elementary Streams (PESs) are further packetized into shorter TS packets of fixed length, e.g., 188 bytes. A major distinction between TS and PES is that the TS can carry several programs. Each TS packet consists of a TS Header, followed
-YO'9 9 9 -416
optionally by ancillary data called Adaption Field, followed typically by some or all the data from one PES packet. The TS Header consists of a sync byte (0x47), flags, indicators, Packet Identifier (PID), and other information for error detection, timing, etc. According to the MPEG-2 standard, the semantics for the TS include the following:
Sync_jDyte: (8-bits) a fixed value 0x47;
Transport_error_indicator: (1-bit) for indicating that an uncorrectable bit error exists in the current TS packet;
Payload_unit_start_indicator: (1-bit) for indicating the presence of a new PES packet or a new TS-PSI (program specific information) Section;
Transport_priority: (1-bit) for indicating a higher priority than other packets;
PID: 13-bit packets Ids including values 0 and 1 which are pre-assigned, while values 2 to 15 are reserved. Values 0x0010 to OxlFFE, may be assigned by the Program Specific Information (PSI) and value OxlFFF is used to identify MPEG-2 Null packets;
Transport„scrambling_control: (2-bits) for indicating the scrambling mode of the packet payload;
Adaptation_field_control: (2-bits) for indicating the presence of an optional adaptation field prior to the payload;
Continuity_counter: which is a counter provided per PID (e.g., 4-bits) that increments with each non-repeated TS packet having the corresponding PID.
Each MPEG-2 program stream may be characterized as a data stream (which can contain data originated from a multitude of data sources) encapsulated using MPEG-2 TS packets, with each packet containing a header field with a Packet Identifier (PID). The PID field is used by the transport demultiplexer to "tune" to a particular set of PID's that correspond to a given program stream. Each program stream must have a set of distinct PID's (except for PID = OxlFFF for the MPEG-2 Null packet) .
As an example:
Program Stream l: