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.
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 matchingRegular 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.729GSM-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-mobile 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-mobile 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 4SUSE* Linux 8.2, 9.1SUSE Linux Enterprise Server* 8 or 9Debian* 4.0r1Ubuntu* 7.10Asianux* Server 3.0Red 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 4SUSE Linux Enterprise Server* 9Debian* 4.0r1Ubuntu* 7.10Asianux* Server 3.0Red 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 4SUSE Linux Enterprise Server* 8 or 9Debian* 4.0r1Ubuntu* 7.10Asianux* Server 3.0Red 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.10Red 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 VistaWindows XP, SP1 or SP2Windows Server 2003, SP1 or SP2 Linux:
 
				Ubuntu 6.04, 7.10Debian 3.1r5, 4.0Red Hat Enterprise Linux* 3, 4 and 5Red Hat Fedora Core 4, 5SUSE Linux Enterprise Server* 9 or 10Red Flag DC Server 5.0Mandriva 10.1 Mac OS X:
 | 
		
			| Processor Requirements | IA-32 architecture-based and compatible platforms: 
				Intel® Pentium® III processor or later, 400MHz or fasterAny Intel Core family processorAny Intel Xeon processorCompatible AMD processors Intel 64 architecture-based and compatible platforms:
 
				Any Intel Core family processorAny Intel Xeon processorAny Intel Pentium D processorCompatible 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 |