一种码率控制的方法和装置的制造方法

文档序号:10691546阅读:273来源:国知局
一种码率控制的方法和装置的制造方法
【专利摘要】本发明适用于视频编码领域,提供了一种码率控制的方法和装置,旨在解决现有技术中不能及时纠正码率偏差,造成整体码率与目标码率偏差较大,无法精确控制码率的问题。所述方法包括:接收编码器编码所需的参数并进行配置;控制编码器根据参数对视频数据第n个GOP单元进行编码,并统计第1个至第n个GOP单元的累计码率偏差;根据累计码率偏差调整第n+1个GOP单元的目标码率,直到所述视频数据的编码结束为止。本发明的技术方案通过统计当前已经完成编码的GOP单元的累计码率偏差,并根据该累计码率偏差调整下一个GOP单元的目标码率,实现在视频编码过程中动态控制整体码率接近目标码率,达到精确控制码率的目的。
【专利说明】
_种码率控制的方法和装置
技术领域
[0001]本发明涉及视频编码技术领域,尤其涉及一种码率控制的方法和装置。
【背景技术】
[0002]在视频编码过程中,由于受到存储空间或者带宽等因素的限制,需要对码率进行控制,以满足存储空间或者带宽的要求。码率控制涉及到三个主要的参数:目标码率、QP(Quantizat1n Parameter,量化参数)和GOP(Group Of Pictures,画面组)单元长度。编码器在保证码流满足QP范围要求的前提下使视频每一个GOP单元对应码流的平均码率尽可能接近目标码率,以达到整体码率接近目标码率的目的。
[0003]现有技术的方法在对每一个GOP单元控制码率时,可能会出现有些GOP单元的码率偏差较大,即平均码率偏离目标码率较远,而后续的GOP单元却未进行相应的调整,造成整体码率偏离目标码率较远,达不到精确控制码率的目的。

【发明内容】

[0004]本发明的目的在于提供一种码率控制的方法和装置,旨在解决现有技术中不能及时纠正码率偏差,造成整体码率与目标码率偏差较大,无法精确控制码率的问题。
[0005]本发明的第一方面,提供一种码率控制的方法,包括:
[0006]接收编码器编码所需的参数并进行配置,所述参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度;
[0007]控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,所述η为大于O的整数;
[0008]根据所述累计码率偏差调整第η+1个GOP单元的目标码率以对所述第η+1个GOP单元进行编码,直到所述视频数据的编码结束为止。
[0009]本发明的第二方面,提供一种码率控制的装置,包括:
[0010]参数配置模块,用于接收编码器编码所需的参数并进行配置,所述参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度;
[0011]编码统计模块,用于控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,所述η为大于O的整数;
[0012]码率调整模块,用于根据所述累计码率偏差调整第η+1个GOP单元的目标码率以对所述第η+1个GOP单元进行编码,直到所述视频数据的编码结束为止。
[0013]本发明与现有技术相比存在的有益效果是:通过统计当前已经完成编码的GOP单元的累计码率偏差,并根据该累计码率偏差调整下一个GOP单元的目标码率,实现在视频编码过程中动态控制整体码率接近目标码率,达到精确控制码率的目的。
【附图说明】
[0014]图1是本发明实施例一提供的一种码率控制的方法的流程图;
[0015]图2是本发明实施例二提供的一种码率控制的方法的流程图;
[0016]图3是本发明实施例三提供的一种码率控制的装置的结构示意图;
[0017]图4是本发明实施例四提供的一种码率控制的装置的结构示意图。
【具体实施方式】
[0018]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0019]以下结合具体附图对本发明的实现进行详细的描述。
[0020]实施例一:
[0021]图1是本发明实施例一提供的一种码率控制的方法的流程图,具体包括步骤SlOl至S103,详述如下:
[0022]SlOl、接收编码器编码所需的参数并进行配置,该参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度。
[0023]具体地,在编码器对视频数据进行编码前,需要对编码所需的码率控制相关的参数进行配置。
[0024I 这些参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度。
[0025]初始目标码率即为希望编码器所能达到的目标码率,根据存储空间或者带宽限制的要求,初始目标码率的取值范围通常可以在1Kbps到20Mbps之间。QP值用于表征编码后的图像质量,QP值越小对应的图像质量越高,QP值的取值范围通常可以在1到51之间,其中QP值的最小值的取值范围在10到20之间,QP值的最大值的取值范围在30到51之间。GOP单元的长度代表一个GOP单元包含的帧的数量,其取值范围通常可以在30到300之间。
[0026]S102、控制编码器根据参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,η为大于O的整数。
[0027]具体地,控制编码器根据配置的码率控制的参数对视频数据第η个GOP单元进行编码,计算第η个GOP单元的码率与第η个GOP单元的目标码率的偏差,并统计第I个至第η个GOP单元的累计码率偏差,其中η为大于O的整数。
[0028]例如,当η等于I时,编码器首先对第I个GOP单元进行编码,并计算出第I个GOP单元的码率与第I个GOP单元的目标码率即初始目标码率的偏差,该偏差即为累计码率偏差;当η等于2时,编码器对第2个GOP单元进行编码,并计算出第2个GOP单元的码率与第2个GOP单元的目标码率的偏差,并将此偏差累计到第I个GOP单元的累计码率偏差上;当η等于3时,编码器对第3个GOP单元进行编码,并计算出第3个GOP单元的码率与第3个GOP单元的目标码率的偏差,并将此偏差累计到第I个GOP单元至第2个GOP单元的累计码率偏差上;以此类推,可以计算出第I个至第η个GOP单元的累计码率偏差。
[0029]S103、根据累计码率偏差调整第η+1个GOP单元的目标码率以对第η+1个GOP单元进行编码,直到视频数据的编码结束为止。
[0030]具体地,根据步骤S102计算出的第I个至第η个GOP单元的累计码率偏差来调整第η+ 1个GOP单元的目标码率,当第I个至第η个GOP单元的累计码率偏差大于一定的阈值,则调低第η+1个GOP单元的目标码率,当第I个至第η个GOP单元的累计码率偏差小于一定的阈值,则调高第η+1个GOP单元的目标码率。
[0031]控制编码器根据第η+1个GOP单元的目标码率继续对第η+1个GOP单元进行编码,计算第η+1个GOP单元的码率与第η+1个GOP单元的目标码率的偏差,并统计第I个至第η+1个GOP单元的累计码率偏差,根据该累计码率偏差继续调整第η+2个GOP单元的目标码率,即循环执行步骤S102和步骤S103,直到视频数据的编码结束为止。
[0032]本实施例中,通过统计当前已经完成编码的GOP单元的累计码率偏差,并根据该累计码率偏差调整下一个GOP单元的目标码率,实现在视频编码过程中动态控制整体码率接近目标码率,达到精确控制码率的目的。
[0033]实施例二:
[0034]图2是本发明实施例二提供的一种码率控制的方法的流程图,具体包括步骤S201至S203,详述如下:
[0035]S201、接收编码器编码所需的参数并进行配置,该参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度。
[0036]具体地,在编码器对视频数据进行编码前,需要对编码所需的码率控制相关的参数进行配置。
[0037I 这些参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度。
[0038]初始目标码率即为希望编码器所能达到的目标码率,根据存储空间或者带宽限制的要求,初始目标码率的取值范围通常可以在1Kbps到20Mbps之间。QP值用于表征编码后的图像质量,QP值越小对应的图像质量越高,QP值的取值范围通常可以在1到51之间,其中QP值的最小值的取值范围在10到20之间,QP值的最大值的取值范围在30到51之间。GOP单元的长度代表一个GOP单元包含的帧的数量,其取值范围通常可以在30到300之间。
[0039]S202、控制编码器根据参数对视频数据第η个GOP单元进行编码,并计算第η个GOP单元的平均码率Rn,n为大于O的整数。
[0040]具体地,控制编码器根据配置的码率控制的参数对视频数据第η个GOP单元进行编码,并计算出第η个GOP单元的平均码率匕,其中η为大于O的整数。
[0041]进一步地,控制编码器根据配置的码率控制的参数对视频数据第η个GOP单元进行编码时,使第η个GOP单元的码流在满足QP值要求的同时,第η个GOP单元的平均码率1^与第η个GOP单元的目标码率TRn的偏差在预置范围内。
[0042]3203、按照公式1?_13丨3811 = 1?_13丨3811—1+(1?11-11?11)计算第1个至第11个60?单元的累计码率偏差R_biasn,R_biasn—i为第η个GOP单元前n-1个GOP单元的累计码率偏差,TRn为第η个GOP单元的目标码率,当η等于I时,TRn为初始目标码率,R_biaSQ设置为O。
[0043]具体地,按照公式1?_1313811 = 1?_1313811-1+(1^-110计算出第1个至第11个60?单元的累计码率偏差R_biasn。
[0044]例如,当η等于I时,由于R_biaSQ为0,则第I个GOP单元的累计码率偏差R_biaS1即为第I个GOP单元的平均码率&与初始目标码率的差值;当η等于2时,先计算出第2个GOP单元的平均码率R2与第2个GOP单元的目标码率TR2的差值,再将该差值累加到第I个GOP单元的累计码率偏差R_biaS1l,即可得到第I个至第2个GOP单元的累计码率偏差R_bias2;以此类推,可以计算出第I个至第η个GOP单元的累计码率偏差R_biasn。
[0045]S204、根据R_biasn计算第η+1个GOP单元的目标码率TRn+1,以对第η+1个GOP单元进行编码,直到视频数据的编码结束为止。
[0046]具体地,根据步骤S203计算出的第I个至第η个GOP单元的累计码率偏差R_biasn,计算第η+1个GOP单元的目标码率TRn+1。
[0047]进一步地,具体计算过程如下:
[0048]iR_biasn大于预先设置的最大阈值时,按照公式TRn+1 = TR_Kl*R_biasn计算第η+1个GOP单元的目标码率TRn+1,使得TRn+1小于初始目标码率TR,其中Kl为预置的调节系数,最大阈值为正数;
[0049]iR_biasn小于预先设置的最小阈值时,按照公式TRn+1 = TR_K2*R_biasn计算第η+1个GOP单元的目标码率TRn+1,使得TRn+1大于初始目标码率TR,其中Κ2为预置的调节系数,最小阈值为负数。
[0050]控制编码器根据第η+1个GOP单元的目标码率TRn+1继续对第η+1个GOP单元进行编码,计算第η+1个GOP单元的平均码率Rn+1与第η+1个GOP单元的目标码率TRn+1的偏差,并统计第I个至第η+1个GOP单元的累计码率偏差R_biasn+1,根据R_biasn+1继续调整第η+2个GOP单元的目标码率TRn+2,即循环执行步骤S202至步骤S204,直到视频数据的编码结束为止。
[0051]本实施例中,通过统计当前已经完成编码的GOP单元的累计码率偏差,并根据该累计码率偏差调整下一个GOP单元的目标码率,当累计码率偏差大于最大阈值时,通过调节系数调低下一个GOP单元的目标码率,当累计码率偏差小于最小阈值时,通过调节系数调高下一个GOP单元的目标码率,实现在视频编码过程中动态控制整体码率接近目标码率,达到精确控制码率的目的。
[0052]实施例三:
[0053]图3是本发明实施例三提供的一种码率控制的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图3示例的一种码率控制的装置可以是前述实施例一提供的一种码率控制的方法的执行主体,其可以是控制设备或者控制设备的一个功能模块。图3示例的一种码率控制的装置主要包括:参数配置模块31、编码统计模块32和码率调整模块33 ο各功能模块详细说明如下:
[0054]参数配置模块31,用于接收编码器编码所需的参数并进行配置,该参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度;
[0055]编码统计模块32,用于控制编码器根据参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,η为大于O的整数;
[0056]码率调整模块33,用于根据累计码率偏差调整第η+1个GOP单元的目标码率以对第η+1个GOP单元进行编码,直到视频数据的编码结束为止。
[0057]本实施例提供的一种码率控制的装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例的描述,此处不再赘述。
[0058]从上述图3示例的一种码率控制的装置可知,本实施例中,通过统计当前已经完成编码的GOP单元的累计码率偏差,并根据该累计码率偏差调整下一个GOP单元的目标码率,实现在视频编码过程中动态控制整体码率接近目标码率,达到精确控制码率的目的。
[0059]实施例四:
[0060]图4是本发明实施例四提供的一种码率控制的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图4示例的一种码率控制的装置可以是前述实施例二提供的一种码率控制的方法的执行主体,其可以是控制设备或者控制设备的一个功能模块。图4示例的一种码率控制的装置主要包括:参数配置模块41、编码统计模块42和码率调整模块43 ο各功能模块详细说明如下:
[0061]参数配置模块41,用于接收编码器编码所需的参数并进行配置,该参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度;
[0062]编码统计模块42,用于控制编码器根据参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,η为大于O的整数;
[0063]码率调整模块43,用于根据累计码率偏差调整第η+1个GOP单元的目标码率以对第η+1个GOP单元进行编码,直到视频数据的编码结束为止。
[0064]进一步地,编码统计模块42包括:
[0065]平均码率计算子模块421,用于控制编码器根据参数对视频数据第η个GOP单元进行编码,并计算第η个GOP单元的平均码率Rn;
[ΟΟ??]累计偏差计算子模块422,用于按照公式R_biasn = R_biasn—i+(Rn-TRn)计算第I个至第]1个60?单元的累计码率偏差1?_1313811,1?_1313811-1为第11个60?单元前11-1个60?单元的累计码率偏差,TRn为第η个GOP单元的目标码率,当η等于I时,TRn为初始目标码率,R_biaso设置为O。
[0067]进一步的,平均码率计算子模块421,还用于控制编码器根据参数对视频数据第η个GOP单元进行编码,并计算第η个GOP单元的平均码率1^,使第η个GOP单元的码流在满足QP值要求的同时,Rn与第η个GOP单元的目标码率偏差在预置范围内。
[0068]进一步地,码率调整模块43包括:
[0069]目标码率计算子模块431,用于根计算第η+1个GOP单元的目标码率TRn+Ι ο
[0070]进一步地,目标码率计算子模块431,还用于:
[0071 ] iR_biasn大于最大阈值时,按照公式TRn+i = TR-Kl*R_biasn计算第η+1个GOP单元的目标码率TRn+1,使得TRn+1小于初始目标码率TR,K1为预置的调节系数;
[0072]iR_biasn小于最小阈值时,按照公式TRn+i = TR_K2*R_biasn计算第η+1个GOP单元的目标码率TRn+1,使得TRn+1大于初始目标码率TR,K2为预置的调节系数。
[0073]本实施例提供的一种码率控制的装置中各模块实现各自功能的过程,具体可参考前述图2所示实施例的描述,此处不再赘述。
[0074]从上述图4示例的一种码率控制的装置可知,本实施例中,通过统计当前已经完成编码的GOP单元的累计码率偏差,并根据该累计码率偏差调整下一个GOP单元的目标码率,当累计码率偏差大于最大阈值时,通过调节系数调低下一个GOP单元的目标码率,当累计码率偏差小于最小阈值时,通过调节系数调高下一个GOP单元的目标码率,实现在视频编码过程中动态控制整体码率接近目标码率,达到精确控制码率的目的。
[0075]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每一个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同或者相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0076]值得注意的是,上述装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0077]本领域普通技术人员可以理解,实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0078]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种码率控制的方法,其特征在于,包括: 接收编码器编码所需的参数并进行配置,所述参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度; 控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,所述η为大于O的整数; 根据所述累计码率偏差调整第η+1个GOP单元的目标码率以对所述第η+1个GOP单元进行编码,直到所述视频数据的编码结束为止。2.根据权利要求1所述的码率控制的方法,其特征在于,所述控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差包括: 控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并计算所述第η个GOP单元的平均码率Rn; 按照公式1?_1^3811 = 1?_1313811-1+(1?11-11^)计算第1个至第11个60?单元的累计码率偏差1?_biasn,所述R_biasn—I为所述第η个GOP单元前η-1个GOP单元的累计码率偏差,所述TRn为所述第η个GOP单元的目标码率,当η等于I时,所述TRn为所述初始目标码率,R_biaso设置为O。3.根据权利要求2所述的码率控制的方法,其特征在于,所述控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并计算所述第η个GOP单元的平均码率匕包括: 控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并计算所述第η个GOP单元的平均码率Rn,使所述第η个GOP单元的码流在满足所述QP值要求的同时,所述匕与所述第η个GOP单元的目标码率TRn的偏差在预置范围内。4.根据权利要求2所述的码率控制的方法,其特征在于,所述根据所述累计码率偏差调整第η+1个GOP单元的目标码率包括: 根据所述1?_1^3811计算第η+1个GOP单元的目标码率TRn+i。5.根据权利要求4所述的码率控制的方法,其特征在于,所述根据所述R_biasn计算第η+I个GOP单元的目标码率TRn+1包括: 当所述R_biasn大于最大阈值时,按照公式TRn+i = TR-Kl*R_biasn计算第η+1个GOP单元的目标码率TRn+1,使得所述TRn+1小于所述初始目标码率TR,所述Kl为预置的调节系数; 当所述R_biasn小于最小阈值时,按照公式TRn+i = TR-K2*R_biasn计算所述第η+1个GOP单元的目标码率TRn+1,使得所述TRn+1大于所述初始目标码率TR,所述K2为预置的调节系数。6.一种码率控制的装置,其特征在于,包括: 参数配置模块,用于接收编码器编码所需的参数并进行配置,所述参数包括初始目标码率,量化参数QP值和画面组GOP单元的长度; 编码统计模块,用于控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并统计第I个至第η个GOP单元的累计码率偏差,所述η为大于O的整数; 码率调整模块,用于根据所述累计码率偏差调整第η+1个GOP单元的目标码率以对所述第η+1个GOP单元进行编码,直到所述视频数据的编码结束为止。7.根据权利要求6所述的码率控制的装置,其特征在于,所述编码统计模块包括: 平均码率计算子模块,用于控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并计算所述第η个GOP单元的平均码率Rn; 累计偏差计算子模块,用于按照公SR_biasn = R_biasn-1+(Rn-TRn)计算第I个至第η个GOP单元的累计码率偏差R_biasn,所述R_biasn—i为所述第η个GOP单元前n-1个GOP单元的累计码率偏差,所述TRnS所述第η个GOP单元的目标码率,当η等于I时,所述TRn为所述初始目标码率,R_biaso设置为O。8.根据权利要求7所述的码率控制的装置,其特征在于,所述平均码率计算子模块,还用于控制编码器根据所述参数对视频数据第η个GOP单元进行编码,并计算所述第η个GOP单元的平均码率Rn,使所述第η个GOP单元的码流在满足所述QP值要求的同时,所述匕与所述第η个GOP单元的目标码率TRn的偏差在预置范围内。9.根据权利要求7所述的码率控制的方法,其特征在于,所述码率调整模块包括: 目标码率计算子模块,用于根据所计算第η+1个GOP单元的目标码率TRn+1。10.根据权利要求9所述的码率控制的装置,其特征在于,所述目标码率计算子模块,还用于: 当所述R_biasn大于最大阈值时,按照公式TRn+i = TR-Kl*R_biasn计算第η+1个GOP单元的目标码率TRn+1,使得所述TRn+1小于所述初始目标码率TR,所述Kl为预置的调节系数; 当所述R_biasn小于最小阈值时,按照公式TRn+i = TR-K2*R_biasn计算所述第η+1个GOP单元的目标码率TRn+1,使得所述TRn+1大于所述初始目标码率TR,所述K2为预置的调节系数。
【文档编号】H04N19/196GK106060548SQ201610365399
【公开日】2016年10月26日
【申请日】2016年5月26日
【发明人】冷永春, 胡胜发
【申请人】安凯(广州)微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1