CN101401087A - 交替图形集的高效编码 - Google Patents

交替图形集的高效编码 Download PDF

Info

Publication number
CN101401087A
CN101401087A CNA200780009229XA CN200780009229A CN101401087A CN 101401087 A CN101401087 A CN 101401087A CN A200780009229X A CNA200780009229X A CN A200780009229XA CN 200780009229 A CN200780009229 A CN 200780009229A CN 101401087 A CN101401087 A CN 101401087A
Authority
CN
China
Prior art keywords
resource
graphical
remote equipment
data
metadata
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
CNA200780009229XA
Other languages
English (en)
Other versions
CN101401087B (zh
Inventor
J·E·帕森斯
J·奇克
N·Y·阿布多
R·W·舒米德尔
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 CN101401087A publication Critical patent/CN101401087A/zh
Application granted granted Critical
Publication of CN101401087B publication Critical patent/CN101401087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

各实施例能够通过应用以下各项中的一个或多个来高效地编码和描绘远程图形显示:(1)字段编码,用于标识图形集的字段,使得能够标识跨不同图形语言的各字段的共同性;(2)资源高速缓存,其在要储存不同种类的资源时以同类方式处理资源;(3)基于远程设备支持的压缩机制的类型来确定用于遥控图形集内的项目的编码类型;(4)通过用部分发送的资源进行描绘来改进相应性;(5)用于确定图形集的什么部分(如果有)应被发送到远程设备以及以什么次序发送的机制;以及(6)使用已经在远程设备上的专用资源以在描绘此类资源时消除在本地设备和远程设备之间的资源传输。

Description

交替图形集的高效编码
相关申请交叉参照
不适用
背景
随着计算机化系统的日益流行,对在大型和小型网络内分发计算机系统的文件和处理资源的需要也日益增加。一般而言,计算机系统和相关设备经由网络传送信息是出于各种原因,例如交换个人电子消息、出售商品、提供帐户信息等。然而人们会认识到,随着计算机系统及其相关应用程序变得愈发复杂,与网络上数据和资源共享相关联的各种挑战也增加了。
某些用于在组织网络内分发资源的现有方法可能涉及集中式服务器(或本地设备)与通常本地没有安装资源的一个或多个客户机(或远程设备)共享这些资源。这些系统一般使用诸如远程桌面协议(“RDP”)、独立计算体系结构(ICA)以及其它等专用协议来与远程客户机共享各种应用程序。有了这些协议,客户计算机系统可以访问集中式网络服务器,后者主存感兴趣的资源,并且正如这些资源是本地安装的那样与这些资源交互(例如,发送鼠标和键盘事件等)。
而网络服务器进而处理这些交互,创建该数据的相应描绘信息,并且将经处理的数据和所创建的描绘信息两者都发送回客户机。客户计算机系统随后接收这些数据和描绘信息,并使用客户侧的视频驱动程序来本地描绘和显示接收到的数据。理想地,客户计算机系统和网络服务器之间的这一交互会无缝地发生,就好像该客户计算机系统已经用其自身安装的资源来实际上本地处理这些数据那样。不幸的是,这些系统会受到网络吞吐量的限制,在负荷过重时,这可能会导致本地客户计算机系统在交互和处理方面所查看的之间有所“滞后”。
在大多数方面与上述集中式共享模型类似的另一类系统涉及广播(或“发送”)客户计算机系统,它被配置为向网络上的其他接收客户计算机系统发送窗口数据信息。这一特征有时还被称为“桌面共享”。在此示例中,广播计算机(例如,在学习环境中的“指导者”)和接收计算机系统(例如,“学生”)使用允许共享桌面视图和在指导者计算机处本地安装的应用程序的公共安装的应用程序来进行连接。类似于集中式计算系统的场景,客户计算机系统可能能够像这些窗口是学生计算机自己的窗口那样来与指导者计算机处显示的窗口交互。
由于位图在通过网络连接(例如,因特网)发送时在带宽消耗方面是昂贵的,因此现今的大多数系统(诸如上述系统)发送图形基元和其它操作而非发送整个位图,这些图形基元和其它操作告知客户机侧的子例程要画什么以及如何画。例如,客户机可被告知要画矩形,以及关于应在何处画矩形、什么大小、颜色等的信息。例如,可使用矩形来为用户界面画按钮、文档周围的边框、或矩形形状可能有用的任何其它目的。当然,有许多可以用作基元的其它形状和操作,这些形状和操作可能更复杂且需要必须完成以便传送和在远程客户机上执行操作的更多处理。
尽管以上对基元的使用增强了联网系统的无缝性,但是随着应用程序持续获得更复杂的图形界面以及其它显示,以上基元的使用也变得需要更密集的处理。此外,从本地发送给远程设备的用于在客户机处的显示器上描绘图形的信息通常以即时呈现模式使用,其中各平铺的窗口会导致图形信息的丢失。例如,使用即时呈现模式,就只有绘制窗口的可见部分所需的信息可用。换言之,没有为被其它窗口覆盖的背景中的窗口部分保留图形信息—即,仅为顶层窗口保留了图形信息。因此,当一窗口移至前景时,就需要新的信息来绘制该窗口。由于上述图形复杂度的增加,这一连续不断的信息发送在需要频繁的更新时可能会使系统负担过重—例如,当混洗、旋转和重排窗口的时候。这还会提出与更复杂的动画相关的各种挑战。
简要概述
以上标识的现有网络的缺陷和不足通过本发明的示例性实施例得以克服。例如,此处所描述的各实施例提供了用于为在本地设备上执行、但在远程设备上显示的应用程序高效地编码并使用资源的机制。注意到提供本概述以便用简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
一个示例实施例提供了一种通过确定适当的编码机制而不管所使用的图形语言的类型是什么,来为在本地设备上运行的应用程序高效地对图形对象进行编码以便显示在远程设备上的机制。该机制能够在本地设备上执行应用程序,其中每一应用程序基于一特定的图形语言生成图形显示以便在远程设备上显示。此外,接收关于一特定图形语言的图形集,该图形集包括用于为该应用程序描绘该图形显示的至少一部分的资源和/或命令。还接收的有包括用于以下各项的信息的编码数据:(1)描述图形集内的字段内容的元数据,用于帮助数据压缩模块在图形集处于普通形式时更高效地压缩图形集;和/或(2)描述远程设备所支持的数据压缩机制的编码类型数据,用于为图形集选择高效的压缩类型。基于所接收的编码数据,为图形集的各部分确定适当的编码机制。
其它示例实施例能够通过确定应用程序的什么(如果有)资源应被发送到远程设备来为运行在本地设备上的应用程序在远程显示设备上高效地描绘图形对象。在此实施例中,应用程序也在本地设备上执行,每一应用程序生成用于发送到远程设备的图形显示。然后接收包括资源和/或显示命令的图形集,该图形集可用于描绘该应用程序的图形显示的至少一部分。还接收的有包括用于以下各项的信息的资源数据:(1)传送状态信息,用于确定对应于图形集的资源是否已被发送到远程设备并出于可重用性的目的被储存在中央高速缓存中,而不管所储存的资源的类型如何;(2)支持的应用程序信息,用于确定当前在远程设备上可用的专用资源以便为应用程序在远程设备上显示资源,而无需从本地设备传输资源;(3)系统限制数据,用于确定资源的(诸)部分是否应被逐步发送到远程设备以使全部资源的降级版本首先被发送,而改进该降级版本的更新随后被发送,以节省带宽或其它系统限制;和/或(4)可见性信息,它描述对应于图形集的资源当前是否可被远程设备处的用户看见。基于所接收的资源信息,选择图形集的(诸)部分来进行编码。
另一示例实施例能够为在本地设备上执行的应用程序高效地同步在生成远程设备上的图形显示时使用的描绘数据结构。在此实施例中,类似于其它实施例,应用程序在本地设备上执行,每一应用程序生成一特定图形语言的描绘数据结构,该数据结构是维护关于资源的状态并且用于在远程设备上组成应用程序的图形显示的保留模式数据结构。之后,接收包括对应于特定图形语言并用于修改描绘数据结构的资源和/或显示命令的图形集。此外,接收包括关于图形集的字段描述的元数据,以便帮助数据压缩模块标识该数据压缩模块可以更容易地识别和适当地编码的、用于不同图形语言的图形集中共同的字段的结构类型。基于所接收的元数据,对图形集的字段进行编码以便发送到远程设备并在本地和远程设备之间同步描绘数据结构,该数据结构用于为应用程序在远程设备处组成图形显示。
本发明的附加特征和优点将在以下描述中叙述,且其部分根据本描述将是显而易见的,或可通过对本发明的实践领会。本发明的特征和优点可通过在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加完全明显,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可获得本发明的上述和其他优点特征的方式,将通过引用附图中示出的本发明的特定实施例来呈现以上简要描述的本发明的更具体描述。可以理解这些附图仅描述本发明的典型实施例,从而不因此被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中:
图1A示出了根据各示例实施例的使用各种信息来对用于在远程设备处描绘显示的图形集高效地编码的分布式系统;
图1B示出了根据各示例实施例的利用关于各种资源的信息来确定应编码资源的什么部分(如果有)以便发送到远程设备的分布式系统;
图1C示出了根据各示例性实施例的可在远程设备上获得并使用以便不从本地设备传输资源的某些专用资源或图标;
图1D示出了根据各示例实施例的用于通过用部分发送的资源来描绘来改进响应性的机制;
图2示出了根据各示例实施例的用于对图形对象高效地编码以便在远程设备上显示的方法的流程图;
图3示出了根据各示例实施例的用于在远程显示设备上高效地描绘图形对象的方法的流程图;以及
图4示出了根据各示例实施例的用于高效地同步在生成远程设备上的图形显示时使用的描绘数据结构的方法的流程图。
详细描述
本发明延及用于高效地遥控在远程设备处描绘本地应用程序的显示时使用的图形集的方法、系统和计算机程序产品。本发明的实施例可以包括含有各种计算机硬件或模块的专用或通用计算机,这将在以下做出进一步讨论。
作为正文前的预备,应该认识并理解此处的示例和描述出于方便会在各实现中对MICROSOFTTM术语进行引用。然而,对特定术语的这些引用不应被解释为将此处的实施例限于特定的操作或其它类型系统。相反地,在此描述的基本功能可以在其中期望使用在此描述的功能的任何计算环境或操作系统中实践。
如先前提到的,上述现有网络的远程图形显示的缺点和不足通过此处所提供的示例性实施例而得以克服。例如,一个实施例提供了字段编码,它是用于标识用于特定图形语言的图形集的字段,使得能标识各字段跨不同图形语言的共同性的机制。一旦被标识,可对图形集的字段内跨各种数据类型的相关联的冗余性或所标识的共同性进行高效的编码。例如,字段之间的冗余性或共同性可以通过应用以下技术中的一种或多种来消除或高效地压缩:(1)基于为字段提供的元数据或其它信息在机器格式和网络格式之间的字段转换;(2)以可变长度(例如,2/3/4字节编码)的字段编码;(3)增量编码,这通常用于编码坐标数组,其中一点可被编码为相对于该数组中的先前的点的增量,并且增量可以用少于绝对坐标的字节来表示;(4)命令间压缩(inter-order compression),其用于基于特定类型的先前已编码的结构来编码同一类型的结构。注意,上述机制当前可以在其它协议(例如,远程桌面协议(RDP))中应用;然而,此处所提供的实施例将字段编码扩展到除了图形设计接口(GDI)之外的其它图形语言—例如,Windows表示基础(Windows Presentation Foundation,WPF)信息。
在另一实施例中,提供资源高速缓存,使得不同种类的资源在希望储存它们时将以同类方式来处理它们。尽管现有机制(诸如RDP)允许将资源储存在客户机上以便通过在稍后的操作或命令中重复使用它们来节省带宽,但是本发明扩展了该高速缓存机制以在其它图形语言(例如,除了GDI之外,如WPF)中使用。例如,现有机制将各种类型的资源(例如,字形、位图、子画面等)储存在分开的高速缓存中,由此对资源重用提供了不可扩展的方法。因此,各实施例提供了一种更通用且可扩展的机制,该机制为所有资源提供一中央高速缓存,而不管其类型如何。由此,资源可以在描绘数据结构内或甚至跨用于不同应用程序的数据结构被使用多次,且因此资源仅需被发送给远程设备一次并跨各种合成子结构(例如,子树)来使用。
在又一实施例中,用于远程资源或图形集内的其它项目的编码或压缩的类型可以基于远程设备支持的压缩机制的类型来确定。在这一情况下,可用压缩机制可以在连接时在客户机(即,远程设备)和服务器(即,本地设备)之间协商;然而,服务器用于压缩资源的确切的压缩机制将在本地设备压缩时决定。因此,本地设备将基于每一格式能有多好地压缩给定数据来选择协商的格式之一。例如,一种压缩类型可以是能在单个资源上使用各种压缩技术。所得的最高效地减少数据量的压缩机制然后可用于将资源(或其它数据)发送到远程设备。注意,本地服务器可以基于要压缩的各种资源或其它数据来选择无损或有损压缩格式。
再有一些示例实施例能够通过用部分发送的资源来描绘来改进响应性。因此,基于诸如带宽或显示设备限制等各种系统限制,可以发送资源的部分以及完整的描绘命令以供应用程序来描绘一些有意义的内容。例如,位图或其它资源可包含用这一渐进技术压缩的图像。在这一情况下,彩色图像最初可能是不准确的,因为并非所有解压完整图像所需的数据都已到达客户机处。然而,远程设备可使用模糊图像或其它降级图像来进行最初的描绘。
作为示例,应用程序的按钮可具有非常不准确的颜色,但仍以足够好的方式表示了按钮以允许用户与该按钮交互而无需等待其最终版本。随着来自图像的更多数据从网络到达,远程设备可以更新该图像并且重新描绘数据结构中包含该图像的部分。以此方式,用户所感知到的响应性显著提高,这仅仅是因为在大多数情况下用户可在没有更新全部图像数据的情况下使用该应用程序。注意,利用了对色彩降级机制的使用;然而,还可使用任何种类的渐进编码或交错机制。还要注意,这一渐进或交错机制不仅可以被应用于位图或其它类似的资源,而且还可以对具有诸如曲线或网格等各种阵列的图像起到良好的作用。
在再一示例实施例中,提供了一种用于确定应将图形集的什么部分(如果有)发送到远程设备以及以什么次序发送的机制。例如,通常图形显示或资源的部分可能对用户不可见。因此,诸如Z顺序、透明度、最小化/最大化状态等东西在确定应用程序或其资源是否将产生对用户可见的输出时将扮演有效的角色。只要应用程序或其资源不可见,就不必遥控该应用程序的内容或资源,直到稍后的时间。因此,更新可被延迟到带宽允许之后。此外,本地服务器可以基于这一可见性信息对描绘数据结构或显示的什么部分将被发送到远程设备区分优先级。
还有一些实施例能够使用远程设备上的专用资源来消除在描绘这些资源时在本地设备和远程设备之间的资源传输。例如,在其中遥控图形数据的大多数情况下,如边框、标题栏和/或其它图标等资源同时存在于服务器和远程计算机两者上。例如,如果远程和本地服务器都安装了相同(或相似)的应用程序,则有可能用于本地应用程序的图标将存在于用于远程侧上的应用程序的二进制码的资源部分中。在这一情况下,本地设备能够指示远程设备使用这各种资源,而无需服务器或本地设备发送用于这些资源的资源字节。
虽然如下将参考附图对有利特征的更特定引用进行更为详尽的描述,但是本发明范围内的各实施例还包括用于载有或在其上存储计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
如此处所使用的,术语“模块”或“组件”指的是在计算系统上执行的软件对象或例程。此处描述的不同的组件、模块、引擎和服务可被实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。尽管此处描述的系统和方法可用软件较佳地实现,但用硬件或软件和硬件的组合的实现也是可能的且已被想到。在此描述中,“计算实体”可以是如上文定义的任何计算系统,或者是在计算系统上运行的任何模块或模块的组合。
图1A示出了用于为本地设备上的应用程序远程地显示图形信息的分布式系统。如图所示,应用程序115可以在本地设备105上执行,而其显示旨在供远程设备110使用。注意,应用程序115可以是诸如文本编辑器、电子表格应用程序或任何其它公知的应用程序等众多应用程序中的任一种。此外,用于远程设备110和本地设备105的环境可以是演示类型环境(例如,先前描述的桌面共享),或其中远程设备110期望执行本地设备105处的应用程序115,但从本地设备105网络外部的远程设备110查看并控制应用程序的联网系统。由此,本地设备105和远程设备110之间的通信可以穿过任何公知的、本地和分布式的网络,例如LAN、因特网等等。
不论用于在本地设备105和远程设备110之间建立通信信道的应用程序或网络的类型如何,应用程序115都可根据从远程设备110接收到的用户输入来做出应用程序接口(API)调用120。这一API调用120影响各种应用程序115的图形显示。例如,API调用120可以是最小化/最大化应用程序115的显示、移动显示内的图标或其它资源、或任意数目的交互和改变用于一个或多个应用程序115的图形显示的公知方式。当然,可以认识到,输入不必以API调用120的形式出现以使各种应用程序115的图形显示改变。因此,使用API调用120来影响各种应用程序115的图形显示此处仅用于说明的目的,并且不意味着限制或以其它方式缩小此处的实施例的范围。
不论何时使用这一调用120,API调用120都可访问合成引擎130,该引擎生成可包括显示命令160和/或各种资源165的图形集155。显示命令160可包括诸如资源165的类型、在显示内的定位(即,x-y坐标)、资源165的大小和/或形状、或用于显示各种资源165的任何其它公知的特性或操作等信息。资源165还可表示任意数量的公知的图标、文本、字形、子画面、位图和其它图像类型。因此,此处描述的显示命令169和资源165应被广泛地解释为覆盖了在资源上执行的任意数目的各种操作以及用于应用程序115的图形显示的任意数目的图像数据。
图形集155通常用于生成用于各种应用程序115的描绘数据结构178。描绘数据结构178进而用于描述应用程序115的显示,并且可以是类树结构,其中每一节点表示一资源、特性或其关系描述。例如,数据树内的一节点可表示按钮,而其它节点描述了该按钮的颜色、大小、形状或其它特性,而还有一些节点表示与应用程序114的显示内的其它组件或资源的关系和交互。因此,可以认识到,图形集155可用于修改、生成或以其它方式更新描绘数据结构178,该数据结构然后可用于组成对应于应用程序115的一个或多个显示。注意,不像以上描述的其它图形语言的即时演示模式,对描绘数据结构178、185的使用允许其中维护资源状态的保持模式。如以下将更详细描述的,这连同此处所描述的其它实施例一起允许许多有利的特征。
注意,在一个实施例中,期望将本地设备105上的描绘数据结构178与远程设备110侧的类似的描绘数据结构185同步。在这一情况下,此处提供的示例实施例可以对用于更新或修改远程设备110上的描绘数据结构185的各种图形集155进行高效的编码。然而,应当注意,尽管此处提供的某些机制用于支持描绘数据结构178、185的图形语言,但是其它实施例同样适用于不支持此类描绘数据结构178、185的图形语言。实际上,此处所描述的许多实施例用于各种各样的图形语言,包括但不限于,GDI、WPF、以及其它已知(以及可能未知的)图形语言。因此,以下对各实施例的讨论应被宽泛地解释为适用于广泛数量的图形语言。
不论用于创建图形集155的图形语言是什么,都要注意,编码判决模块150通常直接对描绘数据结构178(即,保留的模式合成数据结构或树)操作。编码判决模块150可能在应用程序115访问120合成引擎130时立即发送描绘数据178,或者可能在网络允许的稍后的时刻发送数据178。例如,应用程序115可能访问120引擎130来创建圆。命令120可能转换成对编码判决模块150的直接访问,然后立即编码该圆命令并在线路上发送它。一种替换模型可能是编码判决模块150被通知一个圆被添加到描绘数据结构178(例如,合成树),并且让编码判决模块150来决定何时应发送数据178。第一个模型可被认为是“推”模型,而第二个模型可被认为是“拉”模型。两者之间的区别仅仅是编码判决模块150获得来自描绘数据结构178的更新的时刻。尽管两个模型都能起作用,但是推模型可能比拉模型有更多限制。因此,最有效的更新机制可以是两者的混和(即,数据178以带宽所允许的最快速度被推到网络,但是如果有某种网络拥塞,则系统将采用由网络可用性事件驱动的拉模型)。
不论用于传输数据178的模型是什么,在一个实施例中,编码判决模块150都可使用具有用于标识图形集155内的各种字段类型的图形集元数据140(此处也简称为“元数据”)的编码表135。例如,元数据140可以描述图形集160内的各种字段类型,编码判决模块150可利用该元数据来适当地决定如何最佳地编码各字段以便高效地将显示命令160和资源165传输到远程设备110。更具体地,元数据140可用于标识用于在不同图形语言的多个图形集155之中共同的字段的不同类型的数据结构。这一信息然后可用于帮助数据压缩模块175更容易地识别并适当地编码图形集155的不同字段。
例如,显示命令160可以具有传统上以机器格式储存或串行化的包括资源类型、定位(例如,x-y坐标)、颜色或其它信息的串或其它二进制表示。因此,元数据140可用于将这些字段识别为以机器格式储存的串,该串然后可被转换成网络格式。例如,坐标(或其它串或二进制字段)通常被保持为本地设备105上用于描绘的图形集155中的机器大小字,但是机器字在大多数情况下要比储存这些坐标所必需的实际字节大小大2至4倍。在这一情况下,机器字应被转换成较小的大小,并置于网络分组中,由此允许数据压缩模块175在发送到远程设备110之前更高效地编码这些字段。
注意,其它实施例使用图形集元数据140来描述图形集155内的其它字段或资源,用于标识用于压缩的最高效机制。例如,编码判决模块150可使用元数据140来确定资源165的类型,以选择可以最有效地压缩此类信息的数据压缩模块175。例如,某些位图最佳地使用行程长度编码(RLE)机制来压缩。因此,元数据140可用于将资源165标识为位图,并且可选择适当的RLE来适当地编码此类资源。
当然,对于显示命令160还有许多其它类型的资源165和资源可基于所提供的图形集元数据140来标识并适当地编码。例如,一个字段可被标识为最佳地以可变长度格式来编码,而另一字段可能更适用于增量编码(例如,其中一点可以被编码为相对于数组中的先前的点的增量并且增量可以用少于绝对坐标的字节来表示的坐标)。其它示例可包括命令间压缩,其通常用于基于特定类型的先前已编码的结构来编码同一类型的结构。当然,可以认识到,元数据140可用于描述任意数目的各种显示命令160和资源165,使得编码判决模块150可以按需适当地选择众多压缩模块175。因此,以上对用于编码的特定类型数据的使用,或此处所描述的任何特定类型的编码仅是出于说明的目的,且并不意味着限制或以其它方式缩小此处的实施例。
注意,尽管元数据140被示为在与图形集155分开的编码表135内,但是其它实施例也构想了元数据140为图形集155的一部分。另外,注意,此处所描述的各模块的排列可以被组合和/或分隔成其它配置和/或示意性布局。因此,各附图中所示的示意性布局以及此处所描述的模块或组件仅用于说明的目的,并不意味着限制或以其它方式缩小各实施例的范围,除非明确声明。
还要注意,元数据165可以是运行时信息或编译时信息。例如,可扩展标记语言((XML)或其它合适的二进制格式)文档可包括在运行时交换的元数据165。两者之间的区别是以下事实:运行时信息通常由合成引擎130通过允许元数据文件(例如,XML文档)被传入编码判决模块150的特定函数调用来推送。通常,运行时元数据165仅在初始化时被推送一次。从那一点开始,合成或描绘引擎130就不必在每次其访问编码器时向编码判决模块150完整地描述图形集155。相反,合成引擎130只需用在初始元数据165交换中定义的明确定义的类型为流中的每一命令(即,显示命令和/或资源)加前缀(或标识它)。以下示例有可能有帮助。
例如,假定元数据165是在运行时交换的,则元数据165可能看上去如以下XML文件。
    <GFXMETADATA>
         <ORDERMETADATA TYPE=”1>
              <FIELD TYPE=”FLOAT”/>
              <FIELD TYPE=”FLOAT”/>
         </ORDERMETADATA>
         <ORDERMETADATA TYPE=”2”>
                 <FIELD TYPE=”SIGNED INTEGER”
MIN_VAL=”-255”MAX_VAL=”255”/>
                 <FIELD TYPE=“UNSIGNED INTEGER”
MIN_VAL=”-4096”MAX_VAL=”4096”/>
                 <ARRAY>
                      <FIELD TYPE=”COORDINATE”
MIN_VAL=”0”MAX_VAL=”65535”/>
                </ARRAY>
           </ORDERMETADATA>
      </GFXMETADATA>
      <ORDER TYPE=”1”/>
           <VAL>12.8</VAL>
           <VAL>21.1<VAL>
      </ORDER>
      <ORDER TYPE=”2”/>
           <VAL>200</VAL>
           <VAL>3993</VAL>
           <VAL LENGTH=”3”>
                 <VAL>100</VAL>
                 <VAL>200</VAL>
                 <VAL>300</VAL>
      </VAL>
</ORDER>
注意,在以上GFXMETADATA结构中,声明了两种命令类型。第一种是包括两个浮点数的命令类型。第二种是包括一个有符号整数、一个无符号整数和一个坐标数组的数组。该元数据应在初始化时刻被传送到编码判决模块150。在初始化之后,第二结构(ORDER)可用于将命令发送到编码器150。现在注意,第二个结构体没有描述类型,仅描述了值。即使在XML表示中,也可以看到,通过拆分来自第二个数据结构体(ORDER)的元数据,将关于命令的内容传送到编码判决模块150需要更少的信息。元数据140是非常静态的,因此仅传送一次是有意义的。另一方面,命令数据是动态数据,且通常不应具有附加在其上的任何静态信息。这一好处在对数据和元数据使用二进制格式(以下描述)而非XML的时候更值得注意。编码器或编码判决模块150可以仅仅查看命令类型,并且将基于如何编码值的元数据描述来获知。
例如,其它文件(例如,接口定义或描述语言(IDL)文件)表示编码器175或编码判决模块150和合成引擎130之间的编译时合约。如果该合约是变化的,则必须使用公共(例如,IDL)文件来重新编译这两个分量。使用公共文件确保设备对同一二进制数据结构格式操作。然而,注意,在编译时描述数据将有可能导致编码器判决模块150(如上所述)的更快操作,因为编码代码本身将直接从图形数据描述中生成。尽管如此,编码时描述仍很大程度上取决于所使用的语言。例如,在C和C++中,可使用一组宏来定义图形基元。通过使用宏,能够定义机器格式结构和编码或网络代码本身。
一旦适当的数据压缩175编码了图形集155内的一个或多个字段,这些字段(或图形集155)就被发送到远程设备110,在那里它们使用模块180来解压,并如图形集190中所示地重新生成。由此,该压缩引擎195可使用这些图形集来生成与本地设备105上的描绘数据结构178同步的描绘数据结构185。此外,该描绘数据结构185然后可被组成,使得显示驱动程序104可生成表示来自本地设备105的应用程序115的显示的适当显示102。因此,当远程设备110上的用户与显示102交互时,可以如上所述地生成并编码不同的图形集155以同步描绘数据结构178、185。
在另一示例性实施例中,所选的编码或数据压缩模块175的类型可以基于远程设备110上所支持的那些编码类型。例如,在连接的初始化期间(或在之后的某一其它时刻),可在本地设备和远程设备110之间协商数据压缩的类型。因此,如图所示,远程设备110发送所支持的编码类型184,后者然后可被包括在可用编码机制列表145中。该可用编码机制列表145然后可由编码判决模块150用于选择适当的数据压缩模块175来如上所述地压缩图形集155中的字段。
注意,尽管通常是在连接时在远程设备110和本地设备105之间协商可用编码机制145,但是本地设备105用于压缩图形集155的部分的确切压缩机制将在压缩时在运行中决定。因此,远程设备110将没有关于将使用的数据压缩175的确切类型的先验知识。尽管如此,由于所支持的编码类型184是事先确定的,因此本地设备105可确保对任何此类支持的编码类型184的使用可由远程设备110来处理。还要注意,可用编码机制列表145还可基于本地设备105上可用的那些编码机制。换言之,数据压缩模块175和数据解压模块180需要具有在它们之中共同的类型。
还要注意,如此处所构想的,可以使用任何公知类型的编码机制(例如,RLE、基于MPEG、JPEG、GIF、ZIP、基于LZ、JBIG、Daje Vu或其它公知的基于模式或基于统计的压缩机制,它们或者是无损或者是有损压缩格式)。还要注意,图形集155内的一个或多个字段可以使用各种编码或数据压缩模块175的分层关系来编码,以便最高效地压缩数据来通过网络发送到远程设备110。
图1B示出了如上所述具有本地105和远程设备110的类似的分布式系统。应当注意,图1B是先前提到的系统的简化版本,并且因此被示为没有一些组件或模块以简化该示意图。然而,在此处所描述的实施例中,并非确定应使用什么编码类型来编码图形集155,而是使用各种机制来选择资源(如果有)以发送到远程设备110。在一个这样的实施例中,提供应用程序资源高速缓存,其中不同种类的资源在希望储存它们时将以同类方式来处理它们。
例如,第一应用程序(例如,应用程序1)115可以做出对资源“A”106的调用。当资源通过网络发送到远程设备110时,这一资源的传送状态可被储存在资源表112中(在这一情况下示出资源“A”的传送状态114为已传输)。在远程设备110上,资源“A”106将如其中的资源列表118所示地储存在中央高速缓存128中。因此,当应用程序115下次希望使用资源“A”106时,并非将该资源发送到远程设备110,而是资源管理器108将该资源标识为已发送,并且简单地提供具有资源ID161的显示命令160来发送给远程设备110。换言之,资源(在此情况中为资源“A”106)在本地105和远程110设备之间的整个连接期间仅需被发送一次,并且可以跨各种不同的应用程序(例如,同样调用资源“A”106的应用程序2)重复使用。
注意,尽管特定协议(例如,RDP)使用的某些高速缓存机制允许高速缓存资源,但这些高速缓存通常基于所使用的资源的类型(例如,字形、位图、子画面等)来分隔。尽管这些机制可以像此处提供的更通用的中央高速缓存机制一样高效,但是这些方法是不可扩展的。通过提供中央高速缓存128来储存所有资源180,本发明扩展了跨各种应用程序115以及跨可能使用的不同描绘数据结构178、185来使用此类资源106的能力。例如,此处提供的通用高速缓存机制(使用例如RDP)具有资源仅被发送一次并被合成结构或树中的多个节点使用的增加的好处。例如,如果一图标由多个应用程序115使用,则该图标将存在于对应于这些应用程序115的每一合成子树(或描绘数据结构178、185中)。
如果没有这一高速缓存机制,则资源将需要对使用它的每一节点发送到远程设备110。然而,有了此处提供的中央存储机制,资源165仅在资源165首次添加到节点时被发送一次,并且由合成数据结构中的多个节点使用。还要注意,本地设备105和远程设备110可能使用或不使用限制因高速缓存具有大不相同的大小的资源而引起的存储器碎片的机制。此外,应当注意,由于不可扩展方法仍提供了用于访问资源的高效机制,因此这一方法可结合此处提供的通用高速缓存一起使用。
在又一示例实施例中,提供了用于通过用部分发送的资源来描绘来改进响应性的机制。在这一情况下,诸如带宽或远程设备110上的显示限制等系统限制116可由包括资源管理器108的编码判决模块150来标识。基于这些系统限制116,资源管理器108可以确定仅部分资源163应在如上所述用于图形集155的显示命令160中发送。更具体地,通常有两条信息是描绘图形集155所必需的。此处示为显示命令160的第一部分描述了用于资源165的实际描绘操作。通常,它们包含关于什么资源165应用于描绘以及如何使用的指令。第二部分表示用于描绘的资源168。
可以见到,描绘或显示命令160通常必须在描绘能够开始之前完整地发送到客户机或远程设备110。然而,这并不是对于资源165的情况。资源165并不总是必须在描绘开始时100%可用以便由应用程序115描绘一些有意义的东西。例如,初始位图资源165可包含用这一渐进技术压缩的图像。例如,图像颜色最初可能由于各种带宽限制或其它考虑事项而是不准确的。尽管如此,远程设备仍可使用这一模糊的、没有着色的或以其它方式降级的图像在远程设备上描绘。
例如,考虑其中资源165可能是按钮,而颜色可能非常不准确或者可看见某一其它降级的情况,按钮的表示可以足以允许用户与该按钮交互而不必等待其最终版本。然而,当来自图像的更多数据从网络到达时,远程设备110可更新该图像或描绘数据结构185。因此,用户所感知到的响应性在大多数用户可在不存在所有资源165的情况下使用该应用程序的情况下显著提高。注意,该示例使用了颜色降级技术,但是可同等地使用任何种类的渐进编码或交错机制。
还要注意,该部分描绘机制可能对保持模式系统起较好的作用,但是对其它模型(例如,GDI)可能没有如此好的作用。原因在于,在保持模式中,一旦用改进的资源165更新的描绘数据结构185(例如,合成树),所有信息都在远程侧110上以触发重画。然而,在其它非保持模型(例如,GDI模型)中,可能没有机制以在远程110侧上重组,因此在其中绘图以不准确的资源发生的情况下,通常没有机制来刷新绘图,直到本地105或服务器侧在绘图操作中再次使用该资源165。尽管如此,即使是在非保持模型中,也可能有其中较佳的是使用不准确的资源165来描绘而非在描绘一些东西之前等待整个资源165的情况。
图1D示出了使用显示在曲线142中的坐标数组的上述实施例。如图所示,完整的资源集144包括沿着曲线142的众多点。然而,各实施例可使用系统限制116来决定应仅发送部分资源集148。例如,在此示例中,仅发送沿着曲线146的点的一小部分,这尽管没有确切地表示曲线142,但是仍允许合理地描绘整体图像。换言之,确切的曲线142从多个点逼近,每一点表示该曲线的一个数字样本,其中存在的样本越多,曲线看上去就越准确。然而,取决于曲线142,可以仅使用多个样本的一小部分来描绘足够接近的表示146。其余点可以在稍后的时刻更新。当更新从本地设备105到达时,远程设备110将更新用于该曲线142的点集,并且重新描绘使用它的数据结构185。随着每一次更新,描绘曲线146将越来越接近最终预期的形状142。
注意,尽管以上示例使用了图形曲线或网格以及简单的按钮,但是更复杂的资源165也可利用该特征。例如,最终形式为3D对象的图像最初可能以2D对象的部分形式呈现。随着带宽变得可用,可发送越来越多的信息以将图像更新到其最终的3D形式。当然,可以认识到,有许多可利用该特征的各种资源165和机制(即,发送一资源的什么部分以及如何发送)。因此,以上示例此处仅用于说明的目的,并且不意味着限制这些和其它实施例的范围。
在又一示例实施例中,资源管理器108可确定或标识在本地设备105和远程设备110上都专用的那些资源。因此,所支持的应用程序信息122可以在初始化连接时(或在之后的某一时刻)传输到本地设备105。该信息通常将包括所支持的应用程序资源124,并被储存在远程设备110上的资源存储126中。该所支持的应用程序信息122然后可由资源管理器108用于确定什么类型的资源应被发送到远程设备110。
例如,远程110和本地设备105都可安装了特定的应用程序(例如,特定类型的文本编辑器)。因此,与其相关联的图标或其它应用程序资源124也将位于两个设备105、110上。在这些情况下,本地设备105可以仅使用显示命令160和资源ID 161来指示远程设备110使用适当的图标,而远程设备105实际不必发送供其使用的资源124。然而,注意,这一模型假定资源124是以串行化形式储存的。它们可在必要时被变换,但是变换通常是在硬件层发生的。因此,对于不变换资源的协议或图形语言,本地设备105有可能向客户机传送公知的资源ID 161而非通过线路发送关于资源124的数据。对远程设备110上的专用应用程序资源124的这一使用在其中资源124的大小很大的情况中特别有利。
还应当注意,确切的资源124不需要同时驻留在本地105和远程110设备上。例如,某些应用程序115具有在几个应用程序115之中共同的资源124。例如,大多数应用程序115具有边框、标题栏、以及用于最小化/最大化、全屏/部分屏幕的窗口按钮、和/或关闭图标。由此,远程设备110上使用的应用程序资源124不必对应于本地机器105上的确切应用程序115,然而通常情况是它们的确对应。
图1C示出了对可在本地设备105和远程设备110上使用或在其上专用的各种资源的使用。在此示例中,边框132资源可用于画出应用程序显示窗口的轮廓。此外,标题栏135以及窗口操纵图标136也可以是可在远程设备110上访问并使用的应用程序资源124。类似地,也可利用具有各种组件或图标的工具栏138。然而,在本地设备105上操纵或以其它方式改变的信息将需要由先前所描述的实施例通过线路发送。
在再一示例实施例中,以上编码和其它资源选择机制可以被实现为单个组件的一部分。这一组件和应用程序或合成引擎之间的接口(或合约)可以由如IDL或XML等接口定义语言来定义。然而,合约是要提供具有高效地编码资源165所必需的资源165数据和元数据140的编码判决模块150。以此方式,资源165布局或组织中的改变将不需要对编码判决模块150的更新。仅需要对元数据140的更新,这可以通过改变接口或合约来实现。
本发明还被描述成包括功能性步骤和/或非功能性动作的方法。下文是可被执行以实践本发明的步骤和/或动作的描述。通常,功能性步骤按照可以实现的结果来描述本发明,而非功能性动作描述实现特定结果的更为具体的动作。虽然功能性步骤和/或非功能性动作可以按特定次序描述或声明,但是本发明不一定要受限于任何特定的次序或者是步骤和/或动作的组合。此外,(仅)在权利要求的陈述中使用步骤和/或动作以指示对这些术语的期望的特定使用。
如上所述,图2-4示出了用于本发明的各示例性实施例的流程图。以下对图1-4的描述将不时参考图1A-D中的对应元素。虽然可以做出对这些附图中特定元素的参考,但是这些参考只用于示例性目的而非旨在限制或以其他方式缩小所述实施例的范围,除非明确声明。
图2示出了通过确定适当的编码机制而不管所使用的图形语言的类型是什么,来为在本地设备上运行的应用程序高效地对图形对象进行编码以便显示在远程设备上的方法200的流程图。方法200包括在本地设备上执行205应用程序的动作。例如,应用程序115可以在本地设备105上执行,其中应用程序115基于特定图形语言生成图形显示以在远程设备110处显示。这一图形语言可包括GDI、WPF或当前已知的其它类型或将来的图形语言。
方法200还包括接收210用于特定图形语言的图形集的动作。例如,编码判决模块150可以接收用于特定图形语言的图形集155,其中图形集155包括显示命令160和/或资源165。这一图形集155将用于在远程设备110上描绘应用程序115的图形显示的至少一部分。注意,这些显示命令可包括按照在显示上的位置、大小、颜色、形状等来描述资源的特性。还要注意,资源可以是诸如字形、图标、子画面、位图或任何其它图像等公知资源中的任一种。
另外,方法200包括接收220关于以下各项的编码数据的动作:(1)描述图形集的内容的元数据;(2)描述远程设备支持的数据压缩机制的编码类型数据。例如,编码判决模块150可接收描述图形集155内的字段内容的图形集元数据140,用于帮助数据压缩模块175在图形集155处于其普通形式时更高效地压缩图形集155。注意,该普通形式可以是串行化的或未串行化的形式。或者,或与其相结合,编码判决模块150可接收远程设备110支持的可用编码机制列表145。该编码类型数据将描述远程设备110支持的数据压缩机制,以如上所述选择用于图形集155的高效压缩类型。
基于所接收的编码数据,方法200还包括确定225用于图形集的各部分的适当编码机制的动作。例如,基于元数据140和可用编码机制列表145,编码判决模块150可确定什么数据压缩模块175将最高效地编码图形集155的各部分。
图3示出了通过确定应用程序的什么(如果有)资源应被发送到远程设备来为运行在本地设备上的应用程序在远程显示设备上高效地描绘图形对象的方法300。方法300包括在本地设备上执行305应用程序的动作。例如,应用程度115可以在本地设备105上执行,每一应用程序都生成用于发送到远程设备110的图形显示。方法300还包括接收310包括显示命令和/或资源的图形集的动作。例如,编码判决模块150结合资源管理器108可接收包括资源165和/或显示命令160的图形集155,该图形集用于在远程设备110上描绘应用程序115的图形显示的至少一部分。
方法300还包括接收315关于以下各项的资源数据的动作:(1)传送状态信息;(2)支持的应用程序信息;(3)系统限制数据;和/或(4)可见性信息。更具体地,资源管理器108可接收用于确定资源165的传送状态的资源数据。例如,资源状态表112可由资源管理器108用于确定对应于图形集155的资源的传送状态,以确定相应的资源(例如,资源A114)是否已被发送到远程设备110并出于可重用性的目的储存在中央高速缓存128中,而不管所储存的资源的类型如何。换言之,各种类型的资源被储存在中央高速缓存128内,使得不同种类的资源在储存时以同类方式来处理。注意,本地设备105和远程设备110可能使用或不使用限制因高速缓存具有大不同的大小的资源而引起的存储器碎片的机制。
此外,编码判决模块150或资源管理器108可接收所支持的应用程序信息122来确定当前在远程设备110上可用的专用资源124以显示此类资源而无需从本地设备105传输资源。换言之,如果远程设备110和本地设备105两者都安装了类似或相同的应用程序,则可标识并显示在远程设备110上专用的资源或图标,使得这些资源不必从本地设备105发送到远程设备。这一专用资源可包括边框、标题栏、工具栏、或两个应用程序上的某种其它形式的图标或资源标准。
此外,编码判决模块150或资源管理器108还可接收系统限制信息116,用于确定资源的部分是否应被渐进地发送到远程设备110,使得首先发送完整资源的降级版本,并且随后发送改进该降级版本的更新以节省带宽或其它系统限制。例如,如图1D所示,对于以高采样显示曲线142的完整资源集144,可首先发送如曲线146所示仅包括总采样集的一小部分的部分资源集148。注意,渐进地发送到远程设备的部分资源可以包括位图、曲线、网格或其它图像形式。还要注意,降级的版本包括颜色、细节、采样点的数量的不准确性或其它图像质量降级,但是资源的降级版本应当包括足以允许远程设备110处的用户识别该资源的信息。还要注意,资源可以是按钮、复选框或其它交互式项目,并且用户应当仍能够在不接收完整资源的情况下与该项目交互。
另外,编码判决模块150或资源管理器108可从资源状态表112中接收描述对应于图形集155的一个或多个资源165当前是否可被用户看见的可见性信息113。这一可见性信息可包括关于资源的Z顺序、透明度、最小化/最大化状态等的信息。因此,可能不可见的资源可被延迟发送到远程设备110,直到带宽允许或直到需要查看。
基于所接收的资源信息,方法300包括选择320图形集的一部分来编码的动作。换言之,基于以上传送状态、所支持的应用程序信息、系统限制数据、和/或可见性信息,将选择图形集155的部分(即,资源的显示命令或部分的字段)来使用数据压缩模块175进行编码。
图4示出了为在本地设备上执行的应用程序高效地同步在生成远程设备上的图形显示时使用的描绘数据结构的方法400。方法400包括在本地设备上执行405应用程序的动作。例如,如上所述,应用程序115可以在本地设备105上执行,每一应用程序生成特定图形语言的描绘数据结构178,这些数据结构是维护资源165的状态的保持模式数据结构,并用于在远程设备110上组成应用程序115的图形显示。
方法400还包括接收410包括资源和/或显示命令的图形集的动作。例如,编码判决模块150可以接收包括显示命令160和/或资源165的图形集155。显示命令160可包括按照在显示上的定位、大小、颜色、形状等来描述资源165的特性。
方法400还包括接收114包括图形集的描述的元数据的动作。例如,编码判决模块150可接收包括图形集155的字段描述的图形集元数据140,以帮助压缩模块175标识数据压缩模块175能容易地识别和适当地编码的、在用于不同图形语言的多个图形集155中共同的字段的结构类型。例如,基于元数据140,字段可以从机器格式转换成网络形式,这与机器形式相比减少了字段的位长度以得到更好的压缩比。此外,元数据140可以用于以可变长度形式编码,或用于所使用的增量编码,使得仅资源中的改变被发送到远程设备,这可以使用比发送整个图形集155少的字节来编码。此外,元数据140可用于命令间压缩机制,用于基于特定类型的先前已编码的结构来编码同一类型的字段。
注意,元数据140可以附加到或不附加到图形集155。例如,通常元数据155交换是描述所使用的图形集155(例如,指令/命令或资源)的类型的一次事件。因此每一图形集155可用类型(或标识符)来加前缀。编码判决模块150然后能够查看此标识符,并基于最初交换的元数据155来选择适当的数据压缩模块175、适当的编码次序等。
基于所接收的元数据,方法400包括编码420图形集的字段的动作。例如,编码判决模块150基于描述图形集155内的字段的图形集元数据140可使用这些数据来编码各字段以发送到远程设备105,并在本地105和远程110设备之间同步描绘数据结构178、185,该数据结构用于为应用程序115在远程设备110处组成图形显示。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。

Claims (20)

1.一种在分布式计算系统中的方法,所述方法通过不考虑所使用的图形语言的类型确定适当的编码机制来为运行在本地设备上的一个或多个应用程序高效地编码图形对象以在远程设备上显示,所述方法包括:
在本地设备上执行一个或多个应用程序,每一应用程序基于一特定的图形语言生成图形显示以在远程设备处显示;
接收用于所述特定图形语言的图形集,其中所述图形集包括一个或多个资源、一个或多个显示命令、或两者,所述图形集用于描绘所述一个或多个应用程序的图形显示的至少一部分;
接收包括关于以下各项的一个或多个的信息的编码数据:(1)描述所述图形集内的一个或多个字段的内容的元数据,用于帮助一个或多个数据压缩模块比在所述图形集处于普通形式时更高效地压缩所述图形集;(2)描述所述远程设备所支持的一个或多个数据压缩机制的编码类型数据,用于为所述图形集选择高效压缩类型;以及
基于所接收的编码数据,确定用于所述图形集的一个或多个部分的适当的编码机制。
2.如权利要求1所述的方法,其特征在于,所述一个或多个显示命令包括按照在显示上的定位、大小、颜色或形状中的一个或多个来描述资源的一个或多个特性。
3.如权利要求1所述的方法,其特征在于,基于所述元数据,所述字段中的一个或多个从机器格式转换成网络格式,所述网络格式与机器形式相比减少了所述一个或多个字段的位长度以得到更好的压缩比。
4.如权利要求1所述的方法,其特征在于,基于所述元数据,所述字段中的一个或多个以可变长度形式来编码。
5.如权利要求1所述的方法,其特征在于,基于所述元数据,使用增量编码,使得仅资源中的改变被发送到所述远程设备,所述改变可使用比发送整个图形集少的字节来编码。
6.如权利要求1所述的方法,其特征在于,基于所述元数据,使用命令间压缩机制来基于特定类型的先前已编码的结构对同一类型的一个或多个字段进行编码。
7.如权利要求1所述的方法,其特征在于,所述远程设备支持的一个或多个数据压缩机制在连接时在本地和远程设备之间协商,并且其中所选择的编码机制还基于每一压缩机制能有多好地压缩给定图形集。
8.如权利要求7所述的方法,其特征在于,所述一个或多个数据压缩模块包括RLE、基于MPEG、JPEG、GIF、ZIP、基于LZ、JBIG、DejaVu或其它公知的基于模式或统计的压缩机制中的一个或多个。
9.一种在分布式计算系统中的方法,所述方法通过确定运行在本地设备上的一个或多个应用程序的什么(如果有)资源应被发送到远程设备来为所述一个或多个应用程序在远程显示设备上高效地描绘图形对象,所述方法包括:
在本地设备上执行一个或多个应用程序,每一应用程序生成要发送到远程设备的图形显示;
接收包括一个或多个资源、一个或多个显示命令、或两者的图形集,所述图形集用于描绘所述一个或多个应用程序的图形显示的至少一部分;
接收包括关于以下各项中的一个或多个的信息的资源数据:(1)传送状态信息,用于确定对应于所述图形集的一个或多个资源是否已被发送到所述远程设备并出于可重用的目的被储存在中央高速缓存中,而不管所储存的资源的类型如何;(2)所支持的应用程序信息,用于确定当前在所述远程设备上可用的专用资源,以在不从所述本地设备传输至少一个资源的情况下为所述一个或多个应用程序在所述远程设备上显示所述至少一个资源;(3)系统限制数据,用于确定资源的各部分是否应被渐进地发送给所述远程设备,使得首先发送完整资源的降级版本,随后发送改进所述降级版本的更新以节省带宽或其它系统限制;或(4)可见性信息,该信息描述对应于所述图形集的一个或多个资源当前是否可被用户看见;以及
基于所接收到的资源信息,选择所述图形集的各部分来编码。
10.如权利要求9所述的方法,其特征在于,所述本地设备、远程设备、或两者使用限制因在所述中央高速缓存中高速缓存了不同大小的所述一个或多个资源而引起的存储器碎片的机制。
11.如权利要求9所述的方法,其特征在于,所述远程设备上当前可用的专用资源包括用于所述一个或多个应用程序的边框、用于所述一个或多个应用程序的标题栏、用于所述一个或多个应用程序的工具栏、或所述一个或多个应用程序上的某一其它形式的图标标准中的一个或多个。
12.如权利要求9所述的方法,其特征在于,所述可见性信息包括关于所述一个或多个资源的Z顺序、透明度、或最小化/最大化状态的信息。
13.如权利要求9所述的方法,其特征在于,用于渐进地发送到所述远程设备的所述资源的部分的资源包括位图、曲线或网格中的一个或多个,并且其中,所述降级版本包括颜色、细节、采样点数目中的一个或多个的不准确性或其它图像质量降级,但是所述资源的降级版本包括足以允许所述远程设备处的用户识别所述资源的信息。
14.如权利要求13所述的方法,其特征在于,所述资源是按钮、复选框、或其它交互式项目,并且其中所述用户能够在不接收完整资源的情况下与所述项目交互。
15.一种在分布式计算系统中的方法,所述方法高效地同步在为在本地设备上执行的一个或多个应用程序生成远程设备上的图形显示时使用的描绘数据结构,所述方法包括:
在本地设备上执行一个或多个应用程序,每一应用程序生成一特定图形语言的描绘数据结构,所述描绘数据结构是维护关于资源的状态的保持模式数据结构,并且用于在远程设备上组成所述一个或多个应用程序的图形显示;
接收包括一个或多个资源、一个或多个显示命令、或两者的图形集,所述图形集对应于所述特定图形语言,并用于修改所述描绘数据结构中的一个或多个;
接收包括所述图形集的一个或多个字段的描述的元数据,以帮助一个或多个数据压缩模块标识所述一个或多个数据压缩模块能更容易地识别和适当地编码的、在用于一个或多个不同图形语言的多个图形集中共同的一个或多个字段的结构类型;以及
基于所接收的元数据,编码所述图形集的一个或多个字段以发送到所述远程设备,并在所述本地和远程设备之间同步描绘数据结构,所述描绘数据结构用于为所述一个或多个应用程序在所述远程设备处组成图形显示。
16.如权利要求15所述的方法,其特征在于,所述一个或多个显示命令包括按照在显示上的定位、大小、颜色或形状中的一个或多个来描述资源的一个或多个特性。
17.如权利要求15所述的方法,其特征在于,基于所述元数据,所述字段中的一个或多个从机器格式转换成网络格式,所述网络格式与机器形式相比减少了所述一个或多个字段的位长度以得到更好的压缩比。
18.如权利要求15所述的方法,其特征在于,基于所述元数据,所述字段中的一个或多个以可变长度形式来编码。
19.如权利要求15所述的方法,其特征在于,基于所述元数据,使用增量编码,使得仅资源中的改变被发送到所述设备,所述改变可使用比发送整个图形集少的字节来编码。
20.如权利要求15所述的方法,其特征在于,基于所述元数据,使用命令间压缩机制来基于特定类型的先前已编码的结构对同一类型的一个或多个字段进行编码。
CN200780009229XA 2006-03-15 2007-01-16 交替图形集的高效编码 Active CN101401087B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/375,961 2006-03-15
US11/375,961 US8244051B2 (en) 2006-03-15 2006-03-15 Efficient encoding of alternative graphic sets
PCT/US2007/001101 WO2007106211A1 (en) 2006-03-15 2007-01-16 Efficient encoding of alternative graphic sets

Publications (2)

Publication Number Publication Date
CN101401087A true CN101401087A (zh) 2009-04-01
CN101401087B CN101401087B (zh) 2011-05-18

Family

ID=38509805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780009229XA Active CN101401087B (zh) 2006-03-15 2007-01-16 交替图形集的高效编码

Country Status (14)

Country Link
US (2) US8244051B2 (zh)
EP (1) EP2005310A4 (zh)
JP (2) JP5080554B2 (zh)
KR (1) KR101159396B1 (zh)
CN (1) CN101401087B (zh)
AU (1) AU2007225421B2 (zh)
BR (1) BRPI0708763A2 (zh)
CA (1) CA2642529C (zh)
IL (1) IL193515A (zh)
MX (1) MX2008011658A (zh)
MY (1) MY149001A (zh)
RU (1) RU2439675C2 (zh)
TW (1) TWI437486B (zh)
WO (1) WO2007106211A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930613A (zh) * 2009-06-17 2010-12-29 佳能株式会社 将图形路径序列编码和解码成分层方案的方法
CN102222314A (zh) * 2010-04-15 2011-10-19 微软公司 用并行处理从源位图标识并提取模式来加速位图远程发送
CN102473314A (zh) * 2009-09-02 2012-05-23 索尼公司 矢量嵌入式图形编码

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244051B2 (en) * 2006-03-15 2012-08-14 Microsoft Corporation Efficient encoding of alternative graphic sets
US10387130B1 (en) * 2007-02-23 2019-08-20 Sugarcrm Inc. Metadata driven distributed application behavior system and method
WO2008137432A2 (en) * 2007-05-01 2008-11-13 Dyyno Sharing of information and formatting information for transmission over a communication network
US20090172710A1 (en) * 2007-12-28 2009-07-02 Arman Toorians Method and system for enabling a mini program on a computing device to access an auxiliary system
US20090210817A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Mechanism for increasing remote desktop responsiveness
US8170123B1 (en) 2008-04-15 2012-05-01 Desktone, Inc. Media acceleration for virtual computing services
US8200896B2 (en) * 2008-06-06 2012-06-12 Microsoft Corporation Increasing remote desktop performance with video caching
US8285857B2 (en) * 2008-10-31 2012-10-09 Hewlett-Packard Development Company, L.P. Saving a layout of display(s) of a remote computer
US8654134B2 (en) 2008-12-08 2014-02-18 Microsoft Corporation Command remoting
US9104452B2 (en) * 2009-07-27 2015-08-11 Microsoft Technology Licensing, Llc Hybrid remote sessions
US9277021B2 (en) * 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
US9235452B2 (en) * 2010-02-05 2016-01-12 Microsoft Technology Licensing, Llc Graphics remoting using augmentation data
US8385666B2 (en) 2010-03-31 2013-02-26 Microsoft Corporation Classification and encoder selection based on content
US8480292B2 (en) * 2010-06-01 2013-07-09 Boris Dushine Systems, apparatus and methods to reconstitute dehydrated drinks
KR101291398B1 (ko) * 2011-06-02 2013-07-30 삼성에스디에스 주식회사 전자서재를 제공하는 방법 및 장치
US8924507B2 (en) 2011-09-02 2014-12-30 Microsoft Corporation Cross-frame progressive spoiling support for reduced network bandwidth usage
US9384711B2 (en) 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
US9235925B2 (en) * 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9396565B2 (en) 2013-06-07 2016-07-19 Apple Inc. Rendering borders of elements of a graphical user interface
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
US9253158B2 (en) 2013-08-23 2016-02-02 Vmware, Inc. Remote access manager for virtual computing services
US10095468B2 (en) 2013-09-12 2018-10-09 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
CN111510248B (zh) 2014-06-09 2023-04-28 Lg电子株式会社 发送和接收服务指南信息的方法及其装置
US9524536B2 (en) * 2014-07-25 2016-12-20 Intel Corporation Compression techniques for dynamically-generated graphics resources
US9503761B2 (en) 2015-02-03 2016-11-22 Tribune Broadcasting Company, Llc Method and system for localized replacement of base content in video feed, with replacement-media delivered in broadcast-TV transport stream
KR101652483B1 (ko) * 2015-02-26 2016-08-30 주식회사 한글과컴퓨터 개체에 대한 꾸미기 효과 처리가 가능한 전자 문서 편집 장치 및 방법
US10349095B2 (en) 2015-05-07 2019-07-09 Lg Electronics Inc. Transmission device for processing video data related to HDR/SDR and method for controlling the same
KR102657587B1 (ko) 2016-11-21 2024-04-15 삼성전자주식회사 커브 렌더링을 수행하는 방법 및 장치.
KR101965563B1 (ko) * 2017-03-17 2019-04-04 주식회사 인프라웨어 전자 문서 편집 방법 및 장치
EP3602495A4 (en) 2017-03-30 2020-12-16 Magic Leap, Inc. CENTRALIZED RENDERING
US10977858B2 (en) 2017-03-30 2021-04-13 Magic Leap, Inc. Centralized rendering
KR101880507B1 (ko) * 2017-04-21 2018-07-20 주식회사 한글과컴퓨터 웹 문서에 삽입된 도형의 크기 조정을 지원하는 클라이언트 단말 장치 및 그 동작 방법
KR101880508B1 (ko) * 2017-04-27 2018-07-20 주식회사 한글과컴퓨터 웹 문서에서 목록 생성을 지원하는 웹 문서 편집 지원 장치 및 방법
US11227359B2 (en) * 2019-10-15 2022-01-18 Adobe Inc. User-defined image compositing on graphics processing units
US11335070B2 (en) 2020-02-10 2022-05-17 Magic Leap, Inc. Dynamic colocation of virtual content
CN118276683A (zh) 2020-02-14 2024-07-02 奇跃公司 工具桥
EP4104002A4 (en) 2020-02-14 2023-08-09 Magic Leap, Inc. 3D OBJECT ANNOTATION
US20240143347A1 (en) * 2022-10-31 2024-05-02 Bitdrift, Inc. Systems and methods for encoding and rendering generic visualizations of a gui of a client application

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61208174A (ja) * 1985-03-12 1986-09-16 Mitsubishi Electric Corp 図形コマンド符号化装置
US5083262A (en) * 1986-04-28 1992-01-21 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
US5060286A (en) * 1989-01-19 1991-10-22 Hewlett-Packard Company Raster row and byte group graphics images data compression method
JPH06503894A (ja) * 1990-08-16 1994-04-28 ゼネラル・パラメトリックス・コーポレーション 補助表示装置を含む表示制御装置
US5296936A (en) 1991-07-22 1994-03-22 International Business Machines Corporation Communication apparatus and method for transferring image data from a source to one or more receivers
US5351129A (en) * 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
US5339108A (en) * 1992-04-09 1994-08-16 Ampex Corporation Ordering and formatting coded image data and reconstructing partial images from the data
US5557749A (en) * 1992-10-15 1996-09-17 Intel Corporation System for automatically compressing and decompressing data for sender and receiver processes upon determination of a common compression/decompression method understood by both sender and receiver processes
US5991515A (en) * 1992-11-10 1999-11-23 Adobe Systems Incorporated Method and apparatus for compressing and decompressing data prior to display
US5638498A (en) 1992-11-10 1997-06-10 Adobe Systems Incorporated Method and apparatus for reducing storage requirements for display data
US5524110A (en) * 1993-11-24 1996-06-04 Intel Corporation Conferencing over multiple transports
JPH07336676A (ja) 1994-06-08 1995-12-22 Oki Electric Ind Co Ltd 画像送信装置、画像受信装置、分散型画像通信システム及び集中型画像通信システム
US5802282A (en) * 1995-12-28 1998-09-01 Intel Corporation Recovering missing data during background data transfer in multipoint conferencing
US5754776A (en) * 1995-12-28 1998-05-19 Intel Corporation Re-prioritizing background data transfers in multipoint conferencing
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6957260B1 (en) * 1996-06-03 2005-10-18 Microsoft Corporation Method of improving access to services provided by a plurality of remote service providers
US6072508A (en) * 1997-03-14 2000-06-06 S3 Incorporated Method and apparatus for shortening display list instructions
US6028965A (en) * 1997-05-13 2000-02-22 Lg Electronics, Inc Method and apparatus for intelligent codec system
WO1999064944A2 (en) * 1998-06-08 1999-12-16 Microsoft Corporation Compression of time-dependent geometry
EP1035735A3 (en) * 1999-03-12 2007-09-05 Kabushiki Kaisha Toshiba Moving image coding and decoding apparatus optimised for the application of the Real Time Protocol (RTP)
US6947994B1 (en) * 1999-04-09 2005-09-20 Canon Kabushiki Kaisha Negotiating an exchange of image processing functionality
JP2001016447A (ja) * 1999-06-30 2001-01-19 Minolta Co Ltd 画像処理装置および画像処理方法、ならびに画像処理プログラムを記録した記録媒体
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
US6891893B2 (en) * 2000-04-21 2005-05-10 Microsoft Corp. Extensible multimedia application program interface and related methods
US7634011B2 (en) * 2000-04-21 2009-12-15 Microsoft Corporation Application program interface (API) facilitating decoder control of accelerator resources
US6940912B2 (en) * 2000-04-21 2005-09-06 Microsoft Corporation Dynamically adaptive multimedia application program interface and related methods
US6834297B1 (en) 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
US7249196B1 (en) * 2000-10-06 2007-07-24 Juniper Networks, Inc. Web page source file transfer system and method
US6934756B2 (en) * 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
US6950213B1 (en) * 2000-12-20 2005-09-27 Cisco Systems, Inc. Fast method for fax encoded data conversion
US20020093948A1 (en) * 2001-01-16 2002-07-18 Motorola, Inc. Packet-based multimedia communications system having one or more wireless links
DE10128532A1 (de) * 2001-06-13 2003-01-02 Siemens Ag Verfahren zum Ermitteln eines Datenkompressionsverfahrens
KR100422252B1 (ko) * 2001-12-20 2004-03-11 삼성전자주식회사 씬 클라이언트 네트워크 시스템과 그 네트워크 시스템의데이터 전송 방법
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
JP4100182B2 (ja) * 2003-01-30 2008-06-11 松下電器産業株式会社 通信端末装置及びその制御方法
CN1523518A (zh) * 2003-02-17 2004-08-25 郭慧民 智能汉语文化辞典系统
US7173635B2 (en) * 2003-03-25 2007-02-06 Nvidia Corporation Remote graphical user interface support using a graphics processing unit
CA2525941C (en) * 2003-05-16 2015-01-13 Picasa, Inc. Methods and systems for image sharing over a network
US7325045B1 (en) * 2003-08-05 2008-01-29 A9.Com, Inc. Error processing methods for providing responsive content to a user when a page load error occurs
US7702727B2 (en) * 2003-09-30 2010-04-20 Avaya, Inc. Apparatus, method, and computer program for providing multimedia prompting in a communication system
JP4111926B2 (ja) * 2004-03-09 2008-07-02 株式会社リコー 画像処理装置、プログラム、記憶媒体及び画像送信方法
TWI260511B (en) * 2004-03-26 2006-08-21 Arcadyan Technology Corp Method and apparatus for displaying multimedia information
WO2005101179A1 (en) * 2004-04-09 2005-10-27 Siemens Medical Solutions Health Services Corporation A system for managing operating sessions of an executable application
JP3753250B2 (ja) 2004-07-20 2006-03-08 ソニー株式会社 仮想現実空間提供装置および提供方法
US20060173966A1 (en) * 2005-02-01 2006-08-03 Jennings Raymond B Iii Method and apparatus for inferring read status of instant messages
JP4626509B2 (ja) * 2005-12-19 2011-02-09 セイコーエプソン株式会社 画像一覧表示におけるユーザの利便性向上
US8244051B2 (en) * 2006-03-15 2012-08-14 Microsoft Corporation Efficient encoding of alternative graphic sets
US7647404B2 (en) * 2007-01-31 2010-01-12 Edge Technologies, Inc. Method of authentication processing during a single sign on transaction via a content transform proxy service

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930613A (zh) * 2009-06-17 2010-12-29 佳能株式会社 将图形路径序列编码和解码成分层方案的方法
CN102473314A (zh) * 2009-09-02 2012-05-23 索尼公司 矢量嵌入式图形编码
CN102473314B (zh) * 2009-09-02 2014-01-29 索尼公司 矢量嵌入式图形编码
CN102222314A (zh) * 2010-04-15 2011-10-19 微软公司 用并行处理从源位图标识并提取模式来加速位图远程发送
CN102222314B (zh) * 2010-04-15 2016-02-10 微软技术许可有限责任公司 用并行处理从源位图标识并提取模式来加速位图远程发送

Also Published As

Publication number Publication date
RU2008136867A (ru) 2010-03-20
US20070220168A1 (en) 2007-09-20
BRPI0708763A2 (pt) 2011-06-14
US20100278442A1 (en) 2010-11-04
WO2007106211A1 (en) 2007-09-20
JP2012198882A (ja) 2012-10-18
KR20080111450A (ko) 2008-12-23
IL193515A (en) 2013-02-28
RU2439675C2 (ru) 2012-01-10
JP2009530706A (ja) 2009-08-27
KR101159396B1 (ko) 2012-06-28
TW200805141A (en) 2008-01-16
MX2008011658A (es) 2008-09-23
AU2007225421B2 (en) 2011-11-17
TWI437486B (zh) 2014-05-11
JP5373135B2 (ja) 2013-12-18
EP2005310A1 (en) 2008-12-24
EP2005310A4 (en) 2012-01-04
AU2007225421A1 (en) 2007-09-20
CA2642529A1 (en) 2007-09-20
JP5080554B2 (ja) 2012-11-21
CA2642529C (en) 2015-05-26
US8244051B2 (en) 2012-08-14
IL193515A0 (en) 2009-05-04
US8351716B2 (en) 2013-01-08
CN101401087B (zh) 2011-05-18
MY149001A (en) 2013-06-28

Similar Documents

Publication Publication Date Title
CN101401087B (zh) 交替图形集的高效编码
US7423653B2 (en) Displaying graphical textures
EP1290642B1 (en) Method for interactive multi-user customizable web data retrieval and rendering
CN1856819B (zh) 通过分布式应用程序的图形数据的网络传输的系统和方法
CN101147174B (zh) 用于管理图像数据的传送和/或存储的系统和方法
CN102447901B (zh) 用于处理要传送到远程计算设备的图形数据的方法和系统
US7561899B2 (en) Method and apparatus for controlling and applying resource of idle screen on mobile
CN108154569A (zh) 一种基于对象模型化配置的巡查采集方法
CN102591644A (zh) 未知可视布局位置的静态定义
JP2003186664A (ja) 装置プラットフォームに対するguiプレゼンテーションのダイナミックな適合
CN102007487A (zh) 用于低带宽显示信息传输的系统和方法
CN102436350A (zh) 远程应用窗口显示方法、服务器及用户终端
CN116843879B (zh) 一种跨引擎vr编辑场景生成方法及系统
KR20070055420A (ko) 그래픽 텍스쳐들의 디스플레이
Belmonte et al. Efficiently using connectivity information between triangles in a mesh for real-time rendering
US20050033822A1 (en) Method and apparatus for information distribution and retrieval
AU2012200858B2 (en) Efficient encoding of alternative graphic sets
US20010054176A1 (en) Run-time personalization architecture
Johansen et al. Citizen-Centered Information Dissemination with Multimodal Information Channels
Luengo et al. Interactive 3D graphics applications embedded in web pages
CN208110601U (zh) 基于分布式集群的gis信息管理系统
CN116368528A (zh) 信息展示方法、系统、电子设备和计算机可读存储介质
JP2000311252A (ja) 三次元画像生成システム、三次元画像生成方法及び記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

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

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.