⚠️ これは 非公式の翻訳サイトです。DCMTK / OFFIS とは無関係です。正確な情報は 原文(https://support.dcmtk.org/docs/mod_dcmjpls.html) を参照してください。

dcmjpls: 圧縮・展開ライブラリとユーティリティアプリ群

このモジュールには、DICOM 画像オブジェクトの非圧縮表現と JPEG-LS 圧縮表現(転送構文)を相互に変換するクラスが含まれます。JPEG-LS のロスレス処理とニアロスレス処理の両方に対応します。本モジュールは、クラス DcmCodec を基底とする一連のコーデックを実装しており、モジュール dcmdata が管理するコーデック一覧に登録できます。

主なインターフェースクラスは次のとおりです。

ツール

このモジュールには次のコマンドラインツールが含まれます。

例

次の例は、ロスレス JPEG-LS で DICOM 画像ファイルを圧縮する方法を示します。

DJLSEncoderRegistration::registerCodecs(); // register JPEG-LS codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test.dcm").good())
{
 DcmDataset *dataset = fileformat.getDataset();
 DcmItem *metaInfo = fileformat.getMetaInfo();
 DJLSRepresentationParameter rp(0, OFTrue); // parameters for lossless

 // this causes the lossless JPEG-LS version of the dataset to be created
  dataset->chooseRepresentation(EXS_JPEGLSLossless, &params);

 // check if everything went well
 if (dataset->canWriteXfer(EXS_JPEGLSLossless))
  {
 // store in lossless JPEG-LS format
    fileformat.saveFile("test_jpls.dcm", EXS_JPEGLSLossless);
  }
}
DJLSEncoderRegistration::cleanup(); // deregister JPEG-LS codecs

次の例は、JPEG-LS 圧縮された DICOM 画像ファイルを展開する方法を示します。

DJLSDecoderRegistration::registerCodecs(); // register JPEG-LS codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test_jpls.dcm").good())
{
 DcmDataset *dataset = fileformat.getDataset();

 // decompress data set if compressed
  dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL);

 // check if everything went well
 if (dataset->canWriteXfer(EXS_LittleEndianExplicit))
  {
    fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit);
  }
}
DJLSDecoderRegistration::cleanup(); // deregister JPEG-LS codecs

Hewlett Packard は、JPEG-LS に適用される特許を保有していると主張しています。Hewlett Packard は、JPEG-LS の準拠実装に対して無償ライセンスを付与しています。DCMTK ツールキットの作者である OFFIS はこのライセンスを取得済みですが、各国の法制度によっては、DCMTK の JPEG-LS コーデックを利用する企業が別途ライセンスを取得する必要がある場合があります。本モジュールを商用目的で利用する場合は、http://www.hpl.hp.com/loco/ を参照してください。