diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-10-25 10:24:31 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-12-08 17:51:44 +0100 |
commit | fefe2cbbf2a50039bc6f212a5d1ab92781662665 (patch) | |
tree | 191900e5ba185b8a48ce79067351d4629fd84cda /libavcodec/bytestream.h | |
parent | 09062eece2e8f188330adab9ddd873341dcf9862 (diff) | |
download | ffmpeg-fefe2cbbf2a50039bc6f212a5d1ab92781662665.tar.gz |
avcodec/smacker: Improve creating Huffman VLC tables
The Smacker Huffman tables are already stored in a tree-like structure;
in particular, they are naturally ordered from left to right in the
tree and are therefore suitable to be initialized by
ff_init_vlc_from_lengths() which avoids traversing the data twice in
order to sort only the codes that are so long that they need into a
subtable.
This improves performance (and reduces codesize): For the sample from
ticket #2425 the number of decicycles for parsing and creating the VLCs
in smka_decode_frame() decreased from 412322 to 359152 (tested with
10 runs each looping 20 times over the file).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/bytestream.h')
0 files changed, 0 insertions, 0 deletions