无损压缩算法(无损压缩研究)
常用的无损压缩算法有:1。LZ77算法,它是许多其他无损压缩算法的基础;2.LZR算法是为改进LZ77而设计的算法;3.LZSS算法,旨在成为LZ77的线性时间替换算法;4.DEFLATE算法;5.LZMA算法等。
数据压缩是在保持相同或大部分数据的前提下,减小文件大小的过程。其原理是消除不必要的数据或以更高效的格式重组数据。压缩数据时,可以选择使用有损法或无损法。有损方式可以永久擦除部分数据,无损方式可以保证保存所有数据。你用什么样的方法取决于你的文件有多准确。
本文将介绍六种不同的无损数据压缩算法和四种基于深度学习的图像/视频压缩算法。
六种无损数据压缩算法
无损压缩算法通常用于存档或其他高保真目的。这些算法使您能够减少文件大小,同时确保文件可以完全恢复。有许多无损压缩算法可供您选择。以下是六种常用算法:
1.LZ77
LZ77算法于1977年发布。作为许多其他无损压缩算法的基础,它使用了“滑动窗口”的概念。在这个概念中,LZ77管理一本字典。字典使用三元组:
偏移量:短语开头和文件开头之间的距离
游程长度:组成一个短语的字符数
偏离字符:表示新短语的标记,是匹配后前向缓冲区中的第一个符号。
解析文件时,字典会实时更新,以反映最新的压缩数据和大小。例如,如果一个文件包含字符串abbadabba,则压缩到字典中的项是abb(0,1,& # 39;d & # 39)(0,3,'a & # 39)。您可以查看下表中的拆卸过程:
在这个例子中,压缩数据并不比原始数据小多少。但一般来说,当文件很长的时候,就会出现压缩效果。
2.工具
LZR是由迈克尔·罗迪在1981年提出的,它是在LZ77的基础上发展起来的。这个算法的目标是成为LZ77的线性时间替换算法,但是编码后,Udell指针可能指向文件的任意偏移量,这意味着它需要相当大的内存,所以不如LZ77。
3.LZSS
LZSS,全称莱姆佩尔-齐夫-斯托尔-西曼斯基,于1982年提出。这也是一个改善LZ77的算法。介绍了一种检测文件大小是否真的减小的方法。如果压缩效果失败,保留原始输入格式。LZSS还删除了使用偏离字符,只使用
4.给…放气
DEFLATE算法是1993年提出的。作者是菲利普·卡兹。该算法将LZ77或LZSS预处理器与霍夫曼编码相结合。霍夫曼编码在1952年提起诉讼。它是一种熵编码,主要是基于字符的频率。
5.动态
LZMA算法,全称是lempel-ziv马尔科夫链算法(lzma),提出于1998年,是LZ77的改进版,旨在实现. 7z格式的7-ZIp文件归档。它使用链压缩方法在比特级而不是字节级应用改进的LZ77算法。压缩算法的输出随后通过算术编码进行进一步压缩。根据具体的实现,可以引入其他压缩步骤。
6.LZMA2
LZMA2算法提出于2009年,是LZMA的改进版本。它提高了LZMA在多线程方面的性能和处理不可压缩数据的性能。
基于深度学习的四种图像/视频压缩算法
除了上述静态压缩算法,还有基于深度学习的压缩算法可供选择。
1.基于多层感知器的压缩算法
多层感知器(MLP)技术使用多层神经元来获取、处理和输出数据。它可以应用于数据降维任务和数据压缩。第一个基于MLP的算法于1988年提出,并已应用于:
二进制编码-标准双符号编码
量化-将输入从连续集限制为离散集
特定域中的转换-像素级的数据变化
MLP算法利用分解神经网络最后一步的输出来确定最佳的二进制码组合。之后利用预测技术对该方法进行优化。预测技术可以通过基于相邻数据的反向传播来提高数据的准确性。
2.深度编码器——基于视频压缩的深度神经网络
深度编码器是一种基于卷积神经网络的框架,是传统视频压缩技术的替代。该模型对预测信号和残差信号使用单独的CNN。它使用标量量化技术和传统的文件压缩算法-霍夫曼编码来将编码特征映射到二进制流中。总的来说,这个模型的性能比著名的H.264/AVC视频编码标准要好。
3.基于CNN的压缩算法
CNN是一种分层神经网络,通常用于图像识别和特征检测。当应用于压缩时,这些神经网络使用卷积运算来计算相邻像素之间的相关性。CNN比基于MLP的算法具有更好的压缩效果,提高了超分辨率性能,减少了伪像。此外,基于CNN的压缩还提高了JPEG图像的质量,因为它降低了峰值信噪比(PSNR)和结构相似性(SSIM)。基于CNN的压缩也通过使用熵估计方法实现了HEVC的性能。
4.基于生成对抗网络的压缩算法
GAN是一种神经网络,利用两个神经网络相互竞争,产生更精确的分析和预测。最早的基于GAN的压缩算法提出于2017年。这些算法的文件压缩率是其他常用方法(如JPEG、WebP等)的2.5倍。).您可以使用基于gan的方法通过并行化来实现实时压缩。主要原理是基于最相关的特征压缩图片。解码时,算法基于这些特征重建图像。与基于CNN的算法相比,基于GAN的压缩算法通过消除对抗损失可以产生更高质量的图像。
总结
压缩算法可以帮助您优化文件大小。不同的算法有不同的结果。本文简要介绍了六种静态无损压缩算法和四种基于深度学习的压缩算法。当然,如果这些算法不适合你的场景,你可以看看这篇文章,找到适合你的场景的算法。算法有很多,总有一个适合你!