一种基于虚拟编码缓冲区充盈度的码率控制算法的制作方法

文档序号:7854279阅读:188来源:国知局
专利名称:一种基于虚拟编码缓冲区充盈度的码率控制算法的制作方法
技术领域
本发明属于数字音视频编码技术,具体涉及数字音视频编码的码率控制算法。
背景技术
码率控制是音视频编码中非常重要的技术之一,其主要任务是有效地控制音视频编码器选取量化步长,使其输出码流的大小满足传输信道实际带宽的限制,并且,尽可能获得最优的解码图像或者音频采样,码率控制一直是音视频编码技术研究领域中的热点问题,任何音视频标准离开码率控制其应用都会受到限制,目前比较有名的算法主要有MPEG-2TM-5、MPEG-4VM8、H. 263TMN-8 以及 H. 264JVT-F086、JVT-GO12 等。一般而言,我们可以把码率控制算法分解为两个步骤,第一步就是所谓的“位分配(bit allocation)”,即把有限的带宽分配到图像组(GOP)或者音频帧包、帧以及宏块或者 音频块等图像或者音频单位上;第二步就是计算量化参数值(QP值),以使实际输出码率和目标码率基本一致。码率控制算法的设计目标就是要实现位优化分配以及输出码率的精确控制,其关键在于建立精确的数学模型。对于MPEG-2 TM-5、MPEG-4 VM8、H. 263 TMN-8 以及 H. 264JVT-F086、JVT-GO12 等算法由于要进行RDO (Rate distortion Optimization)迭代计算(位分配),其复杂性较高(如JVT-F086需要二次编码);由于率失真模型(计算量化参数)的预测误差较大(如JVT_G012、MPEG-4VM8),目标码率的控制效果不好,必需借助跳帧实现CBR模式;并且在残差数据的复杂度(如MAD:Mean Average Difference)误差较大或者得不到的情况,目标码率控制效果较差,收敛性较差。针对这些不足,本发明提出了一种运算复杂度低,目标码率控制较好的基于虚拟编码缓冲区充盈度的码率控制算法,而且编码后的音视频质量与现有的算法相当,特别在一些特殊的情况(如复杂场景与简单场景切换的情况),效果更好。本算法通过在编码端严格控制虚拟编码缓冲区充盈度的范围,并考虑了图像及音频数据实际复杂度的变化,其结果是在码率控制收敛性与图像及音频质量之间到达较好的平衡。

发明内容
本发明提出了一种基于虚拟编码缓冲区充盈度的码率控制算法,该算法通过在编码端严格控制虚拟编码缓冲区充盈度的范围来满足目标码率的要求,并根据当前虚拟编码缓冲区充盈度及上一帧编码完后虚拟编码缓冲区充盈度变化情况决定量化参数QP值,在决定量化参数QP值时,以当前的虚拟缓冲区充盈度、充盈度的变化度以及充盈度的量化步长为输入,决定QP值,并根据残差数据的复杂度MAD值决定最大最小量化参数QP值,通过最大最小参数QP值限制量化参数QP值的范围。由于本算法是直接控制虚拟编码缓冲区充盈度来控制目标码率的,因此能很好的控制目标码率。该编码算法能根据虚拟编码缓冲区充盈度及其变化情况决定量化参数QP值,并使量化参数QP值逼近对应目标码率的理想量化参数QP值,而且音视频质量与已有的算法相比没有太大的变化。本发明提供一种基于虚拟编码缓冲区充盈度的码率控制算法,所述算法包括以下步骤第一步限制虚拟编码缓冲区充盈度的范围以满足目标码率的要求;第二步计算虚拟编码缓冲区充盈度的量化步长VBFCSt印;第三步计算音视频序列第一帧量化参数值InitialQP及量化参数的变化值InitialDeltaQP ;第四步根据前一帧编码前的虚拟编码缓冲区充盈度 PrevVBF,当前帧编码前的虚拟编码缓冲区充盈度CurrVBF及充盈度的量化步长VBFCSt印,计算基于前一帧的量化参数的变化值AQP1 ;第五步根据前一帧编码前的虚拟编码缓冲区充盈度PrevVBF,当前帧编码前的虚拟编码缓冲区充盈度CurrVBF及充盈度的量化步长VBFCSt印,计算基于前一帧的量化参数的变化值AQP2 ;第六步根据前一帧编码前后虚拟编码缓冲区充盈度的变化方向,并根据前一帧的量化参数值PrevQP,变化值AQPi& △ QP2计算当前将要编码帧的量化参数值CurrQP ;第七步根据前一帧残差数据的复杂度值PrevMAD、前一帧原数据的平均值PrevMean及当前巾贞原数据的平均值CurrMean线性预测当前巾贞残差系数的复杂度值CurrMAD或者根据当前巾贞的原始数据直接计算原始数据的复杂度值CurrMAD ;第八步根据计算的当前帧的残差数据或者原始数据的复杂度值CurrMAD来计算当前帧的最大最小量化参数值MaxQP,MinQP ;第九步根据最大最小参数值MaxQP,MinQP限制当前将要编码帧的量化参数值CurrQP的范围;第十步帧编码后虚拟编码缓冲区充盈度的更新的实现。本算法的有益效果是I)通过直接控制虚拟编码缓冲区充盈度来控制目标码率,编码后码流的码率能很好的满足目标码率的要求,码率以目标码率为中轴线,波动幅度在_5%,5%之间;并在编码器性能允许的范围内可以不用通过跳帧来实现CBR模式。2)本算法没有RDO迭代计算,不需要进行二次编码,运算复杂度低,适用于对延迟要求较严格的应用环境,如视频电话、电视会议,电视广播等实时的音视频应用。3)由于在决定QP值时,考虑了音视频帧的复杂度,因此本算法音视频质量与已有的算法相比没有太大的变化,甚至在一些特殊的情况(如复杂与简单场景切换的情况),效果更好。4)本算法以牺牲一帧为代价,能很快的响应复杂与简单场景切换的数字音视频信号。并决定的量化参数最终的收敛于理想的量化参数值。5)本算法非常实用于在那些条件受限环境中(得不到或者得不到较为准确的帧的复杂度,残差比特)实现音视频编码器的码率控制。


图I是本发明中的算法总体框架图2是本发明中的算法基本原理示意图;图3是本发明中前一帧编码后虚拟编码缓冲区充盈度远离零轴线示意图;图4是本发明中计算基于前一帧的量化参数的变化值AQP1的流程图;图5是本发明中前一帧编码后虚拟编码缓冲区充盈度靠近零轴线示意图;图6是本发明中计算基于前一帧的量化参数的变化值AQP2的流程图。
具体实施例本发明的算法通过直接控制虚拟编码缓冲区充盈度(虚拟编码缓冲区指编码端不存在这样的缓冲区,它存在于解码端;充盈度是指缓冲区中存有的比特数的多少)的范围来控制目标码率,考虑编码图像及音频数据复杂度,并根据虚拟编码缓冲区充盈度的状态调整量化参数的最大最小值来限制量化参数可能的取值范围。本算法的总体框架图参见附图
Io本算法基本原理如下当虚拟编码缓冲区充盈度偏离0,通过调整量化参数,即AQP1,使编码后的数据大小从下一帧开始增加或者减少,虚拟编码缓冲区充盈度向0靠近。当图像或者音频帧复杂度变化较大的情况下,可能无论是否调整量化参数,虚拟编码缓冲区充盈度依然偏离0,在这种情况下通过检测帧的量化参数的调整值及帧编码前后虚拟编码缓冲区充盈度的变化,对帧的量化参数做一个反馈修正,即AQP2,使其量化参数快速响应复杂度的变化,帧编码后的数据大小从下两帧开始增加或者减少,虚拟编码缓冲区充盈度向0靠近。当帧内容突变时,上面的方式还不能很好的控制虚拟编码缓冲区充盈度,本算法则采取计算图像或者音频帧的复杂度值,并用复杂度值估计最大最小值量化参数限制量化参数的范围。通过减弱这种突变点的影响,使虚拟编码缓冲区充盈度不偏离0太远,并在后续的几帧编码后能使虚拟编码缓冲区充盈度向0靠近。本算法的基本原理示意图参见附图2。本算法的步骤包括第一步限制虚拟编码缓冲区充盈度的范围以满足目标码率的要求。根据虚拟缓冲区的大小VBFSize及延迟偏移量DelayOffset限制虚拟缓冲区的充盈度的范围MinVBF,MaxVBF,从而限制A QP1值及虚拟缓冲区的最大延迟补偿量,目的是为了处理当用较高的码率编码较为简单的图像或者音频数据。最大最小充盈度的计算公式如下
权利要求
1.一种基于虚拟编码缓冲区充盈度的码率控制算法,其特征在于, 所述算法包括以下步骤 第一步限制虚拟编码缓冲区充盈度的范围以满足目标码率的要求; 第二步计算虚拟编码缓冲区充盈度的量化步长VBFCSt印; 第三步计算音视频序列第一帧量化参数值InitialQP及量化参数的变化值InitialDeltaQP ; 第四步根据前一帧编码前的虚拟编码缓冲区充盈度PrevVBF,当前帧编码前的虚拟编码缓冲区充盈度CurrVBF及充盈度的量化步长VBFCSt印,计算基于前一帧的量化参数的变化值A QP1 ; 第五步根据前一帧编码前的虚拟编码缓冲区充盈度PrevVBF,当前帧编码前的虚拟编码缓冲区充盈度CurrVBF及充盈度的量化步长VBFCSt印,计算基于前一帧的量化参数的变化值A QP2 ; 第六步根据前一帧编码前后虚拟编码缓冲区充盈度的变化方向,并根据前一帧的量化参数值PrevQP,变化值△ QP1及△ QP2计算当前将要编码帧的量化参数值CurrQP ; 第七步根据前一帧残差数据的复杂度值PrevMAD、前一帧原数据的平均值PrevMean及当前巾贞原数据的平均值CurrMean线性预测当前巾贞残差系数的复杂度值CurrMAD或者根据当前帧的原始数据直接计算原始数据的复杂度值CurrMAD ; 第八步根据计算的当前帧的残差数据或者原始数据的复杂度值CurrMAD来计算当前帧的最大最小量化参数值MaxQP,MinQP ; 第九步根据最大最小参数值MaxQP,MinQP限制当前将要编码帧的量化参数值CurrQP的范围; 第十步帧编码后虚拟编码缓冲区充盈度的更新的实现。
2.根据权利要求I所述的码率控制算法,其特征在于,所述第一步中是根据虚拟缓冲区的大小VBFSize及延迟偏移量DelayOffset限制虚拟缓冲区的充盈度的范围MinVBF,MaxVBF,其中计算公式如下
3.根据权利要求I所述的码率控制算法,其特征在于,所述第二步中是根据平均分配给每帧的比特数FrmBitSize决定虚拟编码缓冲区充盈度的量化步长VBFCStep,其计算公式为VBFCSt印=FrmBitSize*St印Scale,其中为常量因子,由编码器类型所决定。
4.根据权利要求I所述的码率控制算法,其特征在于,所述第三步的计算公式如下
5.根据权利要求I所述的码率控制算法,其特征在于,所述第四步的计算公式为
6.根据权利要求I所述的码率控制算法,其特征在于,所述第五步的计算公式为
7.根据权利要求I所述的码率控制算法,其特征在于,所述第六步的计算公式为
8.根据权利要求I所述的码率控制算法,其特征在于,所述第八步的计算公式为
9.根据权利要求I所述的码率控制算法,其特征在于,所述第九步的具体方法是=CurrQP=min(MaxQP, max(MinQP, CurrQP))。
10.根据权利要求4所述的码率控制算法,其特征在于,所述第十步中更新的方法是 PrevVBF=CurrVBF
全文摘要
本发明提出了一种基于虚拟编码缓冲区充盈度的码率控制算法,该算法通过在编码端严格控制虚拟编码缓冲区充盈度的范围来满足目标码率的要求,并根据当前虚拟编码缓冲区充盈度及上一帧编码完后虚拟编码缓冲区充盈度变化情况决定量化参数QP值,在决定量化参数QP值时,以当前的虚拟缓冲区充盈度、充盈度的变化度以及充盈度的量化步长为输入,决定QP值,并根据图像或者音频帧原始数据或者残差数据的复杂度MAD值决定最大最小量化参数QP值,通过最大最小参数QP值限制量化参数QP值的范围。本算法通过在编码端严格控制虚拟编码缓冲区充盈度的范围,并考虑了图像及音频数据实际复杂度的变化,其结果是在码率控制收敛性与图像或者音频质量之间到达较好的平衡。
文档编号H04N7/30GK102724510SQ20121021176
公开日2012年10月10日 申请日期2012年6月21日 优先权日2012年6月21日
发明者刘任化, 刘博远, 杨新辉 申请人:中科开元信息技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1