blob: bddb8d993f43faf896eaf1660311d2104d37963e [file] [log] [blame]
Anthony Barbier871448e2017-03-24 14:54:29 +00001<!-- 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">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
Jenkinsb9abeae2018-11-22 11:58:08 +00007<meta name="generator" content="Doxygen 1.8.13"/>
Anthony Barbier871448e2017-03-24 14:54:29 +00008<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
Anthony Barbierdbdab852017-06-23 15:42:00 +01009<title>Compute Library: src/core/CL/cl_kernels/channel_combine.cl File Reference</title>
Anthony Barbier871448e2017-03-24 14:54:29 +000010<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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015<script type="text/javascript" src="navtreedata.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000016<script type="text/javascript" src="navtree.js"></script>
17<script type="text/javascript">
18 $(document).ready(initResizable);
Anthony Barbier871448e2017-03-24 14:54:29 +000019</script>
20<link href="search/search.css" rel="stylesheet" type="text/css"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021<script type="text/javascript" src="search/searchdata.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000022<script type="text/javascript" src="search/search.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000023<script type="text/x-mathjax-config">
24 MathJax.Hub.Config({
25 extensions: ["tex2jax.js"],
26 jax: ["input/TeX","output/HTML-CSS"],
27});
Anthony Barbier8140e1e2017-12-14 23:48:46 +000028</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000029<link href="doxygen.css" rel="stylesheet" type="text/css" />
30</head>
31<body>
32<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
33<div id="titlearea">
34<table cellspacing="0" cellpadding="0">
35 <tbody>
36 <tr style="height: 56px;">
37 <td style="padding-left: 0.5em;">
Anthony Barbierdbdab852017-06-23 15:42:00 +010038 <div id="projectname">Compute Library
Jenkinsb9abeae2018-11-22 11:58:08 +000039 &#160;<span id="projectnumber">18.11</span>
Anthony Barbier871448e2017-03-24 14:54:29 +000040 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
Jenkinsb9abeae2018-11-22 11:58:08 +000047<!-- Generated by Doxygen 1.8.13 -->
Anthony Barbier871448e2017-03-24 14:54:29 +000048<script type="text/javascript">
49var searchBox = new SearchBox("searchBox", "search",false,'Search');
50</script>
Jenkinsb9abeae2018-11-22 11:58:08 +000051<script type="text/javascript" src="menudata.js"></script>
52<script type="text/javascript" src="menu.js"></script>
53<script type="text/javascript">
54$(function() {
55 initMenu('',true,false,'search.php','Search');
56 $(document).ready(function() { init_search(); });
57});
58</script>
59<div id="main-nav"></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000060</div><!-- top -->
61<div id="side-nav" class="ui-resizable side-nav-resizable">
62 <div id="nav-tree">
63 <div id="nav-tree-contents">
64 <div id="nav-sync" class="sync"></div>
65 </div>
66 </div>
67 <div id="splitbar" style="-moz-user-select:none;"
68 class="ui-resizable-handle">
69 </div>
70</div>
71<script type="text/javascript">
72$(document).ready(function(){initNavTree('channel__combine_8cl.xhtml','');});
73</script>
74<div id="doc-content">
75<!-- window showing the filter options -->
76<div id="MSearchSelectWindow"
77 onmouseover="return searchBox.OnSearchSelectShow()"
78 onmouseout="return searchBox.OnSearchSelectHide()"
79 onkeydown="return searchBox.OnSearchSelectKey(event)">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000080</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000081
82<!-- iframe showing the search results (closed by default) -->
83<div id="MSearchResultsWindow">
84<iframe src="javascript:void(0)" frameborder="0"
85 name="MSearchResults" id="MSearchResults">
86</iframe>
87</div>
88
89<div class="header">
90 <div class="summary">
91<a href="#func-members">Functions</a> </div>
92 <div class="headertitle">
93<div class="title">channel_combine.cl File Reference</div> </div>
94</div><!--header-->
95<div class="contents">
Jenkinsb9abeae2018-11-22 11:58:08 +000096<div class="textblock"><code>#include &quot;<a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml">helpers.h</a>&quot;</code><br />
Anthony Barbier871448e2017-03-24 14:54:29 +000097</div>
98<p><a href="channel__combine_8cl_source.xhtml">Go to the source code of this file.</a></p>
99<table class="memberdecls">
100<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
101Functions</h2></td></tr>
102<tr class="memitem:a4059c118efa918cf5248381185411d59"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000103<tr class="memdesc:a4059c118efa918cf5248381185411d59"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single RGB image. <a href="#a4059c118efa918cf5248381185411d59">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000104<tr class="separator:a4059c118efa918cf5248381185411d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
105<tr class="memitem:a98e381fa0dce5bd838990d03d8779246"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000106<tr class="memdesc:a98e381fa0dce5bd838990d03d8779246"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single RGBA image. <a href="#a98e381fa0dce5bd838990d03d8779246">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000107<tr class="separator:a98e381fa0dce5bd838990d03d8779246"><td class="memSeparator" colspan="2">&#160;</td></tr>
108<tr class="memitem:a410770921ba530aaf00498478ff7f475"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000109<tr class="memdesc:a410770921ba530aaf00498478ff7f475"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single YUYV image. <a href="#a410770921ba530aaf00498478ff7f475">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000110<tr class="separator:a410770921ba530aaf00498478ff7f475"><td class="memSeparator" colspan="2">&#160;</td></tr>
111<tr class="memitem:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000112<tr class="memdesc:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single UYUV image. <a href="#a72eb5d0161bfc3bca9ceb770ce7ef1ad">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000113<tr class="separator:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
114<tr class="memitem:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000115<tr class="memdesc:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single NV12/NV21 image. <a href="#a6eb00cba13d0cb12229e5ac18a1ef3c3">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000116<tr class="separator:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<tr class="memitem:a2ecdd5708954da1196aa12856e78a462"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000118<tr class="memdesc:a2ecdd5708954da1196aa12856e78a462"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single YUV444 or IYUV image. <a href="#a2ecdd5708954da1196aa12856e78a462">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000119<tr class="separator:a2ecdd5708954da1196aa12856e78a462"><td class="memSeparator" colspan="2">&#160;</td></tr>
120</table>
121<h2 class="groupheader">Function Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +0000122<a id="a6eb00cba13d0cb12229e5ac18a1ef3c3"></a>
123<h2 class="memtitle"><span class="permalink"><a href="#a6eb00cba13d0cb12229e5ac18a1ef3c3">&#9670;&nbsp;</a></span>channel_combine_NV()</h2>
124
Anthony Barbier871448e2017-03-24 14:54:29 +0000125<div class="memitem">
126<div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">__kernel void channel_combine_NV </td>
130 <td>(</td>
131 <td class="paramtype">__global uchar *&#160;</td>
132 <td class="paramname"><em>src_plane0_ptr</em>, </td>
133 </tr>
134 <tr>
135 <td class="paramkey"></td>
136 <td></td>
137 <td class="paramtype">uint&#160;</td>
138 <td class="paramname"><em>src_plane0_stride_x</em>, </td>
139 </tr>
140 <tr>
141 <td class="paramkey"></td>
142 <td></td>
143 <td class="paramtype">uint&#160;</td>
144 <td class="paramname"><em>src_plane0_step_x</em>, </td>
145 </tr>
146 <tr>
147 <td class="paramkey"></td>
148 <td></td>
149 <td class="paramtype">uint&#160;</td>
150 <td class="paramname"><em>src_plane0_stride_y</em>, </td>
151 </tr>
152 <tr>
153 <td class="paramkey"></td>
154 <td></td>
155 <td class="paramtype">uint&#160;</td>
156 <td class="paramname"><em>src_plane0_step_y</em>, </td>
157 </tr>
158 <tr>
159 <td class="paramkey"></td>
160 <td></td>
161 <td class="paramtype">uint&#160;</td>
162 <td class="paramname"><em>src_plane0_offset_first_element_in_bytes</em>, </td>
163 </tr>
164 <tr>
165 <td class="paramkey"></td>
166 <td></td>
167 <td class="paramtype">__global uchar *&#160;</td>
168 <td class="paramname"><em>src_plane1_ptr</em>, </td>
169 </tr>
170 <tr>
171 <td class="paramkey"></td>
172 <td></td>
173 <td class="paramtype">uint&#160;</td>
174 <td class="paramname"><em>src_plane1_stride_x</em>, </td>
175 </tr>
176 <tr>
177 <td class="paramkey"></td>
178 <td></td>
179 <td class="paramtype">uint&#160;</td>
180 <td class="paramname"><em>src_plane1_step_x</em>, </td>
181 </tr>
182 <tr>
183 <td class="paramkey"></td>
184 <td></td>
185 <td class="paramtype">uint&#160;</td>
186 <td class="paramname"><em>src_plane1_stride_y</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">uint&#160;</td>
192 <td class="paramname"><em>src_plane1_step_y</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">uint&#160;</td>
198 <td class="paramname"><em>src_plane1_offset_first_element_in_bytes</em>, </td>
199 </tr>
200 <tr>
201 <td class="paramkey"></td>
202 <td></td>
203 <td class="paramtype">__global uchar *&#160;</td>
204 <td class="paramname"><em>src_plane2_ptr</em>, </td>
205 </tr>
206 <tr>
207 <td class="paramkey"></td>
208 <td></td>
209 <td class="paramtype">uint&#160;</td>
210 <td class="paramname"><em>src_plane2_stride_x</em>, </td>
211 </tr>
212 <tr>
213 <td class="paramkey"></td>
214 <td></td>
215 <td class="paramtype">uint&#160;</td>
216 <td class="paramname"><em>src_plane2_step_x</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">uint&#160;</td>
222 <td class="paramname"><em>src_plane2_stride_y</em>, </td>
223 </tr>
224 <tr>
225 <td class="paramkey"></td>
226 <td></td>
227 <td class="paramtype">uint&#160;</td>
228 <td class="paramname"><em>src_plane2_step_y</em>, </td>
229 </tr>
230 <tr>
231 <td class="paramkey"></td>
232 <td></td>
233 <td class="paramtype">uint&#160;</td>
234 <td class="paramname"><em>src_plane2_offset_first_element_in_bytes</em>, </td>
235 </tr>
236 <tr>
237 <td class="paramkey"></td>
238 <td></td>
239 <td class="paramtype">__global uchar *&#160;</td>
240 <td class="paramname"><em>dst_plane0_ptr</em>, </td>
241 </tr>
242 <tr>
243 <td class="paramkey"></td>
244 <td></td>
245 <td class="paramtype">uint&#160;</td>
246 <td class="paramname"><em>dst_plane0_stride_x</em>, </td>
247 </tr>
248 <tr>
249 <td class="paramkey"></td>
250 <td></td>
251 <td class="paramtype">uint&#160;</td>
252 <td class="paramname"><em>dst_plane0_step_x</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">uint&#160;</td>
258 <td class="paramname"><em>dst_plane0_stride_y</em>, </td>
259 </tr>
260 <tr>
261 <td class="paramkey"></td>
262 <td></td>
263 <td class="paramtype">uint&#160;</td>
264 <td class="paramname"><em>dst_plane0_step_y</em>, </td>
265 </tr>
266 <tr>
267 <td class="paramkey"></td>
268 <td></td>
269 <td class="paramtype">uint&#160;</td>
270 <td class="paramname"><em>dst_plane0_offset_first_element_in_bytes</em>, </td>
271 </tr>
272 <tr>
273 <td class="paramkey"></td>
274 <td></td>
275 <td class="paramtype">__global uchar *&#160;</td>
276 <td class="paramname"><em>dst_plane1_ptr</em>, </td>
277 </tr>
278 <tr>
279 <td class="paramkey"></td>
280 <td></td>
281 <td class="paramtype">uint&#160;</td>
282 <td class="paramname"><em>dst_plane1_stride_x</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">uint&#160;</td>
288 <td class="paramname"><em>dst_plane1_step_x</em>, </td>
289 </tr>
290 <tr>
291 <td class="paramkey"></td>
292 <td></td>
293 <td class="paramtype">uint&#160;</td>
294 <td class="paramname"><em>dst_plane1_stride_y</em>, </td>
295 </tr>
296 <tr>
297 <td class="paramkey"></td>
298 <td></td>
299 <td class="paramtype">uint&#160;</td>
300 <td class="paramname"><em>dst_plane1_step_y</em>, </td>
301 </tr>
302 <tr>
303 <td class="paramkey"></td>
304 <td></td>
305 <td class="paramtype">uint&#160;</td>
306 <td class="paramname"><em>dst_plane1_offset_first_element_in_bytes</em>, </td>
307 </tr>
308 <tr>
309 <td class="paramkey"></td>
310 <td></td>
311 <td class="paramtype">uint&#160;</td>
312 <td class="paramname"><em>height</em>&#160;</td>
313 </tr>
314 <tr>
315 <td></td>
316 <td>)</td>
317 <td></td><td></td>
318 </tr>
319 </table>
320</div><div class="memdoc">
321
322<p>This function combines three planes to a single NV12/NV21 image. </p>
323<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>
324<dl class="params"><dt>Parameters</dt><dd>
325 <table class="params">
326 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
327 <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>
328 <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>
329 <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>
330 <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>
331 <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>
332 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
333 <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>
334 <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>
335 <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>
336 <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>
337 <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>
338 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
339 <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>
340 <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>
341 <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>
342 <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>
343 <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>
344 <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>
345 <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>
346 <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>
347 <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>
348 <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>
349 <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>
350 <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>
351 <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>
352 <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>
353 <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>
354 <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>
355 <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>
356 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Sub-sampled height </td></tr>
357 </table>
358 </dd>
359</dl>
360
Jenkinsb9abeae2018-11-22 11:58:08 +0000361<p class="definition">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>
Anthony Barbier871448e2017-03-24 14:54:29 +0000362
Jenkinsb9abeae2018-11-22 11:58:08 +0000363<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00309">offset()</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">Image::ptr</a>.</p>
364<div class="fragment"><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;{</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane0);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane1);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane2);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane0);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane1);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// Copy plane data</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; 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><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; vstore16(vload16(0, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src_plane0, 0, height)), 0, (__global uchar *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;dst_plane0, 0, height));</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">// Create UV place</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; uchar8 data1 = vload8(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; uchar8 data2 = vload8(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#ifdef NV12</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; vstore16(shuffle2(data1, data2, (uchar16)(0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15)), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#elif defined(NV21)</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; vstore16(shuffle2(data2, data1, (uchar16)(0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15)), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* NV12 or NV21 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00309">helpers.h:309</a></div></div>
365<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">helpers.h:110</a></div></div>
366<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
367<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">helpers.h:150</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000368</div><!-- fragment -->
369</div>
370</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000371<a id="a4059c118efa918cf5248381185411d59"></a>
372<h2 class="memtitle"><span class="permalink"><a href="#a4059c118efa918cf5248381185411d59">&#9670;&nbsp;</a></span>channel_combine_RGB888()</h2>
373
Anthony Barbier871448e2017-03-24 14:54:29 +0000374<div class="memitem">
375<div class="memproto">
376 <table class="memname">
377 <tr>
378 <td class="memname">__kernel void channel_combine_RGB888 </td>
379 <td>(</td>
380 <td class="paramtype">__global uchar *&#160;</td>
381 <td class="paramname"><em>plane0_ptr</em>, </td>
382 </tr>
383 <tr>
384 <td class="paramkey"></td>
385 <td></td>
386 <td class="paramtype">uint&#160;</td>
387 <td class="paramname"><em>plane0_stride_x</em>, </td>
388 </tr>
389 <tr>
390 <td class="paramkey"></td>
391 <td></td>
392 <td class="paramtype">uint&#160;</td>
393 <td class="paramname"><em>plane0_step_x</em>, </td>
394 </tr>
395 <tr>
396 <td class="paramkey"></td>
397 <td></td>
398 <td class="paramtype">uint&#160;</td>
399 <td class="paramname"><em>plane0_stride_y</em>, </td>
400 </tr>
401 <tr>
402 <td class="paramkey"></td>
403 <td></td>
404 <td class="paramtype">uint&#160;</td>
405 <td class="paramname"><em>plane0_step_y</em>, </td>
406 </tr>
407 <tr>
408 <td class="paramkey"></td>
409 <td></td>
410 <td class="paramtype">uint&#160;</td>
411 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
412 </tr>
413 <tr>
414 <td class="paramkey"></td>
415 <td></td>
416 <td class="paramtype">__global uchar *&#160;</td>
417 <td class="paramname"><em>plane1_ptr</em>, </td>
418 </tr>
419 <tr>
420 <td class="paramkey"></td>
421 <td></td>
422 <td class="paramtype">uint&#160;</td>
423 <td class="paramname"><em>plane1_stride_x</em>, </td>
424 </tr>
425 <tr>
426 <td class="paramkey"></td>
427 <td></td>
428 <td class="paramtype">uint&#160;</td>
429 <td class="paramname"><em>plane1_step_x</em>, </td>
430 </tr>
431 <tr>
432 <td class="paramkey"></td>
433 <td></td>
434 <td class="paramtype">uint&#160;</td>
435 <td class="paramname"><em>plane1_stride_y</em>, </td>
436 </tr>
437 <tr>
438 <td class="paramkey"></td>
439 <td></td>
440 <td class="paramtype">uint&#160;</td>
441 <td class="paramname"><em>plane1_step_y</em>, </td>
442 </tr>
443 <tr>
444 <td class="paramkey"></td>
445 <td></td>
446 <td class="paramtype">uint&#160;</td>
447 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
448 </tr>
449 <tr>
450 <td class="paramkey"></td>
451 <td></td>
452 <td class="paramtype">__global uchar *&#160;</td>
453 <td class="paramname"><em>plane2_ptr</em>, </td>
454 </tr>
455 <tr>
456 <td class="paramkey"></td>
457 <td></td>
458 <td class="paramtype">uint&#160;</td>
459 <td class="paramname"><em>plane2_stride_x</em>, </td>
460 </tr>
461 <tr>
462 <td class="paramkey"></td>
463 <td></td>
464 <td class="paramtype">uint&#160;</td>
465 <td class="paramname"><em>plane2_step_x</em>, </td>
466 </tr>
467 <tr>
468 <td class="paramkey"></td>
469 <td></td>
470 <td class="paramtype">uint&#160;</td>
471 <td class="paramname"><em>plane2_stride_y</em>, </td>
472 </tr>
473 <tr>
474 <td class="paramkey"></td>
475 <td></td>
476 <td class="paramtype">uint&#160;</td>
477 <td class="paramname"><em>plane2_step_y</em>, </td>
478 </tr>
479 <tr>
480 <td class="paramkey"></td>
481 <td></td>
482 <td class="paramtype">uint&#160;</td>
483 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
484 </tr>
485 <tr>
486 <td class="paramkey"></td>
487 <td></td>
488 <td class="paramtype">__global uchar *&#160;</td>
489 <td class="paramname"><em>dst_ptr</em>, </td>
490 </tr>
491 <tr>
492 <td class="paramkey"></td>
493 <td></td>
494 <td class="paramtype">uint&#160;</td>
495 <td class="paramname"><em>dst_stride_x</em>, </td>
496 </tr>
497 <tr>
498 <td class="paramkey"></td>
499 <td></td>
500 <td class="paramtype">uint&#160;</td>
501 <td class="paramname"><em>dst_step_x</em>, </td>
502 </tr>
503 <tr>
504 <td class="paramkey"></td>
505 <td></td>
506 <td class="paramtype">uint&#160;</td>
507 <td class="paramname"><em>dst_stride_y</em>, </td>
508 </tr>
509 <tr>
510 <td class="paramkey"></td>
511 <td></td>
512 <td class="paramtype">uint&#160;</td>
513 <td class="paramname"><em>dst_step_y</em>, </td>
514 </tr>
515 <tr>
516 <td class="paramkey"></td>
517 <td></td>
518 <td class="paramtype">uint&#160;</td>
519 <td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
520 </tr>
521 <tr>
522 <td></td>
523 <td>)</td>
524 <td></td><td></td>
525 </tr>
526 </table>
527</div><div class="memdoc">
528
529<p>This function combines three planes to a single RGB image. </p>
530<dl class="params"><dt>Parameters</dt><dd>
531 <table class="params">
532 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
533 <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>
534 <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>
535 <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>
536 <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>
537 <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>
538 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
539 <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>
540 <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>
541 <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>
542 <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>
543 <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>
544 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
545 <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>
546 <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>
547 <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>
548 <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>
549 <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>
550 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: RGB </td></tr>
551 <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>
552 <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>
553 <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>
554 <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>
555 <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>
556 </table>
557 </dd>
558</dl>
559
Jenkinsb9abeae2018-11-22 11:58:08 +0000560<p class="definition">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>
Anthony Barbier871448e2017-03-24 14:54:29 +0000561
Jenkinsb9abeae2018-11-22 11:58:08 +0000562<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">arm_compute::test::validation::dst</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">Image::ptr</a>.</p>
563<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uchar16 data1 = vload16(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; uchar16 data2 = vload16(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uchar16 out0 = (uchar16)(data0.s0, data1.s0, data2.s0,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; data0.s1, data1.s1, data2.s1,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; data0.s2, data1.s2, data2.s2,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; data0.s3, data1.s3, data2.s3,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data0.s4, data1.s4, data2.s4,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; data0.s5);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; uchar16 out1 = (uchar16)(data1.s5, data2.s5, data0.s6,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; data1.s6, data2.s6, data0.s7,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data1.s7, data2.s7, data0.s8,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; data1.s8, data2.s8, data0.s9,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; data1.s9, data2.s9, data0.sA,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; data1.sA);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uchar16 out2 = (uchar16)(data2.sA, data0.sB, data1.sB,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; data2.sB, data0.sC, data1.sC,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; data2.sC, data0.sD, data1.sD,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; data2.sD, data0.sE, data1.sE,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; data2.sE, data0.sF, data1.sF,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; data2.sF);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; vstore16(out2, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 32);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">helpers.h:110</a></div></div>
Jenkins52ba29e2018-08-29 15:32:11 +0000564<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">ArithmeticDivision.cpp:100</a></div></div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000565<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
566<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">helpers.h:150</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000567</div><!-- fragment -->
568</div>
569</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000570<a id="a98e381fa0dce5bd838990d03d8779246"></a>
571<h2 class="memtitle"><span class="permalink"><a href="#a98e381fa0dce5bd838990d03d8779246">&#9670;&nbsp;</a></span>channel_combine_RGBA8888()</h2>
572
Anthony Barbier871448e2017-03-24 14:54:29 +0000573<div class="memitem">
574<div class="memproto">
575 <table class="memname">
576 <tr>
577 <td class="memname">__kernel void channel_combine_RGBA8888 </td>
578 <td>(</td>
579 <td class="paramtype">__global uchar *&#160;</td>
580 <td class="paramname"><em>plane0_ptr</em>, </td>
581 </tr>
582 <tr>
583 <td class="paramkey"></td>
584 <td></td>
585 <td class="paramtype">uint&#160;</td>
586 <td class="paramname"><em>plane0_stride_x</em>, </td>
587 </tr>
588 <tr>
589 <td class="paramkey"></td>
590 <td></td>
591 <td class="paramtype">uint&#160;</td>
592 <td class="paramname"><em>plane0_step_x</em>, </td>
593 </tr>
594 <tr>
595 <td class="paramkey"></td>
596 <td></td>
597 <td class="paramtype">uint&#160;</td>
598 <td class="paramname"><em>plane0_stride_y</em>, </td>
599 </tr>
600 <tr>
601 <td class="paramkey"></td>
602 <td></td>
603 <td class="paramtype">uint&#160;</td>
604 <td class="paramname"><em>plane0_step_y</em>, </td>
605 </tr>
606 <tr>
607 <td class="paramkey"></td>
608 <td></td>
609 <td class="paramtype">uint&#160;</td>
610 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
611 </tr>
612 <tr>
613 <td class="paramkey"></td>
614 <td></td>
615 <td class="paramtype">__global uchar *&#160;</td>
616 <td class="paramname"><em>plane1_ptr</em>, </td>
617 </tr>
618 <tr>
619 <td class="paramkey"></td>
620 <td></td>
621 <td class="paramtype">uint&#160;</td>
622 <td class="paramname"><em>plane1_stride_x</em>, </td>
623 </tr>
624 <tr>
625 <td class="paramkey"></td>
626 <td></td>
627 <td class="paramtype">uint&#160;</td>
628 <td class="paramname"><em>plane1_step_x</em>, </td>
629 </tr>
630 <tr>
631 <td class="paramkey"></td>
632 <td></td>
633 <td class="paramtype">uint&#160;</td>
634 <td class="paramname"><em>plane1_stride_y</em>, </td>
635 </tr>
636 <tr>
637 <td class="paramkey"></td>
638 <td></td>
639 <td class="paramtype">uint&#160;</td>
640 <td class="paramname"><em>plane1_step_y</em>, </td>
641 </tr>
642 <tr>
643 <td class="paramkey"></td>
644 <td></td>
645 <td class="paramtype">uint&#160;</td>
646 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
647 </tr>
648 <tr>
649 <td class="paramkey"></td>
650 <td></td>
651 <td class="paramtype">__global uchar *&#160;</td>
652 <td class="paramname"><em>plane2_ptr</em>, </td>
653 </tr>
654 <tr>
655 <td class="paramkey"></td>
656 <td></td>
657 <td class="paramtype">uint&#160;</td>
658 <td class="paramname"><em>plane2_stride_x</em>, </td>
659 </tr>
660 <tr>
661 <td class="paramkey"></td>
662 <td></td>
663 <td class="paramtype">uint&#160;</td>
664 <td class="paramname"><em>plane2_step_x</em>, </td>
665 </tr>
666 <tr>
667 <td class="paramkey"></td>
668 <td></td>
669 <td class="paramtype">uint&#160;</td>
670 <td class="paramname"><em>plane2_stride_y</em>, </td>
671 </tr>
672 <tr>
673 <td class="paramkey"></td>
674 <td></td>
675 <td class="paramtype">uint&#160;</td>
676 <td class="paramname"><em>plane2_step_y</em>, </td>
677 </tr>
678 <tr>
679 <td class="paramkey"></td>
680 <td></td>
681 <td class="paramtype">uint&#160;</td>
682 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
683 </tr>
684 <tr>
685 <td class="paramkey"></td>
686 <td></td>
687 <td class="paramtype">__global uchar *&#160;</td>
688 <td class="paramname"><em>plane3_ptr</em>, </td>
689 </tr>
690 <tr>
691 <td class="paramkey"></td>
692 <td></td>
693 <td class="paramtype">uint&#160;</td>
694 <td class="paramname"><em>plane3_stride_x</em>, </td>
695 </tr>
696 <tr>
697 <td class="paramkey"></td>
698 <td></td>
699 <td class="paramtype">uint&#160;</td>
700 <td class="paramname"><em>plane3_step_x</em>, </td>
701 </tr>
702 <tr>
703 <td class="paramkey"></td>
704 <td></td>
705 <td class="paramtype">uint&#160;</td>
706 <td class="paramname"><em>plane3_stride_y</em>, </td>
707 </tr>
708 <tr>
709 <td class="paramkey"></td>
710 <td></td>
711 <td class="paramtype">uint&#160;</td>
712 <td class="paramname"><em>plane3_step_y</em>, </td>
713 </tr>
714 <tr>
715 <td class="paramkey"></td>
716 <td></td>
717 <td class="paramtype">uint&#160;</td>
718 <td class="paramname"><em>plane3_offset_first_element_in_bytes</em>, </td>
719 </tr>
720 <tr>
721 <td class="paramkey"></td>
722 <td></td>
723 <td class="paramtype">__global uchar *&#160;</td>
724 <td class="paramname"><em>dst_ptr</em>, </td>
725 </tr>
726 <tr>
727 <td class="paramkey"></td>
728 <td></td>
729 <td class="paramtype">uint&#160;</td>
730 <td class="paramname"><em>dst_stride_x</em>, </td>
731 </tr>
732 <tr>
733 <td class="paramkey"></td>
734 <td></td>
735 <td class="paramtype">uint&#160;</td>
736 <td class="paramname"><em>dst_step_x</em>, </td>
737 </tr>
738 <tr>
739 <td class="paramkey"></td>
740 <td></td>
741 <td class="paramtype">uint&#160;</td>
742 <td class="paramname"><em>dst_stride_y</em>, </td>
743 </tr>
744 <tr>
745 <td class="paramkey"></td>
746 <td></td>
747 <td class="paramtype">uint&#160;</td>
748 <td class="paramname"><em>dst_step_y</em>, </td>
749 </tr>
750 <tr>
751 <td class="paramkey"></td>
752 <td></td>
753 <td class="paramtype">uint&#160;</td>
754 <td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
755 </tr>
756 <tr>
757 <td></td>
758 <td>)</td>
759 <td></td><td></td>
760 </tr>
761 </table>
762</div><div class="memdoc">
763
764<p>This function combines three planes to a single RGBA image. </p>
765<dl class="params"><dt>Parameters</dt><dd>
766 <table class="params">
767 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
768 <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>
769 <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>
770 <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>
771 <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>
772 <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>
773 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
774 <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>
775 <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>
776 <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>
777 <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>
778 <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>
779 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
780 <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>
781 <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>
782 <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>
783 <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>
784 <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>
785 <tr><td class="paramdir">[in]</td><td class="paramname">plane3_ptr</td><td>Pointer to the fourth plane. Supported Format: U8 </td></tr>
786 <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>
787 <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>
788 <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>
789 <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>
790 <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>
791 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: RGBA </td></tr>
792 <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>
793 <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>
794 <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>
795 <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>
796 <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>
797 </table>
798 </dd>
799</dl>
800
Jenkinsb9abeae2018-11-22 11:58:08 +0000801<p class="definition">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>
Anthony Barbier871448e2017-03-24 14:54:29 +0000802
Jenkinsb9abeae2018-11-22 11:58:08 +0000803<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">arm_compute::test::validation::dst</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">Image::ptr</a>.</p>
804<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane3 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane3);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uchar16 data1 = vload16(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; uchar16 data2 = vload16(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; uchar16 data3 = vload16(0, plane3.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uchar16 out0 = (uchar16)(data0.s0, data1.s0, data2.s0, data3.s0,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data0.s1, data1.s1, data2.s1, data3.s1,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; data0.s2, data1.s2, data2.s2, data3.s2,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; data0.s3, data1.s3, data2.s3, data3.s3);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uchar16 out1 = (uchar16)(data0.s4, data1.s4, data2.s4, data3.s4,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; data0.s5, data1.s5, data2.s5, data3.s5,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; data0.s6, data1.s6, data2.s6, data3.s6,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; data0.s7, data1.s7, data2.s7, data3.s7);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uchar16 out2 = (uchar16)(data0.s8, data1.s8, data2.s8, data3.s8,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; data0.s9, data1.s9, data2.s9, data3.s9,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; data0.sA, data1.sA, data2.sA, data3.sA,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data0.sB, data1.sB, data2.sB, data3.sB);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; vstore16(out2, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 32);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uchar16 out3 = (uchar16)(data0.sC, data1.sC, data2.sC, data3.sC,</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; data0.sD, data1.sD, data2.sD, data3.sD,</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; data0.sE, data1.sE, data2.sE, data3.sE,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; data0.sF, data1.sF, data2.sF, data3.sF);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; vstore16(out3, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 48);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">helpers.h:110</a></div></div>
Jenkins52ba29e2018-08-29 15:32:11 +0000805<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">ArithmeticDivision.cpp:100</a></div></div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000806<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
807<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">helpers.h:150</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000808</div><!-- fragment -->
809</div>
810</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000811<a id="a72eb5d0161bfc3bca9ceb770ce7ef1ad"></a>
812<h2 class="memtitle"><span class="permalink"><a href="#a72eb5d0161bfc3bca9ceb770ce7ef1ad">&#9670;&nbsp;</a></span>channel_combine_UYVY422()</h2>
813
Anthony Barbier871448e2017-03-24 14:54:29 +0000814<div class="memitem">
815<div class="memproto">
816 <table class="memname">
817 <tr>
818 <td class="memname">__kernel void channel_combine_UYVY422 </td>
819 <td>(</td>
820 <td class="paramtype">__global uchar *&#160;</td>
821 <td class="paramname"><em>plane0_ptr</em>, </td>
822 </tr>
823 <tr>
824 <td class="paramkey"></td>
825 <td></td>
826 <td class="paramtype">uint&#160;</td>
827 <td class="paramname"><em>plane0_stride_x</em>, </td>
828 </tr>
829 <tr>
830 <td class="paramkey"></td>
831 <td></td>
832 <td class="paramtype">uint&#160;</td>
833 <td class="paramname"><em>plane0_step_x</em>, </td>
834 </tr>
835 <tr>
836 <td class="paramkey"></td>
837 <td></td>
838 <td class="paramtype">uint&#160;</td>
839 <td class="paramname"><em>plane0_stride_y</em>, </td>
840 </tr>
841 <tr>
842 <td class="paramkey"></td>
843 <td></td>
844 <td class="paramtype">uint&#160;</td>
845 <td class="paramname"><em>plane0_step_y</em>, </td>
846 </tr>
847 <tr>
848 <td class="paramkey"></td>
849 <td></td>
850 <td class="paramtype">uint&#160;</td>
851 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
852 </tr>
853 <tr>
854 <td class="paramkey"></td>
855 <td></td>
856 <td class="paramtype">__global uchar *&#160;</td>
857 <td class="paramname"><em>plane1_ptr</em>, </td>
858 </tr>
859 <tr>
860 <td class="paramkey"></td>
861 <td></td>
862 <td class="paramtype">uint&#160;</td>
863 <td class="paramname"><em>plane1_stride_x</em>, </td>
864 </tr>
865 <tr>
866 <td class="paramkey"></td>
867 <td></td>
868 <td class="paramtype">uint&#160;</td>
869 <td class="paramname"><em>plane1_step_x</em>, </td>
870 </tr>
871 <tr>
872 <td class="paramkey"></td>
873 <td></td>
874 <td class="paramtype">uint&#160;</td>
875 <td class="paramname"><em>plane1_stride_y</em>, </td>
876 </tr>
877 <tr>
878 <td class="paramkey"></td>
879 <td></td>
880 <td class="paramtype">uint&#160;</td>
881 <td class="paramname"><em>plane1_step_y</em>, </td>
882 </tr>
883 <tr>
884 <td class="paramkey"></td>
885 <td></td>
886 <td class="paramtype">uint&#160;</td>
887 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
888 </tr>
889 <tr>
890 <td class="paramkey"></td>
891 <td></td>
892 <td class="paramtype">__global uchar *&#160;</td>
893 <td class="paramname"><em>plane2_ptr</em>, </td>
894 </tr>
895 <tr>
896 <td class="paramkey"></td>
897 <td></td>
898 <td class="paramtype">uint&#160;</td>
899 <td class="paramname"><em>plane2_stride_x</em>, </td>
900 </tr>
901 <tr>
902 <td class="paramkey"></td>
903 <td></td>
904 <td class="paramtype">uint&#160;</td>
905 <td class="paramname"><em>plane2_step_x</em>, </td>
906 </tr>
907 <tr>
908 <td class="paramkey"></td>
909 <td></td>
910 <td class="paramtype">uint&#160;</td>
911 <td class="paramname"><em>plane2_stride_y</em>, </td>
912 </tr>
913 <tr>
914 <td class="paramkey"></td>
915 <td></td>
916 <td class="paramtype">uint&#160;</td>
917 <td class="paramname"><em>plane2_step_y</em>, </td>
918 </tr>
919 <tr>
920 <td class="paramkey"></td>
921 <td></td>
922 <td class="paramtype">uint&#160;</td>
923 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
924 </tr>
925 <tr>
926 <td class="paramkey"></td>
927 <td></td>
928 <td class="paramtype">__global uchar *&#160;</td>
929 <td class="paramname"><em>dst_ptr</em>, </td>
930 </tr>
931 <tr>
932 <td class="paramkey"></td>
933 <td></td>
934 <td class="paramtype">uint&#160;</td>
935 <td class="paramname"><em>dst_stride_x</em>, </td>
936 </tr>
937 <tr>
938 <td class="paramkey"></td>
939 <td></td>
940 <td class="paramtype">uint&#160;</td>
941 <td class="paramname"><em>dst_step_x</em>, </td>
942 </tr>
943 <tr>
944 <td class="paramkey"></td>
945 <td></td>
946 <td class="paramtype">uint&#160;</td>
947 <td class="paramname"><em>dst_stride_y</em>, </td>
948 </tr>
949 <tr>
950 <td class="paramkey"></td>
951 <td></td>
952 <td class="paramtype">uint&#160;</td>
953 <td class="paramname"><em>dst_step_y</em>, </td>
954 </tr>
955 <tr>
956 <td class="paramkey"></td>
957 <td></td>
958 <td class="paramtype">uint&#160;</td>
959 <td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
960 </tr>
961 <tr>
962 <td></td>
963 <td>)</td>
964 <td></td><td></td>
965 </tr>
966 </table>
967</div><div class="memdoc">
968
969<p>This function combines three planes to a single UYUV image. </p>
970<dl class="params"><dt>Parameters</dt><dd>
971 <table class="params">
972 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
973 <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>
974 <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>
975 <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>
976 <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>
977 <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>
978 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
979 <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>
980 <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>
981 <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>
982 <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>
983 <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>
984 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
985 <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>
986 <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>
987 <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>
988 <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>
989 <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>
990 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: UYUV </td></tr>
991 <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>
992 <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>
993 <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>
994 <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>
995 <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>
996 </table>
997 </dd>
998</dl>
999
Jenkinsb9abeae2018-11-22 11:58:08 +00001000<p class="definition">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>
Anthony Barbier871448e2017-03-24 14:54:29 +00001001
Jenkinsb9abeae2018-11-22 11:58:08 +00001002<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">arm_compute::test::validation::dst</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">Image::ptr</a>.</p>
1003<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; uchar8 data1 = vload8(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; uchar8 data2 = vload8(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; uchar16 out0 = (uchar16)(data1.s0, data0.s0, data2.s0, data0.s1,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; data1.s1, data0.s2, data2.s1, data0.s3,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; data1.s2, data0.s4, data2.s2, data0.s5,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; data1.s3, data0.s6, data2.s3, data0.s7);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; uchar16 out1 = (uchar16)(data1.s4, data0.s8, data2.s4, data0.s9,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; data1.s5, data0.sA, data2.s5, data0.sB,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; data1.s6, data0.sC, data2.s6, data0.sD,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; data1.s7, data0.sE, data2.s7, data0.sF);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">helpers.h:110</a></div></div>
Jenkins52ba29e2018-08-29 15:32:11 +00001004<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">ArithmeticDivision.cpp:100</a></div></div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001005<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
1006<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">helpers.h:150</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00001007</div><!-- fragment -->
1008</div>
1009</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001010<a id="a410770921ba530aaf00498478ff7f475"></a>
1011<h2 class="memtitle"><span class="permalink"><a href="#a410770921ba530aaf00498478ff7f475">&#9670;&nbsp;</a></span>channel_combine_YUYV422()</h2>
1012
Anthony Barbier871448e2017-03-24 14:54:29 +00001013<div class="memitem">
1014<div class="memproto">
1015 <table class="memname">
1016 <tr>
1017 <td class="memname">__kernel void channel_combine_YUYV422 </td>
1018 <td>(</td>
1019 <td class="paramtype">__global uchar *&#160;</td>
1020 <td class="paramname"><em>plane0_ptr</em>, </td>
1021 </tr>
1022 <tr>
1023 <td class="paramkey"></td>
1024 <td></td>
1025 <td class="paramtype">uint&#160;</td>
1026 <td class="paramname"><em>plane0_stride_x</em>, </td>
1027 </tr>
1028 <tr>
1029 <td class="paramkey"></td>
1030 <td></td>
1031 <td class="paramtype">uint&#160;</td>
1032 <td class="paramname"><em>plane0_step_x</em>, </td>
1033 </tr>
1034 <tr>
1035 <td class="paramkey"></td>
1036 <td></td>
1037 <td class="paramtype">uint&#160;</td>
1038 <td class="paramname"><em>plane0_stride_y</em>, </td>
1039 </tr>
1040 <tr>
1041 <td class="paramkey"></td>
1042 <td></td>
1043 <td class="paramtype">uint&#160;</td>
1044 <td class="paramname"><em>plane0_step_y</em>, </td>
1045 </tr>
1046 <tr>
1047 <td class="paramkey"></td>
1048 <td></td>
1049 <td class="paramtype">uint&#160;</td>
1050 <td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
1051 </tr>
1052 <tr>
1053 <td class="paramkey"></td>
1054 <td></td>
1055 <td class="paramtype">__global uchar *&#160;</td>
1056 <td class="paramname"><em>plane1_ptr</em>, </td>
1057 </tr>
1058 <tr>
1059 <td class="paramkey"></td>
1060 <td></td>
1061 <td class="paramtype">uint&#160;</td>
1062 <td class="paramname"><em>plane1_stride_x</em>, </td>
1063 </tr>
1064 <tr>
1065 <td class="paramkey"></td>
1066 <td></td>
1067 <td class="paramtype">uint&#160;</td>
1068 <td class="paramname"><em>plane1_step_x</em>, </td>
1069 </tr>
1070 <tr>
1071 <td class="paramkey"></td>
1072 <td></td>
1073 <td class="paramtype">uint&#160;</td>
1074 <td class="paramname"><em>plane1_stride_y</em>, </td>
1075 </tr>
1076 <tr>
1077 <td class="paramkey"></td>
1078 <td></td>
1079 <td class="paramtype">uint&#160;</td>
1080 <td class="paramname"><em>plane1_step_y</em>, </td>
1081 </tr>
1082 <tr>
1083 <td class="paramkey"></td>
1084 <td></td>
1085 <td class="paramtype">uint&#160;</td>
1086 <td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
1087 </tr>
1088 <tr>
1089 <td class="paramkey"></td>
1090 <td></td>
1091 <td class="paramtype">__global uchar *&#160;</td>
1092 <td class="paramname"><em>plane2_ptr</em>, </td>
1093 </tr>
1094 <tr>
1095 <td class="paramkey"></td>
1096 <td></td>
1097 <td class="paramtype">uint&#160;</td>
1098 <td class="paramname"><em>plane2_stride_x</em>, </td>
1099 </tr>
1100 <tr>
1101 <td class="paramkey"></td>
1102 <td></td>
1103 <td class="paramtype">uint&#160;</td>
1104 <td class="paramname"><em>plane2_step_x</em>, </td>
1105 </tr>
1106 <tr>
1107 <td class="paramkey"></td>
1108 <td></td>
1109 <td class="paramtype">uint&#160;</td>
1110 <td class="paramname"><em>plane2_stride_y</em>, </td>
1111 </tr>
1112 <tr>
1113 <td class="paramkey"></td>
1114 <td></td>
1115 <td class="paramtype">uint&#160;</td>
1116 <td class="paramname"><em>plane2_step_y</em>, </td>
1117 </tr>
1118 <tr>
1119 <td class="paramkey"></td>
1120 <td></td>
1121 <td class="paramtype">uint&#160;</td>
1122 <td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
1123 </tr>
1124 <tr>
1125 <td class="paramkey"></td>
1126 <td></td>
1127 <td class="paramtype">__global uchar *&#160;</td>
1128 <td class="paramname"><em>dst_ptr</em>, </td>
1129 </tr>
1130 <tr>
1131 <td class="paramkey"></td>
1132 <td></td>
1133 <td class="paramtype">uint&#160;</td>
1134 <td class="paramname"><em>dst_stride_x</em>, </td>
1135 </tr>
1136 <tr>
1137 <td class="paramkey"></td>
1138 <td></td>
1139 <td class="paramtype">uint&#160;</td>
1140 <td class="paramname"><em>dst_step_x</em>, </td>
1141 </tr>
1142 <tr>
1143 <td class="paramkey"></td>
1144 <td></td>
1145 <td class="paramtype">uint&#160;</td>
1146 <td class="paramname"><em>dst_stride_y</em>, </td>
1147 </tr>
1148 <tr>
1149 <td class="paramkey"></td>
1150 <td></td>
1151 <td class="paramtype">uint&#160;</td>
1152 <td class="paramname"><em>dst_step_y</em>, </td>
1153 </tr>
1154 <tr>
1155 <td class="paramkey"></td>
1156 <td></td>
1157 <td class="paramtype">uint&#160;</td>
1158 <td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
1159 </tr>
1160 <tr>
1161 <td></td>
1162 <td>)</td>
1163 <td></td><td></td>
1164 </tr>
1165 </table>
1166</div><div class="memdoc">
1167
1168<p>This function combines three planes to a single YUYV image. </p>
1169<dl class="params"><dt>Parameters</dt><dd>
1170 <table class="params">
1171 <tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
1172 <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>
1173 <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>
1174 <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>
1175 <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>
1176 <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>
1177 <tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
1178 <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>
1179 <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>
1180 <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>
1181 <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>
1182 <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>
1183 <tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
1184 <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>
1185 <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>
1186 <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>
1187 <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>
1188 <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>
1189 <tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: YUYV </td></tr>
1190 <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>
1191 <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>
1192 <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>
1193 <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>
1194 <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>
1195 </table>
1196 </dd>
1197</dl>
1198
Jenkinsb9abeae2018-11-22 11:58:08 +00001199<p class="definition">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>
Anthony Barbier871448e2017-03-24 14:54:29 +00001200
Jenkinsb9abeae2018-11-22 11:58:08 +00001201<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">arm_compute::test::validation::dst</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">Image::ptr</a>.</p>
1202<div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uchar8 data1 = vload8(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; uchar8 data2 = vload8(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uchar16 out0 = (uchar16)(data0.s0, data1.s0, data0.s1, data2.s0,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; data0.s2, data1.s1, data0.s3, data2.s1,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; data0.s4, data1.s2, data0.s5, data2.s2,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; data0.s6, data1.s3, data0.s7, data2.s3);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uchar16 out1 = (uchar16)(data0.s8, data1.s4, data0.s9, data2.s4,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; data0.sA, data1.s5, data0.sB, data2.s5,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; data0.sC, data1.s6, data0.sD, data2.s6,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; data0.sE, data1.s7, data0.sF, data2.s7);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">helpers.h:110</a></div></div>
Jenkins52ba29e2018-08-29 15:32:11 +00001203<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_arithmetic_division_8cpp_source.xhtml#l00100">ArithmeticDivision.cpp:100</a></div></div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001204<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
1205<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">helpers.h:150</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00001206</div><!-- fragment -->
1207</div>
1208</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001209<a id="a2ecdd5708954da1196aa12856e78a462"></a>
1210<h2 class="memtitle"><span class="permalink"><a href="#a2ecdd5708954da1196aa12856e78a462">&#9670;&nbsp;</a></span>copy_planes_3p()</h2>
1211
Anthony Barbier871448e2017-03-24 14:54:29 +00001212<div class="memitem">
1213<div class="memproto">
1214 <table class="memname">
1215 <tr>
1216 <td class="memname">__kernel void copy_planes_3p </td>
1217 <td>(</td>
1218 <td class="paramtype">__global uchar *&#160;</td>
1219 <td class="paramname"><em>src_plane0_ptr</em>, </td>
1220 </tr>
1221 <tr>
1222 <td class="paramkey"></td>
1223 <td></td>
1224 <td class="paramtype">uint&#160;</td>
1225 <td class="paramname"><em>src_plane0_stride_x</em>, </td>
1226 </tr>
1227 <tr>
1228 <td class="paramkey"></td>
1229 <td></td>
1230 <td class="paramtype">uint&#160;</td>
1231 <td class="paramname"><em>src_plane0_step_x</em>, </td>
1232 </tr>
1233 <tr>
1234 <td class="paramkey"></td>
1235 <td></td>
1236 <td class="paramtype">uint&#160;</td>
1237 <td class="paramname"><em>src_plane0_stride_y</em>, </td>
1238 </tr>
1239 <tr>
1240 <td class="paramkey"></td>
1241 <td></td>
1242 <td class="paramtype">uint&#160;</td>
1243 <td class="paramname"><em>src_plane0_step_y</em>, </td>
1244 </tr>
1245 <tr>
1246 <td class="paramkey"></td>
1247 <td></td>
1248 <td class="paramtype">uint&#160;</td>
1249 <td class="paramname"><em>src_plane0_offset_first_element_in_bytes</em>, </td>
1250 </tr>
1251 <tr>
1252 <td class="paramkey"></td>
1253 <td></td>
1254 <td class="paramtype">__global uchar *&#160;</td>
1255 <td class="paramname"><em>src_plane1_ptr</em>, </td>
1256 </tr>
1257 <tr>
1258 <td class="paramkey"></td>
1259 <td></td>
1260 <td class="paramtype">uint&#160;</td>
1261 <td class="paramname"><em>src_plane1_stride_x</em>, </td>
1262 </tr>
1263 <tr>
1264 <td class="paramkey"></td>
1265 <td></td>
1266 <td class="paramtype">uint&#160;</td>
1267 <td class="paramname"><em>src_plane1_step_x</em>, </td>
1268 </tr>
1269 <tr>
1270 <td class="paramkey"></td>
1271 <td></td>
1272 <td class="paramtype">uint&#160;</td>
1273 <td class="paramname"><em>src_plane1_stride_y</em>, </td>
1274 </tr>
1275 <tr>
1276 <td class="paramkey"></td>
1277 <td></td>
1278 <td class="paramtype">uint&#160;</td>
1279 <td class="paramname"><em>src_plane1_step_y</em>, </td>
1280 </tr>
1281 <tr>
1282 <td class="paramkey"></td>
1283 <td></td>
1284 <td class="paramtype">uint&#160;</td>
1285 <td class="paramname"><em>src_plane1_offset_first_element_in_bytes</em>, </td>
1286 </tr>
1287 <tr>
1288 <td class="paramkey"></td>
1289 <td></td>
1290 <td class="paramtype">__global uchar *&#160;</td>
1291 <td class="paramname"><em>src_plane2_ptr</em>, </td>
1292 </tr>
1293 <tr>
1294 <td class="paramkey"></td>
1295 <td></td>
1296 <td class="paramtype">uint&#160;</td>
1297 <td class="paramname"><em>src_plane2_stride_x</em>, </td>
1298 </tr>
1299 <tr>
1300 <td class="paramkey"></td>
1301 <td></td>
1302 <td class="paramtype">uint&#160;</td>
1303 <td class="paramname"><em>src_plane2_step_x</em>, </td>
1304 </tr>
1305 <tr>
1306 <td class="paramkey"></td>
1307 <td></td>
1308 <td class="paramtype">uint&#160;</td>
1309 <td class="paramname"><em>src_plane2_stride_y</em>, </td>
1310 </tr>
1311 <tr>
1312 <td class="paramkey"></td>
1313 <td></td>
1314 <td class="paramtype">uint&#160;</td>
1315 <td class="paramname"><em>src_plane2_step_y</em>, </td>
1316 </tr>
1317 <tr>
1318 <td class="paramkey"></td>
1319 <td></td>
1320 <td class="paramtype">uint&#160;</td>
1321 <td class="paramname"><em>src_plane2_offset_first_element_in_bytes</em>, </td>
1322 </tr>
1323 <tr>
1324 <td class="paramkey"></td>
1325 <td></td>
1326 <td class="paramtype">__global uchar *&#160;</td>
1327 <td class="paramname"><em>dst_plane0_ptr</em>, </td>
1328 </tr>
1329 <tr>
1330 <td class="paramkey"></td>
1331 <td></td>
1332 <td class="paramtype">uint&#160;</td>
1333 <td class="paramname"><em>dst_plane0_stride_x</em>, </td>
1334 </tr>
1335 <tr>
1336 <td class="paramkey"></td>
1337 <td></td>
1338 <td class="paramtype">uint&#160;</td>
1339 <td class="paramname"><em>dst_plane0_step_x</em>, </td>
1340 </tr>
1341 <tr>
1342 <td class="paramkey"></td>
1343 <td></td>
1344 <td class="paramtype">uint&#160;</td>
1345 <td class="paramname"><em>dst_plane0_stride_y</em>, </td>
1346 </tr>
1347 <tr>
1348 <td class="paramkey"></td>
1349 <td></td>
1350 <td class="paramtype">uint&#160;</td>
1351 <td class="paramname"><em>dst_plane0_step_y</em>, </td>
1352 </tr>
1353 <tr>
1354 <td class="paramkey"></td>
1355 <td></td>
1356 <td class="paramtype">uint&#160;</td>
1357 <td class="paramname"><em>dst_plane0_offset_first_element_in_bytes</em>, </td>
1358 </tr>
1359 <tr>
1360 <td class="paramkey"></td>
1361 <td></td>
1362 <td class="paramtype">__global uchar *&#160;</td>
1363 <td class="paramname"><em>dst_plane1_ptr</em>, </td>
1364 </tr>
1365 <tr>
1366 <td class="paramkey"></td>
1367 <td></td>
1368 <td class="paramtype">uint&#160;</td>
1369 <td class="paramname"><em>dst_plane1_stride_x</em>, </td>
1370 </tr>
1371 <tr>
1372 <td class="paramkey"></td>
1373 <td></td>
1374 <td class="paramtype">uint&#160;</td>
1375 <td class="paramname"><em>dst_plane1_step_x</em>, </td>
1376 </tr>
1377 <tr>
1378 <td class="paramkey"></td>
1379 <td></td>
1380 <td class="paramtype">uint&#160;</td>
1381 <td class="paramname"><em>dst_plane1_stride_y</em>, </td>
1382 </tr>
1383 <tr>
1384 <td class="paramkey"></td>
1385 <td></td>
1386 <td class="paramtype">uint&#160;</td>
1387 <td class="paramname"><em>dst_plane1_step_y</em>, </td>
1388 </tr>
1389 <tr>
1390 <td class="paramkey"></td>
1391 <td></td>
1392 <td class="paramtype">uint&#160;</td>
1393 <td class="paramname"><em>dst_plane1_offset_first_element_in_bytes</em>, </td>
1394 </tr>
1395 <tr>
1396 <td class="paramkey"></td>
1397 <td></td>
1398 <td class="paramtype">__global uchar *&#160;</td>
1399 <td class="paramname"><em>dst_plane2_ptr</em>, </td>
1400 </tr>
1401 <tr>
1402 <td class="paramkey"></td>
1403 <td></td>
1404 <td class="paramtype">uint&#160;</td>
1405 <td class="paramname"><em>dst_plane2_stride_x</em>, </td>
1406 </tr>
1407 <tr>
1408 <td class="paramkey"></td>
1409 <td></td>
1410 <td class="paramtype">uint&#160;</td>
1411 <td class="paramname"><em>dst_plane2_step_x</em>, </td>
1412 </tr>
1413 <tr>
1414 <td class="paramkey"></td>
1415 <td></td>
1416 <td class="paramtype">uint&#160;</td>
1417 <td class="paramname"><em>dst_plane2_stride_y</em>, </td>
1418 </tr>
1419 <tr>
1420 <td class="paramkey"></td>
1421 <td></td>
1422 <td class="paramtype">uint&#160;</td>
1423 <td class="paramname"><em>dst_plane2_step_y</em>, </td>
1424 </tr>
1425 <tr>
1426 <td class="paramkey"></td>
1427 <td></td>
1428 <td class="paramtype">uint&#160;</td>
1429 <td class="paramname"><em>dst_plane2_offset_first_element_in_bytes</em>, </td>
1430 </tr>
1431 <tr>
1432 <td class="paramkey"></td>
1433 <td></td>
1434 <td class="paramtype">uint&#160;</td>
1435 <td class="paramname"><em>height</em>&#160;</td>
1436 </tr>
1437 <tr>
1438 <td></td>
1439 <td>)</td>
1440 <td></td><td></td>
1441 </tr>
1442 </table>
1443</div><div class="memdoc">
1444
1445<p>This function combines three planes to a single YUV444 or IYUV image. </p>
1446<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>
1447<dl class="params"><dt>Parameters</dt><dd>
1448 <table class="params">
1449 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
1450 <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>
1451 <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>
1452 <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>
1453 <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>
1454 <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>
1455 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
1456 <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>
1457 <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>
1458 <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>
1459 <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>
1460 <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>
1461 <tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
1462 <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>
1463 <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>
1464 <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>
1465 <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>
1466 <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>
1467 <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>
1468 <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>
1469 <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>
1470 <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>
1471 <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>
1472 <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>
1473 <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>
1474 <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>
1475 <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>
1476 <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>
1477 <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>
1478 <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>
1479 <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>
1480 <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>
1481 <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>
1482 <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>
1483 <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>
1484 <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>
1485 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Sub-sampled height </td></tr>
1486 </table>
1487 </dd>
1488</dl>
1489
Jenkinsb9abeae2018-11-22 11:58:08 +00001490<p class="definition">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>
Anthony Barbier871448e2017-03-24 14:54:29 +00001491
Jenkinsb9abeae2018-11-22 11:58:08 +00001492<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00309">offset()</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">Image::ptr</a>.</p>
1493<div class="fragment"><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;{</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane0);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane1);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane2);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane0 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane0);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane1 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane1);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane2 = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane2);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// Copy plane data</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; 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><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#ifdef YUV444</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; 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><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; 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><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#elif defined(IYUV)</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; vstore16(vload16(0, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src_plane0, 0, height)), 0, (__global uchar *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;dst_plane0, 0, height));</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; 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><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; 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><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* YUV444 or IYUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00309">helpers.h:309</a></div></div>
1494<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00110">helpers.h:110</a></div></div>
1495<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
1496<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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00150">helpers.h:150</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00001497</div><!-- fragment -->
1498</div>
1499</div>
1500</div><!-- contents -->
1501</div><!-- doc-content -->
1502<!-- start footer part -->
1503<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1504 <ul>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001505 <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.xhtml">core</a></li><li class="navelem"><a class="el" href="dir_8c278f79c760e5c5fbd911f9870614c1.xhtml">CL</a></li><li class="navelem"><a class="el" href="dir_25885286e9dad4fa105b7b25a8031bbf.xhtml">cl_kernels</a></li><li class="navelem"><a class="el" href="channel__combine_8cl.xhtml">channel_combine.cl</a></li>
Jenkinsb9abeae2018-11-22 11:58:08 +00001506 <li class="footer">Generated on Thu Nov 22 2018 11:57:43 for Compute Library by
Anthony Barbier871448e2017-03-24 14:54:29 +00001507 <a href="http://www.doxygen.org/index.html">
Jenkinsb9abeae2018-11-22 11:58:08 +00001508 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
Anthony Barbier871448e2017-03-24 14:54:29 +00001509 </ul>
1510</div>
1511</body>
1512</html>