Daily AVFoundation - 視頻基礎(chǔ)H264編碼

前言

隨著移動(dòng)技術(shù)的成熟和即將到來的5G時(shí)代,直播已成為互聯(lián)網(wǎng)行業(yè)的大熱話題,直播答題、游戲直播、競(jìng)賽直播等層出不窮,直播早已成為人們耳熟能詳?shù)募夹g(shù)。互聯(lián)網(wǎng)用戶消費(fèi)內(nèi)容和交互方式的升級(jí),支撐這些內(nèi)容和交互方式的基礎(chǔ)設(shè)施也正在悄悄發(fā)生變革。很多互聯(lián)網(wǎng)創(chuàng)業(yè)者或者成熟企業(yè)進(jìn)入該領(lǐng)域。

H264編碼

H.264,同時(shí)也是MPEG-4第十部分,是由ITU-T視頻編碼專家組(VCEG)和ISO/IEC動(dòng)態(tài)圖像專家組(MPEG)聯(lián)合組成的聯(lián)合視頻組(JVT,Joint Video Team)提出的高度壓縮數(shù)字視頻編解碼器標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)通常被稱之為H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明確的說明它兩方面的開發(fā)者...詳見H264百度百科
。

編碼的目的
編碼是為了將數(shù)據(jù)進(jìn)行壓縮,這樣在傳輸?shù)倪^程中就不會(huì)使資源被浪費(fèi)。

舉個(gè)??:

比如: 
當(dāng)你此刻顯示器正在播放一個(gè)視頻,分辨率1024×576,幀率是25,
那么一秒所產(chǎn)生正常的數(shù)據(jù)大小為:
1024×576(位像素)*25(張) / 8(1字節(jié)8位)(結(jié)果:B) / 1024(結(jié)果:KB) / 1024 (結(jié)果:MB) =  1.75MB 
顯然一秒這么大的數(shù)據(jù)我們是無法接受的,如果不將數(shù)據(jù)進(jìn)行壓縮,那么最后視頻資源數(shù)據(jù)將會(huì)超級(jí)大;

優(yōu)勢(shì)

  • 低碼率(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術(shù)相比,在同等圖像質(zhì)量下,采用H.264技術(shù)壓縮后的數(shù)據(jù)量只有MPEG2的1/8,MPEG4的1/3。
  • 高質(zhì)量的圖像:H.264能提供連續(xù)、流暢的高質(zhì)量圖像(DVD質(zhì)量)。
  • 容錯(cuò)能力強(qiáng):H.264提供了解決在不穩(wěn)定網(wǎng)絡(luò)環(huán)境下容易發(fā)生的丟包等錯(cuò)誤的必要工具。
  • 網(wǎng)絡(luò)適應(yīng)性強(qiáng):H.264提供了網(wǎng)絡(luò)抽象層(Network Abstraction Layer),使得H.264的文件能容易地在不同網(wǎng)絡(luò)上傳輸(例如互聯(lián)網(wǎng),CDMA,GPRS,WCDMA,CDMA2000等)。

H.264最大的優(yōu)勢(shì)是具有很高的數(shù)據(jù)壓縮比率,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。

舉個(gè)??:

原始文件的大小如果為88GB,采用MPEG-2壓縮標(biāo)準(zhǔn)壓縮后變成3.5GB,壓縮比為25∶1,而采用H.264壓縮標(biāo)準(zhǔn)壓縮后變?yōu)?79MB,從88GB到879MB,H.264的壓縮比達(dá)到驚人的102∶1。

低碼率(Low Bit Rate)對(duì)H.264的高的壓縮比起到了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術(shù)相比,H.264壓縮技術(shù)將大大節(jié)省用戶的下載時(shí)間和數(shù)據(jù)流量收費(fèi)。尤其值得一提的是,H.264在具有高壓縮比的同時(shí)還擁有高質(zhì)量流暢的圖像,正因?yàn)槿绱?,?jīng)過H.264壓縮的視頻數(shù)據(jù),在網(wǎng)絡(luò)傳輸過程中所需要的帶寬更少,也更加經(jīng)濟(jì)。

特點(diǎn)

  • 更高的編碼效率: 同H.263等標(biāo)準(zhǔn)的特率效率相比,能夠平均節(jié)省大于50%的碼率。
  • 高質(zhì)量的視頻畫面: H.264能夠在低碼率情況下提供高質(zhì)量的視頻圖像,在較低帶寬上提供高質(zhì)量的圖像傳輸是H.264的應(yīng)用亮點(diǎn)。
  • 提高網(wǎng)絡(luò)適應(yīng)能力: H.264可以工作在實(shí)時(shí)通信應(yīng)用(如視頻會(huì)議)低延時(shí)模式下,也可以工作在沒有延時(shí)的視頻存儲(chǔ)或視頻流服務(wù)器中。
  • 采用混合編碼結(jié)構(gòu):同H.263相同,H.264也使用采用DCT變換編碼加DPCM的差分編碼的混合編碼結(jié)構(gòu),還增加了如多模式運(yùn)動(dòng)估計(jì)、幀內(nèi)預(yù)測(cè)、多幀預(yù)測(cè)、基于內(nèi)容的變長(zhǎng)編碼、4x4二維整數(shù)變換等新的編碼方式,提高了編碼效率。
  • H.264的編碼選項(xiàng)較少:在H.263中編碼時(shí)往往需要設(shè)置相當(dāng)多選項(xiàng),增加了編碼的難度,而H.264做到了力求簡(jiǎn)潔的“回歸基本”,降低了編碼時(shí)復(fù)雜度。
  • H.264可以應(yīng)用在不同場(chǎng)合:H.264可以根據(jù)不同的環(huán)境使用不同的傳輸和播放速率,并且提供了豐富的錯(cuò)誤處理工具,可以很好的控制或消除丟包和誤碼。
  • 錯(cuò)誤恢復(fù)功能:H.264提供了解決網(wǎng)絡(luò)傳輸包丟失的問題的工具,適用于在高誤碼率傳輸?shù)臒o線網(wǎng)絡(luò)中傳輸視頻數(shù)據(jù)。
  • 較高的復(fù)雜度:264性能的改進(jìn)是以增加復(fù)雜性為代價(jià)而獲得的。據(jù)估計(jì),H.264編碼的計(jì)算復(fù)雜度大約相當(dāng)于H.263的3倍,解碼復(fù)雜度大約相當(dāng)于H.263的2倍。

如何編碼
按照指定的特定的格式記錄采樣和量化后的數(shù)據(jù)Data.
編解碼協(xié)議H264(視頻)和AAC(音頻)有軟編解碼和硬編解碼。
軟編碼和硬編碼如何區(qū)分

  • 軟編碼:使用CPU進(jìn)行編碼
  • 硬編碼:使用非CPU進(jìn)行編碼,如顯卡GPU、專用的DSP、FPGA、ASIC芯片等

軟編碼和硬編碼比較

  • 軟編碼:實(shí)現(xiàn)直接、簡(jiǎn)單,參數(shù)調(diào)整方便,升級(jí)易,但CPU負(fù)載重,性能較硬編碼低,低碼率下質(zhì)量通常比硬編碼要好一點(diǎn)。
  • 硬編碼:性能高,低碼率下通常質(zhì)量低于硬編碼器,但部分產(chǎn)品在GPU硬件平臺(tái)移植了優(yōu)秀的軟編碼算法(如X264)的,質(zhì)量基本等同于軟編碼。

舉個(gè)不太恰當(dāng)?shù)??:來說明軟編硬編的區(qū)別

軟編碼和硬編碼背后其實(shí)是一種設(shè)計(jì)思想,軟編碼更加靈活,對(duì)應(yīng)擴(kuò)展修改比較容易,而硬編碼則是比較死板,不便于擴(kuò)展和修改。
例如 int i = 2,j = 3
if ( i == 2 ) {
//硬編碼
}

if( i == j ) {
//軟編碼,可以任意修改i,j的值,從而達(dá)到一些要求,更加容易修改和擴(kuò)展。
}

目前的主流GPU加速平臺(tái)

  • Intel
  • AMD
  • NVIDIA

目前主流的GPU平臺(tái)開發(fā)框架

  • CUDA:NVIDIA的封閉編程框架,通過框架可以調(diào)用GPU計(jì)算資源
  • AMD APP:AMD為自己的GPU提出的一套通用并行編程框架,標(biāo)準(zhǔn)開放,通過在CPU、GPU同時(shí)支持OpenCL框架,進(jìn)行計(jì)算力融合。
  • OpenCL:開放計(jì)算語言,為異構(gòu)平臺(tái)編寫程序的該框架,異構(gòu)平臺(tái)可包含CPU、GPU以及其他計(jì)算處理器,目標(biāo)是使相同的運(yùn)算能支持不同平臺(tái)硬件加速。
  • Inel QuickSync:集成于Intel顯卡中的專用視頻編解碼模塊。

總結(jié)

本文講解了視頻H264編碼目的與優(yōu)勢(shì),以及軟硬編解碼的知識(shí)概要。想要了解更多關(guān)注下一篇文章!

?著作權(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ù)。

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

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