天天看點

Intel® Integrated Performance Primitives(IPP)的配置方法及函數庫初探(Image Processing)

0、前言

Intel® Integrated Performance Primitives,一套內建了幾千個對多媒體與資料處理應用進行過高度優化的函數庫。它所涉及的主要函數領域如下圖所示,這裡我所需要的僅僅是它的圖像處理方面的功能。

Intel® Integrated Performance Primitives(IPP)的配置方法及函數庫初探(Image Processing)

Intel IPP自2010年起已經被Intel內建到一款性能完善的優化套件中,就是Intel Parallel Studio XE,是以想要使用的朋友直接搜尋後者就可以了。

我所用的函數庫:Intel Parallel Studio XE 2011

開發平台:Windows 7 64位旗艦版

開發工具:Visual Studio 2010

首先,下載下傳函數庫,可以到Intel的下載下傳中心選擇下載下傳:

https://downloadcenter.intel.com/

我所用的版本是在這邊下載下傳的:

http://blog.sina.com.cn/s/blog_8606724e0101bziq.html

1、配置

好了,下載下傳完成後就可以安裝了,安裝完成後,需要設定下環境變量,變量名可以為IPPROOT(IPP的User's Guide中要求是這個變量名),路徑為C:\Program Files (x86)\Intel\ComposerXE-2011\ipp(按照各自的路徑修改即可)。

下面是VS2010的配置,每次建立工程都需要配置如下:包含路徑、引用路徑、以及附加依賴項都需要配置。

如果配置完成還是有錯,可以選擇release版本編譯試試應該就可以了。

2、函數庫學習

由于IPP是一款收費軟體,是以目前可用的中文資料相當少,這個也沒有辦法,希望有哪位大神有空可以翻譯一下吧。

在Intel Parallel Studio XE 2011安裝完成後,安裝目錄下是有自帶的使用者手冊的,隻不過不是PDF的版本,在環境變量路徑下的Doc檔案夾下,或者也可以到開始菜單找到Intel Parallel Studio XE 2011的Documentation下面就是所有元件的網頁版說明文檔了,我們所需要的就是IPP的,直接打開就可以。

Intel® Integrated Performance Primitives(IPP)的配置方法及函數庫初探(Image Processing)

其中,Intel® IPP User's Guide是對IPP這個函數庫的大概的說明,包括函數的命名方式、IPP的配置方法等等,如果在配置實用上有任何問題的話,也可以到這個裡面自己看看。

Intel® IPP Reference Manual而這個就是函數庫中各功能函數的詳細說明了,也是我們需要詳細翻看學習的最重要的部分。整個文檔結構還是非常清晰的,相信隻要英語過了4級的再裝個翻譯小工具應該都沒有問題。

3、函數庫使用

這裡需要提出的一點,IPP所提供的例程,自這一版後IPP例程隻有一個了,但是這個例程非常好用,雖然很大編譯很費時間。如果不想編譯,可以直接在環境變量目錄下找到現成的例程的可執行檔案,檔案名為ippiDemo.exe 。

在這個exe中最好用的一個功能就是函數的功能示範了:

Intel® Integrated Performance Primitives(IPP)的配置方法及函數庫初探(Image Processing)

當我們打開一幅BMP格式的圖像後,選擇菜單中Process,就可以打開這一對話框,裡面是幾個主要子產品的功能函數,可以非常好的對這些函數進行學習、了解。

當然,最好用的還是文檔,裡面對于各個函數的描述是非常詳細的,還都配有相應的簡單小例程以供學習參考。

比如在Convert下面的執行個體程式如下:

IppStatus convert( void ) {

         IppiSize roi={5,4};
         Ipp32f x[5*4];      
       
         Ipp8u y[5*4];
         ippiSet_32f_C1R( -1.0f, x, 5*sizeof(Ipp32f), roi );
               x[1] = 300; x[2] = 150;

   return ippiConvert_32f8u_C1R( x, 5*sizeof(Ipp32f), y, 5, roi, ippRndNear );
   }
           

實作了一個轉換矩陣的功能函數,輸出結果為:

00 FF 96 00 00
   00 00 00 00 00
   00 00 00 00 00
   00 00 00 00 00
           

對于IPP函數庫的使用的初步了解與認識就先介紹到這裡,而關于IPP的深入應用,在以後會與大家一起分享,如果有機會的話。

繼續閱讀