CN113946373B - 一种基于负载均衡的虚拟现实多个视频流渲染方法 - Google Patents
一种基于负载均衡的虚拟现实多个视频流渲染方法 Download PDFInfo
- Publication number
- CN113946373B CN113946373B CN202111179979.XA CN202111179979A CN113946373B CN 113946373 B CN113946373 B CN 113946373B CN 202111179979 A CN202111179979 A CN 202111179979A CN 113946373 B CN113946373 B CN 113946373B
- Authority
- CN
- China
- Prior art keywords
- video stream
- thread blocks
- processing
- size
- grid0
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种基于负载均衡的虚拟现实多个视频流渲染方法,涉及多路视频渲染技术领域,解决对多路视频进行渲染时的资源浪费问题,包括以下步骤:GPU初始化,按照功能块划分为2个网格Grid0和Grid1,Grid0用于视频流渲染,Grid1用于视频压缩处理,每个网格内有多个用于处理用的线程块;接收需要渲染的多个视频流,获取GPU性能参数;基于负载均衡为每个视频流分配处理用的线程块;将每个视频流传输给分配好的线程块进行处理;处理完毕,传输处理结果。本发明处理效率高和充分利用资源的优点。
Description
技术领域
本发明涉及多路视频渲染技术领域,更具体的是涉及基于负载均衡的虚拟现实多个视频流渲染方法技术领域。
背景技术
21世纪是信息时代,信息学科和信息产业的迅猛发展促使传统的光学仪器科学向光电信息学科扩展。现代光电信息学科及其产业的发展要求新一代的科学研究人员与工程技术人员除了具有扎实的理论基础,还应具有应用所学理论建模并仿真求解光电信息学科及现代光学中各种问题的能力,成为知识结构新和创新能力强的高层次人才。
光学仿真是产品设计师应用的关键工具之一,能让用户在制作物理原型之前就通过数字环境体验产品。这对无人驾驶领域来说显得尤为重要,因为自动驾驶需要不同的光学传感器支撑。合适的光学仿真解决方案不仅能有效帮助用户提高设计效率,还能对光线与材料的交互进行仿真,以便了解产品在真实条件下的展示效果。
在虚拟现实工程中,需要同时对多路视频流进行渲染并传输,才能满足显示使用者的需求,现有的技术是通过多机器分布式,每一台工作站渲染一路视频,这样不仅仅对计算机资源造成了浪费,并且对计算机软件程序加大了复杂度。
发明内容
本发明的目的在于:解决对多路视频进行渲染时的资源浪费问题。为了解决上述技术问题,本发明提供一种基于负载均衡的虚拟现实多个视频流渲染方法。
本发明为了实现上述目的具体采用以下技术方案:
一种基于负载均衡的虚拟现实多个视频流渲染方法,包括以下步骤:
步骤S1:GPU初始化,按照功能块划分为2个网格,Grid0和Grid1,Grid0用于视频流渲染,Grid1用于视频压缩处理,每个网格内有多个用于处理用的线程块;
步骤S2:接收需要渲染的多个视频流,获取GPU性能参数;
步骤S3:基于负载均衡为每个视频流分配处理用的线程块;
步骤S4:将每个视频流传输给分配好的线程块进行处理;
步骤S5:处理完毕,传输处理结果。
优选地,所述步骤S2中,所述步骤S2中,所述GPU性能参数包括每个线程块的大小、所述Grid0里的线程块的数量和所述Grid1里的线程块数量。
优选地,所述Grid0里的线程块和所述Grid1里的线程块数量与大小相同,若所述步骤S2中,接收的多个视频流的总个数不大于Grid0里的线程块的数量,则继续进入所述步骤S3进行处理,否则终止处理。
优选地,所述步骤S3中,基于负载均衡分配处理用的线程块的方法为:计算每个视频流需要的线程块的大小B,根据每个视频流需要的线程块的大小分别分配1个Grid0中的线程块和1个Grid1中的线程块。
优选地,所述计算每个视频流需要的线程块的大小的方法为:
B=Size*Frame,
其中B为需要的线程块的大小,Size为视频流中每帧图像的尺寸,Frame为视频流每秒的帧数。
优选地,所述根据每个视频流需要的线程块的大小分配对应的线程块时,对所述每个视频流需要的线程块大小按照从大到小的顺序进行排序,按照排序依次对每个视频流分配线程块。
优选地,所述步骤S4中,用所述Grid0和所述Grid1对所述视频流进行渲染处理,再进行压缩处理。
优选地,所述压缩处理的具体方法包括以下步骤:
步骤S401:获取所述Gr i d0渲染得到的RGB图像序列,传入编码压缩线程块;
步骤S402:对每一帧RGB图像序列分配线程块和线程,并行转换色彩空间得到YUV图像;
步骤S403:将YUV图像序列传入GPU的NVENCBLOCK,实时进行压缩编码;
步骤S404:从GPU获取编码后数据,进行视频格式封装。
优选地,在进行所述步骤S5中传输处理结果的步骤为:
步骤S501:根据Gr i d0渲染结果获取参数,参数包括图像帧的大小、压缩率、饱和度;
步骤S502:根据图像帧的参数创建待发送视频流,初始化网络;
步骤S503:将处理后的视频流通过创建的待发送视频流进行传输。
本发明的有益效果如下:
本发明根据GPU对图像渲染的特性,使用GPU负载均衡方法,将渲染和压缩传输分开,能够让虚拟现实仿真平台在多路视频渲染压缩传输中性能以指数级效率提升,突破了传统视频传输的性能限制;逐一计算每个视频流的参数,按照视频流需要的线程块大小排序逐个分配可以防止大的视频流匹配不到足够大的线程块的情况发生;若视频流总个数超出核心数,则停止处理,防止出现拥堵。
附图说明
图1是实施例1的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例提供一种基于负载均衡的虚拟现实多个视频流渲染方法,包括以下步骤:
步骤S1:GPU初始化,按照功能块划分为2个网格,Grid0和Grid1,Grid0用于视频流渲染,Grid1用于视频压缩处理,每个网格内有多个用于处理用的线程块。
步骤S2:接收需要渲染的多个视频流,获取GPU性能参数;
在本实施例中所述步骤S2中,所述GPU性能参数包括每个线程块的大小、所述Grid0里的线程块的数量和所述Grid1里的线程块数量,所述Grid0里的线程块和所述Grid1里的线程块数量与大小相同,为了防止视频流处理了较大造成任务冲突,若所述步骤S2中,接收的多个视频流的总个数不大于Grid0里的线程块的数量,则继续进入所述步骤S3进行处理,否则终止处理;如此处理是基于Grid0和Grid1分别用于视频渲染和视频压缩,而本实施例的Grid0和Grid1中具有相同的线程块数量,Grid0中每一个线程块会被分配一个视频流进行渲染,然后渲染后的该视频流进入Grid1中的相应线程块进行压缩处理,因此一次性能处理的最大视频流数量即为Grid0里的线程块数量。
步骤S3:基于负载均衡为每个视频流分配处理用的线程块,本实施例采用的具体分配方法如下:
首先,计算每个视频流需要的线程块的大小,然后根据每个视频流需要的线程块的大小分别分配1个Grid0中的线程块和1个Grid1中的线程块;为每个视频流分配的线程块大小不小于视频流需要的线程块的大小B;
具体地,所述计算每个视频流需要的线程块的大小B的方法为:
B=Size*Frame,
其中B为需要的线程块的大小,Size为视频流中每帧图像的尺寸,通常单位为M,Frame为视频流每秒的帧数,例如,一个视频流为规格1080P的视频,每帧图像的大小约为1920*1080*3/1024=6M,若每秒的帧数为30帧,即需要6Mx30=180M的线程块大小,因此匹配给改视频流的线程块应当不小于180M;
此外,所述根据每个视频流需要的线程块的大小分配对应的线程块时,对所述每个视频流需要的线程块大小按照从大到小的顺序进行排序,按照排序依次对每个视频流分配线程块;比如三个视频流,视频流1需要的线程块大小为200M,视频流2需要的线程块大小为240M,视频流3需要的线程块大小为180M,则在分配线程块时,先给视频流2进行线程块分配,再给视频流1进行线程块分配,最后给视频流3进行线程块分配。
步骤S4:将每个视频流传输给分配好的线程块进行处理,由于本实施例中Grid0和Grid1中线程块的数量和大小均相同,因此相当于Grid0的线程块和Grid1中的与之相同大小的线程块可以看为成对的,在分配时也相当于成对分配;
在进行处理时,可以采用所述Grid0和所述Grid1对所述视频流进行渲染处理,再进行压缩处理,本实施例中所述压缩处理的具体方法可以包括以下步骤:
步骤S401:获取所述Grid0渲染得到的RGB图像序列,传入编码压缩线程块;
步骤S402:对每一帧RGB图像序列分配线程块和线程,并行转换色彩空间得到YUV图像;
步骤S403:将YUV图像序列传入GPU的NVENCBlock,实时进行压缩编码;
步骤S404:从GPU获取编码后数据,进行视频格式封装。
步骤S5:处理完毕,传输处理结果;
进一步地,在进行所述步骤S5中传输处理结果的步骤可以为:
步骤S501:根据Grid0渲染结果获取参数,参数包括图像帧的大小、压缩率、饱和度;
步骤S502:根据图像帧的参数创建待发送视频流,初始化网络;
步骤S503:将处理后的视频流通过创建的待发送视频流进行传输。
特别说明的是,通常为了方便处理,在软件处理方面,把GPU上的计算单元分为若干个网格Grid,每个网格内包含若干个线程块Block,每个线程块包含若干个线程Thread。
最后,对采用本实施例的技术方法进行了效果测试,下列表1为采用本实施例的基于负载均衡处理方案进行多路视频渲染与其他处理方法的测试结果对比:
表1:测试结果对比表
测试硬件如下:
CPU:i7-11700K,该CPU为8核的主频4.6GHz的处理器;
显卡:GTX3080Ti;
内存:64G;
上述处理用的视频流均为1080P视频,从测试效果可发现,在同样的配置下,从上表可以看出,通常处理一路1080P的高清视频cpu占用率均达到至少50%,而采用本实施例提出的负载均衡处理单个视频的GPU占用率仅为25%,因此,采用本实施例提出的负载均衡多视频流处理技术,性能提高了很大幅度。
Claims (3)
1.一种基于负载均衡的虚拟现实多个视频流渲染方法,其特征在于,包括以下步骤:
步骤S1:GPU初始化,按照功能块划分为2个网格Grid0和Grid1,Grid0用于视频流渲染,Grid1用于视频压缩处理,每个网格内有多个用于处理用的线程块;
步骤S2:接收需要渲染的多个视频流,获取GPU性能参数;
步骤S3:基于负载均衡为每个视频流分配处理用的线程块;
步骤S4:将每个视频流传输给分配好的线程块进行处理;
步骤S5:处理完毕,传输处理结果;
所述步骤S2中,所述GPU性能参数包括每个线程块的大小、所述Grid0里的线程块的数量和所述Grid1里的线程块数量;
所述Grid0里的线程块和所述Grid1里的线程块数量与大小相同,若所述步骤S2中,接收的多个视频流的总个数不大于Grid0里的线程块的数量,则继续进入所述步骤S3进行处理,否则终止处理;
所述步骤S3中,基于负载均衡分配处理用的线程块的方法为:计算每个视频流需要的线程块的大小B,根据每个视频流需要的线程块的大小分别分配1个Grid0中的线程块和1个Grid1中的线程块;
所述计算每个视频流需要的线程块的大小的方法为:
B=Size*Frame,
其中B为需要的线程块的大小,Size为视频流中每帧图像的尺寸,Frame为视频流每秒的帧数;
所述根据每个视频流需要的线程块的大小分配对应的线程块时,对所述每个视频流需要的线程块大小按照从大到小的顺序进行排序,按照排序依次对每个视频流分配线程块;
所述步骤S4中,用所述Grid0和所述Grid1对所述视频流进行渲染处理,再进行压缩处理。
2.根据权利要求1所述的一种基于负载均衡的虚拟现实多个视频流渲染方法,其特征在于,所述压缩处理的具体方法包括以下步骤:
步骤S401:获取所述Grid0渲染得到的RGB图像序列,传入编码压缩线程块;
步骤S402:对每一帧RGB图像序列分配线程块和线程,并行转换色彩空间得到YUV图像;
步骤S403:将YUV图像序列传入GPU的NVENCBLOCK,实时进行压缩编码;
步骤S404:从GPU获取编码后数据,进行视频格式封装。
3.根据权利要求1所述的一种基于负载均衡的虚拟现实多个视频流渲染方法,其特征在于,在进行所述步骤S5中传输处理结果的步骤为:
步骤S501:根据Grid0渲染结果获取参数,参数包括图像帧的大小、压缩率、饱和度;
步骤S502:根据图像帧的参数创建待发送视频流,初始化网络;
步骤S503:将处理后的视频流通过创建的待发送视频流进行传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111179979.XA CN113946373B (zh) | 2021-10-11 | 2021-10-11 | 一种基于负载均衡的虚拟现实多个视频流渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111179979.XA CN113946373B (zh) | 2021-10-11 | 2021-10-11 | 一种基于负载均衡的虚拟现实多个视频流渲染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113946373A CN113946373A (zh) | 2022-01-18 |
CN113946373B true CN113946373B (zh) | 2023-06-09 |
Family
ID=79330108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111179979.XA Active CN113946373B (zh) | 2021-10-11 | 2021-10-11 | 一种基于负载均衡的虚拟现实多个视频流渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946373B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049927A (zh) * | 2013-01-17 | 2013-04-17 | 浙江大学 | 基于gpu集群的实时光线跟踪渲染方法 |
CN103888771A (zh) * | 2013-12-30 | 2014-06-25 | 中山大学深圳研究院 | 基于gpgpu技术的并行视频图像处理方法 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN107277616A (zh) * | 2017-07-21 | 2017-10-20 | 广州爱拍网络科技有限公司 | 视频特效渲染方法、装置及终端 |
CN109783232A (zh) * | 2018-12-21 | 2019-05-21 | 王家万 | 视频数据处理方法、装置及存储介质 |
CN109922360A (zh) * | 2019-03-07 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置及存储介质 |
CN110381322A (zh) * | 2019-07-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、终端设备及存储介质 |
CN112860944A (zh) * | 2021-02-05 | 2021-05-28 | 北京百度网讯科技有限公司 | 视频渲染方法、装置、设备、存储介质及计算机程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6574974B2 (ja) * | 2015-09-29 | 2019-09-18 | Run.Edge株式会社 | 動画像再生装置、動画像配信サーバ、動画像再生方法、動画像配信方法、動画像再生プログラム、及び動画像配信プログラム |
-
2021
- 2021-10-11 CN CN202111179979.XA patent/CN113946373B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049927A (zh) * | 2013-01-17 | 2013-04-17 | 浙江大学 | 基于gpu集群的实时光线跟踪渲染方法 |
CN103888771A (zh) * | 2013-12-30 | 2014-06-25 | 中山大学深圳研究院 | 基于gpgpu技术的并行视频图像处理方法 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN107277616A (zh) * | 2017-07-21 | 2017-10-20 | 广州爱拍网络科技有限公司 | 视频特效渲染方法、装置及终端 |
CN109783232A (zh) * | 2018-12-21 | 2019-05-21 | 王家万 | 视频数据处理方法、装置及存储介质 |
CN109922360A (zh) * | 2019-03-07 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置及存储介质 |
CN110381322A (zh) * | 2019-07-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、终端设备及存储介质 |
CN112860944A (zh) * | 2021-02-05 | 2021-05-28 | 北京百度网讯科技有限公司 | 视频渲染方法、装置、设备、存储介质及计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN113946373A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388460B (zh) | 基于图形集群的远程实时渲染平台构建方法 | |
DE102018130037B4 (de) | DYNAMISCHES JITTER- und LATENZ-TOLERANTES RENDERING | |
Cai et al. | Toward gaming as a service | |
US10832462B2 (en) | Image synthesis method, image chip, and image device | |
CN113157418B (zh) | 服务器资源分配方法和装置、存储介质及电子设备 | |
CN105635751B (zh) | 一种视频云平台播放视频的方法及装置 | |
CN104660711A (zh) | 一种基于图形处理器虚拟化的远程可视化应用方法 | |
TW201019263A (en) | Integrated GPU, NIC and compression hardware for hosted graphics | |
CN109922319A (zh) | 基于多核cpu的rtsp协议多视频流并行预处理方法 | |
KR20170096511A (ko) | 멀티코어 컴퓨팅 시스템에서 병렬 비디오 처리 장치 및 방법 | |
CN116389831B (zh) | 一种基于云原生的离线渲染系统及方法 | |
CN106201259A (zh) | 一种虚拟现实系统中分享全景影像的方法和装置 | |
CN101040270A (zh) | 命令传输控制装置和命令传输控制方法 | |
CN112181657A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
Yadav et al. | Adaptive GPU resource scheduling on virtualized servers in cloud gaming | |
WO2013097210A1 (zh) | 基于云应用的在线渲染方法和离线渲染方法及相关装置 | |
CN202422104U (zh) | 多屏并行海量信息展示系统 | |
CN114926318A (zh) | 多gpu聚合方法、图像处理装置、电子设备和存储介质 | |
CN113946373B (zh) | 一种基于负载均衡的虚拟现实多个视频流渲染方法 | |
CN109840597B (zh) | 一种模型预测方法、装置、电子设备及存储介质 | |
RU2446472C2 (ru) | Способ кодирования и система отображения на экране цифрового макета объекта в виде синтезированного изображения | |
CN117115326A (zh) | 三维场景模型的渲染方法、装置及分布式渲染服务器 | |
Lin et al. | Cloudlet-screen computing: a multi-core-based, cloud-computing-oriented, traditional-computing-compatible parallel computing paradigm for the masses | |
CN112954438A (zh) | 一种图像处理方法以及装置 | |
CN114896076B (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 |