音视频学习(七十六):熵编码

熵编码在视频压缩中的作用

在视频压缩体系中,熵编码是最后一道压缩关卡,其主要任务是:

在不再引入任何失真的前提下,进一步减少码率

一个典型的视频编码流程为:

复制代码
预测 → 变换 → 量化 → 熵编码

其中:

  • 预测、变换、量化负责消除时域、空域冗余并进行有损压缩
  • 熵编码只做无损压缩,消除统计冗余

可以说:

熵编码决定最终码流是否"足够小",但不影响画质

信息熵与熵编码基础

1. 信息熵的概念

熵(Entropy)源自信息论,由香农提出,用于衡量信息的不确定性:

含义:

  • 出现概率越大的符号,携带的信息量越少
  • 出现概率越小的符号,携带的信息量越大

熵编码的目标是:

让码字长度接近符号的理论最小熵值

2. 为什么视频编码适合熵编码

经过预测、变换和量化后,视频数据具有以下特征:

  • 大量 0 或小整数
  • 符号分布极不均匀
  • 相邻符号强相关

这些特性非常适合熵编码算法进行压缩。

熵编码的基本思想

熵编码遵循的核心原则是:

高概率符号用短码表示,低概率符号用长码表示

典型例子:

  • 0 出现概率最高 → 用最短码
  • 大幅度残差概率低 → 用长码

熵编码不改变符号的值,只改变表示方式。

常见熵编码方法

1. 游程编码(RLE)

原理

  • 利用连续相同符号的特性
  • 将多个相同值表示为「值 + 长度」

在视频编码中的应用

  • Zigzag 扫描后大量连续 0
  • 0-run-length 编码

特点

  • 实现简单
  • 只对连续重复有效
  • 通常作为辅助编码手段

2. 哈夫曼编码(Huffman Coding)

原理

  • 基于符号概率构建最优前缀码
  • 短码表示高概率符号

优点

  • 编码效率高
  • 实现相对简单

缺点

  • 码字长度必须是整数比特
  • 对概率变化不够灵活

应用

  • MPEG-2
  • JPEG
  • H.264 CAVLC 中的部分表

3. 算术编码(Arithmetic Coding)

原理

  • 将整个符号序列映射到一个区间
  • 可使用非整数比特表示

优点

  • 接近香农极限
  • 压缩效率高

缺点

  • 计算复杂
  • 专利和实现成本较高(早期)

应用

  • H.264 CABAC
  • H.265 CABAC
  • AV1(ANS 变种)

H.264 中的熵编码

H.264 提供了两种熵编码方式:

编码方式 特点 应用
CAVLC 简单、速度快 Baseline
CABAC 压缩率高 Main / High

1. CAVLC(Context-Adaptive Variable Length Coding)

核心思想

  • 基于上下文的可变长编码
  • 主要针对 4×4 变换块

编码内容包括:

  • 非零系数个数
  • 拖尾 1 的个数
  • 系数幅值
  • 零游程

编码流程

mathematica 复制代码
Zigzag 扫描
 → 统计非零系数
 → 编码 Trailing Ones
 → 编码 Level
 → 编码 Run Before

特点

优点:

  • 计算复杂度低
  • 无算术编码
  • 硬件实现简单

缺点:

  • 压缩效率有限
  • 对高分辨率不友好

2. CABAC(Context-Adaptive Binary Arithmetic Coding)

设计目标

  • 最大限度压缩码率
  • 利用上下文建模

核心组成

CABAC 包含三个关键步骤:

  1. 二值化(Binarization)
  2. 上下文建模(Context Modeling)
  3. 算术编码(Arithmetic Coding)

二值化

将非二值符号拆成二进制串,例如:

  • Unary
  • Truncated Unary
  • Exp-Golomb

上下文建模

  • 根据邻块、历史符号选择概率模型
  • 每个 bin 使用不同概率状态

算术编码

  • 使用二进制算术编码器
  • 动态更新概率模型

CABAC 优势

  • 比 CAVLC 节省 10%~15% 码率
  • 对复杂视频更明显

缺点:

  • 实现复杂
  • 编码延迟较高

H.265 / HEVC 中的熵编码

1. 统一使用 CABAC

HEVC 移除了 CAVLC:

  • 所有语法元素均使用 CABAC
  • 压缩效率进一步提升

2. HEVC 的改进点

  • 更精细的上下文模型
  • 更少的 bin 数
  • 更高并行度支持

结果:

在相同画质下,HEVC 比 H.264 节省约 30%~40% 码率

AV1 中的熵编码

AV1 使用的是:

  • ANS(Asymmetric Numeral Systems)

特点:

  • 介于哈夫曼与算术编码之间
  • 高压缩效率
  • 更适合并行实现
  • 无专利限制

AV1 的熵编码:

  • 更复杂
  • 感知优化更强
  • 压缩效率领先

熵编码与上下文建模

上下文建模是熵编码成功的关键:

常见上下文来源:

  • 邻近块的非零系数数目
  • 预测模式
  • 帧类型
  • 运动矢量大小

好的上下文模型可以:

  • 提高概率预测准确度
  • 减少平均码字长度

熵编码对性能的影响

1. 压缩效率

  • CABAC > CAVLC > Huffman
  • AV1 ANS 目前最优

2. 计算复杂度

  • CAVLC:低
  • CABAC:中高
  • AV1:高

3. 实时性权衡

在实时编码场景:

  • 可牺牲部分压缩率
  • 换取编码速度和低延迟

总结

熵编码是视频压缩中:

  • 唯一无损压缩模块
  • 压缩效率的最后保障
  • 决定码流体积的重要因素

一句话总结:

预测与量化决定"剩多少",熵编码决定"怎么装"

相关推荐
DogDaoDao19 小时前
【H266/VVC提案解读】ITU-T H.274 (V4) 规范深度解读 — 视频编码 SEI 消息的全面演进
音视频·实时音视频·视频编解码·流媒体·h266·vvc·视频编解码标准
hhzz21 小时前
Tiger AI 平台「手势识别」功能全解析:从数字手势 0–9,到中国手语字母,再到本地视频批量识别——一条链路,三种输入,双模型可同开;双手比划,机器秒懂
人工智能·python·深度学习·aigc·音视频
martindelophy21 小时前
DeepSeek Harness 插件开发实战:用自然语言检查、修改并渲染 Timeline Studio 视频工程
音视频
平原20181 天前
LTX-2.5 22B 本地部署:ModelScope 下载、8 步推理与图生视频命令
音视频
淡淡的香烟1 天前
Android视频直播播放器简单封装
android·物联网·音视频
show4331 天前
2026视频处理小程序技术选型指南:链接解析+OCR+ASR+AI配音多引擎对比
小程序·ocr·音视频
昨日之日20061 天前
LTX-2.5:更清晰、更可控、同步音画、多镜头连贯的AI视频神器
人工智能·音视频
点云-激光雷达-Slam-三维牙齿2 天前
批量音频转文本 ASR 目前中文识别效果最好的qwen3 模型
音视频
小柯南敲键盘2 天前
跨马翻译:跨境电商批量图片翻译与视频字幕一站式工具
人工智能·python·音视频
weixin_446260852 天前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频