1、* 1单击此处编辑母版标题样式单击此处编辑母版副标题样式高等学校 21世纪教材 多媒体技术教程 人民邮电出版社国防科学技术大学 版权所有第三章 多媒体数据压缩* 2单击此处编辑母版标题样式单击此处编辑母版副标题样式高等学校 21世纪教材 多媒体技术教程 人民邮电出版社国防科学技术大学 版权所有3.1 数据压缩的基本原理和方法3.1 数据压缩的基本原理和方法 压缩的必要性音频、视频的数据量很大,如果不进行处理,计算机系统几乎无法对它进行存取和交换。例如,一幅具有中等分辨率( 640480 )的真彩色图像( 24b/像素),它的数据量约为 7.37Mb/帧,一个 100MB( Byte) 的硬盘只
2、能存放约 100帧图像。若要达到每秒 25帧的全动态显示要求,每秒所需的数据量为 184Mb, 而且要求系统的数据传输率必须达到 184Mb/s。 对于声音也是如此,若采用 16b样值的 PCM编码,采样速率选为 44.1kHZ, 则双声道立体声声音每秒将有 176KB的数据量。3.1 数据压缩的基本原理和方法 视频、 图像、声音有很大的压缩潜力信息论认为:若信源编码的熵大于信源的实际熵,该信源中一定存在冗余度。原始信源的数据存在着很多冗余度:空间冗余、时间冗余、视觉冗余、听觉冗余等。3.1.1 数据压缩技术的性能指标数据压缩技术的性能指标节省图象或视频的存储容量,增加访问速度,使数字视频能在
3、 PC机上实现,需要进行视频和图象的压缩。有三个关键参数评价一个压缩系统l压缩比l图象质量l压缩和解压的速度另外也必须考虑每个压缩算法所需的硬件和软件。3.1.1 数据压缩技术的性能指标数据压缩技术的性能指标1 压缩比压缩性能常常用压缩比定义(输入数据和输出数据比)例: 512480 , 24bit/pixel(bpp)输出 15000byte 输入 737280byte 压缩比 737280/15000 493.1.1 数据压缩技术的性能指标数据压缩技术的性能指标2 图象质量压缩方法: 无损压缩 (图象质量不变)有损压缩有损压缩:失真情况很难量化,只能对测试的图象进行估计。模拟图象质量的指标
4、:信噪比、分辨率、颜色错,但必须在观察了实际图象以后。3.1.1 数据压缩技术的性能指标数据压缩技术的性能指标3 压缩解压速度在许多应用中,压缩和解压可能不同时用,在不同的位置不同的系统中。所以,压缩、解压速度分别估计。静态图象中,压缩速度没有解压速度严格;动态图象中,压缩、解压速度都有要求,因为需实时地从摄像机或 VCR中抓取动态视频。3.1.1 数据压缩技术的性能指标数据压缩技术的性能指标4 硬软件系统有些压缩解压工作可用软件实现。设计系统时必须充分考虑:算法复杂 压缩解压过程长算法简单 压缩效果差目前有些特殊硬件可用于加速压缩 /解压。 硬接线系统速度快,但各种选择在初始设计时已确定,一
5、般不能更改。因此在设计硬接线压缩 /解压系统时必须先将算法标准化。3.1.2 数据冗余的类型与压缩方法分类1. 数据冗余的类型一幅图象中同一种颜色不止一个象素点,若相邻的象素点的值相同,象素点间(水平、垂直)有冗余。 (空间冗余)当图象的一部分包含占主要地位的垂直的源对象时,相邻线间存在冗余。 (空间冗余)若图象稳定或只有轻微的改变,运动序列帧间存在冗余。 (时间冗余)3.1.2 数据冗余的类型与压缩方法分类l空间冗余:在同一幅图像中,规则物体和规则背景的表面物理特性具有相关性,这些相关性的光成像结果在数字化图像中就表现为数据冗余。l时间冗余:时间冗余反映在图像序列中就是相邻帧图像之间有较大的
6、相关性,一帧图像中的某物体或场景可以由其它帧图像中的物体或场景重构出来。音频的前后样值之间也同样有时间冗余。3.1.2 数据冗余的类型与压缩方法分类l信息熵冗余:信源编码时,当分配给第 i个码元类的比特数 b( yi) =-logpi, 才能使编码后单位数据量等于其信源熵,即达到其压缩极限。但实际中各码元类的先验概率很难预知,比特分配不能达到最佳。实际单位数据量 dH( S), 即存在信息冗余熵。l视觉冗余:人眼对于图像场的注意是非均匀的,人眼并不能察觉图像场的所有变化。事实上人类视觉的一般分辨能力为 26灰度等级,而一般图像的量化采用的是 28灰度等级,即存在着视觉冗余。3.1.2 数据冗余
7、的类型与压缩方法分类l听觉冗余:人耳对不同频率的声音的敏感性是不同的,并不能察觉所有频率的变化,对某些频率不必特别关注,因此存在听觉冗余。l其它冗余:包括结构冗余、知识冗余等。3.1.2 数据冗余的类型与压缩方法分类2. 数据压缩技术分类根据解码后数据与原始数据是否完全一致可以分为两大类:一类是熵编码、冗余压缩法,也称无损压缩法、无失真压缩法;二是熵压缩法,也称有损压缩法、有失真压缩法。从 “ 熵 ” 损失角度分为无损压缩和有损压缩两种:无失真压缩,又称熵编码。由于不会失真,多用于文本、数据的压缩,但也有例外,非线性编辑系统为了保证视频质量,有些高档系统采用的是无失真压缩方法。有失真压缩,又称
8、熵压缩法。大多数图像、声音、动态视频等数据的压缩是采用有失真压缩。3.1.2 数据冗余的类型与压缩方法分类从信息语义角度分为 “ 熵 (平均信息量 )编码 ”和 “ 源编码 ” 两种:熵 (平均信息量 )编码 (Entropy Coding)熵编码是一种泛指那些不考虑被压缩信息的性质的编码和压缩技术。它是基于平均信息量的技术把所有的数据当作比特序列,而不根据压缩信息的类型优化压缩。也就是说,平均信息量编码忽略被压缩信息的语义内容。 熵编码分为:重复序列消除编码 (含:消零、行程编码 )、统计编码等。3.1.2 数据冗余的类型与压缩方法分类源编码 (Source Coding)源编码的冗余压缩取
9、决于初始信号的类型、前后的相关性、信号的语义内容等。源编码比严格的平均信息量编码的压缩率更高。当然压缩的程度主要取决于数据的语义内容,比起平均信息量编码,它的压缩比更大。源编码主要分为 :预测编码、变换编码、向量量化等。3.1.2 数据冗余的类型与压缩方法分类Source CodingPrediction : DPCM and DMTransformation : FFT、 DCTLayered : Sub-band、 Sub-sampling and Bit PositionVector QuantizationHybrid Coding JPEG、 MPEG、 H.261 、DVI、 In
10、tel-IndeoEntropy CodingRun Length CodingStatistical CodingHuffmanArithmetic3.1.3 常用数据压缩方法的基本原理1. 统计编码方法是:识别一个给定的流中出现频率最高的比特或字节模式,并用比原始比特更少的比特数来对其编码。即就是,频率越低的模式,其编码的位数越多,频率越高的模式编码位数越少。若码流中所有模式出现的概率相等,则平均信息量最大, 信源 就没有冗余。3.1.3 常用数据压缩方法的基本原理(1)行程编码 (Run Length Coding)是最简单、最古老的压缩技术之一,主要技术是检测重复的比特或字符序列,并用
11、它们的出现次数取而代之。该方法有两大模式:一是消零 (消空白 ),二是行 (游 )程 (run length)编码。消零 (或消空白 )法将数字中连续的 “0” 或文本中连续的空白用一个标识符 (或特殊字符 )后跟数字 N(连续 “ 0” 的个数 )来代替。如数字序列: 742300000000000000000055编码为: 7423Z18553.1.3 常用数据压缩方法的基本原理行 程编码法任何重复的字符序列可被一个短格式取代。该算法适合于任何重复的字符。一组 n 个连续的字符 c 将被 c 和一个特殊的字符取代。当然,若给定字符仅重复两次就不要用此方法。 任何重复 4次或 4次以上的字符
12、由 “ 该字符记号 (M) 重复次数 ” 代替 。例如数字序列: Name: . . . . . . . . . . CR编码为: Name: . M10 CR 3.1.3 常用数据压缩方法的基本原理(2) LZW 编码LZW 算法在压缩文本和程序数据的压缩技术中唱主角。它的压缩率高,压缩处理所化费的时间比其它方式要少。 LZW 编码时,首先将原始的数据分成多个条纹,每个条纹都单独进行压缩。 LZW 算法基于一个转换表或字串表,它将输入字符映象到编码中,使用可变长代码,最大代码长度为 12位。3.1.3 常用数据压缩方法的基本原理LZW 算法中的字串表对于每个条纹都不同,并且不必保留给解压缩程
13、序,因为解压缩过程中能自动建立完全相同的字串表。实际上,它是通过查找冗余字符串并将此字符串用较短的符号标记替代的压缩技术。3.1.3 常用数据压缩方法的基本原理(3) 哈夫曼编码1952年 Huffman提出了对统计独立信源能达到最小平均码长的编码方法,也即最佳码。最佳性可从理论上证明。这种码具有即时性和唯一可译性。该编码是常见的一种统计编码。对给定的数据流,计算其每个字节的出现频率。根据频率表,运用哈夫曼算法可确定分配各字符的最小位数,然后给出一个最优的编码。代码字存人代码表中。3.1.3 常用数据压缩方法的基本原理Huffman编码的优缺点优点: 当信源符号概率是 2的负幂次方时, Huf
14、fman 编码法编码效率达到 100%。一般情况下,它的编码效率要比其它编码方法的效率高,是最佳变长码。缺点: Huffman 码依赖于信源的统计特性,必须先统计得到信源的概率特性才能编码,这就限制了实际的应用。通常可在经验基础上预先提供 Huffman码表,此时性能有所下降。3.1.3 常用数据压缩方法的基本原理(4) 算术编码算术编码把一个信源集合表示为实数线上的 0到 1之间的一个区间。这个集合中的每个元素都要用来缩短这个区间。信源集合的元素越多,所得到的区间就越小,当区间变小时,就需要一些更多的数位来表示这个区间,这就是区间作为代码的原理。算术编码首先假设一个信源的概率模型,然后用这些
15、概率来缩小表示信源集的区间。3.1.3 常用数据压缩方法的基本原理新子区间的起始位置前子区间的起始位置当前符号的区间左端 前子区间长度新子区间的长度前子区间的长度 当前符号的概率(等价于范围长度)最后得到的子区间的长度决定了表示该区域内的某一个数所需的位数。3.1.3 常用数据压缩方法的基本原理2. 预测编码 (Prediction Coding)预测编码是指利用前面的一个或多个信号对下一个信号进行预测,然后对实际值和预测值的差进行编码。 DPCM与 ADPCM是两种典型的预测编码。3.1.3 常用数据压缩方法的基本原理(1)差分脉码调制 (DPCM)PCM(Pulse Code Modula
16、tion), 原始的模拟信号经过时间采样,然后对每一样值进行量化,作为数字信号传输。DPCM不对每一样值都进行量化,而是预测下一样值,并量化实际值和预测值之间的差。DPCM是基本的编码方法之一,在大量的压缩算法中被采用,比如 JPEG的 DC分量就是采用DPCM编码的。3.1.3 常用数据压缩方法的基本原理举例说明 DPCM编码原理:设 DPCM系统预测器的预测值为前一个样值,假设输入信号已经量化,差值不再进行量化。若 系统的输入为 0 1 2 1 1 2 3 3 4 4 ,则预测值为 0 0 1 2 1 1 2 3 3 4 ,差值为 0 1 1 1 0 1 1 0 1 0 ,差值的范围比输入样值的范围有所减小,可以用较少的位数进行编码。3.1.3 常用数据压缩方法的基本原理(2)自适应差分脉码调制 (ADPCM)为了进一步改善量化性能或压缩数据率,可采用自适应量化或自适应预测的方法。只要采用了其中的任一种自适应方法,均称为 ADPCM。自适应预测预测参数的最佳化依赖于信源的统计特性,要得到最佳的预测参数是一件繁琐的工作。而采用固定的预测参数往往又得不到好的性能。为了既能使性能较佳,又不致于有太大的工作量,可以将上述两种方法折衷考虑,采用自适应预测。