目录
2、源编码与解码(Source Encoder and Decoder)
3、信道编码与解码(Channel Encoder and Decoder)
2、可变长度编码Variable-Length Coding(34-39页)
4、位平面编码(Bit-Plane Coding)(43-51页)
4.1 常数块编码 Constant Area Coding (CAC):
4.2 持续长度编码 Run-Length Coding (RLC):
4.3 轮廓跟踪与编码 Contour Tracing and Coding:
5、无损预测编码 (Lossless Predictive Coding)(52-54页)
2、有损预测编码(Lossy Predictive Coding)(57-67页)
3、变换编码(Transform Coding)(68-74页)
4、小波编码(Wavelet Coding)(75-79页)
(2)与相对熵(Kullback-Leibler散度)的关系
一、图像压缩基础
1、图像压缩的基本概念
- 目标:图像压缩的核心目标是通过减少表示数字图像所需的数据量来实现压缩。
- 通过移除冗余数据,降低数据体积。
- 需要明确区分数据(Data)和信息(Information):数据可能包含冗余,而信息是图像中有意义的部分。
- 数据冗余:是图像压缩中的主要问题,可以通过数学方法量化。图像压缩的本质是减少冗余。
2、数据冗余与压缩比
- 冗余公式:
- 数据冗余
的定义:
其中
是压缩比。
- 压缩比
:
:压缩前的数据量。
:压缩后的数据量。
- 解释:
,即
:无冗余。
,
:表示有效压缩,存在显著冗余。
,
:数据体积膨胀,非正常现象。
- 数据冗余
3、三种主要的数据冗余类型
- 编码冗余(Coding Redundancy):
- 指在图像表示中,由于编码方式不高效导致的冗余。
- 概率与平均编码长度:
- 灰度级
的概率
:
表示灰度级
的像素数量,
为总像素数。
- 平均编码长度:
是每个灰度级
的编码长度。
- 总编码所需位数:
- 灰度级
- 可变长度编码:利用不同概率灰度级的不均衡性,通过如哈夫曼编码(Huffman Coding)等实现有效压缩。
- 像素间冗余(Interpixel Redundancy):《详细分析见附录1》
- 指相邻像素之间的空间相关性导致的冗余。
- 图像中的像素值通常有很高的自相关性,可以通过预测编码或变换编码减少此冗余。
- 数学建模:用归一化的自相关函数表示:
其中:
- 心理视觉冗余(Psychovisual Redundancy):
- 人眼对图像某些细节不敏感,这种主观性导致了心理视觉冗余。
- 利用心理视觉模型(例如JPEG的量化过程),去除人眼无法感知的细节以压缩数据。
- 示例:通过均匀量化和改进灰度量化(IGS量化)减少图像质量损失。
4、保真度评估标准(Fidelity Criteria)
- 在去除冗余数据后,必须评估压缩对图像质量的影响。
- 分类:
- 客观保真度标准:
- 通过数学计算图像压缩前后误差。
- 误差公式:
总误差:
- 均方根误差(RMSE):
- 主观保真度标准:
- 以人眼视觉感知为标准,结合心理学和视觉生理学,评估图像质量。
- 客观保真度标准:
5、应用与实践
- 实际编码技术:
- 无损压缩:如哈夫曼编码、游程编码。
- 有损压缩:如JPEG标准中的离散余弦变换(DCT)与量化。
- 关键点:
- 无损压缩保留图像的原始数据,适用于对质量要求高的场景。
- 有损压缩舍弃部分视觉不可感知的信息以提升压缩比,但会带来一定的失真。
二、图像压缩模型
1、图像压缩模型概述
(1)压缩系统的结构
- 一个完整的图像压缩系统由**编码器(Encoder)和解码器(Decoder)**组成。
- 编码器负责对输入图像
进行压缩处理,生成压缩后的数据流;解码器将该数据流重构为图像
。
(2)重构图像的质量
可能并非原始图像
的完全复制:
- 无损压缩:重构图像与原始图像完全一致(误差为零)。
- 有损压缩:重构图像允许存在一定程度的失真,以换取更高的压缩比。
(3)编码器和解码器的组成
- 编码器和解码器可以细分为两个独立的子模块:
- 源编码(Source Encoder/Decoder):减少图像的冗余性(编码冗余、像素间冗余、心理视觉冗余)。
- 信道编码(Channel Encoder/Decoder):在传输或存储过程中引入受控的冗余,以增强抗噪能力。
2、源编码与解码(Source Encoder and Decoder)
(1)源编码器的功能
源编码器的主要任务是去除输入图像中的各种冗余,具体包括:
- 编码冗余:通过可变长度编码(如哈夫曼编码)优化数据表示。
- 像素间冗余:通过预测编码或变换编码减少相邻像素的冗余。
- 心理视觉冗余:利用人眼的视觉特性,通过量化去除人眼无法察觉的细节信息。
(2)源编码器的三个独立操作
- 映射器(Mapper):
- 主要作用是将输入图像数据转换为适合编码的格式。
- 通常采用的映射方法有预测变换(例如差分编码)或频域变换(如离散余弦变换 DCT、小波变换)。
- 量化器(Quantizer):
- 用于将连续的图像信号值分割成有限的离散值集合。
- 量化的本质是引入有损压缩,在数据精度与压缩比之间找到平衡点。
- 例如:JPEG 中的量化表控制每个频率成分的保留精度。
- 符号编码器(Symbol Encoder):
- 将量化后的数据进行编码,通常使用熵编码(如哈夫曼编码、算术编码)以进一步减少数据量。
(3)源解码器的功能
- 源解码器执行与源编码器逆向的操作:
- 符号解码器将压缩的比特流解码为量化值;
- 反映射器将数据还原为重构的图像
。
(4)实际意义
- 源编码模块直接决定了压缩比和图像的质量,是图像压缩系统的核心模块。
3、信道编码与解码(Channel Encoder and Decoder)
(1)信道编码器的功能
- 信道编码的主要任务是增强抗噪能力,保证在传输或存储过程中数据的完整性。
- 问题:
- 源编码器大幅减少了数据冗余,使得数据对噪声异常敏感。
- 信道编码通过引入“受控冗余”解决该问题。
(2)信道编码方法
- 典型的信道编码方法是海明码(Hamming Code):
- 原理:通过增加校验位,确保即使发生少量错误也能检测并纠正。
- (7,4)海明码:
- 将 4 位数据
编码为 7 位码字:
- 其余位直接为原始数据位。
- 码字形式:
。
- 将 4 位数据
- 非零奇偶校验:
- 检测是否存在错误的位,根据校验结果定位错误并纠正。
(3)信道解码器的功能
- 信道解码器执行与信道编码器逆向的操作:
- 根据接收到的比特流,检测并纠正错误。
- 输出纠正后的数据比特流。
(4)信道编码的意义
- 在图像压缩传输系统中,信道编码能够保证压缩数据在传输中的可靠性,特别是在噪声环境下(如无线传输)。
4、编码系统的整体意义
(1)模块的协同作用
- 源编码和信道编码共同构成完整的压缩与传输系统:
- 源编码:关注压缩比与重构质量。
- 信道编码:关注抗噪性能与数据完整性。
- 编码器和解码器功能的独立性使得两者可以分开优化,进一步提高系统的性能。
(2)无损与有损结合
- 在实际应用中,无损信道编码(如海明码)可以与有损源编码(如JPEG)结合,实现高压缩比和高抗噪性能的统一。
(3)应用场景
- 高质量场景:如医学影像、遥感图像等,对图像质量要求高,常采用无损压缩。
- 消费级场景:如照片存储、视频流媒体,允许一定质量损失以换取高压缩比。
三、信息论基础
1、信息量的测量
(1)基本概念
- 信息量的定义:
- 信息量
表示某一随机事件
的不确定性。
- 公式:
是事件
发生的概率。
的底数决定信息量的单位:若底数为2,单位是比特(bit);若底数为自然对数,单位是奈特(nat)。
- 信息量
(2)解释
- 事件
发生的概率越低,其包含的信息量越高。
时,信息量
,表明事件确定性最高,无需任何额外信息。
(3)实际意义
- 信息量的定义为信息理论提供了基础,用于量化信号中所包含的有意义内容。
- 在图像处理和压缩中,它可以衡量像素或符号的不确定性。
2、信息通道的概念
(1)信息通道的结构
- 信息通道描述了从信息源到信息用户之间的数据传递过程。
- 典型模型:
- 信息源(Source):生成符号序列。
- 通道(Channel):传递符号,可能引入噪声或失真。
- 信息用户(User):接收并解码符号。
(2)信息通道的符号和概率描述
- 符号集合
表示信息源可能生成的符号,概率分布为
。
- 接收到的符号集合
,概率分布为
。
3、信息熵(Entropy)
(1)单符号的信息量
- 信息源生成符号
时,其单符号的信息量为:
(2)信息熵定义
- 信息熵
表示信息源每次输出的平均信息量(即不确定性):
- 如果符号的概率分布均匀,则熵达到最大值,此时每个符号的选择完全随机。
(3)意义
- 信息熵是衡量随机变量不确定性的核心指标。
- 在数据压缩中,熵是压缩算法的理论极限。
4、条件熵与互信息
(1)条件熵
- 条件熵
表示在已知接收符号
时,信息源符号
的平均不确定性:
- 总条件熵为:
(2)互信息《详细分析见附录2》
- 互信息
表示信息源与接收端之间的平均信息共享量:
或:
(3)实际意义
- 互信息是信息理论中的核心量度,用于衡量信号传递中信息的有效性。
- 在图像处理中的作用:
- 衡量图像压缩后信息保留的有效性。
- 用于图像配准、特征选择等领域。
5、信道的传递矩阵与容量
(1)信道的转移概率矩阵 Q
- Q 是一个 K×J 矩阵,其中元素
表示信号源符号
被传递为
的条件概率:
(2)信道容量
- 信道容量 C 是信道的最大互信息量,表示信道在无误码条件下可传输的最大信息量:
- C 依赖于信道转移概率矩阵 Q 的性质,而不依赖于信息源的概率分布。
(3)实际意义
- 信道容量描述了信号在噪声环境中的最高可靠传输速率。
- 在图像压缩中,可用来衡量压缩算法在特定信道条件下的理论极限性能。
6、信息理论在图像压缩中的应用
(1)与数据压缩的关系
- 信息熵是数据压缩的理论极限:
- 实际压缩算法通过接近熵的方式减少数据体积。
- 互信息用于评价压缩后数据的保真性。
(2)与误码率的关系
- 信道容量可用于评估压缩数据在有噪信道中的传输效率。
- 互信息降低可能反映信道噪声导致的信息丢失。
(3)在图像处理中
- 在图像压缩算法中(如JPEG、JPEG2000),信息熵用于优化编码效率;
- 在图像配准、图像融合等领域,互信息常被用作相似性度量标准。
四、无损压缩
1、无误差压缩的概念与特点
(1)定义与适用场景
- 无误差压缩是指在数据压缩后解码出的数据与原始数据完全一致,保证无任何信息丢失。
- 应用场景:无误差压缩常用于对数据精度要求极高的场景,包括:
- 医学影像存储(如数字放射成像);
- 法律文件归档;
- 企业和科学领域的文档存储。
(2)特点
- 无误差压缩的压缩比通常较低,典型范围在 2:1 到 10:1。
- 适用于二值图像(如黑白扫描图)和灰度图像。
(3)压缩过程的两大核心步骤
- 去除像素间冗余(Interpixel Redundancy):
- 使用预测编码或其他方法,通过挖掘像素间的空间相关性,减少数据的冗余。
- 去除编码冗余(Coding Redundancy):
- 优化数据的编码方式,如使用可变长度编码(Variable-Length Coding),减少数据存储所需的位数。
(4)无误差压缩的主要方法
无误差压缩中包含以下主要技术:
i、可变长度编码(Variable-Length Coding)
ii、LZW 编码
iii、位平面编码(Bit-Plane Coding)
iv、无损预测编码(Lossless Predictive Coding)
2、可变长度编码Variable-Length Coding(34-39页)
(1)可变长度编码概述
- 目标:通过为频率较高的符号分配较短的编码,减少整体编码长度。
- 公式:
其中:
:平均编码长度;
:符号
的编码长度;
:符号
的概率。
(2)可变长度编码示例——哈夫曼编码
- 为单个符号生成最优编码长度;
- 优点:简单易实现,最优编码符合无噪声编码定理;
- 构建过程:
- 按符号概率递增排序;
- 迭代合并概率最低的两个符号,直到剩余一个根节点,构造出二叉树;
- 从根节点向下分配二进制编码。
- 示例: 平均编码长度:
(2)可变长度编码示例——算术编码
- 通过将整个消息表示为区间 [0,1) 中的一个浮点值,达到最接近熵的压缩率;
- 特点:理论上可达无噪声编码定理的压缩界限,但实现复杂。
3、LZW Coding(40-42页)
LZW(Lempel-Ziv-Welch)编码是一种基于词典(Dictionary)的无损压缩算法,其主要特点是动态生成编码词典,通过记录重复出现的符号序列来实现压缩。
(1)LZW 编码的核心思想
i、基本原理
- LZW 使用一个动态构建的词典(dictionary),将输入数据中的重复模式(符号序列)编码为固定长度的码字。
- 无需先验概率信息:与哈夫曼编码不同,LZW 编码不需要符号的概率分布。
- 固定长度的编码:即使输入符号序列长度变化,输出码字长度依然固定。
ii、适用场景
- 适用于像素值序列(图像数据)、文本、二进制文件等。
- 常用于 GIF 文件的图像压缩。
(2)LZW 编码的主要步骤
i、词典初始化
- LZW 的词典初始化为所有可能的单字符或单符号。例如:
- 对于 8 位灰度图像,初始化词典包含 256 个条目(灰度值 0,1,2,…,255)。
- 对于字母表(如 ASCII 文本),初始化词典包含 128 个条目(标准 ASCII 字符)。
ii、动态更新词典
- 编码过程中,随着数据流的输入,将新的符号序列添加到词典中,并为其分配新的码字。
- 每当遇到新的序列(词典中尚不存在的符号组合),就将其存储到词典中,并赋予唯一的编码值。
iii、编码过程
以下是具体编码过程的详细描述:
- 扫描输入数据:
- 按顺序处理符号,将当前符号与之前已识别的序列组合。
- 检查词典:
- 如果词典中存在当前序列,则继续扩展序列;
- 如果词典中不存在当前序列,则:
- 将当前序列的上一级存入输出;
- 将新序列添加到词典中。
- 输出码字:
- 输出当前序列对应的词典码字。
iv、词典的增长
- 每当遇到未在词典中的新序列时,词典的大小增加一条。
- 词典增长是动态的,不断记录新的符号序列。
(3)编码示例(结合图表分析)
示例:编码符号序列
假设输入图像数据为: 39,39,126,126,39,39,126,126
-
初始词典:
- 词典初始化为所有可能的灰度值(0 到 255)。
- 每个单独的像素值都在词典中。
-
编码过程(参考图表中的编码步骤):
- 当前已识别序列:
39
- 查找词典,已存在,继续扩展。
- 当前序列扩展为:
39, 39
- 查找词典,未存在:
- 输出序列
39
对应的码字39
; - 将
39, 39
添加到词典,分配码字256
。
- 输出序列
- 查找词典,未存在:
- 当前已识别序列:
126
- 查找词典,已存在,继续扩展。
- 当前序列扩展为:
126, 126
- 查找词典,未存在:
- 输出序列
126
对应的码字126
; - 将
126, 126
添加到词典,分配码字258
。
- 输出序列
- 查找词典,未存在:
- 重复上述过程,最终编码输出如下: [39,39,126,256,126,258,… ]
- 当前已识别序列:
-
动态词典的变化:
- 随着编码的进行,词典会逐渐扩展,包括:
39, 39
,分配码字256
;126, 126
,分配码字258
;39, 126
,分配码字259
;- 等等。
- 随着编码的进行,词典会逐渐扩展,包括:
(4)解码过程
LZW 解码的核心思想与编码相似,依赖于词典的动态重建。
解码步骤:
- 初始化词典:初始化为所有单字符或单符号。
- 解码码字:
- 对于每个接收到的码字,找到其对应的词典条目;
- 输出该条目并更新词典。
- 动态更新词典:
- 在解码过程中,每当输出一段符号序列时,将其与下一个符号组合,添加到词典中。
(5)LZW 编码的优缺点
优点:
- 高效压缩:
- 通过记录重复的符号序列,减少存储和传输数据所需的位数。
- 特别适用于数据中存在大量冗余的情况。
- 无需概率分布:
- 不需要符号的先验概率分布,算法简单易实现。
- 适用范围广:
- 可以用于多种数据类型(如文本、图像、音频等)。
缺点:
- 词典限制:
- 词典需要占用额外空间,如果数据规模较大,可能导致词典尺寸过大。
- 对随机数据效果不佳:
- 如果输入数据缺乏冗余(如完全随机的像素值序列),压缩效果有限。
(6)LZW 编码在图像处理中的应用
- GIF 图像压缩:
- GIF 文件使用 LZW 编码对像素数据进行无损压缩。
- 通过记录图像中重复的像素模式,有效减小文件大小。
- 其他图像格式:
- 一些基于位图的图像格式(如 TIFF)也可能使用 LZW 编码作为压缩选项。
4、位平面编码(Bit-Plane Coding)(43-51页)
(1)Bit-Plane Coding 的定义和目标
- 定义:
- Bit-Plane Coding 是一种通过逐个位处理多级(单色或彩色)图像的技术。其目标是减少图像中的 像素间冗余,并以高效的方式压缩图像。
- 工作原理:
- 将多级灰度图像分解成若干个二进制图像(即 bit-planes)。每个位平面可以独立处理并采用适当的二值图像压缩方法。
- 对灰度级图像而言,像素的二进制表示中从高位到低位分别构成不同的位平面(如图中展示的7位~0位平面)。
(2)位平面分解
-
多级图像的分解:
- 图像的灰度值用多位二进制表示,每个位代表一个二进制位平面。
- 数学表达:对于一个 m-bit 灰度图像,像素值
可以表示为:
- 将 m-bit 图像分解为 m 个二值图像,每个位平面可以独立处理。
-
Gray Code 替代方法:
- 为减少因灰度值小变化导致的差异,位平面可以用 Gray Code 表示:
- 为减少因灰度值小变化导致的差异,位平面可以用 Gray Code 表示:
(3)图像中高低位平面的特性
-
高位平面(如第 7、6、5、4 位):
- 包含图像的主要结构信息,压缩这些平面对图像质量的影响较大。
-
低位平面(如第 3、2、1、0 位):
- 主要包含噪声或细节信息,通常对视觉影响较小,可以使用更高压缩率的方法处理。
-
图示分析:
- 提供的图片展示了二值图像(左列)和对应 Gray Code 图像(右列)。可以观察到高位平面(如Bit 7、6)清晰地描述了主要轮廓,而低位平面信息逐渐减弱。
(4)常见的二进制图像压缩方法
以下技术应用于分解后的二值图像:
4.1 常数块编码 Constant Area Coding (CAC):
- 基本原理:
- 将图像分块(块大小为 p×q 像素),根据每块的灰度级分类:
- 全黑(值为 0),全白(值为 1),或混合(值为混合)。
- 用简短的代码表示最常出现的类别(例如用
0
表示全黑,用10
和11
表示其他类别)。
- 将图像分块(块大小为 p×q 像素),根据每块的灰度级分类:
- 优势:
- 通过减少需要存储的位数达到压缩效果。
4.2 持续长度编码 Run-Length Coding (RLC):
- 方法:
- 按行扫描图像,记录连续黑白像素的长度序列(即Run Length),并为每段分配长度编码。
- 可以是一维编码(逐行)或二维编码(使用相邻行之间的关联性)。
- 示例: 提供的图示展示了行间跳跃(Transition)以及编码方式。
4.3 轮廓跟踪与编码 Contour Tracing and Coding:
- 方法:
- 通过边缘检测,提取图像的轮廓或边界。
- 用相对地址(如方向和步长)来表示边界点或整个轮廓。
- PDQ 算法:
- Predictive Differential Quantizing 技术,利用线性扫描轮廓跟踪,记录轮廓点间的相对差异。
5、无损预测编码 (Lossless Predictive Coding)(52-54页)
无损预测编码是一种高效的无损压缩方法,通过减少图像像素间的冗余性实现数据压缩。
(1)编码原理与结构分析
无损预测编码的核心是通过预测当前像素值并仅编码实际像素值与预测值之间的差异(预测误差)来减少冗余。
-
预测误差公式:
其中,
是当前像素的实际值,
是预测值。
-
结构流程:
- 编码器:
- 预测器 (Predictor):计算像素值的预测。
- 差值计算 (Difference Calculation):将预测值与实际值相减得到误差值。
- 符号编码器 (Symbol Encoder):对误差进行可变长度编码。
- 解码器:
- 符号解码器 (Symbol Decoder):解码误差值。
- 逆预测 (Inverse Prediction):通过预测值和误差恢复原始像素值。
- 编码器:
(2)预测方法与数学模型
预测值通常由相邻像素线性组合得出:
:使用的前像素数量。
:线性权重。
预测器可以扩展到二维图像中的空间坐标:
通过这种方式,编码器可以充分利用相邻像素间的高相关性,显著降低预测误差的动态范围。
(3)误差图与直方图分析
- 误差图:
- 如图所示,预测误差图显示了原始图像与预测值的细微差异,集中于边缘和纹理处。
- 直方图:
- 原始图像的灰度值直方图较为分散,覆盖宽广的灰度范围。
- 预测误差的直方图呈现集中分布,值大多接近 0。这种集中性说明预测器有效减少了数据的动态范围,为后续压缩提供了更高效的编码可能性。
(4)无损压缩的优势
- 高效压缩:
- 通过预测误差代替直接编码像素值,压缩器能够更有效地捕捉局部冗余性。
- 预测误差的集中分布可显著降低平均码长,从而实现更高的压缩比。
- 无损特性:
- 解码过程完全可逆,无任何信息丢失,适用于对精度要求较高的场景,如医学影像、法律文档等。
(5)应用场景
- 适用场景:
- 在图像像素间高度相关性较强的图像中(如自然图像、灰度梯度较小的图像),无损预测编码尤为有效。
- 局限性:
- 对高频纹理较多或像素值变化剧烈的图像,预测误差分布会较为分散,影响编码效率。
五、有损压缩
1、有损压缩概述
(1)有损压缩的核心特点
-
牺牲精确度换取高压缩率: 有损压缩的关键是允许对数据的重建存在一定程度的失真。只要这种失真在可接受范围内,就能显著提高压缩效率。
-
更高的压缩比: 与无损压缩(如Huffman编码或LZW编码)相比,有损压缩可以实现更高的压缩比。例如:
- 可以将图像数据压缩到原始大小的 10:1 到 50:1,甚至在某些情况下达到 100:1。
- 与之对比,无损压缩通常只能达到约 3:1 的压缩比。
-
容忍失真: 如果视觉或听觉上的失真可以被用户接受,则这种压缩方式会极大提高存储和传输的效率。
(2)有损压缩的典型应用场景
-
图像压缩: 图像格式如JPEG常采用有损压缩,通过去除人眼不敏感的高频信息来减小文件体积。
-
视频压缩: 视频编码如MPEG系列,通过帧间冗余减少和画面细节信息的丢弃,达到高压缩率。
-
音频压缩: 音频格式如MP3和AAC,通过去除人耳无法感知的声音频率实现压缩。
(3)有损压缩的主要方法
从上图中可以看到,有三种典型的有损压缩技术:
-
有损预测编码(Lossy Predictive Coding):
- 与无损预测编码类似,但通过预测差值时允许一定的近似误差,从而减少存储的数据量。
- 通常通过量化误差值来实现压缩。
-
变换编码(Transform Coding):
- 基于信号变换的思想,将数据从时域或空间域转化到频率域(如使用离散余弦变换DCT)。
- 在频域中,去除高频分量(通常对图像和声音的质量影响较小),实现压缩。
- JPEG图像压缩就是基于这种技术。
-
小波编码(Wavelet Coding):
- 使用小波变换将图像分解为多个频带,每个频带表示不同的图像特征。
- 可以选择性地对低频分量保留更多信息,对高频分量进行更大的压缩。
(4)有损压缩的优缺点
- 优点:
- 能实现极高的压缩比,适合存储和传输大量数据。
- 可根据需求调节压缩比与质量之间的平衡。
- 缺点:
- 数据恢复时无法100%还原原始信息。
- 高压缩比可能导致严重失真,影响用户体验。
(5)总结
有损压缩通过牺牲部分数据精确度(如高频图像细节或微弱音频信号)来换取极高的压缩比。尽管有一定的失真,但在许多实际场景中可以在失真可接受的情况下显著降低存储和传输成本。
2、有损预测编码(Lossy Predictive Coding)(57-67页)
(1)基本原理
- 有损预测编码通过消除像素间的冗余性来压缩图像。
- 每个像素只编码“新增信息”,即实际值和预测值的差值(称为预测误差)。
(2)编码与解码流程
-
编码:
- 预测器 (Predictor):
- 预测当前像素值
。
- 预测当前像素值
- 计算误差:
。
- 量化器 (Quantizer):
- 对预测误差
进行量化
,以减少存储位数。
- 对预测误差
- 符号编码器:
- 压缩量化后的误差。
- 预测器 (Predictor):
-
解码:
- 使用预测器恢复预测值
。
- 利用量化误差
和预测值
计算解码像素值
。
- 使用预测器恢复预测值
(3)关键模块分析
-
量化器:
- 量化器通过减少误差值的分辨率,进一步压缩数据。
- 量化会导致失真(如量化噪声)。
-
预测器:
- 采用线性预测,公式为:
是预测系数。
是所用的像素个数。
- 最优预测器会根据最小化均方误差设计。
- 采用线性预测,公式为:
-
误差能量优化:
- 利用自相关矩阵
和相关向量
来求解最优系数
:
- 利用自相关矩阵
(4)应用场景
- 用于处理高冗余的图像内容,如纹理较为平滑的图像区域。
(5)量化技术
i、量化器设计目标:
- 寻找最优的量化边界
和量化级
,使得均方误差最小化。
- 条件公式:
其中
是概率密度函数。
ii、Lloyd-Max 量化器:
- 针对拉普拉斯分布的图像,量化器通过迭代优化边界
和中心值
。
- 典型表格(如图所示)展示了不同级数的量化器对应的边界和中心值。
(6)预测误差分析
-
预测误差分布图:
- 显示了预测误差分布的集中性,通过压缩预测误差,可以显著减少存储需求。
-
误差方差公式:
-
其中,
是图像方差,
是相关向量。
-
(7)总结与评价
-
优点:
- 有损预测编码充分利用了图像的相关性,压缩率显著提升。
- 灵活的预测模型适应性强。
-
缺点:
- 预测误差量化会引入失真,可能在边缘或高频纹理区域表现不佳。
-
适用场景:
- 高压缩需求且对失真容忍的场景,如视频压缩和远程图像传输。
3、变换编码(Transform Coding)(68-74页)
(1)变换编码的基本原理
- 定义:变换编码是一种基于图像变换技术的压缩方法,通过将图像从空间域映射到变换域来去除冗余信息。
- 核心思想:
- 使用可逆的线性变换(例如傅里叶变换、离散余弦变换等)将图像转换为变换系数。
- 大多数图像信息集中在少数低频变换系数中,因此可以量化和编码少量系数以达到压缩目的。
- 步骤:
- 输入图像被分割成
的子图像块。
- 对每个子图像块进行正向变换。
- 对变换系数进行量化和符号编码。
- 对解码过程进行逆变换还原图像。
- 输入图像被分割成
(2)变换选择
- 数学表达式:
- 正向离散变换:
- 逆离散变换:
和
是变换的核函数。
- 正向离散变换:
- 比较:
- 图像示例(如图所示)通过傅里叶变换、沃尔什-哈达玛变换和余弦变换进行不同的分解。
- 这些变换在捕捉图像的频率特性方面有所不同,选择合适的变换对压缩性能有重要影响。
(3)子图像尺寸的选择
- 重要性:
- 子图像尺寸的选择影响变换编码的性能和复杂性。
- 较大的子图像块能更好地捕捉图像的全局特征,但复杂性更高;较小的子图像块则适合捕捉局部细节。
- 推荐尺寸:
- 最常用的子图像尺寸为 8×8 和 16×16 。
- 实验结果:
- 图表显示了不同子图像块对重建误差的影响(重建误差随着子图像尺寸增加而减少)。
(4)位分配(Bit Allocation)
- 概念:
- 位分配是指如何对变换系数进行截断、量化和编码。
- 位数的分配由每个系数的重要性决定,通常低频系数被分配更多的位。
- 图像示例:
- 示例展示了不同位分配策略对图像质量和压缩率的影响。
(5)综合优劣分析
- 优点:
- 提供了高效的压缩比。
- 适合大部分图像应用,特别是在视频和图像存储中(如JPEG编码)。
- 缺点:
- 损失压缩引入失真,可能会影响图像的精细细节。
- 子图像划分和变换选择增加了计算复杂度。
4、小波编码(Wavelet Coding)(75-79页)
(1)小波编码的基本原理
- 小波编码是一种基于信号变换的压缩技术,其核心思想是利用小波变换将图像像素去相关化,从而更高效地编码变换系数。
- 通过变换后的系数表示图像的主要信息,去掉无关或冗余信息,达到压缩目的。
- 小波编码的主要流程:
- 对输入图像进行小波变换。
- 量化变换后的系数。
- 使用符号编码将量化后的系数压缩成最终的比特流。
- 解码时,通过逆小波变换恢复图像。
(2)小波选择
- 小波编码的效果取决于所选择的小波类型。常用的小波类型包括:
- Haar小波:最简单的一种,适用于基本的信号分解。
- Daubechies小波:更复杂,能更好地捕捉细节。
- Symlets小波:对称小波,适合图像处理。
- Cohen-Daubechies-Feauveau双正交小波:在压缩率和质量之间取得平衡。
- 图像分解结果显示,不同小波的使用会直接影响细节的保留及噪声抑制效果。
(3)分解级别选择
- 小波变换可以进行多级分解,每一级将图像分解为低频和高频部分。
- 分解的级别越高,低频部分保留越多细节,高频部分则包含更多的边缘和纹理信息。
- 根据实际需求选择分解级别:
- 低级别分解(1~2级):适合低计算复杂度场景。
- 高级别分解(3~5级):能更高效地压缩图像,但计算复杂度增加。
- 表中数据说明分解级别与重建误差之间的关系:随着分解级别增加,重建误差略有提升,但系数的截断率明显增加,压缩性能更好。
(4)量化器设计
- 量化器是决定压缩效果和质量的重要环节:
- 统一量化:最常见的量化方法,将系数分布均匀地划分。
- 优化量化:通过增大“零”附近的量化区间(称为“死区”),进一步提高低能量系数的压缩效果。
- 自适应量化:根据不同尺度动态调整量化区间大小,提升不同区域的压缩效率。
- 量化优化可以通过减少细节的冗余表示,提高压缩比,同时在可接受范围内保持图像的重建质量。
(5)编码性能分析
- 小波编码的性能受以下几个因素影响:
- 小波类型:决定信号分解和去相关的效果。
- 分解级别:影响系数的分布及压缩效率。
- 量化策略:决定编码的精度和冗余减少程度。
- 表和图像示例表明,小波编码在高压缩比下,仍能保留良好的图像细节,对低频部分的处理尤为出色。
(6)小波编码的优势
- 高效性:小波变换将图像分解为低频和高频部分,低频部分集中图像主要信息,高频部分可舍弃或压缩。
- 灵活性:支持不同的小波类型和量化策略,可根据具体需求调整压缩质量。
- 多分辨率分析:分解多层次信息,适合不同分辨率的重建需求。
- 适应性强:在图像压缩、特征提取和去噪中有广泛应用。
(7)总结
小波编码是一种高效的图像压缩技术,其核心在于小波变换和量化器设计。通过选择合适的小波基和分解级别,可以在压缩率与重建质量之间取得平衡。小波编码不仅适合静态图像压缩,还被广泛用于视频压缩和多媒体应用。
附录
1、图像的像素间冗余
像素间冗余(Interpixel Redundancy)是图像处理中非常重要的一类数据冗余,它反映了相邻像素之间的相关性和空间依赖性。
(1)像素间冗余的定义
像素间冗余是指:
- 在自然图像中,相邻像素值之间通常具有很高的相关性(例如,空间上的连续性和平滑性)。
- 由于这种高相关性,像素间的变化幅度通常较小,意味着大部分相邻像素的信息是重复或可预测的。
这种冗余源自图像的局部一致性,例如:
- 一片蓝天、平滑的墙壁或均匀纹理的区域中,相邻像素的灰度值几乎相同。
- 这种特性意味着用较少的数据即可高效表示图像,而不必存储每一个像素的原始值。
(2)像素间冗余的特性
-
局部相关性:
- 自然图像中,相邻像素通常表现为高相似性或高相关性。较小的变化意味着可以通过差分或预测方法对其进行有效编码。
- 相邻像素相关性强的区域表现为“低频特征”(例如平滑表面);相关性弱的区域则是“高频特征”(例如边缘、细节)。
-
空间冗余:
- 像素值在空间上通常是重复的,例如大面积的背景(如蓝天或白纸)。
- 这种重复可以通过预测、分块或变换编码等方式去除。
-
方向性相关性:
- 在一些方向上(如水平方向或垂直方向),相邻像素的相关性更强。例如,某些纹理有明显的水平或垂直排列特点。
(3)像素间冗余的数学建模
像素间冗余通常通过自相关函数来量化和表示。以下是关键数学模型和公式:
i、自相关函数:
用归一化的自相关函数来表示像素间的相关性:
其中:
:自相关系数,表示像素间在位移
时的相关性;
:位移
时像素的协方差;
:无位移时的像素方差。
ii、协方差的计算公式:
协方差 的具体表达式为:
其中:
- N:图像在某一维度上的总像素数;
:图像在位置
处的像素值;
:位移(通常是水平方向的像素偏移量)。
iii、自相关函数的性质:
:无位移时,像素与自身完全相关;
- 当
增大时,
通常逐渐减小,反映出相邻像素间的相关性随距离增加而下降。
iv、归一化的意义:
通过归一化,自相关函数可以衡量像素间的相关性大小,并与其他图像特性相比较。
(4)减少像素间冗余的方法
减少像素间冗余的核心是去掉相邻像素的重复信息。这可以通过以下方法实现:
i、预测编码(Predictive Coding):
- 基本思想:用一个像素的值预测下一个像素的值,只存储预测误差。
- 具体步骤:
- 选择一个预测函数
,用来预测像素值;
- 计算误差
;
- 存储预测误差,而不是原始像素值。
- 选择一个预测函数
- 示例:JPEG-LS标准中使用了一种简单的预测模型。
ii、变换编码(Transform Coding):
- 通过数学变换(如傅里叶变换、离散余弦变换DCT或小波变换)将图像从空间域转化到频率域。
- 频率域中,像素间的冗余通常集中在低频部分,可以通过量化低频成分实现压缩。
iii、差分脉冲编码调制(DPCM):
- DPCM是一种基于预测编码的方法,适用于连续的灰度级图像。
- 原理是存储像素间的差分值,而不是存储原始值。
iv、区块处理与分层编码:
- 将图像划分为小块(如8×8或16×16),分别处理每个块的像素间冗余。
- 在分层编码中,将图像分为不同分辨率层,优先编码低分辨率层中的像素间冗余。
(5)像素间冗余的实际意义
i、压缩效率的提升:
- 减少像素间冗余可以极大提高压缩比。例如,JPEG、JPEG2000等图像压缩算法都利用了像素间的高相关性。
- 在无损压缩中,像素间冗余的减少可以直接减少存储所需的位数。
ii、降低计算复杂度:
- 一些简单的预测方法(如线性预测)可以快速减少像素间冗余,从而提高压缩算法的效率。
iii、图像传输与存储:
- 在图像传输(如视频流)和存储中,减少像素间冗余可大幅降低数据量,使带宽和存储资源得到更高效的利用。
(6)图像示例与实验分析
示例1:光滑区域
- 如一片蓝天,像素值在空间上几乎不变,像素间的相关性极高(自相关系数接近1)。这种情况下,可以通过存储一个基准值和很少的差分值实现压缩。
示例2:纹理或边缘
- 如图像中的复杂纹理区域或边缘,相邻像素值变化较大,相关性较低(自相关系数较小)。在此情况下,预测误差也较大。
示例3:方向性冗余
- 在某些方向(如水平或垂直方向)上相关性更强,压缩算法(如JPEG)会选择特定的方向进行优化。
(7)像素间冗余与其他冗余的关系
- 像素间冗余与编码冗余:
- 编码冗余通过优化像素的表示方式减少冗余,而像素间冗余则利用空间相关性减少冗余。
- 像素间冗余与心理视觉冗余:
- 像素间冗余的去除通常不会对人眼视觉效果造成显著影响,但心理视觉冗余可以进一步压缩不可感知的信息。
(8)总结
像素间冗余利用了图像的空间相关性和局部一致性特性,通过预测、差分或变换等方法,可以显著减少图像存储和传输所需的数据量。在现代图像压缩算法中,像素间冗余的去除是核心环节之一,例如JPEG、JPEG2000和H.264/HEVC等标准都广泛利用了这一特性。
2、互信息详细分析
1. 定义与基本公式
互信息 是一个用来衡量两个随机变量之间信息共享程度的量度。在信息论中,互信息被定义为:
(1)定义:
- 互信息表示信息源(输入)
和接收端(输出)
之间的平均信息共享量。
- 互信息揭示了:知道一个随机变量的值后,能够减少另一个随机变量的不确定性(即熵)的程度。
(2)基本公式:
互信息可以用信息熵表示:
其中:
:表示信息源
的熵(即其自有的不确定性)。
:表示在已知接收端
后,信息源
的条件熵(剩余不确定性)。
互信息还可以写成另一种形式,直接通过联合概率分布定义:
其中:
:输入符号
与输出符号
的联合概率。
、
:分别是
和
的边缘概率。
(3)互信息的核心思想:
互信息度量的是:输入符号和输出符号之间的信息共享量,与输入和输出的独立情况相比,联合概率的分布增加了多少信息。
2. 公式解释与推导
(1)基于信息熵的推导
:表示输入
的熵,衡量输入变量
的原始不确定性。
:表示已知
后,输入
的剩余不确定性。
- 互信息
通过两者差值表示,在
给定的情况下,减少了多少不确定性。
(2)联合概率分布公式推导
从联合概率定义的公式出发:
- 这里
是输入和输出符号的联合概率。
- 分母
是在
和
独立情况下的概率分布。
- 通过对联合概率与边缘概率的比值取对数,计算两者的差异。
(3)条件熵的展开
互信息还可以通过条件熵公式展开:
:接收端
的熵。
:已知输入
后,接收端
的剩余不确定性。
这说明互信息既可以从输入变量的角度衡量信息减少,也可以从输出变量的角度衡量信息减少。
3. 互信息的性质
(1)非负性
- 互信息永远不小于零,因为
,即已知
后,不确定性一定不会增加。
(2)对称性
- 互信息是对称的,说明输入变量
对输出变量
的信息共享量,与输出变量
对输入变量
的信息共享量是相等的。
(3)完全独立时为零
- 如果输入变量
和输出变量
彼此完全独立:
互信息为零:
(4)完全相关时等于熵
- 如果
和
完全相关(即
完全由
决定):
4. 互信息的应用
(1)在数据压缩中的应用
- 压缩效率:
- 互信息衡量了输入和输出之间的信息共享量,反映了压缩算法的有效性。
- 高互信息表示压缩后的数据保留了较多的信息。
(2)在图像处理中的应用
- 图像配准:
- 在医学图像或遥感图像处理中,互信息常被用作图像配准的相似性度量。
- 图像配准的目标是通过最大化互信息,使两幅图像达到最优对齐。
- 图像分割:
- 在基于信息理论的图像分割算法中,互信息被用来衡量像素值与分类标签之间的相关性。
(3)在通信中的应用
- 信道容量:
- 互信息是信道容量的核心指标:
- 其中,信道容量是输入与输出之间可传递的最大信息量。
- 在有噪信道中,互信息帮助评估传输的可靠性。
- 互信息是信道容量的核心指标:
(4)在特征选择中的应用
- 互信息可以衡量特征与目标变量之间的相关性,用于选择最重要的特征以减少维度。
- 高互信息的特征表示对目标变量具有强相关性。
5. 互信息与其他信息量度的关系
(1)与信息熵的关系
- 互信息与熵和条件熵有如下关系:
(2)与相对熵(Kullback-Leibler散度)的关系
- 互信息可以看作输入和输出的联合分布与边缘分布之间的相对熵:
其中:
是相对熵,表示两个分布之间的差异。
6. 互信息的实际计算
(1)计算步骤
- 获取输入符号和输出符号的联合概率分布
。
- 计算边缘概率分布
和
。
- 代入公式:
(2)注意事项
- 确保概率分布满足归一化条件:
7. 总结
互信息 是信息理论中的核心概念,用于量化输入和输出之间的信息共享量。它在数据压缩、图像处理、信道传输和特征选择等领域具有重要作用,其核心思想是通过概率分布的差异度量变量间的信息关联。互信息的计算基于联合概率分布,可以通过信息熵或条件熵的关系进行推导和理解。