VVC编码工具之Entropy Coding

声明:本系列博文均为原创,转载请注明出处,谢谢!https://blog.csdn.net/xiangxiazaif/article/details/89375268

1.Core CABAC engine
CABAC通过不断划分概率子区间递归实现,其中涉及到区间范围R和小概率符号LPS的乘法运算,HEVC中为了避免除法运算会预先对64x4x8的表格查找得到R*pLPS。在VVC中,解码端使用可变概率更新窗口大小的2状态模型( pStateIdx0, pStateIdx1)的决策方法。小概率符号的概率区间 ivlLpsRange可以由以下两种状态计算出:

然后当前概率区间的计算和二进制编码(bin Val)输出方式同HEVC。
VVC的两种状态更新过程如下:

2.Transform coefficient level coding
(level 为变换+量化后的系数,区别于未经量化的变换系数,以下所说的系数均为level系数)
由于量化后的系数都为整数,其绝对值等于1或2的概率较大,因此HEVC中对变换系数会做多次扫描,分别判断系数值是否为1或者2。
在VVC3中,常规编码码流和旁路编码码流按编码顺序分开,首先发送常规编码码流,接着发送旁路模式码流。对于非零系数的幅值表示采用5次扫描的方式(在判断与1,2的关系的基础上增加了奇偶校验)。

3.Context modeling for coefficient coding
变换系数的概率模型取决于局部邻域或部分重建系数,如图37所示,利用其后面两个块,下边两个块以及右下角的一个块的语法元素建模。(HEVC中采用左边和上边共两个块来建模)。

 

你可能感兴趣的:(H266/VVC)