|
H.264, 或者 MPEG-4 第十部分,是由ITU-T視頻編碼專家組(VCEG)和ISO/IEC運動圖像專家組(MPEG)聯合組成的聯合視頻組(JVT,Joint Video Team)提出的高度壓縮數字視頻編解碼器標準。ITU-T的H.264標準和ISO/IECMPEG-4第10部分(正式名稱是ISO/IEC 14496-10)在編解碼技術上是相同的,這種編解碼技術也被稱為AVC,即高級視頻編碼(Advanced Video Coding)。該標準第一版的最終草案(FD)已於2003年5月完成。
7 x- g! {$ j0 M# D0 [
$ s" V I) E: U& k0 I7 X) OH.264是ITU-T以H.26x系列為名稱命名的標準之一,同時AVC是ISO/IEC MPEG一方的稱呼。這個標準通常被稱之為H.264/AVC (或者 AVC/H.264 或者 H.264/MPEG-4 AVC or MPEG-4/H.264 AVC)而明確的說明它兩方面的開發者。該標準最早來自於ITU-T的稱之為H.26L的項目的開發。H.26L這個名稱雖然不太常見,但是一直被使用著。有時候該標準也被稱之為"JVT 編解碼器",這是由於該標準是由JVT組織並開發的(作為兩個機構合作開發同一個標準的事情並非空前,之前的視頻編碼標準MPEG-2也是由MPEG和ITU-T兩方合作開發的--因此MPEG-2在ITU-T的命名規範中被稱之為H.262)。0 F! g* |8 z3 u9 [
0 m7 S) y( |9 ^0 C
H.264/AVC項目最初的目標是希望新的編解碼器能夠在比相對以前的視頻標準(比如MPEG-2或者H.263)低很多的碼率下(比如說,一半或者更少)提供很好的視頻質量;同時,並不增加很多複雜的編碼工具,使得硬體難以實現。另外一個目標是可適應性,即該編解碼器能夠在一個很廣的範圍內使用(比如說,即包含高碼率也包含低碼率,以及不同的視頻解析度),並且能在各種網路和系統上(比如組播,DVD存儲,RTP/IP包網路,ITU-T多媒體電話系統)工作。
% j K1 ^) X" ~- E0 I- C* h' p1 T) r# t0 {* C, s$ D$ ]
JVT最近完成了一個對原標準的拓展,該拓展被稱為高精度拓展 (Fidelity Range Extensions, FRExt)。該拓展通過支持更高的像素精度(包括10比特和12比特像素精度)和支持更高的色度精度(包括YUV 4:2:2 和 YUV 4:4:4)來支持更高精度的視頻編碼。該拓展加入了一些新的特性(比如自適應的4x4和8x8的整數變換,用戶自定義量化加權矩陣,高效的幀間無失真編碼,支持新增的色度空間和色度參差變換)。該拓展的設計於2004年7月完成,草案也於2004年9月完成。+ a! j( m% ]/ Y, `# D7 z7 I4 j
# {2 w% _" w0 D0 X5 b# F由於該標準的最早版本於2003年5月完成,JVT已經完成了一輪對標準的勘誤工作,新一輪的勘誤也已於最近完成並且得到了ITU-T的批准,不久也將被MPEG批准。
% J' e1 @, |0 A0 Z7 O( y D" a, o$ \1 n w# l+ R2 }- D' K
技術細節
* Q; L7 ~# l8 P4 M8 n6 ZH.264/AVC包含了一系列新的特徵,使得它比起以前的編解碼器不但能夠更有效的進行編碼,還能在各種網路環境下的應用中使用。這些新特性包括:! ^( ~6 j5 x- i# |2 E' m1 F
. n9 j. ~6 x6 E多參考幀的運動補償。比起以前的視頻編碼標準,H.264/AVC以更靈活的方式使用已編碼的更多幀來作為參考幀。在某些情況下,可以使用最多32個參考幀(在以前的標準裡面,參考幀的數目不是1就是對B幀來說的2)。該特性對大多數場景序列都可以帶來一定的碼率降低或者質量提高,對某些類型的場景序列,例如快速重複的閃光,反覆的剪切或者背景遮擋的情況,它能很顯著的降低編碼的碼率。 ' @/ w3 e* h0 d/ ]
變塊尺寸運動補償。可使用最大16x16至最小4x4的塊來進行運動估計與運動補償,能夠對圖像序列中的運動區域進行更精確的分割。
) F' A6 u/ X' I# V! V為了減少鋸齒(en:Aliasing)並得到更銳化的圖像,採用六抽頭的濾波器來產生二分之一像素的亮度分量預測值。 " g3 f5 E' W; W7 A3 }- y6 Y" z
宏塊對結構允許場模式中採用16x16的宏塊(相對於MPEG-2中的16x8)。
8 m# `3 O% l3 h, k6 c1/4像素精度的運動補償能夠提供更高精度的運動塊預測,由於色度通常是亮度抽樣的1/2(參見4:2:0),這時運動補償的精度就達到了1/8像素精度。 / R, m3 p7 H* Z. ]
加權的運動預測,指在運動補償時可以使用增加權重和偏移的辦法。它能在一些特殊的場合,如淡入、淡出、淡出而後淡入等情況提供相當大的編碼增益。
" Y' p& L7 F7 I) y' y使用了一個環內的除塊效應濾波器,能夠減輕普遍存在於其他基於離散餘弦變換(DCT)的視頻編解碼器的塊效應。
+ x; e2 E' k& d一個匹配的整數4x4變換(類似於離散餘弦變換的設計),同樣在高精度拓展 中,採用整數8x8變換,並能在4x4變換和8x8變換中進行自適應的選擇。
) M0 f J0 z5 `, e( H q) o在第一次4x4變換後,對DC係數(色度的DC係數和某種特殊狀況的亮度DC係數)再進行一次Hadamard變換,使得在平滑區域得到更好的壓縮效果。 * v5 `) |( G3 O. {" d4 H
利用臨近塊的邊界像素的Intra空間預測(比曾在MPEG-2視頻部分使用的直流係數預測和在H.263+和MPEG-4視頻部分使用的變換係數預測的效果要好)。
4 n, `) F- m" l0 ^基於上下文的二元算數編碼 (CABAC),它能夠靈活的將各種語法元素,在已知相應上下文機率分佈的狀況下進行更有效的無損熵編碼。 8 l2 R9 P j% Z! b' e$ `% G- J
基於上下文的變長編碼 (CAVLC),用於對量化後的變化係數進行編碼。比起CABAC它的複雜度相對較低,壓縮比不高,但是比起以前的視頻編碼標準所使用的熵編碼方案,它又是相當有效的。
* j2 @% g5 C Z% j r- f對既不是用CABAC也不是用CAVLC的語法元素,使用Exponential-Golomb(Exp-Golomb)熵編碼方案,進行編碼。 . E7 s; Y, N) s* E) B" i
使用一個網路抽象層 (NAL),使得相同的視頻語法可以適用於多種網路環境中;並且使用了序列參數集(SPSs)和圖像參數集(PPSs)來提供更高的強健性(robustness)和靈活性。 2 I7 V: G7 K; M# A5 l" R I
切換條帶(Switching slices,包括SP和SI兩種),它使得編碼器能夠指令解碼器跳轉到一個正在處理的視頻碼流,用來解決視頻碼流碼率切換和"竅門模式"(Trick mode)操作。當解碼器利用SP/SI條帶跳轉到一個視頻碼流中間時,除非之後的解碼幀引用切換幀之前的圖像作為參考幀,它都可以得到完全一致的解碼重建圖像。 + M% i$ u' A0 |4 _8 A" [
靈活的宏塊排列模式(FMO for Flexible macroblock ordering,也被稱為條帶組slice groups技術)和任意條帶排列(ASO for arbitrary slice ordering)模式,用來更改圖像編碼的最基本單位-宏塊的編碼順序。它能夠用來提高有繞通道下碼流的魯棒性(robustness)以及一些其它的目的。 * |3 O( h0 h3 I. `/ d% Y, H
數據分區(DP for Data partitioning),能夠將重要程度不同的語法元素分開打包傳輸,並使用非平等數據保護(UEP for unequal error protection)等技術來改善視頻碼流對抗通道誤碼/丟包的魯棒性(Robustness).
9 d3 p [( N" D1 Z! t$ i冗余條帶(RS for Redundant Slices),同樣是一個提高碼流魯棒性的技術。編碼器利用該技術可以發送圖象某區域(或者全部)的另一個編碼表示(通常是較低解析度的編碼碼流)使得當主表示發生錯誤或者丟失的時候能夠用冗余的第二個編碼表示來解碼。 8 W6 j G. P% D$ r u3 u
使用了一個自動的位元組碼流打包方法,避免了碼流中出現與開始碼重複的碼字。開始碼是碼流中用於隨機訪問和重建同步的碼字。
. `& f, {3 F- S$ `" {( ]! B/ J4 Q補充增強信息(SEI for Supplemental Enhancement Information)和視頻可用信息(VUI for Video Usability Information)增加了向視頻碼流中加入信息的辦法,為各種應用提供了用途。
' {: y+ o3 z6 T z1 B6 T) f3 M輔助圖層(Auxiliary pictures), 可以用來實現某些特殊的功能,例如alpha複合(alpha compositing)。
/ U3 W3 H; \. X$ G幀編號,使用該功能支持創建一個視頻序列的子序列,可用來支持實現時域的可伸縮性,還支持對丟失的整幀圖像進行檢測和隱藏(丟失可能是由於網路丟包或者通道誤碼造成的)。 ) d/ r4 o: ~* e: r2 O; d
圖像順序計數,使用該功能使得各幀圖像的順序和解碼圖像的像素值與時間信息無關,即使用一個單獨的系統對時間信息進行傳輸、控制、更改,從而不影響解碼圖像的像素值。
, y7 O; x: E1 E7 y& r上述這些技術,與其它技術的結合,使得H.264比起以前的視頻編解碼能夠帶來性能上顯著的提高,並在各種不同的環境下達成更廣泛的應用。H.264在壓縮性能上比起MPEG-2有很大的提高,在相同的圖像質量下可以,碼率可以減少到一半或者更少。
3 j( k) `+ G$ b/ D# J$ o5 U4 D( N" w
, F' C& B) W7 [3 x和MPEG的其它視頻標準一樣,H.264/AVC也提供了一個參考軟體,並可以免費下載。它的主要目的是提供一個演示H.264/AVC各種功能的演示平臺,而不是作為一個直接的應用平臺(在後面的連結部分可以找到下載的地址)。目前在MPEG也同時在進行一些硬體參考設計的實現。3 U" l1 E3 W7 E" }: t, g0 k# H& D
2 T+ `! J9 h+ \% @2 t1 L[ 本帖最後由 masonchung 於 2007-1-20 02:42 PM 編輯 ] |
|