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

    文章

    1174

    浏览量

    53285
  • 编码
    +关注

    关注

    6

    文章

    935

    浏览量

    54762

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

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

收藏 人收藏

    评论

    相关推荐

    编码器类型详解:探索不同编码技术的奥秘

    编码器类型详解:探索不同编码技术的奥秘 在自动化、机器控制和数据处理等领域,编码器作为关键的传感器组件,扮演着至关重要的角色。它们通过将物理位置、速度或方向转换为电信号,为各种设备提供精确的控制
    的头像 发表于 11-19 08:58 145次阅读
    <b class='flag-5'>编码</b>器类型详解:探索不同<b class='flag-5'>编码</b>技术的奥秘

    磁电编码器和光电编码器的区别

    磁电编码器和光电编码器是两种不同类型的编码器,它们在原理、结构、性能和应用领域上都有所不同。 磁电编码器和光电编码器的区别 1. 引言
    的头像 发表于 10-12 09:54 699次阅读

    直径测量工具的发展历程

    关键字:直径测量,工业直径测量设备,线性尺量器,光电测径仪, 直径测量工具的发展历程是一个悠久且不断创新的过程,它随着科学技术的进步而不断演变。以下是直径测量工具发展历程的详细概述: 一、古代测量
    发表于 10-10 16:55

    监控平台设计思路

    电子发烧友网站提供《监控平台设计思路.pptx》资料免费下载
    发表于 10-09 11:18 0次下载

    电感技术的讲解

    详细讲解电感的原理及计算
    的头像 发表于 09-06 02:07 1930次阅读
    电感技术的<b class='flag-5'>讲解</b>

    NAND闪存的发展历程

    NAND闪存的发展历程是一段充满创新与突破的历程,它自诞生以来就不断推动着存储技术的进步。以下是对NAND闪存发展历程的详细梳理,将全面且深入地介绍其关键节点和重要进展。
    的头像 发表于 08-10 16:32 1102次阅读

    GPT的定义和演进历程

    GPT,全称Generative Pretrained Transformer,是OpenAI公司在自然语言处理(NLP)领域的一项重大创新。这一模型不仅推动了AI技术的边界,还深刻影响了我们与机器交互的方式。本文将从GPT的定义、来源、演进历程以及其在各个领域的应用和影响等方面进行深度剖析。
    的头像 发表于 07-10 10:41 913次阅读

    PLC如何判断编码器正反转

    器的工作原理、输出信号特性以及PLC编程方法等方面,详细阐述PLC如何判断编码器的正反转,并提供相应的编程思路和实现方法。
    的头像 发表于 06-17 09:31 1932次阅读

    【RTC程序设计:实时音视频权威指南】音视频的编解码压缩技术

    音视频所载有的信息在通过传输的时候就需要压缩编码。 其中,文本压缩是指通过使用各种算法和技术,将文本数据表示为更紧凑的形式,以减少存储空间。 霍夫曼编码是一种无损压缩算法,它可以根据字符出现
    发表于 04-28 21:04

    编码器分辨率是什么意思 编码器分辨率和脉冲数的关系

    按照编码器支持的分辨率可以把编码器分成标清编码器、高清编码器、全高清编码器,分辨率越高帧率越高视频就越清楚。 1.
    的头像 发表于 02-21 18:07 3937次阅读
    <b class='flag-5'>编码</b>器分辨率是什么意思 <b class='flag-5'>编码</b>器分辨率和脉冲数的关系

    编码器好坏怎么判断,编码器原理

    编码器(Encoder)是将输入数据转化为特定编码表示的一种技术。对于不同类型的编码器,评判其好坏可以从多个方面进行考量,包括编码质量、速度、模型结构等。
    的头像 发表于 01-23 10:58 1806次阅读

    磁性编码器和光电编码器的比较

    伺服电机编码器是一种关键的反馈装置,用于测量和控制电机的转速和位置。在选择伺服电机编码器时,常常面临一个选择:使用磁电编码器还是光电编码器。接下来将从几个关键方面比较这两种类型的
    的头像 发表于 01-18 10:29 2980次阅读

    LDMOS在ESD设计中的应用设计思路

    LDMOS属于功率半导体器件,主要应用于高压场合。而针对高压芯片的ESD防护领域,可采取GGNLDMOS的设计思路
    发表于 12-06 13:54 6145次阅读
    LDMOS在ESD设计中的应用设计<b class='flag-5'>思路</b>

    EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(四):板载IO与总线扩展IO的编码器与脉冲配置的应用

    以正运动EIO24088和EIO16084为例,讲解编码器与脉冲配置的应用。
    的头像 发表于 12-01 09:04 530次阅读
    EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(四):板载IO与总线扩展IO的<b class='flag-5'>编码</b>器与脉冲配置的应用

    信息编码技术详解

    前面介绍过,调制解调之前还需要编码,但编码根据用途来分有信源编码与信道编码。本编的主要内容是介绍几种信源编码技术,需要注意的是用于信源
    的头像 发表于 11-27 10:05 627次阅读
    信息<b class='flag-5'>编码</b>技术详解