1.32k likes | 1.44k Views
学习目标. 第 4 章 静态图像信息处理. l 了解多媒体数据压缩编码的重要性和分类 l 掌握图像数据压缩编码常用算法的基本原理 l 了解常用图形、图像文件的基本格式及特点 l 理解静态图像压缩标准 JPEG 的工作原理和实现技术 l 了解图像信息获取的基本原理和方法 l 掌握用 Photoshop 处理图像的基本方法. 第 4 章 静态图像信息处理.
E N D
学习目标 第4章静态图像信息处理 l了解多媒体数据压缩编码的重要性和分类 l掌握图像数据压缩编码常用算法的基本原理 l了解常用图形、图像文件的基本格式及特点 l理解静态图像压缩标准JPEG的工作原理和实现技术 l了解图像信息获取的基本原理和方法 l掌握用Photoshop处理图像的基本方法
第4章静态图像信息处理 • 图像处理就是将客观世界中的物体映射成数字化图像,然后用数学方法通过编程在计算机中进行处理、存储和显示。与数字音频类似,数字图像的数据量一般都比较大,在存储时会占用大量的空间,因此需要对图像进行压缩编码。本章主要介绍色彩的基本概念和表示方法、图像数据压缩的基本算法、图像的存储和编辑处理的基本方法。
4.1 彩色空间表示及其转换 • 4.1.1 颜色的基本概念 • 1.亮度、色调和饱和度 • 彩色可用亮度、色调和饱和度来描述,人眼看到任意彩色光都是这三个特性的综合效果。 • 亮度是发射光或物体反射光明亮度程度的量度 • 色调是由于某种波长的颜色光使观察者产生的颜色感觉,每个波长代表不同的色调 。它反映颜色的种类,决定颜色的基本特性,例如红色、棕色等都是指色调。某一物体的色调,是指该物体在日光照射下所反射的各光谱成分作用于人眼的综合效果,对于透射物体则是透过该物体的光谱综合作用的结果。
1.亮度、色调和饱和度 • 饱和度是颜色强度的度量。对于同一色调的彩色光,饱和度越深颜色越鲜明或者越纯。例如红色和粉红色的区别,虽然这两种颜色有相同的主波长,但一种也许是混合了更多的白色在里面,因此显得不太饱和。 • 饱和度还与亮度有关,因为若在饱和的彩色光中增加白光的成分,这增加了光能,因而变得更亮了,但它的饱和度却降低了。 • 通常把色调、饱和度统称为色度,上述内容总结为亮度表示某彩色光的明亮程度,而色度则表示颜色的类别与深浅程度。
2.三基色(RGB)原理 • 自然界常见的各种颜色光,都可由红(R)、绿(G)、蓝(B)三种颜色按不同的比例相配而成,这就是色度学中最基本的原理——三基色原理。 • 三基色的选择必须遵循一条规律:任一种颜色都不能由其他两种颜色合成。因为人的眼睛对红、绿、蓝这三种色光最敏感,因此,以这三种颜色作为基色相配来获得彩色得到了最为广泛的应用。
某种颜色和这三种颜色之间的关系可用下面的式子来描述:某种颜色和这三种颜色之间的关系可用下面的式子来描述: R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)=颜色 用公式表达如下: 红色(100%)+绿色(100%)+蓝色(0%)= 黄色 红色(100%)+蓝色(100%)+绿色(0%)= 品红 绿色(100%)+蓝色(100%)+红色(0%)= 青色 红色(100%)+绿色(100%)+蓝色(100%)= 白色 • 把三种基色光按不同的比例相加称之为相加混色。 我们称青色、品红和黄色为红、绿、蓝三色的补色,从图4-1中还可以看出: 红色+青色=绿色+品红= 蓝色+黄色= 白色
4.1.2 色彩的空间表示 • 在多媒体系统中常涉及到用几种不同的色彩空间表示图形和图像的颜色,如计算机显示时采用RGB彩色空间或色彩模型;在彩色全电视数字化时使用YUV色彩模型;彩色印刷时采用CMYK模式等。不同的彩色空间对应不同的应用场合,在图像的生成、存储、处理及显示时对应不同的彩色空间,需要做不同的处理和转换。
1.RGB彩色空间 • 由于某种颜色可以由红(R)、绿(G)、蓝(B)三种色光按不同的比例相加混色来得到,如果将R、G、B看成三个变量,就形成RGB三维彩色空间。在多媒体计算机中,用的最多的是RGB彩色空间 。不管其中采用什么形式的彩色空间表示方法,多媒体系统最终的输出一定要转换成RGB空间表示。 • 对任意彩色光F,其配色方程可写成: • F=r[R]+g[G]+b[B] 其中r、g、b为三色系数r[R],g[G],b[B]为F色光的三色分量。任意一种色光,其色度可由相对色系数中的任意两个唯一的确定。因此,各种彩色的色度可以用二维函数表示。用r和g作为直角坐标系中两个直角坐标所画的各种色度的平面图形,就叫RGB色度图,如右图。
2.HSI色彩空间 • HSI色彩空间指从人的视觉系统出发,用色调(hue)、色饱和度(saturation或chroma)和亮度(intensity或brightrless)来描述色彩。HSI色彩空间可以用一个圆锥空间模型来描述,其中以亮度I为纵轴,色调H为绕着圆锥截面度量的色环,色饱和度S为穿过中心的半径横轴。亮度值是沿着圆锥的轴线度量的,沿着圆锥轴线上的点表示完全不饱和的颜色。按照不同的灰度等级,最亮点为纯白色,最暗点为纯黑色。圆锥截面的圆周一圈上的颜色为完全饱和的纯颜色。
人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,当图像亮度有变化时视觉反应明显,而当颜色浓淡有变化时视觉往往没有反应。人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,当图像亮度有变化时视觉反应明显,而当颜色浓淡有变化时视觉往往没有反应。 • 由于HSI色彩空间更接近人对色彩的认识和解释,因此采用HSI方式能够减少彩色图像处理的复杂性,提高处理速度。 • 在图像处理和计算机视觉中大量算法都可在HSI色彩空间中方便地使用,它们可以分开处理而且是相互独立的。因此,用HSI色彩空间可以大大简化图像分析和处理的工作量。 • HSI色彩空间和RGB色彩空间只是同一物理量的不同表示法,因而它们之间存在着转换关系,如公式(4-1)所示。彩色图像的获取可采用RGB空间,图像的编辑可采用HSI空间。 其中: (4-1)
3.YUV和YIQ彩色空间 • 在彩色电视制式中,图像是通过YUV和YIQ空间来表示的。PAL彩色电视制式使用YUV模型,Y表示亮度,UV用来表示色差,U、V是构成彩色的两个分量。YUV彩色空间中,三管彩色摄像机或CCD摄像机就是把拍摄的彩色图像,经分色棱镜分成R0G0B0信号,然后进行放大和γ校正得到RGB,再经过矩阵变换电路得到亮度信号Y、色差信号R-Y和B-Y,发送端将Y、R-Y及B-Y三个信号进行编码,用同一信道发送出去。 • YUV表示法中,亮度信号(Y)和色度信号(U、V)是相互独立的。其中,Y信号分量构成黑白灰度图,U、V信号构成另外两幅单色图。利用YUV分量之间的独立性原理,黑白电视能接收彩色电视信号,解决了黑白电视和彩色电视的兼容问题。 • YUV表示法可以利用人眼的特性来降低数字彩色图像所需要的存储容量。
美国、日本等国家采用的NTSC电视制式选用YIQ彩色空间,Y仍为亮度信号,I、Q仍为色差信号,与U、V不同的是,在它们之间存在着一定的转换关系。人眼的彩色视觉特性表明,人眼分辨红、黄之间的颜色变化的能力最强,而分辨蓝色与紫色之间的变化的能力最弱。通过一定的变换,I对应于人眼最敏感的色度,而Q对应于人眼最不敏感的色度。美国、日本等国家采用的NTSC电视制式选用YIQ彩色空间,Y仍为亮度信号,I、Q仍为色差信号,与U、V不同的是,在它们之间存在着一定的转换关系。人眼的彩色视觉特性表明,人眼分辨红、黄之间的颜色变化的能力最强,而分辨蓝色与紫色之间的变化的能力最弱。通过一定的变换,I对应于人眼最敏感的色度,而Q对应于人眼最不敏感的色度。 在考虑人的视觉系统和阴极射线管(CRT)的非线性特性之后,RGB和YUV的对应关系可以近似的用方程式4-2表示: Y = 0.299R + 0.587G + 0.114B U = -0.147R-0.289G + 0.436B (4-2) V = 0.615R-0.515G-0.100B 或者写成矩阵的形式: RGB和YIQ的对应关系用方程式4-3表示: Y=0.299R + 0.587G + 0.114B I=0.596R - 0.275G - 0.321B (4-3) Q=0.212R - 0.523G + 0.311B
4.YCrCb彩色空间 • YCrCb彩色空间是由YUV彩色空间派生的一种颜色空间,主要用于数字电视系统。是数字视频信号的世界标准。基本上,YCrCb代表和YUV相同的彩色空间。在这两个彩色空间中Y表示明亮度,也就是灰阶值;而U和V表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面——色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。 数字域中的彩色空间变换与模拟域的彩色空间变换不同。它们的分量使用Y、Cr和Cb来表示,与RGB空间的转换关系如公式4-4所示: Y=0.299R+0.578G+0.114B Cr=(0.500R-0.4187G-0.0813B)+128 (4-4) Cb=(-0.1687R-0.3313G+0.500B)+128
5.CMY彩色空间 • 印刷机或彩色打印机就不能用RGB颜色来印刷或打印,它只能使用一些能够吸收特定的光波而反射其他光波的油墨或颜料来实现。油墨或颜料的三基色是青(cyan)、品红(magenta)和黄(yellow),简称为CMY。青色对应蓝绿色,品红对应紫红色。理论上说,任何一种由颜料表现的色彩都可以用这三种基色按不同的比例混合而成,这种色彩表示方法称CMY色彩空间表示法。由CMY混合的色彩又称为相减混色。 • CMY又写成CMYK。在实际应用中,一幅图像在计算机中用RGB空间或其他空间表示并处理,最后打印输出时要转换成CMY空间表示。
4.2 图像数据压缩的基本算法 4.2.1 数据压缩编码简介 • 图像数据压缩的主要依据 有两个:一是图像数据中有许多重复的数据,使用数学方法来表示这些重复数据就可以减少数据量;另一个依据是人眼睛对图像细节和颜色的辨认有一个极限,把超过极限的部分去掉,这也就达到了数据压缩的目的。 • 有损压缩技术和无损压缩技术 基于数据冗余的压缩技术是无损压缩技术,而基于人眼视觉特性的压缩技术是有损压缩技术。实际上,图像压缩技术是各种有损和无损压缩技术的综合实现。
常见的图像数据冗余 • (1)空间冗余。在任何一幅图像中,均有由许多灰度或颜色都相同的邻近像素组成的区域,它们形成了一个性质相同的集合块,即它们相互之间具有空间(或空域)上的强相关性,在图像中就表现为空间冗余。 • (2)结构冗余。在有些图像的纹理区,图像的像素值存在着明显的分布模式。例如,方格状的板图案等,我们称此为结构冗余。已知分布模式,可以通过某一过程生成图像。 • (3)时间冗余。这是序列图像(电视图像、运动图像)表示中经常包含的冗余。图像序列中两幅相邻的图像有较大的相关,这反映为时间冗余。 • (4)视觉冗余。人类视觉系统的一般分辨能力估计为26灰度等级,而一般图像的量化采用的是28的灰度等级。像这样的冗余,我们称之为视觉冗余。 • (5)知识冗余。有些图像的理解与某些知识有相当大的相关性。例如:狗的图像有固定的结构,比如,狗有四条腿,头部有眼、鼻、耳朵,有尾巴等。这类规律性的结构可由先验知识和背景知识得到,我们称此类冗余为知识冗余。 • 空间冗余和时间冗余是将图像信号看作为随机信号时所反映出的统计特征,因此有时把这两种冗余称为统计冗余。
2.数据压缩方法的分类 • 根据编、解码后数据是否一致来进行分类,数据压缩的方法一般被划分为两类: (1)可逆编码(无损编码)。此种方法的解码图像与原始图像严格相同,压缩比大约在2:1~5:1之间。主要编码有Huffman编码、算术编码、行程长度编码等。 (2)不可逆编码(有损编码)。此种方法的解码图像与原始图像存在一定的误差,但视觉效果一般可以接受,压缩比可以从几倍到上百倍调节。常用的编码有变换编码和预测编码。
根据压缩的原理分为如下几种 • (1)预测编码。它是利用空间中相邻数据的相关性来进行压缩数据的。通常用的方法有脉冲编码调制(PCM)、增量调制(DM)、差分脉冲编码调制(DPCM)等。这些编码主要用于声音的编码 • (2)变换编码。该方法将图像时域信号转换为频域信号进行处理。这种转换的特点是把在时域空间具有强相关的信号转换到频域上时在某些特定的区域内能量常常集中在一起,数据处理时可以将主要的注意力集中在相对较小的区域,从而实现数据压缩。一般采用正交变换,如离散余弦变换(DCT)、离散傅立叶变换(DFT) • (3)量化与向量量化编码。对模拟信号进行数字化时要经历一个量化的过程。为了使整体量化失真最小,就必须依据统计的概率分布设计最优的量化器。最优的量化器一般是非线性的,已知的最优量化器是Max量化器。我们对像元点进行量化时,除了每次仅量化一个点的方法外,也可以考虑一次量化多个点的做法,这种方法称为向量量化。即利用相邻数据间的相关性,将数据系列分组进行量化。
(4)信息熵编码。依据信息熵原理,让出现概率大的信号用较短的码字表示,反之用较长的码字表示。常见的编码方法有Huffman编码、Shannon编码以及算术编码。(4)信息熵编码。依据信息熵原理,让出现概率大的信号用较短的码字表示,反之用较长的码字表示。常见的编码方法有Huffman编码、Shannon编码以及算术编码。 • (5)子带(subband)编码。将图像数据变换到频率后,按频率分带,然后用不同的量化器进行量化,从而达到最优的组合。或者分布渐进编码,在初始时,对某一个频带的信号进行解码,然后逐渐扩展到所有频带。
课后思考题 • 1.图像有哪些基本属性? • 2 .什么是色调、饱和度和亮度? • 3.什么是矢量图?什么是位图? • 4.什么是真彩色?什么是真彩色图像? • 5.简述加色原理和减色原理。 • 6.为什么数据可以被压缩? • 7 .数据冗余有哪些类型?
4.2.2 信息熵及基本概念 • 1.信息量与信息熵 • 信息量是指从N个相等的可能事件中选出一个事件所需要的信息度量或含量,也就是在辨识N个事件中特定的一个事件的过程中所需要提问“是或否”的最少次数。 • 设从N个数中选定任一个数xj的概率为p(xj),假定选定任意一个数的概率都相等,即p( xj)=,因此定义信息量见公式4-5。定义信息量见公式4-5。 (4-5) 如果将信源所有可能事件的信息量进行平均,就得到了信息的“熵”,即信息熵。 式中,P(xj)是信源X发出xj的概率。I(xj)的含义是,信源X发出xj这个消息(随机事件)后,接收端收到信息量的量度。
(4-6) • 信源X发出的xj(j=1,2,…,n)共n个随机事件的自信息统计平均,即 H(X)称为信源X的“熵”,即信源X发出任意一个随机变量的平均信息量。 • 其中:等概率事件的熵最大,假设有N个事件,由(4-6)式得此时熵为: 当P(x1)=1时,P(x2)=P(x3)=…=P(xj)=0,由(4-6)式得此时熵为 由上可得熵的范围为:
在编码中用熵值来衡量是否为最佳编码。若以Lc表示编码器输出码字的平均码长,则当在编码中用熵值来衡量是否为最佳编码。若以Lc表示编码器输出码字的平均码长,则当 Lc≥H(X) 有冗余,不是最佳。 Lc<H(X) 不可能。 Lc=H(X) 最佳编码(Lc稍大于H(X))。 熵值为平均码长Lc的下限。 平均码长Lc的计算公式为: (j=1,2,…,n) (4-7) 其中:P(xj) 是信源X发出xj的概率,L(xj)为xj的编码长。
2.冗余度、编码效率与压缩比 在数字图像通信系统中,冗余度、编码效率与压缩比是衡量信源特性以及编解码设备性能的重要指标。 • 设原图像的平均码长为L,熵为H(X),压缩后图像的平均码长为Lc,则定义冗余度为(见公式4-8) : • (4-8) • 编码效率(见公式4-9): • (4-9) • 压缩比(见公式4-10): (4-10)
4.2.3 信息熵编码 • 信息熵编码也称为统计编码,是利用信息源出现的概率来进行编码,目前比较常见的信息熵编码包括哈夫曼编码、香农-范诺编码、行程编码和算术统计编码等。 1.哈夫曼编码 • 基本原理 依据信源字符出现的概率大小来构造代码,对出现概率较大的信源字符,给予较短码长,而对于出现概率较小的信源字符,给予较长的码长,最后使得编码的平均码字最短。
具体的编码步骤如下: • (1)将信源符号出现的概率按由大到小的顺序排序。 • (2)将两处最小的概率进行组合相加,形成一个新的概率。 • (3)将新出现的概率与未编码的字符一起重新排序。 • (4)重复步骤(2)、(3),直到出现的概率和为1。 • (5)分配代码。代码分配从最后一步开始反向进行,对最后两个概率一个赋予0代码,一个赋予1代码。如此反向进行到开始的概率排列。在此过程中,若概率不变则采用原代码。
编码步骤: (1)初始化,根据符号概率的大小按由大到小顺序对符号进行排序,如图4-2所示。 (2)把概率小的两个符号组成一个节点,如图4-2中的a5、a6组成节点P1。 (3)重复步骤2,得到节点P2、P3、P4、P5,形成一棵“树”,其中P5为根节点。 (4)从根节点P5开始到相应于每个符号的“树叶”,从上到下标上1(上枝)或者0(下枝),至于哪个为1哪个为0则无关紧要,最后的结果仅仅是分配的代码不同,而代码的平均长度是相同的。 • 例4-1:设输入图像的灰度级{a1,a2,a3,a4,a5,a6}出现的概率分别是0.4、0.2、0.12、0.15、0.1、0.03。试进行哈夫曼编码,并计算编码效率、压缩比、冗余度。 最终编码结果为:a1 =1, a2 =000 , a3 =011, a4 =001, a5 =0100, a6 =0101
由公式(4-6)可求得图像信源熵是: H(X)= =-(0.4×log20.4+0.2×log20.2+0.12×log20.12+ 0.15×log20.15+0.1×log20.1+0.03×log20.03) =2.25 bit 根据哈夫曼编码过程图给出的结果,由公式(4-7)可求出它的平均码字长度: Lc=0.4×1+0.2×3+0.15×3+0.12×3+0.1×4+0.03×4 =2.33 由公式(4-9)得编码效率为: 压缩之前8个符号需要3个比特量化,经过压缩之后的平均码字长度为2.33,由公式(4-10)得其压缩比为: 由公式(4-8)得冗余度为: r = 1-η = 3.4%
采用哈夫曼编码时有两个问题值得注意: (1)哈夫曼编码没有错误保护功能,在译码时,如果码串中没有错误,那么就能一个接一个的正确译出代码。但如果码串中有错误,哪怕仅是1位出现错误,不但这个码本身译错,更糟糕的是后面的译码可能全错,这种现象称为错误传播(Error Propagation)。 (2)哈夫曼编码是可变长度码,因此很难随意查找或调用压缩文件中间的内容,然后再译码,这就需要在存储代码之前加以考虑。
2.算术编码 • 算术编码(arithmetic coding AC)是利用0和1之间的间隔来表示信源编码的一种方法,其编码值是间隔的上、下限包含的相同二进制。编码过程中的间隔决定了符号压缩后的输出。 • 算术编码用到两个基本的参数:符号的概率和它的编码间隔。 • 信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0到1之间。 • 算术编码器的编码过程可用例4-2加以解释。
例4-2:假设信源符号为{A, B, C, D},这些符号的概率分别为{ 0.1, 0.4, 0.2, 0.3 },根据这些概率可把间隔[0, 1]分成4个子间隔:[0, 0.1], [0.1, 0.5], [0.5, 0.7], [0.7, 1],其中[x,y]表示半开放间隔,即包含x不包含y,如表4-1所示。 如果消息序列的输入为:CADACDB,其编码过程如下: 首先输入的符号是C,找到它的编码范围是[0.5, 0.7]; 由于消息中第2个符号A的编码范围是[0, 0.1],因此它的间隔就取[0.5, 0.7]的第一个1/10作为新间隔[0.5, 0.52]; 表4-1 信源符号、概率和初始编码间隔 编码第3个符号D时取新间隔为[0.514, 0.52]; 编码第4个符号A时,取新间隔为[0.514, 0.5146],…。
消息的编码输出可以是最后一个间隔中的任意数,整个编码过程如图4-3所示。最后在[0.5143876,0.51442]中选择一个数作为编码输出值:0.5143876。消息的编码输出可以是最后一个间隔中的任意数,整个编码过程如图4-3所示。最后在[0.5143876,0.51442]中选择一个数作为编码输出值:0.5143876。 解码时,解码器由编码输出值:0.5143876,可马上解得一个字符为C,然后依次得到唯一解A,D,A,C,D,B。
在算术编码中需要注意的几个问题: • (1)由于实际的计算机的精度不可能无限长,运算中出现溢出是一个明显的问题,但多数机器都有16位、32位或者64位的精度,因此这个问题可使用比例缩放方法解决。 • (2)算术编码器对整个消息只产生一个码字,这个码字是在间隔[0, 1)中的一个实数,因此译码器在接受到表示这个实数的所有位之前不能进行译码。 • (3)算术编码也是一种对错误很敏感的编码方法,如果有一位发生错误就会导致整个消息译错。
3.行程长度编码 • 是一个针对包含有顺序排列的多次重复的数据的压缩方案。其原理就是把一系列的重复值用一个单独的值再加上一个计数值来取代,行程长度就是连续且重复的单元数目。如果想得到原始数据,只需展开这个编码就可以了。 • 例如,计算机制作图像中,常常具有许多颜色相同的图块,而且在行上都具有相同的颜色,或者在一行上有许多连续的像素都具有相同的颜色值。这时,就不需要存储每一个像素的颜色值,而仅存储一个像素的颜色值以及具有相同颜色的像素数目就可以,或者存储一个像素的颜色值,以及具有相同颜色值的行数,这种压缩编码称为行程编码。具有相同颜色的连续的像素数目称为行程长度。
如图所示,假定一幅灰度图像,第n行的像素值为:如图所示,假定一幅灰度图像,第n行的像素值为: 用RLE编码方法得到的代码为:3150841160。代码斜黑体表示的数字是行程长度,黑体字后面的数字代表像素的颜色值。例如黑体字50代表有连续50个像素具有相同的颜色值,它的颜色值是8。 对比RLE编码前后的代码数可以发现,在编码前要用73个代码表示这一行的数据,而编码后只要用10个代码表示代表原来的73个代码,压缩前后的数据量之比约为7:1,即压缩比为7:1。这说明RLE确实是一种压缩技术,而且编码技术实用。
RLE的性能好坏主要取决于图像本身的特点。RLE压缩编码尤其适用于计算机生成的图像,对减少图像文件的存储空间非常有效。然而,由于颜色丰富的自然图像在同一行上具有相同颜色的连续像素往往很少,而连续几行都具有相同颜色值的连续行数就更少,如果仍然使用RLE编码方法,不仅不能压缩图像数据,反而可能使原来的图像数据变得更大。RLE的性能好坏主要取决于图像本身的特点。RLE压缩编码尤其适用于计算机生成的图像,对减少图像文件的存储空间非常有效。然而,由于颜色丰富的自然图像在同一行上具有相同颜色的连续像素往往很少,而连续几行都具有相同颜色值的连续行数就更少,如果仍然使用RLE编码方法,不仅不能压缩图像数据,反而可能使原来的图像数据变得更大。 译码时按照与编码时采用的相同规则进行,还原后得到的数据与压缩前的数据完全相同。因此,RLE属于无损压缩技术。
(补充)词典编码 词典编码属于无损压缩技术,其根据是数据本身包含有重复代码序列这个特性。词典编码的种类较多,归纳起来有两类。 第一类词典编码的基本思想是查找正在压缩的字符序列是否在前面输入的数据中出现过,如果是,则用指向早期出现过的字符串的“指针”替代重复的字符串。这种编码思想如图。
这里所指的“词典”是指用以前处理过的数据来表示编码过程中遇到的重复部分。这类编码中的所有算法都是以Abraham Lempel 和Jakob Ziv在1977年开发和发表的称为LZ77算法为基础的,1982年由Storer和Szymanski改进的称为LZSS算法。 第二类算法的思想是从输入的数据中创建一个“短语词典”(dictionary of the phrases)(这种短语可以是任意字符的组合)。编码数据过程中,遇到已经在词典中出现的“短语”时,编码器就输出这个词典中该短语的“索引号”,而不是短语本身,如图。
J.Ziv和A.Lempel在1978年首次发表了介绍这种编码方法的文章。在他们研究的基础上,Terry A.Weltch在1984年发表了改进这种编码算法的文章,因此把这种编码方法称为LZW(Lempel-Ziv Walch)压缩编码。这种算法首先在高速硬盘控制器上得到了应用。在众多的压缩技术中,LZW算法时一种通用的、性能优良并得到广泛应用的压缩算法。LZW是一种完全可逆的算法,与其他算法比较,往往具有更高的压缩效率,因此被广泛应用于多种流行的压缩软件中。
4.2.4 变换编码 • 变换编码不是直接对空间域图像信号编码,而是首先将空间域图像信号映射变换到另一个正交矢量空间,产生一批变换系数,然后对这些变换系数进行编码处理。 • 图4-5显示了一个变换编码解码过程的示意图。 • 变换编解码系统通过发送端将原始图像分割成1到n个子图像块,每个子图像块送入到正交变换器作正交变换,变换器输出变换系数经过滤波、量化、编码后送到信道传输到接收端,接收端作解码、逆变换、综合拼接,恢复出空域图像。 • 人们通过对大量自然景物图像的统计分析发现,绝大部分图像信号在空间域中像素之间的相关性是很大的。它们经过正交变换以后,其能量主要集中在低频部分;而且经过正交变换后的变换系数之间的相关性大大降低。 • 变换编码的基本思路就是利用上述特点,在编码时略去某些能量很小的高频分量,或在量化时对方差较小的分量分配以较少的比特数,以降低码率。另外,变换编码还可以根据人眼对不同频率分量的敏感程度而对不同系数采用不同的量化台阶,以进一步提高压缩比。
变换编码的性能取决于子图像的大小、正交变换的类型、样本的选择和量化器的设计。变换编码的性能取决于子图像的大小、正交变换的类型、样本的选择和量化器的设计。
1.正交变换类型 • 从均方误差最小和主观图像质量两个观点来看,最好的变换类型是离散K-L变换。 但由于离散K-L变换的基核向量是不固定的,一般没有快速算法,因此只宜作理论分析和试验。 • 在数字信号处理技术中,傅里叶变换是应用最为广泛的一类正交变换,它不仅具有物理含义明确的优点,而且可以使用快速算法来减少运算量。但它应用在图像编码中时也有两个明显的弱点:一是要进行复数运算;二是收敛速度较慢。 • 变换压缩编码的基本依据是变换系数的方差比较集中。因此通常按系数方差大小作出变换系数的分布函数,以说明方差的集中程度。当原始图像为相关函数 的高斯型一阶马尔可夫过程时, • 离散余弦DCT可与最佳变换K-L媲美,因为DCT与K-L变换压缩性能和误差比较近,而且DCT也具有多种快速算法,因而在图像压缩编码中被广泛的应用。DCT变换具有如下特点: • DCT变换计算复杂度适中。 • DCT变换域系数矩阵能量集中在直流和低频区。 • DCT的直流系数近似满足瑞利分布,交流系数近似满足拉普拉斯分布。 • DCT系数相关性很小。
2.样本选择与量化方案 在变换编码中,选择哪些变换系数进行量化编码,略去哪些系数不予传输,对变换压缩编码的性能有很大影响。原则上,应保留能量集中、方差大的变换系数予以编码传输。 系数选择通常有两种方法:区域取样和门限取样。 • 区域取样:是对设定形状内的变换系数进行量化编码,略去区域外的变换系数。由于DCT变换域系数矩阵能量集中在直流和低频区,则在图4-6所示的DCT系数中能量将主要集中在左上角的系数上。为此,可只传左上角上的系数,并按图中的“之”字形扫描路径输出系数。 • 门限取样:是把变换系数的方差和某个门限值比较,超过门限的会予以编码,否则舍弃。
在选定了要编码传输的系数后,有几种方法可以对其量化:在选定了要编码传输的系数后,有几种方法可以对其量化: (1)对所有变换系数分配相同的比特数。在发送端先对各变换系数进行归一化,使它们变得有相同的方差,然后用一个统一的量化器对所有的系数进行量化及编码。在该方式下,由于接收端要把归一化的系数恢复回去,原来方差大的系数要乘大的倍数,因此量化误差大。 (2)对方差大的变换系数分配较多的比特数,使比特数正比于该系数方差的对数。可以证明,这样的分配方案可使量化造成的总均方误差最小。在该方式中,对不同的变换系数要用不同的量化器,它们之间不仅量化级数不同,判决电平和量化输出电平的变化规律也可以不同,以适合各自系数的分布规律。 (3)利用人眼视觉特性设计量化器。由于人眼对不同空间频率的失真敏感度不同,在比特分配时可对人眼较为敏感的变化系数分配较多的比特,而不太敏感的系数分配较少的比特。按这种方式设计的量化器可使变换编码系统总的主观图像质量较好。 变换编码中对变换域系数的量化是造成图像质量下降的主要原因,量化器设计的好坏将直接影响图像质量。变换编码中图像质量下降的主要表现形式是方块效应,也即在图像分块的边缘产生较易为人眼所察觉的误差。
3.子图像大小选择 在变换编码系统中,考虑到矩阵变换所需的计算量、变换编码的性能和传输时误码的影响等因素,一般将图像分成若干小的子图像进行处理。 从变换编码的压缩特性来看:子图像尺寸n越大,所计入的相关像素越多,总的均方差性能越好。但根据对大量自然图像的统计分析结果,大多数图像仅在约20个相邻像素间有较大的相关性,n>16后对性能的改善不大。变换编码对图像进行分块处理的另一特点,是可以将传输时误码造成的图像损伤限制在子图像范围内。显然,子图像尺寸越大误码造成的图像损伤范围越大;反之范围越小。综合考虑上述因素,一般子图像尺寸选为8×8或16×16。
4.2.5 预测编码 通常,图像中局部区域的像素是高度相关的,因此可以用先前像素的有关灰度知识来对当前像素的灰度进行估计,这就是预测。如果预测是正确的,则不必对每一个像素的灰度都进行压缩,而是把预测值与实际像素值之间的差值经过熵编码后发送到接收端,接收端通过预测值+差值信号来重建原像素。 预测编码可分为线性预测编码和非线性预测编码。前者常被称为差分脉冲编码调制(DPCM),其基本原理是基于图像中相邻像素之间的相关性,每个像素可通过与之相关的几个像素来进行预测,如图4-7所示。
图中x(n)为采样的声音或图像数据, 为x(n)的预测值, 是实际值和预测值的差值, 是d(n)的量化值, 是引入量化误差的x(n)。
预测编码可以获得比较高的编码质量,并且实现起来比较简单,因此被广泛地应用于 图像压缩编码系统。但是它的压缩比不高,而且精确的预测有赖于图像特性的大量的先验知识,并且必须进行大量的非线性运算,因此一般不单独使用,而是与其他方法结合起来使用。例如,在JPEG中使用了预测编码技术对DCT直流系数进行编码。
4.2.6 其他编码方法 1.模型编码 模型编码则是利用计算机视觉和计算机图形学的知识对图像信号进行分析与合成。 模型编码采用图像分析和描述的方法,将图像信号看成三维世界中的目标和景物投影到二维平面的产物,对图像的结构和特征进行分析,提取出图像的特征参数,如运动参数、形状参数等,并用某种模型加以描述,通过对模型参数的编码达到图像编码的目的。图像解码时,根据参数和模型先验知识用图像合成技术重建图像。由于编码的对象是特征参数,而不是原始图像,因此有可能实现比较大的压缩比。模型编码引入的误差主要是人眼视觉不太敏感的几何失真,因此重建图像非常自然和逼真。
模型编码目前的研究目标主要集中于可视电话和会议电视的应用中。这是因为此类应用传送的图像中主要感兴趣的内容是人的头肩像,是一种基本固定的特定场景,因此可以预先建立人体头肩像的三维模型,从而进行模型编码。人的头肩像三维模型由人脸形状模型和脸部表情模型两部分组成。其形状模型可用许多小三角形的组合即“线框”(Wireframe)去逼近,脸部表情模型由“基本活动单元”(Action Unit)的线性组合来实现。 通信时首先要将被传输对象的基本特征传送到对方,以建立人的头肩像三维模型;通信开始后,当头部发生运动、脸部表情发生变化时,抽取这些运动和变化的参数并对其进行编码发送给对方;接收端用已知的三维模型和收到的参数,用图像合成技术重建图像。由于头部运动和脸部表情参数变化是一种非刚体运动,精确的运动估值是相当困难的。目前采用的是在一定约束条件下建立在预测和反馈技术上的运动跟踪算法。