我应该选择哪种YUV格式来计算视频序列的PSNR?

时间:2017-03-20 17:41:39

标签: image-processing video video-processing yuv

例如,我可以提供以下视频格式之一:

400

411

420

422

444

选择每种视频格式都会显示视频序列的不同PSNR值。 或者我有什么方法可以确定输入YUV视频序列的YUV视频数据格式吗?

2 个答案:

答案 0 :(得分:1)

Y-PSNR:您只需提取原始图像和参考图像的Y分量,然后计算每个图像/视频帧的PSNR值。

对于视频:您需要计算所有估算的PSNR值的平均值。

答案 1 :(得分:1)

根据维基百科,PSNR针对每个色彩空间渠道进行报道。

  

或者,对于彩色图像,图像被转换为​​不同的颜色空间,并且针对该颜色空间的每个通道报告PSNR,例如,YCbCr或HSL。

请参阅:https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio

要计算视频的PSNR,您必须拥有源视频,并在某种处理阶段后拥有相同的视频。

  

PSNR最常用于衡量有损压缩编解码器的重建质量。

如果彩色子采样(例如,将YUV 444转换为YUV 420)是有损压缩流水线的一部分,建议在PSNR计算中包含子采样。
注意:没有严格的答案,这取决于您需要测量的内容。

例:
假设输入视频是YUV 444,并且H.264编解码器是从有损压缩中使用的,并且假设预处理阶段是将YUV 444转换为YUV 420。 视频压缩:YUV444 --> YUV420 --> H264 Encoder

您需要撤消该过程,然后计算PSNR 视频重建:H264 Decoder --> YUV420 --> YUV444

现在您输入YUV 444格式的视频,并以YUV 444格式重建视频,应用两个视频的PSNR计算。

确定输入YUV视频的YUV视频数据格式:

我建议使用ffprobe工具 您可以从此处下载:https://ffmpeg.org/download.html(选择“静态链接”) 我在这里找到了解决方案:https://trac.ffmpeg.org/wiki/FFprobeTips

您可以使用以下示例:

ffprobe -v error -show_entries stream=pix_fmt -of default=noprint_wrappers=1:nokey=1 input.mp4