H .264/AVC是由ISO/IEC與ITU-T組成的聯合視訊組(JVT)制定的新一代視訊壓縮編碼标準,于2003年5月完成制訂。相對于先前的标準,H.264/AVC無論在壓縮效率、還是在網絡适應性方面都有明顯的提高,是以,業界普遍預測其将在未來的視訊應用中替代現有的視訊壓縮标準。
但是,H.264/AVC标準由于對視訊源的限制,僅支援娛樂級視訊品質。為了進一步擴大其應用範圍,使其适應高保真視訊壓縮的應用,JVT于2004年7月對H.264/AVC做了重要的補充擴充,稱為FRExt(Fidelity Range Extensions)。
FRExt概述
H.264/AVC标準第一版支援的源圖像為每象素8b,且采樣方式僅限于4∶2∶0;而新近擴充的FRExt部分則擴大了标準的應用範圍,如專業級的視訊應用、高分辨率/高保真的視訊壓縮等。FRExt對H.264/AVC的改善主要在:(1)進一步引入一些先進的編碼工具,提高了壓縮效率;(2)視訊源的每個樣值均可超過8b,最高可達12b;(3)增加了4∶2∶2與4∶4∶4的采樣格式;(4)更高的比特率,更高的圖像分辨率;(5)可達到圖像高保真的要求,支援無損壓縮;(6)支援RGB格式的壓縮,同時避免了色度空間轉換的舍入誤差。
高保真編碼
在高類中,H.264/AVC對FRExt定義了特别的編碼方案——支援無損編碼和多種顔色格式。
(1)無損編碼
為滿足視訊信号高保真的要求,H.264/AVC隻在H444P類中引入了無損壓縮編碼方案。第一個是PCM方案,它沒有預測、變換和量化,直接傳送取樣點的值以達到無損編碼的目的;第二個是無變換的無損編碼方案,運用預測與熵編碼技術來表示圖像高效無損,相對于第一個方案提高了編碼效率。
(2)支援多種顔色格式
RGB與YCbCr互相之間的顔色轉換使用的都是浮點運算,這必将引入舍入誤差。為了消除在浮點運算中引入的舍入誤差,H.264/AVC在支援RGB的同時引入了新的彩色空間YCgCo:
Y=1/2(G+(R+B)/2), Cg=1/2(G-(R+B)/2),Co=(R-B)/2
上面的公式減小了色彩空間轉換的複雜度;但是,為了避免舍入誤差,要求增加額外的比特以保持精确性。為了把這個額外比特降到1b,使用下面的公式:
Co=R-B,Cg=G-(B+(Co>>1)),Y=(B+(Co>>1))+Cg>>1)
壓縮效率
從壓縮效率上講,H.264/AVC已經大大超過了以往的視訊壓縮标準,加入了FRExt之後,其在大尺寸、高保真等視訊壓縮方面更具優勢。圖5示出H.264/AVC FRExt與MPEG-2在HDTV圖像主觀評價方面的一個比較,H.264/AVC在不同的碼率下壓縮,而MPEG-2的壓縮碼率是24Mb/s,由此圖可見8Mb/s的H.264/AVC FRExt與MPEG-2相當。

圖5 H.264/AVC FRExt 與MPEG-2的性能比較
由于引入了基于空域的幀内預測技術,并且經過FRExt的改善,H.264/AVC的I幀與JPEG2000的編碼效率相當,非常适合高品質的視訊壓縮應用。
小結
新一代視訊壓縮編碼标準H.264/AVC的新進展——FRExt,相對于第一版标準擴充了視訊源的采樣格式與比特深度,加入了一些提高編碼效率的工具。進而H.264/AVC進一步提高了編碼效率,擴大了應用範圍。
目前,高類已經代替主類而成為廣播和其他娛樂應用的首選。主要原因是,它比起先前的主類隻增加了極小的算法複雜度,卻大大提高了壓縮性能且編碼器控制的靈活性。其中,H422P類可望在演播室環境中得以應用。在補充了FRExt之後,H.264/AVC被迅速推廣到各種應用中,主要包括:歐洲數字視訊廣播标準DVB;美國先進電視系統委員會ATSC;DVD論壇的HD-DVD規範;藍光光碟協會(BDA)的BD-ROM規範。
圖1 FRExt 編碼工具
FRExt增加了4個新的類:(1)High Profile(HP),支援8b、4∶2∶0采樣;(2)High 10 Profile(Hi10P),支援10b、4∶2∶0采樣;(3)High 4∶2∶2 Profile(H422P),支援10b、4∶2∶2采樣;(4)High 4∶4∶4 Profile (H444P),支援12b、4∶4∶4采樣、無損編碼與多種色彩空間的編碼。
H.264/AVC FRExt詳細說明了一組4個新的類,它們如同性能的嵌套子集一樣被創立。這4個類全都繼承了主類的工具集,就像它們的公共交集;而高類(HP)還額外地包含了所有能夠提高編碼效率的主要的新工具。相對于主類(MP),這些工具在算法複雜度上隻是稍有提高。是以,在數字視訊應用中,在4∶2∶0色度采樣格式中使用8b視訊的高類有可能代替主類。
增加了高類之後,H.264/AVC各類的關系如圖2所示,具體所包含的編碼工具如下:
圖2 H.264 各個類的關系
1.所有類的共同部分:I片、P片、CAVLC;
2.基本類(Baseline):FMO、ASO、備援片;
3.主類(Main):B片、權重預測、CABAC、隔行編碼;
4.擴充類(Extended):包含基本類的所有部分(FMO、ASO、備援片)、SP片、SI片、資料分割、B片、權重預測;
5.高類(High):包含主類的所有部分(B片、權重預測、CABAC、隔行編碼)、自适應變換塊尺寸(4×4或8×8整數變換)、量化矩陣。
FRExt增加的關鍵算法
FRExt之是以能進一步提高編碼效率及保真度,是因為加入了一些有效的編碼工具。其中大部分是在取樣點比特深度和色度格式方面;而在提高編碼效率方面,主要是利用8×8的亮度幀内預測、4×4變換及8×8變換、量化矩陣等技術。
9種8×8的亮度幀内預測
H.264/AVC第一版的幀内預測包括9種4×4亮度塊、4種16×16亮度塊和4種色度塊的預測。
圖3 幀内預測方向
在FRExt中增加了9種8×8亮度塊的預測,其預測方向(如圖3)、預測塊的計算與4×4塊的基本一樣,如圖4所示。在一個給定的8×8亮度塊中,每個象素值可從相鄰的參考象素值(A~X、Z)中預測得到,編碼器可選擇8種不同的預測方向和直流預測。
還有一點與4×4塊的不同,就是要對預測值進行低通濾波,以提高預測的精确度。新的8×8幀内預測中,給出了一個簡單的二階低通濾波器,它在預測之前被用來重建亮度的參考象素值。經過濾波的參考象素按照9種模式的預測方法進行預測。
8×8的整數變換
H.264/AVC第一版中,對所有的殘差塊采用了4×4整數變換;對16×16亮度塊進行幀内預測;整數變換後的16個DC系數采用4×4哈達瑪變換,色度塊的DC系數采用2×2哈達碼變換。
4×4整數變換除了算法複雜度低外,還可以有效地降低塊效應。但是,對于大尺寸、高保真的視訊,須要很好地儲存圖像的細節和紋理,這就需要更大尺寸的變換。為了達到各方面的平衡,FRExt引入了8×8整數變換,且編碼器可以在宏塊級自适應地選擇4×4或8×8變換。在制定H.264/AVC标準之前,曾提出可變塊尺寸的變換,其算法複雜度要低一些。
圖4 用于8×8空間亮度預測的樣本
8×8正變換和逆變換都可以通過快速蝶形算法實作,對于n比特的輸入視訊,隻需要(8+n)比特的運算動态範圍。8×8變換蝶形算法的複雜度隻略高于4×4變換。
新的變換同時要求相應的量化方法。FRExt在第一版的基礎上做了擴充,與MPEG-2一樣可以選擇量化矩陣進行量化,而量化矩陣可以提高圖像的主觀品質。同時,CABAC也做了改進,增加了3個内容模型,而CAVLC把8×8的系數分為4組4×4的系數。
表1 FRExt中的二維8×8變換矩陣
須要指出的是,編碼器可以對每一個宏塊選擇4×4或8×8變換,但變換尺寸的選擇過程受到兩種限制:(1)對于幀内預測,隻有在采用8×8亮度塊的預測時,選擇8×8整數變換;(2)對于幀間預測,宏塊中包含一個或多個小于8×8的塊(4×8、8×4、4×4),必須采用4×4整數變換。
本文作者郭曉強先生,國家廣播電影電視總局廣播科學研究院博士;解偉先生,北京郵電大學博士研究所學生。