当前位置: 首页 > news >正文

视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)

视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)

视频编码中熵编码之基于上下文的变长编码Huffman霍夫曼编码和指数哥伦布)

  • 视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)
  • 前言
    • 一、霍夫曼(Huffman)算法简介
    • 二、霍夫曼(Huffman)编码步骤(分为两类 赋值与反推)
    • 三、霍夫曼(Huffman)编码特点
      • 1、霍夫曼编码是瞬时唯一的可解块编码
      • 2、霍夫曼编码是唯一可译码。短的码不会成为更长码的起始部分
      • 3、霍夫曼编码的平均码长接近于熵
      • 4、与计算机的数据结构不匹配
      • 5、需要多次排序, 耗费时间
    • 四、Huffman编码特点
    • 五、Huffman编码举例
      • 1、简单编码流程
      • 2、Huffman编码(树结构分析法)
  • 总结


视频编码流程图

1、霍夫曼(Huffman)算法简介

2、霍夫曼(Huffman)编码步骤

3、霍夫曼(Huffman)编码特点

4、霍夫曼(Huffman)编码举例

①、视频编码中熵编码之熵及熵编码基本原理

②、视频编码中熵编码之"Z"字扫描原理(变换DCT系数和小波变换系统分布特性和统计特性)

③、视频编码中熵编码之基于上下文的变长编码(Buffman霍夫曼编码和指数哥伦布)

④、视频编码中熵编码之基于上下文的算术编码

⑤、视频编码中熵编码之位平面编码

⑥、视频编码中熵编码之零数编码

⑦、视频编码中熵编码之游程编码

5、 环路滤波

前言

视频编码中熵编码的目标是去除信源符号在信息表达上的表示冗余,也称为信息熵冗余或者编码冗余。 熵编码技术是视频编码系统中的基础性关键技术之一。

一、霍夫曼(Huffman)算法简介

  • Huffman编码是1952年为压缩文本文件所设计的编码方法,也是目前消除视频信息冗余最常使用的方法之一
  • 对出现概率最大的符号赋以最短的码字, 概率越小表示的码字越长, 从而表示每个符号的平均比特数最小

二、霍夫曼(Huffman)编码步骤(分为两类 赋值与反推)

  1. 把信源符号按照概率大小顺序排列(概率排序)
  2. 在分配码字长度时,首先将两个出现概率最小的两个符号的概率相加,合成一个概率;(合并)
  3. 把这个合成概率看作是一个新组合符号的概率, 重复上述做法,直到最后只城下两个符号的概率为之(置换)
  4. 完成上述步骤后,在返回向前进行编码,每一层有两个分支,分别赋予0和1(大的赋0或者小的赋1 但是必须一致)

三、霍夫曼(Huffman)编码特点

1、霍夫曼编码是瞬时唯一的可解块编码

  • ① 瞬时:符号串中每个码字无需参考后继符号就可解码
  • ② 唯一可解码:任何符号串只能以一种方式解码
  • ③ 块编码:每个信源符号都映射到一个编码符号的固定序列中

2、霍夫曼编码是唯一可译码。短的码不会成为更长码的起始部分

3、霍夫曼编码的平均码长接近于熵

4、与计算机的数据结构不匹配

5、需要多次排序, 耗费时间

注意: 1、霍夫曼编码的算法是确定的, 但是编出的码并非是唯一的
2、由于霍夫曼编码的依据是信源符号的概率分布, 故其编码效率取决于信源的统计特性

原因是: 在编码步骤过程中赋值 是有区别的(例如: 大赋0, 小赋1)

四、Huffman编码特点

  1. 霍夫曼编码的局限性在于,该编码方法只适用于离散信源,即信源符号个数为有限数
  2. 编码时需要知道输入符号集的概率分布
  3. 在进行Huffman编码压缩时,计算量大而复杂,尤其是译码复杂度较高
  4. 由于码长不等,还存在一个输入与输出的速率匹配问题

五、Huffman编码举例

1、简单编码流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、Huffman编码(树结构分析法)

在这里插入图片描述

在这里插入图片描述

总结

数字视频编码技术原理地址:https://chensongpoixs.github.io/cvideo_codec/


文章转载自:
http://algometric.wanhuigw.com
http://bushido.wanhuigw.com
http://brainpan.wanhuigw.com
http://ames.wanhuigw.com
http://adulteress.wanhuigw.com
http://carpaccio.wanhuigw.com
http://benzine.wanhuigw.com
http://chaptalize.wanhuigw.com
http://anglepod.wanhuigw.com
http://camper.wanhuigw.com
http://alluvion.wanhuigw.com
http://boxboard.wanhuigw.com
http://cafe.wanhuigw.com
http://brocage.wanhuigw.com
http://accompany.wanhuigw.com
http://caseworker.wanhuigw.com
http://canada.wanhuigw.com
http://backhand.wanhuigw.com
http://antemeridian.wanhuigw.com
http://anking.wanhuigw.com
http://boisterously.wanhuigw.com
http://beatrix.wanhuigw.com
http://abaxial.wanhuigw.com
http://caller.wanhuigw.com
http://areopagitic.wanhuigw.com
http://capitulum.wanhuigw.com
http://bundesrath.wanhuigw.com
http://cardiotoxic.wanhuigw.com
http://anil.wanhuigw.com
http://are.wanhuigw.com
http://www.dtcms.com/a/280641.html

相关文章:

  • 【YOLOv11-目标检测】06-模型部署(C++)
  • 06_pt-table-sync 工具解决 MySQL 主从数据不一致
  • conda环境保存(后期再来整理)
  • etcd自动压缩清理
  • 2-Nodejs运行JS代码
  • iOS高级开发工程师面试——Swift
  • Fiddler 中文版抓包实战 构建标准化调试流程提升团队协作效率
  • echarts 绘制3D中国地图
  • React强大且灵活hooks库——ahooks入门实践之开发调试类hook(dev)详解
  • PostgreSQL 数据库中 ETL 操作的实战技巧
  • React源码6 三大核心模块之一:commit, finishConcurrentRender函数
  • 前端学习笔记:React.js中state和props的区别和联系
  • haproxy负载均衡
  • AntV G6 基础元素详解(React版)
  • 【PTA数据结构 | C语言版】创建哈夫曼树
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第二十一讲)
  • 【PDF识别改名】使用京东云OCR完成PDF图片识别改名,根据PDF图片内容批量改名详细步骤和解决方案
  • 同样是“跳转”,为何forward地址栏不变,redirect会变?
  • RNN、GRU 与 LSTM 计算成本深入对比
  • 基于光场相机的激光增材制造熔池温度场原位多眼监测​​
  • 【zynq7020】PL的“Hello LED”
  • FPGA高端图像ISP培训课程,提供工程源码+视频教程+FPGA开发板
  • Softhub软件下载站实战开发(十八):软件分类展示
  • 使用LNMP一键安装包安装PHP、Nginx、Redis、Swoole、OPcache
  • Vmware中安装的CentOS7如何扩展硬盘大小
  • 语言模型玩转3D生成:LLaMA-Mesh开源项目
  • 【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(二):封装自定义可复用组件
  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理
  • 手搓RAG
  • 知识增强型Agent开发新范式:基于ERNIE-4.5的检索增强生成架构实践