Does the Intel® IPP image processing library support 16-bit unsigned (16u) images?
Yes. Some image processing functions support 16u data.
Which functions support 16u images?
Where can I get more information on 16u image processing support?
If you have any questions or feature requests related to 16u support, please submit an issue to Intel® Premier Support.
The Intel IPP function I use does not support 16u. Are there any workarounds for processing 16u image data?
Can I use 16s functions to process my 16u data?
For a wide range of operations, Intel IPP 16s functions can be called on 16u data e.g. for logic, copy and set. However, sign is important for arithmetic, filtering, LUT and other function sets.
The arithmetic functions for 16s data treat image pixels and other values as 16-bit signed integers. If all arguments and results are within the interval (0,2 15-1) the operation will be the same as for 16-bit unsigned values. If the value is greater than 2 15-1, 16s functions will treat this as a negative value.
How do I set pixel values for 16u images?
For ippiSet_16s there is no difference between signed or unsigned values, therefore the function can be used for 16u data by direct data type redefinition:
Ipp16u init_value;Note: The compiler could convert the variable init_value to a signed type. The Intel® C++ Compiler does not saturate to 16-bit unsigned to 16-bit signed. Signed values should bitwise coincide with required unsigned values.