H.264/AVC來勢洶洶,不管在效率以及抗錯能力的表現上面都有一定的水準,看起來似乎有接替MPEG2成為下一帶影像壓縮標準的氣勢。但是H.264/AVC想要成為下一代多媒體應用的使用標準仍然還有很多問題需要克服。
H.264/AVC發展史
隨著電腦硬體設備成本下降以及普及化,漸漸地,多媒體應用的需求越來越大。加上近年來,3G以及Wireless network發展迅速,因此高效率以及高品質的影像壓縮技術越來越受到大眾的關注。有鑒於此,國際兩大組織ITU-T以及ISO/IEC的MPEG從1993年起也制定了許多影像壓縮標準。直到2001年時,MPEG與ITU-T合作成立一個新的單位Joint Video Team(JVT)。到了2003年,其間經過多次的JVT會議之後,終於在第二季提出了統一的標準H.264/AVC。這個標準在ITU-T叫做H.264,而在ISO/IEC則稱為MPEG4-Part 10 AVC(Advanced Video Coding),這也是H.264/AVC這個名稱的由來。整個流程如圖1所示。
圖1 影像壓縮標準時程表
H.264/AVC除了在壓縮率上有很顯著的提昇之外,在應用層面也比H.263 /MPEG4廣泛許多,舉凡視訊電話、視訊會議、監控系統、影像串流(video streaming)、手機電視、數位電視以及IPTV等。儘管目前H.264/AVC有取代MPEG2成為下一個世代DVD播放機(HD-DVD、Blue-Ray DVD)影像標準的氣勢,但是目前仍然有微軟VC-1以及中國大陸自行發展的AVS虎視眈眈,因此H.264/AVC仍然有相當大的挑戰。接下來就針對H.264/AVC做一些技術上以及現今產業發展和未來挑戰的介紹。
H.264/AVC技術介紹
H.264/AVC包含了相當多的可以改進壓縮率以及更適合網路傳輸的新技術。可以達到上述想兩項效果,主要是因為H.264/AVC提出了兩層的設計:視訊編碼層(Video Coding Layer,VCL),以及網路提取層(Network Abstraction Layer,NAL)。前者負責提高編碼效率,而後者是負責提高在不同網路特性上傳輸的適應能力。以下我們就視訊編碼層以及網路提取層來做介紹。
1. 高編碼效率的設計
多參考影像的動作補償 (Multiple reference frame motion compensation)
在H.264/AVC中,最多可以參考到前後多張的影像,這比起之前的標準(MPEG-1,MPEG-2,MPEG-4僅支援前後一張)寬鬆許多。如圖 2所示。在這項改進當中,很明顯的就是會看到位元率(Bit Rate)的降低,尤其是在特殊的景色當中。比如說有些背景可能會被某個主體遮住而沒有出現在前一張影像,這時候便可在前幾張影像中找到這些背景可以提高動作估測(Motion Estimation)的效率減低位元率,提高壓縮率。
可變尺寸區塊的動作補償(Variable block size motion compensation)
一般來說,我們為了提高壓縮的效率,會以Macroblock(16 x 16_當成一個編碼的單位。可是每張影像都有不同的細緻度,有些地方較為細膩,有些地方較為平滑。如果不看影像內容都採用16x16 為單位的編碼方式,會降低壓縮率。因此,在H.264/AVC中,除了使用16x16為編碼單位之外,又提供了16x8,8x16,8x8,8x4,4x8,4x4 等六種區塊大小。如圖3所示
Adaptive MB Frame Field Coding(MBAFF)
就影像編碼的特性來說,Frame coding適合用在空間關聯性較強的影像而Field coding適合用在時間關聯性較強的地方。所以在移動性較小的影像當中Frame coding比Field coding來的有效率,反之則否。在之前的影像標準中,可以選擇一張影像為單位的Frame或Field coding。但是因為每個MB都會有不同的移動向量(Motion Vector),所以如果可以依照不同MB特性來做Frame/Field coding的調整,會獲得更好的壓縮效率。根據這個理論,H.264/AVC中提供了以MB為單位的Frame/Field coding。
環路去區塊效應濾波器(In-loop deblocking filter)
由於H.264/AVC和先前的標準一樣都是採用區塊基準(block-based)的編碼方式,所以會有區塊效應(blocking effect)的產生,因此需要去區塊效應濾波器去除區塊效應。H.264/AVC把去區塊效應濾波器放在動作補償的迴路當中,這樣既可以去除區塊效應,也可以保護影像的細節,改善影像品質。因為需要把濾波後的影像儲存起來做動作估測,所以這個濾波器是位在編碼器的環路之內而非環路之外,故稱為環路(In-Loop)去區塊濾波器。
畫面內空間預測(Intra prediction)
同一張影像內的空間預測(Intra prediction)因為一張影像內通常都有很高的空間相關性,所以在空間上做預測可以得到更好的壓縮率。在H.264/AVC中提供兩種區塊大小的空間預測:4x4,16x16。其中4x4的有提供九種預測的方向,16x16的提出四種。如圖4所示,此為九種4X4空間預測模式。
Context adaptive binary arithmetic coding (CABAC)
這是一種算數編碼(entropy coding)的方式。可以達到相當高的壓縮率,尤其跟CAVLC來比,更可以提高將近15~20%的壓縮率。可以達到這樣的效果,主要是因為下面三種原因:1.針對每一個syntax element's context選擇機率模型。2.可以依據統計特性調整估測的機率。3.利用arithmetic coding。
Context adaptive variable length coding (CAVLC)
這是一個相較於CABAC複雜度較低的編碼方式。儘管效果沒有CABAC來的好,但是和先前標準所採用的方法比起來,仍然有很大的增加。這些增加主要是因為CAVLC是針對4x4區塊的特性來設計的:
1.量化後的區塊,其DCT係數含有大量的0,所以再利用run-level coding之後,可以用很少的位元數表示一連串的0。
2. 經過zig-zag掃描之後,在最高層的細數通常為+1/-1。CAVLC可以提供常出現的+1/-1訊號很高的壓縮率。
3. 利用查表將非零係數編碼。
2. 提高網路適應能力的設計
影像/序列參數集(Picture/Sequence parameter set)
由於序列或是影像性質的信息往往比編碼內容來的更加重要。所以針對這個特性,H.264/AVC的影像/序列參數集可以獨立出來,使之可以在穩定的環境下傳輸。而在解碼端時,也可以判斷這些重要的訊息封包是否有完整收到,以便可以及時採取一些補救措施,如此一來也可以增強抵抗錯誤的能力。
資料分割(Data partition , DP)
因為每種信息重要性都不盡相同,所以H.264/AVC提供了一種可以依據重要性將資料包成不同的封包功能。例如可以將動作向量,DCT係數,以及區塊訊息分成三個不同的封包。如此一來,可以檢測出失去的資料類型,以減少影像品質的傷害。
Slice 編碼模式
Slice就是由許多MB所組成的,而一張影像是由許多Slice所組成的。而Slice可以獨自解碼不需要其他Slice的資訊。因此,Slice也可以當作抗錯的工具之一。圖5(a)(b)表示MPEG-2以及MPEG-4支援的Slice模式。在H.264/AVC中,還有另一個新的架構叫做Flexible Macroblock Ordering(FMO)。如圖5(c)所示。也就是說組成Slice的MB順序不需要依照循序掃描(raster scan),還可以利用其他的順序排法,例如:反循序掃描(reverse raster scan)。
Redundant slices(RS)
這個功能主要是利用傳輸一個不同表示的影像資料,通常這個資料所表示的影像品質較差。當主要的資料因為環境而產生錯誤時,就可以利用RS來修補受傷害的影像。
H.264/AVC產業發展現況與挑戰
在相同的影像品質之下,H.264/AVC所需頻寬比起之前的標準節省40%~100%。直接地說,若把MPEG-2的頻寬使用量當做100%,MPEG-4要達相同效能只需60%頻寬,H.264更是低至40%,約為MPEG-2的1/2?1/3。目前H.264的發展大致上有三種應用平台:個人電腦,嵌入式系統以及IC。
在個人電腦及嵌入式系統的發展上,國內外都有相當多的廠商投入研發。國外的如Main concept, Ateme以及Moonlight等都有相當不錯的研發成果。國內的則有資策會網多所極力投入研發。在研發成果方面,目前國內資策會不論在H.264整體效能不論在個人電腦上以及嵌入式平台上都有相當不錯的成果。
IC方面的發展,也是有很多廠商投入人力開發。比較著名的是Broadcom在2005年推出型號為BCM7411D可以支援MPEG-2/H.264/VC-1的解碼晶片。
H.264/AVC來勢洶洶,不管在效率以及抗錯能力的表現上面都有一定的水準,看起來似乎有接替MPEG2成為下一帶影像壓縮標準的氣勢。但是H.264/AVC想要成為下一代多媒體應用的使用標準仍然還有很多問題需要克服,下面我們為大家分析一下現階段H.264/AVC所面臨的挑戰以及需要改進的地方。
VC-1、MPEG4、AVS對H.264/AVC的威脅
VC-1是由Society of Motion Picture and Television Engineers (SMPTE)所發佈的視訊壓縮標準。VC-1提出了三種profile以及十種levels供不同需求的使用者挑選。
AVS是由中國大陸”數位影視編解碼技術標準工作小組”所建立的標準。其全名叫做Audio Video Coding Standard。由這個名稱可以得知,這個標準類似MPEG2/4除了Video之外還包括了Audio的標準。目前在大陸有138個會員單位共同參與標準的制定,其中包含了國內外的電子大廠以及中國國內許多著名的大專院校,例如清華大學,北京大學等。
一般業界在選擇所用的標準時,不外乎就是討論兩個主要的因素:1.成本,2.效能。所以以下我們針對這兩個議題來做討論。
1.成本
成本就是複雜度以及權利金。但是複雜度方面可以利用技術以及製程來讓整個成本下降,而權利金的支出則是固定的,所以接下來我們會針對不同標準所需的權利金討論。目前可以對H.264/AVC授權的有MPEG LA以及Via兩間公司。如圖6所示。圖7則為Via授權公司對H.264技術的授權金。
另外,目前H.264/AVC已經確定Baseline Profile免收權利金了,所以如果以H.264/AVC和MPEG4來比較的話,H.264/AVC在權利金方面的確是有較大的吸引力。但MPEG4雖然壓縮效率比較差,但是其複雜度則相對來說低的多,所以如果MPEG4的權利金突然下降的話,仍然會對H.264/AVC的發展造成很大的威脅。
另外,自從VC-1以及AVS標準制定以後,因為進入市場較晚,紛紛以壓低權利金的方式想要搶進市場並且獲得各大廠的親睞。VC-1推出編碼壓縮硬體僅需0.1美元的權利金,而在內容權利金方面更是免收。AVS也推出相當大的優惠,提出了只需要一元人民幣(0.12美金)的權利金便可使用使用所有AVS的權利。但是因為VC-1和AVS目前都只有一間公司提供授權,所以就授權的彈性以及將來性來說,不確定性較大,這也是現在業界所考慮的因素之ㄧ。
2.效能
目前以效能來看,藉由複雜度的提高,H.264/AVC壓縮率大約MPEG4的1.5倍,並且加入了容錯機制,減少影像因為傳輸錯誤所造成的影響,因此有機會取代MPEG4在網路串流上有更廣泛的應用。至於VC-1,就目前官方所提出的資料來看,其壓縮率上面的表現並不輸給H.264/AVC,而且在複雜度方面也較為簡單。另外,目前AVS-P2(AVS高解析視訊標準)的表現來看,在壓縮率方面大概是MPEG2的兩倍,幾乎與H.264/AVC不相上下,而其複雜度大約是H.264的70%。目前AVS-P2只有定義baseline profile。和H.264/AVC比起來最大的差異就是增加了B-Frame以及Interlace的功能。
結論
多媒體影音壓縮標準從1993年開始發展至今十多年,目前該領域還是依舊有多重互不相容標準共存的現象,而且就目前的局勢來看,未來這種情形還是會維持一段時間。第一代影音壓縮標準MPEG-2由於建立時間長,技術成熟,可靠性高等優勢,成為應用最廣泛的標準。MPEG-2不僅被歐洲DVB-X,美國ATSC以及日本的ISDB等數位電視系統所採用,而且也是目前所有DVD市場的主流標準,因此近期以來想要撼動MPEG-2的地位相當不易。再加上現在業界仍有公司努力提高MPEG-2的壓縮效率,成果也相當顯著,所以MPEG-2在過去以及未來的一段時間都還是國際上最為通行的標準。
由於上述的原因,第二代影音編碼標準(MPEG-4,H.264/AVC,AVS)只有在新興領域開發競爭。由於3G網路以及Wireless Network的普及,所以影音串流的需求量越來越大,這也開闢了第二代影音編碼標準競爭的新戰場。就目前業界的發展來看,最早起步的H.264/AVC有較大的機會贏得這場戰役,而且以目前廠商的態度來看,H.264/AVC拿下影音壓縮標準的霸主也只是時間早晚的問題。但是就如同我們之前所分析過的問題,H.264/AVC仍有許多的問題和挑戰仍須克服,所以我們就拭目以待這場戰役的結果吧!
作者研究領域:影音壓縮標準(H.264/AVC、AAC、AAC+),DSP架構,訊號處理
參考資料:
1. Iain E G Richardson, "H.264 and MPEG-4 Video Compression, " John Wiley, 2003
2.http://www.broadcom.com/
3.http://www.mobilygen.com/
4.http://www.st.com/stonline/index.htm
5.http://www.sigmadesigns.com/public/index.html
6.http://www.streamcrest.com