直播源碼開發(fā),快速幫助了解視頻編解碼概念
視頻編碼幀是視頻編碼序列中常見的三種編碼幀,I幀、P幀、B幀,要說視頻編碼幀有什么作用呢,在視頻編碼序列中,GOP指的是兩個(gè)I幀之間的距離,在碼率不變的情況下,GOP值越大,P、B幀的數(shù)量就會(huì)越多,平均每個(gè)幀占用的字節(jié)數(shù)也越多,更容易獲取好的視頻質(zhì)量。
?

一、編碼幀詳解
從上面的內(nèi)容可以看出,當(dāng)碼率不變時(shí),幀數(shù)越高自然用戶看到的畫面就越清晰,但是對直播源碼開發(fā)的壓力也更大,畢竟幀數(shù)高了視頻清晰后占用的傳輸資源增加,儲存上平臺壓力也會(huì)變大。
這就需要對直播源碼開發(fā)的幀進(jìn)行編碼,由于P、B幀的復(fù)雜度大于I幀,所以過多的P、B幀會(huì)影響編碼效率, 另外過長的GOP還會(huì)影響seek的操作響應(yīng)速度,由于P、B幀是由前面的I或P幀預(yù)測得到的,所以seek操作需要直接定位,解碼某一個(gè)P或B幀時(shí),需要先解碼得到本GOP內(nèi)的I幀以及之前的N個(gè)預(yù)測幀才可以,GOP值越長,需要解碼的預(yù)測幀就越多,seek響應(yīng)的時(shí)間也越長。
?

二、H.264編碼幀
H.264協(xié)議大家應(yīng)該很熟悉了,是直播源碼開發(fā)很常用的編碼方式,在其中的圖像以序列為單位進(jìn)行組織,一個(gè)序列是一段圖像編碼后的數(shù)據(jù)流,從I幀開始,到I幀結(jié)束。
IDR圖像,一個(gè)序列的第一個(gè)圖像叫IDR圖像,IDR圖像都是I幀圖像,H.264引入IDR圖像是為了解碼的重同步,當(dāng)解碼器解碼到IDR圖像后,立即將參考幀隊(duì)列清空,將已解碼的數(shù)據(jù)全部輸出或拋棄,重新查找直播源碼開發(fā)的新參數(shù)集,開始一個(gè)新的序列,這樣可以在前一個(gè)序列出現(xiàn)錯(cuò)誤時(shí),能及時(shí)獲得重新同步的機(jī)會(huì)。
?

三、不同幀的作用
1、I幀,幀內(nèi)編碼幀,此關(guān)鍵幀可以理解為一幀畫面的完整保留,解碼時(shí)只需要直播源碼開發(fā)本幀數(shù)據(jù)就可以完成。
2、P幀,向前預(yù)測編碼幀,P幀表示的是這一幀跟之前的一個(gè)關(guān)鍵幀的差別,解碼時(shí)需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面。
3、B幀,直播源碼開發(fā)B幀以前的I或P幀做為參考幀,找出B幀的預(yù)測值和兩個(gè)運(yùn)動(dòng)矢量,并取預(yù)測差值和運(yùn)動(dòng)矢量傳送。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任