数据压缩是减少文件大小,同时保留相同或可比较的数据近似值的过程。这是通过消除不必要的数据或重新格式化数据以提高效率来实现的。

压缩数据时,可以使用丢失或无损方法。丢失方法永久擦除数据,而无损保留所有原始数据。您使用的类型取决于您需要的文件的保真度高。

在本文中,您将发现六种不同类型的无损数据压缩算法,以及四种基于深度学习的图像和视频压缩算法。

6 无损数据压缩算法

无损压缩算法通常用于存档或其他高保真度目的。这些算法使您能够减小文件大小,同时确保文件在需要时可以完全还原到其原始状态。

当您需要执行无损压缩时,您可以选择多种算法。以下是六个常用的。

1. LZ77

LZ77 于 1977 年发布,是许多其他无损压缩算法的基础。它使用”滑动窗口”方法。在此方法中,LZ77 管理使用三重表示的字典:

偏移 — 短语开头和文件开头之间的距离。

运行长度 – 构成短语的字符数。

偏离字符 — 指示新短语的标记。这包括短语等于原始短语和哪些字符不同的指示。

在分析文件时,将动态更新字典以反映压缩的数据内容和大小。例如,包含字符串”abbadabba”的文件被压缩到字典条目”abb(0,1,’d’)(0,3,’a’)”。您可以在下面看到此过程的细目。

位置

象征

输出

0

a

a

1

B

B

2

B

B

3

a

(0,1,’d’)

4

D

5

a

(0,3,’a’)

6

B

7

B

8

a

在此示例中,替换比输入稍大,但使用逼真的输入(这是更长的时间),替换通常要小得多LZR

LZR,由迈克尔·罗德于1981年发行,修改LZ77。它设计为 LZ77 的线性替代,但可用于文件中的任何偏移。当非线性使用时,它需要大量的内存,这使得LZ77成为更好的选择。

3. LZSS

伦佩尔-齐夫-斯齐曼斯基(LZSS)于1982年发布,是一种改进LZ77的算法。它通过包括一个检测替换是否减小文件大小的方法来进行此工作。如果没有,则输入以原始形式保留。LZSS 还消除了使用偏离字符,仅使用偏移长度对。此方法通常用于存档格式(如 RAR)或网络数据的压缩。

4. 消减

1993年由菲尔·卡茨发布的DEFLATE将LZ77或LZSS预处理器与哈夫曼编码相结合。霍夫曼编码是1952年开发的一种算法。它是一种熵编码方法,它根据字符的频率分配代码。

5. LZMA

伦佩尔-齐夫马尔科夫链算法(LZMA),发布于1998年,是LZ77的修改,专为7-Zip归档器设计与.7z格式。它使用链压缩方法,在位而不是字节级别应用修改后的 LZ77 算法。然后,使用算术编码处理此压缩的输出,以便进一步压缩。根据确切的实现,也可以执行其他压缩步骤。

6. LZMA2

LZMA2 于 2009 年发布,是 LZMA 的改进。它提高了 LZMA 的性能,提高了多线程功能,并改进了不可压缩数据的处理。

基于深度学习的 4 种图像和视频压缩算法

除了上面介绍的静态算法外,还有几种算法是基于深度学习,您可以使用。

1. 基于多层感知器 (MLP) 的压缩

MLP 是一种使用多个神经元层来获取、处理和输出数据的技术。它可以应用于尺寸缩减任务和数据压缩。第一个基于MLP的算法于1988年开发,并集成了现有的过程:

二进制编码— 标准双符号编码。

量化 — 从连续集到离散集的输入约束。

空间域变换 — 逐像素更改数据。

MLP 算法在分解神经网络中使用上述进程的输出来确定最佳的二进制代码组合。后来,该方法通过预测技术进行了改进,通过反向传播,能够精确近似基于相邻数据的数据深度编码器 – 基于深度神经网络的视频压缩

DeepCoder是一个基于卷积神经网络(CNN)的框架,它提供了传统视频压缩技术的替代方案。该模型使用单独的卷积神经网络 (CNN) 进行预测和残余信号。它使用标量量化和传统文件压缩算法 Huffman 编码将特征映射编码为二进制流。该模型据说提供卓越的性能相比,著名的H.264/AVC视频编码标准。见整张纸。

3. 基于卷积神经网络 (CNN) 的压缩

CNN 是分层神经网络,通常用于图像识别和特征检测。当应用于压缩时,这些网络使用卷积运运计算相邻像素之间的相关性。

CNN 的压缩效果优于基于 MLP 的算法,提高了超分辨率性能和减少伪影性能。此外,基于 CNN 的压缩通过降低峰值信噪比 (PSNR) 和结构相似性 (SSIM) 提高了 JPEG 图像的质量。基于 CNN 的压缩还可以通过使用熵估计实现高效视频编码 (HEVC) 标准的性能。

4. 基于生成对抗网络 (GAN) 的压缩

GAN 是神经网络的一种形式,它在竞争中使用两个网络来生成更准确的分析和预测。基于 GAN 的压缩算法于 2017 年首次开发。这些算法可以压缩文件,比其他常用方法(如 JPEG 或 WebP)小两个半倍。

您可以使用基于 GAN 的方法使用并行处理进行实时压缩。此方法的工作原理是根据最相关的功能压缩图像。解码后,将根据这些要素所做的预测重建图像。与基于 CNN 的压缩相比,基于 GAN 的压缩可以通过消除对抗性损耗来生成更高质量的图像。

结论

压缩算法可以帮助您优化文件大小。不同的算法提供不同的结果。本文回顾了六种无损压缩静态算法和四种深度学习用法算法。但是,如果您在此处找不到正确的算法,可以查看本指南并优化搜索。算法并不短缺,但在为项目寻找合适的算法时,您需要具体。

lz77优化_压缩时间:10种最佳压缩算法相关推荐

  1. 编程最佳字体_网站上使用的10种最佳装饰字体

    编程最佳字体 我们选择的字体在网站中起着主要作用. 正确的字体组合可以使您的网站脱颖而出. 此外,他们与您的品牌紧密结合,以传递正确的信息. 在各种字体样式中,装饰字体是一个不错的选择,如果您想产生影 ...

  2. python开源流程图软件_适用于Linux的10种最佳流程图和图表软件

    图表是我们联系信息并处理其重要性的好方法. 它们有助于沟通关系和抽象信息,并使我们可视化概念. 流程图和图表工具可用于从基本工作流程图到复杂网络图 ,组织图, BPMN ( 业务流程模型和表示法 ), ...

  3. 改善CSS的10种最佳做法,帮助你从样式中获得最大的收益

    CSS似乎是一种非常简单的语言,很难在其中犯错误.你只需添加样式规则,就可以对网站进行样式设置了,对吗?对于只需要几个CSS文件的小型网站,情况可能就是这样.但是在大型应用程序中,样式可能会迅速失控. ...

  4. 大数据分析10种最佳数据屏蔽工具和软件

    老许今日份知识分享来了. 市场上可用的最佳开源免费数据屏蔽工具列表和比较: 数据屏蔽是用于隐藏数据的过程. 在数据屏蔽中,实际数据由随机字符屏蔽.它可以防止未经授权查看机密信息的人. 数据屏蔽的主要目 ...

  5. 【健康】增长肌肉的10种最佳食品(图)

    [健康]增长肌肉的10种最佳食品(图) 1.三文鱼.6盎司(170克)的三文鱼提供34克蛋白质,4克欧米伽-3脂肪酸,一种降低 肿痛帮助肌肉修复的健康脂肪,并且它可以帮助抑制皮质醇.(皮质醇水平下降, ...

  6. 2020年10种最佳持续集成工具

    技术正呈指数级增长,并且要参与其中,组织别无选择,只能采用技术.谈论"技术"基本上意味着创建"更快,更方便"和"定性"的解决方案.为了跟上高 ...

  7. ocr 图片纠正_2020年10种最佳OCR软件(免费和付费工具) NO.6

    聪明的人都是先关注,在点赞,在收藏! OCR软件将文本图像转换为可扫描的,机器可读的在线文档. 最好的OCR软件可让您扫描任何基于图像的文档并将其存档为可编辑的PDF. 如今,这些工具使个人和企业可以 ...

  8. css 倒三角_改善CSS的10种最佳做法

    CSS似乎是一种非常简单的语言,很难在其中犯错误.你只需添加样式规则,就可以对网站进行样式设置了,对吗?对于只需要几个CSS文件的小型网站,情况可能就是这样.但是在大型应用程序中,样式可能会迅速失控. ...

  9. css 倒三角_改善CSS的10种最佳做法,帮助你从样式中获得最大的收益。

    翻译:英文 | https://medium.com/better-programming/10-best-practices-for-improving-your-css-84c69aac66e C ...

最新文章

  1. MySQL数据库之安装
  2. Windows编程之网络之邮件槽通讯
  3. 合肥特殊教育中专学校计算机,安徽省特殊教育中专学校
  4. 【转】DICOM命令集和数据集解析!!
  5. Log4j2 升级到2.17.1踩过的坑
  6. Java下MySQL易用处理工具(支持XML/JavaBean)
  7. iPhone 九、十月份在中国销量曝光:真的卖疯了!
  8. K8S_Google工作笔记0001---K8S学习过程梳理
  9. php简单的设计模式,MVC,composer
  10. linux内核驱动摄像头图片,详解linux 摄像头驱动编写
  11. pip 加速_如何将Numpy加速700倍?用 CuPy 呀
  12. 多小区下小区上行速率的计算(6)
  13. java linux 文件名乱码_Java读linux文件名乱码的解决办法
  14. java shiro教程_shiro教程1(HelloWorld)
  15. python seo 外链_用python实现超级外链发布系统
  16. ADB使用及日志分析
  17. python 绝对值最小值的 正数_找出有序数组中绝对值最小的数
  18. 51nod 3199 操作栈
  19. java 求两个list 集合的交集,重复的元素
  20. 用 RPM 打包软件,第 2 部分

热门文章

  1. 2022-2028全球与中国车载行车记录仪市场现状及未来发展趋势
  2. painter怎么使用书法笔写字,有什么相关教程
  3. 使用UE4蓝图制作闪烁的灯光
  4. 使用Excel时上下左右键不能使用
  5. 安卓触摸方法如何使用?
  6. xhell使用ftp传输文件
  7. 【科技百咖】曾经的网络安全少帅,今天的移动拓客达人
  8. 会议投影仪什么牌子好?会议投影仪什么牌子好
  9. CSS样式定义的优先级顺序总结
  10. 软件开发的基本知识讲义