speedhq: fix decoding artifacts
authorSteinar H. Gunderson <steinar+ffmpeg@gunderson.no>
Sat, 18 Feb 2017 18:41:02 +0000 (19:41 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 20 Feb 2017 23:40:20 +0000 (00:40 +0100)
commite3c14eaa54c87d4d8771bc75cb24b0b537fbcd19
treef48d5222c67eb4c93d736483f311246bf80b72cd
parented69cb83f8931f6124d74ea4b22114512f5db2e3
speedhq: fix decoding artifacts

The quantization table is stored in the natural order, but when we
access it, we use an index that's in zigzag order, causing us to read
the wrong value. This causes artifacts, especially in areas with
horizontal or vertical edges. The artifacts look a lot like the
DCT ringing artifacts you'd expect to see from a low-bitrate file,
but when comparing to NewTek's own decoder, it's obvious they're not
supposed to be there.

Fix by simply storing the scaled quantization table in zigzag order.
Performance is unchanged.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/speedhq.c