嵌入式设备文件系统数据的快速无损压缩方法技术方案

技术编号:11091290 阅读:127 留言:0更新日期:2015-02-26 20:11
本发明专利技术公开了一种数据处理技术领域嵌入式设备文件系统数据的快速无损压缩方法,主要解决现有的压缩方法对文件系统数据压缩速度低的问题,其实现步骤是:1.读取文件系统数据及其长度;2.将没有记录在字典中的所读数据判定为新数据,并把该新数据位置记录在字典中,继续读取文件系统数据,直到未出现新数据为止;3.对已记录在字典中的所读数据根据字符重复长度、新字符长度和偏移距离的特征进行编码;4.判断是否压缩到数据结尾,若是则输出压缩后的数据及其长度,否则继续读取新数据并返回步骤2。本发具有压缩和解压缩速度更快的优点,可用于提高存储受限的嵌入式设备中文件系统数据的存取速率,改善设备的运行效率。

【技术实现步骤摘要】
嵌入式设备文件系统数据的快速无损压缩方法
本专利技术属于数据处理
,涉及嵌入式设备文件系统的数据压缩方法,可应用于存储受限的嵌入式设备中。
技术介绍
近些年来,随着移动互联网的发展,嵌入式设备如手机、平板已经成为人们必备的一种通信工具。文件系统对于嵌入式设备来说是一个不可缺的部分,它允许用户上载和存储文件并提供对数据的访问。然而由于嵌入式设备的存储受限,如果能对其文件系统数据进行压缩,节省存储空间,则可以提高设备的整体性能。现代社会信息量的不断增长,人们对嵌入式设备的系统性能也提出了更高的要求,如更高的速度、更低的耗能、更小的体积、能存取更多的信息等等。为了达到上面的各种性能要求,人们提出了各种改进的方法。其中,比较廉价的改进方法之一是无损数据压缩技术。如若在嵌入式设备中运用无损数据压缩技术,则在文件系统数据存储空间更小,传输中占用更小的带宽,也可以降低频繁的物理磁盘与CPU之间的I/O读取,从而延长了存储设备的寿命和节省能耗。鉴于上述技术的各种优点,运用这种简单而廉价的改进嵌入式系统性能的技术,研究无损数据压缩技术是很有必要的。以色列学者Lempel和Ziv于1977年提出了一种高效率的无损压缩编码技术,即LZ77压缩算法,该压缩算法的主要原理是利用较短的标记代替前面出现过的重复字符串,标记格式为重复长度和偏移距离,如abcdekabcdeha,则可以编码成abcdek(5,6)ha表示,这样从整体上而言,较短的信息代替较长的信息,从而达到了压缩的效果。1982年,JamesStorer和ThomasSzymanski在LZ77基础上将算法进行改进提出了LZSS算法,提高了压缩效率。后来Lempel-Ziv-Oberhumer又在LZSS的基础上将算法进行改进提出了LZO算法,极大地提高了压缩编码速度。LZO算法是一种基于字典的无损数据压缩算法,具有压缩速度快、即时性的特点。该算法根据不同的重复长度和偏移距离设计了设计了五种数据压缩格式,编码端按照重复长度和偏移距离的匹配对的特征选择某一种压缩格式编码,解码端通过压缩格式的首字节大小区分这五种不同的格式,最大的偏移距离可以达到48K。该方法存在的不足之处是,目前32位系统是计算机的主流系统,考虑数据存储对齐因素的影响,文件系统绝大多数是以4字节为单位访问数据,而LZO算法是以单字节为单位并不是完全适合压缩文件系统数据,这将花费更多的时间;LZO初始设计目的是压缩长度不定的数据,而对于16K大小的文件系统页面数据,LZO的压缩格式并不适用。
技术实现思路
本专利技术的目的在于针对上述已有技术的不足,提出一种嵌入式设备文件系统数据的快速无损压缩方法,以更快速的压缩与解压缩文件系统页面数据,减少文件系统页面数据存取的延迟。实现本专利技术的技术方案是:根据文件系统页面数据的特征,设计一种新的哈希函数和适合文件系统页面数据的压缩格式,针对文件系统页面数据进行压缩编码,具体步骤如下:(1)读取嵌入式设备中的文件系统数据与文件系统数据的长度;(2)判断所读数据是否为新数据,若所读数据没有记录在字典中,则判断为新数据,并把新数据位置记入字典中,继续读取文件系统数据,直到未出现新数据为止;若所读数据已记录在字典中,则对所读数据进行如下压缩编码:2a)对于字符重复长度和新字符长度均小于8,且偏移距离小于1K的文件系统数据,首字节依次记录字符重复长度L1、新字符长度L2和偏移距离D的高位比特,从第二个字节开始依次记录新字符C和偏移距离D的低位比特;2b)对于字符重复长度或新字符长度大于8,且偏移距离大于等于1K小于4K的文件系统数据,首字节依次记录压缩格式标志T、字符重复长度L1和偏移距离D高位比特,从第二个字节开始依次记录新字符长度L2、新字符C和偏移距离D低位比特;2c)对于字符重复长度或新字符长度大于8,且偏移距离大于等于4K的文件系统数据,首字节依次记录压缩格式标志T、字符重复长度L1和偏移距离D高位比特,从第二个字节开始依次记录新字符长度L2、新字符C和偏移距离D低位比特;(3)判断所读数据是否压缩编码至结尾,若是,则输出压缩编码后的数据和数据长度,并记录结束标志,否则返回步骤(2)。本专利技术与现有技术相比,具有如下优点:与目前的LZO无损压缩算法相比,本专利技术所采用的新压缩格式设计简单,对文件系统页面数据的压缩与解压缩速度较快,同时压缩效率损失很小,可以较大幅提高嵌入式设备的运行效率。测试结果表明:本专利技术的压缩时间提高了26%,解压缩时间提高了36%。附图说明图1是本专利技术的压缩流程图;图2是本专利技术中的压缩格式图。具体实施方式下面结合图对本专利技术作进一步详细描述:参照图1,本专利技术的实现步骤如下:步骤1:从输入文件系统数据块中读取四个字符,通过哈希运算计算得到关键值。用读取四个字符中的前两个字符做异或操作,得到第一新字节A1,用后两个字符做异或操作得到第二新字节A2;用第一新字节A1的低位2比特与第二新字节A2的高位2比特做异或操作,得到14比特的关键值。步骤2:对所读字符位置进行合法性判断。设置当前字符地址不能超出文件系统数据块的地址边界;将所读字符位置没有超出文件系统数据块的地址边界判定为合法,若所读字符位置合法,进入步骤3,若不合法,则判定为新字符C,并更新哈希表,即把新字符的地址记录在哈希表中,返回步骤1。步骤3:判断哈希表所存位置中的字符是否与读入字符相同,若相同,进入步骤6,若不相同,进入步骤4。所述的哈希表所存位置,是指根据关键值直接访问哈希表而得到的一个位置。步骤4:对读取的四个字符做第二次哈希运算,判断所读字符位置是否合法,若合法进入步骤5,若不合法,则判定为新字符C,并更新哈希表,返回步骤1。步骤5:判断哈希表所存位置中的字符是否与读入字符相同,若相同进入步骤6,若不相同,则判定为新字符C,并更新哈希表,返回步骤1。步骤6:计算字符重复长度L1、新字符长度L2和偏移距离D,进入步骤7;该计算方法与目前的LZO无损压缩方法中的计算方法相同。步骤7:判断字符重复长度L1和新字符长度L2是否都小于8,且偏移距离D是否小于1K,若不是,进入步骤8;若是,执行步骤8。步骤8:对字符重复长度L1、新字符长度L2、新字符C和偏移距离D进行编码。参照图2(a),本步骤的具体实现如下:(8.1)用首字节的前3个比特记录字符重复长度L1,用首字节的第4、5、6个比特记录新字符长度L2;(8.2)从第二个字节开始记录新字符C;(8.3)新字符C记录完成之后,用首字节的后2个比特和下一个字节共同记录偏移距离D。步骤9:判断偏移距离D是否大于等于4K,若不是,执行步骤10,若是,执行步骤11。步骤10:对压缩格式标志T、字符重复长度L1、新字符长度L2、新字符C和偏移距离D进行编码。参照图2(b),本步骤的具体实现如下:(10.1)用首字节的前2个比特分别记录1和0,作为压缩格式标志T;(10.2)判断新字符长度L2是否小于63,若是,则用第二个字节的前6个比特记录新字符长度L2;若不是,则用第二个字节的前6个比特记录为63作为标志,然后再判断新字符长度L2是否大于255,若是,则记录一个字节0,同时新字符长度L2减255,直到剩余新字符长度小于255,最后记录剩余的新字本文档来自技高网
...
嵌入式设备文件系统数据的快速无损压缩方法

【技术保护点】
一种嵌入式设备文件系统数据的快速无损压缩方法,包括如下步骤:(1)读取嵌入式设备中的文件系统数据与文件系统数据的长度;(2)判断所读数据是否为新数据,若所读数据没有记录在字典中,则判断为新数据,并把新数据位置记入字典中,继续读取文件系统数据,直到未出现新数据为止;若所读数据已记录在字典中,则对所读数据进行如下压缩编码:2a)对于字符重复长度和新字符长度均小于8,且偏移距离小于1K的文件系统数据,首字节依次记录字符重复长度L1、新字符长度L2和偏移距离D的高位比特,从第二个字节开始依次记录新字符C和偏移距离D低位比特;2b)对于字符重复长度或新字符长度大于8,且偏移距离大于等于1K小于4K的文件系统数据,首字节依次记录压缩格式标志T、字符重复长度L1和偏移距离D高位比特,从第二个字节开始依次记录新字符长度L2、新字符C和偏移距离D低位比特;2c)对于字符重复长度或新字符长度大于8,且偏移距离大于等于4K的文件系统数据,首字节依次记录压缩格式标志T、字符重复长度L1和偏移距离D高位比特,从第二个字节开始依次记录新字符长度L2、新字符C和偏移距离D低位比特;(3)判断所读数据是否压缩编码至结尾,若是,则输出压缩编码后的数据和数据长度,并记录结束标志,否则返回步骤(2)。...

【技术特征摘要】
1.一种嵌入式设备文件系统数据的快速无损压缩方法,包括如下步骤:(1)读取嵌入式设备中的文件系统数据与文件系统数据的长度;(2)判断所读数据是否为新数据,若所读数据没有记录在字典中,则判断为新数据,并把新数据位置记入字典中,继续读取文件系统数据,直到未出现新数据为止;若所读数据已记录在字典中,则对所读数据进行如下压缩编码:2a)对于字符重复长度和新字符长度均小于8,且偏移距离小于1K的文件系统数据,首字节依次记录字符重复长度L1、新字符长度L2和偏移距离D高位比特,从第二个字节开始依次记录新字符C和偏移距离D低位比特;2b)对于字符重复长度或新字符长度大于8,且偏移距离大于等于1K小于4K的文件系统数据,首字节依次记录压缩格式标志T、字符重复长度L1和偏移距离D高位比特,从第二个字节开始依次记录新字符长度L2、新字符C和偏移距离D低位比特;2c)对于字符重复长度或新字符长度大于8,且偏移距离大于等于4K的文件系统数据,首字节依次记录压缩格式标志T、字符重复长度L1和偏移距离D高位比特,从第二个字节开始依次记录新字符长度L2、新字符C和偏移距离D低位比特;(3)判断所读数据是否压缩编码至结尾,若是,则输出压缩编码后的数据和数据长度,并记录结束标志,否则返回步骤(2)。2.根据权利要求1所述的嵌入式设备文件系统数据的快速无损压缩方法,其特征在于:所述步骤(2)中的字典,是根据关键值直接访问的哈希表结构,关键值是通过哈希函数计算得出,哈希函数的设计为:从输入文件系统数据中读入四个字节,用前两个字节做异或操作得到新字节A1,用后两个字节做异或操作得到新字节A2,用字节A1的低位2比特与字节A2的高位2比特做异或操作得到14比特的关键值。3.根据权利要求1所述的嵌入式设备文件系统数据的快速无损压缩方法,其特征在于:步骤2a)所述的首字节依次记录字符重复长度L1、新字符长度L2和偏移距离D高位比特,从第二个字节开始依次记录新字符C和偏移距离D低位比特,按如下规则记录:(2a1)首字节的前3比特记录重复字符长度L1,第4、5、6比特记录新字符长度L2;(2a2)从第...

【专利技术属性】
技术研发人员:田方宋彬裴远李慧玲
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

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

1