背景介紹
H.264是國際標(biāo)準(zhǔn)化組織(ISO)和國際電信聯(lián)盟(ITU)共同提出的繼MPEG4之后的新一代數(shù)字視頻壓縮格式。H.264是ITU-T以H.26x系列為名稱命名的視頻編解碼技術(shù)標(biāo)準(zhǔn)之一。H.264是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)的聯(lián)合視頻組(JVT:joint video team)開發(fā)的一個數(shù)字視頻編碼標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)最早來自于ITU-T的稱之為H.26L的項(xiàng)目的開發(fā)。H.26L這個名稱雖然不太常見,但是一直被使用著。H.264是ITU-T以H.26x系列為名稱命名的標(biāo)準(zhǔn)之一,AVC是ISO/IEC MPEG一方的稱呼。
國際上制定視頻編解碼技術(shù)的組織有兩個,一個是“國際電聯(lián)(ITU-T)”,它制定的標(biāo)準(zhǔn)有H.261、H.263、H.263+等,另一個是“國際標(biāo)準(zhǔn)化組織(ISO)”它制定的標(biāo)準(zhǔn)有MPEG-1、MPEG-2、MPEG-4等。而H.264則是由兩個組織聯(lián)合組建的聯(lián)合視頻組(JVT)共同制定的新數(shù)字視頻編碼標(biāo)準(zhǔn),所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級視頻編碼(Advanced Video Coding,AVC)的第10 部分。因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。
1998年1月份標(biāo)準(zhǔn)開始草案征集,1999年9月,完成第一個草案,2001年5月制定了其測試模式TML-8,2002年6月的 JVT第5次會議通過了H.264的FCD板。2003年3月正式發(fā)布。在2005年又開發(fā)出了H.264的更高級應(yīng)用標(biāo)準(zhǔn)MVC 和 SVC 版本。
國際電聯(lián)ITU和MPEG組織在發(fā)布了H.264標(biāo)準(zhǔn)之后,很快就發(fā)布公告,為下一代視頻編解碼標(biāo)準(zhǔn)H.265征集技術(shù)方案。為H.265設(shè)定的技術(shù)性能指標(biāo)是:壓縮效率比H.264提高1倍、且不明顯提高編碼和解碼的計(jì)算量。據(jù)MPEG組織2009年西安會議的回顧,尚無一個技術(shù)提案達(dá)到上述指標(biāo)。
H.264是在MPEG-4技術(shù)的基礎(chǔ)之上建立起來的,其編解碼流程主要包括5個部分:幀間和幀內(nèi)預(yù)測(Estimation)、變換(Transform)和反變換、量化(Quantization)和反量化、環(huán)路濾波(Loop Filter)、熵編碼(Entropy Coding)。
H.264標(biāo)準(zhǔn)的主要目標(biāo)是:與其它現(xiàn)有的視頻編碼標(biāo)準(zhǔn)相比,在相同的帶寬下提供更加優(yōu)秀的圖象質(zhì)量。通過該標(biāo)準(zhǔn),在同等圖象質(zhì)量下的壓縮效率比以前的標(biāo)準(zhǔn)(MPEG2)提高了2倍左右。
H.264可以提供11個等級、7個類別的子協(xié)議格式(算法),其中等級定義是對外部環(huán)境進(jìn)行限定,例如帶寬需求、內(nèi)存需求、網(wǎng)絡(luò)性能等等。等級越高,帶寬要求就越高,視頻質(zhì)量也越高。類別定義則是針對特定應(yīng)用,定義編碼器所使用的特性子集,并規(guī)范不同應(yīng)用環(huán)境中的編碼器復(fù)雜程度。
優(yōu)勢
1.低碼率(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術(shù)相比,在同等圖像質(zhì)量下,采用H.264技術(shù)壓縮后的數(shù)據(jù)量只有MPEG2的1/8,MPEG4的1/3。
2.高質(zhì)量的圖像:H.264能提供連續(xù)、流暢的高質(zhì)量圖像(DVD質(zhì)量)。
3.容錯能力強(qiáng):H.264提供了解決在不穩(wěn)定網(wǎng)絡(luò)環(huán)境下容易發(fā)生的丟包等錯誤的必要工具。
4.網(wǎng)絡(luò)適應(yīng)性強(qiáng):H.264提供了網(wǎng)絡(luò)抽象層(Network Abstraction Layer),使得H.264的文件能容易地在不同網(wǎng)絡(luò)上傳輸(例如互聯(lián)網(wǎng),CDMA,GPRS,WCDMA,CDMA2000等)。
H.264最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始文件的大小如果為88GB,采用MPEG-2壓縮標(biāo)準(zhǔn)壓縮后變成3.5GB,壓縮比為25∶1,而采用H.264壓縮標(biāo)準(zhǔn)壓縮后變?yōu)?79MB,從88GB到879MB,H.264的壓縮比達(dá)到驚人的102∶1。低碼率(Low Bit Rate)對H.264的高的壓縮比起到了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術(shù)相比,H.264壓縮技術(shù)將大大節(jié)省用戶的下載時(shí)間和數(shù)據(jù)流量收費(fèi)。尤其值得一提的是,H.264在具有高壓縮比的同時(shí)還擁有高質(zhì)量流暢的圖像,正因?yàn)槿绱耍?jīng)過H.264壓縮的視頻數(shù)據(jù),在網(wǎng)絡(luò)傳輸過程中所需要的帶寬更少,也更加經(jīng)濟(jì)。
特點(diǎn)
H264標(biāo)準(zhǔn)的主要特點(diǎn)如下:
1.更高的編碼效率:同H.263等標(biāo)準(zhǔn)的特率效率相比,能夠平均節(jié)省大于50%的碼率。
2.高質(zhì)量的視頻畫面:H.264能夠在低碼率情況下提供高質(zhì)量的視頻圖像,在較低帶寬上提供高質(zhì)量的圖像傳輸是H.264的應(yīng)用亮點(diǎn)。
3.提高網(wǎng)絡(luò)適應(yīng)能力:H.264可以工作在實(shí)時(shí)通信應(yīng)用(如視頻會議)低延時(shí)模式下,也可以工作在沒有延時(shí)的視頻存儲或視頻流服務(wù)器中。
4.采用混合編碼結(jié)構(gòu):同H.263相同,H.264也使用采用DCT變換編碼加DPCM的差分編碼的混合編碼結(jié)構(gòu),還增加了如多模式運(yùn)動估計(jì)、幀內(nèi)預(yù)測、多幀預(yù)測、基于內(nèi)容的變長編碼、4x4二維整數(shù)變換等新的編碼方式,提高了編碼效率。
5.H.264的編碼選項(xiàng)較少:在H.263中編碼時(shí)往往需要設(shè)置相當(dāng)多選項(xiàng),增加了編碼的難度,而H.264做到了力求簡潔的“回歸基本”,降低了編碼時(shí)復(fù)雜度。
6.H.264可以應(yīng)用在不同場合:H.264可以根據(jù)不同的環(huán)境使用不同的傳輸和播放速率,并且提供了豐富的錯誤處理工具,可以很好的控制或消除丟包和誤碼。
7.錯誤恢復(fù)功能:H.264提供了解決網(wǎng)絡(luò)傳輸包丟失的問題的工具,適用于在高誤碼率傳輸?shù)臒o線網(wǎng)絡(luò)中傳輸視頻數(shù)據(jù)。
8.較高的復(fù)雜度:264性能的改進(jìn)是以增加復(fù)雜性為代價(jià)而獲得的。據(jù)估計(jì),H.264編碼的計(jì)算復(fù)雜度大約相當(dāng)于H.263的3倍,解碼復(fù)雜度大約相當(dāng)于H.263的2倍。
技術(shù)
H.264和以前的標(biāo)準(zhǔn)一樣,也是DPCM加變換編碼的混合編碼模式。但它采用“回歸基本”的簡潔設(shè)計(jì),不用眾多的選項(xiàng),獲得比H.263++好得多的壓縮性能;加強(qiáng)了對各種信道的適應(yīng)能力,采用“網(wǎng)絡(luò)友好”的結(jié)構(gòu)和語法,有利于對誤碼和丟包的處理;應(yīng)用目標(biāo)范圍較寬,以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求。
技術(shù)上,它集中了以往標(biāo)準(zhǔn)的優(yōu)點(diǎn),并吸收了標(biāo)準(zhǔn)制定中積累的經(jīng)驗(yàn)。與H.263 v2(H.263+)或MPEG-4簡單類(Simple Profile)相比,H.264在使用與上述編碼方法類似的最佳編碼器時(shí),在大多數(shù)碼率下最多可節(jié)省50%的碼率。H.264在所有碼率下都能持續(xù)提供較高的視頻質(zhì)量。H.264能工作在低延時(shí)模式以適應(yīng)實(shí)時(shí)通信的應(yīng)用(如視頻會議),同時(shí)又能很好地工作在沒有延時(shí)限制的應(yīng)用,如視頻存儲和以服務(wù)器為基礎(chǔ)的視頻流式應(yīng)用。H.264提供包傳輸網(wǎng)中處理包丟失所需的工具,以及在易誤碼的無線網(wǎng)中處理比特誤碼的工具。
在系統(tǒng)層面上,H.264提出了一個新的概念,在視頻編碼層(Video Coding Layer,VCL)和網(wǎng)絡(luò)提取層(Network Abstraction Layer,NAL)之間進(jìn)行概念性分割,前者是視頻內(nèi)容的核心壓縮內(nèi)容之表述,后者是通過特定類型網(wǎng)絡(luò)進(jìn)行遞送的表述,這樣的結(jié)構(gòu)便于信息的封裝和對信息進(jìn)行更好的優(yōu)先級控制。
編碼
1.幀內(nèi)預(yù)測編碼
幀內(nèi)編碼用來縮減圖像的空間冗余。為了提高H.264幀內(nèi)編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關(guān)性,相鄰的宏塊通常含有相似的屬性。因此,在對一給定宏塊編碼時(shí),首先可以根據(jù)周圍的宏塊預(yù)測(典型的是根據(jù)左上角宏塊、左邊宏塊和上面宏塊,因?yàn)榇撕陦K已經(jīng)被編碼處理),然后對預(yù)測值與實(shí)際值的差值進(jìn)行編碼,這樣,相對于直接對該幀編碼而言,可以大大減小碼率。
H.264提供9種模式進(jìn)行4×4像素宏塊預(yù)測,包括1種直流預(yù)測和8種方向預(yù)測。在圖中,相鄰塊的A到I共9個像素均已經(jīng)被編碼,可以被用以預(yù)測,如果我們選擇模式4,那么,a、b、c、d4個像素被預(yù)測為與E相等的值,e、f、g、h4個像素被預(yù)測為與F相等的值,對于圖像中含有很少空間信息的平坦區(qū),H.264也支持16×16的幀內(nèi)編碼。
2.幀間預(yù)測編碼
幀間預(yù)測編碼利用連續(xù)幀中的時(shí)間冗余來進(jìn)行運(yùn)動估計(jì)和補(bǔ)償。H.264的運(yùn)動補(bǔ)償支持以往的視頻編碼標(biāo)準(zhǔn)中的大部分關(guān)鍵特性,而且靈活地添加了更多的功能,除了支持P幀、B幀外,H.264還支持一種新的流間傳送幀——SP幀,如圖3所示。碼流中包含SP幀后,能在有類似內(nèi)容但有不同碼率的碼流之間快速切換,同時(shí)支持隨機(jī)接入和快速回放模式。圖3 SP-幀示意圖H.264的運(yùn)動估計(jì)有以下4個特性。
(1)不同大小和形狀的宏塊分割
對每一個16×16像素宏塊的運(yùn)動補(bǔ)償可以采用不同的大小和形狀,H.264支持7種模式,如圖4所示。小塊模式的運(yùn)動補(bǔ)償為運(yùn)動詳細(xì)信息的處理提高了性能,減少了方塊效應(yīng),提高了圖像的質(zhì)量。
(2)高精度的亞像素運(yùn)動補(bǔ)償
在H.263中采用的是半像素精度的運(yùn)動估計(jì),而在H.264中可以采用1/4或者1/8像素精度的運(yùn)動估值。在要求相同精度的情況下,H.264使用1/4或者1/8像素精度的運(yùn)動估計(jì)后的殘差要比H.263采用半像素精度運(yùn)動估計(jì)后的殘差來得小。這樣在相同精度下,H.264在幀間編碼中所需的碼率更小。
(3)多幀預(yù)測
H.264提供可選的多幀預(yù)測功能,在幀間編碼時(shí),可選5個不同的參考幀,提供了更好的糾錯性能,這樣更可以改善視頻圖像質(zhì)量。這一特性主要應(yīng)用于以下場合:周期性的運(yùn)動、平移運(yùn)動、在兩個不同的場景之間來回變換攝像機(jī)的鏡頭。
(4)去塊濾波器
H.264定義了自適應(yīng)去除塊效應(yīng)的濾波器,這可以處理預(yù)測環(huán)路中的水平和垂直塊邊緣,大大減少了方塊效應(yīng)。
3.整數(shù)變換
在變換方面,H.264使用了基于4×4像素塊的類似于DCT的變換,但使用的是以整數(shù)為基礎(chǔ)的空間變換,不存在反變換因?yàn)槿∩岫嬖谡`差的問題,變換矩陣如圖5所示。與浮點(diǎn)運(yùn)算相比,整數(shù)DCT變換會引起一些額外的誤差,但因?yàn)镈CT變換后的量化也存在量化誤差,與之相比,整數(shù)DCT變換引起的量化誤差影響并不大。此外,整數(shù)DCT變換還具有減少運(yùn)算量和復(fù)雜度,有利于向定點(diǎn)DSP移植的優(yōu)點(diǎn)。
4.量化
H.264中可選52種不同的量化步長,這與H.263中有31個量化步長很相似,但是在H.264中,步長是以12.5%的復(fù)合率遞進(jìn)的,而不是一個固定常數(shù)。
在H.264中,變換系數(shù)的讀出方式也有兩種:之字形(Zigzag)掃描和雙掃描,如圖6所示。大多數(shù)情況下使用簡單的之字形掃描;雙掃描僅用于使用較小量化級的塊內(nèi),有助于提高編碼效率。圖6 變換系數(shù)的讀出方式
5.熵編碼
視頻編碼處理的最后一步就是熵編碼,在H.264中采用了兩種不同的熵編碼方法:通用可變長編碼(UVLC)和基于文本的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)。
在H.263等標(biāo)準(zhǔn)中,根據(jù)要編碼的數(shù)據(jù)類型如變換系數(shù)、運(yùn)動矢量等,采用不同的VLC碼表。H.264中的UVLC碼表提供了一個簡單的方法,不管符號表述什么類型的數(shù)據(jù),都使用統(tǒng)一變字長編碼表。其優(yōu)點(diǎn)是簡單;缺點(diǎn)是單一的碼表是從概率統(tǒng)計(jì)分布模型得出的,沒有考慮編碼符號間的相關(guān)性,在中高碼率時(shí)效果不是很好。
因此,H.264中還提供了可選的CABAC方法。算術(shù)編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數(shù)、運(yùn)動矢量)的概率模型。為了提高算術(shù)編碼的效率,通過內(nèi)容建模的過程,使基本概率模型能適應(yīng)隨視頻幀而改變的統(tǒng)計(jì)特性。內(nèi)容建模提供了編碼符號的條件概率估計(jì),利用合適的內(nèi)容模型,存在于符號間的相關(guān)性可以通過選擇要編碼符號鄰近的已編碼符號的相應(yīng)概率模型來去除,不同的句法元素通常保持不同的模型
H.264的目標(biāo)應(yīng)用涵蓋了大部分的視頻服務(wù),如有線電視遠(yuǎn)程監(jiān)控、交互媒體、數(shù)字電視、視頻會議、視頻點(diǎn)播、流媒體服務(wù)等。
H.264為解決不同應(yīng)用中的網(wǎng)絡(luò)傳輸?shù)牟町?。定義了兩層:視頻編碼層(VCL:Video Coding Layer)負(fù)責(zé)高效的視頻內(nèi)容表示,網(wǎng)絡(luò)提取層(NAL:Network AbstractionLayer)負(fù)責(zé)以網(wǎng)絡(luò)所要求的恰當(dāng)?shù)姆绞綄?shù)據(jù)進(jìn)行打包和傳送(如圖所示: 標(biāo)準(zhǔn)的整體框架)。
基本層次(Baseline Profile):該層次使用了H.264的除了B-Slices,CABAC以及交織編碼模式外所有的特性。該層次主要使用于低時(shí)延的實(shí)時(shí)應(yīng)用場合。
主要層次(Main Profile):包含Baseline profile的所有特性,并包括了B-slices,CABAC以及交織編碼模式。它主要針對對時(shí)延要求不高,當(dāng)壓縮率和質(zhì)量要求較高的場合。
擴(kuò)展層次(Profile X):支持所有Baseline profile的特性,但不支持CABAC以及基于宏塊的自適應(yīng)幀場編碼。該層次主要針對的時(shí)各種網(wǎng)絡(luò)視頻流傳輸方面的應(yīng)用。
1.分層設(shè)計(jì) H.264的算法在概念上可以分為兩層:視頻編碼層負(fù)責(zé)高效的視頻內(nèi)容表示,網(wǎng)絡(luò)提取層(NAL:Network Abstraction Layer)負(fù)責(zé)以網(wǎng)絡(luò)所要求的恰當(dāng)?shù)姆绞綄?shù)據(jù)進(jìn)行打包和傳送。在VCL和NAL之間定義了一個基于分組方式的接口,打包和相應(yīng)的信令屬于NAL的一部分。這樣,高編碼效率和網(wǎng)絡(luò)友好性的任務(wù)分別由VCL和NAL來完成。
VCL層包括基于塊的運(yùn)動補(bǔ)償混合編碼和一些新特性。與前面的視頻編碼標(biāo)準(zhǔn)一樣,H.264沒有把前處理和后處理等功能包括在草案中,這樣可以增加標(biāo)準(zhǔn)的靈活性。
NAL負(fù)責(zé)使用下層網(wǎng)絡(luò)的分段格式來封裝數(shù)據(jù),包括組幀、邏輯信道的信令、定時(shí)信息的利用或序列結(jié)束信號等。例如,NAL支持視頻在電路交換信道上的傳輸格式,支持視頻在Internet上利用RTP/UDP/IP傳輸?shù)母袷?。NAL包括自己的頭部信息、段結(jié)構(gòu)信息和實(shí)際載荷信息,即上層的VCL數(shù)據(jù)。(如果采用數(shù)據(jù)分割技術(shù),數(shù)據(jù)可能由幾個部分組成)。
2.高精度、多模式運(yùn)動估計(jì)
H.264支持1/4或1/8像素精度的運(yùn)動矢量。在1/4像素精度時(shí)可使用6抽頭濾波器來減少高頻噪聲,對于1/8像素精度的運(yùn)動矢量,可使用更為復(fù)雜的8抽頭的濾波器。在進(jìn)行運(yùn)動估計(jì)時(shí),編碼器還可選擇"增強(qiáng)"內(nèi)插濾波器來提高預(yù)測的效果。
在H.264的運(yùn)動預(yù)測中,一個宏塊(MB)可以按圖2被分為不同的子塊,形成7種不同模式的塊尺寸。這種多模式的靈活和細(xì)致的劃分,更切合圖像中實(shí)際運(yùn)動物體的形狀,大大提高了運(yùn)動估計(jì)的精確程度。在這種方式下,在每個宏塊中可以包含有1、2、4、8或16個運(yùn)動矢量。在H.264中,允許編碼器使用多于一幀的先前幀用于運(yùn)動估計(jì),這就是所謂的多幀參考技術(shù)。例如2幀或3幀剛剛編碼好的參考幀,編碼器將選擇對每個目標(biāo)宏塊能給出更好的預(yù)測幀,并為每一宏塊指示是哪一幀被用于預(yù)測。
3.4×4塊的整數(shù)變換
H.264與先前的標(biāo)準(zhǔn)相似,對殘差采用基于塊的變換編碼,但變換是整數(shù)操作而不是實(shí)數(shù)運(yùn)算,其過程和DCT基本相似。這種方法的優(yōu)點(diǎn)在于:在編碼器中和解碼器中允許精度相同的變換和反變換,便于使用簡單的定點(diǎn)運(yùn)算方式。也就是說,這里沒有"反變換誤差"。變換的單位是4×4塊,而不是以往常用的8×8塊。由于用于變換塊的尺寸縮小,運(yùn)動物體的劃分更精確,這樣,不但變換計(jì)算量比較小,而且在運(yùn)動物體邊緣處的銜接誤差也大為減小。為了使小尺寸塊的變換方式對圖像中較大面積的平滑區(qū)域不產(chǎn)生塊之間的灰度差異,可對幀內(nèi)宏塊亮度數(shù)據(jù)的16個4×4塊的DC系數(shù)(每個小塊一個,共16個)進(jìn)行第二次4×4塊的變換,對色度數(shù)據(jù)的4個4×4塊的DC系數(shù)(每個小塊一個,共4個)進(jìn)行2×2塊的變換。
H.264為了提高碼率控制的能力,量化步長的變化的幅度控制在12.5%左右,而不是以不變的增幅變化。變換系數(shù)幅度的歸一化被放在反量化過程中處理以減少計(jì)算的復(fù)雜性。為了強(qiáng)調(diào)彩色的逼真性,對色度系數(shù)采用了較小量化步長。
4.統(tǒng)一的VLC
H.264中熵編碼有兩種方法,一種是對所有的待編碼的符號采用統(tǒng)一的VLC(UVLC :Universal VLC),另一種是采用內(nèi)容自適應(yīng)的二進(jìn)制算術(shù)編碼(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可選項(xiàng),其編碼性能比UVLC稍好,但計(jì)算復(fù)雜度也高。UVLC使用一個長度無限的碼字集,設(shè)計(jì)結(jié)構(gòu)非常有規(guī)則,用相同的碼表可以對不同的對象進(jìn)行編碼。這種方法很容易產(chǎn)生一個碼字,而解碼器也很容易地識別碼字的前綴,UVLC在發(fā)生比特錯誤時(shí)能快速獲得重同步。
5.幀內(nèi)預(yù)測
在先前的H.26x系列和MPEG-x系列標(biāo)準(zhǔn)中,都是采用的幀間預(yù)測的方式。在H.264中,當(dāng)編碼Intra圖像時(shí)可用幀內(nèi)預(yù)測。對于每個4×4塊(除了邊緣塊特別處置以外),每個像素都可用17個最接近的先前已編碼的像素的不同加權(quán)和(有的權(quán)值可為0)來預(yù)測,即此像素所在塊的左上角的17個像素。顯然,這種幀內(nèi)預(yù)測不是在時(shí)間上,而是在空間域上進(jìn)行的預(yù)測編碼算法,可以除去相鄰塊之間的空間冗余度,取得更為有效的壓縮。
按照所選取的預(yù)測參考的點(diǎn)不同,亮度共有9類不同的模式,但色度的幀內(nèi)預(yù)測只有1類模式。
6.面向IP和無線環(huán)境
H.264 草案中包含了用于差錯消除的工具,便于壓縮視頻在誤碼、丟包多發(fā)環(huán)境中傳輸,如移動信道或IP信道中傳輸?shù)慕研浴?/p>
為了抵御傳輸差錯,H.264視頻流中的時(shí)間同步可以通過采用幀內(nèi)圖像刷新來完成,空間同步由條結(jié)構(gòu)編碼(slice structured coding)來支持。同時(shí)為了便于誤碼以后的再同步,在一幅圖像的視頻數(shù)據(jù)中還提供了一定的重同步點(diǎn)。另外,幀內(nèi)宏塊刷新和多參考宏塊允許編碼器在決定宏塊模式的時(shí)候不僅可以考慮編碼效率,還可以考慮傳輸信道的特性。
除了利用量化步長的改變來適應(yīng)信道碼率外,在H.264中,還常利用數(shù)據(jù)分割的方法來應(yīng)對信道碼率的變化。從總體上說,數(shù)據(jù)分割的概念就是在編碼器中生成具有不同優(yōu)先級的視頻數(shù)據(jù)以支持網(wǎng)絡(luò)中的服務(wù)質(zhì)量QoS。例如采用基于語法的數(shù)據(jù)分割(syntax-based data partitioning)方法,將每幀數(shù)據(jù)的按其重要性分為幾部分,這樣允許在緩沖區(qū)溢出時(shí)丟棄不太重要的信息。還可以采用類似的時(shí)間數(shù)據(jù)分割(temporal data partitioning)方法,通過在P幀和B幀中使用多個參考幀來完成。
在無線通信的應(yīng)用中可以通過改變每一幀的量化精度或空間/時(shí)間分辨率來支持無線信道的大比特率變化??墒牵诙嗖サ那闆r下,要求編碼器對變化的各種比特率進(jìn)行響應(yīng)是不可能的。因此,不同于MPEG-4中采用的精細(xì)分級編碼FGS(Fine Granular Scalability)的方法(效率比較低),H.264采用流切換的SP幀來代替分級編碼。
由于藍(lán)光格式的統(tǒng)一,使得市面上絕大多數(shù)的高清視頻均是采用H.264的格式編碼,它又分為四個最主要步驟,分別是流處理,逆變換,動態(tài)補(bǔ)償,去方塊濾波,這四步也是資源消耗的主要四個部分。
H.264解碼的四個步驟中的第一步“CAVLC/CABAC解碼”是最為消耗運(yùn)算資源,這方面遠(yuǎn)高于其他三步(簡單的說,CAVLC/CABAC是H.264編碼規(guī)范中兩種不同的算法,都是為了提高壓縮比,其中CABAC比CAVLC壓縮率更高,但解碼時(shí)自然也要求更高)。
如果所有四個步驟全采用處理器純軟件解碼運(yùn)算,當(dāng)碰上HDDVD版本的高碼率H.264視頻,處理器的負(fù)載會非常巨大,即使能流暢播放高清視頻,也會因?yàn)樘幚砥鲏毫^重而影響其他同時(shí)開啟的應(yīng)用程序的執(zhí)行效率。
如果讓處理器解碼“CAVLC/CABAC解碼”和“反向轉(zhuǎn)換(Inverse Transformation)”兩部分,由顯示核心承擔(dān)“運(yùn)動補(bǔ)償”和“解碼去塊”功能,則可以在一定程度上降低處理器的壓力。不過對于使用單核處理器或低端雙核處理器的用戶來說,這依然無法很好的應(yīng)付這類視頻;其次,碰上編碼率更高的視頻,依然會給處理器造成很大的處理難度,導(dǎo)致視頻播放的不確定性,可能消費(fèi)者會遇到某些視頻可以流暢播放,但是有些視頻卻丟幀的情況。
冗余處理
H.264與以前的國際標(biāo)準(zhǔn)如H.263和MPEG-4相比,為達(dá)到高效的壓縮,充分利用了各種冗余,統(tǒng)計(jì)冗余和視覺生理冗余。
1.統(tǒng)計(jì)冗余:頻譜冗余(指色彩分量之間的相關(guān)性),空間冗余,還有時(shí)間冗余。這是視頻壓縮區(qū)別于靜止圖像的根本點(diǎn),視頻壓縮主要利用時(shí)間冗余來實(shí)現(xiàn)大的壓縮比。
2.視覺生理冗余視覺生理冗余是由于人類的視覺系統(tǒng)(HVS)特性造成的,比如人眼對色彩分量的高頻分量沒有對亮度分量的高頻分量敏感,對圖像高頻(即細(xì)節(jié))處的噪聲不敏感等。
針對這些冗余,視頻壓縮算法采用了不同的方法加以利用,但主要的考慮是集中在空間冗余和時(shí)間冗余上。H.264也采用混合(hybrid)結(jié)構(gòu),即對空間冗余和時(shí)間冗余分別進(jìn)行處理。對空間冗余,標(biāo)準(zhǔn)通過變換及量化達(dá)到消除的目的,這樣編碼的幀叫I幀;而時(shí)間冗余則是通過幀間預(yù)測,即運(yùn)動估計(jì)和補(bǔ)償來去除,這樣編碼的幀叫P幀或B幀。與以前標(biāo)準(zhǔn)不同的是,H.264在編碼I幀時(shí),采用了幀內(nèi)預(yù)測,然后對預(yù)測誤差進(jìn)行編碼。這樣就充分利用了空間相關(guān)性,提高了編碼效率。H.264幀內(nèi)預(yù)測以16x16的宏塊為基本單位。首先,編碼器將與當(dāng)前宏塊同一幀的鄰近像素作為參考,產(chǎn)生對當(dāng)前宏塊的預(yù)測值,然后對預(yù)測殘差進(jìn)行變換與量化,再對變換與量化后的結(jié)果做熵編碼。熵編碼的結(jié)果就可以形成碼流了。由于在解碼器端能夠得到的參考數(shù)據(jù)都是經(jīng)過反變換與反量化后的重建圖像,因此為了使編解碼一致,編碼器端用于預(yù)測的參考數(shù)據(jù)就和解碼器端一樣,也是經(jīng)過反變換與反量化后的重建圖像。
市場
按編解碼功能劃分,H.264市場可劃分為解碼市場、編碼市場。
解碼
H.264解碼產(chǎn)品,主要有:支持H.264標(biāo)準(zhǔn)的解碼集成電路,含專用解碼芯片和系統(tǒng)芯片SoC;支持H.264標(biāo)準(zhǔn)的解碼軟件,用于各類電子產(chǎn)品。
最先大規(guī)模采用H.264解碼芯片的,是衛(wèi)星高清機(jī)頂盒。由于H.264技術(shù)能夠顯著提高壓縮效率,一個衛(wèi)星轉(zhuǎn)發(fā)器發(fā)送的高清電視節(jié)目,可以從過去的1個頻道增加到3個頻道(配合DVB-S2等新型傳輸技術(shù)),故美國及歐洲的衛(wèi)星運(yùn)營商從2004年起相繼采用H.264解碼芯片。至今,支持H.264標(biāo)準(zhǔn),已經(jīng)成為各類高清機(jī)頂盒SoC芯片的標(biāo)準(zhǔn)配置,且被高清電視機(jī)的SoC芯片廣泛采用。
隨著互聯(lián)網(wǎng)視頻服務(wù)的快速崛起,各類智能電子設(shè)備都陸續(xù)支持視頻網(wǎng)絡(luò)下載及播放。H.264標(biāo)準(zhǔn)一直是網(wǎng)絡(luò)視頻的主要壓縮技術(shù)之一,且在又有逐步取代Flash視頻格式的發(fā)展趨勢。其主要支持者,是微軟的IE瀏覽器和蘋果公司的系列產(chǎn)品,前者保證了H.264在桌面設(shè)備市場的優(yōu)勢,后者保證了H.264在便攜設(shè)備市場的優(yōu)勢。
然而,由于谷歌公司決定在其新一代瀏覽器Chrome中支持新的視頻編解碼技術(shù)WebM、而不支持H.264,使得H.264在網(wǎng)絡(luò)視頻市場的前景受到很大的挑戰(zhàn)。
編碼
由于H.264出色的編碼效率,使其很快就被以視頻監(jiān)控設(shè)備為主體的編碼設(shè)備市場所接受。H.264高效的編碼效率,對相同視頻節(jié)目占用較小的網(wǎng)絡(luò)帶寬和存儲空間。
H.264編碼器的主要指標(biāo)有:支持的分辨率和幀率,編碼延時(shí),編碼碼流兼容性,碼流控制精度等指標(biāo)。大部分編碼器分辨率支持到1920X1080,幀率為25幀(PAL)或者30幀(N制),編碼延時(shí)在200毫秒以上。
錯誤恢復(fù)
錯誤恢復(fù)的工具隨著視頻壓縮編碼技術(shù)的提高在不斷改進(jìn)。舊的標(biāo)準(zhǔn)(H.261、H263、MPEG-2的第二部分)中,使用片和宏塊組的劃分、幀內(nèi)編碼宏 塊、幀內(nèi)編碼片和幀內(nèi)編碼圖像來防止錯誤的擴(kuò)散。之后改進(jìn)的標(biāo)準(zhǔn)(H.263+、MPEG-4)中,使用多幀參考和數(shù)據(jù)分割技術(shù)來恢復(fù)錯誤。
H.264標(biāo)準(zhǔn)在以前的基礎(chǔ)上提出了三種關(guān)鍵技術(shù):(1)參數(shù)集合,(2) 靈活的宏塊次序(FMO),(3)冗余片(RS)來進(jìn)行錯誤的恢復(fù)。
幀內(nèi)編碼
H.264中幀內(nèi)編碼的技術(shù)和以前標(biāo)準(zhǔn)一樣,值得注意的是:
(1)H.264中的幀內(nèi)預(yù)測編碼宏塊的參考宏塊可以是幀間編碼宏塊,幀內(nèi)預(yù)測宏塊并不像H.263中的幀內(nèi)編碼一樣,而采用預(yù)測的幀內(nèi)編碼比非預(yù)測的幀 內(nèi)編碼有更好的編碼效率,但減少了幀內(nèi)編碼的重同步性能,可以通過設(shè)置限制幀內(nèi)預(yù)測標(biāo)記來恢復(fù)這一性能。
(2)只包含幀內(nèi)宏塊的片有兩種,一種是幀內(nèi)片(Islice),一種是立即刷新片(IDRslice),立即刷新片必存在于立即刷新圖像 (IDRpicture)中。與短期參考圖像相比,立即刷新圖像有更強(qiáng)壯的重同步性能。在無線IP網(wǎng)絡(luò)環(huán)境下,為了提高幀內(nèi)圖像的重同步性能,要采用率失真優(yōu)化編碼和設(shè)置限制幀內(nèi)預(yù)測標(biāo)記。
圖像分割
H.264支持一幅圖像劃分成片,片中宏塊的數(shù)目是任意的。在非FMO模式下,片中的宏塊次序是同光柵掃描順序,F(xiàn)MO模式下比較特殊。片的劃分可以適配不同的MTU尺寸,也可以用來交織分組打包。
參考圖像選擇
參考圖像數(shù)據(jù)選擇,不論是基于宏塊、基于片,還是基于幀,都是錯誤恢復(fù)的有效工具。對于有反饋的系統(tǒng),編碼器獲得傳輸中丟失圖像區(qū)域的信息后,參考圖像可 以選擇解碼已經(jīng)正確接收的圖像對應(yīng)的原圖像區(qū)域作參考。在沒有反饋的系統(tǒng)中,將會使用冗余的編碼來增加錯誤恢復(fù)性能。
數(shù)據(jù)劃分
通常情況下,一個宏塊的數(shù)據(jù)是存放在一起而組成片的,數(shù)據(jù)劃分使得一個片中的宏塊數(shù)據(jù)重新組合,把宏塊語義相關(guān)的數(shù)據(jù)組成一個劃分,由劃分來組裝片。在H.264中有三種不同的數(shù)據(jù)劃分。
頭信息劃分:包含片中宏塊的類型,量化參數(shù)和運(yùn)動矢量,是片中最重要的信息。
幀內(nèi)信息劃分:包含幀內(nèi)CBPs和幀內(nèi)系數(shù),幀內(nèi)信息可以阻止錯誤的蔓延。
幀間信息劃分:包含幀間CBPs和幀間系數(shù),通常比前兩個劃分要大得多。幀內(nèi)信息劃分結(jié)合頭信息解出幀內(nèi)宏塊,幀間信息劃分結(jié)合頭信息解出幀間宏塊。
幀間信息劃分的重要性最低,對重同步?jīng)]有貢獻(xiàn)。當(dāng)使用數(shù)據(jù)劃分時(shí),片中的數(shù)據(jù)根據(jù)其類型被保存到不同的緩存,同時(shí)片的大小也要調(diào)整,使得片中最大的劃分小于MTU尺寸。解碼端若獲得所有的劃分,就可以完整重構(gòu)片;解碼端若發(fā)現(xiàn)幀內(nèi)信息或幀間信息劃分丟失,可用的頭信息仍然有很好的錯誤恢復(fù)性能。這是因?yàn)楹陦K類型和宏塊的運(yùn)動矢量含有宏塊的基本特征。
使用參數(shù)集
序列的參數(shù)集(SPS)包括了一個圖像序列的所有信息,圖像的參數(shù)集(PPS)包括了一個圖像所有片的信息。多個不同的序列和圖像參數(shù)集經(jīng)排序存放在解碼 器。編碼器參考序列參數(shù)集設(shè)置圖像參數(shù)集,依據(jù)每一個已編碼片的片頭的存儲地址選擇合適的圖像參數(shù)集來使用。對序列的參數(shù)和圖像的參數(shù)進(jìn)行重點(diǎn)保護(hù)才能很 好地增強(qiáng)H.264錯誤恢復(fù)性能。
在差錯信道中使用參數(shù)集的關(guān)鍵是保證參數(shù)集及時(shí)、可靠地到達(dá)解碼端。例如,在實(shí)時(shí)信道中,編碼器用可靠控制協(xié)議及早將他們以帶外傳輸?shù)姆绞桨l(fā)送,使控制協(xié) 議能夠在引用新參數(shù)的第一個片到達(dá)之前把它們發(fā)給解碼器;另外一個辦法就是使用應(yīng)用層保護(hù),重發(fā)多個備份文件,確保至少有一個備份數(shù)據(jù)到達(dá)解碼端;第三個 辦法就是在編解碼器的硬件中固化參數(shù)集設(shè)置。
宏塊次序(FMO)
靈活的宏塊次序是H.264的一大特色,通過設(shè)置宏塊次序映射表(MBAmap)來任意地指配宏塊到不同的片組,F(xiàn)MO模式打亂了原宏塊順序,降低了編碼 效率,增加了時(shí)延,但增強(qiáng)了抗誤碼性能。FMO模式劃分圖像的模式各種各樣,重要的有棋盤模式、矩形模式等。當(dāng)然FMO模式也可以使一幀中的宏塊順序分 割,使得分割后的片的大小小于無線網(wǎng)絡(luò)的MTU尺寸。經(jīng)過FMO模式分割后的圖像數(shù)據(jù)分開進(jìn)行傳輸,以棋盤模式為例,當(dāng)一個片組的數(shù)據(jù)丟失時(shí)可用另一個片 組的數(shù)據(jù)(包含丟失宏塊的相鄰宏塊信息)進(jìn)行錯誤掩蓋。實(shí)驗(yàn)數(shù)據(jù)顯示,當(dāng)丟失率為(視頻會議應(yīng)用時(shí))10%時(shí),經(jīng)錯誤掩蓋后的圖像仍然有很高的質(zhì) 量。
冗余片方法
前邊提到了當(dāng)使用無反饋的系統(tǒng)時(shí),就不能使用參考幀選擇的方法來進(jìn)行錯誤恢復(fù),應(yīng)該在編碼時(shí)增加冗余的片來增強(qiáng)抗誤碼性能。要注意的是這些冗余片的編碼參 數(shù)與非冗余片的編碼參數(shù)不同,也就是用一個模糊的冗余片附加在一個清晰的片之后。在解碼時(shí)先解清晰的片,如果其可用就丟棄冗余片;否則使用冗余模糊片來重 構(gòu)圖像。
優(yōu)勢
1.低碼率(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術(shù)相比,在同等圖像質(zhì)量下,采用H.264技術(shù)壓縮后的數(shù)據(jù)量只有MPEG2的1/8,MPEG4的1/3。
2.高質(zhì)量的圖象:H.264能提供連續(xù)、流暢的高質(zhì)量圖象(DVD質(zhì)量)。
3.容錯能力強(qiáng):H.264提供了解決在不穩(wěn)定網(wǎng)絡(luò)環(huán)境下容易發(fā)生的丟包等錯誤的必要工具。
4.網(wǎng)絡(luò)適應(yīng)性強(qiáng):H.264提供了網(wǎng)絡(luò)抽象層(Network Abstraction Layer),使得H.264的文件能容易地在不同網(wǎng)絡(luò)上傳輸(例如互聯(lián)網(wǎng),CDMA,GPRS,WCDMA,CDMA2000等)。
H.264最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始文件的大小如果為88GB,采用MPEG-2壓縮標(biāo)準(zhǔn)壓縮后變成3.5GB,壓縮比為25∶1,而采用H.264壓縮標(biāo)準(zhǔn)壓縮后變?yōu)?79MB,從88GB到879MB,H.264的壓縮比達(dá)到驚人的102∶1。低碼率(Low Bit Rate)對H.264的高的壓縮比起到了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術(shù)相比,H.264壓縮技術(shù)將大大節(jié)省用戶的下載時(shí)間和數(shù)據(jù)流量收費(fèi)。尤其值得一提的是,H.264在具有高壓縮比的同時(shí)還擁有高質(zhì)量流暢的圖像,正因?yàn)槿绱?,?jīng)過H.264壓縮的視頻數(shù)據(jù),在網(wǎng)絡(luò)傳輸過程中所需要的帶寬更少,也更加經(jīng)濟(jì)。
H.264/AVC/MPEG-4 第 10 部分包含一些新功能,使它比舊標(biāo)準(zhǔn)更多有效地壓縮視頻,為各種網(wǎng)絡(luò)環(huán)境中的應(yīng)用提供更大的靈活性。尤其是,一些這類關(guān)鍵功能包括:
多畫面間圖片預(yù)測包括以下功能:
以前使用圖片作為編碼引用更靈活的方式,比在過去的標(biāo)準(zhǔn),允許達(dá) 16 參考幀 (或 32 引用字段,在交錯編碼的情況下),在某些情況下使用。這就是與先前的標(biāo)準(zhǔn),不同地方限制通常之一 ;或常規(guī)"B 圖片"(B-幀),兩個。此特定功能通常允許適度的改進(jìn)的比特率和質(zhì)量在大多數(shù)場景中。但在某些類型的場面,例如那些與重復(fù)的動作或背部來回現(xiàn)場削減或被揭露的背景區(qū)域,它允許比特率顯著減少,同時(shí)保持清晰。
可變塊大小運(yùn)動補(bǔ)償(分塊) 與大為 16 × 16 和 4 × 4,使精確的運(yùn)動區(qū)域分割為小塊大小。支持的 luma 預(yù)測塊大小包括 16 × 16、 16 × 8、 8 × 16、 8 × 8、 8 × 4、 4 × 8 和 4 × 4,其中許多可以在單個宏塊一起使用。色度預(yù)測塊大小是根據(jù)色度抽樣在使用相應(yīng)地變小。
與最大值 32 在建造的 16 B 宏塊的情況下使用每個宏塊 (一個或兩個每個分區(qū)) 的多個運(yùn)動矢量的能力 4 × 4 分區(qū)。運(yùn)動向量的每個 8 × 8 或更大的分區(qū)區(qū)域可以指向不同的參考圖片。
在B 幀,包括宏-塊,從而導(dǎo)致更多有效的編碼使用 B 幀時(shí)使用任何宏塊類型的能力。此功能尤其是漏掉了從MPEG-4 ASP.
六個水龍頭篩選半 pel luma樣本預(yù)測,更鋒利的亞像素運(yùn)動補(bǔ)償?shù)耐茖?dǎo)。季像素運(yùn)動是由線性插值法的 halfpel 值,以節(jié)省電能,處理派生的。
季像素精度運(yùn)動補(bǔ)償,使移動領(lǐng)域的位移的精確描述。為色度分辨率通常是減半兩個垂直和水平方向 (見4:2:0) 因此色度的運(yùn)動補(bǔ)償使用八分之一色度像素網(wǎng)格單位。
加權(quán)的預(yù)測,允許一個編碼器,以執(zhí)行運(yùn)動補(bǔ)償時(shí), 指定縮放和偏移量的使用,并提供一個重要的好處,在特殊情況下的性能 — — 到黑色淡入淡出、 淡入和跨-淡入淡出的過渡等。這包括 B-幀,隱式加權(quán)的預(yù)測和顯式加權(quán)預(yù)測為 P 幀。
空間預(yù)測從邊緣的相鄰塊的"內(nèi)部"編碼,而不是在MPEG-2中找到的"直流"僅預(yù)測部分 2 和變換系數(shù)預(yù)測在H.263v2和 MPEG-4 部分 2 中找到。這包括 16 × 16、 8 × 8 和 4 × 4 (其中只有一種類型可以被用在每個宏塊內(nèi)的 luma 預(yù)測塊大小).
無損的宏塊編碼功能,其中包括:
無損"PCM 宏塊"的代表性模式直接代表視頻數(shù)據(jù)樣本,允許特定區(qū)域的完美代表和允許一個嚴(yán)格的限制,放在每個宏塊的編碼數(shù)據(jù)的數(shù)量。
增強(qiáng)無損宏塊的代表性模式允許特定區(qū)域時(shí)通常使用比 PCM 模式極大地少量位完美地再現(xiàn)。
靈活的隔行掃描-掃描視頻編碼功能,其中包括:
宏塊自適應(yīng)幀-字段 (MBAFF) 編碼、 編碼為 16 × 16 宏塊允許在域模式下 (與 MPEG-2,凡在被編碼為一個幀的圖片加工場模式結(jié)果在加工中 16 × 8 半宏塊相比) 的幀的圖片使用宏塊的雙結(jié)構(gòu)。
圖片自適應(yīng)幀字段編碼 (每或 PicAFF) 允許自由地選擇的混合的圖片編碼在這兩個字段組合在一起進(jìn)行編碼或作為個別單一字段要么作為完整的幀。
新變換設(shè)計(jì)功能,包括:
精確匹配整數(shù) 4 × 4 塊空間變換,允許精確地放置的殘余信號很少的"響"經(jīng)常發(fā)現(xiàn)與事先編解碼器的設(shè)計(jì)。這種設(shè)計(jì)是在概念上類似于知名的離散余弦變換 (DCT),介紹了在 1974 年由N.艾哈邁德、 T.Natarajan 和 K.R.Rao,這是引文 1 中的離散余弦變換。然而,它是簡化和作出提供確切地指定解碼。
精確匹配整數(shù) 8 × 8 塊空間變換,允許高度相關(guān)的地區(qū)要壓縮更有效地比與 4 × 4 變換。這種設(shè)計(jì)是在概念上類似于知名離散余弦變換,但簡化并作出提供確切地指定解碼。
自適應(yīng)編碼器選擇之間的 4 × 4 和 8 × 8 的變換塊大小的整數(shù)轉(zhuǎn)換操作。
中學(xué)的阿達(dá)瑪變換應(yīng)用于色度 DC 系數(shù) (和也luma中一種特殊情況),獲取更多壓縮在光滑的區(qū)域的主空間變換的"DC"系數(shù)上執(zhí)行。
量化設(shè)計(jì)包括:
對數(shù)步大小控制更容易位率管理由編碼器和簡化逆量化縮放
縮放矩陣由基于感性的量化優(yōu)化編碼器選擇自定義的頻率量化
有助于防止對其他DCT常見的阻塞工件中循環(huán)去塊效應(yīng)濾波器-基于圖像壓縮技術(shù),從而更好地視覺外觀和壓縮效率
熵編碼設(shè)計(jì)包括:
上下文自適應(yīng)二進(jìn)制算術(shù)編碼(算術(shù)) 算法對無損壓縮的語法元素在視頻流知道在給定的上下文中的語法元素的概率。算術(shù)比 CAVLC 更有效地壓縮數(shù)據(jù),但需要更多的處理進(jìn)行解碼。
上下文自適應(yīng)可變長度編碼(CAVLC),這是較低復(fù)雜性替代的算術(shù)編碼量化的變換系數(shù)值。雖然比算術(shù),CAVLC 更低的復(fù)雜性是更詳細(xì)和更有效率比通常用于將代碼系數(shù)在其他事先設(shè)計(jì)的方法。
一種常用簡單和高度結(jié)構(gòu)化變長編碼(VLC) 技術(shù)為許多不通過算術(shù)或 CAVLC,稱為指數(shù)-戈隆布編碼(或哥倫布) 編碼的語法元素。
損失復(fù)原功能包括:
允許相同的視頻語法要在許多網(wǎng)絡(luò)環(huán)境中使用的網(wǎng)絡(luò)抽象層(宇) 定義。H.264 的一個非?;镜脑O(shè)計(jì)概念是以生成自包含的數(shù)據(jù)包,若要刪除標(biāo)題重復(fù)和 MPEG-4 頭擴(kuò)展代碼 (港燈)。這被通過解耦信息有關(guān)的多個切片從媒體流。更高級別的參數(shù)的組合稱為一個參數(shù)集。H.264 規(guī)格包括兩種類型的參數(shù)設(shè)置: 序列參數(shù)設(shè)置 (SPS) 和圖片參數(shù)設(shè)置 (PPS)。設(shè)置仍保持不變在編碼的視頻序列,整個活動序列參數(shù)和活動圖片參數(shù)設(shè)置仍保持不變內(nèi)編碼的圖片。序列和圖像參數(shù)集的結(jié)構(gòu)包含如圖片大小,可選編碼模式被雇用和宏塊到切片組映射信息。
靈活宏塊排序(FMO),也稱為切片組和任意切片訂購 (ASO),這是技術(shù)重組訂購的基本地區(qū) (塊) 圖片中的表示形式。通常被視為一個錯誤或損失的魯棒性特點(diǎn),魚類統(tǒng)營處和麻生太郎還可用于其他目的。
數(shù)據(jù)分區(qū) (DP),提供的能力,更重要的是并不太重要的語法元素分成不同的數(shù)據(jù)包的數(shù)據(jù)),使不等錯誤保護(hù) (UEP) 的應(yīng)用程序和其他類型的錯誤或損失的魯棒性改進(jìn)功能。
冗余片 (RS),錯誤/丟失的魯棒性功能,允許編碼器發(fā)送額外所代表的圖片 (通常在低保真) 地區(qū),如果主要表示法是損壞或丟失,可以使用。
幀編號、 一種功能,允許創(chuàng)建"子序列",通過額外的照片等圖片,檢測和隱秘性的整個圖片,網(wǎng)絡(luò)數(shù)據(jù)包丟失或通道錯誤可能會導(dǎo)致?lián)p失之間可選列入啟用世俗的可擴(kuò)展性。
切換切片,稱為 SP 和硅切片,允許一個編碼器,以直接一個解碼器,以跳到正在進(jìn)行的視頻流為這種目的作為視頻流的位率切換和"欺騙模式"操作。當(dāng)解碼器跳進(jìn)視頻流使用 SP/SI 功能的中間時(shí),它可以精確匹配解碼的圖片在那盡管作為引用在切換之前在所有使用不同的圖片或沒有圖片視頻流中的位置。
為防止意外仿真的啟動代碼,這是特殊序列的編碼的數(shù)據(jù),允許隨機(jī)訪問成位流中的位和字節(jié)對齊方式可以失去字節(jié)同步的系統(tǒng)中恢復(fù)一個簡單的自動過程。
補(bǔ)充增強(qiáng)信息 (SEI) 和視頻可用性信息 (VUI),是額外的信息,可以插入到位流以增強(qiáng)視頻的應(yīng)用,為多種目的。包含 3D 安排的 SEI FPA (幀包裝安排) 消息:
0: 棋盤-像素或者是從 L 和 R
1: 按列交錯列變更-L 和 R
2: 行交替-L 和 R 按行隔行掃描
3: 并排的-L 是在左邊,右邊 R
4: 上下-L 是在上面,R 的底部
5: 幀交替-每個框架的一個視圖
輔助圖片,可以用于這種目的作為alpha 合成.
支持單色 (4:0:0) 4:2:0、 4:2:2 和 4:4:4色度抽樣(根據(jù)所選的配置文件)。
示例支持位深度精度從 8 到 14 位每個樣品 (根據(jù)所選的配置文件)。
對個別顏色進(jìn)行編碼的能力的飛機(jī)作為他們自己的獨(dú)特圖片切片結(jié)構(gòu),宏塊模式、 運(yùn)動矢量等,允許編碼器以一種簡單的并行結(jié)構(gòu)設(shè)計(jì) (支持僅在三個 4:4:4 能夠配置文件)。
圖片順序計(jì)數(shù)、 可以使保持的圖片和隔絕計(jì)時(shí)信息,允許進(jìn)行的計(jì)時(shí)信息的解碼圖片中的樣本值排序的功能和控制/改變了單獨(dú)的系統(tǒng)而不會影響已解碼的圖片內(nèi)容。
這些技術(shù),以及其他幾個幫助 H.264 要執(zhí)行明顯優(yōu)于任何事先的標(biāo)準(zhǔn)在各式各樣的各式各樣的應(yīng)用程序環(huán)境的情況下。H.264 可以經(jīng)常執(zhí)行從根本上比 MPEG-2 視頻 — — 通常獲得相同質(zhì)量的比特率的一半或更少,尤其是對高比特率和高分辨率的情況。
像其他的 ISO/IEC MPEG 視頻標(biāo)準(zhǔn),H.264/AVC 有一個參考軟件實(shí)現(xiàn),可免費(fèi)下載。它的主要目的是給的 H.264/AVC 的功能,而不是有用的應(yīng)用程序本身是示例。也正在一些參考硬件設(shè)計(jì)工作,在運(yùn)動圖像專家組。上述完成 H.264/AVC 涵蓋 H.264 的所有配置文件的功能。編解碼器的配置文件是一組的功能的確定,以滿足特定集規(guī)格的預(yù)期應(yīng)用該編解碼器。這意味著許多人列出的功能不受支持的某些配置文件。下一節(jié)中討論了各種配置文件的 H.264/AVC。
配置文件
該標(biāo)準(zhǔn)定義了 21 套的能力,被稱為配置文件,針對特定的應(yīng)用程序的類。非可縮放 2D 視頻應(yīng)用程序的配置文件包括以下內(nèi)容:
受約束的基準(zhǔn)配置文件 (CBP)
主要為低成本的應(yīng)用程序,此配置文件是最通常用于視頻會議和移動應(yīng)用程序。它對應(yīng)的是共同的基線、 主和高配置文件之間的功能子集。
基線配置文件 (BP)
主要是為需要額外的數(shù)據(jù)損失魯棒性的低成本應(yīng)用程序,此配置文件用于在一些視頻會議和移動應(yīng)用程序。此配置文件包括中約束的基準(zhǔn)配置文件,支持的所有功能加上的魯棒性的損失 (或作其它用途例如低延遲多點(diǎn)視頻流合成) 可以使用的三個附加功能。此配置文件的重要性已褪色有些自定義的約束的基線配置文件的 2009 年。所有約束的基準(zhǔn)配置文件碼也被看作是碼的基準(zhǔn)配置文件,這些兩個配置文件共享相同的配置文件標(biāo)識符代碼值。
擴(kuò)展配置文件 (XP)
作為流媒體視頻配置文件,此配置文件有相對較高的抗壓能力和魯棒性的數(shù)據(jù)損失和服務(wù)器流切換到一些額外技巧。
主配置文件 (MP)
此配置文件用于定義,在 DVB 標(biāo)準(zhǔn)中使用的 MPEG-4 格式的標(biāo)準(zhǔn)清晰度數(shù)字電視廣播。它是不,不過,用于高清晰度電視廣播節(jié)目,作為高配置文件在 2004 年為該應(yīng)用程序開發(fā)時(shí)褪色此配置文件的重要性。
高配置文件 (HiP)
廣播和光盤的存儲應(yīng)用程序,尤其是對高清晰度電視的應(yīng)用程序的主配置文件 (例如,這是通過藍(lán)光光盤的存儲格式和數(shù)字電視高清晰度電視廣播服務(wù)的配置文件)。
逐步高調(diào) (抑制)
類似于高配置文件,但沒有字段編碼功能的支持。
受約束的高配置文件
類似于逐步高配置文件中,但無 B (bi 預(yù)測) 切片的支持。
高 10 配置文件 (Hi10P)
此配置文件超越了典型的主流消費(fèi)者的產(chǎn)品能力,在高配置文件,生成添加支持為每個樣本的解碼的圖像精度達(dá) 10 位。
高 4:2:2 的配置文件 (Hi422P)
我主要針對專業(yè)使用的應(yīng)用程序的隔行掃描的視頻,此配置文件生成上高 10 配置文件中,添加支持為 4:2:2色度抽樣格式同時(shí)使用每個樣本的達(dá) 10 位解碼圖片精度。
高 4:4:4 預(yù)測配置文件 (Hi444PP)
此配置文件生成上高 4:2:2 的配置文件,支持最多 4:4:4 色度采樣,每個樣品,達(dá) 14 位和另外支持高效無損地區(qū)編碼和編碼的每一幅圖片作為單獨(dú)的顏色的三個平面。
便攜式攝像機(jī)、 編輯和專業(yè)的應(yīng)用程序,標(biāo)準(zhǔn)包含四個附加幀內(nèi)-僅配置文件,它們被定義為相應(yīng)的其他配置文件的簡單子集。這些是主要為專業(yè)人員 (例如攝像機(jī)和編輯系統(tǒng)) 的應(yīng)用程序:
高 10 內(nèi)配置文件
高 10 配置文件限制所有內(nèi)部使用。
高 4:2:2 內(nèi)部配置文件
高 4:2:2 的配置文件限制為所有內(nèi)部使用。
高 4:4:4 內(nèi)部配置文件
高 4:4:4 的配置文件限制為所有內(nèi)部使用。
CAVLC 4:4:4 的內(nèi)部配置文件
高 4:4:4 的配置文件限制為所有內(nèi)部使用和 CAVLC 熵編碼 (即,不支持算術(shù))。
由于該的可伸縮視頻編碼(SVC) 的擴(kuò)展,標(biāo)準(zhǔn)包含五個額外可擴(kuò)展的配置文件,它們被定義為 (由第二個單詞中的可擴(kuò)展的配置文件名稱標(biāo)識) 的基底圖層的 H.264/AVC 配置文件組合和實(shí)現(xiàn)可伸縮擴(kuò)展的工具:
可擴(kuò)展的基準(zhǔn)配置文件
主要針對視頻會議、 移動和監(jiān)視應(yīng)用程序,此配置文件生成的基底圖層 (的位流的一個子集) 必須符合該約束的基線配置文件上。對于可伸縮性工具,啟用的可用工具的一個子集。
可擴(kuò)展約束的基準(zhǔn)配置文件
可擴(kuò)展的基準(zhǔn)配置文件的一個子集主要供實(shí)時(shí)通信的應(yīng)用程序。
可擴(kuò)展的高配置文件
主要是針對廣播和流媒體應(yīng)用程序,此配置文件生成的基底圖層必須符合 H.264/AVC 高配置文件上。
可擴(kuò)展約束的高配置文件
子集的可擴(kuò)展的高配置文件主要用于實(shí)時(shí)通信的應(yīng)用程序。
可擴(kuò)展高內(nèi)部配置文件
主要針對生產(chǎn)應(yīng)用程序,此配置文件是約束為所有內(nèi)部使用的可擴(kuò)展高配置文件。
由于該多視圖視頻編碼(MVC) 的擴(kuò)展,標(biāo)準(zhǔn)包含了兩個多視圖的配置文件:
立體聲高配置文件
此配置文件的目標(biāo)是兩個視圖立體3D 視頻和 MVC 擴(kuò)展的間查看預(yù)測能力的高配置文件的工具結(jié)合在一起。
多視角高配置文件
此配置文件支持使用間圖片 (世俗) 和 MVC 視圖間預(yù)測,兩個或多個視圖,但不支持字段圖片和宏塊自適應(yīng)幀字段編碼。
多視角深度高配置文件
版本
AVC 標(biāo)準(zhǔn)的版本包括以下完成修改、 更正和修正 (日期是最后批準(zhǔn)日期在國際電信聯(lián)盟-T,雖然最后"國際標(biāo)準(zhǔn)"批準(zhǔn)日期在 ISO/IEC 是有些不同的稍晚在大多數(shù)情況下)。每個版本代表的集成到文本的下一個較低版本的更改。加粗面臨版本是版本,其中包括相對較重大技術(shù)改進(jìn)。
版本 1:(2003 年 5 月 30 日)第一次批準(zhǔn)的包含基準(zhǔn),主要是和擴(kuò)展配置文件的 H.264/AVC 版本。
版本 2: (2004 年 5 月 7 日) 包含各種次要更正更正。
版本 3:(3 月 1,2005 年)H.264/AVC 包含提供包含高,高 10、 (FRExt)的保真度范圍擴(kuò)展的第一修正案增添主要高 4:2:2,和高 4:4:4配置文件。
版本 4: (2005 年 9 月 13 日) 更正包含各種次要更正和添加三個縱橫比的指標(biāo)。
版本 5: (2006 年 6 月 13 日) 組成的事先去除的修訂高 4:4:4 (作為在 ISO/IEC 的更正處理) 的配置文件。
版本 6: (2006 年 6 月 13 日) 修訂組成的次要擴(kuò)展喜歡擴(kuò)展色域的顏色空間支持(與上述縱橫比指標(biāo)在 ISO/IEC 捆綁)。
版本 7: (2007 年 4 月 6 日) 修訂包含另外的高 4: 4: 4 預(yù)測和四個內(nèi)唯一配置文件 (高 10 內(nèi),高 4: 2: 2 內(nèi),高 4:4:4 內(nèi),和CAVLC 4: 4: 4 內(nèi))。
版本 8:(11 月 22,2007 年)H.264/AVC 包含的可伸縮視頻編碼(SVC) 修正案,包含可擴(kuò)展的基線、可擴(kuò)展性高,和可擴(kuò)展的高幀內(nèi)的配置文件項(xiàng)重大補(bǔ)充。
版本 9: (2009 年 1 月 13 日) 包含一些小的修改更正。
版本 10: (2009 年 3 月 16 日) 修訂包含新的配置文件 (約束的基線配置文件) 與只有共同以前支持的各種功能的子集定義指定的配置文件。
版本 11:(3 月 16,2009 年)H.264/AVC 含有多視圖視頻編碼(MVC) 的擴(kuò)展,包括多視圖高配置文件修訂重大補(bǔ)充。
12 版: (2010 年 3 月 9 日) 修訂包含新 MVC 的配置文件 (立體聲高配置文件) 定義的兩個視圖視頻編碼與交錯編碼工具和指定額外的 SEI 消息 (幀包裝安排 SEI 消息) 的支持。
13 版: (2010 年 3 月 9 日) 包含一些小的修改更正。
第 14 版: (2011 年 6 月 29 日) 指定一個新的水平 (水平 5.2) 支持更高處理速率在每秒和一個新的配置文件 (逐步高配置文件) 支持只編碼工具以前指定的高配置文件的幀最大宏塊的修訂。
版本 15: (2011 年 6 月 29 日) 包含一些小的修改更正。
版本 16: (2012 年 1 月 13 日) 包含的三個新的配置文件主要用于實(shí)時(shí)通信的應(yīng)用程序定義的修訂:約束高、可擴(kuò)展約束的基線,和可擴(kuò)展約束高配置文件。
版本 17: (2013 年 4 月 13 日) 與其他 SEI 消息指標(biāo)修訂。
版本 18: (2013 年 4 月 13 日) 修訂以指定的深度映射數(shù)據(jù)的 3D 立體視頻,包括一個多視圖深度高配置文件的編碼。
版本 19: (2013 年 4 月 13 日) 更正更正為多視圖視頻子碼流提取過程中的錯誤。
20 版: (2013 年 4 月 13 日) 指定額外的顏色空間標(biāo)識符 (包括支持ITU-R 建議 BT.2020 UHDTV) 和其他的修正模型中的色調(diào)映射信息 SEI 消息的類型。
編碼和解碼
請參見:列表的照相機(jī)與板載視頻流編碼
因?yàn)?H.264 編碼和解碼要求大量的計(jì)算能力在特定類型的算術(shù)運(yùn)算,在通用 Cpu 運(yùn)行的軟件實(shí)現(xiàn)高效率通常較少力量。不過,最新的四核通用 x 86 Cpu 有足夠的計(jì)算能力來執(zhí)行實(shí)時(shí)標(biāo)清及高清編碼。壓縮效率取決于視頻的算法實(shí)現(xiàn),不在是否使用硬件或軟件來實(shí)現(xiàn)。因此,硬件和軟件基于的執(zhí)行更是電源效率、 靈活性和成本之間的差異。為提高電源效率和減少硬件形式因素,可能雇用專用硬件,為完整的編碼或解碼過程中,或在 CPU 控制的環(huán)境內(nèi)加速援助。
基于 CPU 的解決辦法是已知是靈活得多,尤其是編碼必須進(jìn)行時(shí)同時(shí)多格式、 多比特率和各項(xiàng)決議 (多屏幕視頻) 和可能用上的容器格式支持的附加功能,先進(jìn)綜合的廣告功能等?;?CPU 的軟件解決方案通常使得更容易在相同的 CPU 內(nèi)的多個并發(fā)編碼會話進(jìn)行負(fù)載平衡。
介紹了在 2011 年 1 月 CES (消費(fèi)電子展) 的第 2 代英特爾"桑迪橋"酷睿 i3/i5/i7處理器提供稱為英特爾快速同步視頻上芯片硬件全面高清 H.264 編碼器。
硬件 H.264 編碼器可以是ASIC或FPGA。FPGA 是一個一般的可編程芯片。要使用 FPGA 作為硬件編碼器,H.264 編碼器設(shè)計(jì)需要自定義應(yīng)用程序的芯片。完整的高清 H.264 編碼器可以在一個單一的低成本 FPGA 芯片上運(yùn)行 2009 年 (高配置文件、 水平 4.1,1080p,30 幀/秒)。
ASIC 編碼器與 H.264 編碼器功能,可從許多不同的半導(dǎo)體公司,但在 ASIC 中使用的核心設(shè)計(jì)通常由芯片及媒體, On2 (原 Hantro,由谷歌收購),想象力的技術(shù),NGCodec 等幾個公司的一個授權(quán)。一些公司已提供的 FPGA 和 ASIC 產(chǎn)品。
德州儀器生產(chǎn)一線的ARM+ 執(zhí)行 DSP H264 BP 的 DSP 內(nèi)核編碼 1080p 30 幀每秒。這允許 (其中,作為高度優(yōu)化的 DSP 代碼實(shí)現(xiàn)) 的編解碼器的靈活性時(shí)正在比通用 CPU 上的軟件效率更高。
內(nèi)容來自百科網(wǎng)