630
インテル インテル インテル インテル ® アーキテクチャ対 アーキテクチャ対 アーキテクチャ対 アーキテクチャ対 インテグレーテッド・ インテグレーテッド・ インテグレーテッド・ インテグレーテッド・ パフォーマンス・ パフォーマンス・ パフォーマンス・ パフォーマンス・ プリミティブ プリミティブ プリミティブ プリミティブ (IPP) リファレンス・マニュアル 2 : © 2000-2002 Intel Corporation 無断での引用、転載を禁じます。 資料番号 : A24969J-1101 Web: http://www.intel.co.jp/jp/developer/ ( 日本語 ) http://developer.intel.com ( 英語 )

インテル アーキテクチャ対応 インテグレーテッド ...jp.xlsoft.com/documents/intel/ippiman_j.pdf · 2018. 8. 9. · ii 【輸出規制に関する告知と注意事項】

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • インテルインテルインテルインテル ®アーキテクチャ対応アーキテクチャ対応アーキテクチャ対応アーキテクチャ対応インテグレーテッド・インテグレーテッド・インテグレーテッド・インテグレーテッド・パフォーマンス・パフォーマンス・パフォーマンス・パフォーマンス・プリミティブプリミティブプリミティブプリミティブ (IPP)

    リファレンス・マニュアル

    第第第第 2巻巻巻巻 :画像処理画像処理画像処理画像処理

    © 2000-2002 Intel Corporation無断での引用、転載を禁じます。資料番号 : A24969J-1101

    Web: http://www.intel.co.jp/jp/developer/ (日本語 )http://developer.intel.com (英語 )

    http://www.intel.co.jp/jp/developerhttp://developer.intel.com

  • 【輸出規制に関する告知と注意事項】

    本資料に掲載されている製品のうち、外国為替および外国為替管理法に定める戦略物資等または役務に該当するものについては、輸出または再輸出する場合、同法に基づく日本政府の輸出許可が必要です。また、米国産品である当社製品は日本からの輸出または再輸出に際し、原則として米国政府の事前許可が必要です。

    【資料内容に関する注意事項】

    ・ 本ドキュメントの内容を予告なしに変更することがあります。

    ・インテルでは、この資料に掲載された内容について、市販製品に使用した場合の保証あるいは特別な目的に合うことの保証等は、いかなる場合についてもいたしかねます。また、このドキュメント内の誤りについても責任を負いかねる場合があります。

    ・インテルでは、インテル製品の内部回路以外の使用にて責任を負いません。また、外部回路の特許についても関知いたしません。

    ・本書の情報はインテル製品を使用できるようにする目的でのみ記載されています。

    インテルは、製品について「取引条件」で提示されている場合を除き、インテル製品の販売や使用に関して、いかなる特許または著作権の侵害をも含み、あらゆる責任を負わないものとします。

    ・いかなる形および方法によっても、インテルの文書による許可なく、この資料の一部またはすべてを複写することは禁じられています。

    インテル、Intelロゴ、Pentium、MMX、Itanium は、アメリカ合衆国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。

    * 一般にブランド名または商品名は各社の商標または登録商標です。

    © 2000-2002 Intel Corporation.

    バージョンバージョンバージョンバージョン バージョン情報バージョン情報バージョン情報バージョン情報 日付日付日付日付

    -1001 インテル・インテグレーテッド・パフォーマンス・プリミティブ・リリース 1.0ベータの説明

    2000年 7月

    -1002 IPP 1.0ベータ 2の説明。アルファ合成、カラー・ツイスト、ガンマ補正、および FFT/DFT/DCT関数を追加

    2000年 9月

    -1003 IPP 1.0最終リリースの説明。新しい機能 (ウェーブレット変換、コンピュータ・ビジョン関数、拡張されたジオメトリ変換 )を追加。新しいデータ初期設定関数、算術演算関数、およびカラー変換関数も追加

    2001年 2月

    -1101 IPPリリース 1.1ベータの説明。JPEGコーデック関数を追加 2001年 4月

    ii

  • 目次

    第第第第 1 章章章章 概要概要概要概要このソフトウェアについて ............................................................................... 1-1ハードウェアとソフトウェアの必要条件 ..................................................... 1-2

    本書について ..................................................................................................... 1-2本書の構成 ................................................................................................... 1-2関数の説明 .............................................................................................. 1-3本書の対象読者 ....................................................................................... 1-4オンライン版 ........................................................................................... 1-4関連資料 .................................................................................................. 1-4

    表記規則 ....................................................................................................... 1-4字体の規則 .............................................................................................. 1-4命名規則 .................................................................................................. 1-5

    第第第第 2 章章章章 インテルインテルインテルインテル ® インテグレーテッド・パフォーマンス・プリミティブの概念インテグレーテッド・パフォーマンス・プリミティブの概念インテグレーテッド・パフォーマンス・プリミティブの概念インテグレーテッド・パフォーマンス・プリミティブの概念IPPと他のライブラリの関係 ............................................................................ 2-1共通点 ........................................................................................................... 2-2相違点 ........................................................................................................... 2-2

    関数の命名 ......................................................................................................... 2-3IPPの関数プロトタイプ ................................................................................... 2-6整数結果のスケーリング ................................................................................... 2-8エラー・レポート .............................................................................................. 2-9構造体と列挙子 ............................................................................................... 2-13画像のデータ・タイプと範囲 .......................................................................... 2-15主な動作モデル ............................................................................................... 2-17隣接操作 ..................................................................................................... 2-17IPPの処理対象領域 ................................................................................... 2-17

    i

  • IPP リファレンス・マニュアル : 第 2 巻

    第第第第 3 章章章章 サポート関数サポート関数サポート関数サポート関数バージョン情報関数 .......................................................................................... 3-1

    ippiGetLibVersion ......................................................................................... 3-1ステータス情報関数 .......................................................................................... 3-3

    GetStatusString ............................................................................................ 3-3メモリ割り当て関数 .......................................................................................... 3-4

    Malloc ........................................................................................................... 3-4Free .............................................................................................................. 3-5

    第第第第 4 章章章章 画像データ交換関数と初期化関数画像データ交換関数と初期化関数画像データ交換関数と初期化関数画像データ交換関数と初期化関数Convert ......................................................................................................... 4-2Scale ............................................................................................................ 4-4Set ................................................................................................................ 4-7Copy ............................................................................................................. 4-9AddRandUniform ........................................................................................ 4-13AddRandGauss .......................................................................................... 4-15ImageJaehne .............................................................................................. 4-16ImageRamp ................................................................................................ 4-19SampleLine ................................................................................................ 4-21

    第第第第 5 章章章章 画像の算術演算と論理演算画像の算術演算と論理演算画像の算術演算と論理演算画像の算術演算と論理演算算術演算 ............................................................................................................ 5-3

    Add ............................................................................................................... 5-4AddC ............................................................................................................ 5-7AddSquare ................................................................................................. 5-10AddProduct ................................................................................................. 5-11AddWeighted .............................................................................................. 5-13Mul .............................................................................................................. 5-15MulC ........................................................................................................... 5-17MulScale ..................................................................................................... 5-20MulCScale .................................................................................................. 5-22Sub ............................................................................................................. 5-24SubC .......................................................................................................... 5-26Div .............................................................................................................. 5-29DivC ............................................................................................................ 5-32

    ii

  • IPP リファレンス・マニュアル : 第 2 巻

    Abs ............................................................................................................. 5-36AbsDiff ........................................................................................................ 5-37AbsDiffC ..................................................................................................... 5-38Sqr .............................................................................................................. 5-39Sqrt ............................................................................................................. 5-41Ln ............................................................................................................... 5-44Exp ............................................................................................................. 5-47

    論理演算 .......................................................................................................... 5-49And ............................................................................................................. 5-49AndC .......................................................................................................... 5-51Not .............................................................................................................. 5-53Or ............................................................................................................... 5-54OrC ............................................................................................................. 5-56Xor .............................................................................................................. 5-58XorC ........................................................................................................... 5-60LShiftC ........................................................................................................ 5-62RShiftC ....................................................................................................... 5-64

    アルファ合成 ................................................................................................... 5-67AlphaComp ................................................................................................. 5-69AlphaCompC .............................................................................................. 5-70AlphaPremul ............................................................................................... 5-73AlphaPremulC ............................................................................................ 5-75

    第第第第 6 章章章章 画像のカラー変換画像のカラー変換画像のカラー変換画像のカラー変換RGBToYUV .................................................................................................. 6-3YUVToRGB .................................................................................................. 6-4RGBToYUV422 ............................................................................................ 6-6YUV422ToRGB ............................................................................................ 6-8RGBToYUV420 .......................................................................................... 6-10YUV420ToRGB .......................................................................................... 6-11RGBToYCbCr ............................................................................................. 6-13YCbCrToRGB ............................................................................................. 6-15RGBToYCbCr422 ....................................................................................... 6-16YCbCr422ToRGB ....................................................................................... 6-18RGBToXYZ ................................................................................................ 6-19

    iii

  • IPP リファレンス・マニュアル : 第 2 巻

    XYZToRGB ................................................................................................ 6-20RGBToLUV ................................................................................................ 6-22LUVToRGB ................................................................................................ 6-24RGBToYCC ................................................................................................ 6-26YCCToRGB ................................................................................................ 6-27RGBToHLS ................................................................................................ 6-29HLSToRGB ................................................................................................ 6-31RGBToGray ................................................................................................ 6-33ColorToGray ............................................................................................... 6-34ReduceBits ................................................................................................. 6-35カラー・ツイスト ....................................................................................... 6-38ColorTwist .................................................................................................. 6-38ColorTwist32f ............................................................................................. 6-40GammaFwd ................................................................................................ 6-43GammaInv .................................................................................................. 6-46

    第第第第 7 章章章章 しきい値演算と比較演算しきい値演算と比較演算しきい値演算と比較演算しきい値演算と比較演算しきい値 ............................................................................................................ 7-2

    Threshold ..................................................................................................... 7-2Threshold_GT .............................................................................................. 7-4Threshold_LT ............................................................................................... 7-7Threshold_Val .............................................................................................. 7-9Threshold_GTVal ....................................................................................... 7-11Threshold_LTVal ........................................................................................ 7-14Threshold_LTValGTVal .............................................................................. 7-16

    比較演算 .......................................................................................................... 7-19Compare ..................................................................................................... 7-19CompareC .................................................................................................. 7-20CompareEqualEps ..................................................................................... 7-23CompareEqualEpsC ................................................................................... 7-24

    第第第第 8 章章章章 モルフォロジー演算モルフォロジー演算モルフォロジー演算モルフォロジー演算グレー・スケールのためのフラットな構築要素 .......................................... 8-2Dilate3x3 ...................................................................................................... 8-5Erode3x3 ...................................................................................................... 8-7

    iv

  • IPP リファレンス・マニュアル : 第 2 巻

    Dilate ............................................................................................................ 8-9Erode .......................................................................................................... 8-11MorphologyInitAlloc .................................................................................... 8-13MorphologyFree ......................................................................................... 8-15ErodeStrip .................................................................................................. 8-16ErodeStrip_Rect ......................................................................................... 8-18ErodeStrip_Cross ....................................................................................... 8-20DilateStrip ................................................................................................... 8-22DilateStrip_Rect ......................................................................................... 8-24DilateStrip_Cross ....................................................................................... 8-26

    第第第第 9 章章章章 フィルタリング関数フィルタリング関数フィルタリング関数フィルタリング関数FilterBox ....................................................................................................... 9-3FilterMin ........................................................................................................ 9-5FilterMax ....................................................................................................... 9-7

    メディアン・フィルタ ....................................................................................... 9-9FilterMedian ................................................................................................ 9-10FilterMedianHoriz ....................................................................................... 9-12FilterMedianVert ......................................................................................... 9-13FilterMedianCross ...................................................................................... 9-15FilterMedianColor ....................................................................................... 9-16

    汎用リニア・フィルタ ..................................................................................... 9-18Filter ........................................................................................................... 9-18Filter32f ...................................................................................................... 9-21

    分離可能フィルタ ............................................................................................ 9-23FilterColumn ............................................................................................... 9-23FilterColumn32f .......................................................................................... 9-25FilterRow .................................................................................................... 9-26FilterRow32f ............................................................................................... 9-28

    2Dたたみ込み ................................................................................................. 9-30ConvFull ..................................................................................................... 9-30ConvValid ................................................................................................... 9-33

    固定フィルタ ................................................................................................... 9-35FilterPrewittHoriz ........................................................................................ 9-36FilterPrewittVert .......................................................................................... 9-37

    v

  • IPP リファレンス・マニュアル : 第 2 巻

    FilterSobelHoriz .......................................................................................... 9-40FilterSobelVert ............................................................................................ 9-41FilterRobertsDown ...................................................................................... 9-42FilterRobertsUp .......................................................................................... 9-44FilterLaplace ............................................................................................... 9-45FilterGauss ................................................................................................. 9-46FilterHipass ................................................................................................ 9-48FilterLowpass ............................................................................................. 9-50FilterSharpen .............................................................................................. 9-51

    第第第第 10 章章章章 画像の線形変換画像の線形変換画像の線形変換画像の線形変換フーリエ変換 ................................................................................................... 10-3実数 -複素数パックド形式 (RCPack2D形式 ) ........................................... 10-4FFTInitAlloc ................................................................................................ 10-5FFTFree ..................................................................................................... 10-6FFTGetBufSize ........................................................................................... 10-7FFTFwd ...................................................................................................... 10-8FFTInv ...................................................................................................... 10-12MulPack .................................................................................................... 10-14DFTInitAlloc .............................................................................................. 10-17DFTFree ................................................................................................... 10-18DFTGetBufSize ........................................................................................ 10-19DFTFwd .................................................................................................... 10-20DFTInv ...................................................................................................... 10-22

    離散コサイン変換 .......................................................................................... 10-24DCTFwdInitAlloc ....................................................................................... 10-24DCTInvInitAlloc ......................................................................................... 10-25DCTFwdFree ............................................................................................ 10-26DCTInvFree .............................................................................................. 10-27DCTFwdGetBufSize ................................................................................. 10-27DCTInvGetBufSize ................................................................................... 10-28DCTFwd ................................................................................................... 10-29DCTInv ..................................................................................................... 10-31DCT8x8Fwd ............................................................................................. 10-32DCT8x8Inv ............................................................................................... 10-34

    vi

  • IPP リファレンス・マニュアル : 第 2 巻

    第第第第 11 章章章章 画像の統計関数画像の統計関数画像の統計関数画像の統計関数Sum ............................................................................................................ 11-3Mean .......................................................................................................... 11-4Mean_StdDev ............................................................................................. 11-7CountInRange ............................................................................................ 11-9Min ............................................................................................................ 11-10MinIndx ..................................................................................................... 11-11Max ........................................................................................................... 11-13MaxIndx .................................................................................................... 11-14MinMax ..................................................................................................... 11-16MinMaxIndx .............................................................................................. 11-18

    画像のモーメント .......................................................................................... 11-20MomentInitAlloc ........................................................................................ 11-21MomentFree ............................................................................................. 11-22Moments ................................................................................................... 11-23GetSpatialMoment .................................................................................... 11-25GetNormalizedSpatialMoment ................................................................. 11-26GetCentralMoment ................................................................................... 11-28GetNormalizedCentralMoment ................................................................. 11-29GetHuMoments ........................................................................................ 11-30

    画像のノルム ................................................................................................. 11-33Norm_Inf ................................................................................................... 11-33Norm_L1 ................................................................................................... 11-35Norm_L2 ................................................................................................... 11-38NormDiff_Inf ............................................................................................. 11-41NormDiff_L1 ............................................................................................. 11-43NormDiff_L2 ............................................................................................. 11-46NormRel_Inf ............................................................................................. 11-49NormRel_L1 ............................................................................................. 11-51NormRel_L2 ............................................................................................. 11-54

    第第第第 12 章章章章 画像のジオメトリ変換画像のジオメトリ変換画像のジオメトリ変換画像のジオメトリ変換ジオメトリ変換における ROIの処理 ......................................................... 12-3Resize ........................................................................................................ 12-5ResizeCenter .............................................................................................. 12-8

    vii

  • IPP リファレンス・マニュアル : 第 2 巻

    Mirror ........................................................................................................ 12-11Remap ...................................................................................................... 12-13Rotate ....................................................................................................... 12-16GetRotateShift .......................................................................................... 12-19GetRotateQuad ........................................................................................ 12-20GetRotateBound ....................................................................................... 12-21RotateCenter ............................................................................................ 12-22Shear ........................................................................................................ 12-24GetShearQuad ......................................................................................... 12-27GetShearBound ........................................................................................ 12-28WarpAffine ................................................................................................ 12-29WarpAffineBack ........................................................................................ 12-32WarpAffineQuad ....................................................................................... 12-35GetAffineQuad .......................................................................................... 12-37GetAffineBound ........................................................................................ 12-38GetAffineTransform .................................................................................. 12-39WarpPerspective ...................................................................................... 12-40WarpPerspectiveBack .............................................................................. 12-43WarpPerspectiveQuad ............................................................................. 12-45GetPerspectiveQuad ................................................................................ 12-47GetPerspectiveBound .............................................................................. 12-48GetPerspectiveTransform ........................................................................ 12-49WarpBilinear ............................................................................................. 12-50WarpBilinearBack ..................................................................................... 12-53WarpBilinearQuad .................................................................................... 12-55GetBilinearQuad ....................................................................................... 12-57GetBilinearBound ..................................................................................... 12-58GetBilinearTransform ............................................................................... 12-59

    第第第第 13 章章章章 ウェーブレット変換ウェーブレット変換ウェーブレット変換ウェーブレット変換WTFwdInitAlloc .......................................................................................... 13-5WTFwdFree ................................................................................................ 13-7WTFwdGetBufSize ..................................................................................... 13-8WTFwd ....................................................................................................... 13-9WTInvInitAlloc .......................................................................................... 13-13

    viii

  • IPP リファレンス・マニュアル : 第 2 巻

    WTInvFree ................................................................................................ 13-15WTInvGetBufSize ..................................................................................... 13-16WTInv ....................................................................................................... 13-17

    第第第第 14 章章章章 コンピュータ・ビジョンコンピュータ・ビジョンコンピュータ・ビジョンコンピュータ・ビジョンippiAddを使用して背景の差分を計算する ...................................................... 14-3フィルタ .......................................................................................................... 14-5一次導関数の Sobel演算子 ........................................................................ 14-5二次導関数の Sobel演算子 ........................................................................ 14-7三次導関数の Sobel演算子 ........................................................................ 14-9ラプラシアン近似 ....................................................................................... 14-9BlurInitAlloc .............................................................................................. 14-10LaplaceInitAlloc ........................................................................................ 14-11SobelInitAlloc ............................................................................................ 14-12ConvolFree ............................................................................................... 14-13Blur ........................................................................................................... 14-13Laplace ..................................................................................................... 14-15Scharr_Dx ................................................................................................ 14-16Scharr_Dy ................................................................................................ 14-17Sobel ........................................................................................................ 14-19Sobel3x3_Dx ............................................................................................ 14-20Sobel3x3_Dy ............................................................................................ 14-21Sobel3x3_D2x .......................................................................................... 14-22Sobel3x3_D2y .......................................................................................... 14-23Sobel3x3_DxDy ........................................................................................ 14-25

    特徴検出関数 ................................................................................................. 14-26コーナー検出 ............................................................................................ 14-26Cannyエッジ検出法 ................................................................................ 14-27第 1段階 : 微分 ................................................................................... 14-27第 2段階 : 極大点以外を隠す .............................................................. 14-27第 3段階 : エッジのしきい値操作 ....................................................... 14-28

    CannyGetSize .......................................................................................... 14-29Canny ....................................................................................................... 14-29EigenValsVecsGetSize ............................................................................ 14-30EigenValsVecs ......................................................................................... 14-31

    ix

  • IPP リファレンス・マニュアル : 第 2 巻

    MinEigenValGetSize ................................................................................ 14-33MinEigenVal ............................................................................................. 14-34MatchTemplateGetBufSize ...................................................................... 14-35MatchTemplate ......................................................................................... 14-36

    距離変換関数 ................................................................................................. 14-40DistanceTransform ................................................................................... 14-40GetDistanceTransformMask ..................................................................... 14-42

    フラッド・フィル関数 ................................................................................... 14-43FloodFillGetSize ....................................................................................... 14-44FloodFillGetSize_Grad ............................................................................. 14-45FloodFill .................................................................................................... 14-45FloodFill_Grad .......................................................................................... 14-47

    モーション・テンプレート関数 .................................................................... 14-48モーション描写 ................................................................................... 14-49MHI画像の更新 ................................................................................... 14-49

    UpdateMotionHistory ................................................................................ 14-50角錐関数 ........................................................................................................ 14-51

    PyrDownGetBufSize ................................................................................. 14-53PyrUpGetBufSize ..................................................................................... 14-54PyrDown ................................................................................................... 14-55PyrUp ....................................................................................................... 14-56

    第第第第 15 章章章章 JPEGコーデック関数コーデック関数コーデック関数コーデック関数サポート関数 ................................................................................................... 15-2

    ippjGetLibVersion ....................................................................................... 15-2カラー変換関数 ............................................................................................... 15-3

    RGBToY_JPEG .......................................................................................... 15-3RGBToYCbCr_JPEG ................................................................................. 15-4CMYKToYCCK_JPEG ............................................................................... 15-5YCbCrToRGB_JPEG ................................................................................. 15-7YCCKToCMYK_JPEG ............................................................................... 15-8

    複合カラー変換関数 ...................................................................................... 15-10RGBToYCbCr444LS_MCU ...................................................................... 15-11RGBToYCbCr422LS_MCU ...................................................................... 15-12RGBToYCbCr411LS_MCU ...................................................................... 15-13

    x

  • IPP リファレンス・マニュアル : 第 2 巻

    CMYKToYCCK444LS_MCU .................................................................... 15-14CMYKToYCCK422LS_MCU .................................................................... 15-15CMYKToYCCK411LS_MCU .................................................................... 15-16YCbCr444ToRGBLS_MCU ...................................................................... 15-17YCbCr422ToRGBLS_MCU ...................................................................... 15-18YCbCr411ToRGBLS_MCU ...................................................................... 15-19YCCK444ToCMYKLS_MCU .................................................................... 15-20YCCKToCMYK422LS_MCU .................................................................... 15-21YCCKToCMYK411LS_MCU .................................................................... 15-22

    量子化関数 ..................................................................................................... 15-23QuantFwdRawSpecInit_JPEG ................................................................. 15-23QuantFwdSpecInit_JPEG ........................................................................ 15-24QuantFwd8x8_JPEG ................................................................................ 15-25QuantInvSpecInit_JPEG .......................................................................... 15-26 QuantInv8x8_JPEG ................................................................................. 15-27

    量子化、DCT、およびレベル・シフトを組み合わせた関数 ......................... 15-28DCTQuantFwd8x8LS_JPEG .................................................................... 15-28DCTQuantInv8x8LS_JPEG ...................................................................... 15-29

    レベル・シフト関数 ...................................................................................... 15-31Sub128_JPEG .......................................................................................... 15-31Add128_JPEG .......................................................................................... 15-32

    並べ替え関数 ................................................................................................. 15-34ZigzagFwd8x8_JPEG ............................................................................... 15-34ZigzagInv8x8_JPEG ................................................................................. 15-35

    サンプリング関数 .......................................................................................... 15-36SampleDownH2V1_JPEG ........................................................................ 15-36SampleDownH2V2_JPEG ........................................................................ 15-37SampleUpH2V1_JPEG ............................................................................ 15-38SampleUpH2V2_JPEG ............................................................................ 15-40

    ハフマン・コーデック関数 ........................................................................... 15-42EncoderHuffmanRawSpecInit_JPEG ....................................................... 15-44EncoderHuffmanSpecGetBufSize_JPEG ................................................. 15-45EncoderHuffmanSpecInit_JPEG .............................................................. 15-46EncoderHuffmanSpecInitAlloc_JPEG ...................................................... 15-47EncoderHuffmanSpecFree_JPEG ........................................................... 15-48

    xi

  • IPP リファレンス・マニュアル : 第 2 巻

    EncoderHuffmanStateGetBufSize_JPEG ................................................ 15-48EncoderHuffmanStateInit_JPEG .............................................................. 15-49EncoderHuffmanStateInitAlloc_JPEG ...................................................... 15-50EncoderHuffmanStateFree_JPEG ........................................................... 15-51EncoderHuffman8x8_JPEG ..................................................................... 15-51GetHuffmanStatistics8x8_JPEG .............................................................. 15-53GetHuffmanStatistics8x8_DCFirst_JPEG ................................................ 15-54GetHuffmanStatistics8x8_ACFirst _JPEG ............................................... 15-55GetHuffmanStatistics8x8_ACRefine_JPEG ............................................. 15-56EncoderHuffman8x8_DCFirst_JPEG ....................................................... 15-57EncoderHuffman8x8_DCRefine_JPEG .................................................... 15-58EncoderHuffman8x8_ACFirst_JPEG ....................................................... 15-60EncoderHuffman8x8_ACRefine_JPEG .................................................... 15-61DecoderHuffmanSpecGetBufSize_JPEG ................................................ 15-63DecoderHuffmanSpecInit_JPEG .............................................................. 15-64DecoderHuffmanSpecInitAlloc_JPEG ...................................................... 15-65DecoderHuffmanSpecFree_JPEG ........................................................... 15-66DecoderHuffmanStateGetBufSize_JPEG ................................................ 15-66DecoderHuffmanStateInit_JPEG .............................................................. 15-67DecoderHuffmanStateInitAlloc_JPEG ...................................................... 15-68DecoderHuffmanStateFree_JPEG ........................................................... 15-68DecoderHuffman8x8_JPEG ..................................................................... 15-69DecoderHuffman8x8_DCFirst_JPEG ....................................................... 15-70DecoderHuffman8x8_DCRefine_JPEG ................................................... 15-72DecoderHuffman8x8_ACFirst_JPEG ....................................................... 15-73DecoderHuffman8x8_ACRefine_JPEG .................................................... 15-74

    参考文献 ........................................................................................................ 15-76

    付録付録付録付録 A 特殊な事例の処理特殊な事例の処理特殊な事例の処理特殊な事例の処理

    参考文献参考文献参考文献参考文献

    用語集用語集用語集用語集

    索引索引索引索引

    xii

  • 1-1

    1

    概要

    本書では、画像処理用インテル® インテグレーテッド・パフォーマンス・プリミティブ(IPP)の構造、動作、および関数について説明する。本書は、IPPリファレンス・マニュアル全 2巻のうちの第 2巻である (第 1巻では、信号処理用 IPPについて説明している )。IPP ソフトウェア・パッケージは、多くの関数をサポートしている。これらの関数のパフォーマンスは、インテル・アーキテクチャ (IA) (特にMMX®テクノロジおよびストリーミング SIMD 拡張命令 )上では大きく向上する。

    IPP 画像処理ソフトウェアは、ピクセルの 2次元配列に対して実行される、オーバーヘッドの小さい高性能の操作を集めたものである。

    本書では、インテグレーテッド・パフォーマンス・プリミティブの概念と、画像処理の領域で使用されるデータ・タイプの定義および動作モデルについて説明する。また、本書では、IPP ソフトウェアに含まれている画像処理関数について詳しく説明する。

    本章では、IPP ソフトウェアの概要と、本書の構成について説明する。

    このソフトウェアについてこのソフトウェアについてこのソフトウェアについてこのソフトウェアについてインテグレーテッド・パフォーマンス・プリミティブ・ソフトウェアは、MMX テクノロジとストリーミング SIMD 拡張命令のコアを構成する SIMD (Single-Instruction, Multiple Data)命令の並列処理をフルに利用する。これらの技術は、高い処理能力を必要とする信号処理および画像処理関数のパフォーマンスを向上させる。

  • IPP リファレンス・マニュアル : 第 2 巻 概要 1

    ハードウェアとソフトウェアの必要条件ハードウェアとソフトウェアの必要条件ハードウェアとソフトウェアの必要条件ハードウェアとソフトウェアの必要条件

    IPP ソフトウェアは、インテル・アーキテクチャ・プロセッサとMicrosoft* Windows* 95、Windows 98、またはWindows NT*を搭載したパーソナル・コンピュータ上で動作する。IPPは、Cまたは C++で記述されたユーザ・アプリケーションまたはライブラリに統合して使用できる。

    本書について本書について本書について本書について本書には、IPP ソフトウェアで使用されている画像処理の概念の基礎知識と、画像処理用IPPの各関数の詳しい説明が記載されている。IPPの関数は、機能によってグループ分けされている。関数の各グループについては、第 3章~第 15章で説明する。

    本書の構成本書の構成本書の構成本書の構成本書は、次の各章で構成されている。

    第 1章 「概要」。画像処理用インテグレーテッド・パフォーマンス・プリミティブの概要、本書の構成、および表記規則について説明する。

    第 2章 「インテル・インテグレーテッド・パフォーマンス・プリミティブの概念」。IPPでの画像処理の基礎になる概念と、サポートしているデータ形式および動作モードについて説明する。

    第 3章 「サポート関数」。IPP ソフトウェアの動作をサポートするための関数(メモリ割り当て関数、ステータス情報関数など )について説明する。

    第 4章 「画像データ交換関数と初期化関数」。画像の設定、コピー、変換、拡大 /縮小、および特定の画像の初期化に使用される画像処理プリミティブ関数について説明する。

    第 5章 「画像の算術演算と論理演算」。算術演算、論理演算、およびアルファ合成演算を使用してピクセル値を修正する、IPP画像処理関数について説明する。

    第 6章 「画像のカラー変換」。IPPのカラー変換演算について説明する。

    第 7章 「しきい値演算と比較演算」。しきい値演算と画像の比較演算を実行する IPP関数について説明する。

    第 8章 「モルフォロジー演算」。収縮および膨張モルフォロジー演算について説明する。

    1-2

  • IPP リファレンス・マニュアル : 第 2 巻 概要 1

    第 9章 「フィルタリング関数」。リニア・フィルタを使用する IPPフィルタリ

    ング関数とノンリニア・フィルタを使用する IPPフィルタリング関数について説明する。

    第 10章 「画像のリニア変換」。画像処理用 IPPでサポートしている、高速フーリエ変換 (FFT)、離散フーリエ変換 (DFT)、および離散コサイン変換の各関数について説明する。

    第 11章 「画像の統計関数」。画像のノルムとモーメントなど、画像の統計的な特性を計算する IPPの関数について説明する。

    第 12章 「画像のジオメトリ変換」。サポートしている画像のジオメトリ変換について説明する。

    第 13章 「ウェーブレット変換」。サポートしている画像のウェーブレット分解および再構成について説明する。

    第 14章 「コンピュータ・ビジョン」。コンピュータ・ビジョン・アプリケーション専用の IPP関数について説明する。

    第 15章 「JPEGコーデック関数」。JPEGコーデック専用の IPP関数について説明する。

    本書は、この他に、IPP関数による特殊な事例の処理について説明した付録と、「用語集」、「参考文献」、および「索引」で構成されている。

    関数の説明関数の説明関数の説明関数の説明

    第 3章~第 15章では、各関数を短い名前で (ippiプリフィックスと記述子なしで )示し、関数の目的について簡単に説明する。次に、関数の呼び出しシーケンス、引数の定義、および関数の目的の詳しい説明を示す。各関数の説明には、以下の項目がある。

    引数 関数のすべての引数について説明する。

    説明 関数の定義を示し、その関数によって実行される処理について説明する。コードの例と関数が実行する式を示すこともある。

    戻り値 関数が実行された結果設定される、ステータス・コードの値について説明する。

    1-3

  • IPP リファレンス・マニュアル : 第 2 巻 概要 1

    本書の対象読者本書の対象読者本書の対象読者本書の対象読者

    本書は、画像処理アプリケーション、画像処理ライブラリ、および異種領域アプリケーションの開発者を対象とする。読者は、Cの使用経験と、画像処理の用語および原理に関する知識が必要である。

    オンライン版オンライン版オンライン版オンライン版

    本書は、PDF(Portable Document Format)電子形式で提供される。本書のハードコピー版が必要な場合は、Adobe* Acrobat*(本書のオンライン表示用ツール )の印刷機能を使用してファイルを印刷できる。

    関連資料関連資料関連資料関連資料

    画像処理の概念とアルゴリズムの詳細については、「参考文献」に示した資料を参照のこと。

    表記規則表記規則表記規則表記規則

    本書の表記規則には、以下のものがある。

    • 本文とコードを区別するための字体の規則• さまざまなアイテムの命名規則

    字体の規則字体の規則字体の規則字体の規則

    本書では、以下の字体の規則を使用する。

    THIS TYPE STYLE 本文中で IPPの不変識別子を示す。例:IPPI_INTER_LINEAR

    This type style IppiSizeのように、大文字と組み合わせて構造体の名前を示す。また、関数名、コード例、および呼び出し文にも使用する。例:ippiMomentInitAlloc()

    This type style 引数とパラメータの説明の中の変数。例:value, srcStep

    1-4

  • IPP リファレンス・マニュアル : 第 2 巻 概要 1

    命名規則命名規則命名規則命名規則

    IPP ソフトウェアは、さまざまなアイテムに対して次の命名規則を使用する。

    • 不変識別子は大文字で示す。例:IPPI_INTER_CUBIC

    • すべての画像処理専用の構造体および列挙子には、Ippi プリフィックスが付く。これに対して、IPP ソフトウェア全体に共通の構造体および列挙子には、Ippプリフィックスが付く。例:IppiPoint, IppDitherType

    • すべての画像処理関数の名前には、ippiプリフィックスが付加される。コード例の中では、このプリフィックスにより、IPPインターフェイス関数とアプリケーションの関数を区別できる。

    • 関数名の各部分の最初の文字は、アンダースコアなしの大文字である。例:ippiGetSpatialMoment

    IPPの関数名の構造の詳細は、第 2章の「関数の命名」を参照のこと。

    注:注:注:注:本書では、関数名の ippiプリフィックスは、コードの例には常に使用されるが、本文中では省略されることがある。

    1-5

  • IPP リファレンス・マニュアル : 第 2 巻 概要 1

    1-6

  • 2-1

    2

    インテル® インテグレーテッド・パフォーマンス・プリミティブの概念

    本章では、インテグレーテッド・パフォーマンス・プリミティブ・ソフトウェアの目的と構造について説明し、インテル・パフォーマンス・ライブラリ集の他の製品との相違点と関係についても解説する。また、本章では、IPPの画像処理部分で使用されるいくつかの基本的な概念、サポートされるデータ形式と動作モード、および関数の命名規則についても説明する。

    IPPと他のライブラリの関係と他のライブラリの関係と他のライブラリの関係と他のライブラリの関係インテグレーテッド・パフォーマンス・プリミティブは、インテル・パフォーマンス・ライブラリ集の他の製品と同様に、特定の領域の操作を実行する高性能コードを集めたものである。IPPと既存のライブラリ製品の相違点は、IPPが低レベルのステートレス・インターフェイスを提供する点にある。

    IPPは、インテル・パフォーマンス・ライブラリ集の他のライブラリの開発と使用の経験に基づいて開発され、以下の主な特徴を備えている。

    • IPPは、信号処理、音声認識、および画像処理など、複数の異なる領域のアプリケーションを作成するための基本的な関数を提供する。

    • IPPの関数は、異なるアプリケーション領域を参照するプリミティブについても、共通の命名規則やよく似たプロトタイプなど、同じインターフェイス規則を適用する。

    • IPPの関数は、アプリケーション・プログラムのパフォーマンスの向上に最適な抽象レベルを使用する。

    プログラムのパフォーマンスを向上させるために、IPPの関数は、インテル・アーキテクチャ・プロセッサの利点をすべて利用するように最適化されている。また、IPPは、他のライブラリのように複雑なデータ構造体を使用しないため、全体的な実行オーバーヘッドが小さくなる。

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    IPPは、異種プラットフォーム・アプリケーションの開発に最適である。例えば、IA-32プラットフォーム向けに開発した関数を、Itanium® ベースのプラットフォームとStrongARM*テクノロジを採用したプラットフォームに簡単に移植できる。また、各 IPP関数は、ANSI Cで記述されたリファレンス・コードを持つ。このリファレンス・コードにより、使用されるアルゴリズムが明確に表現され、異なるオペレーティング・システム間の互換性が実現される。

    以下の各項では、インテル・イメージ処理ライブラリ (IPL)と IPP ソフトウェアの画像処理部分の共通点と相違点について詳しく説明する。

    IPLと IPPは、いずれも画像処理に使用できる。これだけでも、両者がよく似ていることがわかる。しかし、2つの製品は、異なるタイプのソフトウェア開発者を対象としている。

    共通点共通点共通点共通点

    IPPと IPLの主な共通点は、IPPの画像処理部分と IPLが同じ機能を持つことである。つまり、両者は、画像に対して実行される同じ動作の集まりである。もう 1つの共通点として、多くの画像処理プリミティブは、IPLの内部関数をわずかに修正して作成されているということがある。IPPは、動作モードとデータ・タイプごとに別々の関数を用意している。これらの関数は、イメージ処理ライブラリ内の対応する関数とは異なるものであり、ippiプリフィックスによって示される。

    相違点相違点相違点相違点

    IPLは、ライブラリ・データを格納する構造体と画像それ自体で構成される、独自のアーキテクチャを持つ。このアーキテクチャは、一部のデータ・タイプの抽象が可能である。しかし、ライブラリの抽象レベルが高いために、以下のデメリットがある。

    • 開発者は、IPL関数を使用する場合は、IPLデータ構造体を使用しなければならない。• 構造体内のデータ・フィールドの解析プロセスと、大量のコード分岐によって、パフォーマンスが多少低下する。

    また、IPLでは、画像を抽象して操作するため、多数の画像処理モードをサポートしなければならない。例えば、ほぼすべての IPL関数は、ビット・マスクを使用してタイル表示画像を処理できる。

    2-2

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    IPP ソフトウェアは、イメージ処理ライブラリより低いレベルの画像処理関数を提供する。IPP関数は、画像を抽象したものではなく、2次元配列データを操作する。これには、以下のような主なメリットがある。

    • 開発者が IPLの構造体に入力する必要がなくなる。• 構造体のフィールドの解析とコード分岐が不要になり、関数のパフォーマンスが最大限に向上する。

    • 既存のアプリケーションまたはアーキテクチャに簡単に統合できる、簡単でわかりやすい低レベルの関数の集合体が提供される。

    関数の命名関数の命名関数の命名関数の命名IPP関数の命名規則は、信号処理の領域と画像処理の領域で共通である。信号処理関数は関数名に ippsプリフィックスが付き、画像処理関数は ippiプリフィックスが付く。

    画像処理関数の場合、IPPの関数名の形式は、一般的に次のように表される。

    ippi__( );

    この形式の各要素について、以下の各項目で説明する。

    名前名前名前名前

    nameは、関数が実際に実行するコア動作を表す省略形である。例えば、"Add"、"Sqrt"などの後に、(場合によっては )関数固有の修飾子が付加される。

    = [_functionSpecificModifier]

    修飾子が存在する場合、その修飾子は、特定の関数の多少異なるバージョンを示す。

    データ・タイプデータ・タイプデータ・タイプデータ・タイプ

    datatype フィールドは、関数によって使用されるデータ・タイプを示す。

    IPPの画像処理関数は、以下のデータ・タイプのソース・イメージとデスティネーション・イメージをサポートしている。

    • 8u 8ビット、符号なしデータ• 8s 8ビット、符号付きデータ• 16u 16ビット、符号なしデータ• 16s 16ビット、符号付きデータ• 16sc 16ビット、short型複素数データ

    2-3

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    • 32u 32ビット、符号なしデータ• 32s 32ビット、符号付きデータ• 32sc 32ビット、int型複素数データ• 32f 32ビット、単精度実数浮動小数点データ• 32fc 32ビット、単精度複素数浮動小数点データ• 64s 64ビット、クワッドワード符号付きデータ• 64f 64ビット、倍精度実数浮動小数点データIPP内では、複素数データの形式は、次のように定義された構造体によって表現される。

    typedef struct { Ipp16s re; Ipp16s im;} Ipp16sc;

    typedef struct { Ipp32s re; Ipp32s im;} Ipp32sc;

    typedef struct { Ipp32f re; Ipp32f im;} Ipp32fc;

    re,im は、それぞれ実数部と虚数部を示す。

    複素数データ形式は、一部の画像処理用算術演算関数によって使用される。32fc形式は、一部のフーリエ変換関数の入出力データの格納にも使用される。64ビット形式 (64sおよび 64f)は、一部の画像統計関数によって計算されたデータの格納に使用される。

    1つのデータ・タイプを操作する関数の場合、datatypeフィールドには、上記の値のうち 1つが入る。

    2-4

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    関数によって操作されるソース・イメージとデスティネーション・イメージのデータ・タイプが異なる場合は、各データ・タイプの識別子が、ソースからデスティネーションの順に関数名の中に示される。例えば、ソース・イメージの 8ビット符号なしデータをデスティネーション・イメージの 32ビット浮動小数点データに変換する関数の場合、datatypeフィールドの値は、8u32fになる。

    データ記述子データ記述子データ記述子データ記述子

    descriptorフィールドでは、操作に関連付けられるデータがさらに詳しく記述される。このフィールドは、暗黙のパラメータを含むことも、必要な追加パラメータを示すこともある。

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

    ただし、関数を置き換えたものの数が多すぎる場合、一部の関数は、内部操作を指定する引数を使用できる (例えば、ippiThreshold)。

    画像処理関数には、以下の記述子が使用される。

    • A データにアルファ・チャネル (常に最後のチャネル )が含まれる (C4が必要 )。• Cn データはn個の離散インターリーブ・チャネルで構成される (1(デフォルト )、

    3、4)。

    • C 処理対象チャネル (COI)が操作に使用される。• D2 画像は 2次元画像である。• I 操作はインプレース操作である。• M ソース・イメージとデスティネーション・イメージにマスク ROIを使用す

    る。

    • Pn データは、n個の離散プレーン (非インターリーブ )チャネルと各プレーンへのポインタで構成される。

    • R 処理対象領域 (ROI)を使用する。• Sfs 飽和処理と固定スケーリング・モードを使用する。

    注:注:注:注:関数の引数リスト内では、Ippプリフィックスがデータ・タイプの中に表示される。例えば、8ビット符号付きデータは、Ipp8s型として示される。

    2-5

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    関数名内の記述子の省略形は、常にアルファベット順に示される。

    関数の中には、上記のすべての省略形を持たないものもある。例えば、コピー操作の関数には、インプレース・モードの記述子は不要である。

    また、一部の操作では、いくつかのデータ記述子が暗黙的に前提とされる。画像処理関数は、デフォルトでは 2次元画像を操作し、結果をスケーリングせずに飽和処理する。この場合、暗黙の省略形 D2および Sns (飽和処理、スケーリングなし )は、関数名に含まれない。

    引数引数引数引数

    関数内の引数は、すべてのソースオペランド、すべてのデスティネーション・オペランド、それ以外のすべての操作固有の引数の順に並べられる。

    ソース・イメージの引数は、"Src"または "SrcN"(入力画像が 2つ以上ある場合 )という名前である。デスティネーション・イメージの引数は、"Dst"という名前である。インプレース操作では、入力 /出力引数に "SrcDst"という名前が含まれる。

    IPPの関数プロトタイプの関数プロトタイプの関数プロトタイプの関数プロトタイプIPPの関数名は、nameフィールドの後に、datatypeフィールドと descriptorフィールドが置かれる (本章の「関数の命名」を参照 )。ほとんどの IPP画像処理関数は、多くの変種を持つ。それぞれの変種は、操作に関連付けられるデータ・タイプと追加パラメータが異なる。

    関数の各変種は、独自のプロトタイプを持つ。プロトタイプは、関数の定義と、アプリケーション・プログラムからの関数の呼び出しに使用される。特定の関数に多くの変種がある場合、それらのプロトタイプは非常によく似ている。

    本書の関数の説明の節では、よく似たプロトタイプをすべて示さなくてすむように、このようなプロトタイプのテンプレートを示し、続いて各関数に使用可能なデータ・タイプと記述子の表を示す。わかりやすいように、関数名のデータ・タイプ・フィールドと記述子フィールドは、次のように modとして示される。

    = _

    例えば、非インプレース操作を実行する画像膨張関数のプロトタイプのテンプレートは、次のようになる。

    IppStatus ippiDilate_(const Ipp* pSrc, int srcStep, Ipp* pDst, int dstStep, IppiSize roiSize);

    2-6

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    サポートされる modの値は、次のとおりである。

    この表記は、ippiDilate関数には非インプレース操作用の 3つの変種があり、各変種は (Ipp8u型の )8ビット符号なしデータを処理するが、処理される画像内のチャネル数が異なるという意味である。これらの変種のプロトタイプは次のようになる。

    IppStatus ippiDilate_8u_C1R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);

    IppStatus ippiDilate_8u_C3R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);

    IppStatus ippiDilate_8u_AC4R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize);

    したがって、特定の関数の変種の完全な名前と引数リストは、次の方法で得られる。

    • 関数の動作モード (本書では事例事例事例事例 1、 事例事例事例事例 2...として示される )を選び、サポートされるデータ・タイプと記述子を表で確認する。

    • 選択したデータ・タイプと記述子をアンダースコアで区切って連結し、関数名の mod フィールドを設定する。

    • それぞれのテンプレートを使用して、引数リスト内のすべての datatypeフィールドを、選択したデータ・タイプで置き換える。引数リスト内の datatypeの前に、Ippプリフィックスが付いていることに注意する (詳細については、本章の「データ・タイプ」を参照 )。

    例:3チャネルのデスティネーション・イメージの各チャネルを符号付き 16ビット値に設定する ippiSet関数の変種のプロトタイプを得るには、「事例事例事例事例 2:各カラー・チャネルを指:各カラー・チャネルを指:各カラー・チャネルを指:各カラー・チャネルを指定した値に設定する定した値に設定する定した値に設定する定した値に設定する」を選択して、datatype = 16s, descriptor = C3Rを使用する。modフィールドを 16s_C3Rで置き換えると、次のような必要なプロトタイプが得られる。

    ippiSet_16s_C3R(const Ipp16s value[3], Ipp16s* pDst, int dstStep, IppiSize roiSize);

    8u_C1R

    8u_C3R

    8u_AC4R

    2-7

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    整数結果のスケーリング整数結果のスケーリング整数結果のスケーリング整数結果のスケーリング

    整数データを操作する画像処理関数の一部は、内部で計算された出力結果を、関数のパラメータの 1つで指定される整数 scaleFactorでスケーリングする。これらの関数の名前には、Sfs記述子が付く。

    係数には、負の値、正の値、または 0を使用できる。内部計算は、一般的に入力画像と出力画像に使用されるデータ・タイプより高い精度で実行されるため、スケーリングが適用される。

    整数結果のスケーリングは、関数のリターンの前に、出力ピクセル値に 2-scaleFactorを掛けることによって行われる。これによって、出力データの範囲または精度のいずれかを維持できる。通常は、正の係数を使用したスケーリングは、シフト操作によって実行される。得られた結果は、最も近い整数に合わせて切り捨てられる。例えば、入力値 200に対する 2乗演算 ippiSqrの結果得られる Ipp16sの整数は、40000ではなく 32767になる。つまり、結果は飽和処理されるため、正確な値は復元できない。係数 scaleFactor = 1を使用して出力値をスケーリングすると、20000という結果が得られる。この結果は飽和処理されないため、20000*2として正確な値を復元できる。したがって、出力データの範囲が維持される。

    次の例は、スケーリングによって精度を部分的に維持する方法を示している。入力値 2に対する整数平方根演算 ippiSqrt(スケーリングなし )の結果は、1.414ではなく 1になる。内部で計算された出力値を、係数 scaleFactor = -3 でスケーリングすると、11という結果が得られる。これによって、より正確な値を 11*2-3 = 1.375として復元できる。

    注:注:注:注:スケーリングが使用される場合でも、整数演算の結果は、常にデスティネーションのデータ・タイプの範囲に合わせて飽和処理される。

    2-8

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    エラー・レポートエラー・レポートエラー・レポートエラー・レポート

    IPP関数は、実行された操作のステータス・コードを返し、呼び出し元プログラムに対してエラーと警告を報告する。したがって、エラーに関連する処置の実行やエラーからの回復は、アプリケーション側の役割となる。エラー・ステータスの最後の値は格納されない。関数のリターン時にこの値をチェックするかどうかは、ユーザが決める必要がある。ステータス・コードは、IppStatus型のグローバルな整数定数である。

    画像処理に関するステータス・コードと、それに対応する IPPが報告するメッセージを、表 2-1に示す。

    表表表表 2-1 ステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージ

    ステータス・コードステータス・コードステータス・コードステータス・コード 値値値値 メッセージメッセージメッセージメッセージ

    ippStsNotSupportedModeErr -9999 The requested mode is currently not supported 要求されたモードは、現在サポートされていない。

    ippStsZeroMaskValueErr All values of the mask are zero マスクのすべての値が 0になっている。

    ippStsRangeErr Bad values of bounds: the lower bound is greater than the upper bound 上下限の値が無効である。下限が上限より大きい。

    ippStsQuadErr The quadrangle degenerates into triangle, line or point 四角形が、三角形、直線、または点に変換された。

    ippStsRectErr Size of the rectangular region is less than or equal to one 矩形領域のサイズが、1より小さいかまたは 1である。

    ippStsCoeffErr Unallowable values of the transformation coefficients 変換係数の値が無効である。

    ippStsNoiseValErr Bad value of noise amplitude for dithering ディザリング用のノイズ振幅の値が無効である。

    ippStsDitherLevelsErr Number of dithering levels is out of range ディザリング・レベルの数が範囲外である。

    ippStsNumChannelsErr Bad or unsupported number of channels チャネル数が無効またはサポートされていない。

    ippStsDataTypeErr Bad or unsupported data type データ・タイプが無効またはサポートされていない。

    ippStsCOIErr COI is out of range COIが範囲外である。

    ippStsOutOfRangeErr Argument is out of range or point is outside the image 引数が範囲外であるか、点が画像の外側にある。

    2-9

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    ippStsDivisorErr Divisor is equal to zero, function is aborted 除数が 0だったため、関数は中止された。

    ippStsAlphaTypeErr Illegal type of image compositing operation 画像合成操作のタイプが無効である。

    ippStsGammaRangeErr Gamma range bound is less than or equal to zero ガンマ範囲の限界が、0より小さいかまたは 0である。

    ippStsGrayCoefSumErr Sum of the conversion coefficients must be less than or equal to 1 変換係数の合計は、1より小さいかまたは 1でなければならない。

    ippStsChannelErr Illegal channel number チャネル番号が無効である。

    ippStsJaehneErr Magnitude value is negative 絶対値が負になっている。

    ippStsStepErr Step value is less than or equal to zero ステップ値が、0より小さいかまたは 0である。

    ippStsStrideErr Stride value is less than the row length ストライド値が行の長さより小さい。

    ippStsEpsValErr Negative epsilon value error 負のε値エラー

    ippStsScaleRangeErr Scale bounds are out of range スケールの上下限が範囲外である。

    ippStsThresholdErr Invalid threshold bounds しきい値の上下限が無効である。

    ippStsWtOffsetErr Invalid offset value of wavelet filter ウェーブレット・フィルタのオフセット値が無効である。

    ippStsAnchorErr Anchor point is outside of mask アンカ・ポイントがマスクの外側にある。

    ippStsMaskSizeErr Invalid mask size マスクのサイズが無効である。

    ippStsShiftErr Shift value is less than zero シフト値が 0より小さい。

    ippStsSampleFactorErr Sampling factor is less than or equal to zero サンプリング係数が、0より小さいかまたは 0である。

    ippStsResizeFactorErr Resize factor(s) is less or equal to zero サイズ変更係数が、0より小さいかまたは 0である。

    表表表表 2-1 ステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージ (続き )

    2-10

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    ippStsDivByZeroErr An attempt to divide by zero 0で割ろうとした。

    ippStsInterpolationErr Invalid interpolation mode 補間モードが無効である。

    ippStsMirrorFlipErr Invalid flip mode フリップ・モードが無効である。

    ippStsMoment00ZeroErr Moment value M(0,0) is too small to continue calculations モーメント値 M(0,0)が小さすぎて計算を続行できない。

    ippStsThreshNegLevelErr Negative value of the level in the threshold operation しきい値演算のレベルの値が負になっている。

    ippStsContextMatchErr Context parameter doesn't match the operation コンテキスト・パラメータと操作が一致しない。

    ippStsFftFlagErr Invalid value of the FFT flag parameter FFTフラグ・パラメータの値が無効である。

    ippStsFftOrderErr Invalid value of the FFT order parameter FFTオーダ・パラメータの値が無効である。

    ippStsMemAllocErr Not enough memory for the operation 操作に使用するメモリが足りない。

    ippStsNullPtrErr Null pointer error NULLポインタ・エラー

    ippStsSizeErr Wrong value of data size データ・サイズの値が無効である。

    ippStsNoErr 0 No error エラーなし。

    ippStsNoOperation 1 No operation has been executed 操作は何も実行されていない。

    ippStsMisalignedBuf 2 Misaligned pointer in operation in which it must be aligned ポインタのアライメントが合っていなければならない操作で、ポインタのアライメントが合っていない。

    ippStsSqrtNegArg 3 Negative value(s) of argument in the function Sqrt 関数 Sqrtの引数の値が負になっている。

    ippStsInvZero 4 INF result. Zero value was met by InvThresh with zero level INF結果。0レベルの InvThreshによって 0の値が検出された。

    表表表表 2-1 ステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージ (続き )

    2-11

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    Errで終わるステータス・コード (ippStsNoErrステータスを除く )は、エラーを示す。これらのコードの整数値は負の値である。エラーが発生すると、関数の実行は中断される。これ以外のステータス・コードは、すべて警告を示す。警告状態が検出されると、関数は最後まで実行され、対応する警告ステータス・コードが返される。例えば、関数 ippiDivで、正の値を 0で割ろうとした場合、関数の実行は中止されない。この演算の結果は、ソース・オペランドのデータ・タイプで表現可能な最大値に設定され、出力ステータス ippStsDivByZeroによってユーザに警告が出される。

    ippStsEvenMedianMaskSize 5 Even size of the Median Filter mask was replaced by the odd number メディアン・フィルタ・マスクの偶数のサイズが、奇数で置き換えられた。

    ippStsDivByZero 6 Zero value(s) of the divisor in the function Div 関数 Divの除数の値が 0になっている。

    ippStsLnZeroArg 7 Zero value(s) of the argument in the function Ln 関数 Lnの引数の値が 0になっている。

    ippStsLnNegArg 8 Negative value(s) of the argument in the function Ln 関数 Lnの引数の値が負になっている。

    ippStsNanArg 9 Not a Number argument value warning NaN引数値の警告

    表表表表 2-1 ステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージステータス・コードとメッセージ (続き )

    2-12

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    構造体と列挙子構造体と列挙子構造体と列挙子構造体と列挙子

    本節では、画像処理用インテグレーテッド・パフォーマンス・プリミティブで使用される構造体と列挙子について説明する。

    IppStatus定数は、IPP関数によって返されたステータス・コードの値を列挙し、操作にエラーがなかったかどうかを示す。

    画像処理関数の有効なステータス・コードとそれに対応するエラー・メッセージの詳細については、本章の「エラー・レポート」の節を参照のこと。

    点の幾何学的な位置を格納する構造体 IppiPointは、次のように定義される。

    typedef struct {

    int x;

    int y;

    } IppiPoint;

    x,y は、点の座標を示す。

    矩形のサイズを格納する構造体 IppiSizeは、次のように定義される。

    typedef struct {

    int width;

    int height;

    } IppiSize;

    widthと heightは、それぞれ矩形の x方向と y方向の寸法を示す。

    矩形の幾何学的な位置とサイズを格納する構造体 IppiRectは、次のように定義される。

    typedef struct {

    int x;

    int y;

    int width;

    int height;

    } IppiRect;

    x,yは、x方向に width、y方向に heightの寸法を持つ矩形の左上隅の座標を示す。

    2-13

  • IPP リファレンス・マニュアル : 第 2 巻 IPP 概念 2

    IppiMaskSize列挙子は、モルフォロジー関数とフィルタリング関数の隣接領域を次のように定義する。

    typedef enum { ippMskSize1x3 = 13, ippMskSize1x5 = 15, ippMskSize3x1 = 31, ippMskSize3x3 = 33, ippMskSize5x1 = 51, ippMskSize5x5 = 55} IppiMaskSize;

    IppiAxis列挙子は、ippiMirror関数の反転軸を次のように定義する。

    typedef enum { ip