0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

讲解霍夫曼编码提出的思路历程

LiveVideoStack 来源:Reducible 作者:Reducible 2022-05-18 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

该视频详细讲解了霍夫曼编码提出的思路历程。

目录

故事背景

思路历程

通信系统示意

衡量信息量

编码和熵的关系

香农-冯诺编码

霍夫曼的改进

故事背景1951 年,麻省理工学院的一名研究生 David Huffman 在 Robert Fano 的信息论课程上名列前茅。Fano 教授让学生们在期末考试和学期论文间做出选择,年轻的 Huffman 在一开始就选择了学期论文。论文的题目如图 1 所示,给定一组数字或符号,找到最有效的方法来使用二进制码表示它们。

dc71761e-d63f-11ec-bce3-dac502259ad0.png

图 1 Huffman 的学期论文题目

在基础层面上,这是一个数据压缩问题。事实上你在计算机上看到的文本和图像本质上都是一组字母、数字或符号,如果将其归结为最简单的表示形式,那么它们其实都是一组 0 和 1 的组合,每个标准的数据类型都有一个标准的位表示。这个问题的本质是将它们压缩成尽可能少的位数。这是一个自计算出现以来就存在的问题,但 Fano 没有告诉学生的是,这在当时是信息论和数据压缩领域的一个未解决的问题。Huffman 在研究生时解决了这个问题,他的解决方案就是大名鼎鼎的霍夫曼编码算法

dc95d27a-d63f-11ec-bce3-dac502259ad0.png

图 2 数据压缩问题

思路历程通信系统示意在一个通信系统中,我们通常有一个信息发送方和信息接受方。发送方想要通过网络向接受方发送一些原始信息,但在网络中唯一有意义的信息是二进制比特。因此,发送方必须根据符号和二进制代码间的某种映射对原始信息进行编码。而接收方需要对二进制代码进行解码以恢复原始信息。

dcb25e04-d63f-11ec-bce3-dac502259ad0.png

图 3 通信系统示意图

编码方法一般针对从原始信息到二进制码的映射进行优化,从原始信息到二进制码的映射有一些内在要求。一是每个符号必须被映射到唯一的二进制码,二是接收方必须能够准确解码出原始信息。霍夫曼编码算法完全符合这些要求。

衡量信息量对数据进行压缩时,我们需要考虑一种平衡。如果使用太多的比特表示符号,那么会导致冗余;如果使用太少的比特表示,则会导致信息丢失,因此最优的无损压缩算法应该在两者之间找到平衡。那么我们首先需要知道在不丢失原始信息的情况下,最大的压缩率是多少。对于这个问题,我们可以理解为,需要找到在原始信息中包含的真正的信息量是多少。那我们如何衡量信息量的多少呢?

dcedc78c-d63f-11ec-bce3-dac502259ad0.png

图 4 如何衡量信息量

一句话中包含的信息量与文字的长度并没有直接的关联。如图 5 所示,对于这两句话来说,显然在沙哈拉沙漠下雪所包含的信息量更大,因为在沙漠下雪的概率极小。因此可以想到,事件相关的信息量与事件发生的概率有很大的关系。

dd3df4aa-d63f-11ec-bce3-dac502259ad0.png

图 5 信息量例子

香农根据信息的性质总结了四个定律:

信息量的大小跟事件发生的概率反相关

信息量永远大于等于 0,因为事件的发生不会导致信息损失

如果一件事发生的概率是 100%,那么它不包含任何信息量

如果两个不相关事件被分别观察到,那么它包含的信息量应该是这两个事件单独信息量的和

香农根据这四个定律给出了自信息的定义。当信息以 bit 为单位时,log 函数的底数取 2。

dd8492e8-d63f-11ec-bce3-dac502259ad0.png

图 6 自信息定义

但香农更伟大的贡献在于将自信息推广到了更广的分布上,给出了信息熵的概念,也就是著名的香农定理。香农定理作为信息论的基础,给出了衡量信息量的标准公式。

ddb9c4b8-d63f-11ec-bce3-dac502259ad0.png

图 7 香农定理

编码和熵的关系当衡量不同编码方式的性能时,我们需要计算不同编码方式的平均字符长度。在信息论中,我们通常将符号编码的长度根据符号出现的概率进行加权求和得到平均的符号长度。香农发现,无论对符号进行哪种方式的无损压缩编码,它的长度总是大于等于信息熵,这就是香农的源编码定理。

de0c53d6-d63f-11ec-bce3-dac502259ad0.png

图 8 香农源编码定理

香农-冯诺编码香农-冯诺编码首先对符号按照概率进行升序排列。然后找到最好的分割方法将符号分为两组,使得两组的符号概率和尽可能接近。之后对每个组进行递归划分,直到每个符号都被单独分为一组。

de29f4ae-d63f-11ec-bce3-dac502259ad0.png

图 9 香农-冯诺编码分组

分完组之后,编码就变得很简单了。从头部向下,如果向左,那么对符号编码添加 0,向右走则添加 1,最终可以得到所有符号的二进制编码。而且对于这个树形图的表示,在解码端是不会存在歧义的。

de44cf90-d63f-11ec-bce3-dac502259ad0.png

图 10 香农-冯诺编码树形图

霍夫曼的改进但是香农-冯诺编码并不总是最优的,在思考最小化平均符号长度时,可以想到,两个最不可能出现的符号应该出现在二叉树的最底部,也就是编码长度最长的地方。这符合我们的直觉,那就是最不常出现的符号应该具有更长的编码长度。因此我们可以想到,先将两个最不可能出现的符号放在最底部去构建一个二叉树,然后将这个二叉树的根节点视作一个新的符号节点,该符号节点的概率是两个子节点的和。然后对剩余的符号节点做相同的操作,直到构建出一个完整的二叉树,这就是霍夫曼编码。

dea4adca-d63f-11ec-bce3-dac502259ad0.png

图 11 霍夫曼的改进1

deb44410-d63f-11ec-bce3-dac502259ad0.png

图 12 霍夫曼的改进2

原文标题:[基础知识] 霍夫曼编码

文章出处:【微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信系统
    +关注

    关注

    6

    文章

    1247

    浏览量

    54969
  • 编码
    +关注

    关注

    6

    文章

    1015

    浏览量

    56656

原文标题:[基础知识] 霍夫曼编码

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    E203在基于wallace树+booth编码的乘法器优化后的跑分结果

    优化思路 E203为了实现低功耗的要求,乘法器为基于booth编码和移位加法器结合的思路,优点是只需要一个加法器,而且该加法器还和除法器复用,可以说是将面积缩小到了极致。缺点也很明显,即使通过
    发表于 10-27 07:54

    Booth编码的原理及选择

    Booth提出该算法的初衷是基于当时计算机中的移位运算比加法运算要快这个硬件环境,其目的是通过移位运算代替部分加法运算来提高乘法运算速度。然而,Booth算法更大的优势在于,它对有符号数和无符号
    发表于 10-22 07:53

    绝对值编码器避坑指南:常见选型误区之混淆“分辨率”与“精度”,盲目追求高分辨率

    绝对值编码器作为精准定位与运动控制的核心部件,其选型直接影响设备的精度、稳定性和寿命。但在实际选型中,由于对技术参数、应用场景和产品特性的理解偏差,很容易陷入误区。本文针对绝对值编码器选型的常见误区之一:混淆“分辨率”与“精度”,盲目追求高分辨率,并提供对应的避坑
    的头像 发表于 08-04 11:24 817次阅读
    绝对值<b class='flag-5'>编码</b>器避坑指南:常见选型误区之混淆“分辨率”与“精度”,盲目追求高分辨率

    开关电源维修思路及常见故障

    开关电源的维修思路及常见故障处理是电子技术人员需要掌握的重要技能。以下是对开关电源维修思路及常见故障的详细分析。   一、开关电源维修思路 1. 断电检查:     ●  外观检查:打开电源的外壳
    的头像 发表于 08-03 07:38 1563次阅读

    优先编码器:高效数据选择与编码的解决方案

    在现代数字电路设计中,数据的选择与编码是不可或缺的重要环节。面对众多输入信号,如何高效地选择并编码所需数据,成为设计师们面临的一大挑战。优先编码器,作为一种独特的数字电路组件,凭借其高效、灵活的特点
    的头像 发表于 03-25 08:33 862次阅读

    csu34f20的历程

    请问csu34f20的历程哪里有,请发到2209453423@qq.com谢谢
    发表于 03-17 16:07

    集成电路和光子集成技术的发展历程

    本文介绍了集成电路和光子集成技术的发展历程,并详细介绍了铌酸锂光子集成技术和硅和铌酸锂复合薄膜技术。
    的头像 发表于 03-12 15:21 1553次阅读
    集成电路和光子集成技术的发展<b class='flag-5'>历程</b>

    编码器与无轴承编码器,到底如何选择?

    在选择轴编码器与无轴承编码器时,需要根据具体的应用场景、性能需求、环境条件和成本预算等因素进行综合考虑。以下是对两者的详细对比,以帮助做出合适的选择: 一、工作原理与结构 1. 轴编码
    的头像 发表于 03-11 15:33 988次阅读
    轴<b class='flag-5'>编码</b>器与无轴承<b class='flag-5'>编码</b>器,到底如何选择?

    伺服电机编码器怎么选型

    伺服电机编码器的选型是一个综合性的过程,需要考虑多个因素以确保所选编码器能够满足系统的性能要求。以下是一些关键的选型步骤和考虑因素: 一、明确应用需求 首先,需要明确伺服电机编码器的应用需求,包括
    的头像 发表于 03-11 12:01 1467次阅读
    伺服电机<b class='flag-5'>编码</b>器怎么选型

    DISCOAA编码器性质特点

    DISCOAA编码器的具体详细资料或参数 ‌。不过,我们可以根据编码器的通用知识和一些相关信息来概述编码器的一般特点和类型。 编码器通常用于将机械运动或位置转换为电信号,以便进行监测、
    的头像 发表于 02-20 13:50 622次阅读

    DISCOAA编码器类型功能

    DISCOAA编码器可能包括绝对编码器和增量编码器两种类型,其主要功能是将输入信号进行分析和处理,并将其转换为数字信号 ‌。 关于类型,虽然搜索结果中并未直接提及DISCOAA编码器的
    的头像 发表于 02-20 13:47 673次阅读

    信道编码和信源编码的区别

    信道编码和信源编码是数字通信系统中两个至关重要的环节,它们各自承担着不同的功能和角色。
    的头像 发表于 01-29 16:29 2880次阅读

    伺服电机编码器故障及维修

    伺服电机编码器故障及维修,伺服电机编码器4大常见故障,编码器信号丢失或不稳定,编码器零点偏移,编码器过热,
    的头像 发表于 01-21 14:49 4022次阅读
    伺服电机<b class='flag-5'>编码</b>器故障及维修

    SMT元器件的编码与识别

    随着电子技术的快速发展,SMT因其高密度、高性能、低成本等优势在电子制造领域占据了主导地位。在SMT生产过程中,元器件的正确编码与识别对于保证生产效率和产品质量至关重要。 1. SMT元器件编码规则
    的头像 发表于 01-10 18:01 2739次阅读

    bcd编码的优缺点 bcd编码的常见错误

    BCD(Binary-Coded Decimal)编码是一种二进制编码方式,用于将十进制数(0-9)直接转换为二进制形式。这种编码方式在数字系统中非常常见,尤其是在需要处理数字数据的硬件和软件中
    的头像 发表于 12-20 17:17 2387次阅读