15 #ifndef ossimJpegDefaultTable_HEADER 16 #define ossimJpegDefaultTable_HEADER 18 static const int AC_BITS[16] =
20 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125
23 static const int DC_BITS[16] =
25 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0
28 static const int AC_HUFFVAL[256] =
30 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
31 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
32 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08,
33 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0,
34 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16,
35 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28,
36 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
37 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
38 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
39 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
40 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
41 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
42 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
43 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
44 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
45 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5,
46 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,
47 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2,
48 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA,
49 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
50 0xF9, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
64 static const int DC_HUFFVAL[256] =
66 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
67 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0x00, 0x00,
68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
72 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
73 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
76 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
77 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
79 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
87 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
88 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
89 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
91 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
92 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
93 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
94 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
95 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
97 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
100 const static int Q1table[64] =
102 8, 72, 72, 72, 72, 72, 72, 72,
103 72, 72, 78, 74, 76, 74, 78, 89,
104 81, 84, 84, 81, 89, 106, 93, 94,
105 99, 94, 93, 106, 129, 111, 108, 116,
106 116, 108, 111, 129, 135, 128, 136, 145,
107 136, 128, 135, 155, 160, 177, 177, 160,
108 155, 193, 213, 228, 213, 193, 255, 255,
109 255, 255, 255, 255, 255, 255, 255, 255
112 const static int Q2table[64] =
114 8, 36, 36, 36, 36, 36, 36, 36,
115 36, 36, 39, 37, 38, 37, 39, 45,
116 41, 42, 42, 41, 45, 53, 47, 47,
117 50, 47, 47, 53, 65, 56, 54, 59,
118 59, 54, 56, 65, 68, 64, 69, 73,
119 69, 64, 68, 78, 81, 89, 89, 81,
120 78, 98, 108, 115, 108, 98, 130, 144,
121 144, 130, 178, 190, 178, 243, 243, 255
124 const static int Q3table[64] =
126 8, 10, 10, 10, 10, 10, 10, 10,
127 10, 10, 11, 10, 11, 10, 11, 13,
128 11, 12, 12, 11, 13, 15, 13, 13,
129 14, 13, 13, 15, 18, 16, 15, 16,
130 16, 15, 16, 18, 19, 18, 19, 21,
131 19, 18, 19, 22, 23, 25, 25, 23,
132 22, 27, 30, 32, 30, 27, 36, 40,
133 40, 36, 50, 53, 50, 68, 68, 91
136 const static int Q4table[64] =
138 8, 7, 7, 7, 7, 7, 7, 7,
139 7, 7, 8, 7, 8, 7, 8, 9,
140 8, 8, 8, 8, 9, 11, 9, 9,
141 10, 9, 9, 11, 13, 11, 11, 12,
142 12, 11, 11, 13, 14, 13, 14, 15,
143 14, 13, 14, 16, 16, 18, 18, 16,
144 16, 20, 22, 23, 22, 20, 26, 29,
145 29, 26, 36, 38, 36, 49, 49, 65
148 const static int Q5table[64] =
150 4, 4, 4, 4, 4, 4, 4, 4,
151 4, 4, 4, 4, 4, 4, 4, 5,
152 5, 5, 5, 5, 5, 6, 5, 5,
153 6, 5, 5, 6, 7, 6, 6, 6,
154 6, 6, 6, 7, 8, 7, 8, 8,
155 8, 7, 8, 9, 9, 10, 10, 9,
156 9, 11, 12, 13, 12, 11, 14, 16,
157 16, 14, 20, 21, 20, 27, 27, 36
160 const static int* QTABLE_ARRAY[5]={Q1table,Q2table,Q3table,Q4table,Q5table};