mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-02-07 12:05:14 +01:00
Optmization
This commit is contained in:
parent
3deae0c57b
commit
ca5b7d72c4
@ -41,10 +41,10 @@ bool HuffmanStream<BitStream>::read(int bits, quint32 &val)
|
|||||||
|
|
||||||
_symbolData = (_symbolData << nextSize) | next;
|
_symbolData = (_symbolData << nextSize) | next;
|
||||||
_symbolDataSize += nextSize;
|
_symbolDataSize += nextSize;
|
||||||
}
|
|
||||||
|
|
||||||
if (_symbolDataSize < (quint32)bits)
|
if (_symbolDataSize < (quint32)bits)
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
val = (_symbolData << (32-_symbolDataSize)) >> (32 - bits);
|
val = (_symbolData << (32-_symbolDataSize)) >> (32 - bits);
|
||||||
_symbolDataSize -= bits;
|
_symbolDataSize -= bits;
|
||||||
@ -56,14 +56,18 @@ template <class BitStream>
|
|||||||
bool HuffmanStream<BitStream>::readSymbol(quint32 &symbol)
|
bool HuffmanStream<BitStream>::readSymbol(quint32 &symbol)
|
||||||
{
|
{
|
||||||
quint8 size;
|
quint8 size;
|
||||||
quint32 next;
|
|
||||||
quint8 nextSize = qMin((quint64)(32 - _symbolDataSize), _bs.bitsAvailable());
|
|
||||||
|
|
||||||
if (!_bs.read(nextSize, next))
|
if (_symbolDataSize < _table.symBits()) {
|
||||||
return false;
|
quint32 next;
|
||||||
|
quint8 nextSize = qMin((quint64)(32 - _symbolDataSize),
|
||||||
|
_bs.bitsAvailable());
|
||||||
|
|
||||||
_symbolData = (_symbolData << nextSize) | next;
|
if (!_bs.read(nextSize, next))
|
||||||
_symbolDataSize += nextSize;
|
return false;
|
||||||
|
|
||||||
|
_symbolData = (_symbolData << nextSize) | next;
|
||||||
|
_symbolDataSize += nextSize;
|
||||||
|
}
|
||||||
|
|
||||||
symbol = _table.symbol(_symbolData << (32 - _symbolDataSize), size);
|
symbol = _table.symbol(_symbolData << (32 - _symbolDataSize), size);
|
||||||
if (size > _symbolDataSize)
|
if (size > _symbolDataSize)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user