一种视频数据的插帧方法及装置与流程

文档序号:31770968发布日期:2022-10-12 06:45阅读:131来源:国知局
一种视频数据的插帧方法及装置与流程

1.本技术涉及视频处理技术领域,尤其涉及一种视频数据的插帧方法及装置。


背景技术:

2.目前对视频数据进行编码或解码得到的帧率是以输入的编码器或解码器的帧率为实际帧率,编码或解码后的视频数据的帧率不高于实际帧率。如果想要增加帧率,则是对编码或解码后的视频数据中的任一视频帧进行复制,将复制得到的视频帧插入到视频数据后。因为插入的视频帧是从前一个视频帧复制得来的,因此,对于观众来说增加帧率后的视频数据是卡顿的。


技术实现要素:

3.有鉴于此,本技术的目的在于至少提供一种视频数据的插帧方法及装置,本技术通过对神经网络模型预测出每个视频帧对应的预测运动矢量矩阵,进而可以确定每个视频帧对应的待插入视频帧,解决了现有技术中若提高视频帧率则会导致卡顿的技术问题,达到了提高用户的观看体验的有益效果。
4.本技术主要包括以下几个方面:
5.第一方面,本技术实施例提供一种视频数据的插帧方法,该视频数据的插帧方法包括:获取待处理视频中每个视频帧对应的真实运动矢量矩阵,真实运动矢量矩阵用于表示该视频帧与相邻视频帧的运动矢量;将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵;将预测运动矢量矩阵与该视频帧进行视频对象平面vop重建,得到重建视频数据;对重建视频数据进行处理,将处理的结果确定为该视频帧对应的待插入视频帧;将待插入视频帧插入到该视频帧的后一个帧位。
6.可选地,获取待处理视频中每个视频帧对应的真实运动矢量矩阵,包括:获取每个视频帧对应的前一个视频帧;确定该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵。
7.可选地,神经网络模型的训练方法为:针对样本视频中的每个视频帧,确定该视频帧与该视频帧的前一个视频帧的第一运动矢量矩阵,确定该视频帧的后一个视频帧与该视频帧的第二运动矢量矩阵;将每个视频帧对应的第一运动矢量矩阵作为样本数据,将每个视频帧对应的第二运动矢量矩阵作为标签,训练神经网络模型。
8.可选地,获取待处理视频中每个视频帧对应的真实运动矢量矩阵,包括:获取每个视频帧对应的前一个视频帧和后一个视频帧;确定后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵;确定该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵。
9.可选地,神经网络模型的训练方法为:针对每个视频帧,确定该视频帧与该视频帧的前一个视频帧的第一运动矢量矩阵,确定该视频帧的后一个视频帧与该视频帧的第二运动矢量矩阵,确定该视频帧后的第两个视频帧与该视频帧的第三运动矢量矩阵;将每个视
频帧对应的第一运动矢量矩阵、第三运动矢量矩阵作为样本数据,将每个视频帧对应的第二运动矢量矩阵作为标签,训练神经网络模型。
10.可选地,将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵包括:将后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵、将该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵。
11.可选地,待处理视频包括:已解码视频或已编码视频;对重建视频数据进行处理,将处理结果确定为该视频帧对应的待插入视频帧包括:若待处理视频为已编码视频,则对重建视频数据进行编码处理,将编码处理的结果确定为该视频帧对应的待插入视频帧;若待处理视频为已解码视频,则对重建视频数据进行解码处理,将解码处理的结果确定为该视频帧对应的待插入视频帧。
12.第二方面,本技术实施例还提供一种视频数据的插帧装置,视频数据的插帧装置包括:获取模块,用于获取待处理视频中每个视频帧对应的真实运动矢量矩阵,真实运动矢量矩阵用于表示该视频帧与相邻视频帧的运动矢量;神经网络模块,用于将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵;重建模块,用于将预测运动矢量矩阵与该视频帧进行视频对象平面vop重建,得到重建视频数据;确定模块,用于对重建视频数据进行处理,将处理结果确定为该视频帧对应的待插入视频帧;插入模块,用于将待插入视频帧插入到该视频帧的后一个帧位。
13.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线进行通信,机器可读指令被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的视频数据的插帧方法的步骤。
14.第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的视频数据的插帧的步骤。
15.本技术实施例提供的一种视频数据的插帧方法及装置,该方法包括:获取待处理视频中每个视频帧对应的真实运动矢量矩阵,真实运动矢量矩阵用于表示该视频帧与相邻视频帧的运动矢量;将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵;将预测运动矢量矩阵与该视频帧进行视频对象平面vop重建,得到重建视频数据;对重建视频数据进行处理,将处理的结果确定为该视频帧对应的待插入视频帧;将待插入视频帧插入到该视频帧的后一个帧位。本技术通过对神经网络模型预测出每个视频帧对应的预测运动矢量矩阵,进而可以确定每个视频帧对应的待插入视频帧,解决了现有技术中若提高视频帧率则会导致卡顿的技术问题,达到了提高用户的观看体验的有益效果。
16.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
18.图1示出了本技术实施例所提供的一种视频数据的插帧方法的流程图。
19.图2示出了本技术实施例所提供的获取待处理视频中每个视频帧对应的真实运动矢量矩阵的步骤的流程图。
20.图3示出了本技术实施例所提供的一种视频数据的插帧装置的功能模块图。
21.图4示出了本技术实施例所提供的一种电子设备的结构示意图。
具体实施方式
22.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中的附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
23.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本技术保护的范围。
24.现有技术若想提高视频数据的帧率,则需要对视频数据中的当前视频帧进行复制,并将复制后的视频帧插入到当前视频帧的后一个帧位置。由于只是单纯将当前视频帧进行复制,插入的视频帧与当前视频帧没有任何差异,则在观众看来此视频数据是卡顿的,进而影响观众的观看体验。
25.基于此,本技术实施例提供了一种视频数据的插帧方法及装置,本技术通过对神经网络模型预测出每个视频帧对应的预测运动矢量矩阵,进而可以确定每个视频帧对应的待插入视频帧,解决了现有技术中若提高视频帧率则会导致卡顿的技术问题,达到了提高用户的观看体验的有益效果。
26.具体如下:
27.请参阅图1,图1为本技术实施例所提供的一种视频数据的插帧方法的流程图。如图1所示,本技术实施例提供的视频数据的插帧方法,包括以下步骤:
28.s101、获取待处理视频中每个视频帧对应的真实运动矢量矩阵。
29.真实运动矢量矩阵用于表示该视频帧与相邻视频帧的运动矢量。
30.请参阅图2,图2为本技术实施例所提供的获取待处理视频中每个视频帧对应的真实运动矢量矩阵的步骤的流程图。如图2所示,本技术实施例提供的获取待处理视频中每个视频帧对应的真实运动矢量矩阵,包括以下步骤:
31.s1011、获取每个视频帧对应的前一个视频帧。
32.由于待处理视频的第一个视频帧没有前一个视频帧,因此第一个视频帧不执行本技术实施例所提供的方法,而是从待处理视频的第二个视频帧开始执行的。
33.也就是说,待处理视频的第一个视频帧是待处理视频的第二个视频帧对应的前一个视频帧。而从待处理视频的第三个视频帧开始,每个视频帧对应的前一个视频帧是上一次迭代产生的待插入视频帧。
34.s1012、确定该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵。
35.也就是说,将该视频帧划分为预设大小的像素点,然后该视频帧的每个像素点按照一定的匹配准则在前一个视频帧的搜索范围内查找最匹配的像素点,得到位移差为每个像素点对应的运动矢量,将该视频帧中每个像素点对应的运动矢量组成为该视频帧对应的运动矢量矩阵。
36.该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵,是可以直接从视频解码器或者视频编码器中获得。
37.获取待处理视频中每个视频帧对应的真实运动矢量矩阵,还包括:获取每个视频帧对应的前一个视频帧和后一个视频帧;确定后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵;确定该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵。
38.此时,每个视频帧对应的前一个视频帧为上一次迭代产生的待插入视频帧,每个视频帧对应的后一个视频帧为待处理视频中该视频帧的后一个视频帧。
39.s102、将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵。
40.在将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵之前,方法还包括:
41.判断该视频帧对应的网络提取层单元结构nalu type(nalu,network abstraction layer unit,网络提取层单元)是否为预设结构;若该视频帧对应的网络提取层单元结构为预设结构,则该视频帧为关键帧,将神经网络模型的网络层中的数据清空,再将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵。
42.示例性,若待处理视频中每个视频帧对应的真实运动矢量矩阵为该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵,则神经网络模型的训练方法为:
43.针对样本视频中的每个视频帧,确定该视频帧与该视频帧的前一个视频帧的第一运动矢量矩阵,确定该视频帧的后一个视频帧与该视频帧的第二运动矢量矩阵;将每个视频帧对应的第一运动矢量矩阵作为样本数据,将每个视频帧对应的第二运动矢量矩阵作为标签,训练神经网络模型。
44.也就是说,这样训练好的神经网络模型的输入为该视频帧与前一个视频帧中对应像素点的运动矢量得到的真实运动矢量矩阵,输出为预测的待插入视频帧与该视频帧之间的预测运动矢量矩阵。
45.示例性的,若待处理视频中每个视频帧对应的真实运动矢量矩阵为该视频帧与前
一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵以及后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵,则神经网络模型的训练方法为:
46.针对每个视频帧,确定该视频帧与该视频帧的前一个视频帧的第一运动矢量矩阵,确定该视频帧的后一个视频帧与该视频帧的第二运动矢量矩阵,确定该视频帧后的第两个视频帧与该视频帧的第三运动矢量矩阵;将每个视频帧对应的第一运动矢量矩阵、第三运动矢量矩阵作为样本数据,将每个视频帧对应的第二运动矢量矩阵作为标签,训练神经网络模型。
47.其中,该视频帧后的第两个视频帧的前一个视频帧是该视频帧的后一个视频帧,即,该视频帧的后一个视频帧是该视频帧后的第一个视频帧。
48.若待处理视频中每个视频帧对应的真实运动矢量矩阵为该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵以及后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵,将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵包括:将后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵、将该视频帧与前一个视频帧中对应像素点的运动矢量得到真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵。
49.示例性的,将样本视频中的第二个视频帧确定为该视频帧,将样本视频中的第一个视频帧确定为该视频帧的前一个视频帧,将样本视频中的第三个视频帧确定为该视频帧的后一个视频帧,将样本视频中的第四个视频帧确定为该视频帧后的第二个视频帧,将第二个视频帧与第一个视频帧的运动矢量矩阵和第四个视频帧与第二个视频帧的运动矢量矩阵输入到神经网络模型得到预测运动矢量矩阵,将第三个视频帧与第二个视频帧的运动矢量矩阵作为标签,通过预测运动矢量矩阵与第三个视频帧与第二个视频帧的运动矢量矩阵之间的差异修正神经网络模型的参数。
50.也就是说,这样训练好的神经网络模型的输入为该视频帧与前一个视频帧中对应像素点的运动矢量得到的真实运动矢量矩阵,以及后一个视频帧与该视频帧中对应像素点的运动矢量得到真实运动矢量矩阵,输出为预测的待插入视频帧与该视频帧之间的预测运动矢量矩阵。
51.s103、将预测运动矢量矩阵与该视频帧进行视频对象平面vop重建,得到重建视频数据。
52.其中,vop(video object plane,视频对象平面)是对一个视频对象的时间采样,包括视频对象的运动参数、形状信息和纹理数据。
53.vop重建指的是将预测运动矢量矩阵与该视频帧结合生成一个新的视频帧,即生成重建视频数据。
54.s104、对重建视频数据进行处理,将处理的结果确定为该视频帧对应的待插入视频帧。
55.待处理视频包括:已解码视频或已编码视频。已解码视频指的视频解码器进行解码后的视频,已编码视频指的视频编码器进行编码后的视频。对重建视频数据进行处理包括:对重建视频数据进行解码或编码处理。
56.对重建视频数据进行处理,将处理结果确定为该视频帧对应的待插入视频帧包括:
57.若待处理视频为已编码视频,则对重建视频数据进行编码处理,将编码处理的结果确定为该视频帧对应的待插入视频帧;若待处理视频为已解码视频,则对重建视频数据进行解码处理,将解码处理的结果确定为该视频帧对应的待插入视频帧。
58.也就是说,若将视频解码器输出的是已解码视频,则对已解码视频对应的重建视频数据输入至视频解码器进行解码,将解码处理的结果确定为该视频帧对应的待插入视频帧;若将视频编码器输出的是已编码视频,则对已编码视频对应的重建视频数据输入至视频编码器进行编码,将编码处理的结果确定为该视频帧对应的待插入视频帧。
59.s105、将待插入视频帧插入到该视频帧的后一个帧位。
60.也就是说,待插入视频帧是紧跟在该视频帧后的,待插入视频帧是下一次迭代对应的该视频帧的前一个视频帧。将待插入视频帧确定为该视频帧的新的后一个视频帧,将待处理数据中的该视频帧的后一个视频帧确定为该视频帧后的第二个视频帧。
61.也就是说,将待处理数据中的该视频帧的后一个视频帧确定为待插入视频帧的后一个视频帧,将待插入视频帧确定为待处理数据中的该视频帧的后一个视频帧的新的前一个视频帧。
62.示例性的,若待处理视频中的视频帧的顺序为第一个视频帧、第二个视频帧、第三视频帧、第四个视频帧等以此类推。
63.在第二个视频帧对应的真实运动矢量矩阵为第二个视频帧与第一个视频帧的真实运动矢量矩阵时,将第二个视频帧与第一个视频帧的真实运动矢量矩阵输入到对应的神经网络模型得到预测运动矢量矩阵,将预测运动矢量矩阵与第二个视频帧进行vop重建得到重建视频数据,将重建视频数据进行处理后得到待插入视频帧,将待插入视频帧插入到第二个视频帧和第三个视频帧中间。也就是说,待插入视频是此次迭代产生的。此时,将待插入视频帧确定为第三个视频帧的前一个视频帧,将第三个视频帧与待插入视频帧的真实运动矢量矩阵确定为第三个视频帧对应的真实运动矢量矩阵,以此循环。
64.在第二个视频帧对应的真实运动矢量矩阵为第二个视频帧与第一个视频帧的真实运动矢量矩阵,以及第三个视频帧与第二个视频帧的真实运动矢量矩阵时,将第二个视频帧与第一个视频帧的真实运动矢量矩阵以及第三个视频帧与第二个视频帧的真实运动矢量矩阵输入到对应的神经网络模型得到预测运动矢量矩阵,将预测运动矢量矩阵与第二个视频帧进行vop重建得到重建视频数据,将重建视频数据进行处理后得到待插入视频帧,将待插入视频帧插入到第二个视频帧和第三个视频帧中间。此时,将第三个视频帧与待插入视频帧的真实运动矢量矩阵、将第四个视频帧与第三个视频帧的真实运动矢量矩阵确定为第三个视频帧对应的真实运动矢量矩阵,以此循环。
65.也就是说,插帧后的视频数据是从待处理视频的第二个视频帧开始,每隔一个待处理视频的视频帧就插入一个待插入视频帧。
66.基于同一申请构思,本技术实施例中还提供了与上述实施例提供的视频数据的插帧方法对应的视频数据的插帧装置,由于本技术实施例中的装置解决问题的原理与本技术上述实施例的视频数据的插帧方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
67.如图3所示,图3为本技术实施例提供的一种视频数据的插帧装置的功能模块图。视频数据的插帧装置10包括:获取模块101、神经网络模块102、重建模块103、确定模块104、
插入模块105。其中,获取模块101,用于获取待处理视频中每个视频帧对应的真实运动矢量矩阵,真实运动矢量矩阵用于表示该视频帧与相邻视频帧的运动矢量;神经网络模块102,用于将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵;重建模块103,用于将预测运动矢量矩阵与该视频帧进行视频对象平面vop重建,得到重建视频数据;确定模块104,用于对重建视频数据进行处理,将处理结果确定为该视频帧对应的待插入视频帧;插入模块105,用于将待插入视频帧插入到该视频帧的后一个帧位。
68.基于同一申请构思,参见图4所示,为本技术实施例提供的一种电子设备的结构示意图,电子设备20包括:处理器201、存储器202和总线203,存储器202存储有处理器201可执行的机器可读指令,当电子设备20运行时,处理器201与存储器202之间通过总线203进行通信,机器可读指令被处理器201运行时执行如上述实施例中任一的视频数据的插帧方法的步骤。
69.具体地,机器可读指令被处理器201执行时可以执行如下处理:获取待处理视频中每个视频帧对应的真实运动矢量矩阵,真实运动矢量矩阵用于表示该视频帧与相邻视频帧的运动矢量;将该视频帧对应的真实运动矢量矩阵输入到训练好的神经网络模型中,得到预测运动矢量矩阵;将预测运动矢量矩阵与该视频帧进行视频对象平面vop重建,得到重建视频数据;对重建视频数据进行处理,将处理的结果确定为该视频帧对应的待插入视频帧;将待插入视频帧插入到该视频帧的后一个帧位。
70.基于同一申请构思,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例提供的视频数据的插帧方法的步骤。
71.具体地,存储介质能够为通用的存储介质,如移动磁盘、硬盘等,存储介质上的计算机程序被运行时,能够执行上述视频数据的插帧方法,通过对神经网络模型预测出每个视频帧对应的预测运动矢量矩阵,进而可以确定每个视频帧对应的待插入视频帧,解决了现有技术中若提高视频帧率则会导致卡顿的技术问题,达到了提高用户的观看体验的有益效果。
72.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本技术所提供的几个实施例中,应理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
73.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
74.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
75.功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者技术方案的部分可以以软件产品的形式体现出来,计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
76.以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1