[发明专利]基于字典与游长编码的移动设备内存压缩方法有效
| 申请号: | 201310169650.4 | 申请日: | 2013-05-09 |
| 公开(公告)号: | CN103258030A | 公开(公告)日: | 2013-08-21 |
| 发明(设计)人: | 宋彬;陈浩;宋秉玺;童碧峰;郭洁;刘烨 | 申请(专利权)人: | 西安电子科技大学;三星电子(中国)研发中心 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;H03M7/30 |
| 代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;朱红星 |
| 地址: | 710071*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 字典 编码 移动 设备 内存 压缩 方法 | ||
技术领域
本发明属于数据处理技术领域,涉及设备内存的数据压缩装置,可用在内存受限的嵌入式移动设备中。
背景技术
近年来,随着移动互联网的发展,移动设备越来越成为人们不可或缺的一种日常生活用品,由于移动设备的内存受限,就要求最好能对其内存数据进行压缩,节约内存空间,提高设备的整体性能。现代社会信息量的不断增长,人们对计算机系统的性能也提出了更高的要求,如更高的速度、更低的耗能、更小的体积、能存取更多的信息等等。为了达到上面的各种性能要求,人们提出了各种改进的方法。其中,比较廉价的改进方法之一是数据压缩技术。如若在计算机系统中运用了数据压缩技术,则在数据传输中占用了更小的带宽;在小的移动设备如手机,MP4等电子设备占用的存储空间更小;也可以降低频繁的物理磁盘或闪存与CPU之间的I/O读取,从而延长了存储设备的寿命和节省能耗。鉴于上述技术的各种优点,运用这种简单而廉价的改进计算机系统性能的技术,研究数据压缩技术是很有必要的。
用于移动设备内存数据的压缩算法,要求方法高效,解压缩速度快,适用于内存数据的特点等一系列要求。目前,数据无损压缩方法有很多,而解压缩速度很快,可以达到实时解压缩内存数据的主要有LZO(Lempel-Ziv-Oberhumer)和RLE(run-length encoding)两种。
LZO是一种基于字典的数据无损压缩算法,主要通过记录重复字符段的重复位置和重复长度来完成编码。LZO压缩与解压缩速度相当快,而且解压简单,不需要另外开辟内存,可以满足嵌入式设备需要快速解压数据的要求。LZO方法虽然具有解压缩快速等优点,但是它并不完全适用于内存数据的压缩,在压缩长的连续相同字符串时,LZO需要较多的字符去记录数据,因此压缩率不高。
游长编码RLE,又称变动长度编码法,是一种简单的非破坏性资料压缩法,其好处是压缩和解压缩都非常快,特别是对于压缩长的连续相同字符串,相比于LZO,其可以用更少的字符去记录,但在普通数据的压缩上,其效果并不如LZO。
发明内容
本发明目的在于克服已有的字典编码与游长编码压缩方法对内存数据压缩率低的缺点,在基本保证其压缩和解压缩速度的前提下,结合两者各自的优点,提出一种基于字典与游长编码的内存压缩方法,以提高整体的压缩率。
实现本发明的基本思想是:根据要压缩的内存数据特点选择字典压缩格式或游长编码压缩格式,用字典编码方法压缩一般重复字符串,用游长编码压缩长的连续相同字符串,并针对长的连续相同字符串设计游长编码的压缩格式。其具体实现步骤包括如下:
(1)读取移动设备中的内存数据与内存数据的长度;
(2)判断所读数据是否为新数据,若所读数据没有记录在哈希表中,则判为新数据,并把该新数据计入哈希表中,继续读取内存数据,直到未出现新数据为止,执行步骤(3)对所读数据直接进行压缩编码;
(3)根据内存数据形式确定编码方式:
3a)对于长度长于4的重复相同字符串,将其长度先与数值255比较,再进行压缩:
如果该字符串的长度小于255,将第一个字节记录为标志位,将第二个字节直接记录重复的长度;
如果该字符串的长度大于等于255,将第一个字节记录为标志位,将第二个字节记录为0,将第三个字节记录为255的整倍数,将第四个字节记录为除去255的整数倍剩余的字符串的长度;
3b)对于普通的重复字符串,即除了长度长于4的重复相同字符串以外的其他重复字符串,则用字典编码;
(4)判断是否编到内存数据结尾,若是,则输出压缩后数据和压缩后数据的长度,并记下结束标志,否则,返回步骤(2),继续读入新数据。
本发明与现有的其他的内存压缩方法相比,由于其能对重复相同字符串用更少的字节去压缩,所以压缩率比其他方法更高,进而能为移动设备内存释放出更多的剩余空间,提高了移动设备的运行效率。
附图说明
图1是本发明的流程图;
图2是本发明中的新字符记录子流程图;
图3是本发明中的压缩编码子流程图。
具体实施方式
下面结合附图1对本发明作进一步详细描述:
步骤一:读入内存数据长度,按内存数据的长度开辟存储空间,将移动设备的内存数据读入所开辟的存储空间,再为哈希表开辟存储空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学;三星电子(中国)研发中心,未经西安电子科技大学;三星电子(中国)研发中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310169650.4/2.html,转载请声明来源钻瓜专利网。





