十七熵编码_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解析流程概述:
- 每一个slice的第一个语法元素,对CABAC进行初始化:上下文变量、引擎
- 对每一次解析请求,获取相应语法元素的二进制码流
- 二值化的语法元素与解析出的信息确定解码流程
- 对于二值化语法元素的每一位比特值,获取对应的上下文的索引值
- 针对每一个上下文索引值,执行算术解码的过程
- 解码每一位输入信号完成后,将结果对比二值化的集合,赋予对应的元素值
以上是关于十七熵编码_CABAC语法元素的二值化的主要内容,如果未能解决你的问题,请参考以下文章
H.264/AVC视频编解码技术详解十九熵编码:CABAC语法元素的二值化
OpenCV - 图像二值化处理 腐蚀膨胀 边缘检测 轮廓识别