3.6 熵编码
在VVC 中,与HEVC中的设计相比,CABAC包含以下主要变化:
- CABAC 核心引擎
- 将变换块和变换跳过块的残差编码结构分开
- 变换系数的上下文建模
3.6.1 CABAC 核心引擎
HEVC中的CABAC引擎在64个不同代表性概率状态之间使用基于表格的概率转换过程。在HEVC中,表示编码引擎状态的范围ivlCurrRange在计算新的间隔范围之前量化到一组4个值。 HEVC状态转换可以使用包含所有64x4x8 bit的预计算值的表格来实现,以近似于ivlCurrRange * pLPS(pStateIdx)的值,其中pLPS是最小概率符号(LPS)和pStateIdx是当前的状态的索引。
在HEVC中,解码判决可以使用预先计算的LUT来实现。首先,使用LUT获取ivlLpsRange,如下所示。然后,ivlLpsRange用于更新ivlCurrRange并计算输出binVal。

在VVC中,概率由概率索引pStateIdx线性表示。因此,所有的计算都可以用方程来完成,而不需要进行查找表操作。为了提高概率估计的准确性,采用了多假设概率更新模型。在二进制算术编码器的区间细分中使用的pStateIdx是两个概率pStateIdx0和pStateIdx1的组合。这两个概率与每个上下文模型相关联,并且以不同的adaptation rates独立地更新。每个上下文模型的pStateIdx0和pStateIdx1的adaptation rates基于相关联的bins的统计被预先训练。概率估计pStateIdx是来自这两个假设的估计的平均值。
图45示出了用于在VVC中解码单个二进制决定的流程图。

本文详细介绍了视频编码标准VVC(Versatile Video Coding)中CABAC(Context-Adaptive Binary Arithmetic Coding)熵编码的改进。与HEVC相比,VVC的CABAC引擎不再依赖查找表,而是采用线性表示概率,并引入多假设概率更新模型以提高编码准确性。在变换系数编码方面,VVC对变换跳过残差和非跳过残差采用了独立的编码结构,同时调整了编码策略以限制每个像素的上下文编码bins数量。此外,变换系数的残差编码过程分为多个阶段,使用Golomb-Rice编码和旁路编码。这些改变旨在提高编码效率和压缩性能。
最低0.47元/天 解锁文章
1449

被折叠的 条评论
为什么被折叠?



