WO2019165574A1 - 图像发送方法、装置及存储介质 - Google Patents

图像发送方法、装置及存储介质 Download PDF

Info

Publication number
WO2019165574A1
WO2019165574A1 PCT/CN2018/077337 CN2018077337W WO2019165574A1 WO 2019165574 A1 WO2019165574 A1 WO 2019165574A1 CN 2018077337 W CN2018077337 W CN 2018077337W WO 2019165574 A1 WO2019165574 A1 WO 2019165574A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
block
length
image block
desktop
Prior art date
Application number
PCT/CN2018/077337
Other languages
English (en)
French (fr)
Inventor
李勇
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP18908129.2A priority Critical patent/EP3722949B1/en
Priority to PCT/CN2018/077337 priority patent/WO2019165574A1/zh
Priority to CN201880001490.3A priority patent/CN109076110B/zh
Publication of WO2019165574A1 publication Critical patent/WO2019165574A1/zh
Priority to US16/751,957 priority patent/US11080859B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1415Digital output to display device ; Cooperation and interconnection of the display device with other functional units with means for detecting differences between the image stored in the host and the images displayed on the displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Definitions

  • the present application relates to the field of virtual desktops, and in particular, to an image sending method, apparatus, and storage medium.
  • Virtual desktop infrastructure (English: Virtual Desktop Infrastructure; VDI for short) can realize remote access to the desktop.
  • the architecture of a typical virtual desktop facility can include a server and a client.
  • the server can be deployed with a virtual machine. Accessing a virtual machine deployed in the server and sending an operation instruction to the virtual machine to use an application in the virtual machine, and the application in the virtual machine can generate a desktop image based on an operation instruction sent by the client, and pass through the virtual machine
  • the display protocol program sends the desktop image to the client for remote access to the desktop.
  • the virtual machine In order to save communication resources, the virtual machine often needs to use image caching technology when sending desktop images to the client.
  • the virtual machine can segment the desktop image to be sent to obtain multiple image blocks, and then, For each image block, the virtual machine can calculate the flag value corresponding to the image block according to the pixel value of all the pixels in the image block and a preset algorithm (for example, a hash algorithm), and the virtual machine can query the corresponding image block.
  • a preset algorithm for example, a hash algorithm
  • the virtual machine may send the flag value corresponding to the image block to the user end, so that the user end acquires the pixel value of the image block according to the flag value, and when the image block corresponds to the flag value
  • the virtual machine needs to send the pixel value of the image block to the client.
  • the virtual Can encode the pixel value of the image block the encoded pixel value is sent to the UE. It can be seen that the higher the proportion of the hit image blocks in the plurality of image blocks obtained by the desktop image segmentation to be transmitted, the less communication resources are required for the virtual machine to send the desktop image to the client, wherein the hit image block is the corresponding flag.
  • the value is stored in the cached image block in the server.
  • the virtual machine may divide the desktop image to be sent according to a fixed segmentation scheme. For example, the virtual machine may divide the desktop image to be sent into a segment starting point of the upper left corner and split into multiple 64*64 images. Piece.
  • the proportion of hit image blocks in the plurality of image blocks obtained by dividing the desktop image to be transmitted is small, for example, the desktop image to be transmitted is generated compared to the desktop image that has been transmitted.
  • the plurality of image blocks obtained by dividing the desktop image to be transmitted according to the fixed segmentation scheme are likely to be different from the plurality of image blocks of the desktop image that have been transmitted. In this case, the desktop image to be transmitted is segmented.
  • the proportion of hit image blocks in multiple image blocks is small. Therefore, it will cause waste of communication resources.
  • the application provides an image sending method, device and storage medium, which can avoid waste of communication resources between the server and the client.
  • the technical solutions provided by the embodiments of the present application are as follows:
  • an image sending method comprising:
  • the target image block set including a plurality of image blocks, each of the plurality of image blocks being a hit image block or a non-hit image block.
  • the target image block set satisfies a target condition, where the target condition includes: a proportion of the hit image block in the target image block set is greater than or equal to a target threshold, or the target image block
  • the weight of the hit image block in the set is greater than the weight of the hit image block in the other image block set, and the other image block set is divided into the desktop image according to other image segmentation schemes included in the image segmentation scheme set.
  • the server image is divided by the server according to the image segmentation scheme included in the image segmentation scheme set to obtain a target image block set that satisfies the target condition, and the server then selects the data information of each image block in the target image block set and each image.
  • the location information of the block is sent to the user end, where the target condition includes: the proportion of the hit image block in the target image block set is greater than or equal to the target threshold, or the proportion of the hit image block in the target image block set is greater than other image block sets.
  • the weight of the hit image block in the hit therefore, can ensure that the proportion of the hit image block in the target image block set obtained by the server to the desktop image is higher, because the data information of the hit image block is the flag value of the hit image block, the non-hit
  • the data information of the image block is the image data of the non-hit image block, wherein the image data may be the pixel value of the non-hit image block, and the data amount of the flag value is generally smaller than the data amount of the image data, and therefore, compared to the non-
  • the server sends the data of the hit image block to the client. Require less bandwidth information, therefore, the server desktop image of the target image block division image obtained in the set of blocks hit the higher specific gravity can save bandwidth between the server and the client.
  • dividing the desktop image according to the image segmentation scheme included in the image segmentation scheme set to obtain the target image block set includes: sequentially dividing the desktop by using multiple image segmentation schemes in the image segmentation scheme set. The image, until the number of hit image blocks in the divided image block set accounts for a greater than or equal to the target threshold value of the number of all image blocks in the divided image block set; and then, the divided image block set is used as A collection of target image blocks.
  • dividing the desktop image according to the image segmentation scheme included in the image segmentation scheme set to obtain the target image block set including: dividing the image segmentation scheme according to each image segmentation scheme in the image segmentation scheme set a desktop image, the image block set corresponding to each image segmentation scheme is obtained; for each image block set, the number of hit image blocks of the image block set is calculated to occupy all the image blocks in the image block set The proportion of the quantity; selecting, from the plurality of image block sets corresponding to all the image segmentation schemes in the image segmentation scheme set, the image block set having the highest specific gravity as the target image block set.
  • the server can determine a target image block set whose hit image block weight is greater than or equal to the target threshold from at least one image block set obtained by dividing the desktop image or determine a target image block set with the highest proportion of hit image blocks, It can be ensured that the proportion of hit image blocks in the target image block set finally determined by the server is high, so that sending the desktop image to the client based on the target image block set in the subsequent step can reduce the bandwidth between the server and the client.
  • the multiple image segmentation schemes in the image segmentation scheme set described above include different region division manners; then, dividing the desktop image according to each image segmentation scheme of the image segmentation scheme set includes: following the image The area division manner of the division scheme divides the desktop image into a plurality of image areas in a first direction; and then, each of the plurality of image areas is divided into at least one image block.
  • dividing the desktop image into the plurality of image regions in the first direction according to the area division manner of the image segmentation scheme in the image segmentation scheme set may include: determining an instruction origin of the desktop image.
  • the server can segment the desktop image according to the preset origin of the desktop image, that is, the preset step size (that is, the first preset split length L), therefore, the command origin of the desktop image to be sent is compared.
  • the origin of the command of the already transmitted desktop image does not change, the plurality of image regions obtained by dividing the desktop image to be transmitted according to the instruction origin segmentation scheme and the desktop image that has been transmitted according to the instruction origin segmentation scheme are obtained. If the probability of overlapping multiple image regions is high, then in a subsequent step, the proportion of the hit image blocks in the image block set obtained by dividing the plurality of image regions of the desktop image to be transmitted is correspondingly higher, thereby reducing the service.
  • the bandwidth between the end and the client is compared.
  • the method for dividing the desktop image into the plurality of image regions in the first direction according to the area division manner of the image segmentation scheme in the image segmentation scheme set including: using the command origin of the desktop image Separating the starting point, dividing the desktop image into a plurality of image regions sequentially arranged along the first direction; wherein each of the plurality of image regions except the first image region and the last image region is The length k3 in the first direction is equal to the first preset segment length L, the first boundary of the first image region passes the command origin of the desktop image, and the second boundary of the first image region is in the screen coordinate system.
  • the coordinate value in the first direction belongs to a coordinate range of the desktop image in the first direction in the screen coordinate system, and is an integer multiple of the first preset segment length, and the first boundary and the second boundary are both Vertically from the first direction, the distance between the first boundary and the second boundary is less than or equal to the first predetermined segmentation length, the length k4 of the first image region in the first direction, and the last image Region in the first direction length k5 satisfies:
  • N is the total length of the desktop image in the first direction, Indicates rounding up, k4 being equal to the distance between the first boundary and the second boundary.
  • the server when the desktop image changes significantly (for example, when the desktop image is significantly changed when the client and the virtual machine deployed in the server are initially connected), the server usually sends the message to the client.
  • the entire image wherein the size of the entire image is the same as the screen size of the user end, that is, the command origin of the entire image coincides with the upper left corner of the user screen.
  • the server may divide the entire image into a plurality of image regions by using a command origin (the upper left corner of the user screen) as a segmentation starting point according to a fixed step size (first preset length L). Therefore, the coordinate values of the two boundaries parallel to the second direction of the plurality of image regions obtained by the whole image segmentation in the first direction of the screen coordinate system of the user end are all integer multiples of the first preset segment length L.
  • the second boundary of the first image region obtained by the server to segment the desktop image is a multiple of the first preset segment length L in the first direction of the screen coordinate system of the user end.
  • the server can segment other areas of the desktop image in a fixed step size to obtain other image areas than the first image area and the last image area, because the fixed step size is first.
  • the segmentation length is preset. Therefore, the coordinate values of the two boundaries parallel to the second direction in the first direction of the screen coordinate system of the user end are all integer multiples of the first preset segmentation length L.
  • the image area divided by the first image area and the last image area obtained by dividing the desktop image coincides with the image area obtained by dividing the entire desktop image, and in the subsequent step, the other image areas are segmented.
  • the proportion of hit image blocks in the image block set is correspondingly higher, which can reduce the bandwidth between the server and the client.
  • the desktop image is segmented by using the instruction origin of the desktop image as a starting point of the desktop image Forming a plurality of image regions sequentially arranged along the first direction, wherein each of the plurality of image regions except the first image region and the last image region has a length k6 in the first direction Equal to the first preset segment length L, the length k7 of the first image region in the first direction
  • N is the total length of the desktop image in the first direction, Indicates rounding up, k7 being equal to the distance between the command origin of the target image block and the command origin of the desktop image in the first direction.
  • the distance L1 between the command origin of the target image block and the command origin of the desktop image in the first direction satisfies: 0 ⁇ L1 ⁇ L
  • the instruction origin of the target image block and the instruction origin of the desktop image are at The distance L2 in the second direction satisfies: 0 ⁇ L2 ⁇ L'.
  • the embodiment of the present application may search for the possible position of the command origin of the desktop image that has been sent in the first direction, and then The server may segment the desktop image according to the fixed step size (that is, the first preset segmentation length) by using the possible location as the segmentation starting point, so that the multiple image regions obtained by the desktop image segmentation to be sent are already.
  • the fixed step size that is, the first preset segmentation length
  • the proportion of the hit image block in the image block set obtained by dividing the plurality of image regions of the desktop image to be transmitted is correspondingly Higher, this will reduce the bandwidth between the server and the client.
  • the target image block is a hit image block, and the command origin of the target image block is smaller than the command origin of the desktop image to be transmitted, the target image block is likely to be the desktop image that has been sent.
  • dividing each of the plurality of image regions into the at least one image block as described above includes: respectively dividing the image region according to a block segmentation scheme included in the block partitioning scheme set to obtain a target sub-image. a set of blocks, wherein the target sub-image block set includes a plurality of image blocks, and the target sub-image block set satisfies a target sub-condition, the target sub-conditions including: a proportion of hit image blocks in the target sub-image block set is greater than Or equal to the target sub-threshold, or the proportion of the hit image block in the target sub-image block set is greater than the proportion of the hit image block in the other sub-image block set, the other sub-image block set is included according to the block partition plan set
  • Other block division schemes are obtained by dividing the image area.
  • the image region is divided according to a block division scheme set, the block segmentation scheme that satisfies a target sub-condition is selected from the block segmentation scheme set, and the image is determined to be divided according to the target block segmentation scheme.
  • Deriving the target sub-image block set of the region comprising: dividing the image region by using a plurality of block segmentation schemes in the block partitioning scheme set, respectively, until the number of hit image blocks in the divided sub-image block set accounts for The proportion of the number of all the image blocks in the divided sub-image block set is greater than or equal to the target sub-threshold; the divided sub-image block set is taken as the target sub-image block set, and the divided sub-image block is obtained
  • the block corresponding division scheme is used as the target block division scheme.
  • the image region is divided according to the block partitioning scheme set, the block segmentation scheme that satisfies a target sub-condition is selected from the block partitioning scheme set, and the partitioning scheme according to the target block partitioning scheme is determined.
  • the target sub-image block set obtained by the image region includes: traversing a plurality of block segmentation schemes in the block partitioning scheme set to divide the image region, and obtaining a plurality of sub-image block sets corresponding to the plurality of block segmentation schemes; Each of the plurality of sub-image block sets corresponds to determining a proportion of the number of hit image blocks in the set of sub-image blocks to the number of all image blocks in the set of sub-image blocks; determining the plurality of a highest specific gravity of the plurality of sub-image block sets; selecting a sub-image block set having the highest specific gravity from the plurality of sub-image block sets as the target sub-image block set, and determining the sub-image block having the highest specific gravity
  • the sub-image segmentation scheme corresponding to the set is
  • separately dividing the image region according to the block segmentation scheme in the block partitioning scheme set includes: determining, from the set of length values, a first length value R1 corresponding to the block partitioning scheme, where the length The set of values includes a plurality of length values, each length value included in the set of length values being less than or equal to a second preset split length L', the different length values in the set of length values being partitioned by different blocks in the set of block partitioning schemes Using the scheme; dividing the image region into a plurality of image blocks sequentially arranged in the second direction, wherein each of the plurality of image blocks except the first image block and the last image block is in the second direction
  • the length p1 is equal to the second predetermined segment length L', and the length p2 of the first image block in the second direction and the length p3 of the last image block in the second direction satisfy:
  • M is the total length of the desktop image in the second direction, Indicates rounding up, p2 being equal to the first length value R1, the second direction being perpendicular to the first direction.
  • the plurality of length values determine a priority order according to a history hit ratio, where the hit ratio is a hit image block of the sub-image block set obtained by dividing the image region according to the length value.
  • the specific gravity order of the plurality of block partitioning schemes in the set of block partitioning schemes corresponds to the priority order in the set of length values.
  • dividing the image region according to the block division scheme set as described above includes: acquiring a second length value, where the second length value is a target block segmentation scheme used to divide a previous image region of the image region. a length value used, the previous image area being an image area of the divided image block adjacent to the image area in the first direction in the desktop image; and then using the block division scheme corresponding to the second length value Dividing the image region to obtain a candidate sub-image block set; when the specific gravity of the hit image block in the candidate sub-image block set is greater than or equal to the target sub-threshold, the candidate sub-image block set is used as the target sub-image block And collecting, when the proportion of the hit image block in the candidate sub-image block set is smaller than the target sub-threshold, sequentially dividing the image region by using a plurality of block segmentation schemes in the block segmentation scheme set, to obtain the target sub-image block set.
  • the server may use at least one different length value as the length of the first image block in the second direction to segment the first image block, and then the server may The other part of the image area is segmented in a fixed step size (that is, the second preset division length) to obtain the last image block and other image blocks other than the first image block and the last image block, that is, The server can perform fixed step segmentation on the image region by using the first image block as a starting point for segmentation. In this way, when the desktop image to be transmitted is translated compared to the desktop image that has been sent, the server can perform at least one division by the image region of the desktop image to be sent to search for a possible translation length of the desktop image to be transmitted.
  • a fixed step size that is, the second preset division length
  • the possible translation length is the length of the first image block in the second direction.
  • the server can acquire a sub-image block set corresponding to a possible translation length, and as a target sub-image block set, the target sub-image block
  • the image blocks other than the first image block and the last image block in the set are more likely to overlap the image block obtained by dividing the already transmitted desktop image, and therefore, the plurality of image blocks included in the target sub-image block set
  • the hit image block has a higher proportion, which reduces the bandwidth between the server and the client.
  • the server when the proportion of the hit image block in the sub-image block set obtained by dividing the image region by the server based on a certain length value in the set of length values is greater than or equal to the target sub-threshold, the server may The image area is stopped. Therefore, the higher the ranking of the certain length value in the length value set, the less the number of times the server side divides the image area, and the smaller the calculation amount of the server. Therefore, in order to reduce the amount of computation on the server side, the length values in the set of length values can be sorted in descending order of hit rate.
  • the length value corresponding to the target image segmentation scheme of the adjacent image region (hereinafter referred to as the target length value) is likely to be the same, and therefore, in order to further reduce the division of the image region by the server.
  • the number of times reduces the amount of calculation on the server.
  • the server can determine the target length value of the previous image area of the image area, and then the server can use the target length value first.
  • Dividing the image region when the proportion of the hit image block in the sub-image block set obtained by dividing the image region by using the target length value is smaller than the target sub-threshold, the server may sort the multiple length values in the set of length values.
  • the image area is divided by the length value in the set of length values, wherein the length values in the set of length values can be sorted in descending order of hit rate.
  • an image transmitting apparatus comprising at least one module for implementing the image transmitting method provided by the above first aspect or any of the optional aspects of the first aspect.
  • an image transmitting apparatus comprising: a processor and a memory;
  • the processor is configured to execute instructions stored in the memory, and the processor implements the image transmission method provided by any of the above-described first aspect or the first aspect by executing the instructions.
  • a computer readable storage medium in a fourth aspect, storing instructions for causing the computer to perform the first aspect or the first aspect when the instruction is run on a computer
  • the image transmission method provided by any of the alternative methods.
  • a computer program product comprising instructions for causing a computer to perform an image transmission method in any of the possible implementations of the first aspect or the first aspect, when the computer program product is run on a computer.
  • the server image is divided by the server according to the image segmentation scheme included in the image segmentation scheme set to obtain a target image block set that satisfies the target condition, and the server then selects the data information of each image block in the target image block set and each image.
  • the location information of the block is sent to the user end, where the target condition includes: the proportion of the hit image block in the target image block set is greater than or equal to the target threshold, or the proportion of the hit image block in the target image block set is greater than other image block sets.
  • the weight of the hit image block in the hit therefore, can ensure that the proportion of the hit image block in the target image block set obtained by the server to the desktop image is higher, because the data information of the hit image block is the flag value of the hit image block, the non-hit
  • the data information of the image block is the image data of the non-hit image block, wherein the image data may be the pixel value of the non-hit image block, and the data amount of the flag value is generally smaller than the data amount of the image data, and therefore, compared to the non-
  • the server sends the data of the hit image block to the client.
  • the bandwidth required for the information is small. Therefore, the higher proportion of the hit image block in the target image block set obtained by the server to the desktop image segmentation can save the bandwidth between the server and the client.
  • FIG. 1A is a schematic diagram of a desktop image provided by an embodiment of the present application.
  • FIG. 1B is a schematic diagram of partitioning a desktop image according to an embodiment of the present application.
  • FIG. 1C is a schematic diagram of a desktop image provided by an embodiment of the present application.
  • FIG. 1D is a schematic diagram of segmenting a desktop image according to an embodiment of the present application.
  • FIG. 1E is a schematic diagram of a desktop image provided by an embodiment of the present application.
  • FIG. 1F is a schematic diagram of segmenting a desktop image according to an embodiment of the present application.
  • FIG. 1G is a schematic diagram of an implementation environment provided by an embodiment of the present application.
  • FIG. 2A is a flowchart of an image sending method according to an embodiment of the present application.
  • FIG. 2B is a schematic diagram of a desktop image provided by an embodiment of the present application.
  • FIG. 2C is a schematic diagram of segmenting a desktop image according to an embodiment of the present application.
  • FIG. 2D is a schematic diagram of segmenting a desktop image according to an embodiment of the present application.
  • FIG. 2E is a schematic diagram of segmenting an image area according to an embodiment of the present application.
  • FIG. 2F is a schematic diagram of segmenting an image area according to an embodiment of the present application.
  • FIG. 2G is a schematic diagram of an image block including multiple image sub-blocks according to an embodiment of the present application.
  • FIG. 2H is a schematic diagram of segmenting an image area according to an embodiment of the present application.
  • FIG. 2I is a schematic diagram of a preset area provided by an embodiment of the present application.
  • FIG. 2J is a schematic diagram of segmenting an image area according to an embodiment of the present application.
  • FIG. 3 is a block diagram of an image transmitting apparatus according to an embodiment of the present application.
  • FIG. 4 is a block diagram of an image transmitting apparatus according to an embodiment of the present application.
  • the virtual desktop infrastructure (English: Virtual Desktop Infrastructure; VDI for short) can implement remote access to the desktop.
  • the typical VDI architecture can include the server and the client.
  • the server can be deployed with virtual machines.
  • the virtual machine can be installed.
  • There is a display protocol program and at least one application the client can access the virtual machine deployed in the server, and send an operation instruction to the virtual machine to use the application installed in the virtual machine, after receiving the operation instruction sent by the client,
  • the application installed in the virtual machine can generate a desktop image based on the operation instruction, and the display protocol program can acquire the desktop image, and send the desktop image to the user end by using image caching technology, thereby realizing remote access of the desktop.
  • a word processing application may be installed in a virtual machine deployed by the server.
  • the user terminal may send an operation instruction triggered by the user to the virtual machine, where the operation instruction may be “ The short name of the virtual desktop facility is VDI, which can realize the remote access of the desktop.
  • the word processing application installed in the virtual machine may generate a desktop image based on the operation instruction, and the desktop image may be an image as shown in FIG. 1A.
  • the display protocol program in the virtual machine can send the generated desktop image to the user end, and the user terminal can display the received desktop image, so that the user can intuitively see the operation result of the operation instruction triggered by the user, thereby realizing the desktop. Remote access.
  • the following uses the "server” as the execution subject for receiving the operation instruction, generating the desktop image, and sending the desktop image to the user end using the image caching technology; the reader should understand that a possible specific implementation is
  • the virtual machine deployed in the server performs the operation instruction sent by the client, and the desktop image is generated by the application installed in the virtual machine, and the desktop protocol image is executed by the desktop protocol program installed in the virtual machine to send the desktop image to the image cache technology.
  • the server can use image caching technology when sending desktop images to the client.
  • the server can divide the desktop image to be sent into multiple image blocks. For each image block, the server can according to the pixel values of all pixels in the image block and a preset algorithm (such as a hash). The algorithm calculates the flag value corresponding to the image block.
  • the server may query the cache of the server based on the flag value of the image block. When the flag value of the image block is not stored in the cache of the server, the server is the first time to the user.
  • the server may send the pixel value of the image block together with the flag value of the image block to the client, and store the flag value of the image block in the cache of the server.
  • the server may encode the pixel value of the image block and send the encoded pixel value to the user end.
  • the user terminal After receiving the pixel value of the image block and the flag value of the image block, the user terminal may display the image block based on the pixel value of the image block, and the user end may also correspond to the pixel value of the image block and the flag value of the image block.
  • the flag value of the image block is stored in the cache of the server, it indicates that the server has previously sent the image block to the client.
  • the server may only send the flag value of the image block to the user, the user.
  • the terminal may query the pixel value corresponding to the flag value from the cache of the user end according to the flag value, and then the user terminal may display the image block based on the pixel value corresponding to the flag value.
  • the server only needs to send the flag value of the image block to the client, so the amount of data sent by the server to the client can be greatly reduced. , thereby reducing the bandwidth between the server and the client.
  • the server when the server needs to send the desktop image shown in FIG. 1A to the client, as shown in FIG. 1B, the server can divide the desktop image into 10 image blocks, and then the server can Calculating the flag values of the 10 image blocks respectively, when none of the flag values of the 10 image blocks are stored in the buffer of the server, for each image block of the 10 image blocks, the server images the image The pixel value of the block is sent to the user end together with the flag value, and the flag value of the image block is stored in the buffer of the server.
  • the user terminal After receiving the flag value and the pixel value of the 10 image blocks, the user terminal can respectively The pixel values of the 10 image blocks show the 10 image blocks, and the flag values and pixel values of the 10 image blocks are respectively stored in the cache of the client.
  • the UE may continue to send a user-triggered operation instruction to the server, and the operation instruction may be a paste instruction for a text of “a wide application”, and the server receives the operation instruction that the user continues to send after receiving the operation instruction.
  • a desktop image as shown in FIG. 1C can be generated based on the operation instruction.
  • the server can also divide the desktop image into 10 image blocks, and calculate the flag values of the 10 image blocks respectively, as shown in FIG.
  • the first 6 image blocks of the 10 image blocks are image blocks that have been sent by the server to the client. Therefore, the flag values of the first 6 image blocks are stored in the cache of the server.
  • the service The terminal may only send the flag value of the first 6 image blocks to the UE.
  • the server since the server sends the last 4 image blocks to the client for the first time, the flag values of the last 4 image blocks are not stored in the cache of the server. In this case, the server needs to The pixel values of the four image blocks are sent to the client together with the flag values, and the flag values of the last four image blocks are stored in the buffer of the server.
  • the higher the specific gravity of the hit image block among the plurality of image blocks obtained by dividing the desktop image the smaller the bandwidth required for the server to send the desktop image to the client, wherein the hit image block refers to the The corresponding flag value has been stored in the image block in the server's cache. Therefore, for the image caching technology, segmenting the desktop image to obtain a higher hit image block weight is an important link to reduce the bandwidth between the server and the client.
  • the server can segment the desktop image according to a fixed segmentation scheme. For example, the server can divide the desktop image into a plurality of 64*64 image blocks by using the vertices in the upper left corner as the starting point of the segmentation. In the above, in FIG. 1B and FIG. 1D, the server side divides the desktop image according to a fixed segmentation scheme.
  • the desktop image is segmented according to a fixed segmentation scheme.
  • the desktop image that needs to be sent is translated compared to the desktop image that has been sent, the plurality of image blocks that are currently divided by the fixed segmentation scheme are likely to be segmented with the already transmitted desktop image.
  • the multiple image blocks are different. In this case, the image block used by the server and the client for transmitting different bandwidths takes up a large bandwidth.
  • the server when the server sends a desktop image (hereinafter referred to as a first desktop image) as shown in FIG. 1C to the client, the server may segment the first desktop image according to a fixed segmentation scheme to obtain 10 The image block, and then the server can send the 10 image blocks obtained by the segmentation to the user end.
  • the server may also send a desktop image (hereinafter referred to as a second desktop image) as shown in FIG. 1E to the client, where the second desktop image is compared to the first The desktop image generates an upward translation.
  • the server can perform the second desktop image according to the fixed segmentation scheme shown in FIG.
  • the fixed segmentation scheme is the same as the fixed segmentation scheme shown in FIG. 1B.
  • the 10 image blocks obtained in FIG. 1D are different from the 10 image blocks obtained in FIG. 1F, that is, the second desktop image segmentation.
  • the hit image block does not exist in the obtained 10 image blocks.
  • the server needs to send the flag value and the pixel value of the 10 image blocks obtained by dividing the second desktop image to the user end, which results in the server end and the user end.
  • the bandwidth required for communication is large.
  • FIG. 1G is a schematic diagram of an implementation environment related to an image sending method according to an embodiment of the present disclosure.
  • the implementation environment may include a server 101 and a client 102, where a virtual machine is deployed in the server 101.
  • the VDI client can be installed in the client 102.
  • the server 101 can be a server or can be another computing device that can deploy a virtual machine.
  • the client 102 can be an electronic device such as a desktop computer, a tablet computer or a mobile phone, and the client 102 can access the virtual machine deployed in the server 101 through the VDI client installed by the client 102.
  • FIG. 2A is a flowchart of an image sending method according to an embodiment of the present application.
  • the image sending method may be applied to the implementation environment shown in FIG. 1G. As shown in FIG. 2A, the image sending method may include the following steps:
  • Step 201 The server obtains a desktop image to be sent.
  • the virtual machine deployed in the server can receive an operation instruction sent by the client, and the application in the virtual machine pointed to by the operation instruction can generate a desktop image based on the operation instruction.
  • the display protocol program installed in the virtual machine may use the generated desktop image as a desktop image to be sent to send the desktop image to the client using image caching technology in a subsequent step.
  • the desktop image acquired by the server may be the entire image or a partial image in the entire image.
  • the so-called whole image refers to a desktop image whose image size is the same as the screen size of the user end.
  • the user terminal can replace the desktop image currently being displayed by the user terminal based on the entire image.
  • the partial image refers to a desktop image whose image size is smaller than the screen size of the user end.
  • the user terminal may update a partial region of the desktop image currently displayed by the user terminal based on the partial image.
  • the entire image may be an image in the dotted frame A1 of FIG. 2B, and the size of the entire image is the same as the screen size of the user end, and the partial image may be an image in the dotted frame A2 in FIG. 2B, the partial image The size is smaller than the screen size of the client.
  • Step 202 The server divides the desktop image according to an image segmentation scheme included in the image segmentation scheme set to obtain a target image block set.
  • the server may acquire an image segmentation scheme set, and the image segmentation scheme set may include at least two mutually different image segmentation schemes.
  • the image segmentation scheme in the image segmentation scheme set may be arranged in descending order of priority.
  • the image segmentation scheme priority in the image segmentation scheme set may be The size of the applicable scene range is positively correlated.
  • the image segmentation scheme in the image segmentation scheme set may be arranged in descending order according to the applicable scene range.
  • the display protocol program in the virtual machine deployed in the server may sequentially divide the desktop image according to each image segmentation scheme in the image segmentation scheme set.
  • an image block set may be obtained, where the image block set may include a plurality of image blocks obtained by the server according to the image segmentation scheme.
  • Each of the plurality of image blocks may be a hit image block or a non-hit image block, and the so-called non-hit image block refers to an image block in which the corresponding flag value is not stored in the buffer of the server.
  • the server sequentially divides the desktop image according to each image segmentation scheme in the image segmentation scheme set to obtain an image block set.
  • the server determines whether the image block set satisfies a target condition, and if the image block set satisfies a target condition, the image block set serves as a target image block set. If the image block set does not satisfy the target condition, the image segmentation scheme after sorting the image segmentation scheme in the image segmentation scheme set is selected to divide the desktop image until a target image block set that satisfies the target condition is found. Alternatively, when a target image block set that satisfies the target condition is found, the use of other image segmentation schemes in the image segmentation scheme set may be discontinued to continue dividing the desktop image.
  • the target condition includes:
  • the proportion of hit image blocks in the target image block set is greater than or equal to a target threshold
  • the specific gravity of the hit image block in the target image block set is greater than the proportion of the hit image block in the other image block set, and the other image block set is divided according to other image segmentation schemes included in the image segmentation scheme set. Obtained from the desktop image.
  • the technical process of finding the target image block set by the server according to the image segmentation scheme in the image segmentation scheme set may include step A1 and step B1.
  • the server divides the desktop image by using the image segmentation scheme in the image segmentation scheme set in sequence according to the arrangement order of the image segmentation scheme in the image segmentation scheme set until the first stop condition is satisfied.
  • Each of the image segmentation schemes includes a region division manner, and different image segmentation schemes include different regions.
  • the server segmenting the desktop image according to an image segmentation scheme in the image segmentation scheme set may include: the server segmenting the desktop image into the plurality of image regions in the first direction according to the region division manner included in the image segmentation scheme, and then For each image area, the server divides the image area into at least one image block, and the first direction may be a row direction or a column direction in the screen coordinate system of the user end.
  • the first stop condition may be a condition that the proportion of the hit image block in the image block set obtained by dividing the desktop image by the server based on a certain image segmentation scheme in the image segmentation scheme set is greater than or equal to a target threshold, and it is noted that The so-called “specific gravity of the hit image block” herein refers to the proportion of the number of hit image blocks in the image block set to the number of all image blocks in the image block set.
  • the first stopping condition may also be a condition for the server to exhaust the desktop image by all the image segmentation schemes in the image segmentation scheme set.
  • the server determines a target image segmentation scheme and a target image block set.
  • the server may stop dividing the desktop image, and determine, from the at least one image block set that has been divided, the target image block set that satisfies the target condition, and the server may determine the division. Obtaining an image segmentation scheme adopted by the target image block set, which is the target image segmentation scheme described above.
  • the server may determine the image block set obtained by dividing the desktop image according to the certain image segmentation scheme as the target image block set, and the image is obtained.
  • the segmentation scheme is determined as the target image segmentation scheme.
  • the server may determine each of the divisions obtained.
  • the image block weight of the image block set wherein the image block set with the highest proportion of the hit image block satisfies the target condition, and therefore, the server may divide at least the desktop image according to all the image segmentation schemes in the image segmentation scheme set.
  • the image block set with the highest specific gravity of the hit image block in the two image block sets is determined as the target image block set, and the image segmentation scheme corresponding to the target image block set is determined as the target image segmentation scheme.
  • the image segmentation scheme set may include three image segmentation schemes arranged in order, which are an image segmentation scheme a, an image segmentation scheme b, and an image segmentation scheme c, respectively.
  • the server may sequentially divide the desktop image according to the arrangement order of the image segmentation scheme in the image segmentation scheme set until the first stop condition is satisfied, and determine the target image segmentation scheme and the target image block set. That is, the server may first divide the desktop image according to the image segmentation scheme a. When the proportion of the hit image block in the image block set obtained by dividing the desktop image by the server according to the image segmentation scheme a is greater than or equal to the target threshold, The first stop condition is satisfied.
  • the image segmentation scheme a may be determined as a target image segmentation scheme, and the target image block set is a set of image blocks obtained by dividing the desktop image according to the image segmentation scheme a.
  • the desktop image is further divided according to the image segmentation scheme b and the image segmentation scheme c.
  • the server may follow the image segmentation scheme b to the desktop image. Divide.
  • the first stop condition is satisfied, and at this time, the image segmentation scheme b is determined as the target image segmentation.
  • the target image block set is a set of image blocks obtained by dividing the desktop image according to the image segmentation scheme b.
  • the server does not need to divide the desktop image according to the image segmentation scheme c.
  • the first stop condition is not satisfied.
  • the server may perform the desktop image according to the image segmentation scheme c.
  • the division is performed. Since the server has exhausted all the image segmentation schemes in the image segmentation scheme set to divide the desktop image, the first stop condition is satisfied.
  • the server can be used in three image segmentation schemes. Among the three image block sets corresponding to the image segmentation scheme a, the image segmentation scheme b, and the image segmentation scheme c, the image block set having the highest specific gravity of the hit image block is selected as the target image block set, and the target image block set is correspondingly correspondingly The image segmentation scheme is used as the target image segmentation scheme.
  • An embodiment of the present application provides an exemplary image segmentation scheme set, where the image segmentation scheme set may include three image segmentation schemes, namely, an instruction origin segmentation scheme, a static location segmentation scheme, and a motion prediction segmentation. Program.
  • the proportion of the hit image block in the image block set obtained by dividing the desktop image to be transmitted according to the command origin segmentation scheme Higher, in the case where the instruction origin of the desktop image to be transmitted is changed compared to the instruction origin of the already transmitted desktop image, the image block to be divided according to the static position division scheme and the motion prediction division scheme is to be divided. The proportion of hit image blocks in the collection is higher.
  • the instruction origin of the desktop image may be a vertex of the outer rectangle of the desktop image (also referred to as a minimum circumscribed rectangle).
  • the desktop image may be a rectangular image
  • the outer rectangle of the desktop image may be a rectangle composed of the boundary of the desktop image.
  • the instruction origin of the desktop image may be the vertex of the upper left corner of the outer rectangle of the desktop image.
  • the instruction origin segmentation scheme, the static location segmentation scheme, and the motion prediction segmentation scheme are arranged in descending order of priority, for example, instruction origin segmentation.
  • the scheme has the highest priority and the motion prediction segmentation scheme has the lowest priority.
  • the technical process of dividing the desktop image by the server according to the instruction origin segmentation scheme to obtain an image block set may include step A2, step B2, step C2, and step D2.
  • the server determines the instruction origin of the desktop image.
  • the server can determine the location of the instruction origin of the desktop image in the screen coordinate system of the client.
  • the server divides the desktop image into multiple image regions along the first direction according to the area division manner included in the instruction origin segmentation scheme.
  • the first direction is parallel to one side of the outer circumference of the desktop image.
  • the first embodiment is the same as the first direction.
  • the first direction is the same as the first direction. The examples are not described here.
  • the command origin segmentation scheme includes: dividing the desktop image into a plurality of image regions by using a command origin of the desktop image as a segmentation starting point, wherein each image region is a rectangular region, and the The image areas are sequentially arranged in the first direction.
  • the length k1 of each of the plurality of image regions except the last image region in the first direction is equal and equal to the first predetermined segment length L, and the last image region is in the first direction.
  • the length k2 satisfies the first formula, and the first formula is:
  • N is the total length of the desktop image in the first direction, Indicates rounding up.
  • the first preset split length L may be a length of the macroblock in the first direction, and the first preset split length L is an integer multiple of the length of the single pixel in the first direction, where A macroblock refers to an image partition with the largest default size in the image coding and decoding field. In practical applications, a macroblock can be a square image partition. It should also be noted that the above-mentioned last image area refers to an image area which is the farthest from the command origin of the desktop image in the first direction among the plurality of image areas obtained by the desktop image segmentation.
  • the length of the last image region in the first direction is equal to the first preset segment length. L.
  • the length of the last image region in the first direction is equal to the total of the desktop image in the first direction. The remainder of the length N divided by the first predetermined division length L.
  • the server can divide the desktop image T1 into four image regions q1, q2, q3 and q4 arranged in the first direction in sequence according to the instruction origin F1 of the desktop image T1.
  • the lengths of the first three image regions q1, q2, and q3 in the first direction are both equal to 2
  • the length of the last image region q4 in the first direction is equal to 1.
  • the server can divide the desktop image T2 into four image regions p1, p2, p3 and p4 arranged in the first direction in sequence with the instruction origin F2 of the desktop image T2 as the starting point of the segmentation.
  • the lengths of the first three image regions p1, p2 and p3 in the first direction are both equal to 2
  • the length of the last image region p4 in the first direction is also equal to 2.
  • the server can segment the desktop image according to the preset step size (that is, the first preset segment length L) by using the instruction origin of the desktop image as the segmentation starting point, and therefore, the to-be-sent
  • the plurality of image regions obtained by dividing the desktop image to be transmitted according to the command origin segmentation scheme are already transmitted according to the instruction origin segmentation scheme pair.
  • the probability that the plurality of image regions obtained by the segmentation of the desktop image overlap is high, and in the subsequent step, the proportion of the hit image block in the image block set obtained by dividing the plurality of image regions of the desktop image to be transmitted is correspondingly higher. High, this can reduce the bandwidth between the server and the client.
  • the server determines a target sub-image block set for each of the plurality of image regions obtained by dividing the desktop image.
  • the server may acquire a block segmentation scheme set, where the block segmentation scheme set includes a plurality of mutually different block segmentation schemes, and the server may perform the image region according to at least one block segmentation scheme in the block segmentation scheme set.
  • Dividing wherein the server may obtain a sub-image block set after dividing the image area according to each block partitioning scheme in the block partitioning scheme set, where the sub-image block set may include the server side according to the block dividing scheme to the image area A plurality of image blocks obtained after division.
  • the server sequentially divides the image region according to each block segmentation scheme in the block partitioning scheme set to obtain at least one sub-image block set.
  • each sub-image block set is obtained according to a block partitioning scheme
  • the server determines the sub-image. Whether the block set satisfies the target sub-condition, if the sub-image block set satisfies the target sub-condition, the sub-image block set is used as the target sub-image block set, and if the sub-image block set does not satisfy the target sub-condition, the block division scheme is selected
  • a block partitioning scheme in the set that sorts after the block partitioning scheme divides the image region until a target sub-image block set that satisfies the target sub-condition is found.
  • the use of other block partitioning schemes in the block partitioning scheme set may be discontinued to continue to partition the image region.
  • the target sub-condition includes: a specific gravity of a hit image block in the target sub-image block set is greater than or equal to a target sub-threshold;
  • the specific gravity of the hit image block in the target sub-image block set is greater than the weight of the hit image block in the other sub-image block set, and the other sub-image block set is according to other blocks included in the block splitting scheme set.
  • the division scheme is obtained by dividing the image area.
  • the technical process that the server finds the target sub-image block set according to the block partitioning scheme in the block partitioning scheme set may include step a, step b, and step c.
  • the server obtains a set of length values.
  • the set of length values includes a plurality of length values arranged in order, and each length value is less than or equal to a second preset split length L', and each length value is a length a' of a single pixel in the second direction. Integer multiple.
  • Each length value in the set of length values corresponds to a block partitioning scheme in the set of block partitioning schemes and is used by the corresponding block partitioning scheme.
  • the second preset segment length L′ may be the length of the macroblock in the second direction, and the second preset segment length L′ is an integer multiple of the length a′ of the single pixel in the second direction.
  • the second direction may be perpendicular to the first direction.
  • the first direction is a row direction
  • the second direction is a column direction.
  • the first direction is a column direction
  • the second direction is a row direction.
  • the server divides the image area by using the block partitioning scheme in the block partitioning scheme set in sequence according to the order of the block partitioning scheme in the block partitioning scheme set until the second stopping condition is satisfied.
  • the order of arrangement of multiple block partitioning schemes in the block partitioning scheme set corresponds to the order of arrangement of multiple length values in the length value set. That is, in step b, the server may divide the image area by using the length value in the set of length values sequentially according to the order of the length values in the set of length values until the second stop condition is satisfied.
  • the technical process of dividing the image area into a sub-image block set by using a certain length value R1 in the set of length values may include the following step b11:
  • the server uses the length value R1 to divide the image area into a plurality of image blocks sequentially arranged in the second direction, and forms the plurality of image blocks into a sub-image block set.
  • the length p2 of the first image block in the second direction of the plurality of image blocks is equal to the length value R1, and each of the plurality of image blocks except the first image block and the last image block is in the first
  • the length p1 in the two directions is equal to the second preset segment length L', and the length p3 of the last image block in the second direction satisfies the second formula, the second formula is:
  • M is the total length of the desktop image in the second direction, Indicates rounding up.
  • the first image block refers to an image block that is closest to the origin of the desktop image in the second direction among the plurality of image blocks obtained by dividing the image region
  • the last image block refers to the image region segmentation.
  • the last image block when the difference between the total length M of the desktop image in the second direction and the length value R1 is an integer multiple of the second preset segment length L′, the last image block is in the second direction.
  • the length is equal to the second preset segment length L′.
  • the last image block The length in the second direction is equal to the remainder of the difference between the total length M of the desktop image in the second direction and the length value R1 divided by the second predetermined division length L'.
  • the server can divide the image area G1 into four image blocks u1, u2, u3 and u4 arranged in the second direction, wherein the first image block u1
  • the length in the second direction is equal to 1
  • the length of the two intermediate image blocks u2 and u3 in the second direction is equal to 2
  • the length of the last image block u4 in the second direction is also equal to 2.
  • the server can divide the image area G2 into five image blocks v1, v2, v3, v4 and v5 arranged in the second direction, wherein the first image
  • the length of the block v1 in the second direction is equal to 1
  • the length of the middle three image blocks v2, v3 and v4 in the second direction is equal to 2
  • the length of the last image block v5 in the second direction is equal to 1.
  • the server may further calculate a flag value of each image block in the sub-image block set to determine the proportion of the hit image block in the sub-image block set according to the flag value of each image block. .
  • the server may determine a plurality of image sub-blocks constituting the image block, and the length of each image sub-block in the first direction is equal to the first preset segment length. L, the length in the second direction is equal to the length a' of the single pixel in the second direction.
  • the server may obtain a flag value of each image sub-block constituting the image block, wherein the flag value of each image sub-block may be based on the server-based all of the image sub-blocks
  • the pixel value of the pixel is calculated according to a preset algorithm (for example, a hash algorithm), and then, for each image block in the set of sub-image blocks, the server may be based on the flag value of each image sub-block constituting the image block.
  • An algorithm (such as a hash algorithm) is used to calculate the flag value of the image block.
  • the server may query the cache of the server according to the flag value of each image block to determine the proportion of the hit image block in the sub-image block set.
  • the server may determine three image sub-blocks JJ1, JJ2, and JJ3 constituting the image block J, wherein each image sub-block is at the first
  • the length in the direction ie, the row direction x
  • the length in the second direction ie, the column direction y
  • the server can obtain the flag values Wjj1, Wjj2, and Wjj3 of the three image sub-blocks JJ1, JJ2, and JJ3, and the server can calculate the flag value of the image block J according to the preset algorithm based on the flag values Wjj1, Wjj2, and Wjj3.
  • the server may query the cache of the server based on the flag value to determine whether the image block J is a hit image block.
  • the server may divide the image area by using the length value in the set of length values in the order of the length values in the set of length values until the second stop condition is satisfied.
  • the second stopping condition may be that the proportion of the hit image block in the sub-image block set obtained by dividing the image region by the server based on a certain length value in the set of length values is greater than or equal to the target sub-threshold. conditions of.
  • the second stopping condition may also be a condition that the server exhausts all the length values in the set of length values to divide the image region.
  • the server may sequentially divide the image area using the length values R1, R2, and R3, when the server uses a certain length value, for example, The length value may be R2.
  • the length value may be R2.
  • the server uses the length values R1, R2, and R3 to divide the image area to meet the second stop condition, and the server does not continue to divide the image area.
  • the server determines the target sub-image block set and the target block partitioning scheme.
  • the server may stop dividing the image area, and determine, from the at least one sub-image block set that has been divided, the target sub-image block set that satisfies the target sub-condition, and the server may also A block partitioning scheme used to divide the target sub-image block set is determined, and the block partitioning scheme is the target block partitioning scheme described above.
  • the second stop condition is a condition that the proportion of the hit image block in the sub-image block set obtained by dividing the image area by the server using a certain length value in the set of length values is greater than or equal to the target sub-threshold, the certain length is used.
  • the sub-image block set obtained by the value division satisfies the target sub-condition. Therefore, the server may determine the sub-image block set obtained by dividing the image region by using the certain length value as the target sub-image block set, and the length is determined.
  • the block partitioning scheme corresponding to the value is determined as the target block partitioning scheme.
  • the server may determine the proportion of the hit image block of each sub-image block set obtained by the partition, wherein the hit image block The sub-image block set with the highest specific gravity satisfies the target sub-condition. Therefore, the server can exhaust the sub-images with the highest proportion of the hit image blocks among the plurality of sub-image block sets obtained by dividing all the length values in the set of length values into the image region.
  • the block set is determined as a target sub-image block set, and the block partitioning scheme corresponding to the target sub-image block set is determined as the target block partitioning scheme.
  • the length value corresponding to the used target sub-image block set may be referred to as a target length value.
  • the server may sequentially divide the image area using the length values R1, R2, and R3, when the server uses a certain length value, for example, The length value may be R2.
  • the length value may be R2.
  • the server divides the image area by using the length values R1, R2, and R3, respectively, to satisfy the second stop condition, and the server does not continue to divide the image area, and will use the length values R1, R2, and R3 for the image.
  • the sub-image block set with the highest proportion of hit image blocks among the three sub-image block sets obtained by the region division may be obtained by dividing the image region by using the length value R3.
  • the sub-image block set is determined as the target sub-image block set, and the block division scheme corresponding to the length value R3 is determined as the target block division scheme, wherein the length value R3 is the target length value.
  • the server When the second stop condition is a condition that the proportion of the hit image block in the sub-image block set obtained by dividing the image region by the server based on a certain length value in the set of length values is greater than or equal to the target sub-threshold, the server does not need to exhaust All the length values in the set of length values divide the image area. Therefore, the calculation amount of the server is small.
  • the server can determine the sub-image block set whose hit image has a specific gravity greater than or equal to the target sub-threshold as the target sub-image. The block set, therefore, can ensure that the proportion of hit image blocks in the target sub-image block set is high, so that the bandwidth between the server and the client can be reduced to some extent.
  • the server may set the sub-image block set with the highest proportion of the hit image blocks in the at least one sub-image block set. It is determined that the target sub-image block set, that is, the target image block set determined by the server, has the highest proportion of hit image blocks, so in this case, the bandwidth between the server and the client can be minimized.
  • the server may use at least one different length value as the length of the first image block in the second direction to segment the first image block, and then the server.
  • the other portions of the image region may be segmented in a fixed step size (ie, the second predetermined segmentation length) to obtain the last image block and other image blocks than the first image block and the last image block, that is, It can be said that the server can divide the image area by a fixed step size with the first image block as the starting point of the segmentation.
  • the server can perform at least one division by the image region of the desktop image to be sent to search for a possible translation length of the desktop image to be transmitted.
  • the possible translation length is the length of the first image block in the second direction.
  • the second stop condition it indicates that the server has searched for a possible translation length, and the target sub-image block set acquired at this time is removed.
  • the first image block and other image blocks other than the last image block are more likely to overlap the image block obtained by dividing the already transmitted desktop image, and therefore, the target image block includes a plurality of image blocks that hit the image block. The proportion is higher.
  • the second stop condition is a condition that the proportion of the hit image block in the sub-image block set obtained by dividing the image region by the server based on a certain length value in the set of length values is greater than or equal to the target sub-threshold.
  • the set of length values may include three length values R1, R2, and R3, wherein the proportion of hit image blocks in the set of sub-image blocks obtained by dividing the image region by using the length value R2 by the server is greater than or equal to the target sub-threshold, which is satisfied.
  • the second stop condition when the order of R2 in the set of length values is 1, the server only needs to divide the image area once to satisfy the second stop condition, and when the order of R2 in the set of length values is 3, the service The end needs to divide the image area three times to satisfy the second stop condition.
  • the second stop condition is a condition that the proportion of the hit image block in the sub-image block set obtained by dividing the image region by the server based on a certain length value in the set of length values is greater than or equal to the target sub-threshold.
  • the multiple length values in the length value set may be determined according to the historical hit rate.
  • the historical hit rate has a higher priority value, where a certain length value hits.
  • the ratio is the specific gravity of the hit image block of the sub-image block set obtained by dividing the image area by the length value.
  • the priority order of the multiple block partitioning schemes in the block partitioning scheme set corresponds to the priority order in the length value set, that is, the priority order of a certain partitioning scheme in the block partitioning scheme set and the partitioning division of the certain block partitioning scheme
  • the length values used in the case are consistent in the order of priority in the set of length values.
  • the server may divide the image region according to the priority of the block partitioning scheme in the block partitioning scheme set from high to low. In other words, the server may The image area is divided in descending order of priority values of length values in the set of length values.
  • the length values in the set of length values may be sequentially arranged according to the hit rate of the history, and the order of the length values reflects the priority of the length value; wherein the hit ratio of a certain length value is the sub-divided image area according to the length value.
  • the weight of the image block hit in the image block set may be sequentially arranged according to the hit rate of the history, and the order of the length values reflects the priority of the length value; wherein the hit ratio of a certain length value is the sub-divided image area according to the length value.
  • Table 1 is an ordering table of an exemplary length value set provided by the embodiment of the present application.
  • the number of times the length value 21 is the target length value is 4220 times, that is, The number of sub-image block sets obtained by the server using the length value 21 to divide the image area of the historical desktop image into the target sub-image block set is 4220 times, the hit rate is 0.128001, and the hit rate is the highest. Therefore, the length value 21 is in the length value.
  • the sort in the collection is 1.
  • the target sub-condition is a sub-image block set obtained by dividing the image region by the server based on a certain length value in the set of length values
  • the weight of the hit image block is greater than or equal to the target sub-threshold, the number of times the server can divide the image area can be reduced, and the calculation amount of the server is reduced.
  • the server may determine the length value used to divide the target sub-image block set, and then serve The terminal may add 1 to the value of the length corresponding to the length value in the length value set sorting table, and update the hit ratio of the length value accordingly, thereby maintaining the sorting table of the length value set.
  • the target length values of the adjacent image regions are more likely to be the same. Therefore, in order to further reduce the number of times the server side divides the image region, the calculation amount of the server is reduced, and the image to be divided is required.
  • the server may determine a target length value of the previous image area of the image area (hereinafter referred to as a second length value), wherein the previous image area of the certain image area is An image area of the divided image block adjacent to the certain image area along the first direction in the desktop image, and then the server may first divide the image area by using the second length value.
  • the server may sequentially divide the image area by using multiple block dividing schemes in the block partitioning scheme set until the target sub-image block set is obtained.
  • the server may block according to the block partitioning scheme set. The priority of the segmentation scheme divides the image region in descending order until a target sub-image block set is obtained.
  • the server may stop continuing to divide the image area, and determine the candidate sub-image block set obtained by dividing the image area by using the second length value as the target sub-image block set, and the second length value
  • the corresponding block partitioning scheme is determined as the target block partitioning scheme.
  • the server may sequentially divide the image area by using multiple block division schemes in the block partitioning scheme set until the target sub-image block set is obtained, optionally, the service The end may divide the image area in descending order of the priority of the block partitioning scheme in the block partitioning scheme set until the target sub-image block set is obtained.
  • the server uses the target sub-image block set of each image area to form an image block set.
  • the technical process of dividing the desktop image by the server according to the static location division scheme to obtain an image block set may include step A3, step B3, step C3, and step D3.
  • the server determines the instruction origin of the desktop image.
  • Step A3 is the same as step A2, and details are not described herein again.
  • the server divides the desktop image into multiple image regions along the first direction according to the area division manner included in the static location division scheme.
  • the static location segmentation scheme includes: dividing the desktop image into multiple image regions by using the instruction origin of the desktop image as a segmentation starting point, wherein each image region is a rectangular region, and the The image areas are sequentially arranged in the first direction.
  • the first image region of the plurality of image regions includes two boundaries, a first boundary and a second boundary, respectively, both of which are parallel to the second direction (ie, perpendicular to the first direction), wherein A boundary passes through a command origin of the desktop image, and a coordinate value of the second boundary in a first direction of the screen coordinate system of the user end (hereinafter referred to as a coordinate value) belongs to a coordinate value range of the desktop image in a first direction of the screen coordinate system of the user end, Moreover, the coordinate value of the second boundary is an integer multiple of the first preset segment length L, and the distance between the first boundary and the second boundary is less than or equal to the first preset segment length L.
  • the length k3 of each of the plurality of image regions except the first image region and the last image region in the first direction is equal to the first preset segment length L, and the last of the plurality of image regions
  • the length k5 of the image area in the first direction satisfies the third formula, and the third formula is:
  • N is the total length of the desktop image in the first direction
  • k4 is the length of the first image area in the first direction
  • k4 is equal to the distance between the first and second borders of the first image area.
  • the first image area refers to an image area closest to the command origin of the desktop image in the first direction among the plurality of image areas obtained by the desktop image segmentation.
  • the coordinate value of the second boundary of the first image region is an integer multiple of the first preset segmentation length L, and other than the first image region and the last image region of the plurality of image regions
  • the length of the image area in the first direction is equal to the first preset segmentation length. Therefore, the coordinate values of the two boundaries in the other image region that are parallel to the second direction are in the first direction of the screen coordinate system of the user end.
  • the first preset split length is an integer multiple of L.
  • the length k5 of the last image area in the first direction is equal to the first preset division length L
  • the difference between the total length N of the desktop image in the first direction and the length k4 of the first image area in the first direction is equal to the total length N of the desktop image in the first direction and the first image region in the first direction.
  • the command origin F3 of the desktop image T3 has a coordinate value of 17 in the first direction (ie, the row direction x) of the screen coordinate system of the user side, and the first preset segment length L is equal to 2,
  • the length of the desktop image T3 in the first direction is 7.
  • the first boundary j1 of the first image region f1 among the plurality of image regions obtained by dividing the desktop image T3 is parallel to the second direction (that is, the column direction y), and passes through the command origin F3, the first image.
  • the second boundary j2 of the region f1 is parallel to the second direction, and the coordinate value of the second boundary j2 in the first direction of the screen coordinate system of the user end belongs to the coordinate value of the desktop image T3 in the first direction of the screen coordinate system of the user end.
  • the range, the coordinate value of the second boundary j2 in the first direction of the screen coordinate system of the user end is an integer multiple of the first preset segment length L, and the distance between the first boundary j1 and the second boundary j2 is less than or equal to the first A predetermined segment length L, therefore, the coordinate value of the second boundary j2 in the first direction of the screen coordinate system of the user side is 18, that is, the length of the first image region f1 in the first direction is 1.
  • the server can divide the desktop image T3 into four image regions f1 arranged in the first direction in sequence with the instruction origin F3 of the desktop image T3 as the starting point of the segmentation.
  • F2, f3 and f4 wherein the length of the first image region f1 in the first direction is equal to 1, the length of the two intermediate image regions f2 and f3 in the first direction is equal to 2, and the last image region f4 is at the first party
  • the length up is equal to 2.
  • the server When the desktop image changes significantly (for example, the desktop image changes significantly when the client initially establishes a connection with the virtual machine deployed in the server), the server usually sends the entire image to the client, where The size of the entire image is the same as the screen size of the user end, that is, the command origin of the entire image coincides with the upper left corner of the user screen.
  • the server may divide the entire image into a plurality of image regions by using a command origin (the upper left corner of the user screen) as a segmentation starting point according to a fixed step size (first preset length L). Therefore, the coordinate values of the two boundaries parallel to the second direction of the plurality of image regions obtained by the whole image segmentation in the first direction of the screen coordinate system of the user end are all integer multiples of the first preset segment length L.
  • the second boundary of the first image region obtained by the server segmenting the desktop image is in the first direction of the screen coordinate system of the user end, and the coordinate value is an integer multiple of the first preset segment length L.
  • the server can segment other areas of the desktop image in a fixed step size to obtain other image areas than the first image area and the last image area, because the fixed step size is first.
  • the segmentation length is preset. Therefore, the coordinate values of the two boundaries parallel to the second direction in the first image direction of the other image region in the first direction of the screen coordinate system of the user end are all integer multiples of the first preset segmentation length L.
  • the image area divided by the first image area and the last image area obtained by dividing the desktop image according to the static position division scheme coincides with the image area obtained by dividing the entire desktop image, and in the subsequent step, the other image is
  • the proportion of hit image blocks in the image block set obtained by dividing the region is correspondingly higher, so that the bandwidth between the server and the client can be reduced.
  • the server determines a target sub-image block set for each of the plurality of image regions obtained by dividing the desktop image.
  • the server uses the target sub-image block set of each image area to form an image block set.
  • the technical process of dividing the desktop image by the server according to the motion prediction segmentation scheme to obtain an image block set may include step A4, step B4, step C4, step D4, step E4, and step F4.
  • the server determines the instruction origin of the desktop image.
  • Step A4 is the same as step A2, and details are not described herein again.
  • the server determines a preset area in the desktop image.
  • the command origin of the preset area coincides with the command origin of the desktop image
  • the length of the preset area in the first direction is equal to an integer multiple of the first preset split length L, and the preset area is in the second direction.
  • the length is equal to an integer multiple of the second preset segment length L′.
  • the length of the preset region in the first direction may be equal to twice the first preset segment length L, and the preset region is in the second direction.
  • the length on the upper side may be equal to twice the second predetermined division length L'.
  • T4 is a desktop image
  • TJ1 is a preset area, wherein the preset origin of the preset area TJ1 and the desktop image T4 coincides with F4, and the preset area TJ1 is in the first direction (that is, the row direction).
  • the length on x) is equal to 2L, that is, equal to 2 times the first preset division length L
  • the length of the preset region TJ1 in the second direction is equal to 2L', that is, equal to The second preset is divided by twice the length L'.
  • the server may stop dividing the desktop image into the desktop image according to the motion prediction segmentation scheme.
  • the server determines the target instruction origin in the preset area.
  • the target command origin is an instruction origin of the target image block
  • the target image block is a hit image block
  • the length of the target image block in the first direction is equal to the first preset segment length L
  • the target image block is in the second direction.
  • the upper length is equal to the second predetermined division length L'.
  • the target command origin needs to satisfy the following two conditions.
  • Condition 1 The distance L1 of the target command origin and the command origin of the desktop image in the first direction satisfies: 0 ⁇ L1 ⁇ L, the target origin of the target and the command origin of the desktop image.
  • the distance L2 in the second direction satisfies: 0 ⁇ L2 ⁇ L', where L is the first preset segmentation length, L' is the second preset segmentation length;
  • Condition 2 the target command origin is at the user's screen coordinate system The coordinate value in the first direction is not equal to an integral multiple of the first preset segment length.
  • the first image region obtained by the motion prediction segmentation scheme is not the same as the first image region obtained by the static location segmentation scheme and the instruction origin segmentation scheme, thereby The problem that the plurality of image regions obtained by the motion prediction segmentation scheme are separated from the plurality of image regions obtained by dividing the image origin segmentation scheme or the static location segmentation scheme may be avoided.
  • the server divides the desktop image into a plurality of image regions in a first direction according to a region division manner included in the motion prediction segmentation scheme.
  • the motion prediction segmentation scheme includes: dividing the desktop image into a plurality of image regions by using a command origin of the desktop image as a segmentation starting point, wherein each image region is a rectangular region, and the The image areas are sequentially arranged in the first direction.
  • the length k7 of the first image region in the first direction in the plurality of image regions is equal to the distance L1 of the target command origin and the command origin of the desktop image in the first direction, except for the first image region and the end of the plurality of image regions
  • the length k6 of each image area outside the image area in the first direction is equal to the first preset division length L, and the length k8 of the last image area in the first direction satisfies the fourth formula, the fourth formula is :
  • N is the total length of the desktop image in the first direction, Indicates rounding up.
  • the end The length k8 of the image area in the first direction is equal to the first preset division length L, and the difference between the total length N of the desktop image in the first direction and the length k7 of the first image area in the first direction is not
  • the first preset segment length L is an integer multiple
  • the length k8 of the last image region in the first direction is equal to the total length N of the desktop image in the first direction and the length k7 of the first image region in the first direction.
  • the remainder of the difference is divided by the first predetermined segment length L.
  • the server can divide the desktop image T5 into four image areas h1 arranged in the first direction in sequence with the instruction origin F5 of the desktop image T5 as the starting point of the segmentation.
  • the motion prediction segmentation scheme may search for a possible position of the command origin of the already transmitted desktop image in the first direction, and then The server may segment the desktop image according to the fixed step size (that is, the first preset segmentation length) by using the possible location as the segmentation starting point, so that the multiple image regions obtained by the desktop image segmentation to be sent are already.
  • the fixed step size that is, the first preset segmentation length
  • the proportion of the hit image block in the image block set obtained by dividing the plurality of image regions of the desktop image to be transmitted is correspondingly Higher, this will reduce the bandwidth between the server and the client.
  • the target image block is a hit image block
  • the command origin of the target image block that is, the target command origin
  • the target image block is It is likely that the desktop image that has been sent is split to get the first image block in the first image area, that is, the target command origin is likely to coincide with the command origin of the already transmitted desktop image. Therefore, in the above steps, the server The essence of the search target command origin is to search for the possible position of the command origin of the already transmitted desktop image in the first direction.
  • the server determines a target sub-image block set for each of the plurality of image regions obtained by dividing the desktop image.
  • the server uses the target sub-image block set of each image area to form an image block set.
  • Step 203 The server sends the data information of each image block in the target image block set and the location information of each image block to the user end.
  • the data information of the hit image block in the target image block set includes the flag value of the hit image block
  • the data information of the non-hit image block includes the image data of the non-hit image block
  • the image data of the non-hit image block may be a non-hit image.
  • a pixel value of the block, wherein the data information of the non-hit image block may be the encoded pixel value of the non-hit image block.
  • the position information of the image block records the position of the image block in the desktop image.
  • the image sending method divides the desktop image according to the image segmentation scheme included in the image segmentation scheme set by the server, and obtains a target image block set that satisfies the target condition, and then the target image is obtained by the server.
  • the data information of each image block in the block set and the position information of each image block are sent to the user end, wherein the target condition includes: the proportion of the hit image block in the target image block set is greater than or equal to a target threshold, or the target The proportion of the hit image block in the image block set is larger than the weight of the hit image block in the other image block set.
  • the data information of the image block is the flag value of the hit image block
  • the data information of the non-hit image block is the image data of the non-hit image block, wherein the image data may be the pixel value of the non-hit image block, and the data of the flag value
  • the amount is generally smaller than the amount of data of the image data, and therefore, compared to the non-hit image
  • the bandwidth required for the server to send the data information of the hit image block to the client is small. Therefore, the server has a higher proportion of the hit image block in the target image block set obtained by the server to partition the desktop image, thereby saving the server and the user. The bandwidth between the ends.
  • FIG. 3 is a block diagram of an image transmitting apparatus 300 provided by an embodiment of the present application.
  • the image transmitting apparatus 300 may include a dividing module 301 and a transmitting module 302.
  • the dividing module 301 is configured to divide the desktop image according to the image segmentation scheme included in the image segmentation scheme set to obtain a target image block set, where the target image block set includes a plurality of image blocks, each of the plurality of image blocks.
  • the block is a hit image block or a non-hit image block.
  • the target image block set satisfies a target condition, the target condition includes: a proportion of the hit image block in the target image block set is greater than or equal to a target threshold, or the target image
  • the weight of the hit image block in the block set is greater than the weight of the hit image block in the other image block set, which is obtained by dividing the desktop image according to other image segmentation schemes included in the image segmentation scheme set.
  • the sending module 302 is configured to send data information of each image block in the target image block set and location information of each image block to the user end, where the data information of the hit image block includes the hit image block.
  • the flag value, the data information of the non-hit image block includes image data of the non-hit image block, and the position information of each image block records the position of the image block in the desktop image.
  • the dividing module 301 is configured to separately divide the desktop image by using multiple image segmentation schemes in the image segmentation scheme set, until the number of hit image blocks in the divided image block set is divided.
  • the proportion of the number of all the image blocks in the divided image block set is greater than or equal to the target threshold; the divided image block set is taken as the target image block set.
  • the dividing module 301 is configured to: separately divide the desktop image according to each image segmentation scheme in the image segmentation scheme set, to obtain an image block set corresponding to each image segmentation scheme; Each of the image block sets, calculating a proportion of the number of hit image blocks of the image block set to the number of all image blocks in the image block set; from the plurality of image segmentation schemes corresponding to the image segmentation scheme set The image block set having the highest specific gravity is selected as the target image block set in the image block set.
  • the multiple image segmentation schemes in the image segmentation scheme set include different region division manners; the partitioning module 301 is configured to: follow the image partitioning manner according to the image partitioning scheme The first direction is divided into a plurality of image regions; each of the plurality of image regions is divided into at least one image block.
  • the dividing module 301 is configured to: determine an instruction origin of the desktop image, where an instruction origin of the desktop image is a vertex of the outer rectangle of the desktop image, the first direction and the outer rectangle Parallel to one side;
  • the desktop image is divided into a plurality of image regions sequentially arranged along the first direction, and each of the plurality of image regions except the last image region is
  • the length k1 in the first direction is equal to the first preset segmentation length
  • N is the total length of the desktop image in the first direction, Indicates rounding up.
  • the dividing module 301 is configured to: divide the desktop image into a plurality of image regions sequentially arranged along the first direction, using the instruction origin of the desktop image as a starting point of the segmentation, where
  • the instruction origin of the desktop image is a vertex of the outer rectangle of the desktop image, the first direction being parallel to one side of the outer envelope; each of the plurality of image regions except the first image region and the last image region
  • the length k3 of the image area in the first direction is equal to the first preset segment length L, the first boundary of the first image region passes the command origin of the desktop image, and the second boundary of the first image region is on the screen
  • the coordinate value in the first direction in the coordinate system belongs to the coordinate range of the desktop image in the first direction in the screen coordinate system, and is an integer multiple of the first preset segment length, the first boundary and the first The two boundaries are both perpendicular to the first direction, and the distance between the first boundary and the second boundary is less than or equal to the first predetermined segment length, and the length
  • N is the total length of the desktop image in the first direction, Indicates rounding up, k4 being equal to the distance between the first boundary and the second boundary.
  • the dividing module 301 is configured to: determine, in a preset area of the desktop image, a target image block, where the target image block is a hit image block, and the target image block is in the first direction.
  • the length is equal to the first preset split length L
  • the length in the second direction is equal to the second preset split length L'
  • the first direction is perpendicular to the second direction
  • the command origin of the preset region is opposite to the desktop
  • the instruction origin of the image is the same;
  • the instruction image origin of the desktop image is used as a segmentation starting point, and the desktop image is divided into a plurality of image regions sequentially arranged along the first direction, wherein the first image region of the plurality of image regions And a length k6 in the first direction of each image area other than the last image area is equal to the first preset division length L, a length k7 of the first image area in the first direction, and the last
  • the length k8 of the image area in the first direction satisfies:
  • N is the total length of the desktop image in the first direction, Indicates rounding up, k7 being equal to the distance between the command origin of the target image block and the command origin of the desktop image in the first direction.
  • the distance L1 between the command origin of the target image block and the command origin of the desktop image in the first direction satisfies: 0 ⁇ L1 ⁇ L
  • the command origin of the target image block and the desktop 0 ⁇ L2 ⁇ L'.
  • the dividing module 301 is configured to: respectively divide the image region according to a block segmentation scheme included in the block partitioning scheme set, to obtain a target sub-image block set, where the target sub-image block set includes multiple An image block, the target sub-image block set satisfies a target sub-condition, the target sub-condition comprising: a specific gravity of a hit image block in the target sub-image block set is greater than or equal to a target sub-threshold, or a hit in the target sub-image block set The proportion of the image block is larger than the proportion of the hit image block in the other sub-image block set obtained by dividing the image area according to other block division schemes included in the block division scheme set.
  • the dividing module 301 is configured to: determine, from the set of length values, a first length value R1 corresponding to the block partitioning scheme, where the length value set includes multiple length values, the length Each length value included in the set of values is less than or equal to a second preset split length L', and different length values in the set of length values are used by different block partitioning schemes in the set of partition partitioning schemes; a plurality of image blocks arranged in sequence in the second direction, wherein a length p1 of each of the plurality of image blocks except the first image block and the last image block in the second direction is equal to the second preset Dividing the length L', the length p2 of the first image block in the second direction and the length p3 of the last image block in the second direction satisfy:
  • M is the total length of the desktop image in the second direction, Indicates rounding up, p2 being equal to the first length value R1, the second direction being perpendicular to the first direction.
  • a plurality of length values in the set of length values determine a priority order according to a history hit ratio, the hit ratio is a hit of the sub-image block set obtained by dividing the image region according to the length value.
  • the weight of the image block; the priority order of the plurality of block partitioning schemes in the set of partitioning schemes corresponds to the priority order in the set of length values.
  • the dividing module 301 is configured to: acquire a second length value, where the second length value is a length value used by the target block partitioning scheme for dividing a previous image region of the image region.
  • the previous image area is an image area of the divided image block adjacent to the image area in the first direction in the desktop image; the image area is divided by using a block division scheme corresponding to the second length value, a candidate sub-image block set; when the specific gravity of the hit image block in the candidate sub-image block set is greater than or equal to the target sub-threshold, the candidate sub-image block set is used as a target sub-image block set;
  • the proportion of the hit image block in the sub-image block set is smaller than the target sub-threshold, the image region is divided by using a plurality of block partitioning schemes in the block partitioning scheme set to obtain the target sub-image block set.
  • the image transmitting apparatus divides the desktop image according to the image segmentation scheme included in the image segmentation scheme set by the server, and obtains a target image block set that satisfies the target condition, and then the target image is obtained by the server.
  • the data information of each image block in the block set and the position information of each image block are sent to the user end, wherein the target condition includes: the proportion of the hit image block in the target image block set is greater than or equal to a target threshold, or the target The proportion of the hit image block in the image block set is larger than the weight of the hit image block in the other image block set.
  • the data information of the image block is the flag value of the hit image block
  • the data information of the non-hit image block is the image data of the non-hit image block, wherein the image data may be the pixel value of the non-hit image block, and the data of the flag value
  • the amount is generally smaller than the amount of data of the image data, and therefore, compared to the non-hit image
  • the bandwidth required for the server to send the data information of the hit image block to the client is small. Therefore, the server has a higher proportion of the hit image block in the target image block set obtained by the server to partition the desktop image, thereby saving the server and the user. The bandwidth between the ends.
  • An embodiment of the present application provides an image sending apparatus 400.
  • the image sending apparatus 400 may be a server in a VDI architecture, and a virtual machine may be deployed in the image sending apparatus 400.
  • the image transmitting apparatus 400 may be a server, or may be another computing device that can deploy a virtual machine.
  • the image transmitting apparatus 400 can be used to execute the image transmitting method provided in the above method embodiment.
  • the image transmitting apparatus 400 includes a processor, such as a central processing unit (CPU) 401, wherein the processor included in the image transmitting apparatus 400 can be used to implement the functions of the dividing module 301 in the above embodiment.
  • the image transmitting apparatus 400 includes a memory such as a random access memory (RAM) 402 and a system memory 404 of a read-only memory (ROM) 403.
  • the image transmitting apparatus 400 includes a system bus 405 that connects the system memory 404 and the central processing unit 401.
  • the image transmitting apparatus 400 also includes a basic input/output (I/O) system 406 that facilitates transfer of information between various devices within the computer, and for storing the operating system 413, applications 414, and other program modules.
  • a mass storage device 407 of 415 is a processor, such as a central processing unit (CPU) 401, wherein the processor included in the image transmitting apparatus 400 can be used to implement the functions of the dividing module 301 in the above embodiment.
  • the basic input/output system 406 includes a display 408 for displaying information and an input device 409 such as a mouse, keyboard for inputting information by the user.
  • the display 408 and input device 409 are both connected to the central processing unit 401 via an input and output controller 410 that is coupled to the system bus 405.
  • the basic input/output system 406 can also include an input and output controller 410 for receiving and processing input from a plurality of other devices, such as a keyboard, mouse, or electronic stylus.
  • input and output controller 410 also provides output to a display screen, printer, or other type of output device.
  • the mass storage device 407 is connected to the central processing unit 401 by a mass storage controller (not shown) connected to the system bus 405.
  • the mass storage device 407 and its associated computer readable medium provide non-volatile storage for the image transmitting device 400. That is, the mass storage device 407 can include a computer readable medium (not shown) such as a hard disk or a CD-ROM drive.
  • the computer readable medium can include computer storage media and communication media.
  • Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media include RAM, ROM, EPROM, EEPROM, flash memory or other solid state storage technologies, CD-ROM, DVD or other optical storage, tape cartridges, magnetic tape, magnetic disk storage or other magnetic storage devices.
  • RAM random access memory
  • ROM read only memory
  • EPROM Erasable programmable read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • the image transmitting apparatus 400 can also be operated by a remote computer connected to a network through a network such as the Internet. That is, the image transmitting apparatus 400 can be connected to the network 412 through the network interface unit 411 connected to the system bus 405, or can be connected to other types of networks or remote computer systems using the network interface unit 411 (not shown).
  • the network interface unit 411 included in the image transmitting apparatus 400 can be used to implement the functions of the transmitting module 302 in the above embodiment.
  • the memory further includes one or more programs, the one or more programs being stored in the memory, and the central processing unit 401 implementing the image transmitting method provided by the foregoing method embodiments by executing the one or more programs.
  • the embodiment of the present application further provides a non-transitory computer readable storage medium including instructions, such as a memory including instructions, which are executable by a processor to perform the image transmitting method shown in the method embodiment of the present application.
  • a non-transitory computer readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device.
  • the embodiment of the present application further provides a computer program product comprising instructions, when the computer program product is run on a computer, causing the computer to execute the image sending method shown in the embodiment of the method of the present application.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Graphics (AREA)
  • Image Analysis (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种图像发送方法、装置及存储介质,涉及虚拟桌面领域,该方法包括:按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,目标图像块集合包括多个图像块,另外,目标图像块集合满足目标条件,目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重;将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端。本申请能够节省服务端与用户端之间的带宽。

Description

图像发送方法、装置及存储介质 技术领域
本申请涉及虚拟桌面领域,特别涉及一种图像发送方法、装置及存储介质。
背景技术
虚拟桌面设施(英文:Virtual Desktop Infrastructure;简称:VDI)可以实现桌面的远程访问,典型的虚拟桌面设施的架构可以包括服务端和用户端,其中,服务端上可以部署有虚拟机,用户端可以访问服务端中部署的虚拟机,并向该虚拟机发送操作指令以使用虚拟机中的应用程序,虚拟机中的应用程序可以基于用户端发送的操作指令生成桌面图像,并通过虚拟机中的显示协议程序将该桌面图像发送至用户端,从而实现桌面的远程访问。
为了节约通信资源,虚拟机在向用户端发送桌面图像时,往往需要使用图像缓存技术,在图像缓存技术中,虚拟机可以将待发送的桌面图像进行分割,以得到多个图像块,而后,对于每一图像块,虚拟机可以根据该图像块中所有像素的像素值以及预设的算法(例如哈希算法)计算得到该图像块对应的标志值,虚拟机可以查询每一图像块对应的标志值是否存储于服务端的缓存中,当某一图像块对应的标志值存储于服务端的缓存中,则说明虚拟机向用户端发送过该图像块,且,用户端中存储有该图像块的像素值,在这种情况下,虚拟机可以将该图像块对应的标志值发送给用户端,以由用户端根据该标志值获取该图像块的像素值,而当某一图像块对应的标志值没有存储于服务端的缓存中时,虚拟机需要将该图像块的像素值发送至用户端,实际实现时,虚拟机可以对该图像块的像素值进行编码,并将编码后的像素值发送至用户端。由此可见,待发送的桌面图像分割得到的多个图像块中命中图像块的比重越高,虚拟机向用户端发送桌面图像所需的通信资源越少,其中,命中图像块为对应的标志值存储于服务端中的缓存的图像块。
相关技术中,虚拟机可以将待发送的桌面图像按照固定的分割方案进行分割,例如,虚拟机可以将待发送的桌面图像以左上角的顶点为分割起点,分割成多个64*64的图像块。
按照固定方式进行分割时,容易出现待发送的桌面图像分割得到的多个图像块中命中图像块的比重较小的情况,例如,在待发送的桌面图像相较于已经发送的桌面图像产生了平移时,对待发送的桌面图像按照固定分割方案分割得到的多个图像块很可能与已经发送的桌面图像的多个图像块都不相同,在这种情况下,待发送的桌面图像分割得到的多个图像块中命中图像块的比重较小。因此,会造成通信资源的浪费。
发明内容
本申请提供了一种图像发送方法、装置及存储介质,能够避免服务端与用户端之间的通信资源的浪费。本申请实施例提供的技术方案如下:
第一方面,提供了一种图像发送方法,所述方法包括:
按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合, 所述目标图像块集合包括多个图像块,所述多个图像块中的每个图像块为命中图像块或非命中图像块,另外,所述目标图像块集合满足目标条件,所述目标条件包括:所述目标图像块集合中的所述命中图像块的比重大于或等于目标阈值,或者所述目标图像块集合中的所述命中图像块的比重大于其他图像块集合中的命中图像块的比重,所述其他图像块集合是按照所述图像分割方案集合所包括的其他图像分割方案划分所述桌面图像而获得的;将所述目标图像块集合中的每个图像块的数据信息和所述每个图像块的位置信息发送至用户端,其中,所述命中图像块的数据信息包括所述命中图像块的标志值,所述非命中图像块的数据信息包括所述非命中图像块的图像数据,所述每个图像块的位置信息记录所述图像块在所述桌面图像中的位置。
通过服务端按照图像分割方案集合包括的图像分割方案对桌面图像进行划分,得到满足目标条件的目标图像块集合,而后服务端将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端,其中,该目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重,因此,可以保证服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高,由于命中图像块的数据信息为命中图像块的标志值,非命中图像块的数据信息为非命中图像块的图像数据,其中,该图像数据可以为非命中图像块的像素值,且,标志值的数据量一般小于图像数据的数据量,因此,相较于非命中图像块而言,服务端向用户端发送命中图像块的数据信息所需要的带宽较小,故而,服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高可以节省服务端与用户端之间的带宽。
可选的,上文所述的按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,包括:依次使用该图像分割方案集合中的多个图像分割方案分别划分该桌面图像,直到划分得到的图像块集合中命中图像块的数量占该划分得到的图像块集合中的所有图像块的数量的比重大于或等于该目标阈值;而后,将该划分得到的图像块集合作为目标图像块集合。
可选的,上文所述的按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,包括:按照所述图像分割方案集合中的每个图像分割方案分别划分所述桌面图像,得到所述每个图像分割方案对应的图像块集合;针对所述每个图像块集合,计算所述图像块集合的命中图像块的数量占所述图像块集合中的所有图像块的数量的比重;从与所述图像分割方案集合中的所有图像分割方案对应的多个图像块集合中选择具有最高比重的图像块集合作为所述目标图像块集合。
由于服务端可以从对桌面图像进行划分得到的至少一个图像块集合中确定一个命中图像块比重大于或等于目标阈值的目标图像块集合或者确定一个命中图像块比重最高的目标图像块集合,因此,可以保证服务端最终确定的目标图像块集合中命中图像块的比重较高,这样,在后续步骤中基于该目标图像块集合向用户端发送桌面图像能够降低服务端与用户端之间的带宽。
可选的,上文所述的图像分割方案集合中的多种图像分割方案包括不同的区域划分方式;那么,按照该图像分割方案集合的每个图像分割方案划分该桌面图像包括:按照该图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域;而后,将该多 个图像区域中的每个图像区域划分为至少一个图像块。
可选的,上文所述的按照该图像分割方案集合中的一种图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域可以包括:确定该桌面图像的指令原点,其中,该桌面图像的指令原点为该桌面图像的外包矩形的一个顶点,第一方向与该外包矩形的一边平行;而后,以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该多个图像区域中除末个图像区域之外的每个图像区域在该第一方向上的长度k1均等于第一预设分割长度,该末个图像区域在该第一方向上的长度k2满足:k2=N-y1*k1,
Figure PCTCN2018077337-appb-000001
N为该桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000002
表示向上取整。
由于服务端可以以桌面图像的指令原点为分割起点,按照预设步长(也即是第一预设分割长度L)对桌面图像进行分割,因此,在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点没有发生变化的情况下,按照指令原点分割方案对待发送的桌面图像进行分割得到的多个图像区域与按照指令原点分割方案对已经发送的桌面图像进行分割得到的多个图像区域重合的概率较高,那么在后续步骤中,对待发送的桌面图像的多个图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
可选的,上文所述的按照该图像分割方案集合中的一种图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域,包括:以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域;其中,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k3均等于第一预设分割长度L,该首个图像区域的第一边界经过该桌面图像的指令原点,该首个图像区域的第二边界在该屏幕坐标系中的第一方向上的坐标值属于该桌面图像在该屏幕坐标系中的第一方向上的坐标范围,且为该第一预设分割长度的整数倍,该第一边界和该第二边界均与该第一方向垂直,该第一边界和该第二边界的距离小于或等于该第一预设分割长度,该首个图像区域在该第一方向上的长度k4和该末个图像区域在该第一方向上的长度k5满足:
y2*k3+k4+k5=N;
其中,
Figure PCTCN2018077337-appb-000003
N为该桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000004
表示向上取整,k4等于该第一边界和该第二边界之间的距离。
在实际应用中,当桌面图像发生了较为显著的变化(例如,用户端与服务端中部署的虚拟机初始建立连接时桌面图像即会发生显著的变化)时,服务端通常会向用户端发送整幅图像,其中,该整幅图像的尺寸与用户端的屏幕尺寸相同,也即是,该整幅图像的指令原点与用户端屏幕的左上角重合。在发送该整幅图像时,服务端可以将该整幅图像以指令原点(用户端屏幕的左上角)为分割起点按照固定步长(第一预设长度L)进行分割得到多个图像区域,因此,该整幅图像分割得到的多个图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
而在本申请实施例中,服务端对桌面图像进行分割得到的首个图像区域的第二边界在用户端的屏幕坐标系的第一方向上的坐标值为第一预设分割长度L的整数倍,在分割得到首个图像区域后,服务端可以以固定步长对桌面图像的其他区域进行分割得到除首个图像区域和末个图像区域以外的其他图像区域,由于该固定步长为第一预设分割长度,因此, 该其他图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
这样,对桌面图像进行分割得到的除首个图像区域和末个图像区域以外的其他图像区域与整幅桌面图像分割得到的图像区域重合,在后续步骤中,对该其他图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
可选的,上文所述的按照该图像分割方案集合中的一种图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域,包括:在该桌面图像的预设区域中确定目标图像块,该目标图像块为命中图像块,该目标图像块在该第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,该第一方向与该第二方向垂直,该预设区域的指令原点与该桌面图像的指令原点相同;而后,以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k6均等于该第一预设分割长度L,该首个图像区域在该第一方向上的长度k7和该末个图像区域在该第一方向上的长度k8满足:
y3*k6+k7+k8=N;
其中,
Figure PCTCN2018077337-appb-000005
N为该桌面图像在该第一方向上的总长度,
Figure PCTCN2018077337-appb-000006
表示向上取整,k7等于该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离。
可选的,该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离L1满足:0<L1<L,该目标图像块的指令原点与该桌面图像的指令原点在该第二方向上的距离L2满足:0≤L2<L′。
在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点发生变化的情况下,本申请实施例可以搜索已经发送的桌面图像的指令原点在第一方向上的可能位置,而后,服务端可以以该可能的位置为分割起点按照固定的步长(也即是第一预设分割长度)对桌面图像进行分割,这样,待发送的桌面图像分割得到的多个图像区域与已经发送的桌面图像分割得到的多个图像区域重合的可能性较高,那么在后续步骤中,对待发送的桌面图像的多个图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
根据上述说明可知,由于目标图像块为命中图像块,而且,目标图像块的指令原点与待发送的桌面图像的指令原点的距离较小,因此,该目标图像块很可能是已经发送的桌面图像分割得到首个图像区域中的首个图像块,也就是说,目标图像块的指令原点很可能与已经发送的桌面图像的指令原点重合,因此,服务端搜索目标图像块的指令原点的实质就是搜索已经发送的桌面图像的指令原点在第一方向上的可能位置。
可选的,上文所述的将该多个图像区域中的每个图像区域划分为至少一个图像块包括:依次按照块分割方案集合包括的块分割方案分别划分该图像区域,得到目标子图像块集合,其中,该目标子图像块集合包括多个图像块,且,该目标子图像块集合满足目标子条件,该目标子条件包括:该目标子图像块集合中的命中图像块的比重大于或等于目标子阈值,或者该目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,该其他子图像块集合是按照该块分割方案集合所包括的其他块分割方案划分该图像 区域而获得的。
可选的,所述按照块分割方案集合划分所述图像区域,从所述块分割方案集合中选择满足目标子条件的所述块分割方案,并确定按照所述目标块分割方案划分所述图像区域所得的目标子图像块集合,包括:依次使用所述块分割方案集合中的多个块分割方案划分所述图像区域,直到划分得到的子图像块集合中的命中图像块的数量占所述划分得到的子图像块集合中的所有图像块的数量的比重大于或等于目标子阈值;将所述划分得到的子图像块集合作为目标子图像块集合,并将所述划分得到的子图像块集合对应的块分割方案作为所述目标块分割方案。
可选的,所述按照所述块分割方案集合划分所述图像区域,从所述块分割方案集合中选择满足目标子条件的所述块分割方案,并确定按照所述目标块分割方案划分所述图像区域所得的目标子图像块集合,包括:遍历所述块分割方案集合中的多个块分割方案划分所述图像区域,得到所述多个块分割方案对应的多个子图像块集合;针对所述多个子图像块集合中每个子图像块集合,对应确定所述子图像块集合中的命中图像块的数量占所述子图像块集合中的所有图像块的数量的比重;确定所述多个子图像块集合对应的比重中的最高比重;从所述多个子图像块集合中选择具有最高比重的子图像块集合作为所述目标子图像块集合,并确定所述具有最高比重的子图像块集合对应的子图像分割方案为所述目标子图像分割方案。
可选的,上文所述的依次按照块分割方案集合中的块分割方案分别划分该图像区域包括:从长度值集合中确定与该块分割方案对应的第一长度值R1,其中,该长度值集合包括多个长度值,该长度值集合包括的每个长度值小于或等于第二预设分割长度L′,该长度值集合中的不同长度值供该块分割方案集合中的不同块分割方案使用;将该图像区域分割成沿第二方向依次排布的多个图像块,该多个图像块中除首个图像块和末个图像块之外的每个图像块在该第二方向上的长度p1等于该第二预设分割长度L′,该首个图像块在该第二方向上的长度p2和该末个图像块在该第二方向上的长度p3满足:
z*p1+p2+p3=M;
其中,
Figure PCTCN2018077337-appb-000007
M为该桌面图像在该第二方向上的总长度,
Figure PCTCN2018077337-appb-000008
表示向上取整,p2等于该第一长度值R1,该第二方向与该第一方向垂直。
可选的,在所述长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,所述命中率为按照所述长度值划分图像区域所得的子图像块集合的命中图像块的比重;在所述块分割方案集合中多个块分割方案的优先级顺序对应所述长度值集合中的优先级顺序。
可选的,上文所述的按照该块分割方案集合划分该图像区域包括:获取第二长度值,该第二长度值为用于划分该图像区域的前一个图像区域的目标块分割方案所使用的长度值,该前一个图像区域为在该桌面图像中沿该第一方向与该图像区域相邻的已划分图像块的一个图像区域;而后,使用该第二长度值对应的块分割方案划分该图像区域,得到备选子图像块集合;在该备选子图像块集合中的命中图像块的比重大于或等于该目标子阈值时,将该备选子图像块集合作为目标子图像块集合;在该备选子图像块集合中的命中图像块的比重小于该目标子阈值时,依次使用该块分割方案集合中的多个块分割方案划分该图像区域,得到该目标子图像块集合。
由上述说明可知,在对图像区域进行划分时,服务端可以使用至少一个不同的长度值 作为首个图像块在第二方向上的长度,以分割得到该首个图像块,而后,服务端可以以固定步长(也即是第二预设分割长度)对图像区域的其他部分进行分割,以得到末个图像块和除首个图像块以及末个图像块以外的其他图像块,也就是说,服务端可以以首个图像块为分割起点对图像区域进行固定步长的分割。这样,当待发送的桌面图像相较于已经发送的桌面图像产生了平移时,服务端可以通过对待发送的桌面图像的图像区域进行至少一次划分以搜索待发送的桌面图像的可能的平移长度,该可能的平移长度即为首个图像块在第二方向上的长度,当服务端可以获取一个可能的平移长度对应的子图像块集合,并将其作为目标子图像块集合,该目标子图像块集合中的除首个图像块以及末个图像块以外的其他图像块与已经发送的桌面图像分割得到的图像块重合的可能性较高,因此,该目标子图像块集合包括的多个图像块中命中图像块的比重较高,从而降低服务端与用户端之间的带宽。
此外,在本申请实施例中,当服务端基于长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值时,服务端可以停止对图像区域进行划分,因此,该某一长度值在长度值集合中的排序越靠前,服务端对图像区域进行划分的次数越少,服务端的计算量也越小。因此,为了减少服务端的计算量,长度值集合中的长度值可以按照命中率由高至低的顺序进行排序。
在一种可能的情况中,相邻图像区域的目标图像分割方案所对应的长度值(以下简称为目标长度值)相同的可能性较大,因此,为了进一步减少服务端对图像区域进行划分的次数,减少服务端的计算量,当需要划分的图像区域不为首个进行划分图像区域时,服务端可以确定该图像区域的前一个图像区域的目标长度值,而后,服务端可以先使用目标长度值对该图像区域进行划分,当使用目标长度值对该图像区域进行划分得到的子图像块集合中命中图像块的比重小于目标子阈值时,服务端可以按照长度值集合中多个长度值的排序,依次使用长度值集合中的长度值对图像区域进行划分,其中,长度值集合中的长度值可以按照命中率由高至低的顺序进行排序。
第二方面,提供了一种图像发送装置,该装置包括至少一个模块,该至少一个模块用于实现上述第一方面或第一方面的任一可选方式所提供的图像发送方法。
第三方面,提供了一种图像发送装置,所述装置包括:处理器和存储器;
所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现上述第一方面或第一方面的任一可选方式所提供的图像发送方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述第一方面或第一方面的任一可选方式所提供的图像发送方法。
第五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面中任意一种可能的实现方式中的图像发送方法。
本申请提供的技术方案的有益效果是:
通过服务端按照图像分割方案集合包括的图像分割方案对桌面图像进行划分,得到满足目标条件的目标图像块集合,而后服务端将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端,其中,该目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其 他图像块集合中的命中图像块的比重,因此,可以保证服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高,由于命中图像块的数据信息为命中图像块的标志值,非命中图像块的数据信息为非命中图像块的图像数据,其中,该图像数据可以为非命中图像块的像素值,且,标志值的数据量一般小于图像数据的数据量,因此,相较于非命中图像块而言,服务端向用户端发送命中图像块的数据信息所需要的带宽较小,故而,服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高可以节省服务端与用户端之间的带宽。
附图说明
图1A是本申请实施例提供的一种桌面图像的示意图。
图1B是本申请实施例提供的一种对桌面图像进行分割的示意图。
图1C是本申请实施例提供的一种桌面图像的示意图。
图1D是本申请实施例提供的一种对桌面图像进行分割的示意图。
图1E是本申请实施例提供的一种桌面图像的示意图。
图1F是本申请实施例提供的一种对桌面图像进行分割的示意图。
图1G是本申请实施例提供的一种实施环境的示意图。
图2A是本申请实施例提供的一种图像发送方法的流程图。
图2B是本申请实施例提供的一种桌面图像的示意图。
图2C是本申请实施例提供的一种对桌面图像进行分割的示意图。
图2D是本申请实施例提供的一种对桌面图像进行分割的示意图。
图2E是本申请实施例提供的一种对图像区域进行分割的示意图。
图2F是本申请实施例提供的一种对图像区域进行分割的示意图。
图2G是本申请实施例提供的一种图像块包括多个图像子块的示意图。
图2H是本申请实施例提供的一种对图像区域进行分割的示意图。
图2I是本申请实施例提供的一种预设区域的示意图。
图2J是本申请实施例提供的一种对图像区域进行分割的示意图。
图3是本申请实施例提供的一种图像发送装置的框图。
图4是本申请实施例提供的一种图像发送装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
虚拟桌面设施(英文:Virtual Desktop Infrastructure;简称:VDI)可以实现桌面的远程访问,典型的VDI的架构可以包括服务端和用户端,其中,服务端上可以部署有虚拟机,虚拟机中可以安装有显示协议程序和至少一个应用程序,用户端可以访问服务端中部署的虚拟机,并向虚拟机发送操作指令以使用虚拟机中安装的应用程序,在接收到用户端发送的操作指令后,虚拟机中安装的应用程序可以基于该操作指令生成桌面图像,显示协议程序可以获取该桌面图像,并利用图像缓存技术将该桌面图像发送至用户端,从而实现桌面的远程访问。
例如,服务端部署的虚拟机中可以安装有某文字处理应用,在使用该文字处理应用的过程中,用户端可以将用户触发的操作指令发送至虚拟机,其中,该操作指令可以为对“虚拟桌面设施的简称是VDI,其可以实现桌面的远程访问”一段文字的粘贴指令。在接收到该操作指令后,虚拟机中安装的该文字处理应用可以基于该操作指令生成桌面图像,该桌面图像可以为如图1A所示的图像。而后,虚拟机中的显示协议程序可以将生成的桌面图像发送至用户端,用户端可以展示接收到的桌面图像,以使用户能够直观地看到自身触发的操作指令的操作结果,从而实现桌面的远程访问。
为了方便说明,下文中统一使用“服务端”作为接收操作指令、生成桌面图像以及使用图像缓存技术将桌面图像发送至用户端等技术过程的执行主体;读者应该理解,一种可能的具体实现是,由服务端中部署的虚拟机执行接收用户端发送的操作指令,由虚拟机中安装的应用程序执行生成桌面图像,由虚拟机中安装的桌面协议程序执行使用图像缓存技术将桌面图像发送至用户端。
为了降低带宽,服务端向用户端发送桌面图像时可以使用图像缓存技术。在图像缓存技术中,服务端可以将待发送的桌面图像分割成多个图像块,对于每个图像块,服务端可以根据该图像块中所有像素的像素值以及预设的算法(例如哈希算法)计算得到该图像块对应的标志值。在向用户端发送每个图像块之前,服务端可以基于该图像块的标志值查询服务端的缓存,当服务端的缓存中没有存储该图像块的标志值时,说明服务端是第一次向用户端发送该图像块,在这种情况下,服务端可以将该图像块的像素值和该图像块的标志值一起发送至用户端,并将该图像块的标志值存储于服务端的缓存中,在一种可能的实现方式中,服务端可以对该图像块的像素值进行编码,并将编码后的像素值发送至用户端。用户端接收到该图像块的像素值和图像块的标志值后,可以基于图像块的像素值展示该图像块,同时,用户端还可以将该图像块的像素值和图像块的标志值对应存储于用户端的缓存中。当服务端的缓存中存储有该图像块的标志值时,说明服务端之前向用户端发送过该图像块,在这种情况下,服务端可以仅向用户端发送该图像块的标志值,用户端接收到该图像块的标志值后,可以根据该标志值从用户端的缓存中查询得到该标志值对应的像素值,而后,用户端可以基于该标志值对应的像素值展示该图像块。由于在图像缓存技术中,对于已经向用户端发送过的图像块而言,服务端仅需要向用户端发送该图像块的标志值,因此,可以大大减少服务端向用户端发送数据的数据量,从而降低服务端与用户端之间的带宽。
例如,在图像缓存技术中,当服务端需要向用户端发送图1A所示的桌面图像时,如图1B所示,服务端可以将该桌面图像分割成10个图像块,而后,服务端可以分别计算该10个图像块的标志值,当该10个图像块的标志值均未存储于服务端的缓存中时,对于该10个图像块中的每一个图像块而言,服务端将该图像块的像素值和标志值一起发送至用户端,并将该图像块的标志值存储于服务端的缓存中,用户端在接收到该10个图像块的标志值和像素值后,可以分别基于该10个图像块的像素值展示该10个图像块,并将该10个图像块的标志值和像素值分别存储于用户端的缓存中。在这之后,用户端可以继续向服务端发送用户触发的操作指令,该操作指令可以为对“得到了广泛的应用”一段文字的粘贴指令,服务端在接收到用户端继续发送的操作指令后,可以基于该操作指令生成如图1C所示的桌面图像。在发送图1C所示的桌面图像时,如图1D所示,服务端也可以将该桌面图像分割 成10个图像块,并分别计算该10个图像块的标志值,如图1D所示,该10个图像块中的前6个图像块是服务端已经向用户端发送过的图像块,因此,该前6个图像块的标志值存储于服务端的缓存中,在这种情况下,服务端可以仅向用户端发送该前6个图像块的标志值。同时,由于服务端是第一次向用户端发送后4个图像块,因此,该后4个图像块的标志值没有存储于服务端的缓存中,在这种情况下,服务端需要将该后4个图像块的像素值和标志值一起发送至用户端,并将该后4个图像块的标志值存储于服务端的缓存中。
根据上文的说明可知,将桌面图像进行分割得到的多个图像块中命中图像块的比重越高,服务端向用户端发送桌面图像所需的带宽越小,其中,命中图像块是指其对应的标志值已存储于服务端的缓存中的图像块。因此,对于图像缓存技术而言,对桌面图像进行分割得到较高的命中图像块比重是降低服务端与用户端带宽的重要环节。
在相关技术中,服务端可以按照固定的分割方案对桌面图像进行分割,例如,服务端可以将桌面图像以左上角的顶点为分割起点,分割成多个64*64的图像块。上文中图1B和图1D中服务端即按照固定的分割方案对桌面图像进行分割。
然而,按照固定的分割方案对桌面图像进行分割,在很多情况下难以保证命中图像块的比重,因此,服务端与用户端通信所需的带宽较大。例如,在当前需要发送的桌面图像相较于已经发送的桌面图像产生了平移时,该当前需要发送的桌面图像按照固定分割方案分割得到的多个图像块很可能与已经发送的桌面图像分割得到的多个图像块都不相同,在这种情况下,服务端与用户端用于传输不相同的图像块占用了较大带宽。
如图1D所示,在服务端向用户端发送如图1C所示的桌面图像(以下称为第一桌面图像)时,服务端可以按照固定分割方案对第一桌面图像进行分割以得到10个图像块,而后,服务端可以将分割得到的该10个图像块发送至用户端。在服务端向用户端发送第一桌面图像之后,服务端还可以向用户端发送如图1E所示的桌面图像(以下称为第二桌面图像),其中,第二桌面图像相较于第一桌面图像产生了向上的平移,在发送第二桌面图像时,服务端可以按照图1F所示的固定分割方案(该固定分割方案与图1B所示的固定分割方案相同)对第二桌面图像进行分割以得到10个图像块,如图1D和1F所示,图1D中分割得到的10个图像块与图1F中分割得到的10个图像块均不相同,也即是,第二桌面图像分割得到的10个图像块中不存在命中图像块,此时,服务端需要将第二桌面图像分割得到的10个图像块的标志值和像素值全部发送至用户端,这导致服务端与用户端通信所需的带宽较大。
本申请实施例提供了一种图像发送方法,该图像发送方法能够提高桌面图像分割得到的多个图像块中命中图像块的比重,从而可以降低服务端与用户端之间的带宽。图1G为本申请实施例提供的图像发送方法所涉及到的实施环境的示意图,如图1G所述,该实施环境可以包括服务端101和用户端102,其中,服务端101中部署有虚拟机,用户端102中可以安装有VDI客户端。服务端101可以是服务器,或者可以是其它可以部署虚拟机的计算设备。用户端102可以为台式电脑、平板电脑或手机等电子设备,用户端102可以通过其安装的VDI客户端访问服务端101中部署的虚拟机。
图2A为本申请实施例提供的一种图像发送方法的流程图,该图像发送方法可以应用于 图1G所示的实施环境中,如图2A所示,该图像发送方法可以包括以下步骤:
步骤201、服务端获取待发送的桌面图像。
如上所述,在VDI架构中,服务端中部署的虚拟机可以接收用户端发送的操作指令,该操作指令所指向的虚拟机中的应用程序可以基于该操作指令生成桌面图像。在步骤201中,虚拟机中安装的显示协议程序可以将生成的桌面图像作为待发送的桌面图像,以在后续步骤中使用图像缓存技术将该桌面图像发送至用户端。
需要指出的是,服务端获取的桌面图像,可以为整幅图像,也可以为整幅图像中的局部图像。所谓整幅图像指的是图像的尺寸与用户端的屏幕尺寸相同的桌面图像,用户端在接收到该整幅图像后,可以基于该整幅图像替换用户端当前正在显示的桌面图像。所谓局部图像指的是图像的尺寸小于用户端的屏幕尺寸的桌面图像,用户端在接收到该局部图像后,可以基于该局部图像对用户端当前正在显示的桌面图像的一部分区域进行更新。
例如,该整幅图像可以为图2B中虚线框A1内的图像,该整幅图像的尺寸与用户端的屏幕尺寸相同,该局部图像可以为图2B中虚线框A2内的图像,该局部图像的尺寸小于用户端的屏幕尺寸。
步骤202、服务端按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合。
在获取了桌面图像后,服务端可以获取图像分割方案集合,该图像分割方案集合中可以包括至少两种互不相同的图像分割方案。可选地,该图像分割方案集合中的图像分割方案可以按照优先级由高至低的顺序进行排列,在一种可能的实施方式中,图像分割方案集合中图像分割方案优先级的高低可以与其适用场景范围的大小正相关,例如,图像分割方案集合中的图像分割方案可以按照适用场景范围由大至小的顺序进行排列。
在获取了图像分割方案集合后,服务端中部署的虚拟机中的显示协议程序可以依次按照图像分割方案集合中的每个图像分割方案对桌面图像进行划分。服务端按照每个图像分割方案对桌面图像进行划分后均可以获取一个图像块集合,该图像块集合可以包括服务端按照该图像分割方案对该桌面图像进行划分后得到的多个图像块,其中,该多个图像块中的每个图像块可以为命中图像块或非命中图像块,所谓非命中图像块指的是对应的标志值没有存储于服务端的缓存中的图像块。
服务端依次按照图像分割方案集合中的每个图像分割方案对桌面图像进行划分得到图像块集合。在每按照一个图像分割方案划分得到一个图像块集合时,服务端判断该个图像块集合是否满足目标条件,如果该个图像块集合满足目标条件,则该图像块集合做为目标图像块集合,如果该个图像块集合不满足目标条件,则选择图像分割方案集合中排序在该个图像分割方案之后的一个图像分割方案对桌面图像进行划分,直到找到满足目标条件的目标图像块集合。可选地,在找到满足目标条件的目标图像块集合时,可以停止使用图像分割方案集合中的其它图像分割方案继续划分桌面图像。
可选地,所述目标条件包括:
所述目标图像块集合中的命中图像块的比重大于或等于目标阈值;
或者,所述目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重,所述其他图像块集合是按照所述图像分割方案集合所包括的其他图像分割方案划分所述桌面图像而获得的。
其中,服务端按照图像分割方案集合中的图像分割方案找到目标图像块集合的技术过程可以包括步骤A1和步骤B1。
A1、服务端按照图像分割方案集合中图像分割方案的排列顺序,依次使用图像分割方案集合中的图像分割方案对桌面图像进行划分,直至满足第一停止条件为止。
其中,图像分割方案集合中的每一个图像分割方案均包括一个区域划分方式,且,不同的图像分割方案包括的区域划分方式不同。服务端按照图像分割方案集合中的某一图像分割方案对桌面图像进行划分可以包括:服务端按照该图像分割方案包括的区域划分方式将桌面图像沿第一方向划分为多个图像区域,而后,对于每个图像区域,服务端将该图像区域划分为至少一个图像块,第一方向可以为用户端的屏幕坐标系中的行方向或列方向。
该第一停止条件可以为服务端基于图像分割方案集合中的某一图像分割方案对桌面图像进行划分得到的图像块集合中命中图像块的比重大于或等于目标阈值的条件,需要指出的是,这里所谓的“命中图像块的比重”指的是图像块集合中命中图像块的数量占图像块集合中所有图像块的数量的比重。或者,该第一停止条件也可以为服务端穷尽了图像分割方案集合中的全部图像分割方案对桌面图像进行划分的条件。
B1、服务端确定目标图像分割方案和目标图像块集合。
在满足该第一停止条件时,服务端可以停止对桌面图像进行划分,并从已经划分得到的至少一个图像块集合中确定满足上述目标条件的目标图像块集合,同时,服务端还可以确定划分得到该目标图像块集合所采用的图像分割方案,该图像分割方案即为上文所述的目标图像分割方案。
如果该第一停止条件为服务端基于图像分割方案集合中的某一图像分割方案对桌面图像进行划分得到的图像块集合中命中图像块的比重大于或等于目标阈值的条件,则基于该某一图像分割方案划分得到的图像块集合满足目标条件,因此,服务端可以将按照该某一图像分割方案对桌面图像进行划分后得到的图像块集合确定为目标图像块集合,并将该某一图像分割方案确定为目标图像分割方案。
如果该第一停止条件为服务端穷尽了图像分割方案集合中的全部图像分割方案(至少两个互不相同的图像分割方案)对桌面图像进行划分的条件,则服务端可以确定划分得到的每个图像块集合的命中图像块比重,其中,命中图像块比重最高的图像块集合满足目标条件,因此,服务端可以将按照图像分割方案集合中的全部图像分割方案对桌面图像进行划分得到的至少两个图像块集合中命中图像块的比重最高的图像块集合确定为目标图像块集合,并将该目标图像块集合对应的图像分割方案确定为目标图像分割方案。
例如,图像分割方案集合中可以包括顺序排列的三种图像分割方案,分别为图像分割方案a、图像分割方案b和图像分割方案c。服务端可以按照图像分割方案集合中图像分割方案的排列顺序依次对桌面图像进行划分直至满足第一停止条件为止,并确定目标图像分割方案和目标图像块集合。也即是,服务端可以先按照图像分割方案a对桌面图像进行划分,当服务端按照图像分割方案a对桌面图像进行划分得到的图像块集合中命中图像块的比重大于或等于目标阈值时,满足第一停止条件,此时,图像分割方案a可以被确定为目标图像分割方案,目标图像块集合为按照图像分割方案a对桌面图像进行划分得到的图像块集合,此时,服务端不需要再按照图像分割方案b和图像分割方案c对桌面图像进行划分。当服务端按照图像分割方案a对桌面图像进行划分得到的图像块集合中命中图像块的比重小于目 标阈值时,不满足第一停止条件,此时,服务端可以按照图像分割方案b对桌面图像进行划分。当服务端按照图像分割方案b对桌面图像进行划分得到的图像块集合中命中图像块的比重大于或等于目标阈值时,满足第一停止条件,此时,图像分割方案b被确定为目标图像分割方案,目标图像块集合为按照图像分割方案b对桌面图像进行划分得到的图像块集合,此时,服务端不需要再按照图像分割方案c对桌面图像进行划分。当服务端按照图像分割方案b对桌面图像进行划分得到的图像块集合中命中图像块的比重小于目标阈值时,不满足第一停止条件,此时,服务端可以按照图像分割方案c对桌面图像进行划分,由于此时服务端已经穷尽了图像分割方案集合中的全部图像分割方案对桌面图像进行划分,因此,满足第一停止条件,在这种情况下,服务端可以在三种图像分割方案(图像分割方案a、图像分割方案b和图像分割方案c)对应的三个图像块集合中选择命中图像块的比重最高的图像块集合作为目标图像块集合,相应地将该目标图像块集合对应的图像分割方案作为目标图像分割方案。
这样,可以保证服务端最终确定的目标图像块集合中命中图像块的比重较高,因此,在后续步骤中基于该目标图像块集合向用户端发送桌面图像能够降低服务端与用户端之间的带宽。
本申请实施例提供了一种示例性的图像分割方案集合,该图像分割方案集合可以包括三种图像分割方案,这三种图像分割方案分别为指令原点分割方案、静态位置分割方案和运动预测分割方案。在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点没有发生变化的情况下,按照指令原点分割方案对待发送的桌面图像进行划分得到的图像块集合中命中图像块的比重较高,在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点发生变化的情况下,按照静态位置分割方案和运动预测分割方案对待发送的桌面图像进行划分得到的图像块集合中命中图像块的比重较高。其中,桌面图像的指令原点可以为桌面图像的外包矩形(也可称为最小外接矩形)的一个顶点,例如,桌面图像可以为矩形图像,桌面图像的外包矩形可以为桌面图像的边界组成的矩形,桌面图像的指令原点可以为桌面图像的外包矩形的左上角的顶点。
在一种可能的实施方式中,在该示例性的图像分割方案集合中,指令原点分割方案、静态位置分割方案和运动预测分割方案按照优先级由高到低的顺序排列,例如,指令原点分割方案的优先级最高,运动预测分割方案的优先级最低。
下面本申请实施例将对服务端按照上述三种图像分割方案对桌面图像进行划分的技术过程分别进行说明:
一、服务端按照指令原点分割方案对桌面图像进行划分得到一个图像块集合的技术过程可以包括步骤A2、步骤B2、步骤C2和步骤D2。
A2、服务端确定桌面图像的指令原点。
服务端可以确定桌面图像的指令原点在用户端的屏幕坐标系中的位置。
B2、服务端按照指令原点分割方案包括的区域划分方式将桌面图像沿第一方向划分为多个图像区域。
第一方向与桌面图像的外包矩形的一条边平行,本申请实施例仅以第一方向为行方向为例进行说明,第一方向为列方向与第一方向为行方向同理,本申请实施例在此不再赘述。
可选的,指令原点分割方案包括的区域划分方式为:以桌面图像的指令原点为分割起 点,将桌面图像分割成多个图像区域,其中,每个图像区域均为矩形区域,且,该多个图像区域沿第一方向依次排布。
该多个图像区域中除末个图像区域之外的每个图像区域在第一方向上的长度k1均相等,且等于第一预设分割长度L,而末个图像区域在第一方向上的长度k2满足第一公式,该第一公式为:
k2=N-y1*k1;
其中,
Figure PCTCN2018077337-appb-000009
N为桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000010
表示向上取整。
需要指出的是,上述第一预设分割长度L可以为宏块在第一方向上的长度,且,第一预设分割长度L为单个像素在第一方向上的长度的整数倍,其中,宏块指的是图像编解码领域中具有最大默认尺寸的图像分块,实际应用中,宏块可以为正方形的图像分块。还需要指出的是,上述末个图像区域指的是桌面图像分割得到的多个图像区域中在第一方向上距桌面图像的指令原点最远的图像区域。
由第一公式可知,当桌面图像在第一方向上的总长度N为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度等于第一预设分割长度L,当桌面图像在第一方向上的总长度N不为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度等于桌面图像在第一方向上的总长度N与第一预设分割长度L相除的余数。
例如,如图2C所示,桌面图像T1在第一方向(也即是行方向x)上的长度为7,第一预设分割长度L为2,则根据上述第一公式,
Figure PCTCN2018077337-appb-000011
k2=7-y1*2=1,服务端可以以桌面图像T1的指令原点F1为分割起点,将桌面图像T1分割为沿第一方向依次排布的4个图像区域q1、q2、q3和q4,其中,前三个图像区域q1、q2和q3在第一方向上的长度均等于2,末个图像区域q4在第一方向上的长度等于1。
又例如,如图2D所示,桌面图像T2在第一方向(也即是行方向x)上的长度为8,第一预设分割长度L为2,则根据上述第一公式,
Figure PCTCN2018077337-appb-000012
k2=8-y1*2=2,服务端可以以桌面图像T2的指令原点F2为分割起点,将桌面图像T2分割为沿第一方向依次排布的4个图像区域p1、p2、p3和p4,其中,前三个图像区域p1、p2和p3在第一方向上的长度均等于2,末个图像区域p4在第一方向上的长度也等于2。
由于在指令原点分割方案中,服务端可以以桌面图像的指令原点为分割起点,按照预设步长(也即是第一预设分割长度L)对桌面图像进行分割,因此,在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点没有发生变化的情况下,按照指令原点分割方案对待发送的桌面图像进行分割得到的多个图像区域与按照指令原点分割方案对已经发送的桌面图像进行分割得到的多个图像区域重合的概率较高,那么在后续步骤中,对待发送的桌面图像的多个图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
C2、对于桌面图像划分得到的多个图像区域中的每个图像区域,服务端确定目标子图像块集合。
对于每个图像区域,服务端可以获取块分割方案集合,该块分割方案集合包括多个互不相同的块分割方案,服务端可以按照块分割方案集合中的至少一个块分割方案对图像区域进行划分,其中,服务端按照块分割方案集合中的每个块分割方案对图像区域进行划分后均可以获取一个子图像块集合,该子图像块集合可以包括服务端按照该块分割方案对图 像区域进行划分后得到的多个图像块。
服务端依次按照块分割方案集合中的每个块分割方案对图像区域进行划分得到至少一个子图像块集合,在每按照一个块分割方案划分得到一个子图像块集合时,服务端判断该个子图像块集合是否满足目标子条件,如果该个子图像块集合满足目标子条件,则该子图像块集合做为目标子图像块集合,如果该个子图像块集合不满足目标子条件,则选择块分割方案集合中排序在该个块分割方案之后的一个块分割方案对图像区域进行划分,直到找到满足目标子条件的目标子图像块集合。可选地,在找到满足目标子条件的目标子图像块集合时,可以停止使用块分割方案集合中的其它块分割方案继续划分图像区域。
可选地,所述目标子条件包括:所述目标子图像块集合中的命中图像块的比重大于或等于目标子阈值;
或者,所述目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,所述其他子图像块集合是按照所述块分割方案集合所包括的其他块分割方案划分所述图像区域而获得的。
其中,对于每个图像区域,服务端按照块分割方案集合中的块分割方案找到目标子图像块集合的技术过程可以包括步骤a、步骤b和步骤c。
a、服务端获取长度值集合。
该长度值集合包括多个按照顺序排列的长度值,且,每个长度值均小于或等于第二预设分割长度L′,每个长度值均为单个像素在第二方向上的长度a′的整数倍。长度值集合中的每个长度值与块分割方案集合中的一个块分割方案对应,并供对应的块分割方案使用。
其中,该第二预设分割长度L′可以为宏块在第二方向上的长度,且,第二预设分割长度L′为单个像素在第二方向上的长度a′的整数倍。第二方向可以与第一方向垂直,例如,第一方向为行方向,第二方向为列方向,再例如,第一方向为列方向,第二方向为行方向。
b、服务端按照块分割方案集合中块分割方案的排列顺序,依次使用块分割方案集合中的块分割方案对图像区域进行划分,直至满足第二停止条件为止。
需要指出的是,块分割方案集合中多个块分割方案的排列顺序与长度值集合中多个长度值的排列顺序相对应。也即是,在步骤b中,服务端可以按照长度值集合中长度值的排列顺序,依次使用长度值集合中的长度值对图像区域进行划分,直至满足第二停止条件为止。
其中,服务端使用长度值集合中的某一长度值R1对图像区域进行划分得到一个子图像块集合的技术过程可以包括下述步骤b11:
b11、服务端使用该长度值R1,将该图像区域分割成沿第二方向依次排布的多个图像块,并将该多个图像块组成子图像块集合。
其中,该多个图像块中首个图像块在第二方向上的长度p2等于长度值R1,该多个图像块中除首个图像块和末个图像块之外的每个图像块在第二方向上的长度p1均等于第二预设分割长度L′,末个图像块在第二方向上的长度p3满足第二公式,该第二公式为:
z*p1+p2+p3=M;
其中,
Figure PCTCN2018077337-appb-000013
M为桌面图像在第二方向上的总长度,
Figure PCTCN2018077337-appb-000014
表示向上取整。
需要指出的是,上述首个图像块指的是图像区域分割得到的多个图像块中在第二方向上距桌面图像的指令原点最近的图像块,末个图像块指的是图像区域分割得到的多个图像 块中在第二方向上距桌面图像的指令原点最远的图像块。
由第二公式可知,当桌面图像在第二方向上的总长度M与长度值R1的差值为第二预设分割长度L′的整数倍时,该末个图像块在第二方向上的长度等于第二预设分割长度L′,当桌面图像在第二方向上的总长度M与长度值R1的差值不为第二预设分割长度L′的整数倍时,该末个图像块在第二方向上的长度等于桌面图像在第二方向上的总长度M与长度值R1的差值与第二预设分割长度L′相除的余数。
例如,如图2E所示,图像区域G1在第二方向(也即是列方向y)上的长度为7,第二预设分割长度L′为2,长度值R1为1,则根据上述第二公式,
Figure PCTCN2018077337-appb-000015
2*2+1+p3=7,p3=2,服务端可以将图像区域G1分割为沿第二方向依次排布的4个图像块u1、u2、u3和u4,其中,首个图像块u1在第二方向上的长度等于1,中间两个图像块u2和u3在第二方向上的长度均等于2,末个图像块u4在第二方向上的长度也等于2。
又例如,如图2F所示,图像区域G2在第二方向(也即是列方向y)上的长度为8,第二预设分割长度L′为2,长度值R1为1,则根据上述第二公式,
Figure PCTCN2018077337-appb-000016
3*2+1+p3=8,p3=1,服务端可以将图像区域G2分割为沿第二方向依次排布的5个图像块v1、v2、v3、v4和v5,其中,首个图像块v1在第二方向上的长度等于1,中间三个图像块v2、v3和v4在第二方向上的长度均等于2,末个图像块v5在第二方向上的长度等于1。
在执行了步骤b11得到子图像块集合后,服务端还可以计算子图像块集合中每个图像块的标志值,以根据每个图像块的标志值确定子图像块集合中命中图像块的比重。可选的,对于子图像块集合中的每个图像块,服务端可以确定组成该图像块的多个图像子块,每个图像子块在第一方向上的长度等于第一预设分割长度L,在第二方向上的长度等于单个像素在第二方向上的长度a′。对于子图像块集合中的每个图像块,服务端可以获取组成该图像块的每个图像子块的标志值,其中,每个图像子块的标志值可以由服务端基于图像子块中所有像素的像素值根据预设算法(例如哈希算法)计算得到,而后,对于子图像块集合中的每个图像块,服务端可以基于组成该图像块的每个图像子块的标志值根据预设算法(例如哈希算法)计算得到该图像块的标志值。服务端在计算得到子图像块集合中每个图像块的标志值后,可以根据每个图像块的标志值查询服务端的缓存,以确定子图像块集合中命中图像块的比重。
例如,如图2G所示,对于子图像块集合中的图像块J,服务端可以确定组成该图像块J的3个图像子块JJ1、JJ2和JJ3,其中,每个图像子块在第一方向(也即是行方向x)上的长度等于第一预设分割长度L,在第二方向(也即是列方向y)上的长度等于单个像素在第二方向上的长度a′,而后,服务端可以获取该3个图像子块JJ1、JJ2和JJ3的标志值Wjj1、Wjj2和Wjj3,服务端可以基于该标志值Wjj1、Wjj2和Wjj3根据预设算法计算得到图像块J的标志值。服务端在计算得到图像块J的标志值后,可以基于该标志值查询服务端的缓存,以确定该图像块J是否为命中图像块。
如上所述,服务端可以按照长度值集合中长度值的排列顺序,依次使用长度值集合中的长度值对图像区域进行划分,直至满足第二停止条件为止。其中,在本申请实施例中,第二停止条件可以为服务端基于长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值的条件。或者,该第二停止条件也可以为服务端穷尽了长度值集合中全部的长度值对图像区域进行划分的条件。
例如,当长度值集合包括3个顺序排列的长度值R1、R2和R3时,服务端可以依次使用该长度值R1、R2和R3对图像区域进行划分,当服务端使用某长度值,例如,该长度值可以为R2,对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值时,满足第二停止条件,此时服务端可以不再继续对图像区域进行划分。或者,服务端使用长度值R1、R2和R3对图像区域进行划分,满足第二停止条件,此时服务端不再继续对图像区域进行划分。
c、服务端确定目标子图像块集合和目标块分割方案。
在满足第二停止条件时,服务端可以停止对图像区域进行划分,并从已经划分得到的至少一个子图像块集合中确定满足上述目标子条件的目标子图像块集合,同时,服务端还可以确定划分得到该目标子图像块集合所采用的块分割方案,该块分割方案即为上文所述的目标块分割方案。
若第二停止条件为服务端使用长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值的条件,则使用该某一长度值划分得到的子图像块集合满足目标子条件,因此,服务端可以将使用该某一长度值对图像区域进行划分得到的子图像块集合确定为目标子图像块集合,并将该某一长度值所对应的块分割方案确定为目标块分割方案。
若第二停止条件为服务端穷尽了长度值集合中全部的长度值对图像区域进行划分的条件,则服务端可以确定划分得到的每个子图像块集合的命中图像块比重,其中,命中图像块比重最高的子图像块集合满足目标子条件,因此,服务端可以将穷尽了长度值集合中全部的长度值对图像区域进行划分得到的多个子图像块集合中命中图像块的比重最高的子图像块集合确定为目标子图像块集合,并将目标子图像块集合对应的块分割方案确定为目标块分割方案。
可选地,通常可以将划分得到目标子图像块集合所对应使用的长度值称为目标长度值。
例如,当长度值集合包括3个顺序排列的长度值R1、R2和R3时,服务端可以依次使用该长度值R1、R2和R3对图像区域进行划分,当服务端使用某长度值,例如,该长度值可以为R2,对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值时,满足第二停止条件,此时服务端可以不再继续对图像区域进行划分,并将使用长度值R2对图像区域进行划分得到的子图像块集合确定为目标子图像块集合,将长度值R2对应的块分割方案确定为目标块分割方案,其中,长度值R2为目标长度值。或者,服务端分别使用长度值R1、R2和R3对图像区域进行划分,满足第二停止条件,此时服务端不再继续对图像区域进行划分,并将使用长度值R1、R2和R3对图像区域进行划分得到的3个子图像块集合中命中图像块的比重最高的子图像块集合(例如,该命中图像块的比重最高的子图像块集合可以为使用长度值R3对图像区域进行划分得到的子图像块集合)确定为目标子图像块集合,将长度值R3对应的块分割方案确定为目标块分割方案,其中,长度值R3为目标长度值。
当第二停止条件为服务端基于长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值的条件时,服务端不需要穷尽长度值集合中全部的长度值对图像区域进行划分,因此,服务端的计算量较小,同时,服务端可以将命中图像块的比重大于或等于目标子阈值的子图像块集合确定为目标子图像块集 合,因此,可以保证目标子图像块集合中命中图像块的比重较高,从而能够在一定程度上降低服务端与用户端之间的带宽。当第二停止条件为服务端穷尽了长度值集合中全部的长度值对图像区域进行划分的条件时,服务端可以将该至少一个子图像块集合中命中图像块的比重最高的子图像块集合确定为目标子图像块集合,也即是服务端确定的目标子图像块集合中命中图像块的比重最高,因此,这种情况下可以最大限度地降低服务端与用户端之间的带宽。
由上述说明可知,在对图像区域进行划分过程中,服务端可以使用至少一个不同的长度值作为首个图像块在第二方向上的长度,以分割得到该首个图像块,而后,服务端可以以固定步长(也即是第二预设分割长度)对图像区域的其他部分进行分割,以得到末个图像块和除首个图像块以及末个图像块以外的其他图像块,也就是说,服务端可以以首个图像块为分割起点对图像区域进行固定步长的分割。这样,当待发送的桌面图像相较于已经发送的桌面图像产生了平移时,服务端可以通过对待发送的桌面图像的图像区域进行至少一次划分以搜索待发送的桌面图像的可能的平移长度,该可能的平移长度即为首个图像块在第二方向上的长度,当满足第二停止条件时,说明服务端已经搜索到了一个可能的平移长度,此时获取的目标子图像块集合中的除首个图像块以及末个图像块以外的其他图像块与已经发送的桌面图像分割得到的图像块重合的可能性较高,因此,该目标子图像块集合包括的多个图像块中命中图像块的比重较高。
需要指出的是,当第二停止条件为服务端基于长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值的条件时,该某一长度值在长度值集合中的排序越靠前,服务端对图像区域进行划分的次数越少,服务端的计算量也越小。例如,长度值集合可以包括3个长度值R1、R2和R3,其中,服务端使用长度值R2对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值,满足第二停止条件,当R2在长度值集合中的排序为1时,服务端仅需要对图像区域进行一次划分就可以满足第二停止条件,当R2在长度值集合中的排序为3时,服务端需要对图像区域进行3次划分才可以满足第二停止条件。
为了减少服务端的计算量,在第二停止条件为服务端基于长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值的条件时,长度值集合中的多个长度值可以按照历史的命中率的高低确定优先级顺序,可选的,历史的命中率较高的长度值优先级较高,其中,某一长度值的命中率为按照该长度值划分图像区域所得的子图像块集合的命中图像块的比重。此外,块分割方案集合中的多个块分割方案的优先级顺序对应长度值集合中的优先级顺序,也就是说,块分割方案集合中某一块分割方案的优先级顺序与该某一块分割分案所对应使用的长度值在长度值集合中的优先级顺序一致。在按照块分割方案集合包括的块分割方案划分图像区域时,服务端可以按照块分割方案集合中块分割方案的优先级由高至低的顺序对图像区域进行划分,换句话说,服务端可以按照长度值集合中长度值的优先级由高至低的顺序对图像区域进行划分。
长度值集合中的长度值可以按照历史的命中率的高低依次排列,长度值的排列顺序体现长度值的优先级;其中,某一长度值的命中率为按照该长度值划分图像区域所得的子图像块集合中命中图像块的比重。
表1为本申请实施例提供的一个示例性的长度值集合的排序表,由表1可以看出,在 历史桌面图像中,长度值21作为目标长度值的次数为4220次,也即是,服务端使用长度值21对历史桌面图像的图像区域进行划分得到的子图像块集合为目标子图像块集合的次数为4220次,命中率为0.128001,命中率最高,因此,长度值21在长度值集合中的排序为1。
表1
长度值 次数 命中率
21 4220 0.128011
62 2594 0.078687
64 2566 0.077838
40 1894 0.057453
5 1803 0.054693
6 1726 0.052357
由于长度值集合中的长度值按照命中率由高至低的顺序进行排序,因此,当目标子条件为服务端基于长度值集合中的某一长度值对图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值的条件时,可以减少服务端对图像区域进行划分的次数,减少服务端的计算量。
对于待发送的桌面图像中的某一图像区域而言,当服务端确定了该图像区域的目标子图像块集合后,可以确定划分得到该目标子图像块集合所使用的长度值,而后,服务端可以将长度值集合排序表中该长度值对应的次数值加1,并相应更新该长度值的命中率,从而维护长度值集合的排序表。
一种可能的实现方式中,相邻图像区域的目标长度值相同的可能性较大,因此,为了进一步减少服务端对图像区域进行分割的次数,减少服务端的计算量,当需要进行划分的图像区域不为首个进行划分的图像区域时,服务端可以确定该图像区域的前一个图像区域的目标长度值(以下称为第二长度值),其中,某一图像区域的前一个图像区域为在桌面图像中沿第一方向与该某一图像区域相邻的已划分图像块的一个图像区域,而后,服务端可以先使用第二长度值对该图像区域进行划分。当使用第二长度值对该图像区域进行划分得到的备选子图像块集合中命中图像块的比重小于目标子阈值时,也即是,当使用第二长度值对该图像区域进行划分后不满足第二停止条件时,服务端可以依次使用块分割方案集合中的多个块分割方案划分该图像区域,直至得到目标子图像块集合,可选的,服务端可以按照块分割方案集合中块分割方案的优先级由高至低的顺序对图像区域进行划分,直至得到目标子图像块集合。当使用第二长度值对该图像区域进行划分得到的子图像块集合中命中图像块的比重大于或等于目标子阈值时,也即是,当使用第二长度值对该图像区域进行划分后满足第二停止条件时,服务端可以停止继续对图像区域进行划分,并将使用第二长度值对图像区域进行划分得到的备选子图像块集合确定为目标子图像块集合,将第二长度值对应的块分割方案确定为目标块分割方案。
当需要进行划分的图像区域为首个进行划分的图像区域时,服务端可以依次使用块分割方案集合中的多个块分割方案划分该图像区域,直至得到目标子图像块集合,可选的,服务端可以按照块分割方案集合中块分割方案的优先级由高至低的顺序对图像区域进行划 分,直至得到目标子图像块集合。
D2、服务端利用每个图像区域的目标子图像块集合组成图像块集合。
二、服务端按照静态位置分割方案对桌面图像进行划分得到一个图像块集合的技术过程可以包括步骤A3、步骤B3、步骤C3和步骤D3。
A3、服务端确定桌面图像的指令原点。
步骤A3与步骤A2同理,本申请实施例在此不再赘述。
B3、服务端按照静态位置分割方案包括的区域划分方式将桌面图像沿第一方向划分为多个图像区域。
可选的,静态位置分割方案包括的区域划分方式为:以桌面图像的指令原点为分割起点,将桌面图像分割成多个图像区域,其中,每个图像区域均为矩形区域,且,该多个图像区域沿第一方向依次排布。该多个图像区域中的首个图像区域包括两个边界,分别为第一边界和第二边界,该两个边界均与第二方向平行(也即是与第一方向垂直),其中,第一边界经过桌面图像的指令原点,第二边界在用户端的屏幕坐标系的第一方向上的坐标值(以下简称坐标值)属于桌面图像在用户端的屏幕坐标系的第一方向的坐标值范围,且,第二边界的坐标值为第一预设分割长度L的整数倍,同时,第一边界与第二边界之间的距离小于或等于第一预设分割长度L。该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在第一方向上的长度k3均等于第一预设分割长度L,该多个图像区域中的末个图像区域在第一方向上的长度k5满足第三公式,第三公式为:
y2*k3+k4+k5=N;
其中,
Figure PCTCN2018077337-appb-000017
N为桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000018
表示向上取整,k4为首个图像区域在第一方向上的长度,k4等于首个图像区域的第一边界和第二边界之间的距离。
需要指出的是,首个图像区域指的是桌面图像分割得到的多个图像区域中在第一方向上距桌面图像的指令原点最近的图像区域。
由上述说明可知,由于首个图像区域的第二边界的坐标值为第一预设分割长度L的整数倍,且,该多个图像区域中除首个图像区域和末个图像区域以外的其他图像区域在第一方向上的长度均等于第一预设分割长度,因此,该其他图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
此外,由上述第三公式可知,当桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k4的差值为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度k5等于第一预设分割长度L,当桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k4的差值不为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度k5等于桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k4的差值与第一预设分割长度L相除的余数。
例如,如图2H所示,桌面图像T3的指令原点F3在用户端的屏幕坐标系的第一方向(也即是行方向x)上的坐标值为17,第一预设分割长度L等于2,桌面图像T3在第一方向上的长度为7。由以上说明可知,桌面图像T3分割得到的多个图像区域中的首个图像区域f1的第一边界j1与第二方向(也即是列方向y)平行,且经过指令原点F3,首个图像区域f1的第二边界j2与第二方向平行,且,第二边界j2在用户端的屏幕坐标系的第一方向上的坐 标值属于桌面图像T3在用户端的屏幕坐标系的第一方向的坐标值范围,第二边界j2在用户端的屏幕坐标系的第一方向的坐标值为第一预设分割长度L的整数倍,同时,第一边界j1与第二边界j2之间的距离小于或等于第一预设分割长度L,因此,第二边界j2在用户端的屏幕坐标系的第一方向的坐标值为18,也即是,首个图像区域f1在第一方向上的长度为1。根据上述第三公式,
Figure PCTCN2018077337-appb-000019
2*2+1+k5=7,则k5=2,服务端可以以桌面图像T3的指令原点F3为分割起点,将桌面图像T3分割为沿第一方向依次排布的4个图像区域f1、f2、f3和f4,其中,首个图像区域f1在第一方向上的长度等于1,中间两个图像区域f2和f3在第一方向上的长度等于2,末个图像区域f4在第一方向上的长度等于2。
当桌面图像发生了较为显著的变化(例如,用户端与服务端中部署的虚拟机初始建立连接时桌面图像即会发生显著的变化)时,服务端通常会向用户端发送整幅图像,其中,该整幅图像的尺寸与用户端的屏幕尺寸相同,也即是,该整幅图像的指令原点与用户端屏幕的左上角重合。在发送该整幅图像时,服务端可以将该整幅图像以指令原点(用户端屏幕的左上角)为分割起点按照固定步长(第一预设长度L)进行分割得到多个图像区域,因此,该整幅图像分割得到的多个图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
而在静态位置分割方案中,服务端对桌面图像进行分割得到的首个图像区域的第二边界在用户端的屏幕坐标系的第一方向上的坐标值为第一预设分割长度L的整数倍,在分割得到首个图像区域后,服务端可以以固定步长对桌面图像的其他区域进行分割得到除首个图像区域和末个图像区域以外的其他图像区域,由于该固定步长为第一预设分割长度,因此,该其他图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
这样,按照静态位置分割方案对桌面图像进行分割得到的除首个图像区域和末个图像区域以外的其他图像区域与整幅桌面图像分割得到的图像区域重合,在后续步骤中,对该其他图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
C3、对于桌面图像划分得到的多个图像区域中的每个图像区域,服务端确定目标子图像块集合。
D3、服务端利用每个图像区域的目标子图像块集合组成图像块集合。
需要指出的是,上述步骤C3和步骤C2的技术过程同理,步骤D3和步骤D2的技术过程同理,因此,本申请实施例在此不再赘述。
三、服务端按照运动预测分割方案对桌面图像进行划分得到一个图像块集合的技术过程可以包括步骤A4、步骤B4、步骤C4、步骤D4、步骤E4和步骤F4。
A4、服务端确定桌面图像的指令原点。
步骤A4与步骤A2同理,本申请实施例在此不再赘述。
B4、服务端在桌面图像中确定预设区域。
其中,该预设区域的指令原点与桌面图像的指令原点重合,该预设区域在第一方向上的长度等于第一预设分割长度L的整数倍,该预设区域在第二方向上的长度等于第二预设分割长度L′的整数倍,实际实现时,该预设区域在第一方向上的长度可以等于第一预设分割长度L的2倍,该预设区域在第二方向上的长度可以等于第二预设分割长度L′的2倍。
如图2I所示,T4为桌面图像,TJ1为预设区域,其中,预设区域TJ1和桌面图像T4的指令原点重合,均为F4,预设区域TJ1在第一方向(也即是行方向x)上的长度等于2L,也即是等于第一预设分割长度L的2倍,预设区域TJ1在第二方向(也即是列方向y)上的长度等于2L′,也即是等于第二预设分割长度L′的2倍。
需要说明的是,当桌面图像的尺寸较小,以致于服务端无法从该桌面图像中确定预设区域时,服务端可以停止按照运动预测分割方案对桌面图像对桌面图像进行划分。
C4、服务端在预设区域中确定目标指令原点。
其中,目标指令原点为目标图像块的指令原点,该目标图像块为命中图像块,该目标图像块在第一方向上的长度等于第一预设分割长度L,该目标图像块在第二方向上的长度等于第二预设分割长度L′。
此外,目标指令原点需要满足下述两个条件,条件1:目标指令原点与桌面图像的指令原点在第一方向上的距离L1满足:0<L1<L,目标指令原点与桌面图像的指令原点在第二方向上的距离L2满足:0≤L2<L′,其中,L为第一预设分割长度,L′为第二预设分割长度;条件2:目标指令原点在用户端的屏幕坐标系的第一方向上的坐标值不等于第一预设分割长度的整数倍。
由于目标指令原点需要满足以上两个条件,因此,对于桌面图像,运动预测分割方案分割得到的首个图像区域不会与静态位置分割方案和指令原点分割方案分割得到的首个图像区域相同,从而可以避免运动预测分割方案分割得到的多个图像区域与指令原点分割方案或者静态位置分割方案分割得到的多个图像区域一致而造成的服务端重复计算的问题。
D4、服务端按照运动预测分割方案包括的区域划分方式将桌面图像沿第一方向划分为多个图像区域。
可选的,运动预测分割方案包括的区域划分方式为:以桌面图像的指令原点为分割起点,将桌面图像分割成多个图像区域,其中,每个图像区域均为矩形区域,且,该多个图像区域沿第一方向依次排布。该多个图像区域中首个图像区域在第一方向上的长度k7等于目标指令原点与桌面图像的指令原点在第一方向上的距离L1,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在第一方向上的长度k6均等于第一预设分割长度L,末个图像区域在第一方向上的长度k8满足第四公式,该第四公式为:
y3*k6+k7+k8=N;
其中,
Figure PCTCN2018077337-appb-000020
N为桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000021
表示向上取整。
由上述第四公式可知,当桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k7的差值为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度k8等于第一预设分割长度L,当桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k7的差值不为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度k8等于桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k7的差值与第一预设分割长度L相除的余数。
例如,如图2J所示,桌面图像T5在第一方向(也即是行方向)上的长度为7,第一预设分割长度L等于2,目标指令原点MD与桌面图像T5的指令原点F5在第一方向上的距离L1为1。根据上述第四公式,
Figure PCTCN2018077337-appb-000022
2*2+1+k8=7,则k8=2,服务端可以以桌面图像T5的指令原点F5为分割起点,将桌面图像T5分割为沿第一方向依次排布的 4个图像区域h1、h2、h3和h4,其中,首个图像区域h1在第一方向上的长度等于1,中间两个图像区域h2和h3在第一方向上的长度等于2,末个图像区域h4在第一方向上的长度等于2。
在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点发生变化的情况下,运动预测分割方案可以搜索已经发送的桌面图像的指令原点在第一方向上的可能位置,而后,服务端可以以该可能的位置为分割起点按照固定的步长(也即是第一预设分割长度)对桌面图像进行分割,这样,待发送的桌面图像分割得到的多个图像区域与已经发送的桌面图像分割得到的多个图像区域重合的可能性较高,那么在后续步骤中,对待发送的桌面图像的多个图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
根据上述说明可知,由于目标图像块为命中图像块,而且,目标图像块的指令原点(也即是目标指令原点)与待发送的桌面图像的指令原点的距离较小,因此,该目标图像块很可能是已经发送的桌面图像分割得到首个图像区域中的首个图像块,也就是说,目标指令原点很可能与已经发送的桌面图像的指令原点重合,因此,在上述步骤中,服务端搜索目标指令原点的实质就是搜索已经发送的桌面图像的指令原点在第一方向上的可能位置。
E4、对于桌面图像划分得到的多个图像区域中的每个图像区域,服务端确定目标子图像块集合。
F4、服务端利用每个图像区域的目标子图像块集合组成图像块集合。
需要指出的是,上述步骤E4和步骤C2的技术过程同理,步骤F4和步骤D2的技术过程同理,因此,本申请实施例在此不再赘述。
步骤203、服务端将将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端。
其中,目标图像块集合中命中图像块的数据信息包括命中图像块的标志值,非命中图像块的数据信息包括非命中图像块的图像数据,该非命中图像块的图像数据可以为非命中图像块的像素值,其中,该非命中图像块的数据信息可以为非命中图像块的编码后的像素值。图像块的位置信息记录图像块在所述桌面图像中的位置。
综上所述,本申请实施例提供的图像发送方法,通过服务端按照图像分割方案集合包括的图像分割方案对桌面图像进行划分,得到满足目标条件的目标图像块集合,而后服务端将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端,其中,该目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重,因此,可以保证服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高,由于命中图像块的数据信息为命中图像块的标志值,非命中图像块的数据信息为非命中图像块的图像数据,其中,该图像数据可以为非命中图像块的像素值,且,标志值的数据量一般小于图像数据的数据量,因此,相较于非命中图像块而言,服务端向用户端发送命中图像块的数据信息所需要的带宽较小,故而,服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高可以节省服务端与用户端之间的带宽。
下述为本申请的装置实施例,可以用于执行本申请的方法实施例。对于本申请装置实 施例中未披露的细节,请参照本申请方法实施例。
请参考图3,其示出了本申请实施例提供的一种图像发送装置300的框图。参见图3,该图像发送装置300可以包括划分模块301和发送模块302。
其中,划分模块301,用于按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,该目标图像块集合包括多个图像块,该多个图像块中的每个图像块为命中图像块或非命中图像块,另外,该目标图像块集合满足目标条件,该目标条件包括:该目标图像块集合中的该命中图像块的比重大于或等于目标阈值,或者该目标图像块集合中的该命中图像块的比重大于其他图像块集合中的命中图像块的比重,该其他图像块集合是按照该图像分割方案集合所包括的其他图像分割方案划分该桌面图像而获得的。
发送模块302,用于将该目标图像块集合中的每个图像块的数据信息和该每个图像块的位置信息发送至用户端,其中,该命中图像块的数据信息包括该命中图像块的标志值,该非命中图像块的数据信息包括该非命中图像块的图像数据,该每个图像块的位置信息记录该图像块在该桌面图像中的位置。
在本申请的一个实施例中,该划分模块301,用于:依次使用该图像分割方案集合中的多个图像分割方案分别划分该桌面图像,直到划分得到的图像块集合中命中图像块的数量占该划分得到的图像块集合中的所有图像块的数量的比重大于或等于该目标阈值;将该划分得到的图像块集合作为目标图像块集合。
在本申请的一个实施例中,该划分模块301,用于:按照该图像分割方案集合中的每个图像分割方案分别划分该桌面图像,得到该每个图像分割方案对应的图像块集合;针对该每个图像块集合,计算该图像块集合的命中图像块的数量占该图像块集合中的所有图像块的数量的比重;从与该图像分割方案集合中的所有图像分割方案对应的多个图像块集合中选择具有最高比重的图像块集合作为该目标图像块集合。
在本申请的一个实施例中,该图像分割方案集合中的多种图像分割方案包括不同的区域划分方式;该划分模块301,用于:按照该图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域;将该多个图像区域中的每个图像区域划分为至少一个图像块。
在本申请的一个实施例中,该划分模块301,用于:确定该桌面图像的指令原点,该桌面图像的指令原点为该桌面图像的外包矩形的一个顶点,该第一方向与该外包矩形的一边平行;
以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,该多个图像区域中除末个图像区域之外的每个图像区域在该第一方向上的长度k1均等于第一预设分割长度,该末个图像区域在该第一方向上的长度k2满足:k2=N-y1*k1,
Figure PCTCN2018077337-appb-000023
N为该桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000024
表示向上取整。
在本申请的一个实施例中,该划分模块301,用于:以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该桌面图像的指令原点为该桌面图像的外包矩形的一个顶点,该第一方向与该外包矩形的一边平行;该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k3均等于第一预设分割长度L,该首个图像区域的第一边界经过该桌面图像的指令原点,该首个图像区域的第二边界在该屏幕坐标系中的第一方向上的坐标值属于该桌面图像在该 屏幕坐标系中的第一方向上的坐标范围,且为该第一预设分割长度的整数倍,该第一边界和该第二边界均与该第一方向垂直,该第一边界和该第二边界的距离小于或等于该第一预设分割长度,该首个图像区域在该第一方向上的长度k4和该末个图像区域在该第一方向上的长度k5满足:
y2*k3+k4+k5=N;
其中,
Figure PCTCN2018077337-appb-000025
N为该桌面图像在第一方向上的总长度,
Figure PCTCN2018077337-appb-000026
表示向上取整,k4等于该第一边界和该第二边界之间的距离。
在本申请的一个实施例中,该划分模块301,用于:在该桌面图像的预设区域中确定目标图像块,该目标图像块为命中图像块,该目标图像块在该第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,该第一方向与该第二方向垂直,该预设区域的指令原点与该桌面图像的指令原点相同;以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k6均等于该第一预设分割长度L,该首个图像区域在该第一方向上的长度k7和该末个图像区域在该第一方向上的长度k8满足:
y3*k6+k7+k8=N;
其中,
Figure PCTCN2018077337-appb-000027
N为该桌面图像在该第一方向上的总长度,
Figure PCTCN2018077337-appb-000028
表示向上取整,k7等于该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离。
在本申请的一个实施例中,该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离L1满足:0<L1<L,该目标图像块的指令原点与该桌面图像的指令原点在该第二方向上的距离L2满足:0≤L2<L′。
在本申请的一个实施例中,该划分模块301,用于:依次按照块分割方案集合包括的块分割方案分别划分该图像区域,得到目标子图像块集合,该目标子图像块集合包括多个图像块,该目标子图像块集合满足目标子条件,该目标子条件包括:该目标子图像块集合中的命中图像块的比重大于或等于目标子阈值,或者该目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,该其他子图像块集合是按照该块分割方案集合所包括的其他块分割方案划分该图像区域而获得的。
在本申请的一个实施例中,该划分模块301,用于:从长度值集合中确定与该块分割方案对应的第一长度值R1,其中,该长度值集合包括多个长度值,该长度值集合包括的每个长度值小于或等于第二预设分割长度L′,该长度值集合中的不同长度值供该块分割方案集合中的不同块分割方案使用;将该图像区域分割成沿第二方向依次排布的多个图像块,该多个图像块中除首个图像块和末个图像块之外的每个图像块在该第二方向上的长度p1等于该第二预设分割长度L′,该首个图像块在该第二方向上的长度p2和该末个图像块在该第二方向上的长度p3满足:
z*p1+p2+p3=M;
其中,
Figure PCTCN2018077337-appb-000029
M为该桌面图像在该第二方向上的总长度,
Figure PCTCN2018077337-appb-000030
表示向上取整,p2等于该第一长度值R1,该第二方向与该第一方向垂直。
在本申请的一个实施例中,在该长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,该命中率为按照该长度值划分图像区域所得的子图像块集合的命中图像块 的比重;在该块分割方案集合中多个块分割方案的优先级顺序对应该长度值集合中的优先级顺序。
在本申请的一个实施例中,该划分模块301,用于:获取第二长度值,该第二长度值为用于划分该图像区域的前一个图像区域的目标块分割方案所使用的长度值,该前一个图像区域为在该桌面图像中沿该第一方向与该图像区域相邻的已划分图像块的一个图像区域;使用该第二长度值对应的块分割方案划分该图像区域,得到备选子图像块集合;在该备选子图像块集合中的命中图像块的比重大于或等于该目标子阈值时,将该备选子图像块集合作为目标子图像块集合;在该备选子图像块集合中的命中图像块的比重小于该目标子阈值时,依次使用该块分割方案集合中的多个块分割方案划分该图像区域,得到该目标子图像块集合。
综上所述,本申请实施例提供的图像发送装置,通过服务端按照图像分割方案集合包括的图像分割方案对桌面图像进行划分,得到满足目标条件的目标图像块集合,而后服务端将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端,其中,该目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重,因此,可以保证服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高,由于命中图像块的数据信息为命中图像块的标志值,非命中图像块的数据信息为非命中图像块的图像数据,其中,该图像数据可以为非命中图像块的像素值,且,标志值的数据量一般小于图像数据的数据量,因此,相较于非命中图像块而言,服务端向用户端发送命中图像块的数据信息所需要的带宽较小,故而,服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高可以节省服务端与用户端之间的带宽。
本申请实施例提供了一种图像发送装置400,该图像发送装置400可以为VDI架构中的服务端,该图像发送装置400中可以部署有虚拟机。可选的,该图像发送装置400可以是服务器,或者可以是其它可以部署虚拟机的计算设备。该图像发送装置400可以用于执行上述方法实施例中提供的图像发送方法。
参见图4,该图像发送装置400包括处理器,例如中央处理单元(central processing unit,CPU)401,其中,图像发送装置400包括的处理器可以用于实现上述实施例中划分模块301的功能。该图像发送装置400包括存储器,例如随机存取存储器(random-access memory,RAM)402和只读存储器(read-only memory,ROM)403的系统存储器404。该图像发送装置400包括连接系统存储器404和中央处理单元401的系统总线405。该图像发送装置400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(input/output,I/O)系统406,和用于存储操作系统413、应用程序414和其他程序模块415的大容量存储设备407。
该基本输入/输出系统406包括有用于显示信息的显示器408和用于用户输入信息的诸如鼠标、键盘之类的输入设备409。其中该显示器408和输入设备409都通过连接到系统总线405的输入输出控制器410连接到中央处理单元401。该基本输入/输出系统406还可以包括输入输出控制器410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器410还提供输出到显示屏、打印机或其他类型的输出 设备。
该大容量存储设备407通过连接到系统总线405的大容量存储控制器(未示出)连接到中央处理单元401。该大容量存储设备407及其相关联的计算机可读介质为图像发送装置400提供非易失性存储。也就是说,该大容量存储设备407可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器404和大容量存储设备407可以统称为存储器。
根据本申请的各种实施例,该图像发送装置400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即图像发送装置400可以通过连接在该系统总线405上的网络接口单元411连接到网络412,或者说,也可以使用网络接口单元411来连接到其他类型的网络或远程计算机系统(未示出),其中,图像发送装置400包括的网络接口单元411可以用于实现上述实施例中发送模块302的功能。
该存储器还包括一个或者一个以上的程序,该一个或者一个以上程序存储于存储器中,中央处理器401通过执行该一个或一个以上程序来实现上述方法实施例提供的图像发送方法。
本申请实施例还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成本申请方法实施例所示的图像发送方法。例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行本申请方法实施例所示的图像发送方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (26)

  1. 一种图像发送方法,其特征在于,所述方法包括:
    按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,所述目标图像块集合包括多个图像块,所述多个图像块中的每个图像块为命中图像块或非命中图像块,另外,所述目标图像块集合满足目标条件,所述目标条件包括:所述目标图像块集合中的所述命中图像块的比重大于或等于目标阈值,或者所述目标图像块集合中的所述命中图像块的比重大于其他图像块集合中的命中图像块的比重,所述其他图像块集合是按照所述图像分割方案集合所包括的其他图像分割方案划分所述桌面图像而获得的;
    将所述目标图像块集合中的每个图像块的数据信息和所述每个图像块的位置信息发送至用户端,其中,所述命中图像块的数据信息包括所述命中图像块的标志值,所述非命中图像块的数据信息包括所述非命中图像块的图像数据,所述每个图像块的位置信息记录所述图像块在所述桌面图像中的位置。
  2. 根据权利要求1所述的方法,其特征在于,所述按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,包括:
    依次使用所述图像分割方案集合中的多个图像分割方案分别划分所述桌面图像,直到划分得到的图像块集合中命中图像块的数量占所述划分得到的图像块集合中的所有图像块的数量的比重大于或等于所述目标阈值;
    将所述划分得到的图像块集合作为目标图像块集合。
  3. 根据权利要求1所述的方法,其特征在于,所述按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,包括:
    按照所述图像分割方案集合中的每个图像分割方案分别划分所述桌面图像,得到所述每个图像分割方案对应的图像块集合;
    针对所述每个图像块集合,计算所述图像块集合的命中图像块的数量占所述图像块集合中的所有图像块的数量的比重;
    从与所述图像分割方案集合中的所有图像分割方案对应的多个图像块集合中选择具有最高比重的图像块集合作为所述目标图像块集合。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,所述图像分割方案集合中的多种图像分割方案包括不同的区域划分方式;
    按照所述图像分割方案集合的每个图像分割方案划分所述桌面图像包括:
    按照所述图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域;
    将所述多个图像区域中的每个图像区域划分为至少一个图像块。
  5. 根据权利要求4所述的方法,其特征在于,所述按照所述图像分割方案集合中的一种图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域,包括:
    确定所述桌面图像的指令原点,所述桌面图像的指令原点为所述桌面图像的外包矩形的 一个顶点,所述第一方向与所述外包矩形的一边平行;
    以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,所述多个图像区域中除末个图像区域之外的每个图像区域在所述第一方向上的长度k1均等于第一预设分割长度,所述末个图像区域在所述第一方向上的长度k2满足:k2=N-y1*k1,
    Figure PCTCN2018077337-appb-100001
    N为所述桌面图像在第一方向上的总长度,
    Figure PCTCN2018077337-appb-100002
    表示向上取整。
  6. 根据权利要求4所述的方法,其特征在于,所述按照所述图像分割方案集合中的一种图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域,包括:
    以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述桌面图像的指令原点为所述桌面图像的外包矩形的一个顶点,所述第一方向与所述外包矩形的一边平行;
    所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k3均等于第一预设分割长度L,所述首个图像区域的第一边界经过所述桌面图像的指令原点,所述首个图像区域的第二边界在所述屏幕坐标系中的第一方向上的坐标值属于所述桌面图像在所述屏幕坐标系中的第一方向上的坐标范围,且为所述第一预设分割长度的整数倍,所述第一边界和所述第二边界均与所述第一方向垂直,所述第一边界和所述第二边界的距离小于或等于所述第一预设分割长度,所述首个图像区域在所述第一方向上的长度k4和所述末个图像区域在所述第一方向上的长度k5满足:
    y2*k3+k4+k5=N;
    其中,
    Figure PCTCN2018077337-appb-100003
    N为所述桌面图像在第一方向上的总长度,
    Figure PCTCN2018077337-appb-100004
    表示向上取整,k4等于所述第一边界和所述第二边界之间的距离。
  7. 根据权利要求4所述的方法,其特征在于,所述按照所述图像分割方案集合中的一种图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域,包括:
    在所述桌面图像的预设区域中确定目标图像块,所述目标图像块为命中图像块,所述目标图像块在所述第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,所述第一方向与所述第二方向垂直,所述预设区域的指令原点与所述桌面图像的指令原点相同;
    以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k6均等于所述第一预设分割长度L,所述首个图像区域在所述第一方向上的长度k7和所述末个图像区域在所述第一方向上的长度k8满足:
    y3*k6+k7+k8=N;
    其中,
    Figure PCTCN2018077337-appb-100005
    N为所述桌面图像在所述第一方向上的总长度,
    Figure PCTCN2018077337-appb-100006
    表示向上取整,k7等于所述目标图像块的指令原点与所述桌面图像的指令原点在所述第一方向上的距离。
  8. 根据权利要求7所述的方法,其特征在于,所述目标图像块的指令原点与所述桌面图像的指令原点在所述第一方向上的距离L1满足:0<L1<L,所述目标图像块的指令原点与所 述桌面图像的指令原点在所述第二方向上的距离L2满足:0≤L2<L′。
  9. 根据权利要求4至8任一项所述的方法,其特征在于,所述将所述多个图像区域中的每个图像区域划分为至少一个图像块包括:
    依次按照块分割方案集合包括的块分割方案分别划分所述图像区域,得到目标子图像块集合,所述目标子图像块集合包括多个图像块,所述目标子图像块集合满足目标子条件,所述目标子条件包括:所述目标子图像块集合中的命中图像块的比重大于或等于目标子阈值,或者所述目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,所述其他子图像块集合是按照所述块分割方案集合所包括的其他块分割方案划分所述图像区域而获得的。
  10. 根据权利要求9所述的方法,其特征在于,所述依次按照块分割方案集合中的块分割方案分别划分所述图像区域包括:
    从长度值集合中确定与所述块分割方案对应的第一长度值R1,其中,所述长度值集合包括多个长度值,所述长度值集合包括的每个长度值小于或等于第二预设分割长度L′,所述长度值集合中的不同长度值供所述块分割方案集合中的不同块分割方案使用;
    将所述图像区域分割成沿第二方向依次排布的多个图像块,所述多个图像块中除首个图像块和末个图像块之外的每个图像块在所述第二方向上的长度p1等于所述第二预设分割长度L′,所述首个图像块在所述第二方向上的长度p2和所述末个图像块在所述第二方向上的长度p3满足:
    z*p1+p2+p3=M;
    其中,
    Figure PCTCN2018077337-appb-100007
    M为所述桌面图像在所述第二方向上的总长度,
    Figure PCTCN2018077337-appb-100008
    表示向上取整,p2等于所述第一长度值R1,所述第二方向与所述第一方向垂直。
  11. 根据权利要求10所述的方法,其特征在于,在所述长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,所述命中率为按照所述长度值划分图像区域所得的子图像块集合的命中图像块的比重;
    在所述块分割方案集合中多个块分割方案的优先级顺序对应所述长度值集合中的优先级顺序。
  12. 根据权利要求11所述的方法,其特征在于,所述按照所述块分割方案集合划分所述图像区域包括:
    获取第二长度值,所述第二长度值为用于划分所述图像区域的前一个图像区域的目标块分割方案所使用的长度值,所述前一个图像区域为在所述桌面图像中沿所述第一方向与所述图像区域相邻的已划分图像块的一个图像区域;
    使用所述第二长度值对应的块分割方案划分所述图像区域,得到备选子图像块集合;
    在所述备选子图像块集合中的命中图像块的比重大于或等于所述目标子阈值时,将所述备选子图像块集合作为目标子图像块集合;
    在所述备选子图像块集合中的命中图像块的比重小于所述目标子阈值时,依次使用所述 块分割方案集合中的多个块分割方案划分所述图像区域,得到所述目标子图像块集合。
  13. 一种图像发送装置,其特征在于,所述装置包括:
    划分模块,用于按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,所述目标图像块集合包括多个图像块,所述多个图像块中的每个图像块为命中图像块或非命中图像块,另外,所述目标图像块集合满足目标条件,所述目标条件包括:所述目标图像块集合中的所述命中图像块的比重大于或等于目标阈值,或者所述目标图像块集合中的所述命中图像块的比重大于其他图像块集合中的命中图像块的比重,所述其他图像块集合是按照所述图像分割方案集合所包括的其他图像分割方案划分所述桌面图像而获得的;
    发送模块,用于将所述目标图像块集合中的每个图像块的数据信息和所述每个图像块的位置信息发送至用户端,其中,所述命中图像块的数据信息包括所述命中图像块的标志值,所述非命中图像块的数据信息包括所述非命中图像块的图像数据,所述每个图像块的位置信息记录所述图像块在所述桌面图像中的位置。
  14. 根据权利要求13所述的装置,其特征在于,所述划分模块,用于:
    依次使用所述图像分割方案集合中的多个图像分割方案分别划分所述桌面图像,直到划分得到的图像块集合中命中图像块的数量占所述划分得到的图像块集合中的所有图像块的数量的比重大于或等于所述目标阈值;
    将所述划分得到的图像块集合作为目标图像块集合。
  15. 根据权利要求13所述的装置,其特征在于,所述划分模块,用于:
    按照所述图像分割方案集合中的每个图像分割方案分别划分所述桌面图像,得到所述每个图像分割方案对应的图像块集合;
    针对所述每个图像块集合,计算所述图像块集合的命中图像块的数量占所述图像块集合中的所有图像块的数量的比重;
    从与所述图像分割方案集合中的所有图像分割方案对应的多个图像块集合中选择具有最高比重的图像块集合作为所述目标图像块集合。
  16. 根据权利要求13至15任一项所述的装置,其特征在于,所述图像分割方案集合中的多种图像分割方案包括不同的区域划分方式;所述划分模块,用于:
    按照所述图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域;
    将所述多个图像区域中的每个图像区域划分为至少一个图像块。
  17. 根据权利要求16所述的装置,其特征在于,所述划分模块,用于:
    确定所述桌面图像的指令原点,所述桌面图像的指令原点为所述桌面图像的外包矩形的一个顶点,所述第一方向与所述外包矩形的一边平行;
    以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,所述多个图像区域中除末个图像区域之外的每个图像区域在所述第一方 向上的长度k1均等于第一预设分割长度,所述末个图像区域在所述第一方向上的长度k2满足:k2=N-y1*k1,
    Figure PCTCN2018077337-appb-100009
    N为所述桌面图像在第一方向上的总长度,
    Figure PCTCN2018077337-appb-100010
    表示向上取整。
  18. 根据权利要求16所述的装置,其特征在于,所述划分模块,用于:
    以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述桌面图像的指令原点为所述桌面图像的外包矩形的一个顶点,所述第一方向与所述外包矩形的一边平行;
    所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k3均等于第一预设分割长度L,所述首个图像区域的第一边界经过所述桌面图像的指令原点,所述首个图像区域的第二边界在所述屏幕坐标系中的第一方向上的坐标值属于所述桌面图像在所述屏幕坐标系中的第一方向上的坐标范围,且为所述第一预设分割长度的整数倍,所述第一边界和所述第二边界均与所述第一方向垂直,所述第一边界和所述第二边界的距离小于或等于所述第一预设分割长度,所述首个图像区域在所述第一方向上的长度k4和所述末个图像区域在所述第一方向上的长度k5满足:
    y2*k3+k4+k5=N;
    其中,
    Figure PCTCN2018077337-appb-100011
    N为所述桌面图像在第一方向上的总长度,
    Figure PCTCN2018077337-appb-100012
    表示向上取整,k4等于所述第一边界和所述第二边界之间的距离。
  19. 根据权利要求16所述的装置,其特征在于,所述划分模块,用于:
    在所述桌面图像的预设区域中确定目标图像块,所述目标图像块为命中图像块,所述目标图像块在所述第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,所述第一方向与所述第二方向垂直,所述预设区域的指令原点与所述桌面图像的指令原点相同;
    以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k6均等于所述第一预设分割长度L,所述首个图像区域在所述第一方向上的长度k7和所述末个图像区域在所述第一方向上的长度k8满足:
    y3*k6+k7+k8=N;
    其中,
    Figure PCTCN2018077337-appb-100013
    N为所述桌面图像在所述第一方向上的总长度,
    Figure PCTCN2018077337-appb-100014
    表示向上取整,k7等于所述目标图像块的指令原点与所述桌面图像的指令原点在所述第一方向上的距离。
  20. 根据权利要求19所述的装置,其特征在于,所述目标图像块的指令原点与所述桌面图像的指令原点在所述第一方向上的距离L1满足:0<L1<L,所述目标图像块的指令原点与所述桌面图像的指令原点在所述第二方向上的距离L2满足:0≤L2<L′。
  21. 根据权利要求16至20任一项所述的装置,其特征在于,所述划分模块,用于:
    依次按照块分割方案集合包括的块分割方案分别划分所述图像区域,得到目标子图像块集合,所述目标子图像块集合包括多个图像块,所述目标子图像块集合满足目标子条件,所 述目标子条件包括:所述目标子图像块集合中的命中图像块的比重大于或等于目标子阈值,或者所述目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,所述其他子图像块集合是按照所述块分割方案集合所包括的其他块分割方案划分所述图像区域而获得的。
  22. 根据权利要求21所述的装置,其特征在于,所述划分模块,用于:
    从长度值集合中确定与所述块分割方案对应的第一长度值R1,其中,所述长度值集合包括多个长度值,所述长度值集合包括的每个长度值小于或等于第二预设分割长度L′,所述长度值集合中的不同长度值供所述块分割方案集合中的不同块分割方案使用;
    将所述图像区域分割成沿第二方向依次排布的多个图像块,所述多个图像块中除首个图像块和末个图像块之外的每个图像块在所述第二方向上的长度p1等于所述第二预设分割长度L′,所述首个图像块在所述第二方向上的长度p2和所述末个图像块在所述第二方向上的长度p3满足:
    z*p1+p2+p3=M;
    其中,
    Figure PCTCN2018077337-appb-100015
    M为所述桌面图像在所述第二方向上的总长度,
    Figure PCTCN2018077337-appb-100016
    表示向上取整,p2等于所述第一长度值R1,所述第二方向与所述第一方向垂直。
  23. 根据权利要求22所述的装置,其特征在于,在所述长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,所述命中率为按照所述长度值划分图像区域所得的子图像块集合的命中图像块的比重;
    在所述块分割方案集合中多个块分割方案的优先级顺序对应所述长度值集合中的优先级顺序。
  24. 根据权利要求23所述的装置,其特征在于,所述划分模块,用于:
    获取第二长度值,所述第二长度值为用于划分所述图像区域的前一个图像区域的目标块分割方案所使用的长度值,所述前一个图像区域为在所述桌面图像中沿所述第一方向与所述图像区域相邻的已划分图像块的一个图像区域;
    使用所述第二长度值对应的块分割方案划分所述图像区域,得到备选子图像块集合;
    在所述备选子图像块集合中的命中图像块的比重大于或等于所述目标子阈值时,将所述备选子图像块集合作为目标子图像块集合;
    在所述备选子图像块集合中的命中图像块的比重小于所述目标子阈值时,依次使用所述块分割方案集合中的多个块分割方案划分所述图像区域,得到所述目标子图像块集合。
  25. 一种图像发送装置,其特征在于,所述装置包括处理器和存储器;
    所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现权利要求1至12中任一所述的图像发送方法。
  26. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1至12中任一所述的图像发送 方法。
PCT/CN2018/077337 2018-02-27 2018-02-27 图像发送方法、装置及存储介质 WO2019165574A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP18908129.2A EP3722949B1 (en) 2018-02-27 2018-02-27 Image transmission method, apparatus and storage medium
PCT/CN2018/077337 WO2019165574A1 (zh) 2018-02-27 2018-02-27 图像发送方法、装置及存储介质
CN201880001490.3A CN109076110B (zh) 2018-02-27 2018-02-27 图像发送方法、装置及存储介质
US16/751,957 US11080859B2 (en) 2018-02-27 2020-01-24 Image communication based on hit image block conditions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/077337 WO2019165574A1 (zh) 2018-02-27 2018-02-27 图像发送方法、装置及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/751,957 Continuation US11080859B2 (en) 2018-02-27 2020-01-24 Image communication based on hit image block conditions

Publications (1)

Publication Number Publication Date
WO2019165574A1 true WO2019165574A1 (zh) 2019-09-06

Family

ID=64789304

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/077337 WO2019165574A1 (zh) 2018-02-27 2018-02-27 图像发送方法、装置及存储介质

Country Status (4)

Country Link
US (1) US11080859B2 (zh)
EP (1) EP3722949B1 (zh)
CN (1) CN109076110B (zh)
WO (1) WO2019165574A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541919A (zh) * 2020-12-29 2021-03-23 申建常 一种图片分割处理方法及处理系统
CN113176961B (zh) * 2021-05-14 2024-05-31 深圳前海微众银行股份有限公司 桌面帧处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294438A (zh) * 2013-06-21 2013-09-11 镇江冈山电子有限公司 虚拟桌面图像的控制传输方法及系统
CN103402089A (zh) * 2013-07-24 2013-11-20 江苏晓山信息产业股份有限公司 一种基于宏块技术的虚拟桌面图像压缩方法
US20140321553A1 (en) * 2013-04-25 2014-10-30 Vmware, Inc. Systems and methods for using pre-calculated block hashes for image block matching
CN107145340A (zh) * 2017-03-22 2017-09-08 深信服科技股份有限公司 虚拟桌面图像传输方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100152600A1 (en) * 2008-04-03 2010-06-17 Kai Sensors, Inc. Non-contact physiologic motion sensors and methods for use
US9740293B2 (en) * 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US8452930B2 (en) * 2009-03-27 2013-05-28 Hitachi, Ltd. Methods and apparatus for backup and restore of thin provisioning volume
CN102595116B (zh) * 2011-01-14 2014-03-12 华为技术有限公司 多图像块划分的编解码方法和装置
TWI492166B (zh) * 2012-01-12 2015-07-11 Kofax Inc 行動影像擷取和處理的系統和方法
CN103873886B (zh) 2012-12-14 2017-02-22 华为技术有限公司 一种处理图像信息的方法、装置及系统
CN103353939B (zh) * 2013-06-19 2016-05-25 电子科技大学 动态背景下图像特征对象模版提取及识别方法
US20150106948A1 (en) * 2013-10-10 2015-04-16 Elwha Llc Methods, systems, and devices for monitoring privacy beacons related to entities depicted in images
CN104469395B (zh) * 2014-12-12 2017-11-07 华为技术有限公司 图像传输方法和装置
CN107577979B (zh) * 2017-07-26 2020-07-03 中科创达软件股份有限公司 DataMatrix型二维码快速识别方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140321553A1 (en) * 2013-04-25 2014-10-30 Vmware, Inc. Systems and methods for using pre-calculated block hashes for image block matching
CN103294438A (zh) * 2013-06-21 2013-09-11 镇江冈山电子有限公司 虚拟桌面图像的控制传输方法及系统
CN103402089A (zh) * 2013-07-24 2013-11-20 江苏晓山信息产业股份有限公司 一种基于宏块技术的虚拟桌面图像压缩方法
CN107145340A (zh) * 2017-03-22 2017-09-08 深信服科技股份有限公司 虚拟桌面图像传输方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3722949A4 *

Also Published As

Publication number Publication date
US11080859B2 (en) 2021-08-03
CN109076110A (zh) 2018-12-21
CN109076110B (zh) 2020-06-26
US20200160531A1 (en) 2020-05-21
EP3722949A4 (en) 2021-04-07
EP3722949A1 (en) 2020-10-14
EP3722949B1 (en) 2023-08-09

Similar Documents

Publication Publication Date Title
US10853726B2 (en) Neural architecture search for dense image prediction tasks
US9798774B1 (en) Graph data search method and apparatus
US9785608B2 (en) Predictive, multi-layer caching architectures
US11645585B2 (en) Method for approximate k-nearest-neighbor search on parallel hardware accelerators
US11317123B2 (en) Systems and methods for using pre-calculated block hashes for image block matching
CN110297680B (zh) 一种传输虚拟桌面图像的方法及装置
US10848407B2 (en) Efficient density based geo clustering
US9754385B2 (en) Efficient encoding of composited display frames
WO2019165574A1 (zh) 图像发送方法、装置及存储介质
CN112015553A (zh) 基于机器学习模型的数据处理方法、装置、设备和介质
US11347646B2 (en) Method, device and computer program product for managing cache based on matching API
US10659304B2 (en) Method of allocating processes on node devices, apparatus, and storage medium
CN114616578A (zh) 改进定向和其他设置的内容提供者建议
CN109218799B (zh) 安卓电视快速切换高清图的方法、存储介质、设备及系统
US11381630B2 (en) Transmitting data over a network in representational state transfer (REST) applications
CN117270834A (zh) 地图渲染方法、装置、电子设备和存储介质
US12010296B2 (en) Lossless image compression using block based prediction and optimized context adaptive entropy coding
CN114897666B (zh) 图数据存储、访问、处理方法、训练方法、设备及介质
JP2018511131A (ja) オンライン媒体のための階層的なコストベースのキャッシング
CN115250352A (zh) 将astc纹理划分成子图像集
JP2014099848A (ja) イメージ分割システム及びその方法
CN116644083B (zh) 数据更新方法、装置、设备及存储介质
CN113849255B (zh) 一种数据处理方法、设备以及存储介质
CN111800742B (zh) 一种移动位置数据的管理方法、装置、存储介质及终端
CN115759233B (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: 18908129

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE