30
1 D igital V ideo B roadcasting – Service Information (DVB – SI)

DVB Standards

Embed Size (px)

Citation preview

Page 1: DVB Standards

1

Digital Video Broadcasting –Service Information

(DVB – SI)

Page 2: DVB Standards

2

DVB Documents• Baseband Processing

– EN 300 468 (DVB-SI) • Specification for Service Information (SI) in DVB systems.• ETR 211 includes a set of guidelines describing how the SI could be used.

– EN 300 472 (DVB-Teletext)• which provides a mechanism to enable the delivery of "analog" teletext to

receiver via DVB

– ETS 300 743 (DVB-Subtitling)• which provides a mechanism for the transmission of subtitles (in all kinds of

text and graphic elements) to receiver via DVB.

• Transmission– EN 300 421 (DVB-S)

• channel coding and modulation for DVB signal delivery on Satellite systems – EN 300 429 (DVB-C)

• channel coding and modulation for DVB signal delivery on Cable systems

– EN 300 744 (DVB-T)• channel coding and modulation for DVB signal delivery on Terrestrial systems

Page 3: DVB Standards

3

DVB Documents• Conditional Access

– ETR 289 (DVB-scrambling)• Common Scrambling Algorithm developed by members of DVB.

– EN 50221 (DVB-CI)• Specification which enables an IRD to descramble programmes which have

been broadcast in parallel, using different CA systems. • By way of inserting a PCM/CIA module into the common interface, different

CA systems can be addressed sequentially by that IRD.

• Interactive Services– EN 301 192 (DVB-data)

• DVB specifications for data broadcasting.• Guideline for using EN301 192 are given in TR 101 202.

– TS 101 812: ( MHP 1.0.3 ) , TS 102 812: ( MHP 1.1.1 )• Multimedia home platform specification by DVB.

• System Software Update– TS 102 006 (DVB-SSU)

• DVB specifications for over-the-air system software update,

Page 4: DVB Standards

4

table_id allocation

SI tables hierarchy

Page 5: DVB Standards

5

Overview of Service Information (SI)

• NIT (Network Information Table)– NIT groups a number of Transport Streams together (as a network) and

provides tuning information for an IRD (Integrated Receiver Decoder).

• BAT (Bouquet Association Table)– A Bouquet is a group of services presented to the user as a single package.– The user selects different services within the bouquet, but might not be

aware that the IRD picks up services in different TSs within the network.

• SDT (Service Description Table)– A description of a service provides a name and optionally other related

information such as language codes, running status and country availability.

– There may be several sub tables providing information for other Transport Streams within the bouquet /network.

Page 6: DVB Standards

6

Overview of Service Information (SI)• EIT (Event Information Table)

– This forms the basis of database upon which EPG (Electronic Program Guide) is built.

– Present/Following EIT shows currently running or next coming programmes information. Schedule EIT is arranged by table, sub-table, segment and section into 3 hours blocks within which the programmes info. for several days can be transmitted.

• TDT (Time Date Table)– Provides UTC (Universal Time) coded as MJD (Modified Julian

Date)• TOT (Time Offset Table)

– It is used to provide time offsets to give local time.• RST (Running Status Table)

– These are sent out only once to update the status of an event.

Page 7: DVB Standards

7

• section_syntax_indicator :– this should be set to '1'

• section_length:– the number of bytes of the section, starting

immediately following the section_length field, and including CRC32.

• table_id_extension:– for different purposes on different tables.

• version_number:– It shall increase by 1 whenever the context

of the Table changes.• current_next_indicator:

– when set to '1' indicates that current Table is applicable; when set to '0', it indicates that only the next table will become valid.

• section_number:– 0x00 for the first section in Table, and

increase by 1 with each additional section.• last_section_number:

– It specifies the number of the last section of the complete Table.

table_id Assignment

SI Section Header

Section_length table_id_extension

Page 8: DVB Standards

8

Overview of Service Information (SI)

• Physical Channel Database– NIT (Network Information Table)

• Virtual Channel Database– PAT (Program Association Table)– PMT (Program Map Table)– SDT (Service Description Table)– BAT (Bouquet Association Table)

• Event Database– EIT (Event Information Table)– TDT/TOT (Time Date Table/Time Offset Table)

Page 9: DVB Standards

9

NIT• The Network Information Table (NIT) provides information regarding

a network on which various transport streams reside.• NIT is specified in MPEG2 system layer, but is defined in DVB. • ATSC did not use NIT.

table_id_extension = network_id

Satellite_delivery_system_descriptor()

Cable_delivery_system_descriptor()

Terrestrial_delivery_system_descriptor()

Network_name_descriptor()

Service_list_descriptor()

Page 10: DVB Standards

10

Satellite_delivery_system_descriptor

table_id = 0x40Network_id = 0x0001Network_name: TVNZ

TS_id = 1Freq:12316H/ SR:5632/..Service_id Service_type

0x01 digital TV0x02 digital Radio0x03 digital TV

TS_id = 2 Freq:12326H/ SR:6111/..Service_id Service_type

0x01 digital TV0x02 digital Radio

NIT Example

TS_id = 1Program_number = 0x01…

Program_number = 0x02…

Program_number = 0x03…

PAT

TS_id = 2Program_number = 0x01…

Program_number = 0x02…

PAT

Page 11: DVB Standards

11

NIT• original_network_id v.s. network_id

– The original_network_id is used to support unique identification of a service even if it has been transferred to another delivery system than the one where it originated. When a service is transferred to another delivery system, only the network_id changes. The original_network_id should remain unaffected.

– original_network_id/ transport_stream_id uniquely identify a TS.– original_network_id/ transport_stream_id/ service_id uniquely identify a service.

Service Aoriginal_nw_id 13 network_id 10transport_str_id 20 service_id 30

Network 10

Service Boriginal_nw_id 11 network_id 11transport_str_id 20 service_id 30

Network 11

Service Aoriginal_nw_id 13 network_id 12transport_str_id 20 service_id 30

Service Boriginal_nw_id 11 network_id 12transport_str_id 20 service_id 30

Network 12

TS X

TS Y

What if use same TS ?

Page 12: DVB Standards

12

NIT• Network_id

– Network_id is a code to identify a network. It is allocated by the Joint Technical Committee (JTC) of the European Broadcasting Union (EBU) and the European Telecommunications Standards Institute (ETSI) at the request of potential service providers, and will be posted on ETR 162.

• Actual network v.s. Other network– NIT provides a grouping of TSs and the relevant tuning information. The

transmission of NIT is mandatory for the actual delivery system.• The NIT with table_id = 0x40 describes the actual network

(that is, the network of which the user is currently tuned to).• The NIT with table_id = 0x41 describes the other network information.

– There is one NIT/actual table in a TS, but may have many NIT/other tables (distinguished by network_id (in table_id_extension field) in a TS

Page 13: DVB Standards

13

Physical Channel Database• Physical Channel Database Building

• The receiver needs to find physical channel tuning info. so that it can tune to each physical channel to get PSI/SI to build-up virtual channel database.

– Tuning Parameters

– Build-in (hard-coded) tuning parameters• Terrestrial (CH. 2-69), Cable (CH. 1-128), Satellite (no rule)• Fast scanning speed. • Non-flexible, fail to find channels while tuning parameters change

– Band scan• Full-band search to find physical carriers• Slow scanning speed• Flexible, the scanning is not affected by tuning parameters change

Satellite Cable TerrestrialFrequency Frequency FrequencySymbol Rate Symbol Rate BandwidthPolarity Modulation ConstellationFEC_inner FEC_inner Code Rate

Guard interval

Page 14: DVB Standards

14

Physical Channel Database– NIT scan

• Tune to master channel using default tuning parameters• Get NIT to find tuning parameters of more TSs (same or different networks).

– Multi-layer NIT scan: • Repeatedly perform NIT scan.

Default channel12306H/6980

At 12306H/6980NIT table_id = 0x40TS1: 12316H/5632/…TS2: 12326H/6111/…

PAT, PMT, SDT,…

At 12326H/5632NIT table_id = 0x40TS1: 12644H/6980/…TS2: 12646V/6980/…TS3: 12652H/6980/…

PAT, PMT, SDT,…

At 12316H/6111NIT table_id = 0x40TS1: 12702H/5632/…TS2: 12703V/6111/…

PAT, PMT, SDT,…

At 12644H/6980At 12646V/6980

At 12652H/6980NIT table_id = 0x40TS1: …TS2:…

At 12702H/5632At 12703V/6111NIT table_id = 0x40TS1: …TS2:…

Page 15: DVB Standards

15

PSI – PAT and PMT

• PAT– PID: fixed at 0x0000, table_id: fixed at 0x00– One PAT per transport stream (multiplexer)– transport_stream_id field is used to identify

the Transport Stream that this PAT belongs to.

• PMT– PID: assigned in PAT, table_id: fixed at 0x02– Multiple PMTs per transport stream.

Page 16: DVB Standards

16

SDT• The SDT is used to list names and other

parameters of the services within TSs.• Two types of SDTs, “Actual” and “Other”,

are defined by DVB.– SDT/Actual describes services available

on the TS currently being accessed by the viewer; SDT/Other describes services on other TSs in the network.

– SDT/Actual and SDT/Other is identified by table_id (0x42, 0x46). Both PID=0x11.

– Transmission of SDT/Actual is mandatory.• Syntax

– Service_id: same as program_number in the corresponding PAT and PMT.

– EIT_schedule_flag: "1“: EIT/schedule table for the service is present in this TS. “0”: not present.

– Free_CA_mode: “0”: free service; “1”this service is scrambled by CA system.

Service_ descriptor (tag=0x48)CA_identifier_descriptor (0x53)

table_id_extension = TS_id

Page 17: DVB Standards

17

PAT (PID=0, Table_id=0)TS_id = 0x0001Program_number: 100Program_number: 200Program_number: 300

SDT/Actual (PID = 0x11, table_id = 0x42)

transport_stream_id = 0x0001Service_id EIT_p/f EIT_schedule free_ca_mode service_provider service_name

100 0x01 0x00 0x00 TVB TVB-S200 0x01 0x00 0x01 TVB TVB-G300 0x01 0x00 0x00 TVB TVB-N

PMTProgram_number: 200

PMTProgram_number: 300

from Service_descriptor

( tag=0x48 )

• One SDT/Actual for actual TS (current TS).

• For each TS/Other, a separate SDT/Other table is needed if present.

PMTProgram_nb: 100

Example of SDT

PMTProgram_number: 100

Page 18: DVB Standards

18

BAT• Bouquet

– It is a group of services that the broadcaster offers as a single product to users.– A bouquet may group together services from more than one TS, which could

even be in different networks. – One service may belong to one or more bouquets.

Page 19: DVB Standards

19

BAT exampleBouquet_id = 0x15Bouquet_name = early bird

TS_id = 0x0001original_network_id = 0x0002Service_id Service_type

0x10 digital TV0x11 digital TV

TS_id = 0x0005original_network_id = 0x0005Service_id Service_type

0x20 digital TV0x21 data broadcast0x22 digital Radio

Bouquet_idIt is allocated by JTC of EBU as well as ETSI, and will be posted on ETR 162.

Table_id_extension = bouquet_id

Bouquet_name_descriptor() {Service_list_descriptor() {

Page 20: DVB Standards

20

Virtual Channel Database

• Virtual Channel Database Building– From physical channel database, get tuning parameters and tune to each

physical channel.– For each physical channel, get PAT (one per TS) by extracting TS packets

with PID = 0x0000 and Table_id = 0x00.– Parsing PAT to identify the program number and PID of each PMT.– Get each PMT (several per TS) by extracting TS packets with PMT PID.– Parsing each PMT to identify PCR and Audio/Video PIDs of each service

(virtual channel).– Get SDT (one per TS) by extracting TS packets with PID = 0x0011 and

table_id = 0x42.– Parsing SDT to get service name of each virtual channel by associating the

service_id in SDT with program_number in PAT/PMT.– Get BAT (if exists) to group services with Bouquet name by associating

the service_id with that in SDT or program_number in PAT/PMT.

Page 21: DVB Standards

21

EIT• EIT provides event info used to create EPG which displays current,

next, and upcoming events for several days.

– For each service (virtual channel),

a separate EIT table exists.

– EIT section has a maximum size

of 4096 bytes.

Short_event_descriptor()

table_id_extension = service_id

Event_information_section() {

Page 22: DVB Standards

22

EIT• Present/following (now/next) EIT

– EIT p/f for Actual TS uses table_id=0x4E. EIT p/f for Other TS uses 0x4F.– Section_number 0x00 for present event, and 0x01 for following event. – If no present event, an empty section 0 of the EIT p/f shall be transmitted;

if no following event, an empty section 1 should be transmitted.– Event_id is unique within the same service_id.

• Syntax:– service_id: the same to service_id in SDT, or program_number in PAT.– start_time: the start time of the event in UTC and MJD

• 16 LSBs of MJD followed by 24 bits coded as 6 digits in 4-bit BCD.• Example: 93/10/13 12:45:00 is coded as 0xC079124500.

– duration: contains the duration of the event in hours, minutes, seconds. • Format: 6 digits, 4-bit BCD = 24 bit.• Example: 01:45:30 is coded as "0x014530".

– running_status: it can be running, not_running, pausing, start_in_few_seconds.– free_CA_mode: ‘0’: the event is not scrambled; ‘1’: the event is scrambled.

Page 23: DVB Standards

23

EIT• Schedule EIT

– EIT/Schedule is distributed over 16 sub-tables with table_ids:• 0x50 - 0x5F for the actual TS, (ordered chronologically)• 0x60 - 0x6F for other TSs (ordered chronologically)

– The 256 sections under each sub-table are divided into 32 segments of 8 sections each.

• Segment #0: section 0 to 7, segment #1: section 8 to 15, … etc.• Segment #0 shall contain events events that start between midnight and

02:59:59 (in UTC Time) of today, and Segment #1 shall contain events that start between 03:00:00 and 05:59:59 (in UTC time), etc.

• Why define Segment?– That is, the first sub-table (table_id 0x50, or 0x60 for other TS) contains

events for the first four days, starting today at midnight UTC time. • 256/8 = 32segments. 32 x 3(hr) = 96(hr) = 4(days)

– The last_section_number: to indicate the end of the sub-table.– The last_table_id: to indicate the end of entire EIT/Schedule structure.

Page 24: DVB Standards

24

EIT p/f (PID = 0x12, table_id = 0x4E)Service_id = 300section_number = 0 (present)event_id start_time duration event_name

20 6:30 1800 sec newssection_number = 1 (following)event_id start_time duration event_name

21 7:00 3600 sec sports

EIT p/f (PID = 0x12, table_id = 0x4E)Service_id = 300section_number = 0 (present)event_id start_time duration event_name

20 6:30 1800 sec newssection_number = 1 (following)event_id start_time duration event_name

21 7:00 3600 sec sports

SDT (PID = 0x11, table_id = 0x42)transport_stream_id = 0x0001Service_id EIT_p/f service_name

100 0x01 TVB-S200 0x01 TVB-G300 0x01 TVB-N

table_id = 0x50section_number = 0segment_last_section_nb = 2last_section_number = 9last_table_id = 0x50

table_id = 0x50section_number = 1segment_last_section_nb = 2last_section_number = 9last_table_id = 0x50

table_id = 0x50section_number = 2segment_last_section_nb = 2last_section_number = 9last_table_id = 0x50

table_id = 0x50section_number = 8segment_last_section_nb = 9last_section_number = 9last_table_id = 0x50

table_id = 0x50section_number = 9segment_last_section_nb = 9last_section_number = 9last_table_id = 0x50

EIT p/f (PID = 0x12, table_id = 0x4E)Service_id = 300section_number = 0event_id start_time duration event_name

20 6:30 1800 sec newssection_number = 1event_id start_time duration event_name

21 7:00 3600 sec sports

Service_id = 100

Example of EIT

short_event_descriptor

Page 25: DVB Standards

25

Event Database• Event (programmes) Database Building

– For each service_id, get its p/f EIT (one per virtual channel, several per TS) by extracting TS packets with PID = 0x0012, table_id = 0x4E, and the specified service_id.

– Parsing p/f EIT to get event name, start time, duration, etc. of current and next events (programmes) of this service (virtual channel).

– For each service_id, get its EIT/schedule (one per virtual channel, several per TS) by extracting TS packets with PID = 0x0012, table_id = 0x50-0x5F, and the specified service_id.

– Parsing EIT/schedule to get event name, start time, duration, etc of all the events (programmes) of this service (virtual channel).

– Another smart way is to directly access the desired EIT segments and get the desired events only.

• Event Database Update– Get TDT/TOT by extracting TS packets with PID = 0x14 and table_id =

0x70 and 0x73, respectively.– Parsing TDT/TOT and convert to current local time.– Remove events with end time < current local time.

Page 26: DVB Standards

26

TDTTOT

Syntax:• UTC_time:This field contains the current time and date in UTC. It is coded as 16 LSBs of MJD followed by 24 bits coded as 6 digits in 4-bit BCD.e.g., 93/10/13 12:45:00 is coded as 0xC079124500.

• local_time_offset_polarity:‘0’: the local time is advanced to UTC; "1“: the local time is behind UTC.

• local_time_offset:It contains the local offset time from UTC, and is

coded as 4 digits in 4-bit BCD in the order hour tens, hour, minute tens, and minutes.

Local_time_offset_descriptor

Page 27: DVB Standards

27

Descriptors

Page 28: DVB Standards

28

ATSC-PSIP v.s. DVB-SI

• Comparison between ATSC PSIP and DVB SI– Table change detection

• ATSC: The receiver only needs to monitor MGT to know the changesof any of other tables.

• DVB: The receiver needs to monitor each table separately to know if it is updated (check if version in section header is changed).

• Exclusive Section filtering: – Assuming current version is x, filter all the sections with version != x.

– PID and Table_id allocation• PSIP/SI tables of same PID can be compacted into the same TS packet.• ATSC: Except to EIT/ETT, all other tables use same PID (0x1FFB).

EIT-0/1/2/3… ETT-0/1/2/3 use different PIDs.• DVB: Most of tables use different PIDs. EITs of all events use a

single PID.

Page 29: DVB Standards

29

ATSC-PSIP v.s. DVB-SI• Comparison

– Service (Channel) information• VCT in ATSC is similar to NIT+PAT+PMT+SDT in DVB

– VCT carried tuning info of other TS is similar to NIT/Other in DVB– Service Location Descriptor (in ATSC VCT) carried audio/video PID is

similar to PAT+PMT in DVB– The short_name field in VCT is similar to service_descriptor in SDT of

DVB to describe the service (channel) name.

– Event information• EIT-0/1/2/3/… in ATSC use different PIDs to provide random access

to events in a specific time period• The Segments (distinguished by different section number) in DVB

EIT provides random access to events in a specific time period.– System Time information

• STT in ATSC is similar to TDT in DVB.• ATSC has no time zone information as defined by TOT in DVB.

Page 30: DVB Standards

30

Home Work Assignment• Choose one of topics

– Stream analyzer– EPG

• Choose one of standards– ATSC stream

• MGT, VCT, EIT, ETT• descriptors

– DVB stream• PAT, PMT, SDT, EIT (p/f, Schedule)• descriptors

• Evaluation Criteria– Features: 40%– Accuracy: 40%– Coding Style: 20%