小白如何入門視頻編解碼領(lǐng)域

近年來,隨著抖音、快手等短視頻企業(yè)極速發(fā)展,人們的業(yè)余娛樂生活被逐漸地改變,記得我上大學(xué)的那個(gè)時(shí)候,人人網(wǎng)正在迅速地占領(lǐng)校園,每天早上醒來地第一件事情就是打開 QQ 空間,看有沒有人來踩踩自己的空間,有沒有人來偷自己農(nóng)場(chǎng)的菜,打開新浪微博發(fā)一條心情,刷一刷有哪些關(guān)注的人更新了狀態(tài)。

不過,這樣的日子已經(jīng)很難看到了,QQ 空間已經(jīng)很久沒有打開過了,私密相冊(cè)的密碼甚至都已經(jīng)忘記了,新浪微博也許久沒有刷過了,以前寫的博客也不更新了,取而代之的是,手機(jī)上多了抖音、西瓜視頻、快手、小紅書、愛奇藝等這些軟件,早上起床先打開朋友圈看看動(dòng)態(tài),看到有意思的動(dòng)態(tài)就點(diǎn)個(gè)贊,抖音上看到有價(jià)值的,有意思的視頻就點(diǎn)個(gè)小紅心,快手上看看別人剪輯的電視劇,雙 11 的時(shí)候一次性充了 5 年的愛奇藝會(huì)員。

我們的生活,已經(jīng)從文字,轉(zhuǎn)換到了音視頻。音視頻 = 音頻 + 視頻,本文主要談?wù)勔曨l,閱讀此文的大部分朋友應(yīng)該是想入行視頻行業(yè),為了讓大家都能對(duì)視頻有一個(gè)最基礎(chǔ)的了解,我列舉了幾個(gè)基本的概念,這是我們開始學(xué)習(xí)視頻編解碼之前必須要掌握的。

基本概念

我們可以將一幀理解為一張圖片,我們?nèi)粘?吹囊曨l都是由一幀一幀組成的,研究表明,當(dāng)以超過每秒 24 幀的速度播放時(shí),人眼就會(huì)覺得圖片之間是連續(xù)的,這里由一個(gè)概念,叫做“視覺暫留”,是指光信號(hào)傳入大腦神經(jīng)后,需要暫留一段時(shí)間,光的作用結(jié)束后,并不會(huì)立即結(jié)束,這一現(xiàn)象叫做視覺暫留。所以當(dāng)前一幀在眼前播放后,視覺暫留效應(yīng)消失之前下一幀就已經(jīng)到來,所以人們感覺到一張張圖片是連續(xù)地,這就形成了視頻。

像素

一幀是由一個(gè)個(gè)像素組成的,我們平常所說的高清(HD)視頻,是指 1280x720 視頻,1280 的意思是圖像的橫向(Width)由 1280 個(gè)像素組成,720 的意思為縱向(Height)由 720 個(gè)像素組成。

一張圖像當(dāng)最大程度地放大以后得到的效果如下圖(使用 Photoshop 可以實(shí)現(xiàn)):

像素的表示

幀率

幀率英文是 Frame Rate,就是每秒播放的幀數(shù),當(dāng)幀率超過 24 幀每秒的時(shí)候,大部分的人就覺得圖片是連續(xù)的了,描述幀率我們一般使用 fps(Frame per second 每秒幀數(shù)),結(jié)合我現(xiàn)在的工作,我們需要把編碼器移植到特定平臺(tái)上,甲方的 “能正常播放” 的要求是指幀率至少達(dá)到 24fps,但是如果是 PC 平臺(tái)的話,至少要 30fps 才是我們能接受的幀率,嵌入式平臺(tái)的話要求稍許低一點(diǎn)。

碼率

碼率的英文是 Bit Rate,就是每秒播放比特的數(shù)目,雖然碼率控制(Rate Control)不屬于視頻編解碼的標(biāo)準(zhǔn),但是在實(shí)際應(yīng)用中是非常重要的,要考慮到網(wǎng)絡(luò)的傳輸帶寬狀況,還要考慮到解碼器的解碼性能,解碼器的緩沖大小等等,并不是越大越好,碼率要根據(jù)種種條件合理調(diào)控來滿足實(shí)際應(yīng)用的需求。

YUV 與 RGB

說到這個(gè)概念,我們就得談到顏色空間(也有稱色彩空間的,英文是 Color Space)這個(gè)概念。一張圖片,如果說僅僅只用黑或者白(明或者暗)來表示,也就是說只有一個(gè)通道(channel),那么這樣在我們?nèi)搜劭磥砭褪呛诎讏D片(視頻),如果基于三基色原理表示彩色圖像,那么就會(huì)我們看到的圖像(視頻)就是由 R(red)G(Green)B(Blue)三種通道(channel)組成。

人眼對(duì)這三種光的感知的波譜分析可以參照《數(shù)字圖像處理》的相關(guān)章節(jié)。

在 RGB 顏色空間里,RGB 三個(gè)通道是同等重要的,意思就是如果希望人眼看起來不失真,三個(gè)色彩都必須正確地表示才行,然而人眼對(duì)色度的感知與對(duì)亮度的感知度是不同的,也就是說如果我們可以將亮度與色度進(jìn)行分開表示的話,那么我們?nèi)搜鄄幻舾械纳确矫嫖覀兙涂梢赃M(jìn)行壓縮來節(jié)省存儲(chǔ)或者傳輸所需要的空間了,這也就是 YUV 顏色空間產(chǎn)生的原因了。具體 YUV 顏色空間與 RGB 顏色空間的轉(zhuǎn)換我會(huì)在后續(xù)的文章中詳細(xì)敘述。

上面簡(jiǎn)單地說了幾個(gè)概念,其實(shí)這些概念大部分還是數(shù)字圖像處理的基礎(chǔ)內(nèi)容,所以作為視頻編解碼工程師,手邊一定還是得有一本數(shù)字圖像處理的書籍的。除了上述的概念,還有很多其他的,比如逐行掃描和隔行掃描,視頻 444、422、420 格式,視頻編解碼質(zhì)量評(píng)估標(biāo)準(zhǔn),空域?yàn)V波、頻域?yàn)V波等等,鑒于這是個(gè)入門行業(yè)的文章,就不在這里深入了,這些大家可以關(guān)注我以后的 文章。

視頻編解碼的前世今生與標(biāo)準(zhǔn)化流程

在說標(biāo)準(zhǔn)化流程之前,我們先說說什么是標(biāo)準(zhǔn)。說得白話點(diǎn),標(biāo)準(zhǔn)其實(shí)就是一本書,書中規(guī)定了碼流(比特流)的結(jié)構(gòu)和把比特流還原到我們可以觀看的視頻(解碼)的方法。從這句話中可以得出這么些個(gè)結(jié)論:

  1. 標(biāo)準(zhǔn)規(guī)定的是解碼的方法,并不是編碼的方法。
  2. 標(biāo)準(zhǔn)規(guī)定了編碼器的輸出,無論編碼器使用什么算法,輸出必須是滿足標(biāo)準(zhǔn)所規(guī)定的規(guī)范

在了解了標(biāo)準(zhǔn)是什么之后,我們來看一張圖,這種圖是從 1984 年開始,Video Codec 的發(fā)展時(shí)間線路圖。

在這里插入圖片描述

我們一步步地來看懂上圖,首先,先介紹了兩個(gè)組織。

ITU-T

全稱為 Telecommunication Standardization Sector of the International Telecommunications Union,譯為國(guó)際電信聯(lián)盟之電信標(biāo)準(zhǔn)化部門。國(guó)際電信聯(lián)盟下屬有很多個(gè)分支,其中 ITU-T 是其中的一個(gè)分支,專門制定電信標(biāo)準(zhǔn)。這個(gè)組織指定的標(biāo)準(zhǔn)主要面向?qū)崟r(shí)視頻通信領(lǐng)域,比如像視頻電話,視頻會(huì)議等應(yīng)用。

H26x 家族:

  • H.261:主要針對(duì) ISDN 上的視頻會(huì)議。
  • H.263:低碼率但更高質(zhì)量的視頻會(huì)議,支持更多分辨率。
  • H.264:主要針對(duì)網(wǎng)絡(luò)流媒體視頻、移動(dòng)端視頻,支持高清電視(HDTV)。

MPEG

全稱為 Moving Picture Experts Group,譯為運(yùn)動(dòng)圖像專家組。這也是個(gè)標(biāo)準(zhǔn)化組織,隸屬于 ISO(International Standardization Organization 國(guó)際標(biāo)準(zhǔn)化組織)與 IEC(International Electrotechnical Commission,國(guó)際電工委員會(huì))共同成立的一個(gè)專門針對(duì)運(yùn)動(dòng)圖像和語音壓縮方向的一個(gè)組織。這個(gè)組織所指定的標(biāo)準(zhǔn)主要應(yīng)用于存儲(chǔ)、廣播電視、因特網(wǎng)或者無線網(wǎng)上的多媒體。

MPEG 家族:

  • MPEG-1:主要面對(duì)的是數(shù)字媒體動(dòng)態(tài)圖像的存儲(chǔ)與檢索,如 VCD。
  • MPEG-2:主要面對(duì)數(shù)字電視,它既能支持隔行掃描,又支持逐行掃描,支持高清 TV、支持 420、422 格式等。
  • MPEG-4:它是 MPEG-2 的延續(xù),更注重體驗(yàn),提供多種 profile,支持移動(dòng)平臺(tái)多媒體低碼率播放等功能。

從 MPEG-2 開始,ITU-T 與 MPEG-2 兩個(gè)組織就開始聯(lián)手組成專家團(tuán)隊(duì)(其實(shí)兩家關(guān)系并不怎么和諧)來共同研發(fā)標(biāo)準(zhǔn),在 MPEG/H264 研發(fā)的時(shí)候,兩家聯(lián)手形成 JVT(Joint Video Team)來進(jìn)行研發(fā)。對(duì)于 H.264,我們應(yīng)該知道下面幾個(gè)網(wǎng)站:

  • https://h264.hhi.fraunhofer.de/ 在這個(gè)網(wǎng)站里管理了標(biāo)準(zhǔn)委員會(huì)關(guān)于 H.264 絕大部分的資料,這個(gè)網(wǎng)站必須知道?。。∠旅媸俏覐倪@個(gè)網(wǎng)站中節(jié)選出的三個(gè)鏈接,非常重要。
  • https://www.itu.int/wftp3/av-arch/jvt-site/ 這是 JVT 的 Documents 存放的目錄,每次標(biāo)準(zhǔn)化會(huì)議開會(huì)都會(huì)持續(xù)一到兩周,每天都會(huì)有人對(duì)當(dāng)天的提案進(jìn)行整理,對(duì)文檔進(jìn)行更新,這里存放的就是每次會(huì)議每天更新的文檔。
  • https://www.itu.int/rec/T-REC-H.264 這個(gè)網(wǎng)站是 H.264 標(biāo)準(zhǔn)文檔的發(fā)表網(wǎng)站,大家應(yīng)該知道一點(diǎn),一個(gè)標(biāo)準(zhǔn)發(fā)布了并不是代表這個(gè)標(biāo)準(zhǔn)就完成了,它會(huì)在往后的 10 幾年的時(shí)候內(nèi)持續(xù)更新,包括一個(gè)附加功能的增加(如 SVC,MVC 等),某些參數(shù)的修改等等。這個(gè)網(wǎng)站上我目前看到的最新的 H.264 的版本是 2019 年 6 月份版本。
  • https://vcgit.hhi.fraunhofer.de/jct-vc/JM JM 參考軟件的下載地址(以前都是使用 SVN 來進(jìn)行代碼管理,所有的分支與歷史記錄都轉(zhuǎn)移到了 Gitlab 下了,我想應(yīng)該是官方也覺得 SVN 不方便才現(xiàn)在換成了 Gitlab 吧)這里管理的是 H.264 的官方參考軟件(Reference Software)的倉庫,這也是做視頻編解碼的工程師必研究的源碼。

同樣,兩個(gè)組織在 2010 年組成 JVT-VC 組織,共同開發(fā)的 HEVC 也有它對(duì)應(yīng)的網(wǎng)站 https://hevc.hhi.fraunhofer.de/ 同樣,在這個(gè)網(wǎng)站里,大家也要去尋找到其文檔、其代碼,去閱讀,去調(diào)試,去了解其中的細(xì)節(jié)。

HEVC Spec Cover

這里只列出來了 H26x 線與 MPEG 線,除此之外還有谷歌的 VP6、VP8、VP9,AOM 的 AV1,當(dāng)然,我們國(guó)內(nèi)也有 AVS(Audio Video coding Standard)工作組,主要負(fù)責(zé)國(guó)內(nèi)多媒體工業(yè)界制定相應(yīng)的數(shù)字音視頻編碼標(biāo)準(zhǔn)?,F(xiàn)在也有了 AVS1 和 AVS2 的標(biāo)準(zhǔn)。

下面我們看看標(biāo)準(zhǔn)化的過程,從上面我們知道,h26x 線與 MPEG-x 線分別由兩個(gè)標(biāo)準(zhǔn)化組織來指定,既然組織不同,那指定規(guī)范的流程肯定也會(huì)有所不同,這里以 HEVC 為例,其由 ISO/IEC 和 ITU-T 共同形成 JCT-VC 組織,通過下列的流程制定標(biāo)準(zhǔn)。

JCT-VC standard procedure

上圖中幾個(gè)術(shù)語我先解釋一下:

  • CT,它是 Collaborative Team 的縮寫,表示兩個(gè)組織的聯(lián)合團(tuán)隊(duì)。
  • CD Ballot,它是 Committee Draft 的縮寫,表示委員會(huì)草案投票。
  • WP,它是 Working Party 的縮寫,這是 ITU-T 那邊的工作小組的稱呼。
  • SG,它是 Study Group 的縮寫,這是 ISO/IEC 那邊的工作小組的稱呼。
  • SC,它是 Sub-Committee 的縮寫,負(fù)責(zé)管轄多個(gè) WG。
  • DIS,它是 Draft International Standard 的縮寫,這是國(guó)際標(biāo)準(zhǔn)草案了。
  • FDIS,它是 Final DIS 的縮寫,這是國(guó)際標(biāo)準(zhǔn)最終草案。
  • AAP,它是 Alternative Approval Process 的縮寫,選擇性審批流程,這個(gè)不是必須的流程。
還有 54% 的精彩內(nèi)容
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
支付 ¥9.99 繼續(xù)閱讀

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容