工程师 - LZO压缩算法

https://www.lzop.org/

源码:

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

LZO real-time data compression library download | SourceForge.net

Abstract

lzop 使用 LZO 数据压缩库提供压缩服务,与 gzip 相比,它的主要优势在于更高的压缩和解压缩速度(以一定的压缩比为代价)。

lzop is a file compressor which is very similar to gzip. lzop uses the LZO data compression library for compression services, and its main advantages over gzip are much higher compression and decompression speed (at the cost of some compression ratio).

lzop 是根据 GNU 通用公共许可证(GPL)条款发布的开放源码软件,版权所有。

lzop is copyrighted OpenSource software distributed under the terms of the GNU General Public License (GPL).

介绍

LZO是致力于解压速度的一种数据压缩算法,LZO是Lempel-Ziv-Oberhumer的缩写。 源自Lempel-Ziv(LZ)系列算法,主要用于文件压缩。它基于Lempel-Ziv算法中的LZ77变体。这个算法是无损算法,参考实现程序是线程安全的。 实现它的一个自由软件工具是lzop。

最初的库是用ANSI C编写、并且遵从GNU通用公共许可证发布的。现在LZO有用于Perl、Python以及Java的各种版本。代码版权的所有者是Markus F. X. J. Oberhumer,1996年发布最初版。

使用LZO的最大好处,是速度优势,在某些使用情形下,压缩比率相差不大,但性能很重要时,比如解压时间影响很大时,LZO是个不错的选择。所以我们在一些嵌入式Linux设备中,会发现都包含了LZO这个package,会被一些功能或其他包所引用或使用。或者在Linux中要安装LZOP组件,在ubuntu中命令是:sudo apt install lzop。

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

* 解压简单,速度非常快。

* 压缩相当地快。

* 允许在压缩部分以损失压缩速度为代价提高压缩率,解压速度不会降低。

* 包括生成预先压缩数据的压缩级别,这样可以得到相当有竞争力的压缩比。

* 算法是线程安全的。

* 算法是无损的。

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

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

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

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

* 基本原理:

    * LZ77算法:LZ77通过查找文件中重复出现的字符串来进行压缩。它使用一个滑动窗口技术,查找匹配的字符串并用指针替代重复的内容,从而减少数据量。

    * LZOP的扩展:LZOP基于LZ77的思想,但在实现上进行了优化和扩展,以提高压缩和解压缩的效率。

* 特点:

    * 高效压缩:LZOP通常能提供较高的压缩比,尤其适用于重复数据较多的场景。

    * 快速解压:LZOP在解压缩过程中表现出较高的速度,使得在需要快速访问压缩数据的应用场景中非常有用。

    * 简单实现:LZOP的算法实现相对简单,易于理解和集成到各种系统中。

* 应用场景:

    * 文件压缩:LZOP常用于文件系统、数据存储和传输中的文件压缩。

    * 软件包:一些软件包和数据档案格式使用LZOP来减少文件大小,提高传输和存储效率。

Features

lzop 是目前速度最快的压缩器和解压程序之一。详情请参阅著名的存档比较测试。

在现代系统中,当备份百万兆字节的数据时,lzop通常是IO绑定而非CPU绑定的,这意味着你既能减少存储需求,又能有效缩短备份时间。

lzop 的设计目标如下:

* 速度(压缩和解压缩速度)

* 与 gzip 兼容

* 可移植性

一般功能和行为都非常接近 gzip。lzop 与 gzip 的主要区别在于

* 经 lzop 压缩的文件后缀为 `.lzo

* lzop 默认不删除输入文件。

lzop is one of the fastest compressor and decompressor around. See the well-known Archive Comparison Test for details.

On modern systems, when making backups of terrabyte of data, lzop is usually IO-bound and not CPU-bound, which means that you can both decrease storage requirements and effectively reduce backup time by quite an amount.

lzop was designed with the following goals in mind:

* speed (both compression and decompression)

* reasonable drop-in compatibility to gzip

* portability

General functionality and behaviour has been modelled very closely after gzip. The main differences between lzop and gzip are:

* files compressed by lzop will have the suffix `.lzo'

* lzop does not delete the input file(s) by default.

压缩软件对比

http://compression.great-site.net/act/act-summary.html?i=1

参考:

https://zh.m.wikipedia.org/zh-hans/LZO

扩展阅读:

https://gist.github.com/cellularmitosis/7b2bc60f1ca20913732fbb530cf30668

https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Oberhumer

https://web.archive.org/web/20120625020414/http://www.lzop.de/

https://web.archive.org/web/20120619032652/http://www.linuxjournal.com/node/8051/print

https://snapcraft.io/blog/why-lzo-was-chosen-as-the-new-compression-method

NCBI C++ Toolkit Book

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值