视频插帧方法、装置及可读存储介质与流程

文档序号:31837974发布日期:2022-10-18 21:51阅读:109来源:国知局
视频插帧方法、装置及可读存储介质与流程

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.处理模块302,用于根据所述第一视频帧、所述第二视频帧以及所述第一光流场,获取内插帧。
38.第五方面,本公开实施例提供了一种电子设备,该电子设备可以为服务端设备或者服务端设备的一部分,包括:存储器、处理器以及计算机程序指令;
39.所述存储器,被配置为存储所述计算机程序指令;
40.所述处理器,被配置为执行所述计算机程序指令,以执行第一方面任一项所述的视频插帧方法。
41.第六方面,本公开实施例提供了一种电子设备,该电子设备可以为终端设备或者终端设备的一部分,包括:存储器、处理器以及计算机程序指令;
42.所述存储器,被配置为存储所述计算机程序指令;
43.所述处理器,被配置为执行所述计算机程序指令,以执行第二方面任一项所述的视频插帧方法。
44.第七方面,本公开实施例还提供一种可读存储介质,包括:计算机程序指令;
45.所述计算机程序指令被服务端设备的至少一个处理器执行时,以执行第一方面任一项所述的视频插帧方法。
46.第八方面,本公开实施例还提供一种可读存储介质,包括:计算机程序指令;
47.所述计算机程序指令被终端设备的至少一个处理器执行时,以执行第二方面任一项所述的视频插帧方法。
48.本公开实施例提供一种视频插帧方法、装置及可读存储介质,其中,该方法包括:服务端设备获取相邻的第一视频帧和第二视频帧,并通过光流计算获取第一视频帧和第二视频帧之间的第一光流场;服务端设备将第一视频帧、第二视频帧以及第一光流场发送至终端设备,以使终端设备根据接收到的第一视频帧、第二视频帧以及第一光流场进行视频插帧。本公开实施例提供的方法,通过由计算能力更强的服务端设备可进行光流计算,能够减小终端设备的计算量,降低了对终端设备的计算能力要求,进而降低了终端设备的硬件成本,且提高了本公开提供的视频插帧方法的适用范围。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
50.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
51.图1为本公开一实施例所述视频插帧方法的应用场景的示意图;
52.图2为本公开一实施例提供的视频插帧方法的流程图;
53.图3为本公开一实施例提供的视频插帧方法的流程图;
54.图4为本公开另一实施例提供的视频插帧方法的流程图;
55.图5为本公开另一实施例提供的视频插帧方法的流程图;
56.图6为本公开另一实施例提供的视频插帧方法的流程图;
57.图7为本公开另一实施例提供的视频插帧方法的流程图;
58.图8为本公开一实施例提供的视频帧与内插帧之间的关系示意图;
59.图9为本公开一实施例提供的视频插帧装置的结构示意图;
60.图10为本公开一实施例提供的视频插帧装置的结构示意图;
61.图11为本公开一实施例提供的电子设备的结构示意图。
具体实施方式
62.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
63.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
64.专业术语释义:
65.光流(optical flow):是指单个像素块或单个像素点在相邻两帧中的位移。
66.光流场:指单个像素块或单个像素点在相邻两帧中的位移构成的二维瞬时速度场。光流场中包含了物体三维结构的丰富信息。
67.稠密光流场:是一种对视频帧进行逐点匹配的图像配准方法,计算视频帧中所有像素点的偏移量,从而获得稠密光流场。
68.本公开实施例提供一种视频插帧方法、装置、电子设备、计算机可读存储介质以及程序产品,其中,该方法通过由计算能力更强的服务端设备根据第一视频帧以及第二视频帧进行计算,获取第一光流场,能够减小终端设备的计算量,降低了对终端设备的计算能力要求,提高了终端设备的实时插帧效果。同时降低了终端设备的硬件成本,提高了本公开提供的视频插帧方法的适用范围。
69.另外,由于光流场的数据量大小远远小于视频帧的数据量大小,相较于服务端设备向终端设备直接传输内插帧的方式,本方案能够较小网络带宽的压力。
70.图1为本公开一实施例提供的视频插帧方法的应用场景的示意图。参照图1所示,该场景100包括:服务端设备101和终端设备102。其中,服务端设备101与终端设备102可以通过有线或者无线网络连接。
71.具体地,服务端设备101可以是服务器,该服务器可以是一个独立的服务器,也可以是由多个独立服务器构成的服务器集群,或者,还可以是云端服务器。服务端设备101也可以是集成在电子设备中的软件程序,当软件程序被电子设备的处理器执行时,可以执行本公开实施例提供的视频插帧方法中服务端设备执行的技术方案。在实际应用中,服务端设备可以同时与一个或多个终端设备进行交互,向终端设备发送相同的数据。例如,图1中示出了1个服务端设备与3个终端设备进行交互的场景。
72.终端设备102可以但不限于是笔记本电脑、台式电脑、智能手机、便携式终端设备、可穿戴设备、个人数字助理(personaldigital assistant,pda)、智能电视、智慧屏、高清电视、4k电视、智能音箱、智能投影仪等物联网(the internet of things,iot)设备,本公开实施例对于终端设备的具体类型不作限制。终端设备102也可以是集成在电子设备中的软件程序,当软件程序被电子设备的处理器执行时,可以执行本公开实施例提供的视频插帧方法中终端设备执行的技术方案。
73.在本公开实施例中服务端设备101和终端设备102均具有视频数据处理的能力,且服务端设备101的视频数据处理能力高于终端设备102的视频数据处理能力。
74.下面通过几个具体实施例对本公开提供的视频插帧方法进行详细介绍。
75.图2为本公开一实施例提供的视频插帧方法的流程图。本实施例的方法应用于发送端设备。参照图2所示,本实施例的方法包括:
76.s101、服务端设备获取第一视频帧和第二视频帧。
77.第一视频帧和第二视频帧为时间上相邻的两帧,第一视频帧为前帧,第二视频帧为后帧,且第一视频帧和第二视频帧的尺度相同。
78.本方案中,服务端设备可以通过下述方式获取第一视频帧和第二视频帧:
79.一种可能的实现方式,服务端设备基于终端设备发送的视频获取请求,获取第一视频帧和第二视频帧。示例性地,用户通过操作其持有的终端设备上安装的视频类应用程序,向服务器(即服务端设备)发送视频获取请求;服务器基于接收到的视频获取请求,从服务器存储的视频库中获取待传输的视频数据,待传输的视频数据包含第一视频帧和第二视频帧。
80.另一种可能的实现方式,服务端设备基于用户输入的视频传输指令,获取第一视频帧和第二视频帧。示例性地,在视频实时共享场景中,服务端设备基于用户输入的视频传输指令,获取待传输的视频数据,待传输的视频数据包含第一视频帧和第二视频帧。
81.当然,服务端设备还可以通过其他方式获取第一视频帧和第二视频帧,本公开实施例对此不作限制。
82.s102、服务端设备根据第一视频帧和第二视频帧进行光流计算,获取第一视频帧与第二视频帧之间的第一光流场。
83.本方案中,第一光流场为稠密双向光流场,第一光流场包括前向光流场和后向光流场。其中,前向光流场为第一视频帧到第二视频帧的光流场,后向光流场为第二视频帧到第一视频帧的光流场。
84.可选地,服务端设备可以采用dis(dense inverse search)算法,获取第一光流场。其中,dis算法采用反向搜索和梯度下降寻求最优化来解决移动估算,不仅降低了计算量,且保证了计算结果的精确度和实时性能,应用于实时视频数据传输场景中,能够取得较好的效果。
85.当然,本公开并不限制光流计算的具体算法,其只要能够实现光流计算,均属于本方案的保护范畴。例如,服务端设备还可以采用deep matching算法、基于神经网络的算法flownet等算法获取第一光流场。
86.s103、服务端设备向终端设备发送第一视频帧、第二视频帧以及第一光流场。相应地,终端设备接收第一视频帧、第二视频帧以及第一光流场。
87.一种可能的实现方式,服务端设备可以采用间隔传输的方式向终端设备发送上述第一视频帧、第二视频帧以及第一光流场。可选地,采用间隔传输的方式,且终端设备在正常接收数据的情况下,终端设备可根据接收到的视频帧与光流场的顺序,确定视频帧与光流场之间的对应关系,保证了终端设备能够正常解码以及视频插帧。
88.示例性地,服务端设备按照第一视频帧、第一光流场以及第二视频帧的顺序,向终端设备发送上述数据。且在一些情况下,第一视频帧、第二视频帧以及第一光流场均可被拆分为多个子数据包,每个子数据包上携带相应的标签;终端设备接收到子数据包后,根据子数据包携带的标签进行整合,从而获取第一视频帧、第二视频帧以及第一光流场。
89.另一种可能的实现方式,服务端设备通过标定视频帧与光流场之间的对应关系,为具有对应关系的视频帧和光流场分配一个或一组标识,例如,时间戳(timestamp);终端设备可根据视频帧携带的标识和光流场携带的标识确定视频帧与光流场之间的对应关系,并根据具有对应关系的视频帧和光流场进行视频插帧。
90.本实施例提供的视频插帧方法,通过由计算能力更强的服务端设备根据第一视频帧以及第二视频帧进行计算,获取第一光流场,能够减小终端设备的计算量,降低了对终端设备的计算能力要求,提高了终端设备的实时插帧效果。同时降低了终端设备的硬件成本,提高了本公开提供的视频插帧方法的适用范围。
91.图3为本公开另一实施例提供的视频插帧方法的流程图。参照图3所示,本实施例的方法包括:
92.s201、服务端设备获取第一视频帧和第二视频帧。
93.本实施例中,s201与图2所示实施例中s101类似,可参照图2所示实施例的详细描述,此处不再赘述。
94.可选地,图2所示实施例中s102可以通过本实施例中步骤s202-s203实现。
95.s202、服务端设备对第一视频帧和第二视频帧分别进行下采样,获取第三视频帧
和第四视频帧。
96.由于设备的移动性、网络拥塞等因素,服务端设备和终端设备之间的网络传输质量可能出现下降。为了降低对网络带宽的要求,本方案通过对第一视频帧和第二视频帧进行下采样,根据下采样之后的视频帧进行光流计算,从而进一步减小了第一光流场的数据量。
97.其中,第三视频帧为下采样后的第一视频帧;第四视频帧为下采样后的第二视频帧。应理解,第三视频帧的尺度和第四视频帧的尺度相同。
98.本方案对于下采样的倍率不作限制,且可以采用现有技术中的技术方案实现对第一视频帧和第二视频帧的下采样。
99.s203、服务端设备根据第三视频帧和第四视频帧进行光流计算,获取所述第一光流场。
100.在一些情况下,例如,服务端设备与终端设备之间的网络传输质量较好的情况下,服务端设备可将根据第三视频帧和第四视频帧进行光流计算获得的光流计算结果直接进行封装,并发送至终端设备。也就是说,根据第三视频帧和第四视频帧进行光流计算获得的光流计算结果即为第一光流场。
101.在另一些情况下,例如,服务端设备与终端设备之间的网络传输质量较差的情况下,服务端设备根据第三视频帧和第四视频帧进行光流计算获取光流计算结果之后,还可以对光流计算结果进行进一步压缩处理,之后再将压缩之后的数据发送至终端设备。也就是说,根据第三视频帧和第四视频帧进行光流计算获得的光流计算结果是中间层数据,可以记为第二光流场。
102.s204、服务端设备向终端设备发送第一视频帧、第二视频帧以及第一光流场。
103.本实施例中,s203、s204分别与图2所示实施例中s102、s103类似,可参照图2所示实施例的详细描述。本步骤与s102的区别仅在于,本步骤是根据第三视频帧和第四视频帧进行光流计算,而s102中可以是根据原始尺度的第一视频帧和第二视频帧进行光流计算。
104.本实施例通过对第一视频帧和第二视频帧进行下采样,获取尺度较小的第三视频帧和第四视频帧,根据尺度较小的第三视频帧和第四视频帧获取第一光流场,与根据原始尺度的第一视频帧和第二视频帧计算获取第一光流场相比,前者获取的第一光流场的数据量更小,因此,能够有效减低对网络带宽的需求,减小网络带宽压力。
105.图4为本公开另一实施例提供的视频插帧方法的流程图。如图4所示,本实施例的方法包括:
106.s301、服务端设备获取第一视频帧和第二视频帧。
107.s302、服务端设备根据第一视频帧和第二视频帧进行光流计算,获取第二光流场。
108.本实施例s301、s302分别与图2所示实施例中的s101、s102类似,可参照图2所示实施例的描述,此处不再赘述。
109.需要说明的是,本步骤中的第二光流场可以是根据原始尺度的第一视频帧和第二视频帧进行光流计算,获得的光流计算结果;或者,第二光流场也可以是根据第三视频帧和第四视频帧进行光流计算获得的光流计算结果。
110.s303、按照预设压缩策略,对所述第二光流场进行压缩处理,获取所述第一光流场。
111.一种可能的实现方式,对第二光流场进行量化处理,以对第二光流场进行压缩,获取数据量更小的第一光流场。示例性地,可按照预设量化比特数或者预设量化级数,对第二光流场进行量化处理,以对第二光流场进行压缩。
112.由于光流数据与视频数据具有类似的特性,在时间和空间上具有连续性,因此,本公开提出将视频压缩算法用于光流数据的压缩。
113.另一种可能的实现方式,可以在考虑网络带宽的基础上,利用视频压缩算法对第二光流场进行压缩。根据网络传输质量以及第一光流场的尺度,确定目标压缩比;根据目标压缩比,采用预设压缩算法,对第二光流场进行压缩。
114.可选地,服务端设备中可预先配置网络传输质量、第一光流场的尺度、以及压缩比三者之间的对应关系;服务端设备获取当前的网络传输质量以及第一光流场的尺度,并通过查询上述对应关系,确定目标压缩比;接着,根据确定的目标压缩比,采用预设压缩算法,对第二光流场进行压缩。
115.其中,预设视频压缩算法例如为h264,其中,h264利用帧内的冗余以及帧间的冗余,能够达到几十甚至数百的压缩比。因此,本方案则可以利用h264以及确定的目标压缩比,对第二光流场进行压缩。
116.需要说明的是,上述两种压缩方式可以单独使用,也可以结合使用。单独使用的情况参照上述描述。结合使用时,可先采用上述第一种方式对第二光流场进行量化处理,再采用上述第二种压缩方式对量化处理后的第二光流场进一步压缩,将两种方式结合使用获得的第一光流场数据量更小,能够进一步减小网络带宽的压力。
117.s304、服务端设备向终端设备发送第一视频帧、第二视频帧以及第一光流场。
118.本实施例s34与图2所示实施例中的s103类似,可参照图2所示实施例的描述,此处不再赘述。
119.本实施例提供的视频插帧方法,服务端设备对第一光流场进行压缩,在减小了终端设备计算量的同时,进一步减小了网络带宽的压力。
120.图5为本公开一实施例提供的视频插帧方法的流程图。本实施例的方法应用于终端设备。参照图5所示,本实施例的方法包括:
121.s401、终端设备从服务端设备获取第一视频帧、第二视频帧以及第一视频帧与第二视频帧之间的第一光流场。
122.s402、终端设备根据第一光流场,获取第一视频帧与内插帧之间的光流场和内插帧与第二视频帧之间的光流场。
123.参照前文所述,第一光流场包括:第一视频帧到第二视频帧的前向光流场、以及第二视频帧到第一视频帧的后向光流场。
124.具体地,终端设备根据第一光流场中的前向光流场、以及第一视频帧与内插帧之间的时间关系,获取第一视频帧到内插帧之间的光流场;再对第一视频帧到内插帧的光流场进行反向,获得内插帧到第一视频帧的光流场,即内插帧的前向光流场。
125.类似地,根据第一光流场中的后向光流场、以及第二视频帧与内插帧之间的时间关系,获取第二视频帧到内插帧的光流场;再对第二视频帧到内插帧的光流场进行反向,获得内插帧到第二视频帧的光流场,即内插帧的后向光流场。
126.需要说明的是,实际应用中,在第一视频帧与第二视频帧之间可以插入多个内插
帧,且多个内插帧分别对应不同的位置。内插帧的数量可以根据插帧倍数n确定。例如,插帧倍数为n,即表示在第一视频帧与第二视频帧之间插入n-1个内插帧。其中,插帧倍数也可以称为插帧倍率、插帧数等其他名称,本公开对此不作限制。
127.其中,插帧倍数n可根据终端设备设置的视频帧率、终端设备自身的计算能力等影响因素确定。
128.针对每个内插帧,均可以通过上述方式获取各内插帧对应的前向光流场和后向光流场。
129.s403、终端设备根据第一视频帧与内插帧之间的光流场对第一视频帧进行映射,获取第一参考帧;并根据内插帧与第二视频帧的光流场,对第二视频帧进行映射,获取第二参考帧。
130.具体地,终端设备根据第一视频帧与内插帧之间的光流场(即内插帧的前向光流场),对第一视频帧中各个像素点进行映射,从而得到第一参考帧。
131.类似地,终端设备根据内插帧与第二视频帧之间的光流场(即内插帧的后向光流场),对第二视频帧中各个像素点进行映射,从而得到第二参考帧。
132.应理解,上述第一参考帧和第二参考帧对应同一内插帧。若在第一视频帧和第二视频帧中插入多个内插帧,则每个内插帧都对应一个第一参考帧和第二参考帧;且针对每个内插帧,获取其对应的第一参考帧和第二参考帧的实现方式相同。
133.s404、终端设备根据第一参考帧和第二参考帧,获取内插帧。
134.可以理解的是,第一参考帧是根据第一视频帧以及第一光流场中的前向光流场获得的,第二参考帧是根据第二视频帧以及第一光流场中的后向光流场获得的。
135.由于第一光流场中的前向光流场和后向光流场中包含的图像信息是具有差异的,因此,本方案通过对第一参考帧和第二参考帧进行融合处理,以使内插帧能够较好地拟合运动趋势,使插帧后的视频运动更加流畅顺滑。
136.以一个内插帧对应的第一参考帧和第二参考帧为例,对第一参考帧和第二参考帧的融合方式进行详细介绍。
137.具体地,终端设备对第一参考帧和第二参考帧进行融合处理,将融合处理得到的图像确定为内插帧。其中,融合处理有以下两种实现方式:
138.方式一:按照时间线性关系进行融合。
139.具体地,根据第一视频帧、内插帧及第二视频帧三者之间的时间关系,确定第一参考帧的权重系数和第二参考帧的权重系数;接着,针对每个像素点,按照第一参考帧的权重系数和第二参考帧的权重系数,对第一参考帧和第二参考帧中相同位置的像素点的像素值进行加权处理;遍历第一参考帧和第二参考帧中的像素点,以得到内插帧。
140.可以理解的是,内插帧与第一视频帧之间的时间差越小,第一参考帧的权重系数越大;内插帧与第二视频帧的时间差越大,第二参考帧的权重系数越大。
141.方式二:泊松融合。
142.首先,根据第一参考帧和第二参考帧获取原图(source)和背景图(destination)。具体地,背景图(destination)是根据第一参考帧和第二参考帧的均值获得的;第一参考帧和第二参考帧中,与背景图误差较小的参考帧为原图。
143.接着,标记出source与destination中像素值的差值大于预设阈值的区域,将该区
域通过泊松融合合成到destination上,并将destination输出为内插帧的最终结果。
144.针对每个内插帧对应的第一参考帧和第二参考帧,执行上述融合处理,即可获得第一视频帧和第二视频帧之间的多个内插帧。
145.之后,可按照各内插帧在第一视频帧与第二视频帧之间的位置,将其插入第一视频帧与第二视频帧之间。终端设备通过连续对服务端设备发送的各相邻的视频帧执行上述视频插帧方法,则可以在终端设备实现实时插帧。
146.本实施例提供的视频插帧方法,与现有技术中的方案相比,至少具有以下有益效果:通过将光流计算迁移至计算能力更高的服务端设备,在终端无需进行光流计算,从而降低了对终端设备的计算能力要求,提高了终端设备的实时插帧效果。同时降低了终端设备的硬件成本,且提高了本公开提供的视频插帧方法的适用范围。采用本实施例提供的视频插帧方法,终端设备可以灵活调整插帧倍率,从而达到更流畅的用户体验,且不会对服务端设备以及网络传输造成额外的影响。
147.可选地,在图5所示实施例的基础上,s404、终端设备根据第一参考帧和第二参考帧,获取内插帧之前,还可以对第一参考帧中的无效部分和第二参考帧中的无效部分分别进行膨胀处理,获取膨胀处理后的第一参考帧和膨胀处理后的第二参考帧;并根据第一视频帧对膨胀处理后的第一参考帧进行填补,根据第二视频帧对膨胀处理后的第二参考帧进行填补,获取填补后的第一参考帧和填补后的第二参考帧。
148.则相应地,终端设备根据填补后的第一参考帧和填补后的第二参考帧,获取内插帧。
149.图6为本公开另一实施例提供的视频插帧方法的流程图。参照图6所示,本实施例的方法在图5所示实施例的基础上,s402、终端设备根据第一光流场,获取第一视频帧与内插帧之间的光流场和内插帧与第二视频帧之间的光流场,可以通过本实施例中的s4021至s4023实现。具体地:
150.s4021、根据所述第一光流场,获取第二光流场;其中,第二光流场是服务端设备根据第一视频帧和第二视频帧进行光流计算获得的光流计算结果。
151.情形1:第二光流场是服务端设备对第一视频帧以及第二视频帧进行下采样,并根据下采样之后的第一视频帧以及第二视频帧进行光流计算获得的光流计算结果。
152.因此,本步骤中,终端设备首先根据第一视频帧的尺度或者第二视频帧的尺度,对第一光流场进行上采样,获得第二光流场,可以理解的是,第二光流场的尺度与第一视频帧的尺度相同,且第二光流场的尺度与第二视频帧的尺度相同。
153.情形2:第二光流场是服务端设备根据第一视频帧以及第二视频帧进行光流计算获得的光流计算结果,并对光流计算结果按照预设压缩策略,进行压缩处理获得的。
154.因此,本步骤中,终端设备首先对第一光流场按照预设解压策略,进行解压处理,获得第二光流场。其中,预设解压策略与预设压缩策略相对应。
155.情形3:第二光流场是服务端设备根据第三视频帧以及第四视频帧进行光流计算获得的光流计算结果,并对光流计算结果按照预设压缩策略,进行压缩处理获得的。
156.因此,本步骤中,终端设备首先对第一光流场按照预设解压策略,进行解压处理,获得第二光流场;对所述第二光流场进行上采样,获取第三光流场;其中,所述第三光流场的尺度等于所述第一视频帧的尺度,且所述第一视频帧的尺度与所述第二视频帧的尺度相
同。
157.s4022、根据第二光流场、以及所述第一视频帧与所述内插帧之间的时间差,获取所述第一视频帧与内插帧之间的光流场。
158.s4023、根据第二光流场、以及内插帧与第二视频帧之间的时间差,获取内插帧与第二视频帧之间的光流场。
159.其中,s4022与s4023的执行顺序不分先后。
160.另外,对应上述情形3,终端设备是根据第三光流场、获取第一视频帧与内插帧之间的光流场和内插帧与第二视频帧之间的光流场。
161.图7为本公开另一实施例提供的视频插帧方法的流程图。参照图7所示,本实施例的方法在图5所示实施例的基础上,步骤s402、终端设备根据第一光流场,获取第一视频帧与内插帧之间的光流场和内插帧与第二视频帧之间的光流场之前,还可以包括本实施例所示的方法:
162.s402'、将第一视频帧和第二视频帧分别作为导向图像,对第一光流场进行导向滤波处理,获取导向滤波处理后的第一光流场。
163.本步骤的目的在于:对第一光流场的边缘细节进行优化。
164.具体地,针对第一光流场中的前向光流场,以第一视频帧作为导向图像,第一光流场中的前向光流场作为输入图像;根据第一视频帧对第一光流场进行滤波处理,以使导向滤波处理后的前向光流场保留更多的纹理信息。
165.同样地,针对第一光流场中的后向光流场,以第二视频帧作为导向图像,第一光流场中的后向光流场作为输入图像;根据第二视频帧对第一光流场的前向光流场进行滤波处理,以使导向滤波处理后的后向光流场保留更多的纹理信息。
166.需要说明的是,终端设备后续则根据导向滤波处理后的第一光流场进行插帧。
167.在一些情况下,图6所示实施例的方法与图7所示实施例的方法可以单独使用,也可以结合使用。当单独使用时,可参照相应实施例的描述即可。
168.当结合使用时,可先执行图6实施例中的s4021,获取第二光流场;接着,按照图7所示实施例中的实现方式,进行导向滤波处理,具体地,若属于图6所示实施例中情形1和情形2所示的情况,则对第二光流场进行导向滤波,若属于图6所示实施例中情形3所示的情况,则对第三光流场进行导向滤波;然后,再按照图6所示实施例中的实现方式,根据导向滤波处理后的光流场进行插帧。
169.在一个具体的实施例中,服务端设备为服务器,终端设备为客户端。具体可以包括:
170.步骤一:服务器获取待传输的视频资源包括相邻的两个视频帧i0和i1。为了减小光流的传输字节,服务器通过在原视频帧的降采样尺度上进行光流计算,获取视频帧i0和i1之间的光流场,记为:f
0_1
和f
1_0

171.步骤二:服务器对视频帧i0和i1之间的光流场进行量化处理,即对f
0_1
和f
1_0
进行量化处理,处理后的光流场记为f
0_1
'和f
1_0
'。
172.例如,原视频帧的降采样尺度为原视频帧尺度的四分之一。在该尺寸下,若光流为float32精度,那么,平均每帧的光流字节数为:size_flow1=0.5*0.5*2*4=2frame_size bytes;其中,size_flow表示字节数。进一步,对f
0-1
和f
1-0
进行16bit量化,量化后的光流字
节数为:size_flow2=0.5*size_flow1=1frame_size bytes。由此可见,量化后光流数据所占字节数为量化前光流数据所占字节数的二分之一。
173.步骤三:服务器对视频帧i0、i1以及光流场f
0_1
'和f
1_0
',分配timestamp(时间戳),以标识上述三者之间的对应关系;接着,服务器按照视频压缩算法对视频帧i0、i1以及光流场f
0_1
'和f
1_0
'进行压缩处理,并发送至客户端。
174.步骤四:客户端对接收到的数据进行解压,获取视频帧i0、i1以及光流场f
0_1
"和f
1_0
";并对光流场f
0_1
"和f
1_0
"进行上采样,得到光流场r
0_1
和r
1_0
,以使光流场r
0_1
和r
1_0
的尺度与视频帧i0、i1的尺度保持一致。
175.步骤五:以视频帧i0作为导向图像,对r
0_1
进行导向滤波,得到s
0_1
;以视频帧i1为导向图像,对r
1_0
进行导向滤波,得到s
1_0

176.在实际应用中,是否需要进行导向滤波处理,细化光流的边缘,可根据实际需求设定。
177.步骤六:根据客户端设置的插帧倍数n(即表示i0和i1中间插入n-1帧),得到每个内插帧的双向光流。参照图8所示,以n=4为例,i0对应时刻0,i1对应时刻1,则3个内插帧分别对应的时刻为t=0.25、t=0.5以及t=0.75。
178.(a)假设视频帧i0、i1的运动幅度较小,以直线作为像素点的运动轨迹,则针对上述3个内插帧:
179.t=0.25时刻的内插帧的双向光流分别为:
180.前向光流:p
0_0.25
=0.25*p
0_1
;反向光流:p
1_0.25
=0.75*p
1_0

181.t=0.5时刻的内插帧的双向光流分别为:
182.前向光流:p
0_0.5
=0.5*p
0_1
;反向光流:p
1_0.5
=0.5*p
1_0

183.t=0.75时刻的内插帧的双向光流分别为:
184.前向光流:p
0_0.75
=0.75*p
0_1
;反向光流:p
1_0.75
=0.25*p
1_0

185.其中,若终端设备未执行导向滤波处理(即步骤五),则p
0_1
即为r
0_1
,p
1_0
即为r
1_0
;若终端设备执行了导向滤波处理(步骤五),则p
0_1
即为s
0_1
,p
1_0
即为s
1_0

186.(b)对各内插帧的双向光流进行逆转,即p
0_t

p
t_0
、p
1_t

p
t_1
。其中,t=0.25、t=0.5以及t=0.75。
187.具体地,对于位置为(x,y)的像素点的光流为i,该像素点通过光流(u,v),达到位置(x+u,y+v),像素点的光流为(-1)*i。例如图8中示出了t=0.5时,进行光流逆转的示意图。
188.步骤七:根据视频帧i0、i1以及内插帧的双向光流p
t_0
、p
t_1
,双向映射出各内插帧对应的第一参考帧和第二参考帧。
189.具体地,根据i0和光流p
t_0
进行映射,得到第一参考帧i
t_0
;根据i1和光流p
t_1
进行映射,得到第二参考帧i
t_1

190.并且对第一参考帧i
t_0
中的空洞部分(即无效部分)和第二参考帧i
t_1
中的空洞部分(即无效部分)分别进行膨胀处理,并利用视频帧i0、i1进行填补。
191.步骤八:对各内插帧的第一参考帧和第二参考帧进行融合,得到内插帧。融合方式包括:
192.方式一:按时间线性关系进行融合,融合满足公式1:
193.i
t
=(1-t)*i
t_0
+t*i
t_1
公式1
194.其中,i
t
即表示内插帧。
195.方式二:泊松融合
196.根据i
t_0
和i
t_1
获取原图(source)和背景图(destination);接着,标记出source与destination中像素值的差值大于预设阈值的区域,将该区域通过泊松融合合成到destination上,并将destination输出为内插帧的最终结果。
197.客户端可根据自身的计算能力选择上述两种融合方式中的任一种。
198.本实施例中,首先,由服务器进行光流计算,降低了对客户端的计算能力要求,提高了本公开提供的视频插帧方法的适用范围;其次,服务器在进行光流计算时,通过降尺度采样、量化处理以及数据压缩等多种方式,减小数据字节,以降低对网络带宽的要求,减小了网络带宽压力;另外,客户端可根据自身计算能力设置插帧倍数,在保证插帧后的视频流畅顺滑的基础上,不会对服务器以及网络带宽造成额外的负担。
199.图9为本公开一实施例提供的视频插帧装置的结构示意图。该视频插帧装置可以为服务端设备或者服务端设备的一部分。参照图9所示,本实施例提供的视频插帧装置200,包括:
200.获取模块201,用于获取第一视频帧和第二视频帧。
201.处理模块202,用于根据所述第一视频帧和所述第二视频帧进行光流计算,获取所述第一视频帧与所述第二视频帧之间的第一光流场。
202.发送模块203,用于向终端设备发送所述第一视频帧、所述第二视频帧以及所述第一光流场。
203.在一些可能的设计中,处理模块202,具体用于对所述第一视频帧和所述第二视频帧分别进行下采样,获取第三视频帧和第四视频帧;根据所述第三视频帧和所述第四视频帧进行光流计算。
204.在一些可能的设计中,处理模块202,具体用于获取第二光流场;其中,所述第二光流场是所述服务端设备根据所述第一视频帧和第二视频帧进行光流计算获得的光流计算结果;按照预设压缩策略,对所述第二光流场进行压缩处理,获取所述第一光流场。
205.在一些可能的设计中,处理模块202,具体用于按照预设量化比特数或者预设量化级数,对所述第二光流场进行处理,以对所述第二光流场进行压缩,获取所述第一光流场。
206.在一些可能的设计中,处理模块202,具体用于根据所述第一光流场的尺度以及网络传输质量,确定目标压缩比;根据所述目标压缩比,采用预设压缩算法,对所述第二光流场进行压缩,获取所述第一光流场。
207.本实施例提供的视频插帧装置,可以用于执行上述方法实施例中服务端设备执行的技术方案,其实现原理以及技术效果类似,此处不再赘述。
208.图10为本公开另一实施例提供的视频插帧装置的结构示意图。本实施例提供的视频插帧装置可以为终端设备或者终端设备的一部分。
209.参照图10所示,本实施例提供的视频插帧装置300,包括:
210.获取模块301,用于从服务端设备获取第一视频帧、第二视频帧以及所述第一视频帧与所述第二视频帧之间的第一光流场;
211.处理模块302,用于根据所述第一视频帧、所述第二视频帧以及所述第一光流场,
获取所述内插帧。
212.在一些可能的设计中,处理模块302包括:光流处理模块3021、参考帧计算模块3022和融合处理模块3023。
213.其中,光流处理模块3021,用于根据所述第一光流场,获取所述第一视频帧与内插帧之间的光流场和所述内插帧与所述第二视频帧之间的光流场;
214.参考帧计算模块3022,用于根据所述第一视频帧与内插帧之间的光流场对所述第一视频帧进行映射,获取第一参考帧;并根据所述内插帧与所述第二视频帧之间的光流场,对所述第一视频帧进行映射,获取第二参考帧;
215.融合处理模块3023,根据第一参考帧和第二参考帧,获取内插帧。
216.在一些可能的设计中,光流处理模块3021,具体用于根据所述第一光流场,获取第二光流场;其中,所述第二光流场是所述服务端设备根据第一视频帧和第二视频帧进行光流计算获得的光流计算结果;根据所述第二光流场,获取所述第一视频帧与所述内插帧之间的光流场和所述内插帧与所述第二视频帧之间的光流场。
217.在一些可能的设计中,光流处理模块3021,具体用于按照预设解压策略,对所述第一光流场进行解压,获取所述第二光流场;其中,所述预设解压策略与所述预设压缩策略相对应。
218.在一些可能的设计中,若所述第二光流场是所述服务端设备根据第三视频帧和第四视频帧进行光流计算获得的,所述第三视频帧是下采样后的第一视频帧,所述第四视频帧是下采样后的第二视频帧;
219.光流处理模块3021,具体用于对所述第二光流场进行上采样,获取第三光流场;其中,所述第三光流场的尺度等于所述第一视频帧的尺度,且所述第一视频帧的尺度与所述第二视频帧的尺度相同;根据所述第三光流场,获取所述第一视频帧与所述内插帧之间的光流场和所述内插帧与所述第二视频帧之间的光流场。
220.光流处理模块3021,具体用于根据所述第一光流场、以及所述第一视频帧与所述内插帧之间的时间差,获取所述第一视频帧与所述内插帧之间的光流场;根据所述第一光流场、以及所述内插帧与所述第二视频帧之间的时间差,获取所述内插帧与所述第二视频帧之间的光流场
221.在一些可能的设计中,参考帧计算模块3022,具体用于根据所述内插帧、所述第一视频帧以及所述第二视频帧三者之间的时间线性关系,对所述第一参考帧和所述第二参考帧中相同位置的像素点的像素值进行融合,获取所述内插帧。
222.在一些可能的设计中,参考帧计算模块3022,具体用于对所述第一参考帧和所述第二参考帧进行泊松融合处理,获取所述内插帧。
223.在一些可能的设计中,根据所述第一光流场,获取所述第一视频帧与内插帧之间的光流场和所述内插帧与所述第二视频帧之间的光流场之前,光流处理模块3021,还用于将所述第一视频帧和所述第二视频帧分别作为导向图像,对所述第一光流场进行导向滤波处理,获取导向滤波处理后的第一光流场。
224.相应地,光流处理模块3021,具体用于根据导向滤波处理后的第一光流场,获取所述第一视频帧与内插帧之间的光流场和所述内插帧与所述第二视频帧之间的光流场。
225.在一些可能的设计中,根据所述第一参考帧和/或所述第二参考帧,获取所述内插
帧之前,参考帧计算模块3022,还用于对所述第一参考帧和所述第二参考帧中的无效部分进行膨胀处理;以及根据所述第一视频帧对膨胀处理后的第一参考帧进行填补,根据所述第二视频帧对膨胀处理后的第二参考帧进行填补。
226.本实施例提供的视频插帧装置,可以用于执行上述方法实施例中终端设备执行的技术方案,其实现原理以及技术效果类似,此处不再赘述。
227.图11为本公开一实施例提供的电子设备的结构示意图。本实施例提供的电子设备400可以为服务端设备(或者服务端设备的一部分),或者,也可以为终端设备(或者终端设备的一部分)。
228.参照图11所示,本实施例提供的电子设备400包括:存储器401和处理器402。
229.其中,存储器401可以是独立的物理单元,与处理器402可以通过总线403连接。存储器401、处理器402也可以集成在一起,通过硬件实现等。
230.存储器401用于存储程序指令,处理器402调用该程序指令,执行以上任一方法实施例中服务端设备的操作或者终端设备的操作。
231.可选地,当上述实施例的方法中的部分或全部通过软件实现时,上述电子设备400也可以只包括处理器402。用于存储程序的存储器401位于电子设备400之外,处理器402通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
232.处理器402可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np)或者cpu和np的组合。
233.处理器402还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
234.存储器401可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器还可以包括上述种类的存储器的组合。
235.本公开还提供一种计算机可读存储介质,计算机可读存储介质中包括计算机程序指令,所述计算机程序指令在被服务端设备的处理器执行时,以执行以上任一方法实施例中服务端设备执行的技术方案。
236.本公开还提供一种计算机可读存储介质,计算机可读存储介质中包括计算机程序指令,所述计算机程序指令在被终端设备的处理器执行时,以执行以上任一方法实施例中终端设备执行的技术方案。
237.本公开还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,服务端设备的至少一个处理器可以从所述可读存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得服务端设备执行如上任一方法实施例中服务端设备执行的技术方案。
238.本公开还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,终端设备的至少一个处理器可以从所述可读存储介质中读取所述计
算机程序,所述终端设备的至少一个处理器执行所述计算机程序使得所述终端设备执行如上任一方法实施例中终端设备执行的技术方案。
239.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
240.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1