视频处理方法、装置、计算机设备、存储介质及程序产品
文献发布时间:2024-01-17 01:18:42
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频处理方法、装置、计算机设备、存储介质及程序产品。
背景技术
随着新媒体技术的发展,视频成为越来越主流的信息交流方式,并且对视频处理技术的要求也越来越高。
以视频处理技术为视频编解码技术为例,在实际应用中,高分辨率视频已逐渐成为主流,其包含的像素往往是原先视频的数十倍,因此,对大量视频数据进行快速编解码处理成为目前亟待解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种视频处理方法、装置、计算机设备、存储介质及程序产品,能够快速对视频数据进行编解码处理。
第一方面,本申请实施例提供了一种视频处理方法,该方法包括:
根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器;
通过视频处理工具调用各目标图形处理器,以对目标视频数据进行并行处理,得到目标视频数据的处理结果;视频处理工具为在并行运算平台内编译后的工具。
本申请实施例中的技术方案,根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器,通过视频处理工具调用各目标图形处理器,以对目标视频数据进行并行处理,得到目标视频数据的处理结果;采用上述方法能够解决通过单处理器实现视频编解码处理会造成硬件算力不足的问题,该方法可以通过视频处理工具调用至少一个目标图形处理器,以对目标视频数据进行并行处理,从而提高了视频编解码处理的速度和效率;同时,该方法不需要人工参与,不仅可以提高视频编解码处理的准确性,还可以在极大程度上提高视频编解码处理的速度;另外,该方法对目标视频数据的总数据量不做限制,从而可以提高视频编解码处理方法的广泛适用性。
在其中一个实施例中,上述基本信息包括目标视频数据的总数据量;根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器,包括:
根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块;
根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器。
本申请实施例中的技术方案,根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块,根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器;上述方法根据目标视频数据的总数据量和各图形处理器的存储属性,从多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器,从而获取到数量比较饱和的一个或多个目标图形处理器,通过获取到的这些目标图形处理器不仅可以提高后续视频编解码处理的速度,还不会造成后续视频编解码处理时占用的处理内存浪费。
在其中一个实施例中,根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块,包括:
若目标视频数据的总数据量大于各图形处理器的存储属性,则根据各图形处理器的存储属性,对目标视频数据进行分割,得到多个目标视频数据块。
本申请实施例中的技术方案,在目标视频数据的总数据量大于各图形处理器的存储属性时,根据各图形处理器的存储属性对目标视频数据进行分割,得到多个目标视频数据块;该方法可以将目标视频数据分割成适合各目标图形处理器并行处理的多个目标视频数据块,以为后续各目标图形处理器对目标视频数据快速处理做准备。
在其中一个实施例中,根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器,包括:
若多个目标视频数据块的总数量大于或等于多个图形处理器的总数量,则将各图形处理器均确定为目标图形处理器;
若多个目标视频数据块的总数量小于多个图形处理器的总数量,则从多个图形处理器中选取多个目标视频数据块的总数量个图形处理器确定各目标图形处理器。
本申请实施例中的技术方案,在确定多个目标视频数据块的总数量大于或等于多个图形处理器的总数量时,将各图形处理器均确定为目标图形处理器,在确定多个目标视频数据块的总数量小于多个图形处理器的总数量时,从多个图形处理器中选取多个目标视频数据块的总数量个图形处理器确定各目标图形处理器;上述方法可以根据分割获取到的多个目标视频数据块的总数量和预先配置的多个图形处理器的总数量,从多个图形处理器中确定目标图形处理器,使得通过确定的目标图形处理器不仅可以对目标视频数据进行并行编解码处理,还可以在并行编解码处理的同时不会浪费处理内存,能够极大程度上加快视频编解码处理的速度。
在其中一个实施例中,对目标视频数据进行并行处理,得到目标视频数据的处理结果,包括:
对于目标视频数据中的任一目标视频数据块,按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块;资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略;
对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果;
根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果。
本申请实施例中的技术方案,对于目标视频数据中的任一目标视频数据块,按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块。其中,资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略,对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果,根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果;该方法可以在对目标视频数据进行分割的基础上,对分割得到的各目标视频数据块进行二次分配,以使得各目标图形处理器对各目标视频数据块也能够进行并行处理,从而可以极大程度上缩短视频编解码处理的处理时长,提高视频编解码处理的速度和效率;同时,该方法不需要复杂的算法就可以实现资源二次分配,从而还可以减少资源分配的数据处理量;另外,该方法可以对不同格式的目标视频数据进行并行处理,从而可以提高视频编解码处理的使用场景,提高视频编解码处理的广泛适用性;再者,该方法可以持续通过图形处理器中的计算单元对不同的待处理数据块进行编解码处理,可以提高图形处理器能够被持续调度的能力,从而提高业务处理速度。
在其中一个实施例中,根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果,包括:
根据所有待处理数据块对应的处理结果,对目标视频数据处理的完整性进行校验;
若校验通过,则对各待处理数据块的处理结果进行融合处理,得到目标视频数据的候选处理结果;
根据候选处理结果进行视频质量检测;
若视频质量检测结果满足预设的视频质量要求,则将候选处理结果确定为目标视频数据的处理结果。
本申请实施例中的技术方案,根据所有待处理数据块对应的处理结果,对目标视频数据处理的完整性进行校验,在完整性校验通过时,对各待处理数据块的处理结果进行融合处理得到目标视频数据的候选处理结果,并根据候选处理结果进行视频质量检测,在确定视频质量检测结果满足预设的视频质量要求时,将候选处理结果确定为目标视频数据的处理结果;该方法可以对处理结果进行完整性校验,以确保获取到目标视频数据对应的所有处理结果,提高视频解码处理结果的准确性,并且还可以对融合处理结果进行视频质量检测,以对视频质量要求进行校验,使得最终获取到的目标视频数据的处理结果为用户所需要的视频解码处理结果,从而可以提高用户体验,进一步提高视频编解码处理的广泛适用性。
在其中一个实施例中,上述方法还包括:
检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及图形处理器的内存纠错模式是否为关闭状态;
若是,则执行根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器的步骤。
本申请实施例中的技术方案,检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及图形处理器的内存纠错模式是否为关闭状态,在确定计算机设备的超线程模式和图形处理器的使能模式均为开启状态且图形处理器的内存纠错模式为关闭状态时,开始执行根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器的步骤;该方法可以在视频数据处理前,检测计算机设备和计算机设备中的图形处理器的参数是否均达到最优配置,在计算机设备和计算机设备中的图形处理器的参数达到最优配置后,再开始执行视频数据处理的过程,这样能够全面提升视频编解码处理的性能。
第二方面,本申请实施例提供了一种视频处理方法,该方法包括:
确定模块,用于根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器;
调用模块,用于通过视频处理工具调用各目标图形处理器,以对目标视频数据进行并行处理,得到目标视频数据的处理结果;视频处理工具为在并行运算平台内编译后的工具。
第三方面,本申请实施例还提供了一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面中任一实施例的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面中任一实施例的方法的步骤。
第五方面,本申请实施例还提供了一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一实施例的方法的步骤。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
图1为一个实施例中视频处理方法的应用环境图;
图2为一个实施例中视频处理方法的流程示意图;
图3为另一个实施例中视频处理方法的流程示意图;
图4为另一个实施例中视频处理方法的流程示意图;
图5为另一个实施例中视频处理方法的流程示意图;
图6为另一个实施例中视频处理方法的流程示意图;
图7为一个实施例中视频处理装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在视频处理领域,对视频处理技术的要求也越来越高。以视频处理技术为视频编解码技术为例,在实际应用中,高分辨率视频已逐渐成为主流,其包含的像素往往是原先视频的数十倍,在相关技术中,主要是通过单处理器对这类视频数据进行编码处理或解码处理。但是,由于这类视频数据量较大,从而会导致视频编解码处理的速度较慢。基于此,本申请实施例提供了一种视频处理方法,能够快速对视频数据进行编解码处理。
本申请实施例提供的视频处理方法,该方法可以适用于图1所示的视频处理系统,该视频处理系统可以包括拍摄设备和计算机设备,拍摄设备和计算机设备之间为通信连接,该通信方式可以为蓝牙、Wi-Fi、移动网络连接等等。可选地,拍摄设备可以为手机、相机或摄像头等等能够拍摄视频电子设备,图1是以拍摄设备为手机为例示意的;上述计算机设备可以用独立的服务器或者是多个服务器组成的服务器集群来实现,该服务器可以包括中央处理器(Central Processing Unit,CPU)和多个图形处理器(Graphic ProcessingUnit,GPU)。
另外,上述视频处理系统还可以仅包括计算机设备,该情况下,计算机设备可以为能够拍摄视频,并且内置CPU和多个GPU的各种个人计算机、笔记本电脑、电子手机和平板电脑等电子设备(附图未示出该情况下的视频处理系统)。可选地,GPU可以为任意类型,但在本申请实施例中,上述GPU可以为NVIDIA GPU。本申请实施例对计算机设备的具体形式不做限定。
下述实施例中将具体介绍视频处理方法的具体过程,并且以执行主体为计算机设备中的处理器来介绍视频处理方法的具体过程。如图2所示,为本申请实施例提供的视频处理方法的流程示意图,该方法可以通过以下步骤实现:
S100、根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器。
具体地,计算机设备中的中央处理器可以获取目标视频数据,并根据目标视频数据的基本信息,从计算机设备中预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器。
可选地,目标视频数据可以为拍摄设备或计算机设备拍摄的一段任意类型的视频对应的视频数据,还可以为计算机设备或第三方设备从网页下载的一段任意类型的视频对应的视频数据,对此本申请实施例不做限定。可选地,第三方设备可以为能够上网下载视频的电子设备,与计算机设备的类型可以相同,也可以不相同。上述目标视频数据的基本信息可以为目标视频数据的格式(如avi、wmv、mpeg、mp4、m4v、mov、asf、flv、rmvb等等)、目标视频数据的生成时间和目标视频数据的识别结果等等。
其中,计算机设备中预先配置的各图形处理器的配置信息均是相同的,对应地,各图形处理器的功能是相同的。在本申请实施例中,预先配置的多个图形处理器中的任一个图形处理器均可以作为目标图形处理器。
在本申请实施例中,通过一个或多个目标图形处理器可以对目标视频数据进行编码处理或解码处理,以提高视频编解码处理的速度。
S200、通过视频处理工具调用各目标图形处理器,以对目标视频数据进行并行处理,得到目标视频数据的处理结果。其中,视频处理工具为在并行运算平台内编译后的工具。
在实际应用中,中央处理器可以通过视频处理工具调用上述步骤确定的所有目标图形处理器,以通过调用的所有目标图形处理器对目标视频数据进行并行处理,得到目标视频数据的处理结果。
这里需要说明的是,中央处理器可以执行视频处理架构以完成视频的编码处理或解码处理过程;视频处理架构可以通过并行运算平台(Compute Unified DeviceArchitecture,CUDA)和视频处理工具联合编译实现,具体地,CUDA中嵌套视频处理工具,视频处理工具可以提供多个应用程序编程接口(Application Programming Interface,API),多个API可以调用所有目标图形处理器,以让所有目标图形处理器对目标视频数据进行处理。
可选地,CUDA的版本信息本申请实施例不做限定,可以为11.5版本,还可以为其它版本。其中,CUDA可以是在NVIDIA官网上下载得到。
在本申请实施例中,上述视频处理工具可以理解为一个开源的编解码框架(如FFmpeg)。其中,根据目标视频数据的具体处理操作,对应地,目标视频数据的处理结果可以为目标视频数据的编码处理结果,还可以为目标视频数据的解码处理结果。
本申请实施例中的技术方案,根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器,通过视频处理工具调用各目标图形处理器,以对目标视频数据进行并行处理,得到目标视频数据的处理结果;采用上述方法能够解决通过单处理器实现视频编解码处理会造成硬件算力不足的问题,该方法可以通过视频处理工具调用至少一个目标图形处理器,以对目标视频数据进行并行处理,从而提高了视频编解码处理的速度和效率;同时,该方法不需要人工参与,不仅可以提高视频编解码处理的准确性,还可以在极大程度上提高视频编解码处理的速度;另外,该方法对目标视频数据的总数据量不做限制,从而可以提高视频编解码处理方法的广泛适用性。
在一些场景中,由于不同视频数据的总数据量各不相同,基于此,为了提高视频编解码处理的速度,并减少视频编解码处理所需的处理内存,可以从预先配置的多个图形处理器中确定处理视频数据所需的一个或多个目标图形处理器,下面对确定处理目标视频数据的至少一个目标图形处理器的过程进行说明。在一实施例中,上述基本信息包括目标视频数据的总数据量;如图3所示,上述S100中根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器的步骤,可以通过以下方式实现:
S110、根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块。
具体地,中央处理器可以获取目标视频数据的总数据量,然后根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块。在本申请实施例中,计算机设备中预先配置的各图形处理器的存储属性相同。可选地,图形处理器的存储属性可以为图形处理器的全局内存大小、本地内存大小和/或常量内存大小等等。
其中,根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块的方式可以是预先训练一种算法模型,然后将目标视频数据的总数据量和任一个图形处理器的存储属性均输入至算法模型中,该算法模型输出目标视频数据对应的多个目标视频数据块。
另外,根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块的方式还可以是在映射关系中查找与目标视频数据的总数据量和任一个图形处理器的存储属性分别对应的视频数据和图形处理器的存储属性,将映射关系中查找到的视频数据和存储属性对应的多个视频数据块确定多个目标视频数据块。可选地,映射关系中可以包括视频数据、图形处理器的存储属性、视频数据对应的多个视频数据块以及三者之间的对应关系。
可选地,目标视频数据可以包括多个目标视频数据块,每个目标视频数据块中的数据量可以相同,也可以不相同,对此本申请实施例不做限定。
S120、根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器。
其中,中央处理器可以获取多个目标视频数据块的总数量,并从多个图形处理器中获取与多个目标视频数据块的总数量相同数量个图形处理器确定为多个目标图形处理器,还可以从多个图形处理器中获取小于多个目标视频数据块的总数量个图形处理器确定为多个目标图形处理器。
示例性地,若目标视频数据中目标视频数据块的总数量为5,且预先配置的多个图形处理器是8个,则从8个图形处理器中可以确定任意5个图形处理器为5个目标图形处理器;若目标视频数据中目标视频数据块的总数量为10,且预先配置的多个图形处理器是8个,则从8个图形处理器中可以确定8个图形处理器均为目标图形处理器。
本申请实施例中的技术方案,根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块,根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器;上述方法根据目标视频数据的总数据量和各图形处理器的存储属性,从多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器,从而获取到数量比较饱和的一个或多个目标图形处理器,通过获取到的这些目标图形处理器不仅可以提高后续视频编解码处理的速度,还不会造成后续视频编解码处理时占用的处理内存浪费。
在一实施例中,上述S110中根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块的步骤,可以包括:若目标视频数据的总数据量大于各图形处理器的存储属性,则根据各图形处理器的存储属性,对目标视频数据进行分割,得到多个目标视频数据块。
具体地,中央处理器可以判断目标视频数据的总数量是否大于任一个图形处理器的存储属性,若确定目标视频数据的总数据量大于任一个图形处理器的存储属性时,根据任一个图形处理器的存储属性对目标视频数据进行分割得到多个目标视频数据块。
可选地,每个目标视频数据块的总数据量可以等于任一个图形处理器的存储属性,还可以小于任一个图形处理器的存储属性。示例性地,若任一个图形处理器的存储属性为30,目标视频数据的总数据量为120,则可以将目标视频数据分割成4个30的目标视频数据块;若任一个图形处理器的存储属性为30,目标视频数据的总数据量为110,则可以将目标视频数据分割成3个30的目标视频数据块和1个20的目标视频数据块。
这里需要说明的是,在对目标视频数据进行分割时,可以按照任一个图形处理器的存储属性,从目标视频数据中分割出一个或多个目标视频数据块,若分割的过程中剩余目标视频数据的总数量小于任一个图形处理器的存储属性时,将剩余目标视频数据也可以作为一个目标视频数据块。
本申请实施例中的技术方案,在目标视频数据的总数据量大于各图形处理器的存储属性时,根据各图形处理器的存储属性对目标视频数据进行分割,得到多个目标视频数据块;该方法可以将目标视频数据分割成适合各目标图形处理器并行处理的多个目标视频数据块,以为后续各目标图形处理器对目标视频数据快速处理做准备。
下面对上述根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器的过程进行说明。在一实施例中,上述S120中的步骤,可以包括:若多个目标视频数据块的总数量大于或等于多个图形处理器的总数量,则将各图形处理器均确定为目标图形处理器;或者,若多个目标视频数据块的总数量小于多个图形处理器的总数量,则从多个图形处理器中选取多个目标视频数据块的总数量个图形处理器确定各目标图形处理器。
具体地,在目标视频数据的总数据量较大的情况下,可以通过计算机设备中预先配置的所有图形处理器来对目标视频数据进行并行处理,以提高视频编解码处理的速度,对应地,中央处理器可以获取所有目标视频数据块的总数量,判断所有目标视频数据块的总数量是否大于或等于预先配置的多个图形处理器的总数量,若确定所有目标视频数据块的总数量大于或等于预先配置的多个图形处理器的总数量时,将预先配置的多个图形处理器均确定为目标图形处理器。
同时,在目标视频数据的总数据量较小的情况下,可以通过计算机设备中预先配置的部分图形处理器来对目标视频数据进行并行处理,以提高视频编解码处理的速度,并且尽可能的减小后续视频编解码处理时占用的处理内存浪费,对应地,中央处理器可以获取所有目标视频数据块的总数量,判断所有目标视频数据块的总数量是否小于预先配置的多个图形处理器的总数量,若确定所有目标视频数据块的总数量小于预先配置的多个图形处理器的总数量时,从预先配置的多个图形处理器中选取与多个目标视频数据块的总数量相同数量个图形处理器,并将选取的所有图形处理器均确定为目标图形处理器。
本申请实施例中的技术方案,在确定多个目标视频数据块的总数量大于或等于多个图形处理器的总数量时,将各图形处理器均确定为目标图形处理器,在确定多个目标视频数据块的总数量小于多个图形处理器的总数量时,从多个图形处理器中选取多个目标视频数据块的总数量个图形处理器确定各目标图形处理器;上述方法可以根据分割获取到的多个目标视频数据块的总数量和预先配置的多个图形处理器的总数量,从多个图形处理器中确定目标图形处理器,使得通过确定的目标图形处理器不仅可以对目标视频数据进行并行编解码处理,还可以在并行编解码处理的同时不会浪费处理内存,能够极大程度上加快视频编解码处理的速度。
在实际应用中,为了提高视频编解码处理的速度,需要通过确定的各目标图形处理器对目标视频数据进行并行处理,下面对目标视频数据进行并行处理的过程进行说明。在一实施例中,如图4所示,上述S200中对目标视频数据进行并行处理,得到目标视频数据的处理结果的步骤,可以通过以下方式实现:
S210、对于目标视频数据中的任一目标视频数据块,按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块。其中,资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略。
在实际应用中,各目标图形处理器对目标视频数据进行处理可以理解为各目标图形处理器对目标视频数据中的任一目标视频数据块进行处理的过程。因此,中央处理器通过视频处理工具调用各目标图形处理器,任一目标图形处理器对于目标视频数据中的任一目标视频数据块,可以按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块。
可选地,资源分配策略可以为数据均分策略,还可以为满足预设分配条件的分配策略等等,在本申请实施例中,资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略。可选地,目标图形处理器内计算单元的属性信息可以包括目标图形处理器内计算单元的总数量和各计算单元的存储属性。在本申请实施例中,计算单元的存储属性可以为共享内存大小或L1缓存大小,其中,各计算单元的共享内存大小均是相同的,并且各计算单元的L1缓存大小也是相同的。
这里需要说明的是,按照资源分类策略分配后得到的各待处理数据块是满足对应计算单元能够快速编码处理或快速解码处理的数据量。可选地,分配得到的所有待处理数据块的总数量可以大于或等于目标图形处理器内计算单元的总数量,并且各待处理数据块的总数量可以小于目标图形处理器内任一计算单元的存储属性。
在本申请实施例中,中央处理器可以通过调用CUDA中的计算函数(如Blockdim函数)确定目标图形处理器中各计算单元的存储属性,然后根据目标图形处理器内计算单元的总数量和各计算单元的存储属性确定资源分配策略,然后调用CUDA中的计算函数(如CudaMelloc函数)按照资源分配策略对目标视频数据块进行分配。
S220、对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果。
基于任一目标图形处理器分配后得到的各待处理数据块,目标图形处理器中的各计算单元可以分别对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果。
在实际应用中,若分配得到的所有待处理数据块的总数量等于目标图形处理器内计算单元的总数量时,目标图形处理器内的各计算单元可以对各待处理数据块进行并行编码处理或并行解码处理;若分配得到的所有待处理数据块的总数量大于目标图形处理器内计算单元的总数量时,目标图形处理器内的所有计算单元可以先对所有待处理数据块中的部分待处理数据块进行并行编码处理或并行解码处理,然后通过部分计算单元或所有计算单元对剩余待处理数据块进行并行编码处理或并行解码处理。
可选地,部分待处理数据块与剩余待处理数据块之和等于所有待处理数据块;部分待处理数据块的总数量可以等于目标图形处理器内所有计算单元的总数量,剩余待处理数据块的总数量可以小于、等于或大于目标图形处理器内所有计算单元的总数量。
这里需要说明的是,若剩余待处理数据块的总数量小于或等于目标图形处理器内所有计算单元的总数量时,在目标图形处理器内所有计算单元对部分待处理数据块进行并行编码处理或并行解码处理后,可以继续通过目标图形处理器内的部分计算单元或所有计算单元对剩余待处理数据块进行并行编码处理或并行解码处理;若剩余待处理数据块的总数量大于目标图形处理器内所有计算单元的总数量时,目标图形处理器内的所有计算单元可以多次执行并行编码处理或并行解码处理,以完成对剩余待处理数据块进行并行编码处理或并行解码处理的过程,该情况下可以理解为对所有待处理数据块按照队列的方式进行并行编码处理或并行解码处理的过程。
在实际应用中,目标图形处理器中各计算单元可以按照待处理数据块的数据格式调用对应的编码器(NVIDIA Encoder)对各待处理数据块进行并行编码处理,同时,目标图形处理器中各计算单元还可以按照待处理数据块的数据格式调用对应的解码器(NVIDIADecoder)对各待处理数据块进行并行解码处理。
可选地,不同编码器可以对不同格式的视频数据进行编码处理,自然地,计算单元可以按照待处理数据块的数据格式调用对应的编码器对待处理数据块进行编码处理。同时,不同解码器可以对不同格式的视频数据进行解码处理,自然地,计算单元可以按照待处理数据块的数据格式调用对应的解码器对待处理数据块进行解码处理。
S230、根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果。
具体地,中央处理器可以接收各目标图形处理器发送的对应待处理数据块对应的处理结果,然后将所有待处理数据块对应的处理结果进行组合,得到目标视频数据的处理结果。
另外,中央处理器接收各目标图形处理器发送的对应待处理数据块对应的处理结果后,还可以对所有待处理数据块对应的处理结果进行处理,然后根据处理结果确定将所有待处理数据块对应的处理结果进行组合,得到目标视频数据的处理结果。
本申请实施例中的技术方案,对于目标视频数据中的任一目标视频数据块,按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块。其中,资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略,对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果,根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果;该方法可以在对目标视频数据进行分割的基础上,对分割得到的各目标视频数据块进行二次分配,以使得各目标图形处理器对各目标视频数据块也能够进行并行处理,从而可以极大程度上缩短视频编解码处理的处理时长,提高视频编解码处理的速度和效率;同时,该方法不需要复杂的算法就可以实现资源二次分配,从而还可以减少资源分配的数据处理量;另外,该方法可以对不同格式的目标视频数据进行并行处理,从而可以提高视频编解码处理的使用场景,提高视频编解码处理的广泛适用性;再者,该方法可以持续通过图形处理器中的计算单元对不同的待处理数据块进行编解码处理,可以提高图形处理器能够被持续调度的能力,从而提高业务处理速度。
下面对上述根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果的过程进行说明。在一实施例中,如图5所示,上述S230中的步骤,可以通过以下方式实现:
S231、根据所有待处理数据块对应的处理结果,对目标视频数据处理的完整性进行校验。
在实际应用中,多个目标图形处理器中可以包括一个主目标图形处理器和至少一个从目标图形处理器,多个目标图形处理器中的任一个目标图形处理器可以为主目标图形处理器,多个目标图形处理器中除主目标图形处理器以外的其它目标图形处理器均可以为从目标图形处理器。
具体地,主目标图形处理器可以获取各从目标图形处理器对所有目标视频数据块进行分配后得到的所有待处理数据块的总数量,然后判断接收到的所有处理结果的总数量是否等于所有待处理数据块的总数量,以完成对目标视频数据处理的完整性进行校验,其中,若所有处理结果的总数量等于所有待处理数据块的总数量时,确定目标视频数据处理的完整性校验通过,若所有处理结果的总数量不等于所有待处理数据块的总数量时,确定目标视频数据处理的完整性校验不通过。
在实际应用中,中央处理器对目标视频数据进行分割时可以得到携带数据标识的各目标视频数据块,并且对目标视频数据块进行分配时也可以得到携带数据标识的各待处理数据块。这里需要说明的是,待处理数据块中的数据标识与该待处理数据块对应的处理结果中的数据标识相同,自然地,主目标图形处理器接收到各从目标图形处理器发送的各待处理数据块对应的处理结果和自身得到的各待处理数据块对应的处理结果后,可以获取所有处理结果中携带的数据标识,然后检测所有处理结果中携带的数据标识中是否有匹配的各待处理数据块中携带的数据标识,以完成对目标视频数据处理的完整性进行校验,其中,若所有待处理数据块中携带的数据标识均能匹配成功,则确定目标视频数据处理的完整性校验通过。
在本申请实施例中,上述目标视频数据处理的完整性校验通过可以理解为目标视频数据中的所有数据均已完成编码处理或解码处理。
S232、若校验通过,则对各待处理数据块的处理结果进行融合处理,得到目标视频数据的候选处理结果。
其中,若确定对目标视频数据处理的完整性校验通过,则确定已经获取到了目标视频数据中所有待处理数据块对应的处理结果,此时,主目标图形处理器可以按照处理结果中携带的数据标识,按照待处理数据块在目标视频数据中的排列位置,对各待处理数据块的处理结果进行融合处理,得到目标视频数据的候选处理结果。
S233、根据候选处理结果进行视频质量检测。
基于前文步骤获取到的目标视频数据的候选处理结果,对候选处理结果进行视频质量检测,得到视频质量检测结果。在本申请实施例中,视频质量检测结果可以为卡顿率的值或帧率的值,在本申请实施例中,视频质量检测结果为峰值信噪比的值。
例如,对候选处理结果进行视频质量检测的方式可以是预先训练一种视频质量检测模型,然后将目标视频数据的候选处理结果输入至视频质量检测模型中,该视频质量检测模型输出视频质量检测结果。
可选地,视频质量检测模型可以是由卷积神经网络模型、空间金字塔池化网络模型、深信度网络模型、深度自动编码器、生成对抗网络模型和递归神经网络模型等等中的至少一个组合而成,对此本申请实施例不做限定。
S234、若视频质量检测结果满足预设的视频质量要求,则将候选处理结果确定为目标视频数据的处理结果。
若获取到的视频质量检测结果满足预设的视频质量要求时,主目标图形处理器可以将候选处理结果确定为目标视频数据的处理结果。另外,若视频质量检测结果不满足预设的视频质量要求时,可以通过各目标图形处理器对目标视频数据重新进行并行处理,以使得获取到的目标视频数据的候选处理结果对应的视频质量检测结果满足预设的视频质量要求为止,将候选处理结果确定为目标视频数据的处理结果,并将目标视频数据的处理结果发送给中央处理器。
本申请实施例中的技术方案,根据所有待处理数据块对应的处理结果,对目标视频数据处理的完整性进行校验,在完整性校验通过时,对各待处理数据块的处理结果进行融合处理得到目标视频数据的候选处理结果,并根据候选处理结果进行视频质量检测,在确定视频质量检测结果满足预设的视频质量要求时,将候选处理结果确定为目标视频数据的处理结果;该方法可以对处理结果进行完整性校验,以确保获取到目标视频数据对应的所有处理结果,提高视频解码处理结果的准确性,并且还可以对融合处理结果进行视频质量检测,以对视频质量要求进行校验,使得最终获取到的目标视频数据的处理结果为用户所需要的视频解码处理结果,从而可以提高用户体验,进一步提高视频编解码处理的广泛适用性。
在一些场景中,为了提高中央处理器对视频编解码处理的性能,可以对计算机设备和计算机设备中的图形处理器做一些参数配置,以使计算机设备中的处理器在执行视频处理的过程中,性能达到最佳。基于此,在一实施例中,在执行上述S100中的步骤之前,如图6所示,上述方法还可以包括:
S300、检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及图形处理器的内存纠错模式是否为关闭状态。
具体地,中央处理器可以检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及检测图形处理器的内存纠错模式是否为关闭状态。
这里需要说明的是,计算机设备的超线程模式开启时,计算机设备可以释放更多的虚拟核心,此时,计算机设备内中央处理器可调用的核心数量越多,可并发线程的数量越多,对应地,中央处理器的性能越好。
在实际应用中,可以通过NVIDIA监控管理工具设置图形处理器的使能模式为开启状态,保证目标图形处理器不会进入节能模式,一直处于最佳性能状态。
同时,图形处理器的内存纠错模式关闭时,可以提高不同图形处理器之间的数据传输速度,从而可以提升视频编解码处理的性能。
S400、若是,则执行根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器的步骤。
其中,在确定计算机设备的超线程模式和图形处理器的使能模式均为开启状态且图形处理器的内存纠错模式为关闭状态时,表明计算机设备和计算机设备中的图形处理器的参数达到了最优配置,此时,可以开始执行上述S100中的步骤。
本申请实施例中的技术方案,检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及图形处理器的内存纠错模式是否为关闭状态,在确定计算机设备的超线程模式和图形处理器的使能模式均为开启状态,且图形处理器的内存纠错模式为关闭状态时,开始执行根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器的步骤;该方法可以在视频数据处理前,检测计算机设备和计算机设备中的图形处理器的参数是否均达到最优配置,在计算机设备和计算机设备中的图形处理器的参数达到最优配置后,再开始执行视频数据处理的过程,这样能够全面提升视频编解码处理的性能。
一种实施例中,本申请实施例还提供一种视频处理方法,该方法包括以下过程:
(1)检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及图形处理器的内存纠错模式是否为关闭状态。
(2)若是,则判断目标视频数据的总数据量是否大于各图形处理器的存储属性。
(3)若目标视频数据的总数据量大于各图形处理器的存储属性时,根据各图形处理器的存储属性,对目标视频数据进行分割,得到多个目标视频数据块。
(4)若多个目标视频数据块的总数量大于或等于多个图形处理器的总数量,则将各图形处理器均确定为目标图形处理器;或者,若多个目标视频数据块的总数量小于多个图形处理器的总数量,则从多个图形处理器中选取多个目标视频数据块的总数量个图形处理器确定各目标图形处理器。
(5)通过视频处理工具调用各目标图形处理器,以对于目标视频数据中的任一目标视频数据块,按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块;资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略。
(6)对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果。
(7)根据所有待处理数据块对应的处理结果,对目标视频数据处理的完整性进行校验。
(8)若校验通过,则对各待处理数据块的处理结果进行融合处理,得到目标视频数据的候选处理结果。
(9)根据候选处理结果进行视频质量检测。
(10)若视频质量检测结果满足预设的视频质量要求,则将候选处理结果确定为目标视频数据的处理结果;视频处理工具为在并行运算平台内编译后的工具。
以上(1)至(10)的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的视频处理方法的视频处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视频处理装置实施例中的具体限定可以参见上文中对于视频处理方法的限定,在此不再赘述。
在一个实施例中,图7为本申请一个实施例中视频处理装置的结构示意图。如图7所示,本申请实施例的视频处理装置,可以包括:确定模块11和调用模块12,其中:
确定模块11,用于根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器;
调用模块12,用于通过视频处理工具调用各目标图形处理器,以对目标视频数据进行并行处理,得到目标视频数据的处理结果;视频处理工具为在并行运算平台内编译后的工具。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在其中一个实施例中,基本信息包括目标视频数据的总数据量;确定模块11包括:数据块获取单元和第一确定单元,其中:
数据块获取单元,用于根据目标视频数据的总数据量和各图形处理器的存储属性,从目标视频数据中获取多个目标视频数据块;
第一确定单元,用于根据多个目标视频数据块的总数量,从多个图形处理器中确定各目标图形处理器。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在其中一个实施例中,数据块获取单元具体用于:
若目标视频数据的总数据量大于各图形处理器的存储属性,则根据各图形处理器的存储属性,对目标视频数据进行分割,得到多个目标视频数据块。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在其中一个实施例中,第一确定单元具体用于:
若多个目标视频数据块的总数量大于或等于多个图形处理器的总数量,则将各图形处理器均确定为目标图形处理器;
若多个目标视频数据块的总数量小于多个图形处理器的总数量,则从多个图形处理器中选取多个目标视频数据块的总数量个图形处理器确定各目标图形处理器。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在其中一个实施例中,调用模块12包括:分配单元、处理单元和第二确定单元,其中:
分配单元,用于对于目标视频数据中的任一目标视频数据块,按照资源分配策略对目标视频数据块进行分配,得到多个待处理数据块;资源分配策略是根据目标视频数据块对应的目标图形处理器内计算单元的属性信息确定的数据分配策略;
处理单元,用于对各待处理数据块进行编码处理或解码处理,得到各待处理数据块对应的处理结果;
第二确定单元,用于根据获取到的所有待处理数据块对应的处理结果,确定目标视频数据的处理结果。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在其中一个实施例中,第二确定单元包括:校验子单元、融合处理子单元、质量检测子单元和确定子单元,其中:
校验子单元,用于根据所有待处理数据块对应的处理结果,对目标视频数据处理的完整性进行校验;
融合处理子单元,用于在校验子单元的校验结果为校验通过时,对各待处理数据块的处理结果进行融合处理,得到目标视频数据的候选处理结果;
质量检测子单元,用于根据候选处理结果进行视频质量检测;
确定子单元,用于在视频质量检测结果满足预设的视频质量要求时,将候选处理结果确定为目标视频数据的处理结果。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在其中一个实施例中,视频处理装置包括:状态检测模块和执行确定模块,其中:
状态检测模块,用于检测计算机设备的超线程模式和图形处理器的使能模式是否均为开启状态,以及图形处理器的内存纠错模式是否为关闭状态;
执行确定模块,用于在状态检测模块的检测结果为是,则执行根据目标视频数据的基本信息,从预先配置的多个图形处理器中确定处理目标视频数据的至少一个目标图形处理器的步骤。
本申请实施例提供的视频处理装置可以用于执行本申请上述视频处理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
关于视频处理装置的具体限定可以参见上文中对于视频处理方法的限定,在此不再赘述。上述视频处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,该处理器包括CPU和多个GPU。其中,该计算机设备的处理器用于提供处理能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标视频数据。该计算机设备的网络接口用于与外部的终点通过网络连接通信。该计算机程序被处理器执行时以实现一种视频处理方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现本申请上述数据修复方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本申请上述视频处理方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请上述视频处理方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 视频处理方法、装置、计算机设备和存储介质
- 应用程序处理方法和装置、电子设备、计算机可读存储介质
- 图像处理方法和装置、电子设备、存储介质、程序产品
- 图像处理方法和装置、电子设备、存储介质、程序产品
- 图像处理方法和装置、电子设备、存储介质、程序产品
- 视频处理方法、装置及计算机设备、存储介质、程序产品
- 音视频数据处理方法、装置、设备、存储介质及计算机程序产品