视频处理方法、装置、计算机设备及计算机可读存储介质转让专利

申请号 : CN202310550986.9

文献号 : CN116320536B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚志军张磊高熙和

申请人 : 瀚博半导体(上海)有限公司

摘要 :

本公开提供了一种视频处理方法、装置、计算机设备及计算机可读存储介质。实现方案为:获取与第一视频对应的多个连续图像帧;确定多个连续图像帧中的特定帧;针对多个连续图像帧中除特定帧外的每一个图像帧:确定图像帧与特定帧之间的相关性;响应于相关性小于预定的相关性阈值,将图像帧确定为保留图像帧;以及响应于相关性大于或等于预定的相关性阈值,将图像帧确定为舍弃图像帧,舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息被保存为编码信息;以及基于保留图像帧和特定帧生成第二视频,第二视频包括编码信息,编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备恢复舍弃图像帧在第一视频中的位置。

权利要求 :

1.一种视频处理方法,应用于云端设备和终端设备,所述云端设备和所述终端设备通信地连接,所述方法包括:在所述云端设备处:

获取与第一视频对应的多个连续图像帧;

确定所述多个连续图像帧中的特定帧;

从所述终端设备接收用于指示所述终端设备执行解码操作的性能有关的信息;

基于所述信息确定预定的相关性阈值,其中,所述预定的相关性阈值的大小与所述终端设备执行解码操作的所述性能的大小成反比;

针对所述多个连续图像帧中除所述特定帧外的每一个图像帧:确定所述图像帧与所述特定帧之间的相关性;

响应于所述相关性小于所述预定的相关性阈值,将所述图像帧确定为保留图像帧;以及响应于所述相关性大于或等于所述预定的相关性阈值,将所述图像帧确定为舍弃图像帧,其中,所述舍弃图像帧的帧索引信息以及所述舍弃图像帧与所述特定帧在图像特征上的差异信息被保存为编码信息;以及基于所述保留图像帧和所述特定帧,生成第二视频,其中,所述第二视频包括所述编码信息,其中,所述编码信息包括与所述舍弃图像帧在所述第一视频中的时间相关的信息,以使终端设备基于所述时间相关的信息和所述特定帧恢复所述舍弃图像帧在所述第一视频中的位置;以及在所述终端设备处:

向所述云端设备发送用于指示所述终端设备执行解码操作的性能有关的所述信息;

从所述云端设备接收所述第二视频;以及

基于所述编码信息对所述第二视频进行解码,其中,所述舍弃图像帧在所述多个连续图像帧中被恢复。

2.根据权利要求1所述的方法,其中,所述舍弃图像帧与所述特定帧在图像特征上的差异信息包括下列至少一种:背景部分的运动趋势、背景部分的形变趋势、前景部分的运动趋势、前景部分的形变趋势、目标的运动趋势、目标的形变趋势。

3.根据权利要求1或2所述的方法,其中,所述确定所述图像帧与所述特定帧的相关性包括:在多尺度下分别提取所述图像帧的第一图像特征和所述特定帧的第二图像特征;以及使用所述第一图像特征与所述第二图像特征之间的相似度来表示所述图像帧与所述特定帧的相关性。

4.一种视频处理装置,应用于云端设备和终端设备,所述云端设备和所述终端设备通信地连接,所述视频处理装置在所述云端设备处包括:图像帧获取模块,被配置为获取与第一视频对应的多个连续图像帧;

特定帧确定模块,被配置为确定所述多个连续图像帧中的特定帧;图像帧处理模块,被配置为从所述终端设备接收用于指示所述终端设备执行解码操作的性能有关的信息;基于所述信息确定预定的相关性阈值,其中,所述预定的相关性阈值的大小与所述终端设备执行解码操作的所述性能的大小成反比;以及针对所述多个连续图像帧中除所述特定帧外的每一个图像帧进行处理,其中,所述图像帧处理模块包括:

相关性确定模块,被配置为确定所述图像帧与所述特定帧之间的相关性;

图像帧保留模块,被配置为响应于所述相关性小于所述预定的相关性阈值,将所述图像帧确定为保留图像帧;以及图像帧舍弃模块,被配置为响应于所述相关性大于或等于所述预定的相关性阈值,将所述图像帧确定为舍弃图像帧,其中,所述舍弃图像帧的帧索引信息以及所述舍弃图像帧与所述特定帧在图像特征上的差异信息被保存为编码信息;以及视频生成模块,被配置为基于所述保留图像帧和所述特定帧,生成第二视频,其中,所述第二视频包括所述编码信息,其中,所述编码信息包括与所述舍弃图像帧在所述第一视频中的时间相关的信息,以使终端设备基于所述时间相关的信息和所述特定帧恢复所述舍弃图像帧在所述第一视频中的位置;

并且,所述视频处理装置在所述终端设备处包括:

视频接收模块,被配置为从所述云端设备接收所述第二视频;以及视频解码模块,被配置为向所述云端设备发送用于指示所述终端设备执行解码操作的性能有关的所述信息;以及基于所述编码信息对所述第二视频进行解码,其中,所述舍弃图像帧在所述多个连续图像帧中被恢复。

5.一种计算机设备,包括:

至少一个处理器;以及

存储器,其上存储有计算机程序,

其中,所述计算机程序在被所述处理器执行时,使所述处理器执行权利要求1‑3中任一项所述方法。

6.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求1‑3中任一项所述方法。

说明书 :

视频处理方法、装置、计算机设备及计算机可读存储介质

技术领域

[0001] 本公开涉及视频处理技术领域,尤其涉及视频编解码技术和深度学习领域,特别是涉及一种视频处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

背景技术

[0002] 在视频的上传和下载过程中,需要对视频进行解码、编码、再解码的处理操作。一般来说,视频需要在云端设备上先被解码再被重新编码,也被称为视频的转码,随后才能传输给终端设备。终端设备接收到经云端设备重新编码的视频后需要对视频解码以进行播放。随着视频质量不断提高,视频在云端设备和终端设备之间的传输对带宽提出了极大的挑战。如何在保证视频质量的前提下减小云端设备和终端设备之间传输的文件大小,以降低对带宽的负荷,从而降低成本,仍然是业界的研究热点和难点之一。

发明内容

[0003] 本公开提供了一种视频处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0004] 根据本公开的一方面,提供了一种视频处理方法,应用于云端设备,方法包括:获取与第一视频对应的多个连续图像帧;确定多个连续图像帧中的特定帧;针对多个连续图像帧中除特定帧外的每一个图像帧:确定图像帧与特定帧之间的相关性;响应于相关性小于预定的相关性阈值,将图像帧确定为保留图像帧;以及响应于相关性大于或等于预定的相关性阈值,将图像帧确定为舍弃图像帧,其中,舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息被保存为编码信息;以及基于保留图像帧和特定帧,生成第二视频,其中,第二视频包括编码信息,其中,编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置。
[0005] 根据本公开的另一方面,提供了一种视频处理方法,应用于终端设备,方法包括:接收对第一视频进行视频处理后的第二视频,其中,第二视频是基于与第一视频对应的多个连续图像帧中的图像帧子集产生的,图像帧子集包括在第一视频中被确定的特定帧和保留图像帧,保留图像帧与特定帧之间的相关性小于预定的相关性阈值,并且其中,第二视频包括编码信息,编码信息包括在第一视频中被确定的舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息,舍弃图像帧与特定帧之间的相关性大于或等于预定的相关性阈值,其中,编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置;以及基于编码信息对第二视频进行解码,其中,舍弃图像帧在多个连续图像帧中被恢复。
[0006] 根据本公开的另一方面,提供了一种视频处理装置,应用于云端,视频处理装置包括:图像帧获取模块,被配置为获取与第一视频对应的多个连续图像帧;特定帧确定模块,被配置为确定多个连续图像帧中的特定帧;图像帧处理模块,被配置为针对多个连续图像帧中除特定帧外的每一个图像帧进行处理,图像帧处理模块包括:相关性确定模块,被配置为确定图像帧与特定帧之间的相关性;图像帧保留模块,被配置为响应于相关性小于预定的相关性阈值,将图像帧确定为保留图像帧;以及图像帧舍弃模块,被配置为响应于相关性大于或等于预定的相关性阈值,将图像帧确定为舍弃图像帧,其中,舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息被保存为编码信息;以及视频生成模块,被配置为基于保留图像帧和特定帧,生成第二视频,其中,第二视频包括编码信息,其中,编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置。
[0007] 根据本公开的另一方面,提供了一种视频处理装置,应用于终端,视频处理装置包括:视频接收模块,被配置为接收对第一视频进行视频处理后的第二视频,其中,第二视频是基于与第一视频对应的多个连续图像帧中的图像帧子集产生的,图像帧子集包括在第一视频中被确定的特定帧和保留图像帧,保留图像帧与特定帧之间的相关性小于预定的相关性阈值,并且其中,第二视频包括编码信息,编码信息包括在第一视频中被确定的舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息,舍弃图像帧与特定帧之间的相关性大于或等于预定的相关性阈值,其中,编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置;以及视频解码模块,被配置为基于编码信息对第二视频进行解码,其中,舍弃图像帧在多个连续图像帧中被恢复。
[0008] 根据本公开的另一方面,提供了一种计算机设备,包括:至少一个处理器;以及存储器,其上存储有计算机程序,计算机程序在被处理器执行时,使处理器执行本公开如上所提供的方法。
[0009] 根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行本公开如上所提供的方法。
[0010] 根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行本公开如上所提供的方法。
[0011] 根据本公开的一个或多个实施例,可以在保证视频质量的前提下减小云端设备和终端设备之间传输的文件大小,以降低对带宽的负荷,从而降低成本。
[0012] 根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。

附图说明

[0013] 附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
[0014] 图1是根据示例性实施例的可以在其中实施本文描述的各种方法的示例系统的示意图;
[0015] 图2是根据示例性实施例的视频处理方法的流程图;
[0016] 图3是根据示例性实施例的图像帧的时间域处理的示意图;
[0017] 图4是根据示例性实施例的提取图像特征过程的示意图;
[0018] 图5是根据另一示例性实施例的视频处理方法的流程图;
[0019] 图6是根据另一示例性实施例的视频处理方法的示意图;
[0020] 图7是根据示例性实施例的视频处理装置的示意性框图;
[0021] 图8是根据另一示例性实施例的视频处理装置的示意性框图;
[0022] 图9是能够应用于示例性实施例的示例性计算机设备的框图。

具体实施方式

[0023] 在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
[0024] 在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
[0025] 在相关技术中,在视频的上传和下载时,需要对视频进行解码、编码、再解码的处理操作。一般来说,视频需要在云端设备上先被解码再被重新编码,也被称为视频的转码,随后才能传输给终端设备。终端设备接收到经云端设备重新编码的视频后需要对视频解码以进行播放。这个过程中一般包括对视频的有损压缩,这会损失部分原始图像信息。而随着短视频、在线会议和直播类视频等业务的爆炸性增长,流量成本控制成了各平台亟需优化的关键环节。因此,如何在保证视频质量的前提下减小云端设备和终端设备之间传输的文件大小,以降低对带宽的负荷,一直是业界的研究热点和难点之一。
[0026] 一种传统方法是,视频平台会通过降低视频编码的码率来降低视频传输带宽,但这样对视频画质的影响较大,用户的观看体验会大打折扣。另一种传统方法是,视频平台通过动态编码技术动态调整视频中不同时间段的码率以尽可能保证视频质量,但这样的方法分析策略复杂,对算力要求高,滞后明显,同时节省带宽的效果非常有限。又另一种传统方法是,视频平台会选择采用例如H.266、VP9、AV1等更先进的编码标准,然而这些编码标准普及度不高,版权成本和对客户端设备的要求都很高。因此这些传统方法都不能很好地同时保证视频质量和降低带宽。
[0027] 为了在保证视频质量的同时减小云端设备和终端设备之间传输的文件大小,以降低对带宽的负荷,从而降低成本,本公开提供了一种视频处理方法。
[0028] 下面结合附图详细描述本公开的示例性实施例。在详细描述根据本公开实施例的视频处理方法之前,首先描述可以在其中实施本方法的示例系统。
[0029] 图1是图示出根据示例性实施例的可以在其中实施本文描述的各种方法的示例系统100的示意图。
[0030] 参考图1,该系统100包括客户端设备110、服务器120、以及将客户端设备110与服务器120通信地耦合的网络130。
[0031] 客户端设备110包括显示器114和可经由显示器114显示的客户端应用(APP)112。客户端应用112可以为运行前需要下载和安装的应用程序或者作为轻量化应用程序的小程序(liteapp)。在客户端应用112 为运行前需要下载和安装的应用程序的情况下,客户端应用112 可以被预先安装在客户端设备110上并被激活。在客户端应用112 为小程序的情况下,用户102可以通过在宿主应用中搜索客户端应用112(例如,通过客户端应用 112 的名称等)或扫描客户端应用112的图形码(例如,条形码、二维码等)等方式,在客户端设备110上直接运行客户端应用112,而无需安装客户端应用112。在一些实施例中,客户端设备110可以是任何类型的移动计算机设备,包括移动计算机、移动电话、可穿戴式计算机设备(例如智能手表、头戴式设备,包括智能眼镜,等)或其他类型的移动设备。在一些实施例中,客户端设备110可以替换地是固定式计算机设备,例如台式机、服务器计算机或其他类型的固定式计算机设备。
[0032] 服务器120典型地为由互联网服务提供商(ISP)或互联网内容提供商(ICP)部署的服务器。服务器120可以代表单台服务器、多台服务器的集群、分布式系统、或者提供基础云服务(诸如云数据库、云计算、云存储、云通信)的云服务器。将理解的是,虽然图1中示出服务器120与仅一个客户端设备110通信,但是服务器120可以同时为多个客户端设备提供后台服务。
[0033] 网络130的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)、和/或诸如互联网之类的通信网络的组合。网络130可以是有线或无线网络。在一些实施例中,使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来处理通过网络130交换的数据。此外,还可以使用诸如安全套接字层(SSL)、传输层安全(TLS)、虚拟专用网络(VPN)、网际协议安全(IPsec)等加密技术来加密所有或者一些链路。在一些实施例中,还可以使用定制和/或专用数据通信技术来取代或者补充上述数据通信技术。
[0034] 为了本公开实施例的目的,在图1的示例中,客户端应用112可以为视频处理应用程序。与此相应,服务器120可以是与视频处理应用程序一起使用的服务器。该服务器120可以将视频处理数据提供给客户端设备110,由客户端设备110中运行的客户端应用112提供视频处理服务。
[0035] 图2是图示出根据示例性实施例的视频处理方法200的流程图。视频处理方法200应用于云端设备,例如图1所示的服务器120。
[0036] 参考图2,在步骤S210,获取与第一视频对应的多个连续图像帧。
[0037] 在示例中,第一视频可以是由视频平台用户上传至云端设备的自制视频或者转载视频。第一视频被上传至云端设备后,可以在云端设备上被解码,于是云端设备可以获取到与第一视频对应的多个连续图像帧。一般来说,图像帧可以是组成视频的最小单位。
[0038] 在步骤S220,确定多个连续图像帧中的特定帧。
[0039] 在示例中,与特定帧有关的信息可以被预先包含在第一视频的原始编码信息中,从而可以在第一视频被解码为多个连续图像帧时,获取关于哪个或哪些图像帧为特定帧的信息。替代地,可以对多个连续图像帧中的每一个图像帧进行特征提取以确定哪个或哪些图像帧为特定帧。特定帧例如可以包括关键帧、场景变换帧、或者关键信息完整度较高的图像帧。特定帧在视频处理的过程中以及在云端设备和终端设备之间传输的过程中不会被压缩,而是可以保留其所有的特征和信息。
[0040] 在步骤S230,针对多个连续图像帧中除特定帧外的每一个图像帧,执行如下步骤:步骤S231、确定该图像帧与特定帧之间的相关性;步骤S232、响应于相关性小于预定的相关性阈值,将该图像帧确定为保留图像帧;以及步骤S233、响应于相关性大于或等于预定的相关性阈值,将该图像帧确定为舍弃图像帧。这里,舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息被保存为编码信息。
[0041] 在示例中,特定帧可能与该图像帧相邻,因此可以确定该图像帧与相邻的图像帧的相关性。在一些示例中,可以是确定每一个图像帧与时间上最近的特定帧的相关性。
[0042] 在示例中,可以利用光流的计算结果来确定该图像帧与特定帧之间的相关性。
[0043] 在示例中,相关性阈值可以基于要播放该视频的终端设备的算力、解码器版本、网络带宽等方面的实际情况灵活配置。云端设备可以从终端设备获取终端设备的算力、解码器版本、网络带宽等方面的信息,并基于这些信息确定合适的相关性阈值,以使得转码后的视频能够尽可能兼顾视频画质和文件大小,从而兼顾用户体验感和传输成本。
[0044] 在示例中,可以利用深度学习技术,基于由终端设备性能而确定的相关性阈值,分析该图像帧与特定帧的特征信息,舍弃与特定帧相关性高的图像帧,保留与特定帧相关性低的图像帧来进行编码。
[0045] 舍弃图像帧由于与特定帧相关性较高,因此相较于与特定帧相关性较低的保留图像帧,舍弃图像帧与特定帧在图像特征上的差异信息较小,易于被恢复,于是通过不对舍弃图像帧进行编码,可以减小被编码的视频文件的大小。
[0046] 在示例中,舍弃图像帧与特定帧在图像特征上的差异信息可以包括与图像中区域物体的运动、纹理、形变等有关的信息。即,该差异信息可以反映舍弃图像帧到特定帧之间的变化趋势,以使得能够在特定帧的基础上基于所述变化趋势来恢复舍弃图像帧。
[0047] 在示例中,可以基于多个图像帧与特定帧的特征进行时间域处理以确定其之间的相关性。可以利用长短期记忆网络(LSTM)进行该时间域处理。之后,可以基于由终端设备性能而确定的相关性阈值,舍弃与特定帧相关性高的图像帧,保留与特定帧相关性低的图像帧来进行编码。
[0048] 图3是图示出根据示例性实施例的图像帧的时间域处理的示意图。
[0049] 在示例中,如图3所示,可以将多个图像帧同时输入到长短期记忆网络310中,这些图像帧可以包括图像帧321、图像帧322、图像帧323、图像帧324以及未示出的多个其他图像帧。图像帧321、图像帧322、图像帧323、图像帧324以及未示出的多个其他图像帧中可以至少有一个是特定帧,例如图像帧321可以是特定帧,图像帧322、图像帧323、图像帧324以及未示出的多个其他图像帧可以均为在时间上与图像帧321相邻近的图像帧(例如前一帧、后一帧、前数帧或后数帧)。长短期记忆网络310可以分析图像帧322、图像帧323、图像帧324以及未示出的多个其他图像帧中的每一个与图像帧321的特征信息的相似程度,以确定其之间的相关性。
[0050] 可以理解的是,图3仅为一种示例,示出了利用LSTM基于多个图像帧与特定帧的特征进行时间域处理的过程。根据实际应用,也可以利用其他网络代替LSTM来执行确定相关性的步骤。
[0051] 在步骤S240,基于保留图像帧和特定帧,生成第二视频。第二视频包括步骤S230中被保存的编码信息。该编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置。
[0052] 在示例中,包括编码信息的第二视频可以通过无损传输通道被传输给终端设备。
[0053] 特定帧被保留可以使得包括重要信息的图像帧在视频处理的过程中以及在云端设备和终端设备之间传输的过程中不会被压缩,可以无损地保留其所有的特征和信息。由此,在终端设备处,可以在特定帧的基础上,基于被保存的编码信息中舍弃图像帧与特定帧在图像特征上的差异信息而将舍弃图像帧进行恢复,由此获得与第一视频对应的完整图像帧。
[0054] 根据本公开实施例的视频处理方法,通过舍弃与特定帧相关性较高的图像帧,保留与特定帧相关性较低的图像帧,能够减少被编码的图像帧的数量,由此减小要传输的第二视频的大小;同时,通过将舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息作为第二视频的编码信息进行保存,能够在终端设备处通过恢复这些被减少的舍弃图像帧而还原第一视频的质量。这样,传输第二视频便不会对带宽造成过大的压力,同时也没有损失视频信息内容,从而兼顾了传输带宽和视频质量二者。
[0055] 根据一些实施例,视频处理方法200还可以包括:接收用于指示与云端设备通信的终端设备执行解码操作的性能有关的信息;以及基于信息确定预定的相关性阈值,该预定的相关性阈值的大小与终端设备执行解码操作的性能的大小成反比。
[0056] 在示例中,可以在如图2所示的S232之前接收上述用于指示与云端设备通信的终端设备执行解码操作的性能有关的信息并确定相关性阈值。
[0057] 在示例中,与云端设备通信的终端设备可以是即将播放该视频的终端设备,例如可以是笔记本电脑、智能手机、平板电脑等,诸如图1所示的客户端设备110。相关性阈值可以基于该终端设备的算力、解码器版本、网络带宽等方面的实际情况灵活配置。例如,当终端设备执行解码操作的性能相对较大时,意味着终端设备可能具备较大的图像帧恢复能力,因此可以将相关性阈值设置得较小,以尽量减少保留图像帧的数量,从而能够以相对较小的视频大小进行传输。反之,当终端设备执行解码操作的性能相对较小时,意味着终端设备可能具备较小的图像帧恢复能力,因此可以将相关性阈值设置得较大,以尽量增加保留图像帧的数量,从而降低对视频质量的影响。
[0058] 在示例中,云端设备可以对终端设备发送请求以获取终端设备的上述信息,并基于这些信息确定合适的相关性阈值。终端设备也可以主动向云端设备发送终端设备的上述信息,以使云端设备能够基于这些信息确定合适的相关性阈值。
[0059] 根据本公开的实施例,通过基于用于指示与云端设备通信的终端设备执行解码操作的性能有关的信息确定预定的相关性阈值,能够最大程度地利用终端设备的性能,使得能够尽可能减少被编码的图像帧的数量,由此减小视频的大小,从而降低传输成本。
[0060] 根据一些实施例,舍弃图像帧与特定帧在图像特征上的差异信息包括下列至少一种:背景部分的运动趋势、背景部分的形变趋势、前景部分的运动趋势、前景部分的形变趋势、目标的运动趋势、目标的形变趋势。
[0061] 在示例中,可以利用光流来获取视频中的背景部分的运动趋势、背景部分的形变趋势、前景部分的运动趋势、前景部分的形变趋势、目标的运动趋势、目标的形变趋势中的至少一种。
[0062] 根据本公开的实施例,通过将背景部分的运动趋势、背景部分的形变趋势、前景部分的运动趋势、前景部分的形变趋势、目标的运动趋势、目标的形变趋势等方面的信息作为第二视频的编码信息进行保存,可以使得终端设备能够基于该编码信息恢复舍弃图像帧,从而还原完整的第一视频,而不会损失视频信息内容。
[0063] 根据一些实施例,如图2所示的步骤S231可以包括:在多尺度下分别提取图像帧的第一图像特征和特征帧的第二图像特征;以及使用第一图像特征与第二图像特征之间的相似度来表示图像帧与特定帧的相关性。
[0064] 图4是图示出根据示例性实施例的提取图像特征过程400的示意图。
[0065] 在示例中,如图4所示,提取图像特征过程400可以是利用U‑Net网络实现的。
[0066] 在示例中,可以将多个连续图像帧中的每一个图像帧依次输入U‑Net网络以提取该图像帧的图像特征。
[0067] 参见图4,例如可以将图像帧410输入U‑Net网络进行特征提取,生成具有预定尺度信息的多通道特征图421,然后生成具有递减的尺度信息的多通道特征图422和多通道特征图423。也就是说,多通道特征图421、422和423可以是以不同的尺度对应于图像帧410,其中多通道特征图421可以具有最大的尺度信息,多通道特征图423可以具有最小的尺度信息。接下来U‑Net网络可以将多通道特征图421、422和423的特征拼接在一起。这些拼接在一起的特征共同组成了图像帧410的图像特征430,以作为U‑Net网络的输出。
[0068] 在示例中,若图像帧410为多个连续图像帧中除特定帧以外的图像帧,那么U‑Net网络的输出图像特征430可以是上述第一图像特征。若图像帧410为多个连续图像帧中的特定帧,那么U‑Net网络的输出图像特征430可以是上述第二图像特征。
[0069] 可以理解,图4仅为一种示例,示出了将图像帧410分为三个不同尺度进行特征提取,随后将不同尺度的特征合并,生成综合的图像特征430并输出的过程。根据实际应用,也可以对图像帧410从更少或更多的尺度进行特征提取,以生成图像特征430并输出。
[0070] 也可以理解,图4仅为一种示例,示出了利用U‑Net网络提取图像帧的图像信息的过程。根据实际应用,也可以利用其他骨干网络加金字塔网络代替U‑Net网络来提取图像帧的图像信息。
[0071] 根据本公开的实施例,通过在多尺度下提取图像帧的图像特征,能够从单一的图像帧中依靠数据增强更有效地利用信息,从而获取到更完整的图像特征,于是由此确定的图像帧与特定帧的相关性也就更为准确和可靠。
[0072] 图5是图示出根据另一示例性实施例的视频处理方法500的流程图。视频处理方法500应用于终端设备,例如图1所示的客户端设备110。
[0073] 参考图5,在步骤S510,接收对第一视频进行视频处理后的第二视频。第二视频是基于与第一视频对应的多个连续图像帧中的图像帧子集产生的,该图像帧子集包括在第一视频中被确定的特定帧和保留图像帧,保留图像帧与特定帧之间的相关性小于预定的相关性阈值。第二视频包括编码信息,该编码信息包括在第一视频中被确定的舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息,舍弃图像帧与特定帧之间的相关性大于或等于预定的相关性阈值。编码信息还包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置。
[0074] 在示例中,第二视频可以例如是通过如图2所示的视频处理方法200对第一视频进行视频处理后得到的。
[0075] 在示例中,相关性阈值可以基于要播放该视频的终端设备的算力、解码器版本、网络带宽等方面的实际情况灵活配置。云端设备可以从终端设备获取终端设备的算力、解码器版本、网络带宽等方面的信息,并基于这些信息确定合适的相关性阈值,以使得转码后的视频能够尽可能兼顾视频画质和文件大小,从而兼顾用户体验感和传输成本。
[0076] 在示例中,舍弃图像帧由于与特定帧相关性较高,因此与特定帧在图像特征上的差异信息较小,易于被恢复,于是通过不对舍弃图像帧进行编码,可以减小被编码的视频文件的大小。
[0077] 在示例中,舍弃图像帧与特定帧在图像特征上的差异信息可以包括与图像中区域物体的运动、纹理、形变等有关的信息。
[0078] 在步骤S520,基于编码信息对第二视频进行解码,舍弃图像帧在多个连续图像帧中被恢复。
[0079] 在示例中,编码信息可以包括背景部分的运动趋势、背景部分的形变趋势、前景部分的运动趋势、前景部分的形变趋势、目标的运动趋势、目标的形变趋势,还可以包括与图像中区域物体的运动、纹理、形变等有关的信息,并且可以包括与舍弃图像帧在第一视频中的时间相关的信息。于是终端设备可以基于这些信息和图像帧子集中的特定帧恢复出舍弃图像帧的全部信息,并将舍弃图像帧插入其在第一视频中原来的位置,从而还原出第一视频。终端设备可以例如是笔记本电脑、智能手机、平板电脑等。对第二视频解码而生成的新的视频可以被输出给显示设备以进行播放。
[0080] 根据本公开的实施例,通过基于对第一视频进行视频处理后的第二视频中所包含的编码信息恢复多个连续图像帧中的舍弃图像帧,终端设备仅需根据编码信息对第二视频进行插帧即可恢复第一视频,不会损失视频信息内容,由此确保能够在不影响视频质量的情况下以较小的视频文件进行传输,从而兼顾了传输带宽和视频质量二者。
[0081] 根据一些实施例,视频处理方法500还可以包括:向与终端设备通信的云端设备发送用于指示终端设备执行解码操作的性能有关的信息,预定的相关性阈值是基于信息确定的,该预定的相关性阈值的大小与终端设备执行解码操作的性能的大小成反比。
[0082] 在示例中,可以在如图5所示的S510之前发送上述用于指示终端设备执行解码操作的性能有关的信息。
[0083] 在示例中,终端设备可以响应于接收到云端设备的请求以发送上述信息,也可以主动向云端设备发送上述信息,以使云端设备能够基于这些信息确定合适的相关性阈值。
[0084] 根据本公开的实施例,通过向与终端设备通信的云端设备发送用于指示终端设备执行解码操作的性能有关的信息,云端设备便能够基于用于指示与终端设备执行解码操作的性能有关的信息确定预定的相关性阈值,从而最大程度地利用终端设备的性能,使得能够尽可能减少被编码的图像帧的数量,由此减小视频的大小,从而降低传输成本。
[0085] 图6是图示出根据另一示例性实施例的视频处理方法600的示意图。
[0086] 如图6所示,视频处理方法600包括步骤S601至S607,涉及云端设备620和终端设备650两侧,云端设备620和终端设备650之间通信地连接。云端设备620可以接收到第一视频
610,并对第一视频610执行视频处理方法600。
[0087] 首先云端设备620可以执行步骤S601、对第一视频610解码。解码后云端设备620便可以获取到与第一视频610对应的多个连续图像帧。
[0088] 接着可以执行步骤S602、图像帧信息分析。在步骤S602,可以对多个连续图像帧中的每一个图像帧进行特征提取以确定哪个或哪些图像帧为特定帧。在对图像帧进行特征提取的过程中,可以是在多尺度下分别提取图像帧的第一图像特征和特征帧的第二图像特征,例如可以利用U‑Net网络执行提取图像帧的图像特征的过程。
[0089] 然后可以执行步骤S603、时间域分析。在步骤S603,可以基于多个图像帧与特定帧的特征进行时间域处理。时间域处理可以利用LSTM基于图像帧的第一图像特征和特征帧的第二图像特征执行。
[0090] 之后可以执行步骤S604、保留或舍弃图像帧。保留或舍弃图像帧的操作可以是基于用于指示与终端设备650执行解码操作的性能有关的信息630而确定的相关性阈值来执行的,该相关性阈值的大小与终端设备650执行解码操作的性能的大小成反比。例如,终端设备650的算力、解码器版本、网络带宽等方面的实际情况可以决定相关性阈值的大小。终端设备650可以响应于接收到云端设备620的请求以发送信息630,终端设备650也可以主动向云端设备620发送信息630,以使云端设备620能够基于这些信息确定合适的相关性阈值。云端设备620可以保留相关性小于相关性阈值的图像帧,舍弃相关性大于或等于相关性阈值的图像帧,同时可以将舍弃的图像帧的帧索引信息以及其与特定帧在图像特征上的差异信息保存为编码信息。
[0091] 然后可以执行步骤S605、对视频编码。编码生成的第二视频640可以包括上述保留的图像帧和特定帧以及编码信息。第二视频640可以通过无损传输通道被传输给终端设备650。
[0092] 接收到第二视频640后,终端设备650可以执行步骤S606、对第二视频640进行解码。于是终端设备650可以获取到与第二视频640对应的上述保留的图像帧和特定帧以及编码信息。
[0093] 接着终端设备650可以执行步骤S607、恢复图像帧。终端设备650可以基于第二视频640中的编码信息恢复出在之前舍弃的图像帧的全部信息,并将恢复出的图像帧插入适当的位置,从而还原出与第一视频610一致的待播放视频660,以输出至显示设备以进行播放。
[0094] 根据本公开的另一方面,还提供一种视频处理装置。
[0095] 图7是图示出根据示例性实施例的视频处理装置700的示意性框图。视频处理装置700应用于云端设备。
[0096] 如图7所示,视频处理装置700包括:图像帧获取模块710,被配置为获取与第一视频对应的多个连续图像帧;特定帧确定模块720,被配置为确定多个连续图像帧中的特定帧;图像帧处理模块730,被配置为针对多个连续图像帧中除特定帧外的每一个图像帧进行处理,图像帧处理模块730包括:相关性确定模块731,被配置为确定图像帧与特定帧之间的相关性;图像帧保留模块732,被配置为响应于相关性小于预定的相关性阈值,将图像帧确定为保留图像帧;以及图像帧舍弃模块733,被配置为响应于相关性大于或等于预定的相关性阈值,将图像帧确定为舍弃图像帧,舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息被保存为编码信息;以及视频生成模块740,被配置为基于保留图像帧和特定帧,生成第二视频,第二视频包括编码信息,编码信息包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置。
[0097] 根据本公开的实施例,通过舍弃与特定帧相关性较高的图像帧,保留与特定帧相关性较低的图像帧,能够减少被编码的图像帧的数量,由此减小要传输的第二视频的大小;同时,通过将舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息作为第二视频的编码信息进行保存,能够在终端设备处通过恢复这些被减少的舍弃图像帧而还原第一视频的质量。这样,传输第二视频便不会对带宽造成过大的压力,同时也没有损失视频信息内容,从而兼顾了传输带宽和视频质量二者。
[0098] 应当理解,图7中所示装置700的各个模块可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置700及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
[0099] 图8是图示出根据另一示例性实施例的视频处理装置800的示意性框图。图像处理装置800应用于终端设备。
[0100] 如图8所示,视频处理装置800包括:视频接收模块810,被配置为接收对第一视频进行视频处理后的第二视频,以及视频解码模块820,被配置为基于编码信息对第二视频进行解码,舍弃图像帧在多个连续图像帧中被恢复。第二视频是基于与第一视频对应的多个连续图像帧中的图像帧子集产生的,图像帧子集包括在第一视频中被确定的特定帧和保留图像帧,保留图像帧与特定帧之间的相关性小于预定的相关性阈值。第二视频包括编码信息,编码信息包括在第一视频中被确定的舍弃图像帧的帧索引信息以及舍弃图像帧与特定帧在图像特征上的差异信息,舍弃图像帧与特定帧之间的相关性大于或等于预定的相关性阈值。编码信息还包括与舍弃图像帧在第一视频中的时间相关的信息,以使终端设备基于时间相关的信息和特定帧恢复舍弃图像帧在第一视频中的位置。
[0101] 根据本公开的实施例,通过基于对第一视频进行视频处理后的第二视频中所包含的编码信息恢复多个连续图像帧中的舍弃图像帧,终端设备仅需根据编码信息对第二视频进行插帧即可恢复第一视频,不会损失视频信息内容,由此确保能够在不影响视频质量的情况下以较小的视频文件进行传输,从而兼顾了传输带宽和视频质量二者。
[0102] 应当理解,图8中所示装置800的各个模块可以与参考图5描述的方法500中的各个步骤相对应。由此,上面针对方法500描述的操作、特征和优点同样适用于装置800及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
[0103] 虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
[0104] 还应当理解,本文可以在软件或程序模块的一般上下文中描述各种技术。上面关于图7和图8描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,如图7所示的图像帧获取模块710,特定帧确定模块720,图像帧处理模块730,相关性确定模块731,图像帧保留模块732,图像帧舍弃模块733,视频生成模块740中的一个或多个,或者如图8所示的视频接收模块810和视频解码模块820中的一个或两个可以一起被实现在片上系统(System on Chip, SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit, CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor, DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
[0105] 根据本公开的一方面,提供了一种计算机设备,其包括存储器、处理器以及存储在存储器上的计算机程序。该处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。
[0106] 根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
[0107] 根据本公开的一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
[0108] 在下文中,结合图9描述这样的计算机设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。
[0109] 图9示出了可以被用来实施本文所描述的方法的计算机设备900的示例配置。举例来说,图1中所示的服务器120和/或客户端设备110可以包括类似于计算机设备900的架构。上述视频处理装置也可以全部或至少部分地由计算机设备900或类似设备或系统实现。
[0110] 计算机设备900可以是各种不同类型的设备。计算机设备900的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备(例如,平板电脑、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏机)、电视或其他显示设备、汽车计算机等等。
[0111] 计算机设备900可以包括能够诸如通过系统总线914或其他适当的连接彼此通信的至少一个处理器902、存储器904、(多个)通信接口906、显示设备908、其他输入/输出(I/O)设备910以及一个或更多大容量存储设备912。
[0112] 处理器902可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器902可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器902可以被配置成获取并且执行存储在存储器904、大容量存储设备912或者其他计算机可读介质中的计算机可读指令,诸如操作系统916的程序代码、应用程序918的程序代码、其他程序920的程序代码等。
[0113] 存储器904和大容量存储设备912是用于存储指令的计算机可读存储介质的示例,指令由处理器902执行来实施前面所描述的各种功能。举例来说,存储器904一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备912一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器904和大容量存储设备912在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器902作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
[0114] 多个程序可以存储在大容量存储设备912上。这些程序包括操作系统916、一个或多个应用程序918、其他程序920和程序数据922,并且它们可以被加载到存储器904以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现客户端应用112、方法200、方法500和/或本文描述的另外的实施例的计算机程序逻辑(例如,计算机程序代码或指令)。
[0115] 虽然在图9中被图示成存储在计算机设备900的存储器904中,但是模块916、918、920和922或者其部分可以使用可由计算机设备900访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机可读存储介质和通信介质。
[0116] 计算机可读存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机可读存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD‑ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算机设备访问的任何其他非传送介质。与此相对,通信介质可以在诸如载波或其他传送机制之类的已调制数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机可读存储介质不包括通信介质。
[0117] 一个或更多通信接口906用于诸如通过网络、直接连接等等与其他设备交换数据。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE 802.11无线LAN(WLAN))无线接口、全球微波接入互操作TM
(Wi‑MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、Bluetooth 接口、近场通信(NFC)接口等。通信接口906可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口906还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
[0118] 在一些示例中,可以包括诸如监视器之类的显示设备908,以用于向用户显示信息和图像。其他I/O设备910可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
[0119] 本文描述的技术可以由计算机设备900的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。例如,该功能还可以通过使用分布式系统在“云”上全部或部分地实现。云包括和/或代表用于资源的平台。平台抽象云的硬件(例如,服务器)和软件资源的底层功能。资源可以包括在远离计算机设备900的服务器上执行计算处理时可以使用的应用和/或数据。资源还可以包括通过因特网和/或通过诸如蜂窝或Wi‑Fi网络的订户网络提供的服务。平台可以抽象资源和功能以将计算机设备900与其他计算机设备连接。因此,本文描述的功能的实现可以分布在整个云内。例如,功能可以部分地在计算机设备900上以及部分地通过抽象云的功能的平台来实现。
[0120] 虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,不定冠词“一”或“一个”不排除多个,术语“多个”是指两个或两个以上,并且术语“基于”应解释为“至少部分地基于”。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。