Quoting Shawn Singh via ffmpeg-devel (2024-10-07 19:22:29) > On Tue, Oct 1, 2024 at 3:41 PM Jing Lu <lu...@google.com> wrote: > > > Hi ffmpeg-devel@, > > > > I recently came across the apnsr filter > > <https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/af_asdr.c#L238>, > > and the formula for PSNR it uses: > > > > 2.0 * log(s->max) - log(s->nb_samples / s->chs[ch].uv) > > > > > > which is different from the formula given by Wikipedia's PSNR > > <https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio>: > > > > 20 * log_10(MAX) - 10 * log_10(MSE) > > > > > > Some differences I noticed: > > - the forms of the formulae are very different > > - natural number (e) as its log base v.s. 10 as the log base. > > - the choice of s->max > > <https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/af_asdr.c#L213> as > > FLT_MAX or DBL_MAX v.s. 1.0 or 2.0 in popular implementations of > > Wikipedia's formula, for floating point sample formats. > > > > These differences yield significantly different ranges of PSNR values: > > 600+ v.s. mostly around 0 - 100 dB. > > > > I'm wondering: > > > > - What's the context of apsnr's formula? > > - If we could change apsnr's implementation to use Wikipedia's formula > > or add a switch to use Wikipedia's formula? > > > > Thanks, > > Jing > > > > > Dear all, does anyone else have opinions about this? Here are some > additional thoughts I have: > > - All definitions of decibels that I am aware of use log base 10, including > textbooks and online course materials. Both Wikipedia and ITU-R V.574-5 > cite two standards in particular, ISO 80000-2 (or the upcoming ISO > 80000-15) and IEC 60027-3 as measurement standards that define decibels > with base 10. (I have not seen the ISO or IEC documents myself) > - The expression (nb_samples / s->chs[ch].uv) is the inverse of MSE. > Therefore, when the error is larger, the final logarithm result will be > lower. This is backwards from the usual interpretation that more error has > a lower signal-to-noise ratio. > > Is there interest in changing the apsnr implementation, if we can provide a > patch?
Fixing the formula sounds reasonable to me. Some tests for this filter would be great as well. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".