宏块层中的码率的控制方法以及使用该方法的装置与流程

文档序号:14776778发布日期:2018-06-23 03:38阅读:239来源:国知局
宏块层中的码率的控制方法以及使用该方法的装置与流程

本发明有关于一种视频处理技术,特别是一种宏块层中的码率控制方法以及使用该方法的装置。



背景技术:

码率控制用以为特定帧(frame)或宏块(MB,marcblock)决定使用多少比特来记录。视频编码的目标是为尽可能保留原始输入文档的品质的情况下,尽可能降低文档大小。码率控制是个重要的步骤,用以进行文档大小及品质间的权衡(tradeoff)。

图1是为传统的视频编码系统的方块图。量化参数计算器(quantization parameter calculator)110设置于帧内及帧间模式预测器(intra-and-inter-mode predictor)130、转换器(transformer)150及量化器(quantizer)170之前,使用码率控制演算法(rate control algorithm)为每一个宏块依据预测平均绝对差值(mean absolute difference,MAD)及码流预算(stream budget)计算量化参数。然而,当前宏块的量化参数计算只能依赖预测平均绝对差值,而没有考虑实际平均绝对差值,使得视频序列的复杂度变化较大时,码率控制演算法会受到预测平均绝对差值的不准确及滞后性(latency)的影响,无法达成码率控制的预期目标。因此,需要一种宏块层中的码率控制方法以及使用该方法的装置,用以解决如上所述的缺陷。



技术实现要素:

本发明的实施例提出一种宏块层中的码率的控制方法,包含以下步骤:根据上一帧的上一宏块的实际平均绝对差值计算目前帧的目前宏块的预测平均绝对差值;计算目前帧的目前宏块的实际平均绝对差值;执行调整程序,用以根据目前帧的目前宏块的实际平均绝对差值调整目前帧的目前宏块的预测平均绝对差值以获得目前帧的目前宏块的最终平均绝对差值;根据目前帧的所述目前宏块的最终平均绝对差值计算目前帧的目前宏块的量化参数;以及输出目前帧的目前宏块的量化参数给量化器,从而使得量化器于相应于目前帧的目前宏块的量化参数的码率控制下接着产生压缩后视频码流。

本发明的实施例提出一种宏块层中的码率的控制装置,至少包含量化器;以及量化参数计算器,耦接于量化器。量化参数计算器根据上一帧的上一宏块的实际平均绝对差值计算目前帧的目前宏块的预测平均绝对差值;计算目前帧的目前宏块的实际平均绝对差值;执行调整程序,用以根据目前帧的目前宏块的实际平均绝对差值调整目前帧的目前宏块的预测平均绝对差值以获得目前帧的目前宏块的最终平均绝对差值;根据目前帧的所述目前宏块的最终平均绝对差值计算目前帧的目前宏块的量化参数;以及输出目前帧的目前宏块的量化参数给量化器,从而使得量化器于相应于目前帧的目前宏块的量化参数的码率控制下接着产生压缩后视频码流。

目前宏块与上一宏块分别位于目前帧及上一帧的相同二维坐标,且上一帧的上一宏块的实际平均绝对差值反映相应于上一宏块的原始数据及预测数据间的差异程度。目前帧的目前宏块的实际平均绝对差值反映相应于目前宏块的原始数据及预测数据间的差异程度。

本发明可改善当视频序列的复杂度变化较大时产生的预测平均绝对差值的不准确及滞后性。

附图说明

图1是为传统的视频编码系统的方块图。

图2是依据本发明实施例的宏块层中的码率控制装置的方块图。

图3是依据本发明实施例的宏块层中的码率控制装置的方块图。

图4是依据本发明实施例的宏块层中的码率控制方法的方法流程图。

图5是依据本发明实施例的目前宏块与上一宏块间的对应示意图。

图6是依据本发明实施例的计算目前帧的目前宏块的实际平均绝对差值的硬件电路示意图。

图7是依据本发明实施例的计算目前帧的目前宏块的预测平均绝对差值的硬件电路示意图。

图8是依据本发明实施例的计算目前帧的目前宏块的增量的硬件电路示意图。

图9是依据本发明实施例的计算目前帧的目前宏块的增量的硬件电路示意图。

图10是依据本发明实施例的宏块层中的码率控制方法的方法流程图。

其中,附图中符号的简单说明如下:

VIN:原始视频序列;VOUT:压缩后视频码流;Q:量化参数;110:量化参数计算器;130:帧内及帧间模式预测器;150:转换器;170:量化器;OriPixels:原始像素;CstPixels:重建像素;210:帧内及帧间模式预测器;230:转换器;250:量化参数计算器;270:量化器;281:反量化器;283:反转换器;290:熵编码器;310:帧内及帧间模式预测器;330:转换器;350:量化参数计算器;370:量化器;381:反量化器;383:反转换器;390:熵编码器;S410~S470:方法步骤;510:上一帧;510_0:上一宏块;530:目前帧;530_0:目前宏块;RealMADi-1,0:上一帧的上一宏块的实际平均绝对差值;PredMADi,0:目前帧的目前宏块的预测平均绝对差值;OriPixel0,0~OriPixelm,n:原始像素;CstPixel0,0~CstPixelm,n:重建像素;610_0_0~610_m_n:比较器;630_0_0~630_m_n:切换器;O10,0~O1m,n、O20,0~O2m,n:切换器的输出端;650_0_0~650_m_n:减法器;670:加法器;RealMADi,j:第i帧的第j个宏块的实际平均绝对差值;RealMADi-1,j:第i-1帧的第j个宏块的实际平均绝对差值;a1、a2:线性预测模型的参数;710:乘法器;730:加法器;PredMADi,j:第i帧的第j个宏块的预测平均绝对差值;αi,j:第i帧的第j个宏块的调整系数;810:减法器;830:乘法器;Deltai,j:第i帧的第j个宏块的增量;910:加法器;FinMADi,j:第i帧的第j个宏块的最终平均绝对差值;S1010~S1050方法步骤。

具体实施方式

以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。

必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、操作处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、操作处理、元件、组件,或以上的任意组合。

于权利要求中使用如“第一”、“第二”、“第三”等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

图2是依据本发明实施例的宏块层中的码率控制装置的方块图。帧内及帧间模式预测器(intra-and-inter-mode predictor)210可使用现有的码率-失真最佳化(rate-distortion optimization,RDO)技术或其他演算法,为每一个宏块(macroblock,MB)在极大化视觉品质及极小化需要的比特率的条件下,获得最佳的帧内及帧间预测模式。宏块可为8x8、8x16、16x8、16x16或其他大小的块。帧内及帧间模式预测器210可使用全域搜寻(full search)的方式进行移动预估及帧内预测。转换器(transformer)230为每一个需要进行帧内编码的宏块,可使用现有的离散余弦转换(discrete cosine transform,DCT)、小波转换(wavelet transform)或其他转换演算法,用以将宏块的数据从空间域转为频域。量化参数计算器250可使用多种方式实施,例如以专用硬件电路(例如,包含完成以下所示功能的数字电路)或通用硬件(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行指令(instructions)、宏码(macrocode)或微码(microcode)时,提供之后所描述的功能。或者,量化参数计算器250可合并专用硬件电路及通用硬件实施。处理器可包含运算逻辑单元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。运算逻辑单元负责执行布林运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器负责位移运算及位旋转。量化器(quantizer)270逐元素地将每个从转换器230输出的宏块除以相应于量化参数的量化矩阵(quantization matrix),并且将每个计算后元素做四舍五入(round)。量化矩阵提供较多的解析度给较能被察觉的频率元素,并提供较少的解析度给较不能被察觉的频率,例如,较低频率相对于较高频率提供较多的解析度,使得更多元素可被转换为0,用以做最有效的编码。熵编码器(entropy encoder)290可编码从量化器270输出的每一个量化后宏块,将每一个量化后宏块中的固定长度的输入符号(input symbol)取代为相应可变长度的无前缀输出码字(variable-length prefix-free output codeword)。常用的熵编码演算法包含霍夫曼编码(Huffman coding)、算术编码(arithmetic coding)等。反量化器281及反转换器283分别执行量化器270及转换器230的逆运算,用以重建每一个从量化器270输出的量化后宏块。针对每一个宏块,量化参数计算器250不只依据预测平均绝对差值,更考虑量化后宏块及重建后宏块间的实际平均绝对差值,以获得更靠近真实情况的量化参数,从而获得更佳的码率控制。量化参数计算器250的运算细节将于之后的段落描述。

图3是依据本发明实施例的宏块层中的码率控制装置的方块图。帧内及帧间模式预测器310、转换器330、量化参数计算器350、量化器370、反量化器381、反转换器383及熵编码器390执行的功能分别相似于图2的帧内及帧间模式预测器210、转换器230、量化参数计算器250、量化器270、反量化器281、反转换器283及熵编码器290。因此,详细的技术内容可参考图2的说明,不再赘述。由于量化参数计算器350及量化器370可独立执行,因此,不同于图2,量化参数计算器350及量化器370可并行地连接至转换器330,提升运算效率。

图4是依据本发明实施例的宏块层中的码率控制方法的方法流程图。此方法可实施于量化参数计算器250或350,提供之后所描述的功能。

首先,计算目前帧的一个宏块(以下称目前宏块)的实际平均绝对差值(mean absolute difference,MAD),其中,目前帧的目前宏块的实际平均绝对差值反映相应于目前宏块的原始数据及重建后数据间的差异程度(步骤S410)。详细来说,于步骤S410,可使用公式(1)计算目前帧的目前宏块的实际平均绝对差值:

其中,RealMADi,j代表第i帧(目前帧)中第j个宏块(目前宏块)的实际平均绝对差值,M代表目前宏块的行(row)总数,N代表目前宏块的列(column)总数,PredPixelm,n代表从反转换器283或383取得的第i帧中第j个宏块中第m行第n列的预测像素值,OriPixelm,n代表从视频序列VIN取得的第i帧中第j个宏块中第m行第n列的原始像素值。RealMADi,j可储存于易失性存储器,用以让量化参数计算器250或350计算下一帧的量化参数时使用。于此须注意的是,传统的量化参数计算并不考虑实际平均绝对差值的因子,使得视频序列本身复杂度变化较大时,码率控制演算法会受到预测平均绝对差值的不准确及滞后性的影响。于一些实施例中,公式(1)可以指令、宏码或微码表示,并且于处理器载入及执行指令、宏码或微码时进行运算。于一些实施例中,公式(1)可以专用硬件电路实施。图6是依据本发明实施例的计算目前帧的目前宏块的实际平均绝对差值的硬件电路示意图。针对目前宏块的每一个像素,比较器610_m_n取得原始目前帧中第m行第n列的像素值OriPixelm,n及重建后目前帧中第m行第n列的像素值PredPixelm,n,m介于0至M间的整数,n介于0至N间的整数,比较像素值OriPixelm,n及PredPixelm,n。当OriPixelm,n大于或等于CstPixelm,n时,指示切换器630_m_n将像素值OriPixelm,n连接上输出端O1m,n,并且将像素值CstPixelm,n连接上输出端O2m,n。当OriPixelm,n小于CstPixelm,n时,指示切换器630_m_n将像素值OriPixelm,n连接上输出端O2m,n,并且将像素值CstPixelm,n连接上输出端O1m,n。减法器650_m_n连接上切换器630_m_n的输出端O1m,n及O2m,n,将输出端O1m,n的输出减去输出端O2m,n的输出,并且将运算结果输出至加法器670。加法器670加总减法器650_0_0至减法器650_m_n的输出,用以获得目前帧的目前宏块的实际平均绝对差值RealMADi,j。

接着,依据上一帧的相应宏块(以下称上一宏块)的实际平均绝对差值计算目前帧的目前宏块的预测平均绝对差值,其中,目前宏块与上一宏块分别位于目前帧及上一帧的相同二维坐标,且上一帧的上一宏块的实际平均绝对差值反映原始数据及重建后数据的差异程度(步骤S420)。图5是依据本发明实施例的目前宏块与上一宏块间的对应示意图。例如,帧510为视频序列(video sequence)中的第i-1帧(上一帧),且帧530为视频序列中的第i帧(目前帧)。宏块510_0为上一帧中的第0个宏块(上一宏块),且宏块530_0为目前帧中的第0个宏块(目前宏块)。步骤S420至少依据上一帧510的上一宏块510_0的实际平均绝对差值RealMADi-1,0计算目前帧530的目前宏块530_0的预测平均绝对差值PredMADi,0。于步骤S420,可使用如公式(2)所示的线性预测模型计算目前帧的目前宏块的预测平均绝对差值:

PredMADi,j=a1xRealMADi-1,j+a2;

其中,PredMADi,j代表第i帧(目前帧)中第j个宏块(目前宏块)的预测平均绝对差值,RealMADi-1,j代表第i-1帧(上一帧)中第j个宏块(上一宏块)的实际平均绝对差值,以及a1及a2为线性预测模型的参数,是依据历史数据使用最小二乘法(generalized least squares)拟合出的参数,分别代表线性预测模型的斜率(slope)与截距(intercept),可储存于易失性存储器或非易失性存储器中。于一些实施例中,公式(2)可以指令、宏码或微码表示,并且于处理器载入及执行指令、宏码或微码时进行运算。于一些实施例中,公式(2)可以专用硬件电路实施。图7是依据本发明实施例的计算目前帧的目前宏块的预测平均绝对差值的硬件电路示意图。乘法器710将参数a1乘上目前帧的目前宏块的实际平均绝对差值RealMADi,j,并且输出结果至加法器730。加法器730将乘法器710的输出加上参数a2,用以获得目前帧的目前宏块的预测平均绝对差值PredMADi,j。

接着,依据目前帧的目前宏块的预测平均绝对差值及实际平均绝对差值、以及目前帧的目前宏块之前所有宏块的累计增量计算目前帧的目前宏块的调整系数(步骤S430)。于步骤S430,可使用公式(3)计算目前帧的目前宏块的调整系数:

其中,αi,j代表第i帧(目前帧)中第j个宏块(目前宏块)的调整系数,代表第i帧(目前帧)中从第0个宏块至第j-1个宏块的累计增量,以及RealMADi,j代表由步骤S410计算的第i帧(目前帧)中第j个宏块的实际平均绝对差值。0<αi,j≤1。于一些实施例中,公式(3)可以指令、宏码或微码表示,并且于处理器载入及执行指令、宏码或微码时进行运算。

接着,依据目前帧的目前宏块的预测平均绝对差值、实际平均绝对差值及调整系数计算目前帧的目前宏块的增量(步骤S440)。于步骤S440,可使用公式(4)计算目前帧的目前宏块的增量:

Deltai,j=αi,jx(RealMADi,j-PredMADi,j);

其中,Deltai,j代表第i帧(目前帧)中第j个宏块的增量,αi,j代表第i帧(目前帧)中第j个宏块的调整系数,RealMADi,j代表第i帧(目前帧)中第j个宏块的实际平均绝对差值,以及PredMADi,j代表第i帧(目前帧)中第j个宏块的预测平均绝对差值。Deltai,j可储存于易失性存储器,用以让量化参数计算器250或350计算第i帧(目前帧)的下一宏块的调整系数时使用(如步骤S430所示)。于一些实施例中,公式(4)可以指令、宏码或微码表示,并且于处理器载入及执行指令、宏码或微码时进行运算。于一些实施例中,公式(4)可以专用硬件电路实施。图8是依据本发明实施例的计算目前帧的目前宏块的增量的硬件电路示意图。减法器810将目前帧的目前宏块的实际平均绝对差值RealMADi,j减去目前帧的目前宏块的预测平均绝对差值PredMADi,j,并且输出结果至乘法器830。乘法器830将减法器810的输出乘以目前帧的目前宏块的调整系数αi,j,用以获得目前帧的目前宏块的增量Deltai,j。

接着,依据目前帧的目前宏块的预测平均绝对差值及增量计算目前帧的目前宏块的最终平均绝对差值(步骤S450)。于步骤S450,可使用公式(5)计算目前帧的目前宏块的最终平均绝对差值:

FinMADi,j=PredMADi,j+Deltai,j;

其中,FinMADi,j代表第i帧(目前帧)中第j个宏块(目前宏块)的最终平均绝对差值,PredMADi,j代表第i帧(目前帧)中第j个宏块(目前宏块)的预测平均绝对差值,以及Deltai,j代表第i帧(目前帧)中第j个宏块(目前宏块)的增量。于一些实施例中,公式(5)可以指令、宏码或微码表示,并且于处理器载入及执行指令、宏码或微码时进行运算。于一些实施例中,公式(5)可以专用硬件电路实施。图9是依据本发明实施例的计算目前帧的目前宏块的增量的硬件电路示意图。加法器910将目前帧的目前宏块的预测平均绝对差值PredMADi,j加上目前帧的目前宏块的增量Deltai,j,用以获得目前帧的目前宏块的最终平均绝对差值FinMADi,j。

接着,至少依据目前帧的目前宏块的平均绝对差值计算目前帧的目前宏块的量化参数(步骤S460)。于步骤S450,可使用公式(6)计算目前帧的目前宏块的量化参数:

其中,Qi,j代表第i帧(目前帧)中第j个宏块的量化参数,f(i,j)代表第i帧(目前帧)中第j个宏块的码流预算,mh(i,j)代表第i帧(目前帧)中第j个宏块的语法元素码流长度(syntax element length),c1及c2代表量化参数预测模型的参数(预设常数),以及FinMADi,j代表第i帧(目前帧)中第j个宏块的最终平均绝对差值。于一些实施例中,公式(6)可以指令、宏码或微码表示,并且于处理器载入及执行指令、宏码或微码时进行运算。

最后,输出目前帧的目前宏块的量化参数Qi,j给量化器270,使得量化器270可将从转换器230输出的目前帧的转换后目前宏块进行量化运算(步骤S470)。

从一个方面来说,本发明实施例提出的宏块层中的码率控制方法,包含执行调整程序,针对目前帧中的每一个宏块,根据实际平均绝对差值调整预测平均绝对差值,用以获得接近实际状况的最终平均绝对差值,使得量化参数计算器250可在线性预测模型下改善当视频序列的复杂度变化较大时产生的预测平均绝对差值的不准确及滞后性。图10是依据本发明实施例的宏块层中的码率控制方法的方法流程图。此方法可实施于量化参数计算器250或350,提供之后所描述的功能。首先,计算目前帧的目前宏块的预测平均绝对差值PredMADi,j(步骤S1010),计算目前帧的目前宏块的实际平均绝对差值RealMADi,j(步骤S1020),执行调整程序,用以根据目前帧的目前宏块的实际平均绝对差值调整目前帧的目前宏块的预测平均绝对差值以获得接近实际状况的目前帧的目前宏块的最终平均绝对差值(步骤S1030),根据目前帧的目前宏块的最终平均绝对差值计算目前帧的目前宏块的量化参数(步骤S1040),以及输出目前帧的目前宏块的量化参数给量化器270或370,从而使得量化器270或370及熵编码器270或290可于相应于目前帧的目前宏块的码率控制下接着产生压缩后视频码流VOUT(步骤S1050)。步骤S1010的计算细节可参考步骤S420的描述,不再赘述。步骤S1020的计算细节可参考步骤S410的描述,不再赘述。步骤S1030的调整程序可参考步骤S430至S450的描述,不再赘述。步骤S1040的计算细节可参考步骤S460的描述,不再赘述。

步骤S430所述的第i帧(目前帧)中第j个宏块的调整系数αi,j代表调整机制中的预测平均绝对差值的调整强度。当αi,j越大时,码率控制越需要考虑实际平均绝对差值。此外,由于一个帧的码流预算在开始编码时就已经决定,且为了让此帧中所有宏块分配到的码流预算总合尽量接近此帧的码流预算,αi,j的动态调整也用来抑制调整强度偏离0的趋势。

虽然图2-3及图6-9中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图4、图10的方法流程图采用特定的顺序来执行,但是在不违法发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。

以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1