39 #define BufferLen                       (BufferSize/WordWidth)      40 #define CodeBufferLen           BufferSize                                  57 #pragma warning( suppress : 4351 )
    82                 UINT32 
ComposeBitplane(UINT32 bufferSize, 
DataT planeMask, UINT32* sigBits, UINT32* refBits, UINT32* signBits);
    84                 UINT32 
ComposeBitplaneRLD(UINT32 bufferSize, 
DataT planeMask, UINT32* sigBits, UINT32* refBits, UINT32 signPos);
   104                      PGFPostHeader& postHeader, UINT32*& levelLength, UINT64& userDataPos, 
   105                          bool useOMP, UINT32 userDataPolicy); 
   122         void Partition(
CSubband* band, 
int quantParam, 
int width, 
int height, 
int startPos, 
int pitch);
   149         void Skip(UINT64 offset);
   181 #ifdef __PGFROISUPPORT__   182         void SkipTileBuffer();
   190         void SetROI()                                   { m_roi = 
true; }
   211 #ifdef __PGFROISUPPORT__   216 #endif //PGF_DECODER_H 
UINT32 ComposeBitplane(UINT32 bufferSize, DataT planeMask, UINT32 *sigBits, UINT32 *refBits, UINT32 *signBits)
CMacroBlock ** m_macroBlocks
array of macroblocks
Abstract stream base class.
void SetBitAtPos(UINT32 pos, DataT planeMask)
UINT32 m_valuePos
current position in m_value
void DecodeInterleaved(CWaveletTransform *wtChannel, int level, int quantParam)
#define BufferSize
must be a multiple of WordWidth, BufferSize <= UINT16_MAX
virtual void SetPos(short posMode, INT64 posOff)=0
void SetStreamPosToData()
Resets stream position to beginning of data block.
UINT32 GetEncodedHeaderLength() const
PGF wavelet subband class.
UINT32 m_encodedHeaderLength
stream offset from startPos to the beginning of the data part (highest level)
int m_macroBlockLen
array length
void Partition(CSubband *band, int quantParam, int width, int height, int startPos, int pitch)
DataT m_value[BufferSize]
output buffer of values with index m_valuePos
void SetSign(UINT32 pos, bool sign)
int m_currentBlockIndex
index of current macro block
CMacroBlock * m_currentBlock
current macro block (used by main thread)
bool IsCompletelyRead() const
A macro block is a decoding unit of fixed size (uncoded)
CPGFStream * m_stream
input PGF stream
int m_macroBlocksAvailable
number of decoded macro blocks (including currently used macro block)
UINT64 m_startPos
stream position at the beginning of the PGF pre-header
UINT32 ReadEncodedData(UINT8 *target, UINT32 len) const
void ReadMacroBlock(CMacroBlock *block)
throws IOException
CDecoder(CPGFStream *stream, PGFPreHeader &preHeader, PGFHeader &header, PGFPostHeader &postHeader, UINT32 *&levelLength, UINT64 &userDataPos, bool useOMP, UINT32 userDataPolicy)
UINT32 ComposeBitplaneRLD(UINT32 bufferSize, DataT planeMask, UINT32 sigPos, UINT32 *refBits)
CMacroBlock()
Constructor: Initializes new macro block.
void DequantizeValue(CSubband *band, UINT32 bandPos, int quantParam)
void SetStreamPosToStart()
Resets stream position to beginning of PGF pre-header.
UINT64 m_streamSizeEstimation
estimation of stream size
ROIBlockHeader m_header
block header
#define CodeBufferLen
number of words in code buffer (CodeBufferLen > BufferLen)
bool m_sigFlagVector[BufferSize+1]
UINT32 m_codeBuffer[CodeBufferLen]
input buffer for encoded bitstream