Sie sind auf Seite 1von 30

Digital Video Broadcasting –

Service Information
(DVB – SI)

1
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
2
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,
3
SI tables hierarchy

table_id allocation
4
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.

5
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.

6
• section_syntax_indicator :
– this should be set to '1' SI Section Header
• 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. Section_length
• version_number: table_id_extension

– 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. table_id Assignment
• 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.
7
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)

8
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

Network_name_descriptor()

Satellite_delivery_system_descriptor()
Cable_delivery_system_descriptor()
Terrestrial_delivery_system_descriptor()
Service_list_descriptor()
9
NIT table_id = 0x40 TS_id = 1 PAT
Network_id = 0x0001 Program_number = 0x01

Example Network_name: TVNZ
Program_number = 0x02
TS_id = 1

Freq:12316H/ SR:5632/..
Program_number = 0x03
Service_id Service_type

0x01 digital TV
0x02 digital Radio
0x03 digital TV
TS_id = 2 TS_id = 2
Program_number = 0x01
PAT
Freq:12326H/ SR:6111/..
Service_id Service_type …
Program_number = 0x02
0x01 digital TV

0x02 digital Radio

Satellite_delivery_system_descriptor

10
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.

Network 10 Network 12
Service A
TS X Service A
original_nw_id 13
network_id 10 original_nw_id 13
transport_str_id 20 network_id 12
service_id 30 transport_str_id 20 What if use
service_id 30
Network 11 same TS ?
Service B TS Y Service B
original_nw_id 11 original_nw_id 11
network_id 11 network_id 12
transport_str_id 20 transport_str_id 20
service_id 30 service_id 30

11
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

12
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
Satellite Cable Terrestrial
Frequency Frequency Frequency
Symbol Rate Symbol Rate Bandwidth
Polarity Modulation Constellation
FEC_inner FEC_inner Code Rate
Guard interval

– 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

13
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.
At 12702H/5632
At 12316H/6111
Default channel At 12703V/6111
NIT table_id = 0x40
NIT table_id = 0x40
12306H/6980 TS1: 12702H/5632/…
TS1: …
TS2: 12703V/6111/…
TS2:…
PAT, PMT, SDT,…
At 12306H/6980
NIT table_id = 0x40 At 12326H/5632 At 12644H/6980
TS1: 12316H/5632/… NIT table_id = 0x40 At 12646V/6980
TS2: 12326H/6111/… TS1: 12644H/6980/… At 12652H/6980
TS2: 12646V/6980/… NIT table_id = 0x40
PAT, PMT, SDT,…
TS3: 12652H/6980/… TS1: …
TS2:…
PAT, PMT, SDT,…
14
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.

15
SDT
• The SDT is used to list names and other
parameters of the services within TSs.
• Two types of SDTs, “Actual” and “Other”, table_id_extension
are defined by DVB. = TS_id
– 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” Service_ descriptor (tag=0x48)
this service is scrambled by CA system. CA_identifier_descriptor (0x53)

16
Example of SDT

PMT
PAT (PID=0, Table_id=0) Program_number: 100
TS_id = 0x0001 PMT
Program_number: 100 PMT Program_nb: 100
Program_number: 200 Program_number: 200
Program_number: 300 from
PMT Service_descriptor
Program_number: 300 ( tag=0x48 )

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


transport_stream_id = 0x0001
Service_id EIT_p/f EIT_schedule free_ca_mode service_provider service_name
100 0x01 0x00 0x00 TVB TVB-S
200 0x01 0x00 0x01 TVB TVB-G
300 0x01 0x00 0x00 TVB TVB-N

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


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

17
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.

18
BAT example
Table_id_extension
Bouquet_id = 0x15 = bouquet_id
Bouquet_name = early bird
TS_id = 0x0001
original_network_id = 0x0002
Service_id Service_type
0x10 digital TV
0x11 digital TV
TS_id = 0x0005
original_network_id = 0x0005
Service_id Service_type
0x20 digital TV
0x21 data broadcast
0x22 digital Radio

Service_list_descriptor() {
Bouquet_id Bouquet_name_descriptor() {
It is allocated by JTC of
EBU as well as ETSI, and
will be posted on ETR 162.

19
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.

20
EIT
• EIT provides event info used to create EPG which displays current,
next, and upcoming events for several days.
table_id_extension = service_id
– For each service (virtual channel),
a separate EIT table exists. Event_information_section() {
– EIT section has a maximum size
of 4096 bytes.

Short_event_descriptor()

21
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.

22
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.

23
Example of EIT Service_id table_id = 0x50
section_number = 0
= 100
segment_last_section_nb = 2
SDT (PID = 0x11, table_id = 0x42) last_section_number = 9
last_table_id = 0x50
transport_stream_id = 0x0001
Service_id EIT_p/f service_name table_id = 0x50
section_number = 1
100 0x01 TVB-S
segment_last_section_nb = 2
200 0x01 TVB-G last_section_number = 9
300 0x01 TVB-N last_table_id = 0x50

table_id = 0x50
EIT p/f (PID = 0x12, table_id = 0x4E) section_number = 2
Service_id = 300 segment_last_section_nb = 2
last_section_number = 9
EIT p/f (PID = 0x12,
section_number = 0 table_id
(present)= 0x4E) last_table_id = 0x50
event_id =start_time
Service_id 300 duration event_name
EIT p/f20(PID = 0x12,
section_number 6:30 1800 =sec
= 0 table_id
(present) 0x4E)news table_id = 0x50
section_number
event_id = 1duration
(following) section_number = 8
Service_id =start_time
300 event_name
segment_last_section_nb = 9
event_id
20 start_time
6:30 duration
1800 sec event_name
news
section_number
21 =
7:000 3600 sec sports last_section_number = 9
section_number
event_id start_time = 1duration
(following)
event_name last_table_id = 0x50
event_id
20 start_time duration
6:30 1800 sec event_name
news
21
section_number = 17:00 3600 sec sports table_id = 0x50
event_id start_time duration event_name section_number = 9
21 7:00 3600 sec sports segment_last_section_nb = 9
last_section_number = 9
last_table_id = 0x50
short_event_descriptor 24
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 . 25
TOT
TDT

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 26
Descriptors

27
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 changes
of 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.

28
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.

29
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%

30

Das könnte Ihnen auch gefallen