0

I am trying to calculate PSNR value of the video, which I generate by removing some frames from the original video. In addition, I assume that the video will show the previous frame if the frame is removed. In that sense, I want to measure the QoE of the generated video.

Firstly, I think that PSNR could be useful. However, when I try to calculate PSNR value, it shows the infinite value since the two frames are identical. In that case, how can I handle the infinite value? Is there any common rule that handles the identical frames? (For example, ignore the infinite value, and average only non-infinite value).

The above problem may be similar with comparing the two videos that have different frame rate. How can I compare the PSNR with two videos that have different frame rate?

In addition, what should I do when I use SSIM in the above case?

Thank you

  • You may use the functions: `isnan`, `isinf` and `isfinite` for removing the infinite value from a vector. – Rotem Sep 21 '16 at 16:30
  • Comparing the two videos that have different frame rate: In case you don't wont to handle frame rate conversion (causes artifacts), you can skip frames, and compare only frame with the same time stamp (practical solution for some frequencies). – Rotem Sep 21 '16 at 16:36

1 Answers1

1

According to FFmpeg's psnr filter documentation:

The filter stores the accumulated MSE (mean squared error) of each frame, and at the end of the processing it is averaged across all frames equally, and the following formula is applied to obtain the PSNR:

PSNR = 10*log10(MAX^2/MSE)

Where MAX is the average of the maximum values of each component of the image.

This can be one solution.

  • I’m going to leave this link to my blog here: https://www.crisluengo.net/archives/490/ — In short: PSNR is misleading, and has no advantages over MSE. why not just report MSE? – Cris Luengo Nov 10 '22 at 15:24