第17章 图像压缩
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DIP
数字图像处理
第17章 图像压源自文库 17章
17.1 引言
Digital Image Processing
17.1.1 冗余信息和不相关信息
例1 在途商人收到如下消息(可能有3种表述, 在途商人收到如下消息( 种表述, 但均不影响理解): 你的妻子Helen将于明天晚上 点零 分在波士顿 将于明天晚上6点零 你的妻子 将于明天晚上 点零5分在波士顿 机场接你。 的Logan机场接你。 机场接你 你的妻子将于明晚上6点零 分在 机场接你。 你的妻子将于明晚上 点零5分在 点零 分在Logan机场接你。 机场接你 Helen将于明晚 点在 将于明晚6点在 接你。 将于明晚 点在Logan接你。 接你
是12至16位,每个码代表原文件中数据的一个特定序 12至16位 列)。
基于统计方法-生成变长码 基于统计方法-生成变长码(出现概率高的消息 变长 用短码,如莫尔斯电报码)。 用短码,
中国传媒大学信息工程学院
5
DIP
数字图像处理 17.2.1 基于字典的技术
Digital Image Processing
中国传媒大学信息工程学院
10
DIP
数字图像处理
Digital Image Processing
17.2.2.2 哈夫曼编码(Huffman Coding) 哈夫曼编码( Coding) 哈夫曼编码于50年代提出, 哈夫曼编码于 年代提出,它使用变长码使冗余 年代提出 量达到最小, 出现概率高的消息(字符) 短码, 概率高的消息 量达到最小,即出现概率高的消息(字符)用短码, 而出现概率低的消息(字符) 长码。 概率低的消息 而出现概率低的消息(字符)用长码。结果使平均码 长大大缩短。 长大大缩短。 哈夫曼编码实际上是通过一个二叉树来编码, 哈夫曼编码实际上是通过一个二叉树来编码,静 态Huffman编码使用一棵依据字符出现的概率事先生 编码使用一棵依据字符出现的概率事先生 成好的编码树进行编码。而动态Huffman编码需要在 成好的编码树进行编码。而动态 编码需要在 编码的过程中建立编码树 。 个符号a 例:某消息由8个符号 1…… 8组成,因此可用 某消息由 个符号 ……a 组成, 3bit的等长码进行表示(23=8)。但实际上,各符号的 的等长码进行表示( )。但实际上 的等长码进行表示 )。但实际上, 出现概率不一样,因此,用哈夫曼编码后, 出现概率不一样,因此,用哈夫曼编码后,可使平均 码长缩短。 码长缩短。
17.2.1.1 行程编码(RLE,Run-Length Encoding) 行程编码(RLE,RunEncoding) 在逐行存储的图像中, 在逐行存储的图像中,具有相同灰度值的那些 像素组成的序列,称为一个行程 压缩时, 行程。 像素组成的序列,称为一个行程。压缩时,只存储 一个代表那像素灰度值的码 再在后面标明该序列 像素灰度值的码, 一个代表那像素灰度值的码,再在后面标明该序列 的长度。 的长度。 行程编码对于仅包含很少几个灰度级的图像, 行程编码对于仅包含很少几个灰度级的图像, 特别是二值图像,比较有效。 特别是二值图像,比较有效。 最理想情况:单一背景( 最理想情况:单一背景(所有像素灰度值相同) 最差情况:渐变背景( 最差情况:渐变背景(每个像素的灰度值都与
事件的信息量是其出现概率的负对数 信息量 (事件的信息量是其出现概率的负对数)
中国传媒大学信息工程学院
8
DIP
数字图像处理
Digital Image Processing
信息量: I(ak)=-log[P(ak)] =-log[P 信息量: 由上式可见, 越不可能出现的符号, 由上式可见,1、越不可能出现的符号,它出现 时对于消息的信息量的贡献越大; 时对于消息的信息量的贡献越大;2、整个消息的信 息量是构成它的那些字符中对于信息量有贡献的那部 分之和。 分之和。 显然, 显然,在每条消息中都出现的字符是没有什么信 息量的, 息量的, P(ak)=1而I(ak)=0。 = 而 = 。 比较消息的3种程度 (比较消息的 种程度:不说也知道、不说有可能会猜 比较消息的 种程度:不说也知道、 到、不说根本不可能知道)
中国传媒大学信息工程学院
1
DIP
例2 静止图像信息的冗余 (相邻像素间的空间冗余)
数字图像处理
Digital Image Processing
中国传媒大学信息工程学院
2
DIP
例3 活动图像信息的冗余 (相邻帧间的时间冗余)
数字图像处理
Digital Image Processing
中国传媒大学信息工程学院
中国传媒大学信息工程学院
4
DIP
17.2 无损压缩技术
数字图像处理
Digital Image Processing
无损压缩是一般的数据压缩方法, 无损压缩是一般的数据压缩方法,适用于普通的 是一般的数据压缩方法 数据文件(不必是图像) 基于码表(字典) 数据文件(不必是图像),有基于码表(字典)的技 基于统计的技术两大类 两大类。 术和基于统计的技术两大类。 无损图像压缩方法通常只能获得1~5倍的压缩率 倍的压缩率 无损图像压缩方法通常只能获得 基于码表(字典)技术-生成定长码,( 通常 基于码表(字典)技术-生成定长码 定长
3
DIP
17.1.2 数据的压缩
数字图像处理
Digital Image Processing
利用数据的冗余性和不相干性,将一个大的数据 利用数据的冗余性和不相干性, 冗余性 文件转换成较小的文件。 文件转换成较小的文件。压缩后的文件可以在以 后需要的时候以精确或近似的方法恢复出来。 后需要的时候以精确或近似的方法恢复出来。 无损压缩:仅删除冗余信息, 无损压缩:仅删除冗余信息,解压缩时可以精确 恢复原信息。主要用于可执行文件。 恢复原信息。主要用于可执行文件。 有损压缩:把部分不相干的信息也删除了( 有损压缩:把部分不相干的信息也删除了(此部 )。因此解压缩时只能近似重构 因此解压缩时只能近似重构。 分无法再重构)。因此解压缩时只能近似重构。 主要用于一般可视图像的压缩 压缩比越高则压缩速度越慢, 压缩比越高则压缩速度越慢,因此压缩速度和压 缩比通常要折衷考虑。 缩比通常要折衷考虑。
中国传媒大学信息工程学院
13
DIP
数字图像处理
Digital Image Processing
17.2.3 二进制图像压缩标准
中国传媒大学信息工程学院
11
DIP
数字图像处理
Digital Image Processing
由于Huffman编码所得到的平均码字长度可以接 编码所得到的平均码字长度可以接 由于 近信源的熵,因此在变长编码中是最佳的编码方法, 近信源的熵,因此在变长编码中是最佳的编码方法, 故也称为熵编码 熵编码。 故也称为熵编码。 Huffman编码算法: Huffman编码算法: 编码算法 1、对 L个符号按其概率值 递减顺序排列,并作 、 个符号按其概率值P递减顺序排列 个符号按其概率值 递减顺序排列, 为一棵树的叶结点。 为一棵树的叶结点。 2、如果没有到根结点则 、 (1) 把两个概率值最小的结点合并成一个新结点并 赋予其概率为两子结点概率之和; 赋予其概率为两子结点概率之和 (2) 对新结点到两个子结点的树枝分别赋值1和0。 对新结点到两个子结点的树枝分别赋值 和 。 3、从根结点开始到叶结点,将树枝上的值按顺序 、从根结点开始到叶结点, 组成二进制值,则为该叶结点上符号的Huffman码字。 码字。 组成二进制值,则为该叶结点上符号的 码字
中国传媒大学信息工程学院
7
DIP
17.2.2 统计编码方法
17.2.2.1 消息的信息量
数字图像处理
Digital Image Processing
假定一个无记忆的信息源用到一个字母表 },k=0,1,…k-1,其中 k是字母表中的符号。进 其中a {ak}, 其中 是字母表中的符号。 一步假定每一个符号出现的概率已知,记为P(a 。 一步假定每一个符号出现的概率已知,记为 k)。 在无记忆源消息中, (在无记忆源消息中,符号次序无关紧要) Shannon定义了信息度量标准,它与符号ak在消 定义了信息度量标准,它与符号 定义了信息度量标准 息中出现的频率P(a 有以下关系 有以下关系: 息中出现的频率 k)有以下关系: I(ak)=- =-log[P(ak)] =-
中国传媒大学信息工程学院
12
DIP
数字图像处理
Digital Image Processing
0.25 × 2 + 0.21× 2 + 0.15 × 3 + 0.14 × 3 + 0.0625 × 4 × 4 =
Huffman编码方法形成的码字是可辨别的,即一 编码方法形成的码字是可辨别的, 编码方法形成的码字是可辨别的 个码字不能成为另一码字的前缀。 个码字不能成为另一码字的前缀。 Huffman编码对不同的信源其编码效率不同,适 编码对不同的信源其编码效率不同, 编码对不同的信源其编码效率不同 合于对概率分布不均匀的信源编码。 合于对概率分布不均匀的信源编码。
中国传媒大学信息工程学院
9
DIP
数字图像处理
消息源的熵(entropy): 消息源的熵(entropy):
H = E { I ( ak )} = −∑ P(ak ) log [ P (ak ) ]
k =0 K −1
Digital Image Processing
上式说明:消息源的熵是消息(信息量)的期望值, 上式说明:消息源的熵是消息(信息量)的期望值, 也即消息的每单位字符携带的平均信息量 也即消息的每单位字符携带的平均信息量 当所有符号出现的概率相等时,熵取到最大值。 当所有符号出现的概率相等时,熵取到最大值。对于 2为底的对数,熵的单位是“位/字符”(bit/symbols) 为底的对数, 字符” 为底的对数 熵的单位是“ 字符 ) 实际上,按某种编码方法编码后,信息中仍会有少量 实际上,按某种编码方法编码后, 冗余,这就是该码的平均码长L 与信源熵H的差 的差: 冗余,这就是该码的平均码长 w与信源熵 的差: R=E{Lw(ak)}- = { }-H }- 显然,如果平均码长=信源的熵,则必定去除了 显然,如果平均码长=信源的熵, 平均码长 log[P )]。 一切冗余信息,此时L 一切冗余信息,此时Lw(ak)=- log[P(ak)]。这种情况 只能发生在所有符号的出现概率均为2的负整数幂时 的负整数幂时, 只能发生在所有符号的出现概率均为 的负整数幂时, 如0.5、0.25等。 、 等
其周围的像素不同,此时,压缩后文件的大小反而 其周围的像素不同,此时, 加倍)(随机噪声图像也是最差情况之一)
中国传媒大学信息工程学院
6
DIP
数字图像处理
Digital Image Processing
17.2.1.2 LZW编码(由Lempl和Ziv提出,Welch充实) LZW编码( Lempl和Ziv提出,Welch充实 编码 提出 在对文件进行编码的同时,生成特定字符库序列 在对文件进行编码的同时, 的表,以及它们对应的代码。 的表,以及它们对应的代码。 例如: 例如:由8bit字节组成的文件实际上被编码成 字节组成的文件实际上被编码成 12bit的代码,这样共有 12=4096种代码,其中有 的代码, 种代码, 的代码 这样共有2 种代码 其中有256 个代码表示所有可能出现的单个字符( ),而 个代码表示所有可能出现的单个字符(28=256),而 ), 剩下的4096-256=3480个代码分配给在压缩过程中数 剩下的 - = 个代码分配给在压缩过程中数 据里出现的字符串。 据里出现的字符串。 当表中没有的字符串第一次出现时,字符串被原 当表中没有的字符串第一次出现时,字符串被原 代码也一起保存 样地保存,同时将分配给它的代码也一起保存。以后, 样地保存,同时将分配给它的代码也一起保存。以后, 当该字符串再次出现时,只需存其代码 代码( 当该字符串再次出现时,只需存其代码(其内容不用 )。由于字符串表在压缩过 再存了,因为已经存过了)。由于字符串表在压缩过 再存了, 程中动态生成,不必存在压缩文件里。 程中动态生成,不必存在压缩文件里。
数字图像处理
第17章 图像压源自文库 17章
17.1 引言
Digital Image Processing
17.1.1 冗余信息和不相关信息
例1 在途商人收到如下消息(可能有3种表述, 在途商人收到如下消息( 种表述, 但均不影响理解): 你的妻子Helen将于明天晚上 点零 分在波士顿 将于明天晚上6点零 你的妻子 将于明天晚上 点零5分在波士顿 机场接你。 的Logan机场接你。 机场接你 你的妻子将于明晚上6点零 分在 机场接你。 你的妻子将于明晚上 点零5分在 点零 分在Logan机场接你。 机场接你 Helen将于明晚 点在 将于明晚6点在 接你。 将于明晚 点在Logan接你。 接你
是12至16位,每个码代表原文件中数据的一个特定序 12至16位 列)。
基于统计方法-生成变长码 基于统计方法-生成变长码(出现概率高的消息 变长 用短码,如莫尔斯电报码)。 用短码,
中国传媒大学信息工程学院
5
DIP
数字图像处理 17.2.1 基于字典的技术
Digital Image Processing
中国传媒大学信息工程学院
10
DIP
数字图像处理
Digital Image Processing
17.2.2.2 哈夫曼编码(Huffman Coding) 哈夫曼编码( Coding) 哈夫曼编码于50年代提出, 哈夫曼编码于 年代提出,它使用变长码使冗余 年代提出 量达到最小, 出现概率高的消息(字符) 短码, 概率高的消息 量达到最小,即出现概率高的消息(字符)用短码, 而出现概率低的消息(字符) 长码。 概率低的消息 而出现概率低的消息(字符)用长码。结果使平均码 长大大缩短。 长大大缩短。 哈夫曼编码实际上是通过一个二叉树来编码, 哈夫曼编码实际上是通过一个二叉树来编码,静 态Huffman编码使用一棵依据字符出现的概率事先生 编码使用一棵依据字符出现的概率事先生 成好的编码树进行编码。而动态Huffman编码需要在 成好的编码树进行编码。而动态 编码需要在 编码的过程中建立编码树 。 个符号a 例:某消息由8个符号 1…… 8组成,因此可用 某消息由 个符号 ……a 组成, 3bit的等长码进行表示(23=8)。但实际上,各符号的 的等长码进行表示( )。但实际上 的等长码进行表示 )。但实际上, 出现概率不一样,因此,用哈夫曼编码后, 出现概率不一样,因此,用哈夫曼编码后,可使平均 码长缩短。 码长缩短。
17.2.1.1 行程编码(RLE,Run-Length Encoding) 行程编码(RLE,RunEncoding) 在逐行存储的图像中, 在逐行存储的图像中,具有相同灰度值的那些 像素组成的序列,称为一个行程 压缩时, 行程。 像素组成的序列,称为一个行程。压缩时,只存储 一个代表那像素灰度值的码 再在后面标明该序列 像素灰度值的码, 一个代表那像素灰度值的码,再在后面标明该序列 的长度。 的长度。 行程编码对于仅包含很少几个灰度级的图像, 行程编码对于仅包含很少几个灰度级的图像, 特别是二值图像,比较有效。 特别是二值图像,比较有效。 最理想情况:单一背景( 最理想情况:单一背景(所有像素灰度值相同) 最差情况:渐变背景( 最差情况:渐变背景(每个像素的灰度值都与
事件的信息量是其出现概率的负对数 信息量 (事件的信息量是其出现概率的负对数)
中国传媒大学信息工程学院
8
DIP
数字图像处理
Digital Image Processing
信息量: I(ak)=-log[P(ak)] =-log[P 信息量: 由上式可见, 越不可能出现的符号, 由上式可见,1、越不可能出现的符号,它出现 时对于消息的信息量的贡献越大; 时对于消息的信息量的贡献越大;2、整个消息的信 息量是构成它的那些字符中对于信息量有贡献的那部 分之和。 分之和。 显然, 显然,在每条消息中都出现的字符是没有什么信 息量的, 息量的, P(ak)=1而I(ak)=0。 = 而 = 。 比较消息的3种程度 (比较消息的 种程度:不说也知道、不说有可能会猜 比较消息的 种程度:不说也知道、 到、不说根本不可能知道)
中国传媒大学信息工程学院
1
DIP
例2 静止图像信息的冗余 (相邻像素间的空间冗余)
数字图像处理
Digital Image Processing
中国传媒大学信息工程学院
2
DIP
例3 活动图像信息的冗余 (相邻帧间的时间冗余)
数字图像处理
Digital Image Processing
中国传媒大学信息工程学院
中国传媒大学信息工程学院
4
DIP
17.2 无损压缩技术
数字图像处理
Digital Image Processing
无损压缩是一般的数据压缩方法, 无损压缩是一般的数据压缩方法,适用于普通的 是一般的数据压缩方法 数据文件(不必是图像) 基于码表(字典) 数据文件(不必是图像),有基于码表(字典)的技 基于统计的技术两大类 两大类。 术和基于统计的技术两大类。 无损图像压缩方法通常只能获得1~5倍的压缩率 倍的压缩率 无损图像压缩方法通常只能获得 基于码表(字典)技术-生成定长码,( 通常 基于码表(字典)技术-生成定长码 定长
3
DIP
17.1.2 数据的压缩
数字图像处理
Digital Image Processing
利用数据的冗余性和不相干性,将一个大的数据 利用数据的冗余性和不相干性, 冗余性 文件转换成较小的文件。 文件转换成较小的文件。压缩后的文件可以在以 后需要的时候以精确或近似的方法恢复出来。 后需要的时候以精确或近似的方法恢复出来。 无损压缩:仅删除冗余信息, 无损压缩:仅删除冗余信息,解压缩时可以精确 恢复原信息。主要用于可执行文件。 恢复原信息。主要用于可执行文件。 有损压缩:把部分不相干的信息也删除了( 有损压缩:把部分不相干的信息也删除了(此部 )。因此解压缩时只能近似重构 因此解压缩时只能近似重构。 分无法再重构)。因此解压缩时只能近似重构。 主要用于一般可视图像的压缩 压缩比越高则压缩速度越慢, 压缩比越高则压缩速度越慢,因此压缩速度和压 缩比通常要折衷考虑。 缩比通常要折衷考虑。
中国传媒大学信息工程学院
13
DIP
数字图像处理
Digital Image Processing
17.2.3 二进制图像压缩标准
中国传媒大学信息工程学院
11
DIP
数字图像处理
Digital Image Processing
由于Huffman编码所得到的平均码字长度可以接 编码所得到的平均码字长度可以接 由于 近信源的熵,因此在变长编码中是最佳的编码方法, 近信源的熵,因此在变长编码中是最佳的编码方法, 故也称为熵编码 熵编码。 故也称为熵编码。 Huffman编码算法: Huffman编码算法: 编码算法 1、对 L个符号按其概率值 递减顺序排列,并作 、 个符号按其概率值P递减顺序排列 个符号按其概率值 递减顺序排列, 为一棵树的叶结点。 为一棵树的叶结点。 2、如果没有到根结点则 、 (1) 把两个概率值最小的结点合并成一个新结点并 赋予其概率为两子结点概率之和; 赋予其概率为两子结点概率之和 (2) 对新结点到两个子结点的树枝分别赋值1和0。 对新结点到两个子结点的树枝分别赋值 和 。 3、从根结点开始到叶结点,将树枝上的值按顺序 、从根结点开始到叶结点, 组成二进制值,则为该叶结点上符号的Huffman码字。 码字。 组成二进制值,则为该叶结点上符号的 码字
中国传媒大学信息工程学院
7
DIP
17.2.2 统计编码方法
17.2.2.1 消息的信息量
数字图像处理
Digital Image Processing
假定一个无记忆的信息源用到一个字母表 },k=0,1,…k-1,其中 k是字母表中的符号。进 其中a {ak}, 其中 是字母表中的符号。 一步假定每一个符号出现的概率已知,记为P(a 。 一步假定每一个符号出现的概率已知,记为 k)。 在无记忆源消息中, (在无记忆源消息中,符号次序无关紧要) Shannon定义了信息度量标准,它与符号ak在消 定义了信息度量标准,它与符号 定义了信息度量标准 息中出现的频率P(a 有以下关系 有以下关系: 息中出现的频率 k)有以下关系: I(ak)=- =-log[P(ak)] =-
中国传媒大学信息工程学院
12
DIP
数字图像处理
Digital Image Processing
0.25 × 2 + 0.21× 2 + 0.15 × 3 + 0.14 × 3 + 0.0625 × 4 × 4 =
Huffman编码方法形成的码字是可辨别的,即一 编码方法形成的码字是可辨别的, 编码方法形成的码字是可辨别的 个码字不能成为另一码字的前缀。 个码字不能成为另一码字的前缀。 Huffman编码对不同的信源其编码效率不同,适 编码对不同的信源其编码效率不同, 编码对不同的信源其编码效率不同 合于对概率分布不均匀的信源编码。 合于对概率分布不均匀的信源编码。
中国传媒大学信息工程学院
9
DIP
数字图像处理
消息源的熵(entropy): 消息源的熵(entropy):
H = E { I ( ak )} = −∑ P(ak ) log [ P (ak ) ]
k =0 K −1
Digital Image Processing
上式说明:消息源的熵是消息(信息量)的期望值, 上式说明:消息源的熵是消息(信息量)的期望值, 也即消息的每单位字符携带的平均信息量 也即消息的每单位字符携带的平均信息量 当所有符号出现的概率相等时,熵取到最大值。 当所有符号出现的概率相等时,熵取到最大值。对于 2为底的对数,熵的单位是“位/字符”(bit/symbols) 为底的对数, 字符” 为底的对数 熵的单位是“ 字符 ) 实际上,按某种编码方法编码后,信息中仍会有少量 实际上,按某种编码方法编码后, 冗余,这就是该码的平均码长L 与信源熵H的差 的差: 冗余,这就是该码的平均码长 w与信源熵 的差: R=E{Lw(ak)}- = { }-H }- 显然,如果平均码长=信源的熵,则必定去除了 显然,如果平均码长=信源的熵, 平均码长 log[P )]。 一切冗余信息,此时L 一切冗余信息,此时Lw(ak)=- log[P(ak)]。这种情况 只能发生在所有符号的出现概率均为2的负整数幂时 的负整数幂时, 只能发生在所有符号的出现概率均为 的负整数幂时, 如0.5、0.25等。 、 等
其周围的像素不同,此时,压缩后文件的大小反而 其周围的像素不同,此时, 加倍)(随机噪声图像也是最差情况之一)
中国传媒大学信息工程学院
6
DIP
数字图像处理
Digital Image Processing
17.2.1.2 LZW编码(由Lempl和Ziv提出,Welch充实) LZW编码( Lempl和Ziv提出,Welch充实 编码 提出 在对文件进行编码的同时,生成特定字符库序列 在对文件进行编码的同时, 的表,以及它们对应的代码。 的表,以及它们对应的代码。 例如: 例如:由8bit字节组成的文件实际上被编码成 字节组成的文件实际上被编码成 12bit的代码,这样共有 12=4096种代码,其中有 的代码, 种代码, 的代码 这样共有2 种代码 其中有256 个代码表示所有可能出现的单个字符( ),而 个代码表示所有可能出现的单个字符(28=256),而 ), 剩下的4096-256=3480个代码分配给在压缩过程中数 剩下的 - = 个代码分配给在压缩过程中数 据里出现的字符串。 据里出现的字符串。 当表中没有的字符串第一次出现时,字符串被原 当表中没有的字符串第一次出现时,字符串被原 代码也一起保存 样地保存,同时将分配给它的代码也一起保存。以后, 样地保存,同时将分配给它的代码也一起保存。以后, 当该字符串再次出现时,只需存其代码 代码( 当该字符串再次出现时,只需存其代码(其内容不用 )。由于字符串表在压缩过 再存了,因为已经存过了)。由于字符串表在压缩过 再存了, 程中动态生成,不必存在压缩文件里。 程中动态生成,不必存在压缩文件里。