<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于CMMB數據廣播平臺的數據接收程序設計

基于CMMB數據廣播平臺的數據接收程序設計

作者: 時(shí)間:2011-04-06 來(lái)源:網(wǎng)絡(luò ) 收藏

XPE包頭有7個(gè)比特是保留的,在這里可以將它進(jìn)行自定義以便傳送不同服務(wù)類(lèi)型的,其中2個(gè)比特用來(lái)標識的格式,如文本、圖片、網(wǎng)頁(yè)等,另外的5個(gè)比特則用來(lái)定義服務(wù)類(lèi)型,具體定義方式如表1和表2所示。

本文引用地址:http://dyxdggzs.com/article/156480.htm

a.JPG

c.JPG

2 解析業(yè)務(wù)數據的軟件實(shí)現
解析數據業(yè)務(wù)數據主要就是解析復用幀碼流。它的解析過(guò)程可分為以下幾個(gè)模塊:復用幀流提取、CRC檢測、控制信息解復用、業(yè)務(wù)信息解復用。首先要對控制信息進(jìn)行解復用,然后再根據控制信息中的關(guān)鍵信息來(lái)解析業(yè)務(wù)信息。
2.1 控制信息的解復用
解復用控制信息時(shí)首先要解析的是復用幀頭,在這里可以定義一個(gè)結構體來(lái)保存相關(guān)的信息,同樣的為了保存各個(gè)表的參數信息以便解復用業(yè)務(wù)信息時(shí)使用,將控制信息中的每個(gè)表和緊急也都對應地定義一個(gè)結構體,其中CMCT和SMCT的構造相同可共用一個(gè)結構體,CSCT和SSCT也可共用一個(gè)結構體。在結構體中定義好各個(gè)表對應的參數,在讀取碼流時(shí),先保存復用幀頭的相關(guān)參數信息,然后再保存控制信息表的信息,具體做法是根據表標識號來(lái)判斷表的類(lèi)型,確定類(lèi)型后將碼流里對應的參數存入到定義好的結構體參數中。然后對各表進(jìn)行分析,最終獲得頻點(diǎn)編號、中心頻率、復用幀所占用的時(shí)隙號以及子幀與業(yè)務(wù)ID之間的對應關(guān)系等信息,以方便用戶(hù)所選的業(yè)務(wù)數據。
2.2 業(yè)務(wù)信息的解復用
業(yè)務(wù)信息處理模塊如圖4所示。首先是模塊的初始化,這時(shí)讀線(xiàn)程函數也被開(kāi)啟了,接著(zhù)就進(jìn)入了處理數據的循環(huán),先判斷業(yè)務(wù)數據是否處理完畢(這里定義了一個(gè)布爾變量來(lái)標記),如果處理完則將分類(lèi)好的音視頻數據和其他數據做相應的處理。如果未處理完畢,則讀取下一個(gè)幀的數據,倘若此時(shí)沒(méi)有數據則阻塞等待,直到有數據到來(lái),接著(zhù)對這一幀數據進(jìn)行解復用,得到業(yè)務(wù)數據流,將數據歸類(lèi),放在不同的緩沖區。

d.JPG


解析一個(gè)幀的數據步驟如下:
第一步:解析復用幀頭。首先讀取碼流中的復用幀幀頭,并將相關(guān)參數保存到已定義好的結構體中。
第二步:解析復用子幀。由于復用子幀的個(gè)數不止一個(gè),所以可以用一個(gè)循環(huán)來(lái)處理,同業(yè)務(wù)數據處理的總框圖類(lèi)似,設置一個(gè)布爾變量來(lái)標識復用子幀是否處理完畢,先解析子幀的幀頭,提取視頻段、音頻段和數據段數據,然后判斷復用子幀是否處理完畢,如果處理完則跳出循環(huán)往下執行,如果沒(méi)處理完則繼續處理,處理完畢后提取出視頻段、音頻段和數據段數據。
第三步:解析視頻段、音頻段和數據段。由于采用的是數據廣播來(lái)傳送,因此這里只對數據段進(jìn)行解析,先根據子幀頭中的信息將數據段提取出來(lái),這里數據單元的內容即為XPE包。
第四步:解析XPE包。仍然需要先解讀包頭信息,另外要注意的是首包包頭還額外攜帶了數據包總長(cháng)度,業(yè)務(wù)模式指示等信息,接到首包時(shí)要記錄下來(lái),然后根據包頭信息對業(yè)務(wù)數據進(jìn)行組裝。

3 結論
經(jīng)過(guò)以上對復用幀和XPE包結構的剖析,用VC++編寫(xiě)了解析數據廣播業(yè)務(wù)數據的程序。實(shí)驗輸入測試用的是離線(xiàn)MFS流,顯示了一些測試數據,該軟件可以植入應用系統中來(lái)所需要的數據和圖片,靈活方便,另外采用軟件編寫(xiě)降低了硬件的成本,而且可擴展性強。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>