日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

H.264/AVC简介

發布時間:2023/12/14 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 H.264/AVC简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從這一篇開始,我們將介紹H.264/AVC。在前幾篇里,我們分別介紹了MPEG-1和MPEG-2,按照順序考慮下來,我們該會疑問,接下來不應該是MPEG-3嘛?沒錯,事實上MPEG-3確實有,它是在MPEG-2之后,制定的應用在HDTV上的音視頻標準。但是由于MPEG-2大獲成功,已經可以滿足需求,所以MPEG-3就被融合進了MPEG-2。

那我們又該有疑問了,那接下來也不應該是H.264/AVC吧,應該是MPEG-4才對呀,這就涉及到我們今天的話題。所以在講H.264/AVC之前,我們就來聊聊MPEG-4。

1、MPEG-4

MPEG-4也稱視聽對象編碼(Coding of audio-visual objects)標準,注意跟MPEG-1和MPEG-2相比,它多了對象兩個字。它不僅吸收了MPEG-1和MPEG-2的許多特性,并且引入了視聽對象(audio-visual objects)編碼的概念。這里我們不用管視聽對象具體是指什么,因為它并不會在接下來的H.264/AVC中出現。為什么呢?這就涉及到MPEG-4的組成部分了。

就像MPEG-1和MPEG-2一樣,MPEG-4由多個部分組成。而因為MPEG-4應用之廣,它在1998年第一版發布之后,又在1999年發布了第二版,并且在2000年正式成為國際標準,而且即使現在,也在不斷更新和完善。介紹這一段的主要目的,不是為了說明MPEG-4有多牛逼,而是為了說明,正因如此,MPEG-4的多個部分,也有先來后到。比如Part 1和Part 31,Part 1肯定是最早發布的,而Part 31,直到最近也就是2014年才發布。

MPEG-4不只是一個音視頻編解碼標準,它還是多媒體的應用標準。它的內容包括,音視頻編解碼、字幕流文本格式、字體壓縮、3D圖形壓縮、Web視像編碼等。由此可見MPEG-4的范圍之廣,由于它的研究課題很多,大多數人并不會全盤學習。比如我們,只關心音視頻編解碼部分,而這部分對應的Part分別為:Part 2(Visual)、Part 3(Audio)、Part 10(AVC)、Part 14(MP4),當然為了了解MPEG-4,還會看一下Part 1(system),也就是系統部分。

注意到Part 2和Part 3,分別是視像和聲音部分,而這兩部分,也是最早發布的版本里囊括的。而我們前面說的對象編碼,就應用在Part 2(Visual)里。所以當我們說MPEG-4可視對象編碼的時候,一般指MPEG-4 Visual,也就是ISO/IEC 14496-2 Part2,其中14496是指MPEG-4標準的編號,2就是只Part 2,合起來就是14496-2。 如下圖:


圖中標紅框的,是它們的第一次發版的時間,可以追溯到1999年,也就是MPEG-4的第二版就發布了。

不過我們并不準備把精力放在MPEG-4 Visual上,因為在如今的實際應用中,還是H.264/AVC比較流行。我們前幾篇之所以講MPEG-1和MPEG-2,是因為它們能夠為理解H.264/AVC提供幫助,但是MPEG-4 Visual包含新的對象編碼的知識,對理解H.264/AVC幫助較小,所以我們直接忽略,有興趣的自行翻閱資料即可。下面我們就開始介紹今天的主角:H.264/AVC

2、H.264/AVC

有的同學可能會覺得跳躍有點快,剛才還在說MPEG-4呢,怎么一下跳到H.264/AVC了。首先,這種感覺是正常的,因為我還沒介紹一個關鍵的信息。從這篇文章開頭開始,我們在講H.264/AVC的時候,都一直在把H.264 和 AVC連在一起寫出來,這樣寫其實是和它的起源有直接意義的。

我們在上面講MPEG-4的幾個比較重要的部分(Part)時,除了Part 2、Part 3,還有Part 10(AVC)和Part 14(MP4),Part 14一看就知道,這不就是大名鼎鼎的MP4格式嘛(關于MP4我們后面再介紹)。而另一個Part 10,后面備注為AVC,難道它跟H.264/AVC有關系?

恩,沒錯,你猜對啦,事實確實是這樣。


MPEG-4 Part 10

這是維基百科上,關于MPEG-4 Part 10的介紹,請看標紅框備注部分:一種視頻信號壓縮格式,在技術上和ITU-T H.264是一樣的。而AVC的意思是,Advanced Video Coding,也就是高級視頻編碼。它是在2003年發布的,這與我們在MPEG-1中,展示的編碼年表也是契合的:


國際視像編碼年表

這樣來看,ITU-T H.264和MPEG-4 AVC其實就是一個標準。之所以是一個標準,是因為它是由ITU-T VCEG(Video Coding Experts Group)專家組,和MPEG專家組,聯合開發的,因此才產生了H.264/AVC這樣的叫法。

H.264/AVC應用非常廣泛,它可以把原始的RGB或YUV像素數據,編碼為h.264裸流,而基于h.264裸流,我們還可以把它封裝為MP4、MKV等格式保存至本地,還可以使用傳輸協議進行打包,在互聯網上進行傳輸。這就是H.264/AVC目前的主流應用,當然這一段看不懂也沒關系,因為我們只是稍微展望前方的知識路徑。

H.264/AVC相比之前的編碼標準,比如MPEG-1、MPEG-2,在結構上并沒有明顯改變。但是它的編碼效率卻比它們高出不少,這是為什么呢?那是因為H.264/AVC在之前的標準上,進行了很多改進,尤其是在各個主要功能模塊。雖然這些改動并不大,但是這些改進卻成為精華,使H.264/AVC的壓縮效率,是MPEG-2的2~3倍。有效的降低了在網絡上傳輸視頻數據的成本,并且之前使用MPEG-2的DVD和數字電視,也轉向了H.264/AVC。

下面就是H.264/AVC的主要改進:

(1)幀間預測: 采用可變圖塊的幀間預測和移動補償,注意是可變圖塊,之前標準的預測圖塊大小為16x16像素,而改進了之后,預測圖塊可小到4x4像素。這樣一來,移動矢量的預測精度就提高了。

(2)幀內預測: 幀內預測圖塊的大小,改進成了可以為16x16的宏塊,也可以是4x4像素的圖塊,而且定義了多種預測方式。這樣做,就是為了找到最佳匹配的預測圖塊。

(3)采用整數變換: 這是從DCT演變來的變換,可以提高運算速度。

(4)采用CAVLC和CABAC熵編碼: 名稱不用強記,只需知道它們都屬于熵編碼,并且比VLC(Variable Length Coding/可變長度編碼)的編碼效率高就可以了。

(5)采用多參考幀和消除塊狀失真的濾波技術: 塊狀失真就是指當壓縮率過高時,會導致重構圖像出現塊狀外觀現象。而消除這一現象使用的濾波技術,如果你不打算深入學習數字圖像處理,可以先不用管。

可以看到,這些改進里雖然動靜不大,但是每一個都影響較大。尤其是前1、2條,16x16的預測圖塊,可以小到4x4,這畢然會使移動矢量的預測精度大大提高,從而影響一組預測圖像,這就類似蝴蝶效應的威力!

總結

以上是生活随笔為你收集整理的H.264/AVC简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。