CN101420601B - 视频编码中码率控制的方法及装置 - Google Patents
视频编码中码率控制的方法及装置 Download PDFInfo
- Publication number
- CN101420601B CN101420601B CN2008100624279A CN200810062427A CN101420601B CN 101420601 B CN101420601 B CN 101420601B CN 2008100624279 A CN2008100624279 A CN 2008100624279A CN 200810062427 A CN200810062427 A CN 200810062427A CN 101420601 B CN101420601 B CN 101420601B
- Authority
- CN
- China
- Prior art keywords
- frame
- value
- bit number
- data packet
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000015654 memory Effects 0.000 claims description 32
- 238000013139 quantization Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 101100099846 Arabidopsis thaliana TMN8 gene Proteins 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频编码中码率控制的方法及装置,本发明的码率控制方法采用了简易的规则确定帧级QP值,另外还可以在得到帧级QP值后,在编码每帧的过程中,统计生成的比特数,并按照固定比特数划分数据包。数据包最大的尺寸为一帧。在帧级QP值的基础上,根据当前帧已经生成的实际比特数,对于每个数据包进行量化系数QP的调整。同时本发明提出了两套相应的码率控制装置。整个设计在保证编码质量的前提下,复杂度低并且容易实现。
Description
技术领域
本发明涉及数字图像信号处理技术,特别地,涉及视频编码中码率控制的方法与装置。
背景技术
由于视觉信号的时间变化性,由编码器输出的码流的码率必定是可变的,而且并没有规律性可言。为了能够满足网络上的带宽或者存储媒质容量的限制,往往在编码器的一端需要加入码率控制。码率控制技术通过调整编码过程中的某些参数来达到控制码率的目的,因此它对于重建视频的质量有着直接的影响,在视频压缩编码领域具有重要的研究意义。
码率控制的目的是控制码率,同时通过合理地分配有限的码率来提高整体的图像质量。由于编码过程中采用的量化系数与生成的码率大小有着直接的关系,因此如何选择合适的量化步长是码率控制研究的关键。目前研究领域存在很多比较经典的码率控制算法,比如H.263标准推荐的TMN8算法,MPEG2标准推荐的TM5算法,H.264/AVC标准推荐的G012算法等。
H.264推荐的G012算法是现在码率控制领域研究最多的算法。该算法将码率控制的步骤分为GOP层,帧层以及基本单元层。对于I帧,P帧,B帧三种不同的帧类型采用不同的计算方式得到量化系数QP。其中I帧的QP是由P帧的QP计算得到,B帧的QP是由前后两个参考帧的QP计算得到。而对于P帧采用前向分配比特的方法,根据现有带宽以及当前缓冲区的占有率分配目标比特数,然后根据二阶抛物线率失真模型,计算得到每个基本单元的QP。
其中X1,X2为模型参数,在编码过程中不断更新,T为当前编码单元的目标比特数,MAD为所有宏块的运动补偿残差的平均绝对差,在一定程度上反映了该编码单元的编码复杂度。Q_step为量化步长,与量化系数QP之间有着一一对应的关系。
由于H.264采用了基于拉格朗日乘子法的R-D优化宏块编码模型选择,在对每个模式进行代价函数的计算时必须给出量化系数QP,因此在码率控制前无法确定宏块的编码模式,也就无法获得运动补偿的残差,进而也就无法利用上述率失真模型得到QP值,这两者之间的矛盾,就是所谓的“鸡蛋悖论”。因此该算法中采用前一基本单元的MAD来推导出当前待编码基本单元的MAD值。
MAD的线性预测模型为:
MADcb=a1×MADpb+a2
a1,a2为预测模型的两个参数,初始值分别为1,0。每编完一个基本单元后更新。
从上面介绍的G012算法可以看出,虽然现有的一些码率控制的算法具有优良的性能,但是它们都具有非常高的计算复杂度,这给实际应用中码率控制的实现带来难度。
发明内容
本发明的目的在于针对现有技术的不足,提供一种视频编码的方法与装置,该方法设计计算复杂度低,容易实现,同时具有高的编码质量。
本发明的目的是通过以下技术方案来实现的:
一种视频编码中码率控制的方法,包括以下步骤:
(1)使用前一个相同帧类型生成的实际比特数、前一个相同帧类型所使用的量化系数和当前帧分配的目标比特数作为已知信息,确定帧级QP值;
(2)每帧图像的开始,为一个新的数据包的开始;在编码每一帧过程中,统计当前数据包生成的比特数,用来判断下一个数据包的开始;当生成的比特数超过固定比特数时,当前数据包结束,下一个数据包开始;当一帧结束时,当前数据包结束。
(3)在编码下一个新的数据包之前,在帧级QP值的基础上,根据当前帧已经生成的实际比特数,当前帧的目标比特数,缓冲区的占有率,调整下一个编码数据包的QP值。
一种用于上述的码率控制方法的装置,它包括每帧目标比特数生成器,每帧所有数据包的QP平均值存储器,每帧实际生成比特数存储器,帧级QP值生成器,数据包实际生成比特数记录器,新数据包的开始判断器,数据包QP值的生成器;其中,帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧所有数据包的QP平均值存储器以及每帧实际生成比特数存储器,输出端接到数据包QP值的生成器的一个输入端;新数据包的开始判断器的一个输入端接自数据包实际生成比特数记录器,另一个输入端输入固定比特数,输出端接到数据包QP值的生成器的一个输入端;数据包QP值的生成器的输出端输出数据包的QP值给编码器进行每个数据包的编码。
一种用于上述的码率控制方法的装置,它包括每帧目标比特数生成器,每帧的QP值存储器,每帧实际比生成比特数存储器和帧级QP值生成器;其中,帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器,输出端输出帧级QP值给编码器进行每帧图像的编码;每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器的输入端均接自编码器。
本发明的有益效果是,利用了在视频序列中相邻同种类型图像在编码复杂度的相似性,避免了参数更新,二次模型的求解这些复杂的数学运算。同时利用通常情况下相邻编码单元量化系数QP的渐变性,通过简单的规则选取QP值,既能够保持视频序列图像高重建质量,又方便在实际应用中实现。
附图说明
图1是本发明实施例4视频编码中码率控制装置的结构框图;
图2是本发明实施例5视频编码中码率控制装置的结构框图。
具体实施方式
下面根据附图和实施例详细说明本发明,本发明的目的和效果将变得更加明显。
本发明主要通过调整编码参数量系数QP值来达到码率控制的目的。它利用了在视频序列中相邻同种类型图像在编码复杂度的相似性,避免了参数更新,二次模型的求解这些复杂的数学运算。同时利用通常情况下相邻编码单元量化系数QP的渐变性,通过简单的规则选取QP值。这样既能够保持视频序列图像高重建质量,又方便在实际应用中实现。
一.一种视频编码中码率控制的方法,包括以下步骤:
步骤一:以一个GOP为单位分配目标比特数。
步骤二:分配帧级目标比特数。
步骤三:确定帧级QP值。
步骤四:判断新的数据包的开始。
步骤五:确定每个数据包的QP值。
步骤六:限定每个数据包的QP值。这个步骤是可选的。
其中,步骤三中,使用前一个相同帧类型生成的实际比特数B1,前一个相同帧类型所使用的量化系数QP1,当前帧分配的目标比特数T2作为已知信息,按以下的规则得到当前帧的帧级QP值。
如果B1×QP1<=(QP1-th1)×T2,则QP值为QP1-2。
如果(QP1-th1)×T2<B1×QP1<=(QP1-th2)×T2,则QP值为QP1-1。
如果(QP1-th2)×T2<B1×QP1<=(QP1+th3)×T2,则QP值为QP1。
如果(QP1+th3)×T2<B1×QP1<=(QP1+th4)×T2,则QP值为QP1+1。
如果B1×QP1>(QP1+th4)×T2,则QP值为QP1+2。
其中th1,th2,th3,th4为阈值,并且5>th1>th2>0,5>th4>th3>0
步骤四中,每帧图像的开始,为一个新的数据包的开始。在编码每一帧过程中,统计当前数据包生成的比特数,用来判断下一个数据包的开始。当生成的比特数超过固定比特数时,当前数据包结束,下一个数据包开始。当一帧结束时,当前数据包结束。
步骤五中,在编码下一个新的数据包之前,在帧级QP值的基础上,根据当前帧已经生成的实际比特数,当前帧的目标比特数,缓冲区的占有率,调整下一个编码数据包的QP值。从每帧的第二个数据包开始,当缓冲区的占有率小于一定阈值时,将两个比例(当前帧已生成的比特数在整帧的目标比特数所占的比例a1以及当前帧已编的宏块数在整帧所有的宏块数所占的比例a2)进行比较,设定Th为两个比例的商,即a1=Th×a2,根据Th所在的范围,按照以下规则得到新的数据包的QP值。
如果Th<=th5,则QP值为QPprev-2。
如果th5<Th<=th6,则QP值为QPprev-1。
如果th6<Th<=th7则QP值为QPprev。
如果th7<Th<=th8,则QP值为QPprev+1。
如果Th>th8,则QP值为QPprev+2。
其中,th5,th6,th7,th8均为阈值,1>=th6>th5>0,10>th8>th7>=1,QPprev为上一个数据包所使用的QP值。
在一个新数据包开始时,缓冲区的占有率超过一定阈值时,新的数据包的QP值为当前帧的帧级QP值加上delta_QP1。其中delta_QP1为固定正整数,取值范围为[0,10]。
步骤六中,当计算得到的新数据包的QP值减去当前帧的帧级QP值大于delta_QP2时,则新数据包的QP值等于当前帧的帧级QP值加上delta_QP2。当当前帧的帧级QP值减去计算得到的新数据包的QP值大于delta_QP2时,则新数据包的QP值等于当前帧的帧级QP值减去delta_QP2。其中delta_QP2为固定正整数,取值范围为[0,10]。
二.一种视频编码中码率控制的方法,包括以下步骤:
步骤一:以一个GOP为单位分配目标比特数。
步骤二:分配帧级目标比特数。
步骤三:确定帧级QP值。
其中,步骤一中,使用前一个相同帧类型生成的实际比特数B1,前一个相同帧类型所使用的量化系数QP1,当前帧分配的目标比特数T2作为已知信息,按以下的规则得到当前帧的帧级QP值。
如果B1×QP1<=(QP1-th1)×T2,则QP值为QP1-2。
如果(QP1-th1)×T2<B1×QP1<=(QP1-th2)×T2,则QP值为QP1-1。
如果(QP1-th2)×T2<B1×QP1<=(QP1+th3)×T2,则QP值为QP1。
如果(QP1+th3)×T2<B1×QP1<=(QP1+th4)×T2,则QP值为QP1+1。
如果B1×QP1>(QP1+th4)×T2,则QP值为QP1+2。
其中th1,th2,th3,th4为阈值,并且10>th1>th2>0,10>th4>th3>0
三.一种视频编码中的码率控制装置,参见附图1。
它包括每帧目标比特数生成器,每帧所有数据包的QP平均值存储器,每帧实际生成比特数存储器,帧级QP值生成器,数据包实际生成比特数记录器,新数据包的开始判断器,数据包QP值的生成器。
其中帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧所有数据包的QP平均值存储器以及每帧实际生成比特数存储器,输出端接到数据包QP值的生成器的一个输入端。新数据包的开始判断器的一个输入端接自数据包实际生成比特数记录器,另一个输入端输入固定比特数,输出端接到数据包QP值的生成器的一个输入端。数据包QP值的生成器的输出端输出数据包的QP值给编码器进行每个数据包的编码。
四.一种视频编码中的码率控制装置,参见附图2。
它包括每帧目标比特数生成器,每帧的QP值存储器,每帧实际比生成比特数存储器,帧级QP值生成器。帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器,输出端输出帧级QP值给编码器进行每帧图像的编码。其中每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器的输入端均接自编码器。
下面根据附图和实施例详细描述本发明,本发明的目的和效果将变得更加明显。
实施例一
一种视频编码中码率控制的方法,设目标比特为2Mbit/s,每10000个比特为一个数据包。序列的初始QP为35。其步骤如下:
步骤一:以一个GOP为单位分配目标比特数
其中Np为一个GOP的P帧数目,Nb为一个GOP的B帧数目。如果当前是CBR情况下,bit_rate即为目标码率,这里为2Mbit/s。frame_rate为序列的帧率。这样得到的B′gop为依据带宽分配给每个GOP的目标比特,还需要加上实际编码过程中上一个GOP剩余的比特数Bleft,才能够得到当前GOP真正的目标比特Bgop。
Bgop=B′gop+Bleft
步骤二:分配帧级目标比特数
这里根据当前GOP剩余比特数Bleft分配给每个P帧目标比特数T′
其中Npleft为当前图像组的剩余的P帧的数目,Nbleft为当前图像组剩余的B帧的数目。wp为P帧编码复杂度,wb为B帧编码复杂度。这里近似取wp=0.5,wb=0.2。
步骤三:确定帧级QP值
设前一个P帧生成的实际比特数B1,前一个P帧所使用的量化系数QP1,当前P帧分配的目标比特数T2,这里取th1=2,th2=1,th3=1,th4=2,则计算当前P帧的QP值为:
如果B1×QP1<=(QP1-2)×T2,则QP值为QP1-2。
如果(QP1-2)×T2<B1×QP1<=(QP1-1)×T2,则QP值为QP1-1。
如果(QP1-1)×T2<B1×QP1<=(QP1+1)×T2,则QP值为QP1。
如果(QP1+1)×T2<B1×QP1<=(QP1+2)×T2,则QP值为QP1+1。
如果B1×QP1>(QP1+2)×T2,则QP值为QP1+2。
I帧的QP值计算如下:第一个GOP的I帧QP值是给定的。从第二个GOP开始,I帧QP是前一个GOP的所有P帧的平均QP值,当GOP长度每增加15,初始量化系数QP减小1,最多减2。每个GOP的初始QP与前一个GOP的初始QP相差不超过2。
第一种情况:两个P帧之间只有一个B帧存在时(L=1):
其中QP1和QP2分别为最邻近该B帧的前后两帧的量化系数。
第二种情况:当两个P帧之间不只一个B帧时(L>1):
其中α代表了第一个B帧与QP1之间的偏差,i为当前B帧的位置:
步骤四:判断新的数据包的开始
每帧图像的开始,为一个新的数据包的开始。在编码每一帧过程中,统计当前数据包生成的比特数,用来判断下一个数据包的开始。在编完每一个宏块时,如果生成的比特数大于或等于10000bits,则判断下一个宏块为新的数据包的开始。
步骤五:确定每个数据包的QP值
如果当前缓冲区的占有率超过或者等于80%时,则当前数据包QP值为帧级QP值加3。这里delta_QP1取3。
如果当前缓冲区的占有率小于80%时,I,B帧的所有数据包的QP值为帧级QP值。而P帧的第一个数据包使用的QP值为帧级QP值。P帧从第二个数据包所使用的QP计算如下:
设Tcoded为当前P帧已生成的比特数,T为当前P帧的目标比特数,Ncodedmb为当前P帧已经编码的宏块数目,Ntotalmb为当前帧的宏块总数。则当前帧已生成的比特数在整帧的目标比特数所占的比例a1=Tcoded/T,当前帧已编的宏块数在整帧所有的宏块数所占的比例a2=Ncodedmb/Ntotalmb,设定Th为两个比例的商,即a1=Th×a2。在本实例中阈值th5=0.125,th6=0.25,th7=1.75,th8=3。
如果Th≤0.125×a2,则QP值为QPprev-2
如果0.125<Th≤0.25,则QP值为QPprev-1
如果0.25<Th≤1.75,则QP值为QPprev
如果1.75<Th≤3,则QP值为QPprev+1。
如果Th>3,则QP值为QPprev+2。
实施例二:
一种视频编码中码率控制的方法,设目标比特为2Mbit/s,每10000个比特为一个数据包。I,P帧的初始QP为35,B帧的初始QP为37。其步骤如下:步骤一:以一个GOP为单位分配目标比特数
具体方法与实施实例一的步骤一相同。
步骤二:分配帧级目标比特数
根据当前GOP剩余比特数Bleft给每帧分配目标比特数,每个GOP的目标比特数分配与实施实例一的步骤一相同。Ti,Tp,Tb分别代表I帧,P帧,B帧分配的目标比特数。
其中,Np为当前图像组的剩余的P帧的数目,Nb为当前图像组的剩余的B帧的数目。Kp,Kb为常数,在这里Kp=1.0,Kb=1.4。Xi,Xp,Xb分别为I帧,B帧,P帧类型的编码复杂度的表征。
Xi=Bi×Qi
Xp=Bp×Qp
Xb=Bb×Qb
其中Bi,Bp,Bb分别为当前图像组中I,P,B帧生成比特数的平均值,Qi,Qp,Qb分别为当前图像组中I,P,B帧使用QP的平均值
步骤三:确定帧级QP值
设前一个相同帧类型生成的实际比特数B1,前一个相同帧类型所使用的量化系数QP1,当前帧分配的目标比特数T2,这里取th1=2.5,th2=1.5,th3=1.5,th4=3,则计算当前帧的QP值为:
如果B1×QP1<=(QP1-2.5)×T2,则QP值为QP1-2。
如果(QP1-2.5)×T2<B1×QP1<=(QP1-1.5)×T2,则QP值为QP1-1。
如果(QP1-1.5)×T2<B1×QP1<=(QP1+1.5)×T2,则QP值为QP1。
如果(QP1+1.5)×T2<B1×QP1<=(QP1+3)×T2,则QP值为QP1+1。
如果B1×QP1>(QP1+3)×T2,则QP值为QP1+2。
步骤四:判断新的数据包的开始
每帧图像的开始,为一个新的数据包的开始。在编码每一帧过程中,统计当前数据包生成的比特数,用来判断下一个数据包的开始。在每个宏块行结束时,用已经编码的信息去预测下一个宏块行即将产生的比特数。本实例预测下一个宏块行即将产生的比特数为当前宏块行生成的比特数。如果已生成的比特数加上下一个宏块行的预测比特数大于或等于10000比特时,则判断下一个宏块为新的数据包的开始。
步骤五:确定每个数据包的QP值
如果当前缓冲区的占有率超过或者等于70%时,则当前数据包QP值为帧级QP值QPframe加2。这里delta_QP1取2。
如果当前缓冲区的占有率小于70%时,每帧的第一个数据包使用的QP值为帧级QP值。从第二个数据包所使用的QP计算如下:
设Tcoded为当前帧已生成的比特数,T为当前帧的目标比特数,Ncodedmb为当前帧已经编码的宏块数目,Ntotalmb为当前帧的宏块总数。则当前帧已生成的比特数在整帧的目标比特数所占的比例a1=Tcoded/T,当前帧已编的宏块数在整帧所有的宏块数所占的比例a2=Ncodedmb/Ntotalmb,设定Th为两个比例的商,即a1=Th×a2。本实例中阈值th5=0.25,th6=0.75,th7=1.5,th8=4。
如果Th≤0.25×a2,则QP值为QPprev-2
如果0.25<Th≤0.75,则QP值为QPprev-1
如果0.75<Th≤1.5,则QP值为QPprev
如果1.5<Th≤4,则QP值为QPprev+1。
如果Th>4,则QP值为QPprev+2。
步骤六:限定每个数据包的QP值
最后每个数据包最终的QP值需要被限定在[QPframe-3,QPframe+3]之间。这里delta_QP2取值为3。
实施例三:
一种视频编码中码率控制的方法。设目标比特为2Mbit/s,每10000个比特为一个数据包。I,P帧的初始QP为35,B帧的初始QP为37。其步骤如下:步骤一:以一个GOP为单位分配目标比特数
具体方法与实施实例一的步骤一相同。
步骤二:分配帧级目标比特数
根据当前GOP剩余比特数Bleft给每帧分配目标比特数,每个GOP的目标比特数分配与实施实例一的步骤一相同。Ti,Tp,Tb分别代表I帧,P帧,B帧分配的目标比特数。
其中Np为当前图像组的剩余的P帧的数目,Nb为当前图像组的剩余的B帧的数目。Xi,Xp,Xb分别为I帧,B帧,P帧类型的编码复杂度的表征。
Xi=Bi×Qi
Xp=Bp×Qp
Xb=Bb×Qb
其中Bi,Bp,Bb分别为前一个I,P,B帧生成的比特数,Qi,Qp,Qb分别为前一个I,P,B帧使用QP值,
步骤三:确定帧级QP值
设前一个相同帧类型生成的实际比特数B1,前一个相同帧类型所使用的量化系数QP1,当前帧分配的目标比特数T2,这里取th1=2.8,th2=1.8,th3=1.4,th4=2.4,
如果B1×QP1<=(QP1-2.8)×T2,则QP值为QP1-2。
如果(QP1-2.8)×T2<B1×QP1<=(QP1-1.8)×T2,则QP值为QP1-1。
如果(QP1-1.8)×T2<B1×QP1<=(QP1+1.4)×T2,则QP值为QP1。
如果(QP1+1.4)×T2<B1×QP1<=(QP1+2.4)×T2,则QP值为QP1+1。
如果B1×QP1>(QP1+2.4)×T2,则QP值为QP1+2。
实施例四:
一种视频编码中的码率控制装置,如附图1所示。
它实现的是实例二表述的码率控制方法。包括每帧目标比特数生成器,每帧所有数据包的QP平均值存储器,每帧实际生成比特存储器,帧级QP值生成器,数据包实际生成比特数记录器,新数据包的开始判断器,数据包QP值的生成器。
帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧所有数据包的QP平均值存储器以及每帧实际生成比特存储器。输出端接到数据包QP值的生成器的一个输入端。其中由每帧目标比特数生成器输入当前帧目标比特数,由每帧所有数据包的QP平均值存储器输入前一个相同帧类型的QP平均值,由每帧实际生成比特数存储器输入前一个相同帧类型生成的实际比特数,帧级QP值生成器根据这些输入信息生成当前帧的帧级QP值输出。
新数据包的开始判断器的一个输入端接自数据包实际生成比特数记录器,另一个输入端输入固定比特数,本例中为10000比特。输出端接到数据包QP值的生成器的一个输入端。新数据包的开始判断器输出新数据包开始的信息来启动数据包QP值的生成器的计算。
数据包QP值的生成器的其他输入端接自编码器,输入当前帧已经生成的实际比特数,当前帧已编宏块数,当前帧总共宏块数,当前缓冲区占有率这些信息。输出端输出数据包的QP值给编码器进行每个数据包的编码。
实施例五:
一种视频编码中的码率控制装置,如附图2所示。
它实现的是实例三表述的码率控制方法。包括每帧目标比特数生成器,每帧的QP值存储器,每帧实际比生成比特数存储器,帧级QP值生成器。
每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器的输入端均接自编码器。接入信息为当前GOP剩余的比特数,剩余P,B帧数信息,上一帧的QP值,上一帧的实际生成比特数。
帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器,输出端输出帧级QP值给编码器进行每帧图像的编码。其中由每帧目标比特数生成器输入当前帧目标比特数,由每帧所有数据包的QP平均值存储器输入前一个相同帧类型的QP值,由每帧实际生成比特数存储器输入前一个相同帧类型生成的实际比特数,帧级QP值生成器根据这些输入信息生成当前帧的帧级QP值输出。
以上所述仅为本发明的一些较佳实施例,并非用来限定本发明实施的范围,本领域技术人员在这些实施例的基础上进行的所有相关的扩展和应用都应落入本申请的保护范围。
Claims (9)
1.一种视频编码中码率控制的方法,其特征在于,包括以下步骤:
(1)使用前一个相同帧类型生成的实际比特数、前一个相同帧类型所使用的量化系数和当前帧分配的目标比特数作为已知信息,确定帧级QP值;
(2)每帧图像的开始,为一个新的数据包的开始;在编码每一帧过程中,统计当前数据包生成的比特数,用来判断下一个数据包的开始;当生成的比特数超过固定比特数时,当前数据包结束,下一个数据包开始;当一帧结束时,当前数据包结束;
(3)在编码下一个新的数据包之前,在帧级QP值的基础上,根据当前帧已经生成的实际比特数,当前帧的目标比特数,缓冲区的占有率,调整下一个编码数据包的QP值;
其中,所述步骤(1)中,设前一个相同帧类型生成的实际比特数为B1,前一个相同帧类型所使用的量化系数为QP1,当前帧分配的目标比特数为T2,按照以下的规则得到当前帧的帧级QP值:
如果B1×QP1<=(QP1-th1)×T2,则QP值为QP1-2;
如果(QP1-th1)×T2<B1×QP1<=(QP1-th2)×T2,则QP值为QP1-1;
如果(QP1-th2)×T2<B1×QP1<=(QP1+th3)×T2,则QP值为QP1;
如果(QP1+th3)×T2<B1×QP1<=(QP1+th4)×T2,则QP值为QP1+1;
如果B1×QP1>(QP1+th4)×T2,则QP值为QP1+2;
其中th1,th2,th3,th4为阈值,并且10>th1>th2>0,10>th4>th3>0。
2.根据权利要求1所述的方法,其特征在于,所述步骤(2)中,所述在编码每一帧过程中指每编完一个宏块时,如果当前数据包生成的比特数大于或等于固定的比特数,则判断下一个宏块为新的数据包的开始。
3.据权利要求1所述的方法,其特征在于,所述步骤(2)中,所述在编码每一帧过程中指每个宏块行结束时,用已经编码的信息去预测下一个宏块行即将产生的比特数,如果当前数据包已生成的比特数加上下一个宏块行的预测比特数大于或等于固定比特数时,则判断下一个宏块为新数据包的开始。
4.根据权利要求1所述的方法,其特征在于,所述步骤(3)指,从每帧的第二个数据包开始,当缓冲区的占有率小于一定阈值时,将当前帧已生成的比特数在整帧的目标比特数所占的比例a1和当前帧已编的宏块数在整帧所有的宏块数所占的比例a2这两个比例进行比较,设定Th为两个比例的商,即a1=Th×a2,根据Th所在的范围,按照以下规则得到新的数据包的QP值;
如果Th<=th5,则QP值为QPprev-2;
如果th5<Th<=th6,则QP值为QPprev-1;
如果th6<Th<=th7则QP值为QPprev;
如果th7<Th<=th8,则QP值为QPprev+1;
如果Th>th8,则QP值为QPprev+2;
其中,th5,th6,th7,th8均为阈值,1>=th6>th5>0,10>th8>th7>=1,QPprev为上一个数据包所使用的QP值。
5.根据权利要求1所述的方法,其特征在于,所述步骤(3)指,在一个新数据包开始时,缓冲区的占有率超过一定阈值时,新的数据包的QP值为当前帧的帧级QP值加上delta_QP1;其中delta_QP1为固定正整数,取值范围为[0,10]。
6.根据权利要求1所述的方法,其特征在于,还可以包括以下步骤:当计算得到的新数据包的QP值减去当前帧的帧级QP值大于delta_QP2时,则新数据包的QP值等于当前帧的帧级QP值加上delta_QP2;当当前帧的帧级QP值减去计算得到的新数据包的QP值大于delta_QP2时,则新数据包的QP值等于当前帧的帧级QP值减去delta_QP2;其中delta_QP2为固定正整数,取值范围为[0,10]。
7.一种视频编码中码率控制的方法,其特征在于,使用前一个相同帧类型生成的实际比特数B1,前一个相同帧类型所使用的量化系数QP1,当前帧分配的目标比特数T2作为已知信息,按照以下的规则得到当前帧的帧级QP值:
如果B1×QP1<=(QP1-th1)×T2,则QP值为QP1-2;
如果(QP1-th1)×T2<B1×QP1<=(QP1-th2)×T2,则QP值为QP1-1;
如果(QP1-th2)×T2<B1×QP1<=(QP1+th3)×T2,则QP值为QP1;
如果(QP1+th3)×T2<B1×QP1<=(QP1+th4)×T2,则QP值为QP1+1;
如果B1×QP1>(QP1+th4)×T2,则QP值为QP1+2;
其中th1,th2,th3,th4为阈值,并且10>th1>th2>0,10>th4>th3>0。
8.一种用于权利要求1所述的码率控制方法的装置,其特征在于,它包括每帧目标比特数生成器,每帧所有数据包的QP平均值存储器,每帧实际生成比特数存储器,帧级QP值生成器,数据包实际生成比特数记录器,新数据包的开始判断器,数据包QP值的生成器;其中,
帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧所有数据包的QP平均值存储器以及每帧实际生成比特数存储器,输出端接到数据包QP值的生成器的一个输入端;
新数据包的开始判断器的一个输入端接自数据包实际生成比特数记录器,另一个输入端输入固定比特数,输出端接到数据包QP值的生成器的一个输入端;
数据包QP值的生成器的输出端输出数据包的QP值给编码器进行每个数据包的编码。
9.一种用于权利要求7所述的码率控制方法的装置,其特征在于,它包括每帧目标比特数生成器,每帧的QP值存储器,每帧实际生成比特存储器和帧级QP值生成器;其中,
帧级QP值生成器的输入端接自每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器,输出端输出帧级QP值给编码器进行每帧图像的编码;
每帧目标比特数生成器,每帧的QP值存储器以及每帧实际生成比特存储器的输入端均接自编码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100624279A CN101420601B (zh) | 2008-06-06 | 2008-06-06 | 视频编码中码率控制的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100624279A CN101420601B (zh) | 2008-06-06 | 2008-06-06 | 视频编码中码率控制的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101420601A CN101420601A (zh) | 2009-04-29 |
CN101420601B true CN101420601B (zh) | 2010-10-06 |
Family
ID=40631162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100624279A Expired - Fee Related CN101420601B (zh) | 2008-06-06 | 2008-06-06 | 视频编码中码率控制的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101420601B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103533365B (zh) * | 2012-07-04 | 2016-12-21 | 珠海扬智电子科技有限公司 | 比特率控制方法与比特率控制系统 |
CN105208390B (zh) * | 2014-06-30 | 2018-07-20 | 杭州海康威视数字技术股份有限公司 | 视频编码的码率控制方法及其系统 |
CN107592535B (zh) * | 2017-08-18 | 2020-09-01 | 西安邮电大学 | H.265/hevc图像层码率控制方法 |
WO2020107449A1 (zh) * | 2018-11-30 | 2020-06-04 | Oppo广东移动通信有限公司 | 编码方法、编码器以及计算机存储介质 |
CN113365061B (zh) * | 2020-03-03 | 2024-02-09 | 炬芯科技股份有限公司 | H264宏块级码率控制方法、装置及可读存储介质 |
-
2008
- 2008-06-06 CN CN2008100624279A patent/CN101420601B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101420601A (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8259794B2 (en) | Method and system for encoding order and frame type selection optimization | |
US7092441B1 (en) | Moving pictures encoding with constant overall bit rate | |
CN1910934B (zh) | 自适应速率控制编码器 | |
JP4390112B2 (ja) | ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置 | |
KR970003789B1 (ko) | 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법 | |
JP3954136B2 (ja) | 画像シーケンスを表すディジタルデータの符号器の出力流量制御方法 | |
CN101069432B (zh) | 用于视频编码器速率控制的量化参数的确定方法和设备 | |
WO2009035143A1 (ja) | 画像処理装置及び方法 | |
KR19990086789A (ko) | 비트율이 급변되는 재양자화 계단 크기 선택 방법 및 그를 이용한 비트율 제어 방법 | |
JPH07184196A (ja) | 画像符号化装置 | |
CN101420601B (zh) | 视频编码中码率控制的方法及装置 | |
WO2004021704A1 (en) | Bit rate control for motion compensated video compression system | |
CN101674472A (zh) | 多视点视频编码的多级码率控制方法 | |
JP2012521141A (ja) | エンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置 | |
CN107222748A (zh) | 图像数据码率的处理方法和装置 | |
TWI428022B (zh) | Video control method for instant video encoding chips | |
CN112188208A (zh) | 一种宏块级码率控制方法及相关装置 | |
JP3872849B2 (ja) | 動画像符号化装置 | |
CN100574442C (zh) | 基于图像直方图的码率控制方法 | |
KR20120096863A (ko) | 고효율 비디오 부호화의 계층적 부호화 구조를 위한 비트율 제어 기법 | |
JP4362795B2 (ja) | 動画像符号化装置及びその方法 | |
JPH09294267A (ja) | 画像圧縮符号化装置 | |
CN110800298A (zh) | 码率分配方法、码率控制方法、编码器和记录介质 | |
JPH07203430A (ja) | 画像符号化装置 | |
Chi et al. | Region-of-interest video coding by fuzzy control for H. 263+ standard |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101006 |
|
CF01 | Termination of patent right due to non-payment of annual fee |