久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 手機電視(DVB-H)軟件接收器

手機電視(DVB-H)軟件接收器

作者: 時間:2012-06-05 來源:網絡 收藏

圖6 MPE-FEC框架交織編碼方式

本文引用地址:http://cqxgywz.com/article/165496.htm

4、 系統設計

的詳細架構如圖7所呈現,主要由傳輸串流分派器(TransportStreamDispatcher)、子譯碼器(SubDecoder)組件、控制器(Controller)對象與MPE-FEC運算單元(MPE-FECOperationUnit)所組成。

圖7架構

4.1傳輸串流分派器

傳輸串流分派器主要負責將DVB-H傳輸串流中各種類型的封包轉遞給不同的子譯碼器進行處理并從封包中過濾使用者所欲觀看的節目傳遞給DVB-H終端裝置。若在Burst傳輸期間,封包數據因噪聲干擾而損毀,或者傳送端于傳送時為符合服務的傳輸位率而添加一些填塞封包,因此為減少封包的處理時間,故在傳輸串流分派器取得封包之后,便先檢查此流封包是否發生錯誤與是否為填塞封包,若發生錯誤,則將封包丟棄,而整個執行程序將進入到錯誤分類機制(ErrorCategorizationmechanism)中,若為填塞封包則即早丟棄,避免填塞封包送入子譯碼器中花費不必要的處理時間。為簡化子譯碼器的復雜度,傳輸串流分派器系使用分派表方式來注冊欲譯碼的封包子譯碼器類型,并藉此分離各個子譯碼器之間的相依關系。分派表系采用雜湊表(Hashtable)的一種應用,使用雜湊表的優點在于不論注冊數量的多寡,查詢時間花費永遠固定為常數值,因此將可廣泛支持未來規范中新增的窗體或臺所自訂的私有窗體。而整個傳輸串流分派器的分派處理動作則如表1的虛擬程序代碼(Pseudocode)所示。

表1 傳輸串流分派器之虛擬程序代碼

If System Start then

Set Buffer to receive TS packet

If ErrorIndicator is equal to 1

Drop this TS packet

Start Error Categorization mechanism

else if PID is equal to 8191

Drop this TS packet

else if PayloadUnitStartIndicator is equal to 1

If ContinueSection is not equal to Null

Call the sub-decoder to continue decode

else

If sub-decoder is not found

Drop this unknown TS packet

else

Call the sub-decoder to decode

else

If ContinueSection is not equal to Null

Call the sub-decoder to continue decode

else

Drop this TS packet

4.2子譯碼器組件

于初始化時期,子譯碼器必須向傳輸串流分派器注冊封包類型,以便從傳輸串流分派器中得到相對應的封包。

表2子譯碼器共通虛擬程序代碼

Function:DecodeFunction

從傳輸串流分派器中取得section中的第一個封包并譯碼。

Set PayloadBuffer to receive the section data

Set PaylaodLength equal to PacketPayloadLength

If SectionHeaderLength is equal to 12

Decode the section header

If section payload is not equal to Null

Output section payload to

SectionPayloadCottectionUnit

else

Set ReceiveLength equal to PayloadLength

Set ContinueSection to this sub-decoder

Function:ContinueFunction

從傳輸串流分派器中取得接續的section封包資料。

Set PayloadBuffer to receive the section data

Set PayloadLength equal to PayloadLength add

ReceiveSectionPayloadLength

If SectionHeaderLength is equal to 12

Decode the section header

If section payload is not equal to Null

Output section payload to

SectionPayloadCottectionUnit

If PayloadLength is equal to SectionLength

Set ContinueSection to Null

else

Set ContinueSection to this sub-decoder

子譯碼器共通的虛擬程序代碼如表2所示,傳輸串流分派器則根據分派表中已經注冊的子譯碼器信息來遞送封包給特定子譯碼器,子譯碼器則根據封包中所傳達的數據將訊息或組態釋出,并傳遞給控制器對象。當子譯碼器藉由解讀section的長度字段得知該section數據長度超過一個封包所能承載的數量時,會將接續片段指針對象設定指向自己。此后,當傳輸串流分派器接收到封包后,將會檢視接續片段指針對象是否為空對象,若為空對象則從分派表中尋找負責解a此封包的子譯碼器。若非空對象,則將封包傳送給欲接續接收的子譯碼器,直到整個section數據接收完成之后,子譯碼器才會將接續片段指針對象重設為空對象,而從下一個封包開始,將以正常程序尋找封包子譯碼器。

4.3控制器對象

控制器對象為DVB-H軟件接收器與使用者互動的接口。控制器的主要功能除了擷取使用者的輸入訊息之外,也實作訊息輸出接口。在控制行為部分,控制器僅與子譯碼器互動,在訊息輸出方面,則是與整個DVB-H軟件接收器中的所有組件連結在一起。另外,在實作設計上則不同于傳統將控制接口嵌入于播放器的作法,藉由此方式達到DVB-H軟件接收器與播放裝置各別獨立的能力。

4.4MPE-FEC運算單元

MPE-FEC運算單元主要負責進行整個MPE-FEC機制的運作,如圖8而其又可分為三個運作單元,分別為:MPEsection數據收集單元、FECsection數據收集單元與所羅門譯碼單元(RSDecodingUnit)。

其中MPE與FECsection數據收集單元主要負責收集從子譯碼器解讀取出的section數據,當完成section數據收集后即填入位于所羅門譯碼單元中的MPE-FEC框架中,直到整個框架的所有section數據均已收集完成,則立即進行每列的所羅門糾錯譯碼,藉此來修復于傳輸時因噪聲干擾所造成的數據錯誤。



評論


相關推薦

技術專區

關閉