用于生成压缩数据的具有最长匹配处理的压缩系统技术方案

技术编号:33343149 阅读:18 留言:0更新日期:2022-05-08 09:30
一种电子装置执行用于从原始数据生成压缩数据的方法,所述电子装置包括压缩子系统,所述压缩子系统具有比较器、历史缓冲器、匹配检测器和命令生成器。在时钟的每个周期中开始,所述压缩子系统处理从原始数据复制的搜索字符串以生成用于压缩数据的命令。对于处理每个搜索字符串,所述比较器将来自所述搜索字符串的N个子字符串中的每一者与来自所述历史缓冲器的存储数据进行比较以找到所述字符串与所述存储数据之间的匹配。所述匹配检测器然后确定所述子字符串中的每一者的最长匹配。所述命令生成器接下来基于所述子字符串的所述最长匹配来选择性地输出用于所述压缩数据的命令。令。令。

【技术实现步骤摘要】
【国外来华专利技术】用于生成压缩数据的具有最长匹配处理的压缩系统

技术介绍

[0001]相关技术
[0002]一些电子装置执行用于将数据(诸如用户或系统文件、数据流或序列等)压缩的操作。电子装置可将数据压缩以减小数据的大小,以使得数据能够更高效地存储在存储器中、使得数据能够经由网络在电子装置之间传输等。例如,电子装置可使用字典编码标准(诸如Lempel Ziv

77(LZ77)、LZ78或Lempel

Ziv

Welch(LZW))来从原始数据(即,未压缩数据)生成压缩数据。
[0003]尽管将数据压缩可提高存储和处理数据的效率,但是许多装置使用软件(即,软件例程、应用程序等)来压缩数据。使用软件对数据进行压缩典型地要求诸如中央处理单元(CPU)的通用处理器执行大量的压缩操作和相关联的存储器访问。由于大量的压缩相关操作和存储器访问,使用软件对数据进行压缩是低效的。
附图说明
[0004]图1呈现了示出根据一些实施方案的压缩数据的框图。
[0005]图2呈现了示出根据一些实施方案的文字写入命令的框图。
[0006]图3呈现了示出根据一些实施方案的字符串复制命令的框图。
[0007]图4呈现了示出根据一些实施方案的原始数据、搜索字符串和多个子字符串的框图。
[0008]图5呈现了示出根据一些实施方案的电子装置的框图。
[0009]图6呈现了示出根据一些实施方案的压缩子系统的框图。
[0010]图7A呈现了示出根据一些实施方案的选择性地输出用于压缩数据的命令的框图。
[0011]图7B呈现了示出根据一些实施方案的选择性地输出用于压缩数据的命令的框图。
[0012]图8呈现了根据一些实施方案在时钟的周期期间由压缩子系统执行的操作的时间线图。
[0013]图9呈现了示出根据一些实施方案的用于对原始数据进行压缩以生成用于压缩数据的命令的过程的流程图。
[0014]图10呈现了示出根据一些实施方案的用于从命令生成器选择性地输出命令的过程的框图。
[0015]在整个附图和描述中,相似的附图标记指代相同的附图元件。
具体实施方式
[0016]呈现以下描述以使得本领域任何技术人员能够制造和使用所描述的实施方案,并且在特定应用及其要求的背景下提供以下描述。对所描述的实施方案的各种修改对于本领域技术人员来说将显而易见,并且本文定义的一般原理可应用于其他实施方案和应用。因此,所描述的实施方案不限于所示出的实施方案,而是要被赋予与本文公开的原理和特征一致的最宽范围。
[0017]术语
[0018]在以下描述中,使用各种术语来描述实施方案。以下是对这些术语中的一者的简化且一般的描述。需注意,该术语可具有重要的附加方面,为了清楚和简洁起见,在本文中没有陈述这些附加方面,并且因此该描述不旨在限制术语。
[0019]功能块:功能块是指一个或多个互相关联的电路元件(诸如集成电路元件、分立电路元件等)的组、集合和/或集。电路元件是“互相关联的”,因为电路元件共享至少一种性质。例如,互相关联的电路元件可被包括在特定的集成电路芯片或其部分中、制造在特定的集成电路芯片或其部分上或以其他方式耦合到特定的集成电路芯片或其部分,可参与执行给定的功能(计算或处理功能、存储器功能等),可由共同控制元件和/或共同块来控制等。功能块可包括任何数量的电路元件,从单个电路元件(例如,单个集成电路逻辑门)至数百万或数十亿的电路元件(例如,集成电路存储器)。
[0020]压缩数据
[0021]在所描述的实施方案中,执行用于从原始数据生成压缩数据的操作。一般来讲,压缩数据是对原始数据的一个或多个压缩和/或其他操作的输出,该一个或多个压缩和/或其他操作造成原始数据中的至少一些被命令和/或可用于重新创建原始数据的其他值替代。在所描述的实施方案中,可将各种类型的数据压缩,所述数据包括用户或系统文件(例如,音频和/或视频文件、文档文件、可执行文件、操作系统文件等)、数据流或序列(例如,音频和/或视频数据流、经由网络接口接收的数据序列等)、从传感器(例如,相机和/或麦克风、温度计、振动传感器等)捕获的数据等。在所描述的实施方案中,众多压缩标准、算法或格式或它们的组合可用于将数据压缩,包括字典编码标准,诸如Lempel Ziv

77(LZ77)、LZ78或Lempel

Ziv

Welch(LZW)等。
[0022]如本文所使用的术语“压缩数据”和“压缩”广泛地应用于对原始数据的操作,该操作造成原始数据中的至少一些被命令和/或可用于重新创建原始数据的其他值替代。如上所述,这些操作包括各种编码标准、算法或格式或它们的组合。因此,这些术语不应当被解译为仅限于诸如字典编码压缩和/或有时可被视为“压缩”操作的其他操作的操作。
[0023]图1呈现了示出根据一些实施方案的压缩数据的框图。如在图1中可见,压缩数据100包括一组(即,系列、序列等)数据102,所述压缩数据可以是文件、数据流或序列等或被包括在文件、数据流或序列等中。一般来讲,命令102中的每个命令包括、标识和/或指代可用于获取和/或生成字符串(即,位、字符、数字等)的信息,所述字符串也被称为“符号”,所述字符串将在解压缩操作期间附加到重新创建的原始数据。在一些实施方案中,每个命令包括被组织来表示和/或标识可用来获取和/或生成该命令的字符串的信息的一组位。在一些实施方案中,命令中的信息是指在命令之外的信息,例如关于要从中获取命令值的单独来源的信息、将用于与命令相关联的计算的信息、对表的引用、记录或其他数据结构等。
[0024]在一些实施方案中,压缩数据中的命令包括文字写入命令和字符串复制命令。图2呈现了示出根据一些实施方案的文字写入命令200的框图。文字写入命令200包括命令标识符(CMD),该命令标识符在解压缩子系统中处理时致使解压缩子系统获取指定长度(长度)(例如,以位、字节等为单位)的文字(文字)并且将文字附加到重新创建的原始数据。(尽管被示为图2中的文字写入命令200的部分,但在一些实施方案中,文字可单独地存储,诸如在压缩数据100的另一个部分或块中)。对于图1中的示例,L1文字写入命令致使解压缩子系统
获取第一一字节字符串,例如字符A,并且将该第一一字节字符串附加到重新创建的输出数据。如本文所使用的“附加”指示将给定的字符串添加到先前重新创建的原始数据(使用图1中未示出的命令重新创建)的序列的末尾,或者将其用作新重新创建的数据中的初始字符串(当命令是压缩数据中的第一命令时)。继续图1中的示例,L2至L5文字写入命令致使获取第二至第五一字节字符串,例如字符B、C、D和E,并且在对应的位置将其附加到重新创建的原始数据。
[0025]图3呈现了示出根据一些实施方案的字符串复制命令300的框图。字符串复制命令300包括命令标识符(CMD),该命令标识符在解压缩子系统中处理时致使解压缩子系统获本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于从原始数据创建压缩数据的电子装置,所述电子装置包括:压缩子系统,所述压缩子系统包括比较器、历史缓冲器、匹配检测器和命令生成器;在时钟的每个周期中开始,所述压缩子系统被配置为处理搜索字符串以生成用于所述压缩数据的命令,所述搜索字符串包括来自所述原始数据的多个字节,其中当处理所述搜索字符串时:所述比较器被配置为将来自所述搜索字符串的N个子字符串中的每一者与来自所述历史缓冲器的存储数据进行比较以找到所述子字符串与所述存储数据之间的匹配,每个子字符串具有以字节为单位的指定长度并且包括来自所述搜索字符串的不同有序序列的字节;所述匹配检测器被配置为确定所述子字符串中的每一者的最长匹配;并且所述命令生成器被配置为基于所述子字符串的所述最长匹配来选择性地输出用于所述压缩数据的命令。2.如权利要求1所述的电子装置,其中:所述比较器包括比较元件;并且当将所述子字符串中的每一者与来自所述历史缓冲器的所述存储数据进行比较以找到所述匹配时,所述比较器被配置为:将所述子字符串和来自所述存储数据的比较字符串作为输入提供到所述比较元件中的对应元件,每个比较字符串具有以字节为单位的所述指定长度并且包括来自所述存储数据的不同有序序列的字节;以及接收每个匹配的指示所述匹配的长度的标识符作为所述对应元件的输出。3.如权利要求2所述的电子装置,其中:所述标识符包括位序列,所述位序列包括所述子字符串的每个字节的单独位;并且所述对应元件被配置为输出其中所述子字符串和所述比较字符串的相应字节匹配的每个位的第一值,以及其中所述子字符串和所述比较字符串的相应字节不匹配的每个位的第二值。4.如权利要求1所述的电子装置,其中:所述匹配检测器包括N个匹配流水线,每个匹配流水线包括按顺序布置的K级最长匹配选择器;并且当确定所述子字符串中的每一者的所述最长匹配时,所述匹配检测器被配置为:在所述匹配流水线中的对应流水线中从所述比较器接收所述子字符串的匹配;以及在所述匹配流水线中的所述对应流水线中的所述级中的每个级中,从单独匹配组中选择局部最长匹配并且提供所述局部最长匹配作为所述匹配流水线的下一级的匹配,其中所述级中的最终级从最终且最小的单独匹配组中选择所述最长匹配。5.如权利要求4所述的电子装置,其中当基于所述子字符串的所述最长匹配来选择性地输出用于所述压缩数据的所述命令时,所述命令生成器被配置为在所述时钟的周期中:从第一匹配流水线开始,按循环次序跳过因先前最长匹配而在所述时钟的所述周期中将不被处理的匹配流水线;当跳过所有所述匹配流水线时,在所述时钟的所述周期内终止处理匹配流水线而不输出命令;当一个或多个匹配流水线未被跳过并且因此仍要处理时,对于按指定次序的下一匹配
流水线,基于所述下一匹配流水线的所述最长匹配的长度来输出命令;以及基于所述下一匹配流水线的所述最长匹配的所述长度在所述时钟的所述周期中处理或跳过剩余的匹配流水线。6.如权利要求5所述的电子装置,其中所述指定次序是以下一者:循环次序;或者基于仍要处理的所述匹配流水线中的每一者的所述最长匹配来确定的次序。7.如权利要求5所述的电子装置,其中当输出所述命令时,所述命令生成器被配置为:当未找到匹配或所述最长匹配短于阈值长度时,输出文字写入命令;以及当所述最长匹配长于所述阈值长度时,输出字符串复制命令。8.如权利要求4所述的电子装置,其中当基于所述子字符串的所述最长匹配来选择性地输出用于所述压缩数据的所述命令时,所述命令生成器被配置为在所述时钟的周期中:获取来自所述时钟的较早周期的计数值,如果有的话,或者将所述计数值设定为零;从第一匹配流水线开始按循环次序跳过每个下一流水线并且使所述计数值递减,直到所述计数值等于零或没有剩余的匹配流水线要被跳过;当没有剩余的匹配流水线要被跳过时,在所述时钟的所述周期内终止输出命令并且在所述时钟的后续周期内保留所述计数值的当前值;以及当所述计数值为零并且一个或多个匹配流水线未被跳过时:当按指定次序的所述下一匹配流水线的最长匹配的长度短于阈值或未找到匹配时,输出用于所述下一匹配流水线的文字写入命令并且将所述计数值设定为零;以及当按所述指定次序的所述下一匹配流水线的所述最长匹配的所述长度长于所述阈值时,输出与所述最长匹配相关联的字符串复制命令并且将所述计数值设定为等于所述最长匹配的以字节为单位的长度减一;以及返回所述跳过操作。9.如权利要求1所述的电子装置,其中:所述搜索字符串包括多个字节,所述多个字节比所述子字符串的以字节为单位的所述指定长度长N

1个字节;并且所述子字符串包括来自所述搜索字符串的每个不同顺序子字符串,其中所述子字符串中的第一子字符串从所述搜索字符串的第一字节开始,并且所述子字符串中的每个下一子字符串从与所述第一字节的以字节为单位的递增地更长的偏移开始。10.如权利要求1所述的电子装置,其中所述压缩子系统还包括:字符串处理程序,所述字符串处理程序被配置为在所述时钟的每个周期中:从所述原始数据获取所述搜索字符串;以及将所述搜索字符串提供到所述比较器。11.如权利要求10所述的电子装置,其中在所述时钟的每个周期中将所述搜索字符串提供到所述比较器之后,所述字符串处理程序被配置为:将数据的N字节移出所述原始数据;以及将所述数据的所述N字节添加到所述历史缓冲器中的所述存储数据。12.如权利要求10所述的电子装置,其中:所述搜索字符串包括来自所述原始数据的从所述原始数据中的起始字节开始的多个
字节:并且在所述时钟的每个周期中将所述搜索字符串提供到所述比较器之后,所述字符串处理程序被配置为:将所述起始字节递增N个字节,从而将所述压缩子系统配置为在...

【专利技术属性】
技术研发人员:维纳伊
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1