专利名称:跨网络共享计算机显示器的制作方法
跨网络共享计算机显示器 背景
在计算机网络内,如果多台计算机能共享各种资源通常是有用的。例如, 计算机可使网络上的其它系统获得其存储空间中的部分,或连接至一台计算机 上的打印机对其它计算机来说也是可用的。该共享资源的能力减少了与网络相 关联的成本,这是因为对多个冗余系统的需求减少。此外,允许资源的联合使 用还能提高协作的努力。
通常,跨网络共享系统资源的方法遵循两种途径中的一种。 一种方法 是采用基于硬件的方案,其中资源本身被构造成允许多台计算机利用它。该硬 件导向的方法的示例包括联网的打印机和网络附连存储设备,其中专用的 硬件被特定配置成可被网络中的多个系统访问。另一种方法是采用基于软件 的方案,其中专用的资源通过其主机系统的配置可被网络中的其它系统获得。 该基于软件的方法存在上述所给的示例的类似示例,例如,共享台式计算 机的硬件驱动器的部分的能力,或允许其它计算机访问直接与主机系统连 接的打印机的能力。
概述
在此所详述的是一种特别地允许源计算机将图像数据显示于目的地计 算机上的技术。该技术的一种方法中描述了跨网络共享监视器的方法。该 方法涉及从源计算机上的显示器驱动程序中检索图形信息。该图形信息被 压縮,并且从源计算机被传送至目的地计算机。被压縮的图形信息之后被 解压縮,并在附连至目的地计算机的目的地显示器上被显示。
在该技术的另一种方法中,描述了一种用于从源计算机传送图形数据 至目的地计算机的系统。该系统包括在源计算机上运行的控制该源计算机 的操作系统。在该操作系统下运行的用户应用程序被配置成从设备驱动程 序中检索图形信息。用户应用程序还被配置成压縮图形信息,并通过网络接口将该被压縮的图形信息传送至目的地计算机。
描述了在其中向显示器驱动程序请求图形数据的该技术的另一种方 法。该图形数据被接收并被压縮。经压縮的图形数据之后被传送。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述 的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特 征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
合并在本说明书中并形成其一部分的附图示出了各实施例,并且与说明书 一起用于解释所要求保护的主题的原理-
图1是在其上可实现各实施例的示例性计算系统的框图2是根据一实施例的跨网络共享监视器的方法的流程图3是根据一实施例的对计算机网络的描绘;
图4是根据一实施例的计算机系统的编程层的表示;
图5是根据一实施例的源计算机和目的地计算机之间交互的描绘;
图6A是根据一实施例的传送图形数据的方法的流程图;以及
图6B是根据一实施例的显示从源计算机接收到的图形数据的方法的
流程图。
详细描述
现在将详细参考若干实施例。尽管本主题将结合各替换实施例来描述,但 将理解,它们并不旨在将所要求保护的主题限于这些实施例。相反,所要求保 护的主题旨在涵盖可被包括在权利要求书所定义的所要求保护的主题的精神 和范围内的替换、修改和等效技术方案。
此外,在以下详细描述中,阐明了众多具体细节以提供对所要求保护的主 题的全面理解。然而,本领域的技术人员将认识到各实施例可以在没有这些具 体细节或具有其等效物的情况下实施。在其它情况下,未详细描述公知的方法、 过程、组件和电路以免不必要地使主题的各方面和特征显得晦涩难懂。
以下详细描述中的各部分按照一种方法来呈现和讨论。尽管其步骤和排序在此处描述该方法的各操作的附图(例如,图3)中公开,但这些步骤和排序 是示例性的。各实施例很好地适用于执行各种其他步骤或此处附图的流程图中 所述的步骤的变型,并且按照与此处所描绘和描述的不同的顺序。
本详细描述的某些部分按照过程、步骤、逻辑块、处理、以及对可在计算 机存储器上执行的数据位的操作的其它符号表示来呈现。这些描述和表示是数 据处理领域技术人员用来将其工作的实质最有效地传达给本领域的其他技术 人员的手段。过程、计算机执行的步骤、逻辑块、处理等在此处且通常被认为 是导致所需结果的自相一致的步骤或指令的序列。步骤是需要对物理量的物理 操纵的那些步骤。尽管并非必需,但这些物理量通常采用能够在计算机系统中 被存储、传输、组合、比较、或以其它方式操纵的电或磁信号的形式。原则上 出于常见用法的原因将这些信号称作位、值、元素、符号、字符、项、数字等 被证明有时是方便的。
然而,应当记住,所有这些和类似术语都应与适当的物理量相关联并且仅 仅是应用于这些物理量的方便的标签。如从以下讨论中清楚的,除非具体地另 外指明,否则可以理解,贯穿本发明,利用诸如"访问"、"编写"、"包括"、 "存储"、"发送"、"遍历"、"关联"、"标识"等术语的讨论涉及计算 机系统或类似的电子计算设备的动作和处理,其操纵计算机系统的寄存器和存 储器中被表示为物理(电子)量的数据并将其变换成计算机系统存储器或寄存 器或其他这样的信息存储、传输或显示设备中类似地被表示为物理量的其它数 据。
诸如计算系统112等计算设备通常包括至少某些形式的计算机可读介 质。计算机可读介质可以是可由计算设备访问的任何可用介质。作为示例而 非局限,计算机可读介质可以包括计算机存储介质和通信介质。计算机存 储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它 数据这样的信息的任何方法或技术实现的易失性和非易失性、可移动和不
可移动介质。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪 存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储 器、盒式磁带、磁带、磁盘存储或其它磁存储设备,或者任何其它可用于 存储所需信息并可由计算设备访问的介质。通信介质通常以诸如载波或其
7它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模 块或其它数据,并包括任意信息传送介质。术语"已调制数据信号"指的 是以在信号中编码信息的方式设定或更改其一个或多个特征的信号。作为 示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以 及无线介质,诸如声学、RF、红外、和其它无线介质。以上的任何组合也 应包括在计算机可读介质的范围内。
某些实施例可以在由一个或多个计算机或其它设备执行的诸如程序模 块等计算机可执行指令的通用上下文中描述。 一般而言,程序模块包括执 行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结 构等。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。
基本计算设备
现参考图1,示出了示例计算机系统112的框图。可以理解为,此处 所述的计算机系统112示出了在其上可实现实施例以体现优点的操作平台 的示例配置。然而,在本发明范围内,具有不同配置的其它计算机系统也 能够被用来替代计算机系统112。即,计算机系统112可包括除了与图1 相关的所述元素外的其它元素。此外,实施例不仅在可在如计算机系统112 的计算机系统上实施,还可在被配置成在使其实现的任何系统上实施。理 解的是,实施例可在多种不同类型的计算机系统112上实施。示例包括但 不限于台式计算机、工作站、服务器、媒体服务器、膝上型计算机、游戏 控制台、数字电视、PVR和个人数字助理(PDA),以及具有计算和数据 存储能力的诸如无线电话、媒体中心计算机、数码录像机、数码照相机、 和数字音频回放或录音设备等其它电子设备。 参考图1,用于实现各实施例的示例性系统包括通用计算系统环境, 诸如计算系统环境112。在其最基本的配置中,计算系统112通常包括至少 一个处理单元101和存储器以及用来传递信息的地址/数据总线100 (或其 它接口)。取决于计算系统环境的确切配置和类型,存储器可以是易失性 的(诸如RAM102)、非易失性的(诸如ROM103、闪存等)或是两者的 某种组合。计算机系统112还可包括例如通过显示信息于附连的显示设备110上并由视频电缆111连接的用于显示信息于计算机用户的一可选的图
形子系统105。另外,计算系统112还可具有附加特征/功能。例如,计算机系统112还可包括附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这些附加存储在图1中由数据存储设备104示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。RAM102、 ROM 103和数据存储设备104是计算机存储介质所有的示例。
计算机系统112还包括可选的字母数字输入设备106,可选的光标控制或定向设备107,和一个或多个信号通信接口 (输入/输出设备,例如,网络接口卡)108。可选的字母数字输入设备106可向中央处理器101传递信息和指令选择。可选的光标控制和定向设备107被耦合至总线100用来向中央处理器101传递用户输入信息和指令选择。与总线100也耦合的信号通信接口 (输入/输出设备)108可以是串行端口。通信接口 108还可包括无线通信机制。使用通信接口 108,计算机系统112可以跨诸如互联网或内联网(例如,局域网)等通信网络被可通信地耦合至其它计算机系统,或可接收数据(例如,数字电视信号)。
软件显示器共享
虽然网络中的许多设备能够通过硬件或软件的方式被共享,而监视器和其它显示器往往是专用的设备。该通用规则存在几个独特的硬件例外。例如,单个计算机可通过使用多个硬件显示器适配器(或带多个硬件头的单个显示器适配器)来利用多个监视器。在这种场景下,该单个计算机具有多个专用监视器,并可在这些显示器上显示不同的信息,所述的方法被称为"扩展"或"跨越"査看,或可在另一台显示器上将在显示器中一台上出现的信息复制,此所述方法被称为"克隆"。为了使多台计算机共享单个监视器,要利用某种硬件开关。这类开关通常以两种形式中的一种出现,或以专用的和独立的设备出现,例如,键盘、视频、鼠标(KVM)开关,或集成到监视器本身,例如,允许从几个不同源来的输入至显示器的选择开关。 9在以下实施例中,描述了用于允许计算机系统将显示信息输出至其它系统的附连监视器的软件的方法。这些实施例提供了一些可能的优点。例如,发源或源计算机能复制其当前的显示信息,并将其传送至接收或目的地计算机。这样的话,例如,可显著帮助协作的努力。或者,在一些实施例中,源计算机可利用目的地计算机的监视器来提供额外的显示区域。在一些实施例中,如果目的地计算机的监视器显示器在某种方式上更好,例如,目的地计算机的"监视器"是适合展示的投影系统,则源计算机将信息显示于目的地计算机的显示器上是有用的。
跨网络共享显示器
现在参考图2,描绘了根据一实施例的跨网络共享监视器的方法的流
程图200。尽管在流程图200中公开了具体步骤,但是这些步骤是示例性的。日n女必hfi的夂*琉伤"曰7^+化;壬m工拙》;夂主出甘々^fi^f"hn、决職成^f禾g阁
200中所述步骤的变型。可以理解为,流程图200中的步骤可以用与所呈现的不同的次序来执行,并非要执行流程图200中的全部步骤。
现在参考步骤210,显示信息从显示器驱动程序被检索得到。如下面更详细地描述,该显示信息的性质在不同的实施例中可以是不同的。另外,该显示器驱动程序在不同的实施例中可以是不同的。在所描绘的实施例中,为了使源计算机将信息显示于目的地计算机的监视器上,首先由源计算机生成图形信息或帧数据。在其它实施例中,未呈现的信息被传送至目的地计算机,并且目的地计算机将构造帧数据。
参考步骤220,经检索的显示信息被压縮。在不同的实施例中,采用了不同的压縮方法。在一些实施例中,选择采用何种压縮方法可取决于各种因素。在一实施例中,例如,采用诸如行程长度编码(RLC)等无损压縮技术,如果源计算机和目的地计算机间的网络连接提供了足够的带宽来传输以该方式压縮的数据。在一些实施例中,可在例如源计算机和目的地计算机间无线连接等较低带宽情况下采用无损压縮。在一个这样的实施例中,可结合几种无损压縮技术来进一步压縮显示信息,例如,随后是收縮压縮的RLC。在另一实施例中,为了降低供在目的地计算机和源计算机间传送的带宽要求,可釆用有损压縮技术。
参考步骤230,经压縮的显示信息从源计算机被传送至目的地计算机。在一些实施例中,采用流方式实现该传送,其中组成经压縮的显示信息的分组通过目的地计算机和源计算机间的网络连接被连续地发送。在这些实施例中,目的地计算机的监视器可用来显示当活动发生时源计算机当前的活动。
在一个这样的实施例中,源计算机上"帧"之间的区别而非完整的帧数据被传送。在该实施例中,降低了对网络带宽的要求。相比针对每一帧重新传送整个显示图像,跟随显示器上出现的变化会要求更少的信息。
参考步骤240,经压縮的显示信息被目的地计算机解压縮。根据步骤220,所采用的解压縮方法在不同的实施例中可以是不同的。
参考步骤250,被解压縮的图形数据被输出至目的地计算机的显示器上。
在以下的实施例中,将更详细地挖掘上述方法的示例性的实现。计算机网络
现在参考图3,描绘了根据一实施例的计算机网络390。尽管计算机网络390被显示为合并了特定的、枚举的特征和元素,可以理解,各实施例很好地适用于涉及不同的、更少的、或附加的元素、配置、和/或特征的应用程序。
计算机网络390被示为包括被网络399可通信地耦合在一起的源计算机300和目的地计算机350。源计算机300包括了处理器301、存储器302、数据存储设备304、图形适配器305和网络接口卡(NIC) 308。源监视器310经由图形适配器305被连接至源计算机300。源计算机300经由NIC 308被连接至网络399。在所描绘的实施例中,目的地计算机350类似地包括了处理器351、存储器352、数据存储设备354、图形适配器355和网络接口卡358。目的地监视器360经由图形适配器355被连接至目的地计算机。目的地计算机350经由NIC358被连接至网络399。显示模式
在不同的实施例中,支持了不同类型的显示模式。例如,在一实施例中,源计算机和目的地计算机被配置成允许源计算机的显示可以被复制或
"克隆"到目的地计算机的显示器上。例如,参考图3,源监视器310出现的图片也可在目的地监视器360上出现。
在另一实施例中,目的地显示器可作为源显示器的扩展。例如,太大的以至于不能适应于源监视器310的图片可"跨越"源监视器310和目的地监视器360两者来允许图像被完全显示,甚至在两台显示器自身都不足够大来显示该图像的情况下。
在另 一实施例中,被传送至目的地显示器的图形数据可比目的地显示器可显示的大。例如,如果目的地监视器360的分辨率被限制在1280x1024像素,并且从源计算机300传送来的图形数据是1600x1200像素,不是所有的图形数据都能够同时在目的地监视器360上被完全显示。该场景可能在克隆、跨越、或其它显示场景下出现。在该实施例中,例如,对于在目的地计算机上运行的并接收被压縮图形信息的用户应用程序,目的地计算机可被配置成允许图像被扫视,使得目前不在目的地显示器上出现的图形信息的那部分可通过计算机的交互被査看,例如,通过使用键盘或鼠标在显示屏上移动图像。
内核空间和用户空间
在一些实施例中,在上述流程图200中的一些步骤,或步骤中的一部分,可由驻留在源和/或目的地计算机的操作系统的不同部分的软件来实现。例如,在一实施例中,驻留在操作系统的内核空间部分的源计算机的虚拟设备驱动程序被用来生成图形数据,而驻留在操作系统的用户空间部分的应用程序负责图形数据的压縮和传送,
现在参考图4,示出了根据一实施例的计算机系统400的编程层的表示。尽管图4描绘了某些的、特定的列举的特征和元素,可以理解,实施例很好地适用于具有附加的、更少的,或不同的特征、安排或元素的应用程序。如图4所描绘的,计算机系统400可被构想为由日益增多的抽象的层
组成。此处示出为硬件层430的最底层由例如,处理器301、存储器302或图形适配器305等构成计算机系统的实际电子组件组成。
从硬件层430上移一层,图4显示了内核空间420。在一些实施例中,内核空间420和硬件层430之间的交互由对例如在此处示为设备驱动程序425等设备驱动程序的一个或多个特定软件的操作来实现。此外,在一些实施例中,即使在计算机系统400中不存在硬件,设备驱动程序仍然可被用来模拟硬件的功能。例如,如以下更详细的描述,虚拟设备驱动程序可被用来模仿不存在于源计算机系统中的图形适配器的功能。
此处示为用户空间410的最上层,通过接口 415与内核空间420交互。接口 415通过内核将可用的功能和服务展现于在用户空间410内运行的应用程序。
从源计算机将图形数据传送至目的地计算机
在一些实施例中,流程图200的方法通过几个软件的动作来实现。在该实施例中,源计算机包含例如在用户空间410内运行的源用户应用程序和例如驻留在内核空间420中的专用设备驱动程序。与此同时,目的地计算机包含目的地用户应用程序。在该实施例中,专用设备驱动程序提供了将在目的地显示器上被显示的图形信息,该信息由源用户应用程序携带、压缩并传送至目的地计算机,在目的地计算机中,目的地用户应用程序解压縮该信息并使其在目的地监视器上被显示。
现在参考图5,描绘了根据一实施例的计算机网络590。尽管图5描绘了某些的、特定的列举的特征和元素,可以理解,各实施例很好地适用于具有附加的、更少的或不同的特征、安排或元素的应用程序。
图5描绘源计算机500和目的地计算机550之间的交互。此处所示的源计算机500包括被再分为用户空间510和内核空间520的操作系统501。源计算机500还被示为包括连接至源监视器530的显示器适配器505。源计算机500还包括通过网络连接599将源计算机500可通信地与目的地计算机550耦合的网络适配器508。
13在所描绘的实施例中,内核空间520包括两个设备驱动程序视频驱
动程序523和专用设备驱动程序525。如所示的,视频驱动程序523允许源 计算机500将信息显示于源监视器530之上。与此同时,专用设备驱动程 序525被用来将信息显示于目的地监视器580之上。在不同的实施例中, 专用设备驱动程序525的操作和功能可以是不同的。在一实施例中,例如, 专用设备驱动程序525是"镜像"设备驱动程序。在该实施例中,专用设备 驱动程序525被用来复制("镜像"或"克隆")由视频驱动程序523生成的 并在源监视器530上显示的图形数据。在另一实施例中,专用设备驱动程序 525是虚拟设备驱动程序。在该实施例中,专用设备驱动程序525被用来生 成用于扩展模式或"跨越"模式的与视频驱动程序523所生成的图形数据 不同的图形数据。
在一特定的实施例中,利用通过源计算机的操作系统可获得的通用图 形设备接口 (GDI)功能来实现虚拟设备驱动程序。常规地,显示设备驱动 程序将实现特定预定义的绘图功能,例如,与一套标准化的图像呈现要求 相关联的功能。在一实施例中,操作系统提供了针对该标准化的绘图功能 集合的共用的实现。虚拟设备驱动程序调用这些GDI功能以生成图像数据。
在被描述的实施例中,用户应用程序515在计算机500上于用户空间 510内运行。在该实施例中,用户应用程序515执行三种功能。首先,用户 应用程序515访问专用设备驱动程序525,并检索将在目的地显示器上被显 示的图形数据。其次,用户应用程序515执行将图形数据传送至目的地计 算机所必需的任何压縮或加密。在例如用户应用程序515选择适合源计算 机500和目的地计算机550之间可用带宽的压縮技术的一些实施例中,用 户应用程序515包括用于检测可用带宽的模块。再次,在所描述的实施例 中,用户应用程序515使该(经压縮的)图形数据被传送至目的地计算机。
目的地计算机550被示为包括被再分成用户空间560和内核空间570 的操作系统551。目的地计算机550还被示为包括被连接至目的地监视器 580的显示器适配器555。目的地计算机550还包括通过网络连接599将目的 地计算机550可通信地与源地计算机500耦合的网络适配器558。
内核空间570被示为包括视频驱动程序573。视频驱动程序573被目的地计算机550用来通过将信息传送经过显示器适配器555来将信息显示 于目的地监视器580之上。
用户空间550被示为包括用户应用程序565。在该实施例中,用户应 用程序565执行三个功能。首先,用户应用程序565从源计算机500处接 收由用户应用程序515传送的(经压縮的)图形数据。其次,用户应用程 序565执行任何必要的解压縮或解密。最后,用户应用程序565使从源计 算机550接收的图形数据被显示,例如,通过将图形数据传至视频驱动程 序573使其输出至显示器适配器555,并由此被显示到目的地监视器580 上。
在一些实施例中,用户应用程序515和用户应用程序565可以是相同 的应用程序,例如,单个用户应用程序被配置成允许特定的计算机作为源 计算机和/或目的地计算机。在一个这样的实施例中,目的地计算机550还可 包括与专用设备驱动程序525类似的专用设备驱动程序。
在一些实施例中,目的地计算机可有多个显示器和/或显示器适配器可 用。在一个这样的实施例中,用户应用程序565被配置成允许对目的地计算机 550上可获得的显示进行选择。
用户空间应用程序与内核空间设备驱动程序之间的交互
在一些实施例中,通过优化源计算机上的专用设备驱动程序和用户空 间应用程序间的图形数据的传送,可获得效率优势。传统地,从设备驱动 程序(或其它内核空间特征)传递至用户空间应用程序的信息通过例如接 口415的接口传递。在该过程中,例如用户空间应用程序515等用户空间 应用程序向例如专用设备驱动程序器525等内核空间驱动请求数据。该请 求包括指向用户空间应用程序可获得的存储器缓冲的指针。进而,内核接 口将从设备驱动程序处检索所请求的信息,并将其复制至临时缓冲。从临 时缓冲处,所请求的信息将随后被复制至用户应用程序的专用存储器缓冲。
在一些实施例中,用户应用程序和专用设备驱动程序器被配置为绕过 正常的双重复制方式。在一个这样的实施例中,用户应用程序将期望的存 储器缓冲地址直接传至专用设备驱动程序,该设备驱动程序随后将被请求的图形数据直接复制至该专用存储器缓冲。这样,图形信息仅被复制一次, 从而减少了所需的存储器访问量,并相应地加速了操作。在一实施例中, 用户应用程序和/或专用设备驱动程序器被配置成当直接复制过程期间出现 例如存储异常等问题时,将采用传统的两次复制过程来取而代之。
传送图形数据的方法
现在参考图6A,示出根据一实施例的传送图形数据的方法的流程图 600。尽管在流程图600中公开了具体步骤,但是这些步骤是示例性的。艮P, 本发明的各实施例很好地适用于执行各种其它(附加)步骤或流程图600中所 述步骤的变型。可以理解为,流程图600中的步骤可以用与所呈现的不同的次 序来执行,并非要执行流程图600中的全部步骤。
现在参考步骤610,向显示器驱动程序请求图形数据。在一些实施例中, 该请求将包括用于存储所请求的图形数据的存储器地址。在一实施例中, 用户应用程序可将请求直接传至显示器驱动程序。在另一实施例中,用户 应用程序可将请求传至内核接口 ,该接口将随之向显示器驱动程序请求图 形数据,并将该数据存至特定的存储器地址。在一些实施例中,显示器驱 动程序是虚拟的显示器驱动程序。在其它实施例中,显示器驱动程序是"镜 像"显示器驱动程序。在另一实施例中,显示器驱动程序可按不同的方法 被配置。
例如,参考图5,用户应用程序515向专用设备驱动程序525请求图 形数据,并将包括指向在其中存储图形数据的缓冲的指针。
现参考步骤620,接收所请求的图形数据。在一些实施例中,显示驱 动程序被配置成将所请求的图形数据直接复制至可被用户应用程序访问的 经指示的存储器位置。在其它实施例中,内核接口可从显示器驱动程序获 得所请求的图形数据,并将数据写入指示的存储器位置。在其的实施例中, 采用了其它的方法。
继续上述的示例,专用设备驱动程序器525将所请求的图形数据复制 至被指示的缓冲。用户应用程序515从缓冲中读取图形数据。
现在参考步骤630,图形数据被压縮。在一些实施例中,用户应用程
16序压縮图形数据。在不同的实施例中,如上所述,可采用不同的压縮技术 来压縮图形数据。在一个这样的实施例中,参考源计算机和目的地计算机 之间的可用带宽来压縮图形数据,例如,相对那些在低带宽情况下使用的 技术,在高带宽情况下可适用不同的压縮技术。
继续上述的示例,用户应用程序515压縮图形数据。参考连接源计算
机500和目的地计算机550的网络连接599的带宽选择采用的压縮技术。 如果网络连接599是高带宽连接,可采用诸如RLC压縮等无损压縮技术。 如果网络连接599是例如无线连接的低带宽连接,可采用诸如随后是收縮 压縮的RLC压縮或有损压縮技术等其它有损压縮技术。
现在参考步骤635,在一些实施例中,图形数据被加密。在一些实施 例中,用户应用程序加密图形数据,用来帮助从未被授权的查看者处保护 图形数据。在一些实施例中,加密伴随在压縮后。在其它实施例中,在压縮 前执行加密。
继续上述的示例,用户应用程序515加密经压縮的图形数据。 现在参考步骤640,经压縮的图形数据被传送至目的地计算机。在一
些实施例中,用户应用程序使用源计算机的网络连接来传送经压縮的图形
数据至目的地计算机。
继续上述的示例,用户应用程序515使用网络适配器508通过网络连
接599传输被加密的图形数据至目的地计算机550。
显示从源计算机处接收的图形数据的方法
现在参考图6B,描绘了根据一实施例的从源计算机接收到的图形数据 的方法的流程图650。尽管在流程图650中公开了具体步骤,但是这些步骤是 示例性的。即,本发明的各实施例很好地适用于执行各种其它(附加)步骤或 流程图650中所述步骤的变型。可以理解为,流程图650中的步骤可以用与所 呈现的不同的次序来执行,并非要执行流程图650中的全部步骤。
在步骤660处,从源计算机接收经压縮的图形数据。在一些实施例中, 在目的地计算机上运行的用户应用程序从在源计算机上运行的用户应用程 序接收经压縮的图形数据。在其它实施例中,可采用图形数据的其它来源。例如,参考图5,在目的地计算机550上运行的用户应用程序565从 源计算机500处接收经压縮的图形数据。经压縮的图形数据被用户应用程 序515通过网络连接599传送。
在步骤665处,在一些实施例中,图形数据被解密。在图形数据在其 从源计算机被传送至目的地计算机之前被加密了的一些实施例中,需要目 的地计算机的用户应用程序来解密该经加密的图形数据。在一些实施例中, 解密可在解压縮后发生。在一些实施例中,在对图形数据解压縮之前解密。 在不同的实施例中,采用了适合所采用的加密技术的不同的解密技术。
在步骤670处,经压縮的图形数据被解压縮。在一些实施例中,在目 的地计算机上的接收用户应用程序解压縮从源计算机接收到的经压缩的图 形数据。在不同的实施例中,如上,用于解压縮经压縮的图形数据会是不 同的。例如,如果使用RLC编码来压縮图形数据,则用户应用程序将需要 采用适当的解压縮技术。
继续上述的示例,用户应用程序565使用适当的技术解压縮从用户应 用程序515处接收的经压縮的图形数据。
在步骤680处,经解压縮的图形数据被输出至目的地计算机的显示器 上。在一些实施例中,用户应用程序使被解压縮(和被解密)的图形数据 被显示在目的地计算机的监视器上或其它显示器上。在一个这样的实施例 中,用户应用程序将经解压縮的图形数据传至用于目的地计算机的显示器 适配器的显示器驱动程序。
继续上述的示例,用户应用程序565将被解压縮的图形数据传给视频 驱动程序573,用于输出至显示器适配器555并显示在目的地监视器580 上。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理 解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反, 上述具体特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种跨网络共享监视器的方法,包括从源计算机上的显示器驱动程序中检索图形信息;压缩该图形信息,以产生经压缩的图形信息;将该图形信息从该源计算机传送至目的地计算机;解压缩该经压缩的图形信息,以产生经解压缩的图形信息;以及在耦合至该目的地计算机的目的地显示器上显示该经解压缩的图形信息。
2. 如权利要求l所述的方法,其特征在于,还包括 在所述传送之前加密该图形信息。
3. 如权利要求l所述的方法,其特征在于,该显示器驱动程序包括虚 拟显示器驱动程序。
4. 如权利要求l所述的方法,其特征在于,该显示器驱动程序包括镜 像显示器驱动程序。
5. 如权利要求l所述的方法,其特征在于,该图形信息包括用于复制在耦合至该源计算机的显示器上显示的图像的重复图像数据。
6. 如权利要求l所述的方法,其特征在于,该图形信息包括扩展的图像数据。
7. 如权利要求l所述的方法,其特征在于,该图形信息包括图像数据流。
8. 如权利要求7所述的方法,其特征在于,该图像数据流包含先前的图像帧和当前的图像帧之间的改变。
9. 一种用于将图形数据从源计算机传送至目的地计算机的系统,包括: 在该源计算机上操作的用于控制该源计算机的操作系统;在该操作系统上运行的用户应用程序;以及由该操作系统控制的用于传送信息的网络接口,其中该用户应用程序被 配置成从设备驱动程序处检索图形信息,并且还被配置成压縮该图形信息, 并且还被配置成将经压縮的图形信息通过该网络接口传送至该目的地计算 机。
10. 如权利要求9所述的系统,其特征在于,该用户应用程序还被配置 成确定该源计算机和该目的地计算机之间的该网络接口的带宽。
11. 如权利要求io所述的系统,其特征在于,该用户应用程序被配置成参考该源计算机和该目的地计算机之间的该带宽在多种压縮技术中进行 选择。
12. 如权利要求9所述的系统,其特征在于,该用户应用程序还被配置 成加密该图形信息。
13. 如权利要求9所述的系统,其特征在于,该设备驱动程序包括在该 操作系统的内核空间中运行的虚拟显示器驱动程序。
14. 如权利要求9所述的系统,其特征在于,该设备驱动程序包括在该 操作系统的内核空间中运行的镜像显示器驱动程序。
15. 如权利要求9所述的系统,其特征在于,该用户应用程序被配置成 通过向该设备驱动程序发送包括存储器地址的请求并从该存储器地址读取 该图形信息,以从该设备驱动程序中检索该图形信息。
16. 如权利要求15所述的系统,其特征在于,该设备驱动程序被配置 成直接向该存储器地址写入该图形信息。
17. —种具有用于执行以下步骤的计算机可执行指令的计算机可读介质,所述步骤包括向显示器驱动程序请求图形数据; 接收该图形数据;压縮该图形数据以产生经压縮的屈形数据;以及 传送该经压縮的图形数据。
18. 如权利要求17所述的计算机可读介质,还包括 加密该图形数据。
19. 如权利要求17所述的计算机可读介质,还包括 接收该经压縮的图形数据;解压縮该经压縮的图形数据以产生经解压縮的图形数据;以及 输出该经解压縮的图形数据至目的地显示器。
20. 如权利要求17所述的计算机可读介质,其特征在于,该压縮包括 将行程长度编码(RLC)压縮技术应用至该图形数据。
全文摘要
在此所详述的是一种特别地允许源计算机将图像数据显示于目的地计算机上的技术。该技术的一种方法中,描述了跨网络共享监视器的方法。该方法涉及从源计算机上的显示器驱动程序中检索图形信息。该图形信息被压缩,并且从源计算机被传送至目的地计算机。经压缩的图形信息随后被解压缩,并被显示于附连在目的地计算机上的目的地显示器之上。
文档编号G06F15/16GK101681246SQ200880019094
公开日2010年3月24日 申请日期2008年6月9日 优先权日2007年6月8日
发明者C·李, J·王, L·王, Y·李 申请人:微软公司