在以DVB爲基礎的數字電視系統中,在TS碼流中插入的數據可以分爲幾類:
1) 節目信息,即PSI信息,包括PAT、PMT、NIT等,這些信息是從碼流中分解出節目所必需的;
2) 業務信息,即SI信息,包括NIT、SDT、EIT、TDT、TOT等,這些信息包括了網絡描述、業務說明、節目介紹、時間等;
3) 專用數據(如Subtitle、Teletext等),這類數據是作爲輔助業務的;
4) 應用類數據,這類數據的數據格式和傳輸封裝方式與具體的應用相關,而且數據量都比較大。
在DVB的系統中,上述前三類的數據類型都是通過DSM-CC Section方式來封裝的,這種方式的優點是通過校驗和來排查數據傳輸中的錯誤。但是DSM-CC的Section封裝只是解決了所需的一部分要求,另外還需要對數據結構、數據關係進行定義。前三類數據都具有明確的應用目標,在DVB標準中,對他們的用途、數據格式、封裝方式都進行了詳細而明確的定義。第四類數據隨着具體應用的不同而存在較大的變化,DVB標準無法預先具體地定義。但是,DVB標準爲這些數據的發送提供了幾種機制,雖然沒有明確數據格式,但在傳輸封裝上作了儘可能細緻的規定和說明。
一、DVB的5種數據廣播方式
DVB系統中,針對上述的第四類數據,提供了5種廣播式傳輸機制。應用系統可以根據具體使用要求,選擇一到幾種機制。這幾種方式各有自己的特點。
1 數據管道(Data piping)
這種方式實現在廣播網上傳送簡單的、異步的端到端數據。廣播數據直接由MPEG-2 TS包的負載攜帶。
2 數據流(Data Streaming)
這種方式實現在廣播網上發送面向流的端到端數據,發送方式可以是異步的,也可以是同步的或從同步的。數據是由MPEG-2系統中定義的PES攜帶。異步數據流僅指無定時要求的數據流(如RS-232數據)。同步數據流是指有定時要求的數據流,且數據和時鐘可以在接收端重新生成一個同步的數據流(如E1、T1)。從同步的數據流是指有定時要求的數據流,且流中的數據通過和其它類型的數據流同步能夠回放(如視頻和音頻)。
3 多協議封裝(MPE)
這種方式在廣播網上傳送通訊協議數據報(datagram)。實現方法是把數據報封裝成DSM-CC section,後者和MPEG-2私有section格式兼容。
4 數據輪(DC)
這種方式通過廣播網週期性地發送數據模塊。模塊大小已知,且可以隨時更新、加入數據族或從中刪除。如果業務需要,模塊可以聚集成模塊組,同樣,組可以聚集成超組。
數據輪使用DSM-CC數據輪傳送。在DVB數據廣播規範中,定義了用於DVB兼容網絡需要添加的結構和描述子,沒有對PID和定時參數的外部引用,從而能夠離線準備內容。
5 對象輪(OC)
這 種方式通過廣播網絡週期性地發送數據模塊,數據模塊的內容既可以是目錄結構、文件實體,也可以是流或流事件信息,這些內容以對象的方式進行封裝,對於不同 類型的對象可以分別指定發送速率。不同的對象可以跨流發送,同一個對象也可以屬於多個對象輪,因此對象輪的傳送方式給予了前端系統非常靈活的操作方式,即 可以將多種內容關聯操作,形成一個功能強大的服務,而且還可以根據服務應用的優先級給予不同級別的響應。
6 對象輪——多媒體業務廣播的首選
從上面的介紹可知道,對象輪這種發送機制是最靈活的。在開展基於數據廣播的多媒體業務時,有幾個要求:
1) 載體類型以文件和信號流兩種方式爲主,而文件需要比較複雜的目錄結構;
2) 媒體類型多種多樣,包括文字、圖片、視頻、音頻等;
3) 業務組織形式需要靈活,實現數據與視音頻互動,業務之間關聯性也比較強;
4) 數據內容需要重複發送。
根據以上的要求,對比5種傳輸機制的特點,可以看出,對象輪機制是最好的選擇。
選擇對象輪作爲傳輸機制,也是滿足系統先進性和前瞻性要求的。在DVB標準體系中,MHP定義了一套開展多媒體業務所需要的技術體系。該體系就採用了對象輪作爲首選傳輸機制。
二、OC與DC的直觀比較
首先,DC是基礎層協議,面向應用層提供一個數據傳輸和控制協議;OC是應用層協議,應用層的靈活性高。他們之間的關係就像網絡協議中的TCP/IP和Http的關係。
其次,從協議內容來看,DC是定義數據塊傳輸,而OC則定義數據塊的邏輯意義。所以OC中定義的是邏輯對象,比如Directory,File以及這些邏輯對象之間的關係,而這些對象最終要通過DC的數據塊來傳輸。
第三,DC本身並不能傳輸任何東西,它的擴充版本EDC纔可以。在中國,DC(EDC)定義出來後,只有2家實施,而且,EDC沒能對接過,也就是沒有經過實踐驗證過。
第四,從傳輸效率來講,他們的傳輸效率差不多,只是OC複雜一些。2002年,我們搞了一個比較測試,結果如下:
DC(EDC) OC
效率 96%~97% 93%~95.2%
我們可以看到,OC比DC(EDC)只低3個百分點。
實際上,隨着機頂盒filter能力的不斷提升,這個傳輸效率差異影響不大。
第五,目前國際主流的數據廣播系統如Thales,Canal+,NDS,OpengTV,Alticast,Liberate等都是採用OC協議。
三、如何對OC與DC進行區別
由於OC是在DC的基礎上,對數據進行了邏輯定義,實際上兩者的傳輸並無本質性區別,因此從表面效果以及功能上,很難分別數據是由OC還是OC方式廣播.
目前採取的區別方式有兩種:
1. 對碼流的分析
對播放的碼流進行分析,OC和DC的區別,根本體現在DSM-CC中的BIOP Message數據結構上
OC:
在OC方式廣播的碼流中,BIOP Message由Dir Message和Fil Message組成,清晰的描述了各對象直接的邏輯關係
DC:
在DC方式廣播的碼流中,BIOP Message由Date Message(沒有dir,fil之分)組成,不存在邏輯關係.
區別步驟:
a. 通過碼流分析工具,查看PAT/PMT
b. 在PMT表中,查找到Ox3C數據的描述,找到對應的pid值
c. 根據在PMT中查找到的pid值,查找該pid值的packet包(通常的碼流分析工具,會對此類pid的包進行歸納,否則需要收工查找)
d. 通過對DSM-CC數據結構的分析(一般情況下碼流分析工具會代替我們完整這部分工作)
e. 分析0x3C數據中的DDB數據結構
f. 在DDB中,分析到DataBlock字段,就可以區分是OC數據廣播還是DC數據廣播.
g. 如果可以看到前四個字段爲:0x42494F50 即BIOP
h. 根據此圖繼續對數據結構進行分析:
i. 分析到objectKind data字段,就可以判斷此BIOP的數據結構.
j. 如果對應的objectKind data字段值爲上圖中的0x66696C00 (fil) 或者64697200 (dir) 則可以斷定,爲OC數據廣播.
2. 採用制定終端進行接收
簡單易行的方法是採用標準OC終端設備進行接收,由於採用DC廣播方式的碼流無法在OC終端進行解析,由此也可以對OC
1) 節目信息,即PSI信息,包括PAT、PMT、NIT等,這些信息是從碼流中分解出節目所必需的;
2) 業務信息,即SI信息,包括NIT、SDT、EIT、TDT、TOT等,這些信息包括了網絡描述、業務說明、節目介紹、時間等;
3) 專用數據(如Subtitle、Teletext等),這類數據是作爲輔助業務的;
4) 應用類數據,這類數據的數據格式和傳輸封裝方式與具體的應用相關,而且數據量都比較大。
在DVB的系統中,上述前三類的數據類型都是通過DSM-CC Section方式來封裝的,這種方式的優點是通過校驗和來排查數據傳輸中的錯誤。但是DSM-CC的Section封裝只是解決了所需的一部分要求,另外還需要對數據結構、數據關係進行定義。前三類數據都具有明確的應用目標,在DVB標準中,對他們的用途、數據格式、封裝方式都進行了詳細而明確的定義。第四類數據隨着具體應用的不同而存在較大的變化,DVB標準無法預先具體地定義。但是,DVB標準爲這些數據的發送提供了幾種機制,雖然沒有明確數據格式,但在傳輸封裝上作了儘可能細緻的規定和說明。
一、DVB的5種數據廣播方式
DVB系統中,針對上述的第四類數據,提供了5種廣播式傳輸機制。應用系統可以根據具體使用要求,選擇一到幾種機制。這幾種方式各有自己的特點。
1 數據管道(Data piping)
這種方式實現在廣播網上傳送簡單的、異步的端到端數據。廣播數據直接由MPEG-2 TS包的負載攜帶。
2 數據流(Data Streaming)
這種方式實現在廣播網上發送面向流的端到端數據,發送方式可以是異步的,也可以是同步的或從同步的。數據是由MPEG-2系統中定義的PES攜帶。異步數據流僅指無定時要求的數據流(如RS-232數據)。同步數據流是指有定時要求的數據流,且數據和時鐘可以在接收端重新生成一個同步的數據流(如E1、T1)。從同步的數據流是指有定時要求的數據流,且流中的數據通過和其它類型的數據流同步能夠回放(如視頻和音頻)。
3 多協議封裝(MPE)
這種方式在廣播網上傳送通訊協議數據報(datagram)。實現方法是把數據報封裝成DSM-CC section,後者和MPEG-2私有section格式兼容。
4 數據輪(DC)
這種方式通過廣播網週期性地發送數據模塊。模塊大小已知,且可以隨時更新、加入數據族或從中刪除。如果業務需要,模塊可以聚集成模塊組,同樣,組可以聚集成超組。
數據輪使用DSM-CC數據輪傳送。在DVB數據廣播規範中,定義了用於DVB兼容網絡需要添加的結構和描述子,沒有對PID和定時參數的外部引用,從而能夠離線準備內容。
5 對象輪(OC)
這 種方式通過廣播網絡週期性地發送數據模塊,數據模塊的內容既可以是目錄結構、文件實體,也可以是流或流事件信息,這些內容以對象的方式進行封裝,對於不同 類型的對象可以分別指定發送速率。不同的對象可以跨流發送,同一個對象也可以屬於多個對象輪,因此對象輪的傳送方式給予了前端系統非常靈活的操作方式,即 可以將多種內容關聯操作,形成一個功能強大的服務,而且還可以根據服務應用的優先級給予不同級別的響應。
6 對象輪——多媒體業務廣播的首選
從上面的介紹可知道,對象輪這種發送機制是最靈活的。在開展基於數據廣播的多媒體業務時,有幾個要求:
1) 載體類型以文件和信號流兩種方式爲主,而文件需要比較複雜的目錄結構;
2) 媒體類型多種多樣,包括文字、圖片、視頻、音頻等;
3) 業務組織形式需要靈活,實現數據與視音頻互動,業務之間關聯性也比較強;
4) 數據內容需要重複發送。
根據以上的要求,對比5種傳輸機制的特點,可以看出,對象輪機制是最好的選擇。
選擇對象輪作爲傳輸機制,也是滿足系統先進性和前瞻性要求的。在DVB標準體系中,MHP定義了一套開展多媒體業務所需要的技術體系。該體系就採用了對象輪作爲首選傳輸機制。
二、OC與DC的直觀比較
首先,DC是基礎層協議,面向應用層提供一個數據傳輸和控制協議;OC是應用層協議,應用層的靈活性高。他們之間的關係就像網絡協議中的TCP/IP和Http的關係。
其次,從協議內容來看,DC是定義數據塊傳輸,而OC則定義數據塊的邏輯意義。所以OC中定義的是邏輯對象,比如Directory,File以及這些邏輯對象之間的關係,而這些對象最終要通過DC的數據塊來傳輸。
第三,DC本身並不能傳輸任何東西,它的擴充版本EDC纔可以。在中國,DC(EDC)定義出來後,只有2家實施,而且,EDC沒能對接過,也就是沒有經過實踐驗證過。
第四,從傳輸效率來講,他們的傳輸效率差不多,只是OC複雜一些。2002年,我們搞了一個比較測試,結果如下:
DC(EDC) OC
效率 96%~97% 93%~95.2%
我們可以看到,OC比DC(EDC)只低3個百分點。
實際上,隨着機頂盒filter能力的不斷提升,這個傳輸效率差異影響不大。
第五,目前國際主流的數據廣播系統如Thales,Canal+,NDS,OpengTV,Alticast,Liberate等都是採用OC協議。
三、如何對OC與DC進行區別
由於OC是在DC的基礎上,對數據進行了邏輯定義,實際上兩者的傳輸並無本質性區別,因此從表面效果以及功能上,很難分別數據是由OC還是OC方式廣播.
目前採取的區別方式有兩種:
1. 對碼流的分析
對播放的碼流進行分析,OC和DC的區別,根本體現在DSM-CC中的BIOP Message數據結構上
OC:
在OC方式廣播的碼流中,BIOP Message由Dir Message和Fil Message組成,清晰的描述了各對象直接的邏輯關係
DC:
在DC方式廣播的碼流中,BIOP Message由Date Message(沒有dir,fil之分)組成,不存在邏輯關係.
區別步驟:
a. 通過碼流分析工具,查看PAT/PMT
b. 在PMT表中,查找到Ox3C數據的描述,找到對應的pid值
c. 根據在PMT中查找到的pid值,查找該pid值的packet包(通常的碼流分析工具,會對此類pid的包進行歸納,否則需要收工查找)
d. 通過對DSM-CC數據結構的分析(一般情況下碼流分析工具會代替我們完整這部分工作)
e. 分析0x3C數據中的DDB數據結構
f. 在DDB中,分析到DataBlock字段,就可以區分是OC數據廣播還是DC數據廣播.
g. 如果可以看到前四個字段爲:0x42494F50 即BIOP
h. 根據此圖繼續對數據結構進行分析:
i. 分析到objectKind data字段,就可以判斷此BIOP的數據結構.
j. 如果對應的objectKind data字段值爲上圖中的0x66696C00 (fil) 或者64697200 (dir) 則可以斷定,爲OC數據廣播.
2. 採用制定終端進行接收
簡單易行的方法是採用標準OC終端設備進行接收,由於採用DC廣播方式的碼流無法在OC終端進行解析,由此也可以對OC