DCMTK
Version 3.6.1 20120515
OFFIS DICOM Toolkit
|
abstract base class for a codec object that can be registered in dcmdata and performs transfer syntax transformation (i.e. More...
Public Member Functions | |
DcmCodec () | |
default constructor | |
virtual | ~DcmCodec () |
destructor | |
virtual OFCondition | decode (const DcmRepresentationParameter *fromRepParam, DcmPixelSequence *pixSeq, DcmPolymorphOBOW &uncompressedPixelData, const DcmCodecParameter *cp, const DcmStack &objStack) const =0 |
decompresses the given pixel sequence and stores the result in the given uncompressedPixelData element. | |
virtual OFCondition | decodeFrame (const DcmRepresentationParameter *fromParam, DcmPixelSequence *fromPixSeq, const DcmCodecParameter *cp, DcmItem *dataset, Uint32 frameNo, Uint32 &startFragment, void *buffer, Uint32 bufSize, OFString &decompressedColorModel) const =0 |
decompresses a single frame from the given pixel sequence and stores the result in the given buffer. | |
virtual OFCondition | encode (const Uint16 *pixelData, const Uint32 length, const DcmRepresentationParameter *toRepParam, DcmPixelSequence *&pixSeq, const DcmCodecParameter *cp, DcmStack &objStack) const =0 |
compresses the given uncompressed DICOM image and stores the result in the given pixSeq element. | |
virtual OFCondition | encode (const E_TransferSyntax fromRepType, const DcmRepresentationParameter *fromRepParam, DcmPixelSequence *fromPixSeq, const DcmRepresentationParameter *toRepParam, DcmPixelSequence *&toPixSeq, const DcmCodecParameter *cp, DcmStack &objStack) const =0 |
transcodes (re-compresses) the given compressed DICOM image and stores the result in the given toPixSeq element. | |
virtual OFBool | canChangeCoding (const E_TransferSyntax oldRepType, const E_TransferSyntax newRepType) const =0 |
checks if this codec is able to convert from the given current transfer syntax to the given new transfer syntax | |
virtual OFCondition | determineDecompressedColorModel (const DcmRepresentationParameter *fromParam, DcmPixelSequence *fromPixSeq, const DcmCodecParameter *cp, DcmItem *dataset, OFString &decompressedColorModel) const =0 |
determine color model of the decompressed image | |
Static Public Member Functions | |
static OFCondition | insertStringIfMissing (DcmItem *dataset, const DcmTagKey &tag, const char *val) |
helper function that inserts a string attribute with a given value into a dataset if missing in the dataset. | |
static OFCondition | convertToSecondaryCapture (DcmItem *dataset) |
helper function that converts a dataset containing a DICOM image into a valid (standard extended) Secondary Capture object by inserting all attributes that are type 1/2 in Secondary Capture and missing in the source dataset. | |
static OFCondition | newInstance (DcmItem *dataset, const char *purposeOfReferenceCodingScheme=NULL, const char *purposeOfReferenceCodeValue=NULL, const char *purposeOfReferenceCodeMeaning=NULL) |
create new SOP instance UID and Source Image Sequence referencing the old SOP instance (if present) | |
static OFCondition | updateImageType (DcmItem *dataset) |
set first value of Image Type to DERIVED. | |
static OFCondition | insertCodeSequence (DcmItem *dataset, const DcmTagKey &tagKey, const char *codingSchemeDesignator, const char *codeValue, const char *codeMeaning) |
insert code sequence into the given dataset | |
static OFCondition | determineStartFragment (Uint32 frameNo, Sint32 numberOfFrames, DcmPixelSequence *fromPixSeq, Uint32 ¤tItem) |
determine the index number (starting with zero) of the compressed pixel data fragment corresponding to the given frame (also starting with zero) |
abstract base class for a codec object that can be registered in dcmdata and performs transfer syntax transformation (i.e.
compressing, decompressing or transcoding between different compressed transfer syntaxes). When dcmdata is requested to write a transfer syntax that differs from the current one (i.e. the one in which the object was read), dcmdata dynamically searches for a DcmCodec object that is able to create the desired transfer syntax. If no suitable codec is found, the write operation fails.
virtual OFBool DcmCodec::canChangeCoding | ( | const E_TransferSyntax | oldRepType, |
const E_TransferSyntax | newRepType | ||
) | const [pure virtual] |
checks if this codec is able to convert from the given current transfer syntax to the given new transfer syntax
oldRepType | current transfer syntax |
newRepType | desired new transfer syntax |
Implemented in DJCodecEncoder, DJCodecDecoder, DJLSEncoderBase, DJLSDecoderBase, DcmRLECodecEncoder, and DcmRLECodecDecoder.
static OFCondition DcmCodec::convertToSecondaryCapture | ( | DcmItem * | dataset | ) | [static] |
helper function that converts a dataset containing a DICOM image into a valid (standard extended) Secondary Capture object by inserting all attributes that are type 1/2 in Secondary Capture and missing in the source dataset.
Replaces SOP Class UID by Secondary Capture. It does not, however, change an existing SOP Instance UID.
dataset | dataset to insert to, must not be NULL. |
virtual OFCondition DcmCodec::decode | ( | const DcmRepresentationParameter * | fromRepParam, |
DcmPixelSequence * | pixSeq, | ||
DcmPolymorphOBOW & | uncompressedPixelData, | ||
const DcmCodecParameter * | cp, | ||
const DcmStack & | objStack | ||
) | const [pure virtual] |
decompresses the given pixel sequence and stores the result in the given uncompressedPixelData element.
fromRepParam | current representation parameter of compressed data, may be NULL |
pixSeq | compressed pixel sequence |
uncompressedPixelData | uncompressed pixel data stored in this element |
cp | codec parameters for this codec |
objStack | stack pointing to the location of the pixel data element in the current dataset. |
Implemented in DJCodecEncoder, DJCodecDecoder, DJLSEncoderBase, DJLSDecoderBase, DcmRLECodecEncoder, and DcmRLECodecDecoder.
virtual OFCondition DcmCodec::decodeFrame | ( | const DcmRepresentationParameter * | fromParam, |
DcmPixelSequence * | fromPixSeq, | ||
const DcmCodecParameter * | cp, | ||
DcmItem * | dataset, | ||
Uint32 | frameNo, | ||
Uint32 & | startFragment, | ||
void * | buffer, | ||
Uint32 | bufSize, | ||
OFString & | decompressedColorModel | ||
) | const [pure virtual] |
decompresses a single frame from the given pixel sequence and stores the result in the given buffer.
fromParam | representation parameter of current compressed representation, may be NULL. |
fromPixSeq | compressed pixel sequence |
cp | codec parameters for this codec |
dataset | pointer to dataset in which pixel data element is contained |
frameNo | number of frame, starting with 0 for the first frame |
startFragment | index of the compressed fragment that contains all or the first part of the compressed bitstream for the given frameNo. Upon successful return this parameter is updated to contain the index of the first compressed fragment of the next frame. When unknown, zero should be passed. In this case the decompression algorithm will try to determine the index by itself, which will always work if frames are decompressed in increasing order from first to last, but may fail if frames are decompressed in random order, multiple fragments per frame and multiple frames are present in the dataset, and the offset table is empty. |
buffer | pointer to buffer where frame is to be stored |
bufSize | size of buffer in bytes |
decompressedColorModel | upon successful return, the color model of the decompressed image (which may be different from the one used in the compressed images) is returned in this parameter. |
Implemented in DJCodecEncoder, DJCodecDecoder, DJLSEncoderBase, DJLSDecoderBase, DcmRLECodecEncoder, and DcmRLECodecDecoder.
virtual OFCondition DcmCodec::determineDecompressedColorModel | ( | const DcmRepresentationParameter * | fromParam, |
DcmPixelSequence * | fromPixSeq, | ||
const DcmCodecParameter * | cp, | ||
DcmItem * | dataset, | ||
OFString & | decompressedColorModel | ||
) | const [pure virtual] |
determine color model of the decompressed image
fromParam | representation parameter of current compressed representation, may be NULL |
fromPixSeq | compressed pixel sequence |
cp | codec parameters for this codec |
dataset | pointer to dataset in which pixel data element is contained |
dataset | pointer to DICOM dataset in which this pixel data object is located. Used to access photometric interpretation. |
decompressedColorModel | upon successful return, the color model of the decompressed image (which may be different from the one used in the compressed images) is returned in this parameter |
Implemented in DJCodecEncoder, DJCodecDecoder, DJLSEncoderBase, DJLSDecoderBase, DcmRLECodecEncoder, and DcmRLECodecDecoder.
static OFCondition DcmCodec::determineStartFragment | ( | Uint32 | frameNo, |
Sint32 | numberOfFrames, | ||
DcmPixelSequence * | fromPixSeq, | ||
Uint32 & | currentItem | ||
) | [static] |
determine the index number (starting with zero) of the compressed pixel data fragment corresponding to the given frame (also starting with zero)
frameNo | frame number |
numberOfFrames | number of frames of this image |
fromPixSeq | compressed pixel sequence |
currentItem | index of compressed pixel data fragment returned in this parameter on success |
virtual OFCondition DcmCodec::encode | ( | const Uint16 * | pixelData, |
const Uint32 | length, | ||
const DcmRepresentationParameter * | toRepParam, | ||
DcmPixelSequence *& | pixSeq, | ||
const DcmCodecParameter * | cp, | ||
DcmStack & | objStack | ||
) | const [pure virtual] |
compresses the given uncompressed DICOM image and stores the result in the given pixSeq element.
pixelData | pointer to the uncompressed image data in OW format and local byte order |
length | of the pixel data field in bytes |
toRepParam | representation parameter describing the desired compressed representation (e.g. JPEG quality) |
pixSeq | compressed pixel sequence (pointer to new DcmPixelSequence object allocated on heap) returned in this parameter upon success. |
cp | codec parameters for this codec |
objStack | stack pointing to the location of the pixel data element in the current dataset. |
Implemented in DJCodecEncoder, DJCodecDecoder, DJLSEncoderBase, DJLSDecoderBase, DcmRLECodecEncoder, and DcmRLECodecDecoder.
virtual OFCondition DcmCodec::encode | ( | const E_TransferSyntax | fromRepType, |
const DcmRepresentationParameter * | fromRepParam, | ||
DcmPixelSequence * | fromPixSeq, | ||
const DcmRepresentationParameter * | toRepParam, | ||
DcmPixelSequence *& | toPixSeq, | ||
const DcmCodecParameter * | cp, | ||
DcmStack & | objStack | ||
) | const [pure virtual] |
transcodes (re-compresses) the given compressed DICOM image and stores the result in the given toPixSeq element.
fromRepType | current transfer syntax of the compressed image |
fromRepParam | current representation parameter of compressed data, may be NULL |
fromPixSeq | compressed pixel sequence |
toRepParam | representation parameter describing the desired new compressed representation (e.g. JPEG quality) |
toPixSeq | compressed pixel sequence (pointer to new DcmPixelSequence object allocated on heap) returned in this parameter upon success. |
cp | codec parameters for this codec |
objStack | stack pointing to the location of the pixel data element in the current dataset. |
Implemented in DJCodecEncoder, DJCodecDecoder, DJLSEncoderBase, DJLSDecoderBase, DcmRLECodecEncoder, and DcmRLECodecDecoder.
static OFCondition DcmCodec::insertCodeSequence | ( | DcmItem * | dataset, |
const DcmTagKey & | tagKey, | ||
const char * | codingSchemeDesignator, | ||
const char * | codeValue, | ||
const char * | codeMeaning | ||
) | [static] |
insert code sequence into the given dataset
dataset | dataset to insert into |
tagKey | tag of the code sequence |
codingSchemeDesignator | coding scheme designator for the sequence item |
codeValue | code value for the sequence item |
codeMeaning | code meaning for the sequence item |
static OFCondition DcmCodec::insertStringIfMissing | ( | DcmItem * | dataset, |
const DcmTagKey & | tag, | ||
const char * | val | ||
) | [static] |
helper function that inserts a string attribute with a given value into a dataset if missing in the dataset.
dataset | dataset to insert to, must not be NULL. |
tag | tag key of attribute to check/insert |
val | string value, may be NULL. |
static OFCondition DcmCodec::newInstance | ( | DcmItem * | dataset, |
const char * | purposeOfReferenceCodingScheme = NULL , |
||
const char * | purposeOfReferenceCodeValue = NULL , |
||
const char * | purposeOfReferenceCodeMeaning = NULL |
||
) | [static] |
create new SOP instance UID and Source Image Sequence referencing the old SOP instance (if present)
dataset | dataset to be modified |
purposeOfReferenceCodingScheme | coding scheme designator for purpose of reference code sequence |
purposeOfReferenceCodeValue | code value for purpose of reference code sequence |
purposeOfReferenceCodeMeaning | code meaning for purpose of reference code sequence |
static OFCondition DcmCodec::updateImageType | ( | DcmItem * | dataset | ) | [static] |
set first value of Image Type to DERIVED.
dataset | dataset to be modified |