ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4RTJpegCoderTables.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4RTJpegCoderTables.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 
29 // class description:
30 //
31 // This header file defines some hard coded numbers used by G4RTJpegCoder
32 // to convert 8 bits RGB to JPEG.
33 //
34 
35 #ifndef G4RTJpegCoderTable_H
36 #define G4RTJpegCoderTable_H 1
37 
38 #include "G4RTJpeg.hh"
39 
40 //QuantumTable
41 
42 static const int YQuantumT[] = {
43 
44  1, 1, 1, 1, 1, 1, 1, 1,
45  1, 1, 1, 1, 1, 1, 1, 1,
46  1, 1, 1, 1, 1, 1, 1, 1,
47  1, 1, 1, 1, 1, 1, 1, 1,
48  1, 1, 1, 1, 1, 1, 1, 1,
49  1, 1, 1, 1, 1, 1, 1, 1,
50  1, 1, 1, 1, 1, 1, 1, 1,
51  1, 1, 1, 1, 1, 1, 1, 1,
52 };
53 
54 static const int CQuantumT[] = {
55 
56  1, 1, 1, 1, 1, 1, 1, 1,
57  1, 1, 1, 1, 1, 1, 1, 1,
58  1, 1, 1, 1, 1, 1, 1, 1,
59  1, 1, 1, 1, 1, 1, 1, 1,
60  1, 1, 1, 1, 1, 1, 1, 1,
61  1, 1, 1, 1, 1, 1, 1, 1,
62  1, 1, 1, 1, 1, 1, 1, 1,
63  1, 1, 1, 1, 1, 1, 1, 1,
64 };
65 
66 //HuffmanCode
67 
68 static const int YDcSizeT[] = {
69  0x0002, 0x0003, 0x0003, 0x0003,
70  0x0003, 0x0003, 0x0004, 0x0005,
71  0x0006, 0x0007, 0x0008, 0x0009 };
72 static const int YDcCodeT[] = {
73  0x0000, 0x0002, 0x0003, 0x0004,
74  0x0005, 0x0006, 0x000e, 0x001e,
75  0x003e, 0x007e, 0x00fe, 0x01fe };
77  12,
78  (int*)YDcSizeT,
79  (int*)YDcCodeT
80 };
81 
82 
83 static const int CDcSizeT[] = {
84  0x0002, 0x0002, 0x0002, 0x0003,
85  0x0004, 0x0005, 0x0006, 0x0007,
86  0x0008, 0x0009, 0x000a, 0x000b };
87 static const int CDcCodeT[] = {
88  0x0000, 0x0001, 0x0002, 0x0006,
89  0x000e, 0x001e, 0x003e, 0x007e,
90  0x00fe, 0x01fe, 0x03fe, 0x07fe };
92  12,
93  (int*)CDcSizeT,
94  (int*)CDcCodeT
95 };
96 
97 
98 static const int YAcSizeT[] = {
99  4, 2, 2, 3, 4, 5, 7, 8,
100  10, 16, 16, 4, 5, 7, 9, 11,
101  16, 16, 16, 16, 16, 5, 8, 10,
102  12, 16, 16, 16, 16, 16, 16, 6,
103  9, 12, 16, 16, 16, 16, 16, 16,
104  16, 6, 10, 16, 16, 16, 16, 16,
105  16, 16, 16, 7, 11, 16, 16, 16,
106  16, 16, 16, 16, 16, 7, 12, 16,
107  16, 16, 16, 16, 16, 16, 16, 8,
108  12, 16, 16, 16, 16, 16, 16, 16,
109  16, 9, 15, 16, 16, 16, 16, 16,
110  16, 16, 16, 9, 16, 16, 16, 16,
111  16, 16, 16, 16, 16, 9, 16, 16,
112  16, 16, 16, 16, 16, 16, 16, 10,
113  16, 16, 16, 16, 16, 16, 16, 16,
114  16, 10, 16, 16, 16, 16, 16, 16,
115  16, 16, 16, 11, 16, 16, 16, 16,
116  16, 16, 16, 16, 16, 16, 16, 16,
117  16, 16, 16, 16, 16, 16, 16, 11,
118  16, 16, 16, 16, 16, 16, 16, 16,
119  16, 16 };
120 static const int YAcCodeT[] = {
121  0x000a, 0x0000, 0x0001, 0x0004,
122  0x000b, 0x001a, 0x0078, 0x00f8,
123  0x03f6, 0xff82, 0xff83, 0x000c,
124  0x001b, 0x0079, 0x01f6, 0x07f6,
125  0xff84, 0xff85, 0xff86, 0xff87,
126  0xff88, 0x001c, 0x00f9, 0x03f7,
127  0x0ff4, 0xff89, 0xff8a, 0xff8b,
128  0xff8c, 0xff8d, 0xff8e, 0x003a,
129  0x01f7, 0x0ff5, 0xff8f, 0xff90,
130  0xff91, 0xff92, 0xff93, 0xff94,
131  0xff95, 0x003b, 0x03f8, 0xff96,
132  0xff97, 0xff98, 0xff99, 0xff9a,
133  0xff9b, 0xff9c, 0xff9d, 0x007a,
134  0x07f7, 0xff9e, 0xff9f, 0xffa0,
135  0xffa1, 0xffa2, 0xffa3, 0xffa4,
136  0xffa5, 0x007b, 0x0ff6, 0xffa6,
137  0xffa7, 0xffa8, 0xffa9, 0xffaa,
138  0xffab, 0xffac, 0xffad, 0x00fa,
139  0x0ff7, 0xffae, 0xffaf, 0xffb0,
140  0xffb1, 0xffb2, 0xffb3, 0xffb4,
141  0xffb5, 0x01f8, 0x7fc0, 0xffb6,
142  0xffb7, 0xffb8, 0xffb9, 0xffba,
143  0xffbb, 0xffbc, 0xffbd, 0x01f9,
144  0xffbe, 0xffbf, 0xffc0, 0xffc1,
145  0xffc2, 0xffc3, 0xffc4, 0xffc5,
146  0xffc6, 0x01fa, 0xffc7, 0xffc8,
147  0xffc9, 0xffca, 0xffcb, 0xffcc,
148  0xffcd, 0xffce, 0xffcf, 0x03f9,
149  0xffd0, 0xffd1, 0xffd2, 0xffd3,
150  0xffd4, 0xffd5, 0xffd6, 0xffd7,
151  0xffd8, 0x03fa, 0xffd9, 0xffda,
152  0xffdb, 0xffdc, 0xffdd, 0xffde,
153  0xffdf, 0xffe0, 0xffe1, 0x07f8,
154  0xffe2, 0xffe3, 0xffe4, 0xffe5,
155  0xffe6, 0xffe7, 0xffe8, 0xffe9,
156  0xffea, 0xffeb, 0xffec, 0xffed,
157  0xffee, 0xffef, 0xfff0, 0xfff1,
158  0xfff2, 0xfff3, 0xfff4, 0x07f9,
159  0xfff5, 0xfff6, 0xfff7, 0xfff8,
160  0xfff9, 0xfffa, 0xfffb, 0xfffc,
161  0xfffd, 0xfffe };
163  162,
164  (int*)YAcSizeT,
165  (int*)YAcCodeT
166 };
167 
168 static const int YEOBidx = 0;
169 static const int YZRLidx = 151;
170 
171 
172 static const int CAcSizeT[] = {
173  2, 2, 3, 4, 5, 5, 6, 7,
174  9, 10, 12, 4, 6, 8, 9, 11,
175  12, 16, 16, 16, 16, 5, 8, 10,
176  12, 15, 16, 16, 16, 16, 16, 5,
177  8, 10, 12, 16, 16, 16, 16, 16,
178  16, 6, 9, 16, 16, 16, 16, 16,
179  16, 16, 16, 6, 10, 16, 16, 16,
180  16, 16, 16, 16, 16, 7, 11, 16,
181  16, 16, 16, 16, 16, 16, 16, 7,
182  11, 16, 16, 16, 16, 16, 16, 16,
183  16, 8, 16, 16, 16, 16, 16, 16,
184  16, 16, 16, 9, 16, 16, 16, 16,
185  16, 16, 16, 16, 16, 9, 16, 16,
186  16, 16, 16, 16, 16, 16, 16, 9,
187  16, 16, 16, 16, 16, 16, 16, 16,
188  16, 9, 16, 16, 16, 16, 16, 16,
189  16, 16, 16, 11, 16, 16, 16, 16,
190  16, 16, 16, 16, 16, 14, 16, 16,
191  16, 16, 16, 16, 16, 16, 16, 10,
192  15, 16, 16, 16, 16, 16, 16, 16,
193  16, 16 };
194 static const int CAcCodeT[] = {
195  0x0000, 0x0001, 0x0004, 0x000a,
196  0x0018, 0x0019, 0x0038, 0x0078,
197  0x01f4, 0x03f6, 0x0ff4, 0x000b,
198  0x0039, 0x00f6, 0x01f5, 0x07f6,
199  0x0ff5, 0xff88, 0xff89, 0xff8a,
200  0xff8b, 0x001a, 0x00f7, 0x03f7,
201  0x0ff6, 0x7fc2, 0xff8c, 0xff8d,
202  0xff8e, 0xff8f, 0xff90, 0x001b,
203  0x00f8, 0x03f8, 0x0ff7, 0xff91,
204  0xff92, 0xff93, 0xff94, 0xff95,
205  0xff96, 0x003a, 0x01f6, 0xff97,
206  0xff98, 0xff99, 0xff9a, 0xff9b,
207  0xff9c, 0xff9d, 0xff9e, 0x003b,
208  0x03f9, 0xff9f, 0xffa0, 0xffa1,
209  0xffa2, 0xffa3, 0xffa4, 0xffa5,
210  0xffa6, 0x0079, 0x07f7, 0xffa7,
211  0xffa8, 0xffa9, 0xffaa, 0xffab,
212  0xffac, 0xffad, 0xffae, 0x007a,
213  0x07f8, 0xffaf, 0xffb0, 0xffb1,
214  0xffb2, 0xffb3, 0xffb4, 0xffb5,
215  0xffb6, 0x00f9, 0xffb7, 0xffb8,
216  0xffb9, 0xffba, 0xffbb, 0xffbc,
217  0xffbd, 0xffbe, 0xffbf, 0x01f7,
218  0xffc0, 0xffc1, 0xffc2, 0xffc3,
219  0xffc4, 0xffc5, 0xffc6, 0xffc7,
220  0xffc8, 0x01f8, 0xffc9, 0xffca,
221  0xffcb, 0xffcc, 0xffcd, 0xffce,
222  0xffcf, 0xffd0, 0xffd1, 0x01f9,
223  0xffd2, 0xffd3, 0xffd4, 0xffd5,
224  0xffd6, 0xffd7, 0xffd8, 0xffd9,
225  0xffda, 0x01fa, 0xffdb, 0xffdc,
226  0xffdd, 0xffde, 0xffdf, 0xffe0,
227  0xffe1, 0xffe2, 0xffe3, 0x07f9,
228  0xffe4, 0xffe5, 0xffe6, 0xffe7,
229  0xffe8, 0xffe9, 0xffea, 0xffeb,
230  0xffec, 0x3fe0, 0xffed, 0xffee,
231  0xffef, 0xfff0, 0xfff1, 0xfff2,
232  0xfff3, 0xfff4, 0xfff5, 0x03fa,
233  0x7fc3, 0xfff6, 0xfff7, 0xfff8,
234  0xfff9, 0xfffa, 0xfffb, 0xfffc,
235  0xfffd, 0xfffe };
237  162,
238  (int*)CAcSizeT,
239  (int*)CAcCodeT
240 };
241 
242 static const int CEOBidx = 0;
243 static const int CZRLidx = 151;
244 
245 //HuffmanCode
246 
247 static const int DcDhtLength = 0x21;
248 static const int AcDhtLength = 0xb7;
249 
250 static const u_char YDcDht[] = {
251  0xff, 0xc4,
252  0x00, 0x1f,
253  0x00,
254  0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
255  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
257  0x08, 0x09, 0x0a, 0x0b
258 };
259 
260 static const u_char CDcDht[] = {
261  0xff, 0xc4,
262  0x00, 0x1f,
263  0x01,
264  0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
265  0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
266  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
267  0x08, 0x09, 0x0a, 0x0b
268 };
269 
270 static const u_char YAcDht[] = {
271  0xff, 0xc4,
272  0x00, 0xb5,
273  0x10,
274 
275  0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03,
276  0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d,
277 
278  0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
279  0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
280  0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
281  0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
282  0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,
283  0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
284  0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
285  0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
286  0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
287  0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
288  0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
289  0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
290  0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
291  0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
292  0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
293  0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,
294  0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,
295  0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
296  0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
297  0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
298  0xf9, 0xfa
299 };
300 
301 static const u_char CAcDht[] = {
302  0xff, 0xc4,
303  0x00, 0xb5,
304  0x11,
305 
306  0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04,
307  0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77,
308 
309  0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21,
310  0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
311  0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
312  0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0,
313  0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34,
314  0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
315  0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38,
316  0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
317  0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
318  0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
319  0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
320  0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
321  0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96,
322  0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
323  0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
324  0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3,
325  0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2,
326  0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
327  0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
328  0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
329  0xf9, 0xfa
330 };
331 
332 #endif
333