十七熵编码_CABAC语法元素的二值化

Posted 叮咚咕噜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十七熵编码_CABAC语法元素的二值化相关的知识,希望对你有一定的参考价值。

一、上下文自适应的二进制算术编码

在上篇博文十六、算术编码_1、基本原理与实现,然而在实际的H.264编解码的方法中,显然是不可能采用上文中简单的算法来实现。

  • H.264采用的算术编码方法:
    • 上下文自适应的二进制算术编码(Context-based Adaptive Binary Arithmetic Coding, CABAC)
  • CABAC:
    • H264中首先采用的、专用于视频压缩编码的熵编码算法
    • 在视频编码的发展中保持了强大生命力,并在H265中保留继承
  • 在CABAC中,主要步骤或算法可以分为3个步骤/类别:
    • 语法元素的二值化: 残差数据不可能只有0、1,而是包含的非常广的取值范围的,所以需要将取值范围广泛的语法元素转化为0/1的二进制信息流
    • 语法元素的山下文: 维护每个语法元素在每次编码执行过程时的概率模型及其变化(概率模型是动态发生变化的)
    • 算法编码: 根据上下文给出的概率模型,将二值化的语法元素编码为码流。(这部分和上节的算术编码的原理基本一致)
  • 在H264的标准文档中,CABAC的解析方法定义于9.3节。
  • 在文档中使用cabac的语法元素以描述符ae(v)来标识
  • 对使用CABAC解析的语法元素,其输入和输出信息为
    • 输入:先前解析的语法元素值、当前语法元素解析请求
    • 输出:当前语法元素的值
  • CABAC解码流程总图:
    在这里插入图片描述
  • CABAC解析流程概述:
    1. 每一个slice的第一个语法元素,对CABAC进行初始化:上下文变量、引擎
    2. 对每一次解析请求,获取相应语法元素的二进制码流
    3. 二值化的语法元素与解析出的信息确定解码流程
    4. 对于二值化语法元素的每一位比特值,获取对应的上下文的索引值
    5. 针对每一个上下文索引值,执行算术解码的过程
    6. 解码每一位输入信号完成后,将结果对比二值化的集合,赋予对应的元素值

以上是关于十七熵编码_CABAC语法元素的二值化的主要内容,如果未能解决你的问题,请参考以下文章

H.264/AVC视频编解码技术详解十九熵编码:CABAC语法元素的二值化

二值化

OpenCV - 图像二值化处理 腐蚀膨胀 边缘检测 轮廓识别

ALINK(二十六):特征工程特征离散化二值化 (BinarizerBatchOp)

编码原理(附二)----二值化

如何用C语言实现对图像的二值化?