0

我使用ffmpeg来计算 PSNR 值。
操作系统:Ubuntu-18.04
通用:

ffmpeg -i ../dataset/1080p-1k_rename/ggg_30_.jpg -i ../dataset/decode_dir_1k/ggg_30_.jpg -lavfi psnr="stats_file=./jpg_name.log" -f null -

结果:

ffmpeg version 4.3.1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
...
...

Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: wrapped_avframe, yuvj420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc58.91.100 wrapped_avframe
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=1.74x    
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_psnr_0 @ 0x7461800] PSNR y:46.226028 u:inf v:inf average:47.986940 min:47.986940 max:47.986940

u:inf v:inf 为什么 U 和 V 都是 inf?

4

1 回答 1

1

这意味着过滤器没有检测到 U 和 V 分量中的任何可测量的退化。

使用的公式是PSNR = 10*log10(MAX^2/MSE)其中 MSE 是均方误差。当相同或非常接近时,MSE 将为 0。

于 2020-12-02T05:06:45.050 回答