从更新缓冲器提供像素.pdf

上传人:a3 文档编号:972167 上传时间:2018-03-22 格式:PDF 页数:13 大小:599.30KB
返回 下载 相关 举报
摘要
申请专利号:

CN200880101394.2

申请日:

2008.07.14

公开号:

CN101796501A

公开日:

2010.08.04

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 15/00申请日:20080714|||公开

IPC分类号:

G06F15/00

主分类号:

G06F15/00

申请人:

惠普开发有限公司

发明人:

R·M·霍奇穆斯; R·P·马丁; A·D·托马斯

地址:

美国德克萨斯州

优先权:

2007.07.31 US 11/830,930

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

王岳;王洪斌

PDF下载: PDF下载
内容摘要

一种方法(100)包括将像素数据存储(102)在帧缓冲器中,从所述帧缓冲器检索(104)所述像素数据并处理所述像素数据的至少一个像素值以生成输出像素位流。该方法还包括将像素值存储(108)在第一更新缓冲器中。所述像素值来源于所述输出像素位流。该方法还包括将所述像素值通过网络从所述第一更新缓冲器提供给(110)远程图形系统。

权利要求书

1: 一种方法(100),包括: 将像素数据存储(102)在帧缓冲器中; 从所述帧缓冲器检索(104)所述像素数据并处理所述像素数据的至少一个像素值以生成输出像素位流; 将像素值存储(108)在第一更新缓冲器中,所述像素值来源于所述输出像素位流;以及 将所述像素值通过网络从所述第一更新缓冲器提供给(110)远程图形系统。
2: 权利要求1的方法,还包括将所述输出像素位流与先前存储在第一更新缓冲器中的像素值相比较。
3: 权利要求2的方法,其中,将像素值存储在第一更新缓冲器中包括基于所述比较来重写所述第一更新缓冲器中的先前存储的像素值。
4: 权利要求1的方法,还包括将所述第一更新缓冲器的内容写入第二更新缓冲器。
5: 权利要求4的方法,还包括将所述第一更新缓冲器的内容写入系统存储器。
6: 一种图形子系统(14),包括: 存储设备(52),包括帧缓冲器(56)和第一更新缓冲器(58);以及 显示刷新单元(54),从所述帧缓冲器检索像素数据并处理所述像素数据的至少一个像素值以生成输出像素位流,所述显示刷新单元还促使所述输出像素位流的拷贝被存储在第一更新缓冲器中;以及 逻辑,促使表示所述输出像素位流的所述拷贝的像素值通过网络被传送到接收系统。
7: 权利要求6的图形子系统,其中,所述显示刷新单元将所述输出像素位流与所述第一更新缓冲器的内容相比较。
8: 权利要求7的图形子系统,还包括delta缓冲器(60),其中,所述显示刷新单元存储表示输出像素位流中的像素值是否不同于所述第一更新缓冲器的内容的数据。
9: 权利要求6的图形子系统,其中,所述存储设备还包括第二更新缓冲器(58),且所述显示刷新单元还促使所述输出像素位流的拷贝被存储在所述第二更新缓冲器中。
10: 权利要求9的图形子系统,其中,所述存储设备还包括包含多个位的第一和第二delta缓冲器(60),每个位与多个像素相关联并指定相关像素中的任何像素是否已改变。

说明书


从更新缓冲器提供像素

    背景技术

    某些电子系统允许一个计算机的用户在他或她的显示器上观看在位于远离用户计算机的位置的另一计算机上生成的图像(图形和文本)。在某些此类系统中,生成图形数据的远程计算机将图像传送到用户的计算机,这促使用户的计算机复制在产生图像的计算机上的图像。遗憾的是在用户的计算机上观看到的图像可能与最初在远程计算机上生成的图像不同。

    【附图说明】

    为了更详细地描述本发明的示例性实施例,现在将对附图进行参考,在附图中:

    图1示出依照各种实施例的系统;

    图2是依照各种实施例的图1的系统的至少一部分的方框图;

    图3举例说明依照各种实施例的其中使用更新缓冲器(updatebuffer)的方框图;

    图4示出依照各种实施例的方法;以及

    图5举例说明依照各种实施例的其中使用多个更新缓冲器的方框图。

    符号和术语

    某些术语在以下说明书和权利要求中自始至终用来指示特定的系统组件。如本领域的技术人员将认识到的那样,计算机公司可以用不同的名称来指示组件。本文献并不意图对在名称而不是功能方面不同的组件进行区别。在以下讨论和权利要求中,以开放的形式使用术语“包括”和“包含”,且因此应将其解释为意指“包括但不限于”。而且,术语“耦合”意图意指间接、直接、光学或无线电气连接。因而,如果第一设备耦合到第二设备,则连接可以通过直接电连接、通过经由其它设备和连接的间接电连接、通过光学电连接、或通过无线电气连接来实现。

    【具体实施方式】

    图1示出包括系统100的实施例。系统100包括经由网络25可通信地耦合的发送系统12和接收系统30。通过网络,系统12和30可通信地相互耦合。网络25可以包括因特网或其它形式的通信网络。网络25可以包括点到点通信链路以及多点网络,其为典型的局部网。如所示,发送系统12包括图形子系统14、显示器16、系统存储器17、图形应用程序18、发送器22、以及操作系统231。图形应用程序18和发送器22包括可执行代码。接收系统30包括图形子系统32、显示器34、输入设备35、以及接收器36。接收系统中的接收器36包括可执行代码。结合图1来简要地参考图2,发送系统12和接收系统30中的每一个包括经由系统总线44耦合到存储器42和图形子系统14、32的处理器40。如所示,每个系统12、30还包括耦合到各图形子系统14、32的显示器16、34。由该系统中的各处理器40来执行所示实施例中的每个可执行代码(即,图形应用程序18、发送器22、操作系统23、以及接收器36)并将其存储在存储器42中。存储器42可以包括易失性存储器(例如随机存取存储器)、非易失性存储器(例如硬盘驱动器)或其组合。发送系统12的存储器42可以包括图1所示的系统存储器17。图形子系统14和32中的每一个可以包括诸如应用程序编程界面(API)的附加可执行代码、图形驱动程序、诸如图形适配器的一个或多个硬件组件等等。每个图形子系统还包括至少一个帧缓冲器,像素颜色值可以被暂时存储到该帧缓冲器中以便在相关显示器上再现像素。

    在某些实施例中,发送系统12具有与之耦合的显示器16,但在其它实施例中,不包括发送系统的显示器16。接收系统30可以包括诸如键盘或鼠标的输入设备35,其允许接收系统的用户有效地与图形应用程序18对接,如同正在接收系统30上执行该图形应用程序一样。

    参照图1,发送系统12执行促使图像(例如文本、线、填充物)被图形子系统14显示在显示器16上的图形应用程序18。图形应用程序18包括使用图形API的多个可执行程序中的任何一个或多个。图形应用程序所使用的API由图形子系统14实现。图形应用程序18通过向产生包括像素数据的图像并将其存储在图形子系统14中的帧缓冲器中的图形子系统14提供图形命令来促使被显示在显示器16上。

    图3示出发送系统12的图形子系统14的实施例。在某些实施例中,图形子系统14包括安装在发送系统12中地插入(add-in)卡。如图3所示,图形子系统14包括耦合到图形存储器52的计算引擎50,图形存储器52耦合到显示刷新(refresh)单元54。在某些实施例中,计算引擎50、图形存储器52、以及显示刷新单元54全部包括硬件组件。计算引擎50从发送系统12的处理器40接收图形命令并生成包括像素数据的图像。计算引擎50还可以压缩像素数据。计算引擎50将像素数据存储在帧缓冲器56中,帧缓冲器56在图形存储器52中实现。显示刷新单元54包括帧后缓冲器处理器单元(post-frame bufferprocessor unit)62,其从帧缓冲器56检索像素数据,并且在某些实施例中对来自帧缓冲器的像素数据执行附加处理以生成输出像素位流。此类附加处理的示例包括颜色-空间转换、颜色覆盖平面(color overlayplane)的实现、伽玛校正的应用。色彩-空间转换包括将输出像素位流从诸如红色-绿色-蓝色(RGB)的一种颜色-空间格式改变成诸如亮度-色度格式(YCrCb)的另一种格式。除帧缓冲器像素数据的原始(native)格式之外的格式可以产生用于确定将被发送系统12传送到接收系统30的像素值的格式高效处理(efficient process)。在某些实施例中,帧缓冲器56中的像素数据包括实际颜色值,而在其它实施例中,像素数据包括被帧后缓冲器处理器单元62分解成实际颜色值的颜色指数(index)值。例如,帧后缓冲器处理器单元62使用指数值从颜色查找表中查找颜色值。帧后缓冲器处理器单元62还将像素位流转换成适合于耦合到发送系统12的特定显示器16的格式。例如,显示刷新单元54可以以诸如视频图形阵列(VGA)的模拟格式或诸如数字视频接口(DVI)的数字格式生成输出像素位流。

    发送系统12经由网络25将呈现在显示器16上的像素数据的拷贝提供给接收系统30。然而,不是将像素数据从帧缓冲器56传送到接收系统30,而是发送系统12从显示刷新单元54、具体而言是帧后缓冲器处理器单元62获取输出像素位流并通过网络25将表示该输出像素位流的像素值提供给接收系统30。由于输出像素位流具有被编码到其中的帧后缓冲器处理器单元62的效果,所以被传送到接收系统30的图像包括正被显示在显示器16上的内容。如果来自帧缓冲器56的像素数据被传送到接收系统30,则将不会以帧后缓冲器处理器单元62的效果来对此类数据进行编码,因此,接收系统30可能不显示与在发送系统12上所显示的图像相同的图像。

    图3的图形子系统14的图形存储器52还包括更新缓冲器58和delta(德尔塔)缓冲器(BFR)60。更新和delta缓冲器58和60与帧缓冲器56分离。更新缓冲器58一般包括在时间方面在被编码在由显示刷新单元54生成的输出像素位流中的当前帧之前的视频帧。显示刷新单元54还包括比较单元66。比较单元66接收由帧后缓冲器处理器62生成的输出像素位流的拷贝。比较单元66例如逐个像素地将被编码在输出像素位流中的像素与存储在更新缓冲器58中的像素值相比较以确定当前的显示图像是否不同于先前图像(存储在更新缓冲器58中)。在某些实施例中,比较连续的每对图像帧,而在其它实施例中,由比较单元66来比较除连续的每一对之外的图像帧。在某些实施例中,例如,每隔一个图像帧进行比较。

    作为由比较单元66执行的比较的结果,比较单元可以在存储在更新缓冲器中的先前图像与被编码在显示刷新单元54的输出像素位流中的当前图像之间,确定一个或多个像素已改变,同时确定其它像素未改变。例如,相对静态的图像将具有至少某些像素,其颜色值从一个图像帧到下一个图像帧未改变。比较单元66重写更新缓冲器58中的、比较单元66确定已改变的像素值,而不重写(即不管)被确定为未改变的那些更新缓冲器像素值。所述重写可以包括替换像素值,或等于旧像素值与新像素值之间的差的差值。作为逐个像素比较和至少部分的更新缓冲器重写的结果,比较单元66及因此的显示刷新单元54实际上促使输出像素位流的拷贝被生成并存储在更新缓冲器58中。换言之,更新缓冲器58的内容反映当前正显示在发送系统的显示器16上的图像。

    在各种实施例中,delta缓冲器60包括与每个像素相关的位,所述像素的颜色值被存储在更新缓冲器58中。比较单元66将delta缓冲器位写成例如值“1”以指示对应于该delta缓冲器位的像素已改变或写入值“0”以指示相应的像素未改变。在某些实施例中,delta缓冲器60的内容最初为0,因此,比较单元66只需要将某些位改为值“1”以指示此类像素已发生的颜色方面的变化(即需要将值“0”写入delta缓冲器以指示颜色变化的不存在)。在其它实施例中,delta位值“0”指示相应的像素已改变且值“1”指示相应的像素未改变。可以将delta缓冲器60中的所有位初始化成如上所述的值“0”或值“1”。

    在某些实施例中,delta缓冲器60中的每位属于更新缓冲器中的单独像素。在其它实施例中,delta缓冲器60中的每位属于更新缓冲器中的一组像素。例如,每个delta缓冲器位可以属于8×8像素组。对应于一组像素的delta缓冲器位指定该组中的任何像素是否已改变。

    在某些实施例中,一旦更新和delta缓冲器58、60已更新,则缓冲器58、60的某些或全部内容经由系统总线44被写入系统存储器17。在各种实施例中,图形子系统14向系统存储器17中写入仅对应于如delta缓冲器60的内容所指示的那样实际上已改变的那些像素的像素值。例如,图形子系统14检查delta缓冲器60中的各个位并只写入来自更新缓冲器58的那些像素值,其对应于已由比较单元66写入以指示相应的像素已改变的delta缓冲器位。在某些实施例中,更新和delta缓冲器58和60的全部内容被写入系统存储器17且发送系统的主处理器40检查delta缓冲器60的内容的系统存储器中的拷贝以确定哪些像素已改变。主处理器40基于处理器进行的delta缓冲器内容的检查来生成仅包含改变像素的一个或多个图像分组。在各种实施例中,主处理器40压缩将通过网络25被传送到接收系统的像素数据。

    在某些实施例中,发送系统的主处理器检查delta缓冲器,而且将相邻的块组合成较大块或将相邻像素组合成较大的矩形区域。例如,如果d(0,1)和d(0,2)已被修改,其中d是delta缓冲器,则d(0,1)和d(0,2)所对应的像素将被组合成单个较大矩形。然后,这些较大区域被读回到系统存储器中、压缩并传送到接收系统。因此,相互“接触”(或相邻)的已改变的像素区域被组合成较大区域,以便减少读操作的次数。减少读操作的数目帮助改善性能。不是读取许多小矩形,而是读取更少但更大的矩形。

    在各种实施例中,用X,Y屏幕坐标对被发送到接收系统30的每个像素值进行编码以便向接收系统的图形子系统指示该像素被应用到屏幕的位置。在其它实施例中,可以用起始X和起始Y坐标连同长度值一起来对像素串进行编码以指示随后的像素的数目。此外,可以用块的相对拐角(opposite corner)(例如左上和右下)的坐标来对像素块(例如矩形的一组相邻像素)进行编码。另一实施例包括逐个像素地工作的以下方法:

    struct Header

    {

       Byte isModified;

       Color color;

    }

    其中isModified是指示像素是否已被修改(modified)的布尔值,且如果isModified为真,则颜色是RGB或可选地提供的某些其它色彩空间值。

    逐个块地工作的另一种可能性是:

    struct Block

    {

       Byte isModified;

       Color colors[8,8];

    }

    其中isModified是指示块中的任何像素已被修改的布尔值,且色彩是二维8×8的色彩值阵列。在本示例中,块具有8×8像素的尺寸,但是可以有任何尺寸的块。如果块中的任何像素已被修改,则整个块被发送到接收系统30。

    因此,从系统存储器17通过网络25向接收系统30提供表示发送系统的显示图像的像素数据。如果任何像素具有如上所述未改变的颜色值,则此类传送的像素数据包括小于全屏或窗口价值(window′sworth)的像素值。发送系统12通过网络25从系统存储器17、并因此间接地从更新缓冲器58向远程图形系统(接收系统30)提供像素值。如果通过网络25传送的像素数据已被压缩,则接收器36对该数据进行解压缩并将像素数据提供给图形子系统32以便显示在显示器34上。如上所解释的所产生的更新缓冲器内容的图像帧比较过程和传输重复进行,从而促使用由发送系统12正在生成的图像来更新接收系统的显示器34。

    图4示出依照各种实施例的方法100。在102处,方法100包括将像素数据存储在帧缓冲器(例如帧缓冲器56)中。在104处,该方法包括显示刷新单元54从帧缓冲器中检索像素数据。如上所解释的,显示刷新单元54可以将各种类型的颜色修改中的任何一种应用于来自帧缓冲器的像素数据(例如伽玛)以产生输出像素位流(106),而且以与显示器16兼容的格式(例如VGA、DVI)生成视频信号。在108处,方法100包括将像素值存储在第一更新缓冲器中。图3举例说明的这样的实施例,其中图形存储器52仅包括单个更新缓冲器58,但在如下所示的其它实施例中图形存储器52包括多个更新缓冲器58。存储在第一更新缓冲器中的像素值包括在将当前图像与先前图形相比较的比较过程期间确定的已改变的像素值。在110处,方法100包括通过网络25从第一更新缓冲器向接收系统30提供像素值。在各种实施例中,从更新缓冲器提供的像素值包括但不一定全部是更新缓冲器的像素(例如,只有已被delta缓冲器60的内容指定为改变的那些像素的像素值)。图4中的动作110因此包括关于哪些像素已改变的确定。此确定可以由检查其自己的更新和delta缓冲器58和60的内容的图形子系统14来执行或由检查图形子系统的更新和delta缓冲器58和60的内容或存储在系统存储器17中的该缓冲器的拷贝的发送系统的主处理器40来执行。

    图5示出其中图形子系统14的图形存储器52包括多个更新缓冲器58和多个delta缓冲器60的实施例。在某些此类实施例中,图形存储器17包括两个更新缓冲器58和两个delta缓冲器60。以下讨论采用称为“A更新缓冲器”、“B更新缓冲器”、“A delta缓冲器”、以及“B delta缓冲器”的两个更新缓冲器和两个delta缓冲器。在比较单元66将从帧后缓冲器处理器62生成的输出像素位流与A更新缓冲器(其包含在先的图像)的内容相比较的同时,可能经由如上所解释的系统存储器17通过网络25将B更新缓冲器和B delta缓冲器(其包含比较过程的先前迭代的结果)的某些或全部内容传送到接收系统30。然后,当相对于A更新缓冲器58的当前比较过程完成时,交换A和B更新和delta缓冲器的角色,但是在其它实施例中将A更新缓冲器和A delta缓冲器的内容拷贝到B更新缓冲器和B delta缓冲器。这里,重复比较过程,这次使用B更新缓冲器和B delta缓冲器58、60。在执行相对于B更新缓冲器和B delta缓冲器的比较的同时,通过网络25将A更新缓冲器和A delta缓冲器的某些或全部内容传送到上文所解释的接收系统30。A和B更新和delta缓冲器58、60的使用因此来回反复。多个更新缓冲器和delta缓冲器的此类使用通常比仅使用单个更新缓冲器和单个delta缓冲器更高效。

    也可以有使用多个更新缓冲器和delta缓冲器的其它实施例。例如,不是如上所解释的那样将A更新和delta缓冲器58、60拷贝到B更新和delta缓冲器,而是将一对更新和delta缓冲器指定为“当前(Current)”并将另一对更新和delta缓冲器指定为“先前(Previous)”。在本实施例中,由显示刷新单元54生成的输出像素位流被写入当前更新缓冲器58中。随着像素数据被写入当前更新缓冲器58中,由比较单元66将此类像素数据与先前更新缓冲器58中的相应像素数据相比较。如果发现差异,则针对该特定像素或像素的区域更新当前delta缓冲器60。当发送系统12准备好压缩下一个图像帧并将其发送到接收系统30时,交换先前和当前的更新和delta缓冲器58、60的角色。在至少某些实施例中,使交换缓冲器角色的动作与显示器回描周期同步以防止例如图像“撕裂(tearing)”。在本实施例中,每当交换角色时,当前delta缓冲器60被清零(clear)。在某些实施例中,在存在两个缓冲器的情况下,可以始终更新当前delta缓冲器。由于自从最后一次交换以来,针对先前帧的比较操作始终针对该帧发生,则可能仅仅更新delta缓冲器。

    上述讨论意图说明本发明的原理和各种实施例。一旦完全认识以上公开,则许多变更和修改对于本领域的技术人员来说将是显而易见的。意图在于将以下权利要求解释为涵盖所有此类变更和修改。

从更新缓冲器提供像素.pdf_第1页
第1页 / 共13页
从更新缓冲器提供像素.pdf_第2页
第2页 / 共13页
从更新缓冲器提供像素.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《从更新缓冲器提供像素.pdf》由会员分享,可在线阅读,更多相关《从更新缓冲器提供像素.pdf(13页珍藏版)》请在专利查询网上搜索。

一种方法(100)包括将像素数据存储(102)在帧缓冲器中,从所述帧缓冲器检索(104)所述像素数据并处理所述像素数据的至少一个像素值以生成输出像素位流。该方法还包括将像素值存储(108)在第一更新缓冲器中。所述像素值来源于所述输出像素位流。该方法还包括将所述像素值通过网络从所述第一更新缓冲器提供给(110)远程图形系统。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1