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

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

Info

Publication number
CN109076110A
CN109076110A CN201880001490.3A CN201880001490A CN109076110A CN 109076110 A CN109076110 A CN 109076110A CN 201880001490 A CN201880001490 A CN 201880001490A CN 109076110 A CN109076110 A CN 109076110A
Authority
CN
China
Prior art keywords
image
block
region
length
image block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880001490.3A
Other languages
English (en)
Other versions
CN109076110B (zh
Inventor
李勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109076110A publication Critical patent/CN109076110A/zh
Application granted granted Critical
Publication of CN109076110B publication Critical patent/CN109076110B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

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

Abstract

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

Description

图像发送方法、装置及存储介质
技术领域
本申请涉及虚拟桌面领域,特别涉及一种图像发送方法、装置及存储介质。
背景技术
虚拟桌面设施(英文:Virtual Desktop Infrastructure;简称:VDI)可以实现桌面的远程访问,典型的虚拟桌面设施的架构可以包括服务端和用户端,其中,服务端上可以部署有虚拟机,用户端可以访问服务端中部署的虚拟机,并向该虚拟机发送操作指令以使用虚拟机中的应用程序,虚拟机中的应用程序可以基于用户端发送的操作指令生成桌面图像,并通过虚拟机中的显示协议程序将该桌面图像发送至用户端,从而实现桌面的远程访问。
为了节约通信资源,虚拟机在向用户端发送桌面图像时,往往需要使用图像缓存技术,在图像缓存技术中,虚拟机可以将待发送的桌面图像进行分割,以得到多个图像块,而后,对于每一图像块,虚拟机可以根据该图像块中所有像素的像素值以及预设的算法(例如哈希算法)计算得到该图像块对应的标志值,虚拟机可以查询每一图像块对应的标志值是否存储于服务端的缓存中,当某一图像块对应的标志值存储于服务端的缓存中,则说明虚拟机向用户端发送过该图像块,且,用户端中存储有该图像块的像素值,在这种情况下,虚拟机可以将该图像块对应的标志值发送给用户端,以由用户端根据该标志值获取该图像块的像素值,而当某一图像块对应的标志值没有存储于服务端的缓存中时,虚拟机需要将该图像块的像素值发送至用户端,实际实现时,虚拟机可以对该图像块的像素值进行编码,并将编码后的像素值发送至用户端。由此可见,待发送的桌面图像分割得到的多个图像块中命中图像块的比重越高,虚拟机向用户端发送桌面图像所需的通信资源越少,其中,命中图像块为对应的标志值存储于服务端中的缓存的图像块。
相关技术中,虚拟机可以将待发送的桌面图像按照固定的分割方案进行分割,例如,虚拟机可以将待发送的桌面图像以左上角的顶点为分割起点,分割成多个64*64的图像块。
按照固定方式进行分割时,容易出现待发送的桌面图像分割得到的多个图像块中命中图像块的比重较小的情况,例如,在待发送的桌面图像相较于已经发送的桌面图像产生了平移时,对待发送的桌面图像按照固定分割方案分割得到的多个图像块很可能与已经发送的桌面图像的多个图像块都不相同,在这种情况下,待发送的桌面图像分割得到的多个图像块中命中图像块的比重较小。因此,会造成通信资源的浪费。
发明内容
本申请提供了一种图像发送方法、装置及存储介质,能够避免服务端与用户端之间的通信资源的浪费。本申请实施例提供的技术方案如下:
第一方面,提供了一种图像发送方法,所述方法包括:
按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,所述目标图像块集合包括多个图像块,所述多个图像块中的每个图像块为命中图像块或非命中图像块,另外,所述目标图像块集合满足目标条件,所述目标条件包括:所述目标图像块集合中的所述命中图像块的比重大于或等于目标阈值,或者所述目标图像块集合中的所述命中图像块的比重大于其他图像块集合中的命中图像块的比重,所述其他图像块集合是按照所述图像分割方案集合所包括的其他图像分割方案划分所述桌面图像而获得的;将所述目标图像块集合中的每个图像块的数据信息和所述每个图像块的位置信息发送至用户端,其中,所述命中图像块的数据信息包括所述命中图像块的标志值,所述非命中图像块的数据信息包括所述非命中图像块的图像数据,所述每个图像块的位置信息记录所述图像块在所述桌面图像中的位置。
通过服务端按照图像分割方案集合包括的图像分割方案对桌面图像进行划分,得到满足目标条件的目标图像块集合,而后服务端将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端,其中,该目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重,因此,可以保证服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高,由于命中图像块的数据信息为命中图像块的标志值,非命中图像块的数据信息为非命中图像块的图像数据,其中,该图像数据可以为非命中图像块的像素值,且,标志值的数据量一般小于图像数据的数据量,因此,相较于非命中图像块而言,服务端向用户端发送命中图像块的数据信息所需要的带宽较小,故而,服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高可以节省服务端与用户端之间的带宽。
可选的,上文所述的按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,包括:依次使用该图像分割方案集合中的多个图像分割方案分别划分该桌面图像,直到划分得到的图像块集合中命中图像块的数量占该划分得到的图像块集合中的所有图像块的数量的比重大于或等于该目标阈值;而后,将该划分得到的图像块集合作为目标图像块集合。
可选的,上文所述的按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,包括:按照所述图像分割方案集合中的每个图像分割方案分别划分所述桌面图像,得到所述每个图像分割方案对应的图像块集合;针对所述每个图像块集合,计算所述图像块集合的命中图像块的数量占所述图像块集合中的所有图像块的数量的比重;从与所述图像分割方案集合中的所有图像分割方案对应的多个图像块集合中选择具有最高比重的图像块集合作为所述目标图像块集合。
由于服务端可以从对桌面图像进行划分得到的至少一个图像块集合中确定一个命中图像块比重大于或等于目标阈值的目标图像块集合或者确定一个命中图像块比重最高的目标图像块集合,因此,可以保证服务端最终确定的目标图像块集合中命中图像块的比重较高,这样,在后续步骤中基于该目标图像块集合向用户端发送桌面图像能够降低服务端与用户端之间的带宽。
可选的,上文所述的图像分割方案集合中的多种图像分割方案包括不同的区域划分方式;那么,按照该图像分割方案集合的每个图像分割方案划分该桌面图像包括:按照该图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域;而后,将该多个图像区域中的每个图像区域划分为至少一个图像块。
可选的,上文所述的按照该图像分割方案集合中的一种图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域可以包括:确定该桌面图像的指令原点,其中,该桌面图像的指令原点为该桌面图像的外包矩形的一个顶点,第一方向与该外包矩形的一边平行;而后,以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该多个图像区域中除末个图像区域之外的每个图像区域在该第一方向上的长度k1均等于第一预设分割长度,该末个图像区域在该第一方向上的长度k2满足:k2=N-y1*k1,N为该桌面图像在第一方向上的总长度,表示向上取整。
由于服务端可以以桌面图像的指令原点为分割起点,按照预设步长(也即是第一预设分割长度L)对桌面图像进行分割,因此,在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点没有发生变化的情况下,按照指令原点分割方案对待发送的桌面图像进行分割得到的多个图像区域与按照指令原点分割方案对已经发送的桌面图像进行分割得到的多个图像区域重合的概率较高,那么在后续步骤中,对待发送的桌面图像的多个图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
可选的,上文所述的按照该图像分割方案集合中的一种图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域,包括:以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域;其中,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k3均等于第一预设分割长度L,该首个图像区域的第一边界经过该桌面图像的指令原点,该首个图像区域的第二边界在该屏幕坐标系中的第一方向上的坐标值属于该桌面图像在该屏幕坐标系中的第一方向上的坐标范围,且为该第一预设分割长度的整数倍,该第一边界和该第二边界均与该第一方向垂直,该第一边界和该第二边界的距离小于或等于该第一预设分割长度,该首个图像区域在该第一方向上的长度k4和该末个图像区域在该第一方向上的长度k5满足:
y2*k3+k4+k5=N;
其中,N为该桌面图像在第一方向上的总长度,表示向上取整,k4等于该第一边界和该第二边界之间的距离。
在实际应用中,当桌面图像发生了较为显著的变化(例如,用户端与服务端中部署的虚拟机初始建立连接时桌面图像即会发生显著的变化)时,服务端通常会向用户端发送整幅图像,其中,该整幅图像的尺寸与用户端的屏幕尺寸相同,也即是,该整幅图像的指令原点与用户端屏幕的左上角重合。在发送该整幅图像时,服务端可以将该整幅图像以指令原点(用户端屏幕的左上角)为分割起点按照固定步长(第一预设长度L)进行分割得到多个图像区域,因此,该整幅图像分割得到的多个图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
而在本申请实施例中,服务端对桌面图像进行分割得到的首个图像区域的第二边界在用户端的屏幕坐标系的第一方向上的坐标值为第一预设分割长度L的整数倍,在分割得到首个图像区域后,服务端可以以固定步长对桌面图像的其他区域进行分割得到除首个图像区域和末个图像区域以外的其他图像区域,由于该固定步长为第一预设分割长度,因此,该其他图像区域中与第二方向平行的两个边界在用户端的屏幕坐标系的第一方向上的坐标值均为第一预设分割长度L的整数倍。
这样,对桌面图像进行分割得到的除首个图像区域和末个图像区域以外的其他图像区域与整幅桌面图像分割得到的图像区域重合,在后续步骤中,对该其他图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
可选的,上文所述的按照该图像分割方案集合中的一种图像分割方案的区域划分方式将该桌面图像沿第一方向划分为多个图像区域,包括:在该桌面图像的预设区域中确定目标图像块,该目标图像块为命中图像块,该目标图像块在该第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,该第一方向与该第二方向垂直,该预设区域的指令原点与该桌面图像的指令原点相同;而后,以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k6均等于该第一预设分割长度L,该首个图像区域在该第一方向上的长度k7和该末个图像区域在该第一方向上的长度k8满足:
y3*k6+k7+k8=N;
其中,N为该桌面图像在该第一方向上的总长度,表示向上取整,k7等于该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离。
可选的,该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离L1满足:0<L1<L,该目标图像块的指令原点与该桌面图像的指令原点在该第二方向上的距离L2满足:0≤L2<L′。
在待发送的桌面图像的指令原点相较于已经发送的桌面图像的指令原点发生变化的情况下,本申请实施例可以搜索已经发送的桌面图像的指令原点在第一方向上的可能位置,而后,服务端可以以该可能的位置为分割起点按照固定的步长(也即是第一预设分割长度)对桌面图像进行分割,这样,待发送的桌面图像分割得到的多个图像区域与已经发送的桌面图像分割得到的多个图像区域重合的可能性较高,那么在后续步骤中,对待发送的桌面图像的多个图像区域进行分割得到的图像块集合中命中图像块的比重相应地就较高,这样就能够降低服务端与用户端之间的带宽。
根据上述说明可知,由于目标图像块为命中图像块,而且,目标图像块的指令原点与待发送的桌面图像的指令原点的距离较小,因此,该目标图像块很可能是已经发送的桌面图像分割得到首个图像区域中的首个图像块,也就是说,目标图像块的指令原点很可能与已经发送的桌面图像的指令原点重合,因此,服务端搜索目标图像块的指令原点的实质就是搜索已经发送的桌面图像的指令原点在第一方向上的可能位置。
可选的,上文所述的将该多个图像区域中的每个图像区域划分为至少一个图像块包括:依次按照块分割方案集合包括的块分割方案分别划分该图像区域,得到目标子图像块集合,其中,该目标子图像块集合包括多个图像块,且,该目标子图像块集合满足目标子条件,该目标子条件包括:该目标子图像块集合中的命中图像块的比重大于或等于目标子阈值,或者该目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,该其他子图像块集合是按照该块分割方案集合所包括的其他块分割方案划分该图像区域而获得的。
可选的,所述按照块分割方案集合划分所述图像区域,从所述块分割方案集合中选择满足目标子条件的所述块分割方案,并确定按照所述目标块分割方案划分所述图像区域所得的目标子图像块集合,包括:依次使用所述块分割方案集合中的多个块分割方案划分所述图像区域,直到划分得到的子图像块集合中的命中图像块的数量占所述划分得到的子图像块集合中的所有图像块的数量的比重大于或等于目标子阈值;将所述划分得到的子图像块集合作为目标子图像块集合,并将所述划分得到的子图像块集合对应的块分割方案作为所述目标块分割方案。
可选的,所述按照所述块分割方案集合划分所述图像区域,从所述块分割方案集合中选择满足目标子条件的所述块分割方案,并确定按照所述目标块分割方案划分所述图像区域所得的目标子图像块集合,包括:遍历所述块分割方案集合中的多个块分割方案划分所述图像区域,得到所述多个块分割方案对应的多个子图像块集合;针对所述多个子图像块集合中每个子图像块集合,对应确定所述子图像块集合中的命中图像块的数量占所述子图像块集合中的所有图像块的数量的比重;确定所述多个子图像块集合对应的比重中的最高比重;从所述多个子图像块集合中选择具有最高比重的子图像块集合作为所述目标子图像块集合,并确定所述具有最高比重的子图像块集合对应的子图像分割方案为所述目标子图像分割方案。
可选的,上文所述的依次按照块分割方案集合中的块分割方案分别划分该图像区域包括:从长度值集合中确定与该块分割方案对应的第一长度值R1,其中,该长度值集合包括多个长度值,该长度值集合包括的每个长度值小于或等于第二预设分割长度L′,该长度值集合中的不同长度值供该块分割方案集合中的不同块分割方案使用;将该图像区域分割成沿第二方向依次排布的多个图像块,该多个图像块中除首个图像块和末个图像块之外的每个图像块在该第二方向上的长度p1等于该第二预设分割长度L′,该首个图像块在该第二方向上的长度p2和该末个图像块在该第二方向上的长度p3满足:
z*p1+p2+p3=M;
其中,M为该桌面图像在该第二方向上的总长度,表示向上取整,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;
其中,N为桌面图像在第一方向上的总长度,表示向上取整。
需要指出的是,上述第一预设分割长度L可以为宏块在第一方向上的长度,且,第一预设分割长度L为单个像素在第一方向上的长度的整数倍,其中,宏块指的是图像编解码领域中具有最大默认尺寸的图像分块,实际应用中,宏块可以为正方形的图像分块。还需要指出的是,上述末个图像区域指的是桌面图像分割得到的多个图像区域中在第一方向上距桌面图像的指令原点最远的图像区域。
由第一公式可知,当桌面图像在第一方向上的总长度N为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度等于第一预设分割长度L,当桌面图像在第一方向上的总长度N不为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度等于桌面图像在第一方向上的总长度N与第一预设分割长度L相除的余数。
例如,如图2C所示,桌面图像T1在第一方向(也即是行方向x)上的长度为7,第一预设分割长度L为2,则根据上述第一公式,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,则根据上述第一公式,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;
其中,M为桌面图像在第二方向上的总长度,表示向上取整。
需要指出的是,上述首个图像块指的是图像区域分割得到的多个图像块中在第二方向上距桌面图像的指令原点最近的图像块,末个图像块指的是图像区域分割得到的多个图像块中在第二方向上距桌面图像的指令原点最远的图像块。
由第二公式可知,当桌面图像在第二方向上的总长度M与长度值R1的差值为第二预设分割长度L′的整数倍时,该末个图像块在第二方向上的长度等于第二预设分割长度L′,当桌面图像在第二方向上的总长度M与长度值R1的差值不为第二预设分割长度L′的整数倍时,该末个图像块在第二方向上的长度等于桌面图像在第二方向上的总长度M与长度值R1的差值与第二预设分割长度L′相除的余数。
例如,如图2E所示,图像区域G1在第二方向(也即是列方向y)上的长度为7,第二预设分割长度L′为2,长度值R1为1,则根据上述第二公式,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,则根据上述第二公式,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;
其中,N为桌面图像在第一方向上的总长度,表示向上取整,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。根据上述第三公式,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;
其中,N为桌面图像在第一方向上的总长度,表示向上取整。
由上述第四公式可知,当桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k7的差值为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度k8等于第一预设分割长度L,当桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k7的差值不为第一预设分割长度L的整数倍时,该末个图像区域在第一方向上的长度k8等于桌面图像在第一方向上的总长度N与首个图像区域在第一方向上的长度k7的差值与第一预设分割长度L相除的余数。
例如,如图2J所示,桌面图像T5在第一方向(也即是行方向)上的长度为7,第一预设分割长度L等于2,目标指令原点MD与桌面图像T5的指令原点F5在第一方向上的距离L1为1。根据上述第四公式,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,N为该桌面图像在第一方向上的总长度,表示向上取整。
在本申请的一个实施例中,该划分模块301,用于:以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该桌面图像的指令原点为该桌面图像的外包矩形的一个顶点,该第一方向与该外包矩形的一边平行;该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k3均等于第一预设分割长度L,该首个图像区域的第一边界经过该桌面图像的指令原点,该首个图像区域的第二边界在该屏幕坐标系中的第一方向上的坐标值属于该桌面图像在该屏幕坐标系中的第一方向上的坐标范围,且为该第一预设分割长度的整数倍,该第一边界和该第二边界均与该第一方向垂直,该第一边界和该第二边界的距离小于或等于该第一预设分割长度,该首个图像区域在该第一方向上的长度k4和该末个图像区域在该第一方向上的长度k5满足:
y2*k3+k4+k5=N;
其中,N为该桌面图像在第一方向上的总长度,表示向上取整,k4等于该第一边界和该第二边界之间的距离。
在本申请的一个实施例中,该划分模块301,用于:在该桌面图像的预设区域中确定目标图像块,该目标图像块为命中图像块,该目标图像块在该第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,该第一方向与该第二方向垂直,该预设区域的指令原点与该桌面图像的指令原点相同;以该桌面图像的指令原点为分割起点,将该桌面图像分割成沿该第一方向依次排布的多个图像区域,其中,该多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在该第一方向上的长度k6均等于该第一预设分割长度L,该首个图像区域在该第一方向上的长度k7和该末个图像区域在该第一方向上的长度k8满足:
y3*k6+k7+k8=N;
其中,N为该桌面图像在该第一方向上的总长度,表示向上取整,k7等于该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离。
在本申请的一个实施例中,该目标图像块的指令原点与该桌面图像的指令原点在该第一方向上的距离L1满足:0<L1<L,该目标图像块的指令原点与该桌面图像的指令原点在该第二方向上的距离L2满足:0≤L2<L′。
在本申请的一个实施例中,该划分模块301,用于:依次按照块分割方案集合包括的块分割方案分别划分该图像区域,得到目标子图像块集合,该目标子图像块集合包括多个图像块,该目标子图像块集合满足目标子条件,该目标子条件包括:该目标子图像块集合中的命中图像块的比重大于或等于目标子阈值,或者该目标子图像块集合中的命中图像块的比重大于其他子图像块集合中的命中图像块的比重,该其他子图像块集合是按照该块分割方案集合所包括的其他块分割方案划分该图像区域而获得的。
在本申请的一个实施例中,该划分模块301,用于:从长度值集合中确定与该块分割方案对应的第一长度值R1,其中,该长度值集合包括多个长度值,该长度值集合包括的每个长度值小于或等于第二预设分割长度L′,该长度值集合中的不同长度值供该块分割方案集合中的不同块分割方案使用;将该图像区域分割成沿第二方向依次排布的多个图像块,该多个图像块中除首个图像块和末个图像块之外的每个图像块在该第二方向上的长度p1等于该第二预设分割长度L′,该首个图像块在该第二方向上的长度p2和该末个图像块在该第二方向上的长度p3满足:
z*p1+p2+p3=M;
其中,M为该桌面图像在该第二方向上的总长度,表示向上取整,p2等于该第一长度值R1,该第二方向与该第一方向垂直。
在本申请的一个实施例中,在该长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,该命中率为按照该长度值划分图像区域所得的子图像块集合的命中图像块的比重;在该块分割方案集合中多个块分割方案的优先级顺序对应该长度值集合中的优先级顺序。
在本申请的一个实施例中,该划分模块301,用于:获取第二长度值,该第二长度值为用于划分该图像区域的前一个图像区域的目标块分割方案所使用的长度值,该前一个图像区域为在该桌面图像中沿该第一方向与该图像区域相邻的已划分图像块的一个图像区域;使用该第二长度值对应的块分割方案划分该图像区域,得到备选子图像块集合;在该备选子图像块集合中的命中图像块的比重大于或等于该目标子阈值时,将该备选子图像块集合作为目标子图像块集合;在该备选子图像块集合中的命中图像块的比重小于该目标子阈值时,依次使用该块分割方案集合中的多个块分割方案划分该图像区域,得到该目标子图像块集合。
综上所述,本申请实施例提供的图像发送装置,通过服务端按照图像分割方案集合包括的图像分割方案对桌面图像进行划分,得到满足目标条件的目标图像块集合,而后服务端将目标图像块集合中的每个图像块的数据信息和每个图像块的位置信息发送至用户端,其中,该目标条件包括:目标图像块集合中的命中图像块的比重大于或等于目标阈值,或者目标图像块集合中的命中图像块的比重大于其他图像块集合中的命中图像块的比重,因此,可以保证服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高,由于命中图像块的数据信息为命中图像块的标志值,非命中图像块的数据信息为非命中图像块的图像数据,其中,该图像数据可以为非命中图像块的像素值,且,标志值的数据量一般小于图像数据的数据量,因此,相较于非命中图像块而言,服务端向用户端发送命中图像块的数据信息所需要的带宽较小,故而,服务端对桌面图像划分得到的目标图像块集合中命中图像块的比重较高可以节省服务端与用户端之间的带宽。
本申请实施例提供了一种图像发送装置400,该图像发送装置400可以为VDI架构中的服务端,该图像发送装置400中可以部署有虚拟机。可选的,该图像发送装置400可以是服务器,或者可以是其它可以部署虚拟机的计算设备。该图像发送装置400可以用于执行上述方法实施例中提供的图像发送方法。
参见图4,该图像发送装置400包括处理器,例如中央处理单元(centralprocessing 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,N为所述桌面图像在第一方向上的总长度,表示向上取整。
6.根据权利要求4所述的方法,其特征在于,所述按照所述图像分割方案集合中的一种图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域,包括:
以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述桌面图像的指令原点为所述桌面图像的外包矩形的一个顶点,所述第一方向与所述外包矩形的一边平行;
所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k3均等于第一预设分割长度L,所述首个图像区域的第一边界经过所述桌面图像的指令原点,所述首个图像区域的第二边界在所述屏幕坐标系中的第一方向上的坐标值属于所述桌面图像在所述屏幕坐标系中的第一方向上的坐标范围,且为所述第一预设分割长度的整数倍,所述第一边界和所述第二边界均与所述第一方向垂直,所述第一边界和所述第二边界的距离小于或等于所述第一预设分割长度,所述首个图像区域在所述第一方向上的长度k4和所述末个图像区域在所述第一方向上的长度k5满足:
y2*k3+k4+k5=N;
其中,N为所述桌面图像在第一方向上的总长度,表示向上取整,k4等于所述第一边界和所述第二边界之间的距离。
7.根据权利要求4所述的方法,其特征在于,所述按照所述图像分割方案集合中的一种图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域,包括:
在所述桌面图像的预设区域中确定目标图像块,所述目标图像块为命中图像块,所述目标图像块在所述第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,所述第一方向与所述第二方向垂直,所述预设区域的指令原点与所述桌面图像的指令原点相同;
以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k6均等于所述第一预设分割长度L,所述首个图像区域在所述第一方向上的长度k7和所述末个图像区域在所述第一方向上的长度k8满足:
y3*k6+k7+k8=N;
其中,N为所述桌面图像在所述第一方向上的总长度,表示向上取整,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;
其中,M为所述桌面图像在所述第二方向上的总长度,表示向上取整,p2等于所述第一长度值R1,所述第二方向与所述第一方向垂直。
11.根据权利要求10所述的方法,其特征在于,在所述长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,所述命中率为按照所述长度值划分图像区域所得的子图像块集合的命中图像块的比重;
在所述块分割方案集合中多个块分割方案的优先级顺序对应所述长度值集合中的优先级顺序。
12.根据权利要求11所述的方法,其特征在于,所述按照所述块分割方案集合划分所述图像区域包括:
获取第二长度值,所述第二长度值为用于划分所述图像区域的前一个图像区域的目标块分割方案所使用的长度值,所述前一个图像区域为在所述桌面图像中沿所述第一方向与所述图像区域相邻的已划分图像块的一个图像区域;
使用所述第二长度值对应的块分割方案划分所述图像区域,得到备选子图像块集合;
在所述备选子图像块集合中的命中图像块的比重大于或等于所述目标子阈值时,将所述备选子图像块集合作为目标子图像块集合;
在所述备选子图像块集合中的命中图像块的比重小于所述目标子阈值时,依次使用所述块分割方案集合中的多个块分割方案划分所述图像区域,得到所述目标子图像块集合。
13.一种图像发送装置,其特征在于,所述装置包括:
划分模块,用于按照图像分割方案集合所包括的图像分割方案划分桌面图像,得到目标图像块集合,所述目标图像块集合包括多个图像块,所述多个图像块中的每个图像块为命中图像块或非命中图像块,另外,所述目标图像块集合满足目标条件,所述目标条件包括:所述目标图像块集合中的所述命中图像块的比重大于或等于目标阈值,或者所述目标图像块集合中的所述命中图像块的比重大于其他图像块集合中的命中图像块的比重,所述其他图像块集合是按照所述图像分割方案集合所包括的其他图像分割方案划分所述桌面图像而获得的;
发送模块,用于将所述目标图像块集合中的每个图像块的数据信息和所述每个图像块的位置信息发送至用户端,其中,所述命中图像块的数据信息包括所述命中图像块的标志值,所述非命中图像块的数据信息包括所述非命中图像块的图像数据,所述每个图像块的位置信息记录所述图像块在所述桌面图像中的位置。
14.根据权利要求13所述的装置,其特征在于,所述划分模块,用于:
依次使用所述图像分割方案集合中的多个图像分割方案分别划分所述桌面图像,直到划分得到的图像块集合中命中图像块的数量占所述划分得到的图像块集合中的所有图像块的数量的比重大于或等于所述目标阈值;
将所述划分得到的图像块集合作为目标图像块集合。
15.根据权利要求13所述的装置,其特征在于,所述划分模块,用于:
按照所述图像分割方案集合中的每个图像分割方案分别划分所述桌面图像,得到所述每个图像分割方案对应的图像块集合;
针对所述每个图像块集合,计算所述图像块集合的命中图像块的数量占所述图像块集合中的所有图像块的数量的比重;
从与所述图像分割方案集合中的所有图像分割方案对应的多个图像块集合中选择具有最高比重的图像块集合作为所述目标图像块集合。
16.根据权利要求13至15任一项所述的装置,其特征在于,所述图像分割方案集合中的多种图像分割方案包括不同的区域划分方式;所述划分模块,用于:
按照所述图像分割方案的区域划分方式将所述桌面图像沿第一方向划分为多个图像区域;
将所述多个图像区域中的每个图像区域划分为至少一个图像块。
17.根据权利要求16所述的装置,其特征在于,所述划分模块,用于:
确定所述桌面图像的指令原点,所述桌面图像的指令原点为所述桌面图像的外包矩形的一个顶点,所述第一方向与所述外包矩形的一边平行;
以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,所述多个图像区域中除末个图像区域之外的每个图像区域在所述第一方向上的长度k1均等于第一预设分割长度,所述末个图像区域在所述第一方向上的长度k2满足:k2=N-y1*k1,N为所述桌面图像在第一方向上的总长度,表示向上取整。
18.根据权利要求16所述的装置,其特征在于,所述划分模块,用于:
以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述桌面图像的指令原点为所述桌面图像的外包矩形的一个顶点,所述第一方向与所述外包矩形的一边平行;
所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k3均等于第一预设分割长度L,所述首个图像区域的第一边界经过所述桌面图像的指令原点,所述首个图像区域的第二边界在所述屏幕坐标系中的第一方向上的坐标值属于所述桌面图像在所述屏幕坐标系中的第一方向上的坐标范围,且为所述第一预设分割长度的整数倍,所述第一边界和所述第二边界均与所述第一方向垂直,所述第一边界和所述第二边界的距离小于或等于所述第一预设分割长度,所述首个图像区域在所述第一方向上的长度k4和所述末个图像区域在所述第一方向上的长度k5满足:
y2*k3+k4+k5=N;
其中,N为所述桌面图像在第一方向上的总长度,表示向上取整,k4等于所述第一边界和所述第二边界之间的距离。
19.根据权利要求16所述的装置,其特征在于,所述划分模块,用于:
在所述桌面图像的预设区域中确定目标图像块,所述目标图像块为命中图像块,所述目标图像块在所述第一方向上的长度等于第一预设分割长度L,且,在第二方向的长度等于第二预设分割长度L′,所述第一方向与所述第二方向垂直,所述预设区域的指令原点与所述桌面图像的指令原点相同;
以所述桌面图像的指令原点为分割起点,将所述桌面图像分割成沿所述第一方向依次排布的多个图像区域,其中,所述多个图像区域中除首个图像区域和末个图像区域之外的每个图像区域在所述第一方向上的长度k6均等于所述第一预设分割长度L,所述首个图像区域在所述第一方向上的长度k7和所述末个图像区域在所述第一方向上的长度k8满足:
y3*k6+k7+k8=N;
其中,N为所述桌面图像在所述第一方向上的总长度,表示向上取整,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;
其中,M为所述桌面图像在所述第二方向上的总长度,表示向上取整,p2等于所述第一长度值R1,所述第二方向与所述第一方向垂直。
23.根据权利要求22所述的装置,其特征在于,在所述长度值集合中多个长度值按照历史的命中率的高低确定优先级顺序,所述命中率为按照所述长度值划分图像区域所得的子图像块集合的命中图像块的比重;
在所述块分割方案集合中多个块分割方案的优先级顺序对应所述长度值集合中的优先级顺序。
24.根据权利要求23所述的装置,其特征在于,所述划分模块,用于:
获取第二长度值,所述第二长度值为用于划分所述图像区域的前一个图像区域的目标块分割方案所使用的长度值,所述前一个图像区域为在所述桌面图像中沿所述第一方向与所述图像区域相邻的已划分图像块的一个图像区域;
使用所述第二长度值对应的块分割方案划分所述图像区域,得到备选子图像块集合;
在所述备选子图像块集合中的命中图像块的比重大于或等于所述目标子阈值时,将所述备选子图像块集合作为目标子图像块集合;
在所述备选子图像块集合中的命中图像块的比重小于所述目标子阈值时,依次使用所述块分割方案集合中的多个块分割方案划分所述图像区域,得到所述目标子图像块集合。
25.一种图像发送装置,其特征在于,所述装置包括处理器和存储器;
所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现权利要求1至12中任一所述的图像发送方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1至12中任一所述的图像发送方法。
CN201880001490.3A 2018-02-27 2018-02-27 图像发送方法、装置及存储介质 Active CN109076110B (zh)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN109076110A true CN109076110A (zh) 2018-12-21
CN109076110B CN109076110B (zh) 2020-06-26

Family

ID=64789304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880001490.3A Active CN109076110B (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)

Cited By (3)

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

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294438A (zh) * 2013-06-21 2013-09-11 镇江冈山电子有限公司 虚拟桌面图像的控制传输方法及系统
CN103353939A (zh) * 2013-06-19 2013-10-16 电子科技大学 动态背景下图像特征对象模版提取及识别方法
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
CN104469395A (zh) * 2014-12-12 2015-03-25 华为技术有限公司 图像传输方法和装置
CN107145340A (zh) * 2017-03-22 2017-09-08 深信服科技股份有限公司 虚拟桌面图像传输方法及装置
CN107577979A (zh) * 2017-07-26 2018-01-12 中科创达软件股份有限公司 DataMatrix型二维码快速识别方法、装置及电子设备

Family Cites Families (7)

* 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 华为技术有限公司 多图像块划分的编解码方法和装置
US9165187B2 (en) * 2012-01-12 2015-10-20 Kofax, Inc. Systems and methods for mobile image capture and processing
CN103873886B (zh) 2012-12-14 2017-02-22 华为技术有限公司 一种处理图像信息的方法、装置及系统
US20150106958A1 (en) * 2013-10-10 2015-04-16 Elwha Llc Methods, systems, and devices for monitoring privacy beacons related to entities depicted in images

Patent Citations (7)

* 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
CN103353939A (zh) * 2013-06-19 2013-10-16 电子科技大学 动态背景下图像特征对象模版提取及识别方法
CN103294438A (zh) * 2013-06-21 2013-09-11 镇江冈山电子有限公司 虚拟桌面图像的控制传输方法及系统
CN103402089A (zh) * 2013-07-24 2013-11-20 江苏晓山信息产业股份有限公司 一种基于宏块技术的虚拟桌面图像压缩方法
CN104469395A (zh) * 2014-12-12 2015-03-25 华为技术有限公司 图像传输方法和装置
CN107145340A (zh) * 2017-03-22 2017-09-08 深信服科技股份有限公司 虚拟桌面图像传输方法及装置
CN107577979A (zh) * 2017-07-26 2018-01-12 中科创达软件股份有限公司 DataMatrix型二维码快速识别方法、装置及电子设备

Cited By (3)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US9098312B2 (en) Methods for dynamically generating an application interface for a modeled entity and devices thereof
CN103699576B (zh) 一种用于提供搜索结果的方法与设备
CN113010621B (zh) 基于gis与知识图谱的可视化整合装置、方法及计算设备
CN105630267B (zh) 视图界面资源管理方法和装置
CN104572084B (zh) 卡片业务中用户界面生成及数据下发方法、装置
CN110990372A (zh) 一种维度数据的处理方法及装置、数据查询方法及装置
CN111722918A (zh) 业务标识码生成方法、装置、存储介质及电子设备
CN110784498B (zh) 一种个性化数据容灾方法及装置
US8237703B2 (en) Split-scene rendering of a three-dimensional model
CN104182356A (zh) 一种内存管理方法、装置及终端设备
CN113347276B (zh) 一种基于gis的移动式访问系统
CN109076110A (zh) 图像发送方法、装置及存储介质
JP7490772B2 (ja) 遠隔レンダリングシステム、画像処理方法、サーバ装置及びプログラム
CN102289479A (zh) 一种确定图像展现方式并展现图像的方法、装置和设备
CN105677699A (zh) 一种为用户生成新闻页面的方法和装置
WO2013097565A1 (en) Method and apparatus for processing three-dimensional model data
WO2023143595A1 (zh) 处理器之间的通信方法、系统、存储介质以及处理器
JP5362260B2 (ja) 非等分の分割地図画像の配信方法、地図サーバ、端末及びプログラム
US8832223B1 (en) View based streaming of GIS data
CN110347950B (zh) 一种移动端web地图的显示方法及系统
US20120177304A1 (en) System for image intelligence exploitation and creation
US9401948B2 (en) System and method for enhancing multi-module experience
US10594853B2 (en) Mobile service information display method and apparatus, mobile service information server and system, and terminal
CN109829085A (zh) 报表订阅方法、装置、计算机设备和存储介质
CN115878920B (zh) 基于WebGL的动态高性能批量图片显示方法、系统及程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220214

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.