- 相關(guān)推薦
面向運(yùn)動圖像遠(yuǎn)程實時傳輸?shù)腍.263壓縮方法的分析與優(yōu)化
摘要:H.263是面向運(yùn)動圖像遠(yuǎn)程實時傳輸?shù)膲嚎s方法。基于大量實際研究,分析了H.263的算法流程,從色彩空間轉(zhuǎn)換函數(shù)、DCT、IDCT、運(yùn)動估計和運(yùn)動補(bǔ)償?shù)榷喾矫嫣岢霾崿F(xiàn)對H.263的優(yōu)化策略,采用增強(qiáng)PB幀模式提高壓縮比,最后給出了定量測試結(jié)果。關(guān)鍵詞:H.263 CIF DCT IDCT運(yùn)動估計與運(yùn)動補(bǔ)償
運(yùn)動圖像遠(yuǎn)程實時傳輸系統(tǒng)的網(wǎng)絡(luò)傳輸部分架構(gòu)在Internet之上,則現(xiàn)階段Internet的狀況是帶寬小、延遲大、不穩(wěn)定。所以為了獲得良好的實時傳輸效果,除了改善傳輸控制機(jī)制之外,還需要實現(xiàn)高壓縮比、低耗時、能達(dá)到實時壓縮和解壓縮效果的運(yùn)動圖像壓縮方法。H.263是國際電信協(xié)會-電信標(biāo)準(zhǔn)化部門ITU-T(The International Telecommunications Union-Telecom-munication Standardization Sector)于1995年通過的用于低比特率實時傳輸?shù)囊曨l編碼協(xié)議。其設(shè)計初衷是滿足帶寬低于64kbps的低帶寬視頻應(yīng)用需求,如視頻會議、可視電話等,F(xiàn)在H.263也被應(yīng)用于運(yùn)動圖像遠(yuǎn)程實時傳輸系統(tǒng)中,但原始的H.263在實時性和壓縮比等方面還有不少可優(yōu)化余地。本文針對具體的運(yùn)動圖像遠(yuǎn)程實時傳輸系統(tǒng)應(yīng)用,在大量研究工作基礎(chǔ)上提出多個H.263的優(yōu)化策略,并取得了相當(dāng)好的效果。
1 H.263壓縮算法的分析概要
H.263的輸入視頻幀格式為QCIF(Quarter Common Intermediate Format,大小為176×144)、CIF(Common Intermediate Format,大小為352×288)等。將每個視頻幀分成許多宏塊(MB-Micro Block),每個宏塊由4個Y亮度塊、1個Cb色度塊和1個Cr色度塊組成。塊(Block)的大小為8×8。H.263以宏塊為單位進(jìn)行視頻幀的壓縮。
H.263使用離散余弦變換DCT(Discrete Cosine Transform)減小空間冗余,使用運(yùn)動估計和運(yùn)動補(bǔ)償(Motion Estimation and Motion Compensation)減小時間冗余。H.263有兩種編碼方式,一種是Intra方式,幀內(nèi)編碼,產(chǎn)生的幀作為關(guān)鍵幀-I幀;另一種是Inter方式,幀間編碼,產(chǎn)生的幀作為非關(guān)鍵幀-P幀。
通過分析,將H.263壓縮算法的流程圖歸納為如圖1所示。
通過分析和測試表明,DCT、運(yùn)動估計和運(yùn)動補(bǔ)償是H.263最重要的部分,同時也是H.263實現(xiàn)中最耗時的運(yùn)算環(huán)節(jié)。要提高H.263的運(yùn)算速度,就要針對這些環(huán)節(jié)進(jìn)行優(yōu)化。
圖1 H.263壓縮算法流程圖
2 轉(zhuǎn)換函數(shù)、DCT和運(yùn)動估計環(huán)節(jié)的優(yōu)化
2.1 色彩空間轉(zhuǎn)換函數(shù)的優(yōu)化
CIF格式基于YUV色彩空間,而應(yīng)用程序中,大多數(shù)視頻采集程序只提供RGB色彩空間的視頻幀,因此需要建立從RGB色彩空間到Y(jié)UV色彩空間的轉(zhuǎn)換函數(shù)。
RGB到Y(jié)UV的轉(zhuǎn)換函數(shù)如下所示,其中Y為YUV色彩空間的亮度值,U(Cb)和V(Cr)為YUV色彩空間的色度值。
Y=0.299×R+0.587×G+0.114×B;
Cr=V=(R-Y)×127/179;
Cb=U=(B-Y)×127/226;
H.263原有的色彩空間轉(zhuǎn)換算法采用浮點運(yùn)算,但浮點運(yùn)算會消耗較多的CPU周期。為了加快視頻處理速度,采用整形乘法和向右移位來代替浮點乘除,從而有效縮短了轉(zhuǎn)換時間。
優(yōu)化后的轉(zhuǎn)換函數(shù)如下:
Y=((R×313524)>>20)+((G×615514)>>20)×((B×119538)>>20);
Cr=V=((R-Y)×743962))>>20;
Cb=U=((B-Y)×589244))>>20;
2.2 DCT、IDCT算法的優(yōu)化
二維DCT公式為:
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
二維IDCT公式為:
上述兩式中,,n取8。
通過分析得出,DCT快速算法的實現(xiàn)可以有兩種方式。一種方法是把已有的快速變換算法(如FFT、FHT等)映射到DCT計算中,這種方式多了一個映射環(huán)節(jié),增加了計算的復(fù)雜度;另一種方法是從DCT變換本身尋找規(guī)律進(jìn)行改進(jìn)。
在H.263應(yīng)用中,注意到兩條規(guī)則:一是能量集中在少部分DCT系數(shù)上;二是隨著量化步長的增大,被量化為零的DCT系數(shù)增多,而且對DCT計算的精度要求降低。于是,采用一種零系數(shù)預(yù)測策略,即根據(jù)量化步長,首先對DCT變換的輸入數(shù)據(jù)分類,對于給定的量化步長,如果輸入數(shù)據(jù)將要被量化為0,那么這些數(shù)據(jù)就不必做DCT運(yùn)算,而直接將變換結(jié)果置為0。這樣只需對部分?jǐn)?shù)據(jù)進(jìn)行DCT變換,因此節(jié)省了大量無效運(yùn)算。另外,利用DCT的局部并行性,使用Intel的多媒體處理指令集-MMX來實現(xiàn)DCT計算,大幅度提高了運(yùn)算速度。
2.3 運(yùn)動估計與運(yùn)動補(bǔ)償算法的優(yōu)化
運(yùn)動估計是指在參考幀中搜索一個與當(dāng)前幀圖像塊最相似的圖像塊,即最佳匹配塊,搜索結(jié)果用運(yùn)動向量來表示。運(yùn)動補(bǔ)償是指利用參考幀和已求得的運(yùn)動向量重構(gòu)當(dāng)前幀,氫重構(gòu)幀和當(dāng)前的差值作為當(dāng)前幀的補(bǔ)償值進(jìn)行壓縮編碼。兩者互相配合,共同實現(xiàn)壓縮效果。
運(yùn)動估計算法的研究從兩方面著手:快速搜索算法和塊匹配準(zhǔn)則。
最簡單的搜索算法是全搜索法(FS),這種算法精度高,但計算量過于龐大。為了加快運(yùn)算速度,保證精度,人們提出了很多快速搜索算法:三步法(TSS)及基于三步法的改進(jìn)算法、二維對數(shù)法(LOGS)、交叉搜索法(CS)、四步法(4SS)、預(yù)測搜索法(PSA)、鉆石搜索法(DS)等。鉆石搜索法是迄今為止綜合性能最優(yōu)的快速搜索算法之一,用于本次項目研究中。
塊匹配準(zhǔn)則決定何時找到最佳匹配塊,從而終止搜索進(jìn)程。傳統(tǒng)的準(zhǔn)則有絕對平均誤差函數(shù)(MAE)、互相關(guān)函數(shù)(CCF)、均方誤差函數(shù)(MSE)、最大誤差最小函數(shù)(MME)等。由于傳統(tǒng)方法沒有考慮人眼的視覺特性,所以判斷結(jié)果和人眼的感知相差較大。實際H.263采用的塊匹配準(zhǔn)則為MSE的替代準(zhǔn)則SAD(絕對差和),兩者的公式如下:
其中:F0和F-1分別代表當(dāng)前幀和重構(gòu)幀(參考幀);k,l為待編碼宏塊在當(dāng)前幀中的坐標(biāo);x、y為重構(gòu)幀中參考宏塊的坐標(biāo);N表示宏塊的尺寸,此處為16。從公式中可見,SAD用絕對值運(yùn)算代替了MSE的乘方運(yùn)算,明顯降低了運(yùn)算量,從而可以加快計算速度。
測試表明,SAD的計算量要比MSE的計算量減少三分之一,而它們的圖像效果相當(dāng)。
此外,還可以利用硬件特性加速塊匹配準(zhǔn)則的運(yùn)算速度,Intel的MMX技術(shù)提供了這種特性。SAD等塊匹配準(zhǔn)則主要針對短數(shù)據(jù)的重復(fù)計算,MMX增加了系統(tǒng)單個指令操作數(shù)據(jù)的數(shù)目(SIMD),從而可以在一個指令中完成多組數(shù)據(jù)的計算,實現(xiàn)并行機(jī)制,從而加快運(yùn)算速度。
3 提高壓縮比的選擇
H.263提供了許多高級模式來提高視頻壓縮比。從對壓縮效率的貢獻(xiàn)角度看,大運(yùn)動向量模式、高級預(yù)測模式、PB幀模式和增強(qiáng)PB幀模式是最重要的4個高級模式。
在大運(yùn)動向量模式和高級預(yù)測模式下,運(yùn)動向量可以指到圖像邊界以外,增大了運(yùn)動向量的表達(dá)范圍,從而在本質(zhì)上提高了運(yùn)動補(bǔ)償?shù)木纫愿纳凭幋a效率。
基本PB幀模式下,一個PB幀是一個P幀和一個B幀組成的整體。當(dāng)前P幀由前一個P幀預(yù)測得到,B幀則由單一個P幀和當(dāng)前P幀預(yù)測得到(見圖2)。PB幀模式在增加較少比特數(shù)的情況下,將幀率提高了近一倍。
增強(qiáng)PB幀模式的主要改進(jìn)點在于預(yù)測方式的增強(qiáng);綪B幀模式對B幀圖像(或宏塊)僅允許使用雙向預(yù)測,而增強(qiáng)的PB幀模式對B幀圖像則允許使用前向預(yù)測(見圖3)、后向預(yù)測(見圖4)和雙向預(yù)測(見圖2)三種手段。這樣,在壓縮過程中,有機(jī)會選擇更適合的預(yù)測方法處理B幀圖像(或宏塊),從而提高B幀的壓縮效率。基本PB幀模式的B幀只能通過雙向預(yù)測獲得,這對慢速運(yùn)動圖像效果較好。當(dāng)輸入運(yùn)動圖像存在快速不規(guī)則的運(yùn)動時,B幀質(zhì)量會急劇惡化,而增強(qiáng)PB幀模式的B幀有三種預(yù)測方式可選,可以解決這一難題。通過分析和測試表明,增強(qiáng)PB模式比基本PB幀模式有更強(qiáng)的魯棒性,更適用于運(yùn)動圖像遠(yuǎn)程實時傳輸
。
大運(yùn)動向量模式和高運(yùn)動預(yù)測模式由于增大了運(yùn)動向量的表示范圍,可以增強(qiáng)運(yùn)動補(bǔ)償?shù)木,從而提高壓縮比;而增強(qiáng)PB幀模式引入B幀,有三種預(yù)測方式可以生成B帖,在相同幀率的情況下,將壓縮比提高近80%,壓縮效果明顯。在實際程序設(shè)計中,筆者配合傳輸環(huán)境測試模塊,在網(wǎng)絡(luò)帶寬較低時實現(xiàn)這三種方式的配合使用,發(fā)揮了更大的壓縮效率,達(dá)到更高的壓縮比。
4 實驗數(shù)據(jù)和性能分析
4.1 算法優(yōu)化測試
分別取100幀三種不同格式(SUB-QCIF:88×72,QCIF:176×144,CIF:352×288)的視頻值,每20幀取1個關(guān)鍵幀,視頻幀質(zhì)量取6000,比較優(yōu)化前和優(yōu)化后算法的時間效率,結(jié)果如(圖5)所示。
縱軸單位為毫秒,表示壓縮完成所需時間?梢,要處理的視頻幀越大,優(yōu)化后的算法取得的加速效果越明顯。
4.2 增強(qiáng)PB幀模式壓縮效果測試
分別取100幀三種不同格式(SUB-QCIP:88×72,QCIF:176×144,CIF:352×288)的視頻幀,每20幀取1個關(guān)鍵幀,視頻幀質(zhì)量取6000,比較使用增強(qiáng)PB幀模式前和使用增強(qiáng)PB幀模式后算法的壓縮效率,結(jié)果如(圖6)所示。
縱軸為壓縮比。要處理的視頻幀越大,冗余信息越多,增強(qiáng)PB幀模式的壓縮效果越明顯。
【面向運(yùn)動圖像遠(yuǎn)程實時傳輸?shù)腍.263壓縮方法的分析與優(yōu)化】相關(guān)文章:
高保真實時準(zhǔn)動態(tài)圖像采集壓縮和遠(yuǎn)程傳輸平臺的研究與實現(xiàn)08-06
DMA在實時圖像處理中的應(yīng)用08-06
優(yōu)化練習(xí) 面向全體05-07