数字图像处理及应用(MATLAB)第5章.ppt
第五章第五章 数字视频及压缩编码技术数字视频及压缩编码技术 5.1 数字视频的几个概念数字视频的几个概念 5.2 视频检测技术视频检测技术5.3 视频压缩编码技术基础视频压缩编码技术基础5.4 熵编码熵编码 5.5 变换编码变换编码数字视频图像是把若干连续的静止图像(帧)在时间上关联起来,成为一个图数字视频图像是把若干连续的静止图像(帧)在时间上关联起来,成为一个图像序列。数字视频可被当作一个静止图像序列来处理。其中各帧的处理是相对独立像序列。数字视频可被当作一个静止图像序列来处理。其中各帧的处理是相对独立的,一般情况都是针对视频图像序列中的关键帧进行的。而数字视频技术中的核心的,一般情况都是针对视频图像序列中的关键帧进行的。而数字视频技术中的核心是图像压缩技术,这是由数字图像本身的特点所决定的。近年来,多媒体技术得到是图像压缩技术,这是由数字图像本身的特点所决定的。近年来,多媒体技术得到迅速发展,一个多媒体计算机系统必然涉及到静态图像和动态视频图像的各种处理。迅速发展,一个多媒体计算机系统必然涉及到静态图像和动态视频图像的各种处理。微电子和数字信号处理技术的应用,推动着计算机视频技术迅速发展。微电子和数字信号处理技术的应用,推动着计算机视频技术迅速发展。本章在介绍数字视频基本概念的基础上,讲述了视频检测技术和视频压缩技本章在介绍数字视频基本概念的基础上,讲述了视频检测技术和视频压缩技术,并对熵编码和变换编码进行阐述。术,并对熵编码和变换编码进行阐述。5.1 数字视频的几个概念5.1.1 模拟视频与数字视频视频就其本质而言,就是其内容随时间变化的一组静态图像(每秒视频就其本质而言,就是其内容随时间变化的一组静态图像(每秒2525或或3030帧)帧),所以视频又被称为运动图像或活动图像。模拟视频是一种用于传输图像和声,所以视频又被称为运动图像或活动图像。模拟视频是一种用于传输图像和声音且随时间连续变化的电信号。早期视频的获取、存储和传输都是采用模拟方音且随时间连续变化的电信号。早期视频的获取、存储和传输都是采用模拟方式。人们在电视上所见到的视频图像就是以模拟电信号的形式记录下来,并用式。人们在电视上所见到的视频图像就是以模拟电信号的形式记录下来,并用模拟调幅的手段在空间传播、再由磁带录像机将其模拟电信号记录在磁带上。模拟调幅的手段在空间传播、再由磁带录像机将其模拟电信号记录在磁带上。为了存储视觉信息,模拟视频信号的山峰和山谷必须通过模为了存储视觉信息,模拟视频信号的山峰和山谷必须通过模/数转换器数转换器(A/DA/D)来转变为数字的)来转变为数字的“0 0”或或“1 1”。这个转变过程就是我们所说的视频捕捉。这个转变过程就是我们所说的视频捕捉(或采集过程)。如果要在电视机上观看数字视频,则需要一个从数字到模拟(或采集过程)。如果要在电视机上观看数字视频,则需要一个从数字到模拟的转换器将的转换器将二进制二进制信息解码成模拟信号,才能进行播放。信息解码成模拟信号,才能进行播放。数字视频就是以数字形式记录的视频,数字视频有不同的产生方式、存储方式和播放方式,比如通过数字摄像机直接产生数字视频信号存储在数字带、磁盘上等。模拟视频的数字化包括许多技术问题,如电视信号具有不同的制式而且采用复合的YUV信号方式,而计算机工作在RGB空间;电视机是隔行扫描,计算机显示器大多逐行扫描;电视图像的分辨率与显示器的分辨率也不尽相同等等。因此,模拟视频的数字化主要包括色彩空间的转换、光栅扫描的转换以及分辨率的统一。模拟视频一般采用分量数字化方式,先把复合视频信号中的亮度和色度分离,得到YUV或YIQ分量,然后用三个模/数转换器对三个分量分别进行数字化,最后再转换成RGB空间。一般来说,视频包括可视的图像和可闻的声音,然而由于伴音是处于辅助的地位,并且在技术上视像和伴音是同步合成在一起的,因此具体讨论时有时把视频(video)与视像(visual)等同,而声音或伴音则总是用audio表示。所以,在用到”视频”这个概念时,它是否包含伴音要视具体情况而定。5.1.2 数字视频的特点 由于视频最初是以模拟的电信号形式产生和发展起来的,所以,数字由于视频最初是以模拟的电信号形式产生和发展起来的,所以,数字视频的发展也就必然从模拟视频数字化开始。这既是视频技术要求的,同视频的发展也就必然从模拟视频数字化开始。这既是视频技术要求的,同时也是计算机多媒体技术要求的。时也是计算机多媒体技术要求的。数字视频有以下几个特点:数字视频有以下几个特点:(1)在数字环境下,视频(包括音频)从整体上讲已不再是一个连续的随在数字环境下,视频(包括音频)从整体上讲已不再是一个连续的随时间变化的电信号,而是一个由离散数字时间变化的电信号,而是一个由离散数字“0”和和“1”编码的能够传输和编码的能够传输和记录的记录的“比特流比特流”。(2)在数字环境下,活动影音的图像也不再是连续的电子图像,而是一个在数字环境下,活动影音的图像也不再是连续的电子图像,而是一个不连续的以像素为单元的点阵化数字图像。图像的清晰与否是由点阵化的不连续的以像素为单元的点阵化数字图像。图像的清晰与否是由点阵化的像素数量决定的。像素数量决定的。(3)未经压缩的原始数字视频的数据量是非常大的。未经压缩的原始数字视频的数据量是非常大的。(4)在数字环境下,数字视频有无数种在数字环境下,数字视频有无数种“媒体格式媒体格式”。它们大都是按照。它们大都是按照不同的压缩编码标准、存储介质类型、记录方式及其平台类型等形成自己不同的压缩编码标准、存储介质类型、记录方式及其平台类型等形成自己不同的格式标准。不同的格式标准。(5)在数字环境下,数字视频是可以进行非线性编辑和非线性检索的,在数字环境下,数字视频是可以进行非线性编辑和非线性检索的,并可以有选择地进行实时和非实时播放,以及适应带宽条件调整画面分辨并可以有选择地进行实时和非实时播放,以及适应带宽条件调整画面分辨率。率。5.1.3 数字视频的采样格式 根据电视信号的特征,亮度信号的带宽是色度信号带宽的两倍。因此其数字根据电视信号的特征,亮度信号的带宽是色度信号带宽的两倍。因此其数字化时可采用幅色采样法,即对信号的色差分量的采样率低于对亮度分量的采样率。化时可采用幅色采样法,即对信号的色差分量的采样率低于对亮度分量的采样率。用用Y:U:V来表示来表示YUV三分量的采样比例,则数字视频的采样格式分别有三分量的采样比例,则数字视频的采样格式分别有4:1:1、4:2:2和和4:4:4三种。三种。视频视频图像既是空间的函数,也是时间的函数,而图像既是空间的函数,也是时间的函数,而且又是隔行扫描式,所以其采样方式比扫描仪扫描图像的方式要复杂得多。分量采且又是隔行扫描式,所以其采样方式比扫描仪扫描图像的方式要复杂得多。分量采样时采到的是隔行样本点,要把隔行样本组合成逐行样本,然后进行样本点的量化样时采到的是隔行样本点,要把隔行样本组合成逐行样本,然后进行样本点的量化。,YUV到到RGB色彩空间的转换等等,最后才能得到数字视频数据。色彩空间的转换等等,最后才能得到数字视频数据。(1)Y:U:V4:1:1 这种方式是在每4个连续的采样点上,取4个亮度Y的样本值,而色差U、V分别取其第一点的样本值,共6个样本。显然这种方式的采样比例与全电视信号中的亮度、色度的带宽比例相同,数据量较小。(2)Y:U:V4:2:2 这种方式是在每4个连续的采样点上,取4个亮度Y的样本值,而色差U、V分别取其第一点和第三点的样本值,共8个样本。这种方式能给信号的转换留有一定余量,效果更好一些。这是通常所用的方式。(3)Y:U:V4:4:4 在这种方式中,对每个采样点,亮度Y、色差U、V各取一个样本。显然这种方式对于原本就具有较高质量的信号源,可以保证其色彩质量,但信息量大。5.1.4 常用视频文件格式 视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点体影像视频两大类。网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点播、网络演示、远程教育、网络视频广告等因特网信息服务领域。现如今各种各样播、网络演示、远程教育、网络视频广告等因特网信息服务领域。现如今各种各样的视频格式很多,但是对于每一种视频格式都有各自的特点,只有熟悉了各种各样的视频格式很多,但是对于每一种视频格式都有各自的特点,只有熟悉了各种各样的视频格式,才能够为后来的视频格式的转换打好基础。下面就来简单地为给大家的视频格式,才能够为后来的视频格式的转换打好基础。下面就来简单地为给大家介绍一些常见的视频格式:介绍一些常见的视频格式:1.AVI格式 它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,但是其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,因此经常会遇到高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频。2.DV-AVI格式 DV的英文全称是Digital Video Format,是由索尼、松下、JVC等多家厂商联合提出的一种家用数字视频格式。目前非常流行的数码摄像机就是使用这种格式记录视频数据的。它可以通过电脑的IEEE 1394端口传输视频数据到电脑,也可以将电脑中编辑好的视频数据回录到数码摄像机中。这种视频格式的文件扩展名一般也是.avi,所以我们习惯地叫它为DV-AVI格式。3.MPEG格式 它的英文全称为Moving Picture Expert Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法从而减少运动图像中的冗余信息。MPEG的压缩方法说的更加深入一点就是保留相邻两幅画面绝大多数相同的部分,而把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4。MPEG-1:是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。MPEG-2:这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。MPEG-4:为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。这种视频格式的文件扩展名包括.asf、.mov和DivX、AVI等。4.MOV格式 美国Apple公司开发的一种视频格式,默认的播放器是苹果的QuickTimePlayer。具有较高的压缩比率和较完美的视频清晰度等特点,但是其最大的特点还是跨平台性,即不仅能支持MacOS,同样也能支持Windows系列。5.ASF格式 用户可以直接使用Windows自带的Windows Media Player对其进行播放。由于它使用了MPEG-4的压缩算法,所以压缩率和图像的质量都很不错。6.WMF格式 是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。主要优点包括:本地或网络回放、可扩充的媒体类型、可伸缩的媒体类型、多语言支持、环境独立性、丰富的流间关系以及扩展性等。5.1.5 数字视频常用处理技术 由于视频图像是由其内容随时间变化的一组静态图像组成,所以,在处理时,由于视频图像是由其内容随时间变化的一组静态图像组成,所以,在处理时,只要将连续的视频序列分出一帧帧的静态图像,应用静态图像处理技术于每帧即可。只要将连续的视频序列分出一帧帧的静态图像,应用静态图像处理技术于每帧即可。然而,视频图像从数据形式和表现特征来看都与静态图像不同,它所表现的信息量然而,视频图像从数据形式和表现特征来看都与静态图像不同,它所表现的信息量和丰富程度要远大于静态图像。其处理技术也不可能单单靠静态图像的处理技术,和丰富程度要远大于静态图像。其处理技术也不可能单单靠静态图像的处理技术,视频处理大多数根据时间轴上连续的视频帧之间存在的相关性,并结合静态图像的视频处理大多数根据时间轴上连续的视频帧之间存在的相关性,并结合静态图像的处理方法来达到所需的目的。视频图像常用的处理技术主要有视频检测、视频压缩、处理方法来达到所需的目的。视频图像常用的处理技术主要有视频检测、视频压缩、视频检索、视频剪辑和视频融合等内容,本章主要介绍视频检测和视频压缩。视频检索、视频剪辑和视频融合等内容,本章主要介绍视频检测和视频压缩。5.2 视频检测技术 视频检测视频检测所研究的所研究的对对象通常是象通常是图图像序列,运像序列,运动动目目标标分割的目的是从序列分割的目的是从序列图图像中像中将将变变化区域从背景中分割出来。静化区域从背景中分割出来。静态图态图像像f(x,y)是空间位置是空间位置(x,y)的函数,它与时的函数,它与时间间t变变化无关,只由化无关,只由单单幅静止幅静止图图像无法描述物体的运像无法描述物体的运动动。而。而图图像序列的每一幅称像序列的每一幅称为为一一帧帧,图图像序列一般可以表示像序列一般可以表示为为f(x,y,t),和静态图像相比,多了一个时间参数,和静态图像相比,多了一个时间参数t,当采集的多,当采集的多帧图帧图像像获获取取时间间时间间隔相等,那么,隔相等,那么,图图像序列也可表示像序列也可表示为为f(x,y,i),i为图为图像像帧帧数。通数。通过过分析分析图图像序列,像序列,获获取景物的运取景物的运动动参数及各种感参数及各种感兴兴趣的趣的视觉视觉信息信息是是计计算机算机视觉视觉的重要内容,而运的重要内容,而运动动分割是它的关分割是它的关键键技技术术。在应用视觉系统中,检测运动目标常用差分图像的方法,一般有两种情况,一在应用视觉系统中,检测运动目标常用差分图像的方法,一般有两种情况,一是当前图像与固定背景图像之间的差分称为减背景法,二是当前连续两幅图像是当前图像与固定背景图像之间的差分称为减背景法,二是当前连续两幅图像(时间间隔(时间间隔在应用视觉系统中,检测运动目标常用差分图像的方法,一般有两种情况,一是当前图像与固定背景图像之间的差分称为减背景法,二是当前连续两幅图像(时间间隔)之间的差分称为相邻帧差分法。所谓差影法,实际上就是图像的相减运算,是指把同一景物在不同时间拍摄的图像或同一景物在不同波段的图像相减。差值图像提供了图像间的差异信息,能用以指导动态监测、运动目标检测和跟踪、图像背景消除及目标识别等。其算法流程图如图所示。差影法视频检测流程图在银行金库内,摄像头每隔一小段时间拍摄一幅图像,并与上一幅图像做差影,如果图像差别超过了预先设置的阈值,说明有异常情况发生,这时就应该拉响警报。在利用遥感图像进行动态监测时,用差值图像可以发现森林火灾、洪水泛滥,监测灾情变化及估计损失等;也能用来监测河口、海岸的泥沙淤积及监视江河、湖泊、海岸等的污染。利用差值图像还能鉴别出耕地及不同的作物覆盖情况。可广泛应用于视频检测。5.2.1 帧间差分法图像差分法是在序列图像中,检测图像序列相邻两帧之间变化,通过逐像素比较可直接求取前后两帧图像对应像素点之间灰度值的差别。它是当图像背景不是静止时,无法用背景差值法检测和分割运动目标的另外一种简单方法。在这种方式下,帧f(x,y,i)与帧f(x,y,j)之间的变化可用一个二值差分图像Df(x,y)表示:式中T是阈值。同样,在差分图像中,取值为1的像素点代表变化区域。一般来说,变化区域对应于运动对象,当然它也有可能是由噪声或光照变化所引起的。阈值在这里同样起着非常重要的作用。对于缓慢运动的物体和缓慢光强变化引起的图像变化,在某些阈值下可能检测不到。图像差分法要求图像帧与帧之间要配准得很好;否则,容易产生大的误差。图像差分法可以将图像中目标的位置和形状变化突出出来。如下图(a)所示,设目标的灰度比背景亮,则在差分的图像中,可以得到在运动前方为正值的区域,而在运动后方为负值的区域,这样可以获得目标的运动矢量,也可以得到目标上一定部分的形状,如果对一系列图像两两求差,并把差分图像中值为正或负的区域逻辑和起来,就可以得到整个目标的形状。图(b)给出一个示例,将长方形区域逐渐下移,依次划过椭圆目标的不同部分,将各次结果组合起来,就得到完整的椭圆目标。(a)目标的运动矢量 (b)椭圆目标的检测示例 图像差分法运动检测原理5.2.2 背景差值法背景差值法是在假设图像背景不随图像帧数而变,即图像背景是静止不变的,可表示为b(x,y),这时让每一帧图像的灰度值减去背景的灰度值而得到一个差值图像id(x,y,i)的过程:式中:图像系列为f(x,y,i),(x,y)为图像位置坐标,i为图像帧数。二值化差值图像可通过设置一个阈值T而得到:取值为1和0的像素分别对应于前景(运动目标区域)和背景(非运动区域),阈值T的选择方法可采用静态图像中阈值分割所使用的方法,由此可见背景差值法的原理是比较简单的,利用该方法可以对静止背景下的运动目标进行分割。例 用背景差值法从静止的背景中分割出目标图像。%用背景差值法分割图像(要求两幅图像相称)f=imread(M1.bmp)%读入原始目标图像subplot(2,2,1);imshow(f);%显示原始图像title(原始图像);b=imread(b.bmp);subplot(2,2,2);imshow(b);%显示背景图像title(背景图像);df=im2double(f);%转换图像矩阵为双精度型db=im2double(b)c=df-db;%差值图像计算d=im2uint8(c);%转换图像矩阵为8位无符号整型subplot(2,2,3);imshow(d);%显示差值图像title(差值图像)T=50;%阈值T=T/255i=find(abs(c)=T)%阈值分割处理c(i)=1;i=find(abs(c)T)c(i)=0;subplot(2,2,4);imshow(c);%显示二值化差值图像title(二值化差值图像);(a)原始图像 (b)背景图像 (c)差值图像 (d)二值化差值图像用背景差值法分割图像阈值T选择的准确与否直接影响到二值图像的质量。如果阈值T选得太高,二值图像中判定为运动目标的区域会产生碎化现象;相反,如果选得太低,又会引入大量的噪声。背景差值法的特点:速度快,检测准确,其关键是背景图像的获取。但是在有些情况下,静止背景是不易直接获得的,此外,由于噪声等因素的影响,仅仅利用单帧的信息容易产生错误,这就需要通过视频序列的帧间信息来估计和恢复背景,即背景重建。需要指出的是,将一帧图像的灰度值减去背景图像的灰度值所得到的差值图像并不完全精确等于运动目标的图像,但用该方法,可起到分割和检测图像的作用,除非背景图像的像素值全为零。5.3 视频压缩编码技术基础5.3.1 视频压缩编码的必要性和可能性1.压缩编码的必要性随着信息技术的发展,图像信息已经成为通信和计算机系统中一种重要的处理对象,图像的最大特点也是最大难点就是海量数据的表示与传输,如果不对数据进行压缩处理,数量巨大的数据就很难在计算机系统及其网络上存储、处理和传输,所以必须对图像进行压缩编码。例如:一幅分辨率640480象素的彩色图像其数据量921.6KB,若以30帧/秒的速度播放,则每秒的数据量为221.12Mbit,若存在650MB的光盘中,一张光盘只能播放24s。若不进行压缩,这样的视频是无法观看的。2.压缩编码的可能性数据是用来表示信息的,如果不同的方法为表示给定量的信息使用了不同的数据量,那么使用较多数据量的方法中,有些数据必然是代表了无用的信息,或者是重复地表示了其他数据已经表示的信息,这就是数据冗余的概念。由于图像数据本身固有的冗余性和相关性,使得将一个大的图像数据文件转换成较小的图像数据文件成为可能,图像数据压缩就是要去掉信号数据的冗余性,一般来说,图像数据中存在着以下几种冗余:(1)空间冗余(像素间冗余、几何冗余):这是图像数据中所经常存在的一种冗余。在同一幅图像中,规则物体和规则背景(所谓规则是指表面是有序的而不是完全杂乱无章的排列)的表面物理特性具有相关性,这些相关性的光成像结果在数字化图像中就表现为数据冗余。(2)时间冗余:在序列图像(电视图像、运动图像)中,相邻两帧图像之间有较大的相关性。如图所示,Fl帧中有一个小汽车和一个路标,在时间T后的F2图像中仍包含以上两个物体,只是小车向前行驶了一段路程,此时F1和F2中的路标和背景都是时间相关的,小车也是时间相关的,因而F2和Fl具有时间冗余。(3)信息熵冗余:也称为编码冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像中存在冗余,称为信息熵冗余。(4)结构冗余:有些图像存在较强的纹理结构,如墙纸、草席等图像,称之存在结构冗余。(5)知识冗余:有许多图像的理解与某些基础知识有相当大的相关性,例如人脸的图像有固定的结构,比如说嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位于正脸图像的中线上等等,这类规律性的结构可由先验知识和背景知识得到,我们称此类冗余为知识冗余。(6)心理视觉冗余:人类的视觉系统对于图像场的注意是非均匀和非线性的,特别是视觉系统并不是对于图像场的任何变化都能感知,即眼睛并不是对所有信息都有相同的敏感度,有些信息在通常的视觉感觉过程中与另外一些信息相比来说并不那么重要,这些信息可认为是心理视觉冗余的,去除这些信息并不会明显地降低所感受到的图像的质量。心理视觉冗余的存在是与人观察图像的方式有关的,由于每个人所具有的先验知识不同,对同一幅图像的心理视觉冗余也就因人而异。5.3.2 压缩编码的主要性能指标(1)信息量、图像的熵与平均码字长度令图像像素灰度级集合为l1,l2,.,lm,其对应的概率分别为p(l1),p(l2),.,p(lm),则根据香农信息论,定义其信息量为:如果将图像所有可能灰度级的信息量进行平均,就得到信息熵(entropy),所谓熵就是平均信息量。图像熵定义为:式中:H的单位单位为比特字符,图像熵表示图像灰度级集合的比特数均值,或者说描述了图像信源的平均信息量。当灰度级集合l1,l2,.,lm中出现的概率相等,都为2-L时,熵H最大,等于L比特;只有当li出现的概率不相等时,H才会小于L。香农信息论已经证明:信源熵是进行无失真编码的理论极限,低于此极限的无失真编码方法是不存在的,这是熵编码的理论基础。平均码长定义为:式中,ni灰度级所对应的码字长度,平均码长的单位也是比特字符。(2)编码效率编码效率定义为:如果R和H相等,编码效果最佳;如果R和H接近,编码效果为佳;如果R远大于H,则编码效果差。(3)压缩比压缩比是衡量数据压缩程度的指标之一,到目前为止,尚无压缩比的统一定义,目前常用的压缩比Pr定义为:式中,Ls为源代码长度;Ld为压缩后的代码长度。压缩比的物理意义是被压缩掉的数据占源数据的百分比,一般的讲,压缩比大,则说明被压缩掉的数据量多,当压缩比接近100时,压缩效率最理想。(4)冗余度如果编码效率100,就说明还有冗余度,冗余度r定义为:r越小,说明可压缩的余地越小。总之,一个编码系统要研究的问题是设法减小编码平均长度R,使编码效率尽量趋于1,而冗余度尽量趋于0。5.3.3 压缩编码的分类 图像编码压缩的方法目前有很多,其分类方法根据出发点不同而有差异。1 有损压缩和无损压缩有损压缩和无损压缩根据解压重建后的图像和原始图像之间是否具有误差,图像编码压缩分为无损(亦称无失真、无误差、信息保持型)编码和有损(有失真、有误差、信息非保持型)编码两大类。在视频压缩中有损和无损的概念与静态图像中基本类似。无损压缩也即压缩后的数据和压缩前的原始信号完全一致。无损压缩的压缩比太低,这限制了在视频压缩中的应用。有损压缩是解压缩后的数据与压缩前的数据不一致。在压缩过程中要丢失一些人眼和人耳所不敏感的图像和音频信息,而且丢失的信息不可恢复。几乎所有高压缩的算法都采用有损压缩,这样才能达到低数据率的目标。丢失的数据率与压缩比有关,压缩比越高,丢失的数据越多,解压缩后的效果一般越差。2 帧内压缩和帧间压缩帧内压缩和帧间压缩按照压缩编码器处理的像素分布范围来分类时有帧内压缩和帧间压缩。帧内压缩也称为空间压缩。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩时各个帧之间没有相互关系,所以压缩后的视频数据仍可以以帧为单位进行编辑。帧内压缩一般达不到很高的压缩比。采用帧间压缩是基于视频或动画的相邻帧具有很大的相关性,或者说前后两帧变化很小,根据连续视频其相邻帧之间具有冗余信息这一特性,压缩相邻帧之间的冗余就可以进一步增加压缩量,提高压缩比。帧间压缩也称为时间压缩,它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损的。帧差值算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。3.熵编码、预测编码和变换编码熵编码、预测编码和变换编码 根据编码原理图像编码分为熵编码、预测编码、变换编码和混合编码等。主要的编码方法如图:数据压缩方法无损压缩(熵编码)有损压缩哈夫曼编码行程编码算术编码LZW编码预测编码运动补偿变换编码DCT变换小波变换子带编码模型编码分形编码基于重要性滤波子采样矢量量化混合编码JPEGMPEGH.2615.4 熵编码 这是纯粹基于信号统计特性的编码技术,是一种无损编码。熵编码的基本原理是给出现概率较大的符号赋予一个短码字,而给出现概率较小的符号赋予一个长码字,从而使得最终的平均码长很小。常见的熵编码方法有哈夫曼编码、算术编码和行程编码。5.4.1 哈夫曼编码哈夫曼编码 根据信息论中信源码理论,可以证明在平均码长R大于等于图像熵H的条件下,总可以设计出某种无失真编码方法,当然如果编码结果使R远大于H,表明这种编码方法效率很低,占用比特数太多;最好的编码结果是使R等于或接近于H,这种状态的编码方法称为最佳编码,它既不丢失信息而引起图像失真,又占用最少的比特数。熵编码的目的就是要使编码后的图像平均码长R尽可能接近图像熵H,一般是根据图像灰度级数出现的概率大小赋予不同长度码字,出现概率大的灰度级用短码字,出现概率小的灰度级用长码字。可以证明,这样的编码结果所获得的平均码字长度最短,这就是下面要介绍的变长最佳编码定理。变长最佳编码定理:在变长编码中,对出现概率大的信息符号赋给短码字,而对于出现概率小的信息符号赋给长码字,如果码字长度严格按照所对应符号出现概率大小逆序排列,则编码结果平均码字长度一定小于任何其它排列方式。哈夫曼编码过程如下:(1)把信源符号按出现的概率由大到小排成一个序列。如 。(2)把其中两个最小的概率pm、pm-1挑出来,且将符号“1”赋给其中最小的,即 ;符号“0”赋给另一稍大的,即 。(3)求出pm、pm-1之和,将设pi想成对应于一个新的消息的概率。(4)将pi与上面末处理的(m-2)个消息的概率重新由大到小再排列,构成一个新的概率序列。(5)重复步骤(2)、(3)、(4),直到所有m个消息的概率均已联合处理为止。例 已知某信源发出的8个消息,其信源概率分布是不均匀的,分别为0.1,0.18,0.4,0.05,0.06,0.1,0.07,0.04,请对信源进行哈夫曼编码,并求出三个参数:平均码长、熵及编码效率。具体的编码过程如图,编码结果见表。编码效率:可见,哈夫曼方法编码的结果,码字平均长度很接近信息符号的熵值。平均码长:熵:哈夫曼编码过程例信源概率分布为2的负整数次幂,编码结果见表。例信源概率分布均匀时,编码结果见表。从上述3个例子中,可以看出哈夫曼编码具有以下特点:(1)哈夫曼编码构造出来的编码值不是唯一的。原因是在给两个最小概率的图像的灰度值进行编码时,可以是大概率为“0”,小概率为“1”,但也可相反;而当两个灰度值的概率相等时,“0”、“1”的分配也是随机的,这就造成了编码的不唯一性,可是其平均码长却是相同的,所以不影响编码效率和数据压缩性能。(2)哈夫曼编码对不同的信源其编码效率是不同的,如表5.2.1所示。例5.2.2中当信源概率为2的负幂次方时,哈夫曼编码的编码效率达到100;例5.2.3中概率分布也为2的负幂次方,其编码效率也可以达到100,但由于其信源概率相等,服从均匀分布,其熵最大,平均码长也很大,从其他压缩编码参数如压缩比来看,却是最低的。因此只有当信源概率分布很不均匀时,哈夫曼编码才会收到显著的效果。换句话说,在信源概率比较接近的情况下,般不使用哈夫曼编码方法。(3)Huffman编码结果码字不等长,虽说平均码字最短,效率最高,但是码字长短不一,实时硬件实现很复杂(特别是译码),而且在抗误码能力方面也比较差,为此,研究人员提出了一些修正方法,如双字长Huffman编码(也称亚最佳编码方法),希望通过降低一些效率来换取硬件实现简单的实惠。双字长编码只采用两种字长的码字,对出现概率高的符号用短码字,对出现概率低的符号用长码字。短码字中留下一个码字不用,作为长码字前缀,这种方法编码压缩效果不如Huffman码,但其硬件实现相对简单,抗干扰能力也比Huffman方法强得多。(4)Huffman编码应用时,均需要与其他编码结合起来使用,才能进一步提高数据压缩比。例如,在静态图像国际压缩标准JPEG中,先对图像进行分块,然后进行DCT变换、量化、Z形扫描、行程编码后,再进行哈夫曼编码。表表 哈夫曼编码在不同概率分布下的编码效果对比哈夫曼编码在不同概率分布下的编码效果对比 5.4.2 香农范诺编码 1香农范诺(Shannon-Fannon)编码 香农范诺编码也是一种常见的可变字长编码,与哈夫曼编码相似,当信源符号出现的概率正好为2的负幂次方时,采用香农范诺编码同样能够达到100%的编码效率。香农范诺编码的理论基础是符号的码字长度Ni完全由该符号出现的概率来决定,即 式中,D为编码所用的数制。香农-范诺编码的步骤如下:(1)将信源符号按其出现概率从大到小排序;(2)按照式(10-9)计算出各概率对应的码字长度Ni;(3)计算累加概率Ai,即 A1=0 Ai=Ai-1+Pi-1 i=2,N-1;(4)把各个累加概率Ai由十进制转化为二进制,取该二进制数的前Ni位作为对应信源符号的码字。为便于比较,仍以例5.4.1中图像为对象,对其进行香农范诺编码,结果如表5.4.2所示。由于在此采用二进制对码字赋值,故在利用式(5.4.3)计算码字长度Ni时,D取为2。以符号l3为例,其出现概率为0.10,按照式(5.2.3)计算得到它的码字长度应为4,按式(5.4.4)计算得到它的累加概率为0.58,将0.58转化为二进制并取其前4位即得符号l3的码字为1001。表表 香农香农范诺编码范诺编码二分法香农-范诺编码方法其步骤如下:(1)将信源符号按照其出现概率从大到小排序;(2)从这个概率集合中的某个位置将其分为两个子集合,并尽量使两个子集合的概率和近似相等,给前面一个子集合赋值为0,后面一个子集合赋值为1;(3)重复步骤2,直到各个子集合中只有一个元素为止;(4)将每个元素所属的子集合的值依次串起来,即可得到各个元素的香农范诺编码。表5.4.3给出了对例5.4.1中的图像进行的二分法香农范诺编码结果。2二分法香农二分法香农范诺编码范诺编码 5.4.3 算术编码 算术编码是80年代发展起来的一种熵编码方法,这种方法不是将单个信源符号映射成一个码字,而是把整个信源表示为实数线上的0到1之间的一个区间,其长度等于该序列的概率,再在该区间内选择一个代表性的小数,转化为二进制作为实际的编码输出,消息序列中的每个元素都要缩短为一个区间,消息序列中元素越多,所得到的区间就越小,当区间变小时,就需要更多的数位来表示这个区间,采用算术编码,每个符号的平均编码长度可以为小数。算术编码有两种模式:一种是基于信源概率统计特性的固定编码模式,另一种是针对未知信源概率模型的自适应模式。自适应模式中各个符号的概率初始值都相同,它们依据出现的符号而相应地改变。只要编码器和解码器都使用相同的初始值和相同的改变值的方法,那么它们的概率模型将保持一致。上述两种形式的算术编码均可用硬件实现,其中自适应模式适用于不进行概率统计的场合。有关实验数据表明,在未知信源概率分布的情况下,算术编码一般要优于Huffman编码。在JPEG扩展系统中,就用算术编码取代了哈夫曼编码。下面结合一个实例来阐述固定模式的算术编码的具体方法。例 设一待编码的数据序列(即信源)为“cadacdb”,信源中各符号出现的概率依次为P(a)=0.1,P(b)=0.4,P(c)=0.2,P(d)=0.3。写出对这个信源进行算术编码的过程,并利用MATLAB编程予以实现。首先,数据序列中的各数据符号在区间0,1内的间隔(赋值范围)设定为:a=0,0.1),b=0.1,0.5),c=0.5,0.7),d=0.7,1.0)算术编码所依据的公式为:StartN=StartB+L LeftCEndN=StartB+L RightC式中,StartN、EndN分别表示新间隔(或称之为区间)的起始位置和结束位置,StartB表示前一间隔的起始位置,L为前一间隔的长度,LeftC、RightC分别表示当前编码符号的初始区间的左端和右端。初始化时,StartB0,L1.000。对第一个信源符号c 编码:StartN=StartB+LLeftC=0+10.5=0.5EndN=StartB+LRightC=0+10.7=0.7信源符号c将区间0,1)0.5,0.7);下一个信源的范围为:LEndNStartN0.70.50.2对第二个信源符号a 编码:StartN=StartB+LLeftC=0.5+0.20=0.5 EndN=StartB+LRightC=0.5+0.20.1=0.52信源符号a将区间0.5,0.7)0.5,0.52);下一个信源的范围为:LEndNStartN0.520.50.02对第三个信源符号d 编码:StartN=StartB+LLeftC=0.5+0.020.7=0.514EndN=StartB+LRightC=0.5+0.021=0.52信源符号d将区间0.5,0.52)0.514,0.52);下一个信源的范围为:LEndNStartN0.520.5140.006对第四个信源符号a 编码:StartN=StartB+LLeftC=0.514+0.0060=0.514 EndN=StartB+LRightC=0.514+0.0060.1=0.5146信源符号a将区间0.514,0.52)0.514,0.5146);下一个信源的范围为:LEndNStartN0.51460.5140.0006对第五个信源符号c 编码:StartN=StartB+LLeftC=0.514+0.00060.5=0.5143 EndN=StartB+LRightC=0.514+0.00060.7=0.51442信源符号c将区间0.514,0.5146)0.5143,0.51442);下一个信源的范围为:LEndNStartN0.514420.51430.00012对第六个信源符号d 编码:StartN=StartB+LLeftC=0.5143+0.000120.7=0.514384EndN=StartB+LRightC