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

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