999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

國際主流視頻編碼標準優化代碼的對比測試

2008-12-31 00:00:00王中元朱福喜
計算機應用研究 2008年10期

 收稿日期:2007-11-17;

修回日期:2008-03-03

作者簡介:李娜(1974-),女,湖北英山人,工程師,碩士,主要研究方向為分布式圖像處理(wrxln_hope@sina.com);

王中元(1972-),男,湖北英山人,講師,博士,主要研究方向為視頻編/解碼、多媒體通信;

朱福喜(1957-),男,湖北新洲人,教授,博導,博士,主要研究方向為人工智能等.

(武漢大學 a.計算機學院; b.國家多媒體軟件工程技術研究中心; c.檔案館, 武漢 430072)

摘要:

以H.263、MPEG-4、H.264三種標準作為測試對象,在Win/Intel平臺上測試了優化后編碼器的計算效率、編碼效率和碼率控制精度,并對測試結果進行了比較和分析。測試數據為開發人員在一定硬件性價比的約束條件下實現視頻編碼器提供了參考。

關鍵詞:視頻編碼測試; 優化; 計算效率; 編碼效率

中圖分類號:TP391

文獻標志碼:A

文章編號:1001-3695(2008)10-3075-03

Testandcomparisononoptimizedcodeofmajorinternationalvideocodingstandards

LI Naa,c, WANG Zhong-yuanb, ZHU Fu-xia

(a.School of Computer, b.National Multimedia Software Engineering Research Center, c.Archives, Wuhan University, Wuhan 430072, China)

Abstract:

This paper selected H.263,MPEG-4 and H.264 video coding standards as test object to measure such performance index as compression efficiency,calculation efficiency and rate control accuracy on Win/Intel platform. And illustrated the-analysis and comparison on experiment results too. These test datum could be served as a reference guide for designer who would develop video coding application with the constraint on hardware performance and price ratio.

Key words:video codec test; optimization; computation efficiency; coding efficiency

幾乎在每一種視頻標準的制定過程中或者發布后,都有專家將該標準與它前期的同類標準作壓縮效率和計算復雜度的客觀比較測試[1]。這些測試數據盡管有它一定的學術意義,但是對實際開發的指導價值非常有限。其原因有兩點:a)測試過程往往涵蓋了編碼工具的全集,而在實際應用中不太可能啟用所有編碼選項,因此,這樣測試的壓縮效率數據已經背離了實際應用條件;b)在計算復雜度的對比測試中,一般均使用伴隨標準發布的參考源碼,而這些源碼僅僅是用來驗證算法的,它充其量也只是對算法的一種數學描述。在標準的實現過程中,免不了要對編/解碼器(CODEC)展開算法優化和代碼優化,這些優化往往又要結合目標處理器特定的硬件體系結構實施,優化過程得到的計算效率的增益不僅與具體開發平臺和開發人員的經驗有關,而且與標準本身的設計細節所決定的優化潛力相關。因此,原始參考代碼的計算量差距并不一定能反映最終設計出來的編/解碼器的計算開銷的差別,有經驗的技術人員實現的H.264可能比沒有經驗的人員設計的H.263的運算效率還要高。如果對經過了如下兩方面優化處理的視頻編/解碼器進行壓縮效率和計算復雜度的客觀測試比較,那么其測試結果對實際應用開發的指導意義是不言而喻的,這也正是本文的初衷。

a)從實現代價的角度對編碼選項予以折中取舍;

b)算法經過高度的計算效率優化。

考慮到H.263[2]、MPEG-4[3]、H.264[4]在當前壓縮視頻通信中應用最為廣泛,筆者選取這三種標準作為測試對象。其中H.263又進一步劃分為不帶任何高級選項的基本H.263和帶Annex D(unrestricted motion vector mode)、Annex F(advanced prediction mode)兩個高級選項的H.263來分開測試。此外,由于碼率控制對實時視頻通信至關重要,對這幾種標準的驗證模型中提出的碼率控制算法的精度也同時予以測試。

1測試CODEC的代碼選擇和優化

首先需要說明的是,由于視頻編碼標準制定的開放性,也就是它們往往只定義語法、語義和解碼的算法,而不定義編碼算法,從一般廠家實現標準的角度講,僅僅根據標準的文本來設計CODEC是很困難的。制定標準的專家組也注意到這個問題,所以他們往往會伴隨標準發布一套參考實現算法,通常稱為參考模型(RM),或者驗證模型(VM),或者測試模型(TM)。在這些參考模型中,專家們會提出一套相對優良的編碼算法實現細節供參考,并提供這些算法細節的實現源碼,也就是參考代碼。標準本身和參考模型相得益彰,既為廠家使用標準提供了便利,又不影響廠家個性技術的發揮。常見國際視頻編碼標準的參考模型和參考代碼見表1。

1.1H.263

筆者選取的原始H.263源碼版本來自Telenor R D組織,由Karl Lillevold和Robert Danielsen編寫[5]。該源碼根據H.263v1標準[2]和TMN8[6]測試模型設計,用ANSI C編寫,未經過任何優化處理,也沒有碼率控制模塊,因此它不能直接應用于實際產品中。在這個參考源碼的基礎上,筆者經過多方面計算效率的優化設計和碼率控制功能的添加,將它應用到自主研發的H.323/SIP視頻會議系統中。具體采用的優化技術不在此贅述,筆者另文發表[7,8]。

1.2MPEG-4

MPEG-4存在DIVX、 XVID、FFMPEG、MoMuSys、Microsoft等多個開源版本,其中尤以XVID最出名[9]。如同H.263,這些開源代碼的設計依據與其說是MPEG-4標準文本,不如說是MPEG-4的驗證模型VM8[10]。XVID針對Intel/AMD平臺展開了全面的指令優化,計算密集的模塊全部用ASM/MMX/XMM/SSE/SSE2/3DNOW/3DNOWEXT/IA64等幾種匯編指令改寫,因而運算效率極高。特別是采用了最新的PMVFAST(predictive motion vector field adaptive search technique)運動估計算法[11],使運動矢量搜索的精度和效率大大提高。XVID優良的編碼效率和計算效率使它完全達到商用的程度,廠家在Intel/AMD平臺設計MPEG-4產品時,完全可以放心大膽地直接嵌入XVID CODEC。事實也是如此。即使是對其他平臺如DSP,XVID優良的代碼設計風格和程序結構也是極好的代碼移植模板。例如筆者在Trimedia平臺開發網絡攝像機和可視電話等產品時,就是根據XIVD移植的。略顯不足的是,XVID中的碼率控制算法過于簡單,它僅僅根據緩沖區的填充程度來適配量化步長,完全沒有考慮視頻序列自身的復雜度。為此,筆者對這一點進行了改進,用TMN8[6]或者SRC(scalable rate control)[12]碼率控制算法替換了XVID中原有的碼率控制模塊。TMN8以宏塊為單位來控制碼率,所以控制得非常精確,這主要是為MPEG-4的車載無線視頻傳輸設備定制的。SRC既可以根據當前視頻幀的復雜度和當前緩沖區的充滿程度為幀內所有宏塊計算出一個統一的量化步長,也就是幀級QP自適應控制;也能夠依據宏塊復雜度的變化,為每一個宏塊都計算出一個屬于它自己的量化步長,這就是宏塊級QP自適應控制;當然,介于兩者之間,還可以在視頻包(video packet)級控制QP。由于SRC宏塊級控制起到的作用與TMN8重復,更主要的是,它在宏塊級控制時將所有宏塊比特數開銷都算在DCT系數上,而沒有考慮宏塊頭參數的編碼開銷,其控制精度沒有TMN8高。但是,SRC的幀級QP自適應無論是從計算復雜度還是從控制精度來說,都是對TMN8一個比較好的折中,將它用于碼率控制要求不是很嚴的場合還是一個不錯的選擇。在本文中,為了同時對幾種有代表性的碼率控制算法進行一次對比測試,MPEG-4采用SRC幀級QP碼率控制算法。

最后還有一點需要說明的是,由于XVID中的運動矢量搜索過程用到了RDO技術[13],而RDO又用到了QP,這樣一來造成碼率控制模塊的復雜度參數MAD(mean sum of abstract difference)依賴于運動估計模塊的計算結果,而運動估計模塊的RDO過程又依賴于碼率控制輸出QP的局面,這就是所謂的碼率控制和運動估計間的“蛋雞悖論”問題。該問題的完全解決留待于JVT碼率控制技術描述文檔G012中提出的MAD線性預測模型[14]。在此,筆者簡單地用前一幀的平均QP或者固定QP=8作為當前幀宏塊RDO過程的QP參數。實驗發現兩者沒有表現出主客觀差別。

1.3H.264

H.264也存在JM、X264和FFMPEG等幾種開源代碼。其中,JM序列編/解碼器(現在版本已經發展到JM11)是學術研究中用得最多的代碼,它完整地實現了H.264的全集,甚至連信道魯棒性的宏塊編碼模式RDO這種目前還只停留在學術研究階段,尚無法實際應用的技術也體現在代碼中[15]。顯然,JM代碼只是實現了對H.264標準嚴格的算法描述,沒有任何優化的成分,因此,基于JM來開發實際產品需要付出的優化工作量很大。值得慶幸的是,X264 encoder[16]這個開源的H.264編碼器提供了類似XVID那樣近乎完美的指令優化版本,它對計算密集的模塊幾乎全部用Intel/AMD匯編指令改寫。所以,僅僅依靠X264 encoder本身的代碼優化工作,基本上就可以將它集成到實際產品中應用起來。筆者通過對X264代碼的深入分析發現,它實現的編碼選項與JM相比幾乎沒有作太多刪減,如CAVLC/CABAC、B幀、幀場自適應編碼、QPEL運動補償、全部的INTRA模式預測、全部的INTER模式預測、ABT、deblocking loopfilter、RDO等關乎編碼效率的編碼工具它都支持。與原始的JM代碼比較,X264僅僅簡化了幾個技術要素:不支持SP/SI幀;不支持信道自適應的編碼模式判決(CA-RDO);不支持FMO、ASO、RS等差錯彈性工具;參考幀個數限制在1幀;Slice劃分模式僅保留固定宏塊個數一種,去掉了固定比特數劃分模式;碼率控制模塊不是采用JVT推薦的G012或F086,而是取自FFMPEG工程中的相應模塊。但是,X264只有編碼器沒有解碼器,高效的H.264 decoder可以在FFMPEG開源工程中找到[17]。筆者測試發現,FFMPEG中的H.264 decoder不僅運算效率高,而且支持帶任何編碼選項的H.264碼流的解碼,如CAVLC/CABAC、B幀、多參考幀、FMO、幀場自適應等,更為難得的是它還包含了差錯掩蓋后處理算法。

筆者在向研制的H.323/SIP視頻會議系統中增加H.264能力時,選取的就是X264 encoder和FFMPEG中的H.264 decoder。在開發過程中對decoder幾乎沒有作太多修改,但對X264 encoder進行了如下方面的改造:

a)改造碼率控制模塊。盡管X264中的ABR碼率控制模塊控制得還是相對比較精確,但它解決“蛋雞悖論”的方法是:在正式的運動估計之前先將圖像縮小到原始圖像的1/4,然后對這個1/4圖像作一次粗糙的運動矢量預估計,用這個預估步驟得到的MAD去指導碼率控制計算。顯然,這個方法既費時又消耗存儲空間,筆者用G012技術替換掉了ABR。由于G012技術通過MAD預測模型解決了RDO和碼率控制的矛盾,節省了ABR對資源的額外開銷。同時,在宏塊層次實現G012碼率控制,其控制精度也有所提高。

b)改造Slice劃分方法。X264保留的是JM中固定宏塊個數的Slice分片方法。顯然,這種方法得到的Slice字節數是變化的,而且幾乎不可能做到選取一種宏塊個數門限能夠將Slice中的字節數控制在MTU范圍內。一旦Slice大小超過MTU范圍,按照RFC3984協議要求[18],必須采用分段模式(segmentation)完成其對應NAL的RTP打包。但是,H.241協議規范了H.264在H.323系統中的打包模式只能是single NAL模式[19],不允許分段或合并。所以必須確保Slice分片大小控制在MTU內,這只能采取固定比特數分片方式才能做到。需要注意的是,分片方式的改動也要帶來代碼中其他位置的改動,如亮度16×16 INTRA預測、色差8×8 INTRA預測,否則編碼器和解碼器在DC預測方向上就不能形成閉環,導致預測錯誤,解碼圖像出現變色或塊斑。

2測試方法

2.1測試CODEC編碼選項配置

編碼效率和計算效率與CODEC配置的編碼選項密切相關,所以,必須明確測試數據所依托的編碼器配置。測試CODEC配置見表2。

2.2測試環境

測試序列:CIF分辨率, YUV420色度空間格式;ITU-T視頻測試序列:Foreman(300幀), Paris(1 065幀),Mother_daughter(300幀),News(150幀)。目標碼率384 kbps,目標幀率25 fps。測試環境:HP NX9040筆記本電腦,CPU Inetl迅馳1.5 GHz,內存512 MB,硬盤40 GB,操作系統 Windows XP。

2.3測試指標和方法

1)計算效率以每秒鐘編碼的幀數來衡量,也即f=N/T。其中: f表示處理的幀率速度,單位是fps;N為處理的幀數;T為處理完N幀所消耗的時間,單位為s。在編碼時間T的計算上,筆者作了兩點處理:a)為統計凈編碼時間,去掉讀取文件序列和寫壓縮碼流的干擾,只統計開始編碼一幀到一幀編碼完畢所占的時間,然后將它們累加;b)由于ANSI C中clock()函數計算時間的精度只能達到20~30 ms,而H.263或MPEG-4編碼一幀的時間遠小于這個數值,有必要采用更高計時精度的計時器。筆者調用的是Windows系統函數:QueryPerformanceFrequency()、QueryPerformanceCounter()。該計時器可以達到ms精度。

2)編碼效率也即壓縮效率。如果各個編碼器實際輸出的碼率都相同,那么PSNR值越大,編碼效率就越高。然而實際上由于碼率控制精度的差異,即使是目標碼率都設置成一樣,實際輸出碼率會有所不同,這時必須綜合考慮PSNR值和實際碼率的結果,至于如何將它們折算成一個惟一的指標數據則是比較困難的。

3)碼率控制一般來說實際輸出碼率與目標碼率越接近,則碼率控制的精度越高,但實際碼率往往是一個較長時統計的結果,尚不能完全反映出單幀碼率控制的均勻性。所以,還有必要計算每幀產生比特數的方差,方差越小,反映出碼率控制越平滑,瞬時抖動越小。實驗中筆者發現如下計算指標更能說明問題:

σ=∑Ni=1|Bi-|/N。

其中:N為編碼的幀數;Bi為每幀編碼實際產生的字節數;為每幀目標期望字節數,計算為=R/(8F)。R為目標碼率,單位是bps;F為目標幀率,單位是fps。

3測試結果和分析

按照上文方法對Foreman、Paris、Mother_daughter、News四個視頻序列展開測試,并將測試結果列于表3。

筆者從實驗數據中可以發現一些基本事實,并予以分析:

a)PSNR指標。 H.263 DF較H.263Base最大相差0.7 dB;H.264較H.263Base約高1 dB,最大可相差2.7 dB,且H.264碼率低于H.263甚多;MPEG-4 SP略高于H.263 DF,在0.2~0.6 dB。

b)計算復雜度。H.264是H.263Base的5、6倍;H.263 DF是H.263Base的2倍左右;MPEG-4 SP與H.263 DF基本相當,略快一點,主要是盡管都有INTER4V運動估計,但是前者無OBMC計算。

c)碼率控制的精度依次是TMN8、G012、SRC。TMN8、G012高于SRC很好理解,因為前兩者是基于宏塊控制的,而XVID中的SRC筆者只實現到幀級控制。至于TMN8高于G012的原因,筆者認為是受兩個方面因素的影響:(a)TMN8在H.263中的MAD參數是運動估計的直接輸出,而G012用于X264時,MAD由線性模型預測得到,預測值與實際值間不可避免地存在偏差;(b)TMN8是用宏塊頭參數占的實際比特數來更新控制模型的,而G012中的宏塊頭參數編碼比特數是通過對前面已經編碼的宏塊估計得到,再從宏塊的平均比特數中減去估計的頭開銷,余下的比特作為系數編碼的期望比特數目。顯然,估計過程與TMN8相比存在系統誤差。

d)這幾種CODEC的優化主要是以算法優化和指令優化為主,而對結合特定處理器體系結構的cache優化幾乎沒有涉及。根據筆者在Trimedia DSP平臺優化移植MPEG-4的經驗,如果能結合Intel/AMD硬件體系,對cache精心優化,則計算效率的增益還可進一步提高30%左右。

e)X264與XVID計算效率相差3、4倍,筆者認為這不完全是因為H.264計算復雜帶來的。因為測試配置的X264與XVID計算的差異其實不是特別懸殊,X264較XVID只多出幾處操作:(a)半像素插值濾波器提高到6拍,且執行2拍的QPEL運動矢量修正;(b)執行 INTRA 16×16、4×4預測;(c)增加了16×8、8×16兩種運動估計模式和deblocking loopfilter。筆者進一步分析X264發現,其數據結構和程序流程依然存在較大的優化余地,如果將這些優化空間連同算法設計的優化空間一并考慮,則X264估計還可以提高30%~50%。

表3視頻序列實驗結果

4結束語

對編碼選項的配置進行若干取舍和經過較好優化處理后的CODEC更接近應用實際,因而其測試數據對實際開發工作的指導意義更明顯。實驗證明,綜合編碼效率(節省磁盤空間或傳輸帶寬)和計算復雜度(決定產品硬件成本)兩個方面的因素,H.264較H.263+、MPEG-4獲得的性價比沒有理論宣傳的那么高。另外,本文測試的CODEC經過了較全面的算法、指令和程序結構的優化,計算效率較相應標準的原始參考代碼大大提高,這也為廠家在設計同類CODEC時提供了參照物。筆者下一步的工作是進一步完成MPEG-4 ASP以及我國自主知識產權標準AVS的優化和對比測試。

參考文獻:

[1]OSTERMANN J, BORMANS J, LIST P, et al. Video coding with-H.264/AVC: tools, performance and complexity[J]. IEEE Circuits and Systems Magazine, 2004,4(1):7-28.

[2]ITU-T recommendation H.263, Video coding for low bit rate communication[S]. 1998.

[3]ISO/IEC 14496-2, Information technology-generic coding of audio-visual objects-part Ⅱ: video[S]. 1999.

[4]ITU-T recommendation H.264 ISO/IEC 14496-10 AVC, Advanced video coding for generic audiovisual services[S]. 2003.

[5]Telenor R D[EB/OL].http://www.nta.no/brukere/DVC.

[6]ITU-T recommendation TMN8, Video codec test model, near-term, version 8[S]. 1997.

[7]王中元,胡瑞敏.IP網絡視頻會議系統中視頻子系統的研究與實現[J].武漢大學學報:工學版,2006,39(6):34-38.

[8]劉樹波,徐正全.結合Trimedia體系結構的視頻編碼效率優化[J].武漢大學學報:工學版, 2006,39(6):46-50.

[9]XVID source code[EB/OL].http://downloads.xvid.org/downloads/xvid_latest.tar.gz.

[10]ISO/IEC 14496-2, MPEG-4 video VM-version8.0[S]. 1997.

[11]TOURAPIS A M, AU O C, LIOU M L, et al. ISO/IEC JTC1/SC29/WG11 M5866, Fast block-matching motion estimation using predictive motion vector field adaptive search technique(PMVFAST)[S]. 2000.

[12]LEE H J, CHIANG T H, ZHANG Ya-qin. Scalable rate control for MPEG-4 video[J].IEEE Trans on Circuits and System for Video Technology, 2000,10(6):878-894.

[13]WIEGAND T, SCHWARZ H, JOCH A. Rate constrained coder control and comparison of video coding standards[J]. IEEE Trans on Circuits and System for Video Technology, 2003,13(7):688-703.

[14]JVT-G012-r1, Adaptive basic unit layer rate control for JVT[S]. 2003.

[15]STOCKHAMMER T, KONTOPODIS D, WIEGAND T. Rate-distortion optimization for JVT/H.26L video coding in packet loss environment[C]//Proc of Packet Video Workshop. Pittsburgh, PY:[s.n.], 2002.

[16]X264 source code[EB/OL].http://developers.videolan.org/x264.html.

[17]FFMPEG source code[EB/OL].http://ffmpeg.mplayerhq.hu.

[18]RFC 3984[EB/OL].[2005-02-15].http://www.ietf.org/rfc/rfc3984.txt.

[19]ITU-T recommendation H.241 extended video procedures and control signals for H.300-series terminals[S]. 2003.

主站蜘蛛池模板: 日本精品αv中文字幕| 国产成人做受免费视频| h视频在线观看网站| 精品三级在线| 国产精品微拍| 国产成人91精品免费网址在线| 人妻无码中文字幕第一区| 熟妇无码人妻| 亚洲床戏一区| 97人人做人人爽香蕉精品| 美女被狂躁www在线观看| 亚洲高清中文字幕在线看不卡| 亚洲欧美日韩色图| 国产手机在线小视频免费观看 | 欧美a网站| 国产一区二区三区在线观看视频| 中文字幕乱妇无码AV在线| 国产精品妖精视频| 亚洲综合色婷婷| 丁香婷婷久久| 亚洲自偷自拍另类小说| 久久无码av三级| 香蕉国产精品视频| 亚洲一区黄色| 欧美日韩亚洲国产主播第一区| 国产乱人免费视频| 青青草国产一区二区三区| 欧美97欧美综合色伦图| 久久不卡国产精品无码| 色AV色 综合网站| 日本不卡视频在线| 人妻无码一区二区视频| 2024av在线无码中文最新| h视频在线观看网站| 亚洲黄色视频在线观看一区| 一级一级特黄女人精品毛片| 欧美精品另类| 国产精品乱偷免费视频| 在线免费无码视频| 污网站在线观看视频| 国产一级二级在线观看| 成人精品午夜福利在线播放| 日本国产在线| 国产欧美日韩综合一区在线播放| 欧美午夜视频在线| 中文字幕免费播放| 免费精品一区二区h| av尤物免费在线观看| 亚洲中文字幕国产av| 久久6免费视频| 久久这里只有精品8| 中文字幕调教一区二区视频| 玩两个丰满老熟女久久网| 久久国产精品77777| 91精品国产一区自在线拍| 在线观看视频99| 国产第一页亚洲| 国产视频一二三区| 欧美特黄一级大黄录像| 国产精品林美惠子在线观看| 暴力调教一区二区三区| 国产成人一区免费观看| 国产一区三区二区中文在线| 真实国产精品vr专区| 天天干天天色综合网| 99国产精品国产| 国产精品三级专区| 免费国产不卡午夜福在线观看| 99热这里只有精品5| 久久亚洲国产一区二区| 91精品久久久无码中文字幕vr| 日韩中文无码av超清| 伦精品一区二区三区视频| 美女免费精品高清毛片在线视| 19国产精品麻豆免费观看| 人妻21p大胆| 欧美丝袜高跟鞋一区二区| 91麻豆精品视频| 毛片免费试看| 免费va国产在线观看| 国产办公室秘书无码精品| 无码中文字幕乱码免费2|