opusenc: implement a psychoacoustic system
authorRostislav Pehlivanov <atomnuker@gmail.com>
Fri, 22 Sep 2017 23:38:37 +0000 (00:38 +0100)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Sat, 23 Sep 2017 07:27:44 +0000 (08:27 +0100)
commit2ad1768c7b48b6c77bbe9c42a4c2744f7b029182
treecf97ad8da31d2e5695b4135f88ae92b90fe2f053
parent1ef7752d64cbe9af2f27cc65aba3a2ca3831c128
opusenc: implement a psychoacoustic system

This commit implements a psychoacoustic system for the native Opus
encoder. Its unlike any other psychoacoustic system known since its
capable of using a lookahead to make better choices on how to treat the
current frame and how many bits to allocate for it (and future frames).

Also, whilst the main bulk of the analysis function has to run in a
single thread, the per-frame anaylsis functions does not modify the main
psychoacoustic context, so in the future it will be fairly trivial to
run those as slice threads.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/Makefile
libavcodec/opus_celt.h
libavcodec/opusenc.c
libavcodec/opusenc.h [new file with mode: 0644]
libavcodec/opusenc_psy.c [new file with mode: 0644]
libavcodec/opusenc_psy.h [new file with mode: 0644]
libavcodec/opusenc_utils.h [new file with mode: 0644]