其他分享
首页 > 其他分享> > HEVC RDO编解码匹配实验

HEVC RDO编解码匹配实验

作者:互联网

实验内容:

guided环路滤波后的编解码匹配

实验环境:

Windows10;HM-16.9;VS2019;YUVEYE;Tensorflow1.14;Pycharm;

实验任务:

HEVC中,重建图像会经过去方块滤波(deblocking filter)和样本自适应缩进滤波(sample adaptive offset filter,简称SAO)。我们的任务是进行滤波的率失真优化(RDO),即重建图像在经过deblock之后,会被输入GUIDED_CNN神经网络中进行滤波。之后将根据cnn滤波后的结果与SAO滤波后的结果进行比较,选择效果更佳的滤波方式。

实验步骤:

1.加入神经网络(使用C调py模式)

1.1 vs中配置python环境
1.2 调用cnn网络
1.3 保存重建图像,得到cnn后psnr结果

2.选择RDO

2.1 计算SAO后psnr
2.2 比较并替换

3.编码相关信息

3.1 编码SAO信息
3.2 编码CNN信息

4.解码匹配

4.1 解码码流中的信息
4.2 选择CNN模式的frame进行残差补偿

问题总结:

1.在经过了cnn之后,我们不能立刻将cnn后的rec图像放入Pic,并替换原本的图像,因为我们还需要原本的图像进行sao之后的数据,然后进行比较。所以应该新开辟一个区域,存放cnn后的图像,然后在经过比较之后才能进行替换。
2.SAO并不是再process时就写进码流的,内部也有一个RDO,会选择最佳的模式进行保存,然后encode阶段将offset数据写进码流之中,所以我们只需要再encode阶段进行控制就可以了。
3.在进行cnn滤波和sao滤波时,我们只会针对Y分量进行RDO,因此UV分量还是需要使用SAO进行滤波以及编解码。

优化:

1.目前A的编写主要采用了CAVLC的编码方式,因此在码流会占据比较大内存,如果我们可以做到使用CABAC进行传递,那么我们的传递效率还会得到一定的提升,因为码流中传递的A必定会在量化裁剪后限定在[0,15],因为使用CABAC维护概率模型时,理论上来说也不会产生太大问题。
2.目前采用的是c调py,后面需要tensorfolw模型转成ftlite放入HEVC中

标签:编解码,HEVC,滤波,图像,cnn,SAO,RDO,进行
来源: https://www.cnblogs.com/wjune-0405/p/15509033.html