예제 #1
0
        private static void FSE_updateState(FSE_DState_t *DStatePtr, BIT_DStream_t *bitD)
        {
            FSE_decode_t DInfo   = ((FSE_decode_t *)(DStatePtr->table))[DStatePtr->state];
            uint         nbBits  = DInfo.nbBits;
            nuint        lowBits = BIT_readBits(bitD, nbBits);

            DStatePtr->state = DInfo.newState + lowBits;
        }
예제 #2
0
        private static byte FSE_decodeSymbolFast(FSE_DState_t *DStatePtr, BIT_DStream_t *bitD)
        {
            FSE_decode_t DInfo   = ((FSE_decode_t *)(DStatePtr->table))[DStatePtr->state];
            uint         nbBits  = DInfo.nbBits;
            byte         symbol  = DInfo.symbol;
            nuint        lowBits = BIT_readBitsFast(bitD, nbBits);

            DStatePtr->state = DInfo.newState + lowBits;
            return(symbol);
        }
예제 #3
0
        private static byte FSE_peekSymbol(FSE_DState_t *DStatePtr)
        {
            FSE_decode_t DInfo = ((FSE_decode_t *)(DStatePtr->table))[DStatePtr->state];

            return(DInfo.symbol);
        }