source: trunk/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh@ 1109

Last change on this file since 1109 was 954, checked in by garnier, 17 years ago

remise a jour

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