雷特小課堂 | 視頻編碼的秘密
視頻編碼是什么
? ? ? ? 視頻編碼作為動(dòng)詞指的是將動(dòng)態(tài)的圖像信息轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)的過(guò)程,就是指通過(guò)特定的壓縮技術(shù),將某個(gè)視頻文件轉(zhuǎn)換成另一種視頻格式文件的方式。簡(jiǎn)單來(lái)講就是將記錄的素材進(jìn)行整理打包,這樣做的目的是為應(yīng)用程序和硬件提高兼容性和效率。

? ? ? ? 視頻編碼的存在是因?yàn)槎嗝襟w聲音、數(shù)據(jù)、影像等源數(shù)據(jù)具有極強(qiáng)的相關(guān)性,也就是說(shuō)有大量的冗余信息,所以這就導(dǎo)致源數(shù)據(jù)的體積非常大,所以在網(wǎng)絡(luò)上傳播,傳輸,編輯渲染就會(huì)非常的吃力,單純的擴(kuò)大儲(chǔ)存器容量、增加通信傳輸速率等辦法是不現(xiàn)實(shí)的。所以,視頻編碼便應(yīng)運(yùn)而生,視頻編碼可以將龐大數(shù)據(jù)中的冗余信息去掉(去除數(shù)據(jù)之間的相關(guān)性),保留相互獨(dú)立的信息分量,因此,就會(huì)極大的壓縮源數(shù)據(jù)的體積,以方便后期編輯處理。

? ? ? ? 有編碼就有解碼,視頻解碼是對(duì)已編碼的數(shù)字視頻進(jìn)行還原解碼操作的程序(視頻播放器)或設(shè)備。通俗的來(lái)講就是將已經(jīng)編碼的視頻文件通過(guò)解碼還原為計(jì)算機(jī)識(shí)別的數(shù)據(jù),進(jìn)行播放或者修改。

軟件解碼器
? ? ? ? 解碼分為軟件解碼與硬件解碼,電腦中所安裝的通常是軟件解碼器,即通過(guò)軟件方法解出音頻視頻數(shù)據(jù).與之相對(duì)應(yīng)的是硬件解碼器,生活中常見(jiàn)的有DVD和vcd機(jī)。通常情況下,電腦所要播放某種格式視頻,即需要支持該視頻編碼的解碼器。常見(jiàn)的軟件解碼器有 RM/RMVB Real Media解碼器MOV /Quick Time解碼器 3GP/MP4解碼器 DVD/VOB解碼器 Divx解碼器 xvid解碼器 WMV解碼器等。


硬件解碼器
? ? ? ? 因?yàn)檐浖獯a是通過(guò)軟件本身占用的CPU進(jìn)行解碼,由于目前視頻的分辨率比較高,這樣會(huì)導(dǎo)致要求視頻碼率非常高,再加上目前軟件編碼壓縮率非常高,所以解碼運(yùn)算量非常大,所以會(huì)極大的消耗CPU的運(yùn)算能力。而硬件解碼器是一款硬件設(shè)備,是一種輸入模擬視頻信號(hào)并將它轉(zhuǎn)換為數(shù)字信號(hào)格式,以進(jìn)一步壓縮和傳輸?shù)挠布O(shè)備。就是通過(guò)顯卡的視頻加速功能對(duì)高清視頻進(jìn)行解碼,顯卡的GPU/VPU要比CPU更適合這類大數(shù)據(jù)量的、低難度的重復(fù)工作。因此視頻硬件解碼器能夠?qū)PU從繁重的視頻解碼運(yùn)算中釋放出來(lái),使電腦具備流暢播放高清視頻的能力。

視頻編解碼的現(xiàn)狀
? ? ? ? 目前,主流的視頻編碼器分為3個(gè)系列:H.26系列(H.264,H.265),VP系列(VP8,VP9),AVS系列(AVS1.0,AVS2.0)。
? ? ? ? H.264 是目前公認(rèn)的效率最高的的視頻編碼。它是由國(guó)際電信聯(lián)盟通電信標(biāo)準(zhǔn)部 (ITU-T) 和國(guó)際標(biāo)準(zhǔn)化組織/國(guó)際電工委員會(huì)動(dòng)態(tài)圖像專家組 (ISO/IEC MPEG) 共同開(kāi)發(fā)的一種視頻壓縮技術(shù)。它的另外一個(gè)名稱是 MPEG-4 AVC。目前 H.264 被廣泛的運(yùn)用在藍(lán)光電影、數(shù)字電視、衛(wèi)星電視、網(wǎng)絡(luò)媒體等領(lǐng)域??梢哉f(shuō) H.264 是目前被運(yùn)用得最為廣泛的視頻編碼。

? ? ? ? VP8,視頻圖像編解碼器,是WebRTC視頻引擎的默認(rèn)的編解碼器。適合實(shí)時(shí)通信應(yīng)用場(chǎng)景,因?yàn)樗饕轻槍?duì)低延時(shí)而設(shè)計(jì)的編解碼器。VP8 是類似于 H.264 的另一種視頻編碼,由 On2 公司開(kāi)發(fā)。后來(lái) Google 收購(gòu)了 On2,因此 VP8 現(xiàn)在歸 Google 所有。因?yàn)閷@麊?wèn)題,VP8 沒(méi)有采用一些特別的算法,使得其壓縮效率效率略低于 H.264。
? ? ? ? VP8和H.264是十幾年前發(fā)明的標(biāo)準(zhǔn),屬于同一代技術(shù)。這兩個(gè)標(biāo)準(zhǔn)處于發(fā)展成熟的階段,編碼效率、運(yùn)算復(fù)雜度和功耗上都達(dá)到了比較好的均衡。技術(shù)和應(yīng)用程度上,二者也略有區(qū)別,比如,硬件廠商對(duì)H.264的支持較廣泛,而對(duì)VP8的支持就比較有限。

? ? ? ? VP9,開(kāi)發(fā)始于2011年,是由 Google 開(kāi)發(fā)的開(kāi)放式、無(wú)版權(quán)費(fèi)的視頻編碼標(biāo)準(zhǔn),在開(kāi)發(fā)初期曾經(jīng)被命名為 Next Gen Open Video,VP9 也被視為是 VP8 的下一代視頻編碼標(biāo)準(zhǔn)。VP9的目標(biāo)之一是在保證相同質(zhì)量的情況下相對(duì)于VP8可以減少50%左右的碼率,換句話說(shuō),相同的碼率,VP9能比VP8畫(huà)質(zhì)有非常明顯的提高。

? ? ? ? H.265 在 H.264 的基礎(chǔ)上保留其中的部分技術(shù),并對(duì)相關(guān)技術(shù)加以改進(jìn)研發(fā)而成。新技術(shù)主要通過(guò)提升壓縮效率、魯棒性,提高錯(cuò)誤恢復(fù)能力,減少實(shí)時(shí)時(shí)延、減少信道獲取時(shí)間等方面,讓視頻編碼達(dá)到效率更高。同時(shí) H.265 可以實(shí)現(xiàn)利用 1~2Mbps 傳輸速度傳送 720P 普通高清音視頻。

? ? ? ? VP9和H.265,是最近5年制定的標(biāo)準(zhǔn),是當(dāng)前已經(jīng)完成標(biāo)準(zhǔn)中壓縮效率最高的。同樣的,H.265是國(guó)際標(biāo)準(zhǔn),VP9是Google目前主推的標(biāo)準(zhǔn)。就目前而言,H.265 在商業(yè)應(yīng)用中更加廣泛,多使用于安防、軍政、企業(yè)等場(chǎng)景中,但由于其專利持有者過(guò)多,導(dǎo)致其商用費(fèi)用過(guò)高,在推廣中面臨較大阻力。而 VP9 因其簡(jiǎn)易、實(shí)用的解決方案以及開(kāi)發(fā)免費(fèi)的特性在互聯(lián)網(wǎng)應(yīng)用場(chǎng)景中使用較多。總體來(lái)說(shuō),新一代編碼器,編碼效率能比上一代提高了30-50%,但是復(fù)雜度和功耗會(huì)比上一代大很多,所以純軟件編碼實(shí)現(xiàn)的話有一定瓶頸,現(xiàn)有的技術(shù)下,還是需要依靠硬件編解碼為主。
? ? ? ? AVS是我國(guó)具備自主知識(shí)產(chǎn)權(quán)的第二代信源編碼標(biāo)準(zhǔn)。目前,AVS1.0在第三世界國(guó)家中已有廣泛應(yīng)用。AVS2.0,屬于與H.265和VP9同級(jí)的新一代標(biāo)準(zhǔn)。
? ? ? ? 編碼器只是標(biāo)準(zhǔn)和語(yǔ)法,并沒(méi)有限定應(yīng)用場(chǎng)景。因此,在實(shí)際應(yīng)用中,還要結(jié)合場(chǎng)景特點(diǎn),來(lái)進(jìn)行改進(jìn)和深度優(yōu)化。聲網(wǎng)的視頻編碼器,針對(duì)實(shí)時(shí)音視頻通信做了深度改進(jìn),更適應(yīng)公共互聯(lián)網(wǎng)的特點(diǎn),實(shí)時(shí)性和質(zhì)量上有很大提升。尤其是與網(wǎng)絡(luò)的深度結(jié)合,同時(shí)兼顧對(duì)抗丟包和網(wǎng)絡(luò)帶寬的波動(dòng)。