diff options
author | Bastien Bouclet | 2019-04-08 19:24:00 +0200 |
---|---|---|
committer | Filippos Karapetis | 2019-04-13 16:24:25 +0300 |
commit | 0f57aea2df2a1272b57de896e2f6aad80809e5d3 (patch) | |
tree | 3d39b80c59af9cfaab7663e24c5c8d21e3293101 /video/bink_decoder.h | |
parent | ae9eeb731f435d16f2bb9ae69d48ce60c3a47fa3 (diff) | |
download | scummvm-rg350-0f57aea2df2a1272b57de896e2f6aad80809e5d3.tar.gz scummvm-rg350-0f57aea2df2a1272b57de896e2f6aad80809e5d3.tar.bz2 scummvm-rg350-0f57aea2df2a1272b57de896e2f6aad80809e5d3.zip |
COMMON: Use a prefix table to speed up the Huffman decoder
Symbols for codes shorter than the prefix table index width are stored
in the table. All the entries in the table with an index starting with
the code are set to the symbol value. That way, when decoding it is
possible to get the number of bits corresponding to the table width from
the bitstream and directly find the symbol value. Longer code still need
to be searched for in the codes list.
Diffstat (limited to 'video/bink_decoder.h')
-rw-r--r-- | video/bink_decoder.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/video/bink_decoder.h b/video/bink_decoder.h index 29d16020b1..11694314b7 100644 --- a/video/bink_decoder.h +++ b/video/bink_decoder.h @@ -46,6 +46,7 @@ class QueuingAudioStream; namespace Common { class SeekableReadStream; +template <class BITSTREAM> class Huffman; class RDFT; @@ -247,7 +248,7 @@ private: Bundle _bundles[kSourceMAX]; ///< Bundles for decoding all data types. - Common::Huffman *_huffman[16]; ///< The 16 Huffman codebooks used in Bink decoding. + Common::Huffman<Common::BitStream32LELSB> *_huffman[16]; ///< The 16 Huffman codebooks used in Bink decoding. /** Huffman codebooks to use for decoding high nibbles in color data types. */ Huffman _colHighHuffman[16]; |