我想很多朋友在解码器输出时都会看到PSNR等于0的情况,这代表了什么意思呢?这表示你解码得到的图像和参考图像是一致的。下面基于baseline的情况详细说明一下。
首先看ldecod.c中的main()函数
init_conf(input, argv[1]);
…
img->idr_psnr_number=input->ref_offset;
显然这边的init_conf()是从decoder.cfg配置文件中读取数据,并且input->ref_offset对应的是配置文件中的SNR computation offset的值,在默认的情况下,JM8.6设置为0。
接着看image.c中的find_snr()函数,这就是用来计算PSNR数值的。

当解码器输出的PSNR为0时,意味着解码图像与参考图像完全一致。这通常与配置文件中SNR computation offset的值有关。在分析源代码后发现,PSNR的计算涉及到解码图像与参考序列中特定位置图像的差异,当差值为0时,PSNR即为0。调整SNR computation offset的值可以改变比较的参考图像,从而影响PSNR的计算结果。
最低0.47元/天 解锁文章
11万+

被折叠的 条评论
为什么被折叠?



