Program Specific Information
Encyclopedia
Program-specific information (PSI) is metadata
about a program (channel) and part of a MPEG transport stream.
The PSI data contains five tables:
PSI is carried in the form of a table structure. The table structure can span multiple transport stream packets. Adaptation field also occurs in TS packets carrying PSI data. The PSI data will never be scrambled so that the decoder at the receiving end can easily identify the properties of the stream.
The PAT, CAT and TDT tables are associated with predefined PID as explained in the respective sections.
There may be multiple independent PMT tables in a stream; these are given user-defined PID numbers (as are PES packets). PMT table PIDs are defined in the PAT, and are the only PIDs defined there (PES PIDs are defined in the PMT).
Each table has predefined structure.
The PAT is assigned PID 0x0000 and table id of 0x00. The transport stream contains at least one or more TS packets with PID 0x0000. Some of these consecutive packets form the PAT.
At the decoder side the PSI section filter listens to the incoming TS packets. After the filter identifies the PAT table they assemble the packet and decode it.
A PAT has information about all the programs contained in the TS. The PAT contains information showing the association of Program Map Table PID and Program Number.
The PAT should end with a 32-bit CRC
This table contains PID numbers of elementary streams associated with the program and it has information about the type of these elementary streams (video, audio, etc.).
In addition it also contains the ECM PID number of the entitlement control message, which is associated with the program.
Information about the current network uses table_id of 0x40, that about other networks uses table_id of 0x41.
It is segmented into network information sections and is carried on PID 0x0010. [ref EN300468]
Also this table contains the private stream information too. For example, TeleText, Subtitle and MHEG
The PID value for both tables is 0x0014.
For TDT – Table ID is 0x70.
For TOT – Table ID is 0x73.
Metadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...
about a program (channel) and part of a MPEG transport stream.
The PSI data contains five tables:
- PAT (program association table)
- CAT (conditional access table)
- PMT (program map table)
- NIT (network information table)
- TDT (time and date table)
PSI is carried in the form of a table structure. The table structure can span multiple transport stream packets. Adaptation field also occurs in TS packets carrying PSI data. The PSI data will never be scrambled so that the decoder at the receiving end can easily identify the properties of the stream.
The PAT, CAT and TDT tables are associated with predefined PID as explained in the respective sections.
There may be multiple independent PMT tables in a stream; these are given user-defined PID numbers (as are PES packets). PMT table PIDs are defined in the PAT, and are the only PIDs defined there (PES PIDs are defined in the PMT).
Each table has predefined structure.
PAT (program association table)
When exists | Name | Number of bits |
Description |
---|---|---|---|
If TS payload unit start |
Pointer field | 8 | Present if payload_unit_start_indicator bit is set in the TS header bytes. Gives the number of bytes from the end of this field to the start of payload data. |
Table ID | 8 | 0x00 | |
Section syntax indicator | 1 | Always 1 for PAT | |
0 | 1 | Always 0 for PAT | |
Reserved | 2 | Always set to binary '11' | |
Section length | 2+10 | Informs how many programs are listed below by specifying the number of bytes of this section, starting immediately following this field and including the CRC. First two bits must be zero. | |
transport stream ID | 16 | User defined data. Value not important to demuxers or players. | |
Reserved | 2 | Always set to binary '11' | |
Version number | 5 | Table version number. Incremented by 1 when data in table changes. Wraps around from 31 to 0. | |
Current/next indicator | 1 | If 0, table data isn't applicable yet (becomes applicable when set to 1) | |
Section number | 8 | Index of this section in the sequence of all PAT table sections. First section is numbered 0 | |
Last section number | 8 | Index of last section of PAT table | |
Repeated N times depending on section length |
Program num | 16 | |
Reserved | 3 | Always set to binary '111' | |
Program PID | 13 | packets with this PID are assumed to be PMT tables (see below) | |
CRC32 | 32 |
The PAT is assigned PID 0x0000 and table id of 0x00. The transport stream contains at least one or more TS packets with PID 0x0000. Some of these consecutive packets form the PAT.
At the decoder side the PSI section filter listens to the incoming TS packets. After the filter identifies the PAT table they assemble the packet and decode it.
A PAT has information about all the programs contained in the TS. The PAT contains information showing the association of Program Map Table PID and Program Number.
The PAT should end with a 32-bit CRC
Cyclic redundancy check
A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data...
CAT (conditional access table)
This table is used for conditional access to the streams. This table provides association with EMM stream. When the TS is scrambled then this section contains the EMM PID. The PID value is 0x0001.PMT (program map table)
When exists | Name | Number of bits |
Description | |
---|---|---|---|---|
If TS payload unit start |
Pointer field | 8 | Generally 0X00 for PMT | |
Table ID | 8 | Always 0x02 for PMT | ||
Section syntax indicator | 1 | |||
Always set to 0 | 1 | |||
Reserved | 2 | Always set to binary '11' | ||
Section length | 2+10 | Number of programs listed below. First two bits always zero. | ||
Program num | 16 | |||
Reserved | 2 | |||
Version number | 5 | Incremented by 1 mod Modulo operation In computing, the modulo operation finds the remainder of division of one number by another.Given two positive numbers, and , a modulo n can be thought of as the remainder, on division of a by n... 32 each time the table data changes |
||
Current Next indicator | 1 | If 1, this table is currently valid. If 0, this table will become valid next. | ||
Section number | 8 | Always 0x00 | ||
Last section number | 8 | Always 0x00 | ||
Reserved | 3 | |||
PCR PID | 13 | PID of general timecode stream, or 0x1FFF | ||
Reserved | 4 | |||
Program info length | 2+10 | Sum size of following program descriptors. First two bits must be zero. | ||
Program descriptor | N*8 | |||
Repeated N times depending on section length |
stream type | 8 | ||
Reserved | 3 | Always set to binary '111' | ||
Elementary PID | 13 | |||
Reserved | 4 | |||
ES Info length | 2+10 | First two bits must be zero. Entire value may be zero | ||
ES Descriptor | N*8 | If ES Info length is zero, this is omitted. | ||
CRC32 | 32 |
This table contains PID numbers of elementary streams associated with the program and it has information about the type of these elementary streams (video, audio, etc.).
In addition it also contains the ECM PID number of the entitlement control message, which is associated with the program.
NIT (network information table)
This table provides information about the multiplexes and transport streams on a given network.Information about the current network uses table_id of 0x40, that about other networks uses table_id of 0x41.
It is segmented into network information sections and is carried on PID 0x0010. [ref EN300468]
Also this table contains the private stream information too. For example, TeleText, Subtitle and MHEG
TDT (time and date table) / TOT (time-offset table)
The TDT provides the UTC (Universal Time) coded as MJD (modified Julian date). The TOT provides information regarding the local time offset from the UTC time. This is used to define the local time.The PID value for both tables is 0x0014.
For TDT – Table ID is 0x70.
For TOT – Table ID is 0x73.
External links
- DVB system information chart (not available anymore)
- mpeg-2 DVB (not available anymore)