Intel® Integrated Performance Primitives (Intel® IPP) - Calling Image Processing Functions

ID 678756
Updated 9/22/2015
Version Latest
Public

author-image

By

Calling Intel® IPP Functions


Calling Intel IPP functions is as simple as calling any other C function:

  1. Include the ipp.h header file
  2. Set up the function parameters
  3. Call the function
  4. link ippi library

For selecting the ippi function for your application, please refer to Intel® IPP Reference Manual Vol.2: Image Processing
For linking the ippi library in your application, please refer to Linking Your Application with Intel® IPP

The multiple versions of optimized code for each function are concealed under a single entry point.

Color conversion from YUV 420 to RGB results in an upside-down image or in an BGR image

In some imaging pipelines, the interpretations of YUV images and RGB images are flipped relative to each other. The Intel IPP YUVToRGB function does not flip the image. However, Intel IPP does provide routines to perform the flip operation. One solution is to apply the function ippiMirror to flip the result before or after calling the YUVToRGB color conversion function. If the conversion ippiYUV422ToRGB_8u_C2C3R result in an BGR image, please use call ippiYCrCb422ToRGB_8u_C2C3R or ippiYCbCr422ToBGR_8u_C2C3R instead of call ippiYUV422ToRGB_8u_C2C3R

How can I convert a 24-bit RGB bitmap to a 32-bit RGBA bitmap?

Create a new 32-bit (4-channel) image and copy the 24-bit (3-channel) image to the 32-bit image:

  • ippiMalloc_8u_AC4
  • ippiCopy_8u_C3AC4R


How can I convert raw YUV data to RGB data?


Use the routine ippiYUV422ToRGB_8u_P3C3R to convert raw YUV to RGB.
and some new ipp color conversion (ippcc) function are avaiable
ippiYUV422ToRGB_8u_C2C3R
ippiYCrCb422ToRGB_8u_C2C3R
ippiRGBToYCbCr420_8u_C3P2R
ippiRGBToYCbCr420_8u_C4P2R
ippiYCbCr420ToRGB_8u_P23R
ippiYUVToRGB_8u_C3C4R
ippiBGRToYCbCr420_709CSC_8u_C3P2R.

How do I read an image file so it can be used with the Intel IPP?


To read an image file, you must understand the structure of the file format you are working with. From this information, you can determine the properties of the image and then store the image data into an Intel IPP buffer. The following is a general outline for loading an image:

  • Retrieve the image properties (width, height, data type, etc.) from the image file header.
  • Based on those properties, create a buffer of the appropriate Intel IPP data type and size.
  • Read/copy the image data into the buffer.
  • Use Intel IPP image processing functions to perform the desired operations on the image data buffer.

Read more about Intel IPP image and data type support in the Image Processing Reference Manual, Chapter 2.

 

Which functions can be used to calculate quality differences between two images?


The Intel IPP contains several functions to measure quality differences between images, including the  Cross Correlation ( ippiCrossCorrNorm) and Square Distance ( ippiSqrDistanceNorm) functions. Please refer to Image Proximity Measures for more details.


How can I resolve runtime errors and access violations related to image filtering functions?


Intel IPP filtering functions assume that all outstanding ROI data exists. The application is required to check that ROI values are set such that all required border pixels exist in the image. If the pixels do not exist then a runtime error will occur. For more information, please refer to the following documents:

Operating System:

Please check the Release Notes