视频编码方法、装置、电子设备与存储介质与流程



1.本公开涉及视频处理技术领域,尤其涉及一种视频编码方法、视频编码装置、电子设备与计算机可读存储介质。


背景技术:



2.视频编码标准中通常可以根据不同功能和压缩效率分解为三种帧类型:帧内编码帧(i帧,intra-frame)、帧间预测帧(p帧,predicted-frame)以及帧间双向预测帧(b帧,bidirectional-frame)。除了i帧是自重建外,其他类型的帧都可以参考其他的帧进行预测编码,以提升编码器的编码效率。
3.视频编码中,图像组(group of pictures,gop)通常指的是两个关键帧(i帧/p帧)之间的间隔,越大的gop通常b帧的数量越多,而关键帧的数量则越少。然而,在一下编码方案中,gop长度通常只能固定为一个常数值,使用一个固定的gop长度进行视频编码可能导致视频编码效率较低。


技术实现要素:



4.本公开提供一种视频编码方法、视频编码装置、电子设备、计算机可读存储介质与计算机程序产品,以至少解决相关技术中在视频编码过程中无法根据视频特征对目标图像组长度进行动态选择,导致造成视频编码效率较低的问题。本公开的技术方案如下:
5.根据本公开实施例的第一方面,提供一种视频编码方法,包括:获取待处理视频,基于所述待处理视频确定当前待编码帧序列;确定所述当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;根据所述第一帧间差异信息与所述第一帧内差异信息,更新所述当前待编码帧序列对应的第一目标图像组长度;根据更新后的第一目标图像组长度对所述当前待编码帧序列进行编码处理,得到编码视频。
6.在本公开的一种示例性实施例中,所述当前待编码帧序列包括多个视频帧;所述确定所述当前待编码帧序列的第一帧间差异信息与第一帧内差异信息,包括:获取所述当前待编码帧序列对应的帧间隔,根据所述帧间隔确定与每个所述视频帧关联的参考帧;确定各所述视频帧与各所述视频帧关联的参考帧之间的第一帧间差异信息;确定各所述视频帧对应的第一帧内差异信息。
7.在本公开的一种示例性实施例中,所述根据所述第一帧间差异信息与所述第一帧内差异信息,更新所述当前待编码帧序列对应的第一目标图像组长度,包括:根据所述第一帧间差异信息与所述第一帧内差异信息,确定所述当前待编码帧序列对应的变化趋势数值;获取预先配置的变化趋势阈值;在所述变化趋势数值小于所述变化趋势阈值的情况下,则增大所述当前待编码帧序列对应的第一目标图像组长度;在所述变化趋势数值大于或等于所述变化趋势阈值的情况下,则减小所述当前待编码帧序列对应的第一目标图像组长度。
8.在本公开的一种示例性实施例中,所述根据更新后的第一目标图像组长度对所述
当前待编码帧序列进行编码处理,包括:根据所述第一目标图像组长度,确定所述当前待编码帧序列对应的关键帧位置与视频编码参数;根据所述关键帧位置与所述视频编码参数,对所述当前待编码帧序列进行编码处理。
9.在本公开的一种示例性实施例中,所述根据所述关键帧位置与所述视频编码参数,对所述当前待编码帧序列进行编码处理,包括:根据所述关键帧位置确定所述当前待编码帧序列对应的第一关键帧与第二关键帧;将所述第一关键帧以及所述第一关键帧与第二关键帧之间的视频帧作为待编码图像组;根据所述视频编码参数对所述待编码图像组进行编码处理,得到已编码图像组。
10.在本公开的一种示例性实施例中,上述方法还包括:获取第二关键帧的位置,确定已编码图像组的长度;根据所述第二关键帧的位置与所述已编码图像组的长度执行帧读取操作,以得到更新待编码帧序列;确定所述更新待编码帧序列对应的第二目标图像组长度;根据所述第二目标图像组长度对所述更新待编码帧序列进行编码处理。
11.在本公开的一种示例性实施例中,所述确定所述更新待编码帧序列对应的第二目标图像组长度,包括:确定所述更新待编码帧序列的第二帧间差异信息以及第二帧内差异信息;根据所述第二帧间差异信息与所述第二帧内差异信息,确定所述第二目标图像组长度。
12.在本公开的一种示例性实施例中,所述根据所述第二目标图像组长度对所述更新待编码帧序列进行编码处理,包括:根据所述第二目标图像组长度,确定所述更新待编码帧序列对应的更新关键帧;根据所述更新关键帧对所述更新待编码帧序列进行编码处理。
13.根据本公开实施例的第二方面,提供一种视频编码装置,包括:帧序列获取模块,用于获取待处理视频,基于所述待处理视频确定当前待编码帧序列;差异信息确定模块,用于确定所述当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;图像组确定模块,用于根据所述第一帧间差异信息与所述第一帧内差异信息,更新所述当前待编码帧序列对应的第一目标图像组长度;视频编码模块,用于根据更新后的第一目标图像组长度对所述当前待编码帧序列进行编码处理,得到编码视频。
14.在本公开的一种示例性实施例中,所述当前待编码帧序列包括多个视频帧;所述差异信息确定模块包括差异信息确定单元,所述差异信息确定单元被配置为执行:获取所述当前待编码帧序列对应的帧间隔,根据所述帧间隔确定与每个所述视频帧关联的参考帧;确定各所述视频帧与各所述视频帧关联的参考帧之间的第一帧间差异信息;确定各所述视频帧对应的第一帧内差异信息。
15.在本公开的一种示例性实施例中,所述图像组确定模块包括图像组确定单元,所述图像组确定单元被配置为执行:根据所述第一帧间差异信息与所述第一帧内差异信息,确定所述当前待编码帧序列对应的变化趋势数值;获取预先配置的变化趋势阈值;在所述变化趋势数值小于所述变化趋势阈值的情况下,则增大所述当前待编码帧序列对应的第一目标图像组长度;在所述变化趋势数值大于或等于所述变化趋势阈值的情况下,则减小所述当前待编码帧序列对应的第一目标图像组长度。
16.在本公开的一种示例性实施例中,所述视频编码模块包括第一视频编码单元,所述第一视频编码单元被配置为执行:根据所述第一目标图像组长度,确定所述当前待编码帧序列对应的关键帧位置与视频编码参数;根据所述关键帧位置与所述视频编码参数,对
所述当前待编码帧序列进行编码处理。
17.在本公开的一种示例性实施例中,所述第一视频编码单元包括第一视频编码子单元,所述第一视频编码子单元被配置为执行:根据所述关键帧位置确定所述当前待编码帧序列对应的第一关键帧与第二关键帧;将所述第一关键帧以及所述第一关键帧与第二关键帧之间的视频帧作为待编码图像组;根据所述视频编码参数对所述待编码图像组进行编码处理,得到已编码图像组。
18.在本公开的一种示例性实施例中,所述视频编码模块包括第二视频编码单元,所述第二视频编码单元被配置为执行:获取第二关键帧的位置,确定已编码图像组的长度;根据所述第二关键帧的位置与所述已编码图像组的长度执行帧读取操作,以得到更新待编码帧序列;确定所述更新待编码帧序列对应的第二目标图像组长度;根据所述第二目标图像组长度对所述更新待编码帧序列进行编码处理。
19.在本公开的一种示例性实施例中,所述第二视频编码单元包括图像组确定子单元,所述图像组确定子单元被配置为执行:确定所述更新待编码帧序列的第二帧间差异信息以及第二帧内差异信息;根据所述第二帧间差异信息与所述第二帧内差异信息,确定所述第二目标图像组长度。
20.在本公开的一种示例性实施例中,所述第二视频编码单元包括第二视频编码子单元,所述第二视频编码子单元被配置为执行:根据所述第二目标图像组长度,确定所述更新待编码帧序列对应的更新关键帧;根据所述更新关键帧对所述更新待编码帧序列进行编码处理。
21.根据本公开的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述任意一项所述的视频编码方法。
22.根据本公开的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任意一项所述的视频编码方法。
23.根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序/指令,其特征在于,计算机程序/指令被处理器执行时实现上述任意一项所述的视频编码方法。
24.本公开的实施例提供的技术方案至少带来以下有益效果:基于视频帧序列的帧间差异信息与帧内差异信息,自适应调整目标图像组长度,由于不同的目标图像组长度对不同的视频而言编码效率差异较大,通过自适应调整目标图像组长度并进行视频编码,可以有效提升视频编码效率。
25.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
26.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
27.图1是根据一示例性实施例示出的一种视频编码方法的流程图。
28.图2是根据一示例性实施例示出的确定视频帧之间的帧间差异信息的示例图。
29.图3是根据一示例性实施例示出的图像组(gop)结构的示例图。
30.图4是根据一示例性实施例示出的重新进行帧获取操作以得到更新待编码帧序列的示例图。
31.图5是根据一示例性实施例示出的一种视频编码装置的框图。
32.图6示意性示出了根据本公开一示例性实施例的电子设备的框图。
具体实施方式
33.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
34.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
35.在视频编码过程中,通过提升gop长度可以在一定程度上提升视频编码的编码效率。然而,在国际视频编码标准hevc(high-efficiency video codin))与新一代通用视频编码(versatile video coding,vvc)等标准参考软件中,gop长度通常只能固定为一个常数值,无法根据实际视频内容特征对最大gop长度进行动态选择,可能带来一定程度上的编码性能损失。
36.而在x264、x265这类开源视频编码器中,gop长度可以依据视频内在一个范围内进行动态决策,存在一个预设的最大gop长度,在编码预处理决策帧类型(决策p帧的位置)时,会在最大gop长度的位置强制插入一个p帧,并根据编码预处理阶段的帧间编码损失和帧内编码损失计算得到最优的p帧位置,然后从当前最优p帧位置+最大gop长度处再强制插入一个p帧,如此迭代计算直至得到整个视频的最优帧类型分布。不同的最大gop长度设定对于不同的视频而言性能差异较大。该处理方案,同样没有依据实际视频内容特征对最大gop长度进行动态选择,造成一定程度上的编码性能损失。
37.基于此,本公开提出一种视频编码方法、视频编码装置、电子设备、计算机可读存储介质与计算机程序产品。
38.图1是根据一示例性实施例示出的一种视频编码方法的流程图,如图1所示,视频编码方法用于可以用于计算机设备中,其中,本公开中描述的计算机设备可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personal digital assistant,pda)等移动终端设备,以及诸如台式计算机等固定终端设备。本示例性实施例以该方法应用于计算机设备进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括计算机设备和服务器的系统,并通过计算机设备和服务器的交互实现。具体包括以下步骤。
39.在步骤s110中,获取待处理视频,基于待处理视频确定当前待编码帧序列。
40.在本公开的一种示例性实施例中,待处理视频可以是待进行编码处理的视频片段。当前待编码帧序列可以是待处理视频中多个视频帧组成的待编码视频帧序列。
41.为了提升视频传输的速率和资源利用率,可以在视频传输之前,对待传输视频进行编码处理,本公开可以将需要进行编码处理的视频片段作为待处理视频。待处理视频通常是由多个视频帧组成的视频帧序列,在对待处理视频进行编码处理之前,可以先对待处理视频进行编码预处理。在编码预处理阶段,通常配置有对应的编码预处理长度,例如,可以将编码预处理长度配置为60,则编码器将一次获取60个视频帧进行编码处理。当编码预处理长度配置为60时,可以将获取到的60个视频帧作为当前待编码帧序列。
42.在步骤s120中,确定当前待编码帧序列的第一帧间差异信息与第一帧内差异信息。
43.在本公开的一种示例性实施例中,第一帧间差异信息可以是当前待编码帧序列中不同帧之间的信息量差异。第一帧内差异信息可以是当前待编码帧序列中同一视频帧在不同编码模式下的信息量差异。
44.在确定出当前待编码帧序列后,可以确定当前待编码帧序列中不同视频帧之间的差异信息。参考图2,图2是根据一示例性实施例示出的确定视频帧之间的帧间差异信息的示例图。例如,图2中的当前帧为视频帧210,对于当前帧210,可以确定出与当前帧210对应的参考帧220,当前帧210与参考帧220之间间隔了一个或多个中间帧。
45.在确定出当前帧210的参考帧220后,可以计算这两个视频帧之间的信息量差值,作为第一帧间差异信息。例如,可以将两个视频帧在编码预处理阶段计算得到的帧间编码损失作为第一帧间差异信息。另外,由于同一视频帧在不同编码模式下可能产生不同的信息量,此时,可以计算同一视频帧在不同编码模式下信息量差异作为第一帧内差异信息。
46.通过上述处理方式,确定出当前待编码帧序列中每个位置上的视频帧对应的帧间差异信息与帧内差异信息,作为当前待编码帧序列的第一帧间差异信息与第一帧内差异信息。
47.在步骤s130中,根据第一帧间差异信息与第一帧内差异信息,更新当前待编码帧序列对应的第一目标图像组长度。
48.在本公开的一种示例性实施例中,第一目标图像组长度可以是根据帧差异信息对当前待编码帧序列确定出的目标图像组长度。
49.视频中的gop可以是两个关键帧之间的间隔,参考图3,图3是根据一示例性实施例示出的图像组(gop)结构的示例图。图3中的视频帧310均为关键帧,如i帧或p帧,视频帧320可以是b帧。两个关键帧之间可以插入b帧,两个关键帧与之间插入的b帧共同组成图像组(gop);其中,gop长度可以是最大连续b帧的数量+1。举例而言,当一个gop的组成结构为:起始视频帧是一个关键帧i帧、结束视频帧是一个关键帧p帧、关键帧i帧与关键帧p帧之间包含有15个b帧时,则该gop的长度是15+1=16。在视频编码过程中,最大gop长度的取值可以包括8、16、32和64等等。
50.在确定出第一帧间差异信息与第一帧内差异信息,可以根据第一帧间差异信息与第一帧内差异信息衡量当前待编码帧序列的运动剧烈程度,从而根据确定出的运动剧烈程度更新当前待编码帧序列对应的第一目标图像组长度。如果确定出当前待编码帧序列是一个运动缓慢的视频序列,则可以增大当前待编码帧序列的目标图像组长度,即增大第一目标图像组长度。例如,如果当前待编码帧序列的初始最大gop长度是16,判断出当前待编码帧序列是一个运动缓慢的视频序列,则可以将当前待编码帧序列的当前最大gop长度更新
为32。
51.确定出当前待编码帧序列是一个运动剧烈的视频序列,则可以减小当前待编码帧序列的目标图像组长度,即减小第一目标图像组长度。例如,如果当前待编码帧序列的初始最大gop长度是32,判断出当前待编码帧序列是一个运动缓慢的视频序列,则可以将当前待编码帧序列的当前最大gop长度更新为16。通过上述处理步骤,可以是确定出的最大gop长度可以自适应视频特征,这一过程可以称为序列级帧决策。
52.在步骤s140中,根据更新后的第一目标图像组长度对当前待编码帧序列进行编码处理,得到编码视频。
53.在本公开的一种示例性实施例中,编码处理可以是通过压缩技术将原始视频格式的文件转换为另一种视频格式文件的方式。编码视频可以是经过采用上述视频编码方法进行编码处理所得到的视频。
54.在确定出更新后的第一目标图像组长度后,可以根据更新后的第一目标图像组长度对当前待编码帧序列进行编码处理。例如,根据第一目标图像组长度确定出当前待编码帧序列中关键帧的插入位置以及b帧的插入位置,从而进行视频编码处理。
55.根据本示例实施例中的视频编码方法,基于视频帧序列的帧间差异信息与帧内差异信息,自适应调整目标图像组长度,由于不同的目标图像组长度对不同的视频而言编码效率差异较大,通过自适应调整目标图像组长度并进行视频编码,可以有效提升视频编码效率。
56.下面,将对本示例实施例中的视频处理方法进行进一步的说明。
57.在本公开的一种示例性实施例中,确定当前待编码帧序列的帧差异信息可以通过下述步骤进行:获取当前待编码帧序列对应的帧间隔,根据帧间隔确定与每个视频帧关联的参考帧;确定各视频帧与各视频帧关联的参考帧之间的第一帧间差异信息;确定各视频帧对应的第一帧内差异信息。
58.其中,帧间隔可以是当前待编码帧序列中两个视频帧之间的间隔。参考帧可以是与某一视频帧关联的视频帧,参考帧可以用于确定与某一视频帧之间的帧间差异信息。
59.继续参考图2,在确定帧差异信息时,可以先确定当前待编码帧序列对应的帧间隔,例如,可以将帧间隔确定为2、4、8等。以将帧间隔是4为例,则当前待编码帧序列中的第5个视频帧的参考帧可以是第1帧。在确定出某一视频帧关联的参考帧之后,可以确定出该视频帧与参考帧之间的帧间差异信息。举例而言,可以将视频编码预处理阶段确定出的帧间编码损失作为帧间差异信息;其中,帧间编码损失可以是该视频帧与参考帧两个视频帧进行编码所产生的损失。另外,如果一个视频帧是b帧,由于b帧是双向预测的帧,根据帧间隔可以确定出与该b帧对应的两个参考帧,并分别计算该b帧与两个参考帧之间的帧间差异信息。
60.在确定出不同视频帧对应的帧间编码损失后,可以获取在编码预处理阶段计算出的每个视频帧对应的帧内编码损失,例如,同一视频帧在不同编码模式下,可能产生不同的信息量,此时,可以根据同一视频帧在两种不同编码模式下的产生的信息量确定该视频帧的帧内编码损失。帧间差异信息与帧内差异信息可以用于衡量一个视频的运动剧烈程度,从而自适应地调整目标图像组长度(最大gop长度)。
61.需要说明的是,在视频编码预处理阶段,当前待编码帧序列的视频帧包含的信息
量还可以采用其他视频特征表示,因此,可以采用其他类型的视频特征计算帧间差异信息与帧内差异信息,如,其他视频特征可以包括帧级像素值的均值、方差、梯度等信息。可以根据某一视频帧与参考帧之间像素值的均值、方差、梯度等计算帧间差异信息,并且,根据同一视频帧在不同编码模式下像素值的均值、方差、梯度等计算帧内差异信息。
62.在本公开的一种示例性实施例中,根据第一帧间差异信息与第一帧内差异信息,更新当前待编码帧序列对应的第一目标图像组长度可以通过下述步骤进行:根据第一帧间差异信息与第一帧内差异信息,确定当前待编码帧序列对应的变化趋势数值;获取预先配置的变化趋势阈值;在变化趋势数值小于变化趋势阈值的情况下,则增大当前待编码帧序列对应的第一目标图像组长度;在变化趋势数值大于或等于变化趋势阈值的情况下,则减小当前待编码帧序列对应的第一目标图像组长度。
63.其中,变化趋势数值可以是描述当前待编码帧序列运动剧烈程度的数值。变化趋势阈值可以是预先配置用于与变化趋势数值相比较的数值。
64.在确定出当前待编码帧序列对应的第一帧间差异信息与第一帧内差异信息,可以根据第一帧间差异信息与第一帧内差异信息衡量整段视频的运动变化趋势,该视频的运动变化趋势可以采用变化趋势数值进行量化。例如,变化趋势数值=第一帧间编码损失/第一帧内编码损失,采用变化趋势数值衡量这个视频的运动剧烈程度。
65.在确定出当前待编码帧序列对应的变化趋势数值后,可以获取预先配置的变化趋势阈值,对两者进行大小对比,如果变化趋势数值小于变化趋势阈值,则可以认为该视频是一个运动缓慢的视频,因此,可以增大当前待编码帧序列的最大gop长度,如当前的最大gop长度为16,可以从16增大至32。如果变化趋势数值大于或者等于变化趋势阈值,则可以认为该视频是一个运动相对剧烈的视频,因此,可以减小当前待编码帧序列的最大gop长度,如将当前的最大gop长度32减小至16。通过上述处理步骤,可以达到自适应地调整最大gop长度的目的。
66.在本公开的一种示例性实施例中,根据第一目标图像组长度,确定当前待编码帧序列对应的关键帧位置与视频编码参数;根据关键帧位置与视频编码参数,对当前待编码帧序列进行编码处理。
67.其中,关键帧位置可以是关键帧在视频帧序列中的具体位置。视频编码参数可以是对视频进行编码处理的所采用的编码参数。
68.在确定出当前待编码帧序列对应的第一目标图像组长度后,可以根据第一目标图像组长度确定对当前待编码帧序列进行编码处理所采用视频编码参数;例如,视频编码参数可以包括编码预处理的长度,不同目标图像组长度对应的编码预处理长度可能不同。举例而言,如果第一目标图像组长度为16时,与其匹配的编码预处理长度可以是60,当第一目标图像组长度调整为32时,与gop长度为32匹配的编码预处理长度可以是90。调整后的编码预处理长度,在视频编码过程中将具有更好的编码性能,因此,可以确定出第一目标图像组长度最匹配的视频编码参数,以进行后续视频编码处理。
69.另外,在确定出第一目标图像组长度(第一最大gop长度)后,可以根据第一最大gop长度确定当前待编码帧序列中的关键帧位置,第一最大gop长度为关键帧位置提供了一个取值范围,关键帧位置将被限定在这个位置区间中进行确定。在确定出视频编码参数与关键帧位置之后,可以采用上述参数对当前待编码帧序列进行编码处理,以提升视频编码
性能。
70.在本公开的一种示例性实施例中,根据关键帧位置与视频编码参数对当前待编码帧序列进行编码处理,可以通过下述步骤进行:根据关键帧位置确定当前待编码帧序列对应的第一关键帧与第二关键帧;将第一关键帧以及第一关键帧与第二关键帧之间的视频帧作为待编码图像组;根据视频编码参数对待编码图像组进行编码处理,得到已编码图像组。
71.其中,待编码图像组可以是等待进行视频编码处理的图像组。已编码图像组可以是已经经过视频编码处理的图像组。
72.在确定出第一最大gop长度后,可以确定出关键帧的插入位置范围,例如,当第一最大gop长度为16时,关键帧可以插入在编号为0-15的任一一个位置上。如,第一关键帧的位置可以是编号0的位置,第二关键帧的位置可以是编号9的位置,因此,在确定出第一关键帧与第二关键帧之后,可以在两个关键帧之间插入b帧,进而,第一关键帧以及两者之间的b帧共同形成一个图像组,记为待编码图像组。
73.在确定出待编码图像组之后,可以根据确定出的视频编码参数对待编码图像组进行编码处理,得到已编码图像组。通过上述处理步骤,可以完成对当前待编码帧序列中的前10个视频帧的视频编码过程。
74.在本公开的一种示例性实施例中,获取第二关键帧的位置,确定已编码图像组的长度;根据第二关键帧的位置与已编码图像组的长度执行帧读取操作,以得到更新待编码帧序列;确定更新待编码帧序列对应的第二目标图像组长度;根据第二目标图像组长度对更新待编码帧序列进行编码处理。
75.其中,第二关键帧的位置可以是第二关键帧在视频帧序列中位置序号。已编码图像组的长度可以是已经经过视频编码处理的图像组的长度。更新待编码帧序列可以是执行帧读取操作后重新形成的待编码视频帧序列。第二目标图像组长度可以是更新待编码帧序列对应的目标图像组长度。
76.参考图4,图4是根据一示例性实施例示出的重新进行帧获取操作以得到更新待编码帧序列的示例图。在对待编码图像组进行编码处理,得到已编码图像组;其中,已编码图像组中包含第一关键帧401,基于已编码图像组确定第二关键帧402的位置。由于编码器中通常要保持待编码视频帧的数量为编码预处理长度,因此,在确定出第二关键帧的位置之后,可以确定已编码图像组的长度,例如,上述已编码图像组的长度为10。通过上述编码过程已经完成了10个视频帧的编码,生成了10个已编码视频帧,剩余了从第二视频帧位置算起的50个未编码视频帧。此时可以继续执行帧读取操作,基于第二关键帧的位置执行帧读取操作,读取编码预处理长度的视频帧,即再重新读取10个新的视频帧,剩余的50个未编码视频帧与10个新的视频帧共同组成更新待编码帧序列。
77.在得到更新待编码帧序列后,由于视频帧序列发生了变化,视频特征也相应发生了变化,此时可以重新确定更新待编码帧序列对应的目标图像组长度,即第二目标图像组长度。通过上述处理步骤,可以实现更细粒度的自适应选择最大gop长度,使得确定出的第二目标图像组长度更加符合视频特征,根据第二最大gop长度进行视频编码处理,可以有效提升视频编码性能。
78.在本公开的一种示例性实施例中,第二最大gop长度的确定方式与第一最大gop长度的确定方式相同,具体包括:确定更新待编码帧序列的第二帧间差异信息以及第二帧内
差异信息;根据第二帧间差异信息与第二帧内差异信息,确定第二目标图像组长度。
79.其中,第二帧间差异信息可以是更新待编码帧序列中不同帧之间的信息量差异。第二帧内差异信息可以是更新待编码帧序列中同一视频帧在不同编码模式自身产生的信息量差异。
80.在得到更新待编码帧序列后,可以确定该待编码帧序列的帧差异信息,包括第二帧间差异信息与第二帧内差异信息。具体的,根据预先确定的帧间隔,确定某一视频帧对应的参考帧,例如,可以将该视频帧与参考帧之间的帧间编码损失作为第二帧间差异信息。另外,可以根据同一视频帧在不同编码模式下产生的信息量差异作为第二帧内差异信息。
81.在确定出第二帧间差异信息与第二帧内差异信息后,可以根据第二帧间差异信息与第二帧内差异信息确定第二目标图像组长度,例如,根据第二帧间差异信息与第二帧内差异信息确定更新待编码帧序列的变化趋势数值。将确定出的变化趋势数值与变化趋势阈值进行对比,如果变化趋势数值小于变化趋势阈值,则认为更新待编码帧序列是一个运动缓慢的视频,可以增大第二最大gop长度。
82.反之,如果变化趋势数值大于或等于变化趋势阈值,则认为更新待编码帧序列是一个运动剧烈的视频,可以相应减小第二最大gop长度,进而根据确定出的第二最大gop长度进行视频编码处理。通过变化趋势数值自适应地调整最大gop长度,通过上述方式确定出的第二最大gop长度将符合更新待编码帧序列的视频特征,实现更细粒度确定gop长度的方案,该方案为gop级帧决策。
83.本领域技术人员容易理解的是,在确定第二帧间差异信息与第二帧内差异信息时,同样可以根据视频帧的帧级像素值的均值、方差和梯度等信息进行,本公开对此不作任何特殊限定。
84.在本公开的一种示例性实施例中,根据第二目标图像组长度对更新待编码帧序列进行编码处理,包括:根据第二目标图像组长度,确定更新待编码帧序列对应的更新关键帧;根据更新关键帧对更新待编码帧序列进行编码处理。
85.其中,更新关键帧可以是更新待编码帧序列中包含的视频帧,更新关键帧的位置可以根据第二最大gop长度确定。
86.在确定出第二最大gop长度之后,可以根据第二最大gop长度确定更新编码帧序列中的关键帧,即更新关键帧,例如,第二最大gop长度从16调整到32后,第二关键帧的位置可以在编号10的位置处,则更新关键帧的位置可以在11到41之间的任一位置。
87.进一步地,在确定出第二最大gop长度后,可以确定与第二最大gop长度匹配的视频编码参数,从而根据视频编码参数与更新关键帧对更新待编码帧序列进行编码处理,得到待处理视频对应的编码视频,以提升编码性能。
88.综上所述,本公开的视频编码方式,获取待处理视频,基于待处理视频确定当前待编码帧序列;确定当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;根据第一帧间差异信息与第一帧内差异信息,更新当前待编码帧序列对应的第一目标图像组长度;根据更新后的第一目标图像组长度对当前待编码帧序列进行编码处理,得到编码视频。一方面,基于视频帧序列的帧间差异信息与帧内差异信息,自适应调整目标图像组长度,进而根据目标图像组长度确定关键帧位置并进行视频编码,可以有效提升视频编码效率。另一方面,通过有效利用视频特征与编码预处理生成的信息,将序列级以及更细粒度(如gop级)
层级相联合,自适应地确定最大gop长度,可以大幅提升视频编码效率。
89.图5是根据一示例性实施例示出的一种视频编码装置框图。参照图5,该视频编码装置500包括帧序列获取模块510、差异信息确定模块520、图像组确定模块530以及视频编码模块540。
90.具体的,帧序列获取模块510,用于获取待处理视频,基于待处理视频确定当前待编码帧序列;差异信息确定模块520,用于确定当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;图像组确定模块530,用于根据第一帧间差异信息与第一帧内差异信息,更新当前待编码帧序列对应的第一目标图像组长度;视频编码模块540,用于根据更新后的第一目标图像组长度对当前待编码帧序列进行编码处理,得到编码视频。
91.在本公开的一种示例性实施例中,当前待编码帧序列包括多个视频帧;差异信息确定模块520包括差异信息确定单元,差异信息确定单元被配置为执行:获取当前待编码帧序列对应的帧间隔,根据帧间隔确定与每个视频帧关联的参考帧;确定各视频帧与各视频帧关联的参考帧之间的第一帧间差异信息;确定各视频帧对应的第一帧内差异信息。
92.在本公开的一种示例性实施例中,图像组确定模块530包括图像组确定单元,图像组确定单元被配置为执行:根据第一帧间差异信息与第一帧内差异信息,确定当前待编码帧序列对应的变化趋势数值;获取预先配置的变化趋势阈值;在变化趋势数值小于变化趋势阈值的情况下,则增大当前待编码帧序列对应的第一目标图像组长度;在变化趋势数值大于或等于变化趋势阈值的情况下,则减小当前待编码帧序列对应的第一目标图像组长度。
93.在本公开的一种示例性实施例中,视频编码模块540包括第一视频编码单元,第一视频编码单元被配置为执行:根据第一目标图像组长度,确定当前待编码帧序列对应的关键帧位置与视频编码参数;根据关键帧位置与视频编码参数,对当前待编码帧序列进行编码处理。
94.在本公开的一种示例性实施例中,第一视频编码单元包括第一视频编码子单元,第一视频编码子单元被配置为执行:根据关键帧位置确定当前待编码帧序列对应的第一关键帧与第二关键帧;将第一关键帧以及第一关键帧与第二关键帧之间的视频帧作为待编码图像组;根据视频编码参数对待编码图像组进行编码处理,得到已编码图像组。
95.在本公开的一种示例性实施例中,视频编码模块540包括第二视频编码单元,第二视频编码单元被配置为执行:获取第二关键帧的位置,确定已编码图像组的长度;根据第二关键帧的位置与已编码图像组的长度执行帧读取操作,以得到更新待编码帧序列;确定更新待编码帧序列对应的第二目标图像组长度;根据第二目标图像组长度对更新待编码帧序列进行编码处理。
96.在本公开的一种示例性实施例中,第二视频编码单元包括图像组确定子单元,图像组确定子单元被配置为执行:确定更新待编码帧序列的第二帧间差异信息以及第二帧内差异信息;根据第二帧间差异信息与第二帧内差异信息,确定第二目标图像组长度。
97.在本公开的一种示例性实施例中,第二视频编码单元包括第二视频编码子单元,第二视频编码子单元被配置为执行:根据第二目标图像组长度,确定更新待编码帧序列对应的更新关键帧;根据更新关键帧对更新待编码帧序列进行编码处理。
98.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法
的实施例中进行了详细描述,此处将不做详细阐述说明。
99.下面参考图6来描述根据本公开的这种实施例的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
100.如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640。
101.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
102.存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(rom)623。
103.存储单元620可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
104.总线630可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
105.电子设备600也可以与一个或多个外部设备670(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
106.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述任意一项所述的视频处理方法。
107.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
108.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术特征:


1.一种视频编码方法,其特征在于,包括:获取待处理视频,基于所述待处理视频确定当前待编码帧序列;确定所述当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;根据所述第一帧间差异信息与所述第一帧内差异信息,更新所述当前待编码帧序列对应的第一目标图像组长度;根据更新后的第一目标图像组长度对所述当前待编码帧序列进行编码处理,得到编码视频。2.根据权利要求1所述的方法,其特征在于,所述当前待编码帧序列包括多个视频帧;所述确定所述当前待编码帧序列的第一帧间差异信息与第一帧内差异信息,包括:获取所述当前待编码帧序列对应的帧间隔,根据所述帧间隔确定与每个所述视频帧关联的参考帧;确定各所述视频帧与各所述视频帧关联的参考帧之间的第一帧间差异信息;确定各所述视频帧对应的第一帧内差异信息。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一帧间差异信息与所述第一帧内差异信息,更新所述当前待编码帧序列对应的第一目标图像组长度,包括:根据所述第一帧间差异信息与所述第一帧内差异信息,确定所述当前待编码帧序列对应的变化趋势数值;获取预先配置的变化趋势阈值;在所述变化趋势数值小于所述变化趋势阈值的情况下,则增大所述当前待编码帧序列对应的第一目标图像组长度;在所述变化趋势数值大于或等于所述变化趋势阈值的情况下,则减小所述当前待编码帧序列对应的第一目标图像组长度。4.根据权利要求1所述的方法,其特征在于,所述根据更新后的第一目标图像组长度对所述当前待编码帧序列进行编码处理,包括:根据所述第一目标图像组长度,确定所述当前待编码帧序列对应的关键帧位置与视频编码参数;根据所述关键帧位置与所述视频编码参数,对所述当前待编码帧序列进行编码处理。5.根据权利要求4所述的方法,其特征在于,所述根据所述关键帧位置与所述视频编码参数,对所述当前待编码帧序列进行编码处理,包括:根据所述关键帧位置确定所述当前待编码帧序列对应的第一关键帧与第二关键帧;将所述第一关键帧以及所述第一关键帧与第二关键帧之间的视频帧作为待编码图像组;根据所述视频编码参数对所述待编码图像组进行编码处理,得到已编码图像组。6.根据权利要求1或5所述的方法,其特征在于,所述方法还包括:获取第二关键帧的位置,确定已编码图像组的长度;根据所述第二关键帧的位置与所述已编码图像组的长度执行帧读取操作,以得到更新待编码帧序列;确定所述更新待编码帧序列对应的第二目标图像组长度;根据所述第二目标图像组长度对所述更新待编码帧序列进行编码处理。
7.根据权利要求6所述的方法,其特征在于,所述确定所述更新待编码帧序列对应的第二目标图像组长度,包括:确定所述更新待编码帧序列的第二帧间差异信息以及第二帧内差异信息;根据所述第二帧间差异信息与所述第二帧内差异信息,确定所述第二目标图像组长度。8.根据权利要求6所述的方法,其特征在于,所述根据所述第二目标图像组长度对所述更新待编码帧序列进行编码处理,包括:根据所述第二目标图像组长度,确定所述更新待编码帧序列对应的更新关键帧;根据所述更新关键帧对所述更新待编码帧序列进行编码处理。9.一种视频编码装置,其特征在于,包括:帧序列获取模块,用于获取待处理视频,基于所述待处理视频确定当前待编码帧序列;差异信息确定模块,用于确定所述当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;图像组确定模块,用于根据所述第一帧间差异信息与所述第一帧内差异信息,更新所述当前待编码帧序列对应的第一目标图像组长度;视频编码模块,用于根据更新后的第一目标图像组长度对所述当前待编码帧序列进行编码处理,得到编码视频。10.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的视频编码方法。11.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至8中任一项所述的视频编码方法。

技术总结


本公开提供了一种视频编码方法、装置、电子设备与计算机可读存储介质,涉及视频处理技术领域。该方法包括:获取待处理视频,基于待处理视频确定当前待编码帧序列;确定当前待编码帧序列的第一帧间差异信息与第一帧内差异信息;根据第一帧间差异信息与第一帧内差异信息,更新当前待编码帧序列对应的第一目标图像组长度;根据更新后的第一目标图像组长度对当前待编码帧序列进行编码处理,得到编码视频。本公开可以基于视频帧序列的帧间差异信息与帧内差异信息,自适应调整目标图像组长度,可以根据目标图像组长度确定关键帧位置并进行视频编码,有效提升编码效率。有效提升编码效率。有效提升编码效率。


技术研发人员:

邵宇超 陈宇聪 闻兴 谷嘉文 黄跃

受保护的技术使用者:

北京达佳互联信息技术有限公司

技术研发日:

2022.09.28

技术公布日:

2022/12/22

本文发布于:2024-09-22 20:30:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/46434.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   序列   视频   差异
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议