霍夫曼编码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Your company slogan
五、 霍夫曼编码的特点
1.霍夫曼方法构造出来的码不是唯一的 。 1.霍夫曼方法构造出来的码不是唯一的
原因: ① 在给两个分支赋值时 , 可以是左支 ( 或上支 ) 为 0, 也可以是右支 ( 或下支 ) 为 0, 造成编码的不唯一。 ② 当两个消息的概率 相等时, 谁前谁后也是随机的 , 构造出来的码字就不是唯一的。
Your company slogan
(二)霍夫曼树的构建
霍夫曼编码实际上构造了一个码树, 霍夫曼编码实际上构造了一个码树,码树从最上层的端点开始 构造,直到树根结束。这里举个例子说明如何生成霍夫曼树。 构造,直到树根结束。这里举个例子说明如何生成霍夫曼树。假 设对由a 设对由a1、a2、a3、a4、a5、a6、a7、a8八个信源符号组成的 源信息字符串: 源信息字符串:“a1 a1 a2 a2 a3 a3 a3 a4 a4 a4 a4 a5 a5 a5 a6 a6 a6 a7 a7 a8”进行霍夫曼编码。首先应对信息中各数字 进行霍夫曼编码。 出现的次数进行统计如下 如下: 出现的次数进行统计如下:
霍夫曼编码Huffman 霍夫曼编码Huffman Coding
长春理工大学 080212418 高延邦
目录
一、什么是编码 二、霍夫曼编码简介 三、霍夫曼编码的熵 四、霍夫曼编码
(一)霍夫曼编码过程 (二)霍夫曼树的构建 (三)霍夫曼表
五、霍夫曼编码特点
Your company slogan
一.什么是编码
进行压缩编码时,只要将码值用码字代替即可。 进行压缩编码时,只要将码值用码字代替即可。所 以源符a1 a1 a2 a2 a3 a3 a3 a4 a4 a4 a4 以源符 a5 a5 a5 a6 a6 a6 a7 a7 a8编码为: 编码为: 编码为 010010011011101101101000000001 1011011010000100001001。 。 平均码长 B=0.1*3+0.1*3+0.15*3+0.2*2+0.15* 3+0.15*3+0.1*4+0.05*4=2.95(b) 熵H= 2.9087 编码效率N=H/B=2.9087/2.95=98.6%
Your company slogan
David Albert Huffman 戴维·霍夫曼 戴维 霍夫曼
三、霍夫曼编码的熵 霍夫曼编码的熵
一个事件集合x 一个事件集合x1, x2,……xn,处于一个基本概率空 其相应概率为p 间,其相应概率为p1,p2,……pn,且p1,p2,……pn 之和为1 每一个事件的信息量为I(x )=之和为1,每一个事件的信息量为I(xk)=logn(pk),如定义在空间中的每一事件的概率不相 ),如定义在空间中的每一事件的概率不相 等的平均不肯定程度或平均信息量叫做熵H 等的平均不肯定程度或平均信息量叫做熵H,则 H=E{I(xk)}=∑pkI(xk)=- ∑pkloga(pk)。 )=对于图像来说, 个灰度级x 对于图像来说,n=2m个灰度级xi,则p(xi)为各灰 度级出现的概率,熵即表示平均信息量为多少比特, 度级出现的概率,熵即表示平均信息量为多少比特, 换句话说,熵是编码所需比特数的下限,即编码所 换句话说,熵是编码所需比特数的下限, 需的最少比特。 需的最少比特。编码一定要用不比熵少的比特数编 码才能完全保持原图像的信息, 码才能完全保持原图像的信息,这是图像压缩的下 a=2是 的单位是比特。 限。当a=2是,H的单位是比特。
Your company slogan
具体过程是这样的,先将所有符号排成一行,构成8 具体过程是这样的,先将所有符号排成一行,构成8 个最底层 节点。首先将这些节点中最小两个概率值 节点。 相加: 相加:0.05+0.1=0.15, 得到新的 节点这时拥有的概 率值为0.2, 0.15。 率值为0.2, 0.1, 0.1, 0.15, 0.15, 0.15, 0.15。
Your company slogan
对于各值(码值)的代码(码字)就是从根节点出发到底层节点所经历 对于各值(码值)的代码(码字) 的分支序列。 的代码(码字) 00, 的码字为111... ...通常 的分支序列。如a4的代码(码字)为00,a6的码字为111... ...通常 a4和a6等称为码值,00和111等称为码字。所有码值和码字对应关系 等称为码值,00和111等称为码字 等称为码字。 如下表所示: 如下表所示:
2.霍夫曼编码码字字长参差不齐 。 2.霍夫曼编码码字字长参差不齐 3.霍夫曼编码对不同的信源的编码效率是不同的。 3.霍夫曼编码对不同的信源的编码效率是不同的 霍夫曼编码对不同的信源的编码效率是不同的。 其编码效率最低。 当信源概率相等时 , 其编码效率最低。只有在概率分布 很不均匀时 , 霍夫曼编码才会收到显著的效果 。 4.解码时 , 必须参照霍夫曼编码表才能正确译码。 4.解码时 必须参照霍夫曼编码表才能正确译码。
Your company slogan
(三)霍夫曼表
将所有码值和码字的关系整理成一张表,为了整字 将所有码值和码字的关系整理成一张表, 节输出码字,表中还含有各码字的长度。 节输出码字,表中还含有各码字的长度。这种表就称 为霍夫曼表。本例霍夫曼表如表所示: 为霍夫曼表。本例霍夫曼表如表所示:
Your company slogan
码值 次数 概率 a1 2 0.1 a2 2 0.1 a3 3 0.15 a4 4 0.2 a5 3 0.15 a6 3 0.15 a7 3 0.1 a8 1 0.05
熵H=-0.1*log2(0.1)- 0.1*log2(0.1) - 0.15*log2(0.15) = 0.2*log2(0.2) - 0.15*log2(0.15) - 0.15*log2(0.15) -0.1* log2(0.1) -0.05*log2(0.05)= 2.9087 (bit)
编码是将源对象内容按照一种标准 转换为一种标准格式内容。 转换为一种标准格式内容。
源对象 标准 编码后
G
1 2 3 4 5 6 7
Good day
o d d a y
百度文库
12237456
Your company slogan
二.霍夫曼编码简介
霍夫曼编码是不定长编码,即代表各 霍夫曼编码是不定长编码, 元素的码字长度不等。 元素的码字长度不等。该方法完全依 据字符出现概率来构造平均长度最短 的码字,有时称之为最佳编码。 的码字,有时称之为最佳编码。该编 码是基于不同符号的概率分布, 码是基于不同符号的概率分布,在信 息源中出现概率越大的符号, 息源中出现概率越大的符号,相应的 码越短;出现概率越小的符号, 码越短;出现概率越小的符号,其码 越长, 越长,从而达到用尽可能少的码符号 表示源数据。 表示源数据。它在变长编码中是最佳 在计算机信息处理中, 的。在计算机信息处理中,“霍夫曼 编码”是一种一致性编码法(又称" 编码”是一种一致性编码法(又称" 熵编码法" 熵编码法")。
Your company slogan
再将两个最小的概率值相加得到新的节点... 再将两个最小的概率值相加得到新的节点... ... 直到得到根节点概率 1.0为止 相加时,对于概率值相等的多个节点,可以任意选取。 为止。 为1.0为止。相加时,对于概率值相等的多个节点,可以任意选取。 除根节点外,设节点左边分支为0 右边分支为1 也可以反过来)。 除根节点外,设节点左边分支为0,右边分支为1(也可以反过来)。 这样,生成的霍夫曼树如下图所示: 这样,生成的霍夫曼树如下图所示:
Your company slogan
四、霍夫曼编码
(一)霍夫曼编码过程
设信息源空间为[A*P]:{A:a1 设信息源空间为[A*P]:{A:a1 a2 ……an}{P(A):P(a1) P(a2)P(a3)……P(an)}其 P(a2)P(a3)……P(an)}其 P(ak)=1,先用 个码的号码符号集X:{x1,x2,……xr} 先用r 中∑ P(ak)=1,先用r个码的号码符号集X:{x1,x2,……xr} 对信源A中的每一个符号ak进行编码 编码过程如下: 进行编码。 对信源A中的每一个符号ak进行编码。编码过程如下: 把信源符号ai按其出现的概率的大小顺序排列起来 按其出现的概率的大小顺序排列起来; 把信源符号ai按其出现的概率的大小顺序排列起来; 把最末两个具有最小概率的元素之概率加起来; 把最末两个具有最小概率的元素之概率加起来; 把该概率之和同其余概率由大到小排队, 把该概率之和同其余概率由大到小排队,然后再把两个最 小概率加起来,再排队; 小概率加起来,再排队; 重复步骤 (2) 、 (3), 直到概率和达到 1 为止 ; 在每次合并消息时,将被合并的消息赋以1 在每次合并消息时,将被合并的消息赋以1和0或0和1; 寻找从每个信源符号到概率为1处的路径, 寻找从每个信源符号到概率为1处的路径,记录下路径上 的 1和 0; 对每个符号写出"1"、"0"序列 从码数的根到终节点)。 序列( 对每个符号写出"1"、"0"序列(从码数的根到终节点)。 创建霍夫曼表。 创建霍夫曼表。 压缩编码时,将码值用码字代替。 压缩编码时,将码值用码字代替。
Your company slogan
谢 谢 大 家 !
Your company slogan
在信源的存储与传输过程中必须首先存储或传输这一霍夫曼编码表,在实际计算压 缩效果时 , 必须考虑霍夫曼编码表占有的比特数。在某些应用场合, 信源概率服从于某 一分布或存在一定规律 ( 这主要由大量的统计得到 ), 这样就可以在发送端和接收端固 定霍夫曼编码表 , 在传输数据时就省去了传输霍夫曼编码表 , 这种方法称为霍夫曼编码 表缺省使用。
五、 霍夫曼编码的特点
1.霍夫曼方法构造出来的码不是唯一的 。 1.霍夫曼方法构造出来的码不是唯一的
原因: ① 在给两个分支赋值时 , 可以是左支 ( 或上支 ) 为 0, 也可以是右支 ( 或下支 ) 为 0, 造成编码的不唯一。 ② 当两个消息的概率 相等时, 谁前谁后也是随机的 , 构造出来的码字就不是唯一的。
Your company slogan
(二)霍夫曼树的构建
霍夫曼编码实际上构造了一个码树, 霍夫曼编码实际上构造了一个码树,码树从最上层的端点开始 构造,直到树根结束。这里举个例子说明如何生成霍夫曼树。 构造,直到树根结束。这里举个例子说明如何生成霍夫曼树。假 设对由a 设对由a1、a2、a3、a4、a5、a6、a7、a8八个信源符号组成的 源信息字符串: 源信息字符串:“a1 a1 a2 a2 a3 a3 a3 a4 a4 a4 a4 a5 a5 a5 a6 a6 a6 a7 a7 a8”进行霍夫曼编码。首先应对信息中各数字 进行霍夫曼编码。 出现的次数进行统计如下 如下: 出现的次数进行统计如下:
霍夫曼编码Huffman 霍夫曼编码Huffman Coding
长春理工大学 080212418 高延邦
目录
一、什么是编码 二、霍夫曼编码简介 三、霍夫曼编码的熵 四、霍夫曼编码
(一)霍夫曼编码过程 (二)霍夫曼树的构建 (三)霍夫曼表
五、霍夫曼编码特点
Your company slogan
一.什么是编码
进行压缩编码时,只要将码值用码字代替即可。 进行压缩编码时,只要将码值用码字代替即可。所 以源符a1 a1 a2 a2 a3 a3 a3 a4 a4 a4 a4 以源符 a5 a5 a5 a6 a6 a6 a7 a7 a8编码为: 编码为: 编码为 010010011011101101101000000001 1011011010000100001001。 。 平均码长 B=0.1*3+0.1*3+0.15*3+0.2*2+0.15* 3+0.15*3+0.1*4+0.05*4=2.95(b) 熵H= 2.9087 编码效率N=H/B=2.9087/2.95=98.6%
Your company slogan
David Albert Huffman 戴维·霍夫曼 戴维 霍夫曼
三、霍夫曼编码的熵 霍夫曼编码的熵
一个事件集合x 一个事件集合x1, x2,……xn,处于一个基本概率空 其相应概率为p 间,其相应概率为p1,p2,……pn,且p1,p2,……pn 之和为1 每一个事件的信息量为I(x )=之和为1,每一个事件的信息量为I(xk)=logn(pk),如定义在空间中的每一事件的概率不相 ),如定义在空间中的每一事件的概率不相 等的平均不肯定程度或平均信息量叫做熵H 等的平均不肯定程度或平均信息量叫做熵H,则 H=E{I(xk)}=∑pkI(xk)=- ∑pkloga(pk)。 )=对于图像来说, 个灰度级x 对于图像来说,n=2m个灰度级xi,则p(xi)为各灰 度级出现的概率,熵即表示平均信息量为多少比特, 度级出现的概率,熵即表示平均信息量为多少比特, 换句话说,熵是编码所需比特数的下限,即编码所 换句话说,熵是编码所需比特数的下限, 需的最少比特。 需的最少比特。编码一定要用不比熵少的比特数编 码才能完全保持原图像的信息, 码才能完全保持原图像的信息,这是图像压缩的下 a=2是 的单位是比特。 限。当a=2是,H的单位是比特。
Your company slogan
具体过程是这样的,先将所有符号排成一行,构成8 具体过程是这样的,先将所有符号排成一行,构成8 个最底层 节点。首先将这些节点中最小两个概率值 节点。 相加: 相加:0.05+0.1=0.15, 得到新的 节点这时拥有的概 率值为0.2, 0.15。 率值为0.2, 0.1, 0.1, 0.15, 0.15, 0.15, 0.15。
Your company slogan
对于各值(码值)的代码(码字)就是从根节点出发到底层节点所经历 对于各值(码值)的代码(码字) 的分支序列。 的代码(码字) 00, 的码字为111... ...通常 的分支序列。如a4的代码(码字)为00,a6的码字为111... ...通常 a4和a6等称为码值,00和111等称为码字。所有码值和码字对应关系 等称为码值,00和111等称为码字 等称为码字。 如下表所示: 如下表所示:
2.霍夫曼编码码字字长参差不齐 。 2.霍夫曼编码码字字长参差不齐 3.霍夫曼编码对不同的信源的编码效率是不同的。 3.霍夫曼编码对不同的信源的编码效率是不同的 霍夫曼编码对不同的信源的编码效率是不同的。 其编码效率最低。 当信源概率相等时 , 其编码效率最低。只有在概率分布 很不均匀时 , 霍夫曼编码才会收到显著的效果 。 4.解码时 , 必须参照霍夫曼编码表才能正确译码。 4.解码时 必须参照霍夫曼编码表才能正确译码。
Your company slogan
(三)霍夫曼表
将所有码值和码字的关系整理成一张表,为了整字 将所有码值和码字的关系整理成一张表, 节输出码字,表中还含有各码字的长度。 节输出码字,表中还含有各码字的长度。这种表就称 为霍夫曼表。本例霍夫曼表如表所示: 为霍夫曼表。本例霍夫曼表如表所示:
Your company slogan
码值 次数 概率 a1 2 0.1 a2 2 0.1 a3 3 0.15 a4 4 0.2 a5 3 0.15 a6 3 0.15 a7 3 0.1 a8 1 0.05
熵H=-0.1*log2(0.1)- 0.1*log2(0.1) - 0.15*log2(0.15) = 0.2*log2(0.2) - 0.15*log2(0.15) - 0.15*log2(0.15) -0.1* log2(0.1) -0.05*log2(0.05)= 2.9087 (bit)
编码是将源对象内容按照一种标准 转换为一种标准格式内容。 转换为一种标准格式内容。
源对象 标准 编码后
G
1 2 3 4 5 6 7
Good day
o d d a y
百度文库
12237456
Your company slogan
二.霍夫曼编码简介
霍夫曼编码是不定长编码,即代表各 霍夫曼编码是不定长编码, 元素的码字长度不等。 元素的码字长度不等。该方法完全依 据字符出现概率来构造平均长度最短 的码字,有时称之为最佳编码。 的码字,有时称之为最佳编码。该编 码是基于不同符号的概率分布, 码是基于不同符号的概率分布,在信 息源中出现概率越大的符号, 息源中出现概率越大的符号,相应的 码越短;出现概率越小的符号, 码越短;出现概率越小的符号,其码 越长, 越长,从而达到用尽可能少的码符号 表示源数据。 表示源数据。它在变长编码中是最佳 在计算机信息处理中, 的。在计算机信息处理中,“霍夫曼 编码”是一种一致性编码法(又称" 编码”是一种一致性编码法(又称" 熵编码法" 熵编码法")。
Your company slogan
再将两个最小的概率值相加得到新的节点... 再将两个最小的概率值相加得到新的节点... ... 直到得到根节点概率 1.0为止 相加时,对于概率值相等的多个节点,可以任意选取。 为止。 为1.0为止。相加时,对于概率值相等的多个节点,可以任意选取。 除根节点外,设节点左边分支为0 右边分支为1 也可以反过来)。 除根节点外,设节点左边分支为0,右边分支为1(也可以反过来)。 这样,生成的霍夫曼树如下图所示: 这样,生成的霍夫曼树如下图所示:
Your company slogan
四、霍夫曼编码
(一)霍夫曼编码过程
设信息源空间为[A*P]:{A:a1 设信息源空间为[A*P]:{A:a1 a2 ……an}{P(A):P(a1) P(a2)P(a3)……P(an)}其 P(a2)P(a3)……P(an)}其 P(ak)=1,先用 个码的号码符号集X:{x1,x2,……xr} 先用r 中∑ P(ak)=1,先用r个码的号码符号集X:{x1,x2,……xr} 对信源A中的每一个符号ak进行编码 编码过程如下: 进行编码。 对信源A中的每一个符号ak进行编码。编码过程如下: 把信源符号ai按其出现的概率的大小顺序排列起来 按其出现的概率的大小顺序排列起来; 把信源符号ai按其出现的概率的大小顺序排列起来; 把最末两个具有最小概率的元素之概率加起来; 把最末两个具有最小概率的元素之概率加起来; 把该概率之和同其余概率由大到小排队, 把该概率之和同其余概率由大到小排队,然后再把两个最 小概率加起来,再排队; 小概率加起来,再排队; 重复步骤 (2) 、 (3), 直到概率和达到 1 为止 ; 在每次合并消息时,将被合并的消息赋以1 在每次合并消息时,将被合并的消息赋以1和0或0和1; 寻找从每个信源符号到概率为1处的路径, 寻找从每个信源符号到概率为1处的路径,记录下路径上 的 1和 0; 对每个符号写出"1"、"0"序列 从码数的根到终节点)。 序列( 对每个符号写出"1"、"0"序列(从码数的根到终节点)。 创建霍夫曼表。 创建霍夫曼表。 压缩编码时,将码值用码字代替。 压缩编码时,将码值用码字代替。
Your company slogan
谢 谢 大 家 !
Your company slogan
在信源的存储与传输过程中必须首先存储或传输这一霍夫曼编码表,在实际计算压 缩效果时 , 必须考虑霍夫曼编码表占有的比特数。在某些应用场合, 信源概率服从于某 一分布或存在一定规律 ( 这主要由大量的统计得到 ), 这样就可以在发送端和接收端固 定霍夫曼编码表 , 在传输数据时就省去了传输霍夫曼编码表 , 这种方法称为霍夫曼编码 表缺省使用。