[FFmpeg-devel] [PATCH 0/9] simple_idct for 10/12 bits and DNxHD

Christophe Gisquet christophe.gisquet at gmail.com
Thu Oct 8 08:22:47 CEST 2015


The patch series allowed to find issues on the encoder side with the
use of scans.

To introduce those idcts, the prores one is kind of 'templated', so as
to reuse the code for regular simple_idct. Unfortunately, the 12bits
version can't be bitexact to the C version because the later uses too
precise coefficients.

While this passes the newly added DNxHD fate tests, dct-test is updated
to support 10 (then 12bits) dct tests. As only the _put version is
implemented, the dct-test tests are contrived to evaluate this function,
in the fashion prores idct is tested.

Finally, the dnxhd decoder is updated to use these idcts by setting its
default to auto: as an intra-only codec, and seeing the stddev/maxdiff,
it seems ok to use the faster ones available.

Christophe Gisquet (9):
  dnxhdenc: fix scan used for bitstream generation
  x86: prores: templatize 10 bits simple_idct
  x86: simple_idct_put: 10bits versions
  x86: simple_idct_put: 12bits versions
  dct-test: add infrastructure for 10 bits
  x86: dct-test: add 10 bits versions.
  dct-test: allow comparing x86 simple idcts
  dct-test: add 12 bit tests
  dnxhddec: use auto as default idct

 libavcodec/arm/dct-test.c                 |  10 +-
 libavcodec/dct-test.c                     |  74 ++++++-
 libavcodec/dnxhddec.c                     |   6 +
 libavcodec/dnxhdenc.c                     |  12 +-
 libavcodec/ppc/dct-test.c                 |  10 +-
 libavcodec/x86/Makefile                   |   1 +
 libavcodec/x86/constants.c                |  28 +++
 libavcodec/x86/constants.h                |  16 ++
 libavcodec/x86/dct-test.c                 |  58 +++++-
 libavcodec/x86/idctdsp_init.c             |  31 +++
 libavcodec/x86/proresdsp.asm              | 263 +------------------------
 libavcodec/x86/simple_idct.h              |   6 +
 libavcodec/x86/simple_idct10.asm          |  65 +++++++
 libavcodec/x86/simple_idct10_template.asm | 311 ++++++++++++++++++++++++++++++
 14 files changed, 614 insertions(+), 277 deletions(-)
 create mode 100644 libavcodec/x86/simple_idct10.asm
 create mode 100644 libavcodec/x86/simple_idct10_template.asm

-- 
2.6.0



More information about the ffmpeg-devel mailing list