Decodes already read input data into this macro block. Several macro blocks can be decoded in parallel. Call CDecoder::ReadMacroBlock before this method.
654 for (UINT32 k=0; k < bufferSize; k++) {
672 DataT planeMask = 1 << (nPlanes - 1);
674 for (
int plane = nPlanes - 1; plane >= 0; plane--) {
bool GetBit(UINT32 *stream, UINT32 pos)
UINT32 ComposeBitplane(UINT32 bufferSize, DataT planeMask, UINT32 *sigBits, UINT32 *refBits, UINT32 *signBits)
#define MaxCodeLen
max length of RL encoded block
UINT32 AlignWordPos(UINT32 pos)
UINT32 m_valuePos
current position in m_value
#define BufferSize
must be a multiple of WordWidth, BufferSize <= UINT16_MAX
#define RLblockSizeLen
block size length (< 16): ld(BufferSize) < RLblockSizeLen <= 2*ld(BufferSize)
DataT m_value[BufferSize]
output buffer of values with index m_valuePos
#define MaxBitPlanesLog
number of bits to code the maximum number of bit planes (in 32 or 16 bit mode)
UINT32 GetValueBlock(UINT32 *stream, UINT32 pos, UINT32 k)
#define MaxBitPlanes
maximum number of bit planes of m_value: 32 minus sign bit
UINT32 ComposeBitplaneRLD(UINT32 bufferSize, DataT planeMask, UINT32 sigPos, UINT32 *refBits)
ROIBlockHeader m_header
block header
#define CodeBufferBitLen
max number of bits in m_codeBuffer
bool m_sigFlagVector[BufferSize+1]
UINT32 m_codeBuffer[CodeBufferLen]
input buffer for encoded bitstream