H.264 H.264 電子產(chǎn)品 隨著HDTV的興起,,H.264這個規(guī)范頻頻出現(xiàn)在我們眼前,HD-DVD和藍光DVD均計劃采用這一標準進行節(jié)目制作,。而且自2005年下半年以來,,無論是NVIDIA還是ATI都把支持H.264硬件解碼加速作為自己最值得夸耀的視頻技術,。H.264到底是何方“神圣”呢,? H.264,同時也是MPEG-4第十部分,,是由ITU-T視頻編碼專家組(VCEG)和ISO/IEC動態(tài)圖像專家組(MPEG)聯(lián)合組成的聯(lián)合視頻組(JVT,,Joint Video Team)提出的高度壓縮數(shù)字視頻編解碼器標準。 什么是H.264,?H.264是一種高性能的視頻編解碼技術,。目前國際上制定視頻編解碼技術的組織有兩個,一個是“國際電聯(lián)(ITU-T)”,,它制定的標準有H.261,、H.263、H.263+等,,另一個是“國際標準化組織(ISO)”它制定的標準有MPEG-1,、MPEG-2、MPEG-4等,。而H.264則是由兩個組織聯(lián)合組建的聯(lián)合視頻組(JVT)共同制定的新數(shù)字視頻編碼標準,,所以它既是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最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,,在同等圖像質量的條件下,H.264的壓縮比是MPEG-2的2倍以上,,是MPEG-4的1.5~2倍,。舉個例子,原始文件的大小如果為88GB,,采用MPEG-2壓縮標準壓縮后變成3.5GB,,壓縮比為25∶1,而采用H.264壓縮標準壓縮后變?yōu)?/span>879MB,,從88GB到879MB,,H.264的壓縮比達到驚人的102∶1!H.264為什么有那么高的壓縮比,?低碼率(Low Bit Rate)起了重要的作用,,和MPEG-2和MPEG-4 ASP等壓縮技術相比,H.264壓縮技術將大大節(jié)省用戶的下載時間和數(shù)據(jù)流量收費,。尤其值得一提的是,,H.264在具有高壓縮比的同時還擁有高質量流暢的圖像。 H.264算法的優(yōu)勢 H.264是在MPEG-4技術的基礎之上建立起來的,,其編解碼流程主要包括5個部分:幀間和幀內(nèi)預測(Estimation),、變換(Transform)和反變換、量化(Quantization)和反量化,、環(huán)路濾波(Loop Filter),、熵編碼(Entropy Coding)。 H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2視頻壓縮標準發(fā)布以后的最新,、最有前途的視頻壓縮標準,。H.264是由ITU-T和ISO/IEC的聯(lián)合開發(fā)組共同開發(fā)的最新國際視頻編碼標準。通過該標準,,在同等圖象質量下的壓縮效率比以前的標準提高了2倍以上,,因此,H.264被普遍認為是最有影響力的行業(yè)標準,。 一,、H.264的發(fā)展歷史 H.264在1997年ITU的視頻編碼專家組(Video Coding Experts Group)提出時被稱為H.26L,,在ITU與ISO合作研究后被稱為MPEG4 Part10(MPEG4 AVC)或H.264(JVT)。 H.264的高級技術背景 H.264標準的主要目標是:與其它現(xiàn)有的視頻編碼標準相比,,在相同的帶寬下提供更加優(yōu)秀的圖象質量,。 而,H.264與以前的國際標準如H.263和MPEG-4相比,,最大的優(yōu)勢體現(xiàn)在以下四個方面: 1. 將每個視頻幀分離成由像素組成的塊,,因此視頻幀的編碼處理的過程可以達到塊的級別。 2. 采用空間冗余的方法,,對視頻幀的一些原始塊進行空間預測,、轉換、優(yōu)化和熵編碼(可變長編碼),。 3. 對連續(xù)幀的不同塊采用臨時存放的方法,,這樣,只需對連續(xù)幀中有改變的部分進行編碼,。該算法采用運動預測和運動補償來完成,。對某些特定的塊,在一個或多個已經(jīng)進行了編碼的幀執(zhí)行搜索來決定塊的運動向量,,并由此在后面的編碼和解碼中預測主塊,。 4. 采用剩余空間冗余技術,對視頻幀里的殘留塊進行編碼,。例如:對于源塊和相應預測塊的不同,,再次采用轉換、優(yōu)化和熵編碼,。 H.264的特征和高級優(yōu)勢 H.264是國際標準化組織(ISO)和國際電信聯(lián)盟(ITU)共同提出的繼MPEG4之后的新一代數(shù)字視頻壓縮格式,,它即保留了以往壓縮技術的優(yōu)點和精華又具有其他壓縮技術無法比擬的許多優(yōu)點。 1.低碼流(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術相比,,在同等圖像質量下,,采用H.264技術壓縮后的數(shù)據(jù)量只有MPEG2的1/8,,MPEG4的1/3,。 顯然,H.264壓縮技術的采用將大大節(jié)省用戶的下載時間和數(shù)據(jù)流量收費,。 2.高質量的圖象:H.264能提供連續(xù),、流暢的高質量圖象(DVD質量)。 3.容錯能力強:H.264提供了解決在不穩(wěn)定網(wǎng)絡環(huán)境下容易發(fā)生的丟包等錯誤的必要工具,。 4.網(wǎng)絡適應性強:H.264提供了網(wǎng)絡抽取層(Network Abstraction Layer), 使得H.264的文件能容易地在不同網(wǎng)絡上傳輸(例如互聯(lián)網(wǎng),,CDMA,GPRS,,WCDMA,,CDMA2000等),。 二、H.264標準概述 H.264和以前的標準一樣,,也是DPCM加變換編碼的混合編碼模式,。但它采用“回歸基本”的簡潔設計,不用眾多的選項,,獲得比H.263++好得多的壓縮性能,;加強了對各種信道的適應能力,采用“網(wǎng)絡友好”的結構和語法,,有利于對誤碼和丟包的處理,;應用目標范圍較寬,以滿足不同速率,、不同解析度以及不同傳輸(存儲)場合的需求,。 技術上,它集中了以往標準的優(yōu)點,,并吸收了標準制定中積累的經(jīng)驗,。與H.263 v2(H.263+)或MPEG-4簡單類(Simple Profile)相比,H.264在使用與上述編碼方法類似的最佳編碼器時,,在大多數(shù)碼率下最多可節(jié)省50%的碼率,。H.264在所有碼率下都能持續(xù)提供較高的視頻質量。H.264能工作在低延時模式以適應實時通信的應用(如視頻會議),,同時又能很好地工作在沒有延時限制的應用,,如視頻存儲和以服務器為基礎的視頻流式應用。H.264提供包傳輸網(wǎng)中處理包丟失所需的工具,,以及在易誤碼的無線網(wǎng)中處理比特誤碼的工具,。 在系統(tǒng)層面上,H.264提出了一個新的概念,,在視頻編碼層(Video Coding Layer, VCL)和網(wǎng)絡提取層(Network Abstraction Layer, NAL)之間進行概念性分割,,前者是視頻內(nèi)容的核心壓縮內(nèi)容之表述,后者是通過特定類型網(wǎng)絡進行遞送的表述,,這樣的結構便于信息的封裝和對信息進行更好的優(yōu)先級控制,。H.264的系統(tǒng)編碼框圖如圖1所示。 圖1 H.264系統(tǒng)框圖 三,、H.264標準的關鍵技術 1.幀內(nèi)預測編碼 幀內(nèi)編碼用來縮減圖像的空間冗余,。為了提高H.264幀內(nèi)編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關性,,相鄰的宏塊通常含有相似的屬性,。因此,在對一給定宏塊編碼時,,首先可以根據(jù)周圍的宏塊預測(典型的是根據(jù)左上角的宏塊,,因為此宏塊已經(jīng)被編碼處理),,然后對預測值與實際值的差值進行編碼,這樣,,相對于直接對該幀編碼而言,,可以大大減小碼率,。 H.264提供6種模式進行4×4像素宏塊預測,包括1種直流預測和5種方向預測,如圖2所示,。在圖中,,相鄰塊的A到I共9個像素均已經(jīng)被編碼,,可以被用以預測,,如果我們選擇模式4,那么,,a,、b、c,、d4個像素被預測為與E相等的值,,e、f,、g,、h4個像素被預測為與F相等的值,對于圖像中含有很少空間信息的平坦區(qū),,H.264也支持16×16的幀內(nèi)編碼,。 圖2 幀內(nèi)編碼模式 2.幀間預測編碼 幀間預測編碼利用連續(xù)幀中的時間冗余來進行運動估計和補償。H.264的運動補償支持以往的視頻編碼標準中的大部分關鍵特性,,而且靈活地添加了更多的功能,,除了支持P幀、B幀外,,H.264還支持一種新的流間傳送幀——SP幀,,如圖3所示。碼流中包含SP幀后,,能在有類似內(nèi)容但有不同碼率的碼流之間快速切換,,同時支持隨機接入和快速回放模式。圖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定義了自適應去除塊效應的濾波器,,這可以處理預測環(huán)路中的水平和垂直塊邊緣,,大大減少了方塊效應。 3.整數(shù)變換 在變換方面,,H.264使用了基于4×4像素塊的類似于DCT的變換,,但使用的是以整數(shù)為基礎的空間變換,不存在反變換,,因為取舍而存在誤差的問題,,變換矩陣如圖5所示。與浮點運算相比,,整數(shù)DCT變換會引起一些額外的誤差,,但因為DCT變換后的量化也存在量化誤差,與之相比,,整數(shù)DCT變換引起的量化誤差影響并不大,。此外,整數(shù)DCT變換還具有減少運算量和復雜度,,有利于向定點DSP移植的優(yōu)點,。 4.量化 H.264中可選32種不同的量化步長,這與H.263中有31個量化步長很相似,,但是在H.264中,,步長是以12.5%的復合率遞進的,而不是一個固定常數(shù),。 在H.264中,,變換系數(shù)的讀出方式也有兩種:之字形(Zigzag)掃描和雙掃描,如圖6所示。大多數(shù)情況下使用簡單的之字形掃描,;雙掃描僅用于使用較小量化級的塊內(nèi),,有助于提高編碼效率。圖6 變換系數(shù)的讀出方式 5.熵編碼 視頻編碼處理的最后一步就是熵編碼,,在H.264中采用了兩種不同的熵編碼方法:通用可變長編碼(UVLC)和基于文本的自適應二進制算術編碼(CABAC),。 在H.263等標準中,根據(jù)要編碼的數(shù)據(jù)類型如變換系數(shù),、運動矢量等,,采用不同的VLC碼表。H.264中的UVLC碼表提供了一個簡單的方法,,不管符號表述什么類型的數(shù)據(jù),,都使用統(tǒng)一變字長編碼表。其優(yōu)點是簡單,;缺點是單一的碼表是從概率統(tǒng)計分布模型得出的,,沒有考慮編碼符號間的相關性,在中高碼率時效果不是很好,。 因此,,H.264中還提供了可選的CABAC方法。算術編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數(shù),、運動矢量)的概率模型,。為了提高算術編碼的效率,通過內(nèi)容建模的過程,,使基本概率模型能適應隨視頻幀而改變的統(tǒng)計特性,。內(nèi)容建模提供了編碼符號的條件概率估計,利用合適的內(nèi)容模型,,存在于符號間的相關性可以通過選擇目前要編碼符號鄰近的已編碼符號的相應概率模型來去除,,不同的句法元素通常保持不同的模型。 四,、H.264在視頻會議中的應用 目前,,大多數(shù)的視頻會議系統(tǒng)均采用H.261或H.263視頻編碼標準,而H.264的出現(xiàn),,使得在同等速率下,,H.264能夠比H.263減小50%的碼率。也就是說,,用戶即使是只利用 384kbit/s的帶寬,,就可以享受H.263下高達 768kbit/s的高質量視頻服務。H.264 不但有助于節(jié)省龐大開支,,還可以提高資源的使用效率,,同時令達到商業(yè)質量的視頻會議服務擁有更多的潛在客戶,。 目前,已經(jīng)有少數(shù)幾家廠商的視頻會議產(chǎn)品支持H.264協(xié)議,,廠商們致力于普及H.264這個全新的業(yè)界標準,。隨著其它視頻會議方案廠商陸續(xù)效仿他們的做法,,我們必將能全面體驗H.264視頻服務的優(yōu)勢,。 五、H.264的技術亮點1,、分層設計 H.264的算法在概念上可以分為兩層:視頻編碼層(VCL:Video Coding Layer)負責高效的視頻內(nèi)容表示,,網(wǎng)絡提取層(NAL:Network Abstraction Layer)負責以網(wǎng)絡所要求的恰當?shù)姆绞綄?shù)據(jù)進行打包和傳送。在VCL和NAL之間定義了一個基于分組方式的接口,,打包和相應的信令屬于NAL的一部分,。這樣,高編碼效率和網(wǎng)絡友好性的任務分別由VCL和NAL來完成,。 VCL層包括基于塊的運動補償混合編碼和一些新特性,。與前面的視頻編碼標準一樣,H.264沒有把前處理和后處理等功能包括在草案中,,這樣可以增加標準的靈活性,。 NAL負責使用下層網(wǎng)絡的分段格式來封裝數(shù)據(jù),包括組幀,、邏輯信道的信令,、定時信息的利用或序列結束信號等。例如,,NAL支持視頻在電路交換信道上的傳輸格式,,支持視頻在Internet上利用RTP/UDP/IP傳輸?shù)母袷健?/span>NAL包括自己的頭部信息、段結構信息和實際載荷信息,,即上層的VCL數(shù)據(jù),。(如果采用數(shù)據(jù)分割技術,數(shù)據(jù)可能由幾個部分組成),。 2,、高精度、多模式運動估計 H.264支持1/4或1/8像素精度的運動矢量,。在1/4像素精度時可使用6抽頭濾波器來減少高頻噪聲,,對于1/8像素精度的運動矢量,可使用更為復雜的8抽頭的濾波器,。在進行運動估計時,,編碼器還可選擇"增強"內(nèi)插濾波器來提高預測的效果。 在H.264的運動預測中,,一個宏塊(MB)可以按圖2被分為不同的子塊,,形成7種不同模式的塊尺寸,。這種多模式的靈活和細致的劃分,更切合圖像中實際運動物體的形狀,,大大提高了運動估計的精確程度,。在這種方式下,在每個宏塊中可以包含有1,、2,、4、8或16個運動矢量,。 在H.264中,,允許編碼器使用多于一幀的先前幀用于運動估計,這就是所謂的多幀參考技術,。例如2幀或3幀剛剛編碼好的參考幀,,編碼器將選擇對每個目標宏塊能給出更好的預測幀,并為每一宏塊指示是哪一幀被用于預測,。 3,、4×4塊的整數(shù)變換 H.264與先前的標準相似,對殘差采用基于塊的變換編碼,,但變換是整數(shù)操作而不是實數(shù)運算,,其過程和DCT基本相似。這種方法的優(yōu)點在于:在編碼器中和解碼器中允許精度相同的變換和反變換,,便于使用簡單的定點運算方式,。也就是說,這里沒有"反變換誤差",。 變換的單位是4×4塊,,而不是以往常用的8×8塊。由于用于變換塊的尺寸縮小,,運動物體的劃分更精確,,這樣,不但變換計算量比較小,,而且在運動物體邊緣處的銜接誤差也大為減小,。為了使小尺寸塊的變換方式對圖像中較大面積的平滑區(qū)域不產(chǎn)生塊之間的灰度差異,可對幀內(nèi)宏塊亮度數(shù)據(jù)的16個4×4塊的DC系數(shù)(每個小塊一個,,共16個)進行第二次4×4塊的變換,,對色度數(shù)據(jù)的4個4×4塊的DC系數(shù)(每個小塊一個,共4個)進行2×2塊的變換,。 H.264為了提高碼率控制的能力,,量化步長的變化的幅度控制在12.5%左右,而不是以不變的增幅變化,。變換系數(shù)幅度的歸一化被放在反量化過程中處理以減少計算的復雜性,。為了強調(diào)彩色的逼真性,,對色度系數(shù)采用了較小量化步長。 4,、統(tǒng)一的VLC H.264中熵編碼有兩種方法,,一種是對所有的待編碼的符號采用統(tǒng)一的VLC(UVLC :Universal VLC),另一種是采用內(nèi)容自適應的二進制算術編碼(CABAC:Context-Adaptive Binary Arithmetic Coding),。CABAC是可選項,,其編碼性能比UVLC稍好,但計算復雜度也高,。UVLC使用一個長度無限的碼字集,,設計結構非常有規(guī)則,,用相同的碼表可以對不同的對象進行編碼,。這種方法很容易產(chǎn)生一個碼字,而解碼器也很容易地識別碼字的前綴,,UVLC在發(fā)生比特錯誤時能快速獲得重同步,。 5、幀內(nèi)預測 在先前的H.26x系列和MPEG-x系列標準中,,都是采用的幀間預測的方式,。在H.264中,當編碼Intra圖像時可用幀內(nèi)預測,。對于每個4×4塊(除了邊緣塊特別處置以外),,每 個像素都可用17個最接近的先前已編碼的像素的不同加權和(有的權值可為0)來預測,即此像素所在塊的左上角的17個像素,。顯然,,這種幀內(nèi)預測不是在時間上,而是在空間域上進行的預測編碼算法,,可以除去相鄰塊之間的空間冗余度,,取得更為有效的壓縮。 如圖4所示,,4×4方塊中a,、b、...,、p為16 個待預測的像素點,,而A、B,、...,、P是已編碼的像素。如m點的值可以由(J+2K+L+2)/ 4 式來預測,,也可以由(A+B+C+D+I+J+K+L)/ 8 式來預測,,等等,。按照所選取的預測參考的點不同,亮度共有9類不同的模式,,但色度的幀內(nèi)預測只有1類模式,。 6、面向IP和無線環(huán)境 H.264 草案中包含了用于差錯消除的工具,,便于壓縮視頻在誤碼,、丟包多發(fā)環(huán)境中傳輸,如移動信道或IP信道中傳輸?shù)慕研浴?/span> 為了抵御傳輸差錯,,H.264視頻流中的時間同步可以通過采用幀內(nèi)圖像刷新來完成,,空間同步由條結構編碼(slice structured coding)來支持。同時為了便于誤碼以后的再同步,,在一幅圖像的視頻數(shù)據(jù)中還提供了一定的重同步點,。另外,幀內(nèi)宏塊刷新和多參考宏塊允許編碼器在決定宏塊模式的時候不僅可以考慮編碼效率,,還可以考慮傳輸信道的特性,。 除了利用量化步長的改變來適應信道碼率外,在H.264中,,還常利用數(shù)據(jù)分割的方法來應對信道碼率的變化,。從總體上說,數(shù)據(jù)分割的概念就是在編碼器中生成具有不同優(yōu)先級的視頻數(shù)據(jù)以支持網(wǎng)絡中的服務質量QoS,。例如采用基于語法的數(shù)據(jù)分割(syntax-based data partitioning)方法,,將每幀數(shù)據(jù)的按其重要性分為幾部分,這樣允許在緩沖區(qū)溢出時丟棄不太重要的信息,。還可以采用類似的時間數(shù)據(jù)分割(temporal data partitioning)方法,,通過在P幀和B幀中使用多個參考幀來完成。 在無線通信的應用中,,我們可以通過改變每一幀的量化精度或空間/時間分辨率來支持無線信道的大比特率變化,。可是,,在多播的情況下,,要求編碼器對變化的各種比特率進行響應是不可能的。因此,,不同于MPEG-4中采用的精細分級編碼FGS(Fine Granular Scalability)的方法(效率比較低),,H.264采用流切換的SP幀來代替分級編碼。 六,、 H.264的性能比較 TML-8為H.264的測試模式,,用它來對H.264的視頻編碼效率進行比較和測試。測試結果所提供的PSNR已清楚地表明,,相對于MPEG-4(ASP:Advanced Simple Profile)和H.263++(HLP:High Latency Profile)的性能,,H.264的結果具有明顯的優(yōu)越性,。 H.264的PSNR比MPEG-4(ASP)和H.263++(HLP)明顯要好,在6種速率的對比測試中,,H.264的PSNR比MPEG-4(ASP)平均要高2dB,,比H.263(HLP)平均要高3dB。6個測試速率及其相關的條件分別為:32 kbit/s速率,、10f/s幀率和QCIF格式,;64 kbit/s速率、15f/s幀率和QCIF格式,;128kbit/s速率,、15f/s幀率和CIF格式;256kbit/s速率,、15f/s幀率和QCIF格式,;512 kbit/s速率、30f/s幀率和CIF格式,;1024 kbit/s速率,、30f/s幀率和CIF格式,。
|
|
來自: lvgs > 《數(shù)字電視》