gpt4 book ai didi

ffmpeg:在 RGB channel 上计算 PSNR

转载 作者:行者123 更新时间:2023-12-04 23:09:03 40 4
gpt4 key购买 nike

我有 2 个 rgb48le tif 图像,我想与 ffmpeg 进行比较以计算 PSNR

ffmpeg 自动计算 YUV channel 而不是 RGB 上的 PSNR。
这是我在“ffmpeg-20160119-git-cc83177-win64-static”上使用的命令:

ffmpeg -y -an -i image1.tif -i image2.tif -filter_complex "psnr" output.tif

这是输出:
[tiff_pipe @ 045b36a0] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, tiff_pipe, from 'image1.tif':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: tiff, rgb48le, 7680x4320 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
[tiff_pipe @ 045c53a0] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #1, tiff_pipe, from 'image2.tif':
Duration: N/A, bitrate: N/A
Stream #1:0: Video: tiff, rgb48le, 7680x4320 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
Output #0, image2, to 'output.tif':
Metadata:
encoder : Lavf56.40.101
Stream #0:0: Video: tiff, rgb48le, 7680x4320 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
Metadata:
encoder : Lavc56.60.100 tiff
Stream mapping:
Stream #0:0 (tiff) -> psnr:main
Stream #1:0 (tiff) -> psnr:reference
psnr -> Stream #0:0 (tiff)
Press [q] to stop, [?] for help
frame= 1 fps=0.3 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:195568kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_psnr_0 @ 045cf760] PSNR y:46.00 u:49.32 v:50.34 average:48.14 min:48.14 max:48.14

这是正常的吗?
有没有办法强制 PSNR 在每个 channel 上计算 RGB48?

最佳答案

vf_psnr.c不支持rgb48,所以需要转换成一些支持的格式。最简单(无损)的转换可能是到 gbrp16;这本质上是相同的像素数据,只是平面而不是打包(即 GGGG[..] BBBB[..] RRRR[..] 而不是 RGBRGBRGBRGB[..])。

不幸的是,libswscale only supports output (以 GBRP 为单位)高达 14bpp,而不是 16bpp,因此您需要转换为 gbr14p,直到修复:

ffmpeg -i image1.tif -i image2.tif \
-lavfi '[0:v]format=gbrp14[o1];[1:v]format=gbrp14[o2];[o1][o2]psnr' \
-f null -nostats -

这实际上会在 14bpp RGB 中进行 PSNR。由于 drawutils.c 中的错误,输出仍然声称 YUV。 ,它不能将 GBRP14 识别为实际上是 RGB。我将提交 patch为了那个原因。因此,即使控制台上的输出显示“y”、“u”、“v”,但 channel 顺序实际上是“g”、“b”、“r”。

关于ffmpeg:在 RGB channel 上计算 PSNR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34923365/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com