What is PSI/SI in DVB-H:
PSI (Program Specific Information) consists of data enabling a decoder to demultiplex DVB-H services. It contains the following table: PAT, PMT, NIT, CAT
SI provides information on DVB-H services carried by different multiplexes, it contains the following table: SDT, EIT, RST, TDT, TOT, ST
Is PSI/SI mandatory in DVB-H?
Yes, in order for cell phones to receive DVB-H programs, Timeslicing, MPE-FEC, PSI/SI and ESG are all needed. To get the DVB-H service correctly for the cell phone, server must insert the associated information into the TS stream, that is PSI and SI.
PSI/SI and receiver (cell phone)
When the cell phone starts to receive DVB-H program, it actually starts with receiving PSI/SI. They are in the table format, no encryption and directly built in the TS datagram.
From PSI/SI information, the cell phone knows the program list and the PID of each program in the received TS. After that the cell phone can start to receive the particular PID of the target program and ignore all PIDs of all other programs in the same TS.
DVB-H network layer
This is a very important picture, my account can not upload picture to this wiki, have to put it on my SFU webpage. [1]
A DVB network is uniquely identified by a network_id. A DVB network consist of one or more Transport Streams (TS), each carrying a multiplex and being transmitted by one or more Services.
TS use transport_stream_id & original_network_id for identification, these info are saved in PAT table
Service use service_id & transport_stream_id & original_network_id for identification. these info are saved in PMT table
ES (elementary stream) use component_tag or the PID in TS for identification.
PSI contains the following tables:
PAT(Program Association Table):The PAT lists PIDs for all PMTs in the stream. TS Packets containing PAT information always have PID 0x0.
PMT(Program Map Table):contain information about programs. For each program, there is a PMT.
NIT(Network Information 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
CAT(Conditional Access Table):This table is used for conditional access to the streams. This table provides association with EMM stream.
The releationship between PAT and PMT are: [2]
SI contains the following tables:
INT : (IP/MAC Notification Table): in an IP platform, contains all the IP address of the services and the corresponding service_id of each IP. We can get the PID of a particular service in TS with the help of PAT and PMT. Very important.
SDT (service description table) : used to descript service name, service provider, the description of the TS.
EIT (event information table) : the corresponding audio stream, file stream and the propsed program start time and end time. Eg. 2008-May-27 0:27am, Yi Liu is writting this wiki page.
RST (runtime status table): provide one or more events status and time, e.g whether or not an event is running or not running.
TDT : record the current date, time info for the server
TOT : record the current time difference between server and local time
How a mobile TV receiver using PSI/SI table to find the first time-slicing bursts
EIT table can tell the receiver the start time of the program. And whenever the program starts, the first burst session occurs.
How a mobile TV receiver switch channels
channel switch request is initiated via a user interface. This causes a mobile broadcast receiver to switch from the first channel to the second channel. It is actually switching to another PID. We can use NIT, PAT, PMT, INT tables to trace that PID (get it from PMT). See following session for tracing service_id
To trace service_id
This procedure is called INT discovery, the goal is to get service_id and IP of all programs, and the ESG service IP and service_id.
The procedure is:
Frequency tuning --> locate and read INT table from IP datagram, find platform_id and service_id --> Locate PAT, based on service_id to find PMT_pid in PAT --> Locate PMT, analyze the program PID --> Locate INT, get program name and service provider name --> Locate SDT, get the program broadcase address
The complete programs and program list is contains in INT and SDT. Note: ESG address is described in the INT table