| Name String |
| |
| cl_intel_egl_image_yuv |
| |
| Contributors |
| |
| Ben Ashbaugh, Intel |
| Pawel Wilma, Intel |
| Bartosz Sochacki, Intel |
| |
| Contact |
| |
| Pawel Wilma, Intel (pawel.wilma 'at' intel.com) |
| |
| Version |
| |
| Version 1.0, June 03, 2015 |
| |
| Number |
| |
| OpenCL Extension #37 |
| |
| Status |
| |
| Final Draft |
| |
| Extension Type |
| |
| OpenCL platform extension |
| |
| Dependencies |
| |
| OpenCL 1.2 is required and cl_khr_egl_image implementation supporting |
| sharing of images between EGL and OpenCL is required. This extension |
| is written against revision 26 of the OpenCL 2.0 extension specification |
| and revision 26 of OpenCL 2.0 specification. |
| |
| Overview |
| |
| The goal of this extension is to increase interoperability between OpenCL |
| and EGL by introducing support for planar YUV images. Specifically, this |
| extension adds the ability to create OpenCL memory objects representing |
| individual planes of an EGL planar YUV image. |
| |
| |
| New Tokens |
| |
| Accepted as property in <properties> parameter of function clCreateFromEGLImageKHR |
| and as <param_name> parameter of function clGetImageInfo |
| |
| CL_EGL_YUV_PLANE_INTEL 0x4107 |
| |
| Additions to Chapter 9 of the OpenCL 2.0 Extension Specification |
| |
| In section 9.19.4, replace the description of <properties> under |
| clCreateFromEGLImageKHR with: |
| |
| "<properties> specifies a list of property names and their corresponding |
| values. Each property name is immediately followed by the corresponding |
| desired value. The list is terminated with 0. <properties> can be NULL. |
| Supported property names and values: |
| |
| ---------------------------------------------------------------------------------------- |
| Property name Property value Description |
| ----------------------- -------------- ----------- |
| CL_EGL_YUV_PLANE_INTEL -1,0,1,... Defines plane from planar YUV image to be |
| used as OpenCL image source. If the value |
| specified for this property name is not |
| valid the function returns error code |
| CL_INVALID_VALUE. Default value is -1 which |
| represents all planes of the image. |
| ----------------------------------------------------------------------------------------" |
| |
| At the end of section 9.19.4 add following description: |
| |
| "Supported planar YUV formats |
| |
| ------------------------------------------------------------------ |
| Format Plane cl_channel_order cl_channel_type |
| ------ -------------------- ---------------- --------------- |
| NV12 0 CL_R CL_UNORM_INT8 |
| NV12 1 CL_RG CL_UNORM_INT8 |
| ------------------------------------------------------------------ |
| Table 9.19.4.1: List of planar YUV formats and corresponding OpenCL |
| Image Formats. |
| |
| For the NV12 surface format, plane 0 corresponds to the Y channel |
| data and plane 1 corresponds to the UV channel data. |
| |
| In case of creating OpenCL image based on Y-plane from NV12 image |
| the <properties> could be defined in following way: |
| |
| cl_egl_image_properties_khr properties[] = |
| { |
| CL_EGL_YUV_PLANE_INTEL, 0, |
| CL_NONE |
| }; |
| |
| cl_mem image = clCreateFromEGLImageKHR( context, display, egl_image, |
| flags, properties, &error_code );" |
| |
| Additions to Chapter 5 of the OpenCL2.0 Specification |
| |
| Add to the list of errors for clGetImageInfo: |
| * CL_INVALID_EGL_OBJECT_KHR if <param_name> is CL_EGL_YUV_PLANE_INTEL |
| and <image> was not created by the function clCreateFromEGLImageKHR. |
| |
| Extend table 5.10 to include the following entry: |
| |
| ------------------------------------------------------------------------- |
| cl_image_info Return type Info. returned in <param_value> |
| ------------- ----------- ----------------------------------- |
| CL_EGL_YUV_PLANE_INTEL cl_int If <image> was created using |
| clCreateFromEGLImageKHR, returns |
| the value of CL_EGL_YUV_PLANE_INTEL |
| property from <properties> argument |
| specified when <image> was created. |
| ------------------------------------------------------------------------- |
| |
| Issues |
| |
| None |
| |
| Revision History |
| |
| Version 1.0 (2015, June 03): First public revision. |