Program Specific Information
Encyclopedia
Program-specific information (PSI) is metadata
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)

Partial PAT format
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)

Partial PMT format
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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK