数据压缩算法LZO (C#)
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/
c#:http://lzohelper.codeplex.com/
- 基于Wolfpack开发业务监控系统
- Android 2.x中使用actionbar - Actionbarsherlock
- Python-操作Memcache、Redis、RabbitMQ、
- 推荐[搜索引擎架构]的几篇文章
- 中小型商城系统中的分类/产品属性/扩展属性的数据库设计
- Linux下FTP虚拟账号环境部署总结
- Replace方法与正则表达式的性能比较
- 由索引节点(inode)爆满引发的问题
- As3.0中的位图(Bitmap/BitmapData)编程
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)--负载均衡marathon-lb
- Docker集群管理工具-Kubernetes部署记录
- AS3:小游戏“贪吃蛇”的实现
- 超实用的8个Linux命令行性能监测工具
- 用javascript替换URL中的参数值
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用ant执行Java代码
- TypeScript 类型注解和类型推断
- 目前解决移动端1px边框最好的方法
- 关于php的引用
- Windows 开机自启 VMware 虚拟机
- Alertmanager 安装与使用
- typedef用法
- LaTex中插入大括号的多行公式
- Latex公式编辑和子公式编辑
- nginx rewrite 跨域
- Oracle删除索引规范
- mysql中走与不走索引的情况汇集(待全量实验)
- C#标准事件流
- 【STM32F407开发板用户手册】第25章 STM32F407的TIM定时器基础知识和HAL库API
- 【STM32F429开发板用户手册】第25章 STM32F429的TIM定时器基础知识和HAL库API