首页> 中国专利> 视频转码的帧级码率控制方法及转码器

视频转码的帧级码率控制方法及转码器

摘要

本发明公开了一种视频转码的帧级码率控制方法及转码器。其中,该方法包括:转码器对编码视频数据流进行解码;转码器获取解码后视频数据流中的帧信息,并根据帧信息建立率失真模型;转码器根据率失真模型进行编码,通过发明,能够准确控制输出码率并提高图像质量的平稳性。

著录项

  • 公开/公告号CN101888542A

    专利类型发明专利

  • 公开/公告日2010-11-17

    原文格式PDF

  • 申请/专利权人 北京数码视讯科技股份有限公司;

    申请/专利号CN201010205384.2

  • 发明设计人 王智;

    申请日2010-06-11

  • 分类号H04N7/24(20060101);H04N7/26(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人吴贵明

  • 地址 100085 北京市海淀区上地信息产业基地开拓路15号数码视讯大厦

  • 入库时间 2023-12-18 01:05:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-01-09

    授权

    授权

  • 2010-12-29

    实质审查的生效 IPC(主分类):H04N7/24 申请日:20100611

    实质审查的生效

  • 2010-11-17

    公开

    公开

说明书

技术领域

本发明涉及一种视频转码的帧级码率控制方法及转码器。

背景技术

随着人们生活水平的日益提高,对电视节目的种类的需求伴随着提高。对数字电视供应商、运营商来说,如何能够在有限的带宽限制范围内,提供更多种类的节目,实为大势所趋。而如果通过卫星电视传播信号,带宽就更加紧迫,视频码率压缩尤其可贵。

对已编码节目进行码率压缩,属于转码中的一种处理方法,称为降码率转码。传统的方案是用解码器和编码器级联,这种方式硬件复杂度太高,不实用。另外一种方案是继续使用已编码节目的运动矢量和宏块类型,只进行部分解码和部分编码。这种方案省掉了视频编码中最耗时的运动估计和宏块类型选择等模块,以及解码中的运动补偿等模块,大大降低了计算复杂度,称为快速转码算法。

码率控制是降码率转码中的重要组成部分,通过改变视频图像的编码比特数来控制输出码率,来满足传输通道的要求。经典的码率控制算法主要有:H.261的RM8(Reference Model 8),MPEG-2中的TM5(Test Model 5),H.263中的TMN8(Test Model Near-term8),MPEG-4中的VM8(Verification Model 8)和H.264的JM10.1。这些传统率控算法是建立在视频相邻帧高度相似的基础上的,用前面帧计算获取二次模型参数预测当前帧。如果发生场景切换或者变化,此类二次模型就不能准确反映当前帧的率失真情况,实际产生的帧级比特数和目标比特数就会产生很大的偏差,进而导致码率控制的不精确,会引起图像质量的波动。

针对相关技术中难以准确控制输出码率,进而导致图像质量不稳定的问题,目前尚未提出有效的解决方案。

发明内容

针对难以准确控制输出码率,进而导致图像质量不稳定的问题而提出本发明,为此,本发明的主要目的在于提供一种视频转码的帧级码率控制方法及转码器,以解决上述问题。

为了实现上述目的,根据本发明的一个方面,提供了一种视频转码的帧级码率控制方法。

根据本发明的视频转码的帧级码率控制方法包括:转码器对编码视频数据流进行解码;转码器获取解码后视频数据流中的帧信息,并根据帧信息建立率失真模型;转码器根据率失真模型对所述视频数据流进行编码。

进一步地,转码器获取编码后视频数据流中的帧信息包括:转码器获取帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0,根据帧信息建立率失真模型包括:根据帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0建立率失真模型。

进一步地,转码器获取源平均量化级Q0之后,上述方法还包括:对源帧做n次量化,得到平均量化级Qi;计算量化级为平均编码量化级Qi时的帧的预测比特数Ti;根据平均量化级Qi和预测比特数Ti计算帧的目标比特数T_frame;根据目标比特数T_frame得到率失真模型。

进一步地,根据目标比特数T_frame得到率失真模型包括:在目标比特数T_frame两侧取两个点;根据两个点得到帧的率失真模型常数a1和a2;根据率失真模型常数a1和a2得到率失真模型。

进一步地,通过以下公式根据率失真模型常数a1和a2得到率失真模型:R(q)=a1×q-1+a2×q-2,其中,q表示量化级或者量化因子,R(q)表示码率曲线。

进一步地,预测比特数Ti通过以下方式来得到:统计平均量化级为Qi时,当前帧的零系数在总系数中所占的比例ρi;根据采样点(ρi,Qi)计算帧的ρ域线性关系比例系数θ;采用以下公式计算预测比特数Ti:Ti=θ(1-ρi),其中,0≤i≤n,i表示n次量化中的第i次,ρi是第i次量化后计算出的参数。

进一步地,比例常数θ通过以下方式来得到:θ=T0/(1-ρ0)。

进一步地,以帧的解码平均量化比a(i)作为步长,对源帧做n次量化,其中,采用以下公式得到平均量化级Qi:Qi=Qi-1+a(i),其中,1≤i≤n+1,0≤a(i)≤31,Qi∈[1,31]。

为了实现上述目的,根据本发明的另一方面,提供了一种转码器。该转码器包括:解码模块,用于对编码视频数据流进行解码;建立模块,用于获取解码后视频数据流中的帧信息,并根据帧信息建立率失真模型;编码模块,用于根据率失真模型进行编码。

进一步地,建立模块还包括:获取子模块,用于获取帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0;建立子模块,用于根据帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0建立率失真模型。

通过本发明,采用转码器对编码视频数据流进行解码;转码器获取解码后视频数据流中的帧信息,并根据帧信息建立率失真模型;转码器根据率失真模型进行编码,解决了难以准确控制输出码率,进而导致图像质量不稳定的问题,进而达到了准确控制输出码率的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的视频转码的帧级码率控制方法的流程图;

图2是根据本发明实施例的本发明实施例的视频转码的帧级码率控制方法的流程图;

图3是根据本发明实施例的转码器的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

根据本发明的实施例,提供了一种视频转码的帧级码率控制方法及转码器。

图1是根据本发明实施例的视频转码的帧级码率控制方法的流程图。

如图1所示,该方法包括如下的步骤S102至步骤S106:

步骤S102,转码器对编码视频数据流进行解码。

步骤S104,转码器获取解码后视频数据流中的帧信息,并根据帧信息建立率失真模型。

转码器获取编码视频数据流中的帧信息可以包括:转码器获取帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0,根据帧信息建立率失真模型包括:根据帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0建立率失真模型。

转码器获取源平均量化级Q0之后,上述方法还可以包括:对源帧做n次量化,得到平均量化级Qi;计算帧的量化级为平均编码量化级Qi时的帧的预测比特数Ti;根据平均量化级Qi和预测比特数Ti计算帧的目标比特数T_frame;根据目标比特数T_frame得到率失真模型,其中,n的取值是在【1,31-Q0】之间的整数,优选地,可以取4或5。

根据目标比特数T_frame得到率失真模型包括:在目标比特数T_frame两侧取两个点;根据两个点得到帧的率失真模型常数a1和a2;根据率失真模型常数a1和a2得到率失真模型。

步骤S106,转码器根据率失真模型进行编码。

通过S102和S104的n次量化来获取当前帧采样点,再根据ρ域模型进行参数转换,从而只根据当前帧的信息建立二次率失真模型,避免了用已处理帧预测当前帧在场景切换或图像变化剧烈时产生的分配误差,进而保证S106编码时输出码率的准确控制和图像质量的平稳。

通过上述的方法,能够准确地控制输出码率。

在ρ域的码率控制算法中,ρ表示变换系数量化后零系数的个数占所有系数的百分数。大量的实验及理论证明:对于视频信号,ρ与纹理部分编码比特率成线性关系。在参考文献He Z,Kim Y K,Mitts S K.Low-delay rate control for DCT video coding via p-domain8ource modeling[J].IEEE Transactions on Circuits and Systems for Video Technology.2001,11(8):928-940.ρ域的码率控制算法已经在H.263中表现出了极好的性能。通过获得变换系数的分布,可得ρ与量化参数的一一对应关系。因此,以ρ为中介,由目标码率可唯一地确定量化参数。

在图像压缩国际标准JPEG,MPEG2,H.263和MPEG4中,比特率和ρ存在线性关系,且可用以下线性模型表示:

R(ρ)=θ(1-ρ)    公式(1)

其中,R为比特率,θ为斜率常量。

在低运动视频序列编码中,由于相邻帧之间相关程度较高,已编码帧率失真R-D(Rate-Distortion)关系可用来预测待编码帧的特性。它的R-D分析建立在下述两个假设基础上:

a.相邻的视频帧高度相似,并有同样的码率-率失真曲线。

b.码率曲线R(q)可以近似地以二次方程表示:

R(q)=a1×q-1+a2×q-2    公式(2)

其中,q表示量化级或者量化因子。

本发明的码率控制也基于二次模型(率失真模型)。

图2是根据本发明实施例的本发明实施例的视频转码的帧级码率控制方法的流程图。

如图2所示,该方法可以包括:

部分解码:例如,对头数据和DCT数据的解码。头数据沿用编码流携带的信息,DCT数据解到变换域。

预处理:获取当前帧采样点,用于模型计算。

参数转换:将采样点转换成易于模型计算的数据形式。

模型计算:根据T_frame计算得到帧级编码量化级Qp。

比特分配:码率控制算法的一部分。根据输出码率和复杂度计算当前帧的纹理目标比特数T_frame。

部分编码:头数据和DCT数据的编码。使用新的编码量化级Qp。

状态更新:码率控制算法的一部分。根据实际编码比特数更新虚拟缓冲区,更新码率控制参数状态。

以下详细介绍预处理、参数转换、模型计算三部分。

预处理:统计当前处理帧信息、数据采集。

当前处理帧信息包括:源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0。

数据采集:对源帧做n次量化。n的数值与图像类型有关。实例中设定I帧取5,P帧取4,B帧取3。第i次量化使用的量化级Qi=Qi-1+a(i),其中1≤i≤n+1,0≤a(i)≤31,如果Qi超出[1,31]的范围,将Qi限制在[1,31]。统计平均量化级为Qi时,当前帧的零系数在总系数中所占的比例ρi。通过n次量化,得到n+1个采样点(ρi,Qi),其中,i表示n次量化中的第i次,ρi是第i次量化后计算出的参数。

参数转换:由公式1可以得到,θ=T0/(1-ρ0)。根据ρ域的线性关系,对于同一帧,θ值是固定不变的。也就是说,(Ti,Qi)同样存在相同的线性关系。这样,计算n次,可以得到编码量化级Qi时预测到的比特数Ti,其中0≤i≤n。这样就得到了当前处理帧的n+1个模型的采样点(Ti,Qi)。

模型计算:比特分配模块计算得到处理帧的目标比特数T_frame。在采样点里选择大小位于T_frame两侧相邻的两个点,左侧点Ti、右侧点Ti+1作为当前帧的模型计算点。如果T<Tn,没有右侧点,使用左侧点T0和Tn做为模型计算点。如果T>T0,不需要更新模型,只需将编码量化级Q设为Q0即可。如果T≤T0,将模型计算点(Ti,Qi)、(Ti+1,Qi+1)(或者(T0,Q0)、(Tn,Qn))放到公式2里。此时公式2里有两个未知变量a1和a2,计算得到模型参数a1和a2。再将帧级目标比特数T_frame放到公式2中,得到T=a1×q-1+a2×q-2。这是一个关于q的二次方程,根据求根公式,可以得到q1和q2。实际有效的量化级Q的范围在[Q0,31]之间。去掉不符合要求的q,如果q1和q2都不满足要求,使用采样数据右侧点的量化级Qi+1作为编码使用的QP。

在根据本发明的视频转码中帧级码率控制方法中,使用当前处理帧的信息来获取当前处理帧的二次率失真曲线参数的码率控制方法,其特征包括以下步骤:

步骤S301,统计当前处理帧信息,包括源帧纹理比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0。

步骤S302,对源帧做n次量化,使用平均量化级Qi。例如,以当前处理帧解码平均量化比为基值,以步长a(i)递增获得Qi。

Qi=Qi-1+a(i),其中1≤i≤n+1,0≤a(i)≤31,Qi∈[1,31]。

步骤S303,统计量化级为平均量化级为Qi时,当前帧的零系数在总系数中所占的比例ρi。

步骤S304,得到当前帧的n+1个采样点(ρi,Qi)。

步骤S305,计算当前处理帧ρ域线性关系比例系数θ。例如,可以通过以下公式来根据源帧信息得到比例系数θ:

θ=T0/(1-ρ0)。

步骤S306,计算当前帧的平均编码量化级Qi时预测到的当前处理帧的预测比特数Ti。例如,根据ρ域比例系数的同一性,按照通过多次量化得到的统计信息来计算当前处理帧的预测比特数Ti:

Ti=θ(1-ρi),0≤i≤n。

步骤S307,根据ρ域模型,得到当前帧n+1个采样点的转换形式(Ti,Qi)。

步骤S308,根据比特分配模块计算得到当前处理帧的目标比特数T_frame,在当前处理帧采样点里选择大小位于T_frame两侧最相邻的两个点,左侧点Ti、右侧点Ti+1作为模型的两个计算点。

步骤S309,由两个计算点得到当前处理帧的二次模型参数a1和a2。

例如,当前处理帧二次模型参数可以根据如下公式获得:

R(q)=a1×q-1+a2×q-2

通过两个计算点(Ti,Qi)和(Ti+1,Qi+1)得到a1和a2。

例如,可以通过以下方法来计算a1和a2:

将(Ti,Qi)和(Ti+1,Qi+1)代入方程:

R(q)=a1×q-1+a2×q-2,

得到:Ti=a1×Qi-1+a2×Qi-2;

Ti+1=a1×Qi+1-1+a2×Qi+1-2,

其中,上述两个方程里只有a1和a2两个未知数,因而可以计算得到a1和a2。

步骤S310,由当前处理帧帧级目标比特数T_frame计算得到帧级量化级QP。

优选地,在该步骤中,通过当前处理帧二次模型计算得到QP,其中:

T_frame=a1×q-1+a2×q-2。

其中,QP的范围在[Q0,31]之间。如果上述方程无解,使用当前处理帧右侧点的量化级Qi+1作为编码使用的QP。

从以上的描述中,可以看出,本发明实现了如下技术效果:

本发明可以利用快速转码中特有的编码信息,通过预处理模块获取当前帧采样点,再根据ρ域模型进行参数转换,从而只根据当前帧的信息建立二次率失真模型,解决了用已处理帧预测当前帧在场景切换或图像变化剧烈时产生的分配误差,进而保证输出码率的准确控制和图像质量的平稳。

本发明基于二次率失真模型,利用快速转码中特有的编码信息,根据当前帧来获得模型参数,可以准确地获取当前帧目标比特数,消除了场景切换时带来的预测误差,码率控制更加精确。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图3所示,该转码器包括:解码模块301、建立模块303和编码模块305。

其中,解码模块301用于对编码视频数据流进行解码;建立模块303用于获取解码后视频数据流中的帧信息,并根据帧信息建立率失真模型;编码模块305用于根据率失真模型进行编码。

其中,建立模块303还可以包括:获取子模块用于获取帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0;建立子模块用于根据帧信息的源帧总比特数T0、源平均量化级Q0、源帧的零系数在总系数中所占的比例ρ0建立率失真模型。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号