H.264/AVC简介
從這一篇開始,我們將介紹H.264/AVC。在前幾篇里,我們分別介紹了MPEG-1和MPEG-2,按照順序考慮下來,我們?cè)摃?huì)疑問,接下來不應(yīng)該是MPEG-3嘛?沒錯(cuò),事實(shí)上MPEG-3確實(shí)有,它是在MPEG-2之后,制定的應(yīng)用在HDTV上的音視頻標(biāo)準(zhǔn)。但是由于MPEG-2大獲成功,已經(jīng)可以滿足需求,所以MPEG-3就被融合進(jìn)了MPEG-2。
那我們又該有疑問了,那接下來也不應(yīng)該是H.264/AVC吧,應(yīng)該是MPEG-4才對(duì)呀,這就涉及到我們今天的話題。所以在講H.264/AVC之前,我們就來聊聊MPEG-4。
1、MPEG-4
MPEG-4也稱視聽對(duì)象編碼(Coding of audio-visual objects)標(biāo)準(zhǔn),注意跟MPEG-1和MPEG-2相比,它多了對(duì)象兩個(gè)字。它不僅吸收了MPEG-1和MPEG-2的許多特性,并且引入了視聽對(duì)象(audio-visual objects)編碼的概念。這里我們不用管視聽對(duì)象具體是指什么,因?yàn)樗⒉粫?huì)在接下來的H.264/AVC中出現(xiàn)。為什么呢?這就涉及到MPEG-4的組成部分了。
就像MPEG-1和MPEG-2一樣,MPEG-4由多個(gè)部分組成。而因?yàn)镸PEG-4應(yīng)用之廣,它在1998年第一版發(fā)布之后,又在1999年發(fā)布了第二版,并且在2000年正式成為國(guó)際標(biāo)準(zhǔn),而且即使現(xiàn)在,也在不斷更新和完善。介紹這一段的主要目的,不是為了說明MPEG-4有多牛逼,而是為了說明,正因如此,MPEG-4的多個(gè)部分,也有先來后到。比如Part 1和Part 31,Part 1肯定是最早發(fā)布的,而Part 31,直到最近也就是2014年才發(fā)布。
MPEG-4不只是一個(gè)音視頻編解碼標(biāo)準(zhǔn),它還是多媒體的應(yīng)用標(biāo)準(zhǔn)。它的內(nèi)容包括,音視頻編解碼、字幕流文本格式、字體壓縮、3D圖形壓縮、Web視像編碼等。由此可見MPEG-4的范圍之廣,由于它的研究課題很多,大多數(shù)人并不會(huì)全盤學(xué)習(xí)。比如我們,只關(guān)心音視頻編解碼部分,而這部分對(duì)應(yīng)的Part分別為:Part 2(Visual)、Part 3(Audio)、Part 10(AVC)、Part 14(MP4),當(dāng)然為了了解MPEG-4,還會(huì)看一下Part 1(system),也就是系統(tǒng)部分。
注意到Part 2和Part 3,分別是視像和聲音部分,而這兩部分,也是最早發(fā)布的版本里囊括的。而我們前面說的對(duì)象編碼,就應(yīng)用在Part 2(Visual)里。所以當(dāng)我們說MPEG-4可視對(duì)象編碼的時(shí)候,一般指MPEG-4 Visual,也就是ISO/IEC 14496-2 Part2,其中14496是指MPEG-4標(biāo)準(zhǔn)的編號(hào),2就是只Part 2,合起來就是14496-2。 如下圖:
圖中標(biāo)紅框的,是它們的第一次發(fā)版的時(shí)間,可以追溯到1999年,也就是MPEG-4的第二版就發(fā)布了。
不過我們并不準(zhǔn)備把精力放在MPEG-4 Visual上,因?yàn)樵谌缃竦膶?shí)際應(yīng)用中,還是H.264/AVC比較流行。我們前幾篇之所以講MPEG-1和MPEG-2,是因?yàn)樗鼈兡軌驗(yàn)槔斫釮.264/AVC提供幫助,但是MPEG-4 Visual包含新的對(duì)象編碼的知識(shí),對(duì)理解H.264/AVC幫助較小,所以我們直接忽略,有興趣的自行翻閱資料即可。下面我們就開始介紹今天的主角:H.264/AVC
2、H.264/AVC
有的同學(xué)可能會(huì)覺得跳躍有點(diǎn)快,剛才還在說MPEG-4呢,怎么一下跳到H.264/AVC了。首先,這種感覺是正常的,因?yàn)槲疫€沒介紹一個(gè)關(guān)鍵的信息。從這篇文章開頭開始,我們?cè)谥vH.264/AVC的時(shí)候,都一直在把H.264 和 AVC連在一起寫出來,這樣寫其實(shí)是和它的起源有直接意義的。
我們?cè)谏厦嬷vMPEG-4的幾個(gè)比較重要的部分(Part)時(shí),除了Part 2、Part 3,還有Part 10(AVC)和Part 14(MP4),Part 14一看就知道,這不就是大名鼎鼎的MP4格式嘛(關(guān)于MP4我們后面再介紹)。而另一個(gè)Part 10,后面?zhèn)渥锳VC,難道它跟H.264/AVC有關(guān)系?
恩,沒錯(cuò),你猜對(duì)啦,事實(shí)確實(shí)是這樣。
MPEG-4 Part 10
這是維基百科上,關(guān)于MPEG-4 Part 10的介紹,請(qǐng)看標(biāo)紅框備注部分:一種視頻信號(hào)壓縮格式,在技術(shù)上和ITU-T H.264是一樣的。而AVC的意思是,Advanced Video Coding,也就是高級(jí)視頻編碼。它是在2003年發(fā)布的,這與我們?cè)贛PEG-1中,展示的編碼年表也是契合的:
國(guó)際視像編碼年表
這樣來看,ITU-T H.264和MPEG-4 AVC其實(shí)就是一個(gè)標(biāo)準(zhǔn)。之所以是一個(gè)標(biāo)準(zhǔn),是因?yàn)樗怯蒊TU-T VCEG(Video Coding Experts Group)專家組,和MPEG專家組,聯(lián)合開發(fā)的,因此才產(chǎn)生了H.264/AVC這樣的叫法。
H.264/AVC應(yīng)用非常廣泛,它可以把原始的RGB或YUV像素?cái)?shù)據(jù),編碼為h.264裸流,而基于h.264裸流,我們還可以把它封裝為MP4、MKV等格式保存至本地,還可以使用傳輸協(xié)議進(jìn)行打包,在互聯(lián)網(wǎng)上進(jìn)行傳輸。這就是H.264/AVC目前的主流應(yīng)用,當(dāng)然這一段看不懂也沒關(guān)系,因?yàn)槲覀冎皇巧晕⒄雇胺降闹R(shí)路徑。
H.264/AVC相比之前的編碼標(biāo)準(zhǔn),比如MPEG-1、MPEG-2,在結(jié)構(gòu)上并沒有明顯改變。但是它的編碼效率卻比它們高出不少,這是為什么呢?那是因?yàn)镠.264/AVC在之前的標(biāo)準(zhǔn)上,進(jìn)行了很多改進(jìn),尤其是在各個(gè)主要功能模塊。雖然這些改動(dòng)并不大,但是這些改進(jìn)卻成為精華,使H.264/AVC的壓縮效率,是MPEG-2的2~3倍。有效的降低了在網(wǎng)絡(luò)上傳輸視頻數(shù)據(jù)的成本,并且之前使用MPEG-2的DVD和數(shù)字電視,也轉(zhuǎn)向了H.264/AVC。
下面就是H.264/AVC的主要改進(jìn):
(1)幀間預(yù)測(cè): 采用可變圖塊的幀間預(yù)測(cè)和移動(dòng)補(bǔ)償,注意是可變圖塊,之前標(biāo)準(zhǔn)的預(yù)測(cè)圖塊大小為16x16像素,而改進(jìn)了之后,預(yù)測(cè)圖塊可小到4x4像素。這樣一來,移動(dòng)矢量的預(yù)測(cè)精度就提高了。
(2)幀內(nèi)預(yù)測(cè): 幀內(nèi)預(yù)測(cè)圖塊的大小,改進(jìn)成了可以為16x16的宏塊,也可以是4x4像素的圖塊,而且定義了多種預(yù)測(cè)方式。這樣做,就是為了找到最佳匹配的預(yù)測(cè)圖塊。
(3)采用整數(shù)變換: 這是從DCT演變來的變換,可以提高運(yùn)算速度。
(4)采用CAVLC和CABAC熵編碼: 名稱不用強(qiáng)記,只需知道它們都屬于熵編碼,并且比VLC(Variable Length Coding/可變長(zhǎng)度編碼)的編碼效率高就可以了。
(5)采用多參考幀和消除塊狀失真的濾波技術(shù): 塊狀失真就是指當(dāng)壓縮率過高時(shí),會(huì)導(dǎo)致重構(gòu)圖像出現(xiàn)塊狀外觀現(xiàn)象。而消除這一現(xiàn)象使用的濾波技術(shù),如果你不打算深入學(xué)習(xí)數(shù)字圖像處理,可以先不用管。
可以看到,這些改進(jìn)里雖然動(dòng)靜不大,但是每一個(gè)都影響較大。尤其是前1、2條,16x16的預(yù)測(cè)圖塊,可以小到4x4,這畢然會(huì)使移動(dòng)矢量的預(yù)測(cè)精度大大提高,從而影響一組預(yù)測(cè)圖像,這就類似蝴蝶效應(yīng)的威力!
總結(jié)
以上是生活随笔為你收集整理的H.264/AVC简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UG NX中的一条曲线的点集进行导出时顺
- 下一篇: Crystal Reports - Ad