Developer Reference

  • 2020
  • 10/21/2020
  • Public Content
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
-2
31
IPP_MAX_32S
2
31
-1
32u
0
IPP_MAX_32U
2
32
-1
32f
IPP_MINABS_32F
1.175494351e
-38
IPP_MAXABS_32F
3.402823466e
38
The range for absolute values

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804