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