1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.8.11"/>
8 <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
9 <title>Compute Library: src/core/CL/cl_kernels/channel_extract.cl File Reference</title>
10 <link href="tabs.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="jquery.js"></script>
12 <script type="text/javascript" src="dynsections.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17 <script type="text/javascript">
18 $(document).ready(initResizable);
19 $(window).load(resizeHeight);
21 <link href="search/search.css" rel="stylesheet" type="text/css"/>
22 <script type="text/javascript" src="search/searchdata.js"></script>
23 <script type="text/javascript" src="search/search.js"></script>
24 <script type="text/javascript">
25 $(document).ready(function() { init_search(); });
27 <script type="text/x-mathjax-config">
29 extensions: ["tex2jax.js"],
30 jax: ["input/TeX","output/HTML-CSS"],
32 </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
33 <link href="doxygen.css" rel="stylesheet" type="text/css" />
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
38 <table cellspacing="0" cellpadding="0">
40 <tr style="height: 56px;">
41 <td style="padding-left: 0.5em;">
42 <div id="projectname">Compute Library
43  <span id="projectnumber">18.05</span>
50 <!-- end header part -->
51 <!-- Generated by Doxygen 1.8.11 -->
52 <script type="text/javascript">
53 var searchBox = new SearchBox("searchBox", "search",false,'Search');
55 <div id="navrow1" class="tabs">
57 <li><a href="index.xhtml"><span>Main Page</span></a></li>
58 <li><a href="pages.xhtml"><span>Related Pages</span></a></li>
59 <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
60 <li><a href="annotated.xhtml"><span>Data Structures</span></a></li>
61 <li class="current"><a href="files.xhtml"><span>Files</span></a></li>
63 <div id="MSearchBox" class="MSearchBoxInactive">
65 <img id="MSearchSelect" src="search/mag_sel.png"
66 onmouseover="return searchBox.OnSearchSelectShow()"
67 onmouseout="return searchBox.OnSearchSelectHide()"
69 <input type="text" id="MSearchField" value="Search" accesskey="S"
70 onfocus="searchBox.OnSearchFieldFocus(true)"
71 onblur="searchBox.OnSearchFieldFocus(false)"
72 onkeyup="searchBox.OnSearchFieldChange(event)"/>
73 </span><span class="right">
74 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
80 <div id="navrow2" class="tabs2">
82 <li><a href="files.xhtml"><span>File List</span></a></li>
83 <li><a href="globals.xhtml"><span>Globals</span></a></li>
87 <div id="side-nav" class="ui-resizable side-nav-resizable">
89 <div id="nav-tree-contents">
90 <div id="nav-sync" class="sync"></div>
93 <div id="splitbar" style="-moz-user-select:none;"
94 class="ui-resizable-handle">
97 <script type="text/javascript">
98 $(document).ready(function(){initNavTree('channel__extract_8cl.xhtml','');});
100 <div id="doc-content">
101 <!-- window showing the filter options -->
102 <div id="MSearchSelectWindow"
103 onmouseover="return searchBox.OnSearchSelectShow()"
104 onmouseout="return searchBox.OnSearchSelectHide()"
105 onkeydown="return searchBox.OnSearchSelectKey(event)">
108 <!-- iframe showing the search results (closed by default) -->
109 <div id="MSearchResultsWindow">
110 <iframe src="javascript:void(0)" frameborder="0"
111 name="MSearchResults" id="MSearchResults">
116 <div class="summary">
117 <a href="#func-members">Functions</a> </div>
118 <div class="headertitle">
119 <div class="title">channel_extract.cl File Reference</div> </div>
121 <div class="contents">
122 <div class="textblock"><code>#include "<a class="el" href="helpers_8h_source.xhtml">helpers.h</a>"</code><br />
124 <p><a href="channel__extract_8cl_source.xhtml">Go to the source code of this file.</a></p>
125 <table class="memberdecls">
126 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
127 Functions</h2></td></tr>
128 <tr class="memitem:aeecb8084159259d10790df3e0a602cbf"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#aeecb8084159259d10790df3e0a602cbf">channel_extract_RGB888</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
129 <tr class="memdesc:aeecb8084159259d10790df3e0a602cbf"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given channel from an RGB image. <a href="#aeecb8084159259d10790df3e0a602cbf">More...</a><br /></td></tr>
130 <tr class="separator:aeecb8084159259d10790df3e0a602cbf"><td class="memSeparator" colspan="2"> </td></tr>
131 <tr class="memitem:ae133ea6ea26771fc36a31d0a3d783077"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#ae133ea6ea26771fc36a31d0a3d783077">channel_extract_RGBA8888</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
132 <tr class="memdesc:ae133ea6ea26771fc36a31d0a3d783077"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given channel from an RGBA image. <a href="#ae133ea6ea26771fc36a31d0a3d783077">More...</a><br /></td></tr>
133 <tr class="separator:ae133ea6ea26771fc36a31d0a3d783077"><td class="memSeparator" colspan="2"> </td></tr>
134 <tr class="memitem:a6f8110fd6923dfc2db9daf1f3ed92435"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#a6f8110fd6923dfc2db9daf1f3ed92435">channel_extract_YUYV422</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
135 <tr class="memdesc:a6f8110fd6923dfc2db9daf1f3ed92435"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given channel from an YUYV image. <a href="#a6f8110fd6923dfc2db9daf1f3ed92435">More...</a><br /></td></tr>
136 <tr class="separator:a6f8110fd6923dfc2db9daf1f3ed92435"><td class="memSeparator" colspan="2"> </td></tr>
137 <tr class="memitem:a3d22dccc2444106a5325b842c096486c"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#a3d22dccc2444106a5325b842c096486c">channel_extract_UYVY422</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
138 <tr class="memdesc:a3d22dccc2444106a5325b842c096486c"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given channel from an UYUV image. <a href="#a3d22dccc2444106a5325b842c096486c">More...</a><br /></td></tr>
139 <tr class="separator:a3d22dccc2444106a5325b842c096486c"><td class="memSeparator" colspan="2"> </td></tr>
140 <tr class="memitem:a5dc3971835f11066639e63f02545932b"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#a5dc3971835f11066639e63f02545932b">channel_extract_NV12</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
141 <tr class="memdesc:a5dc3971835f11066639e63f02545932b"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given channel from an NV12 image. <a href="#a5dc3971835f11066639e63f02545932b">More...</a><br /></td></tr>
142 <tr class="separator:a5dc3971835f11066639e63f02545932b"><td class="memSeparator" colspan="2"> </td></tr>
143 <tr class="memitem:a628f0c1a3a80b8dc275ad0ca877e3833"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#a628f0c1a3a80b8dc275ad0ca877e3833">channel_extract_NV21</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
144 <tr class="memdesc:a628f0c1a3a80b8dc275ad0ca877e3833"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given channel from an NV21 image. <a href="#a628f0c1a3a80b8dc275ad0ca877e3833">More...</a><br /></td></tr>
145 <tr class="separator:a628f0c1a3a80b8dc275ad0ca877e3833"><td class="memSeparator" colspan="2"> </td></tr>
146 <tr class="memitem:a8b54e12b0c19a206a73ade8e8bed82f3"><td class="memItemLeft" align="right" valign="top">__kernel void </td><td class="memItemRight" valign="bottom"><a class="el" href="channel__extract_8cl.xhtml#a8b54e12b0c19a206a73ade8e8bed82f3">copy_plane</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_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>
147 <tr class="memdesc:a8b54e12b0c19a206a73ade8e8bed82f3"><td class="mdescLeft"> </td><td class="mdescRight">This function extracts a given plane from an multi-planar image. <a href="#a8b54e12b0c19a206a73ade8e8bed82f3">More...</a><br /></td></tr>
148 <tr class="separator:a8b54e12b0c19a206a73ade8e8bed82f3"><td class="memSeparator" colspan="2"> </td></tr>
150 <h2 class="groupheader">Function Documentation</h2>
151 <a class="anchor" id="a5dc3971835f11066639e63f02545932b"></a>
152 <div class="memitem">
153 <div class="memproto">
154 <table class="memname">
156 <td class="memname">__kernel void channel_extract_NV12 </td>
158 <td class="paramtype">__global uchar * </td>
159 <td class="paramname"><em>src_ptr</em>, </td>
162 <td class="paramkey"></td>
164 <td class="paramtype">uint </td>
165 <td class="paramname"><em>src_stride_x</em>, </td>
168 <td class="paramkey"></td>
170 <td class="paramtype">uint </td>
171 <td class="paramname"><em>src_step_x</em>, </td>
174 <td class="paramkey"></td>
176 <td class="paramtype">uint </td>
177 <td class="paramname"><em>src_stride_y</em>, </td>
180 <td class="paramkey"></td>
182 <td class="paramtype">uint </td>
183 <td class="paramname"><em>src_step_y</em>, </td>
186 <td class="paramkey"></td>
188 <td class="paramtype">uint </td>
189 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
192 <td class="paramkey"></td>
194 <td class="paramtype">__global uchar * </td>
195 <td class="paramname"><em>dst_ptr</em>, </td>
198 <td class="paramkey"></td>
200 <td class="paramtype">uint </td>
201 <td class="paramname"><em>dst_stride_x</em>, </td>
204 <td class="paramkey"></td>
206 <td class="paramtype">uint </td>
207 <td class="paramname"><em>dst_step_x</em>, </td>
210 <td class="paramkey"></td>
212 <td class="paramtype">uint </td>
213 <td class="paramname"><em>dst_stride_y</em>, </td>
216 <td class="paramkey"></td>
218 <td class="paramtype">uint </td>
219 <td class="paramname"><em>dst_step_y</em>, </td>
222 <td class="paramkey"></td>
224 <td class="paramtype">uint </td>
225 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
233 </div><div class="memdoc">
235 <p>This function extracts a given channel from an NV12 image. </p>
236 <dl class="section note"><dt>Note</dt><dd>Channel to be extracted should be passed as a pre-processor argument, e.g. -DCHANNEL_U will extract the U channel. </dd></dl>
237 <dl class="section warning"><dt>Warning</dt><dd>Only channels UV can be extracted using this kernel.</dd></dl>
238 <dl class="params"><dt>Parameters</dt><dd>
239 <table class="params">
240 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: NV12 (UV88) </td></tr>
241 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
242 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
243 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
244 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
245 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
246 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
247 <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>
248 <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>
249 <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>
250 <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>
251 <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>
256 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00195">195</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
258 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
259 <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  uchar16 data = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#ifdef CHANNEL_U</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  vstore8(data.s02468ACE, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#elif defined(CHANNEL_V)</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  vstore8(data.s13579BDF, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_U or CHANNEL_V */</span><span class="preprocessor"></span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
260 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
261 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
262 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
263 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
264 </div><!-- fragment -->
267 <a class="anchor" id="a628f0c1a3a80b8dc275ad0ca877e3833"></a>
268 <div class="memitem">
269 <div class="memproto">
270 <table class="memname">
272 <td class="memname">__kernel void channel_extract_NV21 </td>
274 <td class="paramtype">__global uchar * </td>
275 <td class="paramname"><em>src_ptr</em>, </td>
278 <td class="paramkey"></td>
280 <td class="paramtype">uint </td>
281 <td class="paramname"><em>src_stride_x</em>, </td>
284 <td class="paramkey"></td>
286 <td class="paramtype">uint </td>
287 <td class="paramname"><em>src_step_x</em>, </td>
290 <td class="paramkey"></td>
292 <td class="paramtype">uint </td>
293 <td class="paramname"><em>src_stride_y</em>, </td>
296 <td class="paramkey"></td>
298 <td class="paramtype">uint </td>
299 <td class="paramname"><em>src_step_y</em>, </td>
302 <td class="paramkey"></td>
304 <td class="paramtype">uint </td>
305 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
308 <td class="paramkey"></td>
310 <td class="paramtype">__global uchar * </td>
311 <td class="paramname"><em>dst_ptr</em>, </td>
314 <td class="paramkey"></td>
316 <td class="paramtype">uint </td>
317 <td class="paramname"><em>dst_stride_x</em>, </td>
320 <td class="paramkey"></td>
322 <td class="paramtype">uint </td>
323 <td class="paramname"><em>dst_step_x</em>, </td>
326 <td class="paramkey"></td>
328 <td class="paramtype">uint </td>
329 <td class="paramname"><em>dst_stride_y</em>, </td>
332 <td class="paramkey"></td>
334 <td class="paramtype">uint </td>
335 <td class="paramname"><em>dst_step_y</em>, </td>
338 <td class="paramkey"></td>
340 <td class="paramtype">uint </td>
341 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
349 </div><div class="memdoc">
351 <p>This function extracts a given channel from an NV21 image. </p>
352 <dl class="section note"><dt>Note</dt><dd>Channel to be extracted should be passed as a pre-processor argument, e.g. -DCHANNEL_U will extract the U channel. </dd></dl>
353 <dl class="section warning"><dt>Warning</dt><dd>Only channels UV can be extracted using this kernel.</dd></dl>
354 <dl class="params"><dt>Parameters</dt><dd>
355 <table class="params">
356 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: NV21 (UV88) </td></tr>
357 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
358 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
359 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
360 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
361 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
362 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
363 <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>
364 <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>
365 <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>
366 <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>
367 <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>
372 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00230">230</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
374 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
375 <div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  uchar16 data = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor">#ifdef CHANNEL_U</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  vstore8(data.s13579BDF, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor">#elif defined(CHANNEL_V)</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  vstore8(data.s02468ACE, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_U or CHANNEL_V */</span><span class="preprocessor"></span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
376 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
377 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
378 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
379 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
380 </div><!-- fragment -->
383 <a class="anchor" id="aeecb8084159259d10790df3e0a602cbf"></a>
384 <div class="memitem">
385 <div class="memproto">
386 <table class="memname">
388 <td class="memname">__kernel void channel_extract_RGB888 </td>
390 <td class="paramtype">__global uchar * </td>
391 <td class="paramname"><em>src_ptr</em>, </td>
394 <td class="paramkey"></td>
396 <td class="paramtype">uint </td>
397 <td class="paramname"><em>src_stride_x</em>, </td>
400 <td class="paramkey"></td>
402 <td class="paramtype">uint </td>
403 <td class="paramname"><em>src_step_x</em>, </td>
406 <td class="paramkey"></td>
408 <td class="paramtype">uint </td>
409 <td class="paramname"><em>src_stride_y</em>, </td>
412 <td class="paramkey"></td>
414 <td class="paramtype">uint </td>
415 <td class="paramname"><em>src_step_y</em>, </td>
418 <td class="paramkey"></td>
420 <td class="paramtype">uint </td>
421 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
424 <td class="paramkey"></td>
426 <td class="paramtype">__global uchar * </td>
427 <td class="paramname"><em>dst_ptr</em>, </td>
430 <td class="paramkey"></td>
432 <td class="paramtype">uint </td>
433 <td class="paramname"><em>dst_stride_x</em>, </td>
436 <td class="paramkey"></td>
438 <td class="paramtype">uint </td>
439 <td class="paramname"><em>dst_step_x</em>, </td>
442 <td class="paramkey"></td>
444 <td class="paramtype">uint </td>
445 <td class="paramname"><em>dst_stride_y</em>, </td>
448 <td class="paramkey"></td>
450 <td class="paramtype">uint </td>
451 <td class="paramname"><em>dst_step_y</em>, </td>
454 <td class="paramkey"></td>
456 <td class="paramtype">uint </td>
457 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
465 </div><div class="memdoc">
467 <p>This function extracts a given channel from an RGB image. </p>
468 <dl class="section note"><dt>Note</dt><dd>Channel to be extracted should be passed as a pre-processor argument, e.g. -DCHANNEL_B will extract the B channel.</dd></dl>
469 <dl class="params"><dt>Parameters</dt><dd>
470 <table class="params">
471 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: RGB </td></tr>
472 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
473 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
474 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
475 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
476 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
477 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
478 <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>
479 <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>
480 <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>
481 <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>
482 <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>
487 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00043">43</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
489 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
490 <div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  uchar16 data = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  uchar8 data2 = vload8(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#ifdef CHANNEL_R</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  vstore4(data.s0369, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  vstore4((uchar4)(data.sCF, data2.s25), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 4);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#elif defined(CHANNEL_G)</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  vstore4(data.s147A, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  vstore4((uchar4)(data.sD, data2.s036), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 4);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#elif defined(CHANNEL_B)</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  vstore4(data.s258B, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  vstore4((uchar4)(data.sE, data2.s147), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 4);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_R or CHANNEL_G or CHANNEL_B */</span><span class="preprocessor"></span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
491 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
492 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
493 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
494 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
495 </div><!-- fragment -->
498 <a class="anchor" id="ae133ea6ea26771fc36a31d0a3d783077"></a>
499 <div class="memitem">
500 <div class="memproto">
501 <table class="memname">
503 <td class="memname">__kernel void channel_extract_RGBA8888 </td>
505 <td class="paramtype">__global uchar * </td>
506 <td class="paramname"><em>src_ptr</em>, </td>
509 <td class="paramkey"></td>
511 <td class="paramtype">uint </td>
512 <td class="paramname"><em>src_stride_x</em>, </td>
515 <td class="paramkey"></td>
517 <td class="paramtype">uint </td>
518 <td class="paramname"><em>src_step_x</em>, </td>
521 <td class="paramkey"></td>
523 <td class="paramtype">uint </td>
524 <td class="paramname"><em>src_stride_y</em>, </td>
527 <td class="paramkey"></td>
529 <td class="paramtype">uint </td>
530 <td class="paramname"><em>src_step_y</em>, </td>
533 <td class="paramkey"></td>
535 <td class="paramtype">uint </td>
536 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
539 <td class="paramkey"></td>
541 <td class="paramtype">__global uchar * </td>
542 <td class="paramname"><em>dst_ptr</em>, </td>
545 <td class="paramkey"></td>
547 <td class="paramtype">uint </td>
548 <td class="paramname"><em>dst_stride_x</em>, </td>
551 <td class="paramkey"></td>
553 <td class="paramtype">uint </td>
554 <td class="paramname"><em>dst_step_x</em>, </td>
557 <td class="paramkey"></td>
559 <td class="paramtype">uint </td>
560 <td class="paramname"><em>dst_stride_y</em>, </td>
563 <td class="paramkey"></td>
565 <td class="paramtype">uint </td>
566 <td class="paramname"><em>dst_step_y</em>, </td>
569 <td class="paramkey"></td>
571 <td class="paramtype">uint </td>
572 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
580 </div><div class="memdoc">
582 <p>This function extracts a given channel from an RGBA image. </p>
583 <dl class="section note"><dt>Note</dt><dd>Channel to be extracted should be passed as a pre-processor argument, e.g. -DCHANNEL_B will extract the B channel.</dd></dl>
584 <dl class="params"><dt>Parameters</dt><dd>
585 <table class="params">
586 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: RGBA </td></tr>
587 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
588 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
589 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
590 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
591 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
592 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
593 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
594 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
595 <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
596 <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
597 <tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
602 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00083">83</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
604 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
605 <div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  uchar16 data = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  uchar16 data2 = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#ifdef CHANNEL_R</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  vstore8((uchar8)(data.s048C, data2.s048C), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#elif defined(CHANNEL_G)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  vstore8((uchar8)(data.s159D, data2.s159D), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#elif defined(CHANNEL_B)</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  vstore8((uchar8)(data.s26AE, data2.s26AE), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#elif defined(CHANNEL_A)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  vstore8((uchar8)(data.s37BF, data2.s37BF), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_R or CHANNEL_G or CHANNEL_B or CHANNEL_A */</span><span class="preprocessor"></span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
606 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
607 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
608 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
609 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
610 </div><!-- fragment -->
613 <a class="anchor" id="a3d22dccc2444106a5325b842c096486c"></a>
614 <div class="memitem">
615 <div class="memproto">
616 <table class="memname">
618 <td class="memname">__kernel void channel_extract_UYVY422 </td>
620 <td class="paramtype">__global uchar * </td>
621 <td class="paramname"><em>src_ptr</em>, </td>
624 <td class="paramkey"></td>
626 <td class="paramtype">uint </td>
627 <td class="paramname"><em>src_stride_x</em>, </td>
630 <td class="paramkey"></td>
632 <td class="paramtype">uint </td>
633 <td class="paramname"><em>src_step_x</em>, </td>
636 <td class="paramkey"></td>
638 <td class="paramtype">uint </td>
639 <td class="paramname"><em>src_stride_y</em>, </td>
642 <td class="paramkey"></td>
644 <td class="paramtype">uint </td>
645 <td class="paramname"><em>src_step_y</em>, </td>
648 <td class="paramkey"></td>
650 <td class="paramtype">uint </td>
651 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
654 <td class="paramkey"></td>
656 <td class="paramtype">__global uchar * </td>
657 <td class="paramname"><em>dst_ptr</em>, </td>
660 <td class="paramkey"></td>
662 <td class="paramtype">uint </td>
663 <td class="paramname"><em>dst_stride_x</em>, </td>
666 <td class="paramkey"></td>
668 <td class="paramtype">uint </td>
669 <td class="paramname"><em>dst_step_x</em>, </td>
672 <td class="paramkey"></td>
674 <td class="paramtype">uint </td>
675 <td class="paramname"><em>dst_stride_y</em>, </td>
678 <td class="paramkey"></td>
680 <td class="paramtype">uint </td>
681 <td class="paramname"><em>dst_step_y</em>, </td>
684 <td class="paramkey"></td>
686 <td class="paramtype">uint </td>
687 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
695 </div><div class="memdoc">
697 <p>This function extracts a given channel from an UYUV image. </p>
698 <dl class="section note"><dt>Note</dt><dd>Channel to be extracted should be passed as a pre-processor argument, e.g. -DCHANNEL_U will extract the U channel.</dd></dl>
699 <dl class="params"><dt>Parameters</dt><dd>
700 <table class="params">
701 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: UYUV </td></tr>
702 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
703 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
704 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
705 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
706 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
707 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
708 <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>
709 <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>
710 <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>
711 <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>
712 <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>
717 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00158">158</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
719 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
720 <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  uchar16 data = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor">#ifdef CHANNEL_Y</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  vstore8(data.s13579BDF, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#elif defined(CHANNEL_U)</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  vstore4(data.s048C, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#elif defined(CHANNEL_V)</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  vstore4(data.s26AE, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_Y or CHANNEL_U or CHANNEL_V */</span><span class="preprocessor"></span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
721 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
722 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
723 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
724 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
725 </div><!-- fragment -->
728 <a class="anchor" id="a6f8110fd6923dfc2db9daf1f3ed92435"></a>
729 <div class="memitem">
730 <div class="memproto">
731 <table class="memname">
733 <td class="memname">__kernel void channel_extract_YUYV422 </td>
735 <td class="paramtype">__global uchar * </td>
736 <td class="paramname"><em>src_ptr</em>, </td>
739 <td class="paramkey"></td>
741 <td class="paramtype">uint </td>
742 <td class="paramname"><em>src_stride_x</em>, </td>
745 <td class="paramkey"></td>
747 <td class="paramtype">uint </td>
748 <td class="paramname"><em>src_step_x</em>, </td>
751 <td class="paramkey"></td>
753 <td class="paramtype">uint </td>
754 <td class="paramname"><em>src_stride_y</em>, </td>
757 <td class="paramkey"></td>
759 <td class="paramtype">uint </td>
760 <td class="paramname"><em>src_step_y</em>, </td>
763 <td class="paramkey"></td>
765 <td class="paramtype">uint </td>
766 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
769 <td class="paramkey"></td>
771 <td class="paramtype">__global uchar * </td>
772 <td class="paramname"><em>dst_ptr</em>, </td>
775 <td class="paramkey"></td>
777 <td class="paramtype">uint </td>
778 <td class="paramname"><em>dst_stride_x</em>, </td>
781 <td class="paramkey"></td>
783 <td class="paramtype">uint </td>
784 <td class="paramname"><em>dst_step_x</em>, </td>
787 <td class="paramkey"></td>
789 <td class="paramtype">uint </td>
790 <td class="paramname"><em>dst_stride_y</em>, </td>
793 <td class="paramkey"></td>
795 <td class="paramtype">uint </td>
796 <td class="paramname"><em>dst_step_y</em>, </td>
799 <td class="paramkey"></td>
801 <td class="paramtype">uint </td>
802 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
810 </div><div class="memdoc">
812 <p>This function extracts a given channel from an YUYV image. </p>
813 <dl class="section note"><dt>Note</dt><dd>Channel to be extracted should be passed as a pre-processor argument, e.g. -DCHANNEL_U will extract the U channel.</dd></dl>
814 <dl class="params"><dt>Parameters</dt><dd>
815 <table class="params">
816 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: YUYV </td></tr>
817 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
818 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
819 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
820 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
821 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
822 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
823 <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>
824 <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>
825 <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>
826 <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>
827 <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>
832 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00122">122</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
834 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
835 <div class="fragment"><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  uchar16 data = vload16(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#ifdef CHANNEL_Y</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  vstore8(data.s02468ACE, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#elif defined(CHANNEL_U)</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  vstore4(data.s159D, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#elif defined(CHANNEL_V)</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  vstore4(data.s37BF, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#endif </span><span class="comment">/* CHANNEL_Y or CHANNEL_U or CHANNEL_V */</span><span class="preprocessor"></span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
836 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
837 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
838 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
839 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
840 </div><!-- fragment -->
843 <a class="anchor" id="a8b54e12b0c19a206a73ade8e8bed82f3"></a>
844 <div class="memitem">
845 <div class="memproto">
846 <table class="memname">
848 <td class="memname">__kernel void copy_plane </td>
850 <td class="paramtype">__global uchar * </td>
851 <td class="paramname"><em>src_ptr</em>, </td>
854 <td class="paramkey"></td>
856 <td class="paramtype">uint </td>
857 <td class="paramname"><em>src_stride_x</em>, </td>
860 <td class="paramkey"></td>
862 <td class="paramtype">uint </td>
863 <td class="paramname"><em>src_step_x</em>, </td>
866 <td class="paramkey"></td>
868 <td class="paramtype">uint </td>
869 <td class="paramname"><em>src_stride_y</em>, </td>
872 <td class="paramkey"></td>
874 <td class="paramtype">uint </td>
875 <td class="paramname"><em>src_step_y</em>, </td>
878 <td class="paramkey"></td>
880 <td class="paramtype">uint </td>
881 <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
884 <td class="paramkey"></td>
886 <td class="paramtype">__global uchar * </td>
887 <td class="paramname"><em>dst_ptr</em>, </td>
890 <td class="paramkey"></td>
892 <td class="paramtype">uint </td>
893 <td class="paramname"><em>dst_stride_x</em>, </td>
896 <td class="paramkey"></td>
898 <td class="paramtype">uint </td>
899 <td class="paramname"><em>dst_step_x</em>, </td>
902 <td class="paramkey"></td>
904 <td class="paramtype">uint </td>
905 <td class="paramname"><em>dst_stride_y</em>, </td>
908 <td class="paramkey"></td>
910 <td class="paramtype">uint </td>
911 <td class="paramname"><em>dst_step_y</em>, </td>
914 <td class="paramkey"></td>
916 <td class="paramtype">uint </td>
917 <td class="paramname"><em>dst_offset_first_element_in_bytes</em> </td>
925 </div><div class="memdoc">
927 <p>This function extracts a given plane from an multi-planar image. </p>
928 <dl class="params"><dt>Parameters</dt><dd>
929 <table class="params">
930 <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source image. Supported Format: U8 </td></tr>
931 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source image in X dimension (in bytes) </td></tr>
932 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
933 <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source image in Y dimension (in bytes) </td></tr>
934 <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
935 <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source image </td></tr>
936 <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: U8 </td></tr>
937 <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>
938 <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>
939 <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>
940 <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>
941 <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>
946 <p>Definition at line <a class="el" href="channel__extract_8cl_source.xhtml#l00262">262</a> of file <a class="el" href="channel__extract_8cl_source.xhtml">channel_extract.cl</a>.</p>
948 <p>References <a class="el" href="helpers_8h_source.xhtml#l00104">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00137">arm_compute::test::validation::dst</a>, <a class="el" href="helpers_8h_source.xhtml#l00144">Image::ptr</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00147">arm_compute::test::validation::src</a>.</p>
949 <div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="struct_image.xhtml">Image</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">src</a> = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <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="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// Copy plane data</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  vstore8(vload8(0, src.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00104">helpers.h:104</a></div></div>
950 <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_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
951 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00142">helpers.h:142</a></div></div>
952 <div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
953 <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6743f0a130e8311e6f5b1a23df102472"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6743f0a130e8311e6f5b1a23df102472">arm_compute::test::validation::src</a></div><div class="ttdeci">convolution configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00147">Convolution.cpp:147</a></div></div>
954 </div><!-- fragment -->
957 </div><!-- contents -->
958 </div><!-- doc-content -->
959 <!-- start footer part -->
960 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
962 <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__extract_8cl.xhtml">channel_extract.cl</a></li>
963 <li class="footer">Generated on Wed May 23 2018 11:36:38 for Compute Library by
964 <a href="http://www.doxygen.org/index.html">
965 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>