视频处理协同方法、装置、设备及存储介质
本申请要求于2022年01月27日提交中国专利局,申请号为202210103031.4、发明名称为“视频处理协同方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及图像处理技术领域,尤其涉及一种视频处理协同方法、装置、设备及存储介质。
背景技术
随着云处理技术的发展,云游戏已经逐渐普及成为一种重要的游戏形态。云游戏的方式在于,由云服务器执行游戏的运行、处理等逻辑,并通过视频编码技术对游戏画面进行编码压缩,编码压缩后的视频流通过网络传输到终端设备,再由终端设备对视频流进行解码和播放。
云游戏这种游戏形态把需要由终端设备完成的游戏运行、游戏处理等逻辑迁移到云服务器。同时,为了减少视频编码失真对游戏画面的画质造成的影响,云服务器在视频编码前还对游戏图像进行内容分析和视频前处理,这无疑进一步加重了云服务器的计算资源开销。因此,在有限的云服务器计算资源下,无法提供更优质的云游戏画质。
发明内容
本申请的各种实施例提供一种视频处理协同方法、装置、设备及存储介质。
根据本申请的各种实施例,提供了一种视频处理协同方法,包括:向终端设备发送视频处理能力探测请求和视频分析能力探测请求;接收终端设备响应于所述视频处理能力探测请求而反馈的视频处理能力信息,接收所述终端设备响应于所述视频分析能力探测请求而反馈的视频分析能力信息;根据终端设备的视频处理能力确定目标视频处理协同配置,并根据终端设备的视频分析能力确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置。
根据本申请的各种实施例,提供了一种视频处理协同方法,包括:从终端设备的操作系统获取终端设备的视频处理能力信息和视频分析能力信息;将终端设备的视频处理能力信息和视频分析能力信息发送给云服务器,以供云服务器根据终端设备的视频处理能力信息确定目标视频处理协同配置,并根据终端设备的视频分析能力信息确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置;接收目标视频处理协同配置和目标视频分析协同配置,并发送给终端设备。
根据本申请的各种实施例,提供了一种视频处理协同方法,包括:向客户端发送终端设备的视频处理能力信息和视频分析能力信息,以供对应于客户端的云服务器根据终端设备的视频处理能力信息确定目标视频处理协同配置,并根据终端设备的视频分析能力信息确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置;从客户端获取目标视频处理协同配置和目标视频分析协同配置,并根据目标视频分析协同配置对目标视频进行图像分析,根据目标视频处理协同配置对目标视频进行图像处理。
根据本申请的各种实施例,提供了一种视频处理协同装置,包括:发送模块、接收模块和确定模块,发送模块用于向终端设备发送视频处理能力探测请求和视频分析能力探测请求;接收模块用于接收终端设备响应于所述视频处理能力探测请求而反馈的视频处理能力信息,接收所述终端设备响应于所述视频分析能力探测请求而反馈的视频分析能力信息;确定模块用于根据终端设备的视频处理能力确定目标视频处理协同配置,并根据终端设备的视频分析能力确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置。
根据本申请的各种实施例,提供了一种视频处理协同装置,包括:通信模块,用于从终端设备的操作系统获取终端设备的视频处理能力信息和视频分析能力信息;将终端设备的视频处理能力信息和视频分析能力信息发送给云服务器,以供云服务器根据终端设备的视频处理能力信息确定目标视频处理协同配置,并根据终端设备的视频分析能力信息确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置;接收目标视频处理协同配置和目标视频分析协同配置,并发送给终端设备。
根据本申请的各种实施例,提供了一种视频处理协同装置,包括:通信模块和处理模块,其中,通信模块用于向客户端发送终端设备的视频处理能力信息和视频分析能力信息,以供对应于客户端的云服务器根据终端设备的视频处理能力信息确定目标视频处理协同配置,并根据终端设备的视频分析能力信息确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置;从客户端获取目标视频处理协同配置和目标视频分析协同配置,处理模 块用于根据目标视频分析协同配置对目标视频进行图像分析,根据目标视频处理协同配置对目标视频进行图像处理。
根据本申请的各种实施例,提供了一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述的视频处理协同方法。
根据本申请的各种实施例,提供了一种客户端,用于执行如上述的视频处理协同方法。
根据本申请的各种实施例,提供了一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行上述任一种视频处理协同方法。
根据本申请的各种实施例,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述任一种视频处理协同方法。
根据本申请的各种实施例,提供了一种计算机程序,计算机程序使得计算机执行上述任一种视频处理协同方法。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征、目的和优点将从说明书、附图以及权利要求书变得明显。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据一些实施例的一种图像处理过程的流程图;
图2为根据一些实施例的另一种图像处理过程的流程图;
图3为根据一些实施例的云游戏场景的示意图;
图4A为根据一些实施例的一种视频处理协同方法的流程图;
图4B为根据一些实施例的另一种视频处理协同方法的流程图;
图5为根据一些实施例的再一种图像处理过程的流程图;
图6为根据一些实施例的又一种图像处理过程的流程图;
图7为根据一些实施例的再一种图像处理过程的流程图;
图8为根据一些实施例的再一种视频处理协同方法的流程图;
图9A为根据一些实施例的一种视频处理协同装置的示意图;
图9B为根据另一些实施例的一种视频处理协同装置的示意图;
图9C为根据又一些实施例的一种视频处理协同装置的示意图;
图10为根据一些实施例的电子设备的示意性框图。
为了更好地描述和说明这里公开的那些发明的实施例和/或示例,可以参考一幅或多幅附图。用于描述附图的附加细节或示例不应当被认为是对所公开的发明、目前描述的实施例和/或示例以及目前理解的这些发明的最佳模式中的任何一者的范围的限制。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于 本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或云服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在介绍本申请技术方案之前,下面将对本申请的相关知识进行说明:
图像分析任务:指对视频图像进行空域上的分析、进行时域上的分析、或者结合空域和时域进行分析,以确定是否发生了视频场景切换,或者确定特定物体的区域位置等。对视频图像进行空域上的分析指的是对视频图像进行帧内图像分析,对视频图像进行时域上的分析指的是对视频图像进行帧间图像分析。
图像处理任务:对某一帧视频图像进行像素值修改的任务,该帧视频图像例如是视频图像全图或者视频图像中的特定区域。图像处理任务例如为:图像锐化处理任务、图像降噪处理任务、或者图像模糊处理任务等中的一种或多种。其中,图像处理任务可以实现特定的图像增强效果,也可以实现图像模糊效果等,例如图像锐化处理任务、图像降噪处理任务就可以实现特定的图像增强效果,图像模糊处理任务就可以实现图像模糊效果等。在本申请中,图像处理任务具体可以是图像渲染任务。
在一些实施例中,图像处理任务是基于图像分析任务的结果进行的。例如:云服务器在对某视频源的视频图像进行分析之后,确定发生了视频场景切换,则云服务器可以对切换后的视频图像中的背景进行模糊处理。再例如:云服务器在对某视频源的视频图像进行分析之后,确定了特定物体在视频图像中的区域位置,则云服务器可以对该区域位置进行降噪处理和锐化处理。
在一些实施例中,处理图像分析任务的目的是为了进行后续的图像编码。又或者,图像分析任务的目的可以是为了进行图像处理任务和图像编码,总之,在本申请中,图像分析任务与图像处理任务之间可以具有关联关系,也可以不具有关联关系,本申请对此不做限制。
下面将对本申请所要解决的技术问题和发明构思进行说明:
目前对于一些基于云场景中较为复杂的视频或者图像处理过程可以如下:如图1所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行图像分析,根据分析结果对视频图像进行图像处理,如锐化处理、模糊处理、降噪处理等,对经过处理后的视频图像进行编码,得到视频图像的码流。进一步地,云服务器可以将码流发送给终端设备。终端设备对该码流进行解码,最后按照解码结果进行视频图像的展示。
或者,如图2所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行编码,得到视频图像的码流。进一步地,云服务器可以将码流发送给终端设备。终端设备对该码流进行解码,并对解码后的视频图像进行图像分析,根据分析结果对视频图像进行图像处理,如锐化处理、模糊处理、降噪处理等,最后对处理后的视频图像进行展示。
由此可知,视频分析过程与视频处理过程之间存在耦合,也就是说,目前视频分析过程与视频处理过程均是由云服务器或者终端设备独立完成。
然而,在有限的云服务器计算资源下,目前的图像处理方式无法为用户提供更优质的云游戏画质体验。
为了解决上述技术问题,本申请中云服务器可以根据终端设备的视频处理能力确定目标视频处理协同配置,例如,云服务器可以将至少一个图像处理任务分配给云服务器或终端设备,或者将至少一个图像处理任务协同分配给云服务器和终端设备。并且,云服务器可以根据终端设备的视频分析能力信息确定目标视频分析协同配置,例如云服务器可以将至少一个图像分析任务分配给云服务器或终端设备,又或者将至少一个图像分析任务协同分配给云服务器和终端设备。使得在有限的云服务器计算资源下,可以充分利用终端设备闲置的计算资源,从而可以为用户提供更优质的云游戏画质体验。
其中,本申请中所称的终端设备的能力,例如视频处理能力、视频分析能力等,指的是终端设备执行相应任务的软硬件条件,比如,终端设备的视频处理能力指的是终端设备在处理该视频的图像处理任务时的软硬件条件,该软硬件条件限制了视频处理可达到的视频分辨率、视频帧率,可采用的处理算法,或者视频处理所需消耗的时长等各项参数。视频分析能力指的是终端设备在处理该视频的图像分析任务时的软硬件条件,该软硬件条件限制了视频分析时每次分析时的图像帧数量、所能够支持的视频尺寸、视频图像模式、可采用的视频分析算法、或者视频分析所需消耗的时长等各项参数。
应理解的是,本申请技术方案可以应用于实时通信(Real-time Communications,RTC)场景,但不限于此,其中,视频会议、视频通话、远程办公、远程医疗、互动直播、云游戏等均典型的RTC技术。
示例性地,图3为本申请实施例提供的云游戏场景的示意图,如图3所示,云服务器310与玩家游戏终端320之间可以通信,云服务器310可以运行游戏,并采集游戏视频图像,对采集的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,最后按照解码结果进行视频图像的展示。
在一些实施例中,云服务器310与玩家游戏终端320之间可以通过长期演进技术(Long Term Evolution,LTE)、新空口(New Radio,NR)技术、无线保真(Wireless Fidelity,Wi-Fi)技术等实现通信,但不限于此。
在云游戏场景中,云服务器是指在云端运行游戏的服务器,并具备视频增强(编码前处理)、视频编码等功能,但不限于此。
终端设备是指一类具备丰富人机交互方式、拥有接入互联网能力、通常搭载各种操作系统、具有较强处理能力的设备。终端设备可以是智能手机、客厅电视、平板电脑、车载终端、玩家游戏终端,如掌上游戏主机等,但不限于此。
下面将对本申请技术方案进行详细阐述:
图4A为本申请实施例提供的一种视频处理协同方法的流程图,该方法可以由云服务器和终端设备执行,例如在云游戏场景中,该云服务器可以是图3中的云服务器310,该终端设备可以是图3中的玩家游戏终端320,本申请对该视频处理协同配置的确定方法的执行主体不做限制,如图4A所示,该方法包括:
S410:云服务器向终端设备发送视频处理能力探测请求和视频分析能力探测请求;
S420:云服务器接收终端设备响应于视频渲染处理能力探测请求而反馈的视频处理能力信息,接收终端设备响应于视频分析能力探测请求而反馈的视频分析能力信息;
S430:云服务器根据终端设备的视频处理能力信息确定目标视频处理协同配置,并根据终端设备的视频分析能力信息确定目标视频分析协同配置。
其中,所述目标视频处理协同配置用于确定将至少一个图像处理任务分配给所述终端设备或者云服务器中的其中至少一者;所述目标视频分析协同配置用于确定将至少一个图像分析任务分配给所述终端设备或者所述云服务器中的其中至少一者。
在一些实施例中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置。
在一些实施例中,目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置。
需要说明的是,云服务器可以同时发送视频处理能力探测请求和视频分析能力探测请求,也可以分开发送视频处理能力探测请求和视频分析能力探测请求。
相应地,终端设备响应于云服务器所发送的探测请求,可以同时发送视频处理能力信息和视频分析能力信息,也可以分开发送视频处理能力信息和视频分析能力信息。
上述视频处理协同方法,云服务器可以根据终端设备的视频处理能力确定目标视频处理协同配置,例如云服务器可以将至少一个图像处理任务分配给云服务器或终端设备,又或者将至少一个图像处理任务协同分配给云服务器和终端设备。并且可以根据终端设备的视频分析能力确定目标视频分析协同配置,例如云服务器可以将至少一个图像分析任务分配给云服务器或终端设备,又或者将至少一个图像分析任务协同分配给云服务器和终端设备。由此,云服务器在对目标视频进行处理时,能够结合终端设备的处理能力和分析能力进行任务分配,使得能够在有限的云服务器计算资源下,可以充分利用终端设备闲置的计算资源,从而能够对目标视频进行尽可能高配置的处理和分析,进而能够提供更优质的云游戏画质。
在一些实施例中,如图4B所示,云服务器可以通过安装在终端设备的客户端向终端设备发送视频处理能力探测请求和视频分析能力探测请求,终端设备也可以通过该客户端向云服务器返回视频处理能力信息和视频分析能力信息。其中,在云游戏场景中,该客户端可以是云游戏客户端。
在一些实施例中,该客户端可以从终端设备的操作系统获取终端设备的视频处理能力信息和终端设备的视频分析能力信息;将终端设备的视频处理能力信息和视频分析能力信息发送给云服务器,以供云服务器根据终端设备的视频处理能力信息确定目标视频处理协同配置,并根据终端设备的视频分析能力信息确定目标视频分析协同配置,该客户端可以接收该目标视频处理协同配置和目标视频分析协同配置,并发送给终端设备,该终端设备可以根据目标视频分析协同配置对目标视频进行图像分析、根据目标视频处理协同配置对目标视频进行图像处理、或者根据目标视频分析协同配置对目标视频进行分析且根据目标视频处理协同配置对目标视频进行图像处理。
上述视频处理协同方法,客户端从终端设备的操作系统获取的视频处理能力信息和 视频分析能力信息,并将所获取的视频处理能力信息和视频分析能力信息发送给云服务器,以供云服务器根据视频处理能力信息和视频分析能力信息,确定目标视频处理协同配置和目标视频分析协同配置。例如云服务器可以将至少一个图像处理任务分配给云服务器或终端设备,又或者将至少一个图像处理任务协同分配给云服务器和终端设备。又如云服务器可以将至少一个图像分析任务分配给云服务器或终端设备,又或者将至少一个图像分析任务协同分配给云服务器和终端设备。由此,云服务器在对目标视频进行处理时,能够结合终端设备的处理能力和分析能力进行任务分配,使得能够在有限的云服务器计算资源下,可以充分利用终端设备闲置的计算资源,从而能够对目标视频进行尽可能高配置的处理和分析,进而能够提供更优质的云游戏画质。
在一些实施例中,视频处理能力探测请求用于请求获取终端设备的视频处理能力信息。在一些实施例中,视频处理能力探测请求包括以下至少一项,但不限于此:协议版本号、视频分辨率、视频帧率、或者查询的处理算法类型等。
在一些实施例中,协议版本号指的是云服务器支持的最低协议版本,该协议可以是渲染协议。
在一些实施例中,视频分辨率,即视频尺寸,可以是待图像处理的视频源的分辨率,如1080p、720p、或者360p等。
在一些实施例中,视频帧率可以是待图像处理的视频源的帧率,如120fps、60fps、或者30fps等。
在一些实施例中,查询的图像处理算法类型可以是以下至少一项,但不限于此:锐化处理算法、降噪处理算法、模糊处理算法、或者视频高动态范围成像(High Dynamic Range Imaging,HDR)增强能力算法等。
在一些实施例中,不同的视频分辨率可以通过枚举的方式进行定义,如表1所示:
表1
视频分辨率 |
枚举定义 |
360p |
0x1 |
576p |
0x2 |
720p |
0x4 |
1080p |
0x8 |
2k |
0x10 |
4k |
0x20 |
在一些实施例中,不同的视频帧率可以通过枚举的方式进行定义,如表2所示:
表2
视频帧率 |
枚举定义 |
30fps |
0x1 |
40fps |
0x2 |
50fps |
0x4 |
60fps |
0x8 |
90fps |
0x10 |
120fps |
0x20 |
在一些实施例中,不同的图像处理算法可以通过枚举的方式进行定义,如表3所示:
表3
图像处理算法类型 |
枚举定义 |
未定义 |
0 |
锐化处理算法 |
1 |
HDR增强能力算法 |
2 |
在一些实施例中,上述视频处理能力探测请求可以是云服务器针对目标图像帧的至少一个图像处理任务所发送的视频处理能力探测请求。
示例性地,云服务器发送视频处理能力探测请求的代码实现可以如下:
{
"render_ability":{
"version":"1.0",
"resolution":"8",
"framerate":"8",
"type":"1,2"
}
}
上述代码中,第一句用于表示所请求探测的能力类型,如“render_ability”(视频处理能力)、“analysis_ability”(视频分析能力)等。而如“version”(协议版本号)、“resolution”(视频尺寸)等为字段类型,相应的数字表示其字段的值。比如,"resolution":"8"表示的是1080p的视频尺寸(视频分辨率)。关于该代码中各个数据结构的解释可参考下面的表5。
在一些实施例中,视频分析能力探测请求用于请求获取终端设备的视频分析能力信息。
在一些实施例中,视频分析能力探测请求包括以下至少一项,但不限于此:协议版本号、视频分辨率、视频帧率、或者查询的图像分析任务类型等。
在一些实施例中,协议版本号指的是云服务器支持的最低协议版本,该协议可以是视频分析协议。
在一些实施例中,视频分辨率可以是待图像分析的视频源的分辨率,如1080p。
在一些实施例中,视频帧率可以是待图像分析的视频源的帧率,如60fps。
在一些实施例中,查询的图像分析任务类型可以是以下至少一项,但不限于此:视频复杂度分析、或者视频前景背景分析等。
在一些实施例中,不同的图像分析任务可以通过枚举的方式进行定义,如表4所示:
表4
图像分析任务类型 |
枚举定义 |
未定义 |
0 |
视频复杂度分析 |
1001 |
视频前景背景分析 |
1002 |
在一些实施例中,上述视频分析能力探测请求可以是云服务器针对目标视频的至少 一个图像分析任务所发送的视频分析能力探测请求。目标视频为待进行图像处理或分析处理的视频。通常图像分析会消耗一定的图形计算资源,云服务器进行分析得到的结果用于后续进行图像处理,因此可允许一定的延时,不一定需要每帧都做分析,例如:云服务器可以针对每四帧图像进行一次图像分析。因此,图像分析任务是针对目标视频而言的。
需要说明的是,假设云服务器针对每N帧图像进行一次图像分析,N为大于1的整数,该次图像分析可以是针对这N帧图像综合进行的图像分析,也可以是针对这N帧图像中部分图像帧进行的图像分析。
示例性地,图像分析任务可以是确定是否发生了视频场景切换,或者分析确定特定物体的区域位置等。图像分析任务还可以是对画面复杂度的分析任务、对游戏角色运动轨迹的分析任务、或者前后背景的分析任务等。
示例性地,云服务器发送视频分析能力探测请求的代码实现可以如下:
{
"analysis_ability":{
"version":"1.0",
"resolutuin":"8",
"framerate":"8",
"type":"1001"
}
}
关于该代码中各个数据结构的解释可参考下面的表5。
在一些实施例中,当本申请技术方案应用在RTC场景时,上述目标视频可以是实时采集或者生成的视频。
其中,终端设备的视频处理能力信息和视频分析能力信息的数据结构可以如表5所示:
表5
终端设备的视频处理能力信息,指的是终端设备在执行图像处理任务时所支持的协议版本号、视频分辨率、视频帧率、或者图像处理算法类型等。
在一些实施例中,终端设备在执行图像分析任务时所支持的协议版本号指的是终端设备支持的最低协议版本,该协议可以是图像处理协议。
在一些实施例中,终端设备的视频图像处理能力包括以下至少一项,但不限于此:终端设备支持的图像处理算法类型以及该图像处理算法的性能。
在一些实施例中,该图像处理算法的性能包括以下至少一项,但不限于此:该图像算法可以处理的视频尺寸、帧率、以及时延。
在一些实施例中,终端设备向云服务器反馈视频处理能力信息以外,还可以向云服务器反馈:对于云服务器所要查询的图像处理算法类型是否查询成功的标识等。
在一些实施例中,当对于云服务器所要查询的处理算法类型查询成功时,则对于云服务器所要查询的处理算法类型是否查询成功的标识可以用0表示。当对于云服务器所要查询的处理算法类型查询失败时,则对于云服务器所要查询的处理算法类型是否查询成功的标识可以用错误码表示,如001等。
示例性地,在终端设备具备视频处理能力的情况下,终端设备反馈视频处理能力信息的代码实现可以如下:
{
"render_ability":{
"state":"0",
"version":"1.0",
"renders":"2"
},
"render1":{
"type":"1",
"performances":"1",
"performance1":"8,8,10"
},
"render2":{
"type":"2",
"performances":"1",
"performance1":"8,8,5"
}
}
示例性地,在终端设备具备部分的视频处理能力的情况下,终端设备反馈视频处理能力信息的代码实现可以如下:
{
"render_ability":{
"state":"0",
"version":"1.0",
"renders":"1"
},
"render1":{
"type":"2",
"performances":"1",
"performance1":"8,8,5"
}
}
示例性地,在终端设备不具备视频处理能力的情况下,终端设备反馈视频处理能力信息的代码实现可以如下:
{
"render_ability":{
"state":"0",
"version":"1.0",
"renders":"0"
}
}
示例性地,在协议请求失败的情况下,终端设备反馈视频处理能力信息的代码实现可以如下:
{
"render_ability":{
"state":"-1",
"version":"0.9"
}
}
应理解的是,关于这些代码中各个数据结构的解释可参考表5。
在一些实施例中,上述至少一个图像处理任务中,每个图像处理任务各自对应有至少一种图像处理算法。例如,一个图像处理任务只能通过一种图像处理算法来处理,则该图像处理任务与该种图像处理算法具有对应关系。又如,一个图像处理任务通过多种图像 处理算法均可以处理,则该图像处理任务分别与该多种图像处理算法中的每一种图像处理算法均具有对应关系。
在一些实施例中,至少一个图像处理算法包括以下至少一项,但不限于此:锐化处理算法、降噪处理算法、或者模糊处理算法等。
示例性地,假设需要对目标视频中的某一视频图像帧的背景图像进行模糊处理,对前景图像进行降噪处理和锐化处理,这种情况下,该图像帧对应有三个图像处理任务,分别是模糊处理任务、降噪处理任务和锐化处理任务,而这三个任务分别对应的图像处理算法是模糊处理算法、降噪处理算法和锐化处理算法。
终端设备的视频分析能力信息,指的是终端设备在执行图像分析任务时所支持的协议版本号、视频分辨率、视频帧率、或者图像分析算法类型等。
在一些实施例中,终端设备在执行图像分析任务时所支持的协议版本号指的是终端设备支持的最低协议版本,该协议可以是视频分析协议。
在一些实施例中,终端设备的视频分析能力包括以下至少一项,但不限于此:终端设备支持的视频分析算法类型以及该视频分析算法的性能。
在一些实施例中,该视频分析算法的性能包括以下至少一项,但不限于此:该算法可以处理的视频尺寸、帧率以及时延。
在一些实施例中,终端设备除了向云服务器反馈视频分析能力信息以外,还可以向云服务器反馈对于云服务器所要查询的分析任务类型是否查询成功的标识等。
在一些实施例中,当对于云服务器所要查询的分析任务类型查询成功时,则对于云服务器所要查询的分析任务类型是否查询成功的标识可以用0表示。当对于云服务器所要查询的分析任务类型查询失败时,则对于云服务器所要查询的分析任务类型是否查询成功的标识可以用错误码表示,如001等。
示例性地,终端设备向云服务器反馈视频分析能力信息的代码实现可以如下:
{
"analysis_ability":{
"state":"0",
"version":"1.0",
"analyses":"1"
},
"analysis1":{
"type":"1001",
"performances":"1",
"performance1":"8,8,10"
}
}
应理解的是,关于这些代码中各个数据结构的解释可参考表5。
在一些实施例中,上述至少一个图像分析任务中,每个图像分析任务各自对应有至少一种图像分析算法。例如,一个图像分析任务只能通过一种图像分析算法来处理,则该图像分析任务与该种图像分析算法具有对应关系。又如,一个图像分析任务通过多种图像 分析算法均可以处理,则该图像分析任务分别与该多种图像分析算法中的每一种图像分析算法均具有对应关系。
在一些实施例中,图像分析任务用于辅助进行以下至少一项处理:云服务器的图像编码、云服务器的图像处理、终端设备的图像处理。
示例性地,如图5所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行视频图像分析,根据分析结果对视频图像进行图像处理,如锐化处理、模糊处理、降噪处理等,根据分析结果对经过图像处理后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,并根据云服务器的分析结果对解码后的视频图像进行图像处理,如锐化处理、模糊处理、降噪处理等,再由终端设备对经过图像处理后的视频图像进行展示。
示例性地,如图6所示,云服务器生成视频,进行视频图像采集,根据终端设备对已解码后的视频图像的分析结果对视频图像进行图像处理,如锐化处理、模糊处理、降噪处理等,再根据终端设备对已解码后的视频图像的分析结果,对经过处理后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,并对解码后的视频图像分析,根据分析结果对视频图像进行图像处理,如锐化处理、模糊处理、降噪处理等,最后由终端设备对经过处理后的视频图像进行展示。
示例性地,如图7所示,云服务器生成视频,进行视频图像采集,对采集的视频图像进行图像分析,对应图像分析任务a,根据终端设备侧的图像分析任务b对应的分析结果对采集的视频图像进行图像处理,根据图像分析任务a对应的分析结果以及终端设备侧的图像分析任务b对应的分析结果,对经过图像处理后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,并对解码后的视频图像分析,对应图像分析任务b,根据云服务器侧的图像分析任务a的分析结果对视频图像进行图像处理,最后终端设备对经过图像处理后的视频图像进行展示。
在一些实施例中,终端设备的视频分析能力可以被划分为以下三种情况:
情况一:终端设备的视频分析能力针对至少一个图像分析任务具备完全视频分析能力。其中,终端设备具备完全视频分析能力指的是终端设备在处理图像分析任务时的软硬件条件能够满足任务要求。
情况二:终端设备的视频分析能力针对至少一个图像分析任务具备局部视频分析能力。其中,终端设备具备局部视频分析能力指的是终端设备在处理图像分析任务时的软硬件条件只能够满足部分任务要求。
情况三:终端设备不具备视频分析能力。
其中,终端设备不同的视频分析能力可以通过枚举的方式进行定义,如表6所示:
表6
视频分析能力 |
枚举定义 |
未定义 |
0 |
不具备视频分析能力 |
1 |
具备局部视频分析能力 |
2 |
在一些实施例中,根据终端设备的视频分析能力信息确定目标视频分析协同配置,包括:在终端设备针对至少一个图像分析任务具备完全视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给终端设备的视频分析协同配置。即,云服务器接收终端设备反馈的视频分析能力信息,并根据终端设备的视频分析能力信息判断终端设备的视频分析能力。云服务器在确定终端设备针对至少一个图像分析任务具备完全视频分析能力的情况下,则确定将至少一个图像分析任务分配给终端设备,换言之,云服务器确定目标视频分析协同配置为将至少一个图像分析任务分配给终端设备的视频分析协同配置。
在一些实施例中,根据终端设备的视频分析能力信息确定目标视频分析协同配置,包括:在终端设备针对所述至少一个图像分析任务具备完全视频分析能力的情况下,则确定目标视频分析协同配置为将所述至少一个图像分析任务分配给终端设备的视频分析协同配置;在终端设备针对至少一个图像分析任务不具备完全视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给云服务器的视频分析协同配置。
即,云服务器接收终端设备反馈的视频分析能力信息,并根据终端设备的视频分析能力信息判断终端设备的视频分析能力。云服务器在确定终端设备针对至少一个图像分析任务不具备完全视频分析能力的情况下,则确定将至少一个图像分析任务分配给云服务器,换言之,云服务器确定目标视频分析协同配置为将至少一个图像分析任务分配给云服务器的视频分析协同配置。
在一些实施例中,根据终端设备的视频分析能力信息确定目标视频分析协同配置,包括:在终端设备针对至少一个图像分析任务具备局部视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置。即,云服务器接收终端设备反馈的视频分析能力信息,并根据终端设备的视频分析能力信息判断终端设备的视频分析能力。云服务器在确定终端设备针对至少一个图像分析任务具备局部视频分析能力的情况下,则确定将至少一个图像分析任务协同分配给终端设备和云服务器。换言之,云服务器确定目标视频分析协同配置为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置。例如,云服务器将图像分析任务中的一部分图像分析任务分配给终端设备,将另一部分图像分析任务分配给云服务器。
在一些实施例中,根据终端设备的视频分析能力信息确定目标视频分析协同配置,包括:在终端设备不具备视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给云服务器的视频分析协同配置。即,云服务器接收终端设备反馈的视频分析能力信息,并根据终端设备的视频分析能力信息判断终端设备的视频分析能力。云服务器在确定终端设备不具备视频分析能力的情况下,则确定将至少一个图像分析任务分配给云服务器。换言之,云服务器确定目标视频分析协同配置为将至少一个图像分析任务分配给云服务器的视频分析协同配置。
其中,终端设备是否具备视频分析能力,可以是终端设备的视频分析能力是否满足图像分析任务的要求。
上述实施例中,通过判断终端设备是具备完全视频分析能力、具备局部视频分析能力、还是不具备视频分析能力,能够对图像分析任务的分配进一步进行细分,既可以将图像分析任务全部交由终端设备执行,也可以将图像分析任务拆分成两部分,一部分由终端设备执行、另一部分由云服务器执行,还可以将图像分析任务全部交由云服务器自身来执行。由此,能够充分利用云服务器与终端设备各自的处理资源,并且云服务器和终端设备能够协同处理任务,提高了对目标视频的处理效率。
在一些实施例中,针对任一图像分析任务,终端设备的视频分析能力是否满足该图像分析任务的要求指的是:终端设备具备处理该图像分析任务的基本能力,并且终端设备的视频分析能力满足该图像分析任务的要求。
在一些实施例中,终端设备具备处理图像分析任务的基本能力包括:终端设备执行图像分析任务的软硬件能力,该软硬件能力包括软件能力和硬件能力。
示例性地,假设当前需要确定目标视频的特定物理的区域位置,那么终端设备具备执行该任务的基本能力指的是:终端设备通过软件和硬件可以确定目标视频的特定物理的区域位置。
在一些实施例中,云服务器判断终端设备是否满足执行图像分析任务的软硬件能力条件。在终端设备不满足具备执行图像分析任务的软硬件能力条件的情况下,则云服务器确定终端设备的视频分析能力不满足图像分析任务的要求。
在一些实施例中,在终端设备满足具备执行图像分析任务的软硬件能力条件的情况下,则云服务器继续判断终端设备执行图像分析任务时所采用的图像分析算法是否满足至少一个图像分析任务对应的目标视频的性能要求。
在一些实施例中,在终端设备执行图像分析任务时所采用的图像分析算法不满足目标视频的性能要求的情况下,则云服务器确定终端设备的视频分析能力不满足图像分析任务的要求。
在一些实施例中,在终端设备执行图像分析任务时所采用的图像分析算法满足目标视频的性能要求的情况下,则云服务器确定终端设备的视频分析能力满足图像分析任务的要求。
在一些实施例中,云服务器判断终端设备执行图像分析任务时所采用的图像分析算法是否满足至少一个图像分析任务对应的目标视频的性能要求,包括:在图像分析算法所要处理的图像区域为预设区域,以及图像分析频率为预设分析频率的情况下,当图像分析算法的性能满足目标视频的分辨率要求和帧率要求时,则确定图像分析算法满足目标视频的性能要求;在图像分析算法所要处理的图像区域为预设区域,以及图像分析频率为预设分析频率的情况下,当图像分析算法的性能不满足目标视频的分辨率要求或帧率要求时,则确定图像分析算法不满足目标视频的性能要求。
其中,云服务器预设有图像分析算法所要处理的图像区域,即预设区域,并预设有图像分析频率,即预设分析频率。在预设有图像区域和图像分析频率的情况下,当云服务器根据终端设备反馈的视频分析能力信息,确定终端设备执行图像分析任务时所采用的图像分析算法,并进一步确定终端设备执行图像分析任务时所采用的图像分析算法的性能是否满足目标视频的分辨率要求和帧率要求。
当终端设备执行图像分析任务时所采用的图像分析算法的性能均能满足目标视频的 分辨率要求和帧率要求时,则云服务器确定终端设备所支持的图像分析算法满足目标视频的性能要求。
当终端设备执行图像分析任务时所采用的图像分析算法的性能不满足目标视频的分辨率要求或帧率要求中的任一种要求时,则确定图像分析算法不满足目标视频的性能要求。
上述实施例中,通过判断终端设备是否具备执行图像分析任务的软硬件能力,进而在终端设备具备执行图像分析任务的软硬件能力的情况下,进一步判断终端设备再执行图像分析任务时所采用的图像分析算法是否能够满足目标视频的性能要求,从而能够准确地判断是否将图像分析任务分配至终端设备,避免在终端设备不具备软硬件能力的情况下将图像分析任务分配给终端设备导致的效率降低,能够实现任务分配的精细化,并提高了所分配的任务的可实施性和执行效率。在一些实施例中,图像分析频率指的是针对每N帧图像进行一次图像分析,N为大于1的整数。
示例性地,假设针对1080p、60fps的目标视频,当前需要对该目标视频每4帧图像进行一次图像分析,并且只需要对图像中心1/9区域做分析,此时对图像分析算法的性能要求是360p、15fps。
基于上述终端设备的视频分析能力划分情况,至少一个图像分析任务的分配情况可以如下:
在一些实施例中,对于至少一个图像分析任务,当终端设备的视频分析能力满足全部图像分析任务的要求时,则云服务器将全部图像分析任务分配给终端设备。当终端设备的视频分析能力满足至少一个图像分析任务中部分任务的要求时,则云服务器将该部分任务分配给终端设备,并将除该部分任务之外的其余任务分配给云服务器。当终端设备的视频分析能力不满足任何图像分析任务的要求,则云服务器将全部图像分析任务分配给云服务器。
示例性地,假设针对1080p、60fps的目标视频,若当前需要对该目标视频每4帧图像进行一次图像分析,并且只需要对图像中心1/9区域做分析,包括:确定是否发生了视频场景切换以及确定特定物体的区域位置,也就是说,针对该目标视频存在两个图像分析任务,分别是:判断是否发生了视频场景切换的任务、确定特定物体区域位置的任务。
基于此,若终端设备的视频分析能力可以满足这两项任务的要求,即终端设备既具有执行这两项任务的基本能力,并且则这两个任务对应的图像分析算法的性能可以达到360p、15fps。这种情况下,云服务器可以将这两项任务都分配给终端设备,以使终端设备执行这两项任务,从而可以降低云服务器的负荷。
若终端设备的能力可以满足这两项任务中一者的要求,这种情况下,云服务器可以将终端设备所满足的任务分配给终端设备,其余任务分配给云服务器,以使终端设备和云服务器配合起来执行这两项任务。
若终端设备的视频分析能力不能满足图像两项任务中任一者的要求,这种情况下,云服务器可以这两项任务都分配给自己,以使自己执行这两项任务,从而可以降低终端设备的负荷。
应理解的是,上文介绍的是将终端设备的视频分析能力分为三种情况,实际上,也可以将终端设备的视频分析能力分为以下两种情况:
情况一:终端设备针对至少一个图像分析任务具备完全视频分析能力。
情况二:终端设备针对至少一个图像分析任务不具备完全视频分析能力。
换句话讲,这里是将至少一个图像分析任务看作一个整体而言的。
应理解的是,关于终端设备的视频分析能力是否满足某一任务的要求可参考上文的解释说明。
基于上述终端设备的视频分析能力划分情况,至少一个图像分析任务的分配情况可以如下:若终端设备的视频分析能力满足至少一个图像分析任务的要求,则将至少一个图像分析任务分配给终端设备;若终端设备的视频分析能力不满足至少一个图像分析任务的要求,则将至少一个图像分析任务分配给云服务器。
示例性地,假设针对1080p、60fps的目标视频,若当前需要对该目标视频每4帧图像进行一次图像分析,并且只需要对图像中心1/9区域做分析,包括:确定是否发生了视频场景切换以及确定特定物体的区域位置,也就是说,针对该目标视频存在两个图像分析任务,分别是:判断是否发生了视频场景切换的任务、确定特定物体区域位置的任务。
基于此,若终端设备的视频分析能力可以满足这两项任务的要求,即终端设备既具有执行这两项任务的基本能力,并且则这两个任务对应的图像分析算法的性能可以达到360p、15fps。这种情况下,云服务器可以将这两项任务都分配给终端设备,以使终端设备执行这两项任务,从而可以降低云服务器的负荷。
若终端设备的视频分析能力可以满足这两项任务中一者的要求,或者不能满足任一者的要求,这种情况下,云服务器可以这两项任务都分配给自己,以使自己执行这两项任务,从而可以降低终端设备的负荷。
在一些实施例中,在确定目标视频分析协同配置为将至少一个图像分析任务分配给终端设备的视频分析协同配置的情况下,则向终端设备发送第一图像分析任务的标识和第一指示信息;其中,第一图像分析任务是分配给所述终端设备的图像分析任务,第一指示信息用于指示终端设备对所分配的至少一个图像分析任务进行图像分析。
上述实施例中,通过向终端设备发送第一图像分析任务的标识和第一指示信息,终端设备即可根据标识获知待处理的图像分析任务,并根据第一指示信息对该待处理的图像分析任务进行图像分析,由此终端设备能够帮助云服务器执行图像分析任务,减缓了云服务器的资源压力,并充分利用了终端设备的资源。
在一些实施例中,在确定目标视频分析协同配置为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置的情况下,则向终端设备发送第二图像分析任务的标识和第二指示信息;其中,第二图像分析任务是至少一个图像分析任务中需要分配给终端设备的图像分析任务,第二指示信息用于指示终端设备对第二图像分析任务进行图像分析。
上述实施例中,通过向终端设备发送第二图像分析任务的标识和第二指示信息,终端设备即可根据标识获知待处理的图像分析任务,并根据第二指示信息对该待处理的图像分析任务进行图像分析,由此终端设备能够帮助云服务器执行图像分析任务,减缓了云服务器的资源压力,并充分利用了终端设备的资源。
其中,图像分析任务的标识用于区分不同的图像分析任务,例如,每个图像分析任务均设置有一个编号,该编号作为图像分析任务的标识,用于告知终端设备所分配的具体 是哪些图像分析任务。
在一些实施例中,在云服务器向终端设备下发图像处理任务时也可以将该图像处理任务的信息下发给终端设备,该图像处理任务的信息包括以下至少一项,但不限于此:图像处理算法的类型、名称、大小、区域数量、区域范围、阈值等等。
示例性地,云服务器下发图像处理任务的代码实现可以如下。其中,该图像处理任务对应的算法是针对图像区域的图像锐化算法:
{
"render_task":{
"version":"1.0",
"renders":"1"
},
"render1":{
"type":"1",
"name":"unsharp masking",
"scale":"100",
"regions":"2",
"region1":"0,0,33,33",
"region2":"67,67,100,100"
},
"render1_args":{
"threshold":"0",
"amount":"50",
"radius":"5"
}
}
示例性地,云服务器下发图像处理任务的代码实现可以如下。其中,该图像处理任务对应的算法是针对图像区域的图像锐化算法和全图HDR:
{
"render_task":{
"version":"1.0",
"renders":"2"
},
"render1":{
"type":"1",
"name":"unsharp masking",
"scale":"100",
"regions":"2",
"region1":"0,0,33,33",
"region2":"67,67,100,100"
},
"render1_args":{
"threshold":"0",
"amount":"50",
"radius":"5"
},
"render2":{
"type":"2",
"name":"hdr",
"scale":"100",
"regions":"1",
"region1":"0,0,100,100"
}
}
应理解的是,关于这些代码中各个数据结构的解释可参考表5。
在一些实施例中,在云服务器向终端设备下发图像分析任务时也可以将该图像分析任务的信息下发给终端设备,该图像分析任务的信息包括以下至少一项,但不限于此:图像分析算法的类型、名称、大小、区域数量、区域范围、阈值等等。
当然,云服务器可以同时下发图像处理任务和图像分析任务,
示例性地,云服务器同时下发图像处理任务和图像分析任务的代码实现可以如下。其中,该图像分析任务例如是视频复杂度分析任务,图像处理任务例如是全图HDR任务:
{
"render_task":{
"version":"1.0",
"renders":"1"
},
"render1":{
"type":"2",
"name":"hdr",
"scale":"100",
"regions":"1",
"region1":"0,0,100,100"
},
"analysis_task":{
"version":"1.0",
"analyses":"1"
},
"analysis1":{
"type":"1002",
"name":"xxx",
"scale":"100",
"regions":"1",
"region1":"33,33,67,67"
}
}
图8为本申请实施例提供的再一种视频处理协同方法的流程图,如图8所示,该方法包括:
S810:云服务器向终端设备发送视频分析能力探测请求;
S820:云服务器接收终端设备响应于所述视频分析能力探测请求而反馈的视频分析能力信息;
S830:云服务器获取至少一个图像分析任务的编码属性;
S840:云服务器根据至少一个图像分析任务的编码属性和终端设备的视频分析能力,确定目标视频分析协同配置。
需要说明的是,关于图8对应实施例与图4A对应实施例相同步骤的解释说明,可参考上文。
应理解的是,通常云服务器相对于终端设备的图像处理能力要强很多,对于编码复杂度较高、编码质量要求较高又或者编码时延要求较高的图像分析任务,通常只能由云服务器执行,因此,本申请提供了如下可选方式来进行图像分析任务的分配,但不限于此:
在一些实施例中,云服务器根据至少一个图像分析任务的编码属性判断至少一个图像分析任务中是否存在需要分配给云服务器的图像分析任务;在至少一个图像分析任务中存在需要分配给云服务器的图像分析任务的情况下,则将需要分配给云服务器的图像分析任务分配给云服务器,并判断至少一个图像分析任务中除需要分配给云服务器的图像分析任务之外是否存在剩余图像分析任务;在至少一个图像分析任务中不存在需要分配给云服务器的图像分析任务的情况下,则根据终端设备的视频分析能力,确定目标视频分析协同配置;在至少一个图像分析任务中存在剩余图像分析任务的情况下,则根据终端设备的视频分析能力,针对剩余图像分析任务确定目标视频分析协同配置。
上述实施例中,通过根据图像分析任务的编码属性,并结合编码属性和视频分析能力来确定目标视频分析协同配置,以此确定将图像分析任务分配给终端设备还是云服务器,以及分配哪些图像分析任务给终端设备,由此实现了对图像分析任务的精细化分配,能够在充分终端设备的空闲资源的同时,避免过多的任务对终端设备的性能造成的影响,兼顾了目标视频的处理效率和处理效果。
在一些实施例中,上述方法还包括:将至少一个图像分析任务中编码属性满足预设条件的图像分析任务,确定为需要分配给所述云服务器的图像分析任务。其中,预设条件指的是编码复杂度条件、编码质量条件、或者编码时延条件等中的一种或多种。由此,通过判断编码属性是否满足预设条件来确定分配给云服务器的图像分析任务,能够将编码复杂度较高、编码质量要求较高又或者编码时延要求较高的图像分析任务分配给云服务器,避免对终端设备的性能造成影响,同时避免在终端设备的性能不足的情况下对目标视频的处理效率造成的影响。
在一些实施例中,图像分析任务的编码属性为以下任一项,但不限于此:编码复杂度、编码质量、编码时延。
应理解的是,由于一个图像分析任务的编码复杂度、编码质量、编码时延越大,则表示该图像分析任务的处理难度越大,因此,这里通过这些编码属性来确定是否将图像分析任务分配给云服务器。
在一些实施例中,图像分析任务的编码复杂度对应的预设条件是判断图像分析任务的编码复杂度是否达到预设编码复杂度。在达到的情况下,云服务器确定图像分析任务的编码属性满足与编码复杂度对应的预设条件。
在一些实施例中,图像分析任务的编码质量对应的预设条件是判断图像分析任务的编码质量是否达到预设编码质量。在达到的情况下,云服务器确定图像分析任务的编码属性满足与编码质量对应的预设条件。
在一些实施例中,图像分析任务的编码时延对应的预设条件是判断图像分析任务的编码时延是否达到预设编码时延。在达到的情况下,云服务器确定图像分析任务的编码属性满足与编码时延对应的预设条件。
在一些实施例中,上述图像分析任务的预设条件、预设编码复杂度、预设编码质量、或者预设编码时延中的任一种,可以是云服务器和终端设备协商的,也可以是预定义的,还可以是云服务器指定的,又或者是终端设备指定的,再或者是由终端设备的应用层指定的,本申请对此不做限制。
上述实施例中,通过根据图像分析任务的编码属性,并结合编码属性和视频分析能力来确定目标视频分析协同配置,以此确定将图像分析任务分配给终端设备还是云服务器,以及分配哪些图像分析任务给终端设备,由此实现了对图像分析任务的精细化分配,能够在充分终端设备的空闲资源的同时,避免过多的任务对终端设备的性能造成的影响,兼顾了目标视频的处理效率和处理效果。
示例性地,假设针对1080p、60fps的目标视频,当前需要对目标视频进行分析,以确定是否存在视频场景切换、确定游戏角色A的区域位置、确定游戏角色B的区域位置,也就是存在三个图像分析任务,假设确定是否存在视频场景切换的图像分析任务的编码复杂度大于预设编码复杂度,而确定游戏角色A的区域位置、确定游戏角色B的区域位置的图像分析任务编码复杂度低于预设编码复杂度,基于此,云服务器可以将图像锐化分析任务分配给自己,进一步地,假设针对确定游戏角色A的区域位置的图像分析任务,当前需要对该目标视频每4帧图像进行一次图像分析,以确定是否存在场景切换,并且只需要对图像中心1/9区域做分析,此时如果图像分析算法的性能要求可以达到360p、15fps,则将该图像分析任务分配给终端设备。假设针对确定游戏角色A的区域位置的图像分析任务,当前需要对该目标视频每4帧图像进行一次图像分析,以确定是否存在场景切换,并且只需要对图像中心1/9区域做分析,此时如果图像分析算法的性能要求无法达到360p、15fps,则将该图像分析任务分配给云服务器。
综上,本申请提供一种视频处理协同方法,其中,云服务器可以根据终端设备的视频处理能力确定处理目标视频处理协同配置,例如云服务器可以将至少一个图像处理任务分配给云服务器或终端设备,又或者将至少一个图像处理任务协同分配给云服务器和终端设备。并且可以根据终端设备的视频分析能力确定目标视频分析协同配置,例如云服务器 可以将至少一个图像分析任务分配给云服务器或终端设备,又或者将至少一个图像分析任务协同分配给云服务器和终端设备。此外,对于需要由云服务器处理的图像分析任务,可以将这些图像分析任务分配给云服务器,除此之外的剩余图像分析任务,可以根据终端设备的视频分析能力进行图像分析任务分配。这种视频分析协同方法不仅在有限的云服务器计算资源下,可以充分利用终端设备闲置的计算资源,从而可以为用户提供更优质的云游戏画质体验,还可以针对需要由云服务器处理的图像分析任务能够确保由云服务器执行,由于云服务器的性能更加强大,从而进一步保证了画质效果。
需要说明的是,如上所述,本申请提出针对图像分析任务,可以将其分配给云服务器和终端设备的至少一者,针对图像处理任务,也可以将其分配给云服务器和终端设备的至少一者,也就是说,可以对图像处理任务和图像分析任务进行分割。基于此,图像分析任务和图像处理任务可能会被分配到一台终端设备上,也可能被分配到不同终端设备上。因此,在本申请中,重点介绍图像分析任务是如何被分配给云服务器和终端设备的至少一者的,至于图像处理任务是如何被分配给云服务器和终端设备的至少一者的,可以参照对图像分析任务的相关实施例的描述。
在一些实施例中,根据终端设备的视频处理能力信息确定目标视频处理协同配置,包括:在终端设备针对至少一个图像处理任务具备完全视频处理能力的情况下,则确定目标视频处理协同配置为将至少一个图像处理任务分配给终端设备的视频处理协同配置;在终端设备针对至少一个图像处理任务具备局部视频处理能力的情况下,则确定目标视频处理协同配置为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;在终端设备不具备视频处理能力的情况下,则确定目标视频处理协同配置为将至少一个图像处理任务分配给云服务器的视频处理协同配置。
在一些实施例中,根据终端设备的视频处理能力确定目标视频处理协同配置,包括:在终端设备针对至少一个图像处理任务不具备完全视频处理能力的情况下,则确定目标视频处理协同配置为将至少一个图像处理任务分配给云服务器的视频处理协同配置。
在一些实施例中,方法还包括:判断终端设备是否满足执行图像处理任务的软硬件能力条件;在终端设备不满足具备执行图像处理任务的软硬件能力条件的情况下,则确定终端设备的视频处理能力不满足图像处理任务的要求;在终端设备满足具备执行图像处理任务的软硬件能力条件的情况下,则判断终端设备执行图像处理任务时所采用的图像处理算法是否满足目标视频的性能要求;在图像处理算法不满足目标视频的性能要求的情况下,则确定终端设备的视频处理能力不满足图像处理任务的要求;在图像处理算法满足目标视频的性能要求的情况下,则确定终端设备的视频处理能力满足图像处理任务的要求。
在一些实施例中,判断终端设备执行第一图像处理任务时所采用的图像处理算法是否满足至少一个图像处理任务对应的目标视频的性能要求,包括:在图像处理算法所要处理的图像区域为预设区域,以及图像处理频率为预设处理频率的情况下,当图像处理算法的性能满足目标视频的分辨率要求和帧率要求时,则确定图像处理算法满足目标视频的性能要求;若在图像处理算法所要处理的图像区域为预设区域,以及图像处理频率为预设处理频率的情况下,当图像处理算法的性能不满足目标视频的分辨率要求或帧率要求时,则确定图像处理算法不满足目标视频的性能要求。
在一些实施例中,在确定目标视频处理协同配置为将至少一个图像处理任务分配给 终端设备的视频处理协同配置的情况下,向终端设备发送第一图像处理任务的标识和第一指示信息;其中,第一图像处理任务是分配给终端设备的图像处理任务,第一指示信息用于指示终端设备对所分配的至少一个图像处理任务进行处理。
在一些实施例中,上述方法还包括:在确定目标视频处理协同配置为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置的情况下,则向终端设备发送第二图像处理任务的标识和第二指示信息;其中,第二图像处理任务是至少一个图像处理任务中需要分配给终端设备的图像处理任务,第二指示信息用于指示终端设备对第二图像处理任务进行处理。
在一些实施例中,根据终端设备的视频处理能力确定目标视频处理协同配置之前,上述方法还包括:获取至少一个图像处理任务的编码属性;根据终端设备的视频处理能力确定目标视频处理协同配置,包括:根据至少一个图像处理任务的编码属性和终端设备的视频处理能力,确定目标视频处理协同配置。
在一些实施例中,根据至少一个图像处理任务的编码属性和终端设备的视频处理能力,确定目标视频处理协同配置,包括:在根据至少一个图像处理任务的编码属性,确定至少一个图像处理任务中存在需要分配给云服务器的图像处理任务的情况下,则将需要分配给云服务器的图像处理任务分配给云服务器,并判断至少一个图像处理任务中除需要分配给云服务器的图像处理任务之外是否存在剩余图像处理任务;在至少一个图像处理任务中存在剩余图像处理任务的情况下,根据终端设备的视频处理能力,针对剩余图像处理任务确定目标视频处理协同配置;在根据至少一个图像处理任务的编码属性,确定至少一个图像处理任务中不存在需要分配给云服务器的图像处理任务的情况下,则根据终端设备的视频处理能力,确定目标视频处理协同配置。
在一些实施例中,上述方法还包括:将所述至少一个图像处理任务中编码属性满足预设条件的图像处理任务,确定为需要分配给所述云服务器的图像处理任务。其中,预设条件指的是编码复杂度条件、编码质量条件、或者编码时延条件等中的一种或多种。
在一些实施例中,图像处理任务的编码属性包括以下任一项或多项:编码复杂度、编码质量、或者编码时延。
在一些实施例中,当图像处理任务的编码属性为编码复杂度时,上述方法还包括:判断所述图像处理任务的编码复杂度是否达到预设编码复杂度,在达到的情况下,确定所述图像处理任务的编码属性满足与编码复杂度对应的预设条件。
在一些实施例中,当图像处理任务的编码属性为编码质量时,上述方法还包括:判断所述图像处理任务的编码质量是否达到预设编码质量,在达到的情况下,确定所述图像处理任务的编码属性满足与编码质量对应的预设条件。
在一些实施例中,当图像处理任务的编码属性为编码时延时,上述方法还包括:判断所述图像处理任务的编码时延是否达到预设编码时延,在达到的情况下,确定所述图像处理任务的编码属性满足与编码时延对应的预设条件。
在一些实施例中,上述图像处理任务的预设条件、预设编码复杂度、预设编码质量、或者预设编码时延中的任一种,可以是云服务器和终端设备协商的,也可以是预定义的,还可以是云服务器指定的,又或者是终端设备指定的,再或者是由终端设备的应用层指定的,本申请对此不做限制。
图9A~图9C为本申请实施例提供的一种视频处理协同装置的示意图,如图9A所示,该装置900包括:发送模块910、接收模块920和确定模块930,发送模块910用于向终端设备发送视频处理能力探测请求和视频分析能力探测请求;接收模块920用于接收终端设备响应于视频处理能力探测请求而反馈的视频处理能力信息,接收终端设备响应于视频分析能力探测请求而反馈的视频分析能力信息;确定模块930用于根据终端设备的视频处理能力确定目标视频处理协同配置,并根据终端设备的视频分析能力确定目标视频分析协同配置;其中,目标视频处理协同配置为将至少一个图像处理任务分配给终端设备或者云服务器的视频处理协同配置,或者为将至少一个图像处理任务协同分配给终端设备和云服务器的视频处理协同配置;目标视频分析协同配置为将至少一个图像分析任务分配给终端设备或者云服务器的视频分析协同配置,或者为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置。
在一些实施例中,确定模块930还用于:在终端设备针对至少一个图像分析任务具备完全视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给终端设备的视频分析协同配置;在终端设备针对至少一个图像分析任务具备局部视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置;在终端设备不具备视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给云服务器的视频分析协同配置。
在一些实施例中,确定模块930还用于:在终端设备针对至少一个图像分析任务具备完全视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给终端设备的视频分析协同配置;在终端设备针对至少一个图像分析任务不具备完全视频分析能力的情况下,则确定目标视频分析协同配置为将至少一个图像分析任务分配给云服务器的视频分析协同配置。
在一些实施例中,如图9B所示,该装置900还包括:判断模块940,用于判断终端设备是否满足执行图像分析任务的软硬件能力条件;在终端设备不满足具备执行图像分析任务的软硬件能力条件的情况下,则确定终端设备的视频分析能力不满足图像分析任务的要求;在终端设备满足具备执行图像分析任务的软硬件能力条件的情况下,则判断终端设备执行图像分析任务时所采用的图像分析算法是否满足至少一个图像分析任务对应的目标视频的性能要求;在图像分析算法不满足目标视频的性能要求的情况下,则确定终端设备的视频分析能力不满足图像分析任务的要求;在图像分析算法满足目标视频的性能要求的情况下,则确定终端设备的视频分析能力满足图像分析任务的要求。
在一些实施例中,判断模块940还用于:在图像分析算法所要处理的图像区域为预设区域,以及图像分析频率为预设分析频率的情况下,当图像分析算法的性能满足目标视频的分辨率要求和帧率要求时,则确定图像分析算法满足目标视频的性能要求;若在图像分析算法所要处理的图像区域为预设区域,以及图像分析频率为预设分析频率的情况下,当图像分析算法的性能不满足目标视频的分辨率要求或帧率要求时,则确定图像分析算法不满足目标视频的性能要求。
在一些实施例中,在确定模块930确定目标视频分析协同配置为将至少一个图像分析任务分配给终端设备的视频分析协同配置的情况下,则发送模块910还用于:向终端设 备发送第一图像分析任务的标识和第一指示信息;其中,第一图像分析任务是分配给终端设备的图像分析任务,第一指示信息用于指示终端设备对至少一个图像分析任务进行图像分析。
在一些实施例中,在确定模块930确定目标视频分析协同配置为将至少一个图像分析任务协同分配给终端设备和云服务器的视频分析协同配置的情况下,则发送模块910还用于:向终端设备发送第二图像分析任务的标识和第二指示信息;其中,第二图像分析任务是至少一个图像分析任务中需要分配给终端设备的图像分析任务,第二指示信息用于指示终端设备对第二图像分析任务进行图像分析。
在一些实施例中,如图9C所示,该装置900还包括:获取模块950,用于获取至少一个图像分析任务的编码属性;相应地,确定模块930还用于:根据至少一个图像分析任务的编码属性和终端设备的视频分析能力,确定目标视频分析协同配置。
在一些实施例中,确定模块930还用于:在根据至少一个图像分析任务的编码属性,确定至少一个图像分析任务中存在需要分配给云服务器的图像分析任务的情况下,则将需要分配给云服务器的图像分析任务分配给云服务器,并判断至少一个图像分析任务中除需要分配给云服务器的图像分析任务之外是否存在剩余图像分析任务;在至少一个图像分析任务中存在剩余图像分析任务的情况下,根据终端设备的视频分析能力信息,针对剩余图像分析任务确定目标视频分析协同配置;在根据至少一个图像分析任务的编码属性,确定至少一个图像分析任务中不存在需要分配给云服务器的图像分析任务的情况下,则根据终端设备的视频分析能力信息,确定目标视频分析协同配置。
在一些实施例中,确定模块930还用于:将所述至少一个图像分析任务中编码属性满足预设条件的图像分析任务,确定为需要分配给云服务器的图像分析任务。
在一些实施例中,编码属性为以下任一项:编码复杂度、编码质量、或者编码时延。
在一些实施例中,编码属性包括编码复杂度;确定模块930还用于:判断图像分析任务的编码复杂度是否达到预设编码复杂度,在达到的情况下,确定所述图像分析任务的编码属性满足与编码复杂度对应的预设条件。
在一些实施例中,编码属性包括编码质量;确定模块930还用于:判断图像分析任务的编码质量是否达到预设编码质量,在达到的情况下,确定图像分析任务的编码属性满足与编码质量对应的预设条件。
在一些实施例中,编码属性包括编码时延;确定模块930还用于:判断图像分析任务的编码时延是否达到预设编码时延,在达到的情况下,确定图像分析任务的编码属性满足与编码时延对应的预设条件。
在一些实施例中,每个图像分析任务用于辅助以下至少一项:云服务器的图像编码、云服务器的图像处理、终端设备的图像处理。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。具体地,图9A~图9C所示的装置可以执行上述方法实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现上述各个方法中的相应流程。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集 成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。在一些实施例中,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图10是本申请实施例提供的电子设备的示意性框图。
如图10所示,该电子设备可包括:
存储器1010和一或多个处理器1020,该存储器1010用于存储计算机程序,并将该程序代码传输给该一或多个处理器1020。换言之,该一或多个处理器1020可以从存储器1010中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该一或多个处理器1020可用于根据该计算机程序中的指令执行上述方法实施例。
在本申请的一些实施例中,该处理器1020可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器1010包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器1010中,并由该处理器1020执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备中的执行过程。
如图10所示,该电子设备还可包括:
收发器1030,该收发器1030可连接至该处理器1020或存储器1010。
其中,处理器1020可以控制该收发器1030与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器1030可以包括发射机和接收机。收发器1030还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备中的各个组件通过总线系统相连,其中,总线系统除包括数 据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被计算机执行时使得处理器能够实现上述方法实施例的方法。
本申请实施例还提供一种包含计算机可读指令的计算机程序产品,该计算机可读指令被处理器执行时实现上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、云服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、云服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的云服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。