写点什么

Zstandard:一种新的无损压缩算法

  • 2015-01-29
  • 本文字数:976 字

    阅读完需:约 3 分钟

Zstandard (缩写为 Zstd)是一种新的无损压缩算法,旨在提供快速压缩,并实现高压缩比。它既不像 LZMA ZPAQ 那样追求尽可能高的压缩比,也不像 LZ4 那样追求极致的压缩速度。

下面是一组基准测试数据:

压缩算法名称

压缩比

压缩速度(MB/s)

解压速度(MB/s)

zlib 1.2.8 -6

3.099

18

275

Zstd

2.872

201

498

zlib 1.2.8 -1

2.73

58

250

LZ4 HC r127

2.72

26

1720

QuickLZ 1.5.1b6

2.237

323

373

LZO 2.06

2.106

351

510

Snappy 1.1.0

2.091

238

964

LZ4 r127

2.084

370

1590

LZF 3.6

2.077

220

502

(环境:Core i5-4300U @ 1.9GHZ;基准测试程序:开源程序 fsbench 0.14.3

从上表可以看出,Zstd 的压缩比和压缩速度都比较高,而且解压速度大约为每核 500MB/s。

Zstd 的压缩速度可以根据不同的情况进行配置。在上述测试中,它提供了大约每核 200MB/s 的速度,可以用于一些实时压缩场景。同时,与 LZ4 类似,它可以提供平衡压缩比和压缩时间的衍生算法,并且不影响解压性能。

Zstd 还有一个特点是内存需求可配置。这使它可以适应内存配置低或者服务器并行处理多个请求的情况。此外,它采用了“有限状态熵(Finite State Entropy,缩写为FSE)”编码器。该编码器是由Jarek Duda 基于ANS 理论开发的一种新型熵编码器,旨在与“霍夫曼编码器(Huffman encoder)”和“算数编码器(Arithmetic encoder)”相竞争。

另据 Cyan4973 项目创建者 Yann Collet介绍,虽然Zstd 是一个速度很快的压缩/ 解压算法,但它并没有进入LZ4 的适用范围。在一项基准测试中(测试方法见这里),Collet 得出了这样的结论:

当传输速度高于50MB/s 时,LZ4 是更好的选择;而当传输速度介于0.5MB/s 和50MB/s 时,Zstd 在速度上领先于其它算法。

此外,在回复用户评论时,Collect 比较了Zstd 与 lzham

根据我的理解,它们的设计出发点不同。Lzham 来源于 LZMA……以离线压缩场景作为衡量标准……而 Zstd 的基本原则更像 Zlib ,但主要有三点变化:

  • FSE 代替霍夫曼编码器;
  • 不限匹配尺寸;
  • 偏移量可重复。

最后,请读者朋友们注意:Zstd 开发尚处于起步阶段,本文的一些测试结果也只是早期的测试结果,其实现将会随着时间的推移继续改进和提高,尤其是在项目创建的第一年里。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-01-29 19:5861883
用户头像

发布了 1008 篇内容, 共 432.9 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

全新架构!日志服务 SLS 自研免登录方案发布

阿里巴巴云原生

阿里云 云原生 日志服务 sls

LED芯片寿命试验过程解析

Dylan

屏幕亮度 光热发电 电子 LED display LED显示屏

详解GaussDB(DWS)中3个防过载检查项

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

Hero Talk|无缝扩展:Kubernetes 上的 Amazon Aurora 分片和流量管理

亚马逊云科技 (Amazon Web Services)

人工智能 生成式AI

兼顾稳定和性价比的跨国企业SD-WAN组网

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

矩阵起源新一年喜报连连!

MatrixOrigin

数据库 分布式 云原生

Java 中 HashMap 详解

小白牙

Java Map集合

新一代AI模型Claude 3:有大学生智商,全面超越GPT-4,现已正式登陆 Amazon Bedrock!

伊克罗德信息科技

Java社招面经分享,别人都是怎么面试蚂蚁的?

阿里、莫言

Java Java面经 Java面试题

Vue.js 应用实现监控可观测性最佳实践

OpenTiny社区

开源 Vue 前端

云手机为电商提供五大出海优势

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 跨境云手机

制造业工厂中的设备管理系统

万界星空科技

工业互联网 制造业 mes 设备管理 设备数据采集

如何通过ETL做数据转换

谷云科技RestCloud

ETL 数据集成 数据转换

OgGame——游戏全球发行的全套解决方案

Ogcloud

云游戏 游戏发行 云游戏发行 游戏云化 游戏发行公司

【AAAI 2024】MuLTI:高效视频与语言理解

阿里云大数据AI技术

人工智能 机器学习 模型训练 大模型

NFTScan | 03.11~03.17 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

华为云开年采购季全面启动 智领千行万业 赋能美好未来

轶天下事

Footprint Analytics 强势入局 AI 推出全新投研工具

Footprint Analytics

#人工智能 #区块链

2024政府工作报告聚焦数字经济,“双象限”评选凸显数字化先锋

信通院IOMM数字化转型团队

数字化转型 数字经济 IOMM 企业数字化转型发展双象限

API接口知识小结

Noah

被快手面试官追着问的真正线上索引失效的问题是如何排查的

派大星

:MySQL 数据库 Java 面试题 互联网大厂面试

iframe自动化革命:颠覆传统网页嵌入的新趋势

测吧(北京)科技有限公司

测试

你在测试金字塔的哪一层(上)

禅道项目管理

软件开发 自动化测试 测试工程师 测试金字塔

架构实战营 - 模块二作业

满心

架构实战营

HPE Aruba Networking连续第十八次获评Gartner企业级有线和无线局域网基础设施魔力象限领导者

科技热闻

数字化车间MES管理系统是如何降低企业生产成本

万界星空科技

数字化转型 数字化 制造业 mes 万界星空科技

软件测试学习笔记丨Pytest结合数据驱动读取csv文件

测试人

软件测试

软件测试学习笔记丨Pytest结合数据驱动读取json文件

测试人

软件测试 测试开发

云原生最佳实践系列 1:如何快速实现kafka性能压测

阿里巴巴云原生

kafka 阿里云 云原生 消息

Zstandard:一种新的无损压缩算法_语言 & 开发_谢丽_InfoQ精选文章