関数の命名規則とパラメーター

インテル® IPP の関数名には、異なる関数を識別しやすいように命名規則が使用されています。

関数名には、データドメイン、演算、データ型、実行モードを示す複数のフィールドが含まれます。フィールドにはそれぞれ、事前に定義された値が使用されます。

関数名の形式は次のようになります。

         ipp<data-domain><name>[_<datatype>][_<descriptor>](<parameters>);

この形式の要素については、次のセクションで説明します。

               データドメイン

               名前

               データ型

               記述子

               パラメーター

データドメイン

data-domain は、入力データの型を示す 1 文字です。 インテル® IPP の現在のバージョンは、以下のデータドメインをサポートしています。

         s

信号 (想定されるデータ型は 1D 配列)

         g

固定長の信号 (想定されるデータ型は 1D 配列)

         i

画像とビデオ (想定されるデータ型はピクセルの 2D 配列)

         m

ベクトルと行列 (想定されるデータ型は行列またはベクトル)

         r

リアリスティック・レンダリングと 3D データ処理 (想定されるデータ型はサポートしているレンダリング手法に依存)

インテル® IPP のコア関数は、入力データの型に応じた処理を行いません (「コア関数」を参照)。 これらの関数には、接頭辞として ipp が付けられ、データドメイン・フィールドはありません (例: ippGetStatusString)。

名前

name は、関数が実行するアルゴリズムまたは演算を示します。 形式は次のようになります。

         <name> = <operation>[_modifier]

operation フィールドは、基本演算を示す 1 つ以上の単語、頭文字、および省略形です (例: SetDCTFwd)。 フィールドが複数の部分からなる場合、各部分はそれぞれ大文字で始まり、下線は含まれません (例: HilbertInitAlloc)。

modifier が存在する場合、指定された関数のバリエーションを示します。 例えば、ippsFFTInv_CToC_32fc 関数の CToC 修飾子は、複素数データを使用して逆高速フーリエ変換を行い、複素数から複素数の (CToC) 変換を実行することを意味します。 行列演算の関数にはオブジェクト・タイプの説明が修飾子として含まれます (例えば、ippmMul_mv は行列とベクトルの乗算です)。

データ型

datatype フィールドは、関数で使用されるデータ型を示します。形式は次のようになります。

         <datatype> = <bit_depth><bit_interpretation>

説明:

               bit_depth = <1|8|16|32|64>

および

         bit_interpretation = < u|s|f>[c]

u は「符号なし整数」、s は「符号付き整数」、f は「浮動小数点」、c は「複素数」を示します。

単一のデータ型で演算を行う関数の場合、datatype フィールドには 1 つの値のみ含まれます。

関数でデータ型の異なるソース・オブジェクトとデスティネーション・オブジェクトの演算を行う場合、次のように、データ型の識別子がソース、デスティネーションの順で関数名に記述されます。

  <datatype> = <src1Datatype>[src2Datatype][dstDatatype]

例えば、ippsDotProd_16s16sc 関数は 16 ビット short ソースベクトルと 16 ビット complex short ソースベクトルのドット積を計算して、16 ビット complex short デスティネーション・ベクトルに格納します。 2 番目のオペランドと結果が同じ型なので、関数名に dstDatatype 修飾子は含まれていません。

記述子

オプションの descriptor フィールドには、演算に関連するデータが記述されます。 このフィールドには、暗黙のパラメーターや追加の必須パラメーターを記述できます。

関数内のコード分岐の数を最小限に抑え、不要な実行のオーバーヘッドを減らすため、ほとんどの汎用関数はプリミティブ関数に分割されます。パラメーターの一部は、記述子としてプリミティブ関数の名前に含まれます。

ただし、置換数が多い関数では、内部演算を指定するパラメーターを使用できます (例: ippiThreshold)。

インテル® IPP では、以下の記述子が使用されています。

A

画像データは最後のチャンネルとしてアルファチャンネルを含みます。C4 が必要です。アルファチャンネルは処理されません。

A0

画像データは最初のチャンネルとしてアルファチャンネルを含みます。C4 が必要です。アルファチャンネルは処理されません。

Axx

精度が xx ビットの高度な算術演算。

C

関数は各ソース画像用に指定された対象チャンネル (COI) で演算を行います。

Cn

画像データは n 個の離散インターリーブ・チャネル (n = 1、2、3、4) で構成されます。

Dx

信号は x 次元です (デフォルトは D1)

I

演算をインプレースで実行します (デフォルトはノット・インプレース)。

L

信号処理の場合: 1 つのポインターが 2 次元配列の各行で使用されることを示します。

行列演算の場合: オブジェクトのレイアウト記述子を含む関数。

M

演算はマスクを使用して処理するピクセル数を決定します。

P

信号処理の場合: 処理するベクトルの数を指定します。

行列演算の場合: オブジェクトのポインター記述子を含む関数。

Pn

画像データは n 個の離散プレーン (非インターリーブ) チャネル (n= 1、2、3、4) と各プレーンへのポインターで構成されます。

R

関数は各ソース画像用に定義された対象領域 (ROI) で演算を行います。

S

オブジェクトの標準記述子を含む関数 (行列演算の場合)

s

飽和処理を行いスケーリングしません (デフォルトモード)

Sfs

飽和処理と固定スケーリングを行います。

関数名の中では、記述子は常にアルファベット順で記述します。

特定の演算では、一部のデータ記述子が「デフォルト」として暗黙的に含まれます。これらの記述子は関数名に追加されません。例えば、画像処理関数は常に 2 次元画像を演算し、結果の飽和処理を行いスケーリングしません。この場合、暗黙的な記述子 D2 (2 次元信号) と s (飽和処理を行いスケーリングしない) は関数名に含まれません。

パラメーター

parameters フィールドには、関数のパラメーター (引数) を指定します。

パラメーターの順序は以下のとおりです。


  1. すべてのソースオペランド。配列の後に定数が続きます。

  2. すべてのデスティネーション・オペランド。配列の後に定数が続きます。

  3. その他、演算固有のパラメーター。

パラメーター名には以下の規則があります。

関数構文の例:


このヘルプトピックについてのフィードバックを送信

© 2007 - 2010 Intel Corporation. 無断での引用、転載を禁じます。