1.86k likes | 2k Views
Chapter 8 图像压缩. 图像压缩探讨减少表示数字图像所需之数据量的问题 。减数据量的基本原则是移去冗余的数据。以数学的观点,这等于是一个 2 维像素数组转换成统计上不相关的数据集 。图像的储存或传输前都要先转换。之后,压缩图像就被解压缩以重建原始图像或它的近似。 在本章中我们将讨论图像压缩处理的理论与实现。 8.1 到 8.3 节构成基础的介绍,而此基础整合起来就形成此领域的理论。 8.4 到 8.6 节讨论图像压缩的实际面。. Chapter 8 图像压缩. 数据压缩 (data compression) 这术语是指降低表示一个所给
E N D
Chapter 8 图像压缩
图像压缩探讨减少表示数字图像所需之数据量的问题。减数据量的基本原则是移去冗余的数据。以数学的观点,这等于是一个2维像素数组转换成统计上不相关的数据集。图像的储存或传输前都要先转换。之后,压缩图像就被解压缩以重建原始图像或它的近似。图像压缩探讨减少表示数字图像所需之数据量的问题。减数据量的基本原则是移去冗余的数据。以数学的观点,这等于是一个2维像素数组转换成统计上不相关的数据集。图像的储存或传输前都要先转换。之后,压缩图像就被解压缩以重建原始图像或它的近似。 在本章中我们将讨论图像压缩处理的理论与实现。 8.1到8.3节构成基础的介绍,而此基础整合起来就形成此领域的理论。 8.4到8.6节讨论图像压缩的实际面。 Chapter 8 图像压缩
数据压缩(data compression)这术语是指降低表示一个所给 信息量所需之数据量的一种处理。我们必须弄清楚数据 (data)与信息(information)的区别。其实数据是传递信息的 载体,同样的信息量可能可以用各种不同的数据量来代表。 例如,一个喜欢喋喋不休的人与另一个总是简短扼要讲话的 人来讲同样的故事。 这些数据(或言语)不是提供一些无关紧要的信息就是重述 一些早已知道的东西。因此说它含有数据冗余性( data redundancy ) 8.1背景基础
信息 与 图像的关系 ! 8.1背景基础
数据冗余性是数学上可定量描述的实体。如果用与代数据冗余性是数学上可定量描述的实体。如果用与代 表用来表示同一个信息之两组数据的信息载体单位个数,则 第一组数据集合(用字母表示者)的相对数据冗余性( relative data redundancy ) 可定义成 (8.1-1) 其中通常称为压缩率( compression ratio ) (8.1-2)
在数字图像压缩中,有三种基本的数据冗余性可以被确认与在数字图像压缩中,有三种基本的数据冗余性可以被确认与 利用:编码(coding)冗余性、像素间(interpixel)冗余性 及心理视觉(psychovisual)冗余性。 当减少或消除这些冗余性的一种或多种时,就可达成数据压 缩的效果。
与第三章一样,让我们再次假设在区间[0 , 1] 中的离散随机 变数代表一图像的灰阶,且每个出现的机率为 (8.1-3) 式中L 为灰阶数, 为第k 个灰阶在图像中出现的次数, 而 n 为图像中像素的总数。如果用来表示每个值的位 数是 ,则表示每一个像素所需的平均位数为 (8.1-4) 8.1.1编码冗余性
也就是说,指定给各种不同灰阶之码字的平均码长是代表每也就是说,指定给各种不同灰阶之码字的平均码长是代表每 一个灰阶的位数与该灰阶出现之机率乘积的和。因此,对 一个图像编码所需要的总位数为 。 用 位的自然二进码来代表图像的灰阶(常数),代入 (8.1-4)可得式右边简化为m位。
范例8.1 可变长度编码 的一个简单例 证 一幅八阶图像有表8.1中所示的灰阶分布。如果用 三位的自然二进码(code 1)来表示八种可能的 灰阶,则因为对所有的 都有 ,所以 是3位。不过如果用表8.1中的code 2,则对该 图像编码所需要的平均位数就降为
图8.1说明应用code 2能达到数据压缩的道理。图中同时显 示了图像的直方图与 。因为这两函数成反比,故code 2中的最短码字被分配给图像中最常出现的灰阶。
在上面的例子中,对出现机率较大的灰阶比出现机率较小者在上面的例子中,对出现机率较大的灰阶比出现机率较小者 分配以较少的位数,达到了数据压缩的目的。这个过程常 称为可变长度编码(variable-length coding) 编码冗余是基于图像灰度级出现的可能性。
考虑图8.2中所示的图像。因为这些图像中的灰阶值不是等考虑图8.2中所示的图像。因为这些图像中的灰阶值不是等 机率分布,故用可变长度编码可以从像素的直接或自然二进 制码中降低编码冗余性。不过编码过程并不改变图像内各像 素间的相关程度。换言之,用来代表每一图像灰阶值的码并 未涉及到像素之间的相关性。这些相关性来自图像中各物体 间的结构或几何关系。 8.2(e)与(f)分别显示每一幅图像沿一列所计算出来的自相关 系数( autocorrelation coefficient )。 8.1.2像素间冗余性
这些相关系数是用(4.6-30)式的正规化版本所计算出的:这些相关系数是用(4.6-30)式的正规化版本所计算出的: (8.1-5) 式中 (8.1-6)
45 和 90个样本分开的像素之间的高度相关; • 当n=1时,高的相关性
这些图例反映了数据冗余性的另一个重要形式-与图像内像这些图例反映了数据冗余性的另一个重要形式-与图像内像 素间一种冗余性。由于任一已知像素的灰阶值都可以从其近邻的值合理的预测出,所以各别像素所携带的信息量相当小。 为了减少图像中的像素间冗余性,一般用于人类视觉和理解 的二维像素数组必须转换成更有效 (但通常是非视觉)的 形式。此种类型的转换称为映射( mapping )。如果原始图像 元素可以从经转换的数据集合重建就称为可逆的映射( reversible mapping )
在正常的视觉处理中,某些信息比起其他信息相对不那么重在正常的视觉处理中,某些信息比起其他信息相对不那么重 要,则我们称此信息是心理视觉冗余的( psychovisually redundant )。它可以被消除而使图像质量感受无明显损伤。 心理视觉冗余性不像编码和像素间冗余,而与真实的或可定 量的视觉信息有关。只有当信息本身对一般视觉处理并不重 要时才可以被删去。因为心理视觉冗余数据被删去造成定量 信息的损失,所以通常称之为量化( quantization )。因为它 是一个非可逆的运算,故量化导致有失真的数据压缩。 8.1.3心理视觉冗余性
范例8.3:量化压缩 考虑图8.4 (a)显示一幅有256可能灰阶的黑白图像 (b)显示经过4位或16种可能灰度级后的结果,注意在本来平滑区域中出现假轮廓(利用人眼对灰度不敏感压缩)。 (c)所得的压缩率为2:1。说明利用人类视觉系统特性的量化使图像有很大改善的可能。用来产生此种结果的方法称为改进灰阶 ( IGS , improved gray-scale )量化。
这个方法认为人类眼睛对边缘有特有的灵敏度,因此对每一这个方法认为人类眼睛对边缘有特有的灵敏度,因此对每一 个像素加上一个虚拟随机数以打散这些边缘,其中虚拟随机 数是由量化以前之相邻像素的低位产生。因为低位数相 当随机,这就相当于对伴随于假轮廓的人造边缘加上一定量 的随机性。 表8.2说明这个方法。一个总和起初设定为零,接着从目前 的8位灰阶值与前一个产生总和的最低4位相加形成总 和。不过如果目前像素值最高四位为1111,则用0000代替 去相加。所得总和的最高4位作为编码的像素灰阶值。
正如在前面所谈到的,心理视觉冗余数据的移除会导致真实正如在前面所谈到的,心理视觉冗余数据的移除会导致真实 的或可定量之视觉信息的损失。因为感兴趣的信息可能丢失 ,所以很需要有一个可重复或再现的方法以衡量信息丢失的 特性与程度。这种评估的基本准则通常有两大类: 客观保真度准则( objective fidelity criterion ) 主观保真度准则( subjective fidelity criterion ) 当信息损失的程度可以表示成原始的或输入图像与经过压缩 及解压缩的输出图像的函数时,就说这是根据客观的保真度 准则( objective fidelity criterion ) 8.1.4 保真度准则
输入与输出图像之间的均方根( rms )误差就是个好例子。 假设代表输入图像,对输入图像经过压缩与解压缩 所得的图像代表 的估测或近似。对 或 的任意值, 与之间的误差可以定 义为 (8.1-7) 因此,两个图像之间总误差为
与之间的均方根误差( root-mean-square error ) 为: (8.1-8) 输出图像的均方信噪比( mean square signal-to-noise ratio) (8.1-9) SNRrms取平方根
主观保真度准则( subjective fidelity criterion ) 虽然客观保真度准则提供了一种简单方便的评估机制,但大 多数解压缩图像的最终观察者还是人。因此,用一个观察者 的主观评估来衡量图像质量往往更为适合。其作法为:选一 部分适当的观察者代表,让他们对「典型的」解压缩图像评 分,然后对其评分取平均。评分可以用一个绝对等级尺度或 是以与对照比较。表8.3显示一种可能的 绝对等级尺度。
1 极好 2好 3过得去 4勉强可以 5 差 6不可用
范例8.4:图像质量的比较 图8.4(b)和(c)中量化后图像的均方根误差为6.93与6.78灰 阶。相对应的rms信噪比为10.25与10.39。虽然这些 数值很类似,但两幅被编码图像的主观视觉质量的评价却不 同:图8.4(b)为「勉强通过」( marginal )等级,而8.4(c)则 是「可以通过」( passable )的等级。
如下图所示,一个压缩系统由两个不同的结构区块组成:如下图所示,一个压缩系统由两个不同的结构区块组成: 编码器(encoder)与译码器(decoder)。输入图像 被 送进编码器,编码器从输入数据中产生一组符号。经过通道 (channel)传输后,被编码过的数据送到译码器,译码器产生 一个重建输出图像 。 8.2图像压缩模型
图中所显示的编码器与译码器都含有两个相当独立的功能区图中所显示的编码器与译码器都含有两个相当独立的功能区 块或子区块。编码器由信源编码器( source encoder )与信道 编码器( channel encoder )组成,前者移除输入冗余性,后者 则增强信源编码器输出的抗噪声能力。译码器则包括信道解 码器(channel decoder)及其后的信源译码器(source decoder)
信源编码器负责缩减或删去输入图像中的任何冗余性。具体信源编码器负责缩减或删去输入图像中的任何冗余性。具体 的应用与伴随的保真度要求决定了在任何所给情况下可用的 最好编码方法。通常,这种方法可用三个独立运算串联的模 型来表示。如图8.6(a)。第一阶段由映射器(mapper)将输入 资料转换成可以缩减输入图像之像素间冗余性的格式,DCT变换是一个映射例子。第二阶段是量化器(quantizer),根据某一个预先建立的保真度准则,降低映像器输出的精确度以缩减心理视觉冗余性。第三阶段是符号编码器(symbol coder)产生一个表示量化器输出的固定或可变长度码并根据该码映射输出。以减少编码冗余。 8.2.1信源编码器和译码器
图8.6(b)所显示的信源译码器仅含有两个部份:一个符号解图8.6(b)所显示的信源译码器仅含有两个部份:一个符号解 码器(symbol decoder)和一个反映射器(inverse mapper)。 这两个区块依相反的顺序执行信源编码器中的符号编码器和 映射区块的反运算。因为量化产生不可逆的信息损失,故在 通常的译码器模型中并未包括反量化器区块。
当信道中有噪声或容易错误时,信道编码器和译码器在整个当信道中有噪声或容易错误时,信道编码器和译码器在整个 编码-译码过程中扮演重要的角色。信道编码器在信源编码资 料中插入受控制的冗余性来减少信道噪声的冲击。因为信源 编码器的输出不含有冗余性,如果不加此「受控制的冗余性 」就会对传输噪声高度敏感。 最有名的信道编码技术之一是由R. W. Hamming发明的。它 是对要编码的数据加入足够的位,以确保有效码字之间的 位改变至少要达某一最小数。 8.2.2信道编码器和译码器
伴随4位二进制数 的 7 位元 Hamming (7,4) code 为 (8.2-1) 其中表示XOR 运算。注意位元 , 和 分別是字节 , 与 的偶校验(even parity bits) ( 回想一下:若在一串二位字符串中有偶数个1的位,则其有 偶校验。)
要对汉明编码的结果译码,信道译码器必须检验编码值,对要对汉明编码的结果译码,信道译码器必须检验编码值,对 先前已建立偶同位校验的字节进行奇同位校验。单一个位 元错误由非零的同位字组 所示,其中 (8.2-2) 如果发现了非零值,则译码器只要将同位字组指出的码字位 元位置取补码即可。接着从被更正的码字中提取出译码后的 二进制数值。
范例8.5:Hamming encoding 考虑表8.2的4位IGS数据在有噪声的信道上传输。单一 位错误会引起解压缩后像素的灰阶值最高达128阶误差。 汉明信道编码器藉由插入足够冗余性的方法可以检出并更正 单一个位错误。由(8.2-1)式,表8.2中第一个IGS值(0110)的汉 明编码结果为 。因为汉明信道编码器使表示IGS 数据所需的位数从4增加到7,所以在IGS例子中所提到 的2:1压缩率也减到8/7或1.14:1。压缩率减少就是增加 抗噪声能力所付出的代价。
在8.1节中我们介绍了几种缩减用来表示一图像之数据量的在8.1节中我们介绍了几种缩减用来表示一图像之数据量的 方式。很自然产生的问题是:表示一幅图像所需的资料到底 可少到什么程度?也就是说,是否存在有一个既足够完全地 描述图像又不丢失信息的最小数据量? 信息论提供一个数学架构以回答这个以及相关的问题。 8.3信息论基础
信息论的基本前提是信息的产生可以被模拟为一个概率过程,这个过程可以用与我们的直觉相一致的方法度量。根据这个假设,一个发生机率为 的随机事件 ,我们称它含有 (8.3-1) 单位的信息。 这个量常称为的自信息( self- Information )(P(E)=1,则I(E)=0,信息为0) 8.3.1测量信息
当在信息源与信息用户之间传递自信息时,我们说信息当在信息源与信息用户之间传递自信息时,我们说信息 源与信息用户之间是由信息信道( information channel )相 连接。图8.7显示一个离散信息系统的简单数学模型。这里 特别感兴趣的参数是系统的容量( capacity ),定义成系统传 递信息的能力。假设图中的信息源产生一个随机的符号序列 ,称为原始字母集A ( source alphabet A ), 集合中的元素用表示,称为符号(symbol)或字母(letter)。 信息源会产生符号这事件的机率为 ,且 (8.3-2) 8.3.2信息信道
一个维向量常用来表示 所有原始符号机率的集合 。有限的总 体(ensemble) 完整描述了此信息源。 假设离散源发送符号 的机率为 ,则根据(8.3-1)式,一 个单一信息源符号所产生的自我信息为 。如 果产生 个信息源符号,大数定律告诉我们,对足够大的 ,符号平均将输出 次。因此平均自我信息为
或 每个信息源输出的平均信息用表示为 (8.3-3) 这个量称为信息源的不确定性(uncertainty)或熵(entropy)。 它定义了由观察单一个信息源输出所得的平均信息量。
因为我们对图8.7信息信道的输入是以一个离散的随机变量因为我们对图8.7信息信道的输入是以一个离散的随机变量 为模型来描述,所以传递到信息信道输出的信息也是一个离 散随机变数,它的值来自一个可数符号集合 称为信道字母集B (channel alphabetB)。符号被呈现给信 息使用者(information user)的这事件的机率为 。有限总 集 完全描述了通道输出以及被用户接收到的信息, 其中 。 一个已知通道输出机率和信源原始机率分布 的关系式为 (8.3-4)
如果在上式中的条件机率被安排成 的矩阵 ,使得 (8.3-5) 则全部输出字母的机率分布可由下式计算 (8.3-6) 称为正向通道转移矩阵(forward channel transition matrix) 或简称信道矩阵(channel matrix) 。
为了求一个具有信道矩阵的信道容量,我们必须先计算在为了求一个具有信道矩阵的信道容量,我们必须先计算在 使用者观察到某特定输出 的假设下,信息源的熵值。8.3-4 式定义对任意观察的的原始符号分布,所以每一个 都有 一个条件熵函数(conditional entropy function)。可写成 (8.3-7) 此表示式对所有的期望值为 (8.3-8)
以(8.3-7)式取代并做一些改写之后,上式可写成以(8.3-7)式取代并做一些改写之后,上式可写成 (8.3-9) 的术语称为 对 的模棱两可不确定性(equivocation) 它代表假设已观察到由一原始符号的产生所得的输出符号后 此一原始符号的平均信息。因为是在假设不知道任何关 于输出符号条件下的一个原始符号的平均信息,故与 之间的差值就是因观察到一个输出符号所接收到的平均 信息。
这差值称之为与的交互信息(mutual information) (8.3-10) 将(8.3-3)与(8.3-9)式代入得到 (8.3-11) 可重写成 (8.3-12)
从在 中所有可能的信源机率中选择出的最大值,就 是以信道矩阵所描述之信道的容量(capacity) ,亦即 (8.3-13) 其中最大值是对所有可能的输入符号机率做考虑而选出的,它不取决于信源的输入概率,而取决于信道的条件概率。
范例8.6:二元的状况 考虑 的一个二元信息源。信息源产生符号 与的机率分别为及 。熵值为 因为 ,所以只与单一参数 有关。方程式右边的部份称为二元熵函数( binary entropy function),记作 。图8.8 (a)显示 在 的图。
现在假设信息要在一个有噪声的二元信道上传送并令任一符现在假设信息要在一个有噪声的二元信道上传送并令任一符 号在传送期间发生错误的机率为 ,这样的通道称为二元对 称通道(binary symmetric channel , BSC ),定义为 接收到输出与 的机率可以由(8.3.6)式求得: