mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-16 22:09:57 +02:00
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:
@ -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_;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user