zlib压缩是什么

zlib是提供数据压缩之用的库,使用抽象化的DEFLATE算法,最初是为libpng库所写的,后来普遍为许多软件所使用。此库为自由软件,使用zlib授权。

zlib 是提供数据压缩之用的库,由 Jean-loup Gailly 与 Mark Adler 所开发,初版 0.9 版在 1995 年 5 月 1 日发表。zlib 使用抽象化的 DEFLATE 算法,最初是为 libpng 库所写的,后来普遍为许多软件所使用。此库为自由软件,使用 zlib 授权。

zlib压缩是什么

截至 2007 年 3 月,zlib 是包含在 Coverity 的美国国土安全部赞助者选择继续审查的开源项目。

功能

数据

zlib 能使用 gzip 数据头(header)、zlib 数据头或者不使用数据头压缩数据。通常情况下,数据压缩使用 zlib 数据头,因为这提供错误数据检测。当数据不使用数据头写入时,结果是没有任何错误检测的原始 DEFLATE 数据,那么解压缩软件的调用者知道压缩数据在什么地方结束。

gzip 数据头比 zlib 数据头要大,因为它保存了文件名和其他文件系统信息,事实上这是广泛使用的 gzip 文件的数据头格式。注意 zlib 函数库本身不能创建一个 gzip 文件,但是它能够相当轻松地把压缩数据写入到一个有 gzip 文件头的文件中。

算法

当前 zlib 仅支持一个 LZ77 的变种算法,DEFLATE 的算法。

这个算法使用很少的系统资源,对各种数据提供很好的压缩效果。这也是在 ZIP 文件中无一例外地使用的算法。(尽管 zip 文件格式也支持几种其他的算法)。

看起来 zlib 格式将不会被扩展使用任何其他算法,尽管数据头可以有这种可能性。

使用资源

函数库提供了对处理器和内存使用控制的能力。

不同的压缩级别数值可以指示不同的压缩执行速度。

还有内存控制管理的功能。这在一些诸如嵌入式系统这样内存有限制的环境中是有用的。

策略

压缩可以针对特定类型的数据进行优化。

若用户总是使用 zlib 压缩特定类型的数据,那么使用有针对性的策略可以提高压缩效率和性能。例如,如果用户的数据包含很长的重复数据,那么可以用 RLE(运行长度编码)策略,可能会有更好的结果。

对于一般的数据,默认的策略是首选。

错误处理

错误可以被发现和跳过,数据混乱可以被检测(只要数据和 zlib 或者 gzip 数据头一起被写入)。

此外,如果全刷新点(full-flush points)被写入到压缩后的数据流中,那么错误数据是可以被跳过的,并且解压缩将重新同步到下个全刷新点。(错误数据的无错恢复被提供)。全刷新点技术对于在不可靠的通道上的大数据流是很有用的,一些过去的数据丢失是不重要的(例如多媒体数据),但是创建太多的全刷新点会极大地影响速度和压缩。

数据长度

对于压缩和解压缩,没有数据长度的限制。重复调用库函数允许处理无限的数据块。一些辅助代码(计数变量)可能会溢出,但是不影响实际的压缩和解压缩。当压缩一个长(无限)数据流时,最好写入全刷新点。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年11月13日 上午2:34
下一篇 2023年11月13日 上午2:36

相关推荐

  • 数据是什么

    数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散…

    2023年11月30日
    1600
  • 逻辑数据链路是什么

    逻辑数据链路是由虚拟电路建立的数据链路,是在物理链路加上必要的通信规程而得到的。 逻辑数据链路是由虚拟电路建立的数据链路,是在物理链路加上必要的通信规程而得到的。 定义 数据链路层是 OSI 参考模型中的第二层,介于物理层和网络层之间,在使用物理层的差础上向网络层提供服务。数据链路层的主要作用是:通过一些数据链路层协议和链路控制规程在不太可靠的物理链路上实现…

    2023年11月29日
    2100
  • 传感数据是什么

    传感数据是由感知设备或传感设备感受、测量及传输的数据。传感数据种类有很多,如人身体的传感数据,网络信号的传感数据和气象的传感数据。传感数据可以用于数据分析。 传感数据是由感知设备或传感设备感受、测量及传输的数据。感知设备或传感设备可以包括 1 个或多个传感器。这些感知设备或传感设备实时和动态地收集大量的时序传感数据资源在物联网中。传感数据种类有很多,如人身体…

    2023年11月29日
    1900
  • 医学数据库是什么

    医学数据库技术的引入, 能够极大程度的节省医学数据存储的空间、更好的保护患者的隐私、进一步实现的各不同单位间的资源共享、更细致的整合互联网的各种医学资料以及更加快捷的检索各种信息, 从而给医学工作者带来极大的便利。 在计算机中,数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。而当数据库运用到医院系统中时, 既能够改变传统医学文档存储方式的冗余和…

    2023年11月29日
    1400
  • 音频数据采集是什么

    声音是一种由物体振动而产生的波,当物体振动时,使周围的窄气不断地压缩和放松,并向周围扩散,这就是声波,人可以听到的的声音频率范围是20Hz~20kHz。常见方法有3种:直接获取已有音频、利用音频处理软件捕获截取声音、用麦克风录制声音。 声音是一种由物体振动而产生的波,当物体振动时,使周围的窄气不断地压缩和放松,并向周围扩散,这就是声波,人可以听到的的声音频率…

    2023年11月29日
    2600
  • BitLocker是什么

    Windows BitLocker驱动器加密通过加密Windows操作系统卷上存储的所有数据可以更好地保护计算机中的数据。帮助保护Windows操作系统和用户数据,并帮助确保计算机即使在无人参与、丢失或被盗的情况下也不会被篡改。 Windows BitLocker 驱动器加密通过加密 Windows 操作系统卷上存储的所有数据可以更好地保护计算机中的数据。B…

    2023年11月28日
    1200
  • 深入浅出:如何从0开始学习大数据挖掘分析?

    文章梳理了学习大数据挖掘分析的思路与步骤,给大家提供一些参考,希望能够对你有所帮助。 最近有很多人咨询,想学习大数据,但不知道怎么入手,从哪里开始学习,需要学习哪些东西?对于一个初学者,学习大数据挖掘分析的思路逻辑是什么?本文就梳理了如何从0开始学习大数据挖掘分析,学习的步骤思路,可以给大家一个学习的建议。 很多人认为数据挖掘需要掌握复杂高深的算法,需要掌握…

    2023年11月26日
    200
  • 数据分析(1):三观的建立

    本篇文章主要分享了产品经理数据分析技能的基础认知,所谓成大事,三观要正。故起名数据分析:三观的建立 一、数据分析的概念数据分析大致可以分为三个层次(这边沿用苏格兰折耳喵的部分观点): 1)描述性数据分析 如果没有系统学习过数据分析的一般处于这个阶段,常用的方式:对比分析、平均分析、交叉分析等。 2)诊断性数据分析 从这个阶段开始,才刚刚进入真正的数据分析阶段…

    2023年11月26日
    200
  • 设计师专业表达指南——数据篇

    本文笔者将围绕数据的价值来看:数据对我们设计师到底有什么用,我们又应该如何用? 全球瞩目的新锐历史学家尤瓦尔·赫拉利,曾在《未来简史》中说: 在未来,大数据会接管一切,小到你的工作、身体和生活,大到公司的布局、发展和决策。普通人的想象会越来越不重要,重要的是那些想象力能够超越“大数据”的人,能够超越大数据的将成为“智神”,而被大数据掌握的则是“凡人”,亲爱的…

    2023年11月26日 数据分析
    200
  • 如何建立学习型公司?从数据开始

    公司作为商业的主体,总会遇到不确定的挑战。想要更好的解决问题,必须加强学习,以知识作为决策模型迎接挑战。第一步:从数据开始。 面对不确定性是公司最大的挑战。无论是初创公司还是老牌公司,在开始开发产品时,都需要确定市场规模、找到痛点并提供一套可行的产品解决方案。 同时当公司进行扩张时,不确定性也会以变化的形式出现:外部市场会变化、用户需求会变化、公司组织结构也…

    2023年11月26日 数据分析
    200



微信客服