在视频编码中对比特数预测器进行比特数训练的方法与流程

文档序号:12829607阅读:330来源:国知局
在视频编码中对比特数预测器进行比特数训练的方法与流程

本发明涉及视频编码技术领域,尤其涉及一种在视频编码中对比特数预测器进行比特数训练的方法。



背景技术:

在视频编码中,码率控制模块为编码器重要组成部分,码率控制的目的是要在输出码率、帧率、缓冲区大小等限制下通过合理分配每一帧的比特数,使得生成码流重建后质量尽可能高。码率控制主要包括:帧型选择、比特数预测器以及确定量化参数,其中比特数预测器用来预测编码当前帧所需要的比特数,是影响当前帧编码质量的重要模块。现有的编码框架是通过比特数预测器预测当前视频序列的当前帧所需要的比特数,由于编码器在编码初期对视频序列复杂度未知,因此比特数预测器对于视频序列开始的一小段时间之内估算出来的比特数和实际编码所需要的比特数可能相差较大,需要在编码一端时间后,通过不断的调整,才能获得较为合适的编码速率,会造成这段时间的视频图像质量较差。

因此,现有技术需要改进。



技术实现要素:

本发明公开了一种在视频编码中对比特数预测器进行比特数训练的方法,用以解决现有技术存在的问题。

所述在视频编码中对比特数预测器进行比特数训练的方法,包括:

根据视频序列的输出帧率选择对应的n值,所述n值为当前视频序列的前n帧数据,n的取值根据输出帧率的不同而变化;

将待压缩视频的前n帧依次输入到比特数预测器训练模块中,训练器逐帧分析训练;

当n帧数据全部输入比特数预测器训练模块后,训练结束并得到一个具备新的预测当前帧所需比特数的比特数预测器;

将编码器使用新的比特数预测器进行码率控制,从0帧开始进行编码。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述将待压缩视频的前n帧依次输入到比特数预测器训练模块中,训练器逐帧分析训练包括:

从第0帧开始,依次将视频序列的第0帧至第k帧输入到比特数预测器训练模块中,进行训练器分析训练,所述k为大于等于0的整数值;

判断k是否小于n;

如果是,则取第k+1帧输入到比特数预测器训练模块中,进行训练器分析训练;

否则,结束训练,以当前k帧训练结果作为新的预测比特数值的比特数预测器。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述n的取值范围为:20≤n≤40。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述比特数预测器训练模块的比特数预测公式为:

其中:pred_bits:预测比特数,var:帧的复杂度系数,f_qp:帧级量化因子,a、b、c:比特数预测器模型参数。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述比特数预测器训练模块包括:

利用公式(1)根据f_qp、var预测当前帧的比特数,用于码率控制中帧级和宏块级量化因子的计算;

根据f_qp、var、实际编码比特数更新公式(1)中的a、b、c三个值,用于下一帧的码率控制。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述根据f_qp、var、实际编码比特数,更新公式(1)中的a、b、c三个值,用于下一帧的码率控制包括:

比特数预测器对a、b、c三个值进行初始化;

利用码率控制模块,计算出宏块量化因子mb_qp,完成实际编码;

利用实际编码比特数actual_bits,更新比特数预测器中的a、b、c三个参数。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述更新比特数预测器中的a、b、c三个参数的公式为:

式中:decay为常量,取0.5。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述将编码器使用新的比特数预测器进行码率控制,从0帧开始进行编码包括:

计算帧的复杂度var

根据复杂度var预估帧级初始化量化因子f_qp

利用比特数预测器,根据vbvbuffer情况,评估帧级量化因子f_qp和当前帧所需比特数;

预估当前宏块级量化因子mb_qp,用于宏块编码,在保证图像质量的条件下,将整帧实际编码比特数控制在预估的当前帧所需比特数;

编完一帧后,根据公式(2)(3)(4)更新比特数预测器中的a、b、c三个参数和vbvbuffer,等待下次使用。

在基于上述在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例中,所述利用比特数预测器,根据vbvbuffer情况,评估帧级量化因子f_qp和当前帧所需比特数包括:

根据公式(1)得到预测比特数;

将预测比特数输入vbvbuffer,检查vbvbuffer状态;

如果出现vbvbuffer上下溢,则微调评估帧级量化因子f_qp,重新预测比特数;

如果vbvbuffer正常,则预估当前宏块级量化因子mb_qp,在保证图像质量的条件下,将整帧实际编码比特数控制在预估的当前帧所需比特数。

与现有技术相比较,本发明具有以下优点:

本发明通过将待压缩视频的前n帧依次输入到比特数预测器训练模块中,训练器逐帧分析训练,得到一个具备新的预测当前帧所需比特数的比特数预测器,改善码率控制中比特数预测器在编码视频序列开始时段比特数估计不准造成的编码质量下降的问题。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所使用的附图做一简单地介绍:

图1是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的一个实施例的流程图;

图2是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例的流程图;

图3是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图;

图4是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图;

图5是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图;

图6是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的一个实施例的流程图,如图1所示,所述在视频编码中对比特数预测器进行比特数训练的方法包括:

10,根据视频序列的输出帧率选择对应的n值,所述n值为当前视频序列的前n帧数据,n的取值根据输出帧率的不同而变化;

20,将待压缩视频的前n帧依次输入到比特数预测器训练模块中,训练器逐帧分析训练;

30,当n帧数据全部输入比特数预测器训练模块后,训练结束并得到一个具备新的预测当前帧所需比特数的比特数预测器;

40,将编码器使用新的比特数预测器进行码率控制,从0帧开始进行编码。

图2是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的另一个实施例的流程图,如图2所示,所述将待压缩视频的前n帧依次输入到比特数预测器训练模块中,训练器逐帧分析训练包括:

21,从第0帧开始,依次将视频序列的第0帧至第k帧输入到比特数预测器训练模块中,进行训练器分析训练,所述k为大于等于0的整数值;

22,判断k是否小于n;

23,如果是,则取第k+1帧输入到比特数预测器训练模块中,进行训练器分析训练;

24,否则,结束训练,以当前k帧训练结果作为新的预测比特数值的比特数预测器。

所述n的取值范围为:20≤n≤40,如果n的取值大于40,将影响编码速度,并且占用大量内存,如果n的取值小于20,则编码质量得不到保证。

所述比特数预测器训练模块的比特数预测公式为:

其中:pred_bits:预测比特数,var:帧的复杂度系数,f_qp:帧级量化因子,a、b、c:比特数预测器模型参数。

图3是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图,如图3所示,所述比特数预测器训练模块包括:

31,利用公式(1)根据f_qp、var预测当前帧的比特数,用于码率控制中帧级和宏块级量化因子的计算;

32,根据f_qp、var、实际编码比特数,更新公式(1)中的a、b、c三个值,用于下一帧的码率控制。

图4是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图,如图4所示,所述根据f_qp、var、实际编码比特数,更新公式(1)中的a、b、c三个值,用于下一帧的码率控制包括:

321,比特数预测器对a、b、c三个值进行初始化;

322,利用码率控制模块,计算出宏块量化因子mb_qp,完成实际编码;

323,利用实际编码比特数actual_bits,更新比特数预测器中的a、b、c三个参数。

所述更新比特数预测器中的a、b、c三个参数的公式为:

式中:decay为常量,取0.5;

训练结束后,将得到更为合理准确的a,b,c参数,比特数预测器是码率控制的基础,其准确度的高低将严重影响vbvbuffer是否下溢,当前帧和后续帧的图像质量。如果vbvbuffer下溢,播放端可能少收数据,无法解码。比特数预测器中a、b、c三个参数值和图像内容有很大关系,如果没有训练器,将会导致视频序列开头几秒质量很差。

图5是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图,如图5所示,所述将编码器使用新的比特数预测器进行码率控制,从0帧开始进行编码包括:

41,计算帧的复杂度var

42,根据复杂度var预估帧级初始化量化因子f_qp

43,利用比特数预测器,根据vbvbuffer情况,评估帧级量化因子f_qp和当前帧所需比特数;

44,预估当前宏块级量化因子mb_qp,用于宏块编码,在保证图像质量的条件下,将整帧实际编码比特数控制在预估的当前帧所需比特数;

45,编完一帧后,根据公式(2)(3)(4)更新比特数预测器中的a、b、c三个参数和vbvbuffer,等待下次使用。

图6是本发明的一种在视频编码中对比特数预测器进行比特数训练的方法的又一个实施例的流程图,如图6所示,所述利用比特数预测器,根据vbvbuffer情况,评估帧级量化因子f_qp和当前帧所需比特数包括:

431,根据公式(1)得到预测比特数;

432,将预测比特数输入vbvbuffer,检查vbvbuffer状态;

433,如果出现vbvbuffer上下溢,则微调评估帧级量化因子f_qp,重新预测比特数;

434,如果vbvbuffer正常,则预估当前宏块级量化因子mb_qp,在保证图像质量的条件下,将整帧实际编码比特数控制在预估的当前帧所需比特数。

以上对本发明所提供的一种在视频编码中对比特数预测器进行比特数训练的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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