Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public
Document Table of Contents

Image Data Types and Ranges

The Intel IPP image processing functions support only absolute color images in which each pixel is represented by its channel intensities. The data storage for an image can be either pixel-oriented or plane-oriented (planar). For images in pixel order, all channel values for each pixel are clustered and stored consecutively, for example, RGBRGBRGB in case of an RGB image. The number of channels in a pixel-order image can be 1, 2, 3, or 4.

For images in planar order, all image data for each channel is stored contiguously followed by the next channel, for example, RRR...GGG...BBB.

Functions that operate on planar images are identified by the presence of Pn descriptor in their names. In this case, n pointers (one for each plane) may be specified.

The image data type is determined by the pixel depth in bits per channel, or bit depth. Bit depth for each channel can be 8, 16 or 32 and is included in the function name as one of these numbers (see Function Naming for details). The data may be signed (s), unsigned (u), or floating-point real (f). For some arithmetic and FFT/DFT functions, data in complex format (sc or fc) can be used, where each channel value is represented by two numbers: real and imaginary part. All channels in an image must have the same data type.

For example, in an absolute color 24-bit RGB image, three consecutive bytes (24 bits) per pixel represent the three channel intensities in the pixel mode. This data type is identified in function names as the 8u_C3 descriptor, where 8u represents 8-bit unsigned data for each channel and C3 represents three channels.

Some functions operate with images in 16-bit packed RGB format (see RGB Image Formats in Image Color Conversion for more details). In this case data of all 3 channels are represented as 16u data type.

For example, in an absolute color 16-bit packed RGB image, two consecutive bytes (16 bits) per pixel represent the three channel intensities in the pixel mode. This data type is identified in function names as the 16u_C3 descriptor, where 16u represents 16-bit unsigned data (not a bit depth) for all packed channels together and C3 stands for three channels.

If an alpha (opacity) channel is present in image data, the image must have four channels, with alpha channel being the last or the first one. This data type is indicated by the AC4 or A0C4 descriptors respectively. The presence of the alpha channel can modify the function's behavior. For such functions, Intel IPP provides versions with and without alpha. If an alpha channel is specified, the operation usually is not performed on that channel.

The range of values that can be represented by each data type lies between the lower and upper bounds. The following table lists data ranges and constant identifiers used in Intel IPP to denote the respective range bounds:

Image Data Types and Ranges

Data Type

 

Lower Bound

Upper Bound

Identifier

Value

Identifier

Value

8s

IPP_MIN_8S

-128

IPP_MAX_8S

127

8u

0

IPP_MAX_8U

255

16s

IPP_MIN_16S

-32768

IPP_MAX_16S

32767

16u

0

IPP_MAX_16U

65535

32s

IPP_MIN_32S

-231

IPP_MAX_32S

231-1

32u

0

IPP_MAX_32U

232-1

32f

IPP_MINABS_32F

1.175494351e-38

IPP_MAXABS_32F

3.402823466e38

The range for absolute values