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

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

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

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

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

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

其中:

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

可以说:

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

信息熵与熵编码基础

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. 实时性权衡

在实时编码场景:

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

总结

熵编码是视频压缩中:

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

一句话总结:

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

相关推荐
XiaoLeisj2 小时前
Android 短视频播放详情页实战:从播放器模块拆分、Media3 与 FlowHelper 接入,到 ViewPager 高度适配和详情数据联动
android·okhttp·音视频·架构设计·flowhelper
互联网散修3 小时前
鸿蒙实战:用 want.param 实现视频播放器跨端迁移续播
华为·音视频·harmonyos·跨端迁移续播
JianZhen✓3 小时前
从零到一:基于声网Agora的医疗视频问诊前端实战指南
前端·音视频
视频技术分享4 小时前
智能硬件音视频SDK选型:RTC核心评估指标全解析
音视频
Evavava啊4 小时前
微信小程序H5页面iOS视频播放问题解决方案
ios·微信小程序·音视频·h5·http 响应头
艾为电子4 小时前
【应用方案】全方位打造掌机新体验——艾为拳头产品组合:音频 & Haptic,硬件+awinicTikTap®、awinicSKTune® V7双算法
音视频·游戏机·音频功放·掌机·掌机游戏机·艾为电子·sktune神仙®算法
何玺4 小时前
从HappyHorse到Seedance:AI视频的“四强争霸”终局推演
人工智能·音视频
许彰午5 小时前
# 政务远程帮办:WebRTC视频通话+录屏录音+手工拼WAV实录
音视频·webrtc·政务
音视频牛哥15 小时前
国产化最后一公里:鸿蒙 NEXT 低延迟音视频技术方案破局之路
音视频·harmonyos·鸿蒙next·鸿蒙rtmp播放器·鸿蒙rtsp播放器·鸿蒙next rtsp播放器·鸿蒙next rtmp播放器
EasyDSS17 小时前
私有化音视频系统/视频高清点播直播EasyDSS如何解锁文旅行业数字化传播新路径
音视频