/* Structure Definitions */
enum FmodeDef { INPUT, OUTPUT };
typedef enum FmodeDef Fmode;
struct ByteStreamDef
{
Fmode mode;
short stat;
FILE *file;
};
typedef struct ByteStreamDef ByteStream;
extern void cByteStream( ByteStream *, char *FileName, Fmode FileMode );
extern void dByteStream(ByteStream *);
extern short ByteStream_read(ByteStream *);
extern short ByteStream_write(ByteStream *, short c);
extern short ByteStream_status(ByteStream *);
#define MEMORY 1
#define DISK 0
#ifdef __TURBOC__
#define CHARH unsigned char huge
#else
#define CHARH unsigned char
#endif
struct BitStreamDef
{
ByteStream bytestream;
short BitBuffer; /* Bit I/O buffer */
short BitBuffMask; /* Bit I/O buffer mask */
CHARH *outstring;
char mode;
unsigned long bytesout;
unsigned short bitmask[17];
};
typedef struct BitStreamDef BitStream;
extern void cBitStream( BitStream *, char *fn, Fmode fm );
extern void dBitStream(BitStream *);
extern short BitStream_write(BitStream *, short bits, short width);
extern short BitStream_read(BitStream *, short bits);
/* Global Tables */
extern float qtable[64];
extern int zzseq[64];
extern short dcbits[16], acbits[16];
extern char dchuffval[12], achuffval[162];
/* Function Declarations */
extern void inithuffcode();
extern void encode(short *, BitStream *);
extern void decode(short *, BitStream *);
extern void decomp(BitStream *bs,CHARH *Image,long rows,long cols);
http://clementine.cnes.fr/software/pcdos/source/jpeg_c.h
(possibly inaccurate URL)
07/1998