1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.8.6"/>
8 <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
9 <title>Compute Library: src/core/CL/cl_kernels/channel_combine.cl File Reference</title>
10 <link href="tabs.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="jquery.js"></script>
12 <script type="text/javascript" src="dynsections.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtree.js"></script>
16 <script type="text/javascript">
17 $(document).ready(initResizable);
18 $(window).load(resizeHeight);
20 <link href="search/search.css" rel="stylesheet" type="text/css"/>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 $(document).ready(function() { searchBox.OnSelectItem(0); });
25 <script type="text/x-mathjax-config">
27 extensions: ["tex2jax.js"],
28 jax: ["input/TeX","output/HTML-CSS"],
30 </script><script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
31 <link href="doxygen.css" rel="stylesheet" type="text/css" />
34 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
36 <table cellspacing="0" cellpadding="0">
38 <tr style="height: 56px;">
39 <td style="padding-left: 0.5em;">
40 <div id="projectname">Compute Library
41  <span id="projectnumber">17.10</span>
48 <!-- end header part -->
49 <!-- Generated by Doxygen 1.8.6 -->
50 <script type="text/javascript">
51 var searchBox = new SearchBox("searchBox", "search",false,'Search');
53 <div id="navrow1" class="tabs">
55 <li><a href="index.xhtml"><span>Main Page</span></a></li>
56 <li><a href="pages.xhtml"><span>Related Pages</span></a></li>
57 <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
58 <li><a href="annotated.xhtml"><span>Data Structures</span></a></li>
59 <li class="current"><a href="files.xhtml"><span>Files</span></a></li>
61 <div id="MSearchBox" class="MSearchBoxInactive">
63 <img id="MSearchSelect" src="search/mag_sel.png"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
67 <input type="text" id="MSearchField" value="Search" accesskey="S"
68 onfocus="searchBox.OnSearchFieldFocus(true)"
69 onblur="searchBox.OnSearchFieldFocus(false)"
70 onkeyup="searchBox.OnSearchFieldChange(event)"/>
71 </span><span class="right">
72 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
78 <div id="navrow2" class="tabs2">
80 <li><a href="files.xhtml"><span>File List</span></a></li>
81 <li><a href="globals.xhtml"><span>Globals</span></a></li>
85 <div id="side-nav" class="ui-resizable side-nav-resizable">
87 <div id="nav-tree-contents">
88 <div id="nav-sync" class="sync"></div>
91 <div id="splitbar" style="-moz-user-select:none;"
92 class="ui-resizable-handle">
95 <script type="text/javascript">
96 $(document).ready(function(){initNavTree('channel__combine_8cl.xhtml','');});
98 <div id="doc-content">
99 <!-- window showing the filter options -->
100 <div id="MSearchSelectWindow"
101 onmouseover="return searchBox.OnSearchSelectShow()"
102 onmouseout="return searchBox.OnSearchSelectHide()"
103 onkeydown="return searchBox.OnSearchSelectKey(event)">
104 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Pages</a></div>
106 <!-- iframe showing the search results (closed by default) -->
107 <div id="MSearchResultsWindow">
108 <iframe src="javascript:void(0)" frameborder="0"
109 name="MSearchResults" id="MSearchResults">
114 <div class="summary">
115 <a href="#func-members">Functions</a> </div>
116 <div class="headertitle">
117 <div class="title">channel_combine.cl File Reference</div> </div>
119 <div class="contents">
120 <div class="textblock"><code>#include "<a class="el" href="helpers_8h_source.xhtml">helpers.h</a>"</code><br/>
122 <p><a href="channel__combine_8cl_source.xhtml">Go to the source code of this file.</a></p>
123 <table class="memberdecls">
124 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
125 Functions</h2></td></tr>
126 <tr class="memitem:a4059c118efa918cf5248381185411d59"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a4059c118efa918cf5248381185411d59">channel_combine_RGB888</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
127 <tr class="memdesc:a4059c118efa918cf5248381185411d59"><td class="mdescLeft"> </td><td class="mdescRight">This function combines three planes to a single RGB image. <a href="#a4059c118efa918cf5248381185411d59">More...</a><br/></td></tr>
128 <tr class="separator:a4059c118efa918cf5248381185411d59"><td class="memSeparator" colspan="2"> </td></tr>
129 <tr class="memitem:a98e381fa0dce5bd838990d03d8779246"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a98e381fa0dce5bd838990d03d8779246">channel_combine_RGBA8888</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *plane3_ptr, uint plane3_stride_x, uint plane3_step_x, uint plane3_stride_y, uint plane3_step_y, uint plane3_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
130 <tr class="memdesc:a98e381fa0dce5bd838990d03d8779246"><td class="mdescLeft"> </td><td class="mdescRight">This function combines three planes to a single RGBA image. <a href="#a98e381fa0dce5bd838990d03d8779246">More...</a><br/></td></tr>
131 <tr class="separator:a98e381fa0dce5bd838990d03d8779246"><td class="memSeparator" colspan="2"> </td></tr>
132 <tr class="memitem:a410770921ba530aaf00498478ff7f475"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a410770921ba530aaf00498478ff7f475">channel_combine_YUYV422</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
133 <tr class="memdesc:a410770921ba530aaf00498478ff7f475"><td class="mdescLeft"> </td><td class="mdescRight">This function combines three planes to a single YUYV image. <a href="#a410770921ba530aaf00498478ff7f475">More...</a><br/></td></tr>
134 <tr class="separator:a410770921ba530aaf00498478ff7f475"><td class="memSeparator" colspan="2"> </td></tr>
135 <tr class="memitem:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a72eb5d0161bfc3bca9ceb770ce7ef1ad">channel_combine_UYVY422</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
136 <tr class="memdesc:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="mdescLeft"> </td><td class="mdescRight">This function combines three planes to a single UYUV image. <a href="#a72eb5d0161bfc3bca9ceb770ce7ef1ad">More...</a><br/></td></tr>
137 <tr class="separator:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="memSeparator" colspan="2"> </td></tr>
138 <tr class="memitem:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a6eb00cba13d0cb12229e5ac18a1ef3c3">channel_combine_NV</a> (__global uchar *src_plane0_ptr, uint src_plane0_stride_x, uint src_plane0_step_x, uint src_plane0_stride_y, uint src_plane0_step_y, uint src_plane0_offset_first_element_in_bytes, __global uchar *src_plane1_ptr, uint src_plane1_stride_x, uint src_plane1_step_x, uint src_plane1_stride_y, uint src_plane1_step_y, uint src_plane1_offset_first_element_in_bytes, __global uchar *src_plane2_ptr, uint src_plane2_stride_x, uint src_plane2_step_x, uint src_plane2_stride_y, uint src_plane2_step_y, uint src_plane2_offset_first_element_in_bytes, __global uchar *dst_plane0_ptr, uint dst_plane0_stride_x, uint dst_plane0_step_x, uint dst_plane0_stride_y, uint dst_plane0_step_y, uint dst_plane0_offset_first_element_in_bytes, __global uchar *dst_plane1_ptr, uint dst_plane1_stride_x, uint dst_plane1_step_x, uint dst_plane1_stride_y, uint dst_plane1_step_y, uint dst_plane1_offset_first_element_in_bytes, uint height)</td></tr>
139 <tr class="memdesc:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="mdescLeft"> </td><td class="mdescRight">This function combines three planes to a single NV12/NV21 image. <a href="#a6eb00cba13d0cb12229e5ac18a1ef3c3">More...</a><br/></td></tr>
140 <tr class="separator:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="memSeparator" colspan="2"> </td></tr>
141 <tr class="memitem:a2ecdd5708954da1196aa12856e78a462"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a2ecdd5708954da1196aa12856e78a462">copy_planes_3p</a> (__global uchar *src_plane0_ptr, uint src_plane0_stride_x, uint src_plane0_step_x, uint src_plane0_stride_y, uint src_plane0_step_y, uint src_plane0_offset_first_element_in_bytes, __global uchar *src_plane1_ptr, uint src_plane1_stride_x, uint src_plane1_step_x, uint src_plane1_stride_y, uint src_plane1_step_y, uint src_plane1_offset_first_element_in_bytes, __global uchar *src_plane2_ptr, uint src_plane2_stride_x, uint src_plane2_step_x, uint src_plane2_stride_y, uint src_plane2_step_y, uint src_plane2_offset_first_element_in_bytes, __global uchar *dst_plane0_ptr, uint dst_plane0_stride_x, uint dst_plane0_step_x, uint dst_plane0_stride_y, uint dst_plane0_step_y, uint dst_plane0_offset_first_element_in_bytes, __global uchar *dst_plane1_ptr, uint dst_plane1_stride_x, uint dst_plane1_step_x, uint dst_plane1_stride_y, uint dst_plane1_step_y, uint dst_plane1_offset_first_element_in_bytes, __global uchar *dst_plane2_ptr, uint dst_plane2_stride_x, uint dst_plane2_step_x, uint dst_plane2_stride_y, uint dst_plane2_step_y, uint dst_plane2_offset_first_element_in_bytes, uint height)</td></tr>
142 <tr class="memdesc:a2ecdd5708954da1196aa12856e78a462"><td class="mdescLeft"> </td><td class="mdescRight">This function combines three planes to a single YUV444 or IYUV image. <a href="#a2ecdd5708954da1196aa12856e78a462">More...</a><br/></td></tr>
143 <tr class="separator:a2ecdd5708954da1196aa12856e78a462"><td class="memSeparator" colspan="2"> </td></tr>
145 <h2 class="groupheader">Function Documentation</h2>
146 <a class="anchor" id="a6eb00cba13d0cb12229e5ac18a1ef3c3"></a>
147 <div class="memitem">
148 <div class="memproto">
149 <table class="memname">
151 <td class="memname">__kernel void channel_combine_NV </td>
153 <td class="paramtype">__global uchar * </td>
154 <td class="paramname"><em>src_plane0_ptr</em>, </td>
157 <td class="paramkey"></td>
159 <td class="paramtype">uint </td>
160 <td class="paramname"><em>src_plane0_stride_x</em>, </td>
163 <td class="paramkey"></td>
165 <td class="paramtype">uint </td>
166 <td class="paramname"><em>src_plane0_step_x</em>, </td>
169 <td class="paramkey"></td>
171 <td class="paramtype">uint </td>
172 <td class="paramname"><em>src_plane0_stride_y</em>, </td>
175 <td class="paramkey"></td>
177 <td class="paramtype">uint </td>
178 <td class="paramname"><em>src_plane0_step_y</em>, </td>
181 <td class="paramkey"></td>
183 <td class="paramtype">uint </td>
184 <td class="paramname"><em>src_plane0_offset_first_element_in_bytes</em>, </td>
187 <td class="paramkey"></td>
189 <td class="paramtype">__global uchar * </td>
190 <td class="paramname"><em>src_plane1_ptr</em>, </td>
193 <td class="paramkey"></td>
195 <td class="paramtype">uint </td>
196 <td class="paramname"><em>src_plane1_stride_x</em>, </td>
199 <td class="paramkey"></td>
201 <td class="paramtype">uint </td>
202 <td class="paramname"><em>src_plane1_step_x</em>, </td>
205 <td class="paramkey"></td>
207 <td class="paramtype">uint </td>
208 <td class="paramname"><em>src_plane1_stride_y</em>, </td>
211 <td class="paramkey"></td>
213 <td class="paramtype">uint </td>
214 <td class="paramname"><em>src_plane1_step_y</em>, </td>
217 <td class="paramkey"></td>
219 <td class="paramtype">uint </td>
220 <td class="paramname"><em>src_plane1_offset_first_element_in_bytes</em>, </td>
223 <td class="paramkey"></td>
225 <td class="paramtype">__global uchar * </td>
226 <td class="paramname"><em>src_plane2_ptr</em>, </td>
229 <td class="paramkey"></td>
231 <td class="paramtype">uint </td>
232 <td class="paramname"><em>src_plane2_stride_x</em>, </td>
235 <td class="paramkey"></td>
237 <td class="paramtype">uint </td>
238 <td class="paramname"><em>src_plane2_step_x</em>, </td>
241 <td class="paramkey"></td>
243 <td class="paramtype">uint </td>
244 <td class="paramname"><em>src_plane2_stride_y</em>, </td>
247 <td class="paramkey"></td>
249 <td class="paramtype">uint </td>
250 <td class="paramname"><em>src_plane2_step_y</em>, </td>
253 <td class="paramkey"></td>
255 <td class="paramtype">uint </td>
256 <td class="paramname"><em>src_plane2_offset_first_element_in_bytes</em>, </td>
259 <td class="paramkey"></td>
261 <td class="paramtype">__global uchar * </td>
262 <td class="paramname"><em>dst_plane0_ptr</em>, </td>
265 <td class="paramkey"></td>
267 <td class="paramtype">uint </td>
268 <td class="paramname"><em>dst_plane0_stride_x</em>, </td>
271 <td class="paramkey"></td>
273 <td class="paramtype">uint </td>
274 <td class="paramname"><em>dst_plane0_step_x</em>, </td>
277 <td class="paramkey"></td>
279 <td class="paramtype">uint </td>
280 <td class="paramname"><em>dst_plane0_stride_y</em>, </td>
283 <td class="paramkey"></td>
285 <td class="paramtype">uint </td>
286 <td class="paramname"><em>dst_plane0_step_y</em>, </td>
289 <td class="paramkey"></td>
291 <td class="paramtype">uint </td>
292 <td class="paramname"><em>dst_plane0_offset_first_element_in_bytes</em>, </td>
295 <td class="paramkey"></td>
297 <td class="paramtype">__global uchar * </td>
298 <td class="paramname"><em>dst_plane1_ptr</em>, </td>
301 <td class="paramkey"></td>
303 <td class="paramtype">uint </td>
304 <td class="paramname"><em>dst_plane1_stride_x</em>, </td>
307 <td class="paramkey"></td>
309 <td class="paramtype">uint </td>
310 <td class="paramname"><em>dst_plane1_step_x</em>, </td>
313 <td class="paramkey"></td>
315 <td class="paramtype">uint </td>
316 <td class="paramname"><em>dst_plane1_stride_y</em>, </td>
319 <td class="paramkey"></td>
321 <td class="paramtype">uint </td>
322 <td class="paramname"><em>dst_plane1_step_y</em>, </td>
325 <td class="paramkey"></td>
327 <td class="paramtype">uint </td>
328 <td class="paramname"><em>dst_plane1_offset_first_element_in_bytes</em>, </td>
331 <td class="paramkey"></td>
333 <td class="paramtype">uint </td>
334 <td class="paramname"><em>height</em> </td>
342 </div><div class="memdoc">
344 <p>This function combines three planes to a single NV12/NV21 image. </p>
345 <dl class="section note"><dt>Note</dt><dd>NV12 or NV21 has to be specified through preprocessor macro. eg. -DNV12 performs NV12 channel combine.</dd></dl>
346 <dl class="params"><dt>Parameters</dt><dd>
347 <table class="params">
348 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
349 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
350 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_x</td><td>src_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
351 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
352 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_y</td><td>src_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
353 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
354 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
355 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
356 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_x</td><td>src_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
357 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
358 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_y</td><td>src_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
359 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
360 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
361 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
362 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_x</td><td>src_plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
363 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
364 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_y</td><td>src_plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
365 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
366 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_ptr</td><td>Pointer to the first plane of the destination image. Supported Format: U8 </td></tr>
367 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_x</td><td>Stride of the first plane of the destination image in X dimension (in bytes) </td></tr>
368 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_x</td><td>dst_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
369 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_y</td><td>Stride of the first plane of the destination image in Y dimension (in bytes) </td></tr>
370 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_y</td><td>dst_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
371 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane of the destination image </td></tr>
372 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_ptr</td><td>Pointer to the second plane of the destination image. Supported Format: UV88 </td></tr>
373 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_x</td><td>Stride of the second plane of the destination image in X dimension (in bytes) </td></tr>
374 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_x</td><td>dst_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
375 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_y</td><td>Stride of the second plane of the destination image in Y dimension (in bytes) </td></tr>
376 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_y</td><td>dst_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
377 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane of the destination image </td></tr>
378 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Sub-sampled height </td></tr>
383 <p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00317">317</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
385 <p>References <a class="el" href="helpers_8h_source.xhtml#l00096">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="helpers_8h_source.xhtml#l00295">offset()</a>, and <a class="el" href="helpers_8h_source.xhtml#l00136">Image::ptr</a>.</p>
386 <div class="fragment"><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> {</div>
387 <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// Get pixels pointer</span></div>
388 <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="struct_image.xhtml">Image</a> src_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane0);</div>
389 <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="struct_image.xhtml">Image</a> src_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane1);</div>
390 <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="struct_image.xhtml">Image</a> src_plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane2);</div>
391 <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="struct_image.xhtml">Image</a> dst_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane0);</div>
392 <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="struct_image.xhtml">Image</a> dst_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane1);</div>
393 <div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
394 <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// Copy plane data</span></div>
395 <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  vstore16(vload16(0, src_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
396 <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  vstore16(vload16(0, <a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&src_plane0, 0, height)), 0, (__global uchar *)<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&dst_plane0, 0, height));</div>
397 <div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
398 <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// Create UV place</span></div>
399 <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  uchar8 data1 = vload8(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
400 <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  uchar8 data2 = vload8(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
401 <div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
402 <div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor">#ifdef NV12</span></div>
403 <div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"></span> vstore16(shuffle2(data1, data2, (uchar16)(0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15)), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
404 <div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor">#elif defined(NV21)</span></div>
405 <div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"></span> vstore16(shuffle2(data2, data1, (uchar16)(0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15)), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
406 <div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#endif </span><span class="comment">/* NV12 or NV21 */</span><span class="preprocessor"></span></div>
407 <div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"></span>}</div>
408 <div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00295">helpers.h:295</a></div></div>
409 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00096">helpers.h:96</a></div></div>
410 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00134">helpers.h:134</a></div></div>
411 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00136">helpers.h:136</a></div></div>
412 </div><!-- fragment -->
415 <a class="anchor" id="a4059c118efa918cf5248381185411d59"></a>
416 <div class="memitem">
417 <div class="memproto">
418 <table class="memname">
420 <td class="memname">__kernel void channel_combine_RGB888 </td>
422 <td class="paramtype">__global uchar * </td>
423 <td class="paramname"><em>plane0_ptr</em>, </td>
426 <td class="paramkey"></td>
428 <td class="paramtype">uint </td>
429 <td class="paramname"><em>plane0_stride_x</em>, </td>
432 <td class="paramkey"></td>
434 <td class="paramtype">uint </td>
435 <td class="paramname"><em>plane0_step_x</em>, </td>
438 <td class="paramkey"></td>
440 <td class="paramtype">uint </td>
441 <td class="paramname"><em>plane0_stride_y</em>, </td>
444 <td class="paramkey"></td>
446 <td class="paramtype">uint </td>
447 <td class="paramname"><em>plane0_step_y</em>, </td>
450 <td class="paramkey"></td>
452 <td class="paramtype">uint </td>
453 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
456 <td class="paramkey"></td>
458 <td class="paramtype">__global uchar * </td>
459 <td class="paramname"><em>plane1_ptr</em>, </td>
462 <td class="paramkey"></td>
464 <td class="paramtype">uint </td>
465 <td class="paramname"><em>plane1_stride_x</em>, </td>
468 <td class="paramkey"></td>
470 <td class="paramtype">uint </td>
471 <td class="paramname"><em>plane1_step_x</em>, </td>
474 <td class="paramkey"></td>
476 <td class="paramtype">uint </td>
477 <td class="paramname"><em>plane1_stride_y</em>, </td>
480 <td class="paramkey"></td>
482 <td class="paramtype">uint </td>
483 <td class="paramname"><em>plane1_step_y</em>, </td>
486 <td class="paramkey"></td>
488 <td class="paramtype">uint </td>
489 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
492 <td class="paramkey"></td>
494 <td class="paramtype">__global uchar * </td>
495 <td class="paramname"><em>plane2_ptr</em>, </td>
498 <td class="paramkey"></td>
500 <td class="paramtype">uint </td>
501 <td class="paramname"><em>plane2_stride_x</em>, </td>
504 <td class="paramkey"></td>
506 <td class="paramtype">uint </td>
507 <td class="paramname"><em>plane2_step_x</em>, </td>
510 <td class="paramkey"></td>
512 <td class="paramtype">uint </td>
513 <td class="paramname"><em>plane2_stride_y</em>, </td>
516 <td class="paramkey"></td>
518 <td class="paramtype">uint </td>
519 <td class="paramname"><em>plane2_step_y</em>, </td>
522 <td class="paramkey"></td>
524 <td class="paramtype">uint </td>
525 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
528 <td class="paramkey"></td>
530 <td class="paramtype">__global uchar * </td>
531 <td class="paramname"><em>dst_ptr</em>, </td>
534 <td class="paramkey"></td>
536 <td class="paramtype">uint </td>
537 <td class="paramname"><em>dst_stride_x</em>, </td>
540 <td class="paramkey"></td>
542 <td class="paramtype">uint </td>
543 <td class="paramname"><em>dst_step_x</em>, </td>
546 <td class="paramkey"></td>
548 <td class="paramtype">uint </td>
549 <td class="paramname"><em>dst_stride_y</em>, </td>
552 <td class="paramkey"></td>
554 <td class="paramtype">uint </td>
555 <td class="paramname"><em>dst_step_y</em>, </td>
558 <td class="paramkey"></td>
560 <td class="paramtype">uint </td>
561 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
569 </div><div class="memdoc">
571 <p>This function combines three planes to a single RGB image. </p>
572 <dl class="params"><dt>Parameters</dt><dd>
573 <table class="params">
574 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
575 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
576 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
577 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
578 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
579 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
580 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
581 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
582 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
583 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
584 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
585 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
586 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
587 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
588 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
589 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
590 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
591 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
592 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: RGB </td></tr>
593 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
594 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
595 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
596 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
597 <tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
602 <p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00053">53</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
604 <p>References <a class="el" href="helpers_8h_source.xhtml#l00096">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00136">Image::ptr</a>.</p>
605 <div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
606 <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// Get pixels pointer</span></div>
607 <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div>
608 <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div>
609 <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div>
610 <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div>
611 <div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
612 <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
613 <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  uchar16 data1 = vload16(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
614 <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  uchar16 data2 = vload16(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
615 <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
616 <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  uchar16 out0 = (uchar16)(data0.s0, data1.s0, data2.s0,</div>
617 <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  data0.s1, data1.s1, data2.s1,</div>
618 <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  data0.s2, data1.s2, data2.s2,</div>
619 <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  data0.s3, data1.s3, data2.s3,</div>
620 <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  data0.s4, data1.s4, data2.s4,</div>
621 <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  data0.s5);</div>
622 <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
623 <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
624 <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  uchar16 out1 = (uchar16)(data1.s5, data2.s5, data0.s6,</div>
625 <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  data1.s6, data2.s6, data0.s7,</div>
626 <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  data1.s7, data2.s7, data0.s8,</div>
627 <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  data1.s8, data2.s8, data0.s9,</div>
628 <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  data1.s9, data2.s9, data0.sA,</div>
629 <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  data1.sA);</div>
630 <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div>
631 <div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
632 <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  uchar16 out2 = (uchar16)(data2.sA, data0.sB, data1.sB,</div>
633 <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  data2.sB, data0.sC, data1.sC,</div>
634 <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  data2.sC, data0.sD, data1.sD,</div>
635 <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  data2.sD, data0.sE, data1.sE,</div>
636 <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  data2.sE, data0.sF, data1.sF,</div>
637 <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  data2.sF);</div>
638 <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  vstore16(out2, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 32);</div>
639 <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div>
640 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00096">helpers.h:96</a></div></div>
641 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00134">helpers.h:134</a></div></div>
642 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00136">helpers.h:136</a></div></div>
643 </div><!-- fragment -->
646 <a class="anchor" id="a98e381fa0dce5bd838990d03d8779246"></a>
647 <div class="memitem">
648 <div class="memproto">
649 <table class="memname">
651 <td class="memname">__kernel void channel_combine_RGBA8888 </td>
653 <td class="paramtype">__global uchar * </td>
654 <td class="paramname"><em>plane0_ptr</em>, </td>
657 <td class="paramkey"></td>
659 <td class="paramtype">uint </td>
660 <td class="paramname"><em>plane0_stride_x</em>, </td>
663 <td class="paramkey"></td>
665 <td class="paramtype">uint </td>
666 <td class="paramname"><em>plane0_step_x</em>, </td>
669 <td class="paramkey"></td>
671 <td class="paramtype">uint </td>
672 <td class="paramname"><em>plane0_stride_y</em>, </td>
675 <td class="paramkey"></td>
677 <td class="paramtype">uint </td>
678 <td class="paramname"><em>plane0_step_y</em>, </td>
681 <td class="paramkey"></td>
683 <td class="paramtype">uint </td>
684 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
687 <td class="paramkey"></td>
689 <td class="paramtype">__global uchar * </td>
690 <td class="paramname"><em>plane1_ptr</em>, </td>
693 <td class="paramkey"></td>
695 <td class="paramtype">uint </td>
696 <td class="paramname"><em>plane1_stride_x</em>, </td>
699 <td class="paramkey"></td>
701 <td class="paramtype">uint </td>
702 <td class="paramname"><em>plane1_step_x</em>, </td>
705 <td class="paramkey"></td>
707 <td class="paramtype">uint </td>
708 <td class="paramname"><em>plane1_stride_y</em>, </td>
711 <td class="paramkey"></td>
713 <td class="paramtype">uint </td>
714 <td class="paramname"><em>plane1_step_y</em>, </td>
717 <td class="paramkey"></td>
719 <td class="paramtype">uint </td>
720 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
723 <td class="paramkey"></td>
725 <td class="paramtype">__global uchar * </td>
726 <td class="paramname"><em>plane2_ptr</em>, </td>
729 <td class="paramkey"></td>
731 <td class="paramtype">uint </td>
732 <td class="paramname"><em>plane2_stride_x</em>, </td>
735 <td class="paramkey"></td>
737 <td class="paramtype">uint </td>
738 <td class="paramname"><em>plane2_step_x</em>, </td>
741 <td class="paramkey"></td>
743 <td class="paramtype">uint </td>
744 <td class="paramname"><em>plane2_stride_y</em>, </td>
747 <td class="paramkey"></td>
749 <td class="paramtype">uint </td>
750 <td class="paramname"><em>plane2_step_y</em>, </td>
753 <td class="paramkey"></td>
755 <td class="paramtype">uint </td>
756 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
759 <td class="paramkey"></td>
761 <td class="paramtype">__global uchar * </td>
762 <td class="paramname"><em>plane3_ptr</em>, </td>
765 <td class="paramkey"></td>
767 <td class="paramtype">uint </td>
768 <td class="paramname"><em>plane3_stride_x</em>, </td>
771 <td class="paramkey"></td>
773 <td class="paramtype">uint </td>
774 <td class="paramname"><em>plane3_step_x</em>, </td>
777 <td class="paramkey"></td>
779 <td class="paramtype">uint </td>
780 <td class="paramname"><em>plane3_stride_y</em>, </td>
783 <td class="paramkey"></td>
785 <td class="paramtype">uint </td>
786 <td class="paramname"><em>plane3_step_y</em>, </td>
789 <td class="paramkey"></td>
791 <td class="paramtype">uint </td>
792 <td class="paramname"><em>plane3_offset_first_element_in_bytes</em>, </td>
795 <td class="paramkey"></td>
797 <td class="paramtype">__global uchar * </td>
798 <td class="paramname"><em>dst_ptr</em>, </td>
801 <td class="paramkey"></td>
803 <td class="paramtype">uint </td>
804 <td class="paramname"><em>dst_stride_x</em>, </td>
807 <td class="paramkey"></td>
809 <td class="paramtype">uint </td>
810 <td class="paramname"><em>dst_step_x</em>, </td>
813 <td class="paramkey"></td>
815 <td class="paramtype">uint </td>
816 <td class="paramname"><em>dst_stride_y</em>, </td>
819 <td class="paramkey"></td>
821 <td class="paramtype">uint </td>
822 <td class="paramname"><em>dst_step_y</em>, </td>
825 <td class="paramkey"></td>
827 <td class="paramtype">uint </td>
828 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
836 </div><div class="memdoc">
838 <p>This function combines three planes to a single RGBA image. </p>
839 <dl class="params"><dt>Parameters</dt><dd>
840 <table class="params">
841 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
842 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
843 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
844 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
845 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
846 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
847 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
848 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
849 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
850 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
851 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
852 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
853 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
854 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
855 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
856 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
857 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
858 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
859 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_ptr</td><td>Pointer to the fourth plane. Supported Format: U8 </td></tr>
860 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_stride_x</td><td>Stride of the fourth plane in X dimension (in bytes) </td></tr>
861 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_step_x</td><td>plane3_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
862 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_stride_y</td><td>Stride of the fourth plane in Y dimension (in bytes) </td></tr>
863 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_step_y</td><td>plane3_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
864 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_offset_first_element_in_bytes</td><td>The offset of the first element in the fourth plane </td></tr>
865 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: RGBA </td></tr>
866 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
867 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
868 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
869 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
870 <tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
875 <p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00127">127</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
877 <p>References <a class="el" href="helpers_8h_source.xhtml#l00096">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00136">Image::ptr</a>.</p>
878 <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> {</div>
879 <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// Get pixels pointer</span></div>
880 <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div>
881 <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div>
882 <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div>
883 <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="struct_image.xhtml">Image</a> plane3 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane3);</div>
884 <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div>
885 <div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
886 <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
887 <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  uchar16 data1 = vload16(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
888 <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  uchar16 data2 = vload16(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
889 <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  uchar16 data3 = vload16(0, plane3.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
890 <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
891 <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  uchar16 out0 = (uchar16)(data0.s0, data1.s0, data2.s0, data3.s0,</div>
892 <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  data0.s1, data1.s1, data2.s1, data3.s1,</div>
893 <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  data0.s2, data1.s2, data2.s2, data3.s2,</div>
894 <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  data0.s3, data1.s3, data2.s3, data3.s3);</div>
895 <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
896 <div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
897 <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  uchar16 out1 = (uchar16)(data0.s4, data1.s4, data2.s4, data3.s4,</div>
898 <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  data0.s5, data1.s5, data2.s5, data3.s5,</div>
899 <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  data0.s6, data1.s6, data2.s6, data3.s6,</div>
900 <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  data0.s7, data1.s7, data2.s7, data3.s7);</div>
901 <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div>
902 <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
903 <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  uchar16 out2 = (uchar16)(data0.s8, data1.s8, data2.s8, data3.s8,</div>
904 <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  data0.s9, data1.s9, data2.s9, data3.s9,</div>
905 <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  data0.sA, data1.sA, data2.sA, data3.sA,</div>
906 <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  data0.sB, data1.sB, data2.sB, data3.sB);</div>
907 <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  vstore16(out2, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 32);</div>
908 <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
909 <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  uchar16 out3 = (uchar16)(data0.sC, data1.sC, data2.sC, data3.sC,</div>
910 <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  data0.sD, data1.sD, data2.sD, data3.sD,</div>
911 <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  data0.sE, data1.sE, data2.sE, data3.sE,</div>
912 <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  data0.sF, data1.sF, data2.sF, data3.sF);</div>
913 <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  vstore16(out3, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 48);</div>
914 <div class="line"><a name="l00169"></a><span class="lineno"> 169</span> }</div>
915 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00096">helpers.h:96</a></div></div>
916 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00134">helpers.h:134</a></div></div>
917 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00136">helpers.h:136</a></div></div>
918 </div><!-- fragment -->
921 <a class="anchor" id="a72eb5d0161bfc3bca9ceb770ce7ef1ad"></a>
922 <div class="memitem">
923 <div class="memproto">
924 <table class="memname">
926 <td class="memname">__kernel void channel_combine_UYVY422 </td>
928 <td class="paramtype">__global uchar * </td>
929 <td class="paramname"><em>plane0_ptr</em>, </td>
932 <td class="paramkey"></td>
934 <td class="paramtype">uint </td>
935 <td class="paramname"><em>plane0_stride_x</em>, </td>
938 <td class="paramkey"></td>
940 <td class="paramtype">uint </td>
941 <td class="paramname"><em>plane0_step_x</em>, </td>
944 <td class="paramkey"></td>
946 <td class="paramtype">uint </td>
947 <td class="paramname"><em>plane0_stride_y</em>, </td>
950 <td class="paramkey"></td>
952 <td class="paramtype">uint </td>
953 <td class="paramname"><em>plane0_step_y</em>, </td>
956 <td class="paramkey"></td>
958 <td class="paramtype">uint </td>
959 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
962 <td class="paramkey"></td>
964 <td class="paramtype">__global uchar * </td>
965 <td class="paramname"><em>plane1_ptr</em>, </td>
968 <td class="paramkey"></td>
970 <td class="paramtype">uint </td>
971 <td class="paramname"><em>plane1_stride_x</em>, </td>
974 <td class="paramkey"></td>
976 <td class="paramtype">uint </td>
977 <td class="paramname"><em>plane1_step_x</em>, </td>
980 <td class="paramkey"></td>
982 <td class="paramtype">uint </td>
983 <td class="paramname"><em>plane1_stride_y</em>, </td>
986 <td class="paramkey"></td>
988 <td class="paramtype">uint </td>
989 <td class="paramname"><em>plane1_step_y</em>, </td>
992 <td class="paramkey"></td>
994 <td class="paramtype">uint </td>
995 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
998 <td class="paramkey"></td>
1000 <td class="paramtype">__global uchar * </td>
1001 <td class="paramname"><em>plane2_ptr</em>, </td>
1004 <td class="paramkey"></td>
1006 <td class="paramtype">uint </td>
1007 <td class="paramname"><em>plane2_stride_x</em>, </td>
1010 <td class="paramkey"></td>
1012 <td class="paramtype">uint </td>
1013 <td class="paramname"><em>plane2_step_x</em>, </td>
1016 <td class="paramkey"></td>
1018 <td class="paramtype">uint </td>
1019 <td class="paramname"><em>plane2_stride_y</em>, </td>
1022 <td class="paramkey"></td>
1024 <td class="paramtype">uint </td>
1025 <td class="paramname"><em>plane2_step_y</em>, </td>
1028 <td class="paramkey"></td>
1030 <td class="paramtype">uint </td>
1031 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
1034 <td class="paramkey"></td>
1036 <td class="paramtype">__global uchar * </td>
1037 <td class="paramname"><em>dst_ptr</em>, </td>
1040 <td class="paramkey"></td>
1042 <td class="paramtype">uint </td>
1043 <td class="paramname"><em>dst_stride_x</em>, </td>
1046 <td class="paramkey"></td>
1048 <td class="paramtype">uint </td>
1049 <td class="paramname"><em>dst_step_x</em>, </td>
1052 <td class="paramkey"></td>
1054 <td class="paramtype">uint </td>
1055 <td class="paramname"><em>dst_stride_y</em>, </td>
1058 <td class="paramkey"></td>
1060 <td class="paramtype">uint </td>
1061 <td class="paramname"><em>dst_step_y</em>, </td>
1064 <td class="paramkey"></td>
1066 <td class="paramtype">uint </td>
1067 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
1075 </div><div class="memdoc">
1077 <p>This function combines three planes to a single UYUV image. </p>
1078 <dl class="params"><dt>Parameters</dt><dd>
1079 <table class="params">
1080 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
1081 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
1082 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1083 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
1084 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1085 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
1086 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
1087 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
1088 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1089 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
1090 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1091 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
1092 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
1093 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
1094 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1095 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
1096 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1097 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
1098 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: UYUV </td></tr>
1099 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
1100 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1101 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
1102 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1103 <tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
1108 <p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00253">253</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
1110 <p>References <a class="el" href="helpers_8h_source.xhtml#l00096">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00136">Image::ptr</a>.</p>
1111 <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div>
1112 <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// Get pixels pointer</span></div>
1113 <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div>
1114 <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div>
1115 <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div>
1116 <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div>
1117 <div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
1118 <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1119 <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  uchar8 data1 = vload8(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1120 <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  uchar8 data2 = vload8(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1121 <div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
1122 <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  uchar16 out0 = (uchar16)(data1.s0, data0.s0, data2.s0, data0.s1,</div>
1123 <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  data1.s1, data0.s2, data2.s1, data0.s3,</div>
1124 <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  data1.s2, data0.s4, data2.s2, data0.s5,</div>
1125 <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  data1.s3, data0.s6, data2.s3, data0.s7);</div>
1126 <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1127 <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  uchar16 out1 = (uchar16)(data1.s4, data0.s8, data2.s4, data0.s9,</div>
1128 <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  data1.s5, data0.sA, data2.s5, data0.sB,</div>
1129 <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  data1.s6, data0.sC, data2.s6, data0.sD,</div>
1130 <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  data1.s7, data0.sE, data2.s7, data0.sF);</div>
1131 <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div>
1132 <div class="line"><a name="l00279"></a><span class="lineno"> 279</span> }</div>
1133 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00096">helpers.h:96</a></div></div>
1134 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00134">helpers.h:134</a></div></div>
1135 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00136">helpers.h:136</a></div></div>
1136 </div><!-- fragment -->
1139 <a class="anchor" id="a410770921ba530aaf00498478ff7f475"></a>
1140 <div class="memitem">
1141 <div class="memproto">
1142 <table class="memname">
1144 <td class="memname">__kernel void channel_combine_YUYV422 </td>
1146 <td class="paramtype">__global uchar * </td>
1147 <td class="paramname"><em>plane0_ptr</em>, </td>
1150 <td class="paramkey"></td>
1152 <td class="paramtype">uint </td>
1153 <td class="paramname"><em>plane0_stride_x</em>, </td>
1156 <td class="paramkey"></td>
1158 <td class="paramtype">uint </td>
1159 <td class="paramname"><em>plane0_step_x</em>, </td>
1162 <td class="paramkey"></td>
1164 <td class="paramtype">uint </td>
1165 <td class="paramname"><em>plane0_stride_y</em>, </td>
1168 <td class="paramkey"></td>
1170 <td class="paramtype">uint </td>
1171 <td class="paramname"><em>plane0_step_y</em>, </td>
1174 <td class="paramkey"></td>
1176 <td class="paramtype">uint </td>
1177 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
1180 <td class="paramkey"></td>
1182 <td class="paramtype">__global uchar * </td>
1183 <td class="paramname"><em>plane1_ptr</em>, </td>
1186 <td class="paramkey"></td>
1188 <td class="paramtype">uint </td>
1189 <td class="paramname"><em>plane1_stride_x</em>, </td>
1192 <td class="paramkey"></td>
1194 <td class="paramtype">uint </td>
1195 <td class="paramname"><em>plane1_step_x</em>, </td>
1198 <td class="paramkey"></td>
1200 <td class="paramtype">uint </td>
1201 <td class="paramname"><em>plane1_stride_y</em>, </td>
1204 <td class="paramkey"></td>
1206 <td class="paramtype">uint </td>
1207 <td class="paramname"><em>plane1_step_y</em>, </td>
1210 <td class="paramkey"></td>
1212 <td class="paramtype">uint </td>
1213 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
1216 <td class="paramkey"></td>
1218 <td class="paramtype">__global uchar * </td>
1219 <td class="paramname"><em>plane2_ptr</em>, </td>
1222 <td class="paramkey"></td>
1224 <td class="paramtype">uint </td>
1225 <td class="paramname"><em>plane2_stride_x</em>, </td>
1228 <td class="paramkey"></td>
1230 <td class="paramtype">uint </td>
1231 <td class="paramname"><em>plane2_step_x</em>, </td>
1234 <td class="paramkey"></td>
1236 <td class="paramtype">uint </td>
1237 <td class="paramname"><em>plane2_stride_y</em>, </td>
1240 <td class="paramkey"></td>
1242 <td class="paramtype">uint </td>
1243 <td class="paramname"><em>plane2_step_y</em>, </td>
1246 <td class="paramkey"></td>
1248 <td class="paramtype">uint </td>
1249 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
1252 <td class="paramkey"></td>
1254 <td class="paramtype">__global uchar * </td>
1255 <td class="paramname"><em>dst_ptr</em>, </td>
1258 <td class="paramkey"></td>
1260 <td class="paramtype">uint </td>
1261 <td class="paramname"><em>dst_stride_x</em>, </td>
1264 <td class="paramkey"></td>
1266 <td class="paramtype">uint </td>
1267 <td class="paramname"><em>dst_step_x</em>, </td>
1270 <td class="paramkey"></td>
1272 <td class="paramtype">uint </td>
1273 <td class="paramname"><em>dst_stride_y</em>, </td>
1276 <td class="paramkey"></td>
1278 <td class="paramtype">uint </td>
1279 <td class="paramname"><em>dst_step_y</em>, </td>
1282 <td class="paramkey"></td>
1284 <td class="paramtype">uint </td>
1285 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
1293 </div><div class="memdoc">
1295 <p>This function combines three planes to a single YUYV image. </p>
1296 <dl class="params"><dt>Parameters</dt><dd>
1297 <table class="params">
1298 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
1299 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
1300 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1301 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
1302 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1303 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
1304 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
1305 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
1306 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1307 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
1308 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1309 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
1310 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
1311 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
1312 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1313 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
1314 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1315 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
1316 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: YUYV </td></tr>
1317 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
1318 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1319 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
1320 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1321 <tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
1326 <p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00198">198</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
1328 <p>References <a class="el" href="helpers_8h_source.xhtml#l00096">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00136">Image::ptr</a>.</p>
1329 <div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> {</div>
1330 <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// Get pixels pointer</span></div>
1331 <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div>
1332 <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div>
1333 <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div>
1334 <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div>
1335 <div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
1336 <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1337 <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  uchar8 data1 = vload8(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1338 <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  uchar8 data2 = vload8(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1339 <div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
1340 <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  uchar16 out0 = (uchar16)(data0.s0, data1.s0, data0.s1, data2.s0,</div>
1341 <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  data0.s2, data1.s1, data0.s3, data2.s1,</div>
1342 <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  data0.s4, data1.s2, data0.s5, data2.s2,</div>
1343 <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  data0.s6, data1.s3, data0.s7, data2.s3);</div>
1344 <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1345 <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  uchar16 out1 = (uchar16)(data0.s8, data1.s4, data0.s9, data2.s4,</div>
1346 <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  data0.sA, data1.s5, data0.sB, data2.s5,</div>
1347 <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  data0.sC, data1.s6, data0.sD, data2.s6,</div>
1348 <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  data0.sE, data1.s7, data0.sF, data2.s7);</div>
1349 <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div>
1350 <div class="line"><a name="l00224"></a><span class="lineno"> 224</span> }</div>
1351 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00096">helpers.h:96</a></div></div>
1352 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00134">helpers.h:134</a></div></div>
1353 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00136">helpers.h:136</a></div></div>
1354 </div><!-- fragment -->
1357 <a class="anchor" id="a2ecdd5708954da1196aa12856e78a462"></a>
1358 <div class="memitem">
1359 <div class="memproto">
1360 <table class="memname">
1362 <td class="memname">__kernel void copy_planes_3p </td>
1364 <td class="paramtype">__global uchar * </td>
1365 <td class="paramname"><em>src_plane0_ptr</em>, </td>
1368 <td class="paramkey"></td>
1370 <td class="paramtype">uint </td>
1371 <td class="paramname"><em>src_plane0_stride_x</em>, </td>
1374 <td class="paramkey"></td>
1376 <td class="paramtype">uint </td>
1377 <td class="paramname"><em>src_plane0_step_x</em>, </td>
1380 <td class="paramkey"></td>
1382 <td class="paramtype">uint </td>
1383 <td class="paramname"><em>src_plane0_stride_y</em>, </td>
1386 <td class="paramkey"></td>
1388 <td class="paramtype">uint </td>
1389 <td class="paramname"><em>src_plane0_step_y</em>, </td>
1392 <td class="paramkey"></td>
1394 <td class="paramtype">uint </td>
1395 <td class="paramname"><em>src_plane0_offset_first_element_in_bytes</em>, </td>
1398 <td class="paramkey"></td>
1400 <td class="paramtype">__global uchar * </td>
1401 <td class="paramname"><em>src_plane1_ptr</em>, </td>
1404 <td class="paramkey"></td>
1406 <td class="paramtype">uint </td>
1407 <td class="paramname"><em>src_plane1_stride_x</em>, </td>
1410 <td class="paramkey"></td>
1412 <td class="paramtype">uint </td>
1413 <td class="paramname"><em>src_plane1_step_x</em>, </td>
1416 <td class="paramkey"></td>
1418 <td class="paramtype">uint </td>
1419 <td class="paramname"><em>src_plane1_stride_y</em>, </td>
1422 <td class="paramkey"></td>
1424 <td class="paramtype">uint </td>
1425 <td class="paramname"><em>src_plane1_step_y</em>, </td>
1428 <td class="paramkey"></td>
1430 <td class="paramtype">uint </td>
1431 <td class="paramname"><em>src_plane1_offset_first_element_in_bytes</em>, </td>
1434 <td class="paramkey"></td>
1436 <td class="paramtype">__global uchar * </td>
1437 <td class="paramname"><em>src_plane2_ptr</em>, </td>
1440 <td class="paramkey"></td>
1442 <td class="paramtype">uint </td>
1443 <td class="paramname"><em>src_plane2_stride_x</em>, </td>
1446 <td class="paramkey"></td>
1448 <td class="paramtype">uint </td>
1449 <td class="paramname"><em>src_plane2_step_x</em>, </td>
1452 <td class="paramkey"></td>
1454 <td class="paramtype">uint </td>
1455 <td class="paramname"><em>src_plane2_stride_y</em>, </td>
1458 <td class="paramkey"></td>
1460 <td class="paramtype">uint </td>
1461 <td class="paramname"><em>src_plane2_step_y</em>, </td>
1464 <td class="paramkey"></td>
1466 <td class="paramtype">uint </td>
1467 <td class="paramname"><em>src_plane2_offset_first_element_in_bytes</em>, </td>
1470 <td class="paramkey"></td>
1472 <td class="paramtype">__global uchar * </td>
1473 <td class="paramname"><em>dst_plane0_ptr</em>, </td>
1476 <td class="paramkey"></td>
1478 <td class="paramtype">uint </td>
1479 <td class="paramname"><em>dst_plane0_stride_x</em>, </td>
1482 <td class="paramkey"></td>
1484 <td class="paramtype">uint </td>
1485 <td class="paramname"><em>dst_plane0_step_x</em>, </td>
1488 <td class="paramkey"></td>
1490 <td class="paramtype">uint </td>
1491 <td class="paramname"><em>dst_plane0_stride_y</em>, </td>
1494 <td class="paramkey"></td>
1496 <td class="paramtype">uint </td>
1497 <td class="paramname"><em>dst_plane0_step_y</em>, </td>
1500 <td class="paramkey"></td>
1502 <td class="paramtype">uint </td>
1503 <td class="paramname"><em>dst_plane0_offset_first_element_in_bytes</em>, </td>
1506 <td class="paramkey"></td>
1508 <td class="paramtype">__global uchar * </td>
1509 <td class="paramname"><em>dst_plane1_ptr</em>, </td>
1512 <td class="paramkey"></td>
1514 <td class="paramtype">uint </td>
1515 <td class="paramname"><em>dst_plane1_stride_x</em>, </td>
1518 <td class="paramkey"></td>
1520 <td class="paramtype">uint </td>
1521 <td class="paramname"><em>dst_plane1_step_x</em>, </td>
1524 <td class="paramkey"></td>
1526 <td class="paramtype">uint </td>
1527 <td class="paramname"><em>dst_plane1_stride_y</em>, </td>
1530 <td class="paramkey"></td>
1532 <td class="paramtype">uint </td>
1533 <td class="paramname"><em>dst_plane1_step_y</em>, </td>
1536 <td class="paramkey"></td>
1538 <td class="paramtype">uint </td>
1539 <td class="paramname"><em>dst_plane1_offset_first_element_in_bytes</em>, </td>
1542 <td class="paramkey"></td>
1544 <td class="paramtype">__global uchar * </td>
1545 <td class="paramname"><em>dst_plane2_ptr</em>, </td>
1548 <td class="paramkey"></td>
1550 <td class="paramtype">uint </td>
1551 <td class="paramname"><em>dst_plane2_stride_x</em>, </td>
1554 <td class="paramkey"></td>
1556 <td class="paramtype">uint </td>
1557 <td class="paramname"><em>dst_plane2_step_x</em>, </td>
1560 <td class="paramkey"></td>
1562 <td class="paramtype">uint </td>
1563 <td class="paramname"><em>dst_plane2_stride_y</em>, </td>
1566 <td class="paramkey"></td>
1568 <td class="paramtype">uint </td>
1569 <td class="paramname"><em>dst_plane2_step_y</em>, </td>
1572 <td class="paramkey"></td>
1574 <td class="paramtype">uint </td>
1575 <td class="paramname"><em>dst_plane2_offset_first_element_in_bytes</em>, </td>
1578 <td class="paramkey"></td>
1580 <td class="paramtype">uint </td>
1581 <td class="paramname"><em>height</em> </td>
1589 </div><div class="memdoc">
1591 <p>This function combines three planes to a single YUV444 or IYUV image. </p>
1592 <dl class="section note"><dt>Note</dt><dd>YUV444 or IYUV has to be specified through preprocessor macro. eg. -DIYUV performs IYUV channel combine.</dd></dl>
1593 <dl class="params"><dt>Parameters</dt><dd>
1594 <table class="params">
1595 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
1596 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
1597 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_x</td><td>src_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1598 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
1599 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_y</td><td>src_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1600 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
1601 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
1602 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
1603 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_x</td><td>src_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1604 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
1605 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_y</td><td>src_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1606 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
1607 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
1608 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
1609 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_x</td><td>src_plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1610 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
1611 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_y</td><td>src_plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1612 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
1613 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_ptr</td><td>Pointer to the first plane of the destination image. Supported Format: U8 </td></tr>
1614 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_x</td><td>Stride of the first plane of the destination image in X dimension (in bytes) </td></tr>
1615 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_x</td><td>dst_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1616 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_y</td><td>Stride of the first plane of the destination image in Y dimension (in bytes) </td></tr>
1617 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_y</td><td>dst_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1618 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane of the destination image </td></tr>
1619 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_ptr</td><td>Pointer to the second plane of the destination image. Supported Format: U8 </td></tr>
1620 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_x</td><td>Stride of the second plane of the destination image in X dimension (in bytes) </td></tr>
1621 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_x</td><td>dst_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1622 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_y</td><td>Stride of the second plane of the destination image in Y dimension (in bytes) </td></tr>
1623 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_y</td><td>dst_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1624 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane of the destination image </td></tr>
1625 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_ptr</td><td>Pointer to the third plane of the destination image. Supported Format: U8 </td></tr>
1626 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_stride_x</td><td>Stride of the third plane of the destination image in X dimension (in bytes) </td></tr>
1627 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_step_x</td><td>dst_plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
1628 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_stride_y</td><td>Stride of the third plane of the destination image in Y dimension (in bytes) </td></tr>
1629 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_step_y</td><td>dst_plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
1630 <tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane of the destination image </td></tr>
1631 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Sub-sampled height </td></tr>
1636 <p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00389">389</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
1638 <p>References <a class="el" href="helpers_8h_source.xhtml#l00096">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="helpers_8h_source.xhtml#l00295">offset()</a>, and <a class="el" href="helpers_8h_source.xhtml#l00136">Image::ptr</a>.</p>
1639 <div class="fragment"><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> {</div>
1640 <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// Get pixels pointer</span></div>
1641 <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="struct_image.xhtml">Image</a> src_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane0);</div>
1642 <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="struct_image.xhtml">Image</a> src_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane1);</div>
1643 <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="struct_image.xhtml">Image</a> src_plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane2);</div>
1644 <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="struct_image.xhtml">Image</a> dst_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane0);</div>
1645 <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="struct_image.xhtml">Image</a> dst_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane1);</div>
1646 <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="struct_image.xhtml">Image</a> dst_plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane2);</div>
1647 <div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div>
1648 <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="comment">// Copy plane data</span></div>
1649 <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  vstore16(vload16(0, src_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1650 <div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">#ifdef YUV444</span></div>
1651 <div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"></span> vstore16(vload16(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1652 <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  vstore16(vload16(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1653 <div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor">#elif defined(IYUV)</span></div>
1654 <div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"></span> vstore16(vload16(0, <a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&src_plane0, 0, height)), 0, (__global uchar *)<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&dst_plane0, 0, height));</div>
1655 <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  vstore8(vload8(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1656 <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  vstore8(vload8(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div>
1657 <div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor">#endif </span><span class="comment">/* YUV444 or IYUV */</span><span class="preprocessor"></span></div>
1658 <div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"></span>}</div>
1659 <div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00295">helpers.h:295</a></div></div>
1660 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00096">helpers.h:96</a></div></div>
1661 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00134">helpers.h:134</a></div></div>
1662 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00136">helpers.h:136</a></div></div>
1663 </div><!-- fragment -->
1666 </div><!-- contents -->
1667 </div><!-- doc-content -->
1668 <!-- start footer part -->
1669 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1671 <li class="navelem"><a class="el" href="dir_55b5a5006e943fb664ff8cff3cfe7768.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_f6c3ae42d7e27145d0a3c3e38ca1c000.xhtml">core</a></li><li class="navelem"><a class="el" href="dir_1b7ae9123c88e650426d50d95c19d414.xhtml">CL</a></li><li class="navelem"><a class="el" href="dir_b7c3d80b0dadb2139bc73b7161751c12.xhtml">cl_kernels</a></li><li class="navelem"><a class="el" href="channel__combine_8cl.xhtml">channel_combine.cl</a></li>
1672 <li class="footer">Generated on Thu Oct 12 2017 14:26:35 for Compute Library by
1673 <a href="http://www.doxygen.org/index.html">
1674 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>