Intel® IPP Image Processing Basics
This section explains some of the basic concepts used
in the image processing part of Intel® IPP:
Representing an Image
An image can be represented as lines of pixels. Depending on the image
format, one pixel can keep one or more integer or floating-point values. Each
image row contains the same number of pixels. An image step is a value that is
equal to distance, in bytes, between the starting points of consecutive lines
in the image.
Processing Regions of Interest (ROIs)
Most Intel IPP image processing functions can operate not only on
entire images but also on image areas. Image region of interest (ROI) is a
rectangular area that can be either some part of the image or the whole image.
Intel IPP functions that support ROI processing have the
R
descriptor in their names.
ROI of an image is defined by the size and offset from the image
origin as shown in the figure below. The origin of the image is in the top left
corner, with
x
values increasing from left to right and
y
values increasing downwards.

Initializing Function Data
Most Intel IPP functions do not perform memory allocation and require
external memory buffers to contain pre-computed values or to keep temporary
data for algorithm execution. To get size of required buffers, use the
following auxiliary functions:
Use This
| To Do This
|
---|---|
< processing
function >GetSize | Get buffer size for precomputed data
structure that is initialized by < processing
function >Init .
|
< processing
function >GetBufferSize | Obtain size for temporary buffer that is
passed to the processing function.
|
Setting Image Border Type
Many image processing algorithms sample a pixel by floating point
(
x
,
y
) coordinates to compute an intermediate or output
image. To improve the image quality, you can apply filters that use
neighborhood pixels to calculate the sampled pixel value. Thus, as shown in the
figure below, to obtain an image with size 6x6 by using 3x3 filter kernel (8
neighborhood pixels are used), the source image of size 8x8 is required.

Each filtering operation reduces image size. To keep the image size
and process image border pixels, it is required to extend the image
artificially. There are several types of border processing in Intel IPP:
- Replicated borders
- Border pixels are replicated from the source image edge pixels
- Constant borders
- Values of all border pixels are set to a constant.
- Transparent borders
- Destination pixels that have inverse transformed location out of the source image are not processed.
- Borders in memory
- Source image border pixels are obtained from the source image pixels in memory.
- Mixed borders
- Combination of transparent borders and borders in memory is applied.
To set border processing methods for Intel IPP functions, use the
borderType
(or
border
) and
borderValue
parameters. To get information about
the list of supported border types for a particular function, refer to the
Intel IPP Developer Reference
.