deflate
http://www.zlib.net/
这是ZIP默认采用的压缩算法。ZIP格式使用非常广泛,不仅有开源的C实现-zlib,还有众多的商业解决方案。因此在游戏中采用deflate,可以大大降低编程的成本。很多国外游戏的档案都采用这种压缩算法,或者直接使用ZIP文件格式存储资源。目前不少国内厂商也开始采用deflate。
默认ZIP使用的deflate,传入的WindowBits是-0xF。而zlib中默认使用的WindowBits是0xF。
采用0xF作为WindowBits时,压缩后的数据的第一个字节往往是0x78,这可以用于识别deflate算法。
另外deflate算法通常都使用了zlib中的实现,在exe中会保留有版权信息:“ deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly ”,或者会带有zlib.dll。

bzip2
http://www.bzip.org/
在游戏中很少见,不过确实有游戏公司采用。
它压缩之后的数据是以BZ开头的。

lzo
http://www.oberhumer.com/opensource/lzo/
lzo是一种解压非常快速的压缩算法,通常开头若干字节不会被压缩。国内有几家公司使用了这种算法。
lzo的版权信息是:
“LZO data compression library.
$Copyright: LZO (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Markus Franz Xaver Johannes Oberhumer
<markus@oberhumer.com>
http://www.oberhumer.com $”

rle
http://www.datacompression.info/RLE.shtml
RLE是一个非常简单的算法,变种非常多。通常用于图像数据的压缩。
较早的游戏一般用RLE算法压缩透明色。
标准的rle算法通常用字节的高2位做标记,因此比较容易识别。

lzss
http://www.datacompression.info/LZSS.shtml
日本人Haruhiko Okumura发明的压缩格式。
这个算法有非常多的变种,在较早的游戏中比较常见。
仙剑1就采用了这种压缩算法的变种,它对压缩之后的数据做了huffman编码。
标准的LZSS算法采用单独的字节存储标记,所以通常数据的开头若干字节也是不会被压缩的。

lzhuf
日本人Haruyasu Yoshizaki发明的压缩格式,使用了huffman编码。
相比lzss更复杂一些,在早期的游戏中也比较常见。

最后贴一篇压缩算法的历史回顾
http://oku.edu.mie-u.ac.jp/~okumura/compression/history.html

RPGViewer - 游戏常用压缩算法的介绍和识别相关推荐

  1. 常用电子书文件格式介绍

    常用电子书文件格式介绍 http://ebook.18shouji.com/ old_西勾月 西勾月 论坛元老 发短消息 加为好友 当前离线 1# 大 中 小 发表于 2007-11-15 17:35 ...

  2. 游戏AI之初步介绍(0)

    目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...

  3. Java新手看招 常用开发工具介绍

    Java新手看招 常用开发工具介绍 Java的应用越来越广泛,学习Java的人也越来越多.学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic.Visual Basic等开发工具:使 ...

  4. python第三方库下载-python常用第三方库介绍及下载

    GUI 1.wxpython(2.9.2.4--python2.6/2.7) Python下的GUI编程框架,与MFC的架构相似 2.PyQt(4.86--python2.5~3.2) 用于Pytho ...

  5. [转]常用OCR软件介绍

    转载出处:http://blog.csdn.net/zhulinu/article/details/9095585 常用OCR软件介绍 1.ABBYY ***ABBYY FineReader 简介:驰 ...

  6. Maven实战——常用Maven插件介绍

    http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任 ...

  7. 常用Maven插件介绍(下)(转)

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  8. webAppbuilder微件使用教程2 常用微件介绍

    webAppbuilder微件使用教程 --常用微件介绍 by 李远祥 上一章介绍了webappbuilder微件的一些基础操作,这一张主要是介绍一些常用微件的使用试用和配置方法. 微件的主要作用按照 ...

  9. 股票软件破解常用破解工具介绍

    股票软件破解常用破解工具介绍 2010年07月03日 2010-06-23 10:14 [b]破解离不开工具,合适的工具使你事半功倍,这个世界没有人永远救你!只有靠自己,靠别人永远是别人奴隶,不想成为 ...

  10. C# Winform 常用控件介绍

    1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2) WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: N ...

最新文章

  1. 2022-2028年中国城市地下综合管廊建设深度调研及投资前景预测报告
  2. 汽车车灯灯具系统(上)
  3. Python库glob学习笔记
  4. eclipse中jboss启动时50s错误提示
  5. python的none是什么-python中的none类型
  6. VTK:Filtering之AppendFilter
  7. 项目背景怎么描述_产品经理写简历,如何让「项目经验」更出众?
  8. 【MFC系列-第32天】控件自绘技术
  9. python 闭包_Python中的闭包
  10. 使用Bazel编译报错ERROR: Unrecognized option: --experimental_repo_remote_exec解决方法
  11. 【报告分享】2020年上半年中国直播电商行业发展分析报告.pdf(附下载链接)...
  12. python飞机大战游戏高级_05.python实现飞机大战游戏
  13. HDU1715 大菲波数【大数】
  14. Cordova for iOS
  15. Visual Studio报错:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值...
  16. Maven下载安装与配置IDEA
  17. 基本计算机编程术语,计算机编程术语,你记住了吗?
  18. 基于MATLAB的手机定位精度评估算法的仿真
  19. 万花筒の图片服务 动静分离
  20. 裸金属服务器能虚拟化吗,市场需求多样化,裸金属服务器如何“吃得开”?

热门文章

  1. 【Audio】WAV音频文件格式结构解析
  2. umijs有什么好处_umijs核心代码解读
  3. 一款很好用的软还原卡
  4. 日本铁路“猫站长”走红
  5. 九、 Excel二维码制作和插件推荐
  6. 一元线性回归:Excel、SPSS、Matlab三种方法实现
  7. 如何做到项目准时交付之需求管理
  8. c语言:数组倒序输出
  9. C语言实现方程组LU分解法和列主元LU分解法
  10. 智能优化算法:基于Powell优化的鸽群优化算法