在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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:5862159
用户头像

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

关注

评论

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

做独立站需要用到的十大软件

九凌网络

光纤网络排障分析

小魏写代码

文心一言 VS 讯飞星火 VS chatgpt (135)-- 算法导论11.3 1题

福大大架构师每日一题

福大大架构师每日一题

inBuilder低代码平台新特性推荐-第七期

inBuilder低代码平台

低代码

从混乱到优雅:基于DDD的六边形架构的代码翻新指南

不在线第一只蜗牛

架构 DDD 框架设计

深入理解Docker:一种革新的容器技术

不在线第一只蜗牛

Docker 容器化 容器化部署

低代码平台是什么?具备哪些特性?

树上有只程序猿

低代码

Redis分布式锁问题分析与处理方案

郑在暴富中

redis redisson 分布式锁

Databend 与海外某电信签约:共创海外电信数据仓库新纪元

Databend

选人与育人,孰先孰后?

凌晞

团队管理

桌面便签软件哪个好?10款全球好评的便签软件助你提升效率!

彭宏豪95

效率 在线白板 备忘录 笔记应用 笔记软件

X2RTC安装教程详解(图文版)

X2Rtc

开源 音视频 RTC 教程分享

数据库操作入门:PyMongo 和 MongoDB 的基本用法

小万哥

Python 程序员 软件 后端 开发

利用生成式AI的产研流程:创新与效率的完美结合

之家技术

测试 用例 效能 生成式AI 释产能

零代码秒集成打通小鹅通订单支付信息与CRM合同接口

谷云科技RestCloud

零代码 APPlink

市场行情回暖、利好月来袭,Web3 广告业领头羊 Verasity 或迎爆发

鳄鱼视界

Hybrid App开发的流程及业务价值

Onegun

html5 混合开发 Hybrid App

能够导出源代码的低代码平台有哪些?

互联网工科生

低代码 源代码

如何item_get-获得淘宝商品详情api接口

技术冰糖葫芦

API 接口

浅谈研发数字化在汽车之家的落地实践

之家技术

产品 数字化 研发 效能 释产能

Milvus 上新!全新 Range Search 功能,可精准控制搜索结果

Zilliz

Milvus Zilliz 向量数据库

玩转 Cgroup 系列之三:挑战手动管理 Cgroup

小猿姐

cpu 资源管理 Cgroup

推动OpenHarmony在AIDC行业落地,优博讯的技术积累与实践

极客天地

跨境自建站卖家如何提高谷歌广告质量得分?

九凌网络

轻量级数据中台,大中型企业数字化转型首选

谷云科技RestCloud

数据中台

多行业用户齐聚,2023 IoTDB 用户大会详细议程更新!

Apache IoTDB

一文带你了解TypeScript 函数

Aion

typescript Vue 前端

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