public static void decompressOneBlock(int[] decompBlock, int[] inBlock,
                int blockSize) {
                int expNum = inBlock[0] & MASK[31 - POSSIBLE_B_BITS];
                int bits = (inBlock[0] >>> (31 - POSSIBLE_B_BITS)) & (0x1f);

                int[] expPosBuffer = new int[blockSize];
                int[] expHighBitsBuffer = new int[blockSize];

                // decompress the b-bit slots
                int offset = HEADER_SIZE;
                int compressedBits = 0;
                if (bits == 0) {
                        Arrays.fill(decompBlock, 0);
                } else {
                        compressedBits = decompressBBitSlots(decompBlock,
                                inBlock, blockSize, bits);
                        // compressedBits =
                        // decompressBBitSlotsWithHardCodes(decompBlock,
                        // inBlock, blockSize, bits);
                }
                offset += compressedBits;

                // decompress exceptions
                if (expNum > 0) {
                        compressedBits = decompressBlockByS16(expPosBuffer,
                                inBlock, offset, expNum);
                        offset += compressedBits;
                        compressedBits = decompressBlockByS16(
                                expHighBitsBuffer, inBlock, offset, expNum);
                        offset += compressedBits;

                        for (int i = 0; i < expNum; i++) {
                                int curExpPos = expPosBuffer[i];
                                int curHighBits = expHighBitsBuffer[i];
                                decompBlock[curExpPos] = (decompBlock[curExpPos] & MASK[bits])
                                        | ((curHighBits & MASK[32 - bits]) << bits);
                        }
                }
        }
public static void decompressOneBlock ( int [ ] decompBlock , int [ ] inBlock , int blockSize ) { int expNum = inBlock [ 0 ] & MASK [ 31 - POSSIBLE_B_BITS ] ; int bits = ( inBlock [ 0 ] > > > ( 31 - POSSIBLE_B_BITS ) ) & ( 0x1f ) ; int [ ] expPosBuffer = new int [ blockSize ] ; int [ ] expHighBitsBuffer = new int [ blockSize ] ; int offset = HEADER_SIZE ; int compressedBits = 0 ; if ( bits == 0 ) { Arrays . fill ( decompBlock , 0 ) ; } else { compressedBits = decompressBBitSlots ( decompBlock , inBlock , blockSize , bits ) ; } offset += compressedBits ; if ( expNum > 0 ) { compressedBits = decompressBlockByS16 ( expPosBuffer , inBlock , offset , expNum ) ; offset += compressedBits ; compressedBits = decompressBlockByS16 ( expHighBitsBuffer , inBlock , offset , expNum ) ; offset += compressedBits ; for ( int i = 0 ; i < expNum ; i ++ ) { int curExpPos = expPosBuffer [ i ] ; int curHighBits = expHighBitsBuffer [ i ] ; decompBlock [ curExpPos ] = ( decompBlock [ curExpPos ] & MASK [ bits ] ) | ( ( curHighBits & MASK [ 32 - bits ] ) << bits ) ; } } }
Decompress one block using PForDelta

@param decompBlock
the block that was decompressed
@param inBlock
the block to be decompressed
@param blockSize
the number of elements in the decompressed block