/* * * Copyright (C) 2001-2017, 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 decoding JPEG Lossless (8/12/16-bit) * */ #include "dcmtk/config/osconfig.h" #include "dcmtk/dcmjpeg/djdeclol.h" #include "dcmtk/dcmjpeg/djcparam.h" #include "dcmtk/dcmjpeg/djrplol.h" #include "dcmtk/dcmjpeg/djdijg8.h" #include "dcmtk/dcmjpeg/djdijg12.h" #include "dcmtk/dcmjpeg/djdijg16.h" DJDecoderLossless::DJDecoderLossless() : DJCodecDecoder() { } DJDecoderLossless::~DJDecoderLossless() { } E_TransferSyntax DJDecoderLossless::supportedTransferSyntax() const { return EXS_JPEGProcess14; } OFBool DJDecoderLossless::isLosslessProcess() const { return OFTrue; } DJDecoder *DJDecoderLossless::createDecoderInstance( const DcmRepresentationParameter * /* toRepParam */, const DJCodecParameter *cp, Uint8 bitsPerSample, OFBool isYBR) const { if (bitsPerSample > 12) return new DJDecompressIJG16Bit(*cp, isYBR); else if (bitsPerSample > 8) return new DJDecompressIJG12Bit(*cp, isYBR); else return new DJDecompressIJG8Bit(*cp, isYBR); }