_JPEGDECODER Structure

Microchip Graphics Library

Microchip Graphics Library
_JPEGDECODER Structure
C
struct _JPEGDECODER {
  IMG_FILE * pImageFile;
  BYTE blJFIF;
  BYTE bMajorRev;
  BYTE bMinorRev;
  BYTE bDataBits;
  WORD wWidth;
  WORD wHeight;
  BYTE bChannels;
  BYTE abChannelType[MAX_CHANNELS];
  BYTE abChannelHSampFactor[MAX_CHANNELS];
  BYTE abChannelVSampFactor[MAX_CHANNELS];
  BYTE abChannelQuantTableMap[MAX_CHANNELS];
  BYTE blQuantUses16bits;
  WORD awQuantTable[MAX_CHANNELS][64];
  WORD wRestartInterval;
  BYTE bHuffTables;
  BYTE abHuffAcSymLen[MAX_HUFF_TABLES][16];
  BYTE abHuffAcSymbol[MAX_HUFF_TABLES][256];
  BYTE abHuffDcSymLen[MAX_HUFF_TABLES][16];
  BYTE abHuffDcSymbol[MAX_HUFF_TABLES][16];
  WORD awHuffAcSymStart[MAX_HUFF_TABLES][16];
  WORD awHuffDcSymStart[MAX_HUFF_TABLES][16];
  BYTE abChannelHuffAcTableMap[MAX_CHANNELS];
  BYTE abChannelHuffDcTableMap[MAX_CHANNELS];
  BYTE bError;
  WORD wWorkBits;
  BYTE bBitsAvailable;
  BYTE bBlocksInOnePass;
  SHORT asOneBlock[MAX_BLOCKS][64];
  WORD wBlockNumber;
  BYTE abChannelMap[MAX_BLOCKS];
  BYTE bSubSampleType;
  SHORT asPrevDcValue[MAX_CHANNELS];
  BYTE * pbCurrentHuffSymLenTable;
  BYTE * pbCurrentHuffSymbolTable;
  WORD * pwCurrentHuffSymStartTable;
  WORD * pwCurrentQuantTable;
  BYTE abDataBuffer[MAX_DATA_BUF_LEN];
  WORD wBufferLen;
  WORD wBufferIndex;
  BYTE bFirstBit;
  WORD wPrevX;
  WORD wPrevY;
};
Description

DATA STRUCTURES

Members
Members 
Description 
IMG_FILE * pImageFile; 
Image file pointer 
BYTE blJFIF; 
JFIF marker found flag 
BYTE bMajorRev; 
Should be 1 
BYTE bMinorRev; 
Should be 0-2 but is not a show stopper ------- The x/y densities and thumbnail data are ignored  
BYTE bDataBits; 
Data precision, can be 8(, 12 or 16) 
WORD wWidth; 
Width in pixels 
WORD wHeight; 
Height in pixels 
BYTE bChannels; 
Number of channels e.g. YCbCr = 3 
BYTE blQuantUses16bits; 
If flag is set, it is an error as 16 bit is not supported 
WORD awQuantTable[MAX_CHANNELS][64]; 
Supports only 8 & 16 bit resolutions 
WORD wRestartInterval; 
The restart interval in blocks 
BYTE bHuffTables; 
From DHT 
BYTE abHuffAcSymLen[MAX_HUFF_TABLES][16]; 
Supports only 8 bit resolution 
BYTE abHuffAcSymbol[MAX_HUFF_TABLES][256]; 
Maximum possible symbols are 256 
BYTE abHuffDcSymLen[MAX_HUFF_TABLES][16]; 
Supports only 8 bit resolution 
BYTE abHuffDcSymbol[MAX_HUFF_TABLES][16]; 
Maximum possible symbols are 16 for DC :-) 
WORD awHuffAcSymStart[MAX_HUFF_TABLES][16]; 
Starting symbol for each length 
WORD awHuffDcSymStart[MAX_HUFF_TABLES][16]; 
Starting symbol for each length 
BYTE abChannelHuffAcTableMap[MAX_CHANNELS]; 
From SOS 
WORD wWorkBits; 
Work memory 
SHORT asOneBlock[MAX_BLOCKS][64]; 
Temporary storage for a 8x8 block 
Microchip Graphics Library Version 3.06.02 - October 15, 2012
Copyright © 2012 Microchip Technology, Inc.  All rights reserved