[发明专利]使用多个马尔可夫链进行压缩有效
申请号: | 200680038683.3 | 申请日: | 2006-11-10 |
公开(公告)号: | CN101292429A | 公开(公告)日: | 2008-10-22 |
发明(设计)人: | X·吴;Y·孙;B-L·约;L·吕;F·余 | 申请(专利权)人: | 英特尔公司 |
主分类号: | H03M7/40 | 分类号: | H03M7/40 |
代理公司: | 永新专利商标代理有限公司 | 代理人: | 宋献涛;王英 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 多个马尔可夫链 进行 压缩 | ||
技术领域
本发明涉及可执行代码的压缩,具体而言,涉及把指令内和指令间的相关性建模成为多个马尔可夫链,以用于可执行代码的压缩。
背景技术
压缩可以通过将一组数据用另一种方式进行等同表示,从而降低其大小。数据压缩是指,降低用于表示信息的数据量的处理。数据压缩技术降低了信息存储和传输的成本,故而用在很多应用场合,从简单的文件大小降低到语音和视频编码。
常用的大多数压缩方法要么是基于词典的方法,要么是统计方法。统计方法把熵编码和建模技术结合起来。一般情况下,统计方法用于压缩可执行代码。输入的符号序列中的每个输入符号都用一个变长码来表示,从而产生表示输入符号的代码流,此代码流的比特少于输入的符号序列的比特。每个输入符号都具有与其在输入的符号序列中出现的频度相关的特定概率值。为了减少比特数,大多数统计压缩方法把具有最高出现概率的符号编成具有最少比特数的代码。
一般情况下,统计压缩方法包括模型和编码器。模型包括统计信息,统计信息是根据输入的符号序列而获得的。在最简单的情况下,例如,马尔可夫模型,此模型根据输入符号在输入符号序列中出现的频度,提供其概率值。编码器根据输入的符号序列和模型提供的概率值,产生经过编码的代码序列。
可执行代码是线性指令序列。对于给定的机器架构,指令具有特定的格式,一般包括三个字段:操作码、寻址模式、操作数。可执行代码的统计压缩不同于常规数据的统计压缩,这是因为,可执行代码的结构有特定的统计相关性。统计相关性存在于一条指令的不同字段之间,这叫做指令内相关性。此外,由于机器语言是由其句法、语义和模块性来表征的, 所以,不同指令之间也有很强的统计相关性,这叫做指令间相关性。指令内相关性和指令间相关性以错综复杂的方式相互混合在一起。
通常,为了利用指令之间的统计相关性来实现高压缩率,可执行程序的操作码和剩余部分需要进行严格的机械分离。然而,这种分离方法并不是最优的,因为,它无法利用一些指令内相关性。但另一方面,如果不提取操作码就把可执行程序作为一个序列进行压缩,那么,指令间相关性就会模糊,这也会损害压缩性能。
指令内相关性和指令间相关性二者都可采用如下方式得到充分利用:先把指令的操作码和指令的寻址模式进行组合,把它们视为扩展的操作码,然后,分离和压缩指令的扩展操作码序列。但是,这种替代方法也是有问题的,因为它人为地在当前指令的操作码和先前指令的寻址模式之间产生了顺序耦合,即便这两个实体具有很弱的相关性。因此,扩展操作码的顺序压缩达不到高的压缩率。
发明内容
为了提高压缩性能,本发明在压缩过程中使用多个马尔可夫链来提供指令内相关性和指令间相关性。
在一个方案中,提供了一种用于压缩指令流的压缩方法,包括:把在所述指令流中的输入的混乱符号序列建模成为多个马尔可夫链,所述输入的混乱符号序列包括操作码子序列和寻址模式子序列;使用与和一个符号相关联的符号类型对应的马尔可夫链中的上下文模型,对所述符号进行编码。对所述符号进行编码的操作进一步包括:如果所述符号是操作码,则使用所述多个马尔可夫链中的提供指令间相关性且将先前的操作码作为上下文的一个马尔可夫链来编码所述符号;而如果所述符号不是操作码,则使用所述多个马尔可夫链中的提供指令内相关性且将所述先前的操作码以及先前的寻址模式作为上下文的另一马尔可夫链来编码所述符号。
在另一方案中,提供了一种用于压缩指令流的压缩装置,包括:用于把在所述指令流中的输入的混乱符号序列建模成为多个马尔可夫链的模块,所述输入的混乱符号序列包括操作码子序列和寻址模式子序列;用于使用与和一个符号相关联的符号类型对应的马尔可夫链中的上下文模型, 对所述符号进行编码的模块。对所述符号进行编码的模块进一步包括:用于如果所述符号是操作码,则使用所述多个马尔可夫链中的提供指令间相关性且将先前的操作码作为上下文的一个马尔可夫链来熵编码所述符号的模块;用于如果所述符号不是操作码,则使用所述多个马尔可夫链中的提供指令内相关性且将所述先前的操作码以及先前的寻址模式作为上下文的另一马尔可夫链来熵编码所述符号的模块。
附图说明
下面结合附图进行详细描述,由此,本发明的实施例的特征将变得显而易见,在这些附图中,相同标记代表相同部件,其中:
图1是根据本发明的基本原理用于压缩可执行代码(可执行程序或文件中的程序指令流)的压缩器的一个实施例的框图;
图2的框图示出了指令的一个实施例的格式;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680038683.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:含硅的食品
- 下一篇:用于装入原料的方法与装置