YUV-XPSNR
Closed this issue · 2 comments
I have a question. xpsnr currently reports a score for each component as well as the lowest per-component XPSNR.
[Parsed_xpsnr_0 @ 0x562dcd30f440] XPSNR Y: 34.4247 U: 36.8110 V: 36.8596 (minimum: 34.4247)
FFmpeg's psnr filter reports the per-component PSNR as well as the average, min and max YUV-PSNR.
[Parsed_psnr_0 @ 000001f9e2f6ebc0] PSNR y:45.452205 u:47.995197 v:47.755565 average:46.119703 min:43.767743 max:49.928504
Is the lowest per-component XPSNR (minimum: 34.4247) more relevant to how humans rate video quality than the average YUV-XPSNR? And if not will YUV-XPSNR be added?
Hi Alexander,
my apologies, I noticed your question just now. Yes, we found the cross-component minimum to be more in-line with human perception of visual quality than a cross-component average. For example, some U and V (X)PSNR which is, say, 12 dB higher than the Y (X)PSNR value would cause the average to increase quite a bit, but this does not necessarily mean that the visual quality will be any better (and in typical video compression tasks where enough bits are allocated to the chroma components, it usually won't be).
On the other hand, desaturating a color image or video, or even converting it to grayscale by zeroing out the chroma components, would obviously cause a loss in visual quality. This is why we decided to also report the minimum XPSNR value of all components, in order to have a single overall value for color input.
Note that, from your example above, the minimum PSNR value seems to be the minimum across the frames, not the color components as in XPSNR (which takes the minimum of the component-wise frame averages). Such minima across the frames aren't really important visually - XPSNR already uses a modified frame averaging which emphasizes strong low-XPSNR outliers in the average.
Christian
Thank you for your response. This answers my question.