当前位置: 首页 > 专利查询>微软公司专利>正文

数据压缩的方法和装置制造方法及图纸

技术编号:3518841 阅读:127 留言:0更新日期:2012-04-11 18:40
描述了流数据的压缩。在一个实现中,一种方法包括通过在一查找表中找出匹配数据中一初始序列的索引,压缩数据用于在终端服务环境中传递。该查找表包括多个条目。每一条目可使用多个索引中的特定一个来发现。每一条目涉及对应索引是否位于历史缓冲区中,并且如果是,还引用历史缓冲区中对应索引的一个或多个位置。如果匹配索引的对应条目引用多个位置,对每一位置,将具有匹配索引的序列与数据中包括初始序列的序列进行比较。基于每一位置上的序列的长度和位置,从比较中导出一匹配序列。该匹配序列使用包括历史缓冲区中匹配序列的长度和位置的表示来表示。

【技术实现步骤摘要】

本专利技术一般涉及数据压缩领域,尤其涉及用于数据压缩的系统、服务器、方法和计算机可读媒质。
技术介绍
用户能够以日益增长的各种方式访问越来越多的数据。例如,用户可访问网站,并接收音乐会事件的广播,即网播(webcast)。另外,用户可使用无线电话通过无线网络访问游戏和其它应用程序。为向用户提供这一数据,数据可通过网络从服务器流向客户机以供客户机呈现。用户然后可与所呈现的数据交互,如通过观看影片、听歌曲等等。流传送数据向用户提供了增加的功能,使得用户可快速地接收数据。如果没有流传送,如果需要在由客户机输出之前从服务器接收所有的数据量,则用户会在客户机上呈现数据时经受延迟。通过流传送数据,可减少用户所遇到的延迟。数据流传送可用于提供数据的“实时”呈现。为流传送数据,一般使用分组以流传送或连续的方式将数据从服务器发送,以当数据到达时在客户机上呈现,这与在包括数据的整个文件在客户机上可用之前不呈现数据相反。流传送可用于各种类型的数据,如视频数据、音频数据、媒体数据等等。视频数据流提供了“移动图像”的序列,这些图像被发送,并在到达时被呈现。类似地,音频数据流提供了当音频数据到达时播放的声音数据。媒体数据流包括音频和视频数据两者。可压缩流传送数据以有效地将数据通过网络从服务器流到客户机,并提高流数据的效用。例如,通信上将服务器耦合至客户机的网络可具有有限的带宽。有限带宽会限制在任何一个时刻从服务器传递到客户机的数据量,并因此限制了在通过网络流传送数据时向客户机提供的功能。例如,由于有限的带宽,流传送的视频数据可被限制到较低的分辨率,而如果使用了更高带宽的网络,情况则相反。因此,期望较高分辨率流视频数据的用户可能被强迫购买较高带宽的连接。通过压缩流数据,可在任何一个时刻通过低带宽网络传输更多的数据,并因此提高流数据的效用。然而,当压缩数据时,会遇到另外的问题,这与压缩整个数据集相反,如块压缩。例如,为一次压缩整个影片,压缩例程可检查构成该影片的整个数据量,以压缩数据。压缩例程可提供遍及构成该影片的数据所包括的常见序列的表示。然而,可提供流数据用于数据的“实时”呈现。因此,可能有有限量的时间来分析流数据,以提供客户机对数据的实时呈现。另外,在任何一个时候可能有有限量的数据可用于压缩以提供公共序列的表示。因此,对数据压缩有不断的需求。
技术实现思路
描述了数据压缩。在一个示例性实施例中,压缩模块由服务器执行,以压缩流到客户机的数据,如响应于来自客户机的远程访问请求而发送的数据、终端服务环境中的数据等等。压缩模块采用包括先前流到客户机的数据的历史缓冲区。当被执行时,压缩模块将要流传送的数据中的序列与历史缓冲区中的一个或多个序列相比较,以找出匹配的序列。为在历史缓冲区中定位序列,采用了具有多个条目的查找表,每一个条目都可由多个索引之一发现。每一条目涉及历史缓冲区中是否有对应的索引,如果有,则还引用历史缓冲区中该对应索引的一个或多个位置。因此,压缩模块可使用要流传送的数据中的一初始序列作为查找表中的索引,以找出历史缓冲区中的匹配索引。数据中的该匹配序列然后可用描述历史缓冲区的匹配序列的位置和长度的表示来替换,以形成流到客户机的经压缩的数据。在另一实现中,一种方法包括接收指示用于通过网络将数据从服务器提供的终端服务传递到客户机的资源的可用性的反馈,以及响应于该反馈调整用于压缩数据的压缩例程的一个或多个参数。在另外一个实现中,一种方法包括在服务器处从客户机接收对通过服务器远程访问可用应用程序或文件的请求。确定用于响应于该请求通过网络传递数据的资源的可用性。基于确定的可用性调整用于压缩数据的压缩例程的一个或多个参数。附图说明图1是示出数据通过网络从服务器流到客户机的环境的一个示例性实现的说明。图2是更详细地示出图1的服务器和客户机的示例性实现的说明。图3是描述配置用于流传送数据供压缩的示例性过程的流程图。图4是描述一个示例性过程的流程图,其中,被配置成包括对要流传送的分组的引用的图3的查找表用于压缩分组。图5是描述一个示例性过程的流程图,其中,图4的已压缩分组由客户机通过执行一解压模块来解压。图6是一个示例性实现的说明,其中,在历史缓冲区中使用一滑动窗以包括要流传送的数据。图7是描述其中进一步优化流数据的压缩的一个示例性实现的过程的流程图。图8是一个示例性实现的说明,其中,优化序列的压缩以进一步优化数据压缩。图9是一个示例性实现的系统的说明,其中,响应于从系统接收的返回动态地调整压缩。在所讨论的实例中,相同的标号用于参照相同的结构和组件。具体实施例方式综述描述了数据压缩。在一个示例性实现中,由服务器执行一压缩模块,以压缩用于从服务器流到客户机的数据。该压缩模块采用一包括先前流到客户机的数据的历史缓冲区。当被执行时,该压缩模块将要流传送的数据中的序列与历史缓冲区中的一个或多个序列进行比较,以找出匹配序列。为在历史缓冲区中定位序列,采用一具有多个条目的查找表。每一条目可使用多个索引中的特定一个来发现。每一条目涉及对应的索引是否位于历史缓冲区中,并且如果是,则还引用对应索引在历史缓冲区中的一个或多个位置。因此,压缩模块可使用要流传送的数据中的一初始序列,作为查找表中的索引以找出条目。以这一方式,压缩模块可快速地定位具有初始序列的历史缓冲区中的每一位置,而无需为要流传送的数据中的每一序列单独比较历史缓冲区中的每一序列。如果匹配索引的对应条目引用了多个位置,则压缩模块通过将每一位置上具有匹配索引的序列与包括初始序列的数据中的序列进行比较,来导出匹配序列。数据中的该匹配序列然后可用描述历史缓冲区中匹配序列的位置和长度的表示来表示。然后可形成包括该表示的已压缩数据。已压缩数据然后流到客户机。客户机通过使用同样包括先前从服务器流到客户机的数据的历史缓冲区来解压已压缩数据。客户机通过执行解压模块,使用由该表示指示的长度和位置找出客户机历史缓冲区中的匹配序列,以重建该数据。以这一方式,提供了一种无损数据压缩技术,使得可在没有丢失数据的情况下压缩和解压数据。例如,可使用该数据压缩技术压缩和解压视频数据,而不会丢失数据部分,由此保留了视频数据的分辨率。示例性环境图1是示出其中数据通过网络106从服务器102流到客户机104的环境100的示例性实现的说明。客户机104可用各种方法来配置。例如,客户机104可被配置为能够通过网络通信的设备,如所示的台式机、移动站、娱乐设施、机顶盒、无线电话等等。客户机104也可涉及操作客户机104的个人和/或实体。换言之,客户机104可描述包括用户和/或机器的逻辑客户机。尽管示出了一个客户机104,然而多个客户机可通信上耦合至网络106。网络106被示出为因特网,并也可包括各种其它网络,如内联网、有线或无线电话网络等等。服务器102被配置成通过网络106将数据流到客户机104。服务器102可提供各种流数据,以供客户机104呈现。在一个实现中,服务器102可提供流到客户机104的音乐会的网播。当由客户机104呈现时,用户可观看并倾听网播。在另一实现中,客户机104可接收包括从服务器102流出的歌曲的数据,以供客户机104输出。在另外一个实现中,服务器102也可提供用于远程应用程序执行的终端服务。例如,服务器102可包本文档来自技高网
...

【技术保护点】
一种方法,包括压缩数据以在终端服务环境中传递,其特征在于,它通过以下行动来压缩数据:在一查找表中找出一匹配数据中的初始序列的索引,其中:所述查找表包括多个条目,每一所述条目可使用多个所述索引中的特定一个来发现;以及每一所述条目涉及一对应的所述索引是否位于一历史缓冲区中,并且如果是,则还引用所述历史缓冲区中对应的所述索引的一个或多个位置;以及如果所述匹配索引的对应的所述条目引用多个所述位置:对于每一所述位置,将所述位置上具有所述匹配索引的序列与所述数据中的序列进行比较,所述序列包括所述初始序列;基于每一所述位置上的序列的长度和位置中的至少一个,从所述比较中导出一匹配序列;以及使用包括所述历史缓冲区中的匹配序列的长度和位置的表示来表示所述匹配序列。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:AV卡达齐MV斯里格NY阿布多
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1