/* * * 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: dcmjpeg * * Author: Marco Eichelberg, Norbert Olges * * Purpose: Codec class for encoding JPEG Lossless Selection Value 1 (8/12/16-bit) * */ #ifndef DJENCSV1_H #define DJENCSV1_H #include "dcmtk/config/osconfig.h" #include "dcmtk/dcmjpeg/djcodece.h" /* for class DJCodecEncoder */ /** Encoder class for JPEG Lossless Selection Value 1 (8/12/16-bit) */ class DCMTK_DCMJPEG_EXPORT DJEncoderP14SV1: public DJCodecEncoder { public: /// default constructor DJEncoderP14SV1(); /// destructor virtual ~DJEncoderP14SV1(); /** returns the transfer syntax that this particular codec * is able to encode and decode. * @return supported transfer syntax */ virtual E_TransferSyntax supportedTransferSyntax() const; private: /** returns true if the transfer syntax supported by this * codec is lossless. * @return lossless flag */ virtual OFBool isLosslessProcess() const; /** creates 'derivation description' string after encoding. * @param toRepParam representation parameter passed to encode() * @param cp codec parameter passed to encode() * @param bitsPerSample bits per sample of the original image data prior to compression * @param ratio image compression ratio. This is not the "quality factor" * but the real effective ratio between compressed and uncompressed image, * i. e. 30 means a 30:1 lossy compression. * @param imageComments image comments returned in this * parameter which is initially empty */ virtual void createDerivationDescription( const DcmRepresentationParameter * toRepParam, const DJCodecParameter *cp, Uint8 bitsPerSample, double ratio, OFString& derivationDescription) const; /** creates an instance of the compression library to be used * for encoding/decoding. * @param toRepParam representation parameter passed to encode() * @param cp codec parameter passed to encode() * @param bitsPerSample bits per sample for the image data * @return pointer to newly allocated codec object */ virtual DJEncoder *createEncoderInstance( const DcmRepresentationParameter * toRepParam, const DJCodecParameter *cp, Uint8 bitsPerSample) const; }; #endif