视频压缩编码技术(H.264) 之哈夫曼编码

编码…?

听到这个词,反正小编很是头疼

总感觉很深奥,很高大上呢

不信跟小编去探个究竟

哈夫曼编码步骤如下:

第一步,将信息符号按其出现概率从大到小排列;

第二步,将两个最小概率组成一组,划成2 个分支域,并标以0 和1;再把2 个分支域合并成1个支域,标以两个概率之和;

第三步,依次类推,直到概率之和等于1.0;

第四步,找出概率和1.0 到各信息符号的路径,记下各路径从右到左各分支域的0 和1,即得到信息符号相应的码字。

理论上,这种编码是最佳的。实际上,利用硬件实现时,出现概率不可能精确到小数后多少位,而最小存储单元为1bit,会引起概率匹配不准确及编码效率的下降。简易理解就是,假如我有A,B,C,D,E五个字符,出现的频率(即权值)分别为5,4,3,2,1,那么我们第一步先取两个最小权值作为左右子树构造一个新树,即取1,2构成新树,其结点为1+2=3,如图:

虚线为新生成的结点,第二步再把新生成的权值为3的结点放到剩下的集合中,所以集合变成{5,4,3,3},再根据第二步,取最小的两个权值构成新树,如图:

再依次建立哈夫曼树,如下图:

其中各个权值替换对应的字符即为下图:

所以各字符对应的编码为:A->11,B->10,C->00,D->011,E->010

霍夫曼编码是一种无前缀编码。解码时不会混淆。其主要应用在数据压缩,加密解密等场合。

你们看明白了吗

小编已经迫不及待想要看见

你们迷茫的表情了

原文发布于微信公众号 - 瓜大三哥(xiguazai_tortoise)

原文发表时间:2018-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开心的学习之路

神经网络体系搭建(四)——快速上手TensorFlow

本篇是神经网络体系搭建的第四篇,解决体系搭建的TensorFlow相关问题,详见神经网络体系搭建(序) ? TensorFlow安装 建议用Anacond...

3425
来自专栏java初学

MD5算法

2986
来自专栏人工智能LeadAI

人脸识别 | 卷积深度置信网络工具箱的使用

本文主要以ORL_64x64人脸数据库识别为例,介绍如何使用基于matlab的CDBN工具箱。至于卷积深度置信网络(CDBN,Convolutional Dee...

4335
来自专栏应兆康的专栏

Aggomerative Clustering

所有观测对象先以自己为群组,满足特定准则的对象汇聚在一起。重复这个过程,群组不断增大,直到某个端点饱和。

870
来自专栏AI研习社

玩过TensorFlow自带的的可视化工具么?(附源码)

TensorBoard 如何更直观的观察数据在神经网络中的变化,或是已经构建的神经网络的结构。上一篇文章说到,可以使用 matplotlib 第三方可视化,...

35210
来自专栏数据结构与算法

斯坦纳树小结

1640
来自专栏量子位

数据载入过慢?这里有一份TensorFlow加速指南

王小新 编译自 Towards Data Science 量子位 出品 | 公众号 QbitAI 机器学习算法烂熟于心,网络结构顺手拈来,但是如果数据集载入时耗...

6128
来自专栏人工智能LeadAI

TensorFlow从1到2 | 第五章 非专家莫入!TensorFlow实现CNN

当看到本篇时,根据TensorFlow官方标准《Deep MNIST for Experts》(https://tensorflow.google.cn/get...

4468
来自专栏lhyt前端之路

js随机数生成器的扩展0.前言1.扩展+分区2.二进制法3. 总结

给你一个能生成随机整数1-7的函数,就叫他生成器get7吧,用它来生成一个1-11的随机整数,不能使用random,而且要等概率。

841
来自专栏desperate633

LintCode 最小路径和题目分析代码

给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。

642

扫码关注云+社区

领取腾讯云代金券