Intel® Integrated Performance Primitives (Intel® IPP)

  • Performance: Pre-optimized Building Blocks Perform Faster
  • Previewing Intel® Graphics Support. Click here!
  • Cross-Platform and Operating System
  • Now available as a standalone product for OS X*!
  • Introducing a separate download package for Android* OS.

$199
Buy Now

Or Download a Free 30-Day Evaluation Version

Intel Integrated Performance Primitives

A Library of Highly Optimized Algorithmic Building Blocks for Media and Data Applications

Intel® Integrated Performance Primitives (Intel® IPP) 8.1 is an extensive library of software functions for multimedia processing, data processing, and communications applications for Windows*, Linux*, Android*, and OS X* environments.

Intel® Integrated Performance Primitives Highlighted Features

Overview

  • Optimized for Performance: Intel® IPP software building blocks are highly optimized using Intel® Streaming SIMD Extensions (Intel® SSE) and Intel® Advanced Vector Extensions (Intel® AVX) instruction sets so your application will perform faster than what an optimized compiler can produce alone.

  • Intel Engineered to Save You Time: Because Intel has done the engineering on these ready-to-use, royalty-free functions, you’ll not only have more time to develop new features for your application, but in the long run you’ll also save development, debug and maintenance time while knowing that the code you write today will run optimally on future generations of Intel processors.

  • Thousands of Frequently Used Functions: Intel® IPP offers thousands of optimized functions covering frequently used fundamental algorithms including those for creating digital media, enterprise, data, embedded, communications, and scientific / technical applications.

New Preview Features:

New Production Features:

  • Standalone OS X* support added (previously distributed only via the OSX* Composer suite)
  • Microsoft Windows 8* UI supported via single-threaded static libraries
  • Standalone package for Android* OS. See Using Intel® Integrated Performance Primitives with Android* OS
  • Standalone package and Intel® IPP within the Intel® Composer XE suite now have support for Intel® Xeon Phi™ coprocessors

Click on images for a larger view of the benchmark graphic.

Performance Benchmarks

Performance ChartPerformance Comparison Details
ippiFilter

ippiFilter

Performance is significantly faster than an optimized compiler with further improvements over multiple generations of SSE and Intel® AVX instruction sets.

ippsSqrt32f

ippsSqrt32f

Intel® Compiler vectorization makes a major difference in Sqrt performance alone, but Intel IPP provides significant performance boost over the Intel® Compiler.

Featured Articles

No Content Found

Supplemental Documentation

No Content Found
Subscribe to

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


Any plan for 3D image proccessing functions?
By Chaofeng W.1
I love IPP because it's super fast to do basic image processing such as flood filling. However, since I am working for a medical company and what we handle with are mostly 3D volume images, and I need 3D flood filling. Also the 3D image dilation/erosion/... are helpful and valuable. I wonder if there is any plan for IPP to provide such 3D functions?
IPSec Offload support in 82576GB controller for Linux
By Rodrigo Leal1
Is Intel 82576GB Controller Supported in Linux?
cannot compile IPP intel64
By jing w.10
Using IPP IA32, compile passed and can run. But after using IPP Intel64, got following massage, " Error 7 error LNK2019: unresolved external symbol _ippGetStatusString@4 referenced in function _main C:\Users\jingwang\documents\visual studio 2013\Projects\Project_intel64\Project_intel64\Source_intel64.obj Project_intel64 Error 8 error LNK2019: unresolved external symbol _ippInit@0 referenced in function _main C:\Users\jingwang\documents\visual studio 2013\Projects\Project_intel64\Project_intel64\Source_intel64.obj Project_intel64 Error 9 error LNK2019: unresolved external symbol _ippGetEnabledCpuFeatures@0 referenced in function _main C:\Users\jingwang\documents\visual studio 2013\Projects\Project_intel64\Project_intel64\Source_intel64.obj Project_intel64 Error 10 error LNK2019: unresolved external symbol _ippiGetLibVersion@0 referenced in function _main C:\Users\jingwang\documents\visual studio 2013\Projects\Project_intel64\Project_intel64\Source_intel64.obj Project_intel64 Erro...
IppiBilinearWarpBack doesn't work as expected
By TripleS S.1
Hey  I'm trying to warp an  image using backward bilinear warping command, The reason I'm using backward warping is because I'd like to avoid pixels estimation and holes in the destination image.  The image in the algorithm is very wide and therefor the destination warped image contains several bilinear transformations for each one of the sub source image.  My working methodology is the following:  1st, I divide the image into sub images using equispaced grid,, each block contains a different bilinear transformation for its sub image.  2nd, I'm trying to warp each one of the grid image using its backward bilinear transformations. I'm using IPP version 4.0 gold release ( but eager to upgrade soon)  Somehow, things doesn't work as they should. Each one of the destination sub block image  (i,j) transform to the same source  sub image ,  always to sub image number (0,0).  I managed to "hack" the usage that I have wanted by using the command as the following: , now the warping works gre...
about jpeg2k compress rate
By Ivan C.1
Hello, Is there some doc to analyze the compress rate of Jpeg2k ? I have a source .jp2 file that is about 58KB. I use UIC to transfer it to the .raw file, and the .raw file is about 11.3MB. At last, I use UIC to transfer the .raw file to .jp2 file again. It is surprised that the last .jp2 file is about 1.59MB. The follow is command arguments:  1, source .jp2 to .raw: uic_transcoder_con -i a.jp2 -o a.raw 2, .raw to .jp2: uic_transcoder_con -i a.raw -r -W 2208 -H 2688 -C gray -P 16s -o aa.jp2 -l 1 Dose anybody know why?? And I upload the file a.jp2.
hppi bench mark
By Boris V.1
Under the perfSys tools you have an execute that performs a bench mark. Do you have a version of this tool for hppi functions?
FFT and AVX cpu - different results on 64-bit platform
By Kamil Zukowski5
Hello, I am dealing with the problem of different results for the same input data. These differences depends on PC type. After analysis of the problem it turned out the differences come from ippiFFTFwd_CToC_32fc_C1R function. For example for the same source data and fft spec IPP_FFT_NODIV_BY_ANY, ippAlgHintAccurate: - on PC with cpu Intel Core 2 Quad Q8400 (ippGetCpuType returns ippCpuPenryn, ippi version y8) one of element in destination array is: re=244466.937500 im=-545828.250000 - on PC with cpu Intel Xeon E5-1660 (ippGetCpuType returns ippCpuAVX, ippi version e9) the seme element in destination array is: re=244466.812500 im=-545828.250000 It gives difference in real values > 0.1. Is it normal? I prepared sample program (proof of concept) working as follows: 1. ippInitCpu(ippCpuPenryn); 2. do FFTFwd: source -> destPenryn 3. ippInitCpu(ippCpuAVX); 4. do FFTFwd: source -> destAVX 5. compare elements in destPenryn and destAVX and print out differences where abs >...
IPP: Inverse FFT on non packed data
By shdow1
Hi everyone, We have some troubles with optimizing our math algorithm. We calculate the spectrum using FFT functions ant then we need to perform some mathematical operations on it. The spectrum is in Pack/Perm or CCS format. We can convert it to complex data format but finally we want to take an inverse Fast Fourier transformation.  We cannot find the IFFT function which takes complex data format as it's argument. There are no function to convert complex data format to Pack/Perm/CCS as well. Could you  help us on that issue? PS: There was IFFT function in old (SPL) library which calculated Inverse Fourier on the complex data.  Thanks in advance,

Pages

Subscribe to Forums
  • What is Intel® IPP?
  • Intel® Integrated Performance Primitives (Intel® IPP) is an extensive library of software functions to help you develop multimedia, data processing, and communications applications for Windows*, Linux*, OS X*, and Android* environments. These functions are highly optimized using Intel® Streaming SIMD Extensions (Intel® SSE) and Intel® Advanced Vector Extensions (Intel® AVX) instruction sets which often outperform what an optimized compiler can produce alone. Because Intel has done the engineering on these ready-to-use, royalty-free functions, you'll not only have more time to develop new features that differentiate your application, but in the long run you'll also save development, debug and maintenance time while knowing that the code you write today will run optimally on future generations of Intel processors.
  • What's new in Intel® IPP 8.1?
    • All Intel® IPP functions are now available for the Intel® Xeon Phi™ product family.
    • Image Processing and Computer Vision:
      • Added the ippiFilterBilateralBorder, ippiFilterGaussianBorder, ippiLabelMarkers, and ippiCannyBorder functions with extended data type and borders support.
      • Added new functions: ippiGradientVector, ippiFilterSobelBorder, ippiSAD.
      • Added extended axis support (45 and 135 degree) to the ippiMirror function.
  • What are the Intel® IPP Previews?
  • Intel® IPP is now providing technology previews of two new APIs (OpenCL and Asynchronous C/C++) focused on the image processing domain. Both models enable targeting Intel® HD Graphics and Intel® Iris™ graphics components of the Intel® processor. Try it out and take part in our new forums dedicated to these APIs. For more info, check out our preview website at: http://software.intel.com/intel-ipp-preview
  • What do I need to do to enable great performance on new platforms with Intel® IPP?
    • With Intel® IPP you get great CPU performance today and tomorrow. With each instruction set upgrade a new implementation layer is added. Previous implementations will work as before, but functions which can benefit from new hardware capabilities will be updated and validated before the new architecture is publicly released. With IPP you get the keys to unlock new performance delivered with new hardware so you can start utilizing its new CPU capabilities right away instead of interrupting development cycles for additional optimizations. In some cases the performance boost will be automatic. In most other cases all you need to do is recompile.
    • GPU performance is increasingly important. While the technology previews are less mature than IPP's CPU-only functions, starting your evaluation now and sending feedback will help make sure that IPP's GPU support grows in a direction useful to you. You can also start building products today with the previews if a faster rate of change is acceptable.
  • What are the differences between Intel® IPP main product, previews, examples, and samples?
    • The main product is primitives: optimized functions to enable developers to utilize hardware capabilities without dropping down to the specifics of each hardware version. This is still CPU only today but will include GPU support in the future. This is why we are releasing technology previews.
    • Technology previews represent a "release early and often" approach, intended to maximize the rate of new functionality released to you as well as the level of feedback on what is truly important. While there will be no limitations on releasing software built with the preview functions they will be free to change with much less notice than for changes to functions in the main product.
    • Examples as defined for Intel® IPP are short starting points intended to illustrate use of features in Intel® IPP's main product and previews. They are installed with the main package and previews. Small examples may accompany documentation. They will never grow large enough to require a separate download package, which distinguishes them from samples.
    • Samples represent a previous era for Intel® IPP. These were like examples, but far too large to maintain indefinitely. These are now legacy. For more information please see the article on Code Examples and Samples for Intel® IPP.
  • How do I get the Intel® IPP Cryptography add-on?
  • Cryptography for Intel® IPP is part of the main Intel IPP product, but is packaged separately in order to comply with United States export regulations. It is available to download for all registered users of Intel® IPP. See the Cryptography Download section of this site for more information.
  • What are the Intel® IPP Previews?
  • Intel® IPP is now providing technology previews of two new APIs (OpenCL and Asynchronous C/C++) focused on the image processing domain. Both models enable targeting Intel® HD Graphics and Intel® Iris Graphics components of the Intel® processor. Try it out and take part in our new forums dedicated to these APIs. For more info, check out our preview website at: http://software.intel.com/intel-ipp/preview
  • What do I need to do to enable great performance on new platforms with Intel® IPP?
    • With Intel® IPP you get great CPU performance today and tomorrow. With each instruction set upgrade a new implementation layer is added. Previous implementations will work as before, but functions which can benefit from new hardware capabilities will be updated and validated before the new architecture is publicly released. With IPP you get the keys to unlock new performance delivered with new hardware so you can start utilizing its new CPU capabilities right away instead of interrupting development cycles for additional optimizations. In some cases the performance boost will be automatic. In most other cases all you need to do is recompile.
    • GPU performance is increasingly important. While the technology previews are less mature than IPP's CPU-only functions, starting your evaluation now and sending feedback will help make sure that IPP's GPU support grows in a direction useful to you. You can also start building products today with the previews if a faster rate of change is acceptable.
  • What are the differences between Intel® IPP main product, previews, examples, and samples?
    • The main product is primitives: optimized functions to enable developers to utilize hardware capabilities without dropping down to the specifics of each hardware version. This is still CPU only today but will include GPU support in the future. This is why we are releasing technology previews.
    • Technology previews represent a "release early and often" approach, intended to maximize the rate of new functionality released to you as well as the level of feedback on what is truly important. While there will be no limitations on releasing software built with the preview functions they will be free to change with much less notice than for changes to functions in the main product.
    • Examples as defined for IPP are short starting points intended to illustrate use of features in IPP's main product and previews. They are installed with the main package and previews. Small examples may accompany documentation. They will never grow large enough to require a separate download package, which distinguishes them from samples.
    • Samples represent a previous era for Intel® IPP. These were like examples, but far too large to maintain indefinitely. These are now legacy. For more information please see the article on Code Examples and Samples for Intel® IPP.
  • How do I get the Intel® IPP Cryptography add-on?
  • Cryptography for Intel IPP is part of the main Intel IPP product, but is packaged separately in order to comply with United States export regulations. It is available to download for all registered users of Intel IPP. See the Cryptography Download section of this site for more information.

Intel® Integrated Performance Primitives

Getting Started?

Click the Learn tab for guides and links that will quickly get you started.

Get Help or Advice

Search Support Articles
Forums - The best place for timely answers from our technical experts and your peers. Use it even for bug reports.
Support - For secure, web-based, engineer-to-engineer support, visit our Intel® Premier Support web site. Intel Premier Support registration is required.
Download, Registration and Licensing Help - Specific help for download, registration, and licensing questions.
Supported Versions

Resources

Release Notes - View Release Notes online!
Documentation:
Reference Manual
User's Guide
All Product Documentation - View documentation online!

Featured Support Topics

No Content Found