From: Andre Noll Date: Sat, 28 Dec 2013 17:01:40 +0000 (+0000) Subject: bitstream: Micro-optimization. X-Git-Tag: v0.5.3~17^2~4 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=c526802d17412d051ffc0da4faa58255ea2982b1;p=paraslash.git bitstream: Micro-optimization. Subtract n_prefix right away, and don't get the next code if n becomes non-positive. This is equivalent and saves one comparison. --- diff --git a/bitstream.c b/bitstream.c index ee25fffa..ce672991 100644 --- a/bitstream.c +++ b/bitstream.c @@ -75,14 +75,14 @@ static int build_table(struct vlc *vlc, int table_nb_bits, int nb_codes, /* map codes and compute auxiliary table sizes */ for (i = 0; i < nb_codes; i++) { GET_DATA(n, bits, i, 1); - GET_DATA(code, codes, i, codes_size); /* we accept tables with holes */ + n -= n_prefix; if (n <= 0) continue; + GET_DATA(code, codes, i, codes_size); /* if code matches the prefix, it is in the table */ - n -= n_prefix; code_prefix2 = code >> n; - if (n <= 0 || code_prefix2 != code_prefix) + if (code_prefix2 != code_prefix) continue; if (n <= table_nb_bits) { /* no need to add another table */