CN111752673A - Image processing method, first server and system - Google Patents

Image processing method, first server and system Download PDF

Info

Publication number
CN111752673A
CN111752673A CN202010407114.3A CN202010407114A CN111752673A CN 111752673 A CN111752673 A CN 111752673A CN 202010407114 A CN202010407114 A CN 202010407114A CN 111752673 A CN111752673 A CN 111752673A
Authority
CN
China
Prior art keywords
instruction
server
intermediate format
drawing instruction
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010407114.3A
Other languages
Chinese (zh)
Inventor
刘威
范志刚
卢涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Wanxiang Electronics Technology Co Ltd
Original Assignee
Xian Wanxiang Electronics 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 Xian Wanxiang Electronics Technology Co Ltd filed Critical Xian Wanxiang Electronics Technology Co Ltd
Priority to CN202010407114.3A priority Critical patent/CN111752673A/en
Publication of CN111752673A publication Critical patent/CN111752673A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

The present disclosure provides an image processing method, a first server and a system, which relate to the technical field of image processing, and the method comprises: acquiring an original drawing instruction; converting the original drawing instruction into an intermediate format instruction according to a first preset rule; generating a target drawing instruction by the intermediate format instruction according to a second preset rule; and sending the target drawing instruction to a second server, rendering the second server according to the target drawing instruction to obtain a rendering picture, and sending the rendering picture to the terminal for displaying. Embodiments provided by the present disclosure are capable of being compatible with different types of operating systems.

Description

Image processing method, first server and system
Technical Field
The present disclosure relates to the field of image processing technologies, and in particular, to an image processing method, a first server, and a system.
Background
Cloud virtualization technology is currently developing very rapidly. With the further development of public cloud platforms and private cloud platforms, further subdivision requirements are put forward for the virtual desktop cloud platform. At present, in the direction of a virtual cloud desktop, according to the using behaviors of users, cloud desktop office users, 2D/3D design development users, 3D game entertainment users and the like are gradually refined.
Under the current technical condition, desktop cloud has many solutions for the first class of users, and QEMU + spice protocol open source projects can meet the requirements of cloud desktop office users. For two types of users, namely 2D/3D design and development and 3D game and entertainment, a virtual display card capable of rendering 3D drawing needs to be virtualized out by the cloud. Current solutions generally fall into two categories: one method is that a single physical graphics Processing Unit (vGPU) GPU display card is installed in a cloud HOST HOST, the single physical display card is virtualized into a plurality of display cards by means of vGPU technology, the display cards are mapped into Virtual Machines (VMs) of clients one by one and used as Virtual display cards, and the VMs render drawing instructions through the Virtual display cards vGPUs and send images generated by rendering to an R end. The other method is that a plurality of physical GPU video cards are installed in a cloud HOST HOST, a single physical video card is mapped into a Virtual machine of each client by means of a Pass through technology to be used as the physical video card of the Virtual machine, the VM realizes rendering of drawing instructions through the physical video card from the Pass through to the Virtual machine, and an image generated by rendering is sent to the R end.
For the first case, the number of graphics cards that can be virtualized by the vGPU technology is limited, such as: 32, this limits the number of VMs on HOST that can use the vGPU by the guest VM, and as the number of vGPU increases, the performance of each vGPU decreases accordingly, since all vGPU on a single physical graphics card share all the resources of the graphics card; for the second case, since the GPU slot on the physical machine where the virtual HOST corresponding to the guest VM is located is limited, the virtual HOST cannot support too many guest VMs to use the physical graphics card through Passthrough.
In order to solve the above problems, a desktop cloud system based on GPU pool is proposed. The GPU POOL is used for centrally managing the resources of the GPU physical display cards, the GPU POOL can distribute GPU virtual resources to the VMs, namely, the VMs can share one GPU physical display card, and therefore the number of the VMs supported by the cloud Host is not limited by GPU slots. Meanwhile, the GPUPool uses a processor with an X86 architecture and a Windows/Linux operating system, can use a commercial driver optimized by a manufacturer, can thoroughly release the processing capacity of the GPU, and exerts the optimal performance of the GPU.
However, in a desktop cloud system based on GPU POOL, how to implement compatibility between different operating systems in the process of rendering a virtual machine desktop is a problem to be solved.
Disclosure of Invention
The embodiment of the disclosure provides an image processing method, a first server and a system, which can be compatible with different types of operating systems, and the technical scheme is as follows:
according to a first aspect of the embodiments of the present disclosure, there is provided an image processing method applied to a first server, the method including:
acquiring an original drawing instruction;
converting an original drawing instruction into an intermediate format instruction according to a first preset rule;
generating a target drawing instruction by the intermediate format instruction according to a second preset rule;
and sending the target drawing instruction to a second server, rendering the second server according to the target drawing instruction to obtain a rendering picture, and sending the rendering picture to the terminal for displaying.
In one embodiment, obtaining the original drawing instruction comprises:
acquiring an operation event of a terminal;
generating original drawing instructions based on the operation events.
In one embodiment, before sending the target drawing instruction to the second server, the method further comprises:
and directionally capturing a target drawing instruction through a preset hook library.
In one embodiment, the converting the original drawing instruction into the intermediate format instruction according to the first preset rule includes:
acquiring an instruction name and an instruction category of an original drawing instruction;
inquiring a first preset table according to the instruction name and the instruction type, and acquiring an intermediate format instruction corresponding to the instruction name and the instruction type; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
correspondingly, the step of generating the target drawing instruction by the intermediate format instruction according to the second preset rule comprises the following steps:
inquiring a second preset table according to the intermediate format instruction to obtain a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format command and the target drawing command.
According to a second aspect of embodiments of the present disclosure, there is provided a first server, the first server comprising:
the acquisition module is used for acquiring an original drawing instruction;
the conversion module is used for converting the original drawing instruction into an intermediate format instruction according to a first preset rule;
the generating module is used for generating the intermediate format instruction into a target drawing instruction according to a second preset rule;
and the sending module is used for sending the target drawing instruction to the second server, so that the second server performs rendering according to the target drawing instruction to obtain a rendering picture, and sends the rendering picture to the terminal for displaying.
In one embodiment, the obtaining module includes:
the first acquisition submodule is used for acquiring an operation event of the terminal;
and the generation submodule is used for generating an original drawing instruction based on the operation event.
In one embodiment, the first server further includes an interception module, configured to directionally intercept the target drawing instruction through a preset hook library before sending the target drawing instruction to the second server.
In one embodiment, the conversion module comprises:
the second obtaining submodule is used for obtaining the instruction name and the instruction category of the original drawing instruction;
the query submodule is used for querying the first preset table according to the instruction name and the instruction category and acquiring an intermediate format instruction corresponding to the instruction name and the instruction category; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
correspondingly, the generating module is specifically configured to:
inquiring a second preset table according to the intermediate format instruction to obtain a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format command and the target drawing command.
According to a third aspect of the embodiments of the present disclosure, there is provided an image processing system including the second server, the terminal, and the first server described in the above second aspect.
According to a fourth aspect of embodiments of the present disclosure, there is provided an image processing system, including: the system comprises a first server, a second server and a terminal, wherein the first server runs a first operating system and a second operating system, the first server further comprises a virtual 3D display card, the second server runs a window synthesizer and an Application Program Interface (API) translator, the second server further comprises a plurality of physical display cards, the virtual 3D display card comprises a front-end driver and a rear-end driver, the front-end driver runs in the first operating system, and the rear-end driver runs in the second operating system;
a first operating system of a first server initiates an original drawing instruction and sends the original drawing instruction to a front-end driver;
the front-end driver converts an original drawing instruction into an intermediate format instruction according to a first preset rule, and the rear-end driver generates a target drawing instruction according to a second preset rule from the intermediate format instruction;
the first server sends the target drawing instruction to the second server, and the window synthesizer renders according to the target drawing instruction to obtain a rendering picture and sends the rendering picture to the terminal for display.
In one embodiment, the first operating system of the first server initiating the original drawing instruction comprises: the first operating system acquires an operating event of the terminal and generates an original drawing instruction based on the operating event.
In one embodiment, the converting, by the front-end driver, the original drawing instruction into an intermediate format instruction according to a first preset rule, and the generating, by the back-end driver, the target drawing instruction according to a second preset rule by the back-end driver includes:
the front end driver acquires an instruction name and an instruction category of an original drawing instruction, and inquires a first preset table according to the instruction name and the instruction category to acquire an intermediate format instruction corresponding to the instruction name and the instruction category; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
the back-end driver queries a second preset table according to the intermediate format instruction, and acquires a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format command and the target drawing command.
In one embodiment, the first operating system is a guest operating system and the second operating system is a host operating system.
The method can realize the desktop rendering of the virtual machine in the GPU POOL-based desktop cloud system; in this way, after the user operates the zero terminal ZC, the Guest OS can generate a drawing instruction according to the operation event of the user, send the drawing instruction to the GPU POOL through the Host OS for rendering, and finally display a new image obtained by rendering to the user through the ZC.
In addition, the image processing method disclosed by the disclosure can be compatible with various types of Guest OS, that is, the type of Guest OS may be different from that of Host OS, for example, Host OS is Windows, and Guest OS may be android or iOS. That is, regardless of the type of Guest OS that the user operates through the ZC, the GPUPOOL-based desktop cloud system provided by the present disclosure can be applied.
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.
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 diagram of a desktop cloud system structure based on a GPU POOL according to an embodiment of the present disclosure;
FIG. 2 is a flowchart of an image processing method provided by an embodiment of the present disclosure;
FIG. 3 is a flowchart of an image processing method provided by an embodiment of the present disclosure;
fig. 4 is a diagram of a first server structure provided in the embodiment of the present disclosure;
fig. 5 is a block diagram of an image processing system according to an embodiment of the present disclosure.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the exemplary embodiments below are not intended to represent all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure, as detailed in the appended claims.
Example one
Fig. 1 is a structural diagram of a GPU POOL-based desktop cloud system provided in an embodiment of the present disclosure, and as shown in fig. 1, the GPU POOL-based desktop cloud system includes a cloud server (a first server), a GPU POOL (a second server), and a Zero terminal (ZC), where the Zero terminal is a terminal in the embodiment of the present disclosure. The physical machines where the cloud server and the GPU POOL are located are physically separated. The physical machine in which the GPU POOL is located may include a plurality of GPU physical display cards, including physical display card _1(GPU _1), physical display card _2(GPU _2,) physical display card _ N (GPU _ N). The cloud server runs with a Host OS (Host Operating System) and a Guest OS (Guest Operating System).
Specifically, a backend driver of a Virtual 3D GPU (Virtual 3D graphics card) and an apimemory are run on the Host OS; guest OS runs the front-end driver with Virtual 3D GPU.
The GPU POOL runs thereon a Window composer and an API Translator.
Guest OS: the client or virtual machine, the industry generally employs QEMU implementation, which runs as an independent process in the Host OS.
And (4) Host OS: the host, which is generally a Linux server, can run multiple QEMU processes simultaneously to support multiple Guest OSs.
Virtual 3D graphics card (Virtual 3D GPU): the tie between Guest OS and Host OS is implemented as a front-end driver and a back-end driver. The front-end driver is embodied as 3D display card equipment in Guest OS and is responsible for converting all drawing instructions of 2D/3D into an intermediate instruction format; and the back-end driver runs in the Host OS and is responsible for restoring the intermediate instruction format into the 2D/3D API drawing instruction. The purpose of defining the display card intermediate instruction format is that the Guest OS and the Host OS can be implemented by adopting different 2D/3D, for example, the Guest OS can use DirectX to render; and the Host OS may be restored using OpenGL. The difference of drawing instructions is shielded and driven at the front end of the Virtual 3D GPU, so that Guest OS is supported to run various different operating systems.
Therefore, the image processing method does not require that the Guest OS can be the same as the Host OS in type, that is, the method can be compatible with various Guest OS types, the applicability is strong, and a user can log in the desktop cloud system provided by the method through the ZCs of various operating systems.
It should be noted that the Zero terminal (ZC) mentioned in this disclosure refers to a terminal device having functions of decoding, displaying, and sending a user operation event to the cloud server, and specifically may be a display, a device having functions of decoding and sending an operation event, and may also be a mobile phone, a tablet, a computer, and the like.
API HOOK: the method comprises the steps of operating a hook library in a Host OS terminal function operation environment, directionally intercepting and capturing a 2D/3D API drawing instruction which is restored by Guest OS through Virtual 3D GPU rear-end drive, and not influencing the operation of other programs on the Host OS; after the interception, the function name and the parameters are packed and sent to the GPU POOL. For example, the packing format is shown in table 1:
Figure BDA0002491729170000061
Figure BDA0002491729170000071
TABLE 1
API Translator: and the system is responsible for receiving the packed data sent by the Host OS and analyzing the packed data to obtain a 2D/3D API drawing instruction.
Window composer: a window combiner. In general, an operating system separately implements 2D and 3D drawing instructions, where the 2D drawing instructions include creation of a desktop window, drawing of a basic two-dimensional graph, and the like; the 3D drawing instruction includes drawing a 3D image. The 2D drawing instruction can be completed by a CPU (central processing unit) or a GPU (graphics processing unit); and the 3D drawing instructions are all completed by the GPU. In the disclosure, a Window composer on the GPU online object combines 2D and 3D drawing instructions to implement, and is responsible for creating and maintaining a desktop Window, and creating a context environment for rendering the 3D drawing instructions, and selecting a proper physical display card to render (i.e., execute the 3D API drawing instruction) according to a rendering requirement and a busy degree of the physical display card in the GPU POOL; and finally, a rendered picture is obtained, and the rendered picture is sent to a display end for display, for example, the picture is sent to a ZC terminal for display.
It should be noted that the display end is not limited to a physical display connected to the GPU POOL in a physical form, and may also be transmitted to the ZC terminal (receiving, decoding, displaying) for display through other rendering techniques (through acquisition, encoding, and transmission).
Example two
Fig. 2 is a flowchart of an image processing method provided by an embodiment of the present disclosure, which is based on the system in fig. 1, and is illustrated by an API call full flow as shown in fig. 2:
101, a Guest OS initiates a 2D/3D API drawing instruction, and sends the 2D/3D API drawing instruction to a Virtual 3D GPU front-end driver.
In this step, first, a user logs in a Guest OS through a zero terminal (ZC); secondly, the ZC sends a Keyboard and Mouse event to the Guest OS according to the operation of the user; third, the Guest OS generates a drawing instruction (i.e., a 2D/3D API drawing instruction) in response to a Keyboardand Mouse event in order to update the window contents of the desktop.
For example, if the user operates to open a new web page, the Keyboard and Mouse event may include information related to opening the new web page; the Guest OS generates a drawing instruction (i.e. a 2D/3DAPI drawing instruction) according to the Keyboard and Mouse event, and the 2D/3D API drawing instruction can be used for generating a display screen of the new webpage; after a display picture of a new webpage is generated, updating a webpage window of the current desktop; thus, the user can see a new web page generated by his operation.
And 102, converting the 2D/3D API drawing instruction into a display card intermediate format instruction by a Virtual 3D GPU front-end driver of Guest OS.
For example, as shown in table 2, the 2D/3D API drawing command is an API Name column, and the converted graphics card intermediate format command is a GPU command column.
API Type API Name GPU instructions
DirectX D3DX.CreateTexture GPU_CMD_X
DirectX D3DX.CreateTextureFromFileEx GPU_CMD_Y
TABLE 2
It should be noted that the API Name refers to a specific API drawing instruction, and the API Type is used to illustrate which Type of 3D API implementation is; the 3D API is a generic term, and may specifically be OpenGLAPI, or DirectX API. The 3D API is translated into a display card intermediate instruction, namely, the difference of different 3D APIs is shielded, and therefore various Guest OSs are supported.
And 103, restoring the intermediate instruction format of the display card to a 2D/3D API drawing instruction supported by both the Host OS and the GPU POOL by the Virtual 3D GPU rear-end driver of the Host OS.
Such as an OpenGL implementation.
It should be noted that the 2D/3D API call restored in this step may be different from the original 2D/3D API drawing instruction in step 101. That is, the Guest OS and the Host OS may adopt different 2D/3D implementations, for example, the Guest OS may render using DirectX; and the Host OS may be restored using OpenGL. The difference of drawing instructions is shielded and driven at the front end of the Virtual 3D GPU, so that Guest OS is supported to run various different operating systems.
For example, as shown in table 3, the graphics card intermediate instruction format is a column of GPU instructions, and the converted 2D/3DAPI drawing instruction is a column of restored instructions (OpenGL).
Figure BDA0002491729170000081
Figure BDA0002491729170000091
TABLE 3
And step 104, intercepting the 2D/3D API drawing instruction by the API Hook of the Host OS, and packaging and sending the 2D/3D API drawing instruction to the GPU POOL.
It should be noted that after the 2D/3D API call is intercepted, the 2D/3D API will not be executed on the HostOS.
105, receiving the packed 2D/3D API drawing instruction by an API Translator of the GPU POOL; and analyzing the packed 2D/3D API drawing instruction, and restoring the 2D/3D API drawing instruction.
It should be noted that the 2D/3D API drawing command restored in this step may be identical to the 2D/3DAPI drawing command in step 104.
And step 106, the Window composer of the GPU POOL is responsible for creating a Window and 2D and 3D context environments, and 2D/3D calling is executed to obtain a display picture.
It should be noted that 2D/3D is only one means of rendering an image, and the final presentation is planar, i.e. two-dimensional, on the display. Like a piece of white paper, someone can draw a very three-dimensional house, but it is also a plan view. 2D/3D rendering refers to telling them how to draw with the CPU/GPU and then rendering on a display.
2D/3D rendering techniques, implement a distinction in actual programming. For example you turn on the player to watch a movie, the player tool itself is drawn with a 2D API, including the above menus and the like; 3D cannot create windows so it cannot create the player tool itself. It requires the window compositor to create a 3D rendering context (which can be understood as preparing a canvas, here the player window), and then the 3D API is drawn onto this canvas. This is a 2D/3D fusion. There is in essence such a set of mechanisms within each operating system.
In step 107, the GPU POOL sends the frame to the ZC terminal for display.
EXAMPLE III
Fig. 3 is a flowchart of an image processing method provided by an embodiment of the present disclosure, which is applied to a first server, and the image processing method shown in fig. 3 includes:
301, acquiring an original drawing instruction;
step 302, converting an original drawing instruction into an intermediate format instruction according to a first preset rule;
optionally, the method includes:
step 3021, acquiring an instruction name and an instruction type of the original drawing instruction;
step 3022, querying a first preset table according to the instruction name and the instruction type, and acquiring an intermediate format instruction corresponding to the instruction name and the instruction type; the first preset table stores the corresponding relationship between the instruction name, the instruction category and the intermediate format instruction, and the specific implementation is the same as that of the first embodiment and the second embodiment, which is not repeated.
303, generating a target drawing instruction by the intermediate format instruction according to a second preset rule;
optionally, the step may include:
inquiring a second preset table according to the intermediate format instruction to obtain a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format command and the target drawing command.
The specific implementation is the same as that of the first embodiment and the second embodiment, and details are not described again.
And step 304, sending the target drawing instruction to a second server, so that the second server performs rendering according to the target drawing instruction to obtain a rendering picture, and sending the rendering picture to the terminal for displaying.
Step 301 may specifically include:
step 3011, obtaining an operation event of the terminal;
and step 3012, generating an original drawing instruction based on the operation event.
In one embodiment, before sending the target drawing instruction to the second server, the method further comprises:
and 300, directionally intercepting and capturing a target drawing instruction through a preset hook library.
Example four
Fig. 4 is a diagram of a first server structure according to an embodiment of the present disclosure, where the first server 40 shown in fig. 4 includes:
an obtaining module 401, configured to obtain an original drawing instruction;
a conversion module 402, configured to convert an original drawing instruction into an intermediate format instruction according to a first preset rule;
a generating module 403, configured to generate the intermediate format instruction into a target drawing instruction according to a second preset rule;
the sending module 404 is configured to send the target drawing instruction to the second server, so that the second server performs rendering according to the target drawing instruction to obtain a rendering picture, and sends the rendering picture to the terminal for display.
Optionally, the obtaining module 401 includes:
the first acquisition submodule is used for acquiring an operation event of the terminal;
and the generation submodule is used for generating an original drawing instruction based on the operation event.
In one embodiment, the first server further includes an interception module, configured to directionally intercept the target drawing instruction through a preset hook library before sending the target drawing instruction to the second server.
In one embodiment, the conversion module 402 includes:
the second obtaining submodule is used for obtaining the instruction name and the instruction category of the original drawing instruction;
the query submodule is used for querying the first preset table according to the instruction name and the instruction category and acquiring an intermediate format instruction corresponding to the instruction name and the instruction category; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
correspondingly, the generating module 403 is specifically configured to:
inquiring a second preset table according to the intermediate format instruction to obtain a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format command and the target drawing command.
EXAMPLE five
The embodiment of the present disclosure further provides an image processing system, which includes a second server, a terminal, and the first server described in the fourth embodiment.
EXAMPLE six
Fig. 5 is a block diagram of an image processing system according to an embodiment of the disclosure, where the system 50 shown in fig. 5 includes: the system comprises a first server 501, a second server 502 and a terminal 503, wherein the first server runs a first operating system and a second operating system, the first server further comprises a virtual 3D display card, the second server runs a window synthesizer and an Application Program Interface (API) translator, the second server further comprises a plurality of physical display cards, the virtual 3D display card comprises a front-end driver and a rear-end driver, the front-end driver runs in the first operating system, and the rear-end driver runs in the second operating system;
a first operating system of a first server initiates an original drawing instruction and sends the original drawing instruction to a front-end driver;
the front-end driver converts an original drawing instruction into an intermediate format instruction according to a first preset rule, and the rear-end driver generates a target drawing instruction according to a second preset rule from the intermediate format instruction;
the first server sends the target drawing instruction to the second server, and the window synthesizer renders according to the target drawing instruction to obtain a rendering picture and sends the rendering picture to the terminal for display.
In one embodiment, the first operating system of the first server initiating the original drawing instruction comprises: the first operating system acquires an operating event of the terminal and generates an original drawing instruction based on the operating event.
In one embodiment, the converting, by the front-end driver, the original drawing instruction into an intermediate format instruction according to a first preset rule, and the generating, by the back-end driver, the target drawing instruction according to a second preset rule by the back-end driver includes:
the front end driver acquires an instruction name and an instruction category of an original drawing instruction, and inquires a first preset table according to the instruction name and the instruction category to acquire an intermediate format instruction corresponding to the instruction name and the instruction category; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
the back-end driver queries a second preset table according to the intermediate format instruction, and acquires a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format command and the target drawing command.
In one embodiment, the first operating system is a guest operating system and the second operating system is a host operating system.
Wherein the host operating system is a physical operating system and the guest operating system is a virtual operating system.
Based on the image processing method described in the embodiment corresponding to fig. 3, an embodiment of the present disclosure further provides a computer-readable storage medium, for example, the non-transitory computer-readable storage medium may be a Read Only Memory (ROM), a Random Access Memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like. The storage medium stores computer instructions for executing the image processing method described in the embodiment corresponding to fig. 3, which is not described herein again.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.

Claims (10)

1. An image processing method applied to a first server, the method comprising:
acquiring an original drawing instruction;
converting the original drawing instruction into an intermediate format instruction according to a first preset rule;
generating a target drawing instruction by the intermediate format instruction according to a second preset rule;
and sending the target drawing instruction to a second server, rendering the second server according to the target drawing instruction to obtain a rendering picture, and sending the rendering picture to the terminal for displaying.
2. The method of claim 1, wherein said obtaining original drawing instructions comprises:
acquiring an operation event of a terminal;
generating an original drawing instruction based on the operation event.
3. The method of claim 1, wherein prior to sending the target drawing instruction to the second server, the method further comprises:
and directionally intercepting and capturing the target drawing instruction through a preset hook library.
4. The method of claim 1, wherein converting the original drawing instruction into an intermediate format instruction according to a first predetermined rule comprises:
acquiring an instruction name and an instruction category of the original drawing instruction;
inquiring a first preset table according to the instruction name and the instruction type, and acquiring an intermediate format instruction corresponding to the instruction name and the instruction type; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
correspondingly, the generating the target drawing instruction according to the intermediate format instruction and the second preset rule includes:
inquiring a second preset table according to the intermediate format instruction to obtain a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format instruction and the target drawing instruction.
5. A first server, wherein the first server comprises:
the acquisition module is used for acquiring an original drawing instruction;
the conversion module is used for converting the original drawing instruction into an intermediate format instruction according to a first preset rule;
the generating module is used for generating the intermediate format instruction into a target drawing instruction according to a second preset rule;
and the sending module is used for sending the target drawing instruction to a second server, rendering the second server according to the target drawing instruction to obtain a rendering picture, and sending the rendering picture to the terminal for displaying.
6. An image processing system, characterized in that the system comprises a second server, a terminal and the first server of claim 5.
7. An image processing system, characterized in that the system comprises: the system comprises a first server, a second server and a terminal, wherein the first server runs a first operating system and a second operating system, the first server further comprises a virtual 3D display card, the second server runs a window synthesizer and an Application Program Interface (API) translator, the second server further comprises a plurality of physical display cards, the virtual 3D display card comprises a front-end driver and a rear-end driver, the front-end driver runs in the first operating system, and the rear-end driver runs in the second operating system;
a first operating system of the first server initiates an original drawing instruction and sends the original drawing instruction to the front-end driver;
the front-end driver converts the original drawing instruction into an intermediate format instruction according to a first preset rule, and the rear-end driver generates a target drawing instruction according to a second preset rule from the intermediate format instruction;
and the first server sends the target drawing instruction to a second server, and the window synthesizer carries out rendering according to the target drawing instruction to obtain a rendering picture and sends the rendering picture to the terminal for displaying.
8. The system of claim 7, wherein the first operating system of the first server initiating the original drawing instruction comprises: the first operating system acquires an operating event of the terminal and generates an original drawing instruction based on the operating event.
9. The system of claim 7, wherein the front-end driver converts the original drawing command into an intermediate format command according to a first preset rule, and the back-end driver generates the intermediate format command into a target drawing command according to a second preset rule, including:
the front-end driver acquires an instruction name and an instruction type of the original drawing instruction, and queries a first preset table according to the instruction name and the instruction type to acquire an intermediate format instruction corresponding to the instruction name and the instruction type; the first preset table stores the corresponding relation among the instruction name, the instruction category and the intermediate format instruction;
the rear-end driver queries a second preset table according to the intermediate format instruction to acquire a target drawing instruction corresponding to the intermediate format instruction; the second preset list stores the corresponding relation between the intermediate format instruction and the target drawing instruction.
10. The system of any of claims 7-9, wherein the first operating system is a guest operating system and the second operating system is a host operating system.
CN202010407114.3A 2020-05-14 2020-05-14 Image processing method, first server and system Pending CN111752673A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010407114.3A CN111752673A (en) 2020-05-14 2020-05-14 Image processing method, first server and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010407114.3A CN111752673A (en) 2020-05-14 2020-05-14 Image processing method, first server and system

Publications (1)

Publication Number Publication Date
CN111752673A true CN111752673A (en) 2020-10-09

Family

ID=72673475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010407114.3A Pending CN111752673A (en) 2020-05-14 2020-05-14 Image processing method, first server and system

Country Status (1)

Country Link
CN (1) CN111752673A (en)

Similar Documents

Publication Publication Date Title
US20170323418A1 (en) Virtualized gpu in a virtual machine environment
US10902663B2 (en) Method and apparatus for displaying 2D application interface in virtual reality device
CN107832108B (en) Rendering method and device of 3D canvas webpage elements and electronic equipment
CN111488196B (en) Rendering method and device, storage medium and processor
CN113110910B (en) Method, system and equipment for realizing security Zhuo Rongqi
EP2622461B1 (en) Shared memory between child and parent partitions
CN111354063B (en) Three-dimensional element rendering method, desktop cloud server and desktop cloud system
US8872835B2 (en) Prevention of DoS attack by a rogue graphics application
WO2022041507A1 (en) 3d rendering method and system
CN110213265B (en) Image acquisition method, image acquisition device, server and storage medium
CN110458748A (en) Data transmission method, server and client
CN110557624A (en) Data transmission method and device and server
US20140059114A1 (en) Application service providing system and method and server apparatus and client apparatus for application service
CN111209115A (en) Cloud desktop vGPU (virtual graphics processing Unit) over-allocation method
CN113240571A (en) Image processing system, method and program
CN106991057B (en) Memory calling method in virtualization of shared display card and virtualization platform
CN110545415A (en) Data transmission method and device and server
CN112799801B (en) Method, device, equipment and medium for drawing simulated mouse pointer
CN113379588A (en) Rendering system for container applications
CN112506646A (en) Video memory allocation method and device
CN111475255A (en) Image processing method, server and system
CN111752673A (en) Image processing method, first server and system
CN111752619A (en) Image processing method and system
US20240022670A1 (en) Scanning preview method in scanner redirection
CN114327790A (en) Rendering method of Android container based on Linux system

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