Intel® Integrated Performance Primitives (Intel® IPP) is an extensive library of multicore-ready, highly optimized software functions for multimedia data processing, and communications applications.Intel IPP is one of the Intel® Performance Libraries, which provide optimizing software building blocks to complement Intel’s optimizing compilers and performance optimization tools. Intel IPP is available as a component of the Intel® Compiler Professional Editions and Compiler Suite Editions for a more complete and cost-effective solution or as a standalone product.
功能 多核處理器支持 圖 1. 多核處理器使得多線程軟件應用真正實現(xiàn)了并行執(zhí)行
“英特爾® 集成性能原件”(英特爾® IPP)5.1 全面支持當今的各種多核心計算平臺:
- 多核心優(yōu)化函數(shù):“矢量與統(tǒng)計”數(shù)學、“信號過濾”、“傅立葉變換”、“圖像/JPEG 壓縮與顏色轉換”等領域的許多關鍵函數(shù)的內部都使用 OpenMP* 進行過多線程處理,可以在多核心系統(tǒng)上實現(xiàn)性能。
- 多核心優(yōu)化代碼示例:許多“英特爾 IPP”代碼示例都進行過多線程處理,以說明在視頻編碼與解碼等應用程序中如何有效地使用“英特爾 IPP”函數(shù)。
- 真正線程安全的函數(shù):所有的“英特爾 IPP”函數(shù)都完夠確保線程安全,簡化了集成到多線程應用程序中的工作。
如需有關線程技術與“英特爾 IPP”函數(shù)的詳細信息,請參閱線程技術的常見問題 (FAQ) 頁面。
- 性能優(yōu)化的函數(shù)
“英特爾 IPP 5.1”中添加了一些新的優(yōu)化技術,可以在的處理器(如英特爾® 酷睿™ 雙核處理器與英特爾® 奔騰® D 處理器)上實現(xiàn)性能。
使用眾多技術領域中廣泛的經過高度優(yōu)化的函數(shù),消除應用程序中可能出現(xiàn)的任何性能瓶頸:
- 視頻編碼:DV、MPEG-2、MPEG-4、H.263 以及 MPEG-4 Part 10 (H.264) 編的關鍵算法組件。“圖 2”顯示 H.264 編流程中適合使用“英特爾 IPP”視頻編碼組件(用藍色方框表示)的地方。這些函數(shù)包括:
- 運動補償
- 運動估計
- 改進的離散余弦變換
- 量化與反量化
- 熵編碼
“視頻”與“音頻”代碼示例演示如何使用“英特爾 IPP”函數(shù)實現(xiàn)編。
- 圖像處理:包含許多內置的圖像處理函數(shù),其中有:
- 計算機視覺:提供視頻數(shù)據處理功能,包括:
- 顏色轉換:采用以下技術改善圖像顏色與顏色效果之間的轉換效率:
- 字符串處理:使用“字符串處理”(查找、插入、刪除、比較)與“常規(guī)表達式”,將文本數(shù)據庫管理、搜索與檢索或文檔索引處理功能集成到應用程序中。
備注:“英特爾® PCA 處理器”上不提供。 - JPEG 編碼:JPEG、JPEG 2000 以及“動態(tài) JPEG”編的關鍵算法組件。“圖 3”顯示 JPEG 與 JPEG 2000 編流程中適合使用“英特爾 IPP”的 JPEG 編碼組件(用藍色方框表示)的地方。
備注:“英特爾® PCA 處理器”上不提供。 - 語音編碼:包含針對以下用途的函數(shù):
它還包含用于“回聲消除”與“通用語音類別”的語音函數(shù)。 - 信號處理:包含針對以下用途的信號處理功能:
備注:“英特爾® PCA 處理器”上不提供。 - 數(shù)據壓縮:采用以下技術地壓縮多媒體數(shù)據:
- 音頻編碼:MP3、AAC 以及 AC3 編的關鍵算法組件。“圖 4”顯示 AAC 編流程中適合使用“英特爾 IPP”的 JPEG 編碼組件(用藍色方框表示)的地方。這些函數(shù)包括:
- 哈夫曼編碼
- 光譜數(shù)據預量化
- 改進的離散余弦變換
- 區(qū)塊過濾
- 頻域預測
- 光譜帶復制
- 快速傅立葉變換
- 語音識別:通過采用以下技術,使應用程序支持語音識別、“IP 語音傳輸”以及語音注解功能,從而實現(xiàn)口授和語音命令:
備注:“英特爾® PCA 處理器”上不提供。 - 矢量/矩陣運算:包含針對以下用途的實用矩陣與矢量函數(shù):
備注:“英特爾® PCA 處理器”上不提供。 - 密碼技術:采用以下加密算法在應用程序中編寫安全功能代碼:
備注:“英特爾® PCA 處理器”上不提供。
此版本的新增功能 - 新推出 Mac OS* 版!
獲取適用于 Mac OS* 應用程序的高性能數(shù)據處理與多媒體函數(shù)庫 - 所有這些使用的都是您熟悉的“英特爾 IPP API”。 - 支持多核處理器
使用能夠確保線程安全的函數(shù)以及多線程函數(shù),讓應用程序無需修改便可充分發(fā)揮多核處理器的優(yōu)勢。 - 新的 CPU 性能優(yōu)化技術
通過使用更新的、特定于英特爾® 酷睿™ 雙核與英特爾® 酷睿™ 單核處理器微體系結構的優(yōu)化技術,充分發(fā)揮這些新處理器的優(yōu)勢。 - 更加豐富的視頻編碼示例
使用新的代碼示例(演示對附加的 H.264 編檔案與 CABAC 編碼的支持),更快地開發(fā)*的視頻應用。 - 更加豐富的語音編碼示例:
立即使用新的 AMRWB+ 代碼示例開發(fā)協(xié)作應用。
兼容性 - 操作系統(tǒng)
現(xiàn)已支持 Mac OS*!借助“英特爾® 集成性能原件 5.1 Mac OS* 版”,只需使用 Windows* 版與 Linux* 版所有的相同函數(shù)庫 API 與函數(shù),便可以輕松將應用程序移植到 Mac OS。 - 開發(fā)環(huán)境
“英特爾 IPP”非常易于使用,且可輕松集成到主流的開發(fā)工具與環(huán)境中,如 Microsoft Visual Studio*、Xcode*、Eclipse*、GCC 以及“英特爾® C++ 編譯器”。
處理器“英特爾 IPP”函數(shù)的背后是*一致的 API,這些函數(shù)針對廣泛的 32 位與 64 位微處理器進行過高度優(yōu)化:
- 英特爾® 酷睿™ 雙核處理器與英特爾® 奔騰® D 多核處理器
- 英特爾® 至強® 處理器
- 含“英特爾® EM64T”的處理器,包括 64 位英特爾至強處理器、英特爾® 奔騰® D 處理器以及英特爾® 奔騰® 處理器版
- 英特爾® 奔騰® 4 與英特爾® 奔騰® M 處理器
- 基于“英特爾 XScale®”技術的處理器,包括英特爾® IXP4xx 處理器與支持“英特爾® 無線 MMX™”技術的英特爾® PXA27x 應用處理器。
- 英特爾® 安騰® 2 處理器
Intel IPP is validated for use with multiple generations of Intel and compatible AMD* processors, and is backed by world-class support through the Intel® Premier Support program, and by developer community forums.
Features
Multicore Processor Support
Intel IPP 6.0 fully supports today’s multicore computing platforms:
- Multicore Optimized, Threaded Functions: Over 1700 critical functions for Matrix and Vector mathematics, Signal/Image Filtering and Convolutions, Image/JPEG Compression, Color Conversion and Computer Vision are internally threaded to automatically maximize performance on multi-core systems.
- Multicore Optimized Code Samples: Many of the Intel IPP code samples are threaded to illustrate the effective use of Intel IPP functions in applications such as video encoding and decoding.
- Fully Thread-Safe Functions: All Intel IPP functions are fully thread-safe, simplifying integration into threaded applications.
To learn more about threading and Intel IPP functions visit our threading Frequently Asked Questions (FAQ) page.
Performance-Optimized Functions
Intel IPP functions are designed to deliver performance beyond what optimized compilers alone can deliver by matching the function algorithms to low-level optimizations based on the processor’s available features such as Streaming SIMD Extensions (SSE, SSE2, SSE3, SSSE3, SSE4, and SSE4.1) and other optimized instruction sets.
Video Coding: Key algorithmic components for DV25/50/100, MPEG-2, MPEG-4, H.263, and MPEG-4 Part 10 (H.264) codecs. Figure 3 shows where Intel IPP video coding components (represented by the blue boxes) fit into the H.264 codec process flow. Functions include:
- Motion Compensation
- Motion Estimation
- Modified Discrete Cosine Transforms
- Quantization and Inverse Quantization
- Entropy Coding
Image and 2D Signal Processing: Intel IPP is the premier library of image and 2D signal processing algorithms, and includes a rich selection of algorithms operating on images and regions within images (ROIs):
Transforms: Wavelet Fourier (FFT/DFT, real/complex) Windowing (Hamming, Bartlett) Discrete Cosine (DCT)
Filtering Functions: General linear filtering Convolution/Deconvolution (LR and FFT) Box, Min, Max, Median Wiener Filters Fixed Filters (Prewitt, Sobel, Laplace, Gauss, Scharr, Roberts) Sharpening/Hipass/Lowpass Filters
Geometric Transforms: Resize, Mirror, Rotate, Shear Affine transforms Perspective transformations Bilinear warping Coordinate remapping | Image Statistics: Sum, Integral, Tilted Integral Mean, Min, Max, Histogram, StDev Image Moments Image Norms (L1, L2, infinity) Image Quality Index calculation Proximity Measures (Cross-correlations, Square Distance) Threshold/Compare Operations
Image Arithmetic/Logic Operations: Alpha composition Arithmetic operations (add/sub/mul/div/sqrt/sqr/ln/exp/abs) Logical operations (AND, OR, XOR, Shift, NOT)
Image Data Exchange/Initialization: Copy/Set/Transpose Channel swapping Jaehne/Ramp/Zigzag initialization Memory allocation for multiple image types |
Computer Vision: Intel IPP includes optimized functions for many key computer-vision operations, for applications in security, machine control, media management, media annotation and more:
Feature Detection (Corner, Canny Edge Detection) Distance Transforms Image Gradients Flood Filling Motion Templates generation Optical Flow calculation (Lucas-Kanade) | Pattern Recognition (Haar classifiers) Pyramid functions (Gaussian/Laplacian pyramids) Universal Pyramid functions Camera Calibration 3D Reconstruction |
Intel IPP based optimization is automatically included in the popular OpenCV open-source computer-vision library, for enhanced performance on real-time tasks, and Intel IPP was a key software component in the winner of the 2005 DARPA Grand Challenge.
Color Conversion: Today’s explosion of digital media in multiple formats brings the need to convert digital media among different color representations. Intel IPP provides a rich set of optimized color-conversion routines on 32/24/16-bit-per-pixel formats:
Color Model Conversion: RGB, YUV, YCbCr, BGR, CbYCr, HSV, LUV, Lab, YCC, HLS, SBGR, YCoCg, YCCK, XYZ, CMYK
Color Format Conversions: YCbCr422, YCbCr420, YCbCr411, CbYCr422, BGR565, BGR555, BGR565Dither | Lookup Table Conversions (Linear/Cublic/Palette) Color to Greyscale Conversions (Fixed/Custom coefficients) Image Bit Resolution Reductions Color Twist Conversions (integer/float pixel values) Gamma Corrections (Forward/Backward) |
[SPAN]
String Processing: Build optimized text database management, search and retrieval, or document indexing processing into your applications using Intel IPP’s optimized string operations.
Substring substitution/insertion String concatenation/splitting Upper/lower case conversions | String/Substring matching Regular Expression matching Hash value calculation |
JPEG Coding: Key algorithmic components for JPEG, JPEG 2000, and Motion JPEG codecs. Figure 4 shows where Intel IPP JPEG coding components (represented by the blue boxes) fit into the JPEG and JPEG 2000 codec process flow.
Speech Coding: Intel IPP includes a comprehensive set of routines supporting the following speech codecs/functions:
G.722.1 G.722 Sub-Band ADPCM G.723.1 G.726 G.728 Echo Cancellation | G.729 GSM-AMR AMR-Wideband GSM Full Rate Companding |
The freely-downloadable Intel IPP Universal Speech Class (USC) code samples illustrate the use of the low-level Intel IPP functions to build speech codecs.
Signal Processing: Includes signal processing features for the following:
Filtering and Convolution: Finite Impulse Response (FIR) Infinite Impulse Response (IIR) Median filtering Cyclic convolution Auto/Cross-correlation
Transforms: Fourier (FFT, DFT, Goertzel) Discrete Cosine Transforms (DCT) Hilbert Transforms Wavelet Transforms (fixed/custom filters) Power spectrum calculation
Windowing/Sampling: Upsampling/Downsampling Windowing (Bartlett/Blackman/Hamming/Hann/Kaiser) | Array/Signal Initialization/Manipulation: Move/Copy/Set/Zero Tone/Triangle/Ramp/Jaehne Generation Random vector generation (Uniform/Gaussian) Array allocation Real/Complex conversion Polar/Cartesian conversion
Array/Signal statistics: Sum/Max/Min/Mean/StdDev/Norm Dot products Thresholding Viterbi decoding
Array Arithmetic/Logic Operations: Arithmetic operations (add/sub/mul/div/sqrt/sqr/ln/exp/abs) Logical operations (AND, OR, XOR, Shift, NOT) Array sorting Magnitude/Phase |
Data Compression: In addition to video, audio and image compression with codecs, Intel IPP provides functions for lossless compression methods, such as those used in the popular “zlib” (inflate and deflate) and “libbzip2” libraries.
Burrows-Wheeler-Transform techniques: Burrows-Wheeler Transform (BWT) Generalized Interval Transform Move-to-Front (MTF) Run-length encoding (RLE) | Entropy coding: Huffman coding Variable-Length Coding (VLC)
Dictionary-based Compression: LZSS encode/decode LZ77 encode/decode |
Audio Coding: Key algorithmic components for MP3,and AAC codecs. Figure 5 shows where Intel IPP JPEG coding components (represented by the blue boxes) fit into the AAC codec process flow. Functions include:
- Huffman Coding
- Spectral Data Pre-Quantization
- Modified Discrete Cosine Transforms
- Block Filtering
- Frequency Domain Prediction
- Spectral Band Replication
- Fast Fourier Transforms
The Video and Audio code samples illustrate sample codec implementations using Intel IPP functions.[SPAN]
Speech Recognition: Build advanced speech recognition, Voice-over-IP, and voice annotation capabilities in applications, using Intel IPP’s broad range of speech-recognition capabilities:
Feature Processing Model Evaluation Model Estimation Model Adaptation Vector Quantization | Acoustic Echo Cancellation (AEC) Polyphase Resampling Advanced Aurora Functions Ephraim-Malah Noise Suppression Voice Activity Detection |
Vector/Matrix Operations: Intel IPP contains a rich set of matrix and vector operations for a wide variety of applications, including physics modeling and 3D transform/lighting calculations.
Matrix algebra: Eigenvalue/eigenvector calculation Least Squares (QR decompositions/back-sub) Linear Systems (LU/Cholesky) Region-of-Interest (ROI) extraction Fast copy of vectors/matrices | Vector algebra: Dot products L2 norm calculation “saxpy” (ax + y) operations Linear combination (ax + by) Power/root functions Exponential/Logarithmic/Erf/Erfc functions Trigonometric/Hyperbolic functions Polar/Cartesian conversion |
For applications requiring high-performance linear algebra operations on very large data sets, the Intel® Math Kernel Library may also be of interest.
Cryptography: Use Intel IPP to quickly build robust, high-performance cryptographic modules and applications. Below are some of the many cryptographic building blocks included in Intel IPP’s cryptography functions.
Symmetric Ciphers: Block Ciphers (AES/Rijndael, DES, Triple DES, Blowfish, Twofish) Stream Ciphers (ARCFour)
One-way Hashing: Generalized Hashing (MD5, SHA1-512) Mask Generation (MD5, SHA1-512)
Data Authentication: Keyed Hash (HMAC-MD5, HMAC-SHA1-512) Data Authentication Functions (DES, TDES, Rijndael, Blowfish, Twofish) | Asymmetric Cryptography: Elliptic curve cryptography (GF(p) and GF(2m) RSA algorithm (RSA-OAEP, RSA-SSA) Discrete-Logarithm Cryptography Big-Number arithmetic Montgomery reduction Pseudo-random number generation Prime number generation |
Intel IPP’s cryptographic functions have been validated according to the Cryptographic Algorithm Validation Program (CAVP).
Name | Standards/Certificate |
Discrete Logarithm (Digital Signature Standard) | FIPS 186-2 / Cert 190 |
Integer Factoring (Digital Signature Standard) | FIPS 186-2, ANSI X9.31-1998 / Cert 181 |
Eliptic Curve Digital Signature Algorithm (ECDSA) | FIPS 186-2, ANSI X9.62-1998 / Cert 40 |
Random Number Generator | FIPS 186-2 / Cert 245 |
Note: To access the Cryptography Library, you must request access from Intel.
Ray-Tracing and Rendering: Core operations used in ray-tracing, realistic image rendering, and physics applications:
Bounding-box calculations Object-ray intersections Shadow/Reflection calculations |
Data Integrity: Error correcting codes are vitally important to preserving the integrity of data in transmission, storage and encoding. For example transmission lines can be unreliable and introduce data errors, spurious signals can occur when saving data to a compact disk, and errors can occur when reading bar codes. Using error correcting codes like Reed-Solomon is a good way to correct these errors.
System Requirements
Please refer to the section below for installation requirements and system requirements that match your application’s target platform.[SPAN]
Application Target Platforms
32-bit Intel® architecture Platforms | Intel® Core i7™ processor family | Intel® Atom™ processor family | Intel® Core™ 2 processor family(including 45nm processors) | Intel Core processor family | Intel® Pentium® M processors | Intel ultra- processors (A100, A110, and 45 nm processors) | Intel Pentium D processor | Intel® Pentium® 4 processor | Intel® Xeon® processors(3000, 5000, 7000 series) | Other compatible processors such as AMD Athlon* and Opteron* processors |
|
64-bit Intel 64 architecture-based platforms | Intel® Core i7™ processor family | Intel® Atom™ processor family | Intel Core 2 processor family (including 45nm processors) | Intel ultra- processors (45 nm processors) | Intel Pentium D processor | Intel Pentium 4 processor | Intel Xeon processors(3000, 5000, 7000 series) | Other compatible processors such as AMD Athlon and Opteron processors |
|
64-bit IA-64 architecture-based platforms | Intel® Itanium® processors |
|
32-bit IA-32 Architecture-Based and Compatible Platforms
(Intel Core 2 processor family, Intel Core processor family, Intel Pentium processors, and compatible AMD processors)
| OS Version | Supported Compilers |
Microsoft Windows | Microsoft Windows Vista*
Microsoft Windows* XP
Microsoft Windows Server* 2008
Microsoft Windows Server* 2003 | Intel® C++ Compiler for Windows* OS version 10.1 and 11.0
Microsoft Visual Studio* 2008
Microsoft Visual Studio* 2005
Microsoft Visual C++* .NET 2003
Microsoft Windows* Software Development Kit for Microsoft Windows Vista* |
Linux | Linux system with glibc 2.2.4, 2.2.5, 2.2.93, 2.3.2 or 2.3.3 and the 2.4.X or 2.6.X Linux kernel as represented by the following distributions. Note: Not all distributions listed are validated and not all distributions are listed. - Red Hat Enterprise Linux* OS 2.1, 3, or 4
- SUSE* Linux 8.2, 9.1
- SUSE Linux Enterprise Server* 8 or 9
- Debian* 4.0r1
- Ubuntu* 7.10
- Asianux* Server 3.0
- Red Flag* 5.0
| Intel® C++ Compiler version 10.1 and 11.0 for Linux * for IA-32 architecture
Linux Developer tools component installed, including gcc, g++ and related tools |
Mac OS X | 10.4.3 or later | Intel C++ Compiler 10.1 and 11.0 for Mac OS X, including Professional Edition
GNU Compiler Collection 4.0 or later |
64-bit Intel 64 Architecture-Based Platforms
(Intel Core 2 processor family, Intel Pentium D processors, Intel Xeon processors, and processors from AMD compatible with Intel 64 architecture)
| OS Version | Supported Compilers |
Microsoft Windows | Microsoft Windows Vista*
Microsoft Windows* XP
Microsoft Windows Server* 2008
Microsoft Windows Server* 2003 | Intel® C++ Compiler for Windows* OS version 10.1 and 11.0 for processors based on Intel® 64 architecture
Microsoft Visual Studio* 2008
Microsoft Visual Studio* 2005
Microsoft Platform SDK, Version 3790.1830 (April 2005)
Microsoft Platform SDK R2, Version 3790.2075 (March 2006) |
Linux | Linux system with glibc 2.2.4, 2.2.5, 2.2.93, 2.3.2 or 2.3.3 and the 2.4.X or 2.6.X Linux kernel as represented by the following distributions. Note: Not all distributions listed are validated and not all distributions are listed. - Red Hat Enterprise Linux* OS 3 or 4
- SUSE Linux Enterprise Server* 9
- Debian* 4.0r1
- Ubuntu* 7.10
- Asianux* Server 3.0
- Red Flag* 5.0
| Intel C++ Compiler 10.1 or 11.0 for Linux
Linux Developer Tools installed, including gcc, g++, and related tools |
Mac OS X | 10.4.6 or later | Intel C++ Compiler 10.1 and 11.0 for Mac OS X
GNU Compiler Collection 4.0 or later |
[SPAN]
64-bit IA-64 Architecture-Based Platforms
(Intel® Itanium® processors)
| OS Version | Supported Compilers |
Microsoft Windows | Microsoft Windows Server 2008
Microsoft Windows Server 2003 | Intel® C++ Compiler for Windows* OS version 10.1 and 11.0 for Intel Itanium Processors
Microsoft Platform SDK, Version 3790.1830 (April 2005)
Microsoft Platform SDK R2, Version 3790.2075 (March 2006) |
Linux | Linux system with glibc 2.2.4, 2.2.5, 2.2.93, 2.3.2 or 2.3.3 and the 2.4.X or 2.6.X Linux kernel as represented by the following distributions. Note: Not all distributions listed are validated and not all distributions are listed. - Red Hat Enterprise Linux* OS 2.1, 3, or 4
- SUSE Linux Enterprise Server* 8 or 9
- Debian* 4.0r1
- Ubuntu* 7.10
- Asianux* Server 3.0
- Red Flag* 5.0
| Intel C++ Compiler 10.1 and 11.0 for Linux
Linux Developer Tools installed, including gcc, g++, and related tools |
Intel Atom Architecture-based Platforms
| OS Version | Supported Compilers |
| | |
Linux | Linux system with glibc 2.2.4, 2.2.5, 2.2.93, 2.3.2 or 2.3.3 and the 2.4.X or 2.6.X Linux kernel as represented by the following distributions.
Note: Not all distributions listed are validated and not all distributions are listed. - Ubuntu* 7.10
- Red Flag* 5.0
| Intel® C++ Compiler version 10.1 & 11.0 for Linux* OS for IA-32 processors
Linux Developer tools component installed, including gcc, g++ and related tools |
Installation Requirements
| Supported Software / Hardware |
Operating Systems | Microsoft Windows: - Windows Vista
- Windows XP, SP1 or SP2
- Windows Server 2003, SP1 or SP2
Linux:
- Ubuntu 6.04, 7.10
- Debian 3.1r5, 4.0
- Red Hat Enterprise Linux* 3, 4 and 5
- Red Hat Fedora Core 4, 5
- SUSE Linux Enterprise Server* 9 or 10
- Red Flag DC Server 5.0
- Mandriva 10.1
Mac OS X:
|
Processor Requirements | IA-32 architecture-based and compatible platforms: - Intel® Pentium® III processor or later, 400MHz or faster
- Any Intel Core family processor
- Any Intel Xeon processor
- Compatible AMD processors
Intel 64 architecture-based and compatible platforms:
- Any Intel Core family processor
- Any Intel Xeon processor
- Any Intel Pentium D processor
- Compatible AMD processors
Intel Itanium processor-based platforms:
- Any Intel Itanium processor
Intel Atom processor-based platforms:
- Any Intel Atom family processor
|
Minimum Disk Space for Install | 900 MB plus 300 MB of temporary space during installation for each Application Target Platform |