AVS3变换系数编码:SRCC

AVS3摒弃了HEVC和AVS2中的基于CG(Coefficient Group)的变换系数编码方式,使用基于扫描区域的变换系数编码方法Scan Region-based Coefficient Coding(SRCC)。

在基于块的预测变换混合编码框架里,当一个块完成预测、变换和量化后会获得相应的变换系数,在对系数进行熵编码前需要将二维的变换系数先转化为一维,HEVC和AVS2的做法是先将变换块(TU)分成4x4的块,每个4x4的块称为系数组CG,然后对TB内的CG按照反向zig-zag扫描或反向垂直(水平)扫描,CG内的4x4系数按照同样的扫描方式,最终得到一维的变换系数。

SRCC


SRCC和传统变换系数编码最大的不同是它没有CG的概念,从特定区域的右下角开始对系数进行反向zig-zag扫描。

扫描区域


TU的扫描区域的右下角坐标的x轴坐标(SRx)是最右侧非零系数的x坐标,y轴坐标(SRy)是最下方的非零系数的y坐标,如下图。

下图是SRCC扫描方式和基于CG的扫描方式的区别,

Significance flag


Significance flag表示区域内每个位置是否有非零系数,即只有非零系数需要传输。有两种特殊情况,如果区域的右边界即(SRx,y) y>0没有非零系数则(SRx,0)处的Significance flag默认为1;如果区域的下边界即(x,SRy) x>0没有非零系数则(0,SRy)处的Significance flag默认为1;

Significance flag熵编码的上下文索引由以下两个表求得,

GT1 flag和GT2 flag


在对非零系数的值进行编码时,由于大量系数比较小,集中在1和2附近,可以采用GT1和GT2标志位表示,当一个系数Significance flag为1时表示该系数非零,如果该系数大于1则GT1为1否则为0,如果该系数还大于2则GT2为1,只有在GT1为1时才需要编码GT2标志位。

GT1和GT2的熵编码上下文索引由下表求得,

Remaining absolute level


只有当GT2为1时才需要编码Remaining absolute level,该值等于系数的绝对值减去2。

符号位编码


每个非零系数的符号位使用bypass编码方式。

实验结果


SRCC集成进了AVS3-Baseline,实验平台是HPM3.2,结果如下表,可以发现分辨率越高gain越大,这是因为分辨率越高大尺寸变换块越多,SRCC对于区域的限制越高效。

下表是SRCC和传统方法所使用的上下文变量的数量的对比,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值