[FFmpeg-cvslog] fftools/ffmpeg: stop printing PSNR information in status report
Anton Khirnov
git at videolan.org
Mon Apr 24 18:02:43 EEST 2023
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed Apr 19 21:20:06 2023 +0200| [87b4453ec6df4de78a9ede6abccdfefe7cfeb66a] | committer: Anton Khirnov
fftools/ffmpeg: stop printing PSNR information in status report
When an encoder exports sum-of-squared-differences information in
encoded packets, print_report() will print PSNR information in the
status line. However,
* the code computing PSNR assumes 8bit 420 video and prints incorrect
values otherwise; there are no issues on trac about this
* only a few encoders (namely aom, vpx, mpegvideo, snow) export this
information; other often-used encoders such as libx26[45] do not
export this, even though they could
This suggests that this feature is not useful and it is better to remove
it rather than spend effort on fixing it.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=87b4453ec6df4de78a9ede6abccdfefe7cfeb66a
---
fftools/ffmpeg.c | 30 ------------------------------
1 file changed, 30 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index a7e856e9e2..c73064af9a 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -767,36 +767,6 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
if (is_last_report)
av_bprintf(&buf, "L");
- if (enc && (enc->flags & AV_CODEC_FLAG_PSNR) &&
- (ost->pict_type != AV_PICTURE_TYPE_NONE || is_last_report)) {
- int j;
- double error, error_sum = 0;
- double scale, scale_sum = 0;
- double p;
- char type[3] = { 'Y','U','V' };
- av_bprintf(&buf, "PSNR=");
- for (j = 0; j < 3; j++) {
- if (is_last_report) {
- error = enc->error[j];
- scale = enc->width * enc->height * 255.0 * 255.0 * frame_number;
- } else {
- error = ost->error[j];
- scale = enc->width * enc->height * 255.0 * 255.0;
- }
- if (j)
- scale /= 4;
- error_sum += error;
- scale_sum += scale;
- p = psnr(error / scale);
- av_bprintf(&buf, "%c:%2.2f ", type[j], p);
- av_bprintf(&buf_script, "stream_%d_%d_psnr_%c=%2.2f\n",
- ost->file_index, ost->index, type[j] | 32, p);
- }
- p = psnr(error_sum / scale_sum);
- av_bprintf(&buf, "*:%2.2f ", psnr(error_sum / scale_sum));
- av_bprintf(&buf_script, "stream_%d_%d_psnr_all=%2.2f\n",
- ost->file_index, ost->index, p);
- }
vid = 1;
}
/* compute min output value */
More information about the ffmpeg-cvslog
mailing list