G4RTJpegCoderTables.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 
00030 // class description:
00031 //  
00032 //  This header file defines some hard coded numbers used by G4RTJpegCoder
00033 // to convert 8 bits RGB to JPEG.
00034 //
00035 
00036 #ifndef G4RTJpegCoderTable_H
00037 #define G4RTJpegCoderTable_H 1
00038 
00039 #include "G4RTJpeg.hh"
00040 
00041 //QuantumTable
00042 
00043 static const int        YQuantumT[] = {
00044 
00045         1,  1,  1,  1,  1,  1,  1,  1,
00046         1,  1,  1,  1,  1,  1,  1,  1,
00047         1,  1,  1,  1,  1,  1,  1,  1,
00048         1,  1,  1,  1,  1,  1,  1,  1,
00049         1,  1,  1,  1,  1,  1,  1,  1,
00050         1,  1,  1,  1,  1,  1,  1,  1,
00051         1,  1,  1,  1,  1,  1,  1,  1,
00052         1,  1,  1,  1,  1,  1,  1,  1,
00053 };
00054 
00055 static const int        CQuantumT[] = {
00056 
00057         1,  1,  1,  1,  1,  1,  1,  1,
00058         1,  1,  1,  1,  1,  1,  1,  1,
00059         1,  1,  1,  1,  1,  1,  1,  1,
00060         1,  1,  1,  1,  1,  1,  1,  1,
00061         1,  1,  1,  1,  1,  1,  1,  1,
00062         1,  1,  1,  1,  1,  1,  1,  1,
00063         1,  1,  1,  1,  1,  1,  1,  1,
00064         1,  1,  1,  1,  1,  1,  1,  1,
00065 };
00066 
00067 //HuffmanCode
00068 
00069 static const int        YDcSizeT[] = {
00070                 0x0002, 0x0003, 0x0003, 0x0003,
00071                 0x0003, 0x0003, 0x0004, 0x0005,
00072                 0x0006, 0x0007, 0x0008, 0x0009  };
00073 static const int        YDcCodeT[] = {  
00074                 0x0000, 0x0002, 0x0003, 0x0004,
00075                 0x0005, 0x0006, 0x000e, 0x001e,
00076                 0x003e, 0x007e, 0x00fe, 0x01fe  };
00077 static const G4HuffmanCodeTable YDcHuffmanT = {
00078         12,
00079         (int*)YDcSizeT,
00080         (int*)YDcCodeT  
00081 };
00082 
00083 
00084 static const int        CDcSizeT[] = {   
00085                 0x0002, 0x0002, 0x0002, 0x0003,
00086                 0x0004, 0x0005, 0x0006, 0x0007,
00087                 0x0008, 0x0009, 0x000a, 0x000b  };
00088 static const int        CDcCodeT[] = {   
00089                 0x0000, 0x0001, 0x0002, 0x0006,
00090                 0x000e, 0x001e, 0x003e, 0x007e,
00091                 0x00fe, 0x01fe, 0x03fe, 0x07fe  };
00092 static const G4HuffmanCodeTable CDcHuffmanT = {
00093         12, 
00094         (int*)CDcSizeT,
00095         (int*)CDcCodeT 
00096 };
00097 
00098  
00099 static const int        YAcSizeT[] = {
00100                  4,  2,  2,  3,  4,  5,  7,  8,
00101                 10, 16, 16,  4,  5,  7,  9, 11,
00102                 16, 16, 16, 16, 16,  5,  8, 10,
00103                 12, 16, 16, 16, 16, 16, 16,  6,
00104                  9, 12, 16, 16, 16, 16, 16, 16,
00105                 16,  6, 10, 16, 16, 16, 16, 16,
00106                 16, 16, 16,  7, 11, 16, 16, 16,
00107                 16, 16, 16, 16, 16,  7, 12, 16,
00108                 16, 16, 16, 16, 16, 16, 16,  8,
00109                 12, 16, 16, 16, 16, 16, 16, 16,
00110                 16,  9, 15, 16, 16, 16, 16, 16,
00111                 16, 16, 16,  9, 16, 16, 16, 16,
00112                 16, 16, 16, 16, 16,  9, 16, 16,
00113                 16, 16, 16, 16, 16, 16, 16, 10,
00114                 16, 16, 16, 16, 16, 16, 16, 16,
00115                 16, 10, 16, 16, 16, 16, 16, 16,
00116                 16, 16, 16, 11, 16, 16, 16, 16,
00117                 16, 16, 16, 16, 16, 16, 16, 16,
00118                 16, 16, 16, 16, 16, 16, 16, 11,
00119                 16, 16, 16, 16, 16, 16, 16, 16,
00120                 16, 16 };
00121 static const int        YAcCodeT[] = { 
00122                 0x000a, 0x0000, 0x0001, 0x0004,
00123                 0x000b, 0x001a, 0x0078, 0x00f8,
00124                 0x03f6, 0xff82, 0xff83, 0x000c,
00125                 0x001b, 0x0079, 0x01f6, 0x07f6,
00126                 0xff84, 0xff85, 0xff86, 0xff87,
00127                 0xff88, 0x001c, 0x00f9, 0x03f7,
00128                 0x0ff4, 0xff89, 0xff8a, 0xff8b,
00129                 0xff8c, 0xff8d, 0xff8e, 0x003a,
00130                 0x01f7, 0x0ff5, 0xff8f, 0xff90,
00131                 0xff91, 0xff92, 0xff93, 0xff94,
00132                 0xff95, 0x003b, 0x03f8, 0xff96,
00133                 0xff97, 0xff98, 0xff99, 0xff9a,
00134                 0xff9b, 0xff9c, 0xff9d, 0x007a,
00135                 0x07f7, 0xff9e, 0xff9f, 0xffa0,
00136                 0xffa1, 0xffa2, 0xffa3, 0xffa4,
00137                 0xffa5, 0x007b, 0x0ff6, 0xffa6,
00138                 0xffa7, 0xffa8, 0xffa9, 0xffaa,
00139                 0xffab, 0xffac, 0xffad, 0x00fa,
00140                 0x0ff7, 0xffae, 0xffaf, 0xffb0,
00141                 0xffb1, 0xffb2, 0xffb3, 0xffb4,
00142                 0xffb5, 0x01f8, 0x7fc0, 0xffb6,
00143                 0xffb7, 0xffb8, 0xffb9, 0xffba,
00144                 0xffbb, 0xffbc, 0xffbd, 0x01f9,
00145                 0xffbe, 0xffbf, 0xffc0, 0xffc1,
00146                 0xffc2, 0xffc3, 0xffc4, 0xffc5,
00147                 0xffc6, 0x01fa, 0xffc7, 0xffc8,
00148                 0xffc9, 0xffca, 0xffcb, 0xffcc,
00149                 0xffcd, 0xffce, 0xffcf, 0x03f9,
00150                 0xffd0, 0xffd1, 0xffd2, 0xffd3,
00151                 0xffd4, 0xffd5, 0xffd6, 0xffd7,
00152                 0xffd8, 0x03fa, 0xffd9, 0xffda,
00153                 0xffdb, 0xffdc, 0xffdd, 0xffde,
00154                 0xffdf, 0xffe0, 0xffe1, 0x07f8,
00155                 0xffe2, 0xffe3, 0xffe4, 0xffe5,
00156                 0xffe6, 0xffe7, 0xffe8, 0xffe9,
00157                 0xffea, 0xffeb, 0xffec, 0xffed,
00158                 0xffee, 0xffef, 0xfff0, 0xfff1,
00159                 0xfff2, 0xfff3, 0xfff4, 0x07f9,
00160                 0xfff5, 0xfff6, 0xfff7, 0xfff8,
00161                 0xfff9, 0xfffa, 0xfffb, 0xfffc,
00162                 0xfffd, 0xfffe };
00163 static const G4HuffmanCodeTable YAcHuffmanT = {
00164         162, 
00165         (int*)YAcSizeT,
00166         (int*)YAcCodeT 
00167 };
00168 
00169 static const int                YEOBidx = 0;
00170 static const int                YZRLidx = 151;
00171 
00172 
00173 static const int        CAcSizeT[] = {
00174                  2,  2,  3,  4,  5,  5,  6,  7,
00175                  9, 10, 12,  4,  6,  8,  9, 11,
00176                 12, 16, 16, 16, 16,  5,  8, 10,
00177                 12, 15, 16, 16, 16, 16, 16,  5,
00178                  8, 10, 12, 16, 16, 16, 16, 16,
00179                 16,  6,  9, 16, 16, 16, 16, 16,
00180                 16, 16, 16,  6, 10, 16, 16, 16,
00181                 16, 16, 16, 16, 16,  7, 11, 16,
00182                 16, 16, 16, 16, 16, 16, 16,  7,
00183                 11, 16, 16, 16, 16, 16, 16, 16,
00184                 16,  8, 16, 16, 16, 16, 16, 16,
00185                 16, 16, 16,  9, 16, 16, 16, 16,
00186                 16, 16, 16, 16, 16,  9, 16, 16,
00187                 16, 16, 16, 16, 16, 16, 16,  9,
00188                 16, 16, 16, 16, 16, 16, 16, 16,
00189                 16,  9, 16, 16, 16, 16, 16, 16,
00190                 16, 16, 16, 11, 16, 16, 16, 16,
00191                 16, 16, 16, 16, 16, 14, 16, 16,
00192                 16, 16, 16, 16, 16, 16, 16, 10,
00193                 15, 16, 16, 16, 16, 16, 16, 16,
00194                 16, 16 };
00195 static const int        CAcCodeT[] = { 
00196                 0x0000, 0x0001, 0x0004, 0x000a,
00197                 0x0018, 0x0019, 0x0038, 0x0078,
00198                 0x01f4, 0x03f6, 0x0ff4, 0x000b,
00199                 0x0039, 0x00f6, 0x01f5, 0x07f6,
00200                 0x0ff5, 0xff88, 0xff89, 0xff8a,
00201                 0xff8b, 0x001a, 0x00f7, 0x03f7,
00202                 0x0ff6, 0x7fc2, 0xff8c, 0xff8d,
00203                 0xff8e, 0xff8f, 0xff90, 0x001b,
00204                 0x00f8, 0x03f8, 0x0ff7, 0xff91,
00205                 0xff92, 0xff93, 0xff94, 0xff95,
00206                 0xff96, 0x003a, 0x01f6, 0xff97,
00207                 0xff98, 0xff99, 0xff9a, 0xff9b,
00208                 0xff9c, 0xff9d, 0xff9e, 0x003b,
00209                 0x03f9, 0xff9f, 0xffa0, 0xffa1,
00210                 0xffa2, 0xffa3, 0xffa4, 0xffa5,
00211                 0xffa6, 0x0079, 0x07f7, 0xffa7,
00212                 0xffa8, 0xffa9, 0xffaa, 0xffab,
00213                 0xffac, 0xffad, 0xffae, 0x007a,
00214                 0x07f8, 0xffaf, 0xffb0, 0xffb1,
00215                 0xffb2, 0xffb3, 0xffb4, 0xffb5,
00216                 0xffb6, 0x00f9, 0xffb7, 0xffb8,
00217                 0xffb9, 0xffba, 0xffbb, 0xffbc,
00218                 0xffbd, 0xffbe, 0xffbf, 0x01f7,
00219                 0xffc0, 0xffc1, 0xffc2, 0xffc3,
00220                 0xffc4, 0xffc5, 0xffc6, 0xffc7,
00221                 0xffc8, 0x01f8, 0xffc9, 0xffca,
00222                 0xffcb, 0xffcc, 0xffcd, 0xffce,
00223                 0xffcf, 0xffd0, 0xffd1, 0x01f9,
00224                 0xffd2, 0xffd3, 0xffd4, 0xffd5,
00225                 0xffd6, 0xffd7, 0xffd8, 0xffd9,
00226                 0xffda, 0x01fa, 0xffdb, 0xffdc,
00227                 0xffdd, 0xffde, 0xffdf, 0xffe0,
00228                 0xffe1, 0xffe2, 0xffe3, 0x07f9,
00229                 0xffe4, 0xffe5, 0xffe6, 0xffe7,
00230                 0xffe8, 0xffe9, 0xffea, 0xffeb,
00231                 0xffec, 0x3fe0, 0xffed, 0xffee,
00232                 0xffef, 0xfff0, 0xfff1, 0xfff2,
00233                 0xfff3, 0xfff4, 0xfff5, 0x03fa,
00234                 0x7fc3, 0xfff6, 0xfff7, 0xfff8,
00235                 0xfff9, 0xfffa, 0xfffb, 0xfffc,
00236                 0xfffd, 0xfffe };
00237 static const G4HuffmanCodeTable CAcHuffmanT = {
00238         162,
00239         (int*)CAcSizeT,
00240         (int*)CAcCodeT 
00241 };
00242 
00243 static const int                CEOBidx = 0;
00244 static const int                CZRLidx = 151;
00245 
00246 //HuffmanCode
00247 
00248 static const int                DcDhtLength = 0x21;
00249 static const int                AcDhtLength = 0xb7;
00250 
00251 static const u_char     YDcDht[] = {
00252         0xff, 0xc4,             
00253         0x00, 0x1f,                     
00254         0x00,                    
00255         0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,  
00256         0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00257         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 
00258         0x08, 0x09, 0x0a, 0x0b
00259 };
00260 
00261 static const u_char     CDcDht[] = {    
00262         0xff, 0xc4,     
00263         0x00, 0x1f,                     
00264         0x01,                    
00265         0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,  
00266         0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
00267         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 
00268         0x08, 0x09, 0x0a, 0x0b
00269 };
00270 
00271 static const u_char     YAcDht[] = {    
00272         0xff, 0xc4,                     
00273         0x00, 0xb5,                     
00274         0x10,                    
00275 
00276         0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03,  
00277         0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d,
00278 
00279         0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 
00280         0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
00281         0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
00282         0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
00283         0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,
00284         0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
00285         0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
00286         0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
00287         0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
00288         0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
00289         0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
00290         0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
00291         0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
00292         0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
00293         0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
00294         0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,
00295         0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,
00296         0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
00297         0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
00298         0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
00299         0xf9, 0xfa
00300 };
00301 
00302 static const u_char     CAcDht[] = {    
00303         0xff, 0xc4,                     
00304         0x00, 0xb5,                     
00305         0x11,                    
00306 
00307         0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04,  
00308         0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77,
00309 
00310         0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 
00311         0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
00312         0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
00313         0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0,
00314         0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34,
00315         0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
00316         0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38,
00317         0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
00318         0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
00319         0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
00320         0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
00321         0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
00322         0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96,
00323         0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
00324         0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
00325         0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3,
00326         0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2,
00327         0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
00328         0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
00329         0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
00330         0xf9, 0xfa
00331 };
00332 
00333 #endif
00334 

Generated on Mon May 27 17:49:46 2013 for Geant4 by  doxygen 1.4.7