dcmcjpls: DICOM ファイルを JPEG-LS 転送構文にエンコードする
書式
dcmcjpls [options] dcmfile-in dcmfile-out
説明
dcmcjpls ユーティリティは、非圧縮の DICOM 画像(dcmfile-in)を読み込み、JPEG-LS 圧縮(すなわちカプセル化された 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- 静音モード。警告やエラーを表示しません
-v --verbose- 詳細表示モード。処理の詳細を表示します
-d --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- ファイルメタ情報なしでデータセットを読み込みます。入力転送構文:
-t= --read-xfer-auto- TS 自動認識を使用します(既定値)
-td --read-xfer-detect- ファイルメタヘッダで指定された TS を無視します
-te --read-xfer-little- 明示的 VR リトルエンディアン TS で読み込みます
-tb --read-xfer-big- 明示的 VR ビッグエンディアン TS で読み込みます
-ti --read-xfer-implicit- 暗黙的 VR リトルエンディアン TS で読み込みます
JPEG-LS エンコードオプション
+el --encode-lossless- JPEG-LS ロスレス専用 TS でエンコードします(既定値) # このオプションは JPEG-LS ロスレス専用転送構文を選択し、# ロスレス圧縮を行います。
+en --encode-nearlossless- JPEG-LS ニアロスレス TS でエンコードします(NEAR: 2) # このオプションは JPEG-LS 非可逆転送構文を選択し、# ニアロスレス圧縮を行います。JPEG-LS ビットレート(ニアロスレス時のみ):
+md --max-deviation [d]eviation: integer (default: 2)- エンコード時の 1 ピクセルあたりの最大偏差を定義します # このオプションは、元のピクセル値からの 1 ピクセルあたりの # 最大偏差を指定します。ロスレス圧縮:
+pr --prefer-raw- raw エンコーダモードを優先します(既定値) # このオプションは raw エンコーダを有効にします。raw エンコーダは、# ソース画像から読み込んだままのピクセルセル全体を、# 一切変更を加えずにエンコードします。
+pc --prefer-cooked- cooked エンコーダモードを優先します # このオプションは cooked エンコーダを有効にします。cooked エンコーダは、# オーバーレイデータを別のタグ (60xx,3000) に移し、各ピクセルの # 格納ビットのみをエンコードします。JPEG-LS 圧縮:
+t1 --threshold1 [t]hreshhold: integer- JPEG-LS エンコードパラメータの threshold 1 を設定します
+t2 --threshold2 [t]hreshhold: integer- JPEG-LS エンコードパラメータの threshold 2 を設定します
+t3 --threshold3 [t]hreshhold: integer- JPEG-LS エンコードパラメータの threshold 3 を設定します # 既定では、T1, T2, T3 の値はサンプルあたりのビット数に # 基づいて計算されます。
+rs --reset [r]eset: integer (default: 64)- JPEG-LS エンコードパラメータの reset を設定します。JPEG-LS インターリーブ:
+il --interleave-line- ライン単位インターリーブの JPEG-LS 画像を強制します(既定値) # このフラグは、生成される画像にライン単位インターリーブモードを強制します。# ライン単位インターリーブモードでは、ソース画像の各ラインが # 各コンポーネントごとに個別に圧縮され、その後に次のラインが # エンコードされます。
+is --interleave-sample- サンプル単位インターリーブの JPEG-LS 画像を強制します # このフラグは、生成される画像にサンプル単位インターリーブモードを強制します。# サンプル単位インターリーブモードでは、各ピクセルのコンポーネントが # 次のピクセルより先にエンコードされます。
+iv --interleave-default- 可能な限り高速なインターリーブモードを使用します # このフラグは、ソース画像のモードに基づいてインターリーブモードを選択します。# 可能であれば、画像を別のインターリーブモードに変換しません。JPEG-LS の奇数長ビットストリームのパディング:
+ps --padding-standard- 拡張 EOI マーカーでパディングします(既定値) # DICOM 規格で要求されるとおり、画像終端セグメントマーカーの拡張形 # FF FF D9 を書き込むことで、奇数長の JPEG-LS ビットストリームをパディングします。
+pz --padding-zero- ゼロバイトでパディングします(非標準) # 画像終端セグメントマーカーの後にゼロバイトを書き込むことで、# すなわち FF D9 00 として、奇数長の JPEG-LS ビットストリームをパディングします。# これは DICOM に準拠しませんが、拡張 JPEG-LS ビットストリームをサポートしない # HP LOCO リファレンス実装との相互運用に必要です。
カプセル化ピクセルデータのエンコードオプション
+ff --fragment-per-frame- 各フレームを 1 つのフラグメントとしてエンコードします(既定値) # このオプションは、各フレームに対して 1 つの圧縮フラグメントを # 生成します(推奨)。
+fs --fragment-size [s]ize: integer- フラグメントサイズを s キロバイトに制限します # このオプションはフラグメントサイズを制限するため、1 フレームあたり # 複数のフラグメントが生成されることがあります。基本オフセットテーブルのエンコード:
+ot --offset-table-create- オフセットテーブルを作成します(既定値) # このオプションは、圧縮された JPEG フラグメントに対して # 有効なオフセットテーブルを生成します。
-ot --offset-table-empty- オフセットテーブルを空のままにします # このオプションは、圧縮された JPEG フラグメントに対して # 空のオフセットテーブルを生成します。SOP Class UID:
+cd --class-default- SOP Class UID を保持します(既定値) # ソース画像の SOP Class UID を保持します。
+cs --class-sc- Secondary Capture Image に変換する(--uid-always を含意する) # 画像を Secondary Capture に変換します。SOP Class UID に加えて、# 有効な Secondary Capture 画像に必要なすべての属性が追加されます。# 新しい SOP インスタンス UID が常に割り当てられます。SOP Instance UID:
+ud --uid-default- 非可逆圧縮の場合に新しい UID を割り当てます(既定値) # 圧縮が非可逆 JPEG-LS の場合に、新しい SOP インスタンス UID を割り当てます。
+ua --uid-always- 常に新しい UID を割り当てます # 無条件で新しい SOP インスタンス UID を割り当てます。
+un --uid-never- 新しい UID を割り当てません # 新しい SOP インスタンス UID を一切割り当てません。
出力オプション
+u --enable-new-vr- 新しい VR (UN/UT) のサポートを有効にします(既定値)
-u --disable-new-vr- 新しい VR のサポートを無効にし、OB に変換します。グループ長のエンコード:
+g= --group-length-recalc- グループ長が存在する場合は再計算します(既定値)
+g --group-length-create- 常にグループ長要素を付けて書き出します
-g --group-length-remove- 常にグループ長要素を付けずに書き出します。シーケンスとアイテムの長さのエンコード:
+e --length-explicit- 明示的な長さで書き出します(既定値)
-e --length-undefined- 未定義の長さで書き出します。データセット末尾のパディング:
-p= --padding-retain- パディングを変更しません(既定値)
-p --padding-off- パディングなし
+p --padding-create [f]ile-pad [i]tem-pad: integer- ファイルを f バイトの倍数に、アイテムを i バイトの倍数に揃えます
注記
dcmcjpls ユーティリティは、すべての SOP クラスの DICOM 画像を圧縮します。データセット内のすべての Pixel Data (7fe0,0010) 要素を処理します。すなわちアイコン画像に対しても圧縮が行われます。ただし dcmcjpls は、圧縮後の画像がそのオブジェクトの IOD のすべての制約に依然として準拠しているかを保証しようとはしません。
作成した圧縮画像が DICOM 規格に準拠していることの確認は、利用者の責任です。判断に迷う場合、dcmcjpls ユーティリティを使えば画像を Secondary Capture に変換できます。この SOP クラスには前述のような制約が課されません。
転送構文
dcmcjpls は、入力(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
(*) zlib サポートを有効にしてコンパイルした場合
dcmcjpls は、出力(dcmfile-out)に対して以下の転送構文をサポートします:
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
ロギング
各種コマンドラインツールおよび基盤ライブラリのロギング出力のレベルは、利用者が指定できます。既定では、エラーと警告のみが標準エラー出力に書き出されます。オプション –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 に用意されています)。
環境変数
dcmcjpls ユーティリティは、DCMDICTPATH 環境変数で指定された DICOM データ辞書の読み込みを試みます。既定では、すなわち DCMDICTPATH 環境変数が設定されていない場合、辞書がアプリケーションに組み込まれていない限り(Windows では既定で組み込み)、ファイル < datadir>/dicom.dic が読み込まれます。
通常はこの既定の挙動が望ましく、DCMDICTPATH 環境変数は代替のデータ辞書が必要な場合にのみ使用します。DCMDICTPATH 環境変数の形式は Unix シェルの PATH 変数と同じで、コロン (":") でエントリを区切ります。Windows システムでは、区切り文字としてセミコロン (";") を用います。データ辞書のコードは、DCMDICTPATH 環境変数に指定された各ファイルの読み込みを試みます。データ辞書を 1 つも読み込めない場合はエラーとなります。
関連項目
dcmdjpls(1)
著作権
Copyright (C) 2009-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.