• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 消費電子 > 設計應用 > h.264編碼技術

    h.264編碼技術

    作者: 時間:2012-08-24 來源:網絡 收藏

    H.264是由ITU-T(ITU Telecommunication Standardization Sector,國際電信聯盟遠程通信標準化組)視頻專家組(VCEG)和ISO/IEC動態圖像專家組(MPEG)聯合組成的聯合視頻組 (JVT,Joint Video Team)提出的高度壓縮數字視頻編解碼器標準。H.264是ITU-T以H.26x系列為名稱命名的標準之一,同時AVC是ISO/IEC MPEG一方的稱呼。這一標準正式成為國際標準是2003年3月在泰國Pattaya舉行的JVT第7次會議上通過的。由于該標準是由兩個不同的組織共同 制定的,因此有兩個不同的名稱:在ITU-T中,它的名字叫H.264;而在ISO/IEC中,它被稱為MPEG-4的第10部分,即高級視頻 (AVC)。

    本文引用地址:http://www.czjhyjcfj.com/article/165001.htm

    H.264的特點
    H.264在框架上還是沿用以往的MC-DCT結構,即運動補償加變換編碼的混合(hybrid)結構,因此它保留了一些先前標準的特點,如不受限制 的運動矢量(unrestricted motion vectors),對運動矢量的中值預測(median prediction)等。然而,以下介紹的使得H.264比之前的視頻編碼標準在性能上有了很大的提高。應當指出的是,這個提高不是單靠某一項 實現的,而是由各種不同帶來的小的性能改進而共同產生的。

    1. 幀內預測
    對I幀的編碼是通過利用空間相關性而非時間相關性實現的。以前的標準只利用了一個宏塊(macroblock)內部的相關性,而忽視了宏塊之間的相關性, 所以一般編碼后的數據量較大。為了能進一步利用空間相關性,H.264引入了幀內預測以提高壓縮效率。簡單地說,幀內預測編碼就是用周圍鄰近的像素值來預 測當前的像素值,然后對預測誤差進行編碼。這種預測是基于塊的,對于亮度分量(1uma),塊的大小可以在16×16和4×4之間選擇,16×16塊有4 種預測模式,4×4塊有9種預測模式;對于色度分量(chroma),預測是對整個8×8塊進行的,有4種預測模式。除了DC預測外,其他每種預測模式對 應不同方向上的預測。

    2. 幀間預測
    與以往的標準一樣,H.264使用運動估計和運動補償來消除時間冗余,但是它具有以下五個不同的特點:
    (1)預測時所用塊的大小可變
    由于基于塊的運動模型假設塊內的所有像素都做了相同的平移,在運動比較劇烈或者運動物體的邊緣處這一假設會與實際出入較大,從而導致較大的預測誤差,這時 減小塊的大小可以使假設在小的塊中依然成立。另外小的塊所造成的塊效應相對也小,所以一般來說小的塊可以提高預測的效果。為此,H.264一共采用了7種 方式對一個宏塊進行分割,每種方式下塊的大小和形狀都不相同,這就使編碼器可以根據圖像的內容選擇最好的預測模式。與僅使用16×16塊進行預測相比,使 用不同大小和形狀的塊可以使碼率節省15%以上。
    (2)更精細的預測精度
    在H.264中,Luma分量的運動矢量(MV)使用1/4像素精度。Chroma分量的MV由luma MV導出,由于chroma分辨率是luma的一半(對4:2:0),所以其MV精度將為1/8,這也就是說1個單位的chroma MV所代表的位移僅為chroma分量取樣點間距離的1/8。如此精細的預測精度較之整數精度可以使碼率節省超過20%。
    (3)多參考幀
    H.264支持多參考幀預測(multiple reference frames),即可以有多于一個(最多5個)的在當前幀之前解碼的幀可以作為參考幀產生對當前幀的預測(motion-compensated prediction)。這適用于視頻序列中含有周期性運動的情況。采用這一技術,可以改善運動估計(ME)的性能,提高H.264解碼器的錯誤恢復能 力,但同時也增加了緩存的容量以及編解碼器的復雜性。不過,H.264的提出是基于半導體技術的飛速發展,因此這兩個負擔在不久的將來會變得微不足道。較 之只使用一個參考幀,使用5個參考幀可以節省碼率5~10%。
    (4)抗塊效應濾波器
    抗塊效應濾波器(Deblocking Filter),它的作用是消除經反量化和反變換后重建圖像中由于預測誤差產生的塊效應,即塊邊緣處的像素值跳變,從而一來改善圖像的主觀質量,二來減少 預測誤差。H.264中的Deblocking Filter還能夠根據圖像內容做出判斷,只對由于塊效應產生的像素值跳變進行平滑,而對圖像中物體邊緣處的像素值不連續給予保留,以免造成邊緣模糊。與 以往的Deblocking Filter不同的是,經過濾波后的圖像將根據需要放在緩存中用于幀間預測,而不是僅僅在輸出重建圖像時用來改善主觀質量,也就是說該濾波器位于解碼環中 而非解碼環的輸出外,因而它又稱作Loop Filter。需要注意的是,對于幀內預測,使用的是未經過濾波的重建圖像。

    3.整數變換
    H.264對幀內或幀間預測的殘差(residual)進行DCT變換編碼。為了克服浮點運算帶來的硬件設計復雜,更重要的是舍入誤差造成的編碼器和解碼 器之間不匹配(mismatch)的問題,新標準對DCT的定義做了修改,使得變換僅用整數加減法和移位操作即可實現,這樣在不考慮量化影響的情況下,解 碼端的輸出可以準確地恢復編碼端的輸入。當然這樣做的代價是壓縮性能的略微下降。此外,該變換是針對4×4塊進行的,這也有助于減少塊效應。為了進一步利 用圖像的空間相關性,在對chroma的預測殘差和16×16幀內預測的預測殘差進行上述整數DCT變換之后,標準還將每個4×4變換系數塊中的DC系數 組成2×2或4×4大小的塊,進一步做哈達瑪(Hadamard)變換。

    4.熵編碼
    如果是Slice層預測殘差,H.264有兩種熵編碼的方式:基于上下文的自適應變長碼(Context-based Adaptive Variable Length Coding,CAVLC)和基于上下文的自適應二進制算術編碼(Context-based Adaptive Binary Arithmetic Coding,CABAC);如果不是預測殘差,H.264采用Exp-Golomb碼或CABAC編碼,視編碼器的設置而定。
    (1)CAVLC
    VLC的基本思想就是對出現頻率大的符號使用較短的碼字,而出現頻率小的符號采用較長的碼字。這樣可以使得平均碼長最小。在CAVLC中,H.264采用 若干VLC碼表,不同的碼表對應不同的概率模型。編碼器能夠根據上下文,如周圍塊的非零系數或系數的絕對值大小,在這些碼表中自動地選擇,最大可能地與當 前數據的概率模型匹配,從而實現了上下文自適應的功能。
    (2)CABAC
    算術編碼是一種高效的熵編碼方案,其每個符號所對應的碼長被認為是分數。由于對每一個符號的編碼都與以前編碼的結果有關,所以它考慮的是信源符號序列整體 的概率特性,而不是單個符號的概率特性,因而它能夠更大程度地逼近信源的極限熵 ,降低碼率。為了繞開算術編碼中無限精度小數的表示問題以及對信源符號概率進行估計,現代的算術編碼多以有限狀態機的方式實現,H.264的CABAC便 是一個例子,其他的例子還有JPEG2000。在CABAC中,每編碼一個二進制符號,編碼器就會自動調整對信源概率模型(用一個“狀態”來表示)的估 計,隨后的二進制符號就在這個更新了的概率模型基礎上進行編碼。這樣的編碼器不需要信源統計特性的先驗知識,而是在編碼過程中自適應地估計。顯然,與 CAVLC編碼中預先設定好若干概率模型的方法比較起來,CABAC有更大的靈活性,可以獲得更好的編碼性能——大約10%碼率的降低。以上介紹的特點都 是用來提高H.264的編碼性能的,此外H.264還具有很好的錯誤恢復能力(error resilience)和網絡適應性(network adaptability),下面介紹其中的一些特點。

    5. SP Slice
    SP Slice的主要目的是用于不同碼流的切換(switch),此外也可用于碼流的隨機訪問、快進快退和錯誤恢復。這里所說的不同碼流是指在不同比特率限制 下對同一信源進行編碼所產生的碼流。設切換前傳輸碼流中的最后一幀為Al,切換后的目標碼流第一幀為B2(假設是P幀),由于B2的參考幀不存在,所以直 接切換顯然會導致很大的失真,而且這種失真會向后傳遞。一種簡單的解決方法就是傳輸幀內編碼的B2,但是一般I幀的數據量很大,這種方法會造成傳輸碼率的 陡然增加。根據前面的假設,由于是對同一信源進行編碼,盡管比特率不同,但切換前后的兩幀必然有很多相關性,所以編碼器可以將Al作為B2的參考幀,對 B2進行幀間預測,預測誤差就是SP Slice,然后通過傳遞SP Slice完成碼流的切換。與常規P幀不同的是,生成SP Slice所進行的預測是在Al和B2的變換域中進行的。SP Slice要求切換后B2的圖像應和直接傳送目標碼流時一樣。顯然,如果切換的目標是毫不相關的另一碼流,SP Slice就不適用了。

    6.靈活的宏塊排序
    靈活的宏塊排序(flexible macroblock ordering,FMO),是指將一幅圖像中的宏塊分成幾個組,分別獨立編碼,某一個組中的宏塊不一定是在常規的掃描順序下前后連續,而可能是隨機地分 散在圖像中的各個不同位置。這樣在傳輸時如果發生錯誤,某個組中的某些宏塊不能正確解碼時,解碼器仍然可以根據圖像的空間相關性依靠其周圍正確譯碼的像素 對其進行恢復。

    H.264編碼技術
    H.264的目標應用涵蓋了目前大部分的視頻服務,如有線電視遠程監控、交互媒體、數字電視、視頻會議、視頻點播、流媒體服務等。H.264為解決不同應 用中的網絡傳輸的差異。定義了兩層:視頻編碼層(VCL:Video Coding Layer)負責高效的視頻內容表示,網絡提取層(NAL:Network Abstraction Layer)負責以網絡所要求的恰當的方式對數據進行打包和傳送(如圖所示: 標準的整體框架)。   
    基本層次(Baseline Profile):該層次使用了H.264的除了B-Slices,CABAC以及交織編碼模式外所有的特性。該層次主要使用于低時延的實時應用場合。   
    主要層次(Main Profile):包含Baseline profile的所有特性,并包括了B-slices,CABAC以及交織編碼模式。它主要針對對時延要求不高,當壓縮率和質量要求較高的場合。   
    擴展層次(Profile X):支持所有Baseline profile的特性,但不支持CABAC以及基于宏塊的自適應幀場編碼。該層次主要針對的時各種網絡視頻流傳輸方面的應用。

    H.264產品
    H.264 高清編碼器
    MPEG-4 AVC/H.264 高清編碼器是一款專業的高清音視頻編碼產品。該產品支持幾乎所有模擬 及數字音視頻輸入接口,包括 CVBS、YPbPr、SD/HD-SDI、HDMI 視頻輸入接口、平衡/非平衡模 擬音頻及 AES/EBU、HDMI、SD/HD-SDI 嵌入音頻輸入接口。該設備可對標清及高清的音視頻進行編碼,支持 MPEG-4 AVC/H.264 編碼格式,具有極高的 編碼壓縮效率及極佳的視頻質量,可廣泛應用于各種數字電視播出系統中。

    主要特性
    1、支持 H.264/AVC High Profile Level 4.0 及 H.264/AVC High Profile Level 3.0 編碼,先 進的視頻預處理算法
    2、音頻編碼支持 MPEG1 Audio Layer 2
    3、支持 CVBS、S-Video、YPbPr 模擬視頻輸入 • 支持 HDMI,HD/SD-SDI 數字視頻輸入
    4、支持平衡及非平衡模擬音頻輸入
    5、支持 AES/EBU、HDMI、HD/SD-SDI 數字音頻輸入 • 支持 PAL、NTSC 標清視頻格式
    6、支持高清 720P、1080I 視頻格式
    7、支持 IP 輸出 TS,UDP 協議,單播及多播 • 支持液晶按鍵操作



    關鍵詞: 技術 編碼 h.264

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 永定县| 朝阳市| 晋中市| 景宁| 滨海县| 新晃| 赤水市| 集安市| 沙洋县| 赤城县| 崇义县| 海淀区| 甘谷县| 诸城市| 河北省| 丰顺县| 金坛市| 赤壁市| 岑巩县| 睢宁县| 霍邱县| 长汀县| 新安县| 乌苏市| 萨迦县| 虞城县| 乐安县| 宜兰县| 乌鲁木齐县| 肇州县| 广丰县| 梁山县| 达尔| 五莲县| 姚安县| 彭水| 马鞍山市| 扶风县| 高雄市| 贡觉县| 高雄市|