H.264协议CABAC熵编码学习(二)

本文是H.264协议CABAC熵编码学习的第二部分,详细介绍了CABAC编码流程,包括语法元素二值化、上下文模型选择和基于查表法的二进制算术编码。CABAC利用动态调整0和1的概率来压缩比特串,通过查表法简化计算,降低复杂度。文章还涉及了概率区间的划分、状态跳转和上下文模型的选择计算方法。
摘要由CSDN通过智能技术生成

目录:
H.264协议CABAC熵编码学习(一)
H.264协议CABAC熵编码学习(二)
H.264协议CABAC熵编码学习(三)
H.264协议CABAC熵编码学习(四)
H.264协议CABAC熵编码学习(五)

上节我们介绍了CABAC的先导知识,这节我们将介绍H.264协议中的CABAC熵编码。

CABAC编码流程

在协议中CABAC编码流程主要分为三个部分:

  • 语法元素二值化

  • 上下文模型选择

  • 基于查表法的二进制算术编码

CABAC全称为上下文自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding),即动态调整0和1的概率,来压缩比特串。而在协议中,为了更加便捷的在计算机上实现二进制算术编码,使用了查表法,替代繁杂得乘法计算,大大加速了CABAC的编码过程。

语法元素二值化

具体二值化过程可以参考H.264协议CABAC熵编码学习(一)。

协议中规定了宏块级语法元素的二值化方案,具体可参考协议中Table 9-34。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

基于查表法的二进制算术编码

在协议中,为了简化算术编码的计算复杂度,首先是将 [0,1] [ 0 , 1 ] 区间扩展成 [0,1024] [ 0 , 1024 ] ,同时将乘法转化成查表得方法,大大得缩减了计算复杂。接下来,我们将介绍协议中是如何进行二进制算术编码。

首先介绍几个变量得定义:

  • MPS:表示出现概率较大得数值,该数值为0或1

  • LPS:表示出现概率较小得数值,该数值为0或1

  • L(ow):概率区间得起始位置

  • R(ange):概率区间得长度

在协议中,一个概率区间的布局如下:

这里写图片描述

CABAC将 [0.01875,0.5] [ 0.01875 , 0.5 ] 区间划分成0~63个状态,其中63号状态表示退出,0号状态表示数值翻转,即LPS和MPS所代表的值进行翻转。每个状态的概率计算如下:

p(t+1)LPS={ αptLPSαptL
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值