zoukankan      html  css  js  c++  java
  • 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中
  • 相关阅读:
    [译]git reflog
    [译]git rebase -i
    [译]git rebase
    [译]git commit --amend
    [译]git clean
    [译]git reset
    [译]git revert
    [译]git checkout
    [译]git log
    [译]git status
  • 原文地址:https://www.cnblogs.com/wjune-0405/p/15509033.html
Copyright © 2011-2022 走看看