Speedup for decoding lossless WebP photographs:

use bit_pos instead num_bit to update the bit-reader
37.69 MB/s -> 39.79 MB/s, 5.6 %

Change-Id: Ica476cc3e2fc2db084d6961bea8586b050bb221d
This commit is contained in:
skal
2013-06-18 17:26:52 +02:00
parent 24ee098a00
commit 313d853fa9
4 changed files with 13 additions and 12 deletions

View File

@ -156,15 +156,15 @@ static WEBP_INLINE int PlaneCodeToDistance(int xsize, int plane_code) {
static WEBP_INLINE int ReadSymbol(const HuffmanTree* tree,
VP8LBitReader* const br) {
const HuffmanTreeNode* node = tree->root_;
int num_bits = 0;
uint32_t bits = VP8LPrefetchBits(br);
int bitpos = br->bit_pos_;
assert(node != NULL);
while (!HuffmanTreeNodeIsLeaf(node)) {
while (HuffmanTreeNodeIsNotLeaf(node)) {
node = HuffmanTreeNextNode(node, bits & 1);
bits >>= 1;
++num_bits;
++bitpos;
}
VP8LDiscardBits(br, num_bits);
VP8LSetBitPos(br, bitpos);
return node->symbol_;
}