EPG present by: Alex Chang R&D 6 Email: alex1_chang@asus.com.tw 大綱 What is EPG? Transport stream and DVB-SI Network Information Table (NIT) Bouquet Association Table (BAT) Service Description Table (SDT) Event Information Table (EIT) Sending TS packets TS packet structure 結論與討論 What is EPG Electronic Program Guide (EPG) is a feature unique to the digital TV world. used to entice consumers to purchase programming。 DVB-SI data consisted of EPG navigation The protocol used to create the EPG is known as the Service Information (SI) tables Too many service providers implement variety of technologies to achieve EPG, like binary format, file format (XML) etc. we focus on DVB standard – DVB-SI Transport stream and DVB-SI DVB-SI data is multiplexed together with MPEG-2 compressed A/V data streams to form TSs The multiplexed TS must be demultiplexed in the set-top box. DVB-SI adds information that enables set-top box to tune automatically to particular services and allows services to be grouped into categories with relevant schedule information. TS packets are derived from elementary streams, service information, private data, and conditional access control. Null transport packets are used to soak-up any spare multiplex capacity, which can also appear in the TS. MPEG-2 allows a separate Service Information system to be used to complement its Program Specific Information (PSI) Program Specific Information (PSI) Defined in the MPEG-2 systems specification. Structured in the four tables: PAT (PID=0x0000) – indicates the location of the corresponding PMT. – gives the location of NIT. CAT (PID=0x0001) – provides information on the CA system used in the multiplex. PMT (PID=P) – identifies and indicates the locations of the streams the make up each service and the locations of the Program Clock Reference fields for a service. NIT – contains information relating to the physical organization of the multiplexes carried via a given network and the relevant tuning information. Service Information (SI) Provides information on available services: What frequencies carry them Groups services into common interest categories Information on the events in a service Contains information used by network operator: which network originated the service etc. DVB-SI’s four main tables: NIT BAT SDT EIT Service Information (SI) Each table is split into sections. Each section has a header, and either two (SDB & EIT), or three (NIT & BAT) loops containing descriptors specific to each table. The section_number being incremented each time a new table section is sent. Section_number is an 8-bit field, so the max number of sections per table is 256. The section length for all tables is 1021 bytes, apart from the EIT which is 4096 The descriptors carry information relevant to its function. BAT and SDT can be carried on the same PID. Table information changes are notified by incrementing the section version number. DVB Service Information Table Structure Network Information Table NIT sections always use PID 10hex Each network described is identified by its network_id. NIT table_id has one of two values: 40hex – for sections describing the current network 41hex – for section describing other networks This allows rapid translation of information at Network boundaries, e.g. moving from satellite to cable TV network NIT structure Network descriptor loop carries network wide information: -- linkage_descriptor provides links to other services describing the network. transport stream loop identifies each stream carried. Inner transport stream descriptor loop contains network information on each transport stream For example, if the STB is tuned to one rf channel, and the user requests a service on a different channel. The frequency for this channel is contained in this loop Bouquet Association Table Allows the grouping of common interest services in the EPG Provides a list of services for each bouquet as well as the name of the bouquet. A particular service can belong to one or more bouquets. BAT sections identified by the BAT table_id 4Ahex The bouquet_id identifies which bouquet it described (e.g. sports services). BAT structure bouquet descriptor loop contains bouquet wide information, like its name and its country availability. transport stream loop lists all the streams relevant to this bouquet. its contents being identical to the NIT transport stream loop. Inner transport stream descriptor loop lists all services in that transport stream. For example, a bouquet specially for sports channels; with the transport stream loop listing all streams containing sports; the stream descriptor loop listing all sport services contained in each stream. Service Description Table Contains data describing the services in a transport stream, e.g., the names of services, the service provider, etc. Lists the names and other parameters associated with each service in a multiplex. SDT table_id has one of two values: 42hex – for section describing the current transport stream 46hex – for section describing another transport stream The header contains global information. ex. Transport stream id original network id section number version number SDT structure service loop identifies each service (via the service_id) inner service descriptor loop contains detailed information on each service listed in the outer loop. a unique descriptor in the DVB-SDT is the Mosaic function. This allows information (still images, MPEG-2 clips etc.) on all services (or events) to be displayed on one screen. Event Information Table (1/2) Include present/following and schedule tables Contains data concerning events such as event name, start time, duration, etc. Carried on PID 12hex. Has the same structure as the SDT, but four different types of EIT section can exist: Actual transport stream Other transport stream Present/following Contains info on current event and next event available table_id=4Ehex Contains info on current and next event available for a diff TS Table_id=4Fhex Contains info on several events following current event. Table_id=50hex~5Fhex Contains info on several events following current event for a diff TS Table_id=60hex~6Fhex Event schedule Event Information Table (2/2) The present/following EIT is distributed over two sections: Section_number 00hex – reserved for present Section_number 01hex – reserved for following The 256 sections per table are divided into 32 segments of 8 sections each. Each segment contains event information for a three hour period, with segment0 of table_id50hex covering events from 2400hrs to 02:59:59 etc. 32 segments of table_id=50hex cover a four day period. With 16 table_id’s available, a schedule/EIT covers 64 days of events. Table_id’s and section_number’s are ordered chronologically. EIT structure service_id, transport_stream_id and original_network_id identify the service, stream and network, the EIT section belongs to. service_id is the same as the same as the program_number in the corresponding program_map_section events loop lists all the events descripbed by this section, their start time, length, encryption etc. inner descriptor loop carries detailed information on parental ratings, content description, telephone description for interactivity etc. Summary The DVB-SI tables are transmitted in sections. Each table must be segmented into one or more sections with the same table_id as the table before being inserted into TS packets. A section is a syntactic structure. Each table are limited to 1024 bytes in length, except for sections within EIT, which are limited to 4096 bytes. Each section is uniquely identified by the combination of the five fields in a section, such as table_id, section_number, etc. Sending TS packets For SI specified in *ETSI, the min time interval between the arrival of the last byte of a section and the first byte of the next transmitted section should be 25 milliseconds. This limit applies for transport streams with a total data rate of up to 100Mb/s. A TS packet is always 188 bytes long. It comprises a 4-byte header followed by a payload. The payload is 184 bytes in length 註: European Telecommunications Standards Institute A UDP Datagram Packet TS packet structure The first byte is a sync-byte having the value 0x47, which is used for the decoder to identify the start of each new transport packet In 2nd and 3rd bytes, the 1st bit is transport_error_indicator, the 2nd bit is payload_unit_start_indicator, the 3rd bit is transport_priority, and the last 13-bit is PID In 4th byte, the first two bits are transport_scrambling_control, the second two bits are adaptation_control, the last 4-bit is continuity_count Trnasport_error_indicator Payload_unit_start_indicator 01000111 01000000 00000000 byte2 byte3 byte1 Transport_priority PID 11000000 Continuity_count adaptation_control Transport_scrambling_control A header of a TS packet Service Information Organization