Geant4 10.7.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//
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
42static 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
54static 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
68static const int YDcSizeT[] = {
69 0x0002, 0x0003, 0x0003, 0x0003,
70 0x0003, 0x0003, 0x0004, 0x0005,
71 0x0006, 0x0007, 0x0008, 0x0009 };
72static const int YDcCodeT[] = {
73 0x0000, 0x0002, 0x0003, 0x0004,
74 0x0005, 0x0006, 0x000e, 0x001e,
75 0x003e, 0x007e, 0x00fe, 0x01fe };
76static const G4HuffmanCodeTable YDcHuffmanT = {
77 12,
78 (int*)YDcSizeT,
79 (int*)YDcCodeT
80};
81
82
83static const int CDcSizeT[] = {
84 0x0002, 0x0002, 0x0002, 0x0003,
85 0x0004, 0x0005, 0x0006, 0x0007,
86 0x0008, 0x0009, 0x000a, 0x000b };
87static const int CDcCodeT[] = {
88 0x0000, 0x0001, 0x0002, 0x0006,
89 0x000e, 0x001e, 0x003e, 0x007e,
90 0x00fe, 0x01fe, 0x03fe, 0x07fe };
91static const G4HuffmanCodeTable CDcHuffmanT = {
92 12,
93 (int*)CDcSizeT,
94 (int*)CDcCodeT
95};
96
97
98static 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 };
120static 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 };
162static const G4HuffmanCodeTable YAcHuffmanT = {
163 162,
164 (int*)YAcSizeT,
165 (int*)YAcCodeT
166};
167
168static const int YEOBidx = 0;
169static const int YZRLidx = 151;
170
171
172static 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 };
194static 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 };
236static const G4HuffmanCodeTable CAcHuffmanT = {
237 162,
238 (int*)CAcSizeT,
239 (int*)CAcCodeT
240};
241
242static const int CEOBidx = 0;
243static const int CZRLidx = 151;
244
245//HuffmanCode
246
247static const int DcDhtLength = 0x21;
248static const int AcDhtLength = 0xb7;
249
250static 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
260static 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
270static 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
301static 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
unsigned char u_char
Definition: G4RTJpeg.hh:39