CN113055681A - 视频解码显示方法,装置,电子设备及存储介质 - Google Patents
视频解码显示方法,装置,电子设备及存储介质 Download PDFInfo
- Publication number
- CN113055681A CN113055681A CN202110228874.2A CN202110228874A CN113055681A CN 113055681 A CN113055681 A CN 113055681A CN 202110228874 A CN202110228874 A CN 202110228874A CN 113055681 A CN113055681 A CN 113055681A
- Authority
- CN
- China
- Prior art keywords
- video data
- decoding
- hardware
- decoder
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例中提供了一种视频解码显示方法,装置,电子设备及存储介质,该视频解码显示方法包括:获取视频数据,通过Ffmpeg调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;从所述帧存地址中读取所述解码后的视频数据,并进行显示。通过图形处理器对视频数据进行解码显示,可有效提升视频解码显示效率并降低CPU的使用率。
Description
技术领域
本申请涉及计算机图形处理技术领域,具体地,涉及一种视频解码显示方法,装置,电子设备及存储介质。
背景技术
视频解码显示是图形处理器的基本功能,大部分播放器都是使用快进动态图像专家组(Fast forward moving picture experts group,Ffmpeg)解码框架,Ffmpeg解码框架是一套软件框架,不涉及图形处理器。在通过Ffmpeg解码框架进行解码时,解码速度慢,导致视频解码显示的效率低下,并且整个过程由中央处理器执行,也导致中央处理器的使用率较高。
发明内容
本申请实施例中提供了一种图形处理器以及视频解码显示方法,可以有效解决视频解码显示效率低下,以及中央处理器的使用率高的问题。
根据本申请实施例的第一个方面,提供了一种视频解码显示方法,该方法包括:获取视频数据;通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;从所述帧存地址中读取所述解码后的视频数据,并进行显示。
根据本申请实施例的第二个方面,提供了一种视频解码显示装置,该装置包括:视频数据获取模块,用于获取视频数据;解码模块,用于通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;地址获取模块,用于获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;显示模块,用于从所述帧存地址中读取所述解码后的视频数据,并进行显示。
根据本申请实施例的第三个方面,提供了一种电子设备,该电子设备包括一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如上述应用于电子设备的方法。
根据本申请实施例的第四个方面,本申请实施列提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
采用本申请实施例中提供的视频解码显示方法,获取视频数据,通过Ffmpeg调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;从所述帧存地址中读取所述解码后的视频数据,并进行显示。通过图形处理器对视频数据进行解码显示,可有效提升视频解码显示效率并降低中央处理器的使用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的图形处理器的结构框图;
图2为本申请一个实施例提供的视频解码显示方法的流程图;
图3为本申请另一个实施例提供的视频解码显示方法的流程图;
图4为本申请一个实施例提供的视频解码显示装置的功能模块图;
图5为本申请实施例提出的用于执行根据本申请实施例的视频解码显示方法的电子设备的结构框图。
具体实施方式
视频解码是图形处理器的基本功能,大部分的播放器都是使用快进动态图像专家组(Fast forward moving picture experts group,Ffmpeg)解码框架进行视频解码播放。Ffmpeg框架是一套软件框架,是软件解码,解码速度慢效率低,并且整个过程由中央处理器(Central Processing Unit,CPU)执行,使得CPU的使用率较高。
发明人在研究中发现,Ffmpeg解码框架下的解码器接口主要有三种:Ffmpeg软件解码接口AVCodec,英伟达公司的VDPAU接口,Intel公司的VAAPI接口,其中VDPAU和VAAPI为硬件解码器接口。
基于Ffmpeg框架,适配第三方解码库VDPAU或者VAAPI可以有效提升视频解码显示效率并降低CPU的使用率。当然若是可以基于Ffmpeg框架,在avcodec解码方式中,注入硬件解码器,即将Ffmpeg解码框架与图形处理器的硬件解码模块对接,使得播放器通过Ffmpeg最终调用硬件进行解码工作,可以加快提升视频解码显示的效率,并降低CPU的使用率。
针对上述问题,本申请实施例中提供了一种图形处理器以及视频解码显示方法,获取视频数据,通过Ffmpeg调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;从所述帧存地址中读取所述解码后的视频数据,并进行显示。通过图形处理器对视频数据进行解码显示,可有效提升视频解码显示效率并降低CPU的使用率。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参阅图1,示出了本申请一个实施例提供的图形处理器。图形处理器(GraphicsProcessing Unit,GPU)10包括硬件解码模块11,双倍速率同步动态随机存储器(DoubleData Rate Synchronous Dynamic Random Access Memory,DDR SDRAM)12以及显示模块13。
所述硬件解码模块12,用于对视频数据进行解码,并将解码后的所述视频数据存储在帧缓冲区中,即DDR SDRAM 12中,并输出所述解码后的视频数据在所述DDR SDRAM 12中的存储地址,即帧存地址。
所述显示模块13,用于根据所述帧存地址,从所述DDR SDRAM 12中读取所述解码后的视频数据,对所述解码后的视频数据进行预设处理,再将所述视频数据进行显示。
请参阅图2,本申请实施例提供了一种视频解码显示方法,可应用于电子设备,所述电子设备安装有GPU,可以是具有视频播放功能的智能手机,电脑等,具体的该方法可以包括以下步骤。
步骤110,获取视频数据。
电子设备中通常可以按照各种播放器,以实现视频播放功能,在进行视频播放时,通常需要获取对应的视频数据。这些视频数据可以是存储在系统内存中,因此,可以通过中央处理器(Central Processing Unit,CPU)读取系统内存,以获取视频数据。
步骤120,通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中。
在得到所述视频数据后,可以对所述视频数据进行解码,以得到解码后的数据。在对所述视频数据进行解码时,可以是通过快进动态图像专家组(Fast forward movingpicture experts group,Ffmpeg)调用图形处理器中的硬件解码模块,对所述视频数据进行解码。
其中,所述Ffmpeg为一套软件框架,该框架也可以对视频数据进行解码,但是通过Ffmpeg进行视频数据的解码时解码速度慢,效率低。因此,可以将所述Ffmpeg与图形处理器进行对接,实现通过Ffmpeg调用图形处理器中硬件解码模块,通过所述硬件解码模块对所述视频数据进行解码。
可以是编译的硬件解码库,所述硬件解码库包括硬件解码器,所述硬件解码器工作于图像处理中的硬件解码模块上;将所述硬件解码器注册到Ffmpeg的解码器列表;调用所述硬件解码器对所述视频数据进行解码,得到解码后的视频数据;将所述解码后的视频数据存储在图形处理器中的帧缓冲区中。
硬件解码库中的硬件解码器为工作在图形处理器的硬件解码模块上的,将该硬件解码器注册到Ffmpeg的解码器列表中,在需要对视频解码时,可以先对所述硬件解码库进行编译,与Ffmpeg软件库独立开,便于管理。编译后的硬件解码库存放在系统目录中,可以从系统目录中加载对应的硬件解码库,将所述硬件解码器注册到Ffmpeg的解码器列表上,从而可以在所述解码器列表中调用所述硬件解码器进行解码,即使用图形处理器对所述视频数据进行解码。
在使用所述图形处理器对所述视频数据进行解码后,可以将解码后的视频数据存储在图形处理器的帧缓冲区中。
步骤130,获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址。
在通过Ffmpeg调用图形处理器中的硬件解码模块对所述视频数据进行解码后,解码后的视频数据存放在图形处理器中的帧缓冲区中。所述图形处理器可以将帧存地址,即解码后的视频数据在帧缓冲区中的位置返回给Ffmpeg,从而可以获取到解码后的视频数据的帧存地址。
步骤140,从所述帧存地址中读取所述解码后的视频数据,并进行显示。
在获得所述帧存地址后,可以从所述帧存地址中读取所述解码后的视频数据,对所述视频数据进行显示。具体的,可以是调用图形处理器的显示模块,从所述帧存地址中读取解码后的视频数据,对所述解码后的视频数据进行预设处理,再进行显示。通常,若要显示所述视频数据,则需要将所述视频数据拷贝到显示帧存中,等待屏幕刷新将所述视频数据显示在显示屏幕上。因此,所述显示模块可以将预设处理后的视频数据拷贝到显示帧存中,等待屏幕刷新时,进行显示。
本申请实施例提供的视频解码显示方法,获取视频数据,通过Ffmpeg调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;从所述帧存地址中读取所述解码后的视频数据,并进行显示。通过图形处理器对视频数据进行解码显示,可有效提升视频解码显示效率并降低CPU的使用率。
请参阅图3,本申请实施例提供了一种视频解码显示方法,在前述实施例的基础上,重点描述了解码显示的过程,具体的该方法可以包括以下步骤。
步骤210,获取视频数据。
步骤210可参照前述实施例对应部分,在此不再赘述。
步骤220,编译硬件解码库,所述硬件解码库包括硬件解码器,所述硬件解码器工作于图形处理器中的硬件解码模块上。
硬件解码库中包括硬件解码器,在所述硬件解码库中的硬件解码器为工作在GPU的硬件解码模块上。具体的,所述硬件解码器以是AVCodec ff_h264_mwv_decoder以及AVCodec ff_mpeg4_mwv_decoder,当然,所述硬件解码器还可以是其他工作在GPU的硬件解码模块上的解码器,可以根据实际的需要进行设置,在此不做具体限定。
在Ffmpeg中,具有软件库,编译硬件解码库可以将硬件模块与Ffmpeg软件库独立开来,便于区分和管理。
步骤230,将所述硬件解码器注册到快进动态图像专家组的解码器列表。
在对所述硬件解码库进行编译之后,可以将所述硬件解码库中的硬件解码器注册到Ffmpeg的解码器列表,实现通过Ffmpeg调用所述硬件解码器。可以是利用解码器注册函数将所述硬件解码器注册到Ffmpeg的解码器列表。
具体的,可以是在ffmpeg开源代码allcodecs.c中解码器注册函数avcodec_register_all中将硬件解码库中的硬件解码器注册进Ffmpeg的解码器列表。从而前述两个硬件解码器均可以注册进Ffmpeg的解码器列表,以供后续使用。
步骤240,调用所述硬件解码器对所述视频数据进行解码,得到解码后的视频数据。
在电子设备上的应用程序需要对所述视频数据进行解码时,可以获取所述视频数据的码流格式。在此之前,可以对所述视频数据进行解复用。需要说明的是,视频数据一般情况下是将音视频的基本码流交织的通过某种规则放在一起,这种规则就是容器规则。解复用就是将音视频的基本码流从容器中剥离出来。视频数据通过解复用通常可以分为视频部分和音频部分,不同部分的数据需要不同的解码器进行解码。
在对所述视频数据解复用之后,可以获取到不同部分的视频数据对应的码流格式;根据所述码流格式确定对应的硬件解码器;利用确定的所述编码器将视频数据解码为YUV数据。
步骤250,将所述解码后的视频数据存储在图形处理器中的帧缓冲区中。
在将所述视频数据解码后,得到YVU数据,可以将所述YIV数据存储在图形处理器中的帧缓冲区中,即将YUV数据存储在DDR SDRAM中。
步骤260,获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址。
所述GPU的硬件解码模块在将所述视频数据解码为YUV数据之后,可以返回帧存地址给所述应用程序。也就是说,应用程序通过Ffmpeg调用GPU的硬件解码模块将视频数据解码为YUV数据之后,得到存储所述YUV数据的存储地址。
步骤270,从所述帧存地址中读取所述解码后的视频数据,并进行显示。
在得到所述YUV数据的帧存地址后,可以调用GPU的显示模块,根据所述帧存地址从所述DDR SDRAM中读取所述YUV数据;通过所述显示模块对所述YUV数据进行预设处理,并拷贝到显示帧存中进行显示。
在所述显示模块根据所述帧存地址读取到所述YUV数据时,可以对所述YUV数据进行预设处理。所述预设处理可以是颜色空间转换,缩放,旋转等处理。
在一些实施方式中,可以是将所述YUV数据转换为RGB数据,YUV数据和RGB数据都是图像,视频帧的数据格式。YUV中的Y,相当于灰度的“亮度”分量,UV为两个“色度”分量,其中U为蓝色投影,V为红色投影。
在一些实施方式中,可以是对所述YUV数据进行缩放,旋转等处理,以适配显示窗口的显示。具体的,可以是获取显示所述视频数据的显示区域的大小等参数,根据这些参数对所述YUV数据进行缩放,旋转处理。
通常,若要显示所述视频数据,则需要将所述视频数据拷贝到显示帧存中,等待屏幕刷新将所述视频数据显示在显示屏幕上。在显示模块对所述YUV数据进行预设处理后,此时预设处理后的数据仍然在所述DDR SDRAM中,为了显示所述视频数据,所述显示模块可以将预设处理后的YUV数据拷贝到显示帧存中,等待屏幕刷新时,进行显示。
本申请实施例提供的视频解码显示方法,编译硬件解码库,并将所述硬件解码库中的硬件解码器注册到Ffmpeg的解码器列表,其中,所述硬件解码器工作在GPU的硬件解码模块上,从而在进行视频解码显示时,可以通过Ffmpeg调用GPU进行视频解码显示,可有效提升视频解码显示效率并降低CPU的使用率。
下面将以一个具体的实例来说明整个视频解码显示过程。
电子设备中安装有播放器,播放器用于进行视频播放,在用户操作所述电子设备使用播放器进行视频播放时,播放器可以获取到对应的视频数据,在获取到所述视频数据后,可以对所述视频数据解复用,得到不同部分的视频数据。进而,可以对所述不同部分的视频数据进行解码,在解码时,播放器对硬件解码库进行解码,保存在系统目录中,加载所述系统目标,将硬件解码库中的硬件解码器注册到Ffmpeg的解码器列表。根据视频数据的码流格式选择不同的硬件解码器将所述视频数据解码为YUV数据。
需要说明的是,由于所述硬件解码器工作在GPU的硬件解码模块上,因此,播放器是通过Ffmpeg调用了GPU将所述视频数据解码为YUV数据。
所述GPU的硬件解码模块将解码得到的YUV数据存储在DDR SDRAM中,并返回存储所述YUV数据的存储地址,即帧存地址给播放器。所述播放器在得到所述帧存地址后,可以通过播放器的输出模块调用GPU的显示模块,读取所述帧存地址中的YUV数据,根据显示屏的显示参数等,对所述YUV数据进行预设处理后,再将预设处理后的视频数据拷贝到显示帧存中,等待屏幕刷新时,将所述视频数据显示在电子设备的显示屏中,从而,实现了对所述视频数据的解码显示。此时,电子设备上即可以播放对应的视频数据。
请参阅图4,本申请实施例提供了一种视频解码显示装置300,可应用于电子设备,所述视频解码显示装置300包括视频数据获取模块310,解码模块320,地址获取模块330,以及显示模块340。所述视频数据获取模块310,用于获取视频数据;所述解码模块320,用于通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;所述地址获取模块330,用于获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;所述显示模块340,用于从所述帧存地址中读取所述解码后的视频数据,并进行显示。
进一步的,所述解码模块320还用于编译硬件解码库,所述硬件解码库包括硬件解码器,所述硬件解码器工作于图形处理器中的硬件解码模块上;将所述硬件解码器注册到快进动态图像专家组的解码器列表;调用所述硬件解码器对所述视频数据进行解码,得到解码后的视频数据;将所述解码后的视频数据存储在图形处理器中的帧缓冲区中。
进一步的,所述解码模块320还用于利用解码器注册函数将所述硬件解码器注册到快进动态图像专家组的解码器列表。
进一步的,所述硬件解码器包括:AVCodec ff_h264_mwv_decoder以及AVCodecff_mpeg4_mwv_decoder。
进一步的,所述解码模块320还用于获取所述视频数据的码流格式;根据所述码流格式确定对应的硬件解码器;利用确定的所述硬件编码器将所述视频数据解码为YUV数据。
进一步的,所述显示模块340还用于调用图形处理器的显示模块,根据所述帧存地址读取所述YUV数据;通过所述显示模块对所述YUV数据进行预设处理,并拷贝到显示帧存中进行显示。
进一步的,所述预设处理包括下述的一个或多个:颜色空间转换、缩放、旋转。
本申请实施例提供的视频解码显示装置,获取视频数据,通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;从所述帧存地址中读取所述解码后的视频数据,并进行显示。通过图形处理器对视频数据进行解码显示,可有效提升视频解码显示效率并降低CPU的使用率。
要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参阅图5,本申请实施例提供了一种电子设备的结构框图,该电子设备400包括处理器410以及存储器420以及一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器420中并被配置为由所述一个或多个处理器410执行,所述一个或多个程序配置用于执行上述视频解码显示的方法。
该电子设备400可以是智能手机、平板电脑、电子书等能够运行应用程序的终端设备,还可以是服务器。本申请中的电子设备400可以包括一个或多个如下部件:处理器410、存储器420、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器420中并被配置为由一个或多个处理器410执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器410可以包括一个或者多个处理核。处理器410利用各种接口和线路连接整个电子设备400内的各个部分,通过运行或执行存储在存储器420内的指令、程序、代码集或指令集,以及调用存储在存储器420内的数据,执行电子设备400的各种功能和处理数据。可选地,处理器410可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器410可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器410中,单独通过一块通信芯片进行实现。
存储器420可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器420可用于存储指令、程序、代码、代码集或指令集。存储器420可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备400在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
本申请实施例提供的电子设备,获取视频数据;根据视频窗口的参数,对所述视频数据进行解码,并将解码后的所述视频数据存储在双倍速率同步动态随机存储器中;将所述双倍速率同步动态随机存储器中的解码后的所述视频数据,拷贝至所述视频窗口,并输出到显示设备进行显示。利用GPU执行视频解码,拷贝解码后的视频数据到视频窗口以及输出显示都由图形处理器执行,可有效减小中央处理器的使用率,也减小了数据处理以及数据拷贝传输时间,提升了视频解码显示的效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种视频解码显示方法,其特征在于,所述方法包括:
获取视频数据;
通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;
获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;
从所述帧存地址中读取所述解码后的视频数据,并进行显示。
2.根据权利要求1所述的方法,其特征在于,所述通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中,包括:
编译硬件解码库,所述硬件解码库包括硬件解码器,所述硬件解码器工作于图形处理器中的硬件解码模块上;
将所述硬件解码器注册到快进动态图像专家组的解码器列表;
调用所述硬件解码器对所述视频数据进行解码,得到解码后的视频数据;
将所述解码后的视频数据存储在图形处理器中的帧缓冲区中。
3.根据权利要求2所述的方法,其特征在于,所述将所述硬件解码器注册到快进动态图像专家组的解码器列表,包括:
利用解码器注册函数将所述硬件解码器注册到快进动态图像专家组的解码器列表。
4.根据权利要求3所述的方法,其特征在于,所述硬件解码器包括:AVCodec ff_h264_mwv_decoder以及AVCodec ff_mpeg4_mwv_decoder。
5.根据权利要求2所述的方法,其特征在于,所述调用所述硬件解码器对所述视频数据进行解码,得到解码后的视频数据,包括:
获取所述视频数据的码流格式;
根据所述码流格式确定对应的硬件解码器;
利用确定的所述硬件编码器将所述视频数据解码为YUV数据。
6.根据权利要求5所述的方法,其特征在于,所述从所述帧存地址中读取所述解码后的视频数据,并进行显示,包括:
调用图形处理器的显示模块,根据所述帧存地址读取所述YUV数据;
通过所述显示模块对所述YUV数据进行预设处理,并拷贝到显示帧存中进行显示。
7.根据权利要求6所述的方法,其特征在于,所述预设处理包括下述的一个或多个:颜色空间转换、缩放、旋转。
8.一种视频解码显示装置,其特征在于,所述装置包括:
视频数据获取模块,用于获取视频数据;
解码模块,用于通过快进动态图像专家组调用图形处理器中的硬件解码模块,对所述视频数据进行解码,并将解码后的所述视频数据存储在图形处理器中的帧缓冲区中;
地址获取模块,用于获取解码后的视频数据在所述图形处理器中的帧缓冲区中的帧存地址;
显示模块,用于从所述帧存地址中读取所述解码后的视频数据,并进行显示。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,与所述一个或多个处理器电连接;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1至7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110228874.2A CN113055681B (zh) | 2021-03-02 | 2021-03-02 | 视频解码显示方法,装置,电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110228874.2A CN113055681B (zh) | 2021-03-02 | 2021-03-02 | 视频解码显示方法,装置,电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055681A true CN113055681A (zh) | 2021-06-29 |
CN113055681B CN113055681B (zh) | 2024-02-09 |
Family
ID=76509501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110228874.2A Active CN113055681B (zh) | 2021-03-02 | 2021-03-02 | 视频解码显示方法,装置,电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055681B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115914737A (zh) * | 2022-11-04 | 2023-04-04 | 武汉凌久微电子有限公司 | 一种视频的播放方法和装置 |
CN117395434A (zh) * | 2023-12-07 | 2024-01-12 | 西安芯云半导体技术有限公司 | 硬件编解码调试方法、装置、设备及存储介质 |
CN118138832A (zh) * | 2024-05-06 | 2024-06-04 | 武汉凌久微电子有限公司 | 一种基于gpu硬图层的网络视频流显示方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090060032A1 (en) * | 2007-05-11 | 2009-03-05 | Advanced Micro Devices, Inc. | Software Video Transcoder with GPU Acceleration |
CN103428582A (zh) * | 2013-09-02 | 2013-12-04 | 贝壳网际(北京)安全技术有限公司 | 播放视频的方法、装置和客户端 |
US20160119572A1 (en) * | 2014-10-22 | 2016-04-28 | Genetec Inc. | System to dispatch video decoding to dedicated hardware resources |
WO2017050116A1 (zh) * | 2015-09-25 | 2017-03-30 | 网宿科技股份有限公司 | 一种基于gpu的完全硬件转码的方法和系统 |
US20170329395A1 (en) * | 2016-05-10 | 2017-11-16 | Arm Limited | Date processing systems |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
CN109587546A (zh) * | 2018-11-27 | 2019-04-05 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备和计算机可读介质 |
CN110858827A (zh) * | 2018-08-22 | 2020-03-03 | 浙江宇视科技有限公司 | 启播加速方法、装置及计算机可读取存储介质 |
CN110933495A (zh) * | 2019-12-06 | 2020-03-27 | 深圳市斯迈龙科技有限公司 | 基于嵌入式系统的视频播放方法及装置 |
CN111866408A (zh) * | 2020-07-30 | 2020-10-30 | 长沙景嘉微电子股份有限公司 | 图形处理芯片及视频解码显示方法 |
-
2021
- 2021-03-02 CN CN202110228874.2A patent/CN113055681B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090060032A1 (en) * | 2007-05-11 | 2009-03-05 | Advanced Micro Devices, Inc. | Software Video Transcoder with GPU Acceleration |
CN103428582A (zh) * | 2013-09-02 | 2013-12-04 | 贝壳网际(北京)安全技术有限公司 | 播放视频的方法、装置和客户端 |
US20160119572A1 (en) * | 2014-10-22 | 2016-04-28 | Genetec Inc. | System to dispatch video decoding to dedicated hardware resources |
WO2017050116A1 (zh) * | 2015-09-25 | 2017-03-30 | 网宿科技股份有限公司 | 一种基于gpu的完全硬件转码的方法和系统 |
US20170329395A1 (en) * | 2016-05-10 | 2017-11-16 | Arm Limited | Date processing systems |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
CN110858827A (zh) * | 2018-08-22 | 2020-03-03 | 浙江宇视科技有限公司 | 启播加速方法、装置及计算机可读取存储介质 |
CN109587546A (zh) * | 2018-11-27 | 2019-04-05 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备和计算机可读介质 |
CN110933495A (zh) * | 2019-12-06 | 2020-03-27 | 深圳市斯迈龙科技有限公司 | 基于嵌入式系统的视频播放方法及装置 |
CN111866408A (zh) * | 2020-07-30 | 2020-10-30 | 长沙景嘉微电子股份有限公司 | 图形处理芯片及视频解码显示方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115914737A (zh) * | 2022-11-04 | 2023-04-04 | 武汉凌久微电子有限公司 | 一种视频的播放方法和装置 |
CN117395434A (zh) * | 2023-12-07 | 2024-01-12 | 西安芯云半导体技术有限公司 | 硬件编解码调试方法、装置、设备及存储介质 |
CN117395434B (zh) * | 2023-12-07 | 2024-03-26 | 西安芯云半导体技术有限公司 | 硬件编解码调试方法、装置、设备及存储介质 |
CN118138832A (zh) * | 2024-05-06 | 2024-06-04 | 武汉凌久微电子有限公司 | 一种基于gpu硬图层的网络视频流显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113055681B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113055681B (zh) | 视频解码显示方法,装置,电子设备及存储介质 | |
TWI725299B (zh) | 圖片檔處理方法、設備及儲存介質 | |
US9043800B2 (en) | Video player instance prioritization | |
CN111899322B (zh) | 视频处理方法、动画渲染sdk和设备及计算机存储介质 | |
CN108881916A (zh) | 远程桌面的视频优化处理方法及装置 | |
CN102074257A (zh) | 软硬件结合解码的通用多媒体播放设备及其播放方法 | |
CN109151966B (zh) | 终端控制方法、装置、终端设备及存储介质 | |
CN112399249A (zh) | 多媒体文件生成方法、装置、电子设备及存储介质 | |
CN109819317A (zh) | 一种视频处理方法、装置、终端和存储介质 | |
CN109361950B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN112055254B (zh) | 视频播放的方法、装置、终端及存储介质 | |
CN110933495A (zh) | 基于嵌入式系统的视频播放方法及装置 | |
CN110012336B (zh) | 直播界面的图片配置方法、终端及装置 | |
US11562772B2 (en) | Video processing method, electronic device, and storage medium | |
CN110853121B (zh) | 基于ae的跨平台数据处理的方法及装置 | |
CN110049347B (zh) | 在直播界面配置图像的方法、系统、终端和装置 | |
CN116450149B (zh) | 一种硬件解码方法、设备及存储介质 | |
CN113052748B (zh) | 图形处理器以及视频解码显示方法 | |
CN115412536A (zh) | 内容展示方法、装置、电子设备和可读存储介质 | |
CN114390307A (zh) | 图像画质增强方法、装置、终端及可读存储介质 | |
CN110933418B (zh) | 一种视频数据处理方法、设备、介质以及装置 | |
CN114079823A (zh) | 基于Flutter的视频渲染方法、装置、设备及介质 | |
CN111179386A (zh) | 动画生成方法、装置、设备及存储介质 | |
CN111526420A (zh) | 一种视频渲染方法、电子设备及存储介质 | |
CN109495793B (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 |