1. 程式人生 > >各種音視訊編解碼學習詳解 h264 ,mpeg4 ,aac 等所有音視訊格式

各種音視訊編解碼學習詳解 h264 ,mpeg4 ,aac 等所有音視訊格式

媒體業務是網路的主要業務之間。尤其移動網際網路業務的興起,在運營商和應用開發商中,媒體業務份量極重,其中媒體的編解碼服務涉及需求分析、應用開發、釋放license收費等等。最近因為專案的關係,需要理清媒體的codec,比較搞的是,在豆丁網上看運營商的規範 標準,同一運營商同樣的業務在不同文件中不同的要求,而且有些要求就我看來應當是歷史的延續,也就是現在已經很少採用了。所以豆丁上看不出所以然,從 wiki上查。中文的wiki資訊量有限,很短,而wiki的英文內容內多,刪減版也減肥得太過。我在網上還看到一個山寨的中文wiki,長得很像,紅色的,叫“天下維客”。wiki的中文還是很不錯的,但是閱讀後建議再閱讀英文。

  我對媒體codec做了一些整理和總結,資料來源於wiki,小部分來源於網路部落格的收集。網友資料我們將給出來源。如果資料已經轉手幾趟就沒辦法,雁過留聲,我們只能給出某個軌跡。

基本概念

編解碼

  編解碼器(codec)指的是一個能夠對一個訊號或者一個數據流進行變換的裝置或者程式。這裡指的變換既包括將 訊號或者資料流進行編碼(通常是為了傳輸、儲存或者加密)或者提取得到一個編碼流的操作,也包括為了觀察或者處理從這個編碼流中恢復適合觀察或操作的形式的操作。編解碼器經常用在視訊會議和流媒體等應用中。

容器

  很多多媒體資料流需要同時包含音訊資料和視訊資料,這時通常會加入一些用於音訊和視訊資料同步的元資料,例如字幕。這三種資料流可能會被不同的程式,程序或者硬體處理,但是當它們傳輸或者儲存的時候,這三種資料通常是被封裝在一起的。通常這種封裝是通過視訊檔案格 式來實現的,例如常見的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta. 這些格式中有些只能使用某些編解碼器,而更多可以以容器的方式使用各種編解碼器。

  FourCC全稱Four-Character Codes,是由4個字元(4 bytes)組成,是一種獨立標示視訊資料流格式的四位元組,在wav、avi檔案之中會有一段FourCC來描述這個AVI檔案,是利用何種codec來 編碼的。因此wav、avi大量存在等於“IDP3”的FourCC。

  視訊是現在電腦中多媒體系統中的重要一環。為了適應儲存視訊的需要,人們設定了不同的視訊檔案格式來把視訊和音訊放在一個檔案中,以方便同時回放。視訊檔實際上都是一個容器裡面包裹著不同的軌道,使用的容器的格式關係到視訊檔的可擴充套件性。

引數介紹

取樣率

  取樣率(也稱為取樣速度或者取樣頻率)定義了每秒從連續訊號中提取並組成離散訊號的取樣個數,它用赫茲(Hz)來表示。取樣頻率的倒數叫作取樣週期或採樣時間,它是取樣之間的時間間隔。注意不要將取樣率與位元率(bit rate,亦稱“位速率”)相混淆。

  取樣定理表明取樣頻率必須大於被取樣訊號頻寬的兩倍,另外一種等同的說法是奈奎斯特頻率必須大於被取樣訊號的頻寬。如果訊號的頻寬是 100Hz,那麼為了避免混疊現象取樣頻率必須大於200Hz。換句話說就是取樣頻率必須至少是訊號中最大頻率分量頻率的兩倍,否則就不能從訊號取樣中恢復原始訊號。

  對於語音取樣:

  • 8,000 Hz – 電話所用取樣率, 對於人的說話已經足夠
  • 11,025 Hz
  • 22,050 Hz – 無線電廣播所用取樣率
  • 32,000 Hz – miniDV 數碼視訊 camcorder、DAT (LP mode)所用取樣率
  • 44,100 Hz – 音訊 CD, 也常用於 MPEG-1 音訊(VCD, SVCD, MP3)所用取樣率
  • 47,250 Hz – Nippon Columbia (Denon)開發的世界上第一個商用 PCM 錄音機所用取樣率
  • 48,000 Hz – miniDV、數字電視、DVD、DAT、電影和專業音訊所用的數字聲音所用取樣率
  • 50,000 Hz – 二十世紀七十年代後期出現的 3M 和 Soundstream 開發的第一款商用數字錄音機所用取樣率
  • 50,400 Hz – 三菱 X-80 數字錄音機所用所用取樣率
  • 96,000 或者 192,000 Hz – DVD-Audio、一些 LPCM DVD 音軌、Blu-ray Disc(藍光碟)音軌、和 HD-DVD (高清晰度 DVD)音軌所用所用取樣率
  • 2.8224 MHz – SACD、 索尼 和 飛利浦 聯合開發的稱為 Direct Stream Digital 的 1 位 sigma-delta modulation 過程所用取樣率。

  在模擬視訊中,取樣率定義為幀頻和場頻,而不是概念上的畫素時鐘。影象取樣頻率是感測器積分週期的迴圈速度。由於積分週期遠遠小於重複所需時間,取樣頻率可能與取樣時間的倒數不同。

  • 50 Hz – PAL 視訊
  • 60 / 1.001 Hz – NTSC 視訊

  當模擬視訊轉換為數字視訊的時候,出現另外一種不同的取樣過程,這次是使用畫素頻率。一些常見的畫素取樣率有:

  • 13.5 MHz – CCIR 601、D1 video

解析度

  解析度,泛指量測或顯示系統對細節的分辨能力。此概念可以用時間、空間等領域的量測。日常用語中之解析度多用於影象的清晰度。解析度越高代表影象品質越好,越能表現出更多的細節。但相對的,因為紀錄的資訊越多,檔案也就會越大。目前個人電腦裡的影象,可以使用影象 處理軟體,調整影象的大小、編修照片等。例如 photoshop,或是photoimpact等軟體。

 影象解析度 :

  用以描述影象細節分辨能力,同樣適用於數字影象、膠捲影象、及其他型別影象。常用’線每毫米’、 ‘線每英吋’等來衡量。通常,“解析度”被表示成每一個方向上的畫素數量,比如640×480等。而在某些情況下,它也可以同時表示成“每英吋畫素” (pixels per inch,ppi)以及圖形的長度和寬度。比如72ppi,和8×6英吋。

 視訊解析度 :

各種電視規格解析度比較視 頻的畫面大小稱為“解析度”。數位視訊以畫素為度量單位,而類比視訊以水平掃瞄線數量為度量單位。標清電視訊號解析度為 720/704/640x480i60(NTSC)或768/720x576i50(PAL/SECAM)。新的高清電視(HDTV)解析度可達 1920x1080p60,即每條水平掃瞄線有1920個畫素,每個畫面有1080條掃瞄線,以每秒鐘60張畫面的速度播放。

畫面更新率fps

  Frame rate中文常譯為“畫面更新率”或“幀率”,是指視訊格式每秒鐘播放的靜態畫面數量。典型的畫面更新率由早期的每秒6或8張(frame persecond,簡稱fps),至現今的每秒120張不等。PAL (歐洲,亞洲,澳洲等地的電視廣播格式) 與 SECAM (法國,俄國,部分非洲等地的電視廣播格式) 規定其更新率為25fps,而NTSC (美國,加拿大,日本等地的電視廣播格式) 則規定其更新率為29.97 fps。電影膠捲則是以稍慢的24fps在拍攝,這使得各國電視廣播在播映電影時需要一些複雜的轉換手續(參考Telecine轉換)。要達成最基本的視覺暫留效果大約需要10fps的速度。

壓縮方法

有失真壓縮和無失真壓縮

  在視訊壓縮中有損(Lossy )和無損(Lossless)的概念與靜態影象中基本類似。無失真壓縮也即壓縮前和解壓縮後的資料完全一致。多數的無失真壓縮都採用RLE行程編碼演算法。有損 壓縮意味著解壓縮後的資料與壓縮前的資料不一致。在壓縮的過程中要丟失一些人眼和人耳所不敏感的影象或音訊資訊,而且丟失的資訊不可恢復。幾乎所有高壓縮的演算法都採用有失真壓縮,這樣才能達到低資料率的目標。丟失的資料率與壓縮比有關,壓縮比越小,丟失的資料越多,解壓縮後的效果一般越差。此外,某些有損壓 縮演算法採用多次重複壓縮的方式,這樣還會引起額外的資料丟失。

  • 無損格式,例如WAV,PCM,TTA,FLAC,AU,APE,TAK,WavPack(WV)
  • 有損格式,例如MP3,Windows Media Audio(WMA),Ogg Vorbis(OGG),AAC

幀內壓縮和幀間壓縮

  幀內(Intraframe)壓縮也稱為空間壓縮 (Spatial compression)。當壓縮一幀影象時,僅考慮本幀的資料而不考慮相鄰幀之間的冗餘資訊,這實際上與靜態影象壓縮類似。幀內一般採用有失真壓縮演算法,由於幀內壓縮時各個幀之間沒有相互關係,所以壓縮後的視訊資料仍可以以幀為單位進行編輯。幀內壓縮一般達不到很高的壓縮。

  採用幀間(Interframe)壓縮是基於許多視訊或 動畫的連續前後兩幀具有很大的相關性,或者說前後兩幀資訊變化很小的特點。也即連續的視訊其相鄰幀之間具有冗餘資訊,根據這一特性,壓縮相鄰幀之間的冗餘量就可以進一步提高壓縮量,減小壓縮比。幀間壓縮也稱為時間壓縮(Temporalcompression),它通過比較時間軸上不同幀之間的資料進行壓縮。幀間壓縮一般是無損的。幀差值(Frame differencing)演算法是一種典型的時間壓縮法,它通過比較本幀與相鄰幀之間的差異,僅記錄本幀與其相鄰幀的差值,這樣可以大大減少資料量。

對稱編碼和不對稱編碼

  對稱性(symmetric)是壓縮編碼的一個關鍵特 徵。對稱意味著壓縮和解壓縮佔用相同的計算處理能力和時間,對稱演算法適合於實時壓縮和傳送視訊,如視訊會議應用就以採用對稱的壓縮編碼演算法為好。而在電子出版和其它多媒體應用中,一般是把視訊預先壓縮處理好,爾後再播放,因此可以採用不對稱(asymmetric)編碼。不對稱或非對稱意味著壓縮時需要花費大量的處理能力和時間,而解壓縮時則能較好地實時回放,也即以不同的速度進行壓縮和解壓縮。一般地說,壓縮一段視訊的時間比回放(解壓縮)該視訊的時間 要多得多。例如,壓縮一段三分鐘的視訊片斷可能需要10多分鐘的時間,而該片斷實時回放時間只有三分鐘。

除wiki外的資料來源:http://tech.lmtw.com/csyy/Using/200411/3142.html

資料(港臺將information翻譯為資料)壓縮是透過去除資料中的冗餘資訊而達成。就視訊資料而言,資料中的冗餘資訊可以分成四類:

時間上的冗餘資訊(temporal redundancy)
在視訊資料中,相鄰的幀(frame)與幀之間通常有很強的關連性,這樣的關連性即為時間上的冗餘資訊。這即是上一次學習中的幀間壓縮。

空間上的冗餘資訊(spatial redundancy)
在同一張幀之中,相鄰的畫素之 間通常有很強的關連性,這樣的關連性即為空間上的冗餘資訊。這即是上一次學習中的幀內壓縮。

統計上的冗餘資訊(statistical redundancy)
統計上的冗餘資訊指的是欲編碼的符號(symbol)的機率分佈是不均勻(non-uniform)的。

感知上的冗餘資訊(perceptual redundancy)
感知上的冗餘資訊是指在人在觀看視訊時,人眼無法察覺的資訊。

  視訊壓縮(英文:Video compression)是指運用資料壓縮技術將數位視訊資料中的冗餘資訊去除,降低表示原始視訊所需的資料量,以便視訊資料的傳輸與儲存。實際上,原始視訊資料的資料量往往過大,例如未經壓縮的電視品質視訊資料的位元率高達216Mbps,絕大多數的應用無法處理如此龐大的資料量,因此視訊壓縮是必要的。目前最新的視訊編碼標準為ITU-T視訊編碼專家組(VCEG)和ISO/IEC動態影象專家組(MPEG)聯合組成的聯合視訊組(JVT,Joint Video Team)所提出的H.264/AVC。

  一個典型的視訊編碼器:在進行當前訊號編碼時,編碼器首先會產生對當前訊號做預測的訊號,稱作預測訊號(predicted signal),預測的方式可以是時間上的預測(interprediction),亦即使用先前幀的訊號做預測,或是空間上的預測 (intra prediction),亦即使用同一張幀之中相鄰畫素的訊號做預測。得到預測訊號後,編碼器會將當前訊號與預測訊號相減得到殘餘訊號(residual signal),並只對殘餘訊號進行編碼,如此一來,可以去除一部份時間上或是空間上的冗餘資訊。接著,編碼器並不會直接對殘餘訊號進行編碼,而是先將殘餘訊號經過變換(通常為離散餘弦變換)然後量化以 進一步去除空間上和感知上的冗餘資訊。量化後得到的量化係數會再透過熵編碼,去除統計上的冗餘資訊。

視訊編碼標準發展

年份

標準

制定組織

解除版權保護
(DRM-free )

主要應用

1984

H.120

ITU-T

1990

H.261

ITU-T

視訊會議 視訊通話

1993

ISO /IEC

影音光碟(VCD )

1995

ISO / IECITU-T

DVD影碟 DVD-Video )、藍光 Blu-Ray )影碟、數位視訊廣播(DVB )、SVCD

1996

H.263 [6]

ITU-T

視訊會議 視訊通話 3G 手機視訊(3GP )

2003

ISO / IECITU-T

藍光 Blu-Ray )影碟、數位視訊廣播(DVB )、iPod 視訊、高畫質DVD HD DVD )

常見的編解碼見下表,在以後會分類論述:

上面的表格,檢視某個具體的codec,可以在中文的wiki中查詢,但是英文的wiki諮詢更為豐富,見下表

MPEG是Moving Picture Experts Group的簡稱。這個名字本來的含義是指一個研究視訊和音訊編碼標準的小組。現在我們所說的MPEG泛指又該小組制定的一系列視訊編碼標準。該小組於 1988年組成,至今已經制定了MPEG-1、MPEG-2、MPEG-3、MPEG-4、MPEG-7等多個標準,MPEG-21正在制定中。

MPEG到目前為止已經制定並正在制定以下和視訊相關的標準:

  • MPEG-1: 第一個官方的視訊音訊壓縮標準,隨後在Video CD中被採用,其中的音訊壓縮的第三級(MPEG-1 Layer 3)簡稱MP3, 成為比較流行的音訊壓縮格式。
  • MPEG-2: 廣播質量的視訊、音訊和傳輸協議。被用於無線數位電視-ATSC、DVB以及ISDB、數字衛星電視(例如DirecTV)、 數字有線電視訊號,以及DVD視訊光碟技術中。
  • MPEG-3: 原本目標是為高解析度電視(HDTV)設計,隨後發現MPEG-2已足夠HDTV應用,故 MPEG-3的研發便中止。
  • MPEG-4:2003 年釋出的視訊壓縮標準,主要是擴充套件MPEG-1、MPEG-2等標準以支援視訊/音訊物件(video/audio “objects”)的編碼、3D內容、低位元率編碼(low bitrate encoding)和數位版權管理(Digital Rights Management),其中第10部分由ISO/IEC和ITU-T聯合釋出,稱為H.264/MPEG-4 Part 10。參見H.264。
  • MPEG-7:MPEG-7並不是一個視訊壓縮標準,它是一個多媒體內容的描述標準。
  • MPEG-21:MPEG-21是一個正在制定中的標準,它的目標是為未來多媒體的應用提供一個完整的平臺。

  媒體codec在於MPEG-1,MPEG-2,MPEG-4,如上圖所示。

圖中名稱解釋:在圖中DVD地球人都知道,何為DVB?

DVB:數字視訊廣播(DVB, Digital VideoBroadcasting),是由“DVB Project”維護的一系列為國際所承認的數字電視公開標準。DVB系統傳輸方式有如下幾種:

·        衛星電視(DVB-S 及 DVB-S2)

相關推薦

各種視訊解碼學習 h264 mpeg4 aac 所有視訊格式

媒體業務是網路的主要業務之間。尤其移動網際網路業務的興起,在運營商和應用開發商中,媒體業務份量極重,其中媒體的編解碼服務涉及需求分析、應用開發、釋放license收費等等。最近因為專案的關係,需要理清媒體的codec,比較搞的是,在豆丁網上看運營商的規範 標準,同一運營商同樣的業務在不同文件中不同的要

各種視訊解碼學習—————— h264 mpeg4 aac 所有視訊格式

媒體業務是網路的主要業務之間。尤其移動網際網路業務的興起,在運營商和應用開發商中,媒體業務份量極重,其中媒體的編解碼服務涉及需求分析、應用開發、釋放license收費等等。最近因為專案的關係,需要理清媒體的codec,比較搞的是,在豆丁網上看運營商的規範 標準,同一運

各種視訊解碼學習解碼學習筆記(一):基本概念

最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651270.htm

各種視訊解碼學習解碼學習筆記(三):Mpeg系列——Mpeg 1和Mpeg 2

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit

各種視訊解碼學習解碼學習筆記(二):codec型別

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit

各種視訊解碼學習解碼學習筆記(四):Mpeg系列——Mpeg 4

   最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit

各種視訊解碼學習解碼學習筆記(七):微軟Windows Media系列

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbi

各種視訊解碼學習解碼學習筆記(五):Mpeg系列——AAC音訊

     最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyo

各種視訊解碼學習解碼學習筆記(十二):其他解碼(M-JPEGMotion JPEG 2000DivX)

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbi

各種視訊解碼學習解碼學習筆記(十一):Flash Video系列

 最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651

各種視訊解碼學習解碼學習筆記(十):Ogg系列

 最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651

各種視訊解碼學習解碼學習筆記(九):QuickTime系列

 最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651

各種視訊解碼學習解碼學習筆記(八):Real系列

     最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyo

各種視訊解碼學習解碼學習筆記(六):H.26x系列

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbi

各種視訊解碼學習

媒體業務是網路的主要業務之間。尤其移動網際網路業務的興起,在運營商和應用開發商中,媒體業務份量極重,其中媒體的編解碼服務涉及需求分析、應用開發、釋放license收費等等。最近因為專案的關係,需要理清媒體的codec,比較搞的是,在豆丁網上看運營商的規範 標準

各種視訊解碼學習(7)--微軟Windows Media系列

Microsoft 公司主導的音訊視訊編碼系列,它的出現主要是為了進行網路視訊傳輸,現在已經向HDTV 方面進軍,開發了 WMV HD 應用。WMV(Windows Media Video)是微軟公司開發的一組數字視訊編 解碼格式的通稱,它是Windows Media架構下

各種視訊解碼學習(10)--Ogg系列

Ogg是一個自由且開放標準的容器格式,由Xiph.Org 基金會所維護。Ogg格式並不受到軟體專利的限制,並設計用於有效率地串流媒體和處理高質量的數字多媒體。   Ogg意指一種檔案格式,可以納入各式各樣自由和開放原始碼的編解碼器,包含音效、視訊、 文字(像字幕)與元資料的

視訊解碼學習:變換量化與熵編碼

第6章 變換編碼1. 變換編碼變換編碼的目的去除空間訊號的相關性將空間訊號的能力集中到頻域的一小部分低頻係數上能量小的係數可通過量化去除,而不會嚴重影響重構影象的質量塊變換和全域性變換塊變換:離散餘弦變換(Discrete Cosine Transform,DCT),4x4,

【H.264/AVC視訊解碼技術】二十三、幀間預測編碼(1):幀間預測編碼的基本原理

《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼的形式操作一遍,才能對視訊壓

H.264/AVC視訊解碼技術-殷汶傑-專題視訊課程

H.264/AVC視訊編解碼技術詳解—46880人已學習 課程介紹         H.264/AVC是目前業界應用為廣泛的視訊壓縮編碼標準,包含了先進而且較為成熟的視訊編碼技術。本課程將從原理、標