D DICOMの処理およびサポートされる形式
この付録では、DICOMコンテンツの処理操作およびサポートされている形式について説明します。
この付録の内容は次のとおりです。
processCopy( )メソッドのリファレンス情報は、ORDDicomオブジェクト型のリファレンスおよびDICOM PL/SQL APIリファレンスを参照してください。
関連項目:
画像処理演算子の完全なリストおよび各演算子の詳細は、Oracle Multimediaリファレンスを参照してください。
D.1 DICOM画像コンテンツおよび圧縮形式
DICOM画像コンテンツの光度測定解釈は、タグ<00280004>
で指定されます。DICOM画像の圧縮形式のタイプは、転送構文のUID値またはタグ<00020010>
によって指定されます。
次の表に、DICOM画像のprocessCopy( )メソッドでサポートされている光度測定解釈を示します。
表D-1 DICOMコンテンツの光度測定解釈
アクション | サポートされている光度測定解釈の値 |
---|---|
読取り |
MONOCHROME1、MONOCHROME2、RGB、PALETTECOLOR、YBR_FULL、YBR_FULL_422、YBR_RCTおよびYBR_ICT |
書込み |
MONOCHROME1、MONOCHROME2、RGB、YBR_FULL、YBR_FULL_422、YBR_RCTおよびYBR_ICT |
読取り
アクションについては、リストされた光度測定解釈値を持つDICOM画像をデコードして、ピクセル・データを抽出できます。
書込み
アクションについては、リストされた光度測定解釈値を持つDICOM画像をエンコードして、対応する光度測定解釈を使用してピクセル・データを書き込むことができます。
次の表に、DICOM画像のprocessCopy( )メソッドでサポートされている圧縮形式を示します。
表D-2 DICOMコンテンツの圧縮形式
アクション | サポートされている圧縮形式の値 |
---|---|
読取り |
DEFLATE、JPEG、JPEG 2000、JPEG-LOSSLESS、JPEG-LS、MPEG、RAWおよびRLE |
書込み |
DEFLATE、JPEG、JPEG 2000、JPEG-LOSSLESS、JPEG-LS、MPEG、RAWおよびRLE |
読取り
アクションについては、リストされた圧縮形式の値を持つDICOM画像をデコードして、ピクセル・データを圧縮解除できます。
注意:
追加情報:
-
Oracle Multimediaでは、processCopy( )メソッドを使用して、MPEGコンテンツをDICOM形式からMPEG形式に抽出する操作のみサポートされています。それ以外の処理操作はサポートされていません。
-
Oracle Multimediaでは、8ビットから16ビット(8ビットと16ビットを含む)のマルチビットのRAW圧縮形式がサポートされています。
書込み
アクションについては、その圧縮形式の値を持つDICOM画像をエンコードして、対応する圧縮形式タイプを使用してピクセル・データを圧縮できます。
注意:
追加情報:
-
Oracle Multimediaでは、createDicomImage( )メソッドを使用して、MPEGコンテンツをDICOM形式にカプセル化する操作のみサポートされています。
-
Oracle Multimediaでは、8ビットから16ビット(8ビットと16ビットを含む)のマルチビットのRAW圧縮形式がサポートされています。
-
RLE圧縮を使用してDICOM画像を書込む場合は、圧縮形式の値としてDICOMRLEを指定します。
processCopy( )メソッドで圧縮形式を指定するには、compressionFormat演算子を使用します。画像が圧縮されていない場合は(圧縮形式の値がRAW)、各ピクセルのエンコーディング・ビットがユーザーのメタデータで指定され、processCopy( )メソッドの1つの引数として渡されます。
processCopy( )メソッドのリファレンス情報、およびcompressionFormat演算子の詳細は、ORDDicomオブジェクト型のリファレンスおよびDICOM PL/SQL APIリファレンスを参照してください。
次の各項では、一部のコンテンツ圧縮形式についてより詳細に説明します。
D.1.1 DEFLATE圧縮形式
DEFLATE圧縮形式では、deflateLevel演算子を使用して圧縮の速度または量を指定できます。この演算子は、文字列または1
から9
までの整数を受け取ります。
次の表に、有効な値のさらに詳細な定義を示します。
値 | タイプ | 説明 |
---|---|---|
|
String |
最速圧縮率 |
|
String |
最高圧縮レベル |
|
String |
デフォルト値 |
|
Integer |
値の範囲。次の結果を表します。
|
deflateLevel演算子(太字で強調表示)に文字列値を使用して、DEFLATEの最高圧縮レベルを指定するには、次の構文を使用します。
dicom.processcopy('fileformat=dicom, compressionFormat=deflate,
deflateLevel=bestcompression', sop_instance_uid, dest);
この処理操作(比較的低速で実行される)を使用すると、高容量圧縮の画像が生成されます。一方、文字列値bestspeed
を指定すると、画像が高速で処理され、低容量圧縮の画像が生成されます。
deflateLevel演算子(太字で強調表示)に整数値を使用して、DEFLATEの最高圧縮レベルを指定するには、次の構文を使用します。
dicom.processcopy('fileformat=dicom, compressionFormat=deflate,
deflateLevel=9', sop_instance_uid, dest);
この処理操作も低速で実行されます。前述の例と同様に、高容量圧縮の画像が生成されます。一般に、整数値を使用すると、圧縮の速度とレベルを詳細に調整できます。この例では、最も大きい整数値(9
)を指定すると、文字列値bestcompression
を指定した場合と同じ圧縮レベルになります。
D.1.2 JPEG-LOSSLESS圧縮形式
このトピックでは、例を使用して、JPEG-LOSSLESS圧縮でDICOM画像を書き込む方法を示します。
JPEG-LOSSLESS圧縮でDICOM画像を書き込むには、次の構文を使用します。
'fileFormat=dicom, compressionFormat=jpeg-lossless'
D.1.3 JPEG-LS圧縮形式
このトピックでは、例を使用して、JPEG-LS圧縮でDICOM画像を書き込む方法を示します。
JPEG-LS圧縮でDICOM画像を書き込むには、次の構文を使用します。
'fileFormat=dicom, compressionFormat=jpeg-ls'
D.1.4 MPEG圧縮形式
このトピックでは、MPEGコンテンツの読取り、抽出および書込みに使用できる方法を説明します。
processCopy( )メソッドを使用すると、MPEGコンテンツをDICOM形式から読み取って、MPEG形式に抽出できます。
createDicomImage( )メソッドを使用すると、MPEGコンテンツをDICOM形式に書き込むことができます。
D.2 frame画像処理演算子
Oracle Multimediaには、DICOM画像処理のためのframe演算子が用意されています。frame演算子は、複数フレームのDICOM画像から特定のフレーム画像を抽出するために使用できます。また、frame演算子をscale演算子やrotate演算子などの他の画像処理演算子と組み合せて、複数フレームのDICOM画像から抽出された単一フレームで複数の操作を実行することもできます。
フレーム数で特定のフレームを抽出するには、次の構文を使用します。
frame = <frame number>
指定されたフレーム数が1
より小さいか、DICOM画像の最大フレーム数より大きい場合、実行しようとした操作では、無効なフレーム例外が戻されます。frame演算子は、フレームが1つのみのDICOM画像にも使用できます。ただしこの場合、フレーム数の値は常に1
であることが必要です。
D.3 その他の画像処理演算子
その他の画像処理演算子には、fileFormat、contentFormat、compressionFormat、cut、scaleおよびrotateがあります。
関連項目:
画像処理演算子の完全なリストおよび各演算子の詳細は、Oracle Multimediaリファレンスを参照してください。
D.4 複数フレームの画像の処理および作成
Oracle Multimediaでは、複数フレームのDICOM画像の作成および処理をサポートしています。
複数フレームのDICOM画像内の単一フレームを処理するには、processCopyコマンドのframe演算子文内でフレームを指定します(この構文の例はframe画像処理演算子を参照)。また、frame演算子をscale演算子やrotate演算子などの他の演算子と組み合せて、複数フレームのDICOM画像から抽出された単一フレームで複数の操作を実行することもできます。
複数フレームのDICOM画像を作成するには、次の構文を使用します。
frame = ALL
または、frame演算子をscale演算子やrotate演算子などの他の演算子と組み合せて、複数フレームのDICOM画像のすべてのフレームで複数の操作を実行することもできます。
また、frame = ALL
構文を使用して、単一フレームのDICOM画像で実行する処理操作を指定できます。
関連項目:
画像処理演算子の完全なリストおよび各演算子の詳細は、Oracle Multimediaリファレンスを参照してください。
D.5 複数フレームのDICOMコンテンツのAVI形式への処理
Oracle Multimediaでは、複数フレームのDICOMコンテンツをWindows Audio Video Interleave (AVI)形式のMicrosoftビデオに処理する操作がサポートされています。複数フレームのDICOMコンテンツ(MRI、CT、超音波ビデオなど)からAVI形式の出力を生成できます。
複数フレームのDICOMコンテンツを処理してAVI出力を生成するには、DICOMコンテンツに対してprocessCopy( )プロシージャまたはメソッドをコールして、このコンテンツをAVI形式に変換します。fileFormat演算子の値をavi
に設定してprocessCopy( )プロシージャまたはメソッドを指定するには、次の構文を使用します。
'fileFormat=avi'
前述の例は、avi
に設定されたfileFormat演算子を示しています。他のパラメータは指定されていません。必要に応じて、fileFormat演算子の値としてavi
を指定するだけでなく、framerateパラメータまたはframetimeパラメータのいずれかを指定することもできます。framerateパラメータは、生成されるAVIビデオの1秒間に表示されるフレームまたは画像の数を表します。frametimeパラメータは、生成されるAVIビデオの各フレームまたは画像が表示される時間(秒数)を表します。これらのオプション・パラメータのデフォルト値は、どちらも1
です。
次のコード・セグメントは、AVIビデオのフレームが1秒間に10個表示されるように、framerateパラメータを指定する方法を示しています。
'fileFormat=avi, framerate=10'
次のコード・セグメントは、AVIビデオの1つのフレームが10分の1秒ごとに表示されるように、frametimeパラメータを指定する方法を示しています。
'fileFormat=avi, frametime=0.1'
注意:
fileFormat演算子をavi
に設定してprocessCopy( )プロシージャまたはメソッドをコールするときは、指定するオプション・パラメータを一度に1つまでにしてください。同時に両方のオプション・パラメータを指定すると、例外がスローされます。
fileFormat演算子の値がavi
に設定されている場合は、この演算子を他の演算子(scaleやrotateなど)と組み合せて、複数フレームのDICOMコンテンツに対して複数の操作を実行することもできます。
この機能をサポートするprocessCopy( )プロシージャに関するリファレンス情報は、BFILEのprocessCopy( )およびBLOBのprocessCopy( )を参照してください。この機能をサポートするprocessCopy( )メソッドに関するリファレンス情報は、BLOBへのprocessCopy()を参照してください。
関連項目:
AVIデータ形式の詳細は、Oracle Multimediaリファレンスを参照してください
D.6 processCopy( )メソッド引数の優先順位
processCopy( )メソッドを使用してDICOM画像を別のDICOM画像に処理するときに、オプションのメタデータ引数SYS.XMLTYPEを含めることで、出力DICOM画像のエンコーディング・ルールを指定できます。
コマンド引数とメタデータ引数が一致している場合は、コマンド引数がメタデータ引数に優先します。出力されるDICOM画像のエンコーディング情報は、コマンド引数とメタデータ引数(この順序で)で指定されたとおりに、処理操作の結果で更新されます。
関連項目:
XMLType操作の詳細は、Oracle XML DB開発者ガイドを参照してください