一.什么是QP調(diào)節(jié)?
QP參數(shù)調(diào)節(jié)介杆,指的是量化參數(shù)調(diào)節(jié)鹃操。它主要是來調(diào)節(jié)圖像的細(xì)節(jié),最終達(dá)到調(diào)節(jié)畫面質(zhì)量的作用春哨。QP值和比特率成反比荆隘,QP值越小畫面質(zhì)量越高;反之QP值越大赴背,畫面質(zhì)量越低椰拒。而且隨著視頻源復(fù)雜度,這種反比的關(guān)系會(huì)更加明顯凰荚。QP調(diào)節(jié)是改變畫面質(zhì)量最常用的手段之一燃观。
二.QP調(diào)節(jié)的基本概念
QP調(diào)節(jié)一般由QStep、MinQp便瑟、MaxQp這三個(gè)參數(shù)進(jìn)行調(diào)節(jié)缆毁。下面我們來看看,這三個(gè)參數(shù)的作用胳徽。
2.1. QStep:
QStep指的是量化步長(zhǎng)积锅,QStep隨著QP的增加而增加。每當(dāng)QP值增加6养盗,QStep增加一倍缚陷。在一般的編碼器,H264/H265采用的是標(biāo)量量化技術(shù)往核,用數(shù)學(xué)表達(dá)式就是:FQ = round(y/QStep)箫爷,下面是QP值和QStep的對(duì)應(yīng)關(guān)系圖。QP值越小,整體畫面越精細(xì)虎锚,否則越粗糙硫痰。
2.2. minqp最小量化步長(zhǎng)
設(shè)置最小量化器,限制最好的圖像質(zhì)量(重點(diǎn)在靜止畫面)窜护,當(dāng)QP達(dá)到這個(gè)值的時(shí)候效斑,數(shù)值不會(huì)變。這就會(huì)使得在靜止場(chǎng)景下柱徙,碼率到達(dá)一定數(shù)量后不會(huì)進(jìn)行調(diào)整缓屠。minqp越小,靜止時(shí)候碼率越大护侮,質(zhì)量越好敌完,建議值[8,20]。
2.3. maxqp最大量化步長(zhǎng)
設(shè)置最大量化器羊初,最大QP值滨溉,限制最差的畫面(重點(diǎn)在運(yùn)動(dòng)的時(shí)候),maxQp越小长赞,運(yùn)動(dòng)時(shí)候碼率就越大晦攒,質(zhì)量相對(duì)越好。同樣道理涧卵,當(dāng)運(yùn)動(dòng)情況下到達(dá)一定碼率后就不會(huì)調(diào)整勤家。建議值[20,50]
這張圖是運(yùn)動(dòng)場(chǎng)景和靜止場(chǎng)景時(shí)候用QP值的調(diào)試
三.RV1126中QP值的調(diào)節(jié)
u32ThrdI、u32ThrdP:分別衡量I幀柳恐、P幀宏塊復(fù)雜的一組閾值伐脖。這組閾值是從小到大依次排序,每個(gè)閾值的取值是[0,255]乐设。這組閾值主要用于宏塊級(jí)別的碼率控制讼庇,并根據(jù)圖像復(fù)雜程度對(duì)每個(gè)宏塊進(jìn)行QP調(diào)節(jié)。這部分大部分也用在CBR上面近尚。
u32ThrdI默認(rèn)值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]
u32ThrdP默認(rèn)值:[0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25]
注意:u32ThrdI蠕啄、u32ThrdP在一般情況下不需要設(shè)置
u32RowQpDeltaI: 基于行的宏塊級(jí)別碼率控制,每一行的宏塊的起始QP相對(duì)于I幀的QP波動(dòng)幅度值戈锻,主要用在CBR控制模式歼跟。對(duì)于碼率波動(dòng)比較嚴(yán)格的場(chǎng)景下,可以通過調(diào)節(jié)這個(gè)參數(shù)使得碼率控制更加精確格遭。在高碼率時(shí)哈街,該值推薦為 0;中碼率時(shí)推薦該值為 0 或 1拒迅;低碼率時(shí)推薦 該值為 2~5骚秦。
u32RowQpDeltaP: 基于行的宏塊級(jí)別碼率控制她倘,每一行的宏塊的起始QP相對(duì)于P幀的QP波動(dòng)幅度值,主要用在CBR控制模式作箍。對(duì)于碼率波動(dòng)比較嚴(yán)格的場(chǎng)景下硬梁,可以通過調(diào)節(jié)這個(gè)參數(shù)使得碼率控制更加精確。在高碼率時(shí)胞得,該值推薦為 0荧止;中碼率時(shí)推薦該值為 0 或 1;低碼率時(shí)推薦 該值為 2~5懒震。
下面的表格就是來解釋哪些范圍是高碼率涝影,中碼率橘荠,低碼率
s32FirstFrameStartQp:第一幀QP值,默認(rèn)-1萎津。-1代表的是第一幀的起始QP由編碼器內(nèi)部進(jìn)行計(jì)算葱色。若是其他值递宅,則由用戶指定該合法值為第一幀起始QP。
stParamH264:主要是調(diào)節(jié)H264的QP參數(shù)
stParamH265:主要是調(diào)節(jié)H265的QP參數(shù)
stParamMjpeg:主要是調(diào)節(jié)Mjpeg的QP參數(shù)
RK_S32 RK_MPI_VENC_SetRcParam(VENC_CHN VencChn, const VENC_RC_PARAM_S *pstRcParam)
第一個(gè)傳參數(shù):Venc編碼通道號(hào)
第二個(gè)傳參數(shù):VENC_RC_PARAM_S結(jié)構(gòu)體指針
3.1. H264的QP調(diào)節(jié)參數(shù)
u32StepQp: QP的STEP步長(zhǎng)苍狰,STEP步長(zhǎng)去調(diào)節(jié)QP值
u32MaxQp****:QP的最大值办龄,對(duì)運(yùn)動(dòng)畫面進(jìn)行限制,若忽視碼率則建議51淋昭;若對(duì)質(zhì)量講究俐填,則建議設(shè)置[20,51]。取值范圍[8,51]翔忽。
u32MinQp****:QP的最小值英融,希望在靜止畫面的時(shí)候節(jié)省碼率,取值范圍[0,48]歇式。VBR建議設(shè)置為[24,32]驶悟,CBR建議設(shè)置[10,20]
u32MaxIQp: I幀的QP最大值,取值范圍[8,51]材失,圖像運(yùn)動(dòng)的時(shí)候節(jié)省碼率痕鳍,默認(rèn)和u32MaxQP的值是一致。
u32MinIQp: I幀的QP最小值龙巨,取值范圍[0,48]笼呆,圖像靜止或小運(yùn)動(dòng)的時(shí)候節(jié)省碼率,默認(rèn)和u32MinIQp是一致旨别。
3.2. H265的QP調(diào)節(jié)參數(shù)
u32StepQp: QP的STEP步長(zhǎng)
u32MaxQp****:QP的最大值诗赌,對(duì)運(yùn)動(dòng)畫面進(jìn)行限制,若忽視碼率則建議51昼榛;若對(duì)質(zhì)量講究境肾,則建議設(shè)置[40,51]剔难。取值范圍[8,51]。u32MinQp:QP的最小值奥喻,希望在靜止畫面的時(shí)候節(jié)省碼率偶宫,取值范圍[0,48]。VBR建議設(shè)置為[24,32]环鲤,CBR建議設(shè)置[10,20]
u32MaxIQp: I幀的QP最大值纯趋,取值范圍[8,51],圖像運(yùn)動(dòng)的時(shí)候節(jié)省碼率冷离,默認(rèn)和u32MaxQP的值是一致吵冒。
u32MinIQp: I幀的QP最小值,取值范圍[0,48]西剥,圖像靜止或小運(yùn)動(dòng)的時(shí)候節(jié)省碼率痹栖,默認(rèn)和u32MinIQp是一致。
四. RV1126的QP調(diào)節(jié)DEMO
上面這個(gè)代碼是調(diào)節(jié)QP的一個(gè)簡(jiǎn)單DEMO瞭空,我們重點(diǎn)說下QP調(diào)節(jié)部分揪阿。
s32FirstFrameStartQp:-1代表的是第一幀的起始QP由編碼器內(nèi)部進(jìn)行計(jì)算。若是其他值咆畏,則由用戶指定該合法值為第一幀起始QP南捂。
u32StepQp:QP步長(zhǎng)是1,QP值對(duì)應(yīng)的是4旧找,表示的是畫面質(zhì)量較好相對(duì)細(xì)致
u32MaxQp:maxQp這里選的是24溺健。運(yùn)動(dòng)場(chǎng)景下,不會(huì)出現(xiàn)馬賽克并且能夠把運(yùn)動(dòng)細(xì)節(jié)相對(duì)清晰編碼出來
u32MinQp:minQp這里選的是8钮蛛。 靜止場(chǎng)景下鞭缭,能夠把絕大部分靜止的物體細(xì)節(jié)編碼出來,比方說:植物愿卒、椅子等物體缚去。
u32MaxIQp:maxIQp這里選的是24。這個(gè)參數(shù)主要是調(diào)節(jié)I幀的maxQP值琼开,一般來說u32maxIQp和u32maxQp是一樣
u32MinIQp:minIQp這里選的是8易结。這個(gè)參數(shù)主要是調(diào)節(jié)I幀的minQP值,一般來說u32minIQp和u32minQp是一樣