利用应用元数据的图形用户接口的自适应视频压缩的制作方法

文档序号:7975749阅读:89来源:国知局
专利名称:利用应用元数据的图形用户接口的自适应视频压缩的制作方法
技术领域
概括地讲,本发明涉及压缩技术,并且具体地讲涉及利用基于区域的编码方案在像素区域上进行操作的压缩技术,上述编码方案基于应用元数据以不同的方法编码不同类型的数据。而且更具体地讲,本发明的图像压缩技术估算将要被压缩的图像以确定它的编排,并且利用该信息来确定要使用的编码技术的最有效的组合以获得理想的压缩比。
背景技术
例如像典型的台式个人电脑(PC)或工作站之类的计算机系统通常使用帧缓冲器来为显示监视器(CRT或LCD)上的每个图像元素存储图像数据。最近在网络带宽方面的增长已经使远程视频帧缓冲器的实现成为可能,甚至用于图像密集和高帧频的显示器。功能上,在显示器屏幕上的每个图像元素具备相应的被通常称为像素的图像数据的实例。当远程地使用帧缓冲器时,通过局域网(LAN)连接上述帧缓冲器至视频显示系统的计算和呈现引擎。目前,典型的局域网由结点组成,上述结点通过以大约100或1000每秒百万位的最大理论值操作的网络链路连接。由于所有的网络应用共享带宽,所以对于给定应用仅可获得一小部分带宽。因此,传输至上述远程视频帧缓冲器的数据必须被压缩,以适应上述可获得的网络带宽范围,并且当总体网络负载变化时能够适应网络带宽的变化的可用性。
用于上述目的的压缩算法的效率依赖于已压缩数据大小与原始数据大小的比值,以及可以执行压缩和解压缩的速度。典型地,压缩算法被调整用于特别目的的应用情形,例如,对图像压缩利用图像中的像素梯度小的假定;对单色呈现的图像,利用大块类似的像素值在屏幕上极接近的假定。这些算法通常对严密定制的应用是有效的,但是可能对其他的应用是很无效、效率低和不适当的。例如,JPEG和MPEG图像压缩对照片图像而不是对线条画有效。这意味着能够满足由图像、线条画和单色组成的混合视频显示,而对例如像JPEG或MPEG之类的单一压缩算法就不够有效了。在另一方面,简单的矢量元可以有效地编码线图,但是对于编码照片图像或视频是低效的。因此,上述对图像的大量空间特征的认识使得选择最佳的压缩算法成为可能。
视频流是当顺序显示时产生运动图像视频的静态图像序列。基于被显示图像的类型,可以通过利用上述关于图像在序列中彼此接近的普遍特性的知识获得额外的压缩效率。这个方法被称为帧间压缩。例如,MPEG视频压缩对于压缩视频流是有效的,其中连续图像的不同仅在于从一个图像帧到下一个图像帧的对象的增量运动。然而,由于上述压缩算法必须对运动着的图像的部分执行穷举搜索,所以MPEG压缩是典型的耗费计算的操作。如果这些“运动矢量”事先是已知的,则MPEG压缩将不会那么难以执行。总之,上述花费大量计算才能推算出来的视频流的大量时间特征的知识,在产生上述流之后,会极大地辅助上述压缩算法的计算效率。
由于如上所述的理由,以及由于其他的通过阅读和理解本说明书将会对本领域技术人员变得显而易见的下述理由,在该技术中需要用于压缩数据的计算高效的系统。还有对于改善的系统和用于增加通信信道吞吐量的方法的需要。

发明内容
在此陈述了以上所述的缺点、缺陷和问题,通过阅读和研究下列说明其将会被理解。
在一个方面,描述了用于在产生具备一个或多个媒体区域的数据的源设备和图像帧缓冲器之间传输数据的方法。分析上述一个或多个媒体区域以选择依赖于元数据的最好地适合于上述给定数据区域的压缩算法。元数据描述是配置文件元数据、源原始元数据和应用高级元数据其中之一。上述方法可以选择MPEG压缩、JPEG图像压缩、矢量图压缩、霍夫曼编码、H.261压缩或用户定义的或相关的压缩算法。当元数据描述不适用于压缩算法的选择时,则上述系统选择默认压缩或通过不压缩发送上述包。
在另一个方面,通过划分混合媒体流为多个区域,具备可执行指令的计算机可访问介质用于命令数据处理器发送数据至远程帧缓冲器。可以通过关于用于上述混合媒体流数据的区域的显示的功能和类型的高级元数据、识别来自原始操作的关于应用元数据的源原始元数据、识别上述混合媒体流数据区域的定义特定和时间特征的信息,描述每一个区域。于是上述处理器选择基于上述应用元数据的压缩方法。
在又一个方面,所描述的数据压缩系统具备处理器、存储设备和在上述处理器中执行的用于识别至少一个元数据并基于上述所识别的元数据压缩输入流的软件方法。
在此描述变化范围的系统、客户机、服务器、方法和计算机可读介质。除在本概要中描述的上述方面和优点之外,通过参考附图和通过阅读随后的详细说明,更多方面和优点会变得显而易见。


图1是描述用于压缩来自呈现引擎和用于保持用于后续显示的解压缩输入数据的帧缓冲器的输入数据的实施方式的系统级概述的图;图2描述根据用于压缩输入数据的实施方式的使用配置、原始和应用元数据;图3根据用于压缩输入数据的实施方式,示例了配置、原始和应用元数据的详图;图4是描述可用于压缩输入数据的内容和压缩方法的表格;图5是根据基于已识别属性用于压缩输入数据的实施方式的方法流程图;图6是根据基于已获得的元数据用于压缩输入数据的实施方式的方法流程图;图7是根据基于已获得的独立或从属元数据用于压缩输入数据的实施方式的方法的流程图;图8是可以在其中实现不同实施方式的硬件和操作环境的方块图;图9是由上述用于压缩输入数据的处理器执行的操作的方块表示;以及图10是具有当由处理器执行时压缩输入数据的指令的数据帧的图。
具体实施例方式
在以下详细说明中,在此参考成为其一部分的上述附图,并且在其中通过描述可以被实现的具体实施方式
的方式被显示。这些实施方式被足够详细地描述以使本领域技术人员能够实施上述实施方式,而且可以理解的是,可以利用其他的实施方式并可以进行逻辑的、机械的、电学的及其他的改变而不脱离这些实施方式的范围。因此,以下详细说明不被理解为限制的含义。
该详细说明被分成五部分。在第一部分中,描述系统级概述。在第二部分中,描述实施方式的方法。在第三部分中,描述连同其可以被实施的实施方式的硬件和操作环境。在第四部分中,描述具体的实现。最后,在第五部分中,提供详细说明的结论。
系统级概述图1是提供用于在呈现引擎和显示设备之间交换数据的系统的系统级概述的方块图。系统100解决在本技术中用于增加通信信道吞吐量的需要。
图1描述用于输入、存取和与来自呈现引擎104的信息进行交互的网络配置100。用户通过诸如124之类的终端访问上述呈现引擎104。上述终端124向用户提供关于上述呈现引擎104的签到工具,以及为某些用户提供改变或定制上述呈现引擎104的能力。来自呈现引擎104的信息可以被保存在存储器服务器110,供计算机系统124稍后进行查看或用于由呈现引擎104做进一步处理。更进一步地,在服务器110中的信息可以以压缩或解压缩格式被存储并且会依赖于系统100中的可用资源。举例来说,为了为其他用户或应用保存网络102的带宽,以压缩状态存储信息将会是更有利的。然而,在上述计算机系统124和上述服务器110之间的直接连接中,倾向于对上述信息用解压缩状态进行存储,因为它会减少由在显示器120处的解压缩程序116引入的延迟。在上述系统100的优选实施方式中,在终端124的用户可以访问网络102以与呈现引擎104进行连接。在其他的实施方式中,呈现引擎104可以驻留在内部网、外部网、局域网(“LAN”)、广域网(“WAN”)或任何其他类型的网络或独立计算机上。如果上述呈现引擎104驻留在网络上,那么在124处的计算机或终端是任何一种能够与该网络连接的机器或设备。如果可以通过国际互联网络访问上述呈现引擎104,那么在124处的计算机或终端是任何一种能够与上述国际互联网络连接的机器或设备。如果在122处的计算机系统是独立计算机,那么上述呈现引擎是与在122处的计算机相同的设备。可以通过光纤电缆、无线系统,通过网关,通过网络或这些连接设备的组合连接用户至上述呈现引擎104。
上述呈现引擎104是产生由一个或多个视频、图形或用于在计算机124上再现的其他媒体组成的数据流的设备。上述数据流可以被认为是输入数据、输入数据流、混合媒体数据和混合媒体数据流,而不脱离定义数据是一个或多个视频、图形、文本、动画或任何其他的由计算机产生的数据或信息的原始概念。可以在计算机124上划分上述数据流以显示在上述显示器的区域中,或者由再生上述数据的诸如音频、视频或文本再生设备之类的其他设备进行显示。呈现引擎104可被用在较高分辨率的医学成像中,在计算断层分析(CT)的立体绘制和磁共振成象(MRI)中,在允许旋转和缩放的3D可视化中,或者在认识物质世界时用于辅助的任何其他目的中。
元数据提取器106采集关于输入数据流的数据,所述输入数据流指示一个或多个配置文件元数据、原始对象或由上述呈现引擎104使用以产生数据流的应用。上述元数据提取器106采集关于由上述呈现引擎104产生的数据的数据。
压缩引擎108是一个或多个可以被用于压缩由上述呈现引擎104产生的数据流的压缩方案。此压缩可以被用于上述数据流的区域或上述整个流。压缩引擎108是接收来自上述呈现引擎104的数据流和关于来自上述元数据提取器106的数据流的数据,以选择适当压缩算法的程序或设备。上述压缩算法可以是运动图像专家组(MPEG)压缩、联合图像专家组(JPEG)压缩、小波压缩、碎片压缩、矢量图压缩、霍夫曼编码、H261及其他用户选择的压缩技术之一。上述压缩技术的目标是减少用于表示上述数据流或上述数据流的已处理部分的比特数。这些技术通常设法权衡传输时间、在信道上的数据量(带宽)和所接收数据流的品质之间的利弊。这些技术中的一些是无损的,意思是指它们保存上述原始数据的所有信息以便当解压缩上述数据时能精确地再生。其他的技术通常称为有损的,丢弃的信息是在视觉上可忽略的。仅仅通过近似上述原始数据(而不是精确地再生它),有损的技术通常能够比无损的技术产生更高的压缩比。在那些目前可利用的压缩技术中选择适当的压缩技术的过程中,用户必须考虑具体的将要被压缩的流数据、理想的压缩比和品质以及传输时间和带宽要求,同时理解高压缩比带来低传输时间和低带宽要求但是亦产生较低品质的图像。应当注意,传输时间是上述数据流从上述呈现引擎104出发并到达计算机124所花费的时间。虽然上述信道带宽加上上述传输时间,但是压缩算法的选择具有对上述传输时间以及上述压缩品质的本质的影响。
解压缩引擎116扩展由上述呈现引擎104产生的数据流以在显示器120上进行显示。来自局域网102的每一屏幕(区域)的混合媒体数据由解压缩引擎116读出,并且在适当的处理之后被传输至帧缓冲器118。于是,帧缓冲器118写入并存储上述每一个对应于一个屏幕的从解压缩引擎电路116通过数据总线(未示出)传输的混合媒体数据。在显示器120中的内部电路从每一个对应于一个屏幕的从解压缩引擎电路116传输的上述混合媒体数据产生图像信号,因此,使上述图像信号能在显示器120上被显示。
帧缓冲器118保持上述数据流直到它可以被显示。上述帧缓冲器118的每一个地址对应于上述显示终端120上的像素。因此,上述帧缓冲器是上述显示器表面的表示,并且形成图像或显示器片段的一簇像素可以被表示为在上述帧缓冲器118上地址的集合。帧缓冲器118,由可写的半导体存储器(例如,SDRAM(同步动态随机存取存储器))、DRAM(动态随机存取存储器)、Rambus DRAM等等组成,并且写入和存储通过数据总线从解压缩引擎116传输的每一屏幕(帧)的混合媒体数据。当用户查看时,上述被存储的混合媒体数据被通过显示器120一屏一屏地从帧缓冲器118读出。
图2是提供用于在呈现引擎104和显示设备120之间交换数据的元数据提取器106的系统级概述的方块图。系统106解决在本技术中用于增加通信信道的吞吐量和提高计算机124中的已解压缩流的品质的需要。
配置文件元数据202表示关于保存在配置文件中的应用元数据的信息或数据,所述配置文件定义上述帧缓冲器118的几何区域并声明上述区域的大量特定和时间特征。上述压缩引擎可以使用这些信息以对每一个区域使用适当的编解码器。可以无需修改上述应用程序源代码对任何应用采用这个技术。
上述原始元数据204用本地的、模块化的呈现引擎直接从上述呈现原始操作的检查中采集关于系统的数据或信息。举例来说,X窗口服务器具有关于分配给显示器120上的每一个软件应用程序的窗口对象的有用信息,以及随着执行上述应用程序时间的过去呈现操作的分配。如果发现一个单独的应用利用单色填充操作要对特定的窗口呈现,上述X服务器可以产生命令上述压缩引擎利用适当的编解码器的元数据,并且当上述窗口被重新配置到上述屏幕上的不同位置时,上述服务器可以直接更新上述元数据。可以不修改应用程序源代码,而通过修改上述呈现引擎源代码利用这个技术。
应用程序元数据206利用以下事实软件应用程序可以包含辑逻以确定它在执行什么功能,以及什么类型的显示器120被用于显现上述应用程序数据。依赖于上述应用程序的逻辑流程,当分配上述显示器120的区域供图像、视频或单色或线条画用户接口呈现之用时可以直接产生元数据。
上述配置元数据202、原始元数据204以及应用程序元数据206可以彼此协作以产生由上述压缩引擎108使用的组合的元数据包。同样地,上述压缩引擎108可以分别地处理来自上述元数据组成部分的单独的数据以减少上述数据流的比特数。
图3是提供用于在呈现引擎104和显示设备120之间交换数据的元数据提取器106的系统级概述的方块图,并且,特别地,上述功能由每个元数据模块执行。系统106解决在上述技术中用于增加通信信道吞吐量的需要。
配置文件元数据202是可以被预编译并且当执行压缩功能时可以被从源代码调用的库函数。当调用上述功能时检查定义上述帧缓冲器的几何区域的配置文件并且声明上述区域的大量特定和时间特征。于是利用这个信息为上述呈现引擎的104数据流的每一个区域选择适当的编解码器。
原始元数据204是可以被预编译并且当执行上述压缩功能时可以被从上述源代码调用的库函数。上述功能确定被选择以由呈现引擎104执行呈现操作的被分配对象306。更进一步地,上述功能随着时间的过去查看呈现操作308的分布以确定用在上述压缩引擎上的适当的压缩算法。
应用元数据206是可以被预编译并且当执行压缩功能时可以被从源代码调用的库函数。上述应用元数据利用在上述源执行的功能310以及在计算机124处的显示器的类型312以便选择适当的压缩算法。
上述压缩引擎106的能力是查看将要分配给上述帧缓冲器118的区域的特征、由呈现引擎104利用的对象以及被上述呈现引擎选择的应用程序以选择适当的压缩算法,以便保持数据保真度和优化计算资源。
图4示出描述上述媒体内容404、406、408、410以及当选择压缩数据流时可能选择的不同压缩算法402的表格。由于来自上述呈现引擎的数据流可能包含一个或多个媒体内容,所以上述压缩引擎106的目标是通过分析如上在图3中所阐述的元数据以选择最适当的压缩算法。
联合图像专家组(JPEG)压缩适用于图像内容404和视频内容410。JPEG压缩适用于能够在减少的带宽的情况下以较低的帧频为代价维持图像质量的柔性降级,与图像复杂性无关的恒定的图像质量;可利用的标准压缩和解压缩;低损耗的编码和解码;更快和更简单地执行内容搜索与实行图象处理;更少的密集计算以至可以解码许多信道并在显示监视器上进行显示;对实时影像和清晰的单独图像适用的低延迟编码和解码;以及,等同于如果包丢失发生的情况下快速图像流恢复的缓冲性。然而,JPEG需要以高于五(5)每秒帧的帧频的高带宽消耗和存储器需求;并且,没有用于同步声音的支持。
运动图像专家组(MPEG)压缩算法适用于恒定帧频(CBR)、引起以帧频高于5fps(帧每秒)的低带宽需求,以帧频高于5fps的低存储器需求的高压缩,并且,由于恒定比特率简化了网络设计而且可以维持带宽供应。然而,MPEG需要复杂的压缩处理需求,并且由于它的低鲁棒性,如果带宽低于特定阈值,则所有的视频将被丢失。
矢量图较适合用于作为一系列说明如何利用形状、线和变换的序列再现图像的指令被传输的线和图形。这类似于通过精密地记录笔迹、颜料选择和混合然后再现原来用于产生它的笔迹顺序再现绘画作品。矢量图通常是数据高效的,特别是当被压缩时,具有最小的存储器和带宽要求。当印刷或缩放时,甚至当放大或扩大时,它们被呈现而不会产生像素看起来不在其原来的位置且图象歪斜的情况(pixilation)。因此,矢量图可以带着有限精确的细节再现图形,允许它被分解为基本的形状和曲线。
霍夫曼编码提供在实现方面的简单性,因为它可以通过表查找被完成,并且对于给定块大小,霍夫曼编码给予最好的编码效率。然而,霍夫曼编码需要获得会引起高计算成本的源统计。
在上述压缩引擎106中也可能存在其他的压缩算法。除上述算法之外,上述呈现引擎104的用户还可以选择更加适当的算法而不脱离系统100的上述主要优点。其他的算法是H261、小波压缩、碎片压缩和Macromedia Flash。
已经在上述详细说明的本部分中描述了实施方式的操作的系统级概述。为了在呈现引擎104和诸如计算机124之类的计算机之间传输数据,描述了数据压缩配置。一些实施方式在诸如图1和图8中的计算机122之类的计算机上的多处理、多线程操作环境中操作。
虽然上述系统100不局限于任何一种具体的网络配置,但是为清楚起见已经描述了一简化的局域网。
实施方式的方法在上述部分中,已经描述了实施方式操作的系统级概述。在本部分中,通过参考一系列流程图描述由这些实施方式的服务器和客户机执行的特定方法。通过参考流程图描述上述方法使本领域技术人员能够开发这样的程序、固件或硬件,包含在适当的计算机化的客户机上执行的指令,上述客户机的处理器执行来自计算机可读介质的上述指令。类似地,上述服务器计算机程序、固件或硬件执行的方法还由计算机可执行指令组成。方法500、600、700和900由在计算机上执行的客户机程序执行,或由计算机的一部分固件或硬件执行,上述计算机是诸如在图2中的计算机122,并且包括要求由上述呈现引擎104、压缩引擎108和元数据提取器106执行的动作。
图5是由客户机根据实施方式执行的方法500的流程图。在当前的配置中,上述客户机是一个或多个诸如计算机122之类的计算机、压缩引擎106或呈现引擎104。方法500解决在上述技术中用于增加吞吐量和用于适应当总体网络负载变化时变化的网络带宽利用率的需要。
上述方法从由上述呈现引擎104输入数据的动作502开始,并且接收并分析来自上述元数据提取器106的数据以适应上述传输信道的带宽要求。来自上述呈现引擎104的数据是表示视频、文本、图形、图画和音频的混合媒体流。通过激活适当的显示驱动器、音频驱动器或其他的设备,可以在计算机124上显示或再现上述混合视频。上述显示可以是平铺显示、帧式的或拆分式的以显示每一个单独的媒体。一旦在动作502已经接收上述输入数据,控制转到动作504进行更进一步的处理。
在动作504中,确定用于上述输入数据流的属性。上述属性是配置文件元数据、原始元数据、应用元数据中的至少一个。这些属性中的每一个表示元数据、描述上述输入数据流的数据,其被上述压缩引擎108用于有效地压缩上述混合媒体流以适应诸如局域网102之类的通信信道的带宽要求。一旦已经确定上述属性,控制转到动作506进行更进一步的处理。
在动作506中,基于在动作504中的已识别属性为上述输入数据流选择上述压缩算法。具有上述识别属性的压缩引擎108选择适当的算法以压缩上述输入数据流。上述被选择的压缩算法可以对于上述输入数据流的每一个区域是专用的或者对于上述输入数据流的每一个区域是通用的。当上述流是混合媒体流时,那么基于对那些区域最适当的压缩算法压缩媒体的每一个区域。当图像是上述输入数据流的一部分时,那么很可能选择JPEG算法,在线和图画的情况下,那么选择矢量图压缩或可能是霍夫曼编码。在视频的情况下,那么选择MPEG压缩算法。在可供选择的方案中,可以对上述输入流中的任何媒体选择单独的算法。如果在带宽方面有所增加,可以预料可能不需要压缩或者可以缓和上述压缩比以减少与执行压缩操作固有地有关的延迟。在已经为每一个媒体或者区域选择上述压缩算法之后,控制转到动作508用于更进一步的处理。
在动作508中,根据上述在动作506中选择的压缩算法,压缩上述输入数据流。在上述压缩之后,引入上述输入流到上述局域网以便在显示器120上呈现或者在文件仓库110中存储用于随后使用。
图6是客户机根据实施方式执行的方法600的流程图。在当前的配置中,上述客户机是一个或多个诸如计算机122之类的计算机、压缩引擎106或呈现引擎104。方法600解决在上述技术中用于增加吞吐量和用于适应当总体网络负载变化时变化的网络带宽利用率的需要。
上述方法600由从上述呈现引擎104和上述元数据提取器106输入数据的动作602开始。来自上述呈现引擎104的数据表示视频、文本、图形、图画和音频,其共同地被称为混合媒体流。通过激活上述适当的显示驱动器、音频驱动器或者其他设备,可以在计算机124上显示或者再现混合视频。上述显示可以是平铺显示、帧式的或者拆分式的以显示每一个单独的媒体。一旦在动作602中已经接收到上述输入数据,控制转到动作604进行更进一步的处理。
在动作604中,获得元数据用于上述混合媒体数据。上述属性是配置文件元数据、原始元数据、应用元数据中的至少一个。这些属性的每一个表示元数据、描述上述输入数据流的数据,上述压缩引擎108可用其来有效地压缩上述混合媒体流以适应诸如局域网102之类的通信信道的带宽要求。一旦已经获得上述元数据,控制转到动作606用于更进一步的处理。
在动作606中,划分上述混合媒体数据为区域。可以被映射到上述显示器120和上述帧缓冲器118的上述混合媒体数据的每一个区域,被划分为它的分类组件诸如文本、视频、图像、图形及其他媒体。在划分上述混合媒体数据为区域之后,控制则转到动作608用于更进一步的处理。
在动作608中,基于上述已获得的元数据604和上述被划分的区域606选择上述压缩算法用于上述输入数据流。具有用于每一个区域的上述已获得元数据的上述压缩引擎108选择适当的算法以压缩上述输入数据流。当上述流是混合媒体流时,则基于用于那些区域的最适当的压缩算法压缩媒体的每一个区域。当图像是部分上述输入数据流时,那么很可能选择JPEG算法,在线和图画的情况下,那么选择矢量图压缩或者可能是霍夫曼编码。在视频的情况下,那么选择MPEG压缩算法。如果在带宽方面有增加,可以预料可能不需要压缩或者可以缓和上述压缩比以减少与执行压缩操作有关地固有的延迟。在已经为每个媒体或区域选择上述压缩算法之后,控制转到动作610用于更进一步的处理。
在动作610中,根据在动作608中选择的压缩算法压缩上述输入数据流的每个区域。在上述压缩之后,引入上述输入流到上述局域网以在显示器120上呈现或者保存在文件仓库110中用于随后使用。
在动作612中,引入上述输入数据流到上述局域网的流量中以被再现或存储在上述网络的另一个节点。当计算机124接收时,在显示器120上再现它。当存储器服务器110接收时,用于上述呈现引擎104随后的还原或计算机124在120的显示。
图7是形成实施方式的方法700的流程图。方法700解决在上述技术中用于增加网络吞吐量的需要。
图7从动作702开始,其中接收输入数据流。上述输入数据流是在呈现引擎104产生的和在显示器120过早地呈现的文本、视频、图像或其他媒体的数据。一旦已经接收到上述输入,控制转到动作704用于更进一步的处理。
在动作704中,分析上述输入数据以确定正在为上述媒体流的每一区域呈现什么类型的媒体。如前所述,上述区域可以是一个或多个文本、视频、图像或其他的媒体。一旦已经识别上述输入数据流的区域,控制转到动作706为更进一步的处理。
在动作706中,在从属元数据区域和独立元数据区域之间拆分或划分上述输入流。上述拆分的目的是确定那些区域存在元数据信息,并且可以导致严密地适合在那些区域中的媒体类型的压缩算法的选择。一旦执行这个判别功能,利用对上述已识别区域最适当的算法压缩从属元数据区域708。利用任何一种缺省的压缩算法,压缩上述独立元数据区域710。应当注意,对于上述从属和独立元数据两者可能存在没有选择压缩上述区域的情况。在那些罕有的情况中,通过上述传输信道而不用任何压缩发送上述区域。在已经压缩上述区域之后,控制转到动作712用于更进一步的处理。
在动作712中,通过上述信道传输上述输入数据流以在显示器120上显示或者保存在存储器服务器110中。
在一些实施方式中,方法500-700以包含在载波中的计算机数据信号被实现,那表示当由诸如在图8中的处理器804之类的处理器执行时的指令序列,使上述处理器执行上述各自的方法。在其他的实施方式中,以具备能够命令诸如在图8中的处理器804之类的处理器的可执行指令的计算机可访问介质实现方法500-700,以执行各自的方法。在变化的实施方式中,上述介质是磁介质、电子介质或者光学介质。
硬件和操作环境图8是上述硬件和操作环境800的方块图,其中可以实施不同的实施方式。图8的描述提供计算机硬件和适当的计算环境连同一些可以实现的实施方式的概述。按照执行计算机可执行指令的计算机描述实施方式。然而,可以在计算机硬件中全部实现一些实施方式,其中在只读存储器中实现计算机可执行指令。还可以在客户机/服务器计算环境中实现一些实施方式,其中执行任务的远程设备通过通信网络连接。在分布式计算环境中,程序模块可以位于本地的和远程的存储装置两者中。
计算机124包含处理器804,可商业地从英特尔公司、摩托罗拉公司、美国Cyrix公司以及其它公司获得。计算机124还包含随机存取存储器(RAM)806、压缩和解压缩引擎116、帧缓冲器118、只读存储器(ROM)808以及一个或多个海量存储器810,与可操作地耦合各个系统组成部分至上述处理单元804的系统总线812。上述存储器806、808和海量存储器,810,是计算机可访问介质的类型。更具体地说海量存储器810是非易失性的计算机可访问介质的类型,并且可以包含一个或多个硬盘驱动器、软盘驱动器、光盘驱动器和磁带驱动器。上述处理器804执行存储在计算机可访问介质上的计算机程序。
通过通信设备816,可以通信地连接计算机124至国际互联网络814。在本领域中国际互联网络814连接性是公知的。在一个实施方式中,通信设备816是响应通信驱动器以通过在本领域中公知的为“拨号连接”与国际互联网络连接的调制解调器。在另一个实施方式中,通信设备816是Ethernet(以太网)或连接到局域网(LAN)的类似的硬件网络卡,上述局域网本身通过在本领域公知的作为“直接连接”(例如,T1线等等)连接到国际互联网络。
用户通过诸如键盘818或点击设备820之类的输入装置输入命令和信息到计算机124中。上述键盘818允许输入文本信息到计算机124中,如本领域所公知的那样,并且实施方式不局限于任何一种具体类型的键盘。点击设备820可以控制由诸如微软公司Windows版本之类的操作系统的图形用户界面(GUI)提供的屏幕指针。实施方式不局限于任何一种具体的点击设备820。这样的点击设备包含鼠标、触摸板、跟踪球、远程控制和指示棒。其他的输入装置(未示出)可以包含麦克风、游戏杆、游戏衬垫(game pad)、圆盘式卫星电视天线(satellite dish)、扫描仪等等。
在一些实施方式中,可操作地耦合计算机124至显示设备822。显示设备822与上述系统总线812连接。显示设备822允许显示信息,包含计算、视频及其他信息,用于计算机用户查看。实施方式不局限于任何一种具体的显示设备822。上述的显示设备包含阴极射线管(CRT)显示器(监视器),和诸如液晶显示器(LCD′s)之类的平板显示器。除监视器之外,计算机通常包含其他的诸如打印机(未示出)之类的外围输入/输出设备。扬声器824和826提供信号的音频输出。扬声器824和826也与上述系统总线812连接。
计算机124还包含存储在上述计算机可访问介质RAM 806、ROM 808和海量存储器810上的操作系统(未示出),并且是由上述处理器804执行。操作系统的实施方式包含微软Windows、苹果MacOS、Linux、UNIX。然而,实施方式不局限于任何一种具体的操作系统,并且上述操作系统的结构和使用在本领域是公知的。
计算机124的实施方式不局限于任何一种类型的计算机124。在变化的实施方式中,计算机124包含PC兼容的计算机、MacOS兼容的计算机、Linux兼容的计算机或UNIX兼容的计算机。上述计算机的结构和操作在本领域中是公知的。
可以利用至少一个操作系统操作计算机124以提供包含用户可控制指针的图形用户界面(GUI)。计算机124可以具备至少一个在至少一个操作系统中执行的web浏览器应用程序,以允许计算机124的用户访问内部网或由通用资源定位符(URL)地址定址的国际互联网络万维网页。浏览器应用程序的实施方式包含美国Netscape公司的Navigator和微软公司的Intemet Explorer。
计算机124可以在利用逻辑连接至一个或多个诸如远程计算机122之类的远程计算机的网络环境中操作。通过耦合计算机124或其一部分的通讯装置实现上述逻辑连接。实施方式不局限于具体类型的通信设备。上述远程计算机122可以是另一台计算机、服务器、路由器、呈现引擎104、压缩引擎102、网络个人计算机(PC)、客户机、对等设备或其他的公用网络结点。在图8中描述的逻辑连接包含局域网(LAN)830和广域网(WAN)832。上述的连网环境在办公室、企业界计算机网络、内部网和国际互联网络中是普遍的。
当在局域网连网环境中应用时,上述计算机124和远程计算机122通过网络接口或适配器834被连接到局部网络830,网络接口或适配器834是通信设备816的一类。远程计算机122还包含网络设备836。当应用在普通的广域网连网环境中时,计算机124和远程计算机122与广域网832通过调制解调器(未示出)通信。上述调制解调器,可以是内部的或外部的,被连接到上述系统总线812。在网络环境中,所描述的程序模块对应于计算机124,或它的部分,可以被存储在上述远程计算机122中。
计算机124还包含电源838。每个电源可以是电池。
实现参见图9,连同在图8中的系统概述以及连同附图5、6和7描述的方法描述具体实现900。上述附图使用统一建模语言(UML),其是规定、可视化、构造以及证明上述面向对象的软件系统的制造物的工业标准语言。在上述附图中,在类之间的空心箭头被用于指示在父类之下从上述父类继承属性和方法的子类。此外,实心填充的菱形被用于指示上述类的对象,另一个类的对象由下面描述的对象组成。成分定义类的实例的属性作为包含其他类的一个或多个存在的实例中的实例,其中上述组合对象没有从它被组成的上述对象(们)继承。
图9是上述硬件和操作环境800的方块图,在其中可以实施不同的实施方式。装置900解决在上述技术中用于增加吞吐量和用于适应当总计网络负载变化时变化的网络带宽利用率的需要。
装置900从计算机可访问介质接收软件912,载波信号用于操作装置900。图10示出利用带有用于错误检查和传送有效负载至正确的服务器或装置900的头指针的帧中继的传输。如图所示,上述有效负载由指令组成,当通过装置900编译上述指令时,使像804之类的处理器用已选择的压缩算法执行压缩上述数据流的区域的动作。上述软件可以是用于使上述装置执行压缩输入媒体流的方法,在可供选择的方案中,根据正被使用的操作系统,上述软件可以是用于执行上述方法和用于操作装置900的指令,并产生正被使用的格式的数据和指令以通过通信信道发送已压缩数据。
装置900从媒体源914接收上述输入数据流。如前所述,上述输入数据流由一个或多个视频、文本、图像或其他的媒体组成。
在通过使用软件指令912已经配置上述装置以执行上述方法之后,那么上述装置准备接收上述输入数据流914并处理上述数据流用于传输。
在动作904中,为上述混合媒体数据获取元数据。上述属性是配置文件元数据、原始元数据、应用元数据中的至少一个。这些属性中的每一个表示元数据、描述上述输入数据流的数据,其可用于上述压缩引擎108以有效地压缩上述混合媒体流以适应诸如局域网102之类的通信信道的带宽要求。一旦已经获得上述元数据,控制转到动作904用于更进一步的处理。
在动作904中,上述混合媒体数据被划分为区域。上述混合媒体数据的每个区域,其可以被映射到上述显示器120和上述帧缓冲器118,被划分为它的诸如文本、视频、图像、图形及其他媒体之类的分类组件。在上述混合媒体数据被划分为区域之后,那么控制转到动作906用于更进一步的处理。
在动作906中,基于上述已获得的元数据902和上述已划分的区域904选择上述压缩算法用于上述输入数据流。上述具有用于每个区域的已获得元数据的压缩引擎108选择适当的算法以压缩上述输入数据流。当上述流是混合媒体流时,则基于对于那个区域最适当的压缩算法压缩媒体的每个区域。当图像是上述输入数据流的一部分时,则很可能选择JPEG算法,在线和图画的情况下,则选择矢量图压缩或可能选择霍夫曼编码。在视频的情况下,则选择MPEG压缩算法。如果在带宽方面有增加,可以预料可能不需要压缩或者可以缓和压缩比以减少与执行压缩操作固有地有关的延迟。在已经为每个媒体或区域选择上述压缩算法之后,控制转到动作908用于更进一步的处理。
在动作908中,根据在动作906中选择的压缩算法压缩上述输入数据流的每个区域。在上述压缩之后,上述输入流被引入上述局域网以在显示器120上被呈现或存储在文件仓库110中用于随后使用。
在动作910中,上述输入数据流被引入上述局域网的流量中以被再现或存储在上述网络的另一个节点。当计算机124接收到时,它在显示器120上被再现。当存储器服务器110接收到时,用于随后的上述呈现引擎104的再现或者计算机124在120的显示。
装置900的组件902-910可以具体化为计算机硬件电路或计算机可读程序或者两者的结合。在另一个实施方式中,在应用程序服务供应商(ASP)系统中实现系统900。
更具体地说,在计算机可读程序的实施方式中,可以在利用诸如Java、Smalltalk或C++之类的面向对象语言的面向对象中构造上述程序,并且可以在利用诸如COBOL或C之类的过程语言的面向过程中构造上述程序。上述软件组件以对本领域技术人员公知的很多手段中的任何一种方式进行通信,例如应用程序接口(API)或诸如远程过程调用(RPC)、公共对象请求代理结构(CORBA)、组件对象模型(COM)、分布组件对象模型(DCOM)、分布式系统对象模型(DSOM)和远程方法调用(RMI)之类的进程间通信技术。上述组件在与在图8中的计算机122或124一样少的一个计算机上执行,或者在至少与组件同样多的计算机上执行。
结论我们已经描述了用于数据压缩的系统和方法。尽管在这里已经说明和描述了具体的实施方式,本领域普通技术人员会理解任何一种适用于实现同样目的的配置可以替换上述所示的具体实施方式
。本申请意图覆盖任何一种修改或变化。举例来说,尽管用面向对象术语进行描述,但一个本领域普通技术人员会理解可以在程序设计环境中或提供上述需求关系的任何一种其他的设计环境中完成实施。
特别地,一个本领域技术人员会容易地理解上述方法和装置的名称并不意味着限制实施方式。此外,可以增加附加的方法和装置到上述组件,可以在上述组件中重新配置功能,并且可以引入以对应于日后改进的新的组件和在实施方式中使用的物理设备而不脱离实施方式的上述范围。一个本领域技术人员会容易地认识到实施方式适用于日后的通信设备、不同的文件系统和新的数据类型。
权利要求
1.一种用于在源数据设备(104)和远程视频帧缓冲器(118)之间压缩数据的方法,包含从上述源数据设备(104)接收源数据,上述源数据具备一个或多个对应于远程视频帧缓冲器(118)位置的媒体区域;识别元数据(504),该元数据(504)描述对应于远程视频帧缓冲器(118)位置的上述一个或多个媒体区域;如果识别出上述区域的元数据,则在上述区域上执行从属元数据数据(708)压缩;以及在没有识别元数据的区域上选择独立元数据数据(710)压缩。
2.权利要求1中的方法,其中识别元数据还包含识别配置文件元数据、源原始元数据、应用高级元数据其中之一,其中选择独立元数据数据压缩还包含MPEG压缩、JPEG图像压缩、矢量图压缩、霍夫曼编码、H.261、用户选择(402)的压缩其中之一。
3.权利要求2中的方法,其中识别元数据还包含以下之一识别关于用于输入数据区域的显示的功能和类型的应用高级元数据(206),从原始操作识别关于应用元数据的源原始元数据(204),识别定义上述输入数据的区域的信息(706),以及识别定义输入数据区域的特定和时间特征(302)的信息。
4.一种用于在通信链路上从数据处理器(900)到远程帧缓冲器(118)传输混合媒体流数据以进行显示的方法,该方法包含划分(606)上述混合媒体流数据为若干区域,上述区域表示将要被显示的混合媒体流;从上述数据处理器(106)获得定义上述混合媒体流数据的每个区域的元数据属性;基于上述已获得的定义上述混合媒体流数据的每个区域的元数据属性,为上述混合媒体流数据的每个区域选择压缩方法(402);对上述混合媒体流数据的每个区域应用上述所选择的压缩方法(402,404,406,408,410);以及在上述通信链路上传输(712)上述已压缩的混合媒体流数据至上述帧缓冲器以进行显示。
5.权利要求4中的数据压缩方法,其中上述元数据属性还包含配置文件元数据(202)、源原始元数据(204)、应用高级元数据(206)其中之一。
6.一种用于压缩至少一批输入数据的计算机化系统,包含用于识别上述输入数据(902,904)的至少一个属性的设备;用于响应上述已识别的属性(892)选择(906)至少一个数据压缩方法的设备;以及利用上述所选择的至少一个数据压缩方法,用于压缩(908,108)上述一批输入数据的设备。
7.权利要求6中的计算机化系统,其中上述属性还包含配置文件元数据(202)、源原始元数据(204)、应用高级元数据(206)其中之一。
8.权利要求7中的计算机化系统,其中配置文件元数据的属性还包含定义上述输入数据(904)的区域的信息、定义输入数据区域的特定和时间特征(302)的信息中的至少一个。
9.权利要求8中的计算机化系统,其中上述源原始元数据(204)的属性还包含来自原始操作的应用元数据(206)。
10.权利要求9中的计算机化系统,其中上述应用高级元数据的属性还包含描述用于上述输入数据(120,118,206)的区域的显示的功能和类型的信息。
全文摘要
本发明提供系统、方法和计算机可访问介质,通过其,在进入网络(102)以被耦合远程视频帧缓冲器(118)的显示呈现之前,基于已识别的媒体区域的一个或多个配置文件元数据(202)、源原始元数据(204)和应用高级元数据(206)压缩包括一个或多个媒体区域的输入数据流(104)。通过利用一个或多个MPEG压缩、JPEG压缩、矢量图压缩、霍夫曼编码或用户定义的压缩方案(402,404,406,408,410)压缩输入数据流。
文档编号H04N7/26GK1984330SQ20061017293
公开日2007年6月20日 申请日期2006年6月23日 优先权日2005年6月25日
发明者D·M·迪文 申请人:通用电气公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1