Geant4 Cross Reference |
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 }; 76 static const G4HuffmanCodeTable YDcHuffmanT = { 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 }; 91 static const G4HuffmanCodeTable CDcHuffmanT = { 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 }; 162 static const G4HuffmanCodeTable YAcHuffmanT = { 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 }; 236 static const G4HuffmanCodeTable CAcHuffmanT = { 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 334