libpgf
6.12.24
PGF - Progressive Graphics File
|
#include <Decoder.h>
Public Member Functions | |
and levelLength at current stream position *It might throw an IOException *param stream A PGF stream *param preHeader[out] A PGF pre header *param header[out] A PGF header *param postHeader[out] A PGF post header *param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array *param userDataPos The stream position of the user | data (metadata)*@param useOMP If true |
and levelLength at current stream position *It might throw an IOException *param stream A PGF stream *param preHeader[out] A PGF pre header *param header[out] A PGF header *param postHeader[out] A PGF post header *param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array *param userDataPos The stream position of the user then the decoder will use multi threading based on openMP *param skipUserData If then user data is not read In case of available user the file position is still returned in userDataPos * | CDecoder (CPGFStream *stream, PGFPreHeader &preHeader, PGFHeader &header, PGFPostHeader &postHeader, UINT32 *&levelLength, UINT64 &userDataPos, bool useOMP, bool skipUserData) THROW_ |
*Destructor * | ~CDecoder () |
*Deccoding and dequantization of HL and LH subband *(interleaved) using partitioning scheme.*Partitioning scheme Return the length of all encoded headers in bytes *return The length of all encoded headers in bytes *UINT32 | GetEncodedHeaderLength () const |
*Reset stream position to beginning of PGF pre header *void | SetStreamPosToStart () THROW_ |
*Reset stream position to beginning of data block *void | SetStreamPosToData () THROW_ |
*Skip a given number of bytes in the open stream *It might throw an IOException *void | Skip (UINT64 offset) THROW_ |
*Dequantization of a single value at given position in subband *It might throw an IOException *param band A subband *param bandPos A valid position in subband band *param quantParam The quantization parameter *void | DequantizeValue (CSubband *band, UINT32 bandPos, int quantParam) THROW_ |
*Copies data from the open stream to a target buffer *It might throw an IOException *param target The target buffer *param len The number of bytes to read *return The number of bytes copied to the target buffer *UINT32 | ReadEncodedData (UINT8 *target, UINT32 len) const THROW_ |
*Reads stream and decodes tile buffer *It might throw an IOException *void | DecodeBuffer () THROW_ |
*return Stream *CPGFStream * | GetStream () |
*return True if decoded macro blocks are available for processing *bool | MacroBlocksAvailable () const |
Public Attributes | |
* | Constructor: Read pre-header |
header | |
and levelLength at current stream position *It might throw an IOException *param stream A PGF stream *param preHeader[out] A PGF pre header *param header[out] A PGF header *param postHeader[out] A PGF post header *param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array *param userDataPos The stream position of the user then the decoder will use multi threading based on openMP *param skipUserData If | true |
and levelLength at current stream position *It might throw an IOException *param stream A PGF stream *param preHeader[out] A PGF pre header *param header[out] A PGF header *param postHeader[out] A PGF post header *param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array *param userDataPos The stream position of the user then the decoder will use multi threading based on openMP *param skipUserData If then user data is not read In case of available user | data |
*Unpartitions a rectangular region of a given subband *Partitioning | scheme: The plane is partitioned in squares of side length LinBlockSize. * Read wavelet coefficients from the output buffer of a macro block. * It might throw an IOException. * @param band A subband * @param quantParam Dequantization value * @param width The width of the rectangle * @param height The height of the rectangle * @param startPos The relative subband position of the top left corner of the rectangular region * @param pitch The number of bytes in row of the subband */ void Partition(CSubband* band |
*Unpartitions a rectangular region of a given subband *Partitioning int | quantParam |
*Unpartitions a rectangular region of a given subband *Partitioning int int | width |
*Unpartitions a rectangular region of a given subband *Partitioning int int int | height |
*Unpartitions a rectangular region of a given subband *Partitioning int int int int | startPos |
*Unpartitions a rectangular region of a given subband *Partitioning int int int int int pitch | THROW_ |
Private Member Functions | |
*PGF decoder macro block class *author C I Bauersachs *brief A macro block is a decoding unit of fixed | size (uncoded)*/class CMacroBlock |
void | ReadMacroBlock (CMacroBlock *block) THROW_ |
throws IOException | |
Private Attributes | |
*PGF decoder macro block class *author C | Stamm |
CPGFStream * | m_stream |
input PGF stream | |
UINT64 | m_startPos |
stream position at the beginning of the PGF pre-header | |
UINT64 | m_streamSizeEstimation |
estimation of stream size | |
UINT32 | m_encodedHeaderLength |
stream offset from startPos to the beginning of the data part (highest level) | |
CMacroBlock ** | m_macroBlocks |
array of macroblocks | |
int | m_currentBlockIndex |
index of current macro block | |
int | m_macroBlockLen |
array length | |
int | m_macroBlocksAvailable |
number of decoded macro blocks (including currently used macro block) | |
CMacroBlock * | m_currentBlock |
current macro block (used by main thread) | |
and levelLength at current stream position* It might throw an IOException* param stream A PGF stream* param preHeader [out] A PGF pre header* param header [out] A PGF header* param postHeader [out] A PGF post header* param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array* param userDataPos The stream position of the user then the decoder will use multi threading based on openMP* param skipUserData If then user data is not read In case of available user the file position is still returned in userDataPos* CDecoder::CDecoder | ( | CPGFStream * | stream, |
PGFPreHeader & | preHeader, | ||
PGFHeader & | header, | ||
PGFPostHeader & | postHeader, | ||
UINT32 *& | levelLength, | ||
UINT64 & | userDataPos, | ||
bool | useOMP, | ||
bool | skipUserData | ||
) |
CDecoder::~CDecoder | ( | ) |
Definition at line 216 of file Decoder.cpp.
and levelLength at current stream position* It might throw an IOException* param stream A PGF stream* param preHeader [out] A PGF pre header* param header [out] A PGF header* param postHeader [out] A PGF post header* param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array* param userDataPos The stream position of the user CDecoder::data | ( | metadata | ) |
void CDecoder::DecodeBuffer | ( | ) |
Definition at line 479 of file Decoder.cpp.
*Dequantization of a single value at given position in subband *If encoded data is then stores dequantized band value into *buffer m_value at position m_valuePos *Otherwise reads encoded data block and decodes it *It might throw an IOException *param band A subband *param bandPos A valid position in subband band *param quantParam The quantization parameter *void CDecoder::DequantizeValue | ( | CSubband * | band, |
UINT32 | bandPos, | ||
int | quantParam | ||
) |
Definition at line 447 of file Decoder.cpp.
|
inline |
Definition at line 136 of file Decoder.h.
|
inline |
|
inline |
Definition at line 178 of file Decoder.h.
|
private |
throws IOException
Definition at line 519 of file Decoder.cpp.
|
inline |
|
inline |
|
inlineprivate |
< block header
< output buffer of values with index m_valuePos
< input buffer for encoded bitstream
< current position in m_value
Definition at line 50 of file Decoder.h.
*Skip a given number of bytes in the open stream *It might throw an IOException *void CDecoder::Skip | ( | UINT64 | offset | ) |
Definition at line 434 of file Decoder.cpp.
and levelLength at current stream position* It might throw an IOException* param stream A PGF stream* param preHeader [out] A PGF pre header* param header [out] A PGF header* param postHeader [out] A PGF post header* param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array* param userDataPos The stream position of the user then the decoder will use multi threading based on openMP* param skipUserData If then user data is not read In case of available user CDecoder::data |
* Unpartitions a rectangular region of a given subband* Partitioning int int int CDecoder::height |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
* Unpartitions a rectangular region of a given subband* Partitioning int CDecoder::quantParam |
* Unpartitions a rectangular region of a given subband* Partitioning CDecoder::scheme |
|
private |
* Unpartitions a rectangular region of a given subband* Partitioning int int int int CDecoder::startPos |
* Unpartitions a rectangular region of a given subband* Partitioning int int int int int pitch CDecoder::THROW_ |
and levelLength at current stream position* It might throw an IOException* param stream A PGF stream* param preHeader [out] A PGF pre header* param header [out] A PGF header* param postHeader [out] A PGF post header* param levelLength The location of the levelLength array The array is allocated in this method The caller has to delete this array* param userDataPos The stream position of the user then the decoder will use multi threading based on openMP* param skipUserData If CDecoder::true |
* Unpartitions a rectangular region of a given subband* Partitioning int int CDecoder::width |