arm_compute v17.06
[platform/upstream/armcl.git] / documentation / classarm__compute_1_1_n_e_laplacian_pyramid.xhtml
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">
4 <head>
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: NELaplacianPyramid Class 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);
20 </script>
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(); });
26 </script>
27 <script type="text/x-mathjax-config">
28   MathJax.Hub.Config({
29     extensions: ["tex2jax.js"],
30     jax: ["input/TeX","output/HTML-CSS"],
31 });
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" />
34 </head>
35 <body>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37 <div id="titlearea">
38 <table cellspacing="0" cellpadding="0">
39  <tbody>
40  <tr style="height: 56px;">
41   <td style="padding-left: 0.5em;">
42    <div id="projectname">Compute Library
43    &#160;<span id="projectnumber">v17.06</span>
44    </div>
45   </td>
46  </tr>
47  </tbody>
48 </table>
49 </div>
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');
54 </script>
55   <div id="navrow1" class="tabs">
56     <ul class="tablist">
57       <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
58       <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
59       <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
60       <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
61       <li><a href="files.xhtml"><span>Files</span></a></li>
62       <li>
63         <div id="MSearchBox" class="MSearchBoxInactive">
64         <span class="left">
65           <img id="MSearchSelect" src="search/mag_sel.png"
66                onmouseover="return searchBox.OnSearchSelectShow()"
67                onmouseout="return searchBox.OnSearchSelectHide()"
68                alt=""/>
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>
75           </span>
76         </div>
77       </li>
78     </ul>
79   </div>
80   <div id="navrow2" class="tabs2">
81     <ul class="tablist">
82       <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
83       <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
84       <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
85       <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
86     </ul>
87   </div>
88 </div><!-- top -->
89 <div id="side-nav" class="ui-resizable side-nav-resizable">
90   <div id="nav-tree">
91     <div id="nav-tree-contents">
92       <div id="nav-sync" class="sync"></div>
93     </div>
94   </div>
95   <div id="splitbar" style="-moz-user-select:none;" 
96        class="ui-resizable-handle">
97   </div>
98 </div>
99 <script type="text/javascript">
100 $(document).ready(function(){initNavTree('classarm__compute_1_1_n_e_laplacian_pyramid.xhtml','');});
101 </script>
102 <div id="doc-content">
103 <!-- window showing the filter options -->
104 <div id="MSearchSelectWindow"
105      onmouseover="return searchBox.OnSearchSelectShow()"
106      onmouseout="return searchBox.OnSearchSelectHide()"
107      onkeydown="return searchBox.OnSearchSelectKey(event)">
108 </div>
109
110 <!-- iframe showing the search results (closed by default) -->
111 <div id="MSearchResultsWindow">
112 <iframe src="javascript:void(0)" frameborder="0" 
113         name="MSearchResults" id="MSearchResults">
114 </iframe>
115 </div>
116
117 <div class="header">
118   <div class="summary">
119 <a href="#pub-methods">Public Member Functions</a>  </div>
120   <div class="headertitle">
121 <div class="title">NELaplacianPyramid Class Reference</div>  </div>
122 </div><!--header-->
123 <div class="contents">
124
125 <p>Basic function to execute laplacian pyramid.  
126  <a href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml#details">More...</a></p>
127
128 <p><code>#include &lt;<a class="el" href="_n_e_laplacian_pyramid_8h_source.xhtml">NELaplacianPyramid.h</a>&gt;</code></p>
129 <div class="dynheader">
130 Collaboration diagram for NELaplacianPyramid:</div>
131 <div class="dyncontent">
132 <div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_n_e_laplacian_pyramid__coll__graph.svg" width="155" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
133 </div>
134 <center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
135 <table class="memberdecls">
136 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
137 Public Member Functions</h2></td></tr>
138 <tr class="memitem:a4b03c61f02f3e0119fa71877abb9b4b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml#a4b03c61f02f3e0119fa71877abb9b4b8">NELaplacianPyramid</a> ()</td></tr>
139 <tr class="memdesc:a4b03c61f02f3e0119fa71877abb9b4b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a4b03c61f02f3e0119fa71877abb9b4b8">More...</a><br /></td></tr>
140 <tr class="separator:a4b03c61f02f3e0119fa71877abb9b4b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:a57e777ebd638595cbcaff4c45dbaa351"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml#a57e777ebd638595cbcaff4c45dbaa351">configure</a> (const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *input, <a class="el" href="classarm__compute_1_1_i_pyramid.xhtml">IPyramid</a> *pyramid, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *output, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr>
142 <tr class="memdesc:a57e777ebd638595cbcaff4c45dbaa351"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise the function's source, destinations and border mode.  <a href="#a57e777ebd638595cbcaff4c45dbaa351">More...</a><br /></td></tr>
143 <tr class="separator:a57e777ebd638595cbcaff4c45dbaa351"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:ad1717410afd0be936c6213a63c8005fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml#ad1717410afd0be936c6213a63c8005fb">run</a> () override</td></tr>
145 <tr class="memdesc:ad1717410afd0be936c6213a63c8005fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run the kernels contained in the function.  <a href="#ad1717410afd0be936c6213a63c8005fb">More...</a><br /></td></tr>
146 <tr class="separator:ad1717410afd0be936c6213a63c8005fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="inherit_header pub_methods_classarm__compute_1_1_i_function"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_function')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_function.xhtml">IFunction</a></td></tr>
148 <tr class="memitem:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_function.xhtml#ab921ecc3f3f6ae2b4bd61f3e1998d8c4">~IFunction</a> ()=default</td></tr>
149 <tr class="memdesc:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ab921ecc3f3f6ae2b4bd61f3e1998d8c4">More...</a><br /></td></tr>
150 <tr class="separator:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memSeparator" colspan="2">&#160;</td></tr>
151 </table>
152 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
153 <div class="textblock"><p>Basic function to execute laplacian pyramid. </p>
154 <p>This function calls the following NEON kernels and functions:</p>
155 <ol type="1">
156 <li><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid_half.xhtml">NEGaussianPyramidHalf</a></li>
157 <li><a class="el" href="classarm__compute_1_1_n_e_gaussian5x5.xhtml">NEGaussian5x5</a></li>
158 <li><p class="startli"><a class="el" href="classarm__compute_1_1_n_e_arithmetic_subtraction.xhtml">NEArithmeticSubtraction</a></p>
159 <p class="startli">First a Gaussian pyramid is created. Then, for each level i, the corresponding tensor I(i) is blurred with the Gaussian 5x5 filter, and then difference between the two tensors is the corresponding level L(i) of the Laplacian pyramid. L(i) = I(i) - Gaussian5x5(I(i)) Level 0 has always the same first two dimensions as the input tensor. </p>
160 </li>
161 </ol>
162
163 <p>Definition at line <a class="el" href="_n_e_laplacian_pyramid_8h_source.xhtml#l00054">54</a> of file <a class="el" href="_n_e_laplacian_pyramid_8h_source.xhtml">NELaplacianPyramid.h</a>.</p>
164 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
165 <a class="anchor" id="a4b03c61f02f3e0119fa71877abb9b4b8"></a>
166 <div class="memitem">
167 <div class="memproto">
168       <table class="memname">
169         <tr>
170           <td class="memname"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml">NELaplacianPyramid</a> </td>
171           <td>(</td>
172           <td class="paramname"></td><td>)</td>
173           <td></td>
174         </tr>
175       </table>
176 </div><div class="memdoc">
177
178 <p>Constructor. </p>
179
180 </div>
181 </div>
182 <h2 class="groupheader">Member Function Documentation</h2>
183 <a class="anchor" id="a57e777ebd638595cbcaff4c45dbaa351"></a>
184 <div class="memitem">
185 <div class="memproto">
186       <table class="memname">
187         <tr>
188           <td class="memname">void configure </td>
189           <td>(</td>
190           <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
191           <td class="paramname"><em>input</em>, </td>
192         </tr>
193         <tr>
194           <td class="paramkey"></td>
195           <td></td>
196           <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_pyramid.xhtml">IPyramid</a> *&#160;</td>
197           <td class="paramname"><em>pyramid</em>, </td>
198         </tr>
199         <tr>
200           <td class="paramkey"></td>
201           <td></td>
202           <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
203           <td class="paramname"><em>output</em>, </td>
204         </tr>
205         <tr>
206           <td class="paramkey"></td>
207           <td></td>
208           <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a>&#160;</td>
209           <td class="paramname"><em>border_mode</em>, </td>
210         </tr>
211         <tr>
212           <td class="paramkey"></td>
213           <td></td>
214           <td class="paramtype">uint8_t&#160;</td>
215           <td class="paramname"><em>constant_border_value</em>&#160;</td>
216         </tr>
217         <tr>
218           <td></td>
219           <td>)</td>
220           <td></td><td></td>
221         </tr>
222       </table>
223 </div><div class="memdoc">
224
225 <p>Initialise the function's source, destinations and border mode. </p>
226 <dl class="params"><dt>Parameters</dt><dd>
227   <table class="params">
228     <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Source tensor. Data type supported: U8. </td></tr>
229     <tr><td class="paramdir">[out]</td><td class="paramname">pyramid</td><td>Destination pyramid tensors, Data type supported at each level: S16. </td></tr>
230     <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>The lowest resolution tensor necessary to reconstruct the input tensor from the pyramid. Data type supported: S16. The first two dimensions of this tensor must match the first two dimensions of the tensor in the last level of the pyramid, that is: out.width = in.width() / pow(2,pyramid_levels-1) and out.height = in.height() / pow(2,pyramid_levels-1) </td></tr>
231     <tr><td class="paramdir">[in]</td><td class="paramname">border_mode</td><td>Border mode to use. </td></tr>
232     <tr><td class="paramdir">[in]</td><td class="paramname">constant_border_value</td><td>(Optional) Constant value to use for borders if border_mode is set to CONSTANT. </td></tr>
233   </table>
234   </dd>
235 </dl>
236
237 </div>
238 </div>
239 <a class="anchor" id="ad1717410afd0be936c6213a63c8005fb"></a>
240 <div class="memitem">
241 <div class="memproto">
242 <table class="mlabels">
243   <tr>
244   <td class="mlabels-left">
245       <table class="memname">
246         <tr>
247           <td class="memname">void run </td>
248           <td>(</td>
249           <td class="paramname"></td><td>)</td>
250           <td></td>
251         </tr>
252       </table>
253   </td>
254   <td class="mlabels-right">
255 <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
256   </tr>
257 </table>
258 </div><div class="memdoc">
259
260 <p>Run the kernels contained in the function. </p>
261 <p>For NEON kernels:</p><ul>
262 <li>Multi-threading is used for the kernels which are parallelisable.</li>
263 <li>By default std::thread::hardware_concurrency() threads are used.</li>
264 </ul>
265 <dl class="section note"><dt>Note</dt><dd><a class="el" href="classarm__compute_1_1_c_p_p_scheduler.xhtml#ae64eebaa07f4d2da6cc2ba538c3cb095">CPPScheduler::set_num_threads()</a> can be used to manually set the number of threads</dd></dl>
266 <p>For OpenCL kernels:</p><ul>
267 <li>All the kernels are enqueued on the queue associated with <a class="el" href="classarm__compute_1_1_c_l_scheduler.xhtml" title="Provides global access to a CL context and command queue. ">CLScheduler</a>.</li>
268 <li>The queue is then flushed.</li>
269 </ul>
270 <dl class="section note"><dt>Note</dt><dd>The function will not block until the kernels are executed. It is the user's responsibility to wait. </dd></dl>
271
272 <p>Implements <a class="el" href="classarm__compute_1_1_i_function.xhtml#a18954417d3124a8095783ea13dc6d00b">IFunction</a>.</p>
273
274 </div>
275 </div>
276 <hr/>The documentation for this class was generated from the following file:<ul>
277 <li>arm_compute/runtime/NEON/functions/<a class="el" href="_n_e_laplacian_pyramid_8h_source.xhtml">NELaplacianPyramid.h</a></li>
278 </ul>
279 </div><!-- contents -->
280 </div><!-- doc-content -->
281 <!-- start footer part -->
282 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
283   <ul>
284     <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml">NELaplacianPyramid</a></li>
285     <li class="footer">Generated on Fri Jun 23 2017 15:44:35 for Compute Library by
286     <a href="http://www.doxygen.org/index.html">
287     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
288   </ul>
289 </div>
290 </body>
291 </html>