Note: the links to the IPP samples provided on this page are licensed under the Intel End User License Agreement, and are for Intel® IPP 7.1.1
-- Follow this link if you need the Intel® IPP samples for Intel® IPP 7.0 update 7
-- The 7.1 samples can also be used with the current Parallel Studio, Composer and XE product suites.
-- Intel® IPP samples are also distributed via the Intel Registration Center with your product downloads
To help jumpstart your application development we provide free code samples to illustrate the use of the Intel® Integrated Performance Primitives (Intel® IPP) library in real applications. Please note, as samples they are not optimized, tested, or supported at the same level as the primitives.
The Intel® IPP code samples are available for the Windows*, Linux* and OS X* operating systems. Build instructions can be found in the documentation/ipp-samples.html file of the samples package or in this article on how to build the IPP 7.1 samples. There is a combined readme for all samples at documentation/ipp-samples.html.
The Intel® IPP samples are distributed in multiple parts. Not every sample is available for every operating system. Sample files here are only tested against the latest version of the Intel® IPP library and may not work or build with older versions of the library.
By downloading any sample package you accept the End User License Agreement
|Sample File||Windows*||Linux*||OS X*|
(+DMIP on Windows)
Legacy Samples: are infrequently updated or have been replaced with new implementations and are listed separately at the end of this page. Important: those samples marked as legacy samples are not included with the Intel® IPP 7.1 product. See legacy descriptions and links at the bottom of this page.
Main Samples Download: includes samples for Library Linking & Advanced Usage, Audio & Video Coding, Computer Vision, Data Compression, Image Codecs (IJG 8.0b), Image Processing, Language Interface, Signal Processing, Speech Coding, String Processing and UIC source.
UIC Executables Download: provided as a convenience. The Unified Image Codecs download contains pre-built executable binaries. On Windows a pre-built dmip_bench.exe and DMIP DLLs are also included.
Note: UIC source is located in the "Main Samples" download.
Each sample description (below) includes a short title followed by a directory reference (such as advanced-usage\cpuinfo) and one to three OS icons indicating which operating systems are supported by the sample. The directory refers to where you will find that sample within the ipp-samples directory, after you have downloaded and extracted the sample file(s) onto your system.
Use of the Intel® IPP samples is subject to the terms and conditions of the Intel End User License Agreement (EULA).
Note:many of the code samples illustrate the use of Intel® IPP functions in support of international standards, which are promoted by various standards bodies, such as ISO, ITU-T and other organizations. Commercial implementations of these standards may require licenses from various entities, including Intel Corporation. Such industry standard licensing is not included as part of the Intel® IPP library, nor is it provided with these example illustrations.
Library Linking and Advanced Usage
MAIN - CPU Information Utility - advanced-usage/application/cpuinfo -
An application that provides useful information regarding the instruction set capabilities and other useful parameters associated with your processor.
MAIN - Using IPP in Kernel Mode - advanced-usage/application/ippsdrv -
Illustrates using static dispatching of the Intel® IPP library for kernel mode (ring zero) drivers and applications.
MAIN - User-Defined Memory Allocation - advanced-usage/application/i_malloc -
Customize Intel® IPP memory management by replacing the standard malloc(), calloc(), realloc(), and free() functions with your own memory allocation routines.
Audio and Video Coding
The following samples utilize the Unified Media C++ Classes (UMC), a C++ framework intended as a starting point for the development of advanced codecs utilizing Intel® IPP video and audio primitives. UMC is a sample, and not optimized, tested, or supported at the same level as the primitives. The media APIs may not fully implement the specs for each codec and splitters/muxers are intended merely as developer tools to facilitate codec evaluation. Please note: the AVS, DV, H.261, H.263 video codecs are now legacy. The AAC and MP3 integer codecs are also legacy, though the floating point versions are still part of the package. See Media Sample Changes for more information.
MAIN - Simple Media Player - audio-video-codecs/application/simple_player -
A multi-format video player for multiple platforms using the Intel® IPP audio and video coding functions and image and signal processing functions. The player supports the H.264, VC-1, , MPEG-4, and MPEG-2 video formats and the MP3 and AAC audio formats.
MAIN - Audio Decoder - audio-video-codecs/application/umc_audio_dec_con -
A command-line audio encoding application demonstrating use of the Intel® IPP audio coding functions. It supports the floating point AAC and MP3 audio formats.
MAIN - Audio Encoder - audio-video-codecs/application/umc_audio_enc_con -
A command-line audio encoding application demonstrating use of the Intel® IPP audio coding functions. It supports the floating point AAC and MP3 audio formats.
MAIN - Video Decoder - audio-video-codecs/application/umc_video_dec_con -
A command-line video decoding application demonstrating use of the Intel® IPP video coding functions. It supports the H.264, VC-1, MPEG-4, and MPEG-2 video formats.
MAIN - Video Encoder - audio-video-codecs/application/umc_video_enc_con -
A command-line video encoding application demonstrating use of the Intel® IPP video coding functions. It supports the H.264, VC-1, MPEG-4, and MPEG-2 video formats
MAIN - Face Detection - computer-vision/application/face_detection -
How to use the Intel® IPP library to implement a Haar classifier face detection algorithm. Note, only 32 bit supported.
MAIN - General Data Compression Example - data-compression/application/ipp_[de]compress -
An example of a general-purpose compress and decompress function based on the Intel® IPP data compression primitives. The resulting compress and decompress applications include support for Burrows-Wheeler Transform (BWT), General Interval Transform (GIT), Ziv-Lempel-Storer-Szymanski (LZSS), gzip, and Huffman compression algorithms.
Note: the following IPP implementations of popular compression libraries are located in the interfaces directory with the IPP library and the samples package.
INTERFACES and MAIN - bzip2-Compatible Library - data-compression/application/ipp_bzip2 -
An implementation of the bzip2/libbzip2 application and library (http://www.bzip.org/) using the Intel® IPP data compression functions library. The Intel® IPP version of the bzip2 library implements a lossless, block-sorting data compression algorithm that includes threading optimization improvements.
INTERFACES and MAIN - gzip-Compatible Library - data-compression/application/ipp_gzip -
A multi-threaded lossless data compression library that is compatible with the gzip format as defined by version 4.3 of RFC 1952 by use of the Intel® IPP data compression domain functions. This sample illustrates significant performance improvements by means of the OpenMP library and other methods of parallel processing on a multi-core processor.
INTERFACES and MAIN - zlib-Compatible Library - data-compression/application/ipp_zlib -
A version of the zlib-compatible data compression library using the optimized LZ77 and Huffman coding functions in the Intel® IPP library. Based on version 1.2.3 of the zlib library (http://www.zlib.net/)
Image Codecs (IJG 8.0b)
MAIN - Integration with the Independent JPEG Group (IJG) Library - image-codecs -
Demonstrates how to use the Intel® IPP library to increase the performance of the Independent JPEG Group (IJG) library version 8.0b.
MAIN - Tiled Image Processing - image-processing/application/image-tiling -
Demonstrates using Intel® IPP functions to process tiled images.
MAIN - ippiDemo (Image Processing Demo) - image-processing/application/ippidemo -
This sample exercises nearly all of the ippIP and ippCC domain functions, and a large part of the ippCV domain functions.
MAIN C++ template demo image-processing/application/templates
The templates sample demonstrates how to use C++ template based interface to functions provided by Intel® IPP Image Processing domain.
Language Interface Support
MAIN - Microsoft .NET (C#) - language-interface/application/csharp -
Demonstrates how to use Intel® IPP when developing applications in the Microsoft C# environment. Includes wrapper classes to support Intel® IPP string manipulations, image, signal processing, color conversion, cryptography, data compression, JPEG, matrix and vector math.
MAIN - ippsDemo (Signal Processing Demo) - signal-processing/application/ippsdemo -
Demonstrates the Intel® IPP signal processing functions via a general purpose GUI application.
The Unified Speech Component (USC) interface is a C language framework designed for implementation of speech codecs, echo cancellers and other voice processing modules using the Intel® IPP library. Most of the following speech coding samples utilize this extendible USC interface.
MAIN - Microsoft RT Audio Support - speech-codecs/application/umc_speech_rtp_codec -
The UMC RTP speech codec sample supports audio compression and decompression using Intel® IPP to and from a variety of RTP formats in compliance with 3GPP TS 26 171, 173, 174, 190-194, 273, 274, 290 specifications, ITU-T G.722, G.722.1, G.722.2, G.723.1/A, G.726/A, G.728/I/G/H/J, G.729/A/B/D/E/I/C/C+, G.711/I/II recommendations, ETSI GSM 06.10-06.12, 06.31-06.32, 06.90-06.94 specifications, and RFC 4867. The encoder compresses audio data from a WAV file, storing the result as a compressed rtpdump file. The decoder performs the reverse operation.
MAIN - Echo Cancellation - speech-codecs/application/usc_ec -
A console application using Intel® IPP speech coding functions to perform echo cancellation. This sample illustrates building a "digital terminals" device compliant with ITU-T G.167, G.168-2004, P.330, P.340 specifications.
MAIN - Echo Cancellation - speech-codecs/application/usc_nr -
A console application The USC Noise reduction sample is a command line based application. It supports two components: Noise Reduction and Voice Activity Detection.
MAIN - Speech Codec Application - speech-codecs/application/usc_speech_codec -
The speech codec sample supports encoding and decoding compliant with 3GPP TS 26 071, 073, 171, 173, 174, 190-194, 273, 274, 290, ITU-T G.711/I/II, G.722, G.722.1, G.723.1/A, G.726/A, G.728G//I/J/H, G.729/A/B/D/E/I/C/C+, and G.729.1 recommendations, the ETSI GSM 06.90-06.94, 06.10-06.12, 06.31-06.32 recommendations, and Microsoft Real-Time Audio.
MAIN - Tone Detector - speech-codecs/application/usc_tones -
How to use the Intel® IPP speech coding functions to perform echo cancellation. This sample complies with ITU G.168-200 2 and Q.23 specifications.
MAIN - ippgrep - Regular Expression Matching - string-processing/ippgrep -
An application that uses the Intel® IPP string processing functions to perform Perl-compatible regular expression pattern matching.
The following samples utilize the Unified Image Codecs (UIC), a C++ framework intended as a starting point for the development of image codecs utilizing Intel® IPP JPEG primitives.
The "UIC Executables" download contains only pre-built binaries/libs; the UIC source code is part of the "Main Samples" download. Please note, the BMP, DDS, PNM, and TIFF codecs have been moved to legacy. See Media Sample Changes for more information.
MAIN & UIC - Picnic and uic_transcoder_con Demo Applications - image-codecs/uic/src/application - Ready to run executable versions of the picnic and uic_transcoder_con applications are available in a separate download, to demonstrate use of the UIC classes. The source code for both applications is in the general sample download package. Picnic demonstrates JPEG/JPEG2000 encoding/decoding, image filtering, and computer vision algorithms such as face detection, inpainting, and image segmentation. The uic_transcoder_con application is a simple command-line utility that demonstrates how to use the UIC classes to implement encoding and decoding of image files.
Note: to build the picnic application you must download and install the Nokia* Qt* GUI library appropriate for your OS from www.qtsoftware.com
The sample applications below are now legacy. They are not part of the IPP 7.1 project and are no longer supported. For more information please check Media Sample Changes and Other Sample Changes. However, they can be accessed from the page for Intel® IPP samples for Intel® IPP 7.0 update 7. In many cases the 7.0 samples can be ported to 7.1, though IPP 7.0.7 is recommended.
These codecs are also legacy:
- Video: AVS, DV, H.261, and H.263
- Audio: AAC integer, MP3 integer (float versions are still active)
- Image: BMP, DDS, PNM, TIFF
LEGACY Windows CE for IA-32 Architecture - advanced-usage/wincex86 - How to use the Intel® IPP library in applications that will run in the Windows CE environment.
LEGACY - Console H.264 Video Decoding - audio-video-codecs/application/umc_h264_dec_con - A command-line H.264 video decoding application using the Intel® IPP signal processing, image processing, video coding functions and UMC framework.
LEGACY - 2D Wavelet Transform - image-processing/2d-wavelet-transform - < Illustrates the use of the two-dimensional wavelet transform functions to implement a Haar transform.
LEGACY - C++ Image Processing Classes - image-processing/image-processing-templates - General examples illustrating the usage of Intel® IPP functions in C++ image processing.
LEGACY - Simplified Image Processing Demo - image-processing/image-processing-mfc -
This sample is a simplified version of the ippiDemo above, and illustrates the use of the IPP image processing functions.
LEGACY - Intel Image Processing Library (IPL) - image-processing/ipl-ipp - Based upon the Intel® Image Processing Library (IPL), this sample contains a set of low-level image manipulation functions that perform filtering, threshold detection, and transformation (FFT, DCT, geometric), as well as arithmetic and morphological operations on images. The library uses a flexible image format, supporting channels of 1, 8, 16 and 32-bit integer pixels, as well as 32-bit floating point pixels, with an arbitrary number of channels per image. Conversion to and from the Windows* DIB (device independent bitmap) image format is supported, as are conversions between color and gray-scale.
LEGACY - 3D Math Functions - image-processing/3dmath -
Illustrates the 3D math functionality designed to support the Microsoft Direct3D interface.
LEGACY - Ray-Tracing and Realistic Rendering - realistic-rendering/ray-tracing - This example illustrates how to use the ipprr domain primitives to implement a Whitted-stile ray tracer. This sample cannot be used to create images larger that 2048x2048 pixels and using no more then 32 threads for models up to 2 million triangles.
LEGACY - 3D Viewer - realistic-rendering/3d-viewer - This sample supports the mdla and tbj scene formats with a JPEG texture file. The sample implements the following "next tracers": TracerEyeMat, TracerShdMat, TracerSpecMat, TracerEye and TracerShd.
LEGACY - C++ Applications - language-interface/cpp - Illustrates how to create a C++ application that performs simple testing of the functionality of the infinite impulse response (IIR) filters created with the Intel® IPP signal processing domain of functions.
LEGACY - Java Applications - language-interface/java - Using the IPP library from the Java language. This example uses the Intel® IPP image processing functions to perform filtrating as well as morphological and geometric operations.
LEGACY - Signal Processing with the Microsoft Foundation Classes (MFC) - signal-processing/signal-processing-mfc - Demonstrates the Intel® IPP usage for signal processing using an MFC-based GUI Interface.
LEGACY - Viterbi Decoder - signal-processing/viterbi - How to use the Intel® IPP functions to create a Viterbi decoder.
LEGACY - OpenSSL Crypto Layer Support - cryptography/openssl-ipp - Demonstrates use of the Intel® IPP in support of the OpenSSL Crypto layer.
LEGACY - Fortran 90 Language Support - language-interface/f90-crypto - Using the Intel® IPP cryptography functions with the Fortran 90 language.