1、下面对压缩理论和数据压缩技术做简要介绍。 7.3.2 数据压缩的理论及主要技术数据压缩的主要理论基础是信息论,这个领域的研究工作是由信息论的创始人克劳德艾尔伍德香农(Claude Elwood Shannon)奠定的,他在二十世纪40年代末期到50年代早期发表了这方面的基础性的论文。另外密码学、统计学和编码理论也是和数据压缩关系密切的学科。从数学上讲,可以将压缩看做是一种变换。具体操作时,数据的压缩实际上是一个编码过程,即把原始的数据进行编码压缩。数据的解压缩是数据压缩的逆过程,即把压缩的编码还原为原始数据。因此数据压缩方法也称为编码方法。随着基础学科理论的不断发展,目前数据压缩技术也日新月异
2、,适应各种应用场合的编码方法不断产生。针对多媒体数据冗余类型的不同,相应地有不同的压缩方法。根据解码后数据与原始数据是否完全一致可将压缩方法分为无损压缩算法(lossy compression)和有损压缩算法(lossness compression)两大类。无损压缩算法是指去掉或减少数据中的冗余,但这些冗余值是可以重新插入到数据中的,因此冗余压缩是可逆的过程。例如在一幅图像中,有一部分数据排列为“蓝色的点,蓝色的点蓝色的点”共计300个,压缩后的图像可以记录为“300个蓝色的点”,这样就节省了大量的存储空间。在多媒体技术中,无损压缩经常用于一般文本、数据的压缩,它能保证百分之百地恢复原始数据
3、。但这种方法压缩比较低。统计编码就是一种无失真编码。它是根据信息出现概率的分布而进行的压缩编码。编码时某种比特或字节模式的出现概率大,用较短的码字表示;出现概率小,用较长的码字表示。这样,可以保证总的平均码长最短。无损压缩使用最广泛的是LZ( LempelZiv )压缩算法。常用的无损压缩算法基本都是从LZ压缩算法演化而来,例如GIF图像中用到的LZW(Lenpel-Ziv & Welch)压缩算法,PNG图像中用到的 DEFLATE压缩算法和Zip格式压缩文件中用到的LZR(Lepel-Ziv-Renau)压缩算法。无损压缩常用的技术如下:RLE(Run-length encoding)被称
4、为行程长度编码,是一种非常简单的无损压缩方法,这种方法使用数据及数据长度这样简单的编码代替重复出现的连续数据。例如有一幅简单图像是白色背景上面有一些黑点,这样就会有很多白点为重复数据。如果用W表示白色的点,用B来表示黑色的点,图像中的一行就可以简单表示如下: WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW对于这一行数据用RLE压缩后变为: 12W1B12W3B24W1B14WLempel-Ziv(LZ)压缩方法是最流行的无损存储算法之一。LZ 方法使用基于表格的压缩模型,其中表格中的条目用重复的数据串替换。
5、对于大多数的 LZ 方法来说,这个表格是从最初的输入数据动态生成的。微软公司的 CAB 格式采用的压缩方式LZX就是基于LZ编码机制的。DEFLATE是另外一种 LZ算法的变体,它针对解压速度与压缩率进行了优化,可以获得比较高的压缩率,但是有时候压缩速度可能会比较缓慢, PNG格式图像 就使用的是 DEFLATE压缩算法。LZW (Lempel-Ziv-Welch)也是从LZ压缩算法演化而来,这种方法用于 GIF 图像。由于这个算法曾经是 Unisys 公司的专利(2003年6月专利到期限),因此在很长一段时间内影响了GIF图像的应用。另外还有Zip压缩文件采用的 LZR (LZ-Renau)
6、 方法。有损压缩法是指在不影响人类理解的情况下,丢弃一些细节信息来获得更高的压缩比,这些丢弃的信息是不能再恢复的,因此这种压缩法是不可逆的(即解压后的数据和压缩前的数据不完全一样)。有损压缩多用于由人的视觉或者听觉对解压缩后的数据进行识别的场合。这些压缩算法利用了人在识别信息时的一些生理特点。 例如,人的视觉对于亮度的变化特别敏感而对颜色的变化不敏感;人的耳朵能够识别的声波频段范围非常有限等。因此很多最终由人类的视觉系统和听觉系统接收的图像、音视频数据就可以采用有损压缩,在压缩时可以丢掉一不敏感或者无法感知些数据,不会对数据所表达的意思产生误解,但却可以大大提高压缩比。有损压缩算法经常需要处理
7、的一个问题就是在压缩解压时间、保留信息量和减小数据存储空间之间寻找一个折中。需要注意的是在某些特殊情况下,例如医学诊断或者刑侦等场合,为了不遗漏任何信息细节,一般不采用有损压缩算法。有损图像压缩技术应用最广泛的的是JEPG图像压缩技术,大量的用于数码相机和互联网上图像,可以大幅度地提高了存储能力,同时图像质量几乎没有降低。在有损音频压缩中,经常利用心理声学的原理来去除信号中听不见或者很难听见的成分。人类语音的压缩经常使用更加专业的技术,因此人们有时也将“语音压缩”或者“语音编码”作为一个独立的研究领域与“音频压缩”区分开来,其中语音压缩比较常见的应用是因特网电话。不同的音频和语音压缩标准都属于
8、音频编解码范畴。视频压缩技术中绝大多数都是有损压缩,有损视频压缩的一个最常用技术就是可同时对音视频数据进行压缩的MPEG-x系列技术。无论是无损压缩还是有损压缩,其压缩算法是基于软件的,也就是其需要一定的处理时间,因此在很多实时性要求比较高的环境中,会对硬件的性能提出一些要求从而保证其实时性。而在文件备份、归档过程中的压缩一般不会有什么问题。另外需要注意,有些文件已经被压缩,进一步的外部压缩不会有任何好处,一些图形文件格式,如标签映象文件格式(TIFF),就已经包含了压缩。由于数据压缩在使用计算机存储、传输和处理数据的过程中非常常用,在数据压缩发展的早期出现了各种压缩算法,这些各具特色的压缩算
9、法降低了文件的可移植性,除非在数据交换时把解压缩软件也与文件一起传送,否则将会出现一个用户的压缩数据传输给另一个用户时无法打开的现象。为了便于不同的用户之间能够更好的交流数据,有必要制定一些国际标准来规范压缩算法,以促进不同用户之间数据交流的效率。促进数据压缩算法标准产生的组织主要有国际标准化组织ISO、国际电工委员会 IEC和国际电信联盟电信标准化部门 ITU-T。其制定的通用压缩编码标准认可度比较高且应用比较广泛的大致有四种:H.261、JPEG、 MPEG和DVI。其中H.261是1990年ITU-T制定的一个视频编码标准,属于视频编解码器。设计的目的是能够在带宽为64kbps的倍数的综
10、合业务数字网(ISDN for Integrated Services Digital Network)上传输质量可接受的视频信号。随着新的软硬件技术发展,视频编码标准也在不断演化,但后来的视频编码标准基本都是在H.261的基础上进行改进。H.261使用两种类型的压缩:用于帧内的基于DCT(离散余弦变换)的有损压缩和用于帧间压缩的无损编码,并在此基础上使编码器采用带有运动估计的DCT和DPCM(差分脉冲编码调制)的混合方式。这种标准与JPEG及MPEG标准间有明显的相似性,但关键区别是它是为动态使用设计的,并提供完全包含的组织和高水平的交互控制。现在的H.261成为了过时的标准,已经基本上看不
11、到使用H.261的产品了,但是在视频编码历史上H.261的地位非常重要,是一个重要的里程碑式的标准。JPEG、 MPEG和DVI压缩算法将在后续部分详细介绍。7.3.3 静态图像压缩编码标准JPEG JPEG(发音为 depg)的本义是全称是联合照片专家组,英文全名为Joint Photographic Experts Group。此小组创建于1986年,其由国际标准化组织、国际电工委员会和国际电信联盟电信标准化部门(前身为国际电报电话咨询委员会CCITT,1993年更名为国际电信联盟电信标准化部门)共同组成,并于1992年发布了JPEG图像压缩解压算法。 通常所说的JPEG都是是指由这个专家
12、组制定的这个静止图像压缩和解压缩算法,并在1994年被采纳成为国际标准。人们在提到JPEG压缩算法时往往指的的有损压缩,实际上在JPEG标准中也支持一种被称为Lossless JPEG的无损压缩方式,但Lossless JPEG并没有受到广泛的支持和应用。JPEG压缩算法通常包含色彩空间转换、缩减取样、离散余弦变换、量化几个步骤。其中色彩空间转换和缩减取样两个步骤的目的是把图像色彩转换到由YUV色彩空间后,保留亮度成分(也就是“Y”,人眼敏感的成分)成分,而对其它人眼睛不敏感的成分色度“U”和饱和度“V”进行缩减(关于YUV空间的概念将在后面学习运动图像的编码标准时介绍)。缩减抽样步骤是JPE
13、G压缩步骤中有损的一个步骤,会丢弃一些人眼不敏感的信息。后续的压缩步骤将分别对三个成分进行相同的处理。离散余弦变换是把图像转换到用频率表达的空间,进行转换的目的是便于后续步骤中有针对性的对图像中的高频成分进行压缩。离散余弦变化过程是一个可逆的过程。量化的过程本身是一种压缩,其原理在于人类的眼睛对一个相对比较大范围内的微小亮度变化非常敏感,但在高频率的亮度变化时,对具体亮度值却难以分辨。因此量化的思路就是在进行离散余弦变换后的图像上,减小高频率成分的信息数量。量化的过程很简单,就是把转换后的图像中的每一个成分,除以一个针对于该成分的常数再舍位取最接近的整数即可。量化过程也是有损运算,而且是整个压
14、缩过程中的主要有损运算。量化的过程经常会把很多更高频率的成分舍位成为接近0,且剩下很多会变成小的正数或者负数。从量化的原理也可以看出,JPEG压缩特别适合相机等拍摄的实景自然图像,压缩后可以获得很好的视觉效果。但并不适合于线条绘图、图标、图形或者含有文字的图像,这类图像使用经典的无损压缩例如(PNG格式图像采用的DEFLATE压缩)会取得更好的视觉效果。JPEG压缩算法的压缩比是可以调节的,可以根据需要在图像质量和存储量大小之间寻找一个最佳值。通常情况下压缩比为10:1时只会给图像质量带来微小的 损失。图7-3-1显示了不同压缩比带来的图像质量变化。(a) 未压缩图像,大小725K (b) J
15、PG低压缩比,大小111K (c) JPG高压缩比,大小36K图7-3-1 不同JPEG压缩比例对比图需要注意的是JPEG标准本身只描述了如何将一个图像转换为字节的数据流,并没有说明这些字节如何在任何特定的存储媒体上进行存储。如果要把这些压缩后的数据流存放在计算机硬盘等存储媒体上,其存储格式也需要规范。为了解决这个问题,在1991年一个名叫C-Cube Microsystems的公司联合其它公司创建了一个额外的标准,称为JFIF(JPEG File Interchange Format,JPEG文件交换格式)详细说明如何从一个JPEG数据流,产出一个适合于计算机存储和传输的文件。JPEG/JF
16、IF 支持的最大图像尺寸是 6553565535。JPEG/JFIF是万维网(World Wide Web)上最普遍的图片存储和传输格式。另外一个标准是由日本电子工业发展协会在1996年制定的。 称为可交换图像文件(Exchangeable image file format, EXIF),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。EXIF可以附加于JPEG、TIFF、RIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。在Windows 7操作系统中,最简单的查看EXIF信息的方法是右键单击JPEG图片打开快捷菜单,单击“属性”再切
17、换到“详细信息”标签下即可,如图7-3-2。图7-3-2 Exif JPEG文件提供的图像信息在日常使用中,当有人说一个“JPEG文件”,一般而言是意指一个JFIF文件,或者是一个Exif JPEG文件。使用JPEG格式压缩的图片文件一般也被称为JPEG Files,使用的最普遍的文件扩展名格式为“.jpg”和“.jpeg”。其它还有:“.jpe”、“.jfif”以及“.jif”。JPEG格式的数据也能被嵌进其他类型的文件格式中,例如在TIFF类型的文件中就可以嵌入JPEG数据,作为图像的缩略图;在压缩音频数据mp3中也可以嵌入JPEG数据作为歌曲或者唱片集的封面,这就是为什么在播放mp3歌曲
18、时有的播放器能显示出该歌曲对应的唱片集的封面图像。关于JPEG标准的最新进展,值得一提的是JPEG 2000。JPEG 2000也是由联合照片专家组创建和维护的标准。和经典的JPEG标准相比,JPEG 2000是用基于小波变换替代了基于离散余弦变换。JPEG 2000的优势比较明显,它的压缩比更高,而且不会产生原先的基于离散余弦变换的JPEG标准产生的块状模糊瑕疵。JPEG 2000同时支持有损数据压缩和无损数据压缩。另外,JPEG 2000也支持更复杂的渐进式显示和下载。因此JPEG 2000通常被认为是未来取代基于离散余弦变换的的下一代图像压缩标准。JPEG 2000文件的文档后缀名通常为
19、“.jp2”。虽然JPEG 2000在技术上有一定的优势,但是目前互联网上采用JPEG 2000技术制作的图像文件数量仍然很少,并且大多数的浏览器仍然不支持JPEG 2000图像文件的显示。使用JPEG可能要承担版权和专利的风险,这也许是目前JPEG 2000技术没有得到广泛应用的原因之一。JPEG 2000标准本身是没有授权费用,但是因为编码的核心部分的各种算法被大量注册专利。如果要开发基于JPEG 2000的商用软件,一般不太可能避开这些专利费用而开发出免授权费的编码器。由于JPEG 2000在无损压缩下仍然能有比较好的压缩率,所以JPEG 2000在图像品质要求比较高的医学图像的分析和处
20、理中已经有了一定程度的应用。7.3.4 运动图像(视频)压缩编码标准MPEG视频压缩的目标是在尽可能保证视觉效果的前提下减少视频数据率。视频压缩比一般指压缩后的数据量与压缩前的数据量之比。由于视频是连续的静态图像,因此其压缩编码算法与静态图像的压缩编码算法有某些共同之处,但是由于其运动导致视频压缩有其自身的特性,在压缩时还应考虑其运动特性才能达到高压缩的目标。在视频压缩中常需用到概念有帧内压缩、帧间压缩、对称性、位速、AVI和YUV等。帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际
21、上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩时各个帧之间没有相互关系,所以压缩后的视频数据仍可以以帧为单位进行编辑。帧内压缩一般达不到很高的压缩。采用帧间(Interframe)压缩是基于许多视频或动画的连续前后两帧具有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression),它通过比较时间轴上不同帧之间的数据进行压缩。例如有一段60秒的视频,这个视频中的前景一直在变化,但是在背景中的同一位置始终有一把椅子。那
22、么压缩算法可能就会把一帧图像中椅子的数据存储下来,以在接下来的帧中使用,从而实现压缩的效果。帧间压缩一般是无损的。帧差值(Frame differencing)算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。对称性(symmetric)是压缩编码的一个关键特征。对称意味着压缩和解压缩占用相同的计算处理能力和时间,对称算法适合于实时压缩和传送视频,如视频会议应用就以采用对称的压缩编码算法为好。而在电子出版和其它多媒体应用中,一般是把视频预先压缩处理好,然后再播放,因此可以采用不对称(asymmetric)编码。不对称或非对称意味着
23、压缩时需要花费大量的处理能力和时间,而解压缩时则能较好地实时回放,也即以不同的速度进行压缩和解压缩。一般地说,压缩一段视频的时间比回放(解压缩)该视频的时间要多得多。例如,压缩一段三分钟的视频片断可能需要10多分钟的时间,而该片断实时回放时间只有三分钟。位速(bit rate)是指在一个数据流中每秒钟能通过的信息量,通常都是用每秒钟通过的比特量(bps)来表示。由于比特是一个很小的单位,因此实际中常用的单位是Kbps、Mbps和Gbps,分别代表103bps,106bps和109bps。位速越高,信息量越大,对这些信息进行解码的处理量就越大,文件需要占用的空间也就越多。CD中的数字音乐比特率为
24、1411.2Kbps(也就是记录1秒钟的CD音乐,需要1411.21024比特的数据),近乎于CD音质的MP3数字音乐需要的比特率大约是112Kbps128Kbps。另外如何选择适当的位速取决于播放目标。如果要把制作的 VCD 放在 DVD 播放器上播放,那么视频必须是 1150 Kbps,音频必须是 224 Kbps。AVI是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,因此尽管面面质量不是太好,但其应用范围仍然非常广泛。AVI支持256色和RLE压缩。AVI信息主要应用在多媒体光盘上,用来保存电视、电影等各种影像信息。YUV有时候也写作YCrCb,
25、是欧洲电视系统所采用的一种颜色编码方法。YUV主要用于优化彩色视频信号的传输并兼容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的带宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度和浓度(Chrominance或Chroma),用于指定像素的颜色。如果把UV信息去掉,则剩下的就是和早期黑白电视兼容的亮度信息。RGB色彩空间可以通过公式直接转换到YUV空间。在前面学习JPEG压缩原理时,第一步就是把图像色彩从RGB转化到YUV空间。由于视频的每一帧都是由像素栅格构成的。如果在水平方
26、向上(也就是每行)有W个像素,而在垂直方向上(每列)有H个像素,则称为帧大小为WH。像素的唯一属性就是颜色,一般用一定数量的比特来表示。用的比特数越多,表达的颜色变化就越丰富,这个称为视频的颜色深度。颜色深度为n则可以表达的颜色数为2n个。假设有一部时间长度为1个小时的视频,其帧大小为1280 x 720,颜色深度为24,按照帧率25进行播放。 那么可以计算出此视频的以下属性:每帧像素数= 1280 * 720= 921600每帧比特数= 每帧像素数 *24b = 921600*24b = 22118400b 21Mb比特率 =每帧比特数*帧率 =21Mb/帧 * 25帧/s= 525 Mb/
27、s视频大小 = 比特率*时间 = 525 Mb/s * 3600s = 1890000Mb = 236250MB231GB从这个计算可以看出,一部普通的时常为1小时的视频数据,如果不进行压缩,其占用的存储空间已经非常巨大。随着数字视频的发展,一些三维视频技术也开始出现,可以预料,其数据量会越来也大。因此有必要研究视频的压缩技术,从而使视频的存储、处理和传输更加方便。和图像的压缩相似,数字视频压缩以后基本不影响作品的最终视觉效果。例如,虽然颜色深度为24的视频可以呈现的颜色有上千万种,但是人类肉眼只能辨别大约 1024 种。因为我们觉察不到一种颜色与其邻近颜色的细微差别,所以也就没必要将每一种颜
28、色都保留下来。另外和图像相似、视频数据也有冗余的问题。例如在视频作品中经常可以看到在一个较短的时间段内,视频的背景很少发生变化或者就根本不发生变化。在这种情况下,这个时间段内的多个帧的背景数据就会出现大量冗余数据,在视频数据的压缩中可以用类似行程长度编码的思路来设计压缩算法。标准的数字摄像机的压缩率为 5 比 1,有的格式可使视频的压缩率达到 100 比 1。需要注意的是,过分压缩也不是件好事。因为压缩得越多,丢失的数据就越多。如果丢弃的数据太多,产生的影响就越来越明显。过分压缩的视频会导致观看者无法辨认。和JPEG类似,MPEG是运动图像专家组(Moving Picture Experts
29、Group)的简称。这个名字本义是指成立于1988年的研究视频和音频编码标准的“动态图像专家组”。MPEG是隶属于国际标准化组织和国际电工委员会的工作组,它的官方头衔为:第一技术委员会第二十九子委员会第十一号工作组正式审核程序,英文为ISO/IEC JTC1/SC29 WG11。MPEG大约每2-3个月举行一次会议,每次会议大约持续5天,在会议期间,新的建议和技术细节先在小组中讨论,成熟后进入标准化的正式审核程序。现在人们所说的MPEG泛指由该工作组制定的一系列视频编码标准正式审核程序。该工作组从1988年至今已经制定了MPEG-1、MPEG-2、MPEG-3、MPEG-4、MPEG-7等多个标准,MPEG-21正在制定中。MPEG的标志如图7-3-3。图7-3-3 MPEG的标志(图片来源:Movin
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1