[FFmpeg-devel] [PATCH] mdec: use correctly permutated quant matrix for dequantization.

Ronald S. Bultje rsbultje at gmail.com
Wed Jun 21 03:18:20 EEST 2017


Hi,

On Tue, Jun 20, 2017 at 5:22 PM, Michael Niedermayer <michael at niedermayer.cc
> wrote:

> On Tue, Jun 20, 2017 at 08:47:33AM -0400, Ronald S. Bultje wrote:
> > This allows using non-simple (e.g. simplemmx) IDCT implementations.
> > The result is not bitexact (which is why the fate test continues to
> > use -idct simple), but the PSNR between C/MMX goes from ~35 to ~90.
> > ---
> >  libavcodec/mdec.c | 14 ++++++++++----
> >  1 file changed, 10 insertions(+), 4 deletions(-)
> >
> [...]
>
> > @@ -212,9 +213,7 @@ static int decode_frame(AVCodecContext *avctx,
> >  static av_cold int decode_init(AVCodecContext *avctx)
> >  {
> >      MDECContext * const a = avctx->priv_data;
> > -
> > -    if (avctx->idct_algo == FF_IDCT_AUTO)
> > -        avctx->idct_algo = FF_IDCT_SIMPLE;
>
> iam not sure this should be in this patch


Can you be more precise? Would you like this in a separate patch? Or do you
think it's wrong?

I believe this code was there because the PSNR between FF_IDCT_SIMPLE and
SIMPLEMMX was 35, which is pretty terrible. This was probably because of
the bug in the dequant permutation that's fixed in this patch. After this
patch, the PSNR between the two is 90, which is pretty decent and good
enough for me to enable it by default (although not in fate).

Ronald


More information about the ffmpeg-devel mailing list