CN111246214A - 一种视频解码方法、装置 - Google Patents

一种视频解码方法、装置 Download PDF

Info

Publication number
CN111246214A
CN111246214A CN201811432794.3A CN201811432794A CN111246214A CN 111246214 A CN111246214 A CN 111246214A CN 201811432794 A CN201811432794 A CN 201811432794A CN 111246214 A CN111246214 A CN 111246214A
Authority
CN
China
Prior art keywords
decoding
video
decoded
gpu
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811432794.3A
Other languages
English (en)
Other versions
CN111246214B (zh
Inventor
俞枭辰
辛安民
王玉龙
刘晟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201811432794.3A priority Critical patent/CN111246214B/zh
Publication of CN111246214A publication Critical patent/CN111246214A/zh
Application granted granted Critical
Publication of CN111246214B publication Critical patent/CN111246214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例提供了一种视频解码组件方法、装置。其中,方法应用于具有GPU的电子设备,所述电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置,方法包括:获取所述电子设备的GPU的型号;基于所述型号,确定所述GPU所支持的解码配置;从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件;利用所述目标解码组件解码待解码视频。可以使得用户在不熟悉电子设备的软硬件环境的前提下,便捷地确定出适合该电子设备的目标解码组件,提高了确定视频解码组件的效率。

Description

一种视频解码方法、装置
技术领域
本申请涉及视频编解码技术领域,特别是涉及一种视频解码方法、装置。
背景技术
视频解码技术被广泛地应用于多媒体领域,如实时监控、网络直播、视频播放、视频智能分析等。而伴随着多媒体领域的技术发展,视频的分辨率日趋提高,导致视频解码所需要的计算量上升。而CPU受制于自身的串行处理模式,计算性能有限,当视频解码所需要的计算量较大时,CPU无法实现或者需要花费较长时间才能实现视频解码。为了提高视频解码效率,可以利用并行计算能力强大的GPU对视频进行解码。
GPU解码缺乏统一的标准,一个解码程序可能无法适用于不同的软硬件环境。因此每次面对新的电子设备,用户可能需要首先熟悉该电子设备的软硬件环境,再选择适合于该软硬件环境的解码程序,以对该电子设备中的待解码视频进行解码,效率较低。
发明内容
本申请实施例的目的在于提供一种视频解码方法、装置,以实现在不需要熟悉电子设备的软硬件条件的前提下,自动利用合适的解码组件对待解码视频进行解码,提高了解码效率。具体技术方案如下:
在本申请实施例的第一方面,提供了一种视频解码方法,应用于具有GPU的电子设备中,所述电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置,所述方法包括:
获取所述电子设备的GPU的型号;
基于所述型号,确定所述GPU所支持的解码配置;
从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件;
利用所述目标解码组件解码待解码视频。
结合第一方面,在第一种可能的实现方式中,所述基于所述型号,确定所述GPU所支持的解码配置,包括:
基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型;
所述从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件,包括:
从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件,所述筛选条件为:所对应的输入格式为所述GPU所支持的输入格式,并且所对应的解码模式为所述GPU所支持的解码模式,并且所对应的输出类型为所述GPU所支持的输出类型的解码组件,作为目标解码组件。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型之后,所述方法还包括:
显示所述GPU所支持的输入格式、解码模式以及输出类型;
获取针对所述GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令;
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,如果所述目标解码组件所对应的解码模式为MSDK模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频,所述DX9显存为能够被DX9访问的显存,所述DX11显存为能够被DX11访问的显存;
在所述利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用MSDK接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,如果所述目标组件所对应的解码模式为DXVA模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频,所述DX9显存为DX9能够直接访问的显存;
在所述利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,通过所述电子设备的CPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
结合第一方面的第一种可能的实现方式,在第五种可能的实现方式中,如果所述目标组件所对应的解码模式为CUVID模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频,所述原始显存为能够被CUDA访问的显存;
所述利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至DX9显存或者DX11显存后,输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
在本申请实施例的第二方面,提供了一种视频解码装置,应用于具有GPU的电子设备中,所述电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置,所述装置包括:
GPU探测模块,用于获取电子设备的GPU的型号;
能力确定模块,基于所述型号,确定所述GPU所支持的解码配置;
解码模块,用于从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件;并利用所述目标解码组件解码待解码视频。
结合第二方面,在第一种可能的实现方式中,所述能力确定模块,具体用于基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型;
所述解码模块,具体用于从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件,所述筛选条件为:所对应的输入格式为所述GPU所支持的输入格式,并且所对应的解码模式为所述GPU所支持的解码模式,并且所对应的输出类型为所述GPU所支持的输出类型的解码组件,作为目标解码组件。
结合第二方面的第一种可能实现方式,在第二种可能的实现方式中,所述解码模块,还用于在所述基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型之后,显示所述GPU所支持的输入格式、解码模式以及输出类型;
获取针对所述GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令;
所述筛选条件为:所对应的输入格式为所述选择指令所针对的输入格式,并且对应的解码模式为所述选择指令所针对的解码模式,并且对应的输出类型为所述选择指令所针对的输出类型。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述解码模块,具体用于如果所述目标解码组件所对应的解码模式为MSDK模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频,所述DX9显存为能够被DX9访问的显存,所述DX11显存为能够被DX11访问的显存;
在所述利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用MSDK接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述解码模块,具体用于如果所述目标组件所对应的解码模式为DXVA模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频,所述DX9显存为DX9能够直接访问的显存;
在所述利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,通过所述电子设备的CPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
结合第二方面的第一种可能的实现方式,在第五种可能的实现方式中,所述解码模块,具体用于,如果所述目标组件所对应的解码模式为CUVID模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频,所述原始显存为能够被CUDA访问的显存;
所述利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至DX9显存或者DX11显存后,输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
在本申请实施例的第三方面,提供了一种电子设备,所述电子设备包括存储器、处理器、GPU以及多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现上述任一所述的视频解码方法步骤。
在本申请实施例的第四方面,提供了一种计算机可读存储介质,应用于具有GPU的电子设备,所述电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的视频解码方法。
本申请实施例提供的视频解码方法、装置及电子设备,由于目标解码组件的解码配置为GPU所支持的解码配置,因此所确定的目标解码组件适用于该电子设备的GPU,使得用户可以在不熟悉电子设备的软硬件环境的前提下,便捷地确定出适合该电子设备的目标解码组件,并利用目标解码组件对待解码视频进行解码,提高了视频解码的效率。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的视频解码方法的一种流程示意图;
图2为本申请实施例提供的视频解码方法的另一种流程示意图;
图3为本申请实施例提供的配置窗口的一种布局示意图;
图4为本申请实施例提供的视频解码方法的另一种流程示意图;
图5为本申请实施例提供的视频解码装置的一种结构示意图;
图6为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1所示为本申请实施例提供的视频解码方法的一种流程示意图,该方法应用于具有GPU的电子设备,GPU用于对电子设备中的待解码视频进行硬解码。该电子设备中包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,解码配置用于对该解码组件所实现的解码流程进行配置,示例性的,解码配置可以用于对解码组件使用何种解码模式进行解码进行配置,方法可以包括:
S101,获取电子设备的GPU的型号。
以操作电子设备所运行的操作系统为windows,可以是通过Direct 9(以下称DX9)的API(Application Programming Interface,应用程序编程接口)获取电子设备的GPU的个数,并进而确定每个GPU的型号。
S102,基于型号,确定GPU所支持的解码配置。
如果电子设备只具有一个GPU,则GPU所支持的解码配置是指这一个GPU所支持的解码配置,如果电子设备同时具有多个GPU,则GPU所支持的解码配置是指这多个GPU各自所支持的解码配置的并集,示例性的,假设电子设备包括第一GPU和第二GPU,并且第一GPU所支持的解码配置为配置A、配置B,第二GPU所支持的解码配置为配置B、配置C,则该电子设备中GPU所支持的解码配置为配置A、配置B以及配置C。
在本实施例中,解码配置可以包括输入格式、解码模式以及输出类型,在其他可选的实施例中,根据实际需求,也可以包括该其他与解码相关的配置参数。其中,一个GPU所支持的输入格式是指该GPU所能够解码何种视频编码格式的视频,示例性的一些GPU能够解码H.264格式的视频,则这些GPU所支持的输入格式为H.264,另外一些GPU能够解码H.264格式和H.265格式的视频,则这些GPU所支持的输入格式为H.264和H.265。
所支持的解码模式是指该GPU能够以何种模式进行视频解码,以该电子设备的操作系统为Windows系统为例,如果该GPU为美国超威半导体公司(Advanced Micro DevicesInc,以下称AMD公司)生产的,则该GPU可能能够运行DXVA(DirectX Video Acceleration,视频硬件加速)实例,即该GPU所支持的解码模式为DXVA,如果该GPU为英伟达公司(NVIDIACorporation,以下称NVIDIA公司)生产的,则该GPU可能能够运行DXVA实例和CUVID实例,即该GPU所支持的解码模式为DXVA和CUVID。如果该GPU为英特尔公司(Intel Corporation,以下称Intel公司)生产的,则该GPU可能能够运行DXVA实例和MSDK实例,即该GPU所支持的解码模式为DXVA和MSDK。其中,CUVID为NVIDIA公司针对NVIDIA公司所生产的GPU开发的GPU编解码SDK(Software Development Kit,软件开发包),MSDK为Intel公司针对Intel公司所生产的GPU的开发的GPU编解码SDK。
所支持的输出类型,是指该GPU能够以何种类型输出解码后的视频,由于不同操作系统相同功能的接口或程序的名称不同,为讨论方便,下面将以Windows操作系统为例进行示例性的说明,对于其他操作系统仅是所使用的接口或程序不同,原理是一致的。如果GPU所支持的解码模式包括DXVA,由于DXVA属于DX9的附属组件,因此解码后的视频可以是直接以DX9渲染的类型输出(以下称DX9输出),也可以是将解码后的视频拷贝到CPU后以内存的类型输出(以下称CPU输出),即该GPU所支持的输出类型包括DX9输出和CPU输出。如果GPU所支持的解码模式包括CUVID,由于CUVID是基于CUDA(Compute Unified DecviceArchitecfure,统一计算设备架构)平台开发的,因此可以是直接以CUDA显存的类型输出(以下称CUDA输出),也可以是将解码后的视频拷贝至DX9显存并渲染后DX9输出,或者,将解码后的视频拷贝至Direct 11(以下称DX11)显存并渲染后,以DX11渲染的类型输出(以下称DX11输出),还可以是CPU输出,即该GPU所支持的输出类型包括CUDA输出、DX9输出、DX11输出、CPU输出。如果该GPU所支持的解码模式包括MSDK,则该GPU所支持的输出类型包括DX9输出、DX11输出、CPU输出。
进一步的,上述只是本申请实施例提供的一种输出类型的划分方法,在其他实施例中也可以根据实际需求选用其他方式进行划分。示例性,可以按照输出过程中解码后的视频是否需要拷贝,将输出类型划分为零拷贝输出和非零拷贝输出。其中,零拷贝输出是指在输出过程中不需要对解码后的视频进行拷贝,示例性的,由于DXVA为DX9的组件,因此解码模式为DXVA时,DX9输出为零拷贝输出,CPU输出为非零拷贝输出。又例如,由于CUVID是基于CUDA平台开发的,因此解码模式为CUVID时,CUDA输出为零拷贝输出,DX9输出、DX11输出以及CPU输出为非零拷贝输出。又例如,MSDK可以将视频解码至DX9显存中,也可以是将视频解码至DX11显存中,因此当解码模式为MSDK时,DX9输出和DX11输出可以为零拷贝输出,CPU输出为非零拷贝输出。可以理解的是,零拷贝输出由于不需要对视频进行拷贝,因此输出效率较高,但是由于不能拷贝至CPU或者其他渲染器的显存中,因此对解码后的视频能够进行的处理较少,导致输出的视频适用性较差。
在本申请实施例中,可以预先针对各种型号的GPU,通过查阅相应的官方说明书或者测验的方式,确定该GPU所支持的解码配置,并存储于预设表格中,该表格用于记录各种型号的GPU所支持的解码配置。基于电子设备中GPU的型号,确定GPU所支持的解码配置,可以是基于获取到的电子设备中GPU的型号,在该表格中查询该型号的GPU所支持的解码配置。GPU的型号可以包括该GPU的生产厂家和核心号,例如型号为NVIDIA Telsa K80的GPU,生产厂家为NVIDIA公司,核心号为GK210的。可以是首先获取GPU的生产厂家,并基于生产厂家查询该GPU所支持的解码配置,如果无法根据生产厂家确定该GPU所支持的解码配置,则可以进一步获取GPU的核心号并基于核心号查询,以确定该GPU所支持的解码配置。示例性的,对于AMD公司生产的GPU,由于仅支持H.264格式,因此可以直接基于生产厂家确定该GPU所支持的输入格式为H.264。对于NVIDIA公司或者Intel公司生产的GPU,由于这两家生产的GPU部分仅支持H.264格式,部分同时支持H.264格式和H.265格式,因此仅基于生产厂家无法确定该GPU所支持的输入格式,需要进一步基于核心号确定该GPU所支持的输入格式。在一种可选的实施例中,上述的表格可以如下表所示:
Figure BDA0001883004100000091
Figure BDA0001883004100000101
该表只是一种可能的示意表格,在其他实施例中也可以是其他样式的表格,并且还可以以表格之外的其他形式(如函数、文本文档)表示型号与所支持的解码配置之间的对应关系。
S103,从多个解码组件中筛选出所对应的解码配置为GPU所支持的解码配置的解码组件,作为目标解码组件。
以解码配置包括输入格式、解码模式以及输出类型为例,解码配置为GPU所支持的解码配置的解码组件,是指该解码组件所配置的输入格式为GPU所支持的输入格式,该解码组件所配置的解码模式为GPU所支持的解码模式,该解码组件所配置的输出类型为GPU所支持的输出类型。
在电子设备所包括的所有解码组件中,可能存在多个解码组件,均满足解码配置为GPU所支持的解码配置,在这种情况下,可以是随机选取其中一个解码组件作为目标解码组件,也可以是按照预设规则从中选取一个解码组件作为目标解码组件,例如选取其中预设优先级最高的解码组件作为目标解码组件。
假设解码配置包括输入格式、解码模式以及输出类型,则在一种可选的实施例中,可以是由电子设备按照预设的选取规则选取一种输入格式、一种解码模式、一种输出类型。示例性的,用户预先根据实际经验针对每种解码模式设置有优先级,如DXVA的优先级为1,MSDK的优先级为2,CUVID的优先级为3,电子设备从所支持的解码模式中选取优先级最高的解码模式。并从所支持的输入格式以及输出类型中随机选取该解码模式能够支持的输入格式以及输出类型。在其他实施例中,也可以是根据用户输入的选择指令,从所支持的输入格式、解码模式以及输出类型中选择该选择指令所指定的一种输入格式、一种解码模式、一种输出类型。
可以理解的是,在一些应用场景中,多个预设的解码组件中可能不存在解码配置为GPU所支持的解码配置的解码组件,可能是因为多个预设的解码组件所覆盖的解码组件有限,如果预设的多种解码组件所覆盖的解码组件越广,则多个预设的解码组件中不存在解码配置为GPU所支持的解码配置的解码组件的概率越低,在本申请实施例中,可以提供如下18种预设的解码组件:
解码组件1,用于实现以下流程:对接收到的H.265格式的待解码视频,利用MSDK模式将待解码视频解码至DX9显存中,得到解码视频,并输出该解码视频,以供DX9对解码视频进行DX9渲染。
解码组件2,用于实现以下流程:对接收到的H.265格式的待解码视频,利用MSDK模式将待解码视频解码至DX9显存中,得到解码视频,再调用MSDK接口,通过GPU将解码视频从DX9显存拷贝至电子设备的内存中,并输出该解码视频,以供CPU根据实际需求进行后续处理。
解码组件3,用于实现以下流程:对接收到的H.265格式的待解码视频,利用MSDK模式将待解码视频解码至DX11显存中,得到解码视频,并输出该解码视频,以供DX11对解码视频进行DX11渲染。
解码组件4,用于实现以下流程:对接收到的H.265格式的待解码视频,利用MSDK模式将待解码视频解码至DX9显存中,得到解码视频,再调用MSDK接口,通过GPU将解码视频从DX9显存拷贝至电子设备的内存中,并输出该解码视频,以供CPU根据实际需求进行后续处理。
解码组件5,用于实现以下流程:对接收到的H.264格式的待解码视频,利用MSDK模式将待解码视频解码至DX9显存中,得到解码视频,并输出该解码视频,以供DX9对解码视频进行DX9渲染。
解码组件6,用于实现以下流程:对接收到的H.264格式的待解码视频,利用MSDK模式将待解码视频解码至DX9显存中,得到解码视频,再调用MSDK接口,通过GPU将解码视频从DX9显存拷贝至电子设备的内存中,并输出该解码视频,以供CPU根据实际需求进行后续处理。
解码组件7,用于实现以下流程:对接收到的H.264格式的待解码视频,利用MSDK模式将待解码视频解码至DX11显存中,得到解码视频,并输出该解码视频,以供DX11对解码视频进行DX11渲染。
解码组件8,用于实现以下流程:对接收到的H.264格式的待解码视频,利用MSDK模式将待解码视频解码至DX9显存中,得到解码视频,再调用MSDK接口,通过GPU将解码视频从DX9显存拷贝至电子设备的内存中,并输出该解码视频,以供CPU根据实际需求进行后续处理。
解码组件9,用于实现以下流程:对接收到的H.264格式的待解码视频,利用DXVA模式将待解码视频解码至DX9显存中,得到解码视频,并输出该解码视频,以供DX9对解码视频进行DX9渲染。
解码组件10,用于实现以下流程:对接收到的H.264格式的待解码视频,利用DXVA模式将待解码视频解码至DX9显存中,得到解码视频,再CPU将解码视频从DX9显存拷贝至电子设备的内存中,并输出该解码视频,以供CPU根据实际需求进行后续处理。
解码组件11,用于实现以下流程:对接收到的H.265格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,并输出该解码视频,以供运行于CUDA的智能分析软件根据实际需求,对解码视频进行智能分析。
解码组件12,用于实现以下流程:对接收到的H.265格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,再调用CUVID接口,通过GPU将解码视频从原始显存拷贝至DX9显存中,并输出该解码视频,以供DX9对解码视频进行DX9渲染。
解码组件13,用于实现以下流程:对接收到的H.265格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,再调用CUVID接口,通过GPU将解码视频从原始显存拷贝至DX11显存中,并输出该解码视频,以供DX11对解码视频进行DX11渲染。
解码组件14,用于实现以下流程:对接收到的H.265格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,并输出该解码视频,以供运行于CUDA的智能分析软件根据实际需求,对解码视频进行智能分析。
解码组件15,用于实现以下流程:对接收到的H.264格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,再调用CUVID接口,通过GPU将解码视频从原始显存拷贝至DX9显存中,并输出该解码视频,以供DX9对解码视频进行DX9渲染。
解码组件16,用于实现以下流程:对接收到的H.264格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,再调用CUVID接口,通过GPU将解码视频从原始显存拷贝至DX9显存中,并输出该解码视频,以供DX9对解码视频进行DX9渲染。
解码组件17,用于实现以下流程:对接收到的H.264格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,再调用CUVID接口,通过GPU将解码视频从原始显存拷贝至DX11显存中,并输出该解码视频,以供DX11对解码视频进行DX11渲染。
解码组件18,用于实现以下流程:对接收到的H.264格式的待解码视频,利用CUVID模式将待解码视频解码至原始显存中,得到解码视频,再调用CUVID接口,通过GPU将解码视频从原始显存拷贝至电子设备的内存中,并输出该解码视频,以供CPU根据实际需求进行后续处理。
其中,DX9显存为能够被DX9访问的显存,DX11显存为能够被DX11访问的显存,原始显存为能够被CUDA访问的显存。上述18种解码组件基本覆盖了NVIDIA公司、AMD公司以及Intel公司生产的GPU所能够支持的解码组件。并且针对每种解码模式,提供了多个输出类型不同的解码组件,这些解码组件中同时包括了零拷贝解码组件和非零拷贝方案,可以满足用户在不同应用场景下的不同需求。示例性的,以DXVA为例,提供了解码组件9、解码组件10,其中解码组件9为零拷贝解码组件,更适用于对解码效率要求较高的应用场景,解码组件10为非零拷贝解码组件,更适用于对需要灵活输出解码后的视频的应用场景。
S104,利用目标解码组件解码待解码视频。
按照目标解码组件所实现的解码流程,对待解码视频进行解码。关于目标解码组件所实行的解码流程,可以参见上述18种示例性的解码组件所实现的解码流程,在此不再赘述。
选用该实施例,由于目标解码组件的解码配置为GPU所支持的解码配置,因此所确定的目标解码组件适用于该电子设备的GPU,使得用户可以在不熟悉电子设备的软硬件环境的前提下,便捷地确定出适合该电子设备的目标解码组件,提高了确定视频解码组件的效率。
参见图2,图2所示为本申请实施例提供的视频解码方法的另一种流程示意图,可以包括:
S201,获取电子设备的GPU的型号。
该步骤与S101相同,可以参见前述关于S101的描述,在此不再赘述。
S202,基于型号,确定GPU所支持的输入格式、解码模式以及输出类型。
关于输入格式、解码模式以及输出类型,可以参见前述关于S101中的相关描述,在此不再赘述。
S203,显示GPU所支持的输入格式、解码模式以及输出类型。
示例性的,可以是在电子设备的显示屏上以预设的展示形式(如图片、文本、表格)向用户展示GPU所支持的输入格式、解码模式以及输出类型。
S204,获取针对GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令。
可以是一个选择指令同时针对一种输入格式、一种解码模式、一种输出类型。也可以是三个选择指令,其中一个选择指令针对一种输入格式,一个选择指令针对一种解码模式,一个选择指令针对一种输出类型。示例性的,假设S202中是以表格的形式向用户展示GPU所支持的输入格式、解码模式以及输出类型,则接收到用户在该表格上针对一种输入格式、一种解码模式、一种输出类型的勾选指令,示例性的可以参见图3,其中每个输入格式、解码模式以及输出类型后面均存在一个勾选框,用户可以通过点击该勾选框进行勾选,以输入选择操作指令。
S205,从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件。
其中,筛选条件为所对应的输入格式为选择指令所针对的输入格式,并且所对应的解码模式为选择指令所针对的解码模式,并且所对应的输出类型为选择指令所针对的输出类型。
S206,利用目标解码组件解码待解码视频。
该步骤与S104相同,可以参见S104中的相关描述,在此不再赘述。
选用该实施例,可以使得能够根据实际需求,从GPU所支持的输入格式、解码模式以及输出类型中,选取合适的输入格式、解码模式、输出类型,进而筛选出用户所需要的解码组件,同时由于GPU所支持的输入格式、解码模式以及输出类型是通过电子设备中的GPU的型号确定得到的,因此该实施例仍然不需要用户熟悉电子设备的软硬件环境。
参见图4,图4所示为本申请实施例提供的视频解码方法的另一种流程示意图,可以包括:
S401,获取电子设备的GPU的型号。
该步骤与S101相同,可以参见前述关于S101的描述,在此不再赘述。
S402,基于型号,确定GPU所支持的解码配置。
该步骤与S102相同,可以参见前述关于S102的描述,在此不再赘述。
S403,确定多个预设的解码组件中是否存在解码配置为GPU所支持的解码配置的解码组件,如果多个预设的解码组件中存在解码配置为GPU所支持的解码配置的解码组件,执行S403,如果多个预设的解码组件中不存在解码配置为GPU所支持的解码配置的解码组件,执行S406。
S404,从多个解码组件中筛选出所对应的解码配置为GPU所支持的解码配置的解码组件,作为目标解码组件。
该步骤与S103相同,可以参见前述关于S103的描述,在此不再赘述。
S405,利用目标解码组件解码待解码视频。
该步骤与S104相同,可以参见前述关于S104的描述,在此不再赘述。
S406,确定多个预设的解码组件中不存在适用于该GPU的解码组件。
在一种可选的实施例中,在确定多个预设的解码组件中不存在适用于该GPU的解码组件后,可以是以预设的提醒形式(如报警声、弹窗)向用户反馈。
参见图5,图5所示为本申请实施例提供的视频解码装置的一种结构示意图,该装置应用于具有GPU的电子设备,电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,解码配置用于对该解码组件所实现的解码流程进行配置,装置包括:
GPU探测模块501,用于获取电子设备的GPU的型号;
能力确定模块502,基于型号,确定GPU所支持的解码配置;
解码模块503,用于从多个解码组件中筛选出所对应的解码配置为GPU所支持的解码配置的解码组件,作为目标解码组件;并利用目标解码组件解码待解码视频。
在一种可选的实施例中,能力确定模块502,具体用于基于型号,确定GPU所支持的输入格式、解码模式以及输出类型;
解码模块503,具体用于从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件,筛选条件为:所对应的输入格式为GPU所支持的输入格式,并且所对应的解码模式为GPU所支持的解码模式,并且所对应的输出类型为GPU所支持的输出类型的解码组件,作为目标解码组件。
在一种可选的实施例中,解码模块503,还用于在基于型号,确定GPU所支持的输入格式、解码模式以及输出类型之后,显示GPU所支持的输入格式、解码模式以及输出类型;
获取针对GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令;
筛选条件为:所对应的输入格式为选择指令所针对的输入格式,并且对应的解码模式为选择指令所针对的解码模式,并且对应的输出类型为选择指令所针对的输出类型。
在一种可选的实施例中,解码模块503,具体用于如果目标解码组件所对应的解码模式为MSDK模式,利用目标解码组件解码待解码视频,包括:
利用目标解码组件,通过MSDK模式将待解码视频解码至DX9显存或者DX11显存,得到解码视频,DX9显存为能够被DX9访问的显存,DX11显存为能够被DX11访问的显存;
在利用目标解码组件,通过MSDK模式将待解码视频解码至DX9显存或者DX11显存,得到解码视频之后,方法还包括:
输出解码视频;
或者,调用MSDK接口,通过GPU将解码视频拷贝至电子设备的内存后,输出解码视频。
在一种可选的实施例中,解码模块503,具体用于如果目标组件所对应的解码模式为DXVA模式,利用目标解码组件解码待解码视频,包括:
利用目标解码组件,通过DXVA模式将待解码视频解码至DX9显存,得到解码视频,DX9显存为DX9能够直接访问的显存;
在利用目标解码组件,通过DXVA模式将待解码视频解码至DX9显存,得到解码视频之后,方法还包括:
输出解码视频;
或者,通过电子设备的CPU将解码视频拷贝至电子设备的内存后,输出解码视频。
在一种可选的实施例中,解码模块503,具体用于,如果目标组件所对应的解码模式为CUVID模式,利用目标解码组件解码待解码视频,包括:
利用目标解码组件,通过CUVID模式将待解码视频解码至原始显存,得到解码视频,原始显存为能够被CUDA访问的显存;
利用目标解码组件,通过CUVID模式将待解码视频解码至原始显存,得到解码视频之后,方法还包括:
输出解码视频;
或者,调用CUVID接口,通过GPU将解码视频拷贝至DX9显存或者DX11显存后,输出解码视频;
或者,调用CUVID接口,通过GPU将解码视频拷贝至电子设备的内存后,输出解码视频。
本申请实施例还提供了一种电子设备,该电子设备具包括存储器601、处理器602以及GPU,该电子设备可以是内置GPU,也可以是外接有GPU:
存储器601,用于存放计算机程序;
处理器602,用于执行存储器601上所存放的程序时,实现如下步骤:
获取电子设备的GPU的型号;
基于型号,确定GPU所支持的解码配置;
从多个解码组件中筛选出所对应的解码配置为GPU所支持的解码配置的解码组件,作为目标解码组件;
利用目标解码组件解码待解码视频。
在一种可选的实施例中,基于型号,确定GPU所支持的解码配置,包括:
基于型号,确定GPU所支持的输入格式、解码模式以及输出类型;
从多个解码组件中筛选出所对应的解码配置为GPU所支持的解码配置的解码组件,作为目标解码组件,包括:
从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件,筛选条件为:所对应的输入格式为GPU所支持的输入格式,并且所对应的解码模式为GPU所支持的解码模式,并且所对应的输出类型为GPU所支持的输出类型的解码组件,作为目标解码组件。
在一种可选的实施例中,在基于型号,确定GPU所支持的输入格式、解码模式以及输出类型之后,方法还包括:
显示GPU所支持的输入格式、解码模式以及输出类型;
获取针对GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令;
筛选条件为:所对应的输入格式为选择指令所针对的输入格式,并且对应的解码模式为选择指令所针对的解码模式,并且对应的输出类型为选择指令所针对的输出类型。
在一种可选的实施例中,如果目标解码组件所对应的解码模式为MSDK模式,利用目标解码组件解码待解码视频,包括:
利用目标解码组件,通过MSDK模式将待解码视频解码至DX9显存或者DX11显存,得到解码视频,DX9显存为能够被DX9访问的显存,DX11显存为能够被DX11访问的显存;
在利用目标解码组件,通过MSDK模式将待解码视频解码至DX9显存或者DX11显存,得到解码视频之后,方法还包括:
输出解码视频;
或者,调用MSDK接口,通过GPU将解码视频拷贝至电子设备的内存后,输出解码视频。
在一种可选的实施例中,如果目标组件所对应的解码模式为DXVA模式,利用目标解码组件解码待解码视频,包括:
利用目标解码组件,通过DXVA模式将待解码视频解码至DX9显存,得到解码视频,DX9显存为DX9能够直接访问的显存;
在利用目标解码组件,通过DXVA模式将待解码视频解码至DX9显存,得到解码视频之后,方法还包括:
输出解码视频;
或者,通过电子设备的CPU将解码视频拷贝至电子设备的内存后,输出解码视频。
在一种可选的实施例中,如果目标组件所对应的解码模式为CUVID模式,利用目标解码组件解码待解码视频,包括:
利用目标解码组件,通过CUVID模式将待解码视频解码至原始显存,得到解码视频,原始显存为能够被CUDA访问的显存;
利用目标解码组件,通过CUVID模式将待解码视频解码至原始显存,得到解码视频之后,方法还包括:
输出解码视频;
或者,调用CUVID接口,通过GPU将解码视频拷贝至DX9显存或者DX11显存后,输出解码视频;
或者,调用CUVID接口,通过GPU将解码视频拷贝至电子设备的内存后,输出解码视频。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一视频解码方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一视频解码方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (12)

1.一种视频解码方法,其特征在于,应用于具有GPU的电子设备,所述电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置,所述方法包括:
获取所述电子设备的GPU的型号;
基于所述型号,确定所述GPU所支持的解码配置;
从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件;
利用所述目标解码组件解码待解码视频。
2.根据权利要求1所述的方法,其特征在于,所述基于所述型号,确定所述GPU所支持的解码配置,包括:
基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型;
所述从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件,包括:
从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件,所述筛选条件为:所对应的输入格式为所述GPU所支持的输入格式,并且所对应的解码模式为所述GPU所支持的解码模式,并且所对应的输出类型为所述GPU所支持的输出类型的解码组件,作为目标解码组件。
3.根据权利要求2所述的方法,其特征在于,在所述基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型之后,所述方法还包括:
显示所述GPU所支持的输入格式、解码模式以及输出类型;
获取针对所述GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令;
所述筛选条件为:所对应的输入格式为所述选择指令所针对的输入格式,并且对应的解码模式为所述选择指令所针对的解码模式,并且对应的输出类型为所述选择指令所针对的输出类型。
4.根据权利要求2所述的方法,其特征在于,如果所述目标解码组件所对应的解码模式为MSDK模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频,所述DX9显存为能够被DX9访问的显存,所述DX11显存为能够被DX11访问的显存;
在所述利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用MSDK接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
5.根据权利要求2所述的方法,其特征在于,如果所述目标组件所对应的解码模式为DXVA模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频,所述DX9显存为DX9能够直接访问的显存;
在所述利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,通过所述电子设备的CPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
6.根据权利要求2所述的方法,其特征在于,如果所述目标组件所对应的解码模式为CUVID模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频,所述原始显存为能够被CUDA访问的显存;
所述利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至DX9显存或者DX11显存后,输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
7.一种视频解码确定装置,其特征在于,应用于具有GPU的电子设备,所述电子设备包括多个解码组件,其中,每个解码组件为基于该解码组件所对应的解码配置生成的,用于实现一个解码流程,所述解码配置用于对该解码组件所实现的解码流程进行配置,所述装置包括:
GPU探测模块,用于获取电子设备的GPU的型号;
能力确定模块,基于所述型号,确定所述GPU所支持的解码配置;
解码模块,用于从所述多个解码组件中筛选出所对应的解码配置为所述GPU所支持的解码配置的解码组件,作为目标解码组件;并利用所述目标解码组件解码待解码视频。
8.根据权利要求7所述的装置,其特征在于,所述能力确定模块,具体用于基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型;
所述解码模块,具体用于从多个预设的解码组件中筛选出满足筛选条件的解码组件,作为目标解码组件,所述筛选条件为:所对应的输入格式为所述GPU所支持的输入格式,并且所对应的解码模式为所述GPU所支持的解码模式,并且所对应的输出类型为所述GPU所支持的输出类型的解码组件,作为目标解码组件。
9.根据权利要求8所述的装置,其特征在于,所述解码模块,还用于在所述基于所述型号,确定所述GPU所支持的输入格式、解码模式以及输出类型之后,显示所述GPU所支持的输入格式、解码模式以及输出类型;
获取针对所述GPU所支持的一种输入格式、一种解码模式以及一种输出类型输入的选择指令;
所述筛选条件为:所对应的输入格式为所述选择指令所针对的输入格式,并且对应的解码模式为所述选择指令所针对的解码模式,并且对应的输出类型为所述选择指令所针对的输出类型。
10.根据权利要求8所述的装置,其特征在于,所述解码模块,具体用于如果所述目标解码组件所对应的解码模式为MSDK模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频,所述DX9显存为能够被DX9访问的显存,所述DX11显存为能够被DX11访问的显存;
在所述利用所述目标解码组件,通过MSDK模式将所述待解码视频解码至DX9显存或者DX11显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用MSDK接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
11.根据权利要求8所述的装置,其特征在于,所述解码模块,具体用于如果所述目标组件所对应的解码模式为DXVA模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频,所述DX9显存为DX9能够直接访问的显存;
在所述利用所述目标解码组件,通过DXVA模式将所述待解码视频解码至DX9显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,通过所述电子设备的CPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
12.根据权利要求8所述的装置,其特征在于,所述解码模块,具体用于,如果所述目标组件所对应的解码模式为CUVID模式,所述利用所述目标解码组件解码待解码视频,包括:
利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频,所述原始显存为能够被CUDA访问的显存;
所述利用所述目标解码组件,通过CUVID模式将所述待解码视频解码至原始显存,得到解码视频之后,所述方法还包括:
输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至DX9显存或者DX11显存后,输出所述解码视频;
或者,调用CUVID接口,通过所述GPU将所述解码视频拷贝至所述电子设备的内存后,输出所述解码视频。
CN201811432794.3A 2018-11-28 2018-11-28 一种视频解码方法、装置 Active CN111246214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811432794.3A CN111246214B (zh) 2018-11-28 2018-11-28 一种视频解码方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811432794.3A CN111246214B (zh) 2018-11-28 2018-11-28 一种视频解码方法、装置

Publications (2)

Publication Number Publication Date
CN111246214A true CN111246214A (zh) 2020-06-05
CN111246214B CN111246214B (zh) 2022-05-06

Family

ID=70875715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811432794.3A Active CN111246214B (zh) 2018-11-28 2018-11-28 一种视频解码方法、装置

Country Status (1)

Country Link
CN (1) CN111246214B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143595A (zh) * 2021-12-08 2022-03-04 珠海豹趣科技有限公司 一种视频壁纸播放方法、装置、电子设备及可读存储介质
CN114598938A (zh) * 2022-03-30 2022-06-07 合肥高维数据技术有限公司 基于gpu的视频隐形水印嵌入方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103260021A (zh) * 2012-02-21 2013-08-21 腾讯科技(深圳)有限公司 一种视频解码方法和装置
CN105430408A (zh) * 2015-12-04 2016-03-23 武汉斗鱼网络科技有限公司 一种基于Intel、AMD和Nvidia三平台的H264硬件解码系统
CN105898315A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 视频转码方法和装置系统
CN106713937A (zh) * 2016-12-30 2017-05-24 广州虎牙信息科技有限公司 视频播放控制方法、装置及终端设备
KR20180022500A (ko) * 2016-08-24 2018-03-06 주식회사 포딕스시스템 트리플 디코더 및 디코딩 처리방법
CN108040258A (zh) * 2017-11-21 2018-05-15 北京臻迪科技股份有限公司 一种编码、解码方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103260021A (zh) * 2012-02-21 2013-08-21 腾讯科技(深圳)有限公司 一种视频解码方法和装置
CN105430408A (zh) * 2015-12-04 2016-03-23 武汉斗鱼网络科技有限公司 一种基于Intel、AMD和Nvidia三平台的H264硬件解码系统
CN105898315A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 视频转码方法和装置系统
KR20180022500A (ko) * 2016-08-24 2018-03-06 주식회사 포딕스시스템 트리플 디코더 및 디코딩 처리방법
CN106713937A (zh) * 2016-12-30 2017-05-24 广州虎牙信息科技有限公司 视频播放控制方法、装置及终端设备
CN108040258A (zh) * 2017-11-21 2018-05-15 北京臻迪科技股份有限公司 一种编码、解码方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QINJIAN LI等: "Implementation and Analysis of AES Encryption on GPU", 《2012 IEEE 14TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATION & 2012 IEEE 9TH INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE AND SYSTEMS》 *
唐咏: "基于DXVA和OpenCL的硬解码H.264技术的研究和实现", 《电脑知识与技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143595A (zh) * 2021-12-08 2022-03-04 珠海豹趣科技有限公司 一种视频壁纸播放方法、装置、电子设备及可读存储介质
CN114598938A (zh) * 2022-03-30 2022-06-07 合肥高维数据技术有限公司 基于gpu的视频隐形水印嵌入方法及系统

Also Published As

Publication number Publication date
CN111246214B (zh) 2022-05-06

Similar Documents

Publication Publication Date Title
US10448082B2 (en) Information exchanging method and device, audio terminal and computer-readable storage medium
US9183072B1 (en) Error troubleshooting using a correlated knowledge base
CN108495185B (zh) 一种视频标题生成方法和装置
US20130036196A1 (en) Method and system for publishing template-based content
CN110069459B (zh) 文件监控方法、装置和电子设备
CN105550101A (zh) 一种用于应用程序的测试方法、电子设备及系统
CN104268229A (zh) 一种基于多进程浏览器的资源获得方法及装置
CN111246214B (zh) 一种视频解码方法、装置
CN110688111A (zh) 业务流程的配置方法、装置、服务器和存储介质
US20200314162A1 (en) Techniques for modifying a rules engine in a highly-scaled computing environment
CN114021016A (zh) 数据推荐方法、装置、设备和存储介质
US10520929B2 (en) Techniques for implementing universal commands in a welding or cutting system
CN113157439B (zh) 一种资源统计方法、装置及终端
CN110201397B (zh) 一种游戏资源配置方法、装置及电子设备
CN111736825A (zh) 一种信息展示方法、装置、设备和存储介质
CN103631872A (zh) 一种多媒体文件播放方法及电子终端
CN113641873B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN112068895B (zh) 代码配置方法、装置、视频播放设备及存储介质
CN115269063A (zh) 进程创建方法、系统、设备及介质
US11501172B2 (en) Accurately identifying members of training data in variational autoencoders by reconstruction error
CN112584197B (zh) 互动剧故事线的绘制方法、装置、计算机介质及电子设备
CN113420790A (zh) 用于目标检测的自动标注方法和装置
CN111737784A (zh) 基于数字化三维的zxmp s385子架的板卡选型配置方法及设备
CN106844396B (zh) 一种信息处理方法及电子设备
CN112835494A (zh) 一种语音识别结果纠错方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant