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