本技术涉及视频编码领域,尤其涉及一种码率控制方法、装置、电子设备和存储介质。
背景技术:
1、码率控制可以在有限带宽条件下动态调节输出码率,以避免缓冲区上溢或者下溢,对视频编码和传输至关重要。近年来,基于感知的码率控制由于考虑了人眼视觉系统,能够在保证人眼视觉质量的前提下降低码率,从而备受研究者青睐。恰可察觉失真(justnoticeable distortion,jnd)值是一种能够反映人眼视觉质量的指标,基于jnd的码率控制能够感知人眼最低视觉阈值,以更准确地消除视觉冗余,进而在人眼无法感知的前提下降低码率。
2、相关技术中,基于jnd的码率控制方法是根据jnd值进行率失真(rate-distortion,r-d)建模,再将此模型整合到高效率视频编码(hevc)码率控制框架中。然而,该方法容易造成码率波动,影响视觉质量的平稳性。
技术实现思路
1、本技术提供一种码率控制方法、装置、电子设备和存储介质,可以减小码率波动,提升视觉质量的平稳性。
2、第一方面,本技术实施例提供了一种码率控制方法,所述方法包括:
3、获取待编码视频帧,确定所述待编码视频帧的第一恰可察觉失真值;
4、根据所述待编码视频帧的第一恰可察觉失真值、以及与所述待编码视频帧相关的已编码视频帧的第一恰可察觉失真值,确定所述待编码视频帧的第二恰可察觉失真值;
5、比较所述待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码视频帧的帧级偏移量;
6、利用所述待编码视频帧的帧级偏移量对所述待编码视频帧的预分配码率进行调整,获得所述待编码视频帧的重分配码率。
7、上述实施例中,引入了第一恰可察觉失真值和第二恰可察觉失真值,利用第一恰可察觉失真值与第二恰可察觉失真值之间的偏移量指导码率重分配,待编码视频帧的第二恰可察觉失真值是结合待编码视频帧的自身信息和历史帧信息确定的,即待编码视频帧的码率重分配过程中考虑了历史帧信息,据此能够减小由于不同帧之间内容差异大造成的码率波动,从而有利于提升视觉质量的平稳性;并且,上述实施例无需建立复杂的率失真模型,计算复杂度较低,有利于减少计算资源消耗;此外,上述实施例无需与特定的编码器绑定,具有较好的跨编码器和跨编码标准能力,能够迁移至多种编码器,通用性较高。
8、在一些可能的实施方式中,所述确定所述待编码视频帧的第一恰可察觉失真值,包括:
9、确定所述待编码视频帧中各像素点的对比度、复杂度和背景亮度;
10、根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,确定所述待编码视频帧的第一恰可察觉失真值。
11、上述实施方式中,根据待编码视频帧中各像素点的对比度、复杂度和背景亮度,确定待编码视频帧的第一恰可察觉失真值,据此获得的第一恰可察觉失真值可以较为准确地反映人眼对于待编码视频帧能够容忍的失真程度。
12、在一些可能的实施方式中,所述确定所述待编码视频帧中各像素点的对比度、复杂度和背景亮度,包括:
13、根据所述待编码视频帧的灰度变化情况,获得所述待编码视频帧中各所述像素点的梯度数据,所述梯度数据包括:在水平方向的第一梯度值、在垂直方向的第二梯度值、以及梯度方向角;
14、根据各所述像素点的第一梯度值与第二梯度值,确定各所述像素点的对比度;
15、根据各所述像素点所在局部感受野中的梯度方向角的多样性,确定各所述像素点的复杂度;
16、根据各所述像素点所在局部感受野中的亮度平均值,确定各所述像素点的背景亮度。
17、上述实施方式中,利用各像素点的梯度值确定各像素点的对比度,利用各像素点所在局部感受野中的梯度方向角的多样性确定各像素点的复杂度,利用各像素点所在局部感受野中的亮度平均值确定各像素点的背景亮度,据此确定的对比度、复杂度和背景亮度可以更准确地反映人眼对像素点的敏感程度。
18、在一些可能的实施方式中,所述根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,确定所述待编码视频帧的第一恰可察觉失真值,包括:
19、根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,获得各所述像素点的恰可察觉失真值;
20、对各所述像素点的恰可察觉失真值进行归一化,得到各所述像素点的归一化恰可察觉失真值;
21、根据各所述像素点的归一化恰可察觉失真值,确定所述待编码视频帧的第一恰可察觉失真值。
22、上述实施方式中,通过归一化处理将各像素点的恰可察觉失真值限定到同一数量级范围内,有利于减少由于数量级相差较大对后续计算造成的负面影响,提高待编码视频帧的第一恰可察觉失真值的精度。
23、在一些可能的实施方式中,所述根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,获得各所述像素点的恰可察觉失真值,包括:
24、对于每一所述像素点,根据所述像素点的对比度和复杂度,确定所述像素点的视觉掩蔽效应值;
25、根据所述像素点的背景亮度,确定所述像素点的可见度阈值;
26、基于所述像素点的视觉掩蔽效应值和可见度阈值,获得所述像素点的恰可察觉失真值。
27、上述实施方式中,结合像素点的对比度、复杂度和背景亮度,确定像素点的恰可察觉失真值,据此确定的恰可察觉失真值从多个维度体现了人眼感知能力,有利于更准确地反映人眼能够容忍的失真程度。
28、在一些可能的实施方式中,所述根据所述待编码视频帧的第一恰可察觉失真值、以及与所述待编码视频帧相关的已编码视频帧的第一恰可察觉失真值,确定所述待编码视频帧的第二恰可察觉失真值,包括:
29、利用第一权重对所述已编码视频帧的第一恰可察觉失真值进行加权,得到第一总和,根据所述第一总和以及所述待编码视频帧的第一恰可察觉失真值,得到第二总和;
30、利用所述第一权重对所述已编码视频帧的数量进行加权,得到第一数量,根据所述第一数量得到第二数量;
31、根据所述第二总和与所述第二数量的比值,确定所述待编码视频帧的第二恰可察觉失真值。
32、上述实施方式中,在计算待编码视频帧的第二恰可察觉失真值的过程中,同时考虑了当前帧信息和历史帧信息,并引入第一权重来权衡两者关系,据此获得的第二恰可察觉失真值用于后续帧级码率重分配,有利于减少码率波动和码率浪费。
33、在一些可能的实施方式中,所述比较所述待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码视频帧的帧级偏移量,包括:
34、根据所述待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值的比值,获得所述待编码视频帧的帧级偏移量。
35、上述实施方式中,利用待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值的比值,可以快速且准确地获得帧级偏移量。
36、在一些可能的实施方式中,所述利用所述待编码视频帧的帧级偏移量对所述待编码视频帧的预分配码率进行调整,获得所述待编码视频帧的重分配码率,包括:
37、根据所述待编码视频帧的帧级偏移量以及预设编码参数,得到所述待编码视频帧的调整后编码参数;
38、基于所述待编码视频帧的调整后编码参数,对所述待编码视频帧的预分配码率进行调整,获得所述待编码视频帧的重分配码率。
39、上述实施方式中,利用帧级偏移量对预设编码参数进行调整以实现帧级码率重分配,能够将有限的码率用于人眼可察觉失真区域,并减少人眼不可察觉失真区域的码率,有利于在降低视频总码率的同时保证较好的视觉质量,从而节省网络带宽。
40、在一些可能的实施方式中,所述方法还包括:
41、从所述待编码视频帧中获取待编码宏块,确定所述待编码宏块的第一恰可察觉失真值;
42、根据所述待编码宏块的第一恰可察觉失真值、以及与所述待编码宏块相关的已编码宏块的第一恰可察觉失真值,确定所述待编码宏块的第二恰可察觉失真值;
43、比较所述待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码宏块的块级偏移量;
44、利用所述待编码宏块的块级偏移量对所述待编码宏块的预分配码率进行调整,获得所述待编码宏块的重分配码率,其中,所述待编码宏块的预分配码率根据所述待编码视频帧的重分配码率确定。
45、上述实施方式中,利用待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值之间的偏移量指导宏块级码率重分配,待编码宏块的第二恰可察觉失真值是结合待编码宏块的自身信息和历史宏块信息确定的,即待编码宏块的码率重分配过程中考虑了历史宏块信息,据此能够减小由于不同宏块之间内容差异大造成的码率波动,从而有利于提升视觉质量的平稳性。
46、在一些可能的实施方式中,所述根据所述待编码宏块的第一恰可察觉失真值、以及与所述待编码宏块相关的已编码宏块的第一恰可察觉失真值,确定所述待编码宏块的第二恰可察觉失真值,包括:
47、利用第二权重对所述已编码宏块的第一恰可察觉失真值进行加权,得到第三总和,根据所述第三总和以及所述待编码宏块的第一恰可察觉失真值,得到第四总和;
48、利用所述第二权重对所述已编码宏块的数量进行加权,得到第三数量,根据所述第三数量得到第四数量;
49、根据所述第四总和与所述第四数量的比值,确定所述待编码宏块的第二恰可察觉失真值。
50、上述实施方式中,在计算待编码宏块的第二恰可察觉失真值的过程中,同时考虑了当前宏块信息和历史宏块信息,并引入第二权重来权衡两者关系,据此获得的第二恰可察觉失真值用于后续宏块级码率重分配,有利于减少码率波动和码率浪费。
51、在一些可能的实施方式中,所述比较所述待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码宏块的块级偏移量,包括:
52、计算所述待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值的差值;
53、根据所述差值与所述待编码宏块的第二恰可察觉失真值的比值,获得所述待编码宏块的块级偏移量。
54、上述实施方式中,先确定待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值的差值,再利用该差值与待编码宏块的第二恰可察觉失真值的比值,可以快速且准确地获得块级偏移量。
55、在一些可能的实施方式中,所述利用所述待编码宏块的块级偏移量对所述待编码宏块的预分配码率进行调整,获得所述待编码宏块的重分配码率,包括:
56、根据所述待编码宏块的块级偏移量以及预设编码参数,得到所述待编码宏块的调整后编码参数;
57、基于所述待编码宏块的调整后编码参数,对所述待编码宏块的预分配码率进行调整,获得所述待编码宏块的重分配码率。
58、上述实施方式中,利用块级偏移量对预设编码参数进行调整以实现宏块级码率重分配,能够将有限的码率用于人眼可察觉失真区域,并减少人眼不可察觉失真区域的码率,有利于在降低视频总码率的同时保证较好的视觉质量,从而节省网络带宽。
59、第二方面,本技术实施例提供了一种码率控制装置,所述装置包括:
60、获取单元,用于获取待编码视频帧,确定所述待编码视频帧的第一恰可察觉失真值;
61、确定单元,用于根据所述待编码视频帧的第一恰可察觉失真值、以及与所述待编码视频帧相关的已编码视频帧的第一恰可察觉失真值,确定所述待编码视频帧的第二恰可察觉失真值;
62、比较单元,用于比较所述待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码视频帧的帧级偏移量;
63、重分配单元,用于利用所述待编码视频帧的帧级偏移量对所述待编码视频帧的预分配码率进行调整,获得所述待编码视频帧的重分配码率。
64、在一些可能的实施方式中,所述获取单元在确定所述待编码视频帧的第一恰可察觉失真值时,具体用于:
65、确定所述待编码视频帧中各像素点的对比度、复杂度和背景亮度;
66、根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,确定所述待编码视频帧的第一恰可察觉失真值。
67、在一些可能的实施方式中,所述获取单元在确定所述待编码视频帧中各像素点的对比度、复杂度和背景亮度时,具体用于:
68、根据所述待编码视频帧的灰度变化情况,获得所述待编码视频帧中各所述像素点的梯度数据,所述梯度数据包括:在水平方向的第一梯度值、在垂直方向的第二梯度值、以及梯度方向角;
69、根据各所述像素点的第一梯度值与第二梯度值,确定各所述像素点的对比度;
70、根据各所述像素点所在局部感受野中的梯度方向角的多样性,确定各所述像素点的复杂度;
71、根据各所述像素点所在局部感受野中的亮度平均值,确定各所述像素点的背景亮度。
72、在一些可能的实施方式中,所述第一确定单元在根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,确定所述待编码视频帧的第一恰可察觉失真值时,具体用于:
73、根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,获得各所述像素点的恰可察觉失真值;
74、对各所述像素点的恰可察觉失真值进行归一化,得到各所述像素点的归一化恰可察觉失真值;
75、根据各所述像素点的归一化恰可察觉失真值,确定所述待编码视频帧的第一恰可察觉失真值。
76、在一些可能的实施方式中,所述第一确定单元在根据所述待编码视频帧中各所述像素点的对比度、复杂度和背景亮度,获得各所述像素点的恰可察觉失真值时,具体用于:
77、对于每一所述像素点,根据所述像素点的对比度和复杂度,确定所述像素点的视觉掩蔽效应值;
78、根据所述像素点的背景亮度,确定所述像素点的可见度阈值;
79、基于所述像素点的视觉掩蔽效应值和可见度阈值,获得所述像素点的恰可察觉失真值。
80、在一些可能的实施方式中,所述第二确定单元在根据所述待编码视频帧的第一恰可察觉失真值、以及与所述待编码视频帧相关的已编码视频帧的第一恰可察觉失真值,确定所述待编码视频帧的第二恰可察觉失真值时,具体用于:
81、利用第一权重对所述已编码视频帧的第一恰可察觉失真值进行加权,得到第一总和,根据所述第一总和以及所述待编码视频帧的第一恰可察觉失真值,得到第二总和;
82、利用所述第一权重对所述已编码视频帧的数量进行加权,得到第一数量,根据所述第一数量得到第二数量;
83、根据所述第二总和与所述第二数量的比值,确定所述待编码视频帧的第二恰可察觉失真值。
84、在一些可能的实施方式中,所述比较单元在比较所述待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码视频帧的帧级偏移量时,具体用于:
85、根据所述待编码视频帧的第一恰可察觉失真值与第二恰可察觉失真值的比值,获得所述待编码视频帧的帧级偏移量。
86、在一些可能的实施方式中,所述重分配单元在利用所述待编码视频帧的帧级偏移量对所述待编码视频帧的预分配码率进行调整,获得所述待编码视频帧的重分配码率时,具体用于:
87、根据所述待编码视频帧的帧级偏移量以及预设编码参数,得到所述待编码视频帧的调整后编码参数;
88、基于所述待编码视频帧的调整后编码参数,对所述待编码视频帧的预分配码率进行调整,获得所述待编码视频帧的重分配码率。
89、在一些可能的实施方式中,所述获取单元还用于:从所述待编码视频帧中获取待编码宏块,确定所述待编码宏块的第一恰可察觉失真值;所述确定单元还用于:根据所述待编码宏块的第一恰可察觉失真值、以及与所述待编码宏块相关的已编码宏块的第一恰可察觉失真值,确定所述待编码宏块的第二恰可察觉失真值;所述比较单元还用于:比较所述待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码宏块的块级偏移量;所述重分配单元还用于:利用所述待编码宏块的块级偏移量对所述待编码宏块的预分配码率进行调整,获得所述待编码宏块的重分配码率,其中,所述待编码宏块的预分配码率根据所述待编码视频帧的重分配码率确定。
90、在一些可能的实施方式中,所述第二确定单元在根据所述待编码宏块的第一恰可察觉失真值、以及与所述待编码宏块相关的已编码宏块的第一恰可察觉失真值,确定所述待编码宏块的第二恰可察觉失真值时,具体用于:
91、利用第二权重对所述已编码宏块的第一恰可察觉失真值进行加权,得到第三总和,根据所述第三总和以及所述待编码宏块的第一恰可察觉失真值,得到第四总和;
92、利用所述第二权重对所述已编码宏块的数量进行加权,得到第三数量,根据所述第三数量得到第四数量;
93、根据所述第四总和与所述第四数量的比值,确定所述待编码宏块的第二恰可察觉失真值。
94、在一些可能的实施方式中,所述比较单元在比较所述待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值,获得所述待编码宏块的块级偏移量时,具体用于:
95、计算所述待编码宏块的第一恰可察觉失真值与第二恰可察觉失真值的差值;
96、根据所述差值与所述待编码宏块的第二恰可察觉失真值的比值,获得所述待编码宏块的块级偏移量。
97、在一些可能的实施方式中,所述重分配单元在利用所述待编码宏块的块级偏移量对所述待编码宏块的预分配码率进行调整,获得所述待编码宏块的重分配码率时,具体用于:
98、根据所述待编码宏块的块级偏移量以及预设编码参数,得到所述待编码宏块的调整后编码参数;
99、基于所述待编码宏块的调整后编码参数,对所述待编码宏块的预分配码率进行调整,获得所述待编码宏块的重分配码率。
100、第三方面,本技术实施例提供了一种电子设备,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能的实现方式的方法。
101、第四方面,本技术实施例提供了一种电子设备,包括:处理器、发送装置、输入装置、输出装置和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能的实现方式的方法。
102、第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行如上述第一方面及其任意一种可能的实现方式的方法。
103、第六方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行如上述第一方面及其任意一种可能的实现方式的方法。
104、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。