H.266/VVC代码学习60:CCALF解码端过程

CCALF是把亮度的信息进行维纳滤波加到色度上,以补充色度平坦的信息。于JVET的O次会议提出,Q次会议接收。

首先我们先回顾一下ALF的算法,然后进行CCALF的学习。

1 输入输出

输入:
1、亮度ALF之前的重建亮度像素;
2、色度ALF之后的滤波色度像素;
3、色度CTU位置及CTU宽高;
4、7个滤波系数值。

输出:色度CCALF滤波后的最终像素值。

2 步骤

1、从色度像素位置对应到亮度像素位置,4:2:0将位置乘2即可。
2、亮度重建像素处生成CCALF滤波模板,如果亮度像素位置超过图片边界,则令其值为最近的像素点。
3、根据系数值进行滤波,得到的补偿值加进色度滤波值上,结束。

注:一些边界限制:当前亮度CTU是最下面一行的CTU且CTU高不足2——扁平情况。只应用如下滤波方法:即亮度CTU的倒数4、5行边界为人为边界,只用那一行3个像素滤波。亮度CTU倒数3、6的滤波也不涉及最后一行那个模板位置的像素,用上一行离得最近的那个代替,共用7个像素滤波。可见,亮度CTU的后4行比较特殊,有类似一个边界。

3 计算

黄色像素为色度对应的亮度像素位置,生成的模板如下
在这里插入图片描述
其中滤波系数为f,设模板位置对应像素值减去黄色像素值为e,则计算公式为
result = (Σ f * h)/ 128,将result值加在色度ALF后像素值上即可得到最终结果。

猜你喜欢

转载自blog.csdn.net/weixin_42979679/article/details/104759770
今日推荐