arm_compute v17.04
[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>ARM 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">ARM Compute Library
43    &#160;<span id="projectnumber">17.04</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="namespaces.xhtml"><span>Namespaces</span></a></li>
59       <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
60       <li><a href="files.xhtml"><span>Files</span></a></li>
61       <li>
62         <div id="MSearchBox" class="MSearchBoxInactive">
63         <span class="left">
64           <img id="MSearchSelect" src="search/mag_sel.png"
65                onmouseover="return searchBox.OnSearchSelectShow()"
66                onmouseout="return searchBox.OnSearchSelectHide()"
67                alt=""/>
68           <input type="text" id="MSearchField" value="Search" accesskey="S"
69                onfocus="searchBox.OnSearchFieldFocus(true)" 
70                onblur="searchBox.OnSearchFieldFocus(false)" 
71                onkeyup="searchBox.OnSearchFieldChange(event)"/>
72           </span><span class="right">
73             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
74           </span>
75         </div>
76       </li>
77     </ul>
78   </div>
79   <div id="navrow2" class="tabs2">
80     <ul class="tablist">
81       <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
82       <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
83       <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
84       <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
85     </ul>
86   </div>
87 </div><!-- top -->
88 <div id="side-nav" class="ui-resizable side-nav-resizable">
89   <div id="nav-tree">
90     <div id="nav-tree-contents">
91       <div id="nav-sync" class="sync"></div>
92     </div>
93   </div>
94   <div id="splitbar" style="-moz-user-select:none;" 
95        class="ui-resizable-handle">
96   </div>
97 </div>
98 <script type="text/javascript">
99 $(document).ready(function(){initNavTree('classarm__compute_1_1_n_e_laplacian_pyramid.xhtml','');});
100 </script>
101 <div id="doc-content">
102 <!-- window showing the filter options -->
103 <div id="MSearchSelectWindow"
104      onmouseover="return searchBox.OnSearchSelectShow()"
105      onmouseout="return searchBox.OnSearchSelectHide()"
106      onkeydown="return searchBox.OnSearchSelectKey(event)">
107 </div>
108
109 <!-- iframe showing the search results (closed by default) -->
110 <div id="MSearchResultsWindow">
111 <iframe src="javascript:void(0)" frameborder="0" 
112         name="MSearchResults" id="MSearchResults">
113 </iframe>
114 </div>
115
116 <div class="header">
117   <div class="summary">
118 <a href="#pub-methods">Public Member Functions</a>  </div>
119   <div class="headertitle">
120 <div class="title">NELaplacianPyramid Class Reference</div>  </div>
121 </div><!--header-->
122 <div class="contents">
123
124 <p>Basic function to execute laplacian pyramid.  
125  <a href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml#details">More...</a></p>
126
127 <p><code>#include &lt;<a class="el" href="_n_e_laplacian_pyramid_8h_source.xhtml">NELaplacianPyramid.h</a>&gt;</code></p>
128 <div class="dynheader">
129 Collaboration diagram for NELaplacianPyramid:</div>
130 <div class="dyncontent">
131 <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>
132 </div>
133 <center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
134 <table class="memberdecls">
135 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
136 Public Member Functions</h2></td></tr>
137 <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>
138 <tr class="memdesc:a4b03c61f02f3e0119fa71877abb9b4b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a4b03c61f02f3e0119fa71877abb9b4b8">More...</a><br /></td></tr>
139 <tr class="separator:a4b03c61f02f3e0119fa71877abb9b4b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
140 <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>
141 <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>
142 <tr class="separator:a57e777ebd638595cbcaff4c45dbaa351"><td class="memSeparator" colspan="2">&#160;</td></tr>
143 <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>
144 <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>
145 <tr class="separator:ad1717410afd0be936c6213a63c8005fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
146 <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>
147 <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>
148 <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>
149 <tr class="separator:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 </table>
151 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
152 <div class="textblock"><p>Basic function to execute laplacian pyramid. </p>
153 <p>This function calls the following NEON kernels and functions:</p>
154 <ol type="1">
155 <li><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid_half.xhtml">NEGaussianPyramidHalf</a></li>
156 <li><a class="el" href="classarm__compute_1_1_n_e_gaussian5x5.xhtml">NEGaussian5x5</a></li>
157 <li><p class="startli"><a class="el" href="classarm__compute_1_1_n_e_arithmetic_subtraction.xhtml">NEArithmeticSubtraction</a></p>
158 <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>
159 </li>
160 </ol>
161
162 <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>
163 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
164 <a class="anchor" id="a4b03c61f02f3e0119fa71877abb9b4b8"></a>
165 <div class="memitem">
166 <div class="memproto">
167       <table class="memname">
168         <tr>
169           <td class="memname"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml">NELaplacianPyramid</a> </td>
170           <td>(</td>
171           <td class="paramname"></td><td>)</td>
172           <td></td>
173         </tr>
174       </table>
175 </div><div class="memdoc">
176
177 <p>Constructor. </p>
178
179 </div>
180 </div>
181 <h2 class="groupheader">Member Function Documentation</h2>
182 <a class="anchor" id="a57e777ebd638595cbcaff4c45dbaa351"></a>
183 <div class="memitem">
184 <div class="memproto">
185       <table class="memname">
186         <tr>
187           <td class="memname">void configure </td>
188           <td>(</td>
189           <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
190           <td class="paramname"><em>input</em>, </td>
191         </tr>
192         <tr>
193           <td class="paramkey"></td>
194           <td></td>
195           <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_pyramid.xhtml">IPyramid</a> *&#160;</td>
196           <td class="paramname"><em>pyramid</em>, </td>
197         </tr>
198         <tr>
199           <td class="paramkey"></td>
200           <td></td>
201           <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
202           <td class="paramname"><em>output</em>, </td>
203         </tr>
204         <tr>
205           <td class="paramkey"></td>
206           <td></td>
207           <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a>&#160;</td>
208           <td class="paramname"><em>border_mode</em>, </td>
209         </tr>
210         <tr>
211           <td class="paramkey"></td>
212           <td></td>
213           <td class="paramtype">uint8_t&#160;</td>
214           <td class="paramname"><em>constant_border_value</em>&#160;</td>
215         </tr>
216         <tr>
217           <td></td>
218           <td>)</td>
219           <td></td><td></td>
220         </tr>
221       </table>
222 </div><div class="memdoc">
223
224 <p>Initialise the function's source, destinations and border mode. </p>
225 <dl class="params"><dt>Parameters</dt><dd>
226   <table class="params">
227     <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Source tensor. Data type supported: U8. </td></tr>
228     <tr><td class="paramdir">[out]</td><td class="paramname">pyramid</td><td>Destination pyramid tensors, Data type supported at each level: S16. </td></tr>
229     <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>
230     <tr><td class="paramdir">[in]</td><td class="paramname">border_mode</td><td>Border mode to use. </td></tr>
231     <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>
232   </table>
233   </dd>
234 </dl>
235
236 </div>
237 </div>
238 <a class="anchor" id="ad1717410afd0be936c6213a63c8005fb"></a>
239 <div class="memitem">
240 <div class="memproto">
241 <table class="mlabels">
242   <tr>
243   <td class="mlabels-left">
244       <table class="memname">
245         <tr>
246           <td class="memname">void run </td>
247           <td>(</td>
248           <td class="paramname"></td><td>)</td>
249           <td></td>
250         </tr>
251       </table>
252   </td>
253   <td class="mlabels-right">
254 <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
255   </tr>
256 </table>
257 </div><div class="memdoc">
258
259 <p>Run the kernels contained in the function. </p>
260 <p>For NEON kernels:</p><ul>
261 <li>Multi-threading is used for the kernels which are parallelisable.</li>
262 <li>By default std::thread::hardware_concurrency() threads are used.</li>
263 </ul>
264 <dl class="section note"><dt>Note</dt><dd><a class="el" href="classarm__compute_1_1_c_p_p_scheduler.xhtml#ae9dc1846ff1612778bbac85d46344aef">CPPScheduler::force_number_of_threads()</a> can be used to manually set the number of threads</dd></dl>
265 <p>For OpenCL kernels:</p><ul>
266 <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>
267 <li>The queue is then flushed.</li>
268 </ul>
269 <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>
270
271 <p>Implements <a class="el" href="classarm__compute_1_1_i_function.xhtml#a18954417d3124a8095783ea13dc6d00b">IFunction</a>.</p>
272
273 </div>
274 </div>
275 <hr/>The documentation for this class was generated from the following file:<ul>
276 <li>arm_compute/runtime/NEON/functions/<a class="el" href="_n_e_laplacian_pyramid_8h_source.xhtml">NELaplacianPyramid.h</a></li>
277 </ul>
278 </div><!-- contents -->
279 </div><!-- doc-content -->
280 <!-- start footer part -->
281 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
282   <ul>
283     <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>
284     <li class="footer">Generated on Wed Apr 12 2017 14:26:06 for ARM Compute Library by
285     <a href="http://www.doxygen.org/index.html">
286     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
287   </ul>
288 </div>
289 </body>
290 </html>