X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=dehuff.h;h=92c2affb5a810eab89c214ce031482961b55a799;hb=8326dff1cbad02c5d660696648e15a0f575c9afd;hp=ec9c9762c8a8bf12cfef5c44bdc7be58d5e836dc;hpb=1cfb04470add4e31406785980e7ce14a8e9d0672;p=fjl diff --git a/dehuff.h b/dehuff.h index ec9c976..92c2aff 100644 --- a/dehuff.h +++ b/dehuff.h @@ -15,13 +15,12 @@ static const int DEHUF_SLOW_PATH = -1; // About 98% of all AC coefficients (control byte + coefficient) are <= 10 bits -// long; again, see codelen.txt. This will cost us about 12 kB of data to store +// long; again, see codelen.txt. This will cost us about 6 kB of data to store // in L1 cache. #define DEHUF_AC_TABLE_BITS 10 #define DEHUF_AC_TABLE_SIZE (1 << DEHUF_AC_TABLE_BITS) static const int AC_DEHUF_SLOW_PATH = 0xf0000000; static const int AC_END_OF_BLOCK = 0xf0000001; -static const int AC_SIXTEEN_ZEROS = 0xf0000002; struct huffman_table { unsigned num_codes[17]; // BITS @@ -49,8 +48,8 @@ struct huffman_table { // number of bits to skip (_length) and the number of zero coefficients // after this one (_skip). int ac_table_codes[DEHUF_AC_TABLE_SIZE]; - int ac_table_length[DEHUF_AC_TABLE_SIZE]; - int ac_table_skip[DEHUF_AC_TABLE_SIZE]; + uint8_t ac_table_length[DEHUF_AC_TABLE_SIZE]; + uint8_t ac_table_skip[DEHUF_AC_TABLE_SIZE]; }; enum coefficient_class {