CN117354532A - 一种基于多显卡的视频解码渲染方法及设备 - Google Patents
一种基于多显卡的视频解码渲染方法及设备 Download PDFInfo
- Publication number
- CN117354532A CN117354532A CN202311179972.7A CN202311179972A CN117354532A CN 117354532 A CN117354532 A CN 117354532A CN 202311179972 A CN202311179972 A CN 202311179972A CN 117354532 A CN117354532 A CN 117354532A
- Authority
- CN
- China
- Prior art keywords
- display
- card
- cards
- display card
- rendering
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
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/42—Methods 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明涉及一种基于多显卡的视频解码渲染方法及设备,该方法中选择一个作为主显卡,其他显卡作为从显卡;当接收到视频数据时,选取使用率最低的显卡解码视频数据;当选择的为从显卡时,从所有显卡中查找一个支持DirectX12的显卡,并创建跨设备共享纹理;在选择的从显卡中使用DirectX 11映射跨设备共享纹理;将解码后的数据拷贝值映射的跨设备共享纹理后,将显存中数据转移至主显卡的显存中;主显卡融合多层纹理后渲染显示。本发明充分利用多张显卡实现高性能硬件解码和渲染。
Description
技术领域
本发明涉及视频解码领域,尤其涉及一种基于多显卡的视频解码渲染方法及设备。
背景技术
显卡(Graphics Card,也称为显示适配器)是计算机中的一种重要的硬件设备,它的作用和功能如下:显示输出、加速计算、硬件解码。近些年随着科技的发展,各大头部芯片厂商都相继推出了自家的GPU显卡芯片,目前市面上的显卡类型主要分为集成显卡、核芯显卡、独立显卡;其中集成显卡和核芯显卡大多数是集成在CPU或主板上,可以和独立显卡共存。在视频解码过程中,往往由单个显卡独立完成,因此资源利用率较低。
发明内容
为了解决上述问题,本发明提出了一种基于多显卡的视频解码渲染方法及设备。
具体方案如下:
一种基于多显卡的视频解码渲染方法,包括以下步骤:
S1:从设备包含的所有显卡中选择一个作为主显卡,其他显卡作为从显卡;
S2:调用QT接口,将QT底层渲染引擎修改为OpenGLES;
S3:当接收到待显示视频数据时,遍历所有显卡的使用率,选取使用率最低的显卡解码视频数据;
S4:判断使用率最低的显卡是否为主显卡,如果是,调用QOpenGLWidget对解码后的数据进行渲染显示;否则,进入S5;
S5:从所有显卡中查找一个支持DirectX 12的显卡,并在查找到的显卡中通过DirectX 12创建跨设备共享纹理;
S6:在使用率最低的显卡中使用DirectX 11映射步骤S5中通过DirectX 12创建跨设备共享纹理;
S7:将使用率最低的显卡解码后的数据拷贝至映射的跨设备共享纹理后,将存储在使用率最低的显卡的显存中的数据转移至主显卡的显存中;
S8:主显卡融合多层纹理后,调用QOpenGLWidget进行渲染显示。
进一步的,步骤S2还包括基于DirectX12多适配器的技术要求,将Angle源码修改为支持DirectX12 Cross Adapter纹理使用。
进一步的,各显卡解码视频数据的方法为:调用DXVA2 API接口控制显卡解码视频数据。
一种基于多显卡的视频解码渲染设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,本发明实施例利用Directx12多适配器技术在QT开源框架上修改其底层依赖的子模块Google Angle项目源码并重新编译,使其在Windows操作系统下充分利用多张显卡实现高性能硬件解码和渲染,配合CPU解码+多GPU解码将整台PC机的硬件资源利用率最大化。
附图说明
图1所示为本发明实施例一的流程图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种基于多显卡的视频解码渲染方法,如图1所示,所述方法包括以下步骤:
S1:从设备包含的所有显卡中选择一个作为主显卡,其他显卡作为从显卡。
如将包含的三个显卡GPU0、GPU1和GPU2中的GPU0设置为主显卡,GPU1和GPU2设置为从显卡。
从显卡主要用于解码,主显卡除了用于解码之外,还用于渲染。
S2:调用QT接口,将QT底层渲染引擎修改为OpenGLES。
在修改渲染QT底层渲染引擎后,为了支持DirectX12,本实施例中基于DirectX12多适配器(Multiadapter)的技术要求,将Angle源码修改为支持DirectX12 Cross Adapter纹理使用。
S3:当接收到待显示视频数据时,遍历所有显卡的使用率,选取使用率最低的显卡解码视频数据。
本实施例中各显卡解码视频数据的方法为:调用DXVA2(DirectX VideoAcceleration 2.0,视频硬件加速)API接口控制显卡解码视频数据。
S4:判断使用率最低的显卡是否为主显卡,如果是,调用QOpenGLWidget对解码后的数据进行渲染显示;否则,进入S5。
S5:从所有显卡中查找一个支持DirectX 12的显卡,并在查找到的显卡中通过DirectX 12创建跨设备共享纹理。
S6:在使用率最低的显卡中使用DirectX 11映射步骤S5中通过DirectX 12创建跨设备共享纹理。
S7:将使用率最低的显卡解码后的数据拷贝至映射的跨设备共享纹理后,将存储在使用率最低的显卡的显存中的数据转移至主显卡的显存中。
S8:主显卡融合多层纹理后,调用QOpenGLWidget进行渲染显示。
通过重复步骤S3-S8,定时获取每个显卡的使用率,动态的将当前所有视频流均衡分配至每个显卡进行硬件解码。
相比较传统的方案从GPU1或GPU2显存中取回图像数据到内存再由CPU将数据上传至GPU0的显存再进行渲染,本实施例方法直接从GPU1或GPU2显存传输至GPU0显存进行渲染,不仅加快了渲染速度,还大幅度的降低了CPU的消耗从而增加更多的播放路数。
实施例二:
本发明还提供一种基于多显卡的视频解码渲染设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述基于多显卡的视频解码渲染设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于多显卡的视频解码渲染设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述基于多显卡的视频解码渲染设备的组成结构仅仅是基于多显卡的视频解码渲染设备的示例,并不构成对基于多显卡的视频解码渲染设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于多显卡的视频解码渲染设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于多显卡的视频解码渲染设备的控制中心,利用各种接口和线路连接整个基于多显卡的视频解码渲染设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于多显卡的视频解码渲染设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (4)
1.一种基于多显卡的视频解码渲染方法,其特征在于,包括以下步骤:
S1:从设备包含的所有显卡中选择一个作为主显卡,其他显卡作为从显卡;
S2:调用QT接口,将QT底层渲染引擎修改为OpenGLES;
S3:当接收到待显示视频数据时,遍历所有显卡的使用率,选取使用率最低的显卡解码视频数据;
S4:判断使用率最低的显卡是否为主显卡,如果是,调用QOpenGLWidget对解码后的数据进行渲染显示;否则,进入S5;
S5:从所有显卡中查找一个支持DirectX 12的显卡,并在查找到的显卡中通过DirectX12创建跨设备共享纹理;
S6:在使用率最低的显卡中使用DirectX 11映射步骤S5中通过DirectX 12创建跨设备共享纹理;
S7:将使用率最低的显卡解码后的数据拷贝至映射的跨设备共享纹理后,将存储在使用率最低的显卡的显存中的数据转移至主显卡的显存中;
S8:主显卡融合多层纹理后,调用QOpenGLWidget进行渲染显示。
2.根据权利要求1所述的基于多显卡的视频解码渲染方法,其特征在于:步骤S2还包括基于DirectX12多适配器的技术要求,将Angle源码修改为支持DirectX12 Cross Adapter纹理使用。
3.根据权利要求1所述的基于多显卡的视频解码渲染方法,其特征在于:各显卡解码视频数据的方法为:调用DXVA2 API接口控制显卡解码视频数据。
4.一种基于多显卡的视频解码渲染设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~3中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311179972.7A CN117354532A (zh) | 2023-09-13 | 2023-09-13 | 一种基于多显卡的视频解码渲染方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311179972.7A CN117354532A (zh) | 2023-09-13 | 2023-09-13 | 一种基于多显卡的视频解码渲染方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354532A true CN117354532A (zh) | 2024-01-05 |
Family
ID=89358413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311179972.7A Pending CN117354532A (zh) | 2023-09-13 | 2023-09-13 | 一种基于多显卡的视频解码渲染方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354532A (zh) |
-
2023
- 2023-09-13 CN CN202311179972.7A patent/CN117354532A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928695B (zh) | 一种关于显存的管理方法、装置及计算机存储介质 | |
US8350864B2 (en) | Serializing command streams for graphics processors | |
US9715750B2 (en) | System and method for layering using tile-based renderers | |
US8675000B2 (en) | Command buffers for web-based graphics rendering | |
US8610732B2 (en) | System and method for video memory usage for general system application | |
CN111737019B (zh) | 一种显存资源的调度方法、装置及计算机存储介质 | |
US7898554B2 (en) | Asymmetric two-pass graphics scaling | |
WO2016200532A1 (en) | Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices | |
US20100141664A1 (en) | Efficient GPU Context Save And Restore For Hosted Graphics | |
WO2021013019A1 (zh) | 一种图片处理方法及装置 | |
US9542715B2 (en) | Memory space mapping techniques for server based graphics processing | |
US9805439B2 (en) | Memory space mapping techniques for server based graphics processing | |
US11727632B2 (en) | Shader binding management in ray tracing | |
US8237723B2 (en) | Deferred deletion and cleanup for graphics resources | |
US9679408B2 (en) | Techniques for enhancing multiple view performance in a three dimensional pipeline | |
WO2017039865A1 (en) | Facilitating efficient scheduling of graphics workloads at computing devices | |
US20140055470A1 (en) | Host Context Techniques for Server Based Graphics Processing | |
CN114025238A (zh) | 基于Linux服务器原生安卓应用云端虚拟化方法 | |
CN117058288A (zh) | 图形处理器及方法、多核图形处理系统、电子装置及设备 | |
WO2017082976A1 (en) | Facilitating efficeint graphics commands processing for bundled states at computing devices | |
CN117354532A (zh) | 一种基于多显卡的视频解码渲染方法及设备 | |
US20220004438A1 (en) | Gpu program multi-versioning for hardware resource utilization | |
US8279229B1 (en) | System, method, and computer program product for providing access to graphics processor CPU cores, to both a graphics processor and a CPU | |
CN112905275B (zh) | 用于多操作系统的显示方法和显示设备 | |
US8587599B1 (en) | Asset server for shared hardware graphic data |
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 |