1、什么是数据压缩

数据压缩,通俗地说,就是用最少的数码来表示信号。其作用是:能较快地传输各种信号

2.数据为何能被压缩

首先,数据中间常存在一些多余成分,既冗余度。如在一份计算机文件中,某些符号会重复出现、某些符号比其他符号出现得更频繁、某些字符总是在各数据块中可预见的位置上出现等,这些冗余部分便可在数据编码中除去或减少。冗余度压缩是一个可逆过程,因此叫做无失真压缩,或称保持型编码。

其次,数据中间尤其是相邻的数据之间,常存在着相关性。如图片中常常有色彩均匀的背影,电视信号的相邻两帧之间可能只有少量的变化影物是不同的,声音信号有时具有一定的规律性和周期性等等。因此,有可能利用某些变换来尽可能地去掉这些相关性。但这种变换有时会带来不可恢复的损失和误差,因此叫做不可逆压缩,或称有失真编码、摘压缩等。

数据压缩就是将字符串的一种表示方式转换为另一种表示方式,新的表示方式包含相同的信息量,但是长度比原来的方式尽可能的短。

1. 数据压缩与编码
  数据压缩跟编码技术联系紧密,压缩的实质就是根据数据的内在联系将数据从一种编码映射为另一种编码。压缩前的数据要被划分为一个一个的基本单元。基本单元既可以是单个字符,也可以是多个字符组成的字符串。称这些基本单元为源消息,所有的源消息构成源消息集。源消息集映射的结果为码字集。可见,压缩前的数据是源消息序列,压缩后的数据是码字序列。
  若定义块为固定长度的字符或字符串,可变长为长度可变的字符或字符串,则编码可分为块到块编码、块到可变长编码、可变长到块编码、可变长到可变长编码等。应用最广泛的ASCII编码就是块到块编码。
  2. 数据压缩的分类
  数据压缩按照映射是否固定可分为静态数据压缩和动态数据压缩。静态数据压缩是指压缩前源消息集到码字集之间的映射是固定的,出现在被压缩数据中的源消息每次都被映射为同一码字。动态数据压缩是指源消息集到码字集的映射会随着压缩进度的变化而变化。静态压缩编码需要两步,先计算出源消息出现的频率,确定源消息到码字之间的映射;然后完成映射。动态数据压缩则只需一步就能完成,它在压缩过程中只对源消息集扫描一次。有些数据压缩算法是混合型的,综合应用了静态数据压缩和动态数据压缩技术。
  3. 评价数据压缩的标准
  从实际应用来说,数据压缩可从两方面来衡量:数据压缩速度和数据压缩率。当数据压缩应用于网络传输时,主要考虑速度快慢;当数据压缩应用于数据存储中,主要考虑压缩率,即压缩后数据的大小。当然这两方面是相辅相成的。
  常用的评价标准有冗余度、平均源信息长度、压缩率等。对于一种编码方式是否为较好的编码,主要看该编码的冗余度是否最小。
  4. 常见的数据压缩工具
  现在操作简单,使用方便,功能强大的数据压缩工具有很多。最常见的是WinZip和WinRAR。
数据压缩通过减少数据的冗余度来减少数据在存储介质上的存储空间,而数据备份则通过增加数据的冗余度来达到保护数据安全的目的。两者在实际应用中常常结合起来使用。通常将要备份的数据进行压缩处理,然后将压缩后的数据用备份进行保护。当需要恢复数据时,先将备份数据恢复,再解压缩。

算起来,数据压缩的起源要比计算机的起源早得多,有兴趣的读者可以翻阅一下任何一本成语辞典,查查诸如“二桃三士”、“萧规曹随”之类的短语涵盖了多少信息内容。

认真一点:数据压缩技术在计算机技术的萌芽时期就已经被提上了议事日程,有关信息如何被高效存储和传递的话题不断被军事科学家、数学家、电子学家讨论来、讨论去。终于,随着信息论的产生和发展,数据压缩也由热门话题演变成了真正的技术。

经典案例:

还记得 GIF 格式吗?GIF 可以把原始图形文件以非常小数据量存储,可以在同一个文件中存储多幅图像从而实现动画效果。知道 GIF 中的图像使用什么方法压缩的吗?LZW! 原来如此啊。GIF 大概是使用通用压缩技术压缩图像信息的最成功的例子,当然,GIF 文件中除了经过 LZW 压缩的像素信息以外,还保存有图像的各种属性信息以及图像所使用的调色板信息等。GIF 精确地保留了原始图像的每一个像素信息,是无损图像压缩的代表。

静态图像联合专家小组( JPEG )和动态图像联合专家小组( MPEG )。JPEG 的压缩目标是静止图像(灰度的和彩色的),MPEG 的目标则是声音和视频。但他们的基本思路是完全一样的,即保留媒体信息中最有规律、最能体现信息主要特征的数据,而略去其他不重要的数据。他们都取得了令人赞叹的成就。

你刚看完 VCD 吗?那么你刚刚享用过他们为我们带来的乐趣了。知道普通 VCD 每一帧有多少彩色像素吗?知道每秒钟播放多少帧吗?知道的话,算一算一部 100 分钟的电影不压缩的话需要多少空间。每张光盘的容量是 640M,那么,不压缩的电影需要多少张光盘来存放呢?你该知道 JPEG 或是 MPEG 的厉害了吧。

最后,必须简单地提到与图像压缩领域相关的电子出版印刷领域中的一种叫做 PostScript 的东西。PostScript是作为电子印刷业的标准页面描述语言被设计出来的,它起源于 1976 年的 Evans & Sutherland 计算机公司,当时的名字是 Design System。1978 年,John Warnock 和 Martin Newel 将其演变为 JAM 语言。1982 年,John Warnock 和 Chuck Geschke 创建了著名的 Adobe System 公司,并第三次设计和实现了这个语言,并将其称为 PostScript。

PostScript 的主要思路是存储和传输预先定义的命令来“画”出图像,而不是存储和传输图像的每一个像素,这特别适用于在激光打印机上的输出。采用类似“从(10, 10)到(100, 100)画一条红色直线”或是“在(50,50)以 40 为半径画一个蓝色的圆”之类的命令存储图像显然比直接存储每个像素节省了不少地方。所以,从压缩技术的角度来看,PostScript 也可以算是压缩方法的一种。根据类似的原理,Windows 中的 WMF 格式、HP 的 HPGL 语言、AutoCAD 中使用的 DXF 格式等等,都可以对某种特定的图像进行有效的压缩。

1、什么是压缩技术,起源于什么时候?相关推荐

  1. Bundle捆绑压缩技术

    Bundle捆绑压缩技术由命名空间System.Web.Optimization中的类提供.顾名思义,这些类是用来优化Web页面性能的,它们通过压缩文件大小,捆绑文件(把多个文件合成一个下载文件)来实 ...

  2. 带有匹配滤波器的雷达信号调制和脉冲压缩技术的Matlab程序

    带有匹配滤波器的雷达信号调制和脉冲压缩技术的Matlab程序 clear all; %%%  parameters' definition c=3e+8;                       ...

  3. 计算机三级网络技术注意事项,2015计算机三级考试《网络技术》复习要点:压缩技术...

    2015计算机三级考试<网络技术>复习要点:压缩技术 1.多媒体的数据量 多媒体计算机能够处理图形.图像.音频.视频. 2.压缩的基础是数据冗余 多媒体信息存在许多数据冗余,这为数据压缩创 ...

  4. java 压缩技术_Java压缩技术(三) ZIP解压缩——Java原生实现

    JavaEye的朋友跟我说:"你一口气把ZIP压缩和解压缩都写到一个帖子里,我看起来很累,不如分开好阅读".ok,面向读者需求,我做调整,这里单说ZIP解压缩! 相关链接: Jav ...

  5. 音视频通话:小议音频处理与压缩技术

    在视频或者音频通话过程中,一方面为了减小原始声音数据的传输码率,需要进行音频压缩,另一方面为了得到更高质量的音质,需要进行音频处理.那么,如何处理好这两方面,保证声音传播的高真性?本篇文章将会结合网易 ...

  6. 文件 在线压缩 技术

    客户有时会有这样的需求:把服务器上的某个文件和文件夹下载到本地,我们的解决方法是使用在线压缩技术.就是把文件先在服务器上压缩,创建一个.ZIP,然后下载到本地. 网上提供了原代码,但是有些不足之处.第 ...

  7. Netflix选择AVIF作为下一代图片压缩技术

    Photo by John-Mark Smith from Pexels Netflix在情人节当天公开AVIF作为下一代图片压缩技术,同其宣布在Android端采用AV1视频编解码格式仅相隔一周时间 ...

  8. 叶琰:AI压缩技术在追上传统编码技术

    认识叶琰是经朋友引荐,在了解她的背景后很快决定邀请她来LiveVideoStackCon2019深圳,并担任了大会的Co-chair.叶琰给我留下的印象是坦诚.直接,一旦她承诺的事情会按时做到--无论 ...

  9. Java压缩技术(四) GZIP——Java原生实现

    转载自  Java压缩技术(四) GZIP--Java原生实现 GZIP常常用在linxu环境下,是一种非常简单的压缩算法.在Java实现API中,它仅仅包含两个实现类:GZIPInputStream ...

最新文章

  1. win8配置iis8.0+php+mysql+zend_IIS下配置Php+Mysql+zend的图文教程
  2. 综艺节目php灭灯_非诚勿扰php程序员 结果遭女嘉宾瞬间全灭灯
  3. 100的阶乘c语言代码,求10000的阶乘(c语言代码实现)
  4. One question regarding your note Note 1731777 - Debugging background work items
  5. 面向对象——类设计(七)
  6. [BZOJ2048] [2009国家集训队] 书堆
  7. 计算机论文的字体要求,论文格式及字体大小要求(标准)
  8. netapp管理地址_NETAPP存储系统管理员手册.doc
  9. python学习笔记(6)
  10. hexo个人博客 next主题添加背景图片(无custom.styl情况)
  11. 校验、加密、压缩、哈希值的区别,我老是弄混,现在总结一下
  12. iPhone线控耳机如何使用教程
  13. 虚拟动力数字人技术亮相第六届文创产业大会,探见元宇宙 驱动新文创
  14. 集训队每周一赛2020-03-13(构造+找规律+字符串+并查集)
  15. L48.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- last、lastb和lastlog
  16. 【EXCEL VBA】自学心得
  17. 锚点链接(HTML)
  18. 织梦++高级搜索php,织梦多条件筛选功能实现(dede联动搜索) - DeDecms
  19. Desktop Goose for Mac抖音桌面宠物鸭
  20. 【RocketMQ】 官方运维管理命令mqadmin使用手册(讲解+实操)

热门文章

  1. Aspose.Word企业案例:Charity Auction Organizer 使用 Aspose.Words 开发自定义邮件合并引擎
  2. 数据中心新动力——高压直流技术应用现状及前景分析
  3. VMware vSphere 创建虚拟机时SCSI适配器的选择
  4. slg游戏服务器源码,【星际文明online】SLG科幻策略网游源代码资源
  5. 自动平面铣床的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. as使用自动导入v7包,一直没使用as创建过项目,哎
  7. 三分钟搭建自己的专属博客(基于Docker solo搭建个人博客)
  8. 自动贩卖机测试用例-划分等价类
  9. 常见的文件类型:mime.json
  10. 书评-《日进3万3》浙师大“包,二,奶”生意火爆,木人管还获得支持?你只有羡慕嫉妒恨