|
隨著HDTV的興起,H.264這個規范頻頻出現在我們眼前,HD-DVD和藍光DVD均計劃采用這一標準進行節目制作。而且自2005年下半年以來,無論是NVIDIA還是ATI都把支持H.264硬件解碼加速作為自己最值得夸耀的視頻技術。H.264到底是何方“神圣”呢?
什么是H.264?H.264是一種高性能的視頻編解碼技術。目前國際上制定視頻編解碼技術的組織有兩個,一個是“國際電聯(ITU-T)”,它制定的標準有H.261、H.263、H.263+等,另一個是“國際標準化組織(ISO)”它制定的標準有MPEG-1、MPEG-2、MPEG-4等。而H.264則是由兩個組織聯合組建的聯合視頻組(JVT)共同制定的新數字視頻編碼標準,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級視頻編碼(Advanced Video Coding,AVC),而且它將成為MPEG-4標準的第10部分。因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。
H.264最大的優勢是具有很高的數據壓縮比率,在同等圖像質量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始文件的大小如果為88GB,采用MPEG-2壓縮標準壓縮后變成3.5GB,壓縮比為25∶1,而采用H.264壓縮標準壓縮后變為879MB,從88GB到879MB,H.264的壓縮比達到驚人的102∶1!H.264為什么有那么高的壓縮比?低碼率(Low Bit Rate)起了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術相比,H.264壓縮技術將大大節省用戶的下載時間和數據流量收費。尤其值得一提的是,H.264在具有高壓縮比的同時還擁有高質量流暢的圖像。
H.264算法的優勢
H.264是在MPEG-4技術的基礎之上建立起來的,其編解碼流程主要包括5個部分:幀間和幀內預測(Estimation)、變換(Transform)和反變換、量化(Quantization)和反量化、環路濾波(Loop Filter)、熵編碼(Entropy Coding)。
H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2視頻壓縮標準發布以后的最新、最有前途的視頻壓縮標準。H.264是由ITU-T和ISO/IEC的聯合開發組共同開發的最新國際視頻編碼標準。通過該標準,在同等圖象質量下的壓縮效率比以前的標準提高了2倍以上,因此,H.264被普遍認為是最有影響力的行業標準。
一、H.264的發展歷史
H.264在1997年ITU的視頻編碼專家組(Video Coding Experts Group)提出時被稱為H.26L,在ITU與ISO合作研究后被稱為MPEG4 Part10(MPEG4 AVC)或H.264(JVT)。
H.264的高級技術背景
H.264標準的主要目標是:與其它現有的視頻編碼標準相比,在相同的帶寬下提供更加優秀的圖象質量。
而,H.264與以前的國際標準如H.263和MPEG-4相比,最大的優勢體現在以下四個方面:
1. 將每個視頻幀分離成由像素組成的塊,因此視頻幀的編碼處理的過程可以達到塊的級別。
2. 采用空間冗余的方法,對視頻幀的一些原始塊進行空間預測、轉換、優化和熵編碼(可變長編碼)。
3. 對連續幀的不同塊采用臨時存放的方法,這樣,只需對連續幀中有改變的部分進行編碼。該算法采用運動預測和運動補償來完成。對某些特定的塊,在一個或多個已經進行了編碼的幀執行搜索來決定塊的運動向量,并由此在后面的編碼和解碼中預測主塊。
4. 采用剩余空間冗余技術,對視頻幀里的殘留塊進行編碼。例如:對于源塊和相應預測塊的不同,再次采用轉換、優化和熵編碼。
H.264的特征和高級優勢
H.264是國際標準化組織(ISO)和國際電信聯盟(ITU)共同提出的繼MPEG4之后的新一代數字視頻壓縮格式,它即保留了以往壓縮技術的優點和精華又具有其他壓縮技術無法比擬的許多優點。
1.低碼流(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術相比,在同等圖像質量下,采用H.264技術壓縮后的數據量只有MPEG2的1/8,MPEG4的1/3。
顯然,H.264壓縮技術的采用將大大節省用戶的下載時間和數據流量收費。
2.高質量的圖象:H.264能提供連續、流暢的高質量圖象(DVD質量)。
3.容錯能力強:H.264提供了解決在不穩定網絡環境下容易發生的丟包等錯誤的必要工具。
4.網絡適應性強:H.264提供了網絡適應層(Network Adaptation Layer), 使得H.264的文件能容易地在不同網絡上傳輸(例如互聯網,CDMA,GPRS,WCDMA,CDMA2000等)。
二、H.264標準概述
H.264和以前的標準一樣,也是DPCM加變換編碼的混合編碼模式。但它采用“回歸基本”的簡潔設計,不用眾多的選項,獲得比H.263++好得多的壓縮性能;加強了對各種信道的適應能力,采用“網絡友好”的結構和語法,有利于對誤碼和丟包的處理;應用目標范圍較寬,以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求。
技術上,它集中了以往標準的優點,并吸收了標準制定中積累的經驗。與H.263 v2(H.263+)或MPEG-4簡單類(Simple Profile)相比,H.264在使用與上述編碼方法類似的最佳編碼器時,在大多數碼率下最多可節省50%的碼率。H.264在所有碼率下都能持續提供較高的視頻質量。H.264能工作在低延時模式以適應實時通信的應用(如視頻會議),同時又能很好地工作在沒有延時限制的應用,如視頻存儲和以服務器為基礎的視頻流式應用。H.264提供包傳輸網中處理包丟失所需的工具,以及在易誤碼的無線網中處理比特誤碼的工具。
在系統層面上,H.264提出了一個新的概念,在視頻編碼層(Video Coding Layer, VCL)和網絡提取層(Network Abstraction Layer, NAL)之間進行概念性分割,前者是視頻內容的核心壓縮內容之表述,后者是通過特定類型網絡進行遞送的表述,這樣的結構便于信息的封裝和對信息進行更好的優先級控制。H.264的系統編碼框圖如圖1所示。 圖1 H.264系統框圖
三、H.264標準的關鍵技術
1.幀內預測編碼
幀內編碼用來縮減圖像的空間冗余。為了提高H.264幀內編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關性,相鄰的宏塊通常含有相似的屬性。因此,在對一給定宏塊編碼時,首先可以根據周圍的宏塊預測(典型的是根據左上角的宏塊,因為此宏塊已經被編碼處理),然后對預測值與實際值的差值進行編碼,這樣,相對于直接對該幀編碼而言,可以大大減小碼率。
H.264提供6種模式進行4×4像素宏塊預測,包括1種直流預測和5種方向預測,如圖2所示。在圖中,相鄰塊的A到I共9個像素均已經被編碼,可以被用以預測,如果我們選擇模式4,那么,a、b、c、d4個像素被預測為與E相等的值,e、f、g、h4個像素被預測為與F相等的值,對于圖像中含有很少空間信息的平坦區,H.264也支持16×16的幀內編碼。 圖2 幀內編碼模式
2.幀間預測編碼
幀間預測編碼利用連續幀中的時間冗余來進行運動估計和補償。H.264的運動補償支持以往的視頻編碼標準中的大部分關鍵特性,而且靈活地添加了更多的功能,除了支持P幀、B幀外,H.264還支持一種新的流間傳送幀——SP幀,如圖3所示。碼流中包含SP幀后,能在有類似內容但有不同碼率的碼流之間快速切換,同時支持隨機接入和快速回放模式。圖3 SP-幀示意圖H.264的運動估計有以下4個特性。
(1)不同大小和形狀的宏塊分割
對每一個16×16像素宏塊的運動補償可以采用不同的大小和形狀,H.264支持7種模式,如圖4所示。小塊模式的運動補償為運動詳細信息的處理提高了性能,減少了方塊效應,提高了圖像的質量。圖4 宏塊分割方法
(2)高精度的亞像素運動補償
在H.263中采用的是半像素精度的運動估計,而在H.264中可以采用1/4或者1/8像素精度的運動估值。在要求相同精度的情況下,H.264使用1/4或者1/8像素精度的運動估計后的殘差要比H.263采用半像素精度運動估計后的殘差來得小。這樣在相同精度下,H.264在幀間編碼中所需的碼率更小。
(3)多幀預測
H.264提供可選的多幀預測功能,在幀間編碼時,可選5個不同的參考幀,提供了更好的糾錯性能,這樣更可以改善視頻圖像質量。這一特性主要應用于以下場合:周期性的運動、平移運動、在兩個不同的場景之間來回變換攝像機的鏡頭。
(4)去塊濾波器
H.264定義了自適應去除塊效應的濾波器,這可以處理預測環路中的水平和垂直塊邊緣,大大減少了方塊效應。
3.整數變換
在變換方面,H.264使用了基于4×4像素塊的類似于DCT的變換,但使用的是以整數為基礎的空間變換,不存在反變換,因為取舍而存在誤差的問題,變換矩陣如圖5所示。與浮點運算相比,整數DCT變換會引起一些額外的誤差,但因為DCT變換后的量化也存在量化誤差,與之相比,整數DCT變換引起的量化誤差影響并不大。此外,整數DCT變換還具有減少運算量和復雜度,有利于向定點DSP移植的優點。
4.量化
H.264中可選32種不同的量化步長,這與H.263中有31個量化步長很相似,但是在H.264中,步長是以12.5%的復合率遞進的,而不是一個固定常數。
在H.264中,變換系數的讀出方式也有兩種:之字形(Zigzag)掃描和雙掃描,如圖6所示。大多數情況下使用簡單的之字形掃描;雙掃描僅用于使用較小量化級的塊內,有助于提高編碼效率。圖6 變換系數的讀出方式
5.熵編碼
視頻編碼處理的最后一步就是熵編碼,在H.264中采用了兩種不同的熵編碼方法:通用可變長編碼(UVLC)和基于文本的自適應二進制算術編碼(CABAC)。
在H.263等標準中,根據要編碼的數據類型如變換系數、運動矢量等,采用不同的VLC碼表。H.264中的UVLC碼表提供了一個簡單的方法,不管符號表述什么類型的數據,都使用統一變字長編碼表。其優點是簡單;缺點是單一的碼表是從概率統計分布模型得出的,沒有考慮編碼符號間的相關性,在中高碼率時效果不是很好。
因此,H.264中還提供了可選的CABAC方法。算術編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數、運動矢量)的概率模型。為了提高算術編碼的效率,通過內容建模的過程,使基本概率模型能適應隨視頻幀而改變的統計特性。內容建模提供了編碼符號的條件概率估計,利用合適的內容模型,存在于符號間的相關性可以通過選擇目前要編碼符號鄰近的已編碼符號的相應概率模型來去除,不同的句法元素通常保持不同的模型。
四、H.264在視頻會議中的應用
目前,大多數的視頻會議系統均采用H.261或H.263視頻編碼標準,而H.264的出現,使得在同等速率下,H.264能夠比H.263減小50%的碼率。也就是說,用戶即使是只利用 384kbit/s的帶寬,就可以享受H.263下高達 768kbit/s的高質量視頻服務。H.264 不但有助于節省龐大開支,還可以提高資源的使用效率,同時令達到商業質量的視頻會議服務擁有更多的潛在客戶。
目前,已經有少數幾家廠商的視頻會議產品支持H.264協議,廠商們致力于普及H.264這個全新的業界標準。隨著其它視頻會議方案廠商陸續效仿他們的做法,我們必將能全面體驗H.264視頻服務的優勢。 |
|