LZO致力于解压速度的一种数据压缩算法

简介:

 

LZO 是致力于解压速度的一种数据压缩算法,LZO 是 Lempel-Ziv-Oberhumer 的缩写。这个算法是无损算法,参考实现程序是线程安全的。

 

实现它的一个自由软件工具是lzop。最初的库是用 ANSI C 编写、并且遵从 GNU通用公共许可证发布的。现在 LZO 有用于 Perl、Python 以及 Java 的各种版本。代码版权的所有者是 Markus F. X. J. Oberhumer。

LZO 库实现了许多有下述特点的算法:

* 解压简单,速度非常快。
* 解压不需要内存。
* 压缩相当地快。
* 压缩需要 64 kB 的内存。
* 允许在压缩部分以损失压缩速度为代价提高压缩率,解压速度不会降低。
* 包括生成预先压缩数据的压缩级别,这样可以得到相当有竞争力的压缩比。
* 另外还有一个只需要 8 kB 内存的压缩级别。
* 算法是线程安全的。
* 算法是无损的。

LZO 支持重复压缩以及原地解压。

LZO 是块压缩算法——压缩解压成块的数据。压缩与解压所用块的大小必须一样。

LZO 将数据块压缩成匹配数据(滑动字典)与非匹配文字的序列。LZO 对于较长的匹配数据以及较长的非匹配文字序列有专门的处理,这样对于高度冗余的数据能够取得很好的效果,并且对于不可压缩的数据也能得到可以接受的效果。

当处理不可压缩数据的时候,LZO 将每个 1024 字节的输入数据块扩展 16 字节。

据报道 LZO 也在 AIX、 ConvexOS、IRIX、Mac OS、Palm OS、 PS1(PlayStation)、Solaris、SunOS、TOS (Atari ST) 以及 VxWorks 上得到实现。

 

参考文献:

http://zh.wikipedia.org/wiki/LZO

 

源码地址:

C: http://www.oberhumer.com/opensource/lzo/

java:http://code.google.com/p/java-compress/



     本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/818185,如需转载请自行联系原作者



相关文章
|
1月前
|
存储 编解码 自然语言处理
【软件设计师备考 专题 】深入理解数据压缩、递归和图的相关算法
【软件设计师备考 专题 】深入理解数据压缩、递归和图的相关算法
64 0
|
2月前
|
存储 算法 机器人
基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真
基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真
|
8月前
|
存储 算法 Unix
压缩算法丨为什么600GB的vcf文件压缩后只剩16GB?数据压缩的原理和方法详解
压缩算法丨为什么600GB的vcf文件压缩后只剩16GB?数据压缩的原理和方法详解
|
存储 算法 程序员
bitmap算法的PHP实现,快速去重排序,数据压缩储存
因为电路的逻辑只有0和1两个状态,这里的0和1并不是数字的0和1,0和1是表示两种不同的状态,0表示低电平,1表示高电平。因为计算机是由无数个逻辑电路组成的,只能根据0和1的无限位数和组合来表达信息。 电脑只认识0和1这两个数字,所有的数据在电脑中都是以0和1组成的编码存储的,这样的编码叫做二进制。一个0或一个1就叫做一个位 最初的计算机性能和存储容量都比较差,所以普遍采用4位BCD编码(这个编码出现比计算机还早,最早是用在打孔卡上的)。
319 0
|
算法 Java C++
数据压缩算法的介绍-Java实现-对比
在RPC通信数据的传输场景下,当通信报文数据传输较大时,会对数据包进行压缩传输,根据不同传输场景,常用的压缩算法有Zlib、Gzip、Bzip2、Deflater、Lz4、Lzo、Snappy算法等。以下将包括算法的介绍、Java实现代码以及各算法间的模拟性能对比。
数据压缩算法的介绍-Java实现-对比
Foo
|
存储 编解码 监控
|
算法 物联网 关系型数据库
旋转门数据压缩算法在PostgreSQL中的实现 - 流式压缩在物联网、监控、传感器等场景的应用
背景 在物联网、监控、传感器、金融等应用领域,数据在时间维度上流式的产生,而且数据量非常庞大。 例如我们经常看到的性能监控视图,就是很多点在时间维度上描绘的曲线。 又比如金融行业的走势数据等等。 我们想象一下,如果每个传感器或指标每100毫秒产生1个点,一天就是864000个点。
15562 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。