无损压缩
无损压缩利用数据的统计特性来进行数据压缩,典型的编码有Huffman编码、行程编码、算术编码和Lempe1-Zev编码。无损压缩的压缩率一般为2:l~5:1。

有损压缩
有损压缩不能完全恢复原始数据,而是利用人的视觉特性使解压缩后的图像看起来与原始图像一样。主要方法有预测编码、变换编码、模型编码、基于重要性的编码以及混合编码方法等。压缩比随着编码方法的不同差别较大。

JPEG标准
对于静止图像压缩,ISO制订了JPEG标准(Joint Photographic Experts Group)。这一标准适用黑白及彩色照片、传真和印刷图片。JPEG有四种工作模式:无失真压缩、基于DCT的顺序工作方式、累进工作方式和分层工作方式。
JPEG标准采用混合编码方法。它定义了两种基本压缩算法,一种是基于空间线性预测技术,即差分脉冲编码调制的无失真压缩算法,另一种是基于DCT的有失真压缩算法,并进一步应用行程编码和熵编码。
1.无失真预测编码压缩算法
JPEG用基于DPCM的压缩算法来满足需要无失真压缩图像数据的特殊应用场合。
DPCM编码具有硬件实现容易、重建图像质好的优点。图3.13给出了三个邻域采样值(a、b、c)的示意图。用x表示x的预测值,它可以按照从表3.8中的8种预测公式中选择的一种预测公式,并根据a、b、c的值预测得到。从实际值x中减去预测值x,得到一个差值,差值不作量化,直接进行熵编码(Huffman编码或算术编码),这就保证可以无失真地恢复原始图像数据。
JPEG的无失真预测编码对于中等复杂程度的彩×××像,可降到大约2:l的压缩比。
2.基于DCT的有失真压缩编码
基于DCT的压缩编码算法包括基本系统和增强系统两种不同层次的系统。并定义了顺序工作方式和累进工作方式。基本系统只采用顺序工作方式,熵编码时只能采用Huffman编码,且只能存储两套码表。增强系统是基本系统的扩充,可采用累进工作方式,熵编码时可选用Huffman码或算术编码。
基于DCT编码的过程为先进行DCT正变换,再对DCT系数进行量化,并对量化后的直流系数和交流系数分别进行差分编码或行程编码,最后再进行熵编码。
(l)DCT变换
JPEG将源数据图像分成8×8大小的子块,然后进行DCT变换。DCT有相应的快速交换,它把8×8块不断分成更小的无交叠子块,直接对数据块进行运算操作。原始的图像数据块经过DCT变换后,输出64个DCT变换系数。
(2)量化
为了达到压缩数据的目的,DCT系数需作量化,量化表需针对性地设计。例如,利用人眼的视觉特性,对在图像中占有较大能量的低频成分,赋予较小的量化间隔和较少的比特表示,以获得较高的压缩比。
(3)DCT系数的编码
64个变换系数中,DC系数位于左上角,称直流分量,它是64个图像采样值的平均值。其余63个系数均为AC分量。相邻的8×8块之间的DC系数有较强的相关性,因此JPEG中对DC系数采用DPCM编码,即对相邻块之间的DC系数的差值进行编码。63个AC系数在JPEG算法中采用行程编码,并建议在8×8矩阵中按照"Z"字形的次序进行,这样可增加零的连续次数,系数编码后都采用统一的格式表示。
(4)熵编码
经过DPCM编码的直流项和经过行程编码的交流项仍具有进一步压缩的潜力。JPEG建议使用两种基于统计特性的编码:Huffman编码和自适应二进制算术编码。可任选一种编码对第一个字节进行编码,第二个幅值字节不作编码,直接传送实际的编码值。若使用Huffman码,JPEG提供了针对DC系数、AC系数使用的Huffman码表,对亮度分量和色度分量分别给出了不同的Huffman码表。JPEG规定最多能同时存储4套不同的熵编码表。
(5)压缩比和图像质量
基于DCT的JPEG标准的压缩是有失真的,DCT变换后系数的量化是引起失真的主要原因。压缩效果与图像内容本身有较大的关系。
3.基于DCT的增强率统
基于DCT的基本系统整个编码过程采用从上至下、从左至右的顺序扫描方式一次完成。基于DCT的增强系统增加了两种累进操作方式,累进操作方式的编码步骤和方法与顺序方式基本一致,不同之处在于累进方式中每个图像分量的编码要经过多次扫描才可完成。为实现该方式,需在量化器的输出与熵编码的输入间增加一个存储量化后DCT系数的缓冲器,系数进行多次扫描,分批完成压缩编码。