具有基于标签的通信协议的图像处理系统和方法

文档序号:6656489阅读:147来源:国知局
专利名称:具有基于标签的通信协议的图像处理系统和方法
技术领域
本发明总体上涉及处理图像数据的装置、系统和方法,更具体地,涉及提供客户 机图像源设备和目标服务器显示设备之间的网络通信的装置、系统和方法。


图l是根据本发明的第一实施例的图像数据处理系统的示意图。图2是可以连同本发明的软件、系统和方法使用的示例计算设备的示意图。图3是根据本发明的处理图像数据的示例方法的流程图。图4是根据本发明进行通信的示例客户机图像源设备和目标服务器显示设备的 示意图。图5-12示出可以使用以有助于一个或多个图像源设备和一个或多个目标显示 设备之间的网络通信的网络通信协议的多个示例方面。
具体实施方式
图1总地在20处示出根据本发明的第一实施例的图像数据处理系统的示意图。 图像处理系统20包括配置为在观看面24上显示图像的显示设备22。显示设备22可 以是任何适合类型的显示设备。其示例包括但不限于,液晶显示器(LCD)和数字光 处理(DLP)投影机,电视系统,计算机监控器等等。图像处理系统20还包括与显示设备22关联的图像提供设备26,及一个或多个 通过网络30与图像提供设备26进行电通信的图像源28。图像提供设备26配置为接 收由图像源28发送的图像数据,并处理所接收的图像数据以用于由显示设备22显示。 图像提供设备26可以集成到显示设备22中,或可以作为可连接到显示设备的单独组 件提供。适合的图像提供设备的一个示例在2003年6月2曰提交、序列号为 1 0/453,905的美国专利申请中公开,将该申请结合在此作为参考。系统20的各部分 之间的互连可以是无线的(如,网络30可以是无线网络)、有线的,或有线与无线 链路的组合。通常,通过如膝上型或台式计算机、个人数字助理(PDA)或其他计算设备这样
的图像源向显示设备提供图像数据。某些显示设备配置为从图像源无线地接收图像数 据,例如通过如802. lib (或其他802.11协议)、蓝牙等这样的通信协议。这些显 示设备可以允许从会议室内的几乎任何位置快速地连接图像源,从而可以有助于对单 个显示设备使用多个图像源。
然而,支持对单个显示设备使用多个图像源会造成各种困难。例如,不同的图像 源可能使用不同的软件以生成和/或显示不同格式的图像文件。在此情况下,支持多 个图像源的显示设备可能需要包括用于解压缩、提供和/或显示多种不同类型的图像 文件的适合的软件。在很多情况下,该软件可能由显示设备制造商之外的公司提供。 因此,安装和更新这样的软件会使显示设备暴露于软件病毒、编程缺陷,及超出显示 设备制造商控制的其他问题之下。此外,存储和执行显示所有所需图像数据格式需要 的多个软件程序可能要求较大的存储量和较强的处理能力。
一种减少显示设备上所需的软件数量的可行方法可以是仅将原始数据文件从每 个图像源传输到显示设备,而不是传输格式化的图像数据文件。在此情况下,显示设 备可以只需要支持单种图像数据格式,这可以简化显示设备的软件需求。然而,与格 式化的图像文件相比,这样的原始数据文件可能很大,因此可能需要较长的时间来从 图像源传输到显示设备,这取决于所使用的通信信道的带宽。在需要用这样的显示设 备显示实时视频时,通信信道的带宽对于以典型的视频数据帧率(通常约为20帧/ 秒或更高)传输原始图像数据文件来说可能太小。
回到图1,图像源28可以包括能够向图像提供设备26提供图像数据的任何适合 的设备。其示例包括但不限于,台式计算机和/或服务器28a、膝上型计算机28b、个 人数字助理(PDA) 28c、移动电话28d等等。此外,图像源28可以按任何适合的方 式与图像提供设备26进行电通信。在所示实施例中,每个图像源28都通过无线网络 30与图像提供设备26进行电通信。然而,图像源28也可以通过有线网络、通过无 线或有线直接连接等等或它们的任何组合与图像提供设备26进行通信。
图像源28和/或显示设备22可以实现为具有图2的示例计算设备40中示出的部 分或所有组件的计算设备。计算设备40包括通过总线48互连的处理器42、存储器 44和/或存储46。也可以连接各种输入设备50 (如,键盘、鼠标等)以允许用户输 入。可以通过与显示控制器52连接的监视器或其他显示器提供输出。如所示,网络 接口 54也可以连接到总线48,以便允许与连接到网络30的其他设备的通信。如下 文中更详细的说明,在本文中描述的图像处理系统和方法中,通常需要图像源/客户 机设备(如,图像源28)通过网络与服务器显示设备(如,显示设备22)进行无线 通信。在客户机和/或服务器设备中,包括无线协议的网络通信软件60可以运行在存 储器44中并用于允许无线网络通信。
再次回到图1,在图像源28配置为处理多种格式的图像数据时,图像提供设备 26可以配置为解码每种所需图像数据格式的数据。然而,如上所述,这可能要求图
像提供设备26具有足够的存储器来存储解码每种所需格式的单独的软件程序。此外, 这些软件程序中的很多可能由图像提供设备26的制造商之外的来源提供。因此,使 用这样的软件会减少图像提供设备26的制造商对安装在图像提供设备和/或显示设 备22上的软件程序的控制。这会使这些显示设备对软件安装、升级等等期间由外部 软件引入的病毒、缺陷及其他问题开放。
为了简化图像提供设备26的操作和软件需求,每个图像源28都可以包括配置为 生成显示器32上的图像的位图,然后将该位图发送到图像提供设备26以用于由显示 设备22显示的软件。这提供了这样的优点图像提供设备26只需要包括用于接收和 解码单种格式的图像数据的软件,且因此有助于防止在软件安装和/或更新期间将病 毒、缺陷及其他问题引入到图像提供设备26上。然而,如上所述,未压缩的位图文 件可能相当大,因此发送到图像提供设备26会消耗较长的时间,这取决于所使用的 通信信道的带宽。对较高分辨率的格式的图像,如XGA及以上来说尤其如此。在数据 是视频数据时,新数据帧传输到图像提供设备26的速率可能约为20帧/秒或更高。 在此情况下,帧率可能比生成并将整个位图发送到图像提供设备26的速率更快,这 可能导致视频图像的传输和显示的误差。
为了避免传输和显示误差,可以在传输之前处理从显示在图像源28中的一个上 的图像生成的位图,以减少对每帧图像数据发送的数据量。图3总地在100处示出处 理从图像源28中的一个上的显示器32生成的位像数据的方法的示例实施例。方 法100通常由软件代码执行,该软件代码通常存储在图像源28上的存储器中,并可 由每个图像源上的处理器执行。
为了减少发送到图像提供设备26的数据量,方法100通常仅发送一帧或一组图 像数据中不同于紧接当前帧之前发送的那桢或那组图像数据的那些部分。因此,方法 100可以首先在102处比较先前发送的一组或一帧图像数据N与当前显示在显示器32 上的一组或一帧图像数据N+l,然后可以在104处确定帧N+l中不同于帧N的部分。
在102处两帧图像数据的比较及在104处已改变部分的确定可以按任何适合的方 式执行。例如,帧N和N+l中的每个可以存储在缓冲器中,然后可以用存储在N+1缓 冲器中的图像数据的每个像素与存储在N缓冲器中的图像数据的每个像素比较。
在改变确定时,可以定义已改变区域以用于按任何适合的方式压缩。例如,在某 些实施例中,检测到的所有改变可以由所画出的包含图像数据的帧N+l中所有已改变 区域的具有可变尺寸的单个矩形区域定义。然而,可能存在这样的情况,其中这样定
义已改变部分的方案导致实际上未从先前发送的帧改变的大量数据的压缩和传输。 相应地,如在106处所示,方法IOO可以包括通过将已改变部分划分为不同的区
域来定义图像数据帧N的已改变部分。为了最小化未改变数据的传输,区域通常是可
在帧中给定的已改变部分周围定义的最小的边界矩形。
仍旧参考图3,在将已改变部分划分为区域之前、同时或之后,方法100可以包
括在108处确定正被编码和发送的图像的调色板,及在110处将有关调色板的更新发 送到图像提供设备26来协助压缩图像数据的解压缩。这是因为24位颜色可以用调色 板中的8位查找值来缩写。当重复使用颜色时,8位缩写使得发送的数据更少。作为 补充或替换,应理解,可以使用任何位数的查找表。例如,可以使用12位或16位的 查找表。
接下来,可以在118处将图像数据转换到亮度/色度颜色空间。适合的亮度/色度 颜色空间的示例包括设备相关的颜色空间,如YCrCb颜色空间,以及设备无关的颜 色空间,如CIE XYZ和CIE 1_*3化*颜色空间。适合的设备无关颜色空间的另 一 个示 例如下所述。颜色空间包括亮度r值和色度s及t值,且通过下面的公式从CIE L*a*b* 颜色空间导出
r - (L -L min)(rmax/(L巾ax-L mjn》
t = (b*-b*min)(t,/(b*max-b*min))
从这些公式中计算出的r, s和t值可以四舍五入或截取到最接近的整数值,以 将数字格式从浮点改变为整数格式,从而简化涉及颜色空间中的值的计算。在这些公 式中,值L*max, L*min, a*max, a*min, b*max和b、^可以对应于L*, a*和W颜色空 间坐标中各自的实际限制,或对应于另一颜色空间,如选择的图像设备28的颜色空
间在映射到CIE 1_*3*13*颜色空间上时的最大值和最小值。值rmax, Smax和tmax对应
于r,s和t颜色坐标中各自的最大整数值,且取决于用于表示每个坐标的位数。例 如,在用六位来表示每个坐标时,对每个坐标存在六十四个可能的整数值(0-63),
且rmax, Smax和tmax每个都具有值6 3。
在颜色空间转换之后,可以在120处过滤低变化的数据,以使得非计算机图形数 据("非CG数据")更加酷似计算机图形数据("CG数据")。包含CG数据的图像,如 视频游戏、数字幻灯片演示文件等等与包含非CG数据的图像,如电影、静态照片等 等相比,趋向于对较高频率的图像数据具有更清晰的颜色边界。由于这些数据类型在 颜色边界处的不同特性,不同的压缩算法趋向于对CG数据比非CG数据更好地工作。 某些现有的图像数据处理系统尝试确定数据是CG数据还是非CG数据,然后对每种类 型的数据使用不同的压缩器。然而,将CG数据错误识别为非CG数据,或相反,会导 致这些系统中的压缩效率损失。因此,过滤低变化数据120可以包括识别具有低于预 先选择的阈值变化的变化的相邻图像数据值,这可能表明相近颜色之间的过渡,然后 改变某些图像数据值来减少该变化,从而创建更加酷似CG数据的颜色边界。低变化 数据的过滤因此可以允许用同一压缩器适当地压缩非CG数据和CG数据。对非CG数 据做出的改变通常仅对具有低于可感知阈值的变化的相邻值做出,虽然可以可选地对 具有高于可感知阈值的变化的值做出改变。 可以使用任何适合的方法来从图像数据层内的图像数据中过滤低变化数据。适合 的方法的一个示例是使用简单的陷波降噪滤波器来消除低变化数据。陷波降噪滤波器 可以按如下所述实现。设Pc表示当前像素,P,表示当前像素左边的像素,而Pr表示 当前像素右边的像素。首先,计算出Pc和P,之间的差值d!及Pc和Pr之间的差值dr。
接下来,比较d!和dr。如果d!和d「的绝对值不相等,且d,和d「中较低的一个的
绝对值低于预先选择的可感知阈值,则可以将Pc重置为等于P!或Pr以将d!和dr中 较低的一个改变为0。或者,可以将p!和Pr中的任一个改变为等于Pc来实现相同的 结果。
如果d!和dr的绝对值相等,则将Pc改变为等于Pi等价于将Pc改变为等于p卜 在此情况下,如果d!和dr的绝对值低于预先确定的可感知阈值,则可以将Pc改变 为等于Pi和Pr中的任一个。此外,如果d!和dr两者绝对值都高于预先选择的可感 知阈值,则不改变Pc、 Ph或Pr中的任一个。应理解,上述过滤方法只是示例性的, 且可以使用过滤低变化数据以使得非CG更加酷似CG数据的其他适合的方法。例如, 在4和dr的绝对值相等并低于预先选择的可感知阈值时,可以使用判定函数来确定 是否改变当前像素来匹配左边或右边,或者上边或下边的相邻像素。
除过滤低变化数据来使得非CG数据更加酷似CG数据之外,方法100还包括在 122处对图像数据的色度值进行二次抽样。通常,色度二次抽样是一种涉及以比至少
一个其他颜色空间分量更低的空间频率对至少一个颜色空间分量进行抽样的压缩技 术。解压缩设备重新计算丢失的分量。常见的用于亮度/色度颜色空间的二次抽样数
据格式包括4:2:2 二次抽样,其中在水平方向上以亮度分量一半的空间频率对色度分 量进行抽样而在垂直方向上以相同的空间频率对色度分量进行抽样;及4: 2: 0 二次抽 样,其中沿着垂直和水平方向两者以亮度分量一半的空间频率对色度分量进行抽样。 这些二次抽样格式中的任一种,或任何其他适合的二次抽样格式,都可用于对图像数
据的色度分量进行二次抽样。
在120处过滤低变化数据并在122处对色度数据进行二次抽样之后,方法100接 下来在124处使用一种或多种其他压縮技术来进一步减少所发送的数据量。通常,使 用对CG数据提供良好压缩的压缩方法。在所示的示例中,方法IOO在126处使用增 量调制压缩步骤,并在128处使用LZO压缩步骤。LZO是一种实时、可移植、无损的 数据压缩方法,它优先考虑速度而不是压縮比,且特别适用于CG数据的实时压缩。 LZO还提供其他的优点。例如,LZO解压縮需要最小的存储器,且压缩仅需要64千字 节的存储器。
一旦已从源设备(如,设备28)获得并压缩了图像数据,就可以将压缩数据发 送到图像提供设备26。在视频数据的传输中,表示选择的帧的图像数据可能超过帧 间隔期间可以跨通信信道传输的最大数据量。在此情况下,图像源"可以配置为在
下一帧的压缩和传输开始之前仅发送对于一帧图像数据可以发送的量的数据。
所发送的图像数据在图像提供设备处接收和处理,以通过显示设备22在观看面 24上显示。可以在解压缩过程中实现有助于改进解压缩性能的各种特征,从而改进 显示设备22和图像提供设备26在显示视频图像时的性能。例如,为了协助二次抽样 图像数据的解压缩,图像提供设备26可以包括用于在解压縮期间存储图像数据且小 于与执行解压缩计算的处理器关联的高速缓冲存储器的解压缩缓冲器。用于解压缩二次抽样图像数据的现有解压缩系统通常在计算丢失的色度值之前 将整组的压缩图像数据读入解压縮缓冲器中。通常,压缩图像数据在被读入缓冲器时 被复制到高速缓冲存储器中,这允许存储在高速缓存中的值能被更快速地访问以用于 解压缩计算。然而,因为压缩图像文件大小可能大于高速缓冲存储器,所以在将压缩 图像数据复制到缓冲器中时,高速缓冲存储器中的某些图像数据可能被其他图像数据 覆盖。覆盖高速缓冲存储器中的图像数据可能导致解压缩图像数据的处理器在高速缓 冲存储器中査找被覆盖的数据时发生高速缓存脱靶。发生过多的高速缓存脱靶会减慢 图像解压缩以至有害程度。使用小于高速缓冲存储器的解压缩缓冲器有助于避免高速缓存脱靶的发生。因为 高速缓冲存储器通常是较小的存储器,因此这样的解压縮缓冲器可能也比多数图像文 件要小。换句话说,在图像数据表示包含AxB像素阵列的图像时,解压缩缓冲器可以 配置为保存AxC图像数据阵列,其中C小于B。这样的缓冲器可用于通过将一组二次 抽样图像数据作为图像数据的一系列较小的子集读入缓冲器和高速缓冲存储器来解 压缩该组二次抽样图像数据。可以在将压縮图像数据的新子集读入解压缩缓冲器之前 解压缩并从缓冲器中输出图像数据的每个子集。因为解压缩缓冲器小于高速缓冲存储 器,所以不太可能发生高速缓冲存储器中的任何图像数据在用于解压缩计算时被覆盖。解压缩缓冲器可以具有任何适合的大小。通常,解压缩缓冲器相对于高速缓冲存 储器越小,发生大量高速缓存脱靶的可能性越低。此外,要在解压缩缓冲器中解压缩 的二次抽样图像数据的类型以及用于对压缩图像数据进行解压缩的计算的类型会影 响解压缩缓冲器的大小。例如,4:2:0图像数据中丢失的色度分量可以取决于二次抽 样色度值是同位的还是非同位的而不同地计算。同位的色度值在图像上位于和选择的 亮度值相同的物理位置,而非同位的色度值夹在几个相关的亮度值之间。4:2:0同位 图像数据的丢失的色度值可以在和丢失的值相同的行或相邻的行上从二次抽样色度 值计算,这取决于所计算的丢失的色度值的物理位置。因此,用于解压缩具有没有色 度值的数据行的4:2:0同位图像数据的解压缩缓冲区可以配置为保存不止一行的图 像数据来允许从垂直地相邻的色度值计算丢失的色度值。可以使用任何适合的方法来确定在单个帧间隔期间可以从图像源28到图像提供 设备26发送多少图像数据。例如, 一种简单的方法可以是检测活动地发送的图像源 28上的一帧图像数据何时发生改变,并使用检测到的改变作为触发器来开始新的压
缩和传输过程。以此方式,图像数据的传输可以继续,直到在显示在选择的图像源上 的图像中检测到改变,这时先前的图像帧的数据传输如果尚未完成则应停止。确定在单个帧间隔期间可以发送多少图像数据的适合的方法的另一个示例包括 确定通信信道的带宽,然后从检测到的带宽及已知的图像数据的帧率计算在单个帧间 隔期间可以跨通信信道发送多少图像数据。带宽可以在压缩图像数据传输之前或期间 一次确定,或可以周期性地检测并更新。实现上述方法的各种压缩和传输操作的软件可以以单线程、单进程操作,或可以 以多线程或多进程,或它们的任何组合来操作。多线程或多进程方法可以允许比以单 线程或单进程方法更有效地利用系统20的资源,如传输带宽。各种搡作可以由任何 适合的数量的不同线程或进程实现。例如,在一个实施例中,使用三个独立的线程来 执行上述示例方法的搡作。这些线程可以称为接收器、处理器和发送器。接收器线程 可以获取从图像源28的屏幕上的图像生成的位图数据。处理器线程可以执行比较、 区域划分、颜色空间转换,及方法100的其他压缩步骤。发送器线程可以执行上述带 宽监控和传输步骤。应理解,这只是一种示例软件架构,且可以使用任何其他适合的 软件架构。为了显示图像,图像处理系统20配置为允许客户机设备(如,图像源28)和服 务器设备(如,显示设备22)之间的通信。虽然可以理解,客户机和服务器可以驻 留在同一计算机上,但在本文中所述的示例中,客户机和服务器是不同的设备。为了 有助于客户机-服务器通信,图像源28和/或显示设备22可以具有网络通信软件60 (图2)。如图2所示,通信软件60可以配置为运行在客户机或服务器计算设备的 存储器44中。通常,通信软件60包括或使用通信协议以便有助于图像数据的传输以允许在显 示设备22处显示图像。该协议可以由客户机(如,图像源28)和服务器(显示设备 22)之间发送的字节182的流180组成,如图4所示,包括从客户机发送到服务器的 正向信道184,及从服务器发送到客户机的反向信道186。流控制通常通过反向信道 186实现。通常,软件和协议提供可伸缩性并支持多个同时的客户机连接。因此,可 以有多个正向和反向信道配对同时打开和活动。正向信道由客户机计算机发送到服务器投影机。反向信道由服务器投影机发送回 客户机计算机。通常,通信协议由组织为帧200的数据组成,如图4所示。在正向信 道中,每个帧200都可以包括帧头202、帧体204和帧尾206。帧体204通常由一系列1至n个具有标签并使用选择的数据结构编码的数据部分 组成,如下文中所述。通信协议的典型用法涉及在连接(如,TCP/IP连接)开始时 一次性传输帧头202,随后是发送一连串具有标签的数据部分。帧尾20G可以用在所 有的实现中,也可以不用,虽然在某些情况下可能需要使用帧尾来执行客户机-服务 器连接终止期间的各种任务。
该协议可以在每个帧头的末尾和/或在部分或所有具有标签的帧体数据部分的末 尾处结合校验和。通常,使用校验和来检测编程逻辑错误,而通常通过某种其他机制 来检测传输错误。在使用时,校验和可以作为一个数据块的最后一个(第n个)字节 出现。校验和可以定义为该数据块的前n-l个字节的模256和。帧头202通常包含在连接开始时从客户机发送到服务器的数据。如图5所示,帧 头可以由4字节的无符号标识符210组成,该标识符对相应的客户机设备可以是唯一 的,也可以不是。在某些实现中,标识符210也可以称为幻数,用于识别或确认相应 的客户机设备是目标服务器设备的合法连接者。例如,从客户机设备28c (图1)发 送到服务器设备26的字节流可以包括这样的标识符210,向服务器设备26表明该客 户机设备是服务器设备26的合法用户。帧头202也可以包括版本字段212,该字段可用于表示正用于客户机-服务器通 信的协议版本。帧头202还可以包括指示正在连接的客户机设备的尾数或其他平台或 体系结构决定的特性的尾数字段214。例如,在包含尾数声明的协议实现中,字段214 可以指示正在连接的设备的体系结构在最低的存储器地址中存储多字节序列的最低 有效值("小尾数"),或者,在最低的存储器地址中存储最高有效值("大尾数")。 也可以指示双尾数体系结构。使用字段214可以增加图像处理系统20适应和实现在 具有不同体系结构的多个正在连接的客户机设备之间的互操作性的能力。无论协议和目标服务器设备处理具有不同尾数的设备的能力如何,都可能在某些 情况下需要标识符210保持一致的字节顺序。例如,可以将标识符210作为四个单独 的无符号字节而不是32位无符号整数写入输出流。帧体204通常采取字节流的形式并包括下列信息的部分或所有(1)颜色空间 信息;("压缩信息;(3)位图信息;(4)标记语言命令;(5)分辨率信息;(6) 反向信道通信的确认;及(7)终止信息。在典型的实现中,所述的通信协议是无状 态的,以便可以按任何顺序发送帧体部分的成分。然而,通常需要在帧体传输开始时 发送颜色空间信息。所述的示例协议包括基于标签的体系结构,其中识别标签与特定数据结构关联以 有助于在接收位置处进行解析。这使得协议能够非常高效,并允许图像源(如,客户 机设备)发送比目标处的图像显示原本所需更少的数据。例如,与以固定格式将冗余 信息重复地发送到服务器显示设备(如,颜色空间信息)相比,标签体系结构允许仅 在需要时发送信息。具体来说,该协议包括或定义多个不同的数据结构(例如,如下文中所述的位图 数据结构、压缩结构等)。不同的数据结构中的每个都具有与该数据结构关联的唯一 识别标签,以便允许目标高效地解析接收到的数据,而只使用最少量的处理资源。例 如,将位图信息编码为具有关联的位图标签的位图数据结构。位图标签及其他标签在 接收到的数据流中的出现允许目标位置高效地解析接收到的数据。
图6示出包含编码在颜色空间数据结构220内的颜色空间信息的示例字节流部 分。如图所示,初始字节(或一位或多位)可以包括将字节流部分识别为包含颜色空 间信息的颜色空间标签222。用于后续的正向信道内容(如,图像位图信息)的颜色 空间由字节或部分224指示。可以使用任何所需的颜色空间,包括RGB(原始);YCbCr 4:4:4同位;YCbCr 4: 2: 2同位(DVCPR050, Digital Betacam, Digitals); YCbCr 4: 1: 1同位(YUV12 ) ( 480线DV, 480线DVCAM, DVCPRO); YCbCr 4: 2: 0( H. 261, H. 26 3, MPEG 1 ) ; YCbCr 4: 2: 0 (MPEG 2 );及YCbCr 4: 2: 0同位(576线DV, DVCAM )。颜 色空间信息之后可以附加有校验和226,以便提供错误检查。图7示出包含编码在压缩数据结构240内的压缩信息的示例字节流段。压缩信息 通常描述如何压缩所传输的图像信息或已如何压缩该信息。如图所示,该数据结构可 以包括将字节流部分识别为包含压缩信息的压缩标签242。所使用的压缩方法由字节 或部分244指示。可以使用任何所需的压缩技术或算法,包括LZ压缩和/或其他方法。 同样,部分244可用于指示数据未被压缩。如协议的其他部分中那样,可以使用校验 和246来提供对压缩信息的错误检查。通常,正向信道的帧体部分也将包括对应于要在目标服务器设备26处显示的图 像的多个字节的位图信息,如图8所示。位图信息的每个部分都可以编码在位图结构 260内。结构260可以包括将数据流段识别为包含位图信息的位图标签(字节1)。 可以包括内容值(字节2)字节或字段以指示是否要使用位块传输(BLT)(原始) 或使用XORBLT(递增)将重建的位图复制到屏幕上。同样,如图所示,位图结构260 可以定义为包括涉及位图的垂直方向的数据、位图的大小和开始位置(使用X-Y直线 坐标方案)、数据块的大小,及实际数据块。通常,校验和将在数据块的末尾使用。帧体部分204也可以包括以各种格式发送的其他命令或信息,包括以标记语言, 如HTML或XML发送的命令/信息。图9示出编码在标记结构28 0中的数据流部分的示 例。如图所示,类似于帧体部分204的其他成分,编码的数据流部分可以包括识别数 据流部分本质的初始标签(字节1)及后附的用于纠错的校验和(字节n)。内容值 字节(字节2)可用于表示所使用的标记语言(HTML、 XML等),且后续的字节可用 于表示标记语言传输的大小,并传输实际的标记语言信息。如图IO所示,正向信道的帧体也可以包括用于表示在目标服务器设备处使用的 分辨率的字节。如图所示,设置分辨率信息(如,编码在设置分辨率数据结构300内) 可以包括初始识别标签,随后是表示X和Y分辨率、颜色深度,及用于纠错的校验和 的字节。正向信道可以包括有助于客户机和服务器设备之间的交互作用的其他信息或数 据。字节流段可用于请求服务器重启动,以便确认服务器在反向信道186上发送的设 置伸缩命令,和/或发送终止请求。帧尾206可用于执行与终止连接或终止数据传输 的特定部分关联的各种任务。 反向信道186可用于提供流控制及其他功能。通常,反向信道186将使用类似于 正向信道的帧格式(如,具有帧头、帧体和帧尾部分)。流控制可以通过服务器周期 性地(如, 一秒十次)报告可用服务器缓冲器的大小来实现。所报告的缓冲器大小的 前面通常具有指示后续字节包含有关缓冲器大小的信息的识别标签,如图11的示例 缓冲器大小流320所示。然后,报告可用的缓冲器大小。在本发明的示例实施例中, 以四字节流报告缓冲器大小,然后由后附的校验和字节提供错误检査。然后所报告的 可用缓冲器可以由客户机使用,以便动态地调整其在正向信道184上的传输速率。反向信道186也可以包括设置缩放字节流段340,如图12所示。在识别标签之 后,可以使用四个字节来表示X和Y维度上的缩放。再次使用校验和字节来提供错误 检查。反向信道通信也可以包括服务器终止特定客户机设备或连接的请求。此外,虽然本发明包括具体实施例,但具体实施例不应视为具有限制意义,因为 有大量的变体是可能的。本发明的主题包括在此公开的各种元素、特征、功能,和/ 或属性的所有新颖和非易见的组合及子组合。下面的权利要求特别指出视为新颖和非 易见的特定组合及子组合。这些权利要求可能引用"一个"元素或"第一"元素或其 等价。这样的权利要求应被理解为包括对一个或多个这样的元素的结合,而不是要求 或排除两个或多个这样的元素。各特征、功能、元素和/或属性的其他组合及子组合 可以通过本发明权利要求的修改或通过在本申请或相关申请中提供新的权利要求来 请求保护。这样的权利要求,无论是在范围上比原始权利要求更宽、更窄、等价或不 同,都应被视为包括在本发明的主题之内。
权利要求
1.一种图像显示系统,包括配置为允许图像数据从图像源到服务器的传输,以便基于所述图像数据显示图像的通信协议,所述通信协议包括多个不同的数据结构,其中所述多个不同的数据结构包括定义为包括位图信息的位图结构;及多个不同的标签,其中适配所述通信协议,使得使用所述通信协议的客户机-服务器通信作为串行数据流发生,所述串行数据流包括使用从所述多个不同的数据结构中选择的数据结构编码的数据部分,且其中所述多个不同的标签中的每个都关联于并对应于所述多个不同的数据结构中特定的一个,以便允许在目标处对所述串行数据流进行解析。
2. 如权利要求l所述的系统,其特征在于,所述多个不同的数据结构包括定义 为包括颜色空间信息的颜色空间结构。
3. 如权利要求l所述的系统,其特征在于,所述多个不同的数据结构包括定义 为包括压缩信息的压缩结构。
4. 如权利要求l所述的系统,其特征在于,所述多个不同的数据结构包括定义 为包括标记信息的标记结构。
5. 如权利要求l所述的系统,其特征在于,所述多个不同的数据结构包括定义 为包括设置分辨率信息的设置分辨率结构。
6. 如权利要求5所述的系统,其特征在于,所述通信协议包括适配用于提供所 述图像源和所述服务器之间的分辨率协商的反向信道。
7. 如权利要求l所述的系统,其特征在于,所述通信协议配置为允许双向客户 机-服务器通信,以便对所述图像数据到服务器的传输提供流控制。
8. 如权利要求l所述的系统,其特征在于,所述通信协议包括正向信道,其中 数据流向所述服务器,及反向信道,其中数据流向所述图像源。
9. 如权利要求8所述的系统,其特征在于,所述反向信道适配用于允许所述图 像源和所述服务器之间的分辨率协商。
10. 如权利要求8所述的系统,其特征在于,所述反向信道适配用于对所述图像 数据到服务器的传输提供流控制。
11. 如权利要求10所述的系统,其特征在于,由所述服务器在所述反向信道中 报告可用缓冲器大小。
12. —种在图像源与服务器之间进行通信以便基于图像数据的传输显示图像的 方法,所述方法包括编码图像数据,其中编码所述图像数据包括将所述图像数据的部分编码为多个不 同的数据结构中选择的数据结构,所述多个不同的数据结构中的每个都具有关联的标 签;在串行数据流中将编码的图像数据传输到所述服务器;及在所述服务器处,通过接收和处理出现在所述串行数据流中的标签来解析所述串 行数据流。
13. 如权利要求12所述的方法,其特征在于,编码所述图像数据包括将位图信 息编码为具有位图标签的位图数据结构。
14. 如权利要求12所述的方法,其特征在于,编码所述图像数据包括将颜色空 间信息编码为具有颜色空间标签的颜色空间数据结构。
15. 如权利要求12所述的方法,其特征在于,编码所述图像数据包括将压缩信 息编码为具有压缩标签的压缩数据结构。
16. 如权利要求12所述的方法,其特征在于,编码所述图像数据包括将标记信 息编码为具有标记标签的标记数据结构。
17. 如权利要求12所述的方法,其特征在于,编码所述图像数据包括将设置分 辨率信息编码为具有设置分辨率标签的设置分辨率数据结构。
18. 如权利要求12所述的方法,其特征在于,还包括在反向信道中将缓冲器信 息从所述服务器传送到所述图像源,以便对到达所述服务器的数据传输提供流控制。
19. 如权利要求18所述的方法,其特征在于,还包括使用正向信道和所述反向 信道以便在所述图像源和所述服务器之间协商显示分辨率。
20. 如权利要求l2所述的方法,其特征在于,还包括向所述服务器传输所述图 像源的尾数说明。
21. 如权利要求12所述的方法,其特征在于,还包括在传输所述编码的图像数 据之前将确认标识符传输到所述服务器,所述确认标识符配置为确认所述图像源是所 述服务器的合法连接者。
22. 如权利要求12所述的方法,其特征在于,还包括基于在反向信道中从所述 服务器报告的可用缓冲器大小信息,动态地变化到达所述服务器的正向信道中的传输 速率。
23. —种图像显示系统,包括配置为与服务器通信以便通过与所述服务器连接的图像显示设备来显示图像的 客户机,所述客户机包括通信软件,所述通信软件适配用于编码从图像源获得的图像数据,将所述图像数据的部分编码为多个不同的数据结 构中选择的数据结构,所述多个不同的数据结构中的每个都具有关联的标签;及在串行数据流中将编码的图像数据传输到目标位置。
24. 如权利要求23所述的系统,其特征在于,所述多个不同的数据结构包括定 义为包括位图信息的位图结构。
25. 如权利要求23所述的系统,其特征在于,所述多个不同的数据结构包括定 义为包括颜色空间信息的颜色空间结构。
26. 如权利要求23所述的系统,其特征在于,所述多个不同的数据结构包括定 义为包括压缩信息的压缩结构。
27. 如权利要求23所述的系统,其特征在于,所述多个不同的数据结构包括定 义为包括标记信息的标记结构。
28. 如权利要求23所述的系统,其特征在于,所述多个不同的数据结构包括定 义为包括设置分辨率信息的设置分辨率结构。
29. 如权利要求23所述的系统,其特征在于,所述客户机通信软件还适配用于 动态地变化正向通信信道中的传输速率来响应通过反向通信信道接收的可用缓冲器 大小信息。
30. —种允许客户机图像源与目标图像显示设备通信的图像数据处理系统,包括配置为获取源图像数据并生成对应的位图表示的客户机软件;及 配置为提供所述客户机图像源与所述目标图像显示设备之间的通信的通信软件,所述通信的形式为包括标签的双向字节流,所述标签配置为允许所述客户机图像源及所述目标图像显示设备解析所述字节流。
31. 如权利要求30所述的系统,其特征在于,所述通信软件还配置为将确认标 识符和所述位图表示传输到所述目标图像显示设备,所述确认标识符配置为将所述客 户机图像源识别为所述目标图像显示设备的合法连接者。
全文摘要
用于允许图像显示的通信软件,包括通信协议。该协议适配用于允许将图像数据的部分编码为多个不同的数据结构中选择的数据结构。每个数据结构都具有关联的标签,以有助于在接收位置进行解析。
文档编号G06F15/16GK101160574SQ200580024428
公开日2008年4月9日 申请日期2005年5月27日 优先权日2004年5月28日
发明者杰夫·格利克曼 申请人:富可视公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1