H.264 / MPEG4 / AVC 壓縮編碼

※H.264 屬於 MPEG-4 的第10部份,是由ITU-T影像編碼專家協會( VCEG )和ISO/IEC動態圖像專家協會( MPEG )共同組成的聯合影像協會( JVT = Joint Video Team )提出的高壓縮數位影像編解碼器標準,它的標準代號 IOS/IEC14496-10 。


※ ITU-T稱呼它為H.264; ISO/IEC MPEG一方稱呼它為 AVC 。因此它有許多名稱,例如:( H.264 / AVC)、( AVC / H.264 )、( H.264 / MPEG-4 AVC )、( MPEG-4 AVC / H.264 ) ,最常被稱呼的是H.264、AVC( 進階影像編碼Advanced Video Coding)。


※由於 H.264 相較於 MPEG4 Part2 / ASP,可以得到更低資料流,更高品質的影片,這樣的優點時,確定有H.264 的支援將是一個優勢。( 在中、高資料流量時,H.264 也是一個好的選擇 ) 。


※尤其是在規格制訂的後續,追加了新的延伸定義 FRExt (Fidelity Range Extensions)精確區域自訂新功能,FRExt 引進了 MPEG-2 的 4x4 →8x8 轉換大小(解決在 4x4 的轉檔時,會刪除若干細微雜訊的困擾)自訂量化矩陣,影格間無失真(熵)編碼(Entropy) ,顏色深度至 10 -12bit,色彩取樣 4:2:2 - 4:4:4,這都使得 H.264 編碼成為新世代裡高畫質的影片規格。

※H.264 / AVC 包含了一系列新的特徵,使得它比起以前的編解碼器不但能夠更有效的進行編碼,還能在各種網路環境下的應用中使用。這些新特性包括:
*更多參考影格的動態補償。最多32個參考影格(以前,參考影格的數目不是1就是對B影格來說的2)。
*可變區塊尺寸動態補償。使用最大16x16至最小4x4的區塊來進行動態預測與補償,進行更精確的分割。
*像素補差點的亮度分量預測值。 為了減少鋸齒並得到更銳利的畫面,採用新型濾波器來預測。
*允許圖場模式中採用16x16 的大區塊結構 。 (相對於MPEG-2中的16x8)。
*提供更高1/4像素顏色深度的動態補償區塊預測。亮度取樣4:2:0,動態補償的位元深度就達到了1/8像素。
*增益的動態預測。在動態補償時,使用增加和偏移的方法,如淡入、淡出時,提供相當大的編碼增益。
*使用一個環內的區塊效應消除濾波器。能夠減輕基於離散餘弦變換(DCT)的影像編解碼器的區塊效應。
* 4x4變換成匹配的整數。(類似DCT設計)同樣在高位元深度中,能在4x4和8x8變換中進行自動選擇。
*在4x4變換後,對DC係數再進行一次Hadamard變換,使得在平滑區域得到更好的壓縮效果。
*利用臨近區塊的邊界像素的Intra空間預測。比在MPEG-2影像部分使用的直流係數預測和在H.263+和MPEG-4影像部分使用的變換係數預測的效果要好)。


※H.264 / AVC 包含了一系列新的特徵,使得它比起以前的編解碼器不但能夠更有效的進行編碼,還能在各種網路環境下的應用中使用。這些新特性包括:
*基於上下文的二元式,算數編碼 (CABAC) 。在已知相應上下文分佈下,進行更有效的無失真(熵)編碼。
*基於上下文的長度變動編碼 (CAVLC),用於對量化後的變化係數進行編碼。比起CABAC它的複雜度相對較低,壓縮比不高,但比起以前的影像編碼標準所使用的(熵)編碼方案,它又是相當有效的。
*使用指數哥倫布碼(Exponential - Golombs) 進行編碼。 對於不適用CABAC和CAVLC的語法元素。
*使用一個網路抽象層 (NAL),使得相同的影像語法可以適用於多種網路環境中。並且使用了序列參數集(SPSs)和圖像參數集(PPSs)來提供更高的強健性(Robustness)和靈活性。
*切換薄片 (Switching slices,包括SP和SI兩種),它能夠指示解碼器,切換影像碼流速率,和操作訣竅模式(Trick mode) 。當解碼器利用SP/SI 切換薄片,跳到一個影像碼流中間時,除非之後的解碼影格引用切
換影格之前的圖像作為參考影格,否則,它都可以得到完全一致的解碼重建圖像。
*靈活的大區塊排列模式(FMO),也被稱為薄片群組SG技術)和任意薄片排列(ASO) 模式,用來更改圖像編碼的最基本單位-大區塊的編碼順序。它能夠用來提高某些碼流的強健性及一些其它目的。
(FMO=Flexible Macroblock Ordering),(SG=Slice Groups),(ASO=Arbitrary Slice Ordering)
※數據分區(DP),能夠將重要程度不同的語法元素分開打包傳輸,並使用非平等誤差保護(UEP)等技術,來改善影像碼流,對抗通道誤碼 / 丟包的強健性。(UEP=Unequal Error Protection) (DP=Data Partitioning)


※H.264 / AVC 包含了一系列新的特徵,使得它比起以前的編解碼器不但能夠更有效的進行編碼,還能在各種網路環境下的應用中使用。這些新特性包括:
※多餘的薄片(RS),另一個提高碼流強健性的技術。編碼器利用該技術,可以發送圖像的某區域(或者全部)的另一個編碼器資料顯示 (通常是較低解析度的編碼碼流) 使得當主要編碼器資料顯示,發生錯誤或者丟失的時候,能夠用第二個編碼器資料顯示,多餘的薄片資料來解碼。 (RS = Redundant Slices)
*使用了一個自動的位元組碼流打包方法,避免了碼流中出現與開始碼重複的碼字。開始碼是碼流中用於隨機訪問和重建同步的碼字。
*補充增強信息(SEI)和影像可用信息(VUI)增加了向影像碼流中加入信息的辦法,為各種應用提供了用途。
(SEI = Supplemental Enhancement Information) ,(VUI = Video Usability Information)
*輔助圖層(Auxiliary pictures) ,可以用來實現某些特殊的功能,例如Alpha 的合成 (alpha compositing)。
*影格編號。該功能支援建立一個影像序列的子序列,可用來支援實現時域的可伸縮性,還支援對丟失的整影格圖像進行檢測和隱藏 (丟失可能是由於網路丟包或者通道誤差造成的)。
*圖像順序計數。該功能使得各影格圖像的順序和解碼圖像的像素值與時間信息無關,即使用一個單獨的系統,對時間信息進行傳輸、控制、更改,而不影響解碼圖像的像素值。
※上述這些技術,與其它技術的結合,使得H.264比起以前的影像編解碼,能夠帶來性能上顯著的提高,並在各種不同的環境下達成更廣泛的應用。H.264在壓縮性能上比起MPEG-2有很大的提高,在相同的影像品質像下,資料碼流可以減少到一半或者更少。


※H.264在針對壓縮方式的區別上,可根據不同的內容應用來區分為不同的組態(Profile),這些組態分別為Baseline Profile、Main Profile、Extension Profile,每個組態中還有相對應的影片尺寸與位元率等級,在定義上,則是可由Level 1區分至Level 5.1,涵蓋小畫面與HD畫面等不同解析度與流量應用範圍。

▲h.264解壓縮流程。(資料來源:工研院)
※Baseline Profile主要是著眼於低位元率與低流量的應用中(如視訊電話、網路影片串流等),而由於其運算複雜度相較起其他組態為低,目前的嵌入式處理器或DSP都還能負擔,所以也適合應用於如PMP、多媒體手機等個人隨身的影音播放裝置中;Main Profile因為支援了交錯式影片(interlaced content)的編碼類型,所以也適合應用於HDTV數位電視廣播,由於其非常容易整合在傳統的MPEG-2 Transport/Program Stream上來傳送H.264/AVC位元流的特性,所以在導入難度上就顯得相對簡易。至於在IP-TV或是MOD(Multimedia On Demand)等方面的應用方面,使用具有高抗錯性編碼工具(error resilient tools)的Extension Profile即可以滿足這些需求。

※由於VC-1在高解析度影片上的表現出色,導致H.264在DVD Forum與Blu-ray Disc Association的高解析度DVD影片品質測試中嚐到挫敗,甚至被Blu-Ray陣營所拒用,其主要原因是H.264使用較小尺寸的轉換公式與無法調整的量化矩陣,造成不能完整保留影像的高頻細節資訊,比如說,在1080i/p影片中常會故意使用的Film Effect效果就會被H.264所消除,因此H.264於2004年展開標準增修的討論,來納入稱之為Fidelity Range Extensions (FRExt)的新編碼工具,並以先前Main Profile為基礎來擴充增加4個新的組態類別,而成效也相當的驚人,H.264藉此成功打倒VC-1,重新取得畫質之王的稱號,並且被Blu-Ray所採用。
※FRExt修正了H.264第一版支援的每像素8-bit,且僅限於4:2:0的方式,除了進一步引進先進的編碼工具,藉此提高壓縮效率以外,原始視訊每個像素的採樣值可以達到12-bit,並且增加了4:2:2以及4:4:4等採樣格式,同時也支援了更高的解析度。除此之外,還可以針對特定高傳真影像需求,對影像進行無破壞壓縮,並且支援了基於RGB格式的壓縮,同時也避免了色彩空間的誤差。
※FRExt的四個新的類別分別是支援8-bit,4:2:0採樣的High Profile(HP)、支援10-bit,4:2:0採樣的High 10 Profile(H10P)、支援10-bit,4:2:2採樣的High 4:2:2 Profile(H422P)以及支援12-bit,4:4:4採樣的High 4:4:4 Profile(H444P),其中H444P是無損壓縮且具有多色彩空間(Color Space)的編碼方式。
※由於前一版的H.264在DCT轉換上採用4×4整數轉換,雖然有著演算複雜度較低,並可減低區塊效應的優點以外,對於高解析度視訊的處理方面,會因為被捨棄的細節太多,而導致視訊品質在壓縮過後會與遠使版本有落差的問題,因此為了達到各方面的平衡,FRExt導入了8×8整數變換機制,且編碼工具可以在Macroblock階段自動選擇4×4或8×8轉換方式。由於8×8的正轉換以及逆轉換演算都可以通過相當具有效率的蝶形演算法來實做,對於特定位元率的視訊輸入,只要在該位元率另行加入8-bit的演算動態範圍即可,在複雜度上僅略高於4×4的方式。
※不過在新的轉換方式上,也同時要求新的量化方式,由於FRExt只是原先H.264規範的延伸,與MPEG-2同樣的可以選擇量化矩陣進行量化,並藉此提高影像品質。同時也在CABAC(Context Adaptive Arithmetic Binary Coding)編碼方式上做出改進,增加了3個內容模型。至於CAVLC(Context Adaptive Variable Length Coding)則是把1組8×8的矩陣切割為4組4×4的矩陣。除了量化方式的改進以外,在偵測與預測視訊頁框亮度的技術也多加了9種不同的方式,在這些技術的相互搭配之下,追求完美的畫質表現。
※本頁文章, 係屬於大椽股份有限公司所有 http://tech.digitimes.com.tw/

※MPEG-4(14496) Parts 關於(標準代號 IOS/IEC14496)的每一個部份
• Part 1: Systems
• Part 2: Visual
• Part 3: Audio
• Part 4: Conformance
• Part 5: Reference Software
• Part 6: DMIF (Delivery Multimedia Integration Framework)
• Part 7: Optimized software for MPEG-4 tools
• Part 8: MPEG-4 on IP Framework (Transport is in principle not defined in the standard)
• Part 9: Reference Hardware Description
• Part 10: Advanced Video Coding (AVC)
• Part 11: Scene description (to be split off from part 1)
• Part 12: ISO Media File Format.
• Part 13 : IPMP Extensions
• Part 14 : MP4 File Format (based on part 12)
• Part 15 : AVC File Format (also based on part 12)
• Part 16 : AFX (Animation Framework eXtensions) and MuW (Multi-user Worlds)8

※H.264技術趨勢
*NHK、TBS、NTV、朝日電視台、富士電視台、東京電視台等日本六家電視廣播公司,已決定採用H.264作為行動數位電視的視訊壓縮標準。
*DirecTV公司已初步決定,下一代視訊服務中,選擇H.264編解碼方式。
*DVD 論壇於2003年2月已經有條件接受H.264/AVC標準為其HD-DVD系統視訊壓縮技術之一。
*歐洲的DVB 也在制定一個廣播DVB-T 電視訊號至手持裝置的DVB-X 標準,採用H.264/AVC標準。
*韓國力推的DMB標準,亦採用H.264/AVC標準。
*3GPP方面,2003年底,亦選擇H.264/AVC為下一世代的Optional Codec。
攜帶式裝置 MPEG-4 Part-2
固定式裝置 MPEG-4 Part-10(H.264/AVC)

※和MPEG的其它影像標準一樣,H.264/AVC也提供了一個參考軟體,並可以免費下載。
http://iphome.hhi.de/suehring/tml/ 是一個展示H.264/AVC各種功能的平臺,不是直接的應用平臺。
※熵編碼法(Entropy)是一種進行無損失數據壓縮的技術,在這個技術中一段文字中的每個字母被一段不同長度的比特所代替。與此相對的是LZ77或者LZ78等數據壓縮方法,在這些方法中原文的一段字母列被其它字母取代。要使得所有的字母可以在壓縮後互相區別需要一定數量的比特,因此每個字母被取代的比特數不能無限小。每個字母按照其出現的可能性所獲得的最佳比特數取決於熵。
※一般熵編碼器與其它編碼器聯合使用。比如LHA首先使用LZ編碼,然後將其結果進行熵編碼。Zip和Bzip的最後一級編碼也是熵編碼。熵(熱力學函數)


資料整理 吳思賢

    全站熱搜

    小吳老師 發表在 痞客邦 留言(0) 人氣()