87 lines
2.5 KiB
C++
87 lines
2.5 KiB
C++
/*
|
|
*
|
|
* 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
|