《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > DVB系統中多路TS流的軟件復用關鍵技術及實現
DVB系統中多路TS流的軟件復用關鍵技術及實現
摘要: 本文分析了多路數字電視節目系統級復用原理,并對數字電視節目專用信息PSI的提取和重構及系統層節目時間參考PCR值的修正等關鍵技術進行研究,提出了進行軟件復用的具體方法,最后在Windows平臺上,應用VC++開發環境設計實現了TS流分析與復用軟件系統TSAM,測試結果表明軟件復用速率達到并遠遠超過了一路傳輸碼流的處理速度,該軟件復用方案是有效可行性的。用軟件實現傳輸流的復用,可以節約硬件成本,降低系統的開發費用;且算法全部軟件實現,可移植性高,具有良好的擴展性,可以方便靈活的加入數字電視節目指南等輔助信息
Abstract:
Key words :

本文分析了多路數字電視節目系統級復用原理,并對數字電視節目專用信息PSI的提取和重構及系統層節目時間參考PCR值的修正等關鍵技術進行研究,提出了進行軟件復用的具體方法,最后在Windows平臺上,應用VC++開發環境設計實現了TS流分析與復用軟件系統TSAM,測試結果表明軟件復用速率達到并遠遠超過了一路傳輸碼流的處理速度,該軟件復用方案是有效可行性的。用軟件實現傳輸流的復用,可以節約硬件成本,降低系統的開發費用;且算法全部軟件實現,可移植性高,具有良好的擴展性,可以方便靈活的加入數字電視節目指南等輔助信息。

1.引言 TPF FPT

數字圖像通信的最廣泛也是最常見的應用就是數字電視廣播系統[1],與此對應的 DVB 標準的建立更是加速了數字電視廣播系統的大規模應用。DVB 標準選定 ISO JIEC MPEG-2 標準作為音頻及視頻的編碼壓縮方式,信源編碼進行了統一,隨后對 MPEG-2 碼流進行打包形成 TS流(transport stream),進行多個傳輸流復用,最后通過衛星、有線電視等不同媒介傳輸方式進行傳輸。

對多個傳輸流進行復用的意義在于復用后的傳輸流只占用一個物理的傳輸信道,傳輸流中的每個節目所占用的是傳輸流提供的虛擬信道。在解碼器端,只需要一套固定的接收設備,對不同節目的選擇只是在傳輸流中選擇不同的原始碼流,這大大簡化了接收機的實現,節省了成本,提高了靈活性,而且根據該標準定義,解碼器的系統時鐘與調制解調器的時鐘是完全獨立的。這使得在實現這兩個子系統彼此功能時是完全分開的,因此接口變得很簡單。

在數字電視節目制作及發送時,對多路節目的復用,由于一般的計算機很難處理幾十兆到幾百兆碼率的碼流,所以,目前大部分的復用器都是用硬件實現的,但其價格昂貴[2,3]。然而,隨著計算機速度越來越快,在多 CPU的服務器上,完全能夠實現多路節目的實時軟件復用。與硬件復用相比,軟件復用具有靈活性高,開發成本低的優點。在軟件復用實現方案中,服務器從衛星電視或其它片源中實時采集 TS流,經過分析和過濾將所選擇的基本流復用成一路 TS 流,然后通過普通的 TS 流播出卡發送出去。論文分析多路 TS 流復用原理,針對 TS 流中的信息提取和節目專用信息 PSI (program specific information)合成,及軟件復用中的節目時鐘參考 PCR ( program clock reference)的修正等問題進行研究,提出了進行軟件復用的 具體方法,最后在 Windows 平臺上設計并實現多路 TS流的軟件復用。

2.TS流的系統級復用

數字電視節目的復用包括兩個階段, 對音/視頻 PES包的節目復用和對 TS流的系統復用[4]。本文研究第二個階段即 TS系統級復用,將多個單路的 TS流合成一個多節目 TS流。數字電視系統級復用是數字電視系統的關鍵技術之一, 其中數字電視節目專用信息 PSI 的提取和重構及系統層節目時間參考 PCR 值的修正,是復用器的兩項關鍵技術。
 

基于 MPEG-2 的 TS 流多路數字電視節目 TS 流系統級復用原理如圖 1 所示。當多路 TS 流復用成一路 TS流時,首先將對各路 TS流的 PSI 進行搜集并分析其碼流,得到各路 TS碼流中相應的視頻、音頻、數據信息的碼率、對各路節目的包標識 PID, 數字電視節目專用信息PSI,節目時間參考 PCR 等信息進行處理,丟棄各路原有的 PSI 信息。當出現兩路 TS 流中的 PID發生沖突時, 需要修改一路或者多路 TS流中某一數據流的 PID(即復用器需要對修改了 PID的視頻/音頻包或其他數據包進行 PID更新)。可以看到,無論是否出現 PID沖突,復用器都需要重構 PSI 信息,其濾波的處理過程如圖 2 所示。對不同節目的 PID 值進行修改后,與本地產生的這類數據重新整合為復用后新的 PSI 等系統級控制信息,同時插入符合 DVB-SI 規范的業務信息, 并在攜帶有調整字段的 TS包中, 判斷帶有 PCR標志位字段的值,如果該值為“1”,那么在該 TS 流離開復用器的時刻,需要對 TS 包中的 PCR 值做相應的修正或重新插入新的節目時鐘參考,具體方法將在后面詳細介紹。
 

 3.TS流節目專用信息的提取與重構
數字電視節目專用信息 PSI 描述 TS流的組成結構,在 MPEG-2 系統層中極為重要,一個有多路節目和私有數據的 TS 流,需要 PSI信息將每一路節目的音視頻對應起來[5]。PSI 信息將 TS 流中的內容描述成一個樹狀的結構,如圖 3 所示。在 TS流中可以復用多個節目,每個節目又可以包含多個基本碼流(通常是單個視頻流、多個音頻流)。DVB 系統沿用 MPEG-2 的節目專用信息 PSI來確定傳輸的節目和包標識 PID 的關系以及節目的組成結構等情況。 PSI 主要包括以下四個表:節目關聯表(PAT: Program AssociationTable)、條件訪問表(CAT: Conditional Access Table)、節目映射表(PMT: Program Map Table)、網絡信息表
NIT: Network Information Table),本文需要涉及到節目關聯表 PAT 和節目映射表 PMT。

由于 TS 流復用后的相關聯內容發生了變化,因此要對 PSI 信息進行處理。PSI 信息的處理 包括 PAT 和 PMT 表的替換,PID 的重映射,還有就是連續計數器的修改,雖然這不算 PSI 信息, 但是這部分工作與 PSI 信息修改關系很密切,同時在實際的實現過程中可以同時完成。
復用后的流中有多路節目,原來每一路節目中的 PAT 和 PMT 都只有自身的內容,為此需要 將 PAT 和 PMT
替換。首先根據輸入流的數目和預占的頻道號,在一開始動態生成 PAT 表,PMT 表則在最初計算好,生成靜態的 PMT 對應替換即可,同時根據每個 PMT_PID找到實現 計算好的 PMT 表,將其中的視音頻 PID 找到,作為將要替換的視音頻 PID。之所以在一開 始生成或者直接使用靜態表是因為 PAT 和 PMT有 32 位 CRC,無法完成實時計算。
PMT 表替換后,每一路流中原有的視音頻幀的 PID 應與其對應替換的 PMT 表中的視音頻 PID 保持一致,即需要進行 PID 重映射。
在傳輸流處理過程中,先分析每一個讀入的 TS 幀,根據 PID的不同,選擇替換的內容,如果是 PAT 和 PMT 表,則整個 TS幀替換,如果是視音頻幀,則只替換 PID,替換之后,應該對連續計數器加一。
需要注意的是,單路傳輸流的構成并不一樣,有的傳輸流是一路音頻一路視頻,有的是一路 視頻兩路音頻;有的 PCR 的 PID與視頻的PID相同,有的則不同。所以,應該為每一種情 況都準備一張 PMT 表,在新素材到來時,根據分析出來的 PSI 信息的情況,決定選用那一 張 PMT 表。這樣作雖然要創建很多靜態表,增加了系統內存的占用,但是卻能使程序簡單化,易于實現,同時不用隨時計算 32 位的 CRC,提高了程序的穩定性。在素材文件切換時, 如果 PMT 表需要發生變化,需要修改 PMT 表的版本號。
每一路流都有 PAT,假使復用的路數為 n,如果每一路的 PAT 都去替換,就會使得 PAT 表 發送頻率提升為原來的 n 倍。MPEG-2 規定,PSI 信息傳送的頻率每秒不低于 25 次,協議中只規定了下限,沒有規定上限,雖然每一路都替換,并不違背協議,但是很多復用器和解 碼器在 PSI 信息過多的時候就會工作不正常,這是因為 PSI 信息的 32位 CRC 校驗很耗時, 所以通常只替換其中一路的 PAT,其余的都用空包代替。 PSI 信息合成具體流程如圖 4 所示。
 
4.TS流的節目時鐘參考值修正
在 MPEG-2 編碼器中有一個系統時鐘,該系統時鐘用來生成一個共同的時序以便音頻/視頻能夠正確地解碼與播放,同時可以用來指示在采樣瞬間系統時鐘的瞬時值[6]。正是由于編碼器中有共同的系統時鐘,解碼器中的時鐘可以根據節目時鐘參考(PCR)重新恢復,并通過時間標記的正確使用為解碼器中操作的正確同步提供基準。
時鐘處理和碼率有很大的相關性,某個時間段的碼率就是這段時間的數據量與時鐘差值的比。為了防止在碼率出現波動的時 PCR 時鐘差值越界,導致解碼器不能正常工作,復用后出碼率應該比所有單路節目的總碼率稍大。在實際中,如果真的出現這種情況,為了避免所有節目不能正常播放,本文采取的方法是停掉其中某一路,這樣降低輸出總碼率中的有效碼率,保證其他節目正常播放。在這里需要說明的是,MPEG-2
中 TS流有兩種,一種是恒碼率流,一種是變碼率流,本文研究的復用是針對恒碼率流的復用。
根據 MPEG-2 標準,TS流中的 PCR字段長度為 48b, PCR 也是另外一種時間標記,是編碼 器 27MHz 時基的 42b 采樣值,解碼器利用它來恢復系統時鐘并進行恰當的解碼操作,它有 兩個部分組成:一部分以本地參考時鐘的 1/300 (90kHz) 為單位,稱為 program_clock_reference_base ,為 33b 字段;另外一部分稱為program_clock_reference_extension,是以本地參考時鐘(27MHz)為單位的 9b字段。

其中 sysclkfre 為系統時鐘 27MHZ。PCR 的單位是 1 /27M 秒,分為兩部分表示。實際編程中,當得到一個新的 PCR 值,用式(1)和式 (2) 得到 PCR_base ( 33bit) 和 PCR_ext ( 9bit)兩 部分,填入 TS 幀中。在輸出碼率恒定的情況下,每一個 TS 幀傳輸所用的時間△PCR 值可以通過下式計算:

其中 nCoderate 為輸出的總碼率。△PCR 就是每一個 TS幀的時間刻度。
系統開始運行時,確定一個 PCR 的初始值,并為每一路申請一個計數器 nCounter變量,計數在兩個 PCR 幀之間的 TS幀數,根據以下公式計算新的PCR值:

式中,PCR_old 代表上一個 PCR 的值,PCR_new 代表當前新 PCR 的值。在得到新的 PCR 值之后,用公式(1)(2)(3) 計算出PCR_base和 PCR_ext 寫入幀中, 同時 PCR_old = PCR new, nCounter=0。 nCouter 是對整個傳輸流而言的,不管TS 幀是不是當前計算的這路 TS 的內容,或者空幀,nCounter都要累加。
在 MPEG2 協議中,PCR 由 PCR_base(33bit)和 PCR_ext(9bit)表示,總共 42bit,當 PCR的值超過 42bit
所能表達的范圍時,需要循環重新開始。由于 PCR 和 PTS以及 DTS的關系,在 重新開始循環 PCR 的時候,一定要將 PTS 和 DTS 也重新回0,同時要將 PCR 幀中調整域 中的 discontinuity_indicator字段置 1。
由于市場上的解碼器千差萬別, 有的解碼器中并沒有為PCR留足42bit, 在這種解碼器中PCR 通常會在解碼器端被提前回 0,而 PTS 和 DTS并沒有隨之一起復位,這就會造成解碼器的 上溢,導致播放不正常。所以在實際中,本文判斷 PCR 是否達到回 0 的閥值略低于 42bit 所能表達的最大值,這樣會提高對解碼設備的適應性,同時不會造成協議上的沖突。PCR 時鐘處理的具體流程如圖 5 所示.
 
5.TS流軟件復用系統的程序設計與測試結果分析
 
通過對 MPEG-2 傳輸流應用結構的仔細分析,可以看出 MPEG-2 傳輸流所傳送的只是彼此獨立的原始流數據和把特定的原始流組合成一個節目的 PSI 信息, 沒有傳送一個不可分割 的真正意義上的節目,因此在一定程度上保證了 TS流軟件復用程序的可行性。
所設計程序并不需要對組成節目的原始流進行內容的處理, 不管構成某節目的原始流是音頻還是視頻還是私有數據,程序所要做的只是改動攜帶原始流的傳輸流分組的標記信息,并把 它發送到輸出的傳輸流,接著在復用后的傳輸流中也要發送該原始流所構成的節目的節目映射表。與此同時,需要注意的一點是,由于輸入的各個傳輸流相互獨立,它們為各自的節目分配的 PID、節目號之類的標志信息很可能會發生重復的情況,所以對于原始流分組,并不 能簡單的轉發,因此,程序將為各個傳輸流中的原始流分配新的PID,以及為不同的節目分配新的節目號,從而形成一個新的傳輸流。
程序結構如圖 6 所示,圖中的每一個 TSProcessor對象對應著程序系統中的要進行復用的每 一個輸入傳輸流, TSProcessor對象所包含的輸入模塊負責向 TSProcessor對象的處理函數提供傳輸流數據。傳輸流既可以從文件輸入,也可以是內存中的一塊緩沖區的數據。這樣適合于復用實時轉播的節目和存在本地硬盤上的節目。輸出模塊是一個供所有TSProcessor對象使用的全局對象,每個TSProcessor對象的線程輪流獲得輸出模塊的控制權,向輸出模塊發送傳輸流分組數據。全局變量區存儲所有傳輸流的結構信息, 以及生成的傳輸流的相關信息。應用系統可以根據實際的需要隨意的增減輸入傳輸流的數目,輸入方式,優先級,并且可以在復用的過程中隨時插入新的傳輸流,或者刪除掉某正在復用的傳輸流。
 

基于以上分析, 應用 VC++開發環境設計實現了 TS流分析與復用軟件系統 TSAM (Transport Stream Analyzer and Multiplexer),主界面如圖 7 所示。作者對復用系統進行設計和測試的硬 件平臺是奔騰 M2.9G、512M 內存。復用三路 3M 大小的傳輸流,大約使用了 1 秒的時間生 成了大約 8M 字節大小的傳輸流,平均復用速率約為 40Mbits。復用九路 3M 大小的傳輸流, 大約使用了 5 秒的時間生成了大約 30M 字節大小的傳輸流,平均復用速率約為 48Mbits。復 用速率達到并遠遠超過了一路傳輸碼流的處理速度,由于現代 PC 性能的強勁,得到了比較理想的試驗結果。另一方面,由于復用系統的輸入輸出都是對文件操作,硬盤的讀寫速度對整個系統的性能也有影響。在實際的應用系統中,輸入都是不斷刷新的內存緩沖區,輸出是輸出模塊的緩沖區,由于數據的操作都是在內存中進行,并不涉及硬盤等機械裝置的運作,還會進一步提高系統的性能。

6.結論
本文分析了多路數字電視節目系統級復用原理,并對數字電視節目專用信息 PSI 的提取和重 構及系統層節目時間參考 PCR 值的修正等關鍵技術進行研究,提出了進行軟件復用的具體方法,最后在 Windows平臺上,應用 VC++開發環境設計實現了 TS流分析與復用軟件系統 TSAM,測試結果表明軟件復用速率達到并遠遠超過了一路傳輸碼流的處理速度,該軟件復用方案是有效可行性的。用軟件實現傳輸流的復用,可以節約硬件成本,降低系統的開發費用;且算法全部軟件實現,可移植性高,具有良好的擴展性,可以方便靈活的加入數字電視節目指南等輔助信息。
此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品人人做人人爽| 亚洲一区在线播放| 在线中文字幕不卡| 91久久精品国产91性色| 黄色成人精品网站| 国产欧美一二三区| 国产精品伦子伦免费视频| 欧美日韩一区综合| 欧美日本久久| 欧美精品午夜视频| 欧美精品日韩www.p站| 欧美成人午夜剧场免费观看| 另类综合日韩欧美亚洲| 美日韩精品视频免费看| 麻豆成人在线| 欧美不卡视频一区发布| 嫩模写真一区二区三区三州| 欧美成人精品h版在线观看| 美女视频网站黄色亚洲| 男人的天堂亚洲在线| 欧美国产视频在线观看| 欧美精品在线观看91| 欧美日韩亚洲系列| 国产精品久久99| 国产精品一区二区久激情瑜伽 | 欧美韩国日本综合| 欧美女同视频| 国产精品久久久久aaaa| 国产精品永久免费| 韩日欧美一区| 91久久久久久久久| 国产精品99久久久久久久久| 亚洲一区二区在线播放| 小辣椒精品导航| 亚洲高清精品中出| 一区二区日韩| 亚洲欧美日韩国产综合在线| 久久国产主播精品| 欧美成人在线免费观看| 欧美人成免费网站| 国产精品亚洲网站| 极品少妇一区二区三区| 亚洲黄色成人| 亚洲永久网站| 亚洲国产欧美日韩精品| 一本色道久久综合亚洲精品不| 亚洲欧美日韩一区二区在线 | 久久精品国产精品| 日韩亚洲视频在线| 欧美亚洲视频在线观看| 久久一日本道色综合久久| 欧美高清视频在线观看| 国产精品久久久久久久久久久久久久 | 国产一区二区三区丝袜| 91久久久精品| 香蕉av777xxx色综合一区| 亚洲精品美女91| 午夜性色一区二区三区免费视频| 久久五月激情| 欧美性大战久久久久久久蜜臀| 国产色视频一区| 日韩午夜激情av| 久久精品2019中文字幕| 这里只有视频精品| 久久久噜噜噜久久中文字免| 欧美绝品在线观看成人午夜影视| 国产精品一二| 亚洲久色影视| 久久精品国产综合精品| 亚洲影视在线| 欧美精品www| 韩国三级电影久久久久久| 99精品视频免费| 亚洲人午夜精品| 欧美在线播放高清精品| 欧美日韩久久| 亚洲成人在线免费| 欧美一级片久久久久久久| 一区二区电影免费在线观看| 免费中文字幕日韩欧美| 国产偷国产偷精品高清尤物| 99国产精品| 亚洲精品视频一区| 久久久女女女女999久久| 国产精品电影网站| 亚洲精品一二区| 亚洲精品国偷自产在线99热| 久久九九99| 国产精品亚洲а∨天堂免在线| 亚洲另类在线视频| 亚洲人成人77777线观看| 久久精品人人做人人爽电影蜜月| 欧美午夜国产| 亚洲精品一区二| 亚洲人在线视频| 蜜臀av性久久久久蜜臀aⅴ| 国产亚洲成年网址在线观看| 亚洲一区在线直播| 亚洲资源av| 欧美日韩精品一区二区三区| 亚洲国内高清视频| 亚洲韩国日本中文字幕| 久久天堂精品| 国语精品中文字幕| 欧美在线地址| 久久爱www| 国产情人节一区| 亚洲你懂的在线视频| 亚洲欧美日韩综合aⅴ视频| 欧美日韩精品系列| 亚洲精品字幕| 一区二区三区欧美日韩| 欧美日韩国产另类不卡| 亚洲精品久久久久久久久久久| 亚洲精品在线观看免费| 欧美高清视频一区| 亚洲国产综合91精品麻豆| 亚洲三级免费电影| 欧美1区免费| 亚洲国产精品va| 亚洲精品乱码久久久久久蜜桃91| 欧美 日韩 国产在线 | 9久草视频在线视频精品| 欧美激情第一页xxx| 亚洲激情网站| 一本色道久久综合亚洲精品按摩| 欧美日韩裸体免费视频| 一级日韩一区在线观看| 亚洲欧美国产精品桃花| 国产精品综合视频| 久久不射电影网| 看片网站欧美日韩| 亚洲国产成人porn| 99在线|亚洲一区二区| 欧美四级在线观看| 亚洲欧美精品中文字幕在线| 久久国产精品一区二区三区| 伊人成综合网伊人222| 91久久久久久国产精品| 欧美精品成人| 亚洲视频 欧洲视频| 欧美伊久线香蕉线新在线| 国产一区二区三区观看| 亚洲国产片色| 欧美日韩国产综合一区二区| 一区二区三区鲁丝不卡| 欧美一级大片在线观看| 国产一区二区三区黄| 亚洲精品美女| 国产精品久久久亚洲一区 | 亚洲欧美日韩国产成人| 国产精自产拍久久久久久蜜| 久久成人18免费观看| 欧美精品一区在线播放| 亚洲午夜一区| 另类天堂av| 一本一本久久| 久久久久久成人| 亚洲激情av| 午夜亚洲性色福利视频| 黑人巨大精品欧美一区二区| 99精品国产在热久久| 国产精品一区二区男女羞羞无遮挡 | 亚洲专区一区| 在线看不卡av| 亚洲午夜久久久久久久久电影院| 国产农村妇女精品一区二区| 最新中文字幕亚洲| 国产精品久久久久久久久久免费看 | 欧美女激情福利| 午夜精品久久久久影视| 美女在线一区二区| 亚洲天堂av在线免费| 久久久综合免费视频| 亚洲精品中文字幕女同| 欧美有码在线观看视频| 亚洲精品久久7777| 久久精品视频在线播放| 99精品免费| 免费看成人av| 亚洲女同同性videoxma| 欧美精品一区三区| 午夜在线观看免费一区| 欧美日韩成人在线| 久久精品亚洲| 国产精品入口日韩视频大尺度| 亚洲精品久久| 国产日产精品一区二区三区四区的观看方式 | 午夜视频久久久| 国内精品视频一区| 亚洲午夜在线| 伊伊综合在线| 性色av一区二区怡红| 亚洲日本成人网| 久久看片网站| 亚洲欧美日韩成人| 欧美日韩免费观看一区=区三区| 欧美中文在线免费| 国产精品久久福利| 一区二区免费看|