1. LZO 算法是什么
LZO 于 1996 年由 Markus 发明,该算法的目标是快速的压缩和解压缩。它允许调整压缩级别,并且在最高级别下仍仅需 64KB 额外的内存空间,同时解压缩仅需要输入和输出的空间。LZO 功能上非常类似 LZSS,不过是为了速度,而非压缩比做的优化。
LZO库实现了许多有下述特点的算法:
- 解压简单,速度非常快。
- 解压不需要内存。
- 压缩相当地快。
- 压缩需要64 kB的内存。
- 允许在压缩部分以损失压缩速度为代价提高压缩率,解压速度不会降低。
- 包括生成预先压缩数据的压缩级别,这样可以得到相当有竞争力的压缩比。
- 另外还有一个只需要8 kB内存的压缩级别。
- 算法是线程安全的。
- 算法是无损的。
2. 编解码器的编写
先放一个 LZO 的首页 => http://www.oberhumer.com/opensource/lzo/
在里面可以下载到 LZO 库的 源码与示例程序 。
LZO 库是 GPL-2.0 协议 的,使用它的软件必须开放源代码,具体可以看 这篇文章 。
可以看到,源码的目录如下:
lzo-2.10 # 我下载的是 2.10 版本
├─asm
├─autoconf
├─B # 包含了 DOS、windows 等系统的支持
├─doc
├─examples # 示例程序代码
├─include # 公共头文件
├─lzotest
├─minilzo # LZO 的一个轻量子集
├─src # LZO 源码
├─tests
└─util
上面没有注释的呢……我自然是没看……<