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