wiki:Intel_IPP_Codecs

Version 2 (modified by bennylp, 11 years ago) (diff)

--

Using Intel Integrated Performance Primitive (IPP) with PJMEDIA

Table of Contents

  1. Requirements
  2. Installation
    1. Windows Instructions
  3. PJMEDIA Configuration
    1. Enable IPP Support
    2. Enable/Disable? Individual IPP Codec

Intel® Integrated Performance Primitives (Intel® IPP) is an extensive library of multi-core-ready, highly optimized software functions for multimedia data processing, and communications applications.

The Intel IPP can be used with PJMEDIA library to provide the following codecs:

  • AMR NB (4.75 to 12.2 Kbps)
  • AMB WB (6.6 to 23.85 Kbps
  • G.722.1 (16/24/32/40 Kbps)
  • G.723.1 (5.3/6.3 Kbps)
  • G.726 (16/24/32/40 Kbps)
  • G.728 (16 Kbps)
  • G.729A (8 Kbps) with Annex B, and annex D/E support for decoding only.

Requirements

The following are required:

  • PJSIP version 1.0-rc1 or above
  • Intel IPP library for your platform
  • Intel IPP samples

We tested with Intel IPP version 5.3. You may be able to use different Intel IPP version with PJMEDIA, however this has not been tested. As usual, your mileage may vary.

Note that the use of Intel IPP may require license, both from Intel and the parties who own the royalty of the codec.

Installation

Windows Instructions

Download and install IPP and IPP samples

  1. Download Intel IPP and Intel IPP samples from http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm
  2. Run the Intel IPP installer (e.g. w_ipp_ia32_p_5.3.3.082.exe). The default installation will install it to C:\Program Files\Intel\IPP\5.3.3.082 folder, and this is the folder that will be referred to by this tutorial.
  3. Unzip the Intel IPP samples (e.g. w_ipp-samples_p_5.3.095.zip) to a folder. This tutorial assumes that the samples are installed in C:\ipp-samples.

Build the IPP samples

  1. Go to the IPP samples unzipped folder (e.g. C:\ipp-samples).
  2. Go to speech-codecs folder.
  3. Open the readme.htm file, and follow the instructions there to build the samples from the source.

Once the build process done, you should have usc.lib file somewhere inside speech-codecs\bin directory (in my case, it's in C:\ipp-samples\speech-codecs\bin\win32_cl9\lib folder).

If you have any problems with installing and/or building the IPP or IPP samples, please read the documentation or contact Intel for support.

Configure Visual Studio

  1. Add Intel IPP include and library path to Visual Studio paths. For example if 32bit Intel IPP is installed in C:\Program Files\Intel\IPP\5.3.3.082\ia32 directory:
    • add C:\Program Files\Intel\IPP\5.3.3.082\ia32\include to the include path
    • add C:\Program Files\Intel\IPP\5.3.3.082\ia32\stublib to the library path
  2. Add Intel IPP samples include and library path to Visual Studio directory options. For example, if Intel IPP samples are in C:\ipp-samples:
    • add C:\ipp-samples\speech-codecs\core\usc\include to the include path
    • add C:\ipp-samples\speech-codecs\bin\win32_cl9\lib to the library path

PJMEDIA Configuration

Enable IPP Support

By default, IPP support is disabled in PJMEDIA. To enable IPP support, declare the following in your config.site.h:

#define PJMEDIA_HAS_INTEL_IPP	1

Enable/Disable? Individual IPP Codec

Once IPP support is enabled, by default all IPP codecs are enabled. To disable parcular codecs, use the following constructs:

#define PJMEDIA_HAS_INTEL_IPP_CODEC_AMR     0
#define PJMEDIA_HAS_INTEL_IPP_CODEC_AMRWB   0
#define PJMEDIA_HAS_INTEL_IPP_CODEC_G729    0
#define PJMEDIA_HAS_INTEL_IPP_CODEC_G723    0
#define PJMEDIA_HAS_INTEL_IPP_CODEC_G726    0
#define PJMEDIA_HAS_INTEL_IPP_CODEC_G728    0
#define PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1  0

Attachments (1)

Download all attachments as: .zip