1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
/*
* xa_jpg.h
*
* Copyright (C) 1995-1998,1999 by Mark Podlipec.
* All rights reserved.
*
* This software may be freely used, copied and redistributed without
* fee for non-commerical purposes provided that this copyright
* notice is preserved intact on all copies.
*
* There is no warranty or other guarantee of fitness of this software.
* It is provided solely "as is". The author disclaims all
* responsibility and liability with respect to this software's usage
* or its effect upon hardware or computer systems.
*
*/
#include "xanim.h"
#define MAXJSAMPLE 255
#define CENTERJSAMPLE 128
#define RANGE_MASK (MAXJSAMPLE * 4 + 3) /* 2 bits wider than legal samples */
#define JJ_NUM_HUFF_TBLS 4
#define JJ_NUM_QUANT_TBLS 4
#define HUFF_LOOKAHEAD 8
typedef struct HUFFMAN_STRUCT
{
xaLONG mincode[17];
xaLONG maxcode[18];
xaLONG valptr[17];
xaUSHORT cache[256];
xaUBYTE vals[256];
xaUBYTE bits[17];
} JJ_HUFF_TBL;
typedef struct COMPONENT_STRUCT
{
xaULONG hvsample;
xaULONG ac_htbl_num;
xaULONG dc_htbl_num;
xaULONG qtbl_num;
xaUBYTE id;
xaLONG dc;
} COMPONENT_HDR;
#define DCTSIZE 8
#define DCTSIZE2 64
typedef int ISLOW_MULT_TYPE;
/* JPEG MARKERS */
#define M_SOF0 0xc0
#define M_SOF1 0xc1
#define M_SOF2 0xc2
#define M_SOF3 0xc3
#define M_SOF5 0xc5
#define M_SOF6 0xc6
#define M_SOF7 0xc7
#define M_JPG 0xc8
#define M_SOF9 0xc9
#define M_SOF10 0xca
#define M_SOF11 0xcb
#define M_SOF13 0xcd
#define M_SOF14 0xce
#define M_SOF15 0xcf
#define M_DHT 0xc4
#define M_DAC 0xcc
#define M_RST0 0xd0
#define M_RST1 0xd1
#define M_RST2 0xd2
#define M_RST3 0xd3
#define M_RST4 0xd4
#define M_RST5 0xd5
#define M_RST6 0xd6
#define M_RST7 0xd7
#define M_SOI 0xd8
#define M_EOI 0xd9
#define M_SOS 0xda
#define M_DQT 0xdb
#define M_DNL 0xdc
#define M_DRI 0xdd
#define M_DHP 0xde
#define M_EXP 0xdf
#define M_APP0 0xe0
#define M_APP1 0xe1
#define M_APP2 0xe2
#define M_APP3 0xe3
#define M_APP4 0xe4
#define M_APP5 0xe5
#define M_APP6 0xe6
#define M_APP7 0xe7
#define M_APP8 0xe8
#define M_APP9 0xe9
#define M_APP10 0xea
#define M_APP11 0xeb
#define M_APP12 0xec
#define M_APP13 0xed
#define M_APP14 0xee
#define M_APP15 0xef
#define M_JPG0 0xf0
#define M_JPG13 0xfd
#define M_COM 0xfe
#define M_TEM 0x01
#define M_ERROR 0x100
|