一种率失真码率控制的方法和装置的制作方法

文档序号:7920290阅读:137来源:国知局
专利名称:一种率失真码率控制的方法和装置的制作方法
技术领域
本发明涉及多媒体数据处理技术领域,特别是指一种率失真码率控制的方法和装置。

背景技术
码率控制是实时视频编码的关键技术,它决定着编码图像的质量;特别是在无线低码率实时视频通信中,码率控制算法至关重要。率失真理论在视频编码中的应用很广,它提供一种在一定编码比特率限制下压缩出最佳图像质量的思想。
首先需要我们分析和估计视频编码器的码率和失真的关系(R-D),经常把这种关系也可分解成码率与量化的关系(R-Q)、失真与量化(D-Q)的关系,即R(q)、D(q)。从率失真理论和视频编码原理可知,较小的Q值产生较高的编码比特率和较低的图像失真。为了在目标码条件限制下使传输的压缩视频信号失真最小,就要在编码比特率和图像失真之间进行一个恰当的折衷。
在视频编码中也可以描述为在保证比特率R不超过最大比特率Rmax的条件下,使图像失真D达到最小化,即min{D}限制条件R≤Rmax。可以通过选择最优的编码参数给出“最好”的图像质量(最低的失真),并且不超过目标比特率。视频序列编码得到相应的编码比特率(R)和解码图像质量(或失真D),两者结合,即形成一个R-D工作点。
率失真最优的码率控制算法既可以是对整个序列的比特数控制和分配,使得编码每幅图像的率失真代价最小,以至整个编码序列最优,也可以是对一帧编码图像的比特数约束,使得编码图像中的每个宏块最优。
目前解决优化的问题常用的方案主要先假定待编码块/图像互不相关的,即各编码块/图像的失真、比特率与彼此所采用的量化参数无关。假设对于第k个块(或图像)采用的量化参数为Qk,其编码比特数、图像失真都为量化参数的函数,分别表示为Rk(Qk)、Dk(Qk)。并在一定的比特数R的约束下,找到一组量化参数Q*,使得总失真最小,即 其中约束条件为 这是一个约束性求极值问题,因此可以通过拉格朗日求极值法求解,首先将这个约束性求极值问题转换成无约束条件下的极值问题,即求下式的极值 由于块间的失真、比特率互不相关,可以分别对每一块求最小值。利用函数最小值时导数为零的性质,分别对上式进行即λ和Qk求导,即可得到最佳量化参数Q*,并使用量化参数控制编码的比特数。
率失真优化首先要确定相应的码率模型和失真模型,这些模型主要有对数模型、指数模型、或二次多项式模型,但这些模型不是复杂、运算量大,就是较简单、得出的画面比较粗糙,不能反映码率和量化步长的真正关系,不能在满足码率时使画质最优。


发明内容
有鉴于此,本发明在于提供一种率失真码率控制的方法和装置,以解决上述码率控制方法中,存在无法保证满足码率且画质最优的问题。
为解决上述问题,本发明提供一种率失真码率控制的方法, 获取当前帧中所处理宏块的信息,所述信息包括宏块i的像素方差值σi,宏块i的头信息Hi,宏块i的目标比特数Ri,整帧图像的目标比特数Rt,宏块i表示当前宏块的宏块号; 运算码率函数和失真函数; 所述码率函数为 所述失真函数为 其中, ai、bi为待定系数,ρi为零系数比例; 通过公式 运算出当前宏块的零系数比例ρi,其中,N为已经编码的宏块序号,N≥1; 通过公式获得量化步长qi,使用量化步长qi控制当前宏块的比特数量。
优选的,所述宏块i的头信息Hi为编码模式和运动矢量。
优选的,还包括如果所述当前处理的宏块i中不能得到其方差值σi,则σi通过公式获得,σp来表示前一帧宏块i的方差,σc表示前一宏块的方差。
本发明还提供一种率失真码率控制的装置,包括 信息单元,用于获取当前帧中所处理宏块的信息,所述信息包括宏块i的像素方差值σi,宏块i的头信息Hi,宏块i的目标比特数Ri,整帧图像的目标比特数Rt,宏块i表示当前宏块的宏块号; 运算单元,用于通过信息单元获取的信息运算出率失真函数、零系数比例ρi和量化步长qi; 运算结果按照下述公式获得 所述码率函数为 所述失真函数为 其中, ai、bi为待定系数,ρi为零系数比例; 通过公式 运算出当前宏块的零系数比例ρi,其中,N为已经编码的宏块序号,N≥1; 通过公式获得量化步长qi,使用量化步长qi控制当前宏块的比特数量; 码率控制单元,用于按照运算单元运算出的量化步长qi控制当前宏块的比特数量。
本发明的方法和装置可以快速对每帧的数据比特数量进行精确控制,运算过程简单,且得出的画面质量平滑、细腻,满足码率且保证画面质量最优。



图1是本发明方法实施例的流程图; 图2是本发明装置实施例的结构图。

具体实施例方式 为清楚说明本发明中的方案,下面给出优选的实施例并结合附图详细说明。
参见图1,图1是实施例的流程图,包括 步骤11获取当前帧中所处理宏块的信息; 宏块的信息包括宏块i的像素方差值σi,宏块i的头信息Hi(如编码模型、运动矢量等),整帧图像的目标比特数Rt,宏块i表示当前宏块层的宏块号; 步骤12通过获得的宏块信息得到码率函数和失真函数; 其中,码率函数为 其中σi表示宏块方差值大小,Ri表示当前宏块的目标比特数,Hi表示当前帧的宏块头信息比特数,ai、bi为待定系数,在编码过程中不断更新。
根据一元线性回归原理可知,如果随机变量Y与x之间存在着某种相关关系,对于x取定一组不完全相同的值x1,x2,...,xn,设Y1,Y2,...,Yn分别是在x1,x2,...,xn处对Y的独立观察结果,可以利用这些样本值来估计Y关于x的回归函数u(x)(即Y的数学期望E(Y)=u(x))。用回归函数u(x)作为Y的近似,其均方误差E[(Y-u(x))2]为最小。如果u(x)为线性函数u(x)=ax+b,其中a为回归系数,此时估计u(x)的问题就成了求一元线性回归问题。用最大似然估计法来估计未知参数a,b,解得估计值


其中 用估值



代入回归函数u(x),即得为Y关于x的经验回归函数。
新的码率模型中对比特数R的计算类似于线性回归问题的求解,即已知ρ求编码宏块的编码比特数R,它们的关系也是线性关系,所以我们采用线性回归的方法来计算参数a和b。每编码完成一个宏块,就计算更新参数a,b,还有参加计算点数的个数和有效性选择问题。为了计算简单点,选取最近的10-20个点进行回归计算,如果某个实际的R和ρ完全不是线性关系,那么这点就排除在外,不进行计算。
对序列第一帧参数b初始值设为0,a的值为7-8,后面每个编码宏块的参数b就按公式(3)计算得到;当开始新的一帧图像编码时,参数b也是取当前图像组(GOP)的平均b值;若开始新的序列,则此帧图像参数b取前一GOP的均值。
失真函数为 由于编码图像比原始图像的质量下降主要是量化产生的,若已知量化系数,则失真为(以大多数量化为零的范围为0.5q) 根据信源满足拉普拉斯分布,即 其中-∞<x<∞,λ为分布参数,而且λ和标准方差σ成反比,即 或 把公式(6)、(7)代入公式(5)中得 (8) 令则因为低码率下图像满足其中σ为图像的方差且Q为量化系数(也为q);所以 又 当-1<x<1 把公式(10)代入(8)得 (11) 又令t=1-ρ=e-0.5λq代入(11)式得 (12) 把ρ=1-t代入式(12)就可以得到基于ρ域的失真度量函数 对一个宏块i的失真即为 步骤13通过率失真函数运算当前宏块i的零系数比例ρi; 设一帧图像有N个宏块,第i(i=1,2,...,N)个宏块的零系数比例ρi,则对于N个宏块的一帧图像的率失真最优求解可用拉格朗日求极值法来处理,即求下式的最小值 由公式(1)可得 Ri=aiσi×(1-ρi)+biσi+Hi (14) 把码率函数(14)和失真函数(4)分别代入(13)式得 其中ρi表宏块i的零系数比例; σi表宏块i的像素方差值; Hi表宏块i的头信息(如编码模型、运动矢量等); ai、bi为码率模型中参数, Rt表整帧图像的目标比特数。
(14)式分别对λ和ρi求导,得 这样通过率失真最优就得到了零系数比例ρi的计算公式(15)。由于在编码过程中,运动估计会产生SAD(像素差值绝对值和),为了减少运算量,视频编码中常用MAD(平均像素差值绝对值)来代替宏块方差进行运算,我们也可采用(MAD)来代替方差σi。实时编码过程是按宏块排列顺序进行量化编码一次完成,不可能先得到所有宏块的相关参数如σi、Hi、ai和bi后再来确定每个宏块的量化系数;所以我们在实际编码计算零系数比例ρi时,N的值为已编码宏块个数,而不是整帧图像总的宏块个数。
步骤14通过零系数比例ρi获得量化步长qi; 采用参数模型来估计变换系数的分布。根据许多研究对图像视频编码的DCT系数分布进行的统计分析,综合考虑信源模型的简单性及模型与实际数据匹配精度,拉普拉斯分布是最佳的模型。拉普拉斯分布是双边指数函数 其中-∞<x<∞,λ为分布参数,而且λ和标准方差σ成反比,即 或 当信源为拉普拉斯分布,则量化产生零系数比例ρ为(常用量化算法为(i±0.5q)=iq) 通过码率模型得到ρi值后,就可用式(17)计算得到量化步长qi,由qi控制当前宏块的比特数量。
步骤15通过得到量化步长qi控制当前宏块的比特数量。
上面的实施例详细说明了本发明的方法,下面给出实施例详细说明本发明的装置。
参见图2,该装置包括 信息单元,用于获取当前帧中所处理宏块的信息,所述信息包括宏块i的像素方差值σi,宏块i的头信息Hi,宏块i的目标比特数Ri,整帧图像的目标比特数Rt,宏块i表示当前宏块的宏块号; 运算单元,用于通过信息单元获取的信息运算码率函数和失真函数、零系数比例ρi和量化步长q; 运算结果按照下述公式获得 所述码率函数为 所述失真函数为 其中, ai、bi为待定系数,ρi为零系数比例; 通过公式 运算出当前宏块的零系数比例ρi,其中,N为已经编码的宏块序号,N≥1; 通过公式获得量化步长qi,使用量化步长qi控制当前宏块的比特数量; 码率控制单元,用于按照运算单元运算出的量化步长qi控制当前宏块的比特数量。
上面详细描述了本发明的实施例,通过实施例中的方法和装置可以快速对每帧的数据比例数量进行量化控制,运算过程简单,且得出的画面质量平滑、细腻,满足码率和量化步长达到最优,并保证画面质量。
对于本发明各个实施例中所阐述的方法和装置,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1、一种率失真码率控制的方法,其特征在于,包括
获取当前帧中所处理宏块的信息,所述信息包括宏块i的像素方差值σi,宏块i的头信息Hi,宏块i的目标比特数Ri,整帧图像的目标比特数Rt,宏块i表示当前宏块的宏块号;
运算出码率函数和失真函数;
所述码率函数为
所述失真函数为
其中,
ai、bi待定系数,ρi为零系数比例;
通过公式运算出当前宏块的零系数比例ρi,其中,N为已经编码的宏块序号,N≥1;
通过公式获得量化步长qi,使用量化步长qi控制当前宏块的比特数量。
2、根据权利要求1所述的方法,其特征在于,所述宏块i的头信息Hi为编码模型或运动矢量。
3、根据权利要求1所述的方法,其特征在于,还包括如果所述当前处理的宏块i中不能得到其方差值σi,则σi通过公式获得,σp来表示前一帧宏块i的方差,σc表示前一宏块的方差。
4、一种率失真码率控制的装置,其特征在于,包括
信息单元,用于获取当前帧中所处理宏块的信息,所述信息包括宏块i的像素方差值σi,宏块i的头信息Hi,宏块i的目标比特数Ri,整帧图像的目标比特数Rt,宏块i表示当前宏块层的宏块号;
运算单元,用于通过信息单元获取的信息运算出率失真函数、零系数比例ρi和量化步长qi;
运算结果按照下述公式获得
所述码率函数为
所述失真函数为
其中,
ai、bi为待定系数,ρi为零系数比例;
通过公式运算出当前宏块的零系数比例ρi,其中,N为已经编码的宏块序号,N≥1;
通过公式获得量化步长qi,使用量化步长qi控制当前宏块的比特数量;
码率控制单元,用于按照运算单元运算出的量化步长qi控制当前宏块的比特数量。
全文摘要
本发明公开了一种率失真码率控制的方法,包括获取当前帧中所处理宏块的信息,所述信息包括宏块i的像素方差值σi,宏块i的头信息Hi,宏块i的目标比特数Ri,整帧图像的目标比特数Rt,宏块i表示当前宏块的宏块号;通过率失真函数运算出零系数比例和量化步长,并使用量化步长控制当前宏块的比特数量。本发明还提供一种率失真码率控制的装置,包括信息单元、运算单元、码率控制单元。本发明的方法和装置可以快速精确对每帧的数据比特数进行控制,运算过程简单,可得到最优量化步长和最优的图像质量。
文档编号H04N7/24GK101389012SQ200810168858
公开日2009年3月18日 申请日期2008年9月28日 优先权日2008年9月28日
发明者沈未名, 黄晓平, 种衍文, 万守杰, 杨黎东, 广 方, 伟 李, 宋绘宏, 盛 鲁 申请人:湖北科创高新网络视频股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1