7.8 SDO_GEOR.compressJP2

形式

SDO_GEOR.compressJP2(
     inGeoRaster    IN SDO_GEORASTER, 
     compressParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster   IN OUT SDO_GEORASTER);

説明

JPEG 2000圧縮を使用して、GeoRasterオブジェクトのイメージを圧縮します。

パラメータ

inGeoRaster

データを圧縮するSDO_GEORASTERオブジェクト。

compressParam

圧縮パラメータの1つ以上のキーワードを指定する文字列。使用可能なキーワードの説明は、「使用上のノート」の表を参照してください。指定しない場合、各キーワードのデフォルト値による可逆圧縮が適用されます。

outGeoRaster

圧縮の結果を格納するSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。inGeoRasterと同じGeoRasterオブジェクトは指定できません。

使用上のノート

出力を圧縮したイメージはJPEG 2000(JP2)ファイル形式で、outGeoRasterオブジェクトのラスター・ブロックに格納されます。ピラミッドが圧縮の一部としてJP2ファイルに格納されているため、ピラミッド・ラスター・ブロックはラスター・データ表に格納されません。

rlevelキーワード(compressParam内)で指定されていない場合、ピラミッド・レベルの最大値はfloor(log2(tsize))として計算されます。tsizeは、行および列のtilesizeパラメータの最小値です。tilingパラメータ値がfalseの場合、tsizeはイメージの高さおよび幅の最小値です。

ratioおよびpsnrを指定しない場合、圧縮は可逆です

このプロシージャは、8ビットおよび16ビットのソースGeoRasterオブジェクトをサポートします。許可されるタイルの最大数は65535です。

次の表に、JPEG 2000(JP2)圧縮の使用可能なcompressParamキーワードを示します。

表7-1 JPEG 2000(JP2)圧縮のcompressParamキーワード

キーワード 説明

codeBlockSize=(cbrow, cbcol)

コード・ブロック行および列サイズを指定します。cbrowおよびcbcolは、それぞれ行および列のコード・ブロックのサイズです。[4, 1024]の範囲およびcbrow * cbcol <= 4096を指定する必要があります。デフォルトでは、64x64です。

dwt=reversible | irreversible

個別のウェーブレット変換を指定します。reversibleはDWT 5–3変換の使用を意味し、irreversibleはDWT 9–7変換の使用を意味します。不可逆変換の結果は、常に不可逆圧縮です。

mct=true | false

複数のコンポーネント変換を使用するかどうかを指定します。デフォルトでは、3つのバンド以上が存在する場合はRGB->YCC変換を使用します。

precinctSize=(pcrow, pccol)

precinctサイズを指定します。pcrowおよびpccolは、行および列のprecinctのサイズです。デフォルトの各解像度は512x512です。

progressOrder=LRCP|RLCP|RPCL|PCRL|CPRL

プログレッション順序(LRCP(layer-resolution-component-positionプログレッション、比率がスケーラブル)、RLCP(resolution-layer-component-positionプログレッション、解像度がスケーラブル)、RPCL(resolution-position-component-layerプログレッション)、PCRL(position-component-resolution-layerプログレッション)またはCPRL(component-position-resolution-layerプログレッション))を指定します。デフォルトでは、LRCPです。

psnr=(p1, p2, p3, ...)

ピークの信号対雑音比(PSNR)を指定します。p1, p2, p3, ...は、JP2コード・ストリームのレイヤー1、2、3...の圧縮PSNRです。昇順で指定する必要があります。たとえば、psnr=(30, 40, 50)などです。デフォルトでは、圧縮は可逆です。このパラメータはratioパラメータとともに指定できません。

ratio=(r1, r2, r3, ...)

圧縮率を指定します。p1, p2, p3, ...は、JP2コード・ストリームのレイヤー1、2、3...の圧縮率です。降順で指定する必要があります。たとえば、ratio=(30, 20, 10)などです。デフォルトでは、圧縮は可逆です。このパラメータはpsnrパラメータとともに指定できません。

rlevel=n

ウェーブレット変換の分解数(イメージのピラミッド数)を指定します。デフォルトでは、分解のレベルはfloor(log2(tileSize))です。

tileSize=(trow, tcol)

trowおよびtcolでは、タイルの行および列サイズを指定します。タイル・サイズがイメージ・サイズを超える場合、タイル処理は適用されません。

tiling=true | false

JPEG2000圧縮のタイル処理を使用するかどうかを指定します。デフォルトでは、タイル処理はtrueです。tilingtruetileSizeが設定されていない場合、デフォルトのタイル・サイズは512x512です。

ノート:

GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。

次の例では、元のオブジェクトからJPEG 2000圧縮したGeoRasterオブジェクトを作成します。JP2ファイルの内部タイル・サイズは512x512です。JP2レイヤー1、2および3の圧縮率値はそれぞれ30、20および10です。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (4, sdo_geor.init('RDT_1'))
    RETURNING georaster INTO gr2;

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1;

  sdo_geor.compressJP2(gr1,’tilesize=(512, 512), ratio=(30, 20, 10)’, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=4;
  COMMIT;
END;
/