当前位置: 首页 > 软件库 > 程序开发 > 数学计算 >

LZFSE

Apple开源的压缩算法
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 数学计算
软件类型 开源软件
地区 不详
投 递 者 宇文元明
操作系统 跨平台
开源组织 Apple
适用人群 未知
 软件概览

苹果开源了新的无损压缩算法LZFSE,该算法是去年在iOS 9和OS X 10.10中引入的。按照苹果公司的说法,LZFE的压缩增益和ZLib level 5相同,但速度要快2~3倍,能源效率也更高。

LZFSE基于Lempel-Ziv ,并使用了有限状态熵编码,后者基于Jarek Duda在非对称数字系统(ANS)方面所做的熵编码工作。简单地讲,ANS旨在“终结速度和比率的平衡”,既可以用于精确编码,又可以用于快速编码,并且具有数据加密功能。使用ANS代替更为传统的Huffman算术编码方法的压缩库越来越多,LZFSE就位列其中。

显然,LZFSE的目标不是成为最好或最快的算法。事实上,苹果公司指出,LZ4的压缩速度比LZFSE快,而LZMA提供了更高的压缩率,但代价是比Apple SDK提供的其他选项要慢一个数量级。当压缩率和速度几乎同等重要,而你又希望降低能源效率时,LZFSE是苹果推荐的选项。

GitHub上提供了LZFSE的参考实现。在MacOS上构建和运行一样简单:

$ xcodebuild install DSTROOT=/tmp/lzfse.dst

如果希望针对当前的iOS设备构建LZFSE,可以执行:

xcodebuild -configuration "Release" -arch armv7 install DSTROOT=/tmp/lzfse.dst

除了API文档之外,苹果去年还提供了一个示例项目,展示如何使用LZFSE 进行块和流压缩,这是一个实用的LZFSE入门资源。

LZFSE是在谷歌brotli之后发布的,后者在去年开源。与LZFSE相比,brotli似乎是针对一个不同的应用场景进行了优化,比如压缩静态Web资产和Android APK,在这些情况下,压缩率是最重要的。

via:InfoQ

  • 苹果开源了新的无损压缩算法LZFSE,该算法是去年在iOS 9和OS X 10.10中引入的。按照苹果公司的说法,LZFE的压缩增益和ZLib level 5相同,但速度要快2~3倍,能源效率也更高。 LZFSE基于Lempel-Ziv ,并使用了有限状态熵编码,后者基于Jarek Duda在非对称数字系统(ANS)方面所做的熵编码工作。简单地讲,ANS旨在“终结速度和比率的平衡”,既可以用于精确

  • 苹果开源了新的无损压缩算法LZFSE,该算法是去年在iOS 9和OS X 10.10中引入的。按照苹果公司的说法,LZFE的压缩增益和ZLib level 5相同,但速度要快2~3倍,能源效率也更高。\\ LZFSE基于Lempel-Ziv ,并使用了有限状态熵编码,后者基于Jarek Duda在非对称数字系统(ANS)方面所做的熵编码工作。简单地讲,ANS旨在“终结速度和比率的平衡”,既可以用于

 相关资料
  • 我希望使用log4j2 RollingFileAppender和定制的压缩算法(ZStd)。 目前为止支持的压缩算法似乎是FileExtension枚举(zip,gz,bz2,...)中的压缩算法,请参见https://github.com/apache/logging-log4j2/blob/efa64bfad3f67c5b5fed6b25d65ef5ca2212011b/log4j-core/

  • 我试图找到一种压缩算法,我可以使用它来编码一个blob,只使用16个固定长度的符号(0b0000-0b1111)。 在没有任何压缩的情况下,我可以使用这16个符号对其各自的位值进行编码(例如,符号5(0b0101)对位0101进行编码,因此如果我的blob是100位长,我需要25个符号来表示它-但这样做不会提供压缩。 我认为我需要的是一个反向霍夫曼(在某种意义上,代码是固定长度的,但它代表可变长度

  • DEFLATE 是同时使用了哈夫曼编码(Huffman Coding)与 LZ77 算法的一个无损数据压缩算法,是一种压缩数据流的算法。任何需要流式压缩的地方都可以用。目前 zip 压缩文件默认使用的就是该算法。 关于算法的原理,以及 哈夫曼编码(Huffman Coding)与 LZ77 算法,感兴趣的读者可以查询相关资料,这里推荐 GZIP压缩原理分析——第五章 Deflate算法详解 序列文

  • 解析redis的lzf压缩和解压算法

  • 让我澄清一下,我不是在说完美压缩,也不是说一种能够压缩任何给定源材料的算法,我意识到这是不可能的。我试图得到的是一种算法,它能够将任何源比特串编码到它的绝对最大压缩状态,这取决于它的香农熵。 我相信我听说过一些关于霍夫曼编码在某种意义上是最优的事情,所以我相信这个加密方案可能是基于此的,但这是我的问题: 考虑位串:a="101010101010",b="110100011010"。 使用纯香农熵,

  • gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分; Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。 利用 MinDoc 中的Gzip模块,可以使用Gzip压缩算法来对 MinDoc 发布的网页内容进行压缩后再传输到客户端浏览器。这

  • 问题内容: python docs将此代码作为zip的反向操作: 特别是 zip()与*运算符一起可用于解压缩列表。 有人可以向我解释运算符在这种情况下如何工作吗?据我了解,是一个二进制运算符,可以用于乘法或浅表复制…在这里似乎都不是这样。 问题答案: 像这样使用时,*(星号,在某些情况下也称为“ splat”运算符)是从列表中解压缩参数的信号。有关示例的更完整定义,请参见http://docs.

  • 我正在使用Julia的ZipFile包来提取和处理csv文件。没问题,但是当我遇到zip文件中的zip文件时,我也想处理它,但是遇到了一个错误。 Julia ZipFile文档如下:https://zipfilejl.readthedocs.io/en/latest/ 对如何做到这一点有什么想法吗?