dcmdjpeg: JPEG圧縮されたDICOMファイルをデコードする
書式
dcmdjpeg [options] dcmfile-in dcmfile-out
説明
dcmdjpeg は、JPEG圧縮されたDICOM画像(dcmfile-in)を読み込み、JPEGデータを展開(すなわちネイティブのDICOM転送構文へ変換)して、変換後の画像を出力ファイル(dcmfile-out)へ書き出すユーティリティです。
引数
dcmfile-in DICOM input filename to be converted ("-" for stdin)
dcmfile-out DICOM output filename ("-" for stdout)
オプション
全般オプション
-h --help- このヘルプを表示して終了します
--version- バージョン情報を表示して終了します
--arguments- 展開後のコマンドライン引数を表示します
-q --quiet- quietモード。警告およびエラーを表示しません
-v --verbose- verboseモード。処理の詳細を表示します
-d --debug- debugモード。デバッグ情報を表示します
-ll --log-level [l]evel: string constant- (fatal, error, warn, info, debug, trace) ロガーにレベル l を使用します
-lc --log-config [f]ilename: string- ロガーに設定ファイル f を使用します
入力オプション
+f --read-file- ファイル形式またはデータセットを読み込みます(既定値)
+fo --read-file-only- ファイル形式のみを読み込みます
-f --read-dataset- メタ情報を持たないデータセットとして読み込みます # メタヘッダーなしでデータセットとして保存された、JPEG圧縮されたDICOMオブジェクトを展開できるようにするオプションです。メタヘッダーがないと転送構文を確実には判定できないため、本来こうしたものは存在すべきではないのですが、残念ながら実際に存在します。
処理オプション
+cp --conv-photometric- YCbCr測光解釈の場合に変換します(既定値) # 圧縮画像が YBR_FULL または YBR_FULL_422 の測光解釈を使用している場合、展開時にRGBへ変換します。
+cl --conv-lossy- 非可逆JPEGの場合にYCbCrをRGBへ変換します # 圧縮画像が非可逆JPEGでエンコードされている場合、YCbCr色モデルとみなしてRGBへ変換します。
+cg --conv-guess- ライブラリがYCbCrと推測した場合にRGBへ変換します # 内部のJPEGライブラリが圧縮画像の色空間をYCbCrと「推測」した場合、RGBへ変換します。
+cgl --conv-guess-lossy- 非可逆JPEGかつ内部JPEGライブラリがYCbCrと推測した場合にRGBへ変換します # 圧縮画像が非可逆JPEGでエンコードされ、かつ内部のJPEGライブラリが色空間をYCbCrと「推測」した場合、RGBへ変換します。
+ca --conv-always- 常にYCbCrをRGBへ変換します # 圧縮画像がカラー画像であれば、YCbCr色モデルとみなしてRGBへ変換します。警告: 色空間が実際にはRGBである場合、画像が誤ってデコードされます。可逆JPEGで圧縮された画像がYCbCrでエンコードされていることはほとんどないため、そうした画像に対しては本オプションを慎重に使用してください。
+cn --conv-never- YCbCrからRGBへ決して変換しません # 展開時にYCbCrからRGBへの色空間変換を一切行いません。ただし元画像がサブサンプリングを伴って圧縮されている場合、YBR_FULL_422 から YBR_FULL への変換は依然として行われます。 planar configuration:
+pa --planar-auto- SOPクラスと色空間からplanar configurationを自動判定します(既定値) # 圧縮画像がカラー画像の場合、SOPクラスと測光解釈が要求するときは color-by-plane の planar configuration で保存します。Hardcopy Color画像は常に color-by-plane で保存され、改訂版のUltrasound画像オブジェクトは色モデルが YBR_FULL の場合に color-by-plane で保存されます。それ以外はすべて color-by-pixel で保存されます。
+px --color-by-pixel- 常に color-by-pixel で保存します # 圧縮画像がカラー画像の場合、color-by-pixel の planar configuration で保存します。
+pl --color-by-plane- 常に color-by-plane で保存します # 圧縮画像がカラー画像の場合、color-by-plane の planar configuration で保存します。 bits stored:
+bs --bits-stored-fix- 矛盾した bits stored 値を補正します(既定値) # 圧縮ビットストリーム中の BitsStored の値がDICOMデータセット中の値より小さい場合、データセット側の値を更新します。
-bs --bits-stored-keep- 矛盾した bits stored 値を保持します # 圧縮ビットストリームと矛盾していても BitsStored の値を保持します。一部の欠陥のある画像を正しくデコードするのに役立つことがあります。 SOP Instance UID:
+ud --uid-default- 同一のSOP Instance UIDを維持します(既定値) # 新しいSOP instance UIDを一切割り当てません。
+ua --uid-always- 常に新しいUIDを割り当てます # 常に新しいSOP instance UIDを割り当てます。 workaround options for incorrect JPEG encodings:
+w6 --workaround-pred6- predictor 6 でオーバーフローを起こした可逆JPEG画像への回避策を有効化します # 16ビット/ピクセルのDICOM画像が可逆JPEGで圧縮され、predictor 6 においてエンコーダが16ビット整数のオーバーフローを生じさせたものが実際に観測されており、展開時にこれを補償(再現)する特別な処理が必要となります。本フラグはそうした不正な画像を正しく展開できるようにしますが、同時に正しく圧縮された画像については誤った展開を引き起こします。慎重に使用してください。
+wi --workaround-incpl- 不完全なJPEGデータへの回避策を有効化します # 圧縮フラグメント末尾の不完全なJPEGデータを dcmjpeg に無視させ、(存在すれば)次のフラグメントから次のフレームの展開を開始させるオプションです。これにより、不完全なJPEGデータを含む画像をデコードできるようになります。
+wc --workaround-cornell- Huffmanテーブルがオーバーフローした16ビット可逆JPEGのCornell画像への回避策を有効化します # 可逆JPEG圧縮の初期のオープンソース実装のひとつである「Cornell」ライブラリには、16ビット/サンプルの画像を圧縮するとHuffmanテーブルに不正な値が生じるという既知のバグがあります。本フラグは、そうした画像を正しくデコードできるようにする回避策を有効化します。
出力オプション
+F --write-file- ファイル形式で書き出します(既定値)
-F --write-dataset- ファイルメタ情報を持たないデータセットとして書き出します output transfer syntax:
+te --write-xfer-little- explicit VR little endian で書き出します(既定値)
+tb --write-xfer-big- explicit VR big endian TS で書き出します
+ti --write-xfer-implicit- implicit VR little endian TS で書き出します post-1993 value representations:
+u --enable-new-vr- 新しいVR(UN/UT)のサポートを有効化します(既定値)
-u --disable-new-vr- 新しいVRのサポートを無効化し、OBへ変換します group length encoding:
+g= --group-length-recalc- 存在する場合はグループ長を再計算します(既定値)
+g --group-length-create- 常にグループ長要素を付けて書き出します
-g --group-length-remove- 常にグループ長要素を付けずに書き出します length encoding in sequences and items:
+e --length-explicit- explicit length で書き出します(既定値)
-e --length-undefined- undefined length で書き出します data set trailing padding (not with --write-dataset):
-p= --padding-retain- パディングを変更しません(--write-dataset でない場合の既定値)
-p --padding-off- パディングなし(--write-dataset の場合は暗黙的に有効)
+p --padding-create [f]ile-pad [i]tem-pad: integer- ファイルを f バイトの倍数に、アイテムを i バイトの倍数に整列します
転送構文
dcmdjpeg は入力(dcmfile-in)について次の転送構文をサポートします。
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess6_8TransferSyntax 1.2.840.10008.1.2.4.53
JPEGProcess10_12TransferSyntax 1.2.840.10008.1.2.4.55
JPEGProcess14TransferSyntax 1.2.840.10008.1.2.4.57
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
(*) zlibサポートを有効にしてコンパイルした場合
dcmdjpeg は出力(dcmfile-out)について次の転送構文をサポートします。
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
ロギング
各種コマンドラインツールおよびその基盤ライブラリのログ出力レベルは、ユーザーが指定できます。既定では、エラーと警告のみが標準エラー出力へ書き出されます。–verbose オプションを使うと、処理の詳細などの情報メッセージも報告されます。–debug オプションは、たとえばデバッグ目的で内部動作のより詳しい情報を得るために使えます。その他のログレベルは –log-level オプションで選択できます。–quiet モードでは致命的なエラーのみが報告されます。そうした極めて重大なエラー時には、通常アプリケーションは終了します。各ログレベルの詳細については、モジュール「oflog」のドキュメントを参照してください。
ログ出力をファイルへ(任意でログローテーションを伴って)、あるいはsyslog(Unix)やイベントログ(Windows)へ書き出したい場合は、–log-config オプションを使えます。この設定ファイルでは、特定のメッセージのみを特定の出力ストリームへ振り分けることや、メッセージの生成元のモジュールやアプリケーションに基づいて特定のメッセージをフィルタリングすることもできます。設定ファイルの例は < etcdir>/logger.cfg に用意されています。
コマンドライン
すべてのコマンドラインツールは、引数について次の記法を用います。角括弧は省略可能な値(0〜1個)を囲み、末尾の3つのドットは複数の値が許される(1〜n個)ことを示し、両者の組み合わせは0〜n個の値を意味します。
コマンドラインオプションは、それぞれ先頭の '+' または '-' 記号によって引数と区別されます。通常、コマンドラインオプションの順序と位置は任意です(つまりどこに現れてもかまいません)。ただし、オプションが互いに排他的な場合は、最も右に現れたものが使用されます。この挙動は一般的なUnixシェルの標準的な評価規則に従います。
加えて、ファイル名の前に '@' 記号を付けることで、1つ以上のコマンドファイルを指定できます(例: @command.txt)。こうしたコマンド引数は、それ以降の評価に先立って、対応するテキストファイルの内容に置き換えられます(引用符で囲まれた場合を除き、連続する空白は単一の区切りとして扱われます)。なお、コマンドファイルの中に別のコマンドファイルを含めることはできません。この単純ながら効果的な仕組みにより、よく使うオプションや引数の組み合わせをまとめられ、長く分かりにくいコマンドラインを避けられます(例は < datadir>/dumppat.txt に用意されています)。
環境変数
dcmdjpeg ユーティリティは、環境変数 DCMDICTPATH で指定されたDICOMデータ辞書の読み込みを試みます。既定では、すなわち環境変数 DCMDICTPATH が設定されていない場合、データ辞書がアプリケーションに組み込まれていない限り(Windowsでは組み込みが既定)、ファイル < datadir>/dicom.dic が読み込まれます。
既定の動作を優先すべきであり、環境変数 DCMDICTPATH は別のデータ辞書が必要な場合にのみ使用してください。環境変数 DCMDICTPATH は、コロン(":")でエントリを区切るという点で、Unixシェルの PATH 変数と同じ形式を持ちます。Windowsシステムでは、区切り文字としてセミコロン(";")が使われます。データ辞書のコードは、DCMDICTPATH 環境変数で指定された各ファイルの読み込みを試みます。データ辞書を1つも読み込めない場合はエラーとなります。
関連項目
dcmcjpeg(1)
著作権
Copyright (C) 2001-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.