提高 SSIM、PSNR 等过滤器的 ffmpeg 精度
Increase ffmpeg precision for filters like SSIM, PSNR
我正在尝试使用 ffmpeg 计算图像的 ssim 和 psnr;但是,结果最多只有小数点后两位。有没有办法提高结果的精度(越高越好)?
输出:
n:1 mse_avg:0.00 mse_r:0.00 mse_g:0.00 mse_b:0.00 psnr_avg:76.89 psnr_r:76.88 psnr_g:76.93 psnr_b:76.86
用于 psnr 的命令:
ffmpeg.exe -i original.tiff -i modified.tiff -lavfi psnr=stats_file=psnr_logfile.txt -f null -
用于 ssim 的命令:
ffmpeg.exe -i original.tiff -i modified.tiff -lavfi ssim=stats_file=ssim_logfile.txt -f null -
控制台输出显示更多小数位:
ffmpeg -i modified.tiff -i original.tiff -lavfi "[0][1]psnr" -f null -
...
[Parsed_psnr_0 @ 0x55bad8baeb80] PSNR r:29.920378 g:33.903905 b:29.960557 average:30.906865 min:30.906865 max:30.906865
或使用libvmaf filter:
ffmpeg -i modified.tiff -i original.tiff -lavfi "[0][1]libvmaf=psnr=1:ssim=1:log_path=stats.json:log_fmt=json" -f null -
示例 stats.json
包含:
"VMAF score":84.32680682547482,
"PSNR score":36.81582411904382,
"SSIM score":0.9912355542182922
遇到同样的问题,我最终只是对 ffmpeg 共享过滤器库进行十六进制编辑以更改格式字符串。
我正在尝试使用 ffmpeg 计算图像的 ssim 和 psnr;但是,结果最多只有小数点后两位。有没有办法提高结果的精度(越高越好)?
输出:
n:1 mse_avg:0.00 mse_r:0.00 mse_g:0.00 mse_b:0.00 psnr_avg:76.89 psnr_r:76.88 psnr_g:76.93 psnr_b:76.86
用于 psnr 的命令:
ffmpeg.exe -i original.tiff -i modified.tiff -lavfi psnr=stats_file=psnr_logfile.txt -f null -
用于 ssim 的命令:
ffmpeg.exe -i original.tiff -i modified.tiff -lavfi ssim=stats_file=ssim_logfile.txt -f null -
控制台输出显示更多小数位:
ffmpeg -i modified.tiff -i original.tiff -lavfi "[0][1]psnr" -f null -
...
[Parsed_psnr_0 @ 0x55bad8baeb80] PSNR r:29.920378 g:33.903905 b:29.960557 average:30.906865 min:30.906865 max:30.906865
或使用libvmaf filter:
ffmpeg -i modified.tiff -i original.tiff -lavfi "[0][1]libvmaf=psnr=1:ssim=1:log_path=stats.json:log_fmt=json" -f null -
示例 stats.json
包含:
"VMAF score":84.32680682547482,
"PSNR score":36.81582411904382,
"SSIM score":0.9912355542182922
遇到同样的问题,我最终只是对 ffmpeg 共享过滤器库进行十六进制编辑以更改格式字符串。