海思多媒體(MPP)開發(4)——視頻編碼(VENC)

前言:

海思多媒體處理平臺(MPP)分爲:視頻輸入(VI),視頻處理(VPSS),視頻編碼(VENC),視頻解碼(VDEC),視頻輸出(VO)、視頻偵測分析(VDA),音頻輸入(AI),音頻輸出(AO),音頻編碼(AENC),音頻解碼(ADEC),區域管理(REGION)等模塊. 這裏介紹視頻編碼模塊
    視頻編碼模塊涉及很多的概念,具體內容可以去查看海思官方文檔。

視頻編碼問題現象及問題原因分析:
【問題現象】:輸入和編碼配置都正常,可以獲取到h264碼流,但是獲取到的數據包非常小,圖像是全黑,沒有任何畫面。
【問題原因】:可能是沒有攝像頭,導致沒有攝像頭數據輸入。
【根本原因】:1.攝像頭沒插入或是接線異常,2 6134ADC芯片設置與實際攝像頭輸入不相符(PAL制式攝像頭輸入必須配置nvp6134 PAL 模式VIDEO_ENCODING_MODE_PAL,否者檢測不到攝像頭)

編碼:

(1)瞬時碼率超過閾值時的丟幀策略

主要由下面參數設置

  • enFrmLostMode:丟幀策略模式。
  • u32EncFrmGaps:丟幀間隔。
  • bFrmLostOpen:丟幀開關。
  • u32FrmLostBpsThr:丟幀閾值。


(2)碼率控制:

Qstep 量化步長

QP(quantizer parameter)質量參數

  • QP取最小值0 時,表示量化最精細;相反,QP取最大值51時,表示量化是最粗糙的。
  • QP和Qstep具有線性相關性,Qstep隨着QP的增加而增加,每當QP值增加6,Qstep便增加一倍。

具體內容可以查看網上的這篇文章:
《碼流 / 碼率 / 比特率 / 幀速率 / 分辨率 / 高清的區別》


(3)碼率控制模式(RC)

碼率控制器:

  • 從信息學的角度分析,圖像的壓縮比越低,壓縮圖像的質量越高;圖像壓縮比例越高,壓縮圖像的質量越低。對於場景變化的真實場景,圖像質量穩定,編碼碼率會波動;編碼碼率穩定,圖像質量會波動。以 H.264 編碼爲例,通常圖像 QP 越低,圖像的質量越好,碼率越高;圖像 QP 越高,圖像質量越差,碼率越低。碼率控制是針對連續的編碼碼流而言,所以,JPEG 協議編碼通道不包括碼率控制功能。

碼率控制器分別提供了對 H.264\H.265\MPEG-4\MJPEG 協議編碼通道 CBR、VBR、FIXQP 等三種碼率控制模式,對圖像質量和碼率進行調節。

  • CBR(Constant Bit Rate)固定比特率
  • VBR(Variable Bit Rate)可變比特率
  • Fix Qp 固定 QP 值

CBR   

CBR(Constant Bit Rate)固定比特率。即在碼率統計時間內保證編碼碼率平穩。碼率穩定主要由兩個量來評估。

  • 碼率統計時間 u32StatTime

單位爲秒(s),碼率統計時間越長,每幀圖像的碼率波動對於碼率調節的影響越弱,碼率的調節會更緩慢,圖像質量的波動會更輕微;碼率統計時間越短,每幀圖像的碼率波動對於碼率調節的影響越強,圖像碼率的調節會更靈敏,圖像質量的波動會更劇烈。

  • 行級碼率控制調節幅度 u32RowQpDelta

行級碼率控制調節幅度是一幀內行級調節的最大範圍,其中行級以宏塊行爲單位。調節幅度越大,允許行級調整的 QP 範圍越大,碼率越平穩。對於圖像複雜度分佈不均勻的場景,行級碼率控制調節幅度設置過大會帶來圖像質量不均勻。

VBR 

VBR(Variable Bit Rate)可變比特率,即在碼率統計時間內編碼碼率波動,從而保證編碼圖像質量平穩。以 H.264 編碼爲例,VENC 模塊提供用戶可設置MaxQp,MinQp,MaxBitrate。MaxQp,MinQp 用於控制圖像的質量範圍, MaxBitrate 用於鉗位碼率統計時間內的最大編碼碼率。當編碼碼率接近最大碼率時,圖像 QP 會逐步向MaxQp 調整,當編碼碼率遠小於最大碼率時,圖像 QP 會逐步向 MinQp 調整。當圖像QP 達到 MaxQp 時,QP 被鉗位到最大值,MaxBirate 的鉗位效果失效,編碼碼率有可能會超出 MaxBirate。當圖像 QP 達到 MinQp 時,QP 被鉗位到最小值,此時編碼的碼率已經達到最大值,而且圖像質量最好。    

FIXQP

Fix Qp 固定 QP 值。在碼率統計時間內,編碼圖像所有宏塊 QP 值相同,採用用戶設定的圖像 QP 值,I 幀和 P 幀的 QP 值可以分別設置。

編碼等級:

海思支持:編碼的等級。取值範圍:[0, 3]。0:Baseline;  1:Main Profile;  2:High Profile;  3:Svc-T
通常profile level 分別是BP、EP、MP、HP:

  1. BP-Baseline Profile:基本畫質。支持I/P 幀,只支持無交錯(Progressive)和CAVLC;
  2. EP-Extended profile:進階畫質。支持I/P/B/SP/SI 幀,只支持無交錯(Progressive)和CAVLC;
  3. MP-Main profile:主流畫質。提供I/P/B 幀,支持無交錯(Progressive)和交錯(Interlaced),也支持CAVLC 和CABAC 的支持;
  4. HP-High profile:高級畫質。在main Profile 的基礎上增加了8x8內部預測、自定義量化、無損視頻編碼和更多的YUV 格式;

H.264規定了三種檔次,每個檔次支持一組特定的編碼功能,並支持一類特定的應用。

  1. 基本檔次:利用I片和P片支持幀內和幀間編碼,支持利用基於上下文的自適應的變長編碼進行的熵編碼(CAVLC)。主要用於可視電話、會議電視、無線通信等實時視頻通信;
  2. 主要檔次:支持隔行視頻,採用B片的幀間編碼和採用加權預測的幀內編碼;支持利用基於上下文的自適應的算術編碼(CABAC)。主要用於數字廣播電視與數字視頻存儲;
  3. 擴展檔次:支持碼流之間有效的切換(SP和SI片)、改進誤碼性能(數據分割),但不支持隔行視頻和CABAC。主要用於網絡的視頻流,如視頻點播。
     

 

本章頻測工程可以從「目錄與序言」提供的地址去獲取

 

本專欄第一篇文章「目錄與序言」列出了專欄的完整目錄,按目錄順序閱讀,有助於你的理解。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章