[FFmpeg-devel] [PATCH] opus_celt: move quantization and band decoding to opus_pvq.c
James Almer
jamrial at gmail.com
Thu Nov 10 17:23:34 EET 2016
On 11/10/2016 2:01 AM, Rostislav Pehlivanov wrote:
> On 10 November 2016 at 03:13, Rostislav Pehlivanov <atomnuker at gmail.com>
> wrote:
>
>> A huge amount can be reused by the encoder, as the only thing
>> which needs to be done would be to add a 10 line celt_icwrsi,
>> a wrapper around it (celt_alg_quant) and templating the
>> ff_celt_decode_band to replace entropy decoding functions
>> with entropy encoding.
>>
>> There is no performance loss but in fact a performance gain of
>> nearly 6% which is caused by the compiler being able to optimize
>> the decoding more efficiently.
>>
>> This commit also removes a redundant declaration (ff_celt_window2
>> was already defined in opus.h but was not removed with the commit
>> which split the tables away to opustab.h).
>>
>> Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>
>> ---
>> libavcodec/Makefile | 2 +-
>> libavcodec/opus.h | 12 -
>> libavcodec/opus_celt.c | 828 +-----------------------------
>> -------------------
>> libavcodec/opus_celt.h | 103 ++++++
>> libavcodec/opus_pvq.c | 729 +++++++++++++++++++++++++++++++++++++++++++
>> libavcodec/opus_pvq.h | 65 ++++
>> libavcodec/opusdec.c | 1 +
>> 7 files changed, 910 insertions(+), 830 deletions(-)
>> create mode 100644 libavcodec/opus_celt.h
>> create mode 100644 libavcodec/opus_pvq.c
>> create mode 100644 libavcodec/opus_pvq.h
>
>
> Actually, I don't like how the CELT decoder now has an exposed state. I
> think the names the
> CELT decoder uses for/in its contexts are confusing. So I'll remove
> opus_celt.h and instead
> give ff_celt_decode_band a pointer to the remaining bits, the TF change and
> the IS flag
> manually rather than as a context. That way it would be less painful to
> template
> the function for the encoder.
>
> Changed that locally.
That kinda change requires a new patch. Anyone reviewing this may not
get the correct idea of what you locally changed and intend to push
otherwise.
More information about the ffmpeg-devel
mailing list