• Rostislav Pehlivanov's avatar
    vc2enc_dwt: use 32 bit coefficients by default · b6c207f5
    Rostislav Pehlivanov authored
    The problem is that with particularly complex images and especially at
    high bit depths and 5-level transforms the coefficients would overflow,
    causing huge artifacts to appear. This was discovered thanks to the fate
    tests, which will have to be redone as this fixes a multitude of
    problems and increases PSNR.
    
    There is a slight performance drop associated with this change, making
    the encoder slower by 1.15 times, however this is necessary in order to
    avoid undefined behavior and overflows.
    
    It would be worth to template the transforms to keep the performance for
    8 bit images as 32 bit coefficients are unnecessary for that case, but
    the primary use of the encoder is to encode video at 10 bits.
    Reviewed-by: 's avatarChristophe Gisquet <christophe.gisquet@gmail.com>
    Reviewed-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
    b6c207f5
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_qsv.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...