00001 /* 00002 * 00003 * Copyright (C) 1997-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * 00014 * Module: dcmjpls 00015 * 00016 * Author: Martin Willkomm, Uli Schlachter 00017 * 00018 * Purpose: singleton class that registers encoders for all supported JPEG-LS processes. 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:17:19 $ 00022 * CVS/RCS Revision: $Revision: 1.5 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 #ifndef DCMJPLS_DJENCODE_H 00030 #define DCMJPLS_DJENCODE_H 00031 00032 #include "dcmtk/config/osconfig.h" 00033 #include "dcmtk/ofstd/oftypes.h" /* for OFBool */ 00034 #include "dcmtk/dcmjpls/djlsutil.h" 00035 #include "dcmtk/dcmdata/dctypes.h" /* for Uint32 */ 00036 #include "dcmtk/dcmjpls/djcparam.h" /* for class DJLSCodecParameter */ 00037 00038 class DJLSCodecParameter; 00039 class DJLSLosslessEncoder; 00040 class DJLSNearLosslessEncoder; 00041 00044 class DJLSEncoderRegistration 00045 { 00046 public: 00047 00064 static void registerCodecs( 00065 OFBool jpls_optionsEnabled = OFFalse, 00066 Uint16 jpls_t1 = 3, 00067 Uint16 jpls_t2 = 7, 00068 Uint16 jpls_t3 = 21, 00069 Uint16 jpls_reset = 64, 00070 Uint16 jpls_limit = 0, 00071 OFBool preferCookedEncoding = OFTrue, 00072 Uint32 fragmentSize = 0, 00073 OFBool createOffsetTable = OFTrue, 00074 JLS_UIDCreation uidCreation = EJLSUC_default, 00075 OFBool convertToSC = OFFalse, 00076 DJLSCodecParameter::interleaveMode jplsInterleaveMode = DJLSCodecParameter::interleaveDefault); 00077 00083 static void cleanup(); 00084 00085 private: 00086 00088 static OFBool registered_; 00089 00091 static DJLSCodecParameter *cp_; 00092 00094 static DJLSLosslessEncoder *losslessencoder_; 00095 00097 static DJLSNearLosslessEncoder *nearlosslessencoder_; 00098 00099 }; 00100 00101 #endif 00102 00103 /* 00104 * CVS/RCS Log: 00105 * $Log: djencode.h,v $ 00106 * Revision 1.5 2010-10-14 13:17:19 joergr 00107 * Updated copyright header. Added reference to COPYRIGHT file. 00108 * 00109 * Revision 1.4 2010-03-01 10:35:28 uli 00110 * Renamed include guards to avoid name clash with e.g. dcmjpeg. 00111 * 00112 * Revision 1.3 2009-10-07 13:16:47 uli 00113 * Switched to logging mechanism provided by the "new" oflog module. 00114 * 00115 * Revision 1.2 2009-07-31 09:14:53 meichel 00116 * Added codec parameter and command line options that allow to control 00117 * the interleave mode used in the JPEG-LS bitstream when compressing 00118 * color images. 00119 * 00120 * Revision 1.1 2009-07-29 14:46:46 meichel 00121 * Initial release of module dcmjpls, a JPEG-LS codec for DCMTK based on CharLS 00122 * 00123 * Revision 1.1 2007-06-15 14:35:45 meichel 00124 * Renamed CMake project and include directory from dcmjpgls to dcmjpls 00125 * 00126 * Revision 1.3 2007/06/14 12:36:14 meichel 00127 * Further code clean-up. Updated doxygen comments. 00128 * 00129 * Revision 1.2 2007/06/13 16:41:07 meichel 00130 * Code clean-up and removal of dead code 00131 * 00132 * 00133 */