/usr/include/dcmtk/dcmjpls/djencode.h is in libdcmtk-dev 3.6.2-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | /*
*
* Copyright (C) 1997-2011, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmjpls
*
* Author: Martin Willkomm, Uli Schlachter
*
* Purpose: singleton class that registers encoders for all supported JPEG-LS processes.
*
*/
#ifndef DCMJPLS_DJENCODE_H
#define DCMJPLS_DJENCODE_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/ofstd/oftypes.h" /* for OFBool */
#include "dcmtk/dcmjpls/djlsutil.h"
#include "dcmtk/dcmdata/dctypes.h" /* for Uint32 */
#include "dcmtk/dcmjpls/djcparam.h" /* for class DJLSCodecParameter */
class DJLSCodecParameter;
class DJLSLosslessEncoder;
class DJLSNearLosslessEncoder;
/** singleton class that registers encoders for all supported JPEG-LS processes.
*/
class DCMTK_DCMJPLS_EXPORT DJLSEncoderRegistration
{
public:
/** registers encoders for all supported JPEG-LS processes.
* If already registered, call is ignored unless cleanup() has
* been performed before.
* @param jpls_optionsEnabled enable/disable use of all five JPEG-LS parameters
* @param jpls_t1 JPEG-LS parameter "Threshold 1" (used for quantization)
* @param jpls_t2 JPEG-LS parameter "Threshold 2"
* @param jpls_t3 JPEG-LS parameter "Threshold 3"
* @param jpls_reset JPEG-LS parameter "RESET", i.e., value at which the counters A, B, and N are halved.
* @param jpls_limit JPEG-LS parameter "LIMIT"
* @param preferCookedEncoding true if the "cooked" lossless encoder should be preferred over the "raw" one
* @param fragmentSize maximum fragment size (in kbytes) for compression, 0 for unlimited.
* @param createOffsetTable create offset table during image compression
* @param uidCreation mode for SOP Instance UID creation
* @param convertToSC flag indicating whether image should be converted to Secondary Capture upon compression
* @param jplsInterleaveMode flag describing which interleave the JPEG-LS datastream should use
*/
static void registerCodecs(
OFBool jpls_optionsEnabled = OFFalse,
Uint16 jpls_t1 = 3,
Uint16 jpls_t2 = 7,
Uint16 jpls_t3 = 21,
Uint16 jpls_reset = 64,
Uint16 jpls_limit = 0,
OFBool preferCookedEncoding = OFTrue,
Uint32 fragmentSize = 0,
OFBool createOffsetTable = OFTrue,
JLS_UIDCreation uidCreation = EJLSUC_default,
OFBool convertToSC = OFFalse,
DJLSCodecParameter::interleaveMode jplsInterleaveMode = DJLSCodecParameter::interleaveDefault);
/** deregisters encoders.
* Attention: Must not be called while other threads might still use
* the registered codecs, e.g. because they are currently encoding
* DICOM data sets through dcmdata.
*/
static void cleanup();
/** get version information of the CharLS library.
* Typical output format: "CharLS, Revision 55020 (modified)"
* @return name and version number of the CharLS library
*/
static OFString getLibraryVersionString();
private:
/// flag indicating whether the encoders are already registered.
static OFBool registered_;
/// pointer to codec parameter shared by all encoders
static DJLSCodecParameter *cp_;
/// pointer to encoder for lossless JPEG-LS
static DJLSLosslessEncoder *losslessencoder_;
/// pointer to encoder for lossy JPEG-LS
static DJLSNearLosslessEncoder *nearlosslessencoder_;
};
#endif
|