• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      H.264色度分量插值算法的速度優(yōu)化

      2010-08-09 05:03:46曾嘉亮
      電視技術(shù) 2010年12期
      關(guān)鍵詞:色度插值乘法

      曾嘉亮

      (汕頭職業(yè)技術(shù)學(xué)院 機電工程系,廣東 汕頭 515078)

      責(zé)任編輯:哈宏疆

      1 引言

      隨著H.264標(biāo)準(zhǔn)在視頻壓縮領(lǐng)域日益廣泛的應(yīng)用,在嵌入式系統(tǒng)中實現(xiàn)H.264的實時編解碼器具有越來越重要的實用意義,這一趨勢對編、解碼程序的執(zhí)行速度提出了更高的要求。

      由于H.264運動補償?shù)牟逯邓惴ㄒ呀?jīng)標(biāo)準(zhǔn)化,其速度優(yōu)化的必要性往往被忽視,主流的開源編解碼器[1-3]一般直接在C語言層面上實現(xiàn)標(biāo)準(zhǔn)化的插值公式。

      事實上,通過對插值算法的詳細(xì)分析發(fā)現(xiàn),至少在色度插值算法上可以進行效率可觀的優(yōu)化。

      2 標(biāo)準(zhǔn)化的H.264色度插值算法

      與傳統(tǒng)的視頻壓縮標(biāo)準(zhǔn)相比較,H.264的運動補償機制支持更高精度的亞像素插值,最高可達1/4亞像素精度。

      色度分量的水平、垂直分辨力是亮度分量的1/2,因此,亮度分量的1/4亞像素插值對應(yīng)到色度分量,就需要進行1/8亞像素插值。H.264標(biāo)準(zhǔn)規(guī)定對色度分量的插值統(tǒng)一采用雙線性插值算法[4-7],利用4個整數(shù)坐標(biāo)處的像素值插值得到。如圖1所示。

      H.264標(biāo)準(zhǔn)并且給出了由4個整數(shù)坐標(biāo)處的像素值A(chǔ),B,C,D插值生成任意1/8位置處的新像素值G的公式[4]

      式中:dx和dy是色度塊運動矢量的水平、垂直分量,其值域均為[0,7];round()函數(shù)表示對括號內(nèi)的結(jié)果進行四舍五入操作。

      由于色度插值是以塊 (宏塊或其子塊)為單位進行的, 對于同一圖像塊而言,4個插值系數(shù) Ca=(8-dx)(8-dy),Cb=dx(8-dy),Cc=(8-dx)dy 和 Cd=dxdy 是相同的,因此對整個塊所有像素做插值前,只需計算一次系數(shù)。

      為便于描述,把標(biāo)準(zhǔn)化的色度分量插值算法的主要步驟抽象為如圖2所示代碼。

      圖中式(2)是標(biāo)準(zhǔn)H.264編解碼器對色度插值的實際動作,也是需要改進速度的核心步驟。

      3 H.264色度插值算法的速度優(yōu)化

      3.1 基于統(tǒng)計特性的速度優(yōu)化

      由式(1)易知,若 dx=0,則有 Cb和 Cd為 0;若 dy=0,則 Cc 和 Cd 為 0;若 dx=dy=0,則 Cb,Cc,Cd 均為 0。

      在這3種dx或dy為0的特殊情況下,式(2)中的乘法操作的數(shù)目均可大大減少,從而提高運算速度。事實上,如下文所述,經(jīng)過精心設(shè)計后,在這3種特殊情況下可以不用任何乘法實現(xiàn)式(2)的等價運算。

      下一個問題是——上述3種特殊情況的色度塊數(shù)量所占的比例是多少。因為如果特殊情況的比例太小,那么對于整體圖像的速度優(yōu)化便沒有太大的意義。

      表1給出了對3個標(biāo)準(zhǔn)測試視頻序列壓縮后碼流的統(tǒng)計結(jié)果,表中的3個H.264碼流均是經(jīng)過主流編碼器[3]壓縮產(chǎn)生的,每個碼流均包含300幀圖像,且量化參數(shù)QP均為26。

      表1 dx或dy為0的色度塊比例統(tǒng)計表

      統(tǒng)計結(jié)果表明,dx或dy為0的色度塊數(shù)目,在總色度塊數(shù)占據(jù)相當(dāng)大的比例。因此,對這3種特殊情況進行分別處理,對于提高運算速度具有重要的現(xiàn)實意義。

      3.1.1 dx和dy均為0的優(yōu)化

      這種情況下,Cb=Cc=Cd=0,而Ca=64。將4個系數(shù)代入式(1),得

      對比式(2)和(3),不難看出,對于同一色度塊的所有插值像素而言,式(3)所需要的僅僅是直接將參考圖像像素A的值賦予當(dāng)前待插值像素G,比式(2)減少了4個乘法、4個加法和一個移位操作,極大地提高了運算效率。

      3.1.2 僅dx為0的優(yōu)化

      此時,Cb=Cd=0,Ca=8(8-dy),Cc=8dy。 代入式(1)并化簡,得

      由于 C,A 的取值范圍在[0,255]之間,因此(C-A)的值在[-255,255]之間,共511種可能情況;而dy的值在[1,7]間,有 7 種可能。

      由上述分析,可以為式(4)中的 round([(C-A)dy]/8)這一項,構(gòu)建一張數(shù)據(jù)查找表(Look Up Table,LUT),通過查表來加速插值操作,見

      式中:CHROMA_MC_LUT_1是一張二維數(shù)據(jù)表,填入dy和(C-A)即可得到對應(yīng)的 round([(C-A)dy]/8)的值。

      對比式(2),式(5)用 2 個加(減)法、1 個查表代替了式(2)的4個乘法、4個加法和一個移位操作,較大地提高了運算效率。

      3.1.3 僅dy為0的優(yōu)化

      將dy=0代入式(1)并化簡,得

      與 3.1.2 節(jié)同理,(B-A)的值在[-255,255]之間,dx 的值在[1,7]間,一樣可以通過查表來加速此種情況的插值操作,見式(7)

      式(7)同樣是用2個加(減)法、1個查表代替了式(2)的4個乘法、4個加法和一個移位操作,實現(xiàn)了加速。

      3.2 常規(guī)情況的優(yōu)化

      即使對于dx,dy均非0的情況,式(2)也仍然有優(yōu)化的余地。圖1所示G即為這種常規(guī)情況。

      3.2.1 針對雙線性插值算法原理[6]的優(yōu)化

      由圖1易知,E相對于A和B,F(xiàn)相對于C和D,均滿足3.1.3節(jié)所述的dy為0的情況,即

      而G相對于E和F滿足3.1.2節(jié)所述的dx為0的情況,即

      可見,dx,dy均非0的情況下仍然可以通過查表操作來減少乘法運算。

      理論上,式(8)(9)(10)聯(lián)立的運算結(jié)果與式(1)的結(jié)果是等價的。但是實際上,由于E,F(xiàn)在求取過程中各自經(jīng)過了一次舍入操作,所以式(10)中的G經(jīng)過了2重舍入運算,導(dǎo)致在某些情況下與式(1)中的插值結(jié)果會有誤差。

      解決問題的辦法是避免2重舍入。將等式(8)左、右兩側(cè)均乘以8,便可以消去舍入運算round()

      同理,式(9)可以轉(zhuǎn)換為

      由此得到新的插值公式

      式(11)(12)(13)聯(lián)立的運算結(jié)果,與式(1)不管是在理論上還是實踐上都是等價的。

      對式(11)而言,由于A是非負(fù)整數(shù),8A可以通過對A左移3位得到,從而減少了一次乘法。至于(B-A)dx這一項,則必須通過預(yù)先建立查找表的方法來避免乘法操作。

      式(12)的優(yōu)化方法與式(11)相同。

      對式(13),8·8E可以通過對8E左移3位得到。而對(8F-8E)dy這一項,由于可能的結(jié)果太多,構(gòu)建數(shù)據(jù)查找表是不現(xiàn)實的,因此只能在程序中直接進行乘法運算。

      3.2.2 針對塊操作特點的優(yōu)化

      前已述及,色度插值是以塊為單位進行的,所以上述的所有優(yōu)化操作都是在一個像素矩陣內(nèi)循環(huán)進行的。

      設(shè)圖像中坐標(biāo)為(x,y)處插值像素為G0,其2個插值源數(shù)據(jù)分別為 E0和 F0;G0正下方的(x,y+1)處插值像素為G1,其2個插值源數(shù)據(jù)分別為E1和F1。

      觀察圖1不難發(fā)現(xiàn):E1=F0。推廣到塊中的一行,就是:當(dāng)前行的所有G對應(yīng)的F,剛好是下一行所有G對應(yīng)的E。

      這一發(fā)現(xiàn)使得對每個插值像素的E,F(xiàn)計算量可以減少50%——只需在插值循環(huán)開始前預(yù)先計算下一行的所有像素的8E。具體操作見程序清單2。

      綜合3.2.1節(jié)和3.2.2節(jié)所述,即使對dx,dy均非0的情況,也可以進行速度優(yōu)化。圖3所示的代碼直觀說明了如何對一個色度塊執(zhí)行這一優(yōu)化過程。

      在程序清單2中,CHROMA_MC_LUT_2是為了減少乘法操作而構(gòu)建的數(shù)據(jù)查找表,用于查找式(11)的(B-A)dx項以及式(12)的(D-C)dx項。

      4 色度插值速度優(yōu)化的整體操作流程

      圖4給出了前述的速度優(yōu)化操作的整體流程圖。

      5 實驗結(jié)果

      表2列出了加速優(yōu)化方法與標(biāo)準(zhǔn)方法的執(zhí)行速度對比實驗數(shù)據(jù)。

      表2 速度對比實驗數(shù)據(jù)表

      該實驗數(shù)據(jù)是以主流解碼器[2]為基礎(chǔ),對與表1相同的3個H.264標(biāo)準(zhǔn)碼流進行解碼得到的。執(zhí)行解碼程序的計算機采用Intel Celeron M 1.5 GHz CPU,896 Mbyte內(nèi)存。

      實驗數(shù)據(jù)表明:在解碼結(jié)果完全一致的情況下,優(yōu)化后的插值方法的執(zhí)行效率比標(biāo)準(zhǔn)化插值方法提高了13%~25%。

      6 結(jié)論

      筆者通過對H.264色度插值標(biāo)準(zhǔn)公式以及雙線性插值算法的詳細(xì)分析,提出了根據(jù)運動矢量的值將插值情況進行詳細(xì)分類,再針對每一類的具體情況進行特殊處理,以加速插值操作的方法;并在此基礎(chǔ)上結(jié)合色度插值的塊操作這一特性,進一步提高了算法的執(zhí)行速度。

      實驗數(shù)據(jù)表明,在解碼結(jié)果完全一致的情況下,該方法的執(zhí)行速度比標(biāo)準(zhǔn)化方法有明顯的提高。

      [1]X264 software[EB/OL].[2010-02-03].ftp://ftp.videolan.org/pub/videolan/x264/snapshots.

      [2]FFMPEG software[EB/OL].[2010-02-03].http://ffmpeg.org.

      [3]T264 software[EB/OL].[2010-02-03].http://sourceforge.net/projects/t264/.

      [4]RICHARDSON I E G.H.264 and MPEG-4 Video Compression[M].Hoboken,NJ:John Wiley&Sons Ltd.,2003:159-223.

      [5]WIEGAND T,SULLIVAN G J,BJ?NTEGAARD G, et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits And Systems for Video Technology,2003,13(7):560-576.

      [6]胡力,王峰,鄭世寶.H.264中1/4精度像素插值算法的一種硬件實現(xiàn)架構(gòu)[J]. 電視技術(shù),2005,29(10):14-17.

      [7]章毓晉.圖像工程(上冊)圖像處理[M].2版.北京:清華大學(xué)出版社,2006:73-76.

      猜你喜歡
      色度插值乘法
      算乘法
      我們一起來學(xué)習(xí)“乘法的初步認(rèn)識”
      《整式的乘法與因式分解》鞏固練習(xí)
      把加法變成乘法
      基于Sinc插值與相關(guān)譜的縱橫波速度比掃描方法
      基于改進色度模型的非接觸式心率檢測與估計
      景德鎮(zhèn)早期青白瓷的器型與色度
      一種改進FFT多譜線插值諧波分析方法
      基于四項最低旁瓣Nuttall窗的插值FFT諧波分析
      如何提高蘋果的著色度
      顺昌县| 藁城市| 淮安市| 南安市| 福州市| 琼结县| 丰台区| 马公市| 衡阳市| 来凤县| 绥化市| 兖州市| 巩义市| 南澳县| 博湖县| 山东省| 新乡县| 西吉县| 海安县| 灌阳县| 肇州县| 石楼县| 湟源县| 修文县| 故城县| 霞浦县| 五台县| 岳普湖县| 高邑县| 富平县| 淅川县| 泸州市| 临邑县| 伽师县| 章丘市| 灯塔市| 宁夏| 慈利县| 莱州市| 嘉兴市| 黄山市|