DVB業(yè)務信息PSI/SI綜述
一、SI信息的構成
1、信息構成
SI信息內容是按照network(網(wǎng)絡)→transport strem(傳輸流)→service(業(yè)務)→event(事件)的分層順序描述,如圖1所示。SI數(shù)據(jù)信息是按照一定的數(shù)據(jù)結構進行存儲的,這樣一來才能達到方便、快捷地進行數(shù)據(jù)檢索和提取。SI數(shù)據(jù)主要有:網(wǎng)絡信息、傳輸流信息、業(yè)務信息、業(yè)務的事件信息等,并且大量的信息都是通過描述符來傳輸?shù)?,所以可用樹狀鏈表來存儲?shù)據(jù),構成從網(wǎng)絡、傳輸流、業(yè)務、事件的樹狀結構。機頂盒接收端的解析主要負責這些SI數(shù)據(jù)的重建。
在數(shù)字電視系統(tǒng)中,為了能有效地從眾多的數(shù)據(jù)包中組織起SI信息,而使用了很多的標識。有Network_id(網(wǎng)絡標識)、Original_network_id(原始網(wǎng)絡標識)、Transport_stream_id(傳輸流標識)、Service id(業(yè)務標識)、eventid_id(事件標識)、Bouquet_id(業(yè)務群組標識)。這些標識是作為信息查找定位用的,例如:要在一個TS里找出一個業(yè)務信息,就要知道這個業(yè)務信息在那個網(wǎng)絡里、在哪個TS里和這個業(yè)務信息在這個流里的標識,這樣一來,通過層層過濾,就能精確地定位描述這個業(yè)務信息的位置,并把它們找出來進行數(shù)據(jù)組織。圖1就非常清楚地表明了這種查找思路。
一個網(wǎng)絡信息由network_id來定位。
一個TS由network_id、Original_network_id、Transport_stream_id來定位,標明這個流在那個網(wǎng)絡播發(fā),它原屬那個網(wǎng)絡,并給它加上標識。
一個業(yè)務由network_id、Original_network_id、Transport_stream_id、service_id來定位,標明這個業(yè)務在那個網(wǎng)絡播發(fā),它原屬那個網(wǎng)絡和那個流,并給它加上標識。這體現(xiàn)在SDT表中。
一個事件由network_id、Original_network_id、Transport_stream_id、service_id、event_id來定位,標明這個事件在那個網(wǎng)絡播發(fā),它原屬那個網(wǎng)絡和那個流及那個業(yè)務,并給它加上標識。這體現(xiàn)在EIT表中。
據(jù)此,根據(jù)各個SI表的功能,各表的ID結構如下:
NIT:network_id、Original_network_id、Transport_stream_id 、service_id。
SDT:Original_network_id、Transport_stream_id 、service_id。
EIT:Original_network_id、Transport_stream_id 、service_id、event_id。
BAT:bouquet_id 、Original_network_id 、Transport_stream_id 、service_id。
另外,還有一個PID(包標識),它的作用是給每一個數(shù)據(jù)包打上一個標記,TS承載有視頻數(shù)據(jù)、音頻數(shù)據(jù)、PSI和SI信息數(shù)據(jù)、圖文電視數(shù)據(jù)、字幕數(shù)據(jù)、數(shù)據(jù)廣播數(shù)據(jù)、交互業(yè)務數(shù)據(jù)、CA系統(tǒng)的控制信息數(shù)據(jù)等等,除了PSI和SI信息數(shù)據(jù)和CA系統(tǒng)的控制信息數(shù)據(jù)外,其他的數(shù)據(jù)的PID都是通過PMT表給出的,CA系統(tǒng)的控制信息數(shù)據(jù)的PID是由CAT表給出的,而承載了PSI和SI信息的各種表的PID值是固定分配的。如下表
表 PID值
PAT | 0X0000
CAT | 0X0001
TSDT | 0X0002
NIT、ST | 0X0010
SDT、BAT、ST | 0X0011
EIT、ST | 0X0012
RST、ST | 0X0013
TDT、TOT、ST | 0X0014
DIT | 0X001E
SIT | 0X001F
由于這些表是分配了固定的PID值,所以機頂盒就可以根據(jù)這些PID值來辨認出是什么表,并讀取表中的描述參數(shù)來生成EPG信息和完成各種數(shù)據(jù)的組織、解碼出所需要的節(jié)目和信息。
2、表的構成
表是組成SI信息的一種數(shù)據(jù)結構。在TS中有很多不同節(jié)目的數(shù)據(jù)包,解碼器如何確定哪個數(shù)據(jù)包屬于某個節(jié)目?其答案就是在TS中的PSI和SI信息里,這些信息精確地指引出獲得某節(jié)目與該節(jié)目數(shù)據(jù)包的PID之間的關系。
由MPEG-2定義的TS里面,數(shù)據(jù)包攜帶了兩類信息:一是音、視頻等素材的數(shù)據(jù),二是PSI表。具有給定PID的數(shù)據(jù)包的有序排列就形成了TS流。PSI表里的承載的內容主要是TS(本節(jié)目流)的描述參數(shù)。由MPEG-2定義的PSI主要包含有三個表:PAT、PMT、CAT。每個表都可作為一個或多個TS包的凈荷插入TS中傳送。

一個TS數(shù)據(jù)包的凈荷為188個字節(jié),當一個PSI/SI表的字節(jié)長度大于184字節(jié)時,就要對這個表進行分割,形成段(section)來傳送。分段機制主要是將一個數(shù)據(jù)表分割成多個數(shù)據(jù)段。在PSI/SI表到TS包的轉換過程中,段起到了中介的作用。由于一個數(shù)據(jù)包只有188字節(jié),而段的長度是可變的,EIT表的段限長4096字節(jié),其余PSI/SI表的段限長為1024字節(jié)。因此,一個段要分成幾部分插入到TS包的凈荷中。如圖2所示。


(1024)時,可把子表分割成兩個或更多個段, 并通過section_number來區(qū)分,如圖3-1所示。
l 對于EIT表的子表具有相同的table_id、oringinal_network_id、tansport_stream _id、 service_id和version_number。
以EIT表為例。EIT的PID是0X0012,當它的table_id=0X4E時,EIT描述的是在當前TS中的當前/后續(xù)(EIT present/following)事件信息;table_id=0X4F時,EIT描述的是在其它TS中的當前/后續(xù)(EIT present/following)事件信息。這兩個不同的描述形成了EIT的兩個表。每個表分為兩個段,一個段用來描述當前正在播放的事件,另一個段用來描述即將播放的事件。此時兩個段的table_id、service_id、tansport_stream_id是相同的,但section_number不相同,section_number 0x00用來描述當前事件,section_number 0x01描述下一個事件。
NIT表主要是提供有關物理網(wǎng)絡的信息,網(wǎng)絡信息表傳送本網(wǎng)絡以及與此有關的其它網(wǎng)絡的一些信息。每個網(wǎng)絡都有唯一的識別符(network_id)。網(wǎng)絡信息表主要攜帶:網(wǎng)絡識別符(Network_ID)、網(wǎng)絡名稱、傳輸系統(tǒng)參數(shù)(有線傳輸系統(tǒng)參數(shù)包括:頻率、調制方式、FEC外碼、符號率、FEC內碼)、節(jié)目業(yè)務類型及Service_ID等信息。機頂盒只要調諧到攜帶NIT表的傳送流中,即可提取其它網(wǎng)絡的參數(shù),一般解碼器便可根據(jù)提取出來的信息,自動搜索頻道。
這里說一說network_id和oringinal_network_id的分別。每個運營商都需要注冊唯一的network_id,假設中央電視臺的network_id=0X01,廣州電視臺的network_id=0X02 。當中央電視臺直接播發(fā)自己的節(jié)目時,network_id=oringinal_network_id,如果由廣州電視臺轉播中央電視臺的節(jié)目時,那么network_id=0X02,oringinal_network_id=0X01。也就是說oringinal_network_id等于節(jié)目原發(fā)運營商的network_id。
⑵ 業(yè)務描述表(SDT)的作用
SDT表是由DVB定義的,是一個SI表,因此它是一個全局表,一個數(shù)字電視系統(tǒng)對應兩個SDT表,分別為當前流(actual transport)表(table_id=0X42)和其他流(other transport)表(table_id=0X46)。每一個TS對應一個子表(也有對應多個子表的,如同一個TS但業(yè)務來自不同的original_network),通過tansport_stream_id和original_network_id來區(qū)分。圖4就是一個SDT表的構成圖。從圖可看出,這個SDT表由兩個表組成,一個是當前流表,只有一個子表;另一個是其他流表,由三個子表組成,每個流對應一個子表。
SDT表用于描述系統(tǒng)中業(yè)務的名稱、業(yè)務提供者、是否有相應的事件描述表等方面的信息;業(yè)務描述表可以描述當前傳輸流,也可以描述其他傳輸流,這由表的Table_ID來區(qū)分。業(yè)務描述表提供了如下的信息:屬于哪一個節(jié)目業(yè)務群;節(jié)目業(yè)務的類型,如PAL、NTSC、SECAM、調頻廣播、圖文電視、準視頻點播等;節(jié)目業(yè)務的提供者;可以接收該業(yè)務的國家和不可以接收該業(yè)務的國家;指向特定的鏈接信息;實現(xiàn)準視頻點播的指導信息;實現(xiàn)多畫面的控制信息;指示使用的加密系統(tǒng);給出實現(xiàn)交互式回傳信道的電話號碼;提供多語種的節(jié)目業(yè)務名稱和廣播者以及私有數(shù)據(jù)。但最常用的是業(yè)務列表,即對業(yè)務名稱的描述,如中央1臺、廣州新聞臺、珠江臺等等。
⑶ 事件信息表(EIT)的作用
EIT表是由DVB定義的,是一個SI表,因此它是一個全局表,一個數(shù)字電視系統(tǒng)每一個業(yè)務對應兩種EIT表。一是EIT present/following表(描述當前事件/后續(xù)事件),一個業(yè)務對應著一個EIT present/following表,EIT present/following表分為當前流表(table_id=0X4E)和其他流表(table_id=0X4F),每一個流通常對應6個(有6個業(yè)務)EIT present/following子表,每個子表由兩個段組成,分別是EIT present段和EIT following段,section_number= 0x00的段描述當前播放的事件, section_number= 0x01段描述后續(xù)播放事件,圖5所示。其他流表結構與當前流表相同;二是EIT schedule(時間表)表,一個業(yè)務最多可對應16個EIT schedule表,那么每個流通常最多可對應6(業(yè)務數(shù))×16=96個子表,每個子表由256個段組成(由于分段號是8個比特,所以最多只能有256個分段),。
對于EIT schedule表,它是用作描述一個業(yè)務在一段時間(可以是一天、一周,最大可以是64天,根據(jù)冗余帶寬來進行設定)內所播放的節(jié)目安排,節(jié)目的播出安排是以時間和節(jié)目簡介作為描述的。時間及內容是描述一個事件的最基本元素,例如:把一個業(yè)務所播放的每一個節(jié)目都看成是一個事件,那么每一個節(jié)目開始播放的時間和播放時間的長度及事件的內容就是該事件的基本元素,EIT schedule子表就是用這一基本元素來描述每一個事件并產(chǎn)生某一段時間內要發(fā)生的所有事件的列表,因此EIT schedule子表的信息量很大(EIT表的段限長4096字節(jié)),由256個section組成,所以又引入了segment(片段)的概念。把256個段分成32個segment;一個segment由8個section(分段)組成,每個segment可以描述3個小時的事件信息,也就是說,一個EIT schedule表由32個片段組成,每個片段由8個分段組成,通過section_number來區(qū)分,那么每個子表可描述32*3=96小時(4天)的事件信息,由于一個業(yè)務最多可對應著16個EIT schedule表,則對于一個業(yè)務來說最多可以描述16(0X50----0X5F)*4=64天的事件信息。這里,segment相當于一個事件組,section是事件組內具體的一個事件。EIT schedule表也分為當前流表(table_id=0X50---0X5F 共16個)和其他流表(table_id=0X60---0X6F 共16個), EIT schedule表是可選的(即系統(tǒng)可以發(fā)送此表也可以不發(fā)送此表),事件信息按時間順序排列。
EIT表包含事件或節(jié)目的有關數(shù)據(jù),如事件的名稱、開始時間、持續(xù)時間、運行狀態(tài)等。事件信息表提供如下信息:節(jié)目段的標識號、起始時間、持續(xù)時間、播放狀態(tài)、是否加密;指向特定信息的鏈接信息;節(jié)目段多語種的簡短介紹;節(jié)目段的詳細介紹;兩段同樣節(jié)目段的時間偏移;基本碼流類型介紹,如視頻的幅型比、伴音的類型、字幕的類型等;使用的加密系統(tǒng)介紹;節(jié)目類型介紹,如電影/戲劇、新聞、綜藝、體育、少兒、音樂、藝術、社會政治、文教等;節(jié)目限定年齡的級別介紹;給出實現(xiàn)交互式回傳信道的電話號碼;為滿足各節(jié)目段的碼率而提供的緩存大小信息及私有數(shù)據(jù)。事件信息中提供了類似于廣播電視報所提供的節(jié)目表的內容,根據(jù)EIT及其它表所提供的信息,可以做出各種EPG功能,如按節(jié)目類型檢索、按時間檢索及對某類節(jié)目的鎖定等??梢哉fEIT表是提供EPG信息的主要表,也是結構最復雜的SI表。
在EIT present/following表中,每一事件都用一個event_id來標識它,每一個事件的順序關系(當前正在發(fā)生的事件/后續(xù)發(fā)生的事件)就由EIT present/following來描述。
那么如何來識別當前正在發(fā)生的事情和后續(xù)發(fā)生的事情呢?那是通過event_id來標識的,如圖5所示。圖中event_id=0X49表示當前正在發(fā)生的事件;event_id=0X4A表示后續(xù)發(fā)生的事件。那么在當前事件完成進入后續(xù)事件時,此時的后續(xù)事件變成當前事件,后續(xù)事件將由一個新的事件代替。這一變化是使用version_number來加以描述的。例如:
當前播出 19:00----19:30 新聞聯(lián)播 event_id=0X49;
后續(xù)播出 19:31----20:00 動畫片 event_id=0X4A,此時version_number=0
設新的后續(xù) 21:01---21:45 曲藝節(jié)目。當新聞聯(lián)播完成后,則變化為:
當前播出 19:31----20:00 動畫片 event_id=0X49;
后續(xù)播出 21:01----21:45 曲藝節(jié)目 event_id=0X4A,此時version_number=1
圖6是由SDT表和EIT表所產(chǎn)生的EPG信息,圖7是由EIT表所產(chǎn)生的一個節(jié)目頻道的節(jié)目播出時間表。
EIT表是SI表中結構最復雜的表,圖8是它的結構圖。
機頂盒通常都有一個“節(jié)目指南”的按鈕,按動它就可以讀取EIT schedule自表里的信息,顯示某一個業(yè)務在某段時間內的所有事件列表。
⑷ 業(yè)務組關聯(lián)表(BAT)的作用
BAT表是由DVB定義的,是一個SI表,因此它是一個全局表,一個數(shù)字電視系統(tǒng)只對應一個BAT表,其table_id=0X
BAT表還支持一個特別的描述符,稱為國家獲得性描述符。此描述符的意義是:運營商可能出于運營的需要,把一些業(yè)務提供給特定(國家)的人群收看,而不希望給其他(其他國家)的人群收看,那么,就可以利用國家獲得性這一描述符,在其他人群收看節(jié)目時不顯示這些業(yè)務。這個描述符同樣支持SDT表,不過在SDT 表中指的是某一個業(yè)務,而不是一個業(yè)務組。所以,BAT表概括地說是提供給不同觀眾不同組合節(jié)目的一種方法。
⑸ 其他表
對于PAT、PMT和CAT表,都是由MPEG-2定義的,是PSI里面的表,所以這三個表都不是全局表,它們存在在每一個TS中。PSI信息使用這3個表來定義碼流的結構,一個TS對應一個PAT表;一個CA系統(tǒng)和一個TS對應一個CAT表,CAT表的PID值總是1,每個CAT都只給出其所在流的EMM(包括攜帶組密鑰的EMM和攜帶產(chǎn)品密鑰的EMM)包的PID等信息;一個業(yè)務(節(jié)目頻道)對應一個PMT表,一個TS對應多個PMT(視流中所攜帶的業(yè)務數(shù)而定)且只對應本流的業(yè)務。
PAT的PID是0,它是PSI信息的根,要查找信息時首先必須從PAT開始,表中列出了傳送碼流中所有節(jié)目所對應的PMT的PID,可根據(jù)這些PID找到相應的PMT包。在PMT表中又可以找到與節(jié)目有關的所有基本碼流,如視頻、音頻、ECM和數(shù)據(jù)等有關信息的PID,然后把這些標有這一PID的數(shù)據(jù)包組織起來通過解碼,把節(jié)目或數(shù)據(jù)還原出來。
以上PSI的幾個表和NIT表是解碼所必需的表,而SDT和EIT是構成業(yè)務信息所必需的表。
SI還有其他的表,如:TDT表,稱為時間日期表,它給出了當前的時間和日期的信息,有時也可作為機頂盒解碼時鐘的更新;RST表,稱為運行狀態(tài)表,屬于可選表,它用于快速更新某節(jié)目或某些節(jié)目的運行參數(shù),RST只有在狀態(tài)或節(jié)目變更時才發(fā)送一次;ST表,稱為填充表,屬于可選表,它用來替代不傳送的表。
⑹ 描述符
描述符是用來攜帶節(jié)目要素和TS流等的各種參數(shù)的信息結構、語法與語義,描述符是PSI/SI表的構成主體,PSI/SI表的主要意義就是傳送這些描述符,為機頂盒提供相關業(yè)務描述與運行參數(shù),可以認為SI表是舟而描述符是舟上的貨物。描述符的通用結構都是以descriptor_tag (描述符標記)字段與緊跟其后的descriptor_length(描述符長度)字段開始。每個SI表通常都使用特定的描述符,但也不限制這些描述符在其他表中使用。
描述符是隨使用它的SI表一起發(fā)送的。
描述符以及在它們的PSI/SI表中的位置見下表

在PSI/SI表里,我們通常都看到一個循環(huán)語句,如:
for(I=0;I<N;I++){
descriptor()
}
這個循環(huán)語句是用來引導機頂盒讀取描述參數(shù)用的,以SDT子表為例,由于一個SDT子表里面包含了對多個業(yè)務的描述,每個業(yè)務的都使用了Multilingual_service_name_descriptor和service_descriptor描述符,也就是說一個SDT子表里同樣的描述符被使用了多次(也可以理解為,一個描述符里存有多個描述參數(shù)),通過循環(huán)語句來對描述符進行重復有序的讀取,來提取里面的描述參數(shù),直到讀完為止。
網(wǎng)絡信息表(NIT)的段數(shù)據(jù)結構:
Netwok_information_section(){ 網(wǎng)絡信息段
Table_id 8bit 表標識
Section_syntax_indicator 1bit 段序列指示(標記位),此值=1時,規(guī)定從section第43位開始的5位是版本號
Reserved_future_use 1bit 保留將來使用字段
Reserved 2bit 保留字段
Section_length 12bit 段長度
Network_id 16bit 網(wǎng)絡標識
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 網(wǎng)絡描述符長度
For(I=0;I<N;I++){ 獲取網(wǎng)絡
Descriptor() 讀取網(wǎng)絡描述參數(shù)(網(wǎng)絡名稱描述符、連接描述符)
}
reserved_future_use 4bit 保留將來使用字段
transport_stream_loop_length 12bit 傳輸流循環(huán)長度
for(I=0;I<N;I++){ 獲取傳輸流(整個系統(tǒng)的傳輸流)
transport_stream_id 16bit 傳輸流標識
original_network_id 16bit 原始網(wǎng)絡標識
reserved_future_use 4bit 保留將來使用字段
transport_descriptors_length 12bit 傳輸描述符長度
for(j=0;j<N;j++){ 獲取傳輸流的描述子(有線傳送系統(tǒng)描述符、業(yè)務列表描述符等)
descriptor() 讀取描述參數(shù)
}
}
CRC_32 32bit 循環(huán)校驗碼
}
posted on 2009-09-18 10:46 葉子 閱讀(2316) 評論(3) 編輯 收藏 引用 所屬分類: MPEG