CN115988218A - Virtualized video coding and decoding system, electronic equipment and storage medium - Google Patents

Virtualized video coding and decoding system, electronic equipment and storage medium Download PDF

Info

Publication number
CN115988218A
CN115988218A CN202310242206.4A CN202310242206A CN115988218A CN 115988218 A CN115988218 A CN 115988218A CN 202310242206 A CN202310242206 A CN 202310242206A CN 115988218 A CN115988218 A CN 115988218A
Authority
CN
China
Prior art keywords
virtual machine
video coding
decoding
ith
register
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
CN202310242206.4A
Other languages
Chinese (zh)
Other versions
CN115988218B (en
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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202310242206.4A priority Critical patent/CN115988218B/en
Publication of CN115988218A publication Critical patent/CN115988218A/en
Application granted granted Critical
Publication of CN115988218B publication Critical patent/CN115988218B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present disclosure relates to the field of computers, and discloses a virtualized video encoding and decoding system, an electronic device, and a storage medium, wherein the system comprises: the video coding and decoding system comprises a virtual machine monitor, n virtual machines, n virtual machine register groups and a video coding and decoding kernel, wherein the n virtual machines correspond to the n virtual machine register groups one by one, and n is a positive integer greater than or equal to 2; the virtual machine monitor is used for configuring the configuration information of the current video coding and decoding task corresponding to the ith virtual machine register group, wherein i is a positive integer which is more than or equal to 1 and less than or equal to n; the video coding and decoding kernel is used for reading the configuration information from the ith virtual machine register set and executing the current video coding and decoding task corresponding to the ith virtual machine based on the configuration information. The embodiment of the disclosure improves the processing performance of the video coding and decoding kernel, the video coding and decoding tasks among all the virtual machines are not affected mutually, and the data security is effectively improved.

Description

Virtualized video coding and decoding system, electronic equipment and storage medium
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a virtualized video encoding and decoding system, an electronic device, and a storage medium.
Background
Virtualization (Virtualization) is a resource management technology, which abstracts and converts various physical resources of a computer, such as servers, networks, memories, storage, and the like, to present them, breaking the barrier of non-cuttability among physical structures, and allowing users to use these resources in a better way than the original configuration. Virtualization is a resource allocation technology from a logical perspective, and is a physical and actual logical abstraction. A general computing model is abstracted into certain physical resources and computing elements running on the physical resources, and the physical resources and the computing elements interact with each other through defined physical resource interfaces. A fully virtualized task should be unaware of other tasks and data beyond it.
The virtualization video technology is embodied in the way that a plurality of video tasks which are not mutually influenced are processed on the same set of physical resources at the same time. As a video user, a typical application scenario of the virtual video technology is that a plurality of users under the same operating system respectively own their virtual machines, and the users open different video windows to execute the playing tasks of the video windows under their own virtual machines, and at this time, the video tasks between the users of the virtual machines are independent, not aware of each other, and not influenced by each other. With the increasing multimedia processing services around digitization and networking, the virtualization of video codec is more and more applied, and the performance of the video codec is also more and more required. This is reflected not only in the requirement for data storage, but also in various requirements such as access security, processing performance, management capability, and expansion capability for data. Therefore, a virtualized video codec system is needed.
Disclosure of Invention
The present disclosure provides a technical solution of a virtualized video encoding and decoding system, an electronic device, and a storage medium.
According to an aspect of the present disclosure, there is provided a virtualized video codec system, including: the video coding and decoding system comprises a virtual machine monitor, n virtual machines, n virtual machine register groups and a video coding and decoding kernel, wherein the n virtual machines are in one-to-one correspondence with the n virtual machine register groups, and n is a positive integer greater than or equal to 2; the virtual machine monitor is used for configuring the configuration information of the current video coding and decoding task corresponding to the ith virtual machine register set, wherein i is a positive integer which is more than or equal to 1 and less than or equal to n; the video coding and decoding kernel is used for reading the configuration information from the ith virtual machine register set and executing a current video coding and decoding task corresponding to the ith virtual machine based on the configuration information.
In one possible implementation, the system further includes: a storage management module and a storage unit; the configuration information comprises the size of a storage space required by executing a current video coding and decoding task corresponding to the ith virtual machine; the video coding and decoding kernel is used for sending the size of a storage space required by executing a current video coding and decoding task corresponding to the ith virtual machine to the storage management module; and the storage management module is used for allocating a corresponding target storage space for the ith virtual machine in the storage unit based on the size of the storage space required for executing the current video coding and decoding task corresponding to the ith virtual machine.
In a possible implementation manner, the video coding and decoding kernel accesses and stores data based on a target storage space corresponding to the ith virtual machine in a process of executing a current video coding and decoding task corresponding to the ith virtual machine.
In a possible implementation manner, the ith virtual machine register set includes an interrupt register; the video coding and decoding kernel is used for sending an interrupt request to the ith virtual machine register set after executing the current video coding and decoding task corresponding to the ith virtual machine; the ith virtual machine register set is configured to generate an interrupt signal corresponding to the ith virtual machine in an interrupt register in the ith virtual machine register set based on the interrupt request; and the ith virtual machine register set is used for sending the interrupt signal corresponding to the ith virtual machine to the virtual machine monitor.
In a possible implementation manner, the virtual machine monitor is configured to configure, after receiving an interrupt signal corresponding to the ith virtual machine, configuration information of a next video codec task corresponding to the ith virtual machine register group.
In a possible implementation manner, the virtual machine monitor has a configuration interface corresponding to each virtual machine register set; the virtual machine monitor is configured to configure, based on a configuration interface corresponding to each virtual machine register group, configuration information of a current video encoding and decoding task corresponding to each virtual machine to each corresponding virtual machine register group.
In a possible implementation manner, the virtual machine monitor is configured to allocate n virtual machine identification IDs to the n virtual machines, and perform separate maintenance on each virtual machine ID.
In one possible implementation, the system further includes: and the configuration module is used for corresponding the n virtual machines to the n virtual machine register groups one by one and configuring an interrupt register in each virtual machine register group respectively.
According to an aspect of the present disclosure, there is provided an electronic device including: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to invoke the memory-stored instructions to operate the system described above.
According to an aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon computer program instructions which, when executed by a processor, operate the above system.
In an embodiment of the present disclosure, a virtualized video codec system includes: the video coding and decoding system comprises a virtual machine monitor, n virtual machines, n virtual machine register groups and a video coding and decoding kernel, wherein the n virtual machines correspond to the n virtual machine register groups one by one, and n is a positive integer greater than or equal to 2; the method comprises the steps that a virtual machine monitor configures configuration information of a current video coding and decoding task corresponding to an ith virtual machine register group, wherein i is a positive integer which is greater than or equal to 1 and less than or equal to n; and the video coding and decoding kernel reads the configuration information from the ith virtual machine register set and executes the current video coding and decoding task corresponding to the ith virtual machine based on the configuration information. The virtual machine register group of the hardware is utilized, so that the configuration isolation among different virtual machines can be realized, and the decoupling between the configuration process and the video coding and decoding processing is realized, thereby improving the processing performance of the video coding and decoding kernel, enabling the video coding and decoding tasks among the virtual machines not to be influenced mutually, and effectively improving the data security.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure. Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments, which proceeds with reference to the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure.
Fig. 1 is a schematic diagram illustrating a virtualized video codec system in the related art.
Fig. 2 is a schematic diagram illustrating a virtualized video codec in the related art.
Fig. 3 shows a schematic diagram of a virtualized video codec system according to an embodiment of the disclosure.
Fig. 4 shows a schematic diagram of a virtualized video codec according to an embodiment of the disclosure.
Fig. 5 shows a block diagram of an electronic device according to an embodiment of the disclosure.
Detailed Description
Various exemplary embodiments, features and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers can indicate functionally identical or similar elements. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The word "exemplary" is used exclusively herein to mean "serving as an example, embodiment, or illustration. Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
The term "and/or" herein is merely an association describing an associated object, meaning that three relationships may exist, e.g., a and/or B, may mean: a exists alone, A and B exist simultaneously, and B exists alone. In addition, the term "at least one" herein means any one of a plurality or any combination of at least two of a plurality, for example, including at least one of a, B, and C, and may mean including any one or more elements selected from the group consisting of a, B, and C.
Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a better understanding of the present disclosure. It will be understood by those skilled in the art that the present disclosure may be practiced without some of these specific details. In some instances, methods, means, elements and circuits that are well known to those skilled in the art have not been described in detail so as not to obscure the subject matter of the present disclosure.
In the related art, the virtualized video technology is mainly implemented in a software configuration manner. The software configuration means that the hardware is guided to run by Hypervisor running in HOST (HOST), also called Virtual Machine Monitor (VMM). Fig. 1 is a schematic diagram illustrating a virtualized video codec system in the related art. As shown in fig. 1, the flow of implementing the virtualized video technology by the software configuration is as follows.
The first step is as follows: the virtual machine monitor queries the running conditions of all virtual machines in the current system, including but not limited to the virtual machine Identification (ID) of the current processing process, whether the video encoding and decoding task is completed, the occupied storage space, and other state information. If the last Video codec task is confirmed to be completed by an interrupt completion signal from a Video codec kernel (Video Subsystem), a virtual machine ID is allocated to the next Video codec task. As shown in fig. 1, the current system includes m virtual machines: the virtual machine VM _1 to the virtual machine VM _ m, wherein m is a positive integer greater than or equal to 2, the virtual machine VM _1 corresponds to the video coding and decoding task VM1, and the virtual machine VM _ m corresponds to the video coding and decoding task VMm.
The second step: in order to avoid the storage space overlapping, the virtual machine monitor allocates the exclusive storage space of the current virtual machine to the current processing process in a storage unit (Memory Subsystem) according to the storage space occupied by all other queried virtual machine IDs, and adds the virtual machine ID of the current processing process and the corresponding storage space to a management list of the virtual machine monitor for subsequent query. As shown in fig. 1, virtual machine VM _1 corresponds to a storage space VM1 region (VM 1 region), and virtual machine VM _ m corresponds to a storage space VMm region (VMm region). As shown in fig. 1, the memory unit further includes: a Secure region (Secure region) and a virtual machine monitor region (hypervisor region).
The third step: the virtual machine monitor issues a series of configuration commands including initialization, dormancy, awakening and the like to the video coding and decoding kernel, and in the process, the virtual machine ID of the current processing process, the size of the required storage space and other information are notified to the video coding and decoding kernel in the form of a configuration register.
The fourth step: the virtual machine monitor issues control commands to the video coding and decoding kernel, including but not limited to obtaining video original data or coded code stream corresponding to the video coding and decoding task, performing pre-analysis on the data or code stream, coding and decoding and other commands, for controlling and querying the state of the current virtual machine corresponding to the video coding and decoding kernel.
The fifth step: and the video coding and decoding kernel carries out corresponding video coding and decoding task operation according to the configuration and the command of the virtual machine monitor, and the access and storage of data in the process are limited in the range of the exclusive storage space of the virtual machine monitor which is well configured for the current virtual machine.
And a sixth step: and after the video coding and decoding kernel completes the corresponding video coding and decoding tasks, the video coding and decoding kernel informs the virtual machine monitor of the completion of the video coding and decoding tasks corresponding to the current virtual machine in a mode of submitting an interrupt signal.
The seventh step: after receiving the interrupt signal submitted by the video coding and decoding kernel, the virtual machine monitor can restart the next virtual video coding and decoding task.
The software configuration mode has the advantages that the time for realizing the virtualization of the video coding and decoding is long, the requirement on the complexity of a virtual machine monitor is high, and the configuration process is not decoupled with the video coding and decoding processing of the video coding and decoding kernel, so that the performance exertion of the video coding and decoding kernel is influenced. Firstly, the method comprises the following steps: in order to ensure the specificity of the process storage space of the virtual machine and avoid the storage space overlapping among different virtual machine processes, a virtual machine monitor needs to do a large amount of maintenance, query and scheduling work, and the corresponding workload is increased along with the increase of the number of supported virtual machine processes. Secondly, the method comprises the following steps: because only one interrupt signal exists between the video coding and decoding kernel and the host, the virtual machine monitor needs to identify and maintain the pointed virtual machine process aiming at the interrupt signal, record the reason for completing the virtual machine process and inquire the virtual machine process at a proper time, so that the virtual machine monitor is overloaded and the response to other interrupt signals in the system is slowed down. Thirdly, the method comprises the following steps: the configuration process of the virtual machine monitor to the video coding and decoding kernel can only be carried out in series with the video coding and decoding processing of the video coding and decoding kernel. Fig. 2 is a schematic diagram illustrating a virtualized video codec in the related art. As shown in fig. 2, the virtual machine monitor configures the virtual machine VM1 (virtual machine monitor VM1, hypervisor VM 1), the video codec kernel executes the current video codec task (video codec kernel VM1, video VM 1) of the virtual machine VM1, after the execution is completed, the virtual machine monitor configures the virtual machine VM2 (virtual machine monitor VM2, hypervisor VM 2), and the video codec kernel executes the current video codec task (video codec kernel VM2, video VM 2) of the virtual machine VM2, and so on until the virtual machine monitor VMm-1, the video codec kernel VMm-1, the virtual machine monitor VMm, and the video codec kernel VMm are described in detail. The serial working mode of the sequential dependence affects the performance exertion of the video coding and decoding inner core. Fourthly: the software configuration mode realizes that the virtualization video coding and decoding is not thorough enough for virtualization, the storage space, the interrupt signal and the configuration process all need to sense the existence of other virtual machines, and the risk exists in terms of data access security.
In order to solve the problem of implementing the virtualized video coding and decoding in a software configuration manner, the embodiment of the present disclosure provides a virtualized video coding and decoding system implemented in a hardware manner. The following describes the virtualized video codec system provided by the present disclosure in detail.
Fig. 3 shows a schematic diagram of a virtualized video codec system according to an embodiment of the disclosure. As shown in fig. 3, the virtualized video codec system includes: the video coding and decoding system comprises a virtual machine monitor, n virtual machines, n virtual machine register groups and a video coding and decoding kernel, wherein the n virtual machines correspond to the n virtual machine register groups one by one, and n is a positive integer greater than or equal to 2; the virtual machine monitor is used for configuring the configuration information of the current video coding and decoding task corresponding to the ith virtual machine register group, wherein i is a positive integer which is more than or equal to 1 and less than or equal to n; and the video coding and decoding kernel is used for reading the configuration information from the ith virtual machine register set and executing the current video coding and decoding task corresponding to the ith virtual machine based on the configuration information.
The number n of virtual machines may be adjusted according to actual needs of the system, which is not specifically limited in this disclosure.
According to the embodiment of the disclosure, the configuration isolation between different virtual machines and the decoupling between the configuration process and the video encoding and decoding process can be realized by using the register set of the hardware virtual machine, so that the processing performance of the video encoding and decoding kernel is improved, the video encoding and decoding tasks do not influence each other among the virtual machines, and the data security is effectively improved.
In one possible implementation, the hypervisor is configured to assign n virtual machine IDs to the n virtual machines, and to perform separate maintenance on each virtual machine ID.
For the number n of n virtual machines supported by system virtualization, the virtual machine monitor allocates n virtual machine IDs, as shown in fig. 3, where n virtual machine IDs: VM _1 to VM _ n. Each virtual machine ID is used to uniquely identify a virtual machine.
The virtual machine monitor maintains each virtual machine ID separately to enable separate maintenance of each virtual machine.
In one possible implementation, the virtualized video codec system further includes: the configuration module is used for corresponding the n virtual machines and the n virtual machine register groups one by one and configuring an interrupt register in each virtual machine register group respectively.
Setting n Virtual Machine register groups (VM _ If) with corresponding numbers according to the number n of the n Virtual machines supported by the system virtualization, and carrying out one-to-one correspondence between the n Virtual machines and the n Virtual Machine register groups by using a configuration module, thereby preparing for realizing the configuration isolation of the n Virtual machines by using the n Virtual Machine register groups subsequently.
And an interrupt register is configured in each virtual machine register group, so that preparation work is prepared for realizing interrupt isolation of n virtual machines by using the n virtual machine register groups subsequently.
In one possible implementation, the virtual machine monitor has a corresponding configuration interface with each virtual machine register set; and the virtual machine monitor is used for respectively configuring the configuration information of the current video coding and decoding task corresponding to each virtual machine to each corresponding virtual machine register group based on the configuration interface corresponding to each virtual machine register group.
The virtual machine monitor and each virtual machine register group respectively have corresponding configuration interfaces, so the virtual machine monitor can respectively configure the configuration information of the current video coding and decoding task corresponding to each virtual machine to each corresponding virtual machine register group based on the configuration interface corresponding to each virtual machine register group.
The virtual machine monitor allocates a virtual machine ID for indicating the current processing process, and other information except the virtual machine indicated by the virtual machine ID is not required to be inquired in the process; and then, the virtual machine monitor configures the configuration information of the current video coding and decoding task corresponding to the virtual machine ID to the corresponding virtual machine register group through the corresponding configuration interface according to the virtual machine ID.
As shown in fig. 3, the virtualized video codec system includes n virtual machines: VM _1 to VM _ n. The virtual machine monitor configures the configuration information of the current video coding and decoding task corresponding to the virtual machine VM _1 to the virtual machine register group VM1_ if based on the configuration interface corresponding to the virtual machine register group VM1_ if; the virtual machine monitor configures the configuration information of the current video coding and decoding task corresponding to the virtual machine VM _2 to the virtual machine register group VM2_ if based on the configuration interface corresponding to the virtual machine register group VM2_ if; by analogy, VM1_ if to VMn _ if shown in fig. 3 are not described herein.
The configuration information includes a series of configuration commands such as initialization, sleep, wake-up, etc., and information of the required storage space size, etc., and the specific content of the configuration information is not limited in this disclosure.
The use of the register group of the hardware virtual machine ensures that all the virtual machines are not influenced mutually, thereby realizing configuration isolation. Compared with a software configuration mode, the virtual machine monitor can be liberated from complicated inquiry and scheduling work, and the time consumed by software configuration is reduced. Each virtual machine only needs to maintain the configuration information of the virtual machine, and different virtual machines are not aware of each other, so that more thorough virtualization can be achieved.
The video coding and decoding kernel interacts with the n virtual machine register groups, can read configuration information from any one virtual machine register group, and executes the current video coding and decoding task of the corresponding virtual machine based on the configuration information.
The virtual machine monitor can configure the virtual machine register group of the virtual machine process which is not started in advance, so that the next video coding and decoding task can be started after the video coding and decoding kernel processes the previous video coding and decoding task.
Fig. 4 shows a schematic diagram of a virtualized video codec according to an embodiment of the disclosure. As shown in fig. 4, by using the VM register set of the hardware, the VM monitor can synchronously configure (VM monitor VM1 to VM _ n, hypervisor VM1 to Hypervisor VMn) the n VMs (VM _1 to VM _ n), and the configuration process is decoupled from the video codec processing process of the video codec kernel (VM 1 to VMn, video VM1 to video VMn), without depending on the serial working mode, thereby solving the problem of unbalanced configuration and calculation capability in the video codec process, and effectively improving the processing performance of the video codec hardmac.
In one possible implementation, the virtualized video codec system further includes: a Memory Management Unit (MMU), a storage Unit; the configuration information comprises the size of a storage space required by executing a current video coding and decoding task corresponding to the ith virtual machine; the video coding and decoding kernel is used for sending the size of a storage space required by executing a current video coding and decoding task corresponding to the ith virtual machine to the storage management module; and the storage management module is used for allocating a corresponding target storage space for the ith virtual machine in the storage unit based on the size of the storage space required for executing the current video coding and decoding task corresponding to the ith virtual machine.
The configuration information of the current video coding and decoding task corresponding to the ith virtual machine includes the size of a storage space required for executing the current video coding and decoding task corresponding to the ith virtual machine. After the video coding and decoding kernel reads the configuration information of the current video coding and decoding task corresponding to the ith virtual machine from the ith virtual machine register set, the size of the storage space required for executing the current video coding and decoding task corresponding to the ith virtual machine, which is included in the configuration information, is sent to the storage management module, so that the storage management module allocates a corresponding target storage space for the ith virtual machine in the storage unit.
Compared with the software configuration mode in which the virtual machine monitor consumes time and computing power to maintain, traverse and query the storage space occupied by other virtual machines, the storage space superposition among different virtual machines is prevented.
As shown in fig. 3, the memory cell includes: a target storage space VM1 region (VM 1 region) corresponding to the 1 st virtual machine VM _1, a target storage space VM2 region (VM 2 region) corresponding to the 2 nd virtual machine VM _2, and so on, until a target storage space VMn region (VMn region) corresponding to the nth virtual machine VM _ n, which are not described in detail. As shown in fig. 3, the memory unit further includes: a Secure region (Secure region) and a virtual machine monitor region (hypervisor region).
In a possible implementation manner, the video coding and decoding kernel accesses and stores data based on a target storage space corresponding to an ith virtual machine in the process of executing a current video coding and decoding task corresponding to the ith virtual machine.
And the video coding and decoding kernel executes corresponding video coding and decoding operations based on corresponding configuration instructions in the configuration information read from the ith virtual machine register set, and in the process, data access is carried out only based on a target storage space corresponding to the ith virtual machine, so that space overlapping between storage spaces occupied by different virtual machines is avoided.
In a possible implementation manner, the ith virtual machine register group comprises an interrupt register; the video coding and decoding kernel is used for sending an interrupt request to the ith virtual machine register set after executing the current video coding and decoding task corresponding to the ith virtual machine; the ith virtual machine register group is used for generating an interrupt signal corresponding to the ith virtual machine in an interrupt register in the ith virtual machine register group based on the interrupt request; and the ith virtual machine register set is used for sending the interrupt signal corresponding to the ith virtual machine to the virtual machine monitor.
After the video coding and decoding kernel executes the current video coding and decoding task corresponding to the ith virtual machine, sending an interrupt request to the ith virtual machine register group, so that the ith virtual machine register group generates an interrupt signal corresponding to the ith virtual machine in an interrupt register in the ith virtual machine register group based on the interrupt request, and then the ith virtual machine register group sends the interrupt signal corresponding to the ith virtual machine to the virtual machine monitor to inform the virtual machine monitor that the current video coding and decoding task corresponding to the ith virtual machine is completed.
Compared with a mode that only one interrupt signal exists between a virtual machine monitor and a plurality of virtual machines in software configuration, the interrupt signal exists between the virtual machine monitor and a virtual machine register group corresponding to each virtual machine based on the interrupt register of the hardware in the embodiment of the disclosure, so that interrupt isolation between different virtual machines is realized, maintenance and discrimination query work of the interrupt signal and different virtual machine relations by the virtual machine monitor is released, and computing power and software processing time are saved.
In a possible implementation manner, the virtual machine monitor is configured to configure, after receiving an interrupt signal corresponding to an ith virtual machine, configuration information of a next video codec task corresponding to the ith virtual machine to an ith virtual machine register set.
After receiving the interrupt signal corresponding to the ith virtual machine, the virtual machine monitor may determine that the current video codec task corresponding to the ith virtual machine is completed, and at this time, the virtual machine monitor may configure configuration information of a next video codec task corresponding to the ith virtual machine register set, that is, start a next round of configuration operation.
In an embodiment of the present disclosure, a virtualized video codec system includes: the video coding and decoding system comprises a virtual machine monitor, n virtual machines, n virtual machine register groups and a video coding and decoding kernel, wherein the n virtual machines correspond to the n virtual machine register groups one by one, and n is a positive integer greater than or equal to 2; the method comprises the steps that a virtual machine monitor configures configuration information of a current video coding and decoding task corresponding to an ith virtual machine register group, wherein i is a positive integer which is greater than or equal to 1 and less than or equal to n; and the video coding and decoding kernel reads the configuration information from the ith virtual machine register set and executes the current video coding and decoding task corresponding to the ith virtual machine based on the configuration information. The virtual machine register group of the hardware is utilized, so that the configuration isolation among different virtual machines can be realized, and the decoupling between the configuration process and the video coding and decoding processing is realized, thereby improving the processing performance of the video coding and decoding kernel, enabling the video coding and decoding tasks among the virtual machines not to be influenced mutually, and effectively improving the data security.
It is understood that the above-mentioned method embodiments of the present disclosure can be combined with each other to form a combined embodiment without departing from the logic of the principle, which is limited by the space, and the detailed description of the present disclosure is omitted. Those skilled in the art will appreciate that in the above methods of the specific embodiments, the specific order of execution of the steps should be determined by their function and possibly their inherent logic.
In addition, the present disclosure also provides an electronic device, a computer-readable storage medium, and a program, which can be used to implement any one of the virtualized video coding and decoding systems provided by the present disclosure, and the corresponding technical solutions and descriptions thereof are referred to the corresponding records of the system part, and are not described again.
The method has specific technical relevance with the internal structure of the computer system, and can solve the technical problems of how to improve the hardware operation efficiency or the execution effect (including reducing data storage capacity, reducing data transmission capacity, improving hardware processing speed and the like), thereby obtaining the technical effect of improving the internal performance of the computer system according with the natural law.
In some embodiments, functions of or modules included in the apparatus provided in the embodiments of the present disclosure may be used to execute the method described in the above method embodiments, and specific implementation thereof may refer to the description of the above method embodiments, and for brevity, will not be described again here.
Embodiments of the present disclosure also provide a computer-readable storage medium having stored thereon computer program instructions, which, when executed by a processor, operate the above-mentioned system. The computer readable storage medium may be a volatile or non-volatile computer readable storage medium.
An embodiment of the present disclosure further provides an electronic device, including: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to invoke the memory-stored instructions to operate the system described above.
The disclosed embodiments also provide a computer program product comprising computer readable code or a non-transitory computer readable storage medium carrying computer readable code, which when run in a processor of an electronic device, the processor in the electronic device runs the above system.
The electronic device may be provided as a terminal, server, or other form of device.
Fig. 5 shows a block diagram of an electronic device in accordance with an embodiment of the disclosure. Referring to fig. 5, the electronic device 1900 may be provided as a server or a terminal device. Referring to fig. 5, electronic device 1900 includes a processing component 1922 further including one or more processors and memory resources, represented by memory 1932, for storing instructions, e.g., applications, that are executable by processing component 1922. The application programs stored in memory 1932 may include one or more modules that each correspond to a set of instructions. Further, the processing component 1922 is configured to execute instructions to perform the methods described above.
The electronic device 1900 may further include a power component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input/output interface 1958. The electronic device 1900 may operate based on an operating system, such as the Microsoft Server operating system (Windows Server), stored in the memory 1932 TM ) Apple Inc. of the present application based on the graphic user interface operating System (Mac OS X) TM ) Multi-user, multi-process computer operating system (Unix) TM ) Free and open native code Unix-like operating System (Linux) TM ) Open native code Unix-like operating System (FreeBSD) TM ) Or the like.
In an exemplary embodiment, a non-transitory computer readable storage medium, such as the memory 1932, is also provided that includes computer program instructions executable by the processing component 1922 of the electronic device 1900 to perform the above-described methods.
The present disclosure may be systems, methods, and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for causing a processor to implement various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, the electronic circuitry that can execute the computer-readable program instructions implements aspects of the present disclosure by utilizing the state information of the computer-readable program instructions to personalize the electronic circuitry, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA).
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The computer program product may be embodied in hardware, software or a combination thereof. In an alternative embodiment, the computer program product is embodied in a computer storage medium, and in another alternative embodiment, the computer program product is embodied in a Software product, such as a Software Development Kit (SDK), or the like.
The foregoing description of the various embodiments is intended to highlight different aspects of the various embodiments that are the same or similar, which can be referenced with one another and therefore are not repeated herein for brevity.
It will be understood by those skilled in the art that in the method of the present invention, the order of writing the steps does not imply a strict order of execution and any limitations on the implementation, and the specific order of execution of the steps should be determined by their function and possible inherent logic.
If the technical scheme of the application relates to personal information, a product applying the technical scheme of the application clearly informs personal information processing rules before processing the personal information, and obtains personal independent consent. If the technical scheme of the application relates to sensitive personal information, before the sensitive personal information is processed, a product applying the technical scheme of the application obtains individual consent and simultaneously meets the requirement of 'explicit consent'. For example, at a personal information collection device such as a camera, a clear and significant identifier is set to inform that the personal information collection range is entered, the personal information is collected, and if the person voluntarily enters the collection range, the person is considered as agreeing to collect the personal information; or on the device for processing the personal information, under the condition of informing the personal information processing rule by using obvious identification/information, obtaining personal authorization by modes of popping window information or asking a person to upload personal information of the person by himself, and the like; the personal information processing rule may include information such as a personal information processor, a personal information processing purpose, a processing method, and a type of personal information to be processed.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or improvements to the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (10)

1. A virtualized video codec system, comprising: the video coding and decoding system comprises a virtual machine monitor, n virtual machines, n virtual machine register groups and a video coding and decoding kernel, wherein the n virtual machines are in one-to-one correspondence with the n virtual machine register groups, and n is a positive integer greater than or equal to 2;
the virtual machine monitor is used for configuring the configuration information of the current video coding and decoding task corresponding to the ith virtual machine register group, wherein i is a positive integer which is more than or equal to 1 and less than or equal to n;
the video coding and decoding kernel is configured to read the configuration information from the ith virtual machine register set, and execute a current video coding and decoding task corresponding to the ith virtual machine based on the configuration information.
2. The system of claim 1, further comprising: a storage management module and a storage unit; the configuration information comprises the size of a storage space required by executing a current video coding and decoding task corresponding to the ith virtual machine;
the video coding and decoding kernel is used for sending the size of a storage space required by executing the current video coding and decoding task corresponding to the ith virtual machine to the storage management module;
and the storage management module is used for allocating a corresponding target storage space for the ith virtual machine in the storage unit based on the size of the storage space required for executing the current video coding and decoding task corresponding to the ith virtual machine.
3. The system of claim 2, wherein the video codec kernel accesses data based on a target storage space corresponding to the ith virtual machine during execution of a current video codec task corresponding to the ith virtual machine.
4. The system according to any one of claims 1 to 3, wherein the i-th virtual machine register set comprises an interrupt register;
the video coding and decoding kernel is used for sending an interrupt request to the ith virtual machine register set after executing the current video coding and decoding task corresponding to the ith virtual machine;
the ith virtual machine register group is configured to generate, in an interrupt register in the ith virtual machine register group, an interrupt signal corresponding to the ith virtual machine based on the interrupt request;
and the ith virtual machine register set is used for sending the interrupt signal corresponding to the ith virtual machine to the virtual machine monitor.
5. The system according to claim 4, wherein the vm monitor is configured to configure configuration information of a next video codec task corresponding to the ith vm register set after receiving the interrupt signal corresponding to the ith vm.
6. The system according to claim 1, wherein the virtual machine monitor has a configuration interface corresponding to each virtual machine register set;
the virtual machine monitor is configured to configure, based on a configuration interface corresponding to each virtual machine register group, configuration information of a current video encoding and decoding task corresponding to each virtual machine to each corresponding virtual machine register group.
7. The system of claim 1, wherein the virtual machine monitor is configured to assign n virtual machine IDs to the n virtual machines and to maintain each virtual machine ID separately.
8. The system of claim 1, further comprising:
and the configuration module is used for carrying out one-to-one correspondence on the n virtual machines and the n virtual machine register groups and respectively configuring an interrupt register in each virtual machine register group.
9. An electronic device, comprising:
a processor;
a memory for storing processor-executable instructions;
wherein the processor is configured to invoke the memory-stored instructions to execute the system of any one of claims 1 to 8.
10. A computer readable storage medium having computer program instructions stored thereon, which when executed by a processor, operate the system of any one of claims 1 to 8.
CN202310242206.4A 2023-03-14 2023-03-14 Virtualized video encoding and decoding system, electronic equipment and storage medium Active CN115988218B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310242206.4A CN115988218B (en) 2023-03-14 2023-03-14 Virtualized video encoding and decoding system, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310242206.4A CN115988218B (en) 2023-03-14 2023-03-14 Virtualized video encoding and decoding system, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN115988218A true CN115988218A (en) 2023-04-18
CN115988218B CN115988218B (en) 2023-06-09

Family

ID=85972467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310242206.4A Active CN115988218B (en) 2023-03-14 2023-03-14 Virtualized video encoding and decoding system, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN115988218B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116320469A (en) * 2023-05-16 2023-06-23 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN116582438A (en) * 2023-05-16 2023-08-11 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN117176964A (en) * 2023-11-02 2023-12-05 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN117176963A (en) * 2023-11-02 2023-12-05 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026389A1 (en) * 2004-07-31 2006-02-02 Dinechin Christophe D Method for providing scratch registers for use by a virtual-machine monitor
CN101681269A (en) * 2007-05-16 2010-03-24 威睿公司 The self-adaptation Dynamic Selection and the application of multiple virtualization techniques
CN103034524A (en) * 2011-10-10 2013-04-10 辉达公司 Paravirtualized virtual GPU
CN104137056A (en) * 2011-10-28 2014-11-05 英特尔公司 Instruction-set support for invocation of vmm-configured services without vmm intervention
CN105830026A (en) * 2013-11-27 2016-08-03 英特尔公司 Apparatus and method for scheduling graphics processing unit workloads from virtual machines
CN106445628A (en) * 2015-08-11 2017-02-22 华为技术有限公司 Virtualization method, apparatus and system
CN106775919A (en) * 2015-11-24 2017-05-31 龙芯中科技术有限公司 Status information control method and device
CN112667354A (en) * 2020-12-30 2021-04-16 上海壁仞智能科技有限公司 Computer readable storage medium, virtualized register device, and method of accessing the device
CN113296876A (en) * 2020-06-30 2021-08-24 阿里巴巴集团控股有限公司 Equipment direct connection method, equipment and storage medium of virtual machine
CN113326226A (en) * 2020-02-28 2021-08-31 安徽寒武纪信息科技有限公司 Virtualization method and device, board card and computer readable storage medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026389A1 (en) * 2004-07-31 2006-02-02 Dinechin Christophe D Method for providing scratch registers for use by a virtual-machine monitor
CN101681269A (en) * 2007-05-16 2010-03-24 威睿公司 The self-adaptation Dynamic Selection and the application of multiple virtualization techniques
CN103034524A (en) * 2011-10-10 2013-04-10 辉达公司 Paravirtualized virtual GPU
CN104137056A (en) * 2011-10-28 2014-11-05 英特尔公司 Instruction-set support for invocation of vmm-configured services without vmm intervention
CN105830026A (en) * 2013-11-27 2016-08-03 英特尔公司 Apparatus and method for scheduling graphics processing unit workloads from virtual machines
CN106445628A (en) * 2015-08-11 2017-02-22 华为技术有限公司 Virtualization method, apparatus and system
CN106775919A (en) * 2015-11-24 2017-05-31 龙芯中科技术有限公司 Status information control method and device
CN113326226A (en) * 2020-02-28 2021-08-31 安徽寒武纪信息科技有限公司 Virtualization method and device, board card and computer readable storage medium
CN113296876A (en) * 2020-06-30 2021-08-24 阿里巴巴集团控股有限公司 Equipment direct connection method, equipment and storage medium of virtual machine
CN112667354A (en) * 2020-12-30 2021-04-16 上海壁仞智能科技有限公司 Computer readable storage medium, virtualized register device, and method of accessing the device

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116320469A (en) * 2023-05-16 2023-06-23 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN116582438A (en) * 2023-05-16 2023-08-11 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN116582438B (en) * 2023-05-16 2023-10-27 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN116320469B (en) * 2023-05-16 2024-03-01 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN117176964A (en) * 2023-11-02 2023-12-05 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN117176963A (en) * 2023-11-02 2023-12-05 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN117176963B (en) * 2023-11-02 2024-01-23 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN117176964B (en) * 2023-11-02 2024-01-30 摩尔线程智能科技(北京)有限责任公司 Virtualized video encoding and decoding system and method, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN115988218B (en) 2023-06-09

Similar Documents

Publication Publication Date Title
RU2664413C2 (en) Architectural mode configuration in computing system
CN115988218A (en) Virtualized video coding and decoding system, electronic equipment and storage medium
RU2665238C2 (en) Common boot sequence for control utility able to be initialised in multiple architectures
US7971203B2 (en) Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
US9135079B2 (en) Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions
US9697024B2 (en) Interrupt management method, and computer implementing the interrupt management method
RU2562372C2 (en) Computation medium adapter activation/deactivation
US10656961B2 (en) Method and apparatus for operating a plurality of operating systems in an industry internet operating system
CN115988217A (en) Virtualized video coding and decoding system, electronic equipment and storage medium
US20190243757A1 (en) Systems and methods for input/output computing resource control
CN111183411B (en) Dynamic address translation for virtual machines
CN116320469B (en) Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN116582438B (en) Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN111209080A (en) Transparent transmission method for graphic processor
CN114691300A (en) Hot migration method of virtual machine instance
US20190391835A1 (en) Systems and methods for migration of computing resources based on input/output device proximity
CN115309511A (en) Xen-based data interaction method and device, storage medium and electronic equipment
JP7413371B2 (en) Migrating partially completed instructions
CN111367472A (en) Virtualization method and device
CN113703913B (en) Equipment testing method and device
US20220358049A1 (en) Memory access handling for peripheral component interconnect devices
WO2023012595A1 (en) Accessing topological mapping of cores
US11080079B2 (en) Autonomously reproducing and destructing virtual machines
US10606681B2 (en) Incremental dump with fast reboot
Zhang et al. NVMe-over-RPMsg: A virtual storage device model applied to heterogeneous multi-core SoCs

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