新聞中心

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

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

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

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

        本文引用地址:http://www.104case.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數據均已收集完成,則立即進行每列的所羅門糾錯譯碼,藉此來修復于傳輸時因噪聲干擾所造成的數據錯誤。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安宁市| 隆化县| 宜良县| 阳江市| 屏边| 淮南市| 石阡县| 芒康县| 淳安县| 郧西县| 汝阳县| 高密市| 龙门县| 陆川县| 霍邱县| 沈阳市| 大邑县| 清流县| 类乌齐县| 屏东县| 霞浦县| 苍溪县| 永丰县| 弥勒县| 乌拉特中旗| 镇远县| 铜陵市| 巫山县| 延长县| 海伦市| 民权县| 喜德县| 乃东县| 芦山县| 浑源县| 红桥区| 临泽县| 兴义市| 霞浦县| 鲜城| 金阳县|