CN115988217B - 一种虚拟化视频编解码系统、电子设备和存储介质 - Google Patents
一种虚拟化视频编解码系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115988217B CN115988217B CN202310242163.XA CN202310242163A CN115988217B CN 115988217 B CN115988217 B CN 115988217B CN 202310242163 A CN202310242163 A CN 202310242163A CN 115988217 B CN115988217 B CN 115988217B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- decoding
- ith
- video coding
- register set
- 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
-
- 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
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及计算机领域,公开了一种虚拟化视频编解码系统、电子设备和存储介质,所述系统包括:虚拟机监视器、n个虚拟机、n个虚拟机寄存器组、m个视频编解码内核、负载均衡器、多路选通器,n个虚拟机与n个虚拟机寄存器组一一对应;虚拟机监视器用于将第i个虚拟机对应的当前视频编解码任务的配置信息,配置到第i个虚拟机寄存器组;负载均衡器用于为第i个虚拟机寄存器组分配具有空闲算力的第j个视频编解码内核;第j个视频编解码内核用于基于多路选通器,从第i个虚拟机寄存器组中读取配置信息,以及基于配置信息执行第i个虚拟机对应的当前视频编解码任务。本公开实施例可以最大化利用所有硬件资源,提高系统处理性能。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种虚拟化视频编解码系统、电子设备和存储介质。
背景技术
虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,例如,服务器、网络、内存及存储等予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以利用比原本的组态更好的方式来应用这些资源。虚拟化则是一种逻辑角度出发的资源配置技术,是物理实际的逻辑抽象。将一般的计算模型抽象成为一定的物理资源和运行于之上的计算元件,它们之间通过定义的物理资源接口进行交互。完全虚拟化的任务应该做到无法感知其以外的其他任务和数据。
虚拟化视频技术则体现为在同一套物理资源上同时处理多个互不影响的视频任务。作为视频用户,比较典型的虚拟化视频技术应用场景为在同一个操作系统下的多个用户分别拥有自己的虚拟机,这些用户分别在自己所属的虚拟机下打开不同的视频窗口执行视频窗口的播放任务,此时这些虚拟机的用户之间的视频任务是独立的、互不感知、互不影响的。随着围绕数字化、网络化开展的多媒体处理业务的不断增加,视频编解码的虚拟化应用越来越多,对其性能也要求越来越高。这不仅表现在对数据存储的要求,还包括对数据的访问安全性、处理性能、管理能力以及扩展能力等多方面的要求。因此,亟需一种虚拟化视频编解码系统。
发明内容
本公开提出了一种虚拟化视频编解码系统、电子设备和存储介质技术方案。
根据本公开的一方面,提供了一种虚拟化视频编解码系统,包括:虚拟机监视器、n个虚拟机、n个虚拟机寄存器组、m个视频编解码内核、负载均衡器、多路选通器,所述n个虚拟机与所述n个虚拟机寄存器组一一对应,n和m是大于等于2的正整数;所述虚拟机监视器,用于将第i个虚拟机对应的当前视频编解码任务的配置信息,配置到第i个虚拟机寄存器组,其中,i是大于等于1且小于等于n的正整数;所述负载均衡器,用于为所述第i个虚拟机寄存器组分配具有空闲算力的第j个视频编解码内核,其中,j是大于等于1且小于等于m的正整数;所述第j个视频编解码内核,用于基于所述多路选通器,从所述第i个虚拟机寄存器组中读取所述配置信息,以及基于所述配置信息执行所述第i个虚拟机对应的当前视频编解码任务。
在一种可能的实现方式中,所述系统还包括:存储管理模块、存储单元;所述配置信息中包括执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小;所述第j个视频编解码内核,用于将执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小发送至所述存储管理模块;所述存储管理模块,用于基于执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小,在所述存储单元中为所述第i个虚拟机分配对应的目标存储空间。
在一种可能的实现方式中,所述第j个视频编解码内核在执行所述第i个虚拟机对应的当前视频编解码任务的过程中,基于所述第i个虚拟机对应的目标存储空间进行数据访存。
在一种可能的实现方式中,所述虚拟机监视器与每个所述虚拟机对应的所述虚拟机寄存器组之间通过不同的中断信号进行通信。
在一种可能的实现方式中,所述第i个虚拟机寄存器组中包括中断寄存器;所述第j个视频编解码内核,用于在执行完所述第i个虚拟机对应的当前视频编解码任务后,向所述第i个虚拟机寄存器组发送中断请求;所述第i个虚拟机寄存器组,用于基于所述中断请求,在所述第i个虚拟机寄存器组中的中断寄存器中,生成所述第i个虚拟机对应的中断信号;所述第i个虚拟机寄存器组,用于将所述第i个虚拟机对应的中断信号,发送至所述虚拟机监视器。
在一种可能的实现方式中,所述虚拟机监视器,用于在接收到所述第i个虚拟机对应的中断信号后,将所述第i个虚拟机对应的下一个视频编解码任务的配置信息,配置到所述第i个虚拟机寄存器组。
在一种可能的实现方式中,所述虚拟机监视器分别与每个所述虚拟机寄存器组存在对应的配置接口;所述虚拟机监视器,用于基于与每个所述虚拟机寄存器组对应的配置接口,分别将每个所述虚拟机对应的当前视频编解码任务的配置信息,配置到对应的每个所述虚拟机寄存器组。
在一种可能的实现方式中,所述n个虚拟机寄存器组与所述m个视频编解码内核之间,通过所述多路选通器形成互连。
在一种可能的实现方式中,所述m个视频编解码内核位于一个芯片;或,所述m个视频编解码内核位于多个芯片。
在一种可能的实现方式中,所述m个视频编解码内核支持并行处理视频编解码任务。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以运行上述系统。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时运行上述系统。
在本公开实施例中,虚拟化视频编解码系统包括:虚拟机监视器、n个虚拟机、n个虚拟机寄存器组、m个视频编解码内核、负载均衡器、多路选通器,n个虚拟机与n个虚拟机寄存器组一一对应,n和m是大于等于2的正整数;虚拟机监视器将第i个虚拟机对应的当前视频编解码任务的配置信息,配置到第i个虚拟机寄存器组,其中,i是大于等于1且小于等于n的正整数;负载均衡器为第i个虚拟机寄存器组分配具有空闲算力的第j个视频编解码内核,其中,j是大于等于1且小于等于m的正整数;第j个视频编解码内核基于多路选通器,从第i个虚拟机寄存器组中读取配置信息,以及基于配置信息执行第i个虚拟机对应的当前视频编解码任务。利用多个视频编解码内核能够增加虚拟化视频编解码系统的吞吐量,提高系统处理性能;利用多路选通器能够实现虚拟化视频编解码系统中多个视频编解码内核的可扩展性,从而有效满足系统性能需求;利用负载均衡器能够实现多个视频编解码内核的负载均衡,从而最大化利用所有硬件资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的单核虚拟化视频编解码系统的示意图。
图2示出根据本公开实施例的虚拟化视频编解码的示意图。
图3示出根据本公开实施例的一种虚拟化视频编解码系统的示意图。
图4示出根据本公开实施例的虚拟化视频编解码的示意图。
图5示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
在一些实施方式中,可以通过增加硬件寄存器组的形式,实现运行在主机(HOST)内的Hypervisor,又称为虚拟机监视器(Virtual Machine Monitor,VMM),与单个视频编解码内核之间的交互,即采用的是单核虚拟化视频编解码系统。图1示出根据本公开实施例的单核虚拟化视频编解码系统的示意图。如图1所示,单核虚拟化视频编解码技术的流程如下。
第一步:虚拟机监视器分配用于指示当前处理进程的虚拟机的虚拟机ID。
第二步:虚拟机监视器根据分配的虚拟机ID,通过配置接口配置与虚拟机ID对应的虚拟机寄存器组,配置信息包括初始化、休眠、唤醒等一系列配置命令和帧级码流控制以及所需存储空间大小的信息。如图1所示,系统包括p个虚拟机:VM_1至VM_p,其中,p是大于等于2的正整数,为虚拟机VM_1配置虚拟机寄存器组VM1_if,为虚拟机VM_p配置虚拟机寄存器组VMp_if。
第三步:视频编解码内核从相应的虚拟机寄存器组中读取配置命令,并将虚拟机ID和存储空间大小等信息传递至存储管理模块(Memory Management Unit,MMU)。
第四步:存储管理模块根据虚拟机ID以及存储空间大小等信息,在存储单元中分配虚拟机ID对应的专属存储空间。如图1所示,虚拟机VM_1对应存储空间VM1区域(VM1region),虚拟机VM_p对应存储空间VMp区域(VMp region)。如图1所示,存储单元中还包括:安全区域(Secure region)和虚拟机监视器区域(hypervisor region)。
第五步:视频编解码内核根据虚拟机寄存器组内的配置信息和命令进行相应的视频编解码操作,该过程中数据的访存均限于存储管理模块对当前虚拟机分配好的专属存储空间范围内。
第六步:视频编解码内核完成相应的视频编解码任务后,根据当前虚拟机ID将中断信号写回虚拟机寄存器组的中断寄存器,虚拟机寄存器组以提交中断信号的形式通知虚拟机监视器当前虚拟机的视频编解码任务完成,同时视频编解码内核根据虚拟机寄存器组的配置情况决定是否开启下一个虚拟机的视频编解码任务。
第七步:虚拟机监视器在收到视频编解码内核提交的中断信号后,可再启动下一轮视频编解码任务的配置。
单核虚拟化视频编解码技术虽然相比于软件配置方式有一定效果,但是仍然存在一些可以改进的空间。第一:单个视频编解码内核的视频编解码吞吐量,限制了虚拟化视频编解码系统的吞吐量。图2示出根据本公开实施例的虚拟化视频编解码的示意图。如图2所示,虚拟机监视器对虚拟机VM_1至VM_p进行配置(虚拟机监视器VM1,Hypervisor VM1;至虚拟机监视器VMp,Hypervisor VMp)之后,只能依靠单个视频编解码内核0(video-0),依次执行虚拟机VM_1至VM_p的视频编解码任务。视频编解码内核0处理虚拟机VM_1的视频编解码任务,如图2所示视频编解码内核0 VM1;视频编解码内核0处理虚拟机VM_2的视频编解码任务,如图2所示视频编解码内核0 VM2;以此类推,直至视频编解码内核0处理虚拟机VM_p-1的视频编解码任务,如图2所示视频编解码内核0 VMp-1;视频编解码内核0处理虚拟机VM_p的视频编解码任务,如图2所示视频编解码内核0 VMp;此处不作赘述。
对于视频播放场景来讲,单核虚拟化视频编解码方式不能保证多用户视频播放窗口的流畅性;对于AI场景来讲,单核虚拟化视频编解码方式限制了其训练所要求的图形处理能力。第二:单核虚拟化视频编解码方式限制了虚拟化视频编解码系统的扩展性,系统无法根据性能要求控制视频编解码内核的数量。第三:单核虚拟化视频编解码方式限制了中断响应时间,中断响应时间取决于单个视频编解码内核处理视频编解码的速度,这样可能使系统中其他任务因为单核视频编解码响应速度较慢而造成阻塞。
为了进一步解决单核虚拟化视频编解码技术所存在的问题,本公开实施例提供了一种支持多核的虚拟化视频编解码系统。下面对本公开提供的虚拟化视频编解码系统进行详细描述。
图3示出根据本公开实施例的一种虚拟化视频编解码系统的示意图。如图3所示,虚拟化视频编解码系统包括:虚拟机监视器、n个虚拟机(VM_1至VM_n)、n个虚拟机寄存器组(VM1_if至VMn_if)、m个视频编解码内核(视频编解码内核1(video-1)至视频编解码内核m(video-m))、负载均衡器(Load Balancer)、多路选通器(MUX),n个虚拟机与n个虚拟机寄存器组一一对应,n和m是大于等于2的正整数;虚拟机监视器,用于将第i个虚拟机对应的当前视频编解码任务的配置信息,配置到第i个虚拟机寄存器组,其中,i是大于等于1且小于等于n的正整数;负载均衡器,用于为第i个虚拟机寄存器组分配具有空闲算力的第j个视频编解码内核,其中,j是大于等于1且小于等于m的正整数;第j个视频编解码内核,用于基于多路选通器,从第i个虚拟机寄存器组中读取配置信息,以及基于配置信息执行第i个虚拟机对应的当前视频编解码任务。
虚拟机的个数n可以根据系统实际需要进行调节,本公开对此不作具体限定。针对n个虚拟机,虚拟机监视器对每个虚拟机进行单独维护。根据实际所需的n个虚拟机的具体个数,设置相应个数的n个虚拟机寄存器组(Virtual Machine Interface,VM_if),n个虚拟机与n个虚拟机寄存器组一一对应。
视频编解码内核的个数m可以根据系统实际需要进行调节,本公开对此不作具体限定。
根据本公开的实施例,利用多个视频编解码内核能够增加虚拟化视频编解码系统的吞吐量,提高系统处理性能;利用多路选通器能够实现虚拟化视频编解码系统中多个视频编解码内核的可扩展性,从而有效满足系统性能需求;利用负载均衡器能够实现多个视频编解码内核的负载均衡,从而最大化利用所有硬件资源。
在一种可能的实现方式中,m个视频编解码内核位于一个芯片;或,m个视频编解码内核位于多个芯片。
实现多核虚拟化视频编解码的m个视频编解码内核,可以位于同一个芯片上,也可以位于多个不同芯片上,本公开对此不作具体限定。
在一种可能的实现方式中,虚拟机监视器分别与每个虚拟机寄存器组存在对应的配置接口;虚拟机监视器,用于基于与每个虚拟机寄存器组对应的配置接口,分别将每个虚拟机对应的当前视频编解码任务的配置信息,配置到对应的每个虚拟机寄存器组。
虚拟机监视器与每个虚拟机寄存器组分别存在对应的配置接口,因此,虚拟机监视器能够基于与每个虚拟机寄存器组对应的配置接口,分别将每个虚拟机对应的当前视频编解码任务的配置信息,配置到对应的每个虚拟机寄存器组。
虚拟机监视器分配用于指示当前处理进程的虚拟机ID,在该过程中无需查询虚拟机ID指示的虚拟机以外的其他信息;进而,虚拟机监视器根据虚拟机ID,通过相应的配置接口,将虚拟机ID对应的当前视频编解码任务的配置信息,配置到相应的虚拟机寄存器组。
如图3所示,虚拟化视频编解码系统中包括n个虚拟机:VM_1至VM_n。虚拟机监视器基于与虚拟机寄存器组VM1_if对应的配置接口,将虚拟机VM_1对应的当前视频编解码任务的配置信息,配置到虚拟机寄存器组VM1_if;虚拟机监视器基于与虚拟机寄存器组VM2_if对应的配置接口,将虚拟机VM_2对应的当前视频编解码任务的配置信息,配置到虚拟机寄存器组VM2_if;以此类推,直至虚拟机监视器基于与虚拟机寄存器组VMn_if对应的配置接口,将虚拟机VM_n对应的当前视频编解码任务的配置信息,配置到虚拟机寄存器组VMn_if,此处不作赘述。
配置信息包括初始化、休眠、唤醒等一系列配置命令以及所需存储空间大小的信息等,本公开对配置信息的具体内容不作限定。
硬件虚拟机寄存器组的使用,使得各个虚拟机之间互不影响,实现配置隔离。相比于软件配置的方式,虚拟机监视器可以从繁复的查询调度工作中解放出来,减少软件配置消耗时间。各个虚拟机只需维护自身的配置信息,不同虚拟机之间相互无感知,从而以达到更彻底的虚拟化。
在一种可能的实现方式中,n个虚拟机寄存器组与m个视频编解码内核之间,通过多路选通器形成互连。
如图3所示,基于多路选通器,n个虚拟机寄存器组与m个视频编解码内核之间形成互连,以使得每个视频编解码内核均可以从任意一个虚拟机寄存器组中读取配置信息,以及基于配置信息,执行相应虚拟机的当前视频编解码任务。通过多路选通器的使用,可以使得本公开实施例的虚拟化视频编解码系统可以根据性能需求,对视频编解码内核的个数进行任意扩展,从而实现利用最小的硬件资源来满足系统性能需求的目标。
虚拟机监视器可以提前将尚未开始的虚拟机进程的虚拟机寄存器组配置好,以备任意一个视频编解码内核处理完上一视频编解码任务后,可以开启下一个视频编解码任务。
图4示出根据本公开实施例的虚拟化视频编解码的示意图。如图4所示,利用硬件的虚拟机寄存器组,虚拟机监视器可以对n个虚拟机(VM_1至VM_n)同步配置(虚拟机监视器VM1,Hypervisor VM1;至虚拟机监视器VMn,Hypervisor VMn),配置过程与m个视频编解码内核的视频编解码处理过程解耦,而无需按照软件配置中先后依赖的串行工作模式,从而解决了视频编解码过程中配置与计算能力不平衡的问题,有效提高了视频编解码硬核的处理性能。
虚拟机监视器在配置好第i个虚拟机对应的第i个虚拟机寄存器组之后,负载均衡器为第i个虚拟机寄存器组分配具有空闲算力的第j个视频编解码内核。
基于虚拟机监视器和负载均衡器,可以维护多个视频编解码内核是否具有空闲算力的信息,并基于多个视频编解码内核之间负载均衡的要求,为当前处理进程分配视频编解码内核,从而能够发挥多个视频编解码内核的最大性能。
在一种可能的实现方式中,虚拟化视频编解码系统还包括:存储管理模块、存储单元;配置信息中包括执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小;第j个视频编解码内核,用于将执行第i个虚拟机对应的当前视频编解码任务所需的存储空间大小发送至存储管理模块;存储管理模块,用于基于执行第i个虚拟机对应的当前视频编解码任务所需的存储空间大小,在存储单元中为所述第i个虚拟机分配对应的目标存储空间。
第i个虚拟机对应的当前视频编解码任务的配置信息中,包括执行第i个虚拟机对应的当前视频编解码任务所需的存储空间大小。第j个视频编解码内核从第i个虚拟机寄存器组中读取到第i个虚拟机对应的当前视频编解码任务的配置信息后,将配置信息中包括的执行第i个虚拟机对应的当前视频编解码任务所需的存储空间大小发送至存储管理模块,以使得存储管理模块在存储单元中为第i个虚拟机分配对应的目标存储空间。
相比于软件配置方式中虚拟机监视器耗费时间和算力进行维护、遍历、查询其他虚拟机所占用的存储空间,来防止不同虚拟机之间出现存储空间叠加,本申请实施例基于存储管理模块,使用硬件逻辑对不同虚拟机的专属存储空间的分配,有效实现了不同虚拟机之间的存储空间隔离,有效保证了数据访存的安全性,此外,解放了虚拟机监视器的查询调度工作,降低了虚拟机监视器的复杂度要求。
如图3所示,存储单元中包括:第1个虚拟机VM_1对应的目标存储空间VM1区域(VM1region),第2个虚拟机VM_2对应的目标存储空间VM2区域(VM2 region),以此类推,直至第n个虚拟机VM_n对应的目标存储空间VMn区域(VMn region),此处不作赘述。如图3所示,存储单元中还包括:安全区域(Secure region)和虚拟机监视器区域(hypervisor region)。
在一种可能的实现方式中,第j个视频编解码内核在执行第i个虚拟机对应的当前视频编解码任务的过程中,基于第i个虚拟机对应的目标存储空间进行数据访存。
第j个视频编解码内核基于从第i个虚拟机寄存器组中读取的配置信息中的相应配置指令,执行相应的视频编解码操作,在此过程中,仅基于第i个虚拟机对应的目标存储空间进行数据访存,从而避免不同虚拟机所占用的存储空间之间出现空间重叠。
在一种可能的实现方式中,每个虚拟机寄存器组中包括中断寄存器;基于每个虚拟机寄存器组中包括的中断寄存器,虚拟机监视器与每个虚拟机对应的虚拟机寄存器组之间通过不同的中断信号进行通信。
相比于软件配置中虚拟机监视器与多个虚拟机之间仅存在一个中断信号的方式,本公开实施例中基于硬件的中断寄存器,虚拟机监视器与每个虚拟机对应的虚拟机寄存器组之间均存在一个中断信号,实现了不同虚拟机之间的中断隔离,从而解放了虚拟机监视器对中断信号与不同虚拟机关系的维护和甄别查询工作,节约了算力和软件处理时间。
在一种可能的实现方式中,第j个视频编解码内核,用于在执行完第i个虚拟机对应的当前视频编解码任务后,向第i个虚拟机寄存器组发送中断请求;第i个虚拟机寄存器组,用于基于中断请求,在第i个虚拟机寄存器组中的中断寄存器中,生成第i个虚拟机对应的中断信号;第i个虚拟机寄存器组,用于将第i个虚拟机对应的中断信号,发送至虚拟机监视器。
第j个视频编解码内核在执行完第i个虚拟机对应的当前视频编解码任务后,向第i个虚拟机寄存器组发送中断请求,以使得第i个虚拟机寄存器组基于中断请求,在第i个虚拟机寄存器组中的中断寄存器中生成第i个虚拟机对应的中断信号,进而第i个虚拟机寄存器组将第i个虚拟机对应的中断信号,发送至虚拟机监视器,以通知虚拟机监视器第j个视频编解码内核对第i个虚拟机对应的当前视频编解码任务执行完成。
在一种可能的实现方式中,虚拟机监视器,用于在接收到第i个虚拟机对应的中断信号后,将第i个虚拟机对应的下一个视频编解码任务的配置信息,配置到第i个虚拟机寄存器组。
虚拟机监视器在接收到第i个虚拟机对应的中断信号后,可以确定第i个虚拟机对应的当前视频编解码任务完成,此时,虚拟机监视器可以将第i个虚拟机对应的下一个视频编解码任务的配置信息配置到第i个虚拟机寄存器组,即启动下一轮配置操作。
在一种可能的实现方式中,m个视频编解码内核支持并行处理视频编解码任务。
虚拟机监视器完成虚拟机寄存器组的配置之后,m个视频编解码内核可以并行执行视频编解码任务,有效降低中断等待时间,避免因为中断信号的过长等待造成系统其他任务的阻塞。如图4所示,视频编解码内核1(video-1)执行虚拟机VM1对应的当前视频编解码任务(图4中视频编解码内核1 VM1),视频编解码内核2(video-2)执行虚拟机VM2对应的当前视频编解码任务(图4中视频编解码内核2 VM2),以此类推,直至视频编解码内核m(video-m)执行虚拟机VMm对应的当前视频编解码任务(图4中视频编解码内核m VMm),上述过程可以同步并行执行。视频编解码内核1(video-1)执行虚拟机VMm+1对应的当前视频编解码任务(图4中视频编解码内核1 VMm+1),视频编解码内核2(video-2)执行虚拟机VMm+2对应的当前视频编解码任务(图4中视频编解码内核2 VMm+2),以此类推,直至视频编解码内核m(video-m)执行虚拟机VM2m对应的当前视频编解码任务(图4中视频编解码内核mVM2m),上述过程可以同步并行执行。以此类推,直至视频视频编解码内核1(video-1)执行虚拟机VMn-m对应的当前视频编解码任务(图4中视频编解码内核1 VMn-m),视频编解码内核2(video-2)执行虚拟机VMn-m+1对应的当前视频编解码任务(图4中视频编解码内核2VMn-m+1),以此类推,直至视频编解码内核m(video-m)执行虚拟机VMn对应的当前视频编解码任务(图4中视频编解码内核m VMn),上述过程可以同步并行执行,此处不作赘述。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种虚拟化视频编解码系统,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时运行上述系统。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以运行上述系统。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器运行上述系统。
电子设备可以被提供为终端、服务器或其它形态的设备。
图5示出根据本公开实施例的一种电子设备的框图。参照图5,电子设备1900可以被提供为一服务器或终端设备。参照图5,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OS XTM),多用户多进程的计算机操作系统(UnixTM), 自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.一种虚拟化视频编解码系统,其特征在于,包括:虚拟机监视器、n个虚拟机、n个虚拟机寄存器组、m个视频编解码内核、负载均衡器、多路选通器,所述n个虚拟机与所述n个虚拟机寄存器组一一对应,n和m是大于等于2的正整数;
所述虚拟机监视器,用于将第i个虚拟机对应的当前视频编解码任务的配置信息,配置到第i个虚拟机寄存器组,其中,i是大于等于1且小于等于n的正整数;
所述负载均衡器,用于为所述第i个虚拟机寄存器组分配具有空闲算力的第j个视频编解码内核,其中,j是大于等于1且小于等于m的正整数;
所述第j个视频编解码内核,用于基于所述多路选通器,从所述第i个虚拟机寄存器组中读取所述配置信息,以及基于所述配置信息执行所述第i个虚拟机对应的当前视频编解码任务;
所述系统还包括:存储管理模块、存储单元;所述配置信息中包括执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小;
所述第j个视频编解码内核,用于将执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小发送至所述存储管理模块;
所述存储管理模块,用于基于执行所述第i个虚拟机对应的当前视频编解码任务所需的存储空间大小,在所述存储单元中为所述第i个虚拟机分配对应的目标存储空间。
2.根据权利要求1所述的系统,其特征在于,所述第j个视频编解码内核在执行所述第i个虚拟机对应的当前视频编解码任务的过程中,基于所述第i个虚拟机对应的目标存储空间进行数据访存。
3.根据权利要求1或2所述的系统,其特征在于,每个所述虚拟机寄存器组中包括中断寄存器;
基于每个所述虚拟机寄存器组中包括的中断寄存器,所述虚拟机监视器与每个所述虚拟机对应的所述虚拟机寄存器组之间通过不同的中断信号进行通信。
4.根据权利要求3所述的系统,其特征在于,所述第j个视频编解码内核,用于在执行完所述第i个虚拟机对应的当前视频编解码任务后,向所述第i个虚拟机寄存器组发送中断请求;
所述第i个虚拟机寄存器组,用于基于所述中断请求,在所述第i个虚拟机寄存器组中的中断寄存器中,生成所述第i个虚拟机对应的中断信号;
所述第i个虚拟机寄存器组,用于将所述第i个虚拟机对应的中断信号,发送至所述虚拟机监视器。
5.根据权利要求4所述的系统,其特征在于,所述虚拟机监视器,用于在接收到所述第i个虚拟机对应的中断信号后,将所述第i个虚拟机对应的下一个视频编解码任务的配置信息,配置到所述第i个虚拟机寄存器组。
6.根据权利要求1所述的系统,其特征在于,所述虚拟机监视器分别与每个所述虚拟机寄存器组存在对应的配置接口;
所述虚拟机监视器,用于基于与每个所述虚拟机寄存器组对应的配置接口,分别将每个所述虚拟机对应的当前视频编解码任务的配置信息,配置到对应的每个所述虚拟机寄存器组。
7.根据权利要求1所述的系统,其特征在于,所述n个虚拟机寄存器组与所述m个视频编解码内核之间,通过所述多路选通器形成互连。
8.根据权利要求1所述的系统,其特征在于,所述m个视频编解码内核位于一个芯片;或,
所述m个视频编解码内核位于多个芯片。
9.根据权利要求1所述的系统,其特征在于,所述m个视频编解码内核支持并行处理视频编解码任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310242163.XA CN115988217B (zh) | 2023-03-14 | 2023-03-14 | 一种虚拟化视频编解码系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310242163.XA CN115988217B (zh) | 2023-03-14 | 2023-03-14 | 一种虚拟化视频编解码系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115988217A CN115988217A (zh) | 2023-04-18 |
CN115988217B true CN115988217B (zh) | 2023-06-06 |
Family
ID=85970806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310242163.XA Active CN115988217B (zh) | 2023-03-14 | 2023-03-14 | 一种虚拟化视频编解码系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115988217B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116320469B (zh) * | 2023-05-16 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 |
CN116582438B (zh) * | 2023-05-16 | 2023-10-27 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 |
CN117176963B (zh) * | 2023-11-02 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 |
CN117176964B (zh) * | 2023-11-02 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 |
CN117412059B (zh) * | 2023-12-12 | 2024-04-16 | 北京象帝先计算技术有限公司 | 基于虚拟化的视频编解码系统、设备及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916855A (zh) * | 2005-08-19 | 2007-02-21 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件配置方法 |
CN106844007A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于空间复用的虚拟化方法与系统 |
CN112714319A (zh) * | 2020-12-24 | 2021-04-27 | 上海壁仞智能科技有限公司 | 计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置 |
CN113326226A (zh) * | 2020-02-28 | 2021-08-31 | 安徽寒武纪信息科技有限公司 | 一种虚拟化的方法、装置、板卡及计算机可读存储介质 |
CN113326118A (zh) * | 2020-02-28 | 2021-08-31 | 安徽寒武纪信息科技有限公司 | 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备 |
CN115202827A (zh) * | 2022-08-04 | 2022-10-18 | 昆仑芯(北京)科技有限公司 | 处理虚拟化中断的方法、中断控制器、电子设备和芯片 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747121B2 (en) * | 2015-04-14 | 2017-08-29 | Dell Products L.P. | Performance optimization of workloads in virtualized information handling systems |
-
2023
- 2023-03-14 CN CN202310242163.XA patent/CN115988217B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916855A (zh) * | 2005-08-19 | 2007-02-21 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件配置方法 |
CN106844007A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于空间复用的虚拟化方法与系统 |
CN113326226A (zh) * | 2020-02-28 | 2021-08-31 | 安徽寒武纪信息科技有限公司 | 一种虚拟化的方法、装置、板卡及计算机可读存储介质 |
CN113326118A (zh) * | 2020-02-28 | 2021-08-31 | 安徽寒武纪信息科技有限公司 | 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备 |
CN112714319A (zh) * | 2020-12-24 | 2021-04-27 | 上海壁仞智能科技有限公司 | 计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置 |
CN115202827A (zh) * | 2022-08-04 | 2022-10-18 | 昆仑芯(北京)科技有限公司 | 处理虚拟化中断的方法、中断控制器、电子设备和芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN115988217A (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115988217B (zh) | 一种虚拟化视频编解码系统、电子设备和存储介质 | |
US9459922B2 (en) | Assigning a first portion of physical computing resources to a first logical partition and a second portion of the physical computing resources to a second logical portion | |
US8725875B2 (en) | Native cloud computing via network segmentation | |
CN115988218B (zh) | 一种虚拟化视频编解码系统、电子设备和存储介质 | |
US9164853B2 (en) | Multi-core re-initialization failure control system | |
US20100115510A1 (en) | Virtual graphics device and methods thereof | |
CN116320469B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN116582438B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
US11175919B1 (en) | Synchronization of concurrent computation engines | |
CN106815067B (zh) | 带i/o虚拟化的虚拟机在线迁移方法、装置 | |
US9886387B2 (en) | Method and system for performing on-demand data write through based on virtual machine types | |
Chang et al. | On construction and performance evaluation of a virtual desktop infrastructure with GPU accelerated | |
CN113568734A (zh) | 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备 | |
US20150186180A1 (en) | Systems and methods for affinity dispatching based on network input/output requests | |
US20140245291A1 (en) | Sharing devices assigned to virtual machines using runtime exclusion | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN113326118A (zh) | 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备 | |
CN117176963B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN117176964B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN117331704B (zh) | 图形处理器gpu调度方法、装置和存储介质 | |
US20240160492A1 (en) | System and method for radio access network baseband workload pool resizing | |
Kang et al. | Mcredit2: Enhanced High-Performance Xen Scheduler via Dynamic Weight Allocation | |
US20190278715A1 (en) | System and method for managing distribution of virtual memory over multiple physical memories | |
EP4323868A1 (en) | System and method of dynamically partitioning computers at runtime | |
CN114816648A (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 |