数据的无损压缩方法与装置制造方法
【专利摘要】本发明适用于数据压缩【技术领域】,提供了一种数据的无损压缩方法,所述方法包括:接收长度为M位的二进制数据,并进行缓存;将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型;根据所述数据匹配处理结果,选择匹配度最接近的N组匹配类型;从所述N组匹配类型中选择最优的匹配类型,并将该匹配类型及对应该匹配类型的数据在所述内容可寻址存储器的位置输出;根据预设编码规则对数据编码处理。本发明还相应的提供一种数据的无损压缩装置。借此,本发明的无损压缩具有很高的吞吐量,且整体的工作频率可以达到400MHz。
【专利说明】数据的无损压缩方法与装置
【技术领域】
[0001]本发明涉及数据压缩【技术领域】,尤其涉及一种数据的无损压缩方法与装置。
【背景技术】
[0002]数据压缩技术是计算机设备处理应用时必不可缺少的技术之一,通过对数据的压缩可以减小点用空间,并提高传输速度。现有的数据压缩技术包括有损压缩和无损压缩,相对于有损压缩来说,无损压缩的占用空间大,压缩比不高,但是它100%地保存了原始信息,没有任何信号丢失并且音质高,不受信号源的影响。但现有技术的无损压缩又不能满足高速数据通路的吞吐量要求,且硬件结构复杂度比较高。
[0003]综上可知,现有的数据的压缩方法与装置,在实际使用上显然存在不便与缺陷,所以有必要加以改进。
【发明内容】
[0004]针对上述的缺陷,本发明的目的在于提供一种数据的无损压缩方法与装置,其结构简单,可以达到很高的吞吐量及处理速度。
[0005]为了实现上述目的,本发明提供一种数据的无损压缩方法,所述方法包括:
[0006]接收长度为M位的二进制数据,并进行缓存;
[0007]将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型;
[0008]根据所述数据匹配处理结果,选择匹配度最接近的N组匹配类型;
[0009]从所述N组匹配类型中选择最优的匹配类型,并将该匹配类型及对应该匹配类型的数据在所述内容可寻址存储器的位置输出;
[0010]根据预设编码规则对数据编码处理。
[0011]根据本发明的数据的无损压缩方法,所述内容可寻址存储器为宽度为M位;
[0012]所述将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型的步骤包括:
[0013]将所述M位的二进制数据与内容可寻址存储器的数据比较;
[0014]若所述内容可寻址存储器具有与所述M位二进制数据完全匹配的数据,则将该匹配数据移动至所述内容可寻址存储器的顶端,并将所述匹配数据位置之上的数据依次下移;
[0015]若所述内容可寻址存储器不具有与所述M位二进制数据完全匹配的数据,则将所述M位二进制数据插入到内容可寻址存储器的顶端。
[0016]根据本发明的数据的无损压缩方法,所述方法还包括:
[0017]将编码后不足M位的数据,用“O”补足M位后输出。
[0018]根据本发明的数据的无损压缩方法,所述M值为对应4Byte数据的32 ;
[0019]所述匹配类型包括:4Byte数据全匹配、3Byte数据匹配、2Byte数据匹配、IByte数据匹配及无数据匹配,其中,每个匹配的Byte数据位置记1,不匹配的Byte数据位置记O ;[0020]所述4Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型和匹配数据位置按序排列为一个数组;
[0021]所述3Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的IByte数据按序排列为一个数组;
[0022]所述2Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的2Byte数据按序排列为一个数组。
[0023]根据本发明的数据的无损压缩方法,所述方法还包括:对预设组数的数据预编码,若所述预编码结果达到预设可编阈值,则判定该组数据可以编码,否则不对所述该组数据编码。
[0024]本发明还提供一种数据的无损压缩装置,包括
[0025]缓存模块,用于接收到长度为M位的二进制数据时,缓存所述数据;
[0026]匹配处理模块,用于将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型;
[0027]选择模块,用于根据所述数据匹配处理结果,选择匹配度最接近的N组匹配类型;
[0028]输出处理模块,用于从所述N组匹配类型中选择最优的匹配类型,并将该匹配类型及对应该匹配类型的数据在所述内容可寻址存储器的位置输出;
[0029]编码模块,用于根据预设编码规则对数据编码处理。
[0030]根据本发明的数据的无损压缩装置,所述内容可寻址存储器为宽度为M位;
[0031]所述匹配处理模块进一步用于将所述M位的二进制数据与内容可寻址存储器的数据比较;
[0032]若所述内容可寻址存储器具有与所述M位二进制数据完全匹配的数据,则将该匹配数据移动至所述内容可寻址存储器的顶端,并将所述匹配数据位置之上的数据依次下移;
[0033]若所述内容可寻址存储器不具有与所述M位二进制数据完全匹配的数据,则将所述M位二进制数据插入到内容可寻址存储器的顶端。
[0034]根据本发明的数据的无损压缩装置,所述编码模块还用于将编码后不足M位的数据,用“O”补足M位后输出。
[0035]根据本发明的数据的无损压缩装置,所述M值为对应4Byte数据的32 ;
[0036]所述匹配类型包括:4Byte数据全匹配、3Byte数据匹配、2Byte数据匹配、IByte数据匹配及无数据匹配,其中,每个匹配的Byte数据位置记1,不匹配的Byte数据位置记O ;
[0037]所述编码模块对所述4Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型和匹配数据位置按序排列为一个数组;
[0038]所述编码模块对所述3Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的IByte数据按序排列为一个数组;
[0039]所述编码模块对所述2Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的2Byte数据按序排列为一个数组。
[0040]本发明通过压缩装置接收一定长度的二进制数据,并进行缓存,然后将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型,比如全匹配或非全匹配,并根据所述数据匹配处理结果,选择匹配度最接近的N组匹配类型,从所述N组匹配类型中选择最优的匹配类型,最后将该匹配类型及对应该匹配类型的数据在所述内容可寻址存储器的位置输出,编码模根据预设编码规则对输出的数据编码处理。本发明采用上述多级流水处理,具有很高的吞吐量,可以达到1.6GBytes/s,且整体的工作频率可以达到400MHz,大大提高了压缩效率,并简化了硬件结构。
【专利附图】
【附图说明】
[0041]图1是本发明一实施例的无损压缩装置结构示意图;
[0042]图2是本发明另一实施例的无损压缩装置结构示意图;
[0043]图3A是本发明一实施例的无损压缩装置的部分结构示意图;
[0044]图3B是图3A所示实施例的无损压缩装置的另一部分结构示意图;
[0045]图4是本发明一实施例的数据的无损压缩方法流程图。
【具体实施方式】
[0046]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047]本发明是基于CAM (content addressable memory,内容可寻址存储器)算法(又称“字典算法”)的压缩编码,同时为方便实施例描述,本发明定义CAM的宽度为4Byte,即32bit (位),深度为32,即CAM可以保存32个4Byte的数据,每周期输入的数据可以与这32个数据进行比较,找出最优的匹配。需要说明的,CAM的宽度与深度的大小可根据不同的需求设定,其不限于以上数据。
[0048]参见图1和图2,本发明提供了一种数据的无损压缩装置,该装置通过FSM(FiniteState Machine,状态机)接收二进制数据,然后进行缓存压缩处理,该无损压缩装置100具有压缩处理模块101及拼接模块102,所述压缩处理模块101至少包括缓存模块10、匹配处理模块20、选择模块30、输出处理模块40以及编码模块50五级流水线结构,结合图3A,
[0049]缓存模块10,用于接收到长度为M位的二进制数据时,缓存所述数据。该缓存模块10是与外部的接口模块,且M的值为32,即缓存模块10每次接收缓存32bit(4Byte)的二进制数据。
[0050]匹配处理模块20,用于将所述二进制数据与内容可寻址存储器(CAM)的数据匹配处理,获取匹配类型。本发明将IByte数据作为最小比较单元,将输入的4个byte与字典中的数据进行比较,对应位置相同则为匹配,据此将匹配分为三大类:
[0051]Full match:4 个 byte 全匹配;
[0052]Partial match:2 个或 3 个 byte 匹配;
[0053]Miss:1 个或 O 个 byte 匹配;
[0054]每个匹配类型具有对应的码字,具体规则为:每个匹配的Byte数据位置记1,不匹配的Byte数据位置记O。
[0055]具体如下表I所示:
[0056]
【权利要求】
1.一种数据的无损压缩方法,其特征在于,所述方法包括: 接收长度为M位的二进制数据,并进行缓存; 将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型; 根据所述数据匹配处理结果,选择匹配度最接近的N组匹配类型; 从所述N组匹配类型中选择最优的匹配类型,并将该匹配类型及对应该匹配类型的数据在所述内容可寻址存储器的位置输出; 根据预设编码规则对数据编码处理。
2.根据权利要求1所述的数据的无损压缩方法,其特征在于,所述内容可寻址存储器为宽度为M位; 所述将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型的步骤包括: 将所述M位的二进制数据与内容可寻址存储器的数据比较; 若所述内容可寻址存储器具有与所述M位二进制数据完全匹配的数据,则将该匹配数据移动至所述内容可寻址存储器的顶端,并将所述匹配数据位置之上的数据依次下移;若所述内容可寻址存储器不具有与所述M位二进制数据完全匹配的数据,则将所述M位二进制数据插入到内容可寻址存储器的顶端。
3.根据权利要求1所述的数据的无损压缩方法,其特征在于,所述方法还包括: 将编码后不足M位的数据,用“O”补足M位后输出。
4.根据权利要求1所述的数据的无损压缩方法,其特征在于,所述M值为对应4Byte数据的32 ; 所述匹配类型包括:4Byte数据全匹配、3Byte数据匹配、2Byte数据匹配、IByte数据匹配及无数据匹配,其中,每个匹配的Byte数据位置记I,不匹配的Byte数据位置记O ; 所述4Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型和匹配数据位置按序排列为一个数组; 所述3Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的IByte数据按序排列为一个数组; 所述2Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的2Byte数据按序排列为一个数组。
5.根据权利要求1所述的数据的无损压缩方法,其特征在于,所述方法还包括:对预设组数的数据预编码,若所述预编码结果达到预设可编阈值,则判定该组数据可以编码,否则不对所述该组数据编码。
6.一种数据的无损压缩装置,其特征在于,包括 缓存模块,用于接收到长度为M位的二进制数据时,缓存所述数据; 匹配处理模块,用于将所述二进制数据与内容可寻址存储器的数据匹配处理,获取匹配类型; 选择模块,用于根据所述数据匹配处理结果,选择匹配度最接近的N组匹配类型;输出处理模块,用于从所述N组匹配类型中选择最优的匹配类型,并将该匹配类型及对应该匹配类型的数据在所述内容可寻址存储器的位置输出; 编码模块,用于根据预设编码规则对数据编码处理。
7.根据权利要求6所述的数据的无损压缩装置,其特征在于,所述内容可寻址存储器为宽度为M位; 所述匹配处理模块进一步用于将所述M位的二进制数据与内容可寻址存储器的数据比较; 若所述内容可寻址存储器具有与所述M位二进制数据完全匹配的数据,则将该匹配数据移动至所述内容可寻址存储器的顶端,并将所述匹配数据位置之上的数据依次下移; 若所述内容可寻址存储器不具有与所述M位二进制数据完全匹配的数据,则将所述M位二进制数据插入到内容可寻址存储器的顶端。
8.根据权利要求6所述的数据的无损压缩装置,其特征在于,所述装置还包括拼接模块,用于将编码后不足M位的数据,用“O”补足M位后输出。
9.根据权利要求6所述的数据的无损压缩装置,其特征在于,所述M值为对应4Byte数据的32 ; 所述匹配类型包括:4Byte数据全匹配、3Byte数据匹配、2Byte数据匹配、IByte数据匹配及无数据匹配,其中,每个匹配的Byte数据位置记I,不匹配的Byte数据位置记O ; 所述编码模块对所述4Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型和匹配数据位置按序排列为一个数组; 所述编码模块对所述3Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的IByte数据按序排列为一个数组; 所述编码模块对所述2Byte数据全匹配的数据编码规则:将压缩标记位、匹配类型、匹配数据位置以及未匹配的2Byte数据`按序排列为一个数组。
【文档编号】H03M7/30GK103746702SQ201310695309
【公开日】2014年4月23日 申请日期:2013年12月17日 优先权日:2013年12月17日
【发明者】张宇, 李凡 申请人:记忆科技(深圳)有限公司