音視頻學習(一)-- 基礎知識準備

本章知識點一覽:html

  • 視頻播放原理
  • 視頻文件封裝格式
  • 音視頻編碼方式簡介

1、視頻播放器原理:

咱們播放的視頻文件通常都是用一種封裝格式封裝起來的,封裝格式的做用是什麼呢?通常視頻文件裏不光有視頻,還有音頻,封裝格式的做用就是把視頻和音頻打包起來。 因此咱們先要解封裝格式,看有哪些視頻流和哪些音頻流,此時的音頻流和視頻流都仍是壓縮數據,不能直接用於顯示的,這就須要解碼。下面是播放一個視頻文件時的流程圖。 git

視頻播放流程圖.png

根據上面流程圖中的流程,咱們從上至下一步步的來了解下每步驟的原理和實現方式。先來看下 視頻封裝格式網絡

2、視頻文件封裝格式

封裝格式(也叫容器),就是將已經編碼壓縮好的視頻軌和音頻軌按照必定的格式放到一個文件中,也就是說僅僅是一個外殼,或者你們把它當成一個放視頻軌和音頻軌的文件夾也能夠。說得通俗點,視頻軌至關於飯,而音頻軌至關於菜,封裝格式就是一個碗,或者一個鍋,用來盛放飯菜的容器。 下面是幾種經常使用的 視頻文件後綴類型 與其相對應的 封裝格式ide

視頻文件格式 視頻封裝格式
.avi AVI(Audio Video Interleaved)
.wmv、.asf WMV(Windows Media Video)
.mpg、.mpeg、.vob、.dat、.3gp、.mp4 MPEG(Moving Picture Experts Group)
.mkv Matroska
.rm、.rmvb Real Video
.mov QuickTime File Format
.flv Flash Video

下面詳細介紹幾個視頻的封裝格式性能

  • 一、AVI 格式,對應的文件格式爲 .avi,全稱 Audio Video Interleaved,是由 Microsoft 公司於 1992 年推出。這種視頻格式的優勢是圖像質量好,無損 AVI 可保存 alpha 通道。缺點是體積過於龐大,而且壓縮標準不統一,存在較多的高低版本兼容問題。網站

  • 二、DV-AVI 格式,對應的文件格式爲 .avi,英文全稱 Digital Video Format,是由索尼、松下、JVC 等多家廠商聯合提出的一種家用數字視頻格式。常見的數碼攝像機就是使用這種格式記錄視頻數據的。它能夠經過電腦的 IEEE 1394 端口傳輸視頻數據到電腦,也能夠將電腦中編輯好的的視頻數據回錄到數碼攝像機中。ui

  • 三、WMV 格式,對應的文件格式是 .wmv、.asf,英文全稱 Windows Media Video,是微軟推出的一種採用獨立編碼方式而且能夠直接在網上實時觀看視頻節目的文件壓縮格式。在同等視頻質量下,WMV 格式的文件能夠邊下載邊播放,所以很適合在網上播放和傳輸。編碼

  • 四、MPEG 格式,對應的文件格式有 .mpg、.mpeg、.mpe、.dat、.vob、.asf、.3gp、.mp4 等等,英文全稱 Moving Picture Experts Group,是由運動圖像專家組制定的視頻格式,該專家組於 1988 年組建,專門負責視頻和音頻標準制定,其成員都是視頻、音頻以及系統領域的技術專家。MPEG 格式目前有三個壓縮標準,分別是 **MPEG-一、MPEG-二、**和 MPEG-4MPEG-4 是如今用的比較多的視頻封裝格式,它爲了播放流式媒體的高質量視頻而專門設計的,以求使用最少的數據得到最佳的圖像質量。spa

  • 五、Matroska 格式,對應的文件格式是 .mkv,Matroska 是一種新的視頻封裝格式,它可將多種不一樣編碼的視頻及 16 條以上不一樣格式的音頻和不一樣語言的字幕流封裝到一個 Matroska Media 文件當中。.net

  • 六、Real Video 格式,對應的文件格式是 .rm、.rmvb,是 Real Networks 公司所制定的音頻視頻壓縮規範稱爲 Real Media。用戶可使用 RealPlayer 根據不一樣的網絡傳輸速率制定出不一樣的壓縮比率,從而實如今低速率的網絡上進行影像數據實時傳送和播放。

  • 七、QuickTime File Format 格式,對應的文件格式是 .mov,是 Apple 公司開發的一種視頻格式,默認的播放器是蘋果的 QuickTime。這種封裝格式具備較高的壓縮比率和較完美的視頻清晰度等特色,並能夠保存 alpha 通道。

  • 八、Flash Video 格式,對應的文件格式是 .flv,是由 Adobe Flash 延伸出來的一種網絡視頻封裝格式。這種格式被不少視頻網站所採用。

3、 音視頻編碼方式簡介

一、視頻編碼方式

  • 視頻編碼的做用: 將視頻像素數據(RGB,YUV 等)壓縮成視頻碼流,從而下降視頻的數據量。
名稱 推出機構 推出時間 目前使用領域
HEVC(H.265) MPEG/ITU-T 2013 研發中
H.264 MPEG/ITU-T 2003 各個領域
MPEG4 MPEG 2001 不溫不火
MPEG2 MPEG 1994 數字電視
VP9 Google 2013 研發中
VP8 Google 2008 不普及
VC-1 Microsoft Inc. 2006 微軟平臺

(1)、H.26X 系列

H.26X 由國際電傳視訊聯盟遠程通訊標準化組織(ITU-T)主導,包括 H.26一、H.26二、H.26三、H.26四、H.265

  • H.261,主要用於老的視頻會議和視頻電話系統。是第一個使用的數字視頻壓縮標準。實質上說,以後的全部的標準視頻編解碼器都是基於它設計的。

  • H.262,等同於 MPEG-2 第二部分,使用在 DVD、SVCD 和大多數數字視頻廣播系統和有線分佈系統中。

  • H.263,主要用於視頻會議、視頻電話和網絡視頻相關產品。在對逐行掃描的視頻源進行壓縮的方面,H.263 比它以前的視頻編碼標準在性能上有了較大的提高。尤爲是在低碼率端,它能夠在保證必定質量的前提下大大的節約碼率。

  • H.264,等同於 MPEG-4 第十部分,也被稱爲高級視頻編碼(Advanced Video Coding,簡稱 AVC),是一種視頻壓縮標準,一種被普遍使用的高精度視頻的錄製、壓縮和發佈格式。該標準引入了一系列新的可以大大提升壓縮性能的技術,並可以同時在高碼率端和低碼率端大大超越之前的諸標準。

  • H.265,被稱爲高效率視頻編碼(High Efficiency Video Coding,簡稱 HEVC)是一種視頻壓縮標準,是 H.264 的繼任者。HEVC 被認爲不只提高圖像質量,同時也能達到 H.264 兩倍的壓縮率(等同於一樣畫面質量下比特率減小了 50%),可支持 4K 分辨率甚至到超高畫質電視,最高分辨率可達到 8192×43208K 分辨率),這是目前發展的趨勢。

(2)、MPEG 系列

MPEG 系列由國際標準組織機構(ISO)下屬的運動圖象專家組(MPEG)開發。

  • MPEG-1 第二部分,主要使用在 VCD 上,有些在線視頻也使用這種格式。該編解碼器的質量大體上和原有的 VHS 錄像帶至關。
  • MPEG-2 第二部分,等同於 H.262,使用在 DVDSVCD 和大多數數字視頻廣播系統和有線分佈系統中。
  • MPEG-4 第二部分,可使用在網絡傳輸、廣播和媒體存儲上。比起 MPEG-2 第二部分和初版的 H.263,它的壓縮性能有所提升。
  • MPEG-4 第十部分,等同於 H.264,是這兩個編碼組織合做誕生的標準。

二、音頻編碼方式

音頻編碼的做用: 將音頻採樣數據(PCM 等)壓縮成音頻碼流,從而下降音頻的數據量。 經常使用的音頻編碼方式有如下幾種:

名稱 推出機構 推出時間 目前使用領域
AAC MPEG 1997 各個領域(新)
MP3 MPEG 1993 各個領域(舊)
WMV Microsoft Inc. 1999 微軟平臺
AC-3 Dolby Inc. 1992 電影

(1)MP3

MP3,英文全稱 MPEG-1 or MPEG-2 Audio Layer III,是曾經很是流行的一種數字音頻編碼和有損壓縮格式,它被設計來大幅下降音頻數據量。它是在 1991 年,由位於德國埃爾朗根的研究組織 Fraunhofer-Gesellschaft 的一組工程師發明和標準化的。MP3 的普及,曾對音樂產業形成極大的衝擊與影響。

(2)AAC

AAC,英文全稱 Advanced Audio Coding,是由 Fraunhofer IIS、杜比實驗室、AT&TSony 等公司共同開發,在 1997 年推出的基於 MPEG-2 的音頻編碼技術。2000 年,MPEG-4 標準出現後,AAC 從新集成了其特性,加入了 SBR 技術和 PS 技術,爲了區別於傳統的 MPEG-2 AAC 又稱爲 MPEG-4 AACAACMP3 有更高的壓縮比,一樣大小的音頻文件,AAC 的音質更高。

(3)WMA

WMA,英文全稱 Windows Media Audio,由微軟公司開發的一種數字音頻壓縮格式,自己包括有損和無損壓縮格式。

4、 視頻像素數據

一、視頻像素數據簡介

  • 視頻像素數據做用: 保存了屏幕上每一個像素點的像素值。
  • 格式: 常見的像素格式有 RGB24,RGB32,YUV420P,YUV422P,YUV444P 等。壓縮編碼中通常使用的是 YUV 格式的像素數據,最多見的格式爲 YUV420P
  • 特色:視頻像素數據體積很大,一個 1 小時電影的RGB24格式的數據體積爲: 3600 * 25 * 1920 * 1080 * 3 = 559.872GBytePS:這裏嘉定頻率爲 25Hz,取樣精度 8bit

二、顏色模型

(1)RGB 顏色編碼

4624551-cd5ce515e4596c75.png

咱們開發場景中使用最多的應該是 RGB 模型,R、G、B 分別表明了紅、綠、藍,這三種顏色稱爲三原色,將它們以不一樣的比例相加,能夠產生任何顏色。

RGB 圖像中,每一個像素點都有紅、綠、藍三個原色,其中每種原色都佔用 8 bit,也就是一個字節,那麼一個像素點也就佔用 24 bit,也就是三個字節。 那麼一張 1280 * 720 大小的圖片,就佔用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存儲空間。有沒有更高效的顏色模型可以用更少的 bit 來表示顏色呢?那就是 YUV 顏色編碼

(2)YUV (YCbCr)顏色編碼

相關實驗代表,人眼對亮度敏感而對色度不敏感。於是能夠將亮度信息和色度信息分離,並對色度信息採用更「狠」一點的壓縮方案,從而提升壓縮效率。

YUV 顏色編碼採用的是 明亮度 Y色度 UV 來指定像素的顏色。 「Y」表示明亮度(LuminanceLuma),也就是灰階值。 「U」「V」 表示的則是色度(ChrominanceChroma),做用是描述影像色調和飽和度。

RGB 表示圖像相似,每一個像素點都包含 Y、U、V 份量。可是它的 YUV 份量是可分離的,沒有 UV 份量同樣能夠顯示完整的圖像,可是是黑白的。

  • YCbCr 顏色空間是 YUV 的國際標準化變種,在數字電視和圖像壓縮(好比JPEG)方面都有應用。 YCbCr 實際上是 YUV 通過縮放和偏移的翻版。其中 YYUV 中的 Y 含義一致, CbCr 一樣都指色彩, 只是在表示方法上不一樣而已。在 YUV 家族中, YCbCr 是在計算機系統中應用最多的成員,其應用領域很普遍,JPEGMPEG 均採用此格式。通常人們所講的 YUV 大可能是指YCbCr。 **Cb:**反映的是 RGB 輸入信號藍色部分與 RGB 信號亮度值之間的差別。 **Cr:**反映了 RGB 輸入信號紅色部分與 RGB 信號亮度值之間的差別。
    YCbCr.png
  • RGB 轉換爲 Ycbcr 公式
Y = 0.257*R+0.564*G+0.098*B+16
Cb = -0.148*R-0.291*G+0.439*B+128
Cr = 0.439*R-0.368*G-0.071*B+128
複製代碼
  • Ycbcr 轉換爲 RGB 公式
R = 1.164*(Y-16)+1.596*(Cr-128)
G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B = 1.164*(Y-16)+2.017*(Cb-128)
複製代碼

(3)YUV 採樣格式

爲節省帶寬,大多數 YUV 格式平均使用的每像素位數都少於24位。主要的抽樣(subsample)格式有 YCbCr4:2:0、YCbCr4:2:二、YCbCr4:1:1YCbCr4:4:4

YUV像素.png

  • 4:2:0 4:2:0 是目前用的畢竟普遍的一種採樣格式。4:2:0 表示 2:1 的水平取樣,垂直 2:1 採樣。比 RGB 小了二分之一。咱們以4:2:0 爲例詳細看一下這種採樣格式。

    YUV420.png
    從上圖中能夠看 YUV4:2:0 先存儲個整張圖像的 Y 信息,而後存儲 U 信息,最後存儲 V 信息。但存儲的比例是不一樣的,能夠看出是每存儲兩行 Y,纔會存儲半行 U 和半行 V
    YUV4-2-0.png

  • 4:4:4 4:4:4 表示徹底取樣。和 RGB 大小同樣。

    YUV4-4-4.png

  • 4:2:2 表示 2:1 的水平取樣,垂直徹底採樣。比 RGB 小了三分之一。

    YUV4-2-2.png

以上的總結參考了並部分摘抄瞭如下文章,很是感謝如下做者的分享!:

一、雷霄驊的視頻課《基於FFmpeg+SDL的視頻播放器的製做-第1節-大綱和視音頻基礎知識》(PS:致敬音視頻大神雷神雷曉華先生,謝謝你生前爲咱們留下來的無私分享成果)

二、音視頻直播技術專家的《H264基本原理》

三、TIM鄧肯的《RGB與YCbCr》

四、取次花叢懶回顧的《【H.264/AVC視頻編解碼技術詳解】二十3、幀間預測編碼(1):幀間預測編碼的基本原理》

轉載請備註原文出處,不得用於商業傳播——凡幾多

相關文章
相關標籤/搜索