]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
bitstream: Micro-optimization.
authorAndre Noll <maan@systemlinux.org>
Sat, 28 Dec 2013 17:01:40 +0000 (17:01 +0000)
committerAndre Noll <maan@systemlinux.org>
Tue, 22 Apr 2014 00:26:33 +0000 (02:26 +0200)
Subtract n_prefix right away, and don't get the next code if n becomes
non-positive. This is equivalent and saves one comparison.

bitstream.c

index ee25fffaf2fed5853a3b4c38d8dddedb4dfb41d8..ce6729917621dda74f7a861906426b7f58e56031 100644 (file)
@@ -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 */