Upload
api-19973617
View
2.162
Download
1
Embed Size (px)
Citation preview
1
Digital Video Broadcasting –Service Information
(DVB – SI)
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
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,
4
table_id allocation
SI tables hierarchy
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.
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.
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
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)
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()
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
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 ?
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
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
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:…
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.
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
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
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.
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() {
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.
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() {
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.
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.
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
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.
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
27
Descriptors
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.
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.
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%