CN114567784A - 一种用于飞腾显卡的vpu视频解码输出方法及*** - Google Patents

一种用于飞腾显卡的vpu视频解码输出方法及*** Download PDF

Info

Publication number
CN114567784A
CN114567784A CN202210449772.8A CN202210449772A CN114567784A CN 114567784 A CN114567784 A CN 114567784A CN 202210449772 A CN202210449772 A CN 202210449772A CN 114567784 A CN114567784 A CN 114567784A
Authority
CN
China
Prior art keywords
display
vpu
feiteng
buffer
dmabuf
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
CN202210449772.8A
Other languages
English (en)
Other versions
CN114567784B (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.)
Galaxy Qilin Software Changsha Co ltd
Original Assignee
Galaxy Qilin Software Changsha 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 Galaxy Qilin Software Changsha Co ltd filed Critical Galaxy Qilin Software Changsha Co ltd
Priority to CN202210449772.8A priority Critical patent/CN114567784B/zh
Publication of CN114567784A publication Critical patent/CN114567784A/zh
Application granted granted Critical
Publication of CN114567784B publication Critical patent/CN114567784B/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
    • H04N19/423Methods 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 characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种用于飞腾显卡的VPU视频解码输出方法及***,本发明方法包括获取显示设备,完成与飞腾显卡显示设备的链接,创建缓冲管理设备GBM、创建DMABUF缓冲区并获取对应的文件描述符fd;使用开放多媒体加速层OMX的fd导入功能,将各个DMABUF缓冲区的fd导入给GPU中的视频编解码单元VPU使用,OMX使用回调函数将已经解码完成的fd锁定后加入显示输出队列,使GPU从显示输出队列中获取fd并进行渲染输出,GPU使用完fd后通知OMX释放fd。本发明能够实现对飞腾显卡的VPU视频解码输出优化,以降低飞腾显卡的VPU在解码输出时的CPU占用率以及提高***的性能和效率,防止画面撕裂。

Description

一种用于飞腾显卡的VPU视频解码输出方法及***
技术领域
本发明涉及计算机视频播放技术,具体涉及一种用于飞腾显卡的VPU视频解码输出方法及***。
背景技术
飞腾X100显卡是飞腾信息技术有限公司研发的一款国产GPU。包含了图形显示模块以及VPU单元(Video Processing Unit,视频编解码单元)。飞腾X100显卡集成的VPU是一个高性能的多标准视频IP,可以执行以下解码:H.264 / AVC BP / MP / HP,VC-1 SP / MP/ AP,MPEG-1 / 2 ,MPEG4 SP / ASP,DivX / XviD,AVS,RV-8 / 9/10,VP8和Theora视频。
当前飞腾X100显卡VPU视频输出仅使用软件输出显示,视频输出能力很大程度上受到CPU处理能力的限制。如图1所示,当前飞腾X100显卡VPU解码视频输出方法包括:
步骤S101:MPV播放器中创建解码环境,申请显存;
步骤S102:准备一帧的数据;
步骤S103:利用开放多媒体加速层OMX(OpenMax)后端解码框架开始解码;
步骤S104:解码后的yuv数据进行rgb转换并拷贝到显示进程;
步骤S105:利用X11方式进行数据显示。
由此可见,飞腾X100显卡VPU解码虽然采用的是硬件解码,但解码后的数据,如果需要使用GPU的方式来输出,则需要对解码后的数据进行一次拷贝,而且目前输出采用的是软件的方式,这导致了用飞腾X100显卡VPU进行视频解码时CPU占用率很高。当播放多个视频时,由于现有的方案中并未考虑到显卡GPU的资源情况,每增加一个视频的播放,都只能使用该方式进行处理。而这种方法存在很大的不足,在播放过程中CPU占用率会急剧上升,往往会出现后面播放的视频存在窗口拖动卡住,画面卡顿、视频帧画面严重延时甚至画面完全卡住不动等问题,严重的还会导致***漰溃。现有的飞腾X100显卡VPU视频解码输出方法对***整体资源带来了极大的消耗,若用户在播放视频时进行其他操作,比如日常电脑办公,此时就会出现***CPU资源不够,其他应用无法得到及时的响应的现象,从而给用户播放视频带来极差的体验感。因此,当用户在播放多个视频时效率低下,有很大的延迟和卡顿,严重影响了用户体验。因此,如何提高视频播放时CPU占用率以及用户体验以及性能,是当前面临的一个重要的难题。
发明内容
本发明要解决的技术问题是:针对现有技术的上述技术问题,提供一种用于飞腾显卡的VPU视频解码输出方法及***,本发明旨在实现对飞腾显卡的VPU视频解码输出优化,以降低飞腾显卡的VPU在解码输出时的CPU占用率以及提高***的性能和效率,防止画面撕裂。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于飞腾显卡的VPU视频解码输出方法,包括:
1)获取显示设备,完成与飞腾显卡显示设备的链接,获取飞腾显卡显示设备,并为飞腾显卡显示设备创建一个缓冲管理设备GBM;
2)基于缓冲管理设备GBM创建多个DMABUF缓冲区,并分别获取每一个DMABUF缓冲区的文件描述符fd;
3)使用开放多媒体加速层OMX的文件描述符fd导入功能,将各个DMABUF缓冲区的文件描述符fd导入给GPU中的视频编解码单元VPU使用、以使得GPU中的视频编解码单元VPU直接使用GPU的显存;
4)开放多媒体加速层OMX使用回调函数将已经解码完成的文件描述符fd锁定后加入显示输出队列,使GPU从显示输出队列中获取文件描述符fd并进行渲染输出以避免相邻帧部分画面同时出现在屏幕上导致的画面撕裂,且GPU中的视频编解码单元VPU只将解码数据填放到未被锁定的文件描述符fd所对应的DMABUF缓冲区中;GPU使用完文件描述符fd后通知开放多媒体加速层OMX释放使用完的文件描述符fd,使该文件描述符fd重新被GPU中的视频编解码单元VPU使用。
可选地,步骤1)包括:通过X显示接口来与X服务端通信,以此来获取一个显示设备,获取当前飞腾显卡显示设备;调用接口来完成与飞腾显卡显示设备的服务端的链接,获取飞腾显卡显示设备,并为飞腾显卡显示设备创建一个缓冲管理设备GBM。
选地,步骤2)中基于缓冲管理设备GBM创建多个DMABUF缓冲区时,还包括确定DMABUF缓冲区内缓冲的数量,以及每一个缓冲的大小。
可选地,步骤3)包括:调用开放多媒体加速层OMX的文件描述符fd导入功能接口来传递DMABUF缓冲区的文件描述符fd,该DMABUF缓冲区的文件描述符fd存储在播放器的视频解码上下文结构的DMABUF缓冲区指针变量dmabuf_ptr中,以实现开放多媒体加速层OMX访问DMABUF缓冲区、以使得GPU中的视频编解码单元VPU直接使用GPU的显存。
可选地,步骤4)中使GPU从显示输出队列中获取文件描述符fd并进行渲染输出包括:针对VPU解码得到的每一帧,将解码后在DMABUF缓冲区中所对应的解码数据赋给显示输出队列中的文件描述符fd,以使得播放器获得每一帧解码后的解码数据,然后播放器调用OpenGL/ES接口将解码后的解码数据转换为显示所需纹理并进行显示输出。
可选地,所述调用OpenGL/ES接口将解码后的解码数据转换为显示所需纹理并进行渲染输出包括:将解码数据转换为图像,再将图像转换为纹理贴图,最后将纹理贴图转换为飞腾显卡的帧缓冲内容并显示输出。
可选地,所述将解码数据转换为图像是指使用CreateImageKHR接口将解码数据转换为图像,所述将图像转换为纹理贴图是指使用EGLImageTargetTexture2DOES接口将图像转换为纹理贴图。
可选地,步骤4)之后还包括在完成视频编解码单元VPU视频解码输出之后销毁相应资源的步骤,且销毁相应资源包括:销毁DMABUF缓冲区,取消图像到纹理贴图的映射,清空管理DMABUF缓冲区的缓冲队列以及文件描述符fd对应的缓冲资源,关闭缓冲管理设备GBM。
此外,本发明还提供一种用于飞腾显卡的VPU视频解码输出***,包括相互连接的微处理器和存储器,所述微处理器还连接有飞腾显卡,该微处理器被编程或配置以执行所述用于飞腾显卡的VPU视频解码输出方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施所述用于飞腾显卡的VPU视频解码输出方法的步骤。
和现有技术相比,本发明主要具有下述优点:
1、本发明用于飞腾显卡的VPU视频解码输出方法基于OpenGL以及DMABUF缓冲区的技术特性,以及结合飞腾显卡的VPU自身的硬件特性,并结合gStreamer插件的基本框架,通过利用DMABUF缓冲区共享文件描述符fd的方式实现了一种低CPU占用率的视频输出实现方法,充分利用OpenGL、DRI3、XCB等方法来实现两个独立的进程之间的数据buffer共享来优化视频解码输出,有效改进了当前***中视频输出时CPU占用率高的状况,降低了飞腾显卡的VPU在解码输出时的CPU占用率,提高了***的性能和效率。
2、本发明的优化效果明显,将优化之前***只使用软件输出的方式改进为使用硬件输出并最大化降低了CPU占用率,更高效的利用了有限的显卡硬件资源,提高了播放多路视频的性能和效率,提升了用户播放多路视频的体验感。
3、本发明采用了显示输出队列,通过开放多媒体加速层OMX使用回调函数将已经解码完成的文件描述符fd锁定后加入显示输出队列,在GPU使用完文件描述符fd后通知开放多媒体加速层OMX释放使用完的文件描述符fd,从而使得使GPU从显示输出队列中获取文件描述符fd并进行渲染输出时,能够有效避免播放视频时相邻帧部分画面同时出现在屏幕上导致的画面撕裂,确保画面质量。
附图说明
图1为现有技术中飞腾X100显卡的VPU解码流程图。
图2为本发明实施例方法的基本流程示意图。
图3为本发明实施例中飞腾显卡的视频解码流程图。
图4为本发明实施例中飞腾显卡的VPU视频解码输出方法的总体框架图。
具体实施方式
下面将以飞腾X100显卡为例,参照附图对本发明用于飞腾显卡的VPU视频解码输出方法及***的实施例进行详细的说明,在描述过程中省略了对于本发明来说不必要的细节和功能,以防止对本发明的理解造成混淆。需要说明的是,本发明用于飞腾显卡的VPU视频解码输出方法及***适用于相同工作方式的所有飞腾显卡,而不限于飞腾X100显卡这一特定型号的飞腾显卡。此外,本实施例涉及的操作***环境为银河麒麟V10 SP1,但是本发明用于飞腾显卡的VPU视频解码输出方法及***适用于相同工作方式的其他操作***,而不限于银河麒麟V10 SP1这一特定版本的操作***。
如图2所示,本实施例用于飞腾显卡的VPU视频解码输出方法包括:
1)获取显示设备,完成与飞腾显卡显示设备的链接,获取飞腾显卡显示设备,并为飞腾显卡显示设备创建一个缓冲管理设备GBM;
2)基于缓冲管理设备GBM创建多个DMABUF缓冲区,并分别获取每一个DMABUF缓冲区的文件描述符fd;
3)使用开放多媒体加速层OMX的文件描述符fd导入功能,将各个DMABUF缓冲区的文件描述符fd导入给GPU中的视频编解码单元VPU使用、以使得GPU中的视频编解码单元VPU直接使用GPU的显存;
4)开放多媒体加速层OMX使用回调函数将已经解码完成的文件描述符fd锁定后加入显示输出队列,使GPU从显示输出队列中获取文件描述符fd并进行渲染输出以避免相邻帧部分画面同时出现在屏幕上导致的画面撕裂,且GPU中的视频编解码单元VPU只将解码数据填放到未被锁定的文件描述符fd所对应的DMABUF缓冲区中; GPU使用完文件描述符fd后通知开放多媒体加速层OMX释放使用完的文件描述符fd,使该文件描述符fd重新被GPU中的视频编解码单元VPU使用。
步骤1)用于创建显示环境,其具体是通过播放器后端实现的,本实施例中播放器具体为MPV播放器。本实施例中,步骤1)包括:通过X显示接口来与X服务端通信,以此来获取一个显示设备,获取当前飞腾显卡显示设备;调用接口来完成与飞腾显卡显示设备的服务端的链接,获取飞腾显卡显示设备,并为飞腾显卡显示设备创建一个缓冲管理设备GBM。一般创建XCB显示环境需要调用Xlib库,通过X显示接口(XOpenDisplay)来与X服务端(Xserver)通信,以此来获取一个显示设备(Display设备),获取当前飞腾显卡显示设备。获取该显示设备后,需要调用XCB的dri3接口来完成与飞腾显卡显示设备的服务端(server端)的链接以及获取当前的飞腾显卡显示设备。在Linux操作***中,所有一切均抽象成文件。
本实施例中当在DMABUF缓冲区中申请一个缓冲的同时会创建一个对应的缓冲区结构体,然后将DMABUF缓冲区中的私有指针指向申请的缓冲,与此同时,缓冲区会和操作***的节点inode进行绑定,从而获取到一个文件。通过这种方式将文件和DMABUF缓冲区绑定起来,达到和缓冲关联的目的;在需要用到缓冲区的进程中分配一个空闲的文件描述符fd并将该文件描述符fd和文件进行绑定,这样进程上下文就能通过文件描述符fd找到对应的DMABUF缓冲区。文件是***唯一的,跟具体进程无关,每个进程都会维护自己的文件描述符fd列表,所以对进程来说,该文件描述符fd是自己独立的,所以在跨进程传输时只需要保证文件描述符fd和同一个文件绑定就可以实现对该缓冲的共享。
本实施例中,步骤2)中基于缓冲管理设备GBM创建多个DMABUF缓冲区时,还包括确定DMABUF缓冲区内缓冲的数量,以及每一个缓冲的大小。创建缓冲管理设备GBM可通过GBM接口实现,GBM接口是一个GPU缓冲管理的API,可以基于XCB的dri3接口获取的文件描述符fd来创建一个gbm_device(创建缓冲管理设备GBM),然后基于该创建缓冲管理设备GBM来创建DMABUF缓冲区。缓冲的数量以及每一个缓冲的大小可根据需要指定,例如有些yuv格式的数据需要单独一个缓冲,有些yuv格式的数据需要两个缓冲(y一个缓冲,uv一个缓冲)。
本实施例中,步骤3)包括:调用开放多媒体加速层OMX的文件描述符fd导入功能接口来传递DMABUF缓冲区的文件描述符fd,该DMABUF缓冲区的文件描述符fd存储在播放器的视频解码上下文结构(AVCodecContext)的DMA缓冲区指针变量dmabuf_ptr中以实现开放多媒体加速层OMX访问DMABUF缓冲区、以使得GPU中的视频编解码单元VPU直接使用GPU的显存。具体开放多媒体加速层OMX中解码数据填充则由开放多媒体加速层OMX的接口函数中实现,此处只需把文件描述符fd传递进去即可实现解码数据填充的目的。
缓冲管理设备GBM可实现对DMABUF缓冲区中缓冲buffer的申请、创建、释放等功能,且实现显示输出队列的管理。针对的DMABUF缓冲区管理,在每一帧中,都需要对解码后的数据传送给MPV播放器去显示,因此将解码后的缓冲区所对应的数据内容赋给文件描述符fd,上层播放器才能拿到该缓冲对应的解码数据。在这个过程中,由于涉及到解码速度和显示速度的同步,需要创建多个DMABUF缓冲区来进行处理,因此也需要对多个文件描述符fd进行处理。针对实现显示输出队列的管理,本实施例中采用先进先出队列FIFO的方式对文件描述符fd进行管理,具体功能主要包括初始化队列,进队、出队、销毁。
本实施例中,步骤4)中使GPU从显示输出队列中获取文件描述符fd并进行渲染输出包括:针对视频编解码单元VPU解码得到的每一帧,将解码后在DMABUF缓冲区中所对应的解码数据赋给显示输出队列中的文件描述符fd,以使得播放器获得每一帧解码后的解码数据,然后播放器调用OpenGL/ES接口将解码后的解码数据转换为显示所需纹理并进行显示输出。
本实施例中,所述调用OpenGL/ES接口将解码后的解码数据转换为显示所需纹理并进行渲染输出包括:将解码数据转换为图像,再将图像转换为纹理贴图,最后将纹理贴图转换为飞腾显卡的帧缓冲内容并显示输出。将解码后的图片转换为显示所需纹理,调用OpenGL/ES接口进行渲染。最终需要将解码后的数据显示出来,这里涉及到应用端的OpenGL(或者OpenES)绘制,以及应用如何将解码后的数据缓冲内容传递给显示服务端进行显示。由于MPV播放器和显示分别属于不同的进程,基于前面的基础上,这里要实现的就是将解码数据使用OpenGL的方式来进行纹理贴图最后渲染到帧缓冲中。本实施例中,所述将解码数据转换为图像是指使用CreateImageKHR接口将解码数据转换为图像,所述将图像转换为纹理贴图是指使用EGLImageTargetTexture2DOES接口将图像转换为纹理贴图。
本实施例中,步骤4)之后还包括在完成视频编解码单元VPU视频解码输出之后销毁相应资源的步骤,且销毁相应资源包括:销毁DMABUF缓冲区,取消图像到纹理贴图的映射,清空管理DMABUF缓冲区的缓冲队列以及文件描述符fd对应的缓冲资源,关闭缓冲管理设备GBM。
图3为本实施例中飞腾显卡的视频解码流程图。根据图3可知,在进行解码之前,和图1类似,都需要申请显存和准备数据。之后,则与图1所示方法完全不同:首先,创建缓冲管理设备GBM以及DMABUF缓冲区,以及获取飞腾显卡显示设备的文件描述符fd;然后基于缓冲管理设备GBM实现对DMABUF缓冲区的缓冲队列管理,并进行逐帧解码显示:针对每一帧数据,传递文件描述符fd并填充解码得到的yuv格式数据到DMABUF缓冲区的缓冲中,将缓冲中的解码数据进行纹理转换并通过OpenGL/ES接口进行渲染显示输出;最终进行资源销毁,包括文件描述符fd、DMABUF缓冲区及其缓冲以及缓冲管理设备GBM等,完成视频解码。图4为本实施例中飞腾显卡的VPU视频解码输出方法的总体框架图,参见图4可知,在MPV播放器(媒体播放器)的播放器后端,增加了对飞腾X100显卡的视频编解码单元VPU使用的开放多媒体封装层、开放多媒体加速层OMX后端相关接口;在图像显示方面,主要基于MPV播放器的播放器后端,采用了显示输出队列的方式,将3D图形加速库解码后的来自DMABUF缓冲区的数据进行纹理转换,最后调用OpenGL接口进行显示。与当前飞腾X100显卡VPU视频解码显示输出相比,本实施例方法通过DMABUF缓冲的方式来实现应用和显示服务输出两个进程的数据零拷贝的方法,从而能够达到降低CPU占用率以及提高多路视频同时解码输出时CPU占用率低的目的,而且采用了显示输出队列,通过开放多媒体加速层OMX使用回调函数将已经解码完成的文件描述符fd锁定后加入显示输出队列,在GPU使用完文件描述符fd后通知开放多媒体加速层OMX释放使用完的文件描述符fd,从而使得使GPU从显示输出队列中获取文件描述符fd并进行渲染输出时,而且能够有效避免播放视频时相邻帧部分画面同时出现在屏幕上导致的画面撕裂,确保画面质量。前文涉及相关术语解释如下:GBM是一个GPU缓冲管理的API。XCB是封装了X协议的底层库。DMABUF是一种共享缓冲区框架。具体来说,就是一种文件描述符,通过在不同的进程之间传递该文件描述符来达到交互访问该DMABUF的目的。OpenGL/ES是跨编程语言、跨平台的一套专业的3D编程API接口,是一个功能强大,调用方便的底层3D图形库。
此外,本实施例还提供一种用于飞腾显卡的VPU视频解码输出***,包括相互连接的微处理器和存储器,所述微处理器还连接有飞腾显卡,该微处理器被编程或配置以执行前述用于飞腾显卡的VPU视频解码输出方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施前述用于飞腾显卡的VPU视频解码输出方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种用于飞腾显卡的VPU视频解码输出方法,其特征在于,包括:
1)获取显示设备,完成与飞腾显卡显示设备的链接,获取飞腾显卡显示设备,并为飞腾显卡显示设备创建一个缓冲管理设备GBM;
2)基于缓冲管理设备GBM创建多个DMABUF缓冲区,并分别获取每一个DMABUF缓冲区的文件描述符fd;
3)使用开放多媒体加速层OMX的文件描述符fd导入功能,将各个DMABUF缓冲区的文件描述符fd导入给GPU中的视频编解码单元VPU使用、以使得GPU中的视频编解码单元VPU直接使用GPU的显存;
4)开放多媒体加速层OMX使用回调函数将已经解码完成的文件描述符fd锁定后加入显示输出队列,使GPU从显示输出队列中获取文件描述符fd并进行渲染输出以避免相邻帧部分画面同时出现在屏幕上导致的画面撕裂,且GPU中的视频编解码单元VPU只将解码数据填放到未被锁定的文件描述符fd所对应的DMABUF缓冲区中; GPU使用完文件描述符fd后通知开放多媒体加速层OMX释放使用完的文件描述符fd,使该文件描述符fd重新被GPU中的视频编解码单元VPU使用。
2.根据权利要求1所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,步骤1)包括:通过X显示接口来与X服务端通信,以此来获取一个显示设备,获取当前飞腾显卡显示设备;调用接口来完成与飞腾显卡显示设备的服务端的链接,获取飞腾显卡显示设备,并为飞腾显卡显示设备创建一个缓冲管理设备GBM。
3.根据权利要求2所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,步骤2)中基于缓冲管理设备GBM创建多个DMABUF缓冲区时,还包括确定DMABUF缓冲区内缓冲的数量,以及每一个缓冲的大小。
4.根据权利要求3所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,步骤3)包括:调用开放多媒体加速层OMX的文件描述符fd导入功能接口来传递DMABUF缓冲区的文件描述符fd,该DMABUF缓冲区的文件描述符fd存储在播放器的视频解码上下文结构的DMABUF缓冲区指针变量dmabuf_ptr中,以实现开放多媒体加速层OMX访问DMABUF缓冲区、以使得GPU中的视频编解码单元VPU直接使用GPU的显存。
5.根据权利要求4所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,步骤4)中使GPU从显示输出队列中获取文件描述符fd并进行渲染输出包括:针对VPU解码得到的每一帧,将解码后在DMABUF缓冲区中所对应的解码数据赋给显示输出队列中的文件描述符fd,以使得播放器获得每一帧解码后的解码数据,然后播放器调用OpenGL/ES接口将解码后的解码数据转换为显示所需纹理并进行显示输出。
6.根据权利要求5所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,所述调用OpenGL/ES接口将解码后的解码数据转换为显示所需纹理并进行渲染输出包括:将解码数据转换为图像,再将图像转换为纹理贴图,最后将纹理贴图转换为飞腾显卡的帧缓冲内容并显示输出。
7.根据权利要求6所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,所述将解码数据转换为图像是指使用CreateImageKHR接口将解码数据转换为图像,所述将图像转换为纹理贴图是指使用EGLImageTargetTexture2DOES接口将图像转换为纹理贴图。
8.根据权利要求7所述的用于飞腾显卡的VPU视频解码输出方法,其特征在于,步骤4)之后还包括在完成视频编解码单元VPU视频解码输出之后销毁相应资源的步骤,且销毁相应资源包括:销毁DMABUF缓冲区,取消图像到纹理贴图的映射,清空管理DMABUF缓冲区的缓冲队列以及文件描述符fd对应的缓冲资源,关闭缓冲管理设备GBM。
9.一种用于飞腾显卡的VPU视频解码输出***,包括相互连接的微处理器和存储器,所述微处理器还连接有飞腾显卡,其特征在于,该微处理器被编程或配置以执行权利要求1~8中任意一项所述用于飞腾显卡的VPU视频解码输出方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施权利要求1~8中任意一项所述用于飞腾显卡的VPU视频解码输出方法的步骤。
CN202210449772.8A 2022-04-24 2022-04-24 一种用于飞腾显卡的vpu视频解码输出方法及*** Active CN114567784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210449772.8A CN114567784B (zh) 2022-04-24 2022-04-24 一种用于飞腾显卡的vpu视频解码输出方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210449772.8A CN114567784B (zh) 2022-04-24 2022-04-24 一种用于飞腾显卡的vpu视频解码输出方法及***

Publications (2)

Publication Number Publication Date
CN114567784A true CN114567784A (zh) 2022-05-31
CN114567784B CN114567784B (zh) 2022-08-16

Family

ID=81720779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210449772.8A Active CN114567784B (zh) 2022-04-24 2022-04-24 一种用于飞腾显卡的vpu视频解码输出方法及***

Country Status (1)

Country Link
CN (1) CN114567784B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941967A (zh) * 2023-03-13 2023-04-07 南京感动科技有限公司 一种基于全码流的视频编解码加速方法
CN117593172A (zh) * 2024-01-16 2024-02-23 北京趋动智能科技有限公司 进程管理方法、装置、介质及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441271A (zh) * 2008-12-05 2009-05-27 航天恒星科技有限公司 基于gpu的sar实时成像处理设备
CN103984529A (zh) * 2014-05-15 2014-08-13 中国人民解放军国防科学技术大学 基于飞腾处理器的x图形***并行加速方法
CN108206937A (zh) * 2016-12-20 2018-06-26 浙江宇视科技有限公司 一种提升智能分析性能的方法和装置
CN108549548A (zh) * 2018-03-30 2018-09-18 天津麒麟信息技术有限公司 一种基于飞腾平台amd显卡***logo提前显示的实现方法、装置、设备及存储介质
US20190317716A1 (en) * 2016-12-27 2019-10-17 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Video display method, electronic device and computer program product thereof
CN112988103A (zh) * 2021-05-13 2021-06-18 统信软件技术有限公司 一种数据显示方法及计算设备
US20210286752A1 (en) * 2020-03-11 2021-09-16 Nvidia Corporation Techniques to transfer data among hardware devices
CN114095778A (zh) * 2020-08-25 2022-02-25 海信视像科技股份有限公司 一种应用级播放器的音频硬解码方法及显示设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441271A (zh) * 2008-12-05 2009-05-27 航天恒星科技有限公司 基于gpu的sar实时成像处理设备
CN103984529A (zh) * 2014-05-15 2014-08-13 中国人民解放军国防科学技术大学 基于飞腾处理器的x图形***并行加速方法
CN108206937A (zh) * 2016-12-20 2018-06-26 浙江宇视科技有限公司 一种提升智能分析性能的方法和装置
US20190317716A1 (en) * 2016-12-27 2019-10-17 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Video display method, electronic device and computer program product thereof
CN108549548A (zh) * 2018-03-30 2018-09-18 天津麒麟信息技术有限公司 一种基于飞腾平台amd显卡***logo提前显示的实现方法、装置、设备及存储介质
US20210286752A1 (en) * 2020-03-11 2021-09-16 Nvidia Corporation Techniques to transfer data among hardware devices
CN114095778A (zh) * 2020-08-25 2022-02-25 海信视像科技股份有限公司 一种应用级播放器的音频硬解码方法及显示设备
CN112988103A (zh) * 2021-05-13 2021-06-18 统信软件技术有限公司 一种数据显示方法及计算设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941967A (zh) * 2023-03-13 2023-04-07 南京感动科技有限公司 一种基于全码流的视频编解码加速方法
CN117593172A (zh) * 2024-01-16 2024-02-23 北京趋动智能科技有限公司 进程管理方法、装置、介质及设备
CN117593172B (zh) * 2024-01-16 2024-04-23 北京趋动智能科技有限公司 进程管理方法、装置、介质及设备

Also Published As

Publication number Publication date
CN114567784B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN114567784B (zh) 一种用于飞腾显卡的vpu视频解码输出方法及***
CN108206937B (zh) 一种提升智能分析性能的方法和装置
EP3264370B1 (en) Media content rendering method, user equipment, and system
US7916956B1 (en) Methods and apparatus for encoding a shared drawing memory
US7076735B2 (en) System and method for network transmission of graphical data through a distributed application
TWI451355B (zh) 多著色器系統及其處理方法
WO2022048097A1 (zh) 一种基于多显卡的单帧画面实时渲染方法
US20100060652A1 (en) Graphics rendering system
WO2017107911A1 (zh) 一种视频云平台播放视频的方法及装置
KR19990006296A (ko) Mpeg영상 압축해제용 방법 및 장치
CN108881916A (zh) 远程桌面的视频优化处理方法及装置
US11882297B2 (en) Image rendering and coding method and related apparatus
CN103631634A (zh) 实现图形处理器虚拟化的方法与装置
US9235452B2 (en) Graphics remoting using augmentation data
CN104053019A (zh) 基于虚拟桌面的视频播放、处理方法及装置
CN113515396A (zh) 图形渲染方法、装置、电子设备与存储介质
CN108762934B (zh) 远程图形传输***、方法及云服务器
CN114968152B (zh) 减少virtio-gpu额外性能损耗的方法
WO2023040825A1 (zh) 媒体信息的传输方法、计算设备及存储介质
WO2023011033A1 (zh) 图像处理方法、装置、计算机设备及存储介质
CN112835730A (zh) 图像存储、内存分配、图像合成方法、装置、设备及介质
CN114257867A (zh) 视频图像显示方法和装置,计算设备和可读存储介质
US6317134B1 (en) System software for use in a graphics computer system having a shared system memory and supporting DM Pbuffers and other constructs aliased as DM buffers
CN114820660A (zh) 图像处理方法、装置、电子设备、存储介质及程序产品
CN114245137A (zh) 由gpu执行的视频帧处理方法和包括gpu的视频帧处理装置

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