1、基本概念 信息与数据: ·数据: 用来记录和传送信息,或者说数据是信息的载体。 数据冗余 ·冗余:信息量与数据量的差。 压缩编码 ·预测编码 ·变换编码 ·向量量化编码 ·统计编码 ·子带编码 ·模型编码 量化 ·采样: 把时间上连续的模拟信号变成离散的有限个样值的信号。 编码 ·脉冲调制编码 ·差分脉冲编码调制 ·自适应差分脉冲编码 ·自适应脉冲编码调制 ·增量调制 ·自适应增量调制 运动图像压缩标准MPEG ·I图像(帧内图):是利用图像自身的相关性压缩,提供压缩数据流中的随机存取的点,采用基于ADCT的编码技术,压缩后,每个像素为1~2比特。 ·P图像(预测图):是用最近的前一个I图像(或P图像)预测编码得到(前向预测),也可以作为下一次预测的参照图像。 ·B图像(插补图):在预测时,既可使用前一个图像作参照,也可使用下一个图像作参照或同时使用前后两个图像作为参照图像(双向预测)。P图像(predicted picture),B图像(bidirectional picture)。 ·运动补偿:运动补偿假设当前图片是前面图片的某种平移:当某帧图片被作为参考帧时,当前编码的帧和参考帧相比只是由于摄像机的移动造成两者的不同,这就为使用预测和内插提供了机会。MPEG中,基于块。 ·预测编码:运动补偿试图在压缩时补偿物体或摄像机的这一运动。为了更简单的对帧进行比较,帧并不是作为一个整体被编码。而是分成块,对块编码。对 雨帧内每个要被编码的块,参考帧中的最佳匹配块都是在许多候选块中搜索得到的。对每个块都会产生一个运动向量(一个有大小、有方向的量)。我们可以把这个 向量看成一个有方向的箭头,从参考帧中的位置指向正被编码的帧中的块的新位置。 ·内插编码:也称为插补法,运动向量的产生与两个参考帧相关,在两个参考帧中搜索最佳匹配块,取平均值作为块在当前帧中的位置。 声音编码 ·波形编译码器 ·音源编译码器 ·混合编码器 2、信息与数据 2.1、信息与数据的概念 一个消息的可能性越小,其信息越多;消息的可能性越大,则信息越少。在数学上,所传输的消息是其出现概率的单调下降函数。信息量是指从N个相等 可能事件中选出一个事件所需要的信息度量或含量,也就是在辨识N个事件中特定的一个事件的过程中所需要提问“是或否”的最少次数。 例如,要从256个数中选定某一个数,可以先提问“是否大于128?”,不论回答是或否都消去了半数的可能事件,这样继续问下去,只要提问8次 这类问题,就能从256个数中选定某一个数,这是因为每提问一次都会得到1bit的信息量。因此,在256个数中选定某一个数所需要的信息量 是:log2256=8bit。 ·数据:用来记录和传送信息,或者说数据是信息的载体。 设从N个数中选定任一个数x的概率为p(x)。假定选定任意一个数的概率都相等,即p(x)=1/N, 定义信息量为: I(x)=log2N=-log(1/N)=-log2p(x)=I[p(x)] 如果将信源、所有可能事件的信息量进行平均,就得到了信息的“熵”(entmpy)。信源X的符号集为xi(i=12 … N),设均出现的概率为p(xi),则信息源X的熵为 : H(X)=∑p(xi)·I [p(xi)] = -∑p(xi)log2p(xi) 2.2、信息的数据量和压缩的必要性 数字化了的视频、音频等媒体信息的数据量是很大的,下面分别以文本、图形、图像和声音等类型的信息为例,计算它的数据量。 ·文本 设屏幕的分辨率为768×512,字符大小为8×8点阵,每个字符用两个字节表示,则: ·矢量图形 矢量图形所需的存储空间是比较小的。
例如,存储一幅由500条直线组成的矢量图形,也就是要存储构造图形的线条信息,每条线的信息可由起点X、起点Y、终点X、终点Y、属性等五个项目表示,
其中属性一项是指线的颜色和宽度等性质。设屏幕大小为768×512,属性位用1字节表示,则: ·点阵图 以一个简单的全屏点阵图来看,设屏幕大小为768×512,每点是256色,则: ·数字化声音(语音) 声音的模拟带宽为4KHz,采样大小是8bit,采样频率为8kHz。存储1s这样的声音需要的空间为:8k×8=64kbit=8KB ·数字化高质量音频 声音的模拟带宽为22KHz,采样大小是32bit,采样频率至少为44KHz。存储1s这样的数字化音频需要的空间为:44×32=1408kbit=176KB ·数字化视频 PAL制式是欧洲和我国使用的彩色视频图像标准,其视频带宽为5MHz,帧速率为25帧/s,样本宽是24bit,采样频率至少为1OMHz。因而存储一帧数字化的PAL制式视频图像需要的空间为:10/25×24=9.6Mbit=1.2MB 2.3、传输多媒体信息的数据率和带宽 数字音频的数据率
数字电视图像的数据率 ( 未经压缩 ) 如下表所示
·SIF:Souce Input Fomat 对于数字化声音、高音频信号以及视频图像,由于要实时播放,因而还要求加大CPU与内存、外存之间的传输频带宽度: ·全彩色、全屏幕、全运动的视频图像要求数据传输带宽为3OMB/s。高质量音频要求数据传输带宽为176KB/s。 3、数据冗余的类别 3.1、冗余的基本概念 信息量与数据量的关系:I=D-du,I:信息量;D:数据量;du:冗余量,是指数据量D中含有的数据冗余。 3.2、数据压缩可行性 ·因为视频图像或音频信号等原始信号源存在着很大的冗余度。 ·由于人的视觉对亮度信息很敏感,而对边缘的急剧变化不敏感(视觉遮盖效应),同时听觉也队部分频率的音频信号不敏感。 ·因此视频或音频的数据压缩后,再做解压处理,人对恢复后的图像或音频信号仍有满意的主观感觉,也就是说,人的感觉能接受这种数据压缩。 3.3、数据冗余的类别 (1)空间冗余:规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余。例如:某图片的画面中有一个规则物体,其表面颜色均匀, 各部分的亮度、饱和度相近,把该图片作数字化处理,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完全一样的数据当然可以压缩,而十分接 近的数据也可以压缩,因为恢复后人亦分辨不出它与原图有什么区别,这种压缩就是对空间冗余的压缩。 (2)时间冗余:序列图像(如电视图像和运动图像)和语音数据的前后有着很强的相关性,经常包含着冗余。在播出该序列图像时,时间发生了推移,但若干幅画面的同一部位没有变化,变化的只是其中某些地方,这就形成了时间冗余。 (3)统计冗余:空间冗余和时间冗余是把图像信号看作概率信号时所反应出的统计特性,因此,这两种冗余也被称为统计冗余。 (4)编码冗余:同样长度的编码可以表示不同的信息。 (5)结构冗余:相似的,对称的结构如果都加以记录就出现结构冗余。 (6)知识冗余:由图像的记录方式与人对图像的知识差异而产生的冗余。人对许多图像的理解与某些基础知识有很大的相关性。许多规律性的结构人可以由先验知识和背景知识得到。而计算机存储图像时还得把一个个像素信息存入,这就形成冗余。 (7)视觉冗余:视觉系统对于图像场的注意是非均匀和非线性的,视觉系统不是对图像的任何变化都能感知。 4、常用数据压缩技术概述 4.1、根据解码后数据与原始数据是否完全一致进行分类,数据压缩方法一般划分为两类: ·无损压缩:解码图像与原始图像严格相同。压缩比大约在2:1~5:1之间。如Huffman编码、算术编码、行程长度编码等。 ·有损压缩:还原图像与原始图像存在一定的误差,但视觉效果一般可以接受,压缩比可以从几倍到上百倍。 4.2、根据数据压缩的原理进行划分,可以有以下几类: ·预测编码 它是利用空间中相邻数据的相关性,利用过去和现在出现过的点的数据情况来预测未来点的数据。通常用的方法是差分脉冲编码调制(DPCM)和自适应差分脉冲编码调制(ADPCM)。 ·变换编码 该方法将图像光强矩阵(时域信号)变换到频域空间上进行处理。在时域空间上具有强相关的信号,反映在频域上是某些特定的区域内能量常常被集中在一 起,我们只需将主要注意力放在相对小的区域上,从而实现压缩。一般采用正交变换,如离散余弦变换(DCT)、离散傅立叶变换(DFT)、Walsh- Hadamard变换(WHT)和小波变换(WT),来实现压缩算法。 ·量化与向量量化编码 对模拟信号进行数字化时,要经历一个量化的过程。为了使整体量化失真最小,就必须依照统计的概率分布设计最优的量化器。最优量化器一般是非线性的, 已知最优量化器是Max量化器。我们对像元点进行量化时,除了每次仅量化一个点的做法外,也可以考虑一次量化多个点的做法,这种方法称为向量量化。例如我 们每次量化相邻的两个点,将两个点用一个量化码字表示。向量量化的数据压缩能力实际上与预测方法相近。 ·统计编码(信息熵编码) 这是根据信息熵原理,让出现概率大的符号用短的码字表达,反之用长的码字表示。最常见的方法如Huffman编码、Shannon编码以及算术编码。 ·子带(subband)编码 将图像数据变换到频域后,按频域分带,然后用不同的量化器进行量化,从而达到最优的组合。或者分步渐近编码,在初始时,对某一频带的信号进行解码,然后逐渐扩展到所有频带。随着解码数据的增加,解码图像也逐渐变得清晰。 ·模型编码 编码时首先将图像中的边界、轮廓、纹理等结构特征找出来,然后保存这些参数信息。解码时根据结构和参数信息进行合成,恢复原图像。具体方法有轮廓编码、域分割编码、分析合成编码、识别合成编码、基于知识的编码和分形编码等。 5、量化的概念 5.1、采样 5.1.1、取样的概念 又称为采样,把时间上连续的模拟信号变成离散的有限个样值的信号。 5.1.2、采样定律 香农定理对于一个包含最高频率f0的模拟信号,但选择的采样频率f满足f>=2f0时,经过取样后的离散信号能够包含原模拟信号的全部信息,并且,经过反变换和低通滤波,可以不失真地恢复出原始信号。 5.2、量化 定义:量化是在幅度轴上把连续值的模拟信号变成为离散值的数字信号,在时间轴上已变为离散的样值脉冲,在幅度轴上仍会在动态范围内有连续值,可能出现任意幅度,即在幅度轴上仍是模拟信号的性质,故还必须用有限电平等级来代替实际量值。 设信号的整个动态变化范围为A,共分为M个量化等级;每个量化等级为 △A,则有:△A=A/M。量化级通常用二进制的位数n表示,它与十进制数M之间的关系为M=2n或n=log2M通常称为量化位数。例如,对于8位 (bit)量化,相应的十进制量化等级M为:M=2^8=256。 量化的过程是把取样后信号的电平归并到有限个电平等级上,并以一个相应的数据来表示。按归并方式, 可分为只舍不入方式和舍入方式。 ·只舍不入方式,又称截尾方式,即当取样信号电平处在两个量化等级之间时,将其归并到下面的量化等级上,而把超过部分舍去。 ·舍取方式,又称四舍五入方式,当取样信号电平超过某一量化等级一半时,归并到上一量化等级;低于该量化等级一半时,则归并到下一量化等级。不言而 喻,在只舍不入方式中,量化后的电平与取样信号实际电平之间的最大偏差(量化误差)为一个量化等级△A,而在四舍五入方式中误差为△A。由于四舍五入方式 的量化误差小,故通常选用这种方式。 5.3、编码 编码是把代表特定量化等级的比较器的输出状态组合,变换成一个n位表示的二进制数码,即每一组二进制码代表一个取样值的量化电平等级。由于每个 样值的量化电平等级由一组n位的二进制数码表示,所以,取样频率f与n位数的乘积nf就是每秒需处理和发送的位数,通常称为比特率或数码率。例如,CD音 响的采样频率选用44.1kHz,量化位数n=16,采用立体声,相应的比特率为:44.1kHz×16×2/8=176.4kB/s。 6、统计编码(信息熵编码) 统计编码是根据消息出现概率的分布特性而进行的压缩编码,它有别于预测编码和变换编码。这种编码的宗旨在于,在消息和码字之间找到明确的一一对 应关系,以便在恢复时能准确无误地再现出来,或者至少是极相似地找到相当的对应关系,并把这种失真或不对应概率限制到可容忍的范围内。但不管什么途径,它 们总是要使平均码长或码率压低到最低限度。 常用的编码有:Huffman码、Shannon-Famo码、算术编码等。 6.1、哈夫曼(Huffman)编码 6.1.1、哈夫曼编码的方法 编码过程如下: (1)、将信源符号按概率递减顺序排列; 6.1.2、哈夫曼编码的特点 ①、哈夫曼方法构造出来的码不是唯一的。 原因: ②、哈夫曼编码码字字长参差不齐,因此硬件实现起来不大方便。 ③、哈夫曼编码对不同的信源的编码效率是不同的。 ·当信源概率是2的负幂时,哈夫曼码的编码效率达到100%; ④、对信源进行哈夫曼编码后,形成了一个哈夫曼编码表。解码时,必须参照这一哈夫编码表才能正确译码。 ·在信源的存储与传输过程中必须首先存储或传输这一哈夫曼编码表在实际计算压缩效果时,必须考虑哈夫曼编码表占有的比特数。在某些应用场合,信 源概率服从于某一分布或存在一定规律(这主要由大量的统计得到),这样就可以在发送端和接收端固定哈夫曼编码表,在传输数据时就省去了传输哈夫曼编码表, 这种方法称为哈夫曼编码表缺省使用。 使用缺省的哈夫曼编码表有两点好处: ·降低了编码的时间,改变了编码和解码的时间不对称性; 6.1.3、哈夫曼编码举例 现在有8个待编码的符号M0,…,M0它们的概率如下表所示,使用霍夫曼编码算法求出8个符号所分配的代码。(写出编码树) 解:为了进行哈夫曼编码,先把这组数据由大到小排列,再按上方法处理 6.2、Shannon-Famo编码 Shannon-Famo(S-F)编码方法与Huffman的编码方法略有区别,但有时也能编出最佳码。 6.2.1、S-F码主要准则 符合即时码条件;在码字中,1和0是独立的,而且是(或差不多是)等概率的。这样的准则一方面能保证无需用间隔区分码字,同时又保证每一位码字几乎有1位的信息量。 6.2.2、S-F码的编码过程 ·信源符号按概率递减顺序排列; 6.3、游程编码 游程编码(简写为RLE或RLC)是一种十分简单的压缩方法,它将数据流中连续出现的字符(称为游程)用单一的记号来表示。例如,字符串: a b a C C C b b a a a a 可以压缩为: a b a 3c 2b 4a 游程编码的压缩效果不太好,但由于简单,编码/解码的速度非常快,因此仍然得到广泛的应用。许多图形和视频文件,如.BMP、.TIF及.AVI等,都使用了这种压缩。 6.4、算术编码 6.4.1、算术编码 算术编码把一个信源集合表示为实数线上的0到1之间的一个区间。这个集合中的每个元素都要用来缩短这个区间。信源集合的元素越多,所得到的区间 就越小,当区间变小时,就需要更多的数位来表示这个区间,这就是区间作为代码的原理。算术编码首先假设一个信源的概率模型,然后用这些概率来缩小表示信源 集的区间。 6.4.2、举例说明算术编码过程 [例]设英文元音字母采用固定模式符号概率分配如下: 设编码的数据串为eai。令high为编码间隔的高端,low为编码间隔的低端,range为编码间隔的长度,rangelow为编码字符分配的间隔低端,rangehigh为编码字符分配的间隔高端。 初始high=1,low=0,range=high-low,一个字符编码后新的low和high按下式计算: ·low =low+range × rangelow (1)、在第一个字符e被编码时,e的rangelow=0.2,rangehigh=0.5,因此: low=0 + 1 × 0.2 = 0.2 (2)、第二个字符a编码时使用新生成范围[0.2,0.5],a的rangelow=0,rangehigh=0.2,因此: low=0.2 十 0.3 × 0=0.2 (3)、对下一个字符i编码,i的rangelow=0.5,rangehigh=0.6,则: low=0.2 + 0.06 × 0.5=0.23 6.4.3、算术编码的特点 ①、不必预先定义概率模型,自适应模式具有独特的优点; 7、脉冲编码调制(PCM) 脉冲编码调制(pulse code modulation,PCM),它是概念上最简单、理论上最完善的编译系统。PCM的编码原理比较直观和简单,它的输入是模拟信号,输出是PCM样本。 第一步采样,每隔一段时间间隔读一次声音的幅度。 第二步量化,把采样得到的声音信号幅度转换成数字值,有两类量化的标准。 ·均匀量化:采用相同间隔对采样得到的信号做量化,也成为线性量化。量化时无论对多大的输入信号还是对多小的输入信号一律采用相同的量化间隔。为了适应幅度大的输入信号,同时又要满足精度的要求,就需要增加样本的位数。 ·非均匀量化:对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔。在非线性量化中,采用输入信号幅度和量化 输出数据之间定义了两种对应关系,一种是在北美日本使用的压扩标准是U律(G.711);另一种是在欧洲中国大陆使用A律(G.711)。 8、预测编码 ·预测编码的概念 根据某一模型利用以往的样本值对于新样本值进行预测,然后将样本的实际值与其预测值相减得到一个误差值,并对这一误差值进行编码。如果模型足够 好并且样本序列在时间上相关性较强,那么误差信号的幅度将远远小于原始信号,从而可以得到较大的数据压缩,可见,建立一个理想的预测器是很关键的。 8.1、差分脉冲编码调制(DPCM) 差分脉冲编码调制(DPCM)最简单的预测压缩算法是在像素级使用差分脉冲编码调制技术。 ·差分编码调制原理 对于比较相邻的两个像素,只传送像素间的差异之处,由于相邻像素通常是类似的,它们之间的差值很小,因而传送差值需要的位数总是小于传送整个像素需要的位数。 8.2、自适应脉冲编码调制(ADPCM) APCMS是一种根据输入信号幅度大小改变量化阶大小的一种波形编码技术。这种自适应可以是瞬间自适应,改变量化阶的大小方法有两种: ·前向自适应(forward adaptation)就是根据未量化的样本值的均方根来估算输入信号的电平,以此来确定量化阶的大小,并对其电平进行编码作为边信息传送到接收端。 8.3、自适应差分脉冲编码调制(ADPCM) ADPCM综合了APCM的自适应特性和DPCM系统的差分特性,是一种性能比较好的波形编码。它的核心想法是: ①、利用自适应改变量化阶的大小,即使用小的量化阶去编码小的差值,使用大的量化阶去编码大的差值。 8.4、增量调制(DM,delta modulation) 它是一种预测编码技术,是PCM编码的一种变形。PCM是对每个采样信号的整个幅度进行量化编码,因此它具有对任意波形进行编码的能力。 DM是对实际的采样信号与预测的采样信号之差的极性进行编码,将极性变成“0”和“1”这两种可能的取值之一,如果实际的采样信号与预测的采样 信号之差的极性为正,则用“1”表示;相反则用“0”表示,或者相反。由于DM编码只需一位对信号进行编码,所以DM编码系统又称为“1位系统”。 8.5、自适应增量调制(ADM,adaptive delta modulation) 为了使增量调制器的量化阶也能自适应,也就是根据输入信号斜率的变化自动调整量化阶的大小,以使斜率过载和粒状噪声都减到最小。几乎所有的方法基本上都是检测到斜率过载时就开始增大量化阶,而在输入信号的斜率减小时降低量化阶。 9、频域编码 9.1、变换编码(transform coding) 9.1.1、变换编码简介 预测编码的方法能够压缩图像数据的空间和时间冗余性。特点是直观、简捷和易于实现。在传输速度要求很高的应用中,大多选用此方法。然而,预测方法的不足是压缩能力有限。为了更好地提高压缩能力,可以采用变换编码方法。 变换编码也是一种针对统计冗余进行压缩的方法,它是将图像光强矩阵(时域信号)变换到系数空间(频域)上进行处理的方法。 9.1.2、变换编码的思路 把一组数据转换成另一种表示形式,这种表示形式有利于实现某一特定目标。变换是可以反向进行的,即存在反变换,以恢复原来的数据。在图像压缩 中,一组数据是指一组像素(通常是二维数组)。变换将使这个二维数组数据量减少,以便于数据的传输和存储。解压缩时,利用反变换恢复原始像素。 9.1.3、变换编码的基本方法 对于一组给定的时序信号Y(t),分析这组信号的频率、能量甚至模式等固有的特征或者求解时,可利用如傅立叶变换或Z变换等工具,比直接对 Y(t)去积分和微分方便得多。这些变换是将时域上的信号Y(t)变换到频域上,再进行分析和求解,图像压缩问题亦可以变换到频域上去做。 9.1.4、变换方法的特点 ①、在频域上信息是按频谱的能量与频率分布排列的。在傅氏变换平面上,图像信号场的能量集中在以圆点为中心的圆环内,因而只要对频域平面量化器进行合理的比特分配,高能量区给以高比特,低能量区给以低比特,就可以得到高的压缩能力。 ②、变换运算比其他方法的计算复杂性高。实际应用中做图像压缩处理时,常用Hadamazd变换、离散余弦变换和傅立叶变换等。 9.2、子带编码(subband coding) 子带编码又称分频带编码。它将图像数据变换到频域后,按频率分带,然后用不同的量化器进行量化,达到最优的组合。 语言和图像信息都有较宽的频带,信息的能量集中于低频区域,细节和边缘信息则集中于高频区域。子带编码采取保留低频系数舍去高频系数的方法进行编码,操作时对低频区域取较多的比特数来编码,以牺牲边缘细节为代价来换取比特数的下降,恢复后的图像比原图模糊。 子带编码把原始图像分割成不同频段的子频段带,对不同的频段子带设计独立的预测编码器,分别进行编码和解码。子带编码的结构原理如图所示。 子带编码的特点是:有较高的压缩比和信噪比。 |
|