音視頻開發基礎知識

音視頻入門前,需要了解下一些基礎概念,不必死記硬背,可之后再補再翻閱。

一. 顏色模式

RGB

RGB顏色模型的主要目的是在電子系統中檢測,表示和顯示圖像,比如電視和計算機,但是在傳統攝影中也有應用。

RGB

基礎的部分不過多描述,更多內容點擊標題見維基百科。

YUV

Y'UV的發明是由于彩色電視與黑白電視的過渡時期。黑白視頻只有Y(Luma,Luminance)視頻,也就是灰階值。到了彩色電視規格的制定,是以YUV/YIQ的格式來處理彩色電視圖像,把UV視作表示彩度的C(Chrominance或Chroma),如果忽略C信號,那么剩下的Y(Luma)信號就跟之前的黑白電視頻號相同,這樣一來便解決彩色電視機與黑白電視機的兼容問題。Y'UV最大的優點在于只需占用極少的帶寬,因為人眼對亮度敏感,對色度不敏感,因此減少部分UV的數據量,但人眼感知不到。

YUV也稱為YCbCr,對于每個分量如下:

  • Y:Luminance, 亮度,也就是灰度值。除了表示亮度信號外,還含有較多的綠色通道量。
  • U:Cb,藍色通道與亮度的差值。
  • V:Cr,紅色通道與亮度的差值。

如下圖,可以看到3個分量的效果差值。

YUV示例圖

RGB與YUV轉換公式 (RGB取值范圍均為0~255)

  • Y=0.299R+0.587G+0.114B ? R=Y+1.14V
  • U=-0.147R-0.289G+0.436B ? G=Y-0.39U-0.58V
  • V=0.615R-0.515G-0.100B ? B=Y+2.03U

HSV

  • 色調H: 用角度度量,取值范圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;
  • 飽和度S: 飽和度S表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結果。其中光譜色所占的比例愈大,顏色接近光譜色的程度就愈高,顏色的飽和度也就愈高。飽和度高,顏色則深而艷。光譜色的白光成分為0,飽和度達到最高。通常取值范圍為0%~100%,值越大,顏色越飽和。
  • 明度V: 明度表示顏色明亮的程度,對于光源色,明度值與發光體的光亮度有關;對于物體色,此值和物體的透射比或反射比有關。通常取值范圍為0%(黑)到100%(白)。
    hsv_1.png
hsv_2.png

RGB和CMY顏色模型都是面向硬件的,而HSV(Hue Saturation Value)顏色模型是面向用戶的。
HSV模型的三維表示從RGB立方體演化而來。設想從RGB沿立方體對角線的白色頂點向黑色頂點觀察,就可以看到立方體的六邊形外形。六邊形邊界表示色彩,水平軸表示純度,明度沿垂直軸測量。

HSV在做顏色檢測方面比較常用,可以參考文章HSV顏色檢測


二. 視頻基礎概念

幀(Frame)

簡單的理解幀就是為視頻或者動畫中的每一張畫面,而視頻和動畫特效就是由無數張畫面組合而成,每一張畫面都是一幀。

幀數(Frames)

幀數其實就是為幀生成數量的簡稱,可以解釋為靜止畫面的數量

幀率(Frame Rate)

幀率(Frame rate) = 幀數(Frames)/時間(Time),單位為幀每秒(f/s, frames per second, fps)。

刷新率

屏幕每秒畫面被刷新的次數,分為垂直刷新率和水平刷新率,一般我們提到的都是指垂直刷新率,以赫茲(Hz)為單位,刷新率越高,圖像就越穩定,圖像顯示就越自然清晰。

目前, 大多數顯示器根據其設定按 30Hz、 60Hz、 120Hz 或者 144Hz 的頻率進行刷新。 而其中最常見的刷新頻率是 60 Hz。 這樣做是為了繼承以前電視機刷新頻率為 60Hz 的設定。

幀率關鍵值
  • 10~12 FPS:由于人類眼睛的特殊生理結構,如果所看畫面之幀率高于每秒約10至12幀的時候,就會認為是連貫的,此現象稱之為視覺暫留。
  • 24 FPS:一般電影的拍攝及播放幀數是每秒24幀。
  • 60 FPS:這個幀率對人眼識別來說已經具備較高的平滑度。
  • 85 FPS:人類大腦處理視頻的極限,人眼無法分辨更高頻率的差異。
60FPS

在做頁面性能優化時,常用60FPS作為一個基準,所以需要盡量讓每一幀的渲染控制在16ms內,這樣才能達到一秒60幀的流暢度。

分辨率

視頻、圖片的畫面大小或尺寸。

碼率/比特率

單位時間播放連續的媒體如壓縮后的音頻或視頻的比特數量。常用單位“比特每秒”,縮寫是“bit/s”。比特率越高,帶寬消耗得越多。


三. CPU & GPU

CPU:中央處理器(英文全名:Central Processing Unit),包括運算器(算術邏輯運算單元,ALU,Arithmetic Logic Unit)和高速緩沖存儲器(Cache)及實現它們之間聯系的數據(Data)、控制及狀態的總線(Bus)。

GPU:圖形處理器(英語全名:Graphics Processing Unit),專為執行復雜的數學和幾何計算而設計的,擁有2D或3D圖形加速功能。

GPU相比于CPU,更強大的2D、3D圖形計算能力,可以讓CPU從圖形處理的任務中解放出來,執行其他更多的系統任務,這樣可以大大提高計算機的整體性能。

硬件加速

硬件加速(Hardware acceleration)就是利用硬件模塊來替代軟件算法以充分利用硬件所固有的快速特性。硬件加速通常比軟件算法的效率要高。

將2D、3D圖形計算相關工作交給GPU處理,從而釋放CPU的壓力,也是屬于硬件加速的一種。

硬解和軟解

硬解和上面的硬件加速對應,即使用硬件模塊來解析視頻、音頻文件等,而軟解即是用CPU去計算解析。


四. 視頻封裝格式(Container format)

格式 全名 開發商 初版年限 特點
MP4 MP4 Moving Picture Experts Group,即 MPEG(動態圖像專家組) 1998 常用有損壓縮格式,通用性強
AVI Audio Video Interleaved(音頻視頻交錯格式) 微軟 1992 體積大算法簡單
MOV QuickTime 影片格式 Apple 1991 蘋果專屬格式對很多其他的播放器支持不是很友好
WMV Windows Media Video 微軟 2003 微軟的專業視頻格式,兼容性并不是很好
FLV Adobe Flash 網絡流媒體格式 Adobe 2002 被淘汰的早期網絡視頻格式
MKV Matroska 多媒體容器 Matroska.org 2002 最有包容性的視頻格式,能容納無限量、多種不同類型編碼的視頻、音頻及字幕流
WebM WebM Google 2010 谷歌推出的 HTML5 標準的網絡視頻標準,以MKV容器格式為基礎開發
RMVB RMVB Real Networks 1997 根據不同的網絡傳輸速率,而制定出不同的壓縮比率,從而實現在低速率的網絡上進行影像數據實時傳送和播放,具有體積小,畫質不錯的優點。已過時。

更多參考 維基百科視頻文件格式


五. 視頻編碼格式(Codec)

1. MPEG:(Moving Picture Experts Group, ISO旗下的組織)

MPEG是Moving Picture Experts Group的簡稱。這個名字本來的含義是指一個研究視頻和音頻編碼標準的“動態圖像專家組”組織,成立于1988年,致力開發視頻、音頻的壓縮編碼技術。

版本 用途
MPEG - 1 VCD
MPEG - 2 DVD、數字有線電視信號
MPEG - 4(第二部分) 視頻電話、網絡傳輸、廣播和媒體存儲

2. H.26X : ITU-T VCEG(Visual Coding Experts Group,國際電聯旗下的標準化組織)制定

版本 用于
H.261 老的視頻會議和視頻電話產品
H.262 DVD、數字有線電視信號(與MPEG共同制定,與MPEG-2完全一致)
H.263 視頻會議、視頻電話和網絡視頻
H.264 高精度視頻的錄制、壓縮和發布格式(與MPEG-4第十部分完全一致),當前主流
H.265 H.264的兩倍之壓縮率,可支持4K分辨率甚至到超高畫質電視,最高分辨率可達到8192×4320(8K分辨率)

3. H.264

當前主流的編碼格式是H.264,這是由ITU-T VCEG和MPEG共同制定的標準,MPEG - 4第十部分內容也是H.264。

視頻封裝格式 & 視頻編碼格式

封裝格式是提供了一個容器,用于存放視頻、音頻以及其他配置信息,而編碼格式是指對視頻畫面內容進行壓縮的一種標準。


六. 音頻格式

  • WAV:因其文件擴展名為wav,微軟和IBM聯合開發的標準,數據本身的格式為PCM或壓縮型,屬于無損格式。
  • MP3 : MP3是一種音頻壓縮技術,其全稱是動態影像專家壓縮標準音頻層面3(Moving Picture Experts Group Audio Layer III),簡稱為MP3。壓縮比4:1~10:1之間。
  • AAC:Advanced Audio Coding, 出現于1997年,由Fraunhofer IIS、杜比實驗室、AT&T、Sony、Nokia等公司共同開發。AAC壓縮比通常為18:1。相比MP3,采用更高效的編碼算法,音質更佳,文件更小。
  • Opus:Opus格式是一個開放格式,使用上沒有任何專利或限制,比MP3、AAC、HE-AAC等常見格式,有更低的延遲和更好的聲音壓縮率。2012年7月2日,Opus被IETF批準用于標準化。

七. H.264編碼介紹

IPB幀

  • I幀:幀內編碼幀(intra picture),采用幀內壓縮去掉空間冗余信息。
  • P幀:前向預測編碼幀(predictive-frame),通過將圖像序列中前面已經編碼幀的時間冗余信息來壓縮傳輸數據量的編碼圖像。參考前面的I幀或者P幀。
  • B幀:雙向預測內插編碼幀(bi-directional interpolated prediction frame),既考慮源圖像序列前面的已編碼幀,又顧及源圖像序列后面的已編碼幀之間的冗余信息,來壓縮傳輸數據量的編碼圖像,也稱為雙向編碼幀。參考前面一個的I幀或者P幀及其后面的一個P幀。

PTS和DTS

  • DTS(Decoding Time Stamp)是標識讀入內存中bit流在什么時候開始送入解碼器中進行解碼。也就是解碼順序的時間戳。
  • PTS(Presentation Time Stamp)用于度量解碼后的視頻幀什么時候被顯示出來。在沒有B幀的情況下,DTS和PTS的輸出順序是一樣的,一旦存在B幀,PTS和DTS則會不同。也就是顯示順序的時間戳。

GOP

即Group of picture(圖像組),指兩個I幀之間的距離,Reference(參考周期)指兩個P幀之間的距離。

一個I幀所占用的字節數大于一個P幀,一個P幀所占用的字節數大于一個B幀。所以在碼率不變的前提下,GOP值越大,P、B幀的數量會越多,平均每個I、P、B幀所占用的字節數就越多,也就更容易獲取較好的圖像質量;Reference越大,B幀的數量越多,同理也更容易獲得較好的圖像質量。

簡而言之:

  • 字節大小:I > P > B
  • 解碼順序:I -> P -> B
GOP解碼案例

八. 參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373