00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#ifndef DJCODECD_H
00035
#define DJCODECD_H
00036
00037
#include "osconfig.h"
00038
#include "oftypes.h"
00039
#include "dccodec.h"
00040
#include "djutils.h"
00041
#include "ofstring.h"
00042
00043
00044
class DataInterface;
00045
class DJEncoder;
00046
class DcmDataset;
00047
class DcmItem;
00048
class DJCodecParameter;
00049
class DJDecoder;
00050
00058 class DJCodecDecoder :
public DcmCodec
00059 {
00060
public:
00061
00063
DJCodecDecoder();
00064
00066
virtual ~DJCodecDecoder();
00067
00078
virtual OFCondition decode(
00079
const DcmRepresentationParameter * fromRepParam,
00080 DcmPixelSequence * pixSeq,
00081 DcmPolymorphOBOW& uncompressedPixelData,
00082
const DcmCodecParameter * cp,
00083
const DcmStack& objStack)
const;
00084
00099
virtual OFCondition encode(
00100
const Uint16 * pixelData,
00101
const Uint32 length,
00102
const DcmRepresentationParameter * toRepParam,
00103 DcmPixelSequence * & pixSeq,
00104
const DcmCodecParameter *cp,
00105
DcmStack & objStack)
const;
00106
00121
virtual OFCondition encode(
00122
const E_TransferSyntax fromRepType,
00123
const DcmRepresentationParameter * fromRepParam,
00124 DcmPixelSequence * fromPixSeq,
00125
const DcmRepresentationParameter * toRepParam,
00126 DcmPixelSequence * & toPixSeq,
00127
const DcmCodecParameter * cp,
00128
DcmStack & objStack)
const;
00129
00137
virtual OFBool
canChangeCoding(
00138
const E_TransferSyntax oldRepType,
00139
const E_TransferSyntax newRepType)
const;
00140
00145
virtual E_TransferSyntax
supportedTransferSyntax()
const = 0;
00146
00147
private:
00148
00156
virtual DJDecoder *
createDecoderInstance(
00157
const DcmRepresentationParameter * toRepParam,
00158
const DJCodecParameter *cp,
00159 Uint8 bitsPerSample,
00160 OFBool isYBR)
const = 0;
00161
00162
00163
00171
static Uint8
scanJpegDataForBitDepth(
00172
const Uint8 *data,
00173
const Uint32 fragmentLength);
00174
00181
static Uint16
readUint16(
const Uint8 *data);
00182
00191
static OFCondition createPlanarConfigurationByte(
00192 Uint8 *imageFrame,
00193 Uint16 columns,
00194 Uint16 rows);
00195
00204
static OFCondition createPlanarConfigurationWord(
00205 Uint16 *imageFrame,
00206 Uint16 columns,
00207 Uint16 rows);
00208
00217
static OFBool
requiresPlanarConfiguration(
00218
const char *sopClassUID,
00219 EP_Interpretation photometricInterpretation);
00220
00221 };
00222
00223
#endif
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240