WO2018223786A1 - 云桌面系统、及其图像序列压缩编码方法和介质 - Google Patents
云桌面系统、及其图像序列压缩编码方法和介质 Download PDFInfo
- Publication number
- WO2018223786A1 WO2018223786A1 PCT/CN2018/084262 CN2018084262W WO2018223786A1 WO 2018223786 A1 WO2018223786 A1 WO 2018223786A1 CN 2018084262 W CN2018084262 W CN 2018084262W WO 2018223786 A1 WO2018223786 A1 WO 2018223786A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- external device
- virtual machine
- encoding
- result data
- encoding module
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000007906 compression Methods 0.000 title claims abstract description 35
- 230000006835 compression Effects 0.000 title claims abstract description 34
- 230000008569 process Effects 0.000 claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims description 33
- 230000002452 interceptive effect Effects 0.000 claims description 24
- 230000003993 interaction Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 8
- 235000013599 spices Nutrition 0.000 description 7
- 230000009969 flowable effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Definitions
- the present disclosure relates to the field of cloud computing, and in particular to a cloud desktop system, and an image sequence compression encoding method and medium thereof.
- Cloud Desktop separates the personal computer desktop environment from the physical machine through the cloud computing mode, and becomes a desktop service that can be provided externally.
- the computing and storage resources required by the personal desktop environment are concentrated on the server to replace the local computing of the customer.
- Storage, and the computing and storage resources of the server are shared and scalable. Different users can allocate resources according to needs, which can improve resource utilization.
- customers can access the cloud desktop for office work through personal computer PCs, laptops, netbooks, tablet PCs or mobile phones and other terminal devices that can connect to the network, thus entering a new era of mobile office.
- VDI Virtual Desktop Infrastructure
- the server management center can assign virtual machines to users, users set through the client After the transport protocol is connected to the virtual machine, the virtual desktop is presented to the user.
- the server compresses and encodes the image desktop sequence of dozens or even hundreds of virtual machines at the same time. This part of the encoding work consumes a large amount of CPU resources, resulting in a limit on the maximum number of virtual machines that can be turned on by one server. ,increase cost.
- the present disclosure provides a cloud desktop system, and an image sequence compression encoding method and medium thereof, for reducing at least a CPU usage of a server host.
- the present disclosure provides an image sequence compression coding method for a cloud desktop system, the system including a server connected by a bus and at least one external device; the method for the server includes:
- the image encoding module is called to enable the image encoding module to complete cloud desktop image sequence compression encoding according to the result data.
- the present disclosure also provides a cloud desktop system, the system comprising a server and at least one external device; the server host comprising an image encoding module, a memory and a processor; the memory storing an image sequence compression encoding computer program, the processing The computer program is executed to implement the following steps:
- the image encoding module is called to enable the image encoding module to complete cloud desktop image sequence compression encoding according to the result data.
- the present disclosure further provides a computer readable storage medium storing an image sequence compression encoding computer program, the computer program being executed by at least one processor to implement the following steps:
- the image encoding module is called to enable the image encoding module to complete cloud desktop image sequence compression encoding according to the result data, wherein the server and the plurality of external devices constitute a cloud desktop system.
- the desktop image sequence compression coding process is suitable for pipeline parallel processing and has high complexity and large CPU resource encoding process from the server host end to Execution on an external device can improve the coding speed and reduce the CPU usage of the server host, so that one server can create more virtual machines for more users to reduce costs and solve the problem of large screen resolution.
- the problem of user operation is not smooth.
- FIG. 1 is a flowchart of an image encoding method of a cloud desktop system in an embodiment of the present disclosure
- FIG. 2 is a system framework diagram of a cloud desktop system based on the OpenCL heterogeneous framework in the embodiment of the present disclosure
- FIG. 3 is a schematic structural diagram of a cloud desktop system according to an embodiment of the present disclosure.
- the present disclosure provides a cloud desktop system, and an image sequence compression coding method and medium thereof.
- the present disclosure will be further described in detail below with reference to the accompanying drawings and embodiments. It is understood that the specific embodiments described herein are merely illustrative of the disclosure and are not intended to be limiting.
- an embodiment of the present disclosure provides an image encoding method of a cloud desktop system, where the system includes a server connected by a bus and at least one external device; and the method is used by the server, including:
- S101 Call an external device to perform an encoding process that can be parallelized by a preset flow in the preset image encoding module.
- the image encoding module is invoked, so that the image encoding module completes cloud desktop image sequence compression encoding according to the result data.
- both the server and the external device belong to the server of the cloud desktop system. Therefore, in order to distinguish the server from the external device, the server host is used to represent the server.
- the embodiment of the present disclosure performs an encoding process of preset flowable parallel processing in the preset image encoding module by calling an external device, and then obtains result data obtained after performing the encoding process from the external device, and finally calls the image encoding module. So that the image coding module completes the cloud desktop image coding according to the result data, so that the desktop image sequence compression coding process is suitable for pipeline parallel processing and has higher complexity and consumes more CPU resources.
- the encoding process is from the server host end. Transfer to an external device for execution, while increasing the encoding speed, it can also reduce the CPU usage of the server host, so that one server can create more virtual machines for more users to reduce costs and solve large screen resolution. In the case of rate, the user's operation is not smooth.
- the embodiment of the present disclosure can adopt the OpenCL (Open Computing Language) standard in the specific implementation, so that the program is highly portable.
- OpenCL Open Computing Language
- the bus can use a PCIe (peripheral component interconnect express) bus.
- PCIe peripheral component interconnect express
- the encoding module in the embodiment of the present disclosure may select an encoder of the H.264 standard; the external device may select a field programmable gate array; and the encoding process may select a discrete cosine transform process.
- the server is a host end
- an FPGA Field-Programmable Gate Array
- a server and an FPGA are connected by a PCIe bus, and a high bandwidth of the PCIe bus is used.
- the feature makes the communication delay between the host and the device side negligible, and one host can connect multiple FPGA devices.
- the Spice server runs on the server host.
- the H.264 encoding process is not suitable for parallel flow. Part of it also runs on the host side of the server.
- the H.264 encoding process has a high complexity and is suitable for running parallel parts of the FPGA device. For example, the DCT (Discrete Cosine Transform) process.
- the invoking an external device to perform the encoding process of the flowable parallel processing preset in the preset image encoding module may include:
- the associated external device is called to perform the encoding process.
- the method may further include:
- the device monitoring process is run to cause the device monitoring process to start a main thread for listening to the virtual machine request, and to cause the device monitoring process to view the available external devices, and create a plurality of interactive threads according to the number of available external devices.
- result data obtained after performing the encoding process including:
- a socket is created to cause the assigned interactive thread to obtain the result data from the associated external device through the socket and transmit the result data to the image encoding module.
- the image coding method in the embodiment of the present disclosure is specifically described in a cloud desktop system of a specific OpenCL heterogeneous framework, including:
- the device monitoring process starts.
- the device monitoring process creates a main thread, and the main thread creates a Socket (socket) according to the preset port number and listens, and the device monitoring process calls the OpenCL API (Application).
- Programming Interface view all available FPGA devices, create the same number of N interactive threads according to the number of available FPGA devices, and assign a fixed FPGA peripheral to each interactive thread.
- the interactive thread is responsible for the FPGA. Set the interaction with the host H.264 encoder. When the interactive thread is created, it will initialize its corresponding FPGA device platform, and create a kernel program by calling the OpenCL API.
- the kernel program completes the DCT transformation during the encoding process.
- Spice Server calls the Open function of the H.264 encoder.
- the Socket is also created to establish a connection with the device monitoring process request.
- the Spice Server sends the captured desktop image YUV (a color coding method) data to the H.264 encoder for compression;
- the virtual machine process Spice Server will call the H.264 encoder Close function.
- the Close function also sends the Uninit command through the Socket communication.
- the interactive program receives the Uninit command, Disconnecting the virtual machine from its FPGA peripherals, and then ending the Socket communication between the virtual machine process and the device monitoring process;
- an embodiment of the present disclosure provides a cloud desktop system, where the system includes a server and at least one external device; the server host includes an image encoding module, a memory, and a processor; and the memory stores image sequence compression. Encoding a computer program, the processor executing the computer program to implement the following steps:
- the image encoding module is called to enable the image encoding module to complete cloud desktop image sequence compression encoding according to the result data.
- the encoding module is an encoder of the H.264 standard; the external device is a field programmable gate array; and the encoding process is a discrete cosine transform process.
- the invoking an external device to perform the encoding process of the flowable parallel processing preset in the preset image encoding module may include:
- the associated external device is called to perform the encoding process.
- the processor executes the computer program to further implement the following steps:
- the device monitoring process is run to cause the device monitoring process to start a main thread for listening to the virtual machine request, and to cause the device monitoring process to view the available external devices, and create a plurality of interactive threads according to the number of available external devices.
- the association between the virtual machine and an external device is established, including:
- the main thread listens to the connection request of the virtual machine, establish a connection with the virtual machine, and allocate an interaction thread, so that the allocated interaction thread establishes between the virtual machine and the external device corresponding to the interaction thread.
- the association After the main thread listens to the connection request of the virtual machine, establish a connection with the virtual machine, and allocate an interaction thread, so that the allocated interaction thread establishes between the virtual machine and the external device corresponding to the interaction thread. The association.
- the obtaining result data obtained after performing the encoding process from the external device includes:
- a socket is created to cause the assigned interactive thread to obtain the result data from the associated external device through the socket and transmit the result data to the image encoding module.
- the embodiment of the present disclosure performs an encoding process of preset flowable parallel processing in the preset image encoding module by calling an external device, and then obtains result data obtained after performing the encoding process from the external device, and finally calls the image encoding module. So that the image coding module completes the cloud desktop image coding according to the result data, so that the desktop image sequence compression coding process is suitable for pipeline parallel processing and has higher complexity and consumes more CPU resources.
- the encoding process is from the server host end. Transfer to an external device for execution, while increasing the encoding speed, it can also reduce the CPU usage of the server host, so that one server can create more virtual machines for more users to reduce costs and solve large screen resolution. In the case of rate, the user's operation is not smooth.
- the embodiment of the present disclosure aims to implement a cloud desktop system based on OpenCL (Open Computing Language) heterogeneous framework, and adopt a heterogeneous framework based on the OpenCL standard on the server side of the cloud desktop.
- OpenCL Open Computing Language
- Part of the desktop image sequence compression coding is migrated to an external device, wherein the external device can be an FPGA, so that the external device constitutes a hardware acceleration device to reduce the CPU usage of the server, improve the cloud desktop user experience, and solve the large screen resolution. In the case where the user does not operate smoothly.
- OpenCL Open Computing Language
- a set of FPGA hardware acceleration devices are connected through the PCIe interface, and the server host end uses the device monitoring process to manage the acceleration device, and according to the current CPU occupation resources, images of different desktops are used.
- the sequence compression coding DCT (Discrete Cosine Transform) module is allocated to the FPGA hardware acceleration device, thereby improving the performance of the server system and solving the Karton problem caused by the CPU resource bottleneck.
- the system hardware is composed of a server and an FPGA hardware acceleration device, and the acceleration device may be an FPGA, but is not limited to such a hardware device type, and the server and the FPGA device are connected by using a PCIe bus, and one server may be Connect multiple FPGA devices. And select DCT to complete on the FPGA, which effectively reduces the FPGA resources, reduces the number of FPGAs, and reduces the cost increase caused by increasing the number of FPGAs.
- Embodiments of the present disclosure perform a device monitoring process on the server side that is responsible for the management of the FPGA device and the interaction between the FPGA device and the host H.264 encoder.
- a device monitoring process on the server side that is responsible for the management of the FPGA device and the interaction between the FPGA device and the host H.264 encoder.
- a device monitoring process running control and interaction on the server host side the device monitoring process starts a main thread, the main thread creates a Socket and listens, and the device monitoring process checks all available FPGAs by calling the OpenCL API.
- the device creates a number of N interactive threads of the same number based on the number of available FPGA devices.
- An interactive thread is responsible for the interaction between an FPGA peripheral and the host H.264 encoder.
- the interactive thread When the interactive thread is created, it will initialize its corresponding FPGA device platform, and create a kernel program by calling OpenCL API.
- the kernel program completes the DCT transformation process in the encoding process.
- Spice Server calls H.
- the Open function of the .264 encoder in addition to completing the initialization of the encoder inside the Open function, also creates a connection between the Socket and the device monitoring process request; on the host side of the server, when the main thread of the device monitoring process listens to a virtual machine After the connection request, the connection is established in response to the request, and an interaction thread is allocated according to the load sharing principle to handle the interaction between the virtual machine and the FPGA peripheral, and the interaction thread establishes an association between the virtual machine and its FPGA peripheral.
- the virtual machine process H.264 encoder performs the H.264 standard compression encoding of the desktop image sequence.
- the kernel_type and the current kernel_type to be called are communicated through the Socket communication.
- the required data is transferred to the device monitoring process, and the device monitoring process receives the data from the interactive thread.
- the kernel function corresponding to the kernel_type is executed by calling the OpenCL API of the FPGA peripheral corresponding to the virtual machine.
- the interactive thread reads the execution result from the FPGA peripheral, and then transmits the execution result to the H through the socket communication.
- the virtual machine process Spice Server will call the H.264 encoder Close function.
- the Uinit command is sent through the Socket communication, and the interactive program receives After the Uinit command, the association between the virtual machine and its FPGA peripheral is disconnected, and then the Socket communication between the virtual machine process and the device monitoring process is ended; before each interactive thread is destroyed, its corresponding FPGA peripheral is required. Perform kernel release and memory release work.
- the DCT coding module suitable for pipeline parallel processing and high complexity and larger CPU resources is transferred from the server host end to the FPGA device in the compression process of the desktop image sequence, and the coding speed is improved while the coding speed is increased. It can also reduce the CPU usage of the server host, so that one server can create more virtual machines for more users to reduce costs, and solve the problem that the user operation is not smooth under the condition of large screen resolution. And the OpenCL standard is adopted in the present disclosure to make the program portable.
- Embodiments of the present disclosure provide a computer readable storage medium storing an image sequence compression coding computer program, the computer program being executed by at least one processor to implement the following steps:
- the image encoding module is called to enable the image encoding module to complete cloud desktop image sequence compression encoding according to the result data, wherein the server and the plurality of external devices constitute a cloud desktop system.
- the invoking an external device to perform the encoding process of the flowable parallel processing preset in the preset image encoding module may include:
- the associated external device is called to perform the encoding process.
- processor executes the computer program to further implement the following steps:
- the device monitoring process is run to cause the device monitoring process to start a main thread for listening to the virtual machine request, and to cause the device monitoring process to view the available external devices, and create a plurality of interactive threads according to the number of available external devices.
- the association between the virtual machine and an external device is established, including:
- the main thread listens to the connection request of the virtual machine, establish a connection with the virtual machine, and allocate an interaction thread, so that the allocated interaction thread establishes between the virtual machine and the external device corresponding to the interaction thread.
- the association After the main thread listens to the connection request of the virtual machine, establish a connection with the virtual machine, and allocate an interaction thread, so that the allocated interaction thread establishes between the virtual machine and the external device corresponding to the interaction thread. The association.
- result data obtained after performing the encoding process including:
- a socket is created to cause the assigned interactive thread to obtain the result data from the associated external device through the socket and transmit the result data to the image encoding module.
- the encoding module is an encoder of the H.264 standard; the external device is a field programmable gate array; and the encoding process is a discrete cosine transform process.
- computer storage medium includes volatile and nonvolatile, implemented in any method or technology for storing information, such as computer readable instructions, data structures, program modules or other data. Sex, removable and non-removable media.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridge, magnetic tape, magnetic disk storage or other magnetic storage device, or may Any other medium used to store the desired information and that can be accessed by the computer.
- communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and can include any information delivery media. .
- the desktop image sequence compression coding process is suitable for pipeline parallel processing and has high complexity and large CPU resource encoding process from the server host end to Execution on an external device can improve the coding speed and reduce the CPU usage of the server host, so that one server can create more virtual machines for more users to reduce costs and solve the problem of large screen resolution.
- the problem of user operation is not smooth.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了一种云桌面系统、及其图像序列压缩编码方法和介质。所述系统包括通过总线连接的服务器和至少一个外接设备;所述方法用于所述服务器,包括:调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;从所述外接设备获取执行编码过程后得到的结果数据;调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
Description
本公开涉及云计算领域,特别是涉及一种云桌面系统、及其图像序列压缩编码方法和介质。
随着移动互联网的迅猛发展,云桌面应用已经被越来越多的人们所使用。云桌面将个人计算机桌面环境通过云计算模式从物理机器分离出来,成为一种可以对外提供的桌面服务,同时个人桌面环境所需的计算、存储资源集中在服务器上,以取代客户的本地计算、存储,并且服务器的计算、存储资源是共享可伸缩的,可以给不同的客户按照需要分配资源,可以提高资源的利用率。利用云桌面应用,客户可以通过个人计算机PC、笔记本、上网本、平板电脑Pad或手机等可以连接网络的终端设备来访问云桌面进行办公,从而进入移动办公新时代。
VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)云桌面架构下,一台服务器可同时开启几十至上百台虚拟机,服务器的管理中心可以将虚拟机分配给用户,用户在客户端通过设定的传输协议连接到虚拟机后,将虚拟桌面呈现给用户。
为了将虚拟桌面内容呈现给用户,服务器同时对几十甚至上百台虚拟机的图像桌面序列进行压缩编码,这部分编码工作消耗大量的CPU资源,导致一台服务器的最大虚拟机开启台数受到限制,增加成本。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开提供一种云桌面系统、及其图像序列压缩编码方法和介质,用以至少降低服务器主机的CPU使用率。
本公开提供一种云桌面系统的图像序列压缩编码方法,所述系统包括通过总线连接的服务器和至少一个外接设备;所述方法用于所述服务器,包括:
调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;
从所述外接设备获取执行编码过程后得到的结果数据;
调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
本公开还提供一种云桌面系统,所述系统包括服务器和至少一个外接设备;所述服务器主机包括图像编码模块、存储器和处理器;所述存储器存储有图像序列压缩编码计算机程序,所述处理器执行所述计算机程序以实现以下步骤:
调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;
从所述外接设备获取执行编码过程后得到的结果数据;
调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
本公开进一步提供一种计算机可读存储介质,所述介质存储有图像序列压缩编码计算机程序,所述计算机程序被至少一个处理器执行时,以实现以下步骤:
调用一外接设备执行服务器中预置图像编码模块中预设的可流水并行处理的编码过程;
从所述外接设备获取执行编码过程后得到的结果数据;
调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码,其中所述服务器和多个外接设备组成云桌面系统。
本公开有益效果如下:
根据本公开中云桌面系统、及其图像序列压缩编码方法和介质,将桌面图像序列压缩编码过程中适合流水并行处理且复杂度较高、较占用CPU资源较大编码过程从服务器主机端转移到外接设备上执行,在提高编码速度的 同时还能降低服务器主机的CPU使用率,使一台服务器可以创建更多的虚拟机供更多的用户使用,以降低成本,并且解决大屏幕分辨率情况下用户操作不流畅的问题。
在阅读并理解了附图和详细描述后,可以明白其他方面。
图1是本公开实施例中一种云桌面系统的图像编码方法的流程图;
图2是本公开实施例中基于OpenCL异构框架的云桌面系统的系统框架图;
图3是本公开实施例中一种云桌面系统的结构示意图。
本公开提供了一种云桌面系统、及其图像序列压缩编码方法和介质,以下结合附图以及实施例,对本公开进行进一步详细说明。应理解,此处所描述的具体实施例仅用以解释本公开,并不限定本公开。
示例一
如图1所示,本公开实施例提供一种云桌面系统的图像编码方法,其中所述系统包括通过总线连接的服务器和至少一个外接设备;所述方法用于所述服务器,包括:
S101,调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;
S102,从所述外接设备获取执行编码过程后得到的结果数据;
S103,调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
本公开实施例中服务器和外接设备都属于云桌面系统的服务端,因此为了使服务器和外接设备加以区分,本文中采用服务器主机来表示服务器。
本公开实施例通过调用一外接设备执行预置图像编码模块中预设的可 流水并行处理的编码过程,然后从所述外接设备获取执行编码过程后得到的结果数据,最后调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像编码,从而将桌面图像序列压缩编码过程中适合流水并行处理且复杂度较高、较占用CPU资源较大编码过程从服务器主机端转移到外接设备上执行,在提高编码速度的同时还能降低服务器主机的CPU使用率,使一台服务器可以创建更多的虚拟机供更多的用户使用,以降低成本,并且解决大屏幕分辨率情况下用户操作不流畅的问题。
当然本公开实施例在具体实现时可以采用OpenCL(Open Computing Language,开放运算语言)标准,从而使得程序的可移植性强。
其中总线可以采用PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)总线。
其中,本公开实施例中所述编码模块可以选择H.264标准的编码器;所述外接设备可以选择现场可编程门阵列;所述编码过程可以选择离散余弦变换过程。
例如,如图2所示,本公开实施中服务器为主机端,FPGA(Field-Programmable Gate Array,现场可编程门阵列)为设备端,服务器与FPGA之间通过PCIe总线相连,PCIe总线的高带宽特性使得主机与设备端之间的通信延迟可以忽略不计,且一台主机可以连接多个FPGA设备,Spice server(虚拟机进程)运行在服务器主机端,H.264编码过程中不适合流水并行的部分也运行在服务器主机端,H.264编码过程中复杂度较高且适合流水并行的部分运行在FPGA设备端。例如DCT(Discrete Cosine Transform,离散余弦变换)过程。
在本公开实施例中,所述调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程,可以包括:
在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联;
调用关联的外接设备执行所述编码过程。
在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间 的关联之前,还可以包括:
运行设备监控进程,以使所述设备监控进程启动用于监听虚拟机请求的主线程,以及使所述设备监控进程查看可用外接设备,并根据所述可用外接设备的数量创建多个交互线程。
所述从所述外接设备获取执行编码过程后得到的结果数据,包括:
创建套接字,以使所述分配的交互线程通过所述套接字从所述关联的外接设备获取所述结果数据,并将所述结果数据发送给所述图像编码模块。
以具体的OpenCL异构框架的云桌面系统详细说明本公开实施例中图像编码方法,包括:
S1:设备监控进程启动,该设备监控进程创建一个主线程,该主线程会根据预设的端口号创建一个Socket(套接字)并进行监听,同时该设备监控进程会通过调用OpenCL API(Application Programming Interface,应用程序编程接口)查看所有可用的FPGA设备,根据可用FPGA设备数量创建数量相同的N个交互线程,为每一个交互线程分配一台固定的FPGA外设,该交互线程负责该FPGA外设与主机H.264编码器之间的交互。交互线程刚创建时会对其对应的FPGA设备平台进行初始化,并通过调用OpenCL API创建kernel程序,kernel程序完成编码过程中的DCT变换;
S2:当开始对桌面图像序列进行编码时,Spice Server调用H.264编码器的Open函数,在Open函数内部除了完成编码器的初始化工作,还会创建Socket与设备监控进程请求建立连接;
S3:当设备监控进程主线程监听到某台虚拟机的连接请求后响应其请求建立连接,根据负载均分原则分配一个交互线程负责处理该虚拟机与FPGA外设之间的交互,且该交互线程建立起该虚拟机和其对应FPGA外设之间的关联;
S4:Spice Server将捕获到的桌面图像YUV(一种颜色编码方法)数据送给H.264编码器对其进行压缩;
S5:H.264编码器在对接收到的YUV数据进行压缩编码时,当运行到上述S1中kernel所对应的阶段时,通过Socket通信将当前需要的数据传送 给设备监控进程,设备监控进程交互线程接收到该数据时,会通过对该虚拟机对应的FPGA外设调用OpenCL API执行kernel函数,等kernel函数执行完成后,交互线程从FPGA外设读取执行结果,再将执行结果通过socket通信传送给H.264编码器;
S6:虚拟机进程H.264编码器完成当前图像的编码时,将压缩后的码流返回给Spice Server;
S7:在所有编码完成后虚拟机进程Spice Server会调用H.264编码器Close函数,在Close函数中除了完成编码器的释放工作,还要通过Socket通信发送Uninit命令,交互程序收到Uninit命令后,断开该虚拟机和其FPGA外设之间的关联,其后结束虚拟机进程和设备监控进程之间的Socket通信;
S8:在各个交互线程销毁前,要对其对应的FPGA外设进行kernel释放和内存释放工作。
示例二
如图3所示,本公开实施例提供一种云桌面系统,所述系统包括服务器和至少一个外接设备;所述服务器主机包括图像编码模块、存储器和处理器;所述存储器存储有图像序列压缩编码计算机程序,所述处理器执行所述计算机程序以实现以下步骤:
调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;
从所述外接设备获取执行编码过程后得到的结果数据;
调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
其中,所述编码模块为H.264标准的编码器;所述外接设备为现场可编程门阵列;所述编码过程为离散余弦变换过程。
在本公开实施例中,所述调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程,可以包括:
在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联;
调用关联的外接设备执行所述编码过程。
所述处理器执行所述计算机程序以还实现以下步骤:
运行设备监控进程,以使所述设备监控进程启动用于监听虚拟机请求的主线程,以及使所述设备监控进程查看可用外接设备,并根据所述可用外接设备的数量创建多个交互线程。
所述在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联,包括:
当所述主线程监听到所述虚拟机的连接请求后,与所述虚拟机建立连接,并分配一个交互线程,以使分配的交互线程建立所述虚拟机与该交互线程对应外接设备之间的关联。
其中,所述从所述外接设备获取执行编码过程后得到的结果数据,包括:
创建套接字,以使所述分配的交互线程通过所述套接字从所述关联的外接设备获取所述结果数据,并将所述结果数据发送给所述图像编码模块。
本公开实施例通过调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程,然后从所述外接设备获取执行编码过程后得到的结果数据,最后调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像编码,从而将桌面图像序列压缩编码过程中适合流水并行处理且复杂度较高、较占用CPU资源较大编码过程从服务器主机端转移到外接设备上执行,在提高编码速度的同时还能降低服务器主机的CPU使用率,使一台服务器可以创建更多的虚拟机供更多的用户使用,以降低成本,并且解决大屏幕分辨率情况下用户操作不流畅的问题。
举例说明本公开实施例。
如图2所示,本公开实施例目的在于实现一种基于OpenCL(Open Computing Language,开放运算语言)异构框架的云桌面系统,在云桌面的服务端采用基于OpenCL标准的异构框架,将桌面图像序列压缩编码的一部分工作迁移到外接设备上,其中外接设备可以是FPGA,从而使外接设备构成硬件加速设备,以降低服务器的CPU使用率,提高云桌面用户体验,同时解决大屏幕分辨率情况下用户操作不流畅的问题。
本公开实施例中在云桌面系统的服务器上,通过PCIe接口连接一组FPGA硬件加速设备,服务器主机端采用设备监控进程对加速设备进行管理,根据当前CPU占用资源情况,将不同桌面下的图像序列压缩编码DCT(Discrete Cosine Transform,离散余弦变换)模块分配至FPGA硬件加速设备上,从而提高服务器系统性能,解决由于CPU资源瓶颈带来的卡顿问题。FPGA加速子系统上,输入的桌面流子图序列经过逻辑电路处理后,输出能量集中在低频部分的变换结果,该结果再通过PCIE接口返回服务器主机端,至此服务器与加速设备协同工作完成云桌面系统中桌面流的压缩编码过程。
详细说,本公开实施例中系统硬件由服务器和FPGA硬件加速设备组成,加速设备可以是FPGA,但不限于这种硬件设备类型,服务器与FPGA设备之间使用PCIe总线相连接,一台服务器可以连接多个FPGA设备。并且选择DCT在FPGA上完成,从而有效降低FPGA的资源,减少了FPGA片数的要求,降低了由于增加FPGA数量导致的成本增加。
本公开实施例在服务器端执行一个设备监控进程,该设备监控程序负责FPGA设备的管理以及FPGA设备和主机H.264编码器之间的交互。例如:
在服务器主机端运行起控制和交互作用的设备监控进程,该设备监控进程启动一个主线程,该主线程会创建一个Socket并进行监听,同时该设备监控进程会通过调用OpenCL API查看所有可用的FPGA设备,并根据可用的FPGA设备数量创建数量相同的N个交互线程,一个交互线程负责一台FPGA外设和主机H.264编码器之间的交互。
交互线程刚创建时会对其对应的FPGA设备平台进行初始化,并通过调用OpenCL API创建kernel程序,kernel程序完成编码过程中的DCT变换过程;当开始对桌面图像序列进行编码时,Spice Server调用H.264编码器的Open函数,在Open函数内部除了完成编码器的初始化工作,还会创建Socket与设备监控进程请求建立连接;在服务器主机端,当设备监控进程主线程监听到某台虚拟机的连接请求后响应其请求建立连接,根据负载均分原则分配一个交互线程负责处理该虚拟机与FPGA外设之间的交互,且该交互线程建立起该虚拟机和其FPGA外设之间的关联;虚拟机进程H.264编码器在对桌面图像序列进行H.264标准的压缩编码时,当运行到上述第一步中kernel 所对应的阶段时,会通过Socket通信将当前要调用的kernel_type和所需的数据传送给设备监控进程,设备监控进程交互线程接收到该数据时,会通过对该虚拟机对应的FPGA外设调用OpenCL API执行kernel_type对应的kernel函数,等kernel函数执行完成后,交互线程从FPGA外设读取执行结果,再将执行结果通过socket通信传送给H.264编码器;在所有编码完成后虚拟机进程Spice Server会调用H.264编码器Close函数,在Close函数中除了完成编码器的释放工作,还要通过Socket通信发送Uinit命令,交互程序收到Uinit命令后,断开该虚拟机和其FPGA外设之间的关联,其后结束虚拟机进程和设备监控进程之间的Socket通信;在各个交互线程销毁前,要对其对应的FPGA外设进行kernel释放和内存释放工作。
本公开实施例中将桌面图像序列压缩编码过程中适合流水并行处理且复杂度较高、较占用CPU资源较大的DCT编码模块从服务器主机端转移到FPGA设备上执行,在提高编码速度的同时还能降低服务器主机的CPU使用率,使一台服务器可以创建更多的虚拟机供更多的用户使用,以降低成本,并且解决大屏幕分辨率情况下用户操作不流畅的问题。且本公开中采用OpenCL标准,使得程序的可移植性强。
示例三
本公开实施例提供一种计算机可读存储介质,所述介质存储有图像序列压缩编码计算机程序,所述计算机程序被至少一个处理器执行时,以实现以下步骤:
调用一外接设备执行服务器中预置图像编码模块中预设的可流水并行处理的编码过程;
从所述外接设备获取执行编码过程后得到的结果数据;
调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码,其中所述服务器和多个外接设备组成云桌面系统。
在本公开实施例中,所述调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程,可以包括:
在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联;
调用关联的外接设备执行所述编码过程。
其中,所述处理器执行所述计算机程序以还实现以下步骤:
运行设备监控进程,以使所述设备监控进程启动用于监听虚拟机请求的主线程,以及使所述设备监控进程查看可用外接设备,并根据所述可用外接设备的数量创建多个交互线程。
所述在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联,包括:
当所述主线程监听到所述虚拟机的连接请求后,与所述虚拟机建立连接,并分配一个交互线程,以使分配的交互线程建立所述虚拟机与该交互线程对应外接设备之间的关联。
所述从所述外接设备获取执行编码过程后得到的结果数据,包括:
创建套接字,以使所述分配的交互线程通过所述套接字从所述关联的外接设备获取所述结果数据,并将所述结果数据发送给所述图像编码模块。
其中,所述编码模块为H.264标准的编码器;所述外接设备为现场可编程门阵列;所述编码过程为离散余弦变换过程。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移 除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
虽然本申请描述了本公开的特定示例,但本领域技术人员可以在不脱离本公开概念的基础上设计出来本公开的变型。本领域技术人员在本公开技术构思的启发下,在不脱离本公开内容的基础上,还可以对本公开做出各种改进,这仍落在本公开的保护范围之内。
根据本公开中云桌面系统、及其图像序列压缩编码方法和介质,将桌面图像序列压缩编码过程中适合流水并行处理且复杂度较高、较占用CPU资源较大编码过程从服务器主机端转移到外接设备上执行,在提高编码速度的同时还能降低服务器主机的CPU使用率,使一台服务器可以创建更多的虚拟机供更多的用户使用,以降低成本,并且解决大屏幕分辨率情况下用户操作不流畅的问题。
Claims (13)
- 一种云桌面系统的图像序列压缩编码方法,其中,所述系统包括通过总线连接的服务器和至少一个外接设备;所述方法用于所述服务器,包括:调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;从所述外接设备获取执行编码过程后得到的结果数据;调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
- 如权利要求1所述的方法,其中,所述调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程,包括:在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联;调用关联的外接设备执行所述编码过程。
- 如权利要求2所述的方法,其中,所述方法还包括:运行设备监控进程,以使所述设备监控进程启动用于监听虚拟机请求的主线程,以及使所述设备监控进程查看可用外接设备,并根据所述可用外接设备的数量创建多个交互线程。
- 如权利要求3所述的方法,其中,所述在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联,包括:当所述主线程监听到所述虚拟机的连接请求后,与所述虚拟机建立连接,并分配一个交互线程,以使分配的交互线程建立所述虚拟机与该交互线程对应外接设备之间的关联。
- 如权利要求4所述的方法,其中,所述从所述外接设备获取执行编码过程后得到的结果数据,包括:创建套接字,以使所述分配的交互线程通过所述套接字从所述关联的外接设备获取所述结果数据,并将所述结果数据发送给所述图像编码模块。
- 如权利要求1-5中任意一项所述的方法,其中,所述编码模块为H.264 标准的编码器;所述外接设备为现场可编程门阵列;所述编码过程为离散余弦变换过程。
- 一种云桌面系统,其中,所述系统包括服务器和至少一个外接设备;所述服务器主机包括图像编码模块、存储器和处理器;所述存储器存储有图像序列压缩编码计算机程序,所述处理器执行所述计算机程序以实现以下步骤:调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程;从所述外接设备获取执行编码过程后得到的结果数据;调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码。
- 如权利要求7所述的系统,其中,所述调用一外接设备执行预置图像编码模块中预设的可流水并行处理的编码过程,包括:在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联;调用关联的外接设备执行所述编码过程。
- 如权利要求8所述的系统,其中,所述处理器执行所述计算机程序以还实现以下步骤:运行设备监控进程,以使所述设备监控进程启动用于监听虚拟机请求的主线程,以及使所述设备监控进程查看可用外接设备,并根据所述可用外接设备的数量创建多个交互线程。
- 如权利要求9所述的系统,其中,所述在监听到任一虚拟机的连接请求后,建立所述虚拟机与一外接设备之间的关联,包括:当所述主线程监听到所述虚拟机的连接请求后,与所述虚拟机建立连接,并分配一个交互线程,以使分配的交互线程建立所述虚拟机与该交互线程对应外接设备之间的关联。
- 如权利要求10所述的系统,其中,所述从所述外接设备获取执行编码过程后得到的结果数据,包括:创建套接字,以使所述分配的交互线程通过所述套接字从所述关联的外接设备获取所述结果数据,并将所述结果数据发送给所述图像编码模块。
- 如权利要求7-11中任意一项所述的系统,其中,所述编码模块为H.264标准的编码器;所述外接设备为现场可编程门阵列;所述编码过程为离散余弦变换过程。
- 一种计算机可读存储介质,其中,所述介质存储有图像序列压缩编码计算机程序,所述计算机程序被至少一个处理器执行时,以实现以下步骤:调用一外接设备执行服务器中预置图像编码模块中预设的可流水并行处理的编码过程;从所述外接设备获取执行编码过程后得到的结果数据;调用所述图像编码模块,以使所述图像编码模块根据所述结果数据完成云桌面图像序列压缩编码,其中所述服务器和多个外接设备组成云桌面系统。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2019142082A RU2745343C1 (ru) | 2017-06-05 | 2018-04-24 | Система облачного рабочего стола, и способ кодирования со сжатием последовательности изображений, и соответствующий носитель данных |
EP18813545.3A EP3637771A4 (en) | 2017-06-05 | 2018-04-24 | CLOUD DESKTOP SYSTEM AND IMAGE SEQUENCE COMPRESSION AS WELL AS CODING PROCESS AND MEDIUM FOR IT |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710413408.5A CN108989811B (zh) | 2017-06-05 | 2017-06-05 | 云桌面系统、及其图像序列压缩编码方法和介质 |
CN201710413408.5 | 2017-06-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018223786A1 true WO2018223786A1 (zh) | 2018-12-13 |
Family
ID=64502561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/084262 WO2018223786A1 (zh) | 2017-06-05 | 2018-04-24 | 云桌面系统、及其图像序列压缩编码方法和介质 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3637771A4 (zh) |
CN (1) | CN108989811B (zh) |
RU (1) | RU2745343C1 (zh) |
WO (1) | WO2018223786A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422868A (zh) * | 2020-10-14 | 2021-02-26 | 西安万像电子科技有限公司 | 数据处理方法及终端设备、服务器 |
CN114157919A (zh) * | 2020-09-07 | 2022-03-08 | 华为云计算技术有限公司 | 数据处理的方法和系统、云终端、服务器和计算设备 |
CN114827113A (zh) * | 2022-04-18 | 2022-07-29 | 阿里巴巴(中国)有限公司 | 一种网页访问方法及装置 |
CN117061759A (zh) * | 2023-10-11 | 2023-11-14 | 苏州元脑智能科技有限公司 | 图像压缩方法、装置、计算机设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109922159B (zh) * | 2019-03-27 | 2021-10-08 | 宁波大学 | 一种物联网设备间云端双向虚拟连接的方法 |
CN110018873A (zh) * | 2019-03-31 | 2019-07-16 | 山东超越数控电子股份有限公司 | 一种基于fpga优化虚拟桌面传输的方法 |
CN111209086A (zh) * | 2020-01-13 | 2020-05-29 | 山东超越数控电子股份有限公司 | 一种基于自主平台的裸金属虚拟化实现方法 |
CN112835839B (zh) * | 2021-02-04 | 2024-10-18 | 深圳市广和通无线股份有限公司 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
CN113259668B (zh) * | 2021-07-12 | 2021-10-08 | 全时云商务服务股份有限公司 | 云会议共享桌面动态编码方法、装置、设备及存储介质 |
CN114245127B (zh) * | 2021-12-13 | 2024-03-19 | 北京百度网讯科技有限公司 | 一种云桌面编码器的参数调整方法、装置、设备及介质 |
CN114860401B (zh) * | 2022-05-07 | 2023-10-03 | 中国电信股份有限公司 | 异构云桌面调度系统、方法、服务系统、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888485A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 云计算资源的分配方法、装置及系统 |
CN105791412A (zh) * | 2016-04-04 | 2016-07-20 | 合肥博雷电子信息技术有限公司 | 一种大数据处理平台网络架构 |
CN106506481A (zh) * | 2016-11-02 | 2017-03-15 | 河南智业科技发展有限公司 | 一种基于OpenStack的云桌面系统 |
CN106716353A (zh) * | 2014-09-23 | 2017-05-24 | 亚马逊技术股份有限公司 | 虚拟桌面迁移 |
US20170154018A1 (en) * | 2015-11-30 | 2017-06-01 | Dell Products L.P. | System and method for display stream compression for remote desktop protocols |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7275212B2 (en) * | 2003-10-23 | 2007-09-25 | Microsoft Corporation | Synchronized graphics and region data for graphics remoting systems |
US7970049B2 (en) * | 2005-01-05 | 2011-06-28 | Creative Technology Ltd | Method and apparatus for encoding video in conjunction with a host processor |
CN103139634B (zh) * | 2011-11-30 | 2017-03-15 | 国云科技股份有限公司 | 云终端虚拟桌面视频播放方法 |
CN103873877A (zh) * | 2012-12-14 | 2014-06-18 | 华为技术有限公司 | 远程桌面的图像传输方法及装置 |
CN103475953B (zh) * | 2013-09-13 | 2017-11-17 | 华为技术有限公司 | 一种基于桌面云的媒体控制方法和设备 |
CN105224390B (zh) * | 2015-09-22 | 2019-11-22 | 宁夏大学 | 一种虚拟桌面压缩的方法 |
CN105262825A (zh) * | 2015-10-29 | 2016-01-20 | 曲阜师范大学 | 基于h.265的spice云桌面传输和展现方法及系统 |
US10225570B2 (en) * | 2015-11-12 | 2019-03-05 | Vmware, Inc. | Split framebuffer encoding |
-
2017
- 2017-06-05 CN CN201710413408.5A patent/CN108989811B/zh active Active
-
2018
- 2018-04-24 RU RU2019142082A patent/RU2745343C1/ru active
- 2018-04-24 EP EP18813545.3A patent/EP3637771A4/en active Pending
- 2018-04-24 WO PCT/CN2018/084262 patent/WO2018223786A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888485A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 云计算资源的分配方法、装置及系统 |
CN106716353A (zh) * | 2014-09-23 | 2017-05-24 | 亚马逊技术股份有限公司 | 虚拟桌面迁移 |
US20170154018A1 (en) * | 2015-11-30 | 2017-06-01 | Dell Products L.P. | System and method for display stream compression for remote desktop protocols |
CN105791412A (zh) * | 2016-04-04 | 2016-07-20 | 合肥博雷电子信息技术有限公司 | 一种大数据处理平台网络架构 |
CN106506481A (zh) * | 2016-11-02 | 2017-03-15 | 河南智业科技发展有限公司 | 一种基于OpenStack的云桌面系统 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3637771A4 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157919A (zh) * | 2020-09-07 | 2022-03-08 | 华为云计算技术有限公司 | 数据处理的方法和系统、云终端、服务器和计算设备 |
CN112422868A (zh) * | 2020-10-14 | 2021-02-26 | 西安万像电子科技有限公司 | 数据处理方法及终端设备、服务器 |
CN114827113A (zh) * | 2022-04-18 | 2022-07-29 | 阿里巴巴(中国)有限公司 | 一种网页访问方法及装置 |
CN114827113B (zh) * | 2022-04-18 | 2024-04-16 | 阿里巴巴(中国)有限公司 | 一种网页访问方法及装置 |
CN117061759A (zh) * | 2023-10-11 | 2023-11-14 | 苏州元脑智能科技有限公司 | 图像压缩方法、装置、计算机设备及存储介质 |
CN117061759B (zh) * | 2023-10-11 | 2024-02-06 | 苏州元脑智能科技有限公司 | 图像压缩方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108989811B (zh) | 2022-06-03 |
RU2745343C1 (ru) | 2021-03-24 |
EP3637771A1 (en) | 2020-04-15 |
EP3637771A4 (en) | 2021-02-24 |
CN108989811A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018223786A1 (zh) | 云桌面系统、及其图像序列压缩编码方法和介质 | |
US9606817B1 (en) | Systems and methods for virtualizing internet of things (IoT) devices | |
US10120705B2 (en) | Method for implementing GPU virtualization and related apparatus, and system | |
WO2019169913A1 (zh) | 一种数据处理的方法、装置、服务器和系统 | |
CN106161537B (zh) | 远程过程调用的处理方法、装置、系统及电子设备 | |
US20190196875A1 (en) | Method, system and computer program product for processing computing task | |
CN113849312B (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CA2920050C (en) | Image display method and apparatus | |
TWI529622B (zh) | Video image distribution method | |
Ning et al. | Mobile storm: Distributed real-time stream processing for mobile clouds | |
WO2023083208A1 (zh) | 云桌面系统处理方法、云桌面系统控制方法以及相关设备 | |
CN112749022A (zh) | 相机资源访问方法、操作系统、终端和虚拟相机 | |
CN114900699A (zh) | 视频编解码卡虚拟化方法、装置、存储介质及终端 | |
WO2022257247A1 (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN103220347A (zh) | Crp云交互方法 | |
WO2018119616A1 (zh) | 多操作系统多媒体数据编解码方法、装置、电子设备和计算机程序产品 | |
CN112882826B (zh) | 一种资源协同调度方法以及装置 | |
US20170109113A1 (en) | Remote Image Projection Method, Sever And Client Device | |
US20180189090A1 (en) | Exposing Hardware Work Queues as Virtual Devices in Virtual Machines | |
CN118069279A (zh) | 用于虚拟桌面底层结构解决方案的自适应实时通信插件 | |
WO2016095377A1 (zh) | 一种瘦客户端的图像显示方法、装置及电子设备 | |
CN116244231A (zh) | 一种数据传输方法、装置、系统、电子设备及存储介质 | |
CN114095758B (zh) | 云图像截取方法、相关装置 | |
US20150373071A1 (en) | On-demand helper operator for a streaming application | |
TW201701152A (zh) | 網路伺服系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18813545 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018813545 Country of ref document: EP Effective date: 20200107 |