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

Last change on this file since 952 was 952, checked in by garnier, 15 years ago

en test

File size: 10.7 KB
Line 
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 $
28// GEANT4 tag $Name: geant4-09-02-ref-03 $
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.