以下都是RC_BITRATE_MODE模式的处理流程。
一、帧级码控计算整体框架图

二、帧级QP的计算公式
openh264用的码控用的是R-Q模型,使用历史帧的平均QP、SAD、帧长,来预测当前帧的QP。计算公式如下:
QStep = (IntraComplexity * CmplxRatio)/(TargetBits * 100)
IntraComplexity参数根据上一帧单帧长度和历史帧平均QP确定。
计算公式为:IntraComplexity(i)=0.8*IntraComplexity(i-1)+0.2*QStep*FrameDqBits
CmplxRatio参数根据历史帧的SAD(绝对残差和)确定。
计算公式为:CmplxRatio(i)=0.8*SAD(i-1)+0.2*SAD(i)
TargetBits当前帧可分配的码率。
1)IntraComplexity参数计算
RcUpdateIntraComplexity (sWelsEncCtx* pEncCtx)
RcUpdateFrameComplexity (sWelsEncCtx* pEncCtx)

2)CmplxRatio参数计算
RcCalculateIdrQp (sWelsEncCtx* pEncCtx)
RcCalculatePictureQp (sWelsEncCtx* pEncCtx)

3)TargetBits参数计算
RcDecideTargetBits (sWelsEncCtx* pEncCtx)函数

另外WelsRcPictureInitGom实际计算帧级QP的值。WelsRcPictureInfoUpdateGom更新码控的参数,用于后续再次调用WelsRcPictureInitGom时,计算帧级QP的值。
4)WelsRcPictureInitGom

本文详细介绍了H.264编码器中RC_BITRATE_MODE模式的帧级码控流程,包括帧级QP计算的整体框架、QP计算公式、参数更新与计算方法,以及关键函数的作用。

1163

被折叠的 条评论
为什么被折叠?



