MPEG-Ⅱ作為一種運動圖像國際標準已經得到廣泛應用,數字視頻廣播(DVB)已經將MPEG-Ⅱ作為一種源格式。在許多實際應用中包括衛(wèi)星廣播、數字電纜和高清晰度電視HDTV,MPEG-Ⅱ分組是通過編碼器同步接口輸入到信道中。而在寬帶數字通信網中如ADSL,FTTC和寬帶IDSL是將MPEG-Ⅱ分組轉化成另外一種網絡傳輸分組,在這種情況下,一定數目的傳輸流分組被壓縮成一個ATM AAL-5 PDU單元,在分組交換時,PDU被分解成幾個ATM單元。至于有多少傳輸流分組壓縮成為ATM AAL-5 PDU單元,主要與ATM網絡協議有關,一般是2個傳輸流分組壓縮成一個AAL-5 PDU單元。一個網絡中傳輸的MPEG-2傳輸流需要內部的分組延遲進行時間上的控制,這種控制主要是為了發(fā)送程序參考時鐘,從而在系統接收端進行解碼時對系統時鐘進行恢復。同時也可以避免解碼器的輸入緩沖的上溢和下溢。
在設計一個視頻發(fā)送系統的時候,對MPEG-Ⅱ傳輸流的比特率實行精確的控制就顯得尤為重要。當MPEG-Ⅱ分組進行直接傳送時,系統時間的控制是比較簡單的,關鍵問題是如何對視頻源的輸入時間進
2 網絡堵塞和系統參考時鐘的恢復
根據MPEG-Ⅱ國際標準,編碼器將系統參考時鐘(27 MHz)的1/33進行編碼,編碼后的數據進行一定擴展和處理后作為程序參考時鐘?PCR嵌入到傳輸流分組中。因此在解碼器端,通過對PCR的恢復就可以確定編碼的系統時鐘,從而達到編解碼的同步。由于在傳輸流中,含有PCR字段分組的PID?值在程序映射表(PMT)得到確定。根據這個含有?PCR字段的分組PID就可以參考設置將第一個含有PCR的分組作為系統時鐘STC的參考PCR,然后將其余的含有PCR字段的傳輸分組中的PCR?的值通過一定的方式處理就可以恢復系統時鐘。恢復系統時鐘的方法如下:
(1)將第一個?PCR的值對STC進行初始化。?
(2)考慮解碼器輸入緩沖的上溢和下溢的影響,對其大小進行一定的估計,從而確定解碼輸入緩沖。根據當前MPEG-Ⅱ傳輸流的最大碼率計算,連續(xù)含有?PCR?字段的分組的時間間隔必須小于0.1 s。
(3)對于連續(xù)到達的?PCR的值進行鎖定,通過和第一個PCR的值進行對比,就可以確定STC。?
由于在MPEG解復用器輸出到緩沖器的過程中以往沒能對其碼速進行測量,從而會造成緩沖的上溢,而在視頻和音頻解碼器端,在緩沖輸入到解碼器的過程中,同樣原因而造成緩沖的下溢。為此在ATM/CATV網絡到MPEG解復用器的過程中,如果能夠添加一個接收器的比特監(jiān)控單元,將能夠減少由于網絡堵塞而造成的麻煩。
如果從傳輸分組中得到的含有?PCR字段的分組,由于網絡堵塞而造成PCR的值隨機延遲,解碼器和嵌入的系統處理器,將會按照一定的算法對PCR的值進行校正,從而恢復STC?。這個校正和當前的MPEG比特率有密切關系,是將當前MPEG比特率對?PCR的值進行一定的補償從而恢復PCR的原值。如果對當前的PCR?不進行校正,那么視頻解碼、圖像和D/A轉換都會由于這個?STC?的無法恢復而受到影響。為此,在整個解碼器或者解復用器的系統設計過程中,對當前MPEG比特率的實時監(jiān)控和測量是至關重要的,它的目的就是為了對當前網絡傳輸的延遲進行實時的測量和監(jiān)控。如果在接收器中能夠實時跟蹤測試當前的比特率的話,那么基本上ATM/CATV網絡的傳輸延遲(網絡堵塞)將會在解碼器端得到實時的補償。
3 接收端MPEG比特率的測量算法
在ATM或者CATV網絡傳輸過程中,MPEG-Ⅱ傳輸分組由于網絡堵塞而造成的隨機延遲,使得在解復用器或者解碼器端接收到的分組系統時鐘和發(fā)送端輸出的有一定的偏移,在理想情況下,往往對這個偏移不進行考慮,但正是由于這一點而造成視頻解碼無法正常工作,或者圖像無法恢復到原先的狀態(tài)。在這種情況下,對系統時鐘?STC的恢復將會在一個不確定的狀態(tài)下進行。為了避免這種情況的發(fā)生,就必須對STC的狀態(tài)進行檢測,將當前得到的PCR?的值和本地產生的時鐘進行比較,比較的公式推導如下:
(ΔSTC-ΔPCR)ΔSTC=(Δb/ΔPCR-Rf)(Δb/ΔPCR)?(1)
式中:?ΔSTC=STC(t)-STC(t-1)
ΔPCR=PCR(t)-PCR(t-1)
Δb=b(t)-b(t-1)
t——PCR到達時間;
b(t)——在PCR到達時間t時刻累加的比特數;
Rf——在兩個連續(xù)過程和更多的PCR之間的運行時間比特率。
如果這里用Sf來替代Δb/ΔPCR,那么(1)式就可以變?yōu)椋?
(ΔSTC-ΔPCR)/ΔSTC=(Sf-Rf) /Sf?(2)
在上式中
Rf=(ΔSTC/ΔPCR)K?(3)
而在可變速率MPEG-Ⅱ傳輸流(VBR)中由于?Sf?是一個變量,因此(2)式可以演變成為:
Rf=(ΔSTC×Δb)/(ΔPCR×ΔPCR)?(4)
4 硬件測試系統
為了對上述的MPEG-Ⅱ TS比特率算法進行驗證,設計了一種硬件測試評估系統,對上面的算法進行實時驗證。系統主要由視頻服務器和嵌入的處理器組成。視頻服務器主要是為了發(fā)送MPEG-Ⅱ傳輸流分組。發(fā)送碼速是仿真于網絡堵塞而造成的網絡延遲的分組碼速。當MPEG-Ⅱ傳輸流分組到達處理器后,處理器首先對含有?PCR字段的分組進行處理,過濾出PCR?的值。處理器主要由兩個模塊構成:分組處理器和MPEG-Ⅱ系統層解復用器。分組處理器主要將PAT表和PMT表進行處理,同時將處理后的含有?PCR字段的分組PID值進行保存輸出到解復用器中,解復用器根據PID值對傳輸流分組進行分解,將含有PCR值的分組進行過濾,同時將該分組中的PCR?值提取出來。這里分組處理器用FPGA電路設計,解復用器采用了TMS320VC5410 DSP芯片,解復用器將?PCR值進行提取,提取的相鄰PCR值相減從而獲取ΔPCR,用這個ΔPCR?值利用鎖相環(huán)PLL倍頻后得到27 MHz時鐘。處理后的MPEG-Ⅱ音頻流直接輸入到音頻解碼器中,視頻流輸入到視頻解碼器的輸入緩沖中。恢復的系統時鐘?STC?作為解碼時鐘輸入到音頻和視頻解碼器中。
MPEG-Ⅱ傳輸流分組是通過基于NT系統的廣播服務器產生。為了便于控制MPEG-Ⅱ比特率,MPEG文件系統數據通過PC機上的流產生器轉化成MPEG-ⅡTS分組,同時將該數據流通過數字接口直接輸出到分組處理器中。這種處理方式比直接從ATM/CATV網絡下載傳輸分組來測算比特率和系統時鐘更加有效。視頻服務器可以根據算法的需要將MPEG-Ⅱ傳輸碼率進行調整。不同的碼率輸入到分組處理器中可以驗證上述算法的正確性。同時為了有效控制網絡堵塞,避免其他網絡延遲對測試比特率的影響,服務器和分組處理器以及MPEG-Ⅱ TS直接連接在一起,用RS422接口去保持信號的穩(wěn)定性。管腳的物理連接和DAVIC1.1規(guī)范中的高速數據I/O保持一致。
5 測試結果評估
利用這個測試系統進行了兩個測試結果分析:碼流的非連續(xù)性和多用戶輸入情況下的比特率。
(1) 碼流的非連續(xù)性分析
測試碼流的非連續(xù)性主要是為了分析當前的解復用器驅動程序能否有效地檢測到由于網絡延遲而造成的碼速變化。這種情況在很多方面都可以看到:如CATV中的網絡傳輸失敗,VOD中的視頻服務器傳送失敗,視頻播放器播放節(jié)目完成等都可以引起當前傳送碼速的改變,但要注意的是,無論當前傳送碼流的比特率如何改變甚至是停止傳送,當前解復用器中的驅動程序必須能夠檢測到變化,這樣才能夠實時測量當前的MPEG-Ⅱ比特率。圖像下凹點表示當前MPEG傳輸分組在PCR到達時間大約在30~35 s的時候流比特率變?yōu)?。
(2) 多用戶輸入情況下的比特率測試結果分析
在多個用戶輸入情況下,網絡的比特率和單路有不同之處。當在CATV網絡系統中,在多個用戶與網絡連接后,服務器可能通過同一個傳輸通道對每個用戶進行服務。比如在VOD中,6路MPEG-Ⅱ傳輸流共享一個傳輸通道,這就涉及到了網絡資源動態(tài)的分配問題。網絡帶寬的動態(tài)分配和每路傳輸流當前的傳輸比特率有關,所以在多個用戶掛載情況下的比特率測試,對每路TS的比特率測試和計算就顯得尤為重要。
6 結論
MPEG-Ⅱ運動圖像壓縮編碼已經成為當今數字廣播電視系統中一個非常重要的標準,尤其是在數字電視應用領域。在這些應用領域中,最關鍵的一個問題就是讓MPEG圖像傳輸保持一個穩(wěn)定的比特率,這樣就在解碼的時候能夠對STC進行有效的恢復,從而保證視頻和音頻的正確解碼。測試MPEG-Ⅱ傳輸流的碼率往往需要一些專業(yè)的工具和知識,但是通過應用分組處理器和解復用器,就可以非常簡單而有效地完成這個任務。這里提出的MPEG-Ⅱ比特率測試原理和方法,在實際的解碼系統終端設計中也具有廣泛的應用。為此這里也設計了一種硬件測試平臺對其進行評估,評估的結果基本符合實際要求。雖然在這個測試平臺中,應用的是視頻服務器,用文件的形式來仿真實際的MPEG-Ⅱ傳輸流數據,但這并不影響這個方式的正確性。