1.3.1 数据压缩的基本概念
1.什么是数据压缩?
数据压缩是指按照一定的方法对数据进行重新组织,以缩减数据量,提高其存储和传输效率的一种技术。
数据压缩的本质是重新编码,使数据量减少,但表示信息的意义不变(或信息量仅有极少损失)。
2.为什么要压缩?
信息以二进制数或二进制编码的形式在存储器中存放。然而,存储容量是有限的,随着计算机软件的功能越来越复杂,多媒体信息处理的数据量越来越大,对存储空间的需求越来越高,单纯靠硬件无法满足这一要求。另外,随着网络的普及,人们喜欢快速获取信息,讨厌长时间等待。这些都要求对原始数据进行必要的压缩,以满足实际应用的需求。
能否用尽可能少的空间,存放更多的信息?
能否用尽可能少的时间,传送更多的信息?
☞这就是数据的压缩问题
3.数据压缩的可能性?
压缩的可能性——信息冗余
空间冗余
规则物体和规则背景的表面物理特性都具有相关性。
例如,一幅图像中的静止建筑背景、蓝天和绿地,其中许多像素是相同的。如果逐点存储,就会浪费许多空间,这称为空间冗余。
时间冗余
序列图像( 如运动图像) 的前后有着很强的相关性。
例如,在电视和动画的相邻序列中,背景往往是相同不变的,只有运动物体有少许变化。这样仅存储差异部分即可,这称为时间冗余。
结构冗余
有些图像在大的区域上存在纹理结构的相似性(如布纹、草席图像) 感官冗余(视觉、听觉冗余)
可将超出一般人视觉、听觉系统所能分辨的数据去掉,以减少编码位数,达到数据压缩的效果(例如:MP3);
人眼对低频信号的敏感程度大于对高频信号的敏感程度,可用较少的bit数来表示高频信号;
人眼对静态物体的敏感程度大于对动态物体的敏感程度,可减少表示动态物体的bit数;
人眼对亮度信号的敏感程度大于对度信号的敏感程度,可在行、帧方向缩减表示度信号的bit数;
人眼对图像中心信息的敏感程度大于对图像边缘信息的敏感程度,可对边缘信息少分配bit数等。
知识冗余
例如,人脸图像有固定结构:嘴上方有鼻子,鼻子上方有眼睛,鼻子位于正面脸的中线上等。这类规律性可由先验知识和背景知识得到。
此外,现实世界的数据都有统计冗余。例如,字母“e”在英语中比字母“z”更加常用,字母“q”后面是“z”的可能性非常小。数据压缩算法可利用这种统计冗余,使数据更加简炼。
4.无损压缩与有损压缩
数据压缩方案有两大类:无损压缩与有损压缩
(1).无损压缩(lossless compress)
压缩过程中不丢失信息
压缩率低
常用于文字信息的压缩
(2).有损压缩(lossy compress)
压缩过程中丢失部分信息
压缩率高
常用于图像、声音、视频的压缩
例如,人们看图画或者电视画面的时候可能并不会注意到一些细节并不完善。同样,两个音频录音采样序列可能听起来一样,但实际上并不完全一样。有损压缩算法在带来微小差别的情况下使用较少的位数表示图像、视频或者音频,丢掉一些数据但不至于对声音或者图像所表达的意思产生误解,但可大大提
高数据压缩率。
5.数据压缩的性能指标
(1).压缩比
例如:512*480 pixel,24bit/pixel
输入数据:512*480*24/8=737280 byte
若压缩后数据为:15000 byte,则压缩比:15000/737280=0.0203
(2).恢复数据质量(失真度)
无损
有损
损失程度
(3).压缩/解压缩速度(是否能实时解压)
(4).其他:
如:压缩过程所需占用的额外内存空间、压缩算法所需的硬件和软件等。
数据压缩的设计需要在压缩能力、失真度、所需计算资源以及其它需要考虑的不同因素之间进行折衷。当然,也要考虑压缩/解压缩速度对软件运行的影响。
1.3.2 基本压缩方法
数据压缩有不同的方法。它们基于不同的原理,适用不同的数据类型。但都是通过减少或去除原始数据中的冗余来达到压缩数据的目的。
1.常用的数据压缩方法概述
游程编码
huffman编码
字典编码
其他压缩方法
如预测压缩编码:针对空间和时间冗余,利用已被编码点的数据值预测临近点数据值。如语音中的线性预测(LPC),图像中的自适应预测(ADPCM)等。
本课程主要介绍游程编码
2.行程长度编码(run-length encoding)
【例】有字符串“aaaaaabbccccdddffffff”,请用另一种表示方法,使数据量减少,但能准确还原原来的信息。
行程编码,又称游程编码(简称RLE编码),适合于被压缩数据中重复信息较多的情
况。
是一种无损压缩方法。
压缩方法:
将一组相同的数据序列转换成一个二元组,指出重复的成分以及在其序列中
出现的次数。形式如(x ,n )。
本例中,可用以下编码:6a2b4c3d6f 。
压缩前:21个代码。压缩后:10个代码。
如果字符串中含有数字,则可使用:“特殊字符+重复次数+字符”形式。 例如,对字符串:A A A A A B C C C C2C ,编码后得到:B B 5 A B B 4 C 2C 。编码串的开头说明特殊字符是B ,以后B 后面跟着的数字就表示重复的次数。
不仅字符串,一些图像具有许多颜相同的图块。在这些图块中,许多行上都具有
相同的颜,或者在一行上有许多连续的像素具有相同的颜值。这时就可仅存储一个像素的颜值,以及具有相同颜的像素数目(或具有相同颜值的行数)。这种压缩编码称为行程编码(RLE),具有相同颜并且是连续的像素数目称为行程长度。 RLE 压缩编码适用于计算机生成的图像,但对颜丰富的自然图像,由于在同一行
上具有相同颜的连续像素往往很少,而连续几行都具有相同颜值的更少。如果仍然简单使用RLE 编码则数据不能有效压缩,甚至可能使原来的图像数据变得更大。 RLE 的典型应用是传真及TIFF 格式的图像和PDF 文件。
1.3.3 图像和音频视频信息的压缩
1. 图像压缩
【例】下图显示字符“a ”的字形及位图编码。
(注:此处为说明方便采用10*12点阵,实际使用中常采用16*16、24*24、32*32、48*48点阵)
1) 使用RLE 压缩
假定编码中白像素个数在前。可写出“a ”的压缩位图编码:
在“a ”的位图中,第一行包含3个白像素,接着是4个黑像素,然后又是3个
白像素。于是这一行被编码为(3,4,3)。
其他行也用此方法进行编码,… … 顺利完成,似乎没有什么问题。
但考虑第八行的编码(注意它以黑像素开头):
如编码为(2,5,1,2)会出现什么问题?
一种解决的方法是用0表示以黑像素开头。现在第八行的编码应该是(0,2,5
,
0001111000
0110001100
010*******
010*******
0000011100
0001100100
0110000100
1100000100
1100000100
1100000100
0110011110
0011100111
1,2)。
如果行程长度为3位二进制数,可表示的最大连续黑/白像素数为7(111)对上图所示的10*12点阵,显然直接使用右边的点阵编码更经济,如使用行程长度为3位二进制数的RLE编码,第一行(3,4,3)应为(011,100,011)仅省1位,第八行(0,2,5,1,2)应为(000,010,101,001,010)反而多用五位。但对32*32、48*48点阵则使用RLE编码可节省可观的存储空间。
还要考虑如果同颜像素的个数超出了行程长度上限的解决方法。
【应用】传真机—使用RLE编码进行图像压缩的典型应用
传真机先将一幅白底黑字的文稿扫描成1000*2000像素的图像,用RLE压缩后再传送给接收方。接收方的传真机解压缩后将这些像素打印在纸张上。字符串是什么颜
传真的图像一般压缩为原图像的1/7大小,这意味着数据和传真时间将减少6/7。
2)其他的图像压缩方法*
GIF(Graphic Interchange Format)
GIF是一个典型的字典编码压缩技术。它的基本思想是,首先将像素彩数减少到256个(这样只需八位二进制编码),并将彩的编码存储在一个称为调板的彩字典中。图像中的每个像素都可以用一个字节表示,字节的值指出在256个调条目中哪一个表示像素的颜。
通过将上述简单的字典编码扩展为自适应字典编码,GIF可以进一步提高压缩率(压缩过程中不断将新的像素模式添加到字典中,最终的字典将由原始调板和一组像素模式构成)。
JPEG(Joint Photographic Experts Group)
JPEG压缩标准是多种压缩方法的混合体。
JPEG的图片使用的是YCrCb颜模型,而不是计算机上最常用的RGB模型。YCrCb 模型中,Y代表了光源的亮度,度信息组合在Cr、Cb中。其中Cr代表了光源中的红分量,Cb代表了光源中的蓝分量。
亮度给出了颜亮或暗的程度信息,是人在观察光照时感知亮度变化的心理上的度量。JPEG的图像压缩是利用人眼对彩感觉的局限性设计的,它重点是对彩信息压缩。因为相对于亮度变化,人眼对彩变化不太敏感,所以完全可以让相临的像素使用同一个度值,而人眼的感觉不会起太大的变化,通过损失度信息来达到节省存储空间的目的。
JPEG压缩过程大致如下:
采样:首先对颜模式进行转换,然后进行数据采样:在每个2×2的像素方块中,求度的平均值。将度信息的大小减少为1/4(每4个像素共用
1个度数据),但仍保留其亮度信息。
变换:将图像信号在频率域上进行变换(所谓频率就是颜改变的速度),分离出高频和低频信息。对图像的高频部分(即图像细节)进行压缩──将
图像拆分为8×8的像素块,然后利用离散余弦转换(Discrete Cosine
Transformation,DCT)对像素块进行转换。转换后的数据反映了原始块中像
素间的关系,但并不是实际像素值。在转换后的数据块中,那些低于设定阈
值的数值被0替代。
(为了有效和快速地对图像进行分析和处理,常需将原定义在图像空间的数据以某种方式转换到另一些空间,并利用在这些空间的特有性质方便进行一定
的加工,最后再转换回原图像空间,以获得所需的效果。)
量化:由于下面一步编码过程中使用的码本都是整数,因此要对频率系数进行量化,将其转换为整数。数据量化后,矩阵中的数据都是近似值,和原始
图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因(这一
过程中,质量因子的选取值大,可以大幅度提高压缩比,但是图像质量就比
较差,质量因子越小图像重建质量越好,但是压缩比越低)。
编码:编码是基于统计特性的方法。并结合使用行程编码、差分编码和huffman编码等压缩技术进一步缩小图像体积。
JPEG压缩过程
JPEG解码过程
【课堂练习】一幅位图图片(BMP格式),在图形处理软件中将其分别另存为GIF和JPEG格式。比较三种格式文件的大小和图形质量变化。
2. 音频、视频压缩
对于音频和视频数据,只要不损失数据的重要部分,一定程度的质量下降是可以接受的。通过利用人类感知系统的局限,能够大幅度节约存储空间,并且得到的结果质量与原始数据质量相比并没有明显的差别。这些有损数据压缩方法通常需要在压缩速度、压缩数据大小以及质量损失这三者之间进行折衷。
最常用的压缩标准MPEG
运动图像专家组(Motion Picture Experts Group,MPEG)研制开发的音、视频压缩
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论