internal int GetHuff(SimpleBitIO bitIO) { int iSymbol = m_pHuffman.m_hufDecTable[bitIO.PeekBit16(Constant.HUFFMAN_DECODE_ROOT_BITS)]; if (iSymbol < 0) { bitIO.GetBit16(Constant.HUFFMAN_DECODE_ROOT_BITS); } else { bitIO.GetBit16((uint)(iSymbol & ((1 << Constant.HUFFMAN_DECODE_ROOT_BITS_LOG) - 1))); } int iSymbolHuff = iSymbol >> Constant.HUFFMAN_DECODE_ROOT_BITS_LOG; if (iSymbolHuff < 0) { iSymbolHuff = iSymbol; while ((iSymbolHuff = m_pHuffman.m_hufDecTable[iSymbolHuff + Constant.SIGN_BIT[2] + bitIO.GetBit16(1)]) < 0) { ; } } return(iSymbolHuff); }
/************************************************************************* * Huffman decoding with short tables *************************************************************************/ internal int GetHuffShort(SimpleBitIO bitIO) { int iSymbol = m_pHuffman.m_hufDecTable[bitIO.PeekBit16(Constant.HUFFMAN_DECODE_ROOT_BITS)]; System.Diagnostics.Debug.Assert(iSymbol >= 0); bitIO.GetBit16((uint)(iSymbol & ((1 << (byte)Constant.HUFFMAN_DECODE_ROOT_BITS_LOG) - 1))); return(iSymbol >> Constant.HUFFMAN_DECODE_ROOT_BITS_LOG); }
/************************************************************************* Huffman decoding with short tables *************************************************************************/ internal int GetHuffShort(SimpleBitIO bitIO) { int iSymbol = m_pHuffman.m_hufDecTable[bitIO.PeekBit16(Constant.HUFFMAN_DECODE_ROOT_BITS)]; Debug.Assert(iSymbol >= 0); bitIO.GetBit16((uint)(iSymbol & ((1 << Constant.HUFFMAN_DECODE_ROOT_BITS_LOG) - 1))); return iSymbol >> Constant.HUFFMAN_DECODE_ROOT_BITS_LOG; }
internal int GetHuff(SimpleBitIO bitIO) { int iSymbol = m_pHuffman.m_hufDecTable[bitIO.PeekBit16(Constant.HUFFMAN_DECODE_ROOT_BITS)]; if (iSymbol < 0) { bitIO.GetBit16(Constant.HUFFMAN_DECODE_ROOT_BITS); } else { bitIO.GetBit16((uint)(iSymbol & ((1 << Constant.HUFFMAN_DECODE_ROOT_BITS_LOG) - 1))); } var iSymbolHuff = iSymbol >> Constant.HUFFMAN_DECODE_ROOT_BITS_LOG; if (iSymbolHuff < 0) { iSymbolHuff = iSymbol; while ((iSymbolHuff = m_pHuffman.m_hufDecTable[iSymbolHuff + Constant.SIGN_BIT[2] + bitIO.GetBit16(1)]) < 0) { } } return iSymbolHuff; }