|
|
| <!--插入廣告JS代碼--> |
摘 要:在分析MPEG2傳輸流系統層結構基礎上,闡述了基于數字信號處理器(TMS320C6412GDK600)的多路復用器的系統設計和實現方法。
關鍵詞:多路復用器;MPEG2系統層;傳輸流
隨著數字電視節目的增多,多節目復用成為必然趨勢。日益增加的數字電視節目和頻道,以及基于光纖等有線傳輸提供的高帶寬信道,使數字電視的傳輸必將采用多節目復用技術。本文主要介紹了多路復用器的設計基礎,提出了一套采用TI的高速DSP為主處理器的多路復用器硬件和軟件設計方案。
1MPEG2系統層標準簡介
在MPEG2標準中定義了2種系統流格式:節目流PS(Program Stream)和傳輸流TS(Tra nsport Stream),分別適用于不同的傳輸場合。在這里我們關注TS流,他適用于有信道噪聲產生的傳輸,可在網絡中進行遠距離傳送。
圖1描述了壓縮以后的基本數據流如何轉換成TS流。以視頻數據為例,每幀圖像經過壓縮以 后形成大小不一的訪問單元AU(Access Units),其大小取決于不同的編碼方式和編碼難度。
各訪問單元組成基本數據流ES(Elementary Stream),ES再通過加入PES頭信息打包成PE S(Packet Elementary Stream ),其有效負載為ES流的連續數據字節。再把一個PES包按照188 B的固定長度加上各種參數(如同步信息)分割成多個TS包。
MPEG2定義了固定長度(188 B)TS流的語法,即包括4 B的包頭、可選的調整字段和有效負載。其語法結構見圖2。
每個TS包的包頭信息是識別傳輸流的關鍵,其中13 b的PID表示有效負載中數據的類型(如視頻、音頻、節目特殊信息PSI等),他是節目信息的“身份證”。在MPEG2的TS中,為了傳送長度不足188 B的不完整的TS包,或者為了在系統層中插入節目時鐘參考(PCR)字段,需要插入可變長度的調整字段。為了有效組織和識別各路信息,在TS流中插入節目特殊信息表(PS I)。PSI包括了必須的2類表:PAT(Program Associate Table)和PMT(Program Map Table),還包括了2類可選的表:CAT(Conditional Access Table)和NIT (Network Information Table)。PAT是全局惟一的表,是PSI信息的根目錄,他描述了所有節目號和與之相關的PMT表。PMT表描述了該節目的所有視頻、音頻、數據及相關信息的PID號,從而得到訪問各個ES流的入口。當TS流中有一個或多個數據流被加密,則TS中要插入CAT表。
PSI使數據流形成了一種從PAT到PMT再到PES的結構。當數據流進入解多路復用器時,首先掃描PID為0的TS包,從中獲取PAT表,再進一步獲得指定節目的PMT表,根據PMT所描述的PID號找到并分離出對應的TS流,送進解碼器,最終就可以得到該節目的ES流。對于解碼器解復用和解碼來說,只要能及時獲取PSI信息,解碼器就可以正常工作。
整個PAT和PMT的語法結構如圖3和圖4所示。
2復用器的硬件結構設計
此多路復用器系統要求實現輸入8路MPEG2 TS流,經過多路復用系統的處理后形成1路MPEG2 TS流。系統的核心是1片TI公司的數字信號處理器(TMS320C6412GDK60 0),該DSP具有高達4 800 MIPS的運算能力。復用器整體的硬件方案設計如圖5所示。
2.1輸入接口
各路輸入數據流首先經過SPI/ASI輸入接口,將數據寫入各自的FIFO緩沖;當輸入FIFO有足夠的數據時,輸入接口控制電路以中斷的方式通知DSP。
2.2DSP單元
在DSP中實現各路TS流的包同步、PSI信息的收集和重建、PID的重映射以及PCR的調整等處理。對PCR的調整采用虛填PCR技術。
2.3輸出接口
DSP完成對TS包的處理后,將復用后的TS包通過DSP 的EMIF接口寫入輸出FIFO中,輸出接口將輸出FIFO中的數據均勻輸出,并實時打上新的PCR值。輸出接口也是以中斷方式向DSP請求數據。
接口控制邏輯的框圖如圖6所示。

中斷請求邏輯收集輸入/輸出FIFO的狀態信息,當輸入FIFO半滿的時候中斷請求邏輯便向D SP的外部中斷4發出中斷請求。8個輸入通道共享1個中斷源,而通道的識別是通過控制寄存器組中的輸入通道中斷標志寄存器實現的。當輸出FIFO半空的時候中斷請求邏輯便向DSP的外部中斷5發出中斷請求。控制寄存器組包含輸入通道中斷標志寄存器、輸入通道中斷清除寄存器等。
3復用器的軟件結構設計
復用器軟件是基于TI的DSP/BIOS實時操作系統實現的,他與硬件互相配合,完成多路復用的任務。軟件層次和結構如圖7和圖8所示。
3.1包同步與去空包
在輸入通道的中斷服務進程(INT_in_Service)中完成各路TS流的包同步和去空包處理。具體實現時,檢測到連續5次相距188 B間隔的字節都是“0x47”,則認為找到了包同步字節,這樣可以避免把負載中的“0x47”誤認為包同步字節。然后讀取13 b的PID號,若是空包(PID=0x1FFF)則不進行任何處理。之后處理好的數據進入各自的緩沖區等待PSI重建處理。
3.2PSI重建與PID重映射
為各通道的TS流數據分別分配一個任務(task_i)進行PSI信息的收集和重建。特別單獨分配一個任務(task_PAT)來實現PAT的重建。
首先根據PID號進行包類型分離。若是PAT表信息(PID=0x0000),則進一步獲取各節目的PMT 表PID號,根據PMT的描述提取PCR_PID,VIDEO_PID,AUDIO_PID和其他數據的PID,為避免PID沖突,需要創建PID信息表,即按照遞增的規律重新分配PID,使他們互不重復,再生成多個新的PMT表,分別封裝成TS包。若是視頻、音頻或其他數據,則查詢PSI信息表,賦予新的PID號并進行轉發,若發現該TS包中含有PCR域,則將該PCR字段替換成特定的PCR標志以便輸出接口硬件進行識別。全局PAT在系統一開始工作時由task_PAT創建,他從各路TS流中提取PMT_PID,并按照遞增的規律重新進行定義PMT_PID,使他們互不重復,然后在全局PAT表尾部生成新的CRC糾錯碼,之后將其封裝成一個TS包。由此可見,最終的PSI是由一個含PA T信息的TS包和多個含PMT信息的TS包組成的。最后將新的PSI信息按照一定的時間間隔均勻地插入到TS流中。
3.3PCR調整
PCR存在于TS包的調整字段中,是每隔一段時間,由編碼端給接收機傳送系統時鐘27 MHz的一個抽樣值。PCR的數值所表示的是解碼器在讀取完這個抽樣值的最后那個字節時解碼器本地時鐘所處的狀態。在解碼端,視頻和音頻抽樣時鐘都鎖定于與PCR鎖相的本地時鐘。所以為了更正同步接收端的MPEG2解碼器,必須對節目時鐘參考(PCR)進行調整。
PCR調整可以完全在軟件處理時完成,但是需要計算數據在復用器中的延時,實現較為復雜,因此采用了虛填PCR技術。也就是復用器工作時只保留原TS流的OPCR值不變,先采用軟件技術在PCR字段位置虛填一個特定的標志,而在輸出接口的硬件中識別由軟件虛填的PCR標志,并根據27 MHz的系統時鐘在該位置填入實際的PCR值。由于基本數據中也可能出現此P C R標志,因此虛填PCR技術會導致一定的PCR錯誤,但由于PCR字段有48 b,所以這種錯誤概率實際很小。
3.4空包插入
由一個單獨的任務(task_NP)生成空包數據,當輸出數據選擇任務(task_out)需要一個空包數據的時候便會通知task_NP產生一個空包。
3.5輸出數據選擇
當輸出中斷服務進程(INT_out_service)要求task_out組織一塊數據輸出的時候,t ask_out就按照下面的算法產生一個輸出數據塊。
4結語
本文在分析MPEG2系統層結構基礎上,提出了一種以DSP為主控元件的MPEG2多路復用器的系統實現方案,可以將8路MPEG2 TS流復用為1路MPEG2 TS流。實現方法上以軟件為主、硬件為輔,具有原理簡單、靈活和易于實現的特點。
參考文獻
[1] 鐘玉琢,王琪,趙黎,等.MPEG2運動圖像壓縮編碼國際標準及MPEG的新進展[M].北京:清華大學出版社,2002
[2]方濤.數字電視業務信息及其編碼[M].北京:國防工業出版社,2003
[3]任麗香,馬淑芬,李芳慧.TMS320C6000系列DSPs的原理與應用[M].北京:電子工業出版社,2001.