常用数据无损压缩算法分析

引言

当今,各种信息系统的数据量越来越大,如何更快、更多、更好地传输与存储数据成为数据信息处理的首要问题,而数据压缩技术则是解决这一问题的重要方法。事实上,从压缩软件WINRAR到熟知的MP3,数据压缩技术早已应用于各个领域。

2 数据压缩技术概述

本质上压缩数据是因为数据自身具有冗余性。数据压缩是利用各种算法将数据冗余压缩到最小,并尽可能地减少失真,从而提高传输效率和节约存储空间。

数据压缩技术一般分为有损压缩和无损压缩。无损压缩是指重构压缩数据(还原,解压缩),而重构数据与原来数据完全相同。该方法用于那些要求重构信号与原始信号完全一致的场合,如文本数据、程序和特殊应用场合的图像数据(如指纹图像、医学图像等)的压缩。这类算法压缩率较低,一般为1/2~1/5。典型的无损压缩算法有:Shanno-Fano编码、Huffman(哈夫曼)编码、算术编码、游程编码、LZW编码等。而有损压缩是重构使用压缩后的数据,其重构数据与原来数据有所不同,但不影响原始资料表达信息,而压缩率则要大得多。有损压缩广泛应用于语音、图像和视频的数据压缩。常用的有损压缩算法有 PCM(脉冲编码调制)、预测编码、变换编码(离散余弦变换、小波变换等)、插值和外推(空域亚采样、时域亚采样、自适应)等。新一代的数据压缩算法大多采用有损压缩,例如矢量量化、子带编码、基于模型的压缩、分形压缩和小波压缩等。

3 常用数据无损压缩算法

3.1 游程编码

这种数据压缩思想:如果数据项d在输入流中连续出现n次,则以单个字符对nd来替换连续出现n次的数据项,这n个连续出现的数据项叫游程n,这种数据压缩方法称游程编码(RLE),其实现流程如图1所示。RLE算法具有实现简单,压缩还原速度快等优点,只需扫描一次原始数据即可完成数据压缩。其缺点是呆板,适应性差,不同的文件格式的压缩率波动大,平均压缩率低。实践表明,RLE能够压缩复杂度不高的原始点阵图像。

时间: 2024-09-13 21:16:40

常用数据无损压缩算法分析的相关文章

如何在Excel巧妙输入常用数据

  1.打开需要输入常用数据的Excel表格,接着点击工具栏左上角的"Office按钮",然后点击进入"Excel选项". 2.在Excel选项里点击"常用"列表,然后进入"编辑自定义列表". 3.接着我们就可以将常用数据添加到自定义序列啦. 4.添加完毕后就可以通过快速填充单元格格式来输入常用的数据.

VC++常用数据类型转换

 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用.    我们先定义一些常见类型变量借以说明    int i = 100;  long l = 2001;  float f=300.2;  double d=12345.119;  char username[]="张三";  char temp[200];  char *buf;  CString str;  _variant_t v1;  _bstr_t v2;    一.其它数据类型转

Android与单片机通信常用数据转换方法总结_Android

Android与单片机通信常用数据转换方法 1.  将GB2312转化为中文,如BAFAC2DCB2B7→胡萝卜,两个字节合成一个文字 public static String stringToGbk(String string) throws Exception { byte[] bytes = new byte[string.length() / 2]; for (int j = 0; j < bytes.length; j++) { byte high = Byte.parseByte(s

从用户Windows系统到阿里云NAS SMB服务:常用数据迁移备份工具

本文介绍如何由本地(on-premises) 或阿里云的虚拟机Windows系统向阿里云NAS SMB服务上传和备份数据. 阿里云文件系统SMB协议服务介绍 阿里云文件存储服务NAS(阿里云NAS)是阿里云在2016年正式推出的公有云上的网络文件系统实现.阿里云NAS主要面向阿里云 ECS 实例.HPC.Docker.弹性Web和BatchCompute 等计算节点提供文件存储服务.通过标准的文件访问协议,用户无需对现有应用做任何修改,即可在云上使用具备无限容量及性能扩展.单一命名空间.多共享.

Android与单片机通信常用数据转换方法总结

Android与单片机通信常用数据转换方法 1.  将GB2312转化为中文,如BAFAC2DCB2B7→胡萝卜,两个字节合成一个文字 public static String stringToGbk(String string) throws Exception { byte[] bytes = new byte[string.length() / 2]; for (int j = 0; j < bytes.length; j++) { byte high = Byte.parseByte(s

Windows系统常用数据缓存介绍

  什么是缓存?听起来好像很技术范儿,其实就是把用户常用的一些「文件」或其它类型数据给临时存储到了某个地方,在下次需要使用时便可读取和使用.这样 Windows 就可以从固定地点去拿缓存数据,而不必再从原始文件或网络中去获取,以加快响应速度.由于缓存文件是非永久性的临时存储,所以 Windows 中的缓存数据位置大多比较隐蔽. 对于大多数 Windows PC 用户来说,使用缓存是非常重要的,因为可以在很大程度上提升系统性能.但其不足之处便是会占用一定的磁盘空间,如果你磁盘空间严重不足,可以考虑

报表几种常用数据方案

背景 最近做了比较多的报表需求,在这里小结一下,希望对后续工作有帮助.报表是数据分析的形象化展示,目前有比较多好用的产品,比如QuickBI,Tableau等,让报表页面的工作能够方便的所见即所得:我们也可以做最核心的事情:数据处理和加工.从数据流向的技术方案来看,主要有这几种: 1. 直接从业务库数据取数据 优点: - 不用数据导来导去,节约时间 缺点: - 可能对业务库性能有影响: - 无法做复杂的数据加工,不同数据库源之间的连接运算等 - 某些历史查看需求无法实现 2. 业务数据导入到Ma

Content-Type的几种常用数据编码格式

Content-Type,内容类型,一般是指网页中存在的Content-Type,ContentType属性指定请求和响应的HTTP内容类型.如果未指定 ContentType,默认为text/html. 1.text/html 文本方式的网页文件. 2.text/plain 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符.空格转换为 "+" 加号,但不对特殊字符编码. 3.application/x-www-form-urlencoded 默认地,表单数据会编码为 &quo

php常用数据函数

PHP的功能描述 ABS装置( )返回绝对值的第3号 acos ( )返回arccosine的第3号 acosh ( )返回逆双曲余弦的4号 阿辛( )返回反正弦的第3号 asinh ( )返回逆双曲正弦的4号 atan ( )返回反正切了一些作为一个数值之间的聚酰亚胺/ 2和PI / 2弧度第3 atan2 ( )返回的角度论旨的(的x , y )点作为一个数值之间的有价证券投资和有价证券投资弧度第3 atanh ( )返回逆双曲正切的4号 base_convert ( )转换了一些从一个基地