【图像压缩算法】霍夫曼编码

1. 研究背景

霍夫曼在1952年提出一种构造最佳码的方法,称之为霍夫曼编码(Huffman)。霍夫曼编码是一种无损的统计编码方法,利用信息符号概率分布特性的改变字长进行编码。霍夫曼编码适用于多元独立信源,对于多元独立信源来说它是最佳码。

2. 基本原理

霍夫曼编码是一种利用信息符号概率分布特性的变字长的编码方式,即对于出现概率大的信息符号编以短字长的码,对于出现概率小的信息符号编以长字长的码。如果码字长度严格按照所对应符号出现概率大小逆序排列,则编码结果的平均码字长度一定小于任何其他排列形式。霍夫曼编码则是严格按照信源符号出现的概率大小来构造码字,因此这种编码方式形成的平均码字长度最短。

霍夫曼编码的步骤如下:

(1)将信源符号按出现概率从大到小排成一列,然后把最末两个符号的概率相加,合成一个概率。

(2)把这个符号的概率与其他符号的概率从大到小排列,然后再把最末两个符号的概率加起来,合成一个概率。

(3)重复上述做法,直到最后剩下两个概率为止。

(4)从最后一步剩下的两个概率开始逐步反向进行编码。每一步只需要对两个分支各赋予一个二进制码,如对概率大的赋予码1,对概率小的赋予码0。

3. 基本流程

霍夫曼编码系统主要分为压缩对象输入、概率统计、构造HUffman树,生成HUffman树和压缩编码环节组成。如下图是霍夫曼编码和解码系统的构成图,实现对数据的压缩及其压缩参数的计算。

相关推荐

  1. 【数据结构】

    2024-04-27 20:44:01       38 阅读
  2. nginx中的哈编码算法

    2024-04-27 20:44:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 20:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 20:44:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 20:44:01       82 阅读
  4. Python语言-面向对象

    2024-04-27 20:44:01       91 阅读

热门阅读

  1. 学习笔记-数据结构-树与二叉树(2024-4-22)

    2024-04-27 20:44:01       75 阅读
  2. 【spring6】Spring IoC注解式开发

    2024-04-27 20:44:01       159 阅读
  3. Spring

    Spring

    2024-04-27 20:44:01      23 阅读
  4. CSS体验

    CSS体验

    2024-04-27 20:44:01      28 阅读
  5. 手写一个民用Tomcat (07)

    2024-04-27 20:44:01       30 阅读
  6. 抖音电商商品采集接口api 店铺商品列表sku、销量

    2024-04-27 20:44:01       27 阅读
  7. 深度学习框架TensorFlow和PyTorch的选取

    2024-04-27 20:44:01       31 阅读
  8. qt中的取整函数

    2024-04-27 20:44:01       29 阅读
  9. Flutter 音视频播放器与弹幕系统开发实践

    2024-04-27 20:44:01       30 阅读
  10. kkkkkk

    2024-04-27 20:44:01       24 阅读
  11. 每天一个数据分析题(二百九十六)

    2024-04-27 20:44:01       32 阅读