
SDT表用于描述系統中業務的名稱、業務提供者、是否有相應的事件描述表等方面的信息;業務描述表可以描述當前傳輸流,也可以描述其他傳輸流,這由表的Table_ID來區分。業務描述表提供了如下的信息:屬于哪一個節目業務群;節目業務的類型,如PAL、NTSC、SECAM、調頻廣播、圖文電視、準視頻點播等;節目業務的提供者;可以接收該業務的國家和不可以接收該業務的國家;指向特定的鏈接信息;實現準視頻點播的指導信息;實現多畫面的控制信息;指示使用的加密系統;給出實現交互式回傳信道的電話號碼;提供多語種的節目業務名稱和廣播者以及私有數據。但最常用的是業務列表,即對業務名稱的描述,如中央1臺、廣州新聞臺、珠江臺等等。
⑶ 事件信息表(EIT)的作用
EIT表是由DVB定義的,是一個SI表,因此它是一個全局表,一個數字電視系統每一個業務對應兩種EIT表。一是EIT present/following表(描述當前事件/后續事件),一個業務對應著一個EIT present/following表,EIT present/following表分為當前流表(table_id=0X4E)和其他流表(table_id=0X4F),每一個流通常對應6個(有6個業務)EIT present/following子表,每個子表由兩個段組成,分別是EIT present段和EIT following段,section_number= 0x00的段描述當前播放的事件, section_number= 0x01段描述后續播放事件,圖5所示。其他流表結構與當前流表相同;二是EIT schedule(時間表)表,一個業務最多可對應16個EIT schedule表,那么每個流通常最多可對應6(業務數)×16=96個子表,每個子表由256個段組成(由于分段號是8個比特,所以最多只能有256個分段),。
對于EIT schedule表,它是用作描述一個業務在一段時間(可以是一天、一周,最大可以是64天,根據冗余帶寬來進行設定)內所播放的節目安排,節目的播出安排是以時間和節目簡介作為描述的。時間及內容是描述一個事件的最基本元素,例如:把一個業務所播放的每一個節目都看成是一個事件,那么每一個節目開始播放的時間和播放時間的長度及事件的內容就是該事件的基本元素,EIT schedule子表就是用這一基本元素來描述每一個事件并產生某一段時間內要發生的所有事件的列表,因此EIT schedule子表的信息量很大(EIT表的段限長4096字節),由256個section組成,所以又引入了segment(片段)的概念。把256個段分成32個segment;一個segment由8個section(分段)組成,每個segment可以描述3個小時的事件信息,也就是說,一個EIT schedule表由32個片段組成,每個片段由8個分段組成,通過section_number來區分,那么每個子表可描述32*3=96小時(4天)的事件信息,由于一個業務最多可對應著16個EIT schedule表,則對于一個業務來說最多可以描述16(0X50----0X5F)*4=64天的事件信息。這里,segment相當于一個事件組,section是事件組內具體的一個事件。EIT schedule表也分為當前流表(table_id=0X50---0X5F 共16個)和其他流表(table_id=0X60---0X6F 共16個), EIT schedule表是可選的(即系統可以發送此表也可以不發送此表),事件信息按時間順序排列。
EIT表包含事件或節目的有關數據,如事件的名稱、開始時間、持續時間、運行狀態等。事件信息表提供如下信息:節目段的標識號、起始時間、持續時間、播放狀態、是否加密;指向特定信息的鏈接信息;節目段多語種的簡短介紹;節目段的詳細介紹;兩段同樣節目段的時間偏移;基本碼流類型介紹,如視頻的幅型比、伴音的類型、字幕的類型等;使用的加密系統介紹;節目類型介紹,如電影/戲劇、新聞、綜藝、體育、少兒、音樂、藝術、社會政治、文教等;節目限定年齡的級別介紹;給出實現交互式回傳信道的電話號碼;為滿足各節目段的碼率而提供的緩存大小信息及私有數據。事件信息中提供了類似于廣播電視報所提供的節目表的內容,根據EIT及其它表所提供的信息,可以做出各種EPG功能,如按節目類型檢索、按時間檢索及對某類節目的鎖定等。可以說EIT表是提供EPG信息的主要表,也是結構最復雜的SI表。
在EIT present/following表中,每一事件都用一個event_id來標識它,每一個事件的順序關系(當前正在發生的事件/后續發生的事件)就由EIT present/following來描述。
那么如何來識別當前正在發生的事情和后續發生的事情呢?那是通過event_id來標識的,如圖5所示。圖中event_id=0X49表示當前正在發生的事件;event_id=0X4A表示后續發生的事件。那么在當前事件完成進入后續事件時,此時的后續事件變成當前事件,后續事件將由一個新的事件代替。這一變化是使用version_number來加以描述的。例如:
當前播出 19:00----19:30 新聞聯播 event_id=0X49;
后續播出 19:31----20:00 動畫片 event_id=0X4A,此時version_number=0
設新的后續 21:01---21:45 曲藝節目。當新聞聯播完成后,則變化為:
當前播出 19:31----20:00 動畫片 event_id=0X49;
后續播出 21:01----21:45 曲藝節目 event_id=0X4A,此時version_number=1
圖6是由SDT表和EIT表所產生的EPG信息,圖7是由EIT表所產生的一個節目頻道的節目播出時間表。

EIT表是SI表中結構最復雜的表,圖8是它的結構圖。
機頂盒通常都有一個“節目指南”的按鈕,按動它就可以讀取EIT schedule自表里的信息,顯示某一個業務在某段時間內的所有事件列表。
⑷ 業務組關聯表(BAT)的作用
BAT表是由DVB定義的,是一個SI表,因此它是一個全局表,一個數字電視系統只對應一個BAT表,其table_id=0X4A。一個節目類別對應一個段。為了讓受眾能更方便地在眾多的節目中尋找出自己喜歡的節目,往往需要提供一種把眾多的節目頻道進行分類的方法(一個類相當一個節目組)。例如把電影頻道歸為“家庭影院”的類別,把電視連續劇歸為“電視劇場”的類別等等,BAT表就提供了這一功能,每一個類別都用一個bouquet_id 來標識。它包括了節目業務名稱(類別)及節目組所包含的節目清單(節目列表)。BAT表在SI信息中屬于可選表。
BAT表還支持一個特別的描述符,稱為國家獲得性描述符。此描述符的意義是:運營商可能出于運營的需要,把一些業務提供給特定(國家)的人群收看,而不希望給其他(其他國家)的人群收看,那么,就可以利用國家獲得性這一描述符,在其他人群收看節目時不顯示這些業務。這個描述符同樣支持SDT表,不過在SDT 表中指的是某一個業務,而不是一個業務組。所以,BAT表概括地說是提供給不同觀眾不同組合節目的一種方法。
⑸ 其他表
對于PAT、PMT和CAT表,都是由MPEG-2定義的,是PSI里面的表,所以這三個表都不是全局表,它們存在在每一個TS中。PSI信息使用這3個表來定義碼流的結構,一個TS對應一個PAT表;一個CA系統和一個TS對應一個CAT表,CAT表的PID值總是1,每個CAT都只給出其所在流的EMM(包括攜帶組密鑰的EMM和攜帶產品密鑰的EMM)包的PID等信息;一個業務(節目頻道)對應一個PMT表,一個TS對應多個PMT(視流中所攜帶的業務數而定)且只對應本流的業務。
PAT的PID是0,它是PSI信息的根,要查找信息時首先必須從PAT開始,表中列出了傳送碼流中所有節目所對應的PMT的PID,可根據這些PID找到相應的PMT包。在PMT表中又可以找到與節目有關的所有基本碼流,如視頻、音頻、ECM和數據等有關信息的PID,然后把這些標有這一PID的數據包組織起來通過解碼,把節目或數據還原出來。
以上PSI的幾個表和NIT表是解碼所必需的表,而SDT和EIT是構成業務信息所必需的表。
SI還有其他的表,如:TDT表,稱為時間日期表,它給出了當前的時間和日期的信息,有時也可作為機頂盒解碼時鐘的更新;RST表,稱為運行狀態表,屬于可選表,它用于快速更新某節目或某些節目的運行參數,RST只有在狀態或節目變更時才發送一次;ST表,稱為填充表,屬于可選表,它用來替代不傳送的表。
⑹ 描述符
描述符是用來攜帶節目要素和TS流等的各種參數的信息結構、語法與語義,描述符是PSI/SI表的構成主體,PSI/SI表的主要意義就是傳送這些描述符,為機頂盒提供相關業務描述與運行參數,可以認為SI表是舟而描述符是舟上的貨物。描述符的通用結構都是以descriptor_tag (描述符標記)字段與緊跟其后的descriptor_length(描述符長度)字段開始。每個SI表通常都使用特定的描述符,但也不限制這些描述符在其他表中使用。
描述符是隨使用它的SI表一起發送的。
描述符以及在它們的PSI/SI表中的位置見下表
在PSI/SI表里,我們通常都看到一個循環語句,如:
for(I=0;I<N;I++){
descriptor()
}
這個循環語句是用來引導機頂盒讀取描述參數用的,以SDT子表為例,由于一個SDT子表里面包含了對多個業務的描述,每個業務的都使用了Multilingual_service_name_descriptor和service_descriptor描述符,也就是說一個SDT子表里同樣的描述符被使用了多次(也可以理解為,一個描述符里存有多個描述參數),通過循環語句來對描述符進行重復有序的讀取,來提取里面的描述參數,直到讀完為止。
網絡信息表(NIT)的段數據結構:
Netwok_information_section(){ 網絡信息段
Table_id 8bit 表標識
Section_syntax_indicator 1bit 段序列指示(標記位),此值=1時,規定從section第43位開始的5位是版本號
Reserved_future_use 1bit 保留將來使用字段
Reserved 2bit 保留字段
Section_length 12bit 段長度
Network_id 16bit 網絡標識
Reserved 2bit 保留字段
Version_number 5bit 表版本號,作為表更新機制
Current_next_indicator 1bit 當前/下一個有效指示位(標記位),表示當前表是否有效,如果Current_next_indicator為1,則當前表有效;0表示當前表無效.
Section_number 8bit 當前段段號
Last_section_number 8bit 最后段號(反映了這個子表由多少個段組成,如其值為0X01那么表示這個子表由兩個段組成)
Reserved_future_use 4bit 保留將來使用字段
Network_description_length 12bit 網絡描述符長度
For(I=0;I<N;I++){ 獲取網絡
Descriptor() 讀取網絡描述參數(網絡名稱描述符、連接描述符)
}
reserved_future_use 4bit 保留將來使用字段
transport_stream_loop_length 12bit 傳輸流循環長度
for(I=0;I<N;I++){ 獲取傳輸流(整個系統的傳輸流)
transport_stream_id 16bit 傳輸流標識
original_network_id 16bit 原始網絡標識
reserved_future_use 4bit 保留將來使用字段
transport_descriptors_length 12bit 傳輸描述符長度
for(j=0;j<N;j++){ 獲取傳輸流的描述子(有線傳送系統描述符、業務列表描述符等)
descriptor() 讀取描述參數
}
}
CRC_32 32bit 循環校驗碼
}