Intel® Integrated Performance Primitives 6.1 – Code Samples



Code Samples

To help jumpstart your application development we provide freely downloadable code samples1 that illustrate the use of Intel® Integrated Performance Primitives (Intel® IPP) functions in applications.

Downloading the Code Samples

The Intel IPP code samples are organized into three downloadable packages, according to the target operating system: Windows*, Linux* or Mac OS*. Instructions on how to build the sample are described in a readme file that comes with the installation package for each sample.

Use of the Intel IPP samples is subject to the terms and conditions of the End User License Agreement.

Operating System Included Code Samples (click to see descriptions)

Windows Samples
Download

UIC Sample Demo for Windows
Download

Cryptography Samples for Windows
Download

DMIP Sample for Windows
(Preliminary Release)
Download

Legacy Samples
Download


Video and Audio Coding (H.264, H.263, H261, MPEG-4, MPEG-2,VC-1, AVS, MP3, DV, DV50, DV100, AAC, etc.)
  • Simple Media Player
  • Video Encoding
  • H264 decoding console
  • AVS Decoding/Encoding Support (new!)
  • Video Enhancement for Denoising / Deinterlasing / Demosaicing (new!)
Image Coding (JPEG, JPEG2000, etc.)
  • Unified Image Codec class (UIC) (new!)
  • UIC Sample Demo– (new! separate download)
  • Integration with the Intel® JPEG Library (IJL)
  • Integration with the Independent JPEG Group (IJG) library
  • JPEG2000 encoder/decoder
  • JPEG viewer
Image Processing/Generation/Editing
  • Deferred Mode Image Processing Layer (DMIP) (new! - separate download)
  • Tiled Image Processing
  • Ray-Tracing/Rendering (new!)
  • 2D Wavelet Transform
  • C++ Image Processing Classes
  • General Image Processing Function Examples
  • Image Processing with the Microsoft Foundation Classes (MFC)
Library Linkage and Advanced Usage
  • Custom DLLs to support both non-threaded and threaded Static Libraries (new!)
  • Use Merged Static Libraries
  • Create your own memory management (i_malloc)
  • Static Dispatching in Windows* Kernel Mode
  • Windows* CE for IA-32 architecture
  • CPUInfo
Languages Support
  • Microsoft* .NET* (C#) (more complete wrappers for IPP functional domains)
  • C++ Applications
  • Microsoft .NET (Visual Basic*)
  • FORTRAN 90 ( for cryptography)
  • Java* Applications
  • Borland* Delphi*
Computer Vision
  • Face Detection
Data Compression
  • zlib-compatible library
  • bzip2-compatible library
  • GZIP-compatible library
  • General data compression examples
Cryptography
  • OpenSSL Crypto Layer functionality Support
  • Fortran 90 language support
Signal Processing
  • General signal processing samples
  • Signal Processing with the Microsoft Foundation Classes (MFC)
  • Viterbi decoder
String Processing
  • “ippgrep” – regular expression matching
Speech Coding (G.729, G.728, G.726, GSMAMR, etc.)
  • ITU G722.1 Annex C support (a.k.a. super-wideband SIREN14 codec) (new!)
  • Console Speech Codec Application
  • Echo Cancellation
  • G729.1 codec support (new!)
  • Microsoft RT Audio Support (new!)
  • Acoustic Noise Suppressor / Gain/Level Control support (new!)
  • G.728J codec 40kbps support (new!)
Speech Recognition
  • Aurora*
  • Advanced Aurora
  • Audio Processing
  • Gaussian Mixture
  • Speech Processing

Legacy Samples

  • Legacy sample code including speech recognition, language interface support (Borland Delphi*, Microsoft Visual Basic*) and image codecs (JPEG, JPEG2000, JPEGView).

Linux Samples
Download

UIC Sample Demo for Linux
Download

Cryptography Samples for Linux
Download

Legacy Samples
Download


Video and Audio Coding (H.264, H.263, H261, MPEG-4, MPEG-2,VC-1, AVS, MP3, DV, DV50, DV100, AAC, etc)
  • Simple Media Player
  • Video Encoding
  • H264 decoding console
  • AVS Decoding/Encoding Support (new!)
  • Video Enhancement for Denoising / Deinterlasing / Demosaicing (new!)
Image Coding (JPEG, JPEG2000, etc.)
  • Unified Image Codec class (UIC) (new!)
  • UIC Demo Sample– (new! separate download)
  • Integration with the Independent JPEG Group (IJG) library
  • JPEG2000 encoder/decoder
  • JPEG viewer
Data Compression
  • zlib-compatible library
  • bzip2-compatible library
  • GZIP-compatible library
  • General data compression examples
Library Linking and Advanced Usage
  • Custom DLLs to support both non-threaded and threaded Static Libraries (new!)
  • Use Merged Static Libraries
  • Create your own memory management (i_malloc)
  • Static Dispatching in Windows* Kernel Mode
  • Windows* CE for IA-32 architecture
  • CPUInfo
  • Language Support FORTRAN 90 (for cryptography)
  • Java* Applications
  • Borland Kylix*
Cryptography
  • OpenSSL Crypto Layer functionality support
  • Fortran 90 language support
Speech Coding (G.729, G.728, G.726, GSMAMR, etc.)
  • ITU G722.1 Annex C support (a.k.a. super-wideband SIREN14 codec) (new!)
  • Console Speech Codec Application
  • Echo Cancellation
  • G729.1 codec support (new!)
  • Microsoft RT Audio Support
  • Acoustic Noise Suppressor / Gain/Level Control support (new!)
  • G.728J codec 40kbps support (new!)

Legacy Samples

  • Legacy sample code including speech recognition, language interface support (Borland Delphi*, Microsoft Visual Basic*) and image codecs (JPEG, JPEG2000, JPEGView).

Mac OS X Samples
Download

UIC Sample Demo for Mac OS X
Download

Cryptography Samples for Mac OS X
Download

Legacy Samples
Download


Video and Audio Coding (H.264, H.263, H.261, MPEG-4, MPEG-2,VC-1, AVS, MP3, DV, DV50, DV100, AAC, etc)
  • Simple Media Player
  • Video Encoding
  • H264 decoding console
Image Coding (JPEG, JPEG2000, etc)
  • Unified Image Codec class (UIC) (new!)
  • UIC Demo Sample– (new!, separate download)
  • Integration with the Independent JPEG Group (IJG) library
  • JPEG viewer
Image Processing/Generation/Editing
  • General Image Processing Function Examples
Computer Vision
  • Face Detection
Data Compression
  • zlib-compatible library
  • bzip2-compatible library
  • GZIP-compatible library
  • General data compression examples
Library Linkage and Advanced Usage
  • Custom DLLs to support both non-threaded and threaded static libraries (new!)
  • CPUInfo
Cryptography
  • Fortran 90 language support
Speech Coding (G.729, G.728, G.726, GSMAMR, etc)
  • ITU G722.1 Annex C support (a.k.a. super-wideband SIREN14 codec) (new!)
  • Console Speech Codec ApplicationEcho Cancellation
  • G729.1 codec support (new!)
  • Microsoft RT Audio Support (new!)
  • Acoustic Noise Suppressor / Gain/Level Control support (new!)
  • G.728J codec 40kbps support (new!)


Descriptions of the Code Samples

Data Compression

  • bzip2-compatible library
    The ipp_bzip2 sample demonstrates how to use Intel IPP Data Compression domain functions for implementation of bzip2/libbzip2 (a program and library for lossless, block-sorting data compression and new improvements on threading optimization for bzip
  • GZIP-compatible library
    The IPP_GZIP sample illustrates the way of implementing effective lossless data compression solution by using Intel IPP Data Compression domain API. Additionally, this sample shows the ways of parallelizing application using OpenMP and other methods to advanced benefits on multi-core environment.
  • zlib-compatible library (new!)
    This code sample illustrates how to build a zlib-compatible data compression library using the optimized LZ77 and Huffman coding functions in Intel IPP.
  • General data compression examples
    Illustrates how to use functions provided by the Intel IPP data compression domain. Includes Huffman encoding/decoding, RLE encoding/decoding, MoveToFront (MTF), Burrows-Wheeler Transformations (BWT), General Interval Transform (GIT), and Lempel-Ziv-Storer-Szymanski (LZSS) functions.

Back to top


Video and Audio Coding
These samples include the Unified Media C++ Classes (UMC), a framework to simplify the development of advanced codecs, and five different UMC-based applications to demonstrate Intel Integrated Performance Primitives media features. All these applications have provided new project files to support Microsoft* Visual Studio*

  • Simple Media Player
    A multi-format video player using Intel Integrated Performance Primitives audio and video coding functions, and image and signal processing functions for multiple platforms. For video, it supports H.264, H.263, H.261, AVS, VC1, Motion JPEG, MPEG-4, MPEG-2, and DV. For audio, it supports MP3 and AAC.
  • Video Encoder
    A video encoder application using Intel IPP audio and video coding functions, and image and signal processing functions. It supports H.264, H.263, H.261, MPEG-4, MPEG-2 and DV.
  • Console H.264 video decoding
    A pure H.264 decoding application using Intel IPP signal processing, image processing, video coding functions and UMC to implement a H.264 video format console decoder.

Back to top


Image Coding (JPEG ,JPEG2000, etc.)

  • Unified Image Codec class (UIC) and Demo – (new!, separate download for UIC demo)
    Provides new Unified Image Codec (UIC) interface implementation for image processing applications. This sample also provides pre-built binary modules for UIC codecs in a demo named Picnic.It demonstrates functions used in JPEG/JPEG2000 encoding/decoding, RLE encoding/decoding, image filtering and computer vision algorithms such as face detection, inpainting and image segmentation.
  • Integration with the Intel JPEG Library (IJL)
    Provides high-performance JPEG encoding and decoding of full color and grayscale still images. This sample provides an easy-to-use programming interface without sacrificing low-level JPEG control to advanced developers.
  • Integration with the Independent JPEG Group (IJG) library
    Demonstrates how to use the Intel IPP libraries to increase the performance of the Independent JPEG Group (IJG) library.
  • JPEG2000 encoder/decoder
    Shows how to use Intel IPP in JPEG 2000 encoder/decoder development. Includes Rate control with rate-distortion optimization, lossless support, full color and grayscale support, single component and palette support, and multi-level 2D wavelet transform.
  • JPEG viewer
    Demonstrates how to use Intel IPP to create a JPEG encoder/decoder.

Back to top


Image Processing/Generation/Editing

  • Deferred Mode Image Processing (DMIP) (new!, preliminary release, separate download)
    Demonstrates cache-optimized pipelined image processing algorithms for Windows*. This sample provides both sample source code and pre-built binary modules for harmonization filter usage and some basic image processing tasks. Limitations of preliminary release include: (1) DMIP harmonization filter was developed for gray scale images. It may show incorrect results for color images. (2)The automatically chosen DMIP slice size may not be optimal for multi-threaded performance and will need to be set manually. (3) In some cases, thehe performance of the current DMIP threading implementation may not scale when the number of CPU cores are greater than 2.
  • Tiled Image Processing
    Illustrates the use of Intel IPP functions for processing images composed from tiles or tiled images.
  • Ray-Tracing/Rendering
    This code sample illustrates ray-tracing example.
  • 2D Wavelet Transform
    Illustrates how to use two-dimensional wavelet transform functions to implement a Haar transform.
  • C++ Image Processing Classes
    General examples illustrating the usage of Intel IPP functions in C++ image processing.
  • General Image Processing Function Examples
  • Image Processing with the Microsoft Foundation Classes (MFC)

Back to top


Library Linking and Advance Usage

  • Custom DLLs and Merged Static Libraries
    Illustrates the usage of Custom DLLs, threaded and non threaded merged static libraries, different linking methodologies to produce smaller application sizes. It supports IA-32 and Intel 64 architectures.
  • Used Merged Static Libraries
    Demonstrate the linking usage of Intel IPP merged static libraries
  • Create your own memory management (i_malloc)
    Demonstrate the Intel IPPP function usage to customize memory management
  • Static Dispatching in Windows Kernel Mode
    Illustrates the usage of Intel IPP with static dispatching for Windows kernel applications.
  • Windows CE for IA-32 architecture
    Shows how to use the Intel IPP libraries when developing applications in the Windows CE environment.

Back to top


Languages Support

  • Microsoft .NET (C#)
    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 meth, etc,
  • C++ Applications
    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 functions for signal processing.
  • Microsoft .NET (Visual Basic)
    Shows how to use the Intel IPP image processing functions that perform filtrating as well as morphological and geometric operations.
  • Java Applications
    Reveals how to use the Intel IPP image processing functions that perform filtrating as well as morphological and geometric operations.
  • Borland Delphi
    Demonstrates and tests the functions that contain code for parallel image processing on the multi-processor systems and on systems based on the Intel® processors with Hyper-Threading Technology (HT Technology).
  • Borland Kylix
    Demonstrates and tests the functions that contain an OpenMP* code for parallel image processing on the multi-processor systems and on systems based on the Intel processors with HT Technology.

Back to top


Computer Vision

  • Face Detection
    Illustrates how to use Intel IPP to apply a classifier using Haar-like features in face detection algorithm in a Microsoft Foundation Classes (MFC) application.

Back to top


Speech Coding
These samples include complete the Universal Speech Codecs (USC) framework in order to simplify the development of advanced codecs.

  • Console Speech Codec Application
    Offers a console speech codec application using Intel® IPP speech coding functions. This sample also supports encoding and decoding compliant with ITU-T and ETSI G.711/I/II, G.722, G.722.1, G723.1/A, G.726/A, G.728G/I/H, G.729/A/B/D/E/IC/C, GSM 06.90-06.94, GSM 06.31-06.32.
  • Echo Cancellation
    Includes a console application using Intel IPP speech coding function to perform echo cancellation. This sample complies with ITU-T G.168-2000 and G.167
  • Microsoft RT Audio Support

Back to top


Speech Recognition

  • Aurora*
    Demonstrates how you can test feature extraction/compression algorithms of the ETSI ES 201 108 v1.1.3 standard.
  • Advanced Aurora
    Shows how you can test feature extraction/compression algorithms of the ETSI ES 202 050 v1.1.1 standard.
  • Audio Processing
    Shows how you can efficiently use the Intel IPP functions to implement some audio processing algorithms including Acoustic Echo Cancellation, Noise Reduction, Voice-Activity Detection, and Feature Extraction.
  • Gaussian Mixture
    Shows how you can efficiently calculate Gaussian mixture values using the Intel IPP functions including Gaussian Mixture Model (GMM) Training, Pitch Detection, and Speech Resampling.
  • Speech Processing
    Demonstrates how to use Intel IPP to implement three different Speech Processing algorithms including Gaussian Mixture Model (GMM) Training, Pitch Detection, and Speech Resampling.

Back to top


Signal Processsing

  • General signal processing samples
    Demonstrate the Intel IPP usage for signal processing
  • Signal Processing with the Microsoft Foundation Classes (MFC)
    Demonstrate the Intel IPP usage for signal processing in GUI Interface
  • Viterbi decoder
    Demonstrates how to use the Intel IPP functions to create a Viterbi decoder.

Back to top


String Processing

  • “ippgrep” – regular expression matching
    The ippgrep sample demonstrates how to use functions that perform matching operations with the Perl-compatible regular expression patterns provided by the Intel Integrated Performance Primitives String Domain.

Back to top


Cryptography

  • OpenSSL Crypto Layer functionality Support
    Demonstrate the Intel IPP Cryptography function usage to support OepnSSL Crypto Layer
  • Fortran 90 language support
    Use Intel IPP crypto function in Fortran 90 language.

Note: The Intel IPP Cryptography library is a separate download, please click here to find more information

Back to top


1 Some of the sample code illustrates the use of Intel IPP functions in support of encoder and/or decoder functionality for various industry standards. Such industry standards are international standards promoted by various standards bodies, such as ISO, ITU-T, and other organizations.

Implementations of these standards, or the standard-enabled platforms, may require licenses from various entities, including Intel Corporation. Such industry standard licensing is not provided as part of Intel IPP, nor is it provided with these example illustrations.