DDICOMの処理およびサポートされている形式
この付録では、DICOMコンテンツの処理操作およびサポートされている形式を説明しています。
注:
DICOMのOracle Multimediaサポートは、Oracle Database 12cリリース2 (12.2)では非推奨になりました。将来のリリースではサポートされなくなる可能性があります。できるだけ早く、非推奨となった機能の使用を停止することをお薦めします。
この付録の内容は次のとおりです。
processCopy( )メソッドの詳細は、「ORDDicomオブジェクト・タイプ・リファレンス」および「DICOM PL/SQL APIリファレンス」を参照してください。
関連項目:
画像処理演算子の完全なリストおよび各演算子の詳細は、『Oracle Multimediaリファレンス』を参照してください。
D.1 DICOM画像コンテンツおよび圧縮形式
DICOM画像コンテンツの光度測定解釈は、タグ<00280004>
で指定されます。DICOM画像の圧縮形式のタイプは、転送構文のUID値またはタグ<00020010>
によって指定されます。
次の表は、DICOM画像のprocessCopy( )メソッドでサポートされる光度測定解釈を示します。
表D-1 DICOMコンテンツの光度測定解釈
アクション | サポートされている光度測定解釈の値 |
---|---|
READING |
MONOCHROME1、MONOCHROME2、RGB、PALETTECOLOR、YBR_FULL、YBR_FULL_422、YBR_RCT、およびYBR_ICT |
WRITING |
MONOCHROME1、MONOCHROME2、RGB、YBR_FULL、YBR_FULL_422、YBR_RCT、およびYBR_ICT |
アクションREADING
では、DICOM画像の光度測定解釈値がリストに含まれる場合はデコード可能で、ピクセル・データを抽出できます。
アクションWRITING
では、DICOM画像の光度測定解釈値がリストに含まれる場合はエンコード可能で、ピクセル・データを対応する光度測定解釈で書き込むことができます。
次の表は、DICOM画像のprocessCopy( )メソッドでサポートされる圧縮形式を示します。
表D-2 DICOMコンテンツの圧縮形式
アクション | サポートされている圧縮形式の値 |
---|---|
READING |
DEFLATE、JPEG、JPEG 2000、JPEG-LOSSLESS、JPEG-LS、MPEG、RAW、およびRLE |
WRITING |
DEFLATE、JPEG、JPEG 2000、JPEG-LOSSLESS、JPEG-LS、MPEG、RAW、およびRLE |
アクションREADING
では、DICOMイメージの圧縮形式が上のリストに含まれる場合は、デコード可能で、ピクセル・データを圧縮解除できます。
注:
追加情報:
-
Oracle Multimediaは、processCopy( )メソッドでのみ、DICOM形式からMPEG形式へのMPEGコンテンツの抽出をサポートします。その他の処理演算はサポートされていません。
-
Oracle Multimediaは、8ビットから16ビットへのマルチビットのRAW圧縮形式をサポートします。
アクションWRITING
では、圧縮形式の値を持つDICOM画像はエンコード可能で、対応する圧縮形式タイプでピクセル・データを圧縮できます。
注:
追加情報:
-
Oracle Multimediaは、createDicomImage( )メソッドでのみ、MPEGコンテンツのDICOM形式へのカプセル化をサポートします。
-
Oracle Multimediaは、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( )メソッドを使用すると、DICOMフォーマットからMPEGコンテンツを読み取り、MPEG形式に抽出できます。
createDicomImage( )メソッドを使用すると、DICOM形式にMPEGコンテンツを書き込むことができます。
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ビデオで秒ごとに表示されるフレームまたはイメージの数を表します。frametimeパラメータは、生成されたAVIビデオの各フレームまたはイメージが表示される期間を秒数で表します。これらのオプション・パラメータのデフォルト値は両方とも1
です。
次のコード・セグメントは、1秒にAVIビデオの10個のフレームが表示されるようにframerateパラメータを指定する方法を示しています。
'fileFormat=avi, framerate=10'
次のコード・セグメントは、AVIビデオの各フレームが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画像のエンコーディング情報は、コマンド引数とメタデータ引数(この順序で)で指定されたとおりに、処理操作の結果で更新されます。
関連項目:
XMLタイプの演算子の詳細は、『Oracle XML DB開発者ガイド』を参照してください。