[FFmpeg-cvslog] mdec: stop preferring the simple IDCT.

Ronald S. Bultje git at videolan.org
Wed Jun 21 16:01:49 EEST 2017


ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Wed Jun 21 09:01:20 2017 -0400| [e639d09199dd7818a24786fb6e8ddd048ede4372] | committer: Ronald S. Bultje

mdec: stop preferring the simple IDCT.

This was added in e3e3c82555e2382125195c1ba9f34b5a43299abc, probably
as a workaround for the fact that the quant table was not permutated
and the IDCT coefficients are, meaning that you'd only get correct
reconstruction if the IDCT permutation was an identity matrix, which
happens to be the case when you use the simple IDCT. The quant table
permutation bug was fixed in 42dd1434bf6a7230e4175c08fcfabc3ba51a0463,
meaning this workaround is no longer necessary.

In practical terms, before 42dd1434bf6a7230e4175c08fcfabc3ba51a0463,
the PSNR between decodes of the fate-mdec using simple (C) or simplemmx
IDCTs was 35. After 42dd1434bf6a7230e4175c08fcfabc3ba51a0463, it's 90.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e639d09199dd7818a24786fb6e8ddd048ede4372
---

 libavcodec/mdec.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c
index fabc19fd9a..59658b331d 100644
--- a/libavcodec/mdec.c
+++ b/libavcodec/mdec.c
@@ -215,9 +215,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
     MDECContext * const a = avctx->priv_data;
     int i;
 
-    if (avctx->idct_algo == FF_IDCT_AUTO)
-        avctx->idct_algo = FF_IDCT_SIMPLE;
-
     a->mb_width  = (avctx->coded_width  + 15) / 16;
     a->mb_height = (avctx->coded_height + 15) / 16;
 



More information about the ffmpeg-cvslog mailing list