資料廣播中 OC與DC的比較與區別

2021-04-13 07:30:58 字數 3256 閱讀 5500

oc

dc

之比較

在以dvb為基礎的數碼電視系統中,在ts碼流中插入的資料可以分為幾類:

1)節目資訊,即psi資訊,包括pat、pmt、nit等,這些資訊是從碼流中分解出節目所必需的;

2)業務資訊,即si資訊,包括nit、sdt、eit、tdt、tot等,這些資訊包括了網路描述、業務說明、節目介紹、時間等;

3)專用資料(如subtitle、teletext等),這類資料是作為輔助業務的;

4)應用類資料,這類資料的資料格式和傳輸封裝方式與具體的應用相關,而且資料量都比較大。

在dvb的系統中,上述前三類的資料型別都是通過d**-cc section方式來封裝的,這種方式的優點是通過校驗和來排查資料傳輸中的錯誤。但是d**-cc的section封裝只是解決了所需的一部分要求,另外還需要對資料結構、資料關係進行定義。前三類資料都具有明確的應用目標,在dvb標準中,對他們的用途、資料格式、封裝方式都進行了詳細而明確的定義。第四類資料隨著具體應用的不同而存在較大的變化,dvb標準無法預先具體地定義。但是,dvb標準為這些資料的傳送提供了幾種機制,雖然沒有明確資料格式,但在傳輸封裝上作了盡可能細緻的規定和說明。

一、dvb的5種資料廣播方式

dvb系統中,針對上述的第四類資料,提供了5種廣播式傳輸機制。應用系統可以根據具體使用要求,選擇一到幾種機制。這幾種方式各有自己的特點。

1 資料管道(data piping)

這種方式實現在廣播網上傳送簡單的、非同步的端到端資料。廣播資料直接由mpeg-2 ts包的負載攜帶。

2 資料流(data streaming)

3 多協議封裝(mpe)

4 資料輪(dc)

這種方式通過廣播網周期性地傳送資料模組。模組大小已知,且可以隨時更新、加入資料族或從中刪除。如果業務需要,模組可以聚集成模組組,同樣,組可以聚集成超組。

資料輪使用d**-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:

在oc方式廣播的碼流中,biop message由dir message和fil message組成,清晰的描述了各物件直接的邏輯關係

dc:

在dc方式廣播的碼流中,biop message由date message(沒有dir,fil之分)組成,不存在邏輯關係.

區別步驟:

a.

通過碼流分析工具,檢視pat/pmt

b.在pmt表中,查詢到ox

3c資料的描述,找到對應的pid值

c.根據在pmt中查詢到的pid值,查詢該pid值的packet包(通常的碼流分析工具,會對此類pid的包進行歸納,否則需要收工查詢)

d.通過對d**-cc資料結構的分析(一般情況下碼流分析工具會代替我們完整這部分工作)

e.分析0x

3c資料中的ddb資料結構

f.在ddb中,分析到datablock欄位,就可以區分是oc資料廣播還是dc資料廣播.

g.如果可以看到前四個欄位為:0x

42494f

50 即biop

h.根據此圖繼續對資料結構進行分析:

i.分析到objectkind data欄位,就可以判斷此biop的資料結構.

j.如果對應的objectkind data字段值為上圖中的0x

66696c

00 (fil) 或者64697200 (dir) 則可以斷定,為oc資料廣播.

2.採用制定終端進行接收

簡單易行的方法是採用標準oc終端裝置進行接收,由於採用dc廣播方式的碼流無法在oc終端進行解析,由此也可以對oc

[email protected]

剖析OC中的bounds與frame的區別

在oc的ui控制項中,我們常常會碰到兩個屬性frame 與bound,前者相對比較好理解,而bound有時候卻比較繞,今天我們來仔細研究下bound的一些特性。首先,我們來看下下面的 通過 我們可以看出bounds的width值 height值與frame是相等的,只不過origin點的x y預設都...

OC中棧區與堆區的記憶體概念解析

棧區是先進後出,佇列是先進先出。棧區就相當於玻璃杯,往玻璃杯裡放奧利奧,第一塊放入的奧利奧,肯定是最後乙個拿出來。佇列就相當於掉了底的玻璃杯,最先放入的,必定最先掉出來。網上有個更絕的比喻 佇列是吃多了拉,棧區是吃多了吐。這裡解析的是棧區和堆區的記憶體問題,說到了棧區自然引出佇列,捎帶提一筆。言歸正...

OC中棧區與堆區的記憶體概念解析

棧區是先進後出,佇列是先進先出。棧區就相當於玻璃杯,往玻璃杯裡放奧利奧,第一塊放入的奧利奧,肯定是最後乙個拿出來。佇列就相當於掉了底的玻璃杯,最先放入的,必定最先掉出來。網上有個更絕的比喻 佇列是吃多了拉,棧區是吃多了吐。這裡解析的是棧區和堆區的記憶體問題,說到了棧區自然引出佇列,捎帶提一筆。言歸正...