OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.

Image formats

mhr3
Beginner
693 Views
I just wanted to ask if there are any plans to support more image formats, there are many image processing algorithms using grayscale images as input, so it'd be great if also CL_LUMINANCE/CL_INTENSITY with CL_[SU]NORM_INT8 data types would be supported.
Thanks
0 Kudos
8 Replies
ARNON_P_Intel
Employee
693 Views
Thanks for posting this request.
We will continue to evaluate which features to add in our next releases.
Can you add more infromation on which algorithms and applications you find that must use this image types?
Regards,
- Arnon
0 Kudos
mhr3
Beginner
693 Views
There are many real-time object detection / motion detection / object tracking algorithms that operate on grayscale images. Of course one could convert the chars to floats (which Intel's implementation already supports), but you can imagine the performance penalty when you suddenly need to work with four times as much input data.
0 Kudos
sharpneli
Beginner
693 Views
Basically any 2 dimensional signal processing task requires single component images. As a practical example you could do Ultrasound Phased Array signal processing with OpenCL and depending on the application different channel data types are preferred, for some 8bit precision can be chosen as a tradeoff between accuracy and processing speed.
0 Kudos
hakuliu
Beginner
693 Views
I would like to raise this issue as well.
I'm currently doing some openCL volumetric ray tracing using monochrome image data on GeForce CUDA cards. We did this by using the image format (R, UnormInt16), which we thought was the best way to represent the data given the operations.
In order to do some experimentations, we decided to try to port this program over to the OpenCL SDK for intel.
When I desplayed the supported image formats for OpenCL for the CPU platform (Intel Xeon, 3.06ghz, X4), I got:
(RGBA, UNormInt8)
(RGBA, UNormInt16)
(RGBA, SignedInt8)
(RGBA, SignedInt16)
(RGBA, SignedInt32)
(RGBA, UnsignedInt8)
(RGBA, UnsignedInt16)
(RGBA, UnsignedInt32)
(RGBA, HalfFloat)
(RGBA, Float)
(BGRA, UNormInt8)
(INTENSITY, Float)
(LUMINANCE, Float)
Which, of course, does not include the format which we were using, and caused our program to throw exceptions everywhere.
In short, I would like to ask for support for more image formats, which would increase performance and memory usage for certain algorithms greatly.
As a reference, the graphics card (NVIDIA CUDA) supports the following:
(R, Float)
(R, HalfFloat)
(R, UNormInt8)
(R, UNormInt16)
(R, SNormInt16)
(R, SignedInt8)
(R, SignedInt16)
(R, SignedInt32)
(R, UnsignedInt8)
(R, UnsignedInt16)
(R, UnsignedInt32)
(A, Float)
(A, HalfFloat)
(A, UNormInt8)
(A, UNormInt16)
(A, SNormInt16)
(A, SignedInt8)
(A, SignedInt16)
(A, SignedInt32)
(A, UnsignedInt8)
(A, UnsignedInt16)
(A, UnsignedInt32)
(RG, Float)
(RG, HalfFloat)
(RG, UNormInt8)
(RG, UNormInt16)
(RG, SNormInt16)
(RG, SignedInt8)
(RG, SignedInt16)
(RG, SignedInt32)
(RG, UnsignedInt8)
(RG, UnsignedInt16)
(RG, UnsignedInt32)
(RA, Float)
(RA, HalfFloat)
(RA, UNormInt8)
(RA, UNormInt16)
(RA, SNormInt16)
(RA, SignedInt8)
(RA, SignedInt16)
(RA, SignedInt32)
(RA, UnsignedInt8)
(RA, UnsignedInt16)
(RA, UnsignedInt32)
(RGBA, Float)
(RGBA, HalfFloat)
(RGBA, UNormInt8)
(RGBA, UNormInt16)
(RGBA, SNormInt16)
(RGBA, SignedInt8)
(RGBA, SignedInt16)
(RGBA, SignedInt32)
(RGBA, UnsignedInt8)
(RGBA, UnsignedInt16)
(RGBA, UnsignedInt32)
(BGRA, UNormInt8)
(BGRA, SignedInt8)
(BGRA, UnsignedInt8)
(ARGB, UNormInt8)
(ARGB, SignedInt8)
(ARGB, UnsignedInt8)
(INTENSITY, Float)
(INTENSITY, HalfFloat)
(INTENSITY, UNormInt8)
(INTENSITY, UNormInt16)
(INTENSITY, SNormInt16)
(LUMINANCE, Float)
(LUMINANCE, HalfFloat)
(LUMINANCE, UNormInt8)
(LUMINANCE, UNormInt16)
(LUMINANCE, SNormInt16)
0 Kudos
rtfss1gmail_com
Beginner
693 Views
I don't know how intel can be 1.1 compliant without supporting one/two channel textures (it's a 1.1 feature)..
so that would be supported
(R, Float)
(R, HalfFloat)
(R, UNormInt8)
(R, UNormInt16)
(R, SNormInt16)
(R, SignedInt8)
(R, SignedInt16)
(R, SignedInt32)
(R, UnsignedInt8)
(R, UnsignedInt16)
(R, UnsignedInt32)
etc
0 Kudos
Evgeny_F_Intel
Employee
693 Views

The minimum list of supported formats is given in Table 5.7, of the OpenCL 1.1 spec.
We do support these formats.
We are evaluating support of additional formant, and your input is very appreciated.

0 Kudos
ufimtsev
Beginner
693 Views

The minimum list of supported formats is given in Table 5.7, of the OpenCL 1.1 spec.
We do support these formats.
We are evaluating support of additional formant, and your input is very appreciated.

Hi,
Are you planning to support RG|CL_SIGNED_INT32 ? We need it to fetch double precision numbers from textures.
Thanks.
0 Kudos
Jimmy_S_1
Beginner
693 Views

mhr3 wrote:

I just wanted to ask if there are any plans to support more image formats, there are many image processing algorithms using grayscale images as input, so it'd be great if also CL_LUMINANCE/CL_INTENSITY with CL_[SU]NORM_INT8 data types would be supported. Thanks

Most image processing libraries supports multiple image formats and you may google one.

0 Kudos
Reply