Image Transmission Method, Cloud Desktop, Image Transmission System, Device and Product

By encrypting and sending cloud desktop images into blocks, the problems of network congestion and packet loss in cloud desktop systems are solved, and more stable network transmission and better user experience are achieved.

CN115767092BActive Publication Date: 2025-07-18ALIBABA (CHINA) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211364308.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-02
Publication Date
2025-07-18
Estimated Expiration
2042-11-02

AI Technical Summary

Technical Problem

Network congestion and packet loss problems in cloud desktop systems lead to poor user experience, especially when high-resolution screens and severe screen changes, network traffic is highly explosive and prone to network congestion.

Method used

The desktop image is divided into multiple blocks, and the appropriate encoding algorithm is selected for each block according to the network service quality and image content for encoding, and the encoding information is sent separately. The terminal decodes it and splices it into a complete image.

Benefits of technology

By balancing the amount of data sent by the network, the probability of burst traffic is reduced, network congestion is avoided, and the user experience of cloud desktop users is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115767092B_ABST
    Figure CN115767092B_ABST
Patent Text Reader

Abstract

An embodiment of the present application provides an image transmission method, a cloud desktop, an image transmission system, a device, and a product. Among them, the method includes: obtaining a desktop image; dividing the desktop image into multiple blocks according to network service quality information and the image content of the desktop image; respectively determining corresponding encoding algorithms for the multiple blocks; using the encoding algorithms corresponding to the multiple blocks respectively to encode the multiple blocks, so as to obtain multiple encoding information corresponding to the desktop image; and respectively sending the multiple encoding information corresponding to the desktop image to a terminal, so that the terminal decodes the multiple encoding information and then displays the desktop image for a user to operate. By adopting the solution provided in this embodiment, it is possible to achieve balanced and controllable data volume sent each time over the network, reduce the occurrence probability of bursty traffic, thereby avoiding network congestion, and helping to improve the usage experience of cloud desktop users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular, to an image transmission method, a cloud desktop, an image transmission system, a device, and a product. Background Art

[0002] A cloud desktop is a remote desktop service that provides computing and storage capabilities in the cloud, that is, a technology where users use a terminal to run a remote desktop through a network. Users using a cloud desktop can access the documents and applications they need to use in their cloud desktops from any device (including Windows and Mac computers, iPad / iPhone and Android smart devices, and desktop terminals). The operating system running on the cloud desktop can be installed on the remote host, and data processing and storage are also completed remotely. The local terminal only needs to execute control commands such as keyboards and mice and transmit the display screen.

[0003] The actual usage experience of a cloud desktop is closely related to the smoothness of network data transmission. If there is congestion or packet loss on the network, users will feel high response latency and operation lag when using the cloud desktop. Summary of the Invention

[0004] In view of the above problems, each embodiment of this application provides a technical solution that can improve problems such as network congestion and packet loss.

[0005] In one embodiment of this application, an image transmission method for a cloud desktop, suitable for a cloud desktop server, is provided. Specifically, the method includes:

[0006] Obtain a desktop image;

[0007] According to the network service quality information and the image content of the desktop image, divide the desktop image into blocks to obtain multiple blocks;

[0008] Determine corresponding encoding algorithms for the multiple blocks respectively;

[0009] Use the encoding algorithms corresponding to the multiple blocks to encode the multiple blocks respectively to obtain multiple encoding information corresponding to the desktop image;

[0010] Send the multiple encoding information corresponding to the desktop image to the terminal respectively, so that the terminal decodes the multiple encoding information and displays the desktop image for the user to operate.

[0011] In another embodiment of this application, an image transmission method for a cloud desktop, suitable for a terminal, is provided. Specifically, the method includes:

[0012] Receive multiple encoded messages sent by the cloud desktop server respectively; among them, the encoded messages contain desktop image identifiers, the identifiers of the blocks to which they belong, and the total number of blocks corresponding to the desktop image.

[0013] After determining that the total number of blocks of multiple encoded messages containing the same desktop image identifier have been received, decode the multiple encoded messages respectively according to the decoding algorithms corresponding to the multiple encoded messages to obtain multiple blocks.

[0014] Stitch the multiple blocks together according to the block identifiers corresponding to the multiple blocks to obtain the desktop image.

[0015] Display the desktop image.

[0016] In another embodiment of the present application, a cloud desktop system is provided. The system includes:

[0017] A cloud desktop server, which is used to obtain a desktop image; divide the desktop image into multiple blocks according to network service quality information and the image content of the desktop image; determine corresponding encoding algorithms for the multiple blocks respectively; use the encoding algorithms corresponding to the multiple blocks respectively to encode the multiple blocks to obtain multiple encoded messages corresponding to the desktop image; and send the multiple encoded messages corresponding to the desktop image to the terminal respectively.

[0018] The terminal, which is communicatively connected to the cloud desktop server, is used to receive the multiple encoded messages sent by the cloud desktop server respectively, decode the multiple encoded messages respectively to obtain multiple blocks; stitch the multiple blocks together to obtain the desktop image, and display the desktop image.

[0019] In still another embodiment of the present application, an image transmission method suitable for a first device is provided. The method includes:

[0020] Obtain a target image.

[0021] Divide the target image into multiple blocks according to network service quality information and the image content of the target image.

[0022] Determine corresponding encoding algorithms for the multiple blocks respectively.

[0023] Use the encoding algorithms corresponding to the multiple blocks respectively to encode the multiple blocks to obtain multiple encoded messages corresponding to the target image.

[0024] Send the multiple encoded messages corresponding to the target image to a second device respectively, so that the second device can display the target image after decoding the multiple encoded messages.

[0025] In still another embodiment of the present application, an image transmission method suitable for a second device is provided. Specifically, the method includes:

[0026] Receiving a plurality of encoded information sent by a first device respectively; wherein, the encoded information contains a target image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the target image;

[0027] After determining that the total number of blocks of the received plurality of encoded information containing the same target image identifier is received, decoding the plurality of encoded information respectively according to the respective decoding algorithms corresponding to the plurality of encoded information to obtain a plurality of blocks;

[0028] Stitching the plurality of blocks according to the respective block identifiers corresponding to the plurality of blocks to obtain the target image;

[0029] Displaying the target image.

[0030] In yet another embodiment of the present application, an image transmission system is provided, including:

[0031] A first device, configured to obtain a target image; perform block division on the target image according to network service quality information and the image content of the target image to obtain a plurality of blocks; respectively determine corresponding encoding algorithms for the plurality of blocks; use the respective encoding algorithms corresponding to the plurality of blocks to encode the plurality of blocks respectively to obtain a plurality of encoded information corresponding to the target image; and send the plurality of encoded information corresponding to the target image to the second device respectively, so that the second device decodes the plurality of encoded information and then displays the target image;

[0032] A second device, communicatively connected to the first device, configured to receive the plurality of encoded information sent by the first device, decode the plurality of encoded information respectively to obtain a plurality of blocks; stitch the plurality of blocks to obtain the target image; and display the target image.

[0033] The present application also provides an embodiment of a computing device. The computing device includes a memory and a processor. The memory stores one or more computer instructions; the processor is coupled to the memory and is configured to execute the one or more computer instructions to implement the steps in the above cloud desktop image transmission method or the steps in the above image transmission method.

[0034] The embodiment of the present application also provides a computer-readable storage medium storing computer instructions. When the computer instructions are executed by one or more processors, the one or more processors are caused to execute the steps in the above cloud desktop image transmission method or the steps in the above image transmission method.

[0035] Another embodiment of the present application provides a computer program product, which includes a computer program or instructions. When the computer program or instructions are executed by a processor, the processor is caused to execute the steps in the above cloud desktop image transmission method or the steps in the above image transmission method.

[0036] In the technical solutions provided by the embodiments of the present application, based on the network service quality and the image content, the desktop image on the cloud desktop server side is divided into multiple blocks; then, using the respective encoding algorithms corresponding to the multiple blocks, the multiple blocks are encoded respectively to obtain multiple encoding information corresponding to the desktop image. Subsequently, the multiple encoding information corresponding to the desktop image is sent to the terminal respectively. In this way, the amount of data sent over the network each time can be balanced and controlled, reducing the occurrence probability of bursty traffic, thereby avoiding network congestion and helping to improve the usage experience of cloud desktop users. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required to be used in the description of the embodiments or the prior art. Obviously, the drawings in the following description are some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.

[0038] Figure 1 Shows a schematic diagram of the principle of the cloud desktop server screenshot encoding process in the prior art;

[0039] Figure 2 Shows a schematic diagram of network traffic bursts that occur in the prior art;

[0040] Figure 3 Shows a schematic diagram of a cloud desktop system provided by an embodiment of the present application;

[0041] Figure 4 Shows a schematic flowchart of a cloud desktop image transmission method provided by an embodiment of the present application;

[0042] Figure 5 Shows a schematic flowchart of the process from desktop image division to encoding and sending in the cloud desktop image transmission method provided by an embodiment of the present application;

[0043] Figure 6 Shows a comparison chart of the network traffic curve after adopting the solution provided by the embodiment of the present application and the prior art curve;

[0044] Figure 7 Shows a schematic flowchart of a cloud desktop image transmission method provided by an embodiment of the present application;

[0045] Figure 8 The figure shows a schematic flowchart of an image transmission method provided by an embodiment of the present application;

[0046] Figure 9 The figure shows a schematic flowchart of a cloud desktop image transmission method provided by another embodiment of the present application;

[0047] Figure 10 The figure shows a schematic structural diagram of a cloud desktop image transmission device provided by an embodiment of the present application;

[0048] Figure 11 The figure shows a schematic structural diagram of a cloud desktop image transmission device provided by another embodiment of the present application;

[0049] Figure 12 The figure shows a schematic structural diagram of a computer device provided by an embodiment of the present application. Detailed implementation manners

[0050] The main way of cloud desktop processing is to transmit the screen through picture command streams, full-screen video streams, and picture / video mixed streams, and then render these pictures and videos on the client side. This cloud desktop processing method requires a large amount of bandwidth resources. Therefore, in the prior art, the screen of the cloud desktop is captured, and then the captured desktop image is encoded and then sent to the terminal; after decoding by the terminal, it is displayed.

[0051] The terminal establishes a connection with the cloud desktop server based on a specified protocol (which can be called a streaming protocol). The terminal can use the specified protocol to establish a connection with the cloud desktop server. The specified protocol can be a specific cloud desktop protocol, which is a set of rules used to specify how "control information" and "data information" are exchanged between the cloud desktop server and the terminal. That is to say, after establishing a connection based on the streaming protocol, the terminal can transmit desktop operation data to the cloud desktop server based on this streaming protocol; the cloud desktop server can also transmit desktop data to the terminal based on this streaming protocol. Correspondingly, this connection can be considered a specific connection dedicated to transmitting desktop data and other related information.

[0052] The cloud desktop is a typical cloud computing application. It mainly deploys the operating system and application software required by users through virtual machines in the cloud, and then transmits the desktop of the server virtual machine to the client in a remote cloud desktop manner. The client can be software installed on a hardware device (i.e., a terminal), can also be hardware, or can be a browser.

[0053] When remotely transmitting the desktop of a server virtual machine to a terminal, a common practice is to transmit the screen updates to the terminal through frame-by-frame encoded images, and the transmitted data can be compressed using a compression algorithm with a high compression ratio. At the same time, the operations of peripheral input devices such as the keyboard, mouse, stylus, and touch screen of the terminal can be redirected to the server virtual machine through the network, and the server virtual machine receives the input to update the screen information. Usually, the operations of the mouse, keyboard, etc. are obtained at the terminal, and then these operation messages are sent to the virtual machine through the network. The virtual machine then transmits the updated desktop image to the terminal for display.

[0054] Figure 1 The figure shows the process of encoding and then transmitting the desktop image captured from the cloud desktop screen in the prior art. The process is as follows:

[0055] 1. Take a screenshot of the cloud desktop screen to obtain the desktop image (which can also be called screen frame data);

[0056] 2. Encode the desktop image to obtain encoded information;

[0057] 3. Send the encoded information.

[0058] One drawback of the above process is that when the screen resolution is relatively high and the screen changes relatively violently, the data generated after encoding may be very large, and obvious bursty traffic will occur during network transmission. As Figure 2 shown, obvious traffic peaks will appear when sending the encoded information of the first desktop image and when sending the encoded information of the second desktop image. This bursty network traffic is not conducive to underlying network management, easily causes serious network packet loss, leads to network congestion, and ultimately affects the user experience.

[0059] Therefore, the present application provides the following embodiments to improve the problems existing in the prior art. To enable those skilled in the art to better understand the solution of the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application.

[0060] In some processes described in the specification, claims, and the above-mentioned drawings of this application, a plurality of operations that appear in a specific order are included. These operations may not be executed in the order in which they appear herein or may be executed in parallel. The serial numbers of the operations, such as 101, 102, etc., are only used to distinguish different operations, and the serial numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the descriptions such as "first" and "second" in this article are used to distinguish different messages, devices, modules, etc., do not represent a sequence, and do not limit that "first" and "second" are of different types. And the term "or / and" in this application is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A or / and B means that A can exist alone, A and B exist at the same time, and B exists alone. These three situations; the character " / " in this application generally represents an "or" relationship between the associated objects before and after. It should also be noted that the term "comprise", "include" or any other variant thereof is intended to cover non-exclusive inclusion, so that a commodity or system including a series of elements not only includes those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such a commodity or system. Without further limitation, an element defined by the statement "including one..." does not exclude the existence of another identical element in the commodity or system including the said element. In addition, the following embodiments are only a part of the embodiments of this application, rather than all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative work belong to the scope of protection of this application.

[0061] Before introducing the method embodiments of this application, the hardware system on which the method embodiments of this application are based will be described first. As Figure 3 shown in the embodiment, this application provides a cloud desktop system. The cloud desktop system includes: a cloud desktop server 11 and a terminal 12. Among them, the cloud desktop server 11 is used to provide a remote desktop. The terminal 12 is communicatively connected to the cloud desktop server 11 and is used to display the remote desktop for the user to operate.

[0062] The cloud desktop server 11 is used to obtain a desktop image; divide the desktop image into multiple blocks according to the network service quality information and the image content of the desktop image to obtain a plurality of blocks; determine corresponding coding algorithms for the plurality of blocks respectively; use the respective coding algorithms corresponding to the plurality of blocks to respectively encode the plurality of blocks to obtain a plurality of coding information corresponding to the desktop image; send the plurality of coding information corresponding to the desktop image to the terminal respectively;

[0063] The terminal 12 is configured to receive the multiple encoded messages respectively sent by the cloud desktop server, decode the multiple encoded messages respectively to obtain multiple blocks; splice the multiple blocks to obtain the desktop image, and display the desktop image.

[0064] Among them, the cloud desktop server 11 refers to the server device that provides cloud desktop services. This server device can be a physical device or a virtual device. For example, the server device can be a single server, a server cluster composed of multiple servers, or a virtual machine (Virtual Machine, VM) running in a single server or a server cluster, etc. The cloud desktop server 11 can respond to interrupted cloud desktop service requests and provide services related to cloud desktops for users. The cloud desktop services that the cloud desktop server 11 can deploy include but are not limited to: cloud desktops, operating systems of cloud desktops, management and control services of cloud desktops, and protocol services of cloud desktops, etc.

[0065] The terminal 12 is a device communicatively connected to the cloud desktop server 11, such as a mobile phone, a notebook, a tablet computer, a smart wearable device, a thin client, etc. Alternatively, the terminal 12 can also be the soft client corresponding to the cloud desktop. A client program corresponding to the cloud desktop can be installed on the terminal 12, and the corresponding virtual machine on the cloud desktop server 11 can be accessed through the desktop transmission protocol to achieve interactive operations, such as Figure 2 as shown, to achieve the same usage experience as that of an existing computer.

[0066] Further, when the terminal 12 receives the multiple encoded messages respectively sent by the cloud desktop server 11 and decodes the multiple encoded messages respectively to obtain multiple blocks, it is specifically configured to:

[0067] Receive the multiple encoded messages sent by the cloud desktop server respectively; among them, the encoded message contains a desktop image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the desktop image;

[0068] After determining that the total number of blocks of multiple encoded messages containing the same desktop image identifier have been received, decode the multiple encoded messages respectively according to the decoding algorithms corresponding to the multiple encoded messages to obtain multiple blocks;

[0069] Splice the multiple blocks according to the block identifiers corresponding to the multiple blocks to obtain the desktop image.

[0070] In the technical solution provided in this embodiment, based on the network service quality and the image content, the desktop image on the cloud desktop server side is divided into multiple blocks; then, using the encoding algorithms corresponding to the multiple blocks respectively, the multiple blocks are encoded respectively to obtain multiple encoding information corresponding to the desktop image. Subsequently, the multiple encoding information corresponding to the desktop image is sent to the terminal respectively. In this way, the amount of data sent over the network each time can be balanced and controlled, reducing the occurrence probability of bursty traffic, thereby avoiding network congestion and helping to improve the usage experience of cloud desktop users.

[0071] For the specific implementation of the cloud desktop server and the corresponding functions of the terminal in the above cloud desktop system, refer to the relevant content below.

[0072] Figure 4 and Figure 5 FIG. shows a schematic flow chart of a cloud desktop image transmission method provided by an embodiment of the present application. The execution subject of the method provided in this embodiment may be a cloud desktop server. The cloud desktop server is used to provide a remote desktop for the terminal for the terminal user to operate. Correspondingly, the method includes:

[0073] 101. Obtain a desktop image;

[0074] 102. According to the network service quality information and the image content of the desktop image, perform block division on the desktop image to obtain multiple blocks;

[0075] 103. Determine corresponding encoding algorithms for the multiple blocks respectively;

[0076] 104. Use the encoding algorithms corresponding to the multiple blocks respectively to encode the multiple blocks respectively to obtain multiple encoding information corresponding to the desktop image;

[0077] 105. Send the multiple encoding information corresponding to the desktop image to the terminal respectively, so that the terminal decodes the multiple encoding information and displays the desktop image for the user to operate.

[0078] In the above 101, the desktop image can be obtained by means of screen capture. For example, screen capture is performed each time the desktop is refreshed, or screen capture can also be performed at a set frequency. This embodiment does not make a limitation in this regard.

[0079] It should be added here that: in this embodiment, the desktop image can be an image of the entire screen captured, or an image of one or more cloud application windows on the desktop, etc. Among them, a cloud application runs on the cloud server side, and the user's terminal does not need to install the application and can use the application on the cloud server side through the streaming protocol.

[0080] Among the above 102, the network service quality QoS (Quality of Service) information includes at least one of the following parameters:

[0081] Bandwidth and Throughput, the bandwidth and throughput. When the system load is severe and all features are turned on, the throughput of the system can still be guaranteed;

[0082] Packet Loss Rate, the packet loss rate;

[0083] Delay, the packet forwarding delay;

[0084] Jitter, also called Delay Variance, the jitter of the forwarding delay;

[0085] Bit Error Rate, the bit error rate.

[0086] The image content of the above desktop image can include, according to foreground and background, application icons on the desktop, desktop background, application windows, etc.; if distinguished by patterns, it can include various patterns recognized by image recognition technology. For example, if the image content of the desktop image is divided according to foreground and background, in a specific embodiment, the application icons and the desktop background can be used as the background area, and the application windows can be used as the foreground area. The foreground area can be divided into one or more blocks. The background area can be divided into one or more blocks.

[0087] Among them, the sizes of the multiple blocks divided from the desktop image can be the same or different.

[0088] In an implementable solution, the foreground area should be the area that the user is concerned about. Therefore, the coding algorithm type corresponding to the blocks divided from the foreground area can be the first type. The background area may not be the area that the user is concerned about, so the coding algorithm type corresponding to the blocks divided from the background area can be the second type. Among them, the compression image quality of the first type is higher than that of the second type. For example, the first type is the lossless coding type, and the second type is the lossy coding type.

[0089] Lossy coding is also called irreversible coding, which means that the image is lossily compressed, has a high compression ratio, but there is a certain distortion between the decoded and reconstructed image and the original image.

[0090] Lossless coding is also called reversible coding, which means that the restored image after decompression is the same as the original graphic, but the compression ratio is not high.

[0091] Alternatively, classified by coding techniques, coding algorithm types can be divided into predictive coding, transform coding, and statistical coding. Predictive coding utilizes the high correlation of image signals within a local spatial and temporal range, uses the values of neighboring pixels that have already been transmitted as a reference to predict the current pixel value, and then quantizes and encodes the prediction error. Transform coding converts the image data described in the spatial domain through a certain orthogonal transformation (such as the discrete Fourier transform DFT, discrete cosine transform DCT, discrete wavelet transform DWT, etc.) to be described in another transform domain (frequency domain). The result after transformation is a batch of transform coefficients, and then these transform coefficients are encoded to achieve the purpose of compressing image data. Statistical coding is also known as entropy coding, which is a type of information-preserving variable-length coding based on the principle of information entropy. During coding, events with a high occurrence probability (symbols to be encoded) are represented by short codes, and events with a low occurrence probability are represented by long codes. In current international image coding standards, common entropy coding methods include Huffman coding and arithmetic coding.

[0092] In the above 103, corresponding coding algorithms can be determined for each block based on network quality of service (QoS) information. For example, when the QoS information indicates that the current network state is good, a coding algorithm with high compressed image quality (i.e., low compression ratio) can be used to encode each block; when the QoS information indicates that the current network state is poor, a coding algorithm with low compressed image quality (i.e., high compression ratio) can be used to encode each block.

[0093] It should be noted here that: in this embodiment, the coding algorithms corresponding to each block are not limited. In actual implementation, machine learning model technology can be used to learn the determination of the network QoS information, the content of each block, and the coding algorithms corresponding to each block to obtain a calculation model. The input of this calculation model can be the current QoS information of the network and multiple blocks, and the output can be the coding algorithms corresponding to each block.

[0094] In the above 105, the multiple coding information corresponding to the desktop image can be added to the data queue and wait for the forwarding module to forward it to the terminal.

[0095] In the technical solution provided in this embodiment, based on the network quality of service and image content, the desktop image on the cloud desktop server side is divided into multiple blocks; then, using the coding algorithms corresponding to each of the multiple blocks, each of the multiple blocks is encoded respectively to obtain multiple coding information corresponding to the desktop image. Subsequently, the multiple coding information corresponding to the desktop image is sent to the terminal respectively. In this way, the amount of data sent by the network each time can be balanced and controlled, reducing the occurrence probability of bursty traffic, thereby avoiding network congestion and helping to improve the usage experience of cloud desktop users.

[0096] In an implementable technical solution, the above-mentioned step 102, "divide the desktop image into multiple blocks according to the network service quality information and the image content of the desktop image", may include:

[0097] 1021. Divide the desktop image into multiple sub-blocks based on the image content of the desktop image;

[0098] 1022. Determine the encoding algorithm type suitable for each sub-block for the multiple sub-blocks;

[0099] 1023. Merge some of the multiple sub-blocks according to the network service quality information and the encoding algorithm types corresponding to the multiple sub-blocks to obtain the merged blocks.

[0100] In an implementable technical solution, the above-mentioned step 1021, "divide the desktop image into multiple sub-blocks based on the image content of the desktop image", may include:

[0101] Analyze the image content of the desktop image; based on the image content analysis result, divide the desktop image to obtain multiple sub-blocks.

[0102] As mentioned above, by analyzing the image content of the desktop image, the foreground area and the background area can be identified; or the user attention area and the non-attention area; or the rectangular areas corresponding to the patterns (such as sky, window, animal, person, etc.) identified by the image recognition technology, etc. Then, according to the analysis result, divide the foreground area into one or more sub-blocks, and divide the background area into one or more sub-blocks. Or, divide the user attention area into one or more sub-blocks, and divide the non-attention area into one or more sub-blocks. Or, divide the rectangular area corresponding to the identified pattern into one or more sub-blocks, and the remaining area outside the rectangular area corresponding to each pattern can be divided into one or more sub-blocks.

[0103] The above-mentioned step 1022, "determine the encoding algorithm type suitable for each sub-block for the multiple sub-blocks", may include:

[0104] Analyze the block content of the multiple sub-blocks respectively to obtain the image features corresponding to the multiple sub-blocks; according to the image features corresponding to the multiple sub-blocks, determine the encoding algorithm type suitable for each of the multiple sub-blocks respectively.

[0105] Further, the above-mentioned step 1023, "merge some of the multiple sub-blocks according to the network service quality information and the encoding algorithm types corresponding to the multiple sub-blocks", includes:

[0106] S1. Determine the block threshold according to the network service quality information;

[0107] S2. Based on the coding algorithm types corresponding to the multiple blocks, find at least two adjacent blocks with the same coding algorithm type;

[0108] S3. If the size of the block formed by merging at least two adjacent blocks with the same coding algorithm type is less than or equal to the threshold, then merge the at least two adjacent blocks with the same coding algorithm type to obtain one block.

[0109] It should be noted that: if the number of blocks generated in the above steps is too large and the area of each block is too small, the compression ratio of the coding will be reduced. Therefore, it is necessary to determine a block threshold according to the network QoS information to decide the size of each area.

[0110] In specific implementation, the block threshold value corresponding to the current network QoS information can be calculated based on a preset algorithm. Or, based on the summary of big data experience, the block threshold value corresponding to the current QoS information can be determined. Or, a determination model can be trained by means of machine learning model technology.

[0111] It should be added that: the machine learning model mentioned here and the machine learning model mentioned above can be of the same type or not. For example, it can be a deep learning model, a convolutional neural network model, etc. This embodiment does not make any limitations in this regard.

[0112] Furthermore, if the size of the block formed by merging two adjacent blocks with the same coding algorithm type is greater than the threshold, then the two adjacent blocks are not merged and are respectively used as one block.

[0113] In a specific implementation scheme, when there are three or more adjacent blocks with the same coding algorithm type and the size of the block formed by merging the three or more adjacent blocks with the same coding algorithm type is greater than the threshold, correspondingly, the above step 1023 "merge some of the multiple blocks according to the network service quality information and the coding algorithm types corresponding to the multiple blocks" may further include:

[0114] With reference to the threshold, perform grouped merging on the three or more adjacent blocks with the same coding algorithm type to obtain at least two blocks;

[0115] Among them, the size of the block is less than the threshold.

[0116] For example, there are three blocks: Block 1, Block 2, and Block 3. Among them, Block 1 is adjacent to Block 2, and Block 2 is adjacent to Block 3. If the combined block of Block 1 and Block 2 is less than or equal to the threshold, then Block 1 and Block 2 can be merged into one block. Block 3 serves as another block. Since Block 1 and Block 3 are not adjacent, Block 1 and Block 3 cannot be merged.

[0117] Furthermore, the method provided by the embodiments of the present application may further include the following steps:

[0118] 106. Determine whether the trigger condition is satisfied based on the network service quality information;

[0119] 107. If the trigger condition is satisfied, then trigger the step of partitioning the desktop image according to the network service quality information and the image content of the desktop image;

[0120] 108. If the trigger condition is not satisfied, then encode the desktop image to obtain the encoded desktop image and send it to the terminal.

[0121] Figure 7 The flowchart shows a cloud desktop image transmission method provided by the embodiments of the present application. Combining Figure 7 and Figure 1 as shown, the execution subject of this embodiment may be the terminal in the above cloud desktop system. Specifically, the method includes:

[0122] 201. Receive multiple encoding information sent by the cloud desktop server respectively; among them, the encoding information contains the desktop image identifier, the identifier of the block to which it belongs, and the total number of blocks corresponding to the desktop image;

[0123] 202. After determining that the total number of blocks of the same desktop image identifier is received, decode the multiple encoding information according to the respective decoding algorithms corresponding to the multiple encoding information to obtain multiple blocks;

[0124] 203. Stitch the multiple blocks according to the block identifiers corresponding to the multiple blocks to obtain the desktop image;

[0125] 204. Display the desktop image.

[0126] In the technical solution provided in this embodiment, based on the network service quality and the image content, the desktop image on the cloud desktop server side is divided into multiple blocks; then, using the encoding algorithms corresponding to the multiple blocks respectively, the multiple blocks are encoded respectively to obtain multiple encoding information corresponding to the desktop image. Subsequently, the multiple encoding information corresponding to the desktop image is sent to the terminal respectively. In this way, the amount of data sent each time over the network can be balanced and controlled, reducing the occurrence probability of bursty traffic, thereby avoiding network congestion and helping to improve the usage experience of cloud desktop users.

[0127] The technical solution provided in the embodiment of this application can be applied not only to the cloud desktop scenario, but also to the scenario of screen sharing between any two devices. That is, this embodiment provides an image transmission system, which includes a first device and a second device. Among them, the first device and the second device can be devices of the same type in the network, such as terminals; or they can be devices of different types in the network, such as one device is a server device and the other is a client device. Among them, the server device can be a server, a server cluster, or a virtual server deployed on the server, etc., and this embodiment does not make specific limitations on this. Specifically,

[0128] The first device is used to obtain a target image; divide the target image into multiple blocks according to the network service quality information and the image content of the target image; determine corresponding encoding algorithms for the multiple blocks respectively; use the encoding algorithms corresponding to the multiple blocks respectively to encode the multiple blocks respectively to obtain multiple encoding information corresponding to the target image; send the multiple encoding information corresponding to the target image to the second device respectively, so that the second device can display the target image after decoding the multiple encoding information;

[0129] The second device is communicatively connected to the first device and is used to receive the multiple encoding information sent by the first device, decode the multiple encoding information respectively to obtain multiple blocks; splice the multiple blocks to obtain the target image; display the target image.

[0130] In the technical solution provided in the embodiment of this application, based on the network service quality and the image content, the desktop image on the first device side is divided into multiple blocks; then, using the encoding algorithms corresponding to the multiple blocks respectively, the multiple blocks are encoded respectively to obtain multiple encoding information corresponding to the desktop image. Subsequently, the multiple encoding information corresponding to the desktop image is sent to the second device respectively. In this way, the amount of data sent each time over the network can be balanced and controlled, reducing the occurrence probability of bursty traffic, thereby avoiding network congestion and helping to improve the usage experience of cloud desktop users.

[0131] Further, when the second device receives the multiple encoded information sent by the first device, decodes the multiple encoded information respectively to obtain multiple blocks, and splices the multiple blocks to obtain the target image, it is specifically configured to:

[0132] Receive the multiple encoded information sent by the first device respectively; wherein, the encoded information contains a target image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the target image;

[0133] After determining that the total number of blocks of multiple encoded information containing the same target image identifier has been received, decode the multiple encoded information respectively according to the decoding algorithms corresponding to the multiple encoded information to obtain multiple blocks;

[0134] Splice the multiple blocks according to the block identifiers corresponding to the multiple blocks to obtain the target image.

[0135] As Figure 8 shown, the present embodiment provides a schematic flowchart of an image transmission method. The execution subject of the method in this embodiment may be the first device in the above image transmission system. Specifically, the method includes:

[0136] 301. Obtain a target image;

[0137] 302. Divide the target image into multiple blocks according to the network service quality information and the image content of the target image;

[0138] 303. Determine corresponding encoding algorithms for the multiple blocks respectively;

[0139] 304. Encode the multiple blocks respectively by using the encoding algorithms corresponding to the multiple blocks to obtain multiple encoded information corresponding to the target image;

[0140] 305. Send the multiple encoded information corresponding to the target image to the second device respectively, so that the second device can display the target image after decoding the multiple encoded information.

[0141] In the above 301, the target image may be a screen capture of the first device, or a screen capture of an application window on the first device, etc., and the present embodiment does not make specific limitations thereto. Similarly, the above screen capture can be performed every time the desktop is refreshed, or can be intercepted at a set frequency.

[0142] Regarding the above 302-305, reference may be made to the descriptions in the corresponding embodiments above, and details are not described herein. Figure 4

[0143] Figure 9 ​​As shown in the figure, another embodiment of the present application provides an image transmission method. This method is applicable to the second device in the above image transmission system. Specifically, the method includes:

[0144] 401. Receive multiple encoded messages sent by the first device respectively; wherein, the encoded message contains a target image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the target image;

[0145] 402. After determining that the total number of blocks of multiple encoded messages containing the same target image identifier are received, decode the multiple encoded messages respectively according to the decoding algorithms corresponding to the multiple encoded messages to obtain multiple blocks;

[0146] 403. Stitch the multiple blocks according to the block identifiers corresponding to the multiple blocks respectively to obtain the target image;

[0147] 404. Display the target image.

[0148] With the development of cloud computing data center technology, virtualization technology, an important technology in cloud computing, has been widely used. Using virtualization technology, multiple virtual machines (VMs) can be virtualized on physical devices to virtualize the network, enabling full utilization of the computing resources on the physical devices. A virtual machine (VM) refers to a complete computer system with complete hardware system functions simulated by software and running in a completely isolated environment. What can be done on a physical computer can be achieved in a virtual machine. When creating a virtual machine in a computer, a part of the hard disk and memory capacity of the physical machine needs to be used as the virtual hard disk and memory capacity. Each virtual machine can be operated like a physical machine. Communication between virtual machines and between virtual machines and the external network relies on a virtual switch.

[0149] In a cloud computing environment, computing resources are segmented. Virtual machines run on the server. The virtual machines also need network cards to achieve interconnection and interoperability. However, the network cards of virtual machines are not physical. They are connected to a virtual switch through virtual network cards. The virtual switch forwards the traffic between virtual machines on the same server. If the virtual switch is further connected to the hardware network card of the server, then the virtual machine can communicate with the outside of the server. The virtual network card is simulated by the CPU. The virtual network card has one or more data queues (or receive and transmit queues), and the data queues are also simulated, which is a piece of memory on the server.

[0150] In the network virtualization scenario, the virtual switch (VS) is a key component for implementing network virtualization in physical devices. It can provide services such as data forwarding and processing (such as error checking and address mapping maintenance) for virtual network cards and physical network cards, enabling communication connections to be established between virtual machines within the virtual network or between virtual machines and external devices outside the virtual network (such as external PCs (Personal Computers)), and realizing data transmission. Among them, each virtual machine has its own virtual network card, and the external device has its own physical network card. The virtual machine and the external device are respectively connected to the virtual switch through their respective corresponding virtual network cards and physical network cards.

[0151] The virtual machine switch combines two physically connected switches using virtual switching technology and presents a logically virtualized switch externally. Virtual machines VM1, VM2, and VW3 and external devices (not shown in the figure) are connected to the virtual switch VS through their respective corresponding virtual network cards and communicate with external devices through physical network cards. According to actual usage requirements, one or more than two virtual network cards can be configured on the virtual machine. Usually, a virtual network card has one or more data queues for caching data. That is to say, all data received by the virtual network card enters one or more data queues, and then the virtual switch uses a processor (such as a CPU (Central Processing Unit)) to fetch data from one or more data queues for processing.

[0152] The prerequisite for the technical solutions provided by the embodiments of the present application to be achievable is: based on the first virtual network card on the cloud desktop server and the second virtual network card on the terminal, the cloud desktop server divides the intercepted desktop image into multiple blocks based on network service quality information and the image content of the desktop image; then encodes each block using the encoding algorithm corresponding to each block; finally, uses the first virtual network card to send the multiple encoding information corresponding to the desktop image to the second virtual network card of the terminal respectively.

[0153] In addition, each terminal can correspond to a virtual machine and be exclusive to this terminal. The terminal can include a keyboard, a display, a mouse, etc. The virtual machine can provide all services required by the terminal, such as desktop services, data processing services, data storage services, etc. For example, the cloud desktop system provides a virtual machine for each user through virtualization, and the enterprise's original application system can be accessed through the interface of the cloud desktop system. Each virtual machine can enjoy the services of the enterprise's original application system through the cloud desktop system, such as some professional applications, email systems, office systems, EPR, etc. of the enterprise.

[0154] In summary, each embodiment of the present application provides a traffic shaping solution for improving the user experience of cloud desktops. According to network QoS information, the screen is divided into multiple regions for encoding and then sent over the network separately, avoiding the transmission of overly large encoded data at one time, thereby avoiding network congestion caused by bursty traffic and ultimately achieving the goal of improving the user experience.

[0155] This solution divides the screen frame data into multiple regions for encoding and sending. The amount of data sent over the network each time is evenly controllable, avoiding bursty traffic, thereby avoiding network congestion and ultimately being able to improve the user experience.

[0156] This solution objectively plays a role in traffic shaping. As Figure 6 is a schematic comparison diagram of the traffic shapes corresponding to this solution and the case where this solution is not adopted. It can be seen that the network traffic output by this solution is relatively uniform and there are no obvious traffic peaks.

[0157] Figure 10 shows a schematic structural diagram of a cloud desktop image transmission device provided by an embodiment of the present application. As Figure 10 shown, the data processing device in this cloud desktop system includes: an acquisition module 21, a division module 22, a determination module 23, an encoding module 24, and a sending module 25. Among them, the acquisition module 21 is used to acquire the desktop image. The division module 22 is used to divide the desktop image into multiple blocks according to the network service quality information and the image content of the desktop image. The determination module 23 is used to determine corresponding encoding algorithms for the multiple blocks respectively. The encoding module 24 is used to encode the multiple blocks respectively by using the encoding algorithms corresponding to the multiple blocks to obtain multiple encoding information corresponding to the desktop image. The sending module 25 is used to send the multiple encoding information corresponding to the desktop image to the terminal respectively, so that the terminal decodes the multiple encoding information and then displays the desktop image for the user to operate.

[0158] Further, when the division module 22 divides the desktop image into multiple blocks according to the network service quality information and the image content of the desktop image, it specifically is used for:

[0159] Based on the image content of the desktop image, divide the desktop image into multiple sub-blocks; determine the type of encoding algorithm suitable for each sub-block for the multiple sub-blocks; according to the network service quality information and the type of encoding algorithm corresponding to the multiple sub-blocks, merge some of the multiple sub-blocks to obtain the merged blocks.

[0160] Further, when the division module 22 merges some of the multiple sub-blocks according to the network service quality information and the type of encoding algorithm corresponding to the multiple sub-blocks, it specifically is used for:

[0161] Determine a block threshold according to the network service quality information; based on the coding algorithm types corresponding to the multiple sub-blocks, find at least two adjacent sub-blocks with the same coding algorithm type; if the size of the block obtained by merging at least two adjacent sub-blocks with the same coding algorithm type is less than or equal to the threshold, then merge at least two adjacent sub-blocks with the same coding algorithm type to obtain a block.

[0162] In a specific embodiment, when there are three or more adjacent sub-blocks with the same coding algorithm type, and the size of the block obtained by merging three or more adjacent sub-blocks with the same coding algorithm type is greater than the threshold, correspondingly, when the partitioning module 22 merges some of the multiple sub-blocks according to the network service quality information and the coding algorithm types corresponding to the multiple sub-blocks, it is further configured to:

[0163] Refer to the threshold, perform grouped merging on three or more adjacent sub-blocks with the same coding algorithm type to obtain at least two blocks;

[0164] wherein, the size of the block is less than the threshold.

[0165] Further, when the partitioning module 22 divides the desktop image into multiple sub-blocks based on the image content of the desktop image, it is specifically configured to:

[0166] Analyze the image content of the desktop image; based on the result of the image content analysis, divide the desktop image to obtain multiple sub-blocks.

[0167] Further, when the partitioning module 22 determines the coding algorithm type adapted to each sub-block for the multiple sub-blocks, it is specifically configured to:

[0168] Analyze the block content of the multiple sub-blocks respectively to obtain the image features corresponding to the multiple sub-blocks; determine the coding algorithm type adapted to each of the multiple sub-blocks according to the image features corresponding to the multiple sub-blocks.

[0169] Further, the method provided in the embodiment of the present application may further include a trigger module. The trigger module is configured to:

[0170] Determine whether a trigger condition is satisfied based on the network service quality information; if the trigger condition is satisfied, trigger the execution of the step of partitioning the desktop image according to the network service quality information and the image content of the desktop image;

[0171] If the trigger condition is not satisfied, then encode the desktop image, and send the encoded desktop image to the terminal.

[0172] It should be noted here that the cloud desktop image transmission device provided in this embodiment can implement the technical solutions described in the above cloud desktop image transmission method embodiment. The specific implementation principles of the above modules or units can be referred to the corresponding content in the above method embodiment, which will not be elaborated here.

[0173] Figure 11 The structure diagram of the cloud desktop image transmission device provided in an embodiment of the present application is shown. As Figure 11 shown, the data processing device in the cloud desktop system includes: a receiving module 31, a determining module 32, a splicing module 33, and a display module 34. Among them, the receiving module 31 is used to receive multiple encoded information sent by the cloud desktop server respectively; among them, the encoded information contains a desktop image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the desktop image. The determining module 32 is used to determine that after receiving the total number of blocks of multiple encoded information containing the same desktop image identifier, respectively decode the multiple encoded information according to the decoding algorithms corresponding to the multiple encoded information, and obtain multiple blocks. The splicing module 33 is used to splice the multiple blocks according to the block identifiers corresponding to the multiple blocks to obtain the desktop image. The display module 34 is used to display the desktop image.

[0174] It should be noted here that the cloud desktop image transmission device provided in this embodiment can implement the technical solutions described in the above cloud desktop image transmission method embodiment. The specific implementation principles of the above modules or units can be referred to the corresponding content in the above method embodiment, which will not be elaborated here.

[0175] An embodiment of the present application also provides an image transmission device. The image transmission device may include: an acquisition module, a division module, a determination module, an encoding module, and a sending module. Among them, the acquisition module is used to acquire a target image. The division module is used to divide the target image into multiple blocks according to the network service quality information and the image content of the target image. The determination module is used to determine corresponding encoding algorithms for the multiple blocks respectively. The encoding module is used to encode the multiple blocks respectively by using the encoding algorithms corresponding to the multiple blocks to obtain multiple encoded information corresponding to the target image. The sending module is used to send the multiple encoded information corresponding to the target image to a second device respectively, so that the second device can display the target image after decoding the multiple encoded information.

[0176] Correspondingly, another embodiment of the present application provides an image transmission device. The image transmission device includes a receiving module, a determining module, a splicing module, and a display module. The receiving module is configured to receive a plurality of encoded messages sent by a first device respectively. The encoded message contains a target image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the target image. The determining module is configured to, after determining that the total number of blocks of encoded messages containing the same target image identifier are received, decode the plurality of encoded messages according to the decoding algorithms corresponding to the plurality of encoded messages respectively to obtain a plurality of blocks. The splicing module is configured to splice the plurality of blocks according to the block identifiers corresponding to the plurality of blocks to obtain the target image. The display module is configured to display the target image.

[0177] It should be noted here that: the image transmission device provided in this embodiment can implement the technical solutions described in the above image transmission method embodiment. The specific implementation principles of the above modules or units can refer to the corresponding content in the above method embodiment, and will not be elaborated here.

[0178] Schematic diagram of the principle structure of a computing device provided in an embodiment of the present application. The schematic diagram of the principle structure is as Figure 12 shown. Specifically, the computing device includes a memory 51 and a processor 52. The memory 51 is configured to store one or more computer instructions. The processor 52 is coupled to the memory 51 and is configured to execute the at least one or more computer instructions (such as computer instructions for implementing data storage logic) to implement the steps in the cloud desktop image transmission method provided in the embodiment of the present application, or the steps in the image transmission method.

[0179] In the above, the memory 51 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.

[0180] Figure 12 Only some components that the computing device may include are schematically shown, and it does not mean that the computing device only includes Figure 12 the components shown, such as an audio component 56, a display 54, a power supply component 55, a communication component 53, and so on.

[0181] Another embodiment of the present application provides a computer program product (not shown in the accompanying drawings of the specification). The computer program product includes a computer program or instructions, which, when executed by a processor, cause the processor to be able to implement the steps in the above method embodiments.

[0182] Correspondingly, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, which, when executed by a computer, is capable of implementing the method steps or functions provided in the above embodiments.

[0183] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented by hardware. Based on such an understanding, the essence of the above technical solution, or the part that contributes to the prior art, can be embodied in the form of a software product. The computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.

[0184] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, and are not intended to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A cloud desktop image transmission method, characterized in that, Suitable for a cloud desktop server, the method includes: Obtain a desktop image; According to the network service quality information and the image content of the desktop image, divide the desktop image into multiple blocks, obtaining a plurality of blocks; the size of the block is less than or equal to a block threshold, and the block threshold is determined based on the network service quality information; Determine corresponding coding algorithms for the multiple blocks respectively; Use the respective coding algorithms corresponding to the multiple blocks to encode the multiple blocks respectively, obtaining multiple coding information corresponding to the desktop image; Send the multiple coding information corresponding to the desktop image to a terminal respectively, so that the terminal decodes the multiple coding information and then displays the desktop image for a user to operate.

2. The method according to claim 1, characterized in that, According to the network service quality information and the image content of the desktop image, dividing the desktop image into multiple blocks includes: Based on the image content of the desktop image, divide the desktop image into multiple sub-blocks; Determine the coding algorithm types adapted to each of the multiple sub-blocks; According to the network service quality information and the coding algorithm types corresponding to the multiple sub-blocks, merge some of the multiple sub-blocks to obtain merged blocks.

3. The method according to claim 2, wherein According to the network service quality information and the coding algorithm types corresponding to the multiple sub-blocks, merging some of the multiple sub-blocks includes: Determine a block threshold according to the network service quality information; Based on the coding algorithm types corresponding to the multiple sub-blocks, find at least two adjacent sub-blocks with the same coding algorithm type; If the size of the block obtained by merging at least two adjacent sub-blocks with the same coding algorithm type is less than or equal to the threshold, then merge the at least two adjacent sub-blocks with the same coding algorithm type to obtain one block.

4. The method according to claim 3, wherein When there are three or more adjacent sub-blocks with the same coding algorithm type, and the size of the block obtained by merging the three or more adjacent sub-blocks with the same coding algorithm type is greater than the threshold, According to the network service quality information and the coding algorithm types corresponding to the multiple sub-blocks, when merging some of the multiple sub-blocks, it further includes: With reference to the threshold, perform grouped merging on the three or more adjacent sub-blocks with the same coding algorithm type to obtain at least two blocks; Wherein, the size of the block is less than the threshold.

5. The method according to any one of claims 2 to 4, characterized in that Based on the image content of the desktop image, dividing the desktop image into multiple sub-blocks includes: Analyze the image content of the desktop image; Based on the image content analysis result, divide the desktop image to obtain multiple sub-blocks.

6. The method according to any one of claims 2 to 4, characterized in that, Determine the coding algorithm types adapted to each of the multiple sub-blocks, including: Analyze the block content of the multiple sub-blocks respectively to obtain the image features corresponding to the multiple sub-blocks; According to the image features corresponding to the multiple sub-blocks, determine the adapted coding algorithm types for the multiple sub-blocks respectively.

7. The method according to claim 1, characterized in that, It further includes: Based on the network service quality information, determine whether a trigger condition is met; If the trigger condition is met, then trigger the step of dividing the desktop image into blocks according to the network service quality information and the image content of the desktop image; If the trigger condition is not met, the desktop image is encoded, and the encoded desktop image is sent to the terminal.

8. A cloud table image transmission method, characterized in that, Suitable for a terminal, the method includes: Receiving a plurality of encoding information sent by a cloud desktop server respectively; wherein, the encoding information contains a desktop image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the desktop image; After determining that the total number of blocks of the same desktop image identifier has been received, decoding the plurality of encoding information respectively according to the decoding algorithms corresponding to the respective encoding information to obtain a plurality of blocks; the size of the block is less than or equal to a block threshold, and the block threshold is determined by the cloud desktop server based on network service quality information; Stitching the plurality of blocks according to the block identifiers corresponding to the respective plurality of blocks to obtain the desktop image; Displaying the desktop image.

9. A cloud desktop system, characterized in that, Including: A cloud desktop server for obtaining a desktop image; According to network service quality information and the image content of the desktop image, dividing the desktop image into a plurality of blocks, the size of the block being less than or equal to a block threshold, and the block threshold being determined based on the network service quality information; respectively determining corresponding encoding algorithms for the plurality of blocks; using the encoding algorithms corresponding to the respective plurality of blocks to encode the plurality of blocks respectively to obtain a plurality of encoding information corresponding to the desktop image; Sending the plurality of encoding information corresponding to the desktop image to the terminal respectively; The terminal is communicatively connected to the cloud desktop server, and is configured to receive the plurality of encoding information sent by the cloud desktop server respectively, decode the plurality of encoding information respectively to obtain a plurality of blocks; stitch the plurality of blocks to obtain the desktop image, and display the desktop image.

10. An image transmission method, characterized in that, Suitable for a first device, the method includes: Obtaining a target image; According to network service quality information and the image content of the target image, dividing the target image into a plurality of blocks; the size of the block is less than or equal to a block threshold, and the block threshold is determined based on the network service quality information; Respectively determining corresponding encoding algorithms for the plurality of blocks; Using the encoding algorithms corresponding to the respective plurality of blocks to encode the plurality of blocks respectively to obtain a plurality of encoding information corresponding to the target image; Sending the plurality of encoding information corresponding to the target image to a second device respectively, so that the second device decodes the plurality of encoding information and displays the target image.

11. An image transmission method, characterized in that, Suitable for a second device, the method includes: Receiving a plurality of encoding information sent by the first device respectively; wherein, the encoding information contains a target image identifier, a block identifier to which it belongs, and the total number of blocks corresponding to the target image; After determining that the total number of blocks of the same target image identifier has been received, decoding the plurality of encoding information respectively according to the decoding algorithms corresponding to the respective encoding information to obtain a plurality of blocks; the size of the block is less than or equal to a block threshold, and the block threshold is determined by the first device based on network service quality information; Splice the multiple blocks according to the block identifiers corresponding to the respective multiple blocks to obtain the target image; Display the target image.

12. An image transmission system, characterized in that, Comprising: A first device, configured to obtain a target image; perform block division on the target image according to network service quality information and the image content of the target image to obtain multiple blocks, where the size of the block is less than or equal to a block threshold, and the block threshold is determined based on the network service quality information; respectively determine corresponding encoding algorithms for the multiple blocks; use the encoding algorithms corresponding to the respective multiple blocks to respectively encode the multiple blocks to obtain multiple encoding information corresponding to the target image; Send the multiple encoding information corresponding to the target image to a second device respectively, so that the second device decodes the multiple encoding information and then displays the target image; A second device, communicatively connected to the first device, configured to receive the multiple encoding information sent by the first device, respectively decode the multiple encoding information to obtain multiple blocks; splice the multiple blocks to obtain the target image; Display the target image. Comprising:

13. A computing device, characterized in that, A memory and a processor, wherein, The memory stores one or more computer instructions; The processor is coupled to the memory and configured to execute the one or more computer instructions to implement the steps in the method according to any one of claims 1 to 7 above, or the steps in the methods according to claims 8, 10 or 11. A computer program product includes a computer program or instructions, and when the computer program or instructions are executed by a processor, the processor is caused to execute the steps in the method according to any one of claims 1 to 7 above, or the steps in the methods according to claims 8, 10 or 11.

14. A computer program product, characterized in that, ​

Citation Information

Patent Citations

  • Image encoding and decoding method of desktop scene and related device

    CN110545417A

  • Image processing method and device

    CN112114760A