CN102713973B - 通过从源位图中标识并提取2d模式来加速位图远程传送 - Google Patents

通过从源位图中标识并提取2d模式来加速位图远程传送 Download PDF

Info

Publication number
CN102713973B
CN102713973B CN201080055796.0A CN201080055796A CN102713973B CN 102713973 B CN102713973 B CN 102713973B CN 201080055796 A CN201080055796 A CN 201080055796A CN 102713973 B CN102713973 B CN 102713973B
Authority
CN
China
Prior art keywords
feature
fritter
image
instruction
bitmap
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.)
Active
Application number
CN201080055796.0A
Other languages
English (en)
Other versions
CN102713973A (zh
Inventor
N·Y·阿布多
V·A·阿尔布
C·L·齐特尼克三世
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102713973A publication Critical patent/CN102713973A/zh
Application granted granted Critical
Publication of CN102713973B publication Critical patent/CN102713973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/1801Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/18105Extraction of features or characteristics of the image related to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/224Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Image Analysis (AREA)

Abstract

揭示了用于通过从源位图中提取非网格小块来加速位图远程传送的系统、方法和计算机可读存储介质。服务器可以取得源图像,标识出可能重复的特征并且将所述图像小块化。对于包含可能重复的特征的一部分的每个小块,服务器用该小块的主颜色代替该部分。然后,该系统向客户端一并发送新小块和特征的组合和对该客户端之前已经接收和存储的小块和特征的指示、以及表示如何基于所述小块和特征重新创建所述图像的指示。

Description

通过从源位图中标识并提取2D模式来加速位图远程传送
背景技术
虽然计算机曾经一度是孤立的并且与其他计算机具有最小的或很少的交互,但是现在计算机通过局域网(LAN)、广域网(WAN)、拨号连接等等与各种各样的其他计算机进行交互。随着因特网的广泛增长,计算机之间的连通性已经变得更加重要并且已经开拓出许多新的应用程序和技术。大规模网络的增长以及低成本个人计算机的广泛可用性已经从根本上改变了许多人工作、交互、通信、以及玩乐的方式。
一种日益流行的联网形式可以统称为远程呈现系统,其能使用诸如远程桌面协议(RDP)、独立计算架构(ICA)、以及其他协议来与远程客户端共享桌面和其他应用。这样的计算系统通常将对键盘键的敲击和鼠标点击或选中从客户端传送到服务器,同时通过网络连接(例如,因特网)以另一方向将屏幕更新中继回去。因此,当在现实中在应用出现在服务器侧时仅仅将所述应用的屏幕截图发送给客户端设备时,用户具有就好像他们的机器充当LAN的一部分的体验。
两种常用的将图形数据发送到客户端的技术是:发送向客户端的子例程告知要绘制什么以及如何绘制的图元和其他操作;以及向客户端发送位图图像以供显示。通常,发送图元所需要的带宽小于发送该图元的执行的视觉结果。例如,11个字符的串“Helloworld”的文本图元可用11个Unicode字节表示。如果每个字符将要显示在12像素乘12像素的区域内,则“Helloworld”的位图表示将需要大约200倍的更多字节来表示,并且由此需要大约200倍的更多带宽。
同样,不透明矩形和图像滚动二者的图元表示需要比传送它们的位图对应物少至少一个数量级的带宽。不透明矩形的图元表示一般需要4个字节以下。等效的位图表示可被高度压缩,但一般依然需要至少几个千字节。同样地,图像滚动(有时称为“屏到屏位块传送”)可用图元表示为占据大约10个字节的命令。移动800像素乘400像素窗口的位图形式可需要多至1.83兆字节(800乘400像素区域乘以每像素3字节,并考虑到旧位置和新位置再被翻倍)或大约空间的10,000倍。
可能存在没有图元可用于发送的时候,诸如当先前存储的图像要被发送时。在这种情况下,在位图帧要被发送到客户端(诸如应用窗口)的情况下,位图帧可被细分成小块。这些小块然后在客户端侧被高速缓存,并且当小块在两个位图之间重复时,服务器发送客户端显示被高速缓存的小块的指令而不是重新向客户端发送该小块。这可显著地减少远程呈现会话的带宽成本,尤其在小块是频繁地重复的情况下。
然而,即使使用这些高速缓存位图小块的技术,发送位图的带宽需求依然大大超过发送图元的带宽需求。此外,存在许多高速缓存证明是无效的情况,诸如当窗口被滚动不是小块的尺寸内的像素数量的偶倍数的多个像素时-即使图像依然本质上是相同的,因为其不以相同的方式与小块对齐,已被高速缓存的小块是无用的。
发明内容
因此,减少跨远程呈现会话发送位图图像所需的带宽是对于现有技术的改进。
在本申请的一实施例中,服务器系统分析要在远程呈现会话中发送的图像以寻找可能的重复特征(在图像内重复或在服务器将在会话中发送的多个图像之间重复)。这些特征可包括诸如文本的事物,以及应用的导航按钮。
服务器通过定位图像内具有重复的最大可能性的片断来标识图像内特征的每个实例。然后,每个这样所找到的片断都被认为是特征并且被分配散列签名。
然后,服务器使用预定的值来代替由每个特征占据的区域。预定的值可以是区域的主颜色、或相邻像素的重复,使得最大化行程长度并因此最大化压缩。然后,服务器将图像划分成小块。
服务器接着高速缓存新的特征和新的小块。服务器确定哪些特征和小块(如果有的话)已经被存储在远程呈现会话的客户端计算设备上。在客户端具有已经被存储的特征或小块的情况下,服务器指令客户端在图像内该特征或小块的合适位置处显示该特征或小块。在客户端没有已经被存储的特征或小块的情况下,服务器向客户端发送特征或小块以及既存储该特征或小块又在图像内该特征或小块的合适位置处显示该特征或小块的指示。
本公开包含用于实现这些教导的系统、方法和计算机可读存储介质。
尽管本揭示涉及“位图”图像,但是可以理解的是这些技术可被应用到用各种格式表示的图像。
本领域技术人员之一可理解,本公开的一个或更多个方面可包括但不限于用于实现本公开的本文所提及的各方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所提及的方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。
以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本发明内容只是说明性的并且决不旨在是限制性的。
附图说明
参考附图来进一步描述用于通过从源位图标识并提取非网格小块来加速位图远程传送的系统、方法和计算机可读介质,附图中:
图1示出了可在其中体现了在此描述的技术的示例性通用计算环境。
图2示出了要在远程呈现会话中传送的样本图像。
图3A示出了在将图2的样本图像转换成图像的黑白表示之后的该样本图像。
图3B示出了在将图3A的图像分割以标识一个或多个特征之后的该图像。
图4示出了应用到图2的样本图像的图3B的所标识的特征。
图5A示出了类似于图2的样本图像的另一要在远程呈现会话中传送的样本图像。
图5B示出了图5A的图像的纯文本分割。
图5C示出了图5A的图像的非文本分割。
图6A示出了部分地包括特征的小块。
图6B示出了在将特征移除并用小块的主特性替换之后的图6A的小块。
图7示出了用于服务器通过从源位图提取非网格小块来加速位图远程传送的示例性操作过程。
图8示出了用于客户机通过从源位图提取非网格小块来加速位图远程传送的示例性操作过程。
说明性实施例的具体实施方式
图1是在其中可实现在此描述的技术的通用计算设备的框图。计算系统环境120只是合适的计算环境的一个示例,并且不旨在对当前公开的主题的使用范围或功能提出任何限制。也不应该将计算环境120解释为对示例性操作环境120中示出的任一组件或其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元素可包括被配置成实例化本发明的各具体方面的电路。例如,本公开中使用的术语“电路”可包括被配置成通过固件或开关来执行功能的专用硬件组件。其他示例中,术语电路可包括由实施可用于执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。由此,对于硬件实现还是软件实现的选择是设计选择之一并留给实现者。
计算机141通常包括多种计算机可读介质。计算机可读介质可以是可由计算机141访问的任何可用介质,并且包括易失性与非易失性介质、可移动与不可移动介质两者。系统存储器122包括易失性和/或非易失性存储器形式的计算机可读存储介质,如只读存储器(ROM)123和随机存取存储器(RAM)160。包含诸如在启动期间帮助在计算机141内的元件之间传输信息的基本例程的基本输入/输出系统124(BIOS)通常储存储在ROM123中。RAM160通常包含处理单元159可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统125、应用程序126、其他程序模块127和程序数据128。
计算机141也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器138,从可移动、非易失性磁盘154中读取或向其写入的磁盘驱动器139,以及从诸如CDROM或其他光学介质等可移动、非易失性光盘153中读取或向其写入的光盘驱动器140。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器138通常由例如接口134等不可移动存储器接口连接至系统总线121,而磁盘驱动器139和光盘驱动器140通常由例如接口135等可移动存储器接口连接至系统总线121。
以上讨论并在图1中示出的驱动器及其相关联的计算机存储介质为计算机141提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图1中,例如,硬盘驱动器138被示为存储操作系统158、应用程序157、其他程序模块156和程序数据155。注意,这些组件可与操作系统125、应用程序126、其他程序模块127和程序数据128相同,也可与它们不同。在此操作系统158、应用程序157、其他程序模块156以及程序数据155被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,例如键盘151和定点设备152——通常是指鼠标、跟踪球或触摸垫——向计算机141输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其他输入设备通常通过耦合到系统总线的用户输入接口136连接到处理单元159,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。监视器142或其他类型的显示设备也通过诸如视频接口132之类的接口连接至系统总线121。除监视器之外,计算机还可以包括可以通过输出外围接口133连接的诸如扬声器144和打印机143之类的其他外围输出设备。
计算机141可使用到一个或多个远程计算机(诸如,远程计算机146)的逻辑连接而在联网环境中操作。远程计算机146可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括许多或所有以上相对计算机141所描述的元件,但在图1中仅示出了存储器存储设备147。图1中所描绘的逻辑连接包括局域网(LAN)145和广域网(WAN)149,但还可包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机141通过网络接口或适配器137连接到LAN145。当在WAN联网环境中使用时,计算机141通常包括调制解调器150或用于通过诸如因特网等WAN149建立通信的其他手段。调制解调器150可以是内置的或外置的,可经由用户输入接口136或其他适当的机制连接到系统总线121。在联网环境中,相对于计算机141所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序148驻留在存储器设备147上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。
图2示出了要在远程呈现会话中传送的样本图像202。图像202既包括文本204又包括子图像206。该图像可包括完整的计算机桌面或诸如应用的窗口等该计算机桌面的某些子集。
图像202可以由服务器从该服务器的图形栈接收。服务器可接着根据以下技术处理图像并将其传送到该服务器正与之进行远程呈现会话的客户端以供在客户端的显示设备上显示。在一实施例中,服务器包括图1的计算设备。
图3A示出了在被转换成图像302的黑白表示之后的图2的样本图像202。这可使用阈值方案来实现。在阈值方案中,图像的低于阈值的所有像素值(例如红绿蓝(RGB)值)可被设为黑色(在RGB中,这可被表达为十六进制数),并且图像的高于阈值的所有像素可被设为白色(在RGB中,这可被表达为十六进制数FFFFFF)。
图3B示出了在将图3A的图像302分割以标识一个或多个特征302b之后的该图像。在一实施例中,服务器可直接分割图像202。根据总的会话系统的细节-诸如可用的客户端和服务器的处理资源和带宽-会话性能的最佳特征大小可以变化。在各实施例中,特征可以是单词、单词的某个子集(包括字母)、应用的导航图标(诸如“打印文档”按钮)、或要在远程呈现会话中被发送的图像中的子图像(诸如当web浏览器窗口要在会话中被发送时、通过该web浏览器显示的图像)。特征可被认为具有边界-围绕该特征的周界。在所描绘的实施例中,边界形状上是矩形的。然而,结合各种形状的边界来使用本技术是可能的。
在一实施例中,在此讨论的客户端可包括图1的计算设备。
在一实施例中,服务器和客户端在远程呈现会话期间通信来确定所要使用的特征粒度。这可当服务器和客户端启动远程呈现会话时被协商。这也可在远程呈现会话期间如会话的参数改变期间(诸如如果客户端的可用处理资源被减少)被重新协商。
在一实施例中,服务器通过利用连接片断算法处理图像302来标识出图像302的特征。连接片断算法确定图像特征的边界框。这些边界框可接着被应用回图像302来确定每个特征的相对于整个图像302的边界。
服务器可如下地执行连接的片断算法。通过使用强度阈值,连接的片断算法将图像302的每个像素标记为文本或背景的一部分-如果像素是黑色的或接近于黑色,其被考虑为文本,否则其被考虑为背景(如果图像包括在深色背景上的浅色文本,这将反过来)。服务器接着寻找那些被确定为文本的像素的所有四连接的像素组。如果一像素紧靠在被确定为文本的一像素的右边、左边、上面或下面,该像素被考虑为四连接的。在一实施例中,服务器寻找所有八连接的像素组(四连接的组,加上那些仅仅对角连接的组)而不是所有四连接的像素组。服务器可接着确定文本像素的每个四连接的组的边界框。在一实施例中,边界框是由围绕四连接的像素组的水平和垂直线构成的矩形,使得不存在更小的边界框。
图4示出了将所标识的图像302b的特征应用到图像202的图像402。当特征相对于原始图像202被标识时,接着该图像202可被处理以将图像的剩余部分和特征分离。
图5A示出了类似于图2的样本图像的另一要在远程呈现会话中传送的样本图像502。
图5B示出了图5A的图像502的纯文本分割502b。其可帮助在此揭示的技术来分离图像202的文本和图像部分并接着在每个子图像上执行操作。在该分割操作被执行的实施例中,可通过在图像上执行光学字符识别(OCR)算法并从图像中移除任何不是所识别的字符的事物来执行纯文本分割。
图5C示出了图5A的图像502的非文本分割502c。在服务器执行在图5B的详细描述中描述的OCR算法的情况下,服务器可通过移除OCR算法所识别的每个字符来产生图像502c。
图6A示出了小块602,该小块的一部分包括特征604的一部分。字母“h”包括特征604。特征604的一部分扩展到小块602上面。对象606也在小块602内。在一实施例中,对象606可被标识为特征、或特征604的一部分。
图6B示出了在将特征604移除并用小块的主特性替换之后的图6A的小块602。在此使用的“主特性”是要表示:如果被用以代替小块中的特征,则将协助压缩小块的图像。通常,小块的主特性是小块的主颜色-在小块未被特征占据的部分中所找到的最常用的一种颜色。在本实施例中,尽管存在对象606,主特性是占据小块大部分的白色背景,所以特征604被全白替换。
在特征占据整个小块的实施例中,小块可被认为不具有主特性,不具有可从中确定这样的主特性的未被特征占据的部分。在这种情况下,特征可被诸如纯色等可被容易压缩的图像替换。对于所有完全由特征占据的这样的小块使用相同的主特性是有益的,因为这将增加小块的高速缓存命中数量,并因此减少需要被发送到客户端的小块的数量。
图7示出了用于服务器通过从源位图提取非网格小块来加速位图远程传送(remoting)的示例性操作过程。可以理解的是不是每个操作必需在本申请的每个实施例中执行,但是这些操作过程的许多功能子集和改变可被实现。
操作702描绘了标识诸如图像202的图像的特征的边界,该特征对应于针对图像的小块化方案(tilingscheme)的至少一个小块。这可例如通过使用先前关于图3和4讨论的技术来实现。在一实施例中,小块化方案涉及将图像划分成矩形小块的网格。一特征不限于该网格并可发生在多个小块的所有或部分上、单个小块的部分上或正好占据一个小块。
在一实施例中,标识图像的特征的边界是基于特征粒度并由主通信设备执行。特征粒度可以是影响特征如何被识别的某些事物,诸如大小。在一实施例中,特征粒度可指示各个字母要作为分开的特征来对待。在一实施例中,特征粒度可指示各个单词要作为分开的特征来对待。
在一实施例中,特征粒度可通过服务器(或“主通信设备”)、客户端(或“通信设备”)或通信网络的特性来确定。主通信设备、通信设备或通信网络的特性可以是影响远程呈现会话的性能的某些事物,诸如跨通信网络发送的分组大小、或主通信设备的系统架构的特性。
在一实施例中,标识边界包括如上关于图3讨论的产生图像的黑白表示。在一实施例中,产生图像的黑白表示包括如上关于图3讨论的根据阈值方案来处理图像。在一实施例中,标识特征的边界包括如上关于图4讨论的使用连接的片断算法来处理图像。
在一实施例中,特征包括文本,并且标识特征的边界包括使用光学字符识别(OCR)算法来处理图像。所得到的文本可从图像中剥离,诸如通过使用图像的每个小块的主特性来代替图像的每个小块中的文本,如在以下详细讨论的。接着小块可与文本(诸如以信息交换的美国标准代码-ASCII格式表示的)以及要覆盖小块上哪里的文本的指示被一起发送,如在以下详细讨论的。
在一实施例中,特征包括水平或垂直线。服务器可既垂直地又水平地在图像上执行行程长度计数算法。该算法将确定匹配的或接近匹配的线性像素的串(诸如那些均高于或低于阈值的像素)。这些线可接着从图像的每个小块中提取,诸如通过将图像的每个小块的主特性来代替图像的每个小块内的线,如在以下详细讨论的。这些线可接着被分别编码(诸如通过指示图像内的起始和终止坐标、线条颜色、以及线条宽度)并被发送到客户端以供结合小块显示,如在以下详细讨论的。
在一实施例中,特征包括诸如当窗口被滚动时屏到屏移动(或“屏到屏位块传送”),并且标识特征的边界包括处理图像以确定图像的一部分相对于先前图像的一部分的移动向量。服务器可匹配被发送、或要被发送到客户端的多个图像之间的移动向量。服务器可通过确定诸如文本和线条(如使用以上技术在图像中确定的)的图像特性被移动到哪里的模式来匹配移动向量。这可接着通过使用大大少于发送每个小块的带宽来向客户端表示,诸如通过指示图像朝哪个方向移动以及图像移动了多远。
这些关于特征的技术可以组合运行-例如,文本和线条均能从被滚动的图像中提取。
操作704描绘了在特征尚未被存储在高速缓存中时在该高速缓存中存储该特征。服务器可诸如通过在其遇到的每个特征上执行散列算法并基于散列算法的结果在高速缓存中存储特征的签名以及特征将在客户端高速缓存内被存储的对应的位置,来维持特征的高速缓存。可存储特征的签名而不是特征本身以最小化存储需求。通过这样,当遇到每个新特征时,服务器可确定该特征是否已经在先前遇到过,所以只有对于该特征的引用才必须发送到客户端(在确定了高速缓存命中,并且进一步确定了该特征与存储在高速缓存中引起该命中的特征相同的情况下)、或该特征先前没有遇到过,所以该特征本身必需发送到客户端(在没有高速缓存命中,其指示先前没有遇到过相同的特征的情况下)。
在一实施例中,高速缓存具有最大大小,并由此具有有限范围。因此,当高速缓存到达其最大大小时,做出关于哪些特征和/或小块必须被移除以空出空间的确定。该确定可基于哪些特征和/或小块是最不可能重复的并因此将其保存在高速缓存中是最无益处的推断来做出。类似地,在高速缓存已经到达其最大大小或可能到达其最大大小的情况下,可做出关于是否向高速缓存添加新特征和/或小块的类似确定。
在一实施例中,高速缓存包括高度结构化的(分层的)高速缓存。这样高度结构化的高速缓存可基于不同等级的粒度(诸如特征、特征组、以及特征组的组)被组织。例如,在遇到类似“a”、“n”以及“d”的特征的情况下,这些特征的组-单词“and”也能遇到。并且包括这样的特征组的组-诸如包括单词“and”的短语也能遇到。除了这些特征本身,这些特征组也可被高速缓存。
操作706描绘了根据小块方案来将图像小块化以产生类似于图6的小块的至少一个小块。在一实施例中,小块具有12像素乘12像素的尺寸,除非图像不具有是12像素偶倍数的尺寸。在那种情况下,每个列内不多于一个小块以及每个行内一个小块可具有小于12像素乘12像素的尺寸。
操作708描绘了对于对应于特征的每个小块,用该小块的图像来代替该小块的被该特征占据的部分。这可例如通过使用先前关于图6A和6B讨论的技术来实现。
操作710描绘了在高速缓存中存储尚未被存储在高速缓存内的每个小块。在一实施例中,类似于如在操作704讨论的存储特征来实现存储小块。在一实施例中,小块和特征被存储在分开的高速缓存中。在一实施例中,小块和特征被存储在分开的高速缓存中。由于相比于小块与特征彼此之间,小块更可能与一小块冲突而特征更可能与一特征冲突,特定系统使用两个高速缓存是有性能益处的。同样地,给定系统的特性可偏爱使用单个高速缓存。
操作712描绘了基于高速缓存确定通信设备是否具有每个小块和特征。在一实施例中,该通信设备是客户端。随着服务器发送小块和特征到客户端,客户端将这些小块和特征高速缓存在其自己的一个或多个高速缓存中。客户端高速缓存可包括存储的小块或特征以及对应的在该小块或特征上执行的散列算法的结果。所以,如果服务器确定表示与当前小块或特征所表示的图像相同的图像的小块或特征已经存在在其高速缓存内(通过观察特征签名来完成),服务器确定客户端已经在其高速缓存内具有该小块或特征(或该小块或特征将在当前图像的传送数据内被发送)。如果没有高速缓存命中,那么客户端不具有该小块或特征。如果有高速缓存命中并且服务器确定(在高速缓存范围内)引起该命中的先前高速缓存的小块或特征中没有与当前的小块或特征相同,那么客户端不具有该小块或特征。否则,服务器确定客户端确实(或马上将)具有该小块或特征。
操作714描绘了通过通信网络将通信设备不具有的每个小块和特征发送到计算设备以供显示。可根据操作712的技术来确定客户端不具有的每个小块和特征。在一实施例中,每个小块和特征被发送为活动的远程呈现会话的上下文内分开的图像。在一实施例中,服务器可通过将特征一起组合成特征和/或小块的单个位图并将该合成位图以及该合成位图的哪个部分对应于每个特征和小块的指示发送到客户端来改善会话性能。在一实施例中,分开的合成位图可用于特征和用于小块中的每个。
在一实施例中,发送到客户端的至少某些小块和特征在它们被发送之前首先被压缩,并且接着在客户端接收到它们之后由客户端解压缩。
操作716描绘了通过通信网络将通信设备确实具有的每个小块和特征的指示发送到计算设备以供显示。可根据操作712的技术来确定客户端具有的每个小块和特征。例如,小块可伴有两个整数值-一个指示在左上角下的该小块的左上角要被放置的像素数量,并且一个指示在左上角右边的该小块的左上角要被放置的像素数量。
在一实施例中,根据操作714和716的技术发送的小块、特征和它们的指示与客户端将要在其重新创建的图像内将对应的小块或特征放置在何处的指示一起发送。
图8示出了用于客户端通过从源位图提取非网格小块来加速位图远程传送的示例性操作过程。可以理解的是不是每个操作必需在本申请的每个实施例中执行,但是这些操作过程的许多功能子集和改变可被实现。
操作802描绘了接收多个小块指示,每个小块指示包括小块或小块在高速缓存内的位置,以及在网格上显示每个小块指示的位置。
操作804描绘了接收特征指示,特征指示包括特征或特征在高速缓存内的位置,以及显示特征的位置。
在特征指示包括多个特征(如关于图7更详细讨论的)以及在特征指示内每个特征的位置的指示的实施例中,客户端可基于每个特征的位置的每个指示来确定特征指示内的每个特征。
在一实施例中,特征包括文本、线条、或在图像和先前接收到的图像之间的移动。在一实施例中,在特征包括文本的情况下,特征指示包括使用其来显示文本的字体的指示。
操作806描绘了显示一图像,该图像包括在被特征覆盖的网格上的每个小块指示。
结语
尽管已经结合各附图所示的较佳方面描述了本发明,但要理解,可使用其他相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此,本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。因此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。

Claims (8)

1.一种用于加速位图远程传送的方法,包括:
接收多个小块指示,每个小块指示都包括小块或小块在高速缓存内的位置、以及在网格上显示每个小块指示的位置;
接收特征指示,所述特征指示包括特征或特征在所述高速缓存内的位置、以及显示所述特征的位置,其中所述特征包括图像的重复特征;以及
显示图像,所述图像包括在被所述特征覆盖的网格上的每个小块指示。
2.如权利要求1所述的方法,其特征在于,所述特征指示包括多个特征、以及对每个特征在所述特征指示内的位置的指示,所述方法还包括:
基于对每个特征的位置的每个指示来确定所述特征指示内的每个特征。
3.如权利要求1所述的方法,其特征在于,所述特征包括文本、线条、或所述图像与先前接收到的图像之间的运动。
4.如权利要求3所述的方法,其特征在于,所述特征包括文本,并且所述特征还包括:
对显示所述文本的字体的指示。
5.一种用于加速位图远程传送的系统,包括:
用于接收多个小块指示的电路,每个小块指示都包括小块或小块在高速缓存内的位置、以及在网格上显示每个小块指示的位置;
用于接收特征指示的电路,所述特征指示包括特征或特征在所述高速缓存内的位置、以及显示所述特征的位置,其中所述特征包括图像的重复特征;以及
用于显示图像的电路,所述图像包括在被所述特征覆盖的网格上的每个小块指示。
6.如权利要求5所述的系统,其特征在于,所述特征指示包括多个特征、以及对每个特征在所述特征指示内的位置的指示,所述系统还包括:
用于基于对每个特征的位置的每个指示来确定所述特征指示内的每个特征的电路。
7.如权利要求5所述的系统,其特征在于,所述特征包括文本、线条、或所述图像与先前接收到的图像之间的运动。
8.如权利要求7所述的系统,其特征在于,所述特征包括文本,并且所述特征还包括:
对显示所述文本的字体的指示。
CN201080055796.0A 2009-12-11 2010-11-05 通过从源位图中标识并提取2d模式来加速位图远程传送 Active CN102713973B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/636,304 2009-12-11
US12/636,304 US8761520B2 (en) 2009-12-11 2009-12-11 Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps
PCT/US2010/055737 WO2011071623A2 (en) 2009-12-11 2010-11-05 Accelerating bitmap remoting by identifying and extracting 2d patterns from source bitmaps

Publications (2)

Publication Number Publication Date
CN102713973A CN102713973A (zh) 2012-10-03
CN102713973B true CN102713973B (zh) 2015-11-25

Family

ID=44142976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080055796.0A Active CN102713973B (zh) 2009-12-11 2010-11-05 通过从源位图中标识并提取2d模式来加速位图远程传送

Country Status (7)

Country Link
US (2) US8761520B2 (zh)
EP (1) EP2510502A4 (zh)
JP (1) JP5738887B2 (zh)
KR (2) KR101773316B1 (zh)
CN (1) CN102713973B (zh)
HK (1) HK1176154A1 (zh)
WO (1) WO2011071623A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8761520B2 (en) 2009-12-11 2014-06-24 Microsoft Corporation Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps
US9754560B2 (en) * 2012-08-20 2017-09-05 Open Invention Network, Llc Pooling and tiling data images from memory to draw windows on a display device
US9846958B1 (en) * 2012-10-04 2017-12-19 Aftershock Services, Inc. System and method for display object bitmap caching
US9171381B1 (en) 2012-10-24 2015-10-27 Kabam, Inc. System and method for rendering an image of a frame of an animation
US20140270347A1 (en) * 2013-03-13 2014-09-18 Sharp Laboratories Of America, Inc. Hierarchical image classification system
US10025539B2 (en) * 2016-02-12 2018-07-17 Xerox Corporation Adaptive selection of rendering intent for negative text embedded with image objects
CN113408573B (zh) * 2021-05-11 2023-02-21 广东工业大学 基于机器学习的瓷砖色号自动分类归类的方法及装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182127B1 (en) * 1997-02-12 2001-01-30 Digital Paper, Llc Network image view server using efficent client-server tilting and caching architecture
US6111583A (en) * 1997-09-29 2000-08-29 Skyline Software Systems Ltd. Apparatus and method for three-dimensional terrain rendering
US6121970A (en) * 1997-11-26 2000-09-19 Mgi Software Corporation Method and system for HTML-driven interactive image client
US7987431B2 (en) * 1999-10-29 2011-07-26 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US6545684B1 (en) * 1999-12-29 2003-04-08 Intel Corporation Accessing data stored in a memory
US7116843B1 (en) * 2000-07-24 2006-10-03 Quark, Inc. Method and system using non-uniform image blocks for rapid interactive viewing of digital images over a network
US6671424B1 (en) * 2000-07-25 2003-12-30 Chipworks Predictive image caching algorithm
US7162080B2 (en) * 2001-02-23 2007-01-09 Zoran Corporation Graphic image re-encoding and distribution system and method
JP3833088B2 (ja) * 2001-09-05 2006-10-11 独立行政法人科学技術振興機構 画像検出処理装置
WO2003034340A2 (en) 2001-10-11 2003-04-24 International Business Machines Corporation Color bitmap normalization
GB0303888D0 (en) * 2003-02-19 2003-03-26 Sec Dep Acting Through Ordnanc Image streaming
US7088870B2 (en) * 2003-02-24 2006-08-08 Microsoft Corporation Image region filling by example-based tiling
US7714865B2 (en) * 2004-03-09 2010-05-11 Canon Kabushiki Kaisha Compositing list caching for a raster image processor
US7599790B2 (en) * 2004-03-23 2009-10-06 Google Inc. Generating and serving tiles in a digital mapping system
EP1754195B1 (en) * 2004-05-24 2016-02-17 ST-Ericsson SA, en liquidation Tile based graphics rendering
JP2006135596A (ja) * 2004-11-05 2006-05-25 Fuji Xerox Co Ltd 符号化装置、復号化装置、データファイル、符号化方法、復号化方法及びこれらのプログラム
US7653749B2 (en) 2005-08-31 2010-01-26 Microsoft Corporation Remote protocol support for communication of large objects in arbitrary format
GB2430026A (en) * 2005-09-09 2007-03-14 Qinetiq Ltd Automated selection of image regions
US8565525B2 (en) * 2005-12-30 2013-10-22 Telecom Italia S.P.A. Edge comparison in segmentation of video sequences
US20070226314A1 (en) * 2006-03-22 2007-09-27 Sss Research Inc. Server-based systems and methods for enabling interactive, collabortive thin- and no-client image-based applications
JP2008193580A (ja) * 2007-02-07 2008-08-21 Ricoh Co Ltd 情報処理装置
US20080204478A1 (en) * 2007-02-23 2008-08-28 Inventec Corporation Method of enlarging display content of a portable electronic apparatus
US8108799B2 (en) 2007-03-30 2012-01-31 Microsoft Corporation Remoting of windows presentation framework based applications in a non-composed desktop
US20080250424A1 (en) 2007-04-04 2008-10-09 Ms1 - Microsoft Corporation Seamless Window Implementation for Windows Presentation Foundation based Applications
US8140610B2 (en) 2007-05-31 2012-03-20 Microsoft Corporation Bitmap-based display remoting
US8924512B2 (en) 2007-06-15 2014-12-30 Microsoft Corporation Extensible remote display infrastructure with dynamic virtual channels
US7809820B2 (en) * 2007-07-17 2010-10-05 Microsoft Corporation Optimizing encrypted wide area network traffic
WO2009094673A2 (en) 2008-01-27 2009-07-30 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US20090245613A1 (en) * 2008-03-31 2009-10-01 Wu Judy Wailing Method And System For Producing Digital Electronic Document Security Graphics Files
US8595371B2 (en) * 2008-09-19 2013-11-26 Samsung Electronics Co., Ltd. Sending a remote user interface
US20110010629A1 (en) * 2009-07-09 2011-01-13 Ibm Corporation Selectively distributing updates of changing images to client devices
US8761520B2 (en) * 2009-12-11 2014-06-24 Microsoft Corporation Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps
US9026615B1 (en) * 2011-09-22 2015-05-05 Teradici Corporation Method and apparatus for caching image data transmitted over a lossy network

Also Published As

Publication number Publication date
US20140254926A1 (en) 2014-09-11
KR101773316B1 (ko) 2017-09-12
WO2011071623A3 (en) 2011-10-06
KR101728389B1 (ko) 2017-04-19
KR20120094114A (ko) 2012-08-23
HK1176154A1 (zh) 2013-07-19
EP2510502A2 (en) 2012-10-17
US8761520B2 (en) 2014-06-24
WO2011071623A2 (en) 2011-06-16
US20110142334A1 (en) 2011-06-16
EP2510502A4 (en) 2017-03-22
CN102713973A (zh) 2012-10-03
JP5738887B2 (ja) 2015-06-24
JP2013513859A (ja) 2013-04-22
KR20160124249A (ko) 2016-10-26
US9280722B2 (en) 2016-03-08

Similar Documents

Publication Publication Date Title
CN102713973B (zh) 通过从源位图中标识并提取2d模式来加速位图远程传送
CN111954053B (zh) 获取蒙版帧数据的方法、计算机设备及可读存储介质
CN111954052B (zh) 显示弹幕信息的方法、计算机设备及可读存储介质
CN102222314A (zh) 用并行处理从源位图标识并提取模式来加速位图远程发送
US20120294523A1 (en) Compression Of Text Contents For Display Remoting
CN111612696B (zh) 图像拼接方法、装置、介质及电子设备
CN110958469A (zh) 视频处理方法、装置、电子设备及存储介质
JP4364809B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記録媒体
CN108804652B (zh) 封面图片的生成方法、装置、存储介质和电子装置
JP2008042345A (ja) 画像処理方法、画像処理装置
US11928855B2 (en) Method, device, and computer program product for video processing
CN113645484B (zh) 基于图形处理器的数据可视化加速渲染方法
CN114820660A (zh) 图像处理方法、装置、电子设备、存储介质及程序产品
CN111954081B (zh) 获取蒙版数据的方法、计算机设备及可读存储介质
CN110401835B (zh) 图像处理方法及装置
CN114827648B (zh) 动态表情包的生成方法、装置、设备和介质
CN113117341B (zh) 图片处理方法及装置、计算机可读存储介质、电子设备
CN116996695B (zh) 一种全景图像压缩方法、装置、设备及介质
CN111583147B (zh) 图像处理方法、装置、设备及计算机可读存储介质
CN109901907B (zh) 一种传输虚拟桌面的方法和服务器
JP5034388B2 (ja) 画像処理装置および画像処理のプログラム
JP5110248B2 (ja) 画像処理装置及び画像処理プログラム
CN115550685A (zh) 视频帧处理方法、装置及存储介质
CN114511458A (zh) 一种图像处理方法、装置、电子设备和存储介质
CN111831366A (zh) 一种图像数据的发送方法、装置及相关组件

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1176154

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150721

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150721

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1176154

Country of ref document: HK