音視訊基礎概念
目錄
- 常用的音訊編碼格式
- YUV資料格式
- 視訊壓縮編碼
- IPB幀
- PTS和DTS
- GOP
1.常用的音訊編碼格式
- WAV:因其副檔名為wav,微軟和IBM聯合開發的標準,資料本身的格式為PCM或壓縮型,屬於無損格式。
- MP3:MPEG-1 Audio Layer 3,1991年德國研究組織Fraunhofer-Gesellschaft發明和標準化的,當前主流的音訊格式,壓縮比4:1~10:1之間。
- AAC:Advanced Audio Coding, 出現於1997年,由Fraunhofer IIS、杜比實驗室、AT&T、Sony、Nokia等公司共同開發。AAC壓縮比通常為18:1,AAC是一個龐大家族,他們共分為9種規格,以適應不同場合的需要。
- Opus:Opus格式是一個開放格式,使用上沒有任何專利或限制,比MP3、AAC、HE-AAC等常見格式,有更低的延遲和更好的聲音壓縮率。2012年7月2日,Opus被IETF批准用於標準化。
2. YUV資料格式
傳送門:YUV資料格式
3. 視訊壓縮編碼
視訊壓縮是通過去除冗餘資訊包括空間上和時間上的冗餘資訊。
4. IPB幀
- I幀:幀內編碼幀(intra picture),採用幀內壓縮去掉空間冗餘資訊。
- P幀:前向預測編碼幀(predictive-frame),通過將影象序列中前面已經編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象。參考前面的I幀或者P幀。
- B幀:雙向預測內插編碼幀(bi-directional interpolated prediction frame),既考慮源影象序列前面的已編碼幀,又顧及源影象序列後面的已編碼幀之間的冗餘資訊,來壓縮傳輸資料量的編碼影象,也稱為雙向編碼幀。參考前面一個的I幀或者P幀及其後面的一個P幀。
5. PTS和DTS
- DTS(Decoding Time Stamp)是標識讀入記憶體中bit流在什麼時候開始送入解碼器中進行解碼。
- PTS(Presentation Time Stamp)用於度量解碼後的視訊幀什麼時候被顯示出來。在沒有B幀的情況下,DTS和PTS的輸出順序是一樣的,一旦存在B幀,PTS和DTS則會不同。
6. GOP
兩個I幀之間的一組圖片,就是GOP(Group Of Picture)的概念。通常在為編碼器設定引數時,必須設定gop_size的值,其表示兩個I幀之間的幀數目。
一般來說,I幀的壓縮率是7,P是20,B可以達到50,可見使用B幀能節省大量空間,節省出來的空間可以用來更多地儲存I幀,這樣就能在相同的位元速率下提供更好的畫質。
例子:
下面給出一個GOP為15的例子,其解碼的參照frame及其解碼的順序都在裡面:
如上圖:I幀的解碼不依賴於任何的其它的幀,而P幀的解碼則依賴於其前面的I幀或者P幀。
B幀的解碼則依賴於其前面的最近的一個I幀或者P幀及其後的最近的一個P幀。
6.1 Open-GOP和Close-GOP
Open-GOP:informal structure. 在一個GOP裡面的某一幀在解碼時要依賴於前一個GOP中的某一些幀,這種GOP結構叫做Open-GOP。一般碼流裡面含有B幀的時候才會出現Open-GOP
例如:IBBPBBP
Close-GOP: formal structure.在一個GOP裡面的某一幀的解碼不依賴前一個GOP中的幀。
例如:BBIBBPBB,IDR BBPBB、
在H.264的GOP中,所有的GOP都是獨立解碼的,與其他GOP無關,即它們都是“封閉”的。但是在HEVC中,GOP的結構發生了變化,採用了“開放”的結構,在解碼過程過可能會參考其他GOP的資料。
7. 參考
相關文章
- ffmpeg實戰-音視訊基礎概念
- 《音視訊開發進階指南》讀書筆記(一) —— 音視訊基礎概念筆記
- 音視訊技術基礎
- 音視訊基礎知識
- 音視訊基礎知識-YUV影像
- Android 音視訊入門:C語言基礎AndroidC語言
- 音視訊學習(一)-- 基礎知識準備
- Core Audio音訊基礎概述音訊
- 【秒懂音視訊開發】05_Qt開發基礎QT
- 音訊解碼基礎講解音訊
- 音訊編碼基礎詳解音訊
- 音視訊點播服務基礎系列(Fmpeg常用命令)
- MySQL基礎概念MySql
- NestJS 基礎概念JS
- Vue 基礎概念Vue
- HTTP基礎概念HTTP
- JVM 基礎概念JVM
- Vue基礎概念Vue
- python基礎概念Python
- Elaticsearch基礎概念
- 視訊開發基礎篇
- 短視訊“音訊化”,音樂“視訊化”音訊
- 音視訊基本概念和FFmpeg的簡單入門
- 音視訊--音訊入門音訊
- 音視訊–音訊入門音訊
- ZooKeeper 概念與基礎
- Spring 5 基礎概念Spring
- MySQL(一)基礎概念MySql
- 1章 基礎概念
- Elastic Stack基礎概念AST
- JavaScript WebGL 基礎概念JavaScriptWeb
- java 基礎概念 (1)Java
- 4、kubernetes基礎概念
- golang的基礎概念Golang
- OBS 基礎 14 視訊資訊設定
- 一、視音訊編解碼技術零基礎(理論總結)音訊
- 音視訊--視訊入門
- Android 音視訊 - MediaCodec 編解碼音視訊Android