zoukankan      html  css  js  c++  java
  • lzma 知识点滴

    版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/xuweiwei1860/article/details/31419195

    LZMA(Lempel-Ziv-Markov chain-Algorithm的缩写)是2001年以来得到发展的一个数据压缩算法。它用于7-Zip归档工具中的7z格式。它使用相似于LZ77的字典编码机制,在一般的情況下压缩率比bzip2高,用于压缩的字典档案大小可达4GB。

    对照集中压缩:


    耗用时间 bzip >lzma2>lzma>gzip

    压缩率 lzma2>bzip>gzip>lzma

    最后压缩结果是 lzma的文件最小 ,果然改进版的算法有优势。


    这里要看一下lzma的文件头信息

    看的方法能够直接用二进制工具打开.lzma文件 ,更方便的方法是ubuntu中已经集成了lzma的查看工具 ,利用命令行

    lzmainfo   XXX.lzma

    就能够看到文件头信息了:



    duobao@ubuntu:~/tmp$ lzmainfo a.lzma

    a.lzma
    Uncompressed size:             0 MB (20644 bytes)
    Dictionary size:               8 MB (2^23 bytes)
    Literal context bits (lc):     3
    Literal pos bits (lp):         0
    Number of pos bits (pb):       2

    这里就看到了文件头打印出来的信息  ,在对照一下文件的二进制信息

    00h:5d 00 00 80 00 22 01 00 00 00 00 00 00 00 26 16

    10h:85 bc .....

    主要就是签名这一段。这里摘录一段lzma的specification

    The lzma file format layout:

    Offset Size Description

      0     1   LZMA model properties (lc, lp, pb) in encoded form
      1     4   Dictionary size (32-bit unsigned integer, little-endian)
      5     8   Uncompressed size (64-bit unsigned integer, little-endian)
     13         Compressed data (LZMA stream)

    LZMA properties:

        name  Range          Description

          lc  [0, 8]         the number of "literal context" bits
          lp  [0, 4]         the number of "literal pos" bits
          pb  [0, 4]         the number of "pos" bits
    dictSize  [0, 2^32 - 1]  the dictionary size

    这里就是介绍清楚了,其它不封都应该能看懂,比如8M的Dictionary size  就在1-5这四个字节 00 00 80 00

    有一个lc  lp pb   这个要说明一下。

      p->lc = d % 9;
      d /= 9;
      p->pb = d / 5;
      p->lp = d % 5;

    这里能够看出   在第一个字节也就是5D里面包括的信息 lc pb lp 是以十进制方式存放的 ,有兴趣自己算一算就能明确了



查看全文
  • 相关阅读:
    [IOS]《A Swift Tour》翻译(一)
    Android Property Animation动画
    [Android]AndroidBucket增加碎片SubLayout功能及AISubLayout的注解支持
    使用spin.js优化等待ajax返回时的页面效果
    用adb命令组装PowerShell实用小工具——Android测试小助手
    测试团队专业化建设规范建议与素质养成指南
    用Python脚本在豆瓣音乐人小站上下载未开放下载的歌曲
    Java调用Python脚本工具类
    Python爬网——获取安卓手机统计数据
    JIRA REST java client API实际应用
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10875212.html
  • Copyright © 2011-2022 走看看