DVB系統(tǒng)中多路TS流的軟件復(fù)用關(guān)鍵技術(shù)及實(shí)現(xiàn)
本文分析了多路數(shù)字電視節(jié)目系統(tǒng)級(jí)復(fù)用原理,并對(duì)數(shù)字電視節(jié)目專(zhuān)用信息PSI的提取和重構(gòu)及系統(tǒng)層節(jié)目時(shí)間參考PCR值的修正等關(guān)鍵技術(shù)進(jìn)行研究,提出了進(jìn)行軟件復(fù)用的具體方法,最后在Windows平臺(tái)上,應(yīng)用VC++開(kāi)發(fā)環(huán)境設(shè)計(jì)實(shí)現(xiàn)了TS流分析與復(fù)用軟件系統(tǒng)TSAM,測(cè)試結(jié)果表明軟件復(fù)用速率達(dá)到并遠(yuǎn)遠(yuǎn)超過(guò)了一路傳輸碼流的處理速度,該軟件復(fù)用方案是有效可行性的。用軟件實(shí)現(xiàn)傳輸流的復(fù)用,可以節(jié)約硬件成本,降低系統(tǒng)的開(kāi)發(fā)費(fèi)用;且算法全部軟件實(shí)現(xiàn),可移植性高,具有良好的擴(kuò)展性,可以方便靈活的加入數(shù)字電視節(jié)目指南等輔助信息。
本文引用地址:http://www.ex-cimer.com/article/165570.htm1.引言 TPF FPT
數(shù)字圖像通信的最廣泛也是最常見(jiàn)的應(yīng)用就是數(shù)字電視廣播系統(tǒng)[1],與此對(duì)應(yīng)的 DVB 標(biāo)準(zhǔn)的建立更是加速了數(shù)字電視廣播系統(tǒng)的大規(guī)模應(yīng)用。DVB 標(biāo)準(zhǔn)選定 ISO JIEC MPEG-2 標(biāo)準(zhǔn)作為音頻及視頻的編碼壓縮方式,信源編碼進(jìn)行了統(tǒng)一,隨后對(duì) MPEG-2 碼流進(jìn)行打包形成 TS流(transport stream),進(jìn)行多個(gè)傳輸流復(fù)用,最后通過(guò)衛(wèi)星、有線(xiàn)電視等不同媒介傳輸方式進(jìn)行傳輸。
對(duì)多個(gè)傳輸流進(jìn)行復(fù)用的意義在于復(fù)用后的傳輸流只占用一個(gè)物理的傳輸信道, 傳輸流中的每個(gè)節(jié)目所占用的是傳輸流提供的虛擬信道。在解碼器端,只需要一套固定的接收設(shè)備,對(duì)不同節(jié)目的選擇只是在傳輸流中選擇不同的原始碼流,這大大簡(jiǎn)化了接收機(jī)的實(shí)現(xiàn),節(jié)省了成本,提高了靈活性,而且根據(jù)該標(biāo)準(zhǔn)定義,解碼器的系統(tǒng)時(shí)鐘與調(diào)制解調(diào)器的時(shí)鐘是完全獨(dú)立的。這使得在實(shí)現(xiàn)這兩個(gè)子系統(tǒng)彼此功能時(shí)是完全分開(kāi)的,因此接口變得很簡(jiǎn)單。
在數(shù)字電視節(jié)目制作及發(fā)送時(shí),對(duì)多路節(jié)目的復(fù)用,由于一般的計(jì)算機(jī)很難處理幾十兆到幾百兆碼率的碼流,所以,目前大部分的復(fù)用器都是用硬件實(shí)現(xiàn)的,但其價(jià)格昂貴[2,3]。然而,隨著計(jì)算機(jī)速度越來(lái)越快,在多 CPU的服務(wù)器上,完全能夠?qū)崿F(xiàn)多路節(jié)目的實(shí)時(shí)軟件復(fù)用。 與硬件復(fù)用相比,軟件復(fù)用具有靈活性高,開(kāi)發(fā)成本低的優(yōu)點(diǎn)。在軟件復(fù)用實(shí)現(xiàn)方案中,服務(wù)器從衛(wèi)星電視或其它片源中實(shí)時(shí)采集 TS流,經(jīng)過(guò)分析和過(guò)濾將所選擇的基本流復(fù)用成一路 TS 流,然后通過(guò)普通的 TS 流播出卡發(fā)送出去。論文分析多路 TS 流復(fù)用原理,針對(duì) TS 流中的信息提取和節(jié)目專(zhuān)用信息 PSI (program specific information)合成,及軟件復(fù)用中的節(jié)目時(shí)鐘參考 PCR ( program clock reference)的修正等問(wèn)題進(jìn)行研究,提出了進(jìn)行軟件復(fù)用的 具體方法,最后在 Windows 平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)多路 TS流的軟件復(fù)用。
2.TS流的系統(tǒng)級(jí)復(fù)用
數(shù)字電視節(jié)目的復(fù)用包括兩個(gè)階段, 對(duì)音/視頻 PES包的節(jié)目復(fù)用和對(duì) TS流的系統(tǒng)復(fù)用[4]。本文研究第二個(gè)階段即 TS系統(tǒng)級(jí)復(fù)用,將多個(gè)單路的 TS流合成一個(gè)多節(jié)目 TS流。數(shù)字電視系統(tǒng)級(jí)復(fù)用是數(shù)字電視系統(tǒng)的關(guān)鍵技術(shù)之一, 其中數(shù)字電視節(jié)目專(zhuān)用信息 PSI 的提取和重構(gòu)及系統(tǒng)層節(jié)目時(shí)間參考 PCR 值的修正,是復(fù)用器的兩項(xiàng)關(guān)鍵技術(shù)。
基于 MPEG-2 的 TS 流多路數(shù)字電視節(jié)目 TS 流系統(tǒng)級(jí)復(fù)用原理如圖 1 所示。當(dāng)多路 TS 流復(fù)用成一路 TS流時(shí),首先將對(duì)各路 TS流的 PSI 進(jìn)行搜集并分析其碼流,得到各路 TS碼流中相應(yīng)的視頻、音頻、數(shù)據(jù)信息的碼率、對(duì)各路節(jié)目的包標(biāo)識(shí) PID, 數(shù)字電視節(jié)目專(zhuān)用信息PSI,節(jié)目時(shí)間參考 PCR 等信息進(jìn)行處理,丟棄各路原有的 PSI 信息。當(dāng)出現(xiàn)兩路 TS 流中的 PID發(fā)生沖突時(shí), 需要修改一路或者多路 TS流中某一數(shù)據(jù)流的 PID(即復(fù)用器需要對(duì)修改了 PID的視頻/音頻包或其他數(shù)據(jù)包進(jìn)行 PID更新)??梢钥吹剑瑹o(wú)論是否出現(xiàn) PID沖突,復(fù)用器都需要重構(gòu) PSI 信息,其濾波的處理過(guò)程如圖 2 所示。對(duì)不同節(jié)目的 PID 值進(jìn)行修改后,與本地產(chǎn)生的這類(lèi)數(shù)據(jù)重新整合為復(fù)用后新的 PSI 等系統(tǒng)級(jí)控制信息,同時(shí)插入符合 DVB-SI 規(guī)范的業(yè)務(wù)信息, 并在攜帶有調(diào)整字段的 TS包中, 判斷帶有 PCR標(biāo)志位字段的值, 如果該值為“1”,那么在該 TS 流離開(kāi)復(fù)用器的時(shí)刻,需要對(duì) TS 包中的 PCR 值做相應(yīng)的修正或重新插入新的節(jié)目時(shí)鐘參考,具體方法將在后面詳細(xì)介紹。
3.TS流節(jié)目專(zhuān)用信息的提取與重構(gòu)
數(shù)字電視節(jié)目專(zhuān)用信息 PSI 描述 TS流的組成結(jié)構(gòu),在 MPEG-2 系統(tǒng)層中極為重要,一個(gè)有多路節(jié)目和私有數(shù)據(jù)的 TS 流,需要 PSI 信息將每一路節(jié)目的音視頻對(duì)應(yīng)起來(lái)[5]。PSI 信息將 TS 流中的內(nèi)容描述成一個(gè)樹(shù)狀的結(jié)構(gòu),如圖 3 所示。在 TS 流中可以復(fù)用多個(gè)節(jié)目,每個(gè)節(jié)目又可以包含多個(gè)基本碼流(通常是單個(gè)視頻流、多個(gè)音頻流)。DVB 系統(tǒng)沿用 MPEG-2 的節(jié)目專(zhuān)用信息 PSI 來(lái)確定傳輸?shù)墓?jié)目和包標(biāo)識(shí) PID 的關(guān)系以及節(jié)目的組成結(jié)構(gòu)等情況。 PSI 主要包括以下四個(gè)表:節(jié)目關(guān)聯(lián)表(PAT: Program Association Table)、條件訪(fǎng)問(wèn)表(CAT: Conditional Access Table)、節(jié)目映射表(PMT: Program Map Table)、網(wǎng)絡(luò)信息表 NIT: Network Information Table),本文需要涉及到節(jié)目關(guān)聯(lián)表 PAT 和節(jié)目映射表 PMT。
由于 TS 流復(fù)用后的相關(guān)聯(lián)內(nèi)容發(fā)生了變化,因此要對(duì) PSI 信息進(jìn)行處理。PSI 信息的處理 包括 PAT 和 PMT 表的替換,PID 的重映射,還有就是連續(xù)計(jì)數(shù)器的修改,雖然這不算 PSI 信息, 但是這部分工作與 PSI 信息修改關(guān)系很密切, 同時(shí)在實(shí)際的實(shí)現(xiàn)過(guò)程中可以同時(shí)完成。
復(fù)用后的流中有多路節(jié)目,原來(lái)每一路節(jié)目中的 PAT 和 PMT 都只有自身的內(nèi)容,為此需要 將 PAT 和 PMT 替換。首先根據(jù)輸入流的數(shù)目和預(yù)占的頻道號(hào),在一開(kāi)始動(dòng)態(tài)生成 PAT 表,PMT 表則在最初計(jì)算好,生成靜態(tài)的 PMT 對(duì)應(yīng)替換即可,同時(shí)根據(jù)每個(gè) PMT_PID找到實(shí)現(xiàn) 計(jì)算好的 PMT 表,將其中的視音頻 PID 找到,作為將要替換的視音頻 PID。之所以在一開(kāi) 始生成或者直接使用靜態(tài)表是因?yàn)?PAT 和 PMT有 32 位 CRC,無(wú)法完成實(shí)時(shí)計(jì)算。
評(píng)論