xref: /aosp_15_r20/external/speex/tmv/profile_tm.h (revision 28e138c64d234588b5cd2a8a403b584bd3036e4e)
1 /* Copyright (C) 2007 Hong Zhiqian */
2 /**
3    @file profile_tm.h
4    @author Hong Zhiqian
5    @brief Various compatibility routines for Speex (TriMedia version)
6 */
7 /*
8    Redistribution and use in source and binary forms, with or without
9    modification, are permitted provided that the following conditions
10    are met:
11 
12    - Redistributions of source code must retain the above copyright
13    notice, this list of conditions and the following disclaimer.
14 
15    - Redistributions in binary form must reproduce the above copyright
16    notice, this list of conditions and the following disclaimer in the
17    documentation and/or other materials provided with the distribution.
18 
19    - Neither the name of the Xiph.org Foundation nor the names of its
20    contributors may be used to endorse or promote products derived from
21    this software without specific prior written permission.
22 
23    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
27    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 */
35 /**
36 *	@remarks	This file provide some capabilities to measure clock cycles.
37 *				Use this if unable to compile with TriMedia profile options
38 */
39 
40 extern int __profile_begin;
41 extern int __profile_end;
42 
43 #if TM_PROFILE
44 #define	PROFILE_START()												\
45 		{															\
46 			__profile_begin = cycles();								\
47 		}															\
48 
49 #define PROFILE_STOP()												\
50 		{															\
51 			__profile_end = cycles();								\
52 			printf("%s\t%d\n", __FUNCTION__, end - begin);			\
53 		}															\
54 
55 #else
56 #define PROFILE_START()
57 #define PROFILE_STOP()
58 #endif
59 
60 #if TM_PROFILE_SPXAUTOCORR
61 #define	_SPX_AUTOCORR_START()	PROFILE_START()
62 #define _SPX_AUTOCORR_STOP()	PROFILE_STOP()
63 #else
64 #define _SPX_AUTOCORR_START()
65 #define	_SPX_AUTOCORR_STOP()
66 #endif
67 
68 #if TM_PROFILE_INNERPROD
69 #define	INNERPROD_START()	PROFILE_START()
70 #define INNERPROD_STOP()	PROFILE_STOP()
71 #else
72 #define INNERPROD_START()
73 #define	INNERPROD_STOP()
74 #endif
75 
76 #if TM_PROFILE_PITCHXCORR
77 #define	PITCHXCORR_START()	PROFILE_START()
78 #define PITCHXCORR_STOP()	PROFILE_STOP()
79 #else
80 #define PITCHXCORR_START()
81 #define	PITCHXCORR_STOP()
82 #endif
83 
84 #if TM_PROFILE_COMPUTEPITCHERROR
85 #define COMPUTEPITCHERROR_START()	PROFILE_START()
86 #define COMPUTEPITCHERROR_STOP()	PROFILE_STOP()
87 #else
88 #define COMPUTEPITCHERROR_START()
89 #define COMPUTEPITCHERROR_STOP()
90 #endif
91 
92 #if TM_PROFILE_PITCHGAINSEARCH3TAPVQ
93 #define PITCHGAINSEARCH3TAPVQ_START()	PROFILE_START()
94 #define PITCHGAINSEARCH3TAPVQ_STOP()	PROFILE_STOP()
95 #else
96 #define PITCHGAINSEARCH3TAPVQ_START()
97 #define PITCHGAINSEARCH3TAPVQ_STOP()
98 #endif
99 
100 #if TM_PROFILE_OPENLOOPNBESTPITCH
101 #define OPENLOOPNBESTPITCH_START()	PROFILE_START()
102 #define OPENLOOPNBESTPITCH_STOP()	PROFILE_STOP()
103 #else
104 #define OPENLOOPNBESTPITCH_START()
105 #define OPENLOOPNBESTPITCH_STOP()
106 #endif
107 
108 
109 #if TM_PROFILE_LSP_INTERPOLATE
110 #define	LSPINTERPOLATE_START()	PROFILE_START()
111 #define LSPINTERPOLATE_STOP()	PROFILE_STOP()
112 #else
113 #define LSPINTERPOLATE_START()
114 #define	LSPINTERPOLATE_STOP()
115 #endif
116 
117 #if TM_PROFILE_CHEBPOLYEVA
118 #define	CHEBPOLYEVA_START()	PROFILE_START()
119 #define CHEBPOLYEVA_STOP()	PROFILE_STOP()
120 #else
121 #define CHEBPOLYEVA_START()
122 #define	CHEBPOLYEVA_STOP()
123 #endif
124 
125 
126 #if TM_PROFILE_COMPUTEQUANTWEIGHTS
127 #define	COMPUTEQUANTWEIGHTS_START()	PROFILE_START()
128 #define COMPUTEQUANTWEIGHTS_STOP()	PROFILE_STOP()
129 #else
130 #define COMPUTEQUANTWEIGHTS_START()
131 #define	COMPUTEQUANTWEIGHTS_STOP()
132 #endif
133 
134 #if TM_PROFILE_LSPQUANT
135 #define	LSPQUANT_START()	PROFILE_START()
136 #define LSPQUANT_STOP()		PROFILE_STOP()
137 #else
138 #define LSPQUANT_START()
139 #define	LSPQUANT_STOP()
140 #endif
141 
142 #if TM_PROFILE_LSPWEIGHTQUANT
143 #define	LSPWEIGHTQUANT_START()		PROFILE_START()
144 #define LSPWEIGHTQUANT_STOP()		PROFILE_STOP()
145 #else
146 #define LSPWEIGHTQUANT_START()
147 #define	LSPWEIGHTQUANT_STOP()
148 #endif
149 
150 #if TM_PROFILE_FIRMEM16
151 #define	FIRMEM16_START()	PROFILE_START()
152 #define FIRMEM16_STOP()		PROFILE_STOP()
153 #else
154 #define FIRMEM16_START()
155 #define	FIRMEM16_STOP()
156 #endif
157 
158 #if TM_PROFILE_IIRMEM16
159 #define	IIRMEM16_START()	PROFILE_START()
160 #define IIRMEM16_STOP()		PROFILE_STOP()
161 #else
162 #define IIRMEM16_START()
163 #define	IIRMEM16_STOP()
164 #endif
165 
166 #if TM_PROFILE_FILTERMEM16
167 #define	FILTERMEM16_START()		PROFILE_START()
168 #define FILTERMEM16_STOP()		PROFILE_STOP()
169 #else
170 #define FILTERMEM16_START()
171 #define	FILTERMEM16_STOP()
172 #endif
173 
174 #if TM_PROFILE_COMPUTERMS16
175 #define	COMPUTERMS16_START()	PROFILE_START()
176 #define COMPUTERMS16_STOP()		PROFILE_STOP()
177 #else
178 #define COMPUTERMS16_START()
179 #define	COMPUTERMS16_STOP()
180 #endif
181 
182 #if TM_PROFILE_NORMALIZE16
183 #define	NORMALIZE16_START()		PROFILE_START()
184 #define NORMALIZE16_STOP()		PROFILE_STOP()
185 #else
186 #define NORMALIZE16_START()
187 #define	NORMALIZE16_STOP()
188 #endif
189 
190 #if TM_PROFILE_BWLPC
191 #define	BWLPC_START()		PROFILE_START()
192 #define BWLPC_STOP()		PROFILE_STOP()
193 #else
194 #define BWLPC_START()
195 #define BWLPC_STOP()
196 #endif
197 
198 #if TM_PROFILE_HIGHPASS
199 #define	HIGHPASS_START()	PROFILE_START()
200 #define HIGHPASS_STOP()		PROFILE_STOP()
201 #else
202 #define HIGHPASS_START()
203 #define HIGHPASS_STOP()
204 #endif
205 
206 #if TM_PROFILE_SIGNALMUL
207 #define	SIGNALMUL_START()		PROFILE_START()
208 #define SIGNALMUL_STOP()		PROFILE_STOP()
209 #else
210 #define SIGNALMUL_START()
211 #define SIGNALMUL_STOP()
212 #endif
213 
214 #if TM_PROFILE_SIGNALDIV
215 #define	SIGNALDIV_START()		PROFILE_START()
216 #define SIGNALDIV_STOP()		PROFILE_STOP()
217 #else
218 #define SIGNALDIV_START()
219 #define SIGNALDIV_STOP()
220 #endif
221 
222 #if TM_PROFILE_COMPUTEIMPULSERESPONSE
223 #define	COMPUTEIMPULSERESPONSE_START()		PROFILE_START()
224 #define COMPUTEIMPULSERESPONSE_STOP()		PROFILE_STOP()
225 #else
226 #define COMPUTEIMPULSERESPONSE_START()
227 #define COMPUTEIMPULSERESPONSE_STOP()
228 #endif
229 
230 #if TM_PROFILE_COMPUTEWEIGHTEDCODEBOOK
231 #define	COMPUTEWEIGHTEDCODEBOOK_START()			PROFILE_START()
232 #define COMPUTEWEIGHTEDCODEBOOK_STOP()			PROFILE_STOP()
233 #else
234 #define COMPUTEWEIGHTEDCODEBOOK_START()
235 #define	COMPUTEWEIGHTEDCODEBOOK_STOP()
236 #endif
237 
238 #if TM_PROFILE_TARGETUPDATE
239 #define	TARGETUPDATE_START()			PROFILE_START()
240 #define TARGETUPDATE_STOP()				PROFILE_STOP()
241 #else
242 #define TARGETUPDATE_START()
243 #define	TARGETUPDATE_STOP()
244 #endif
245 
246 
247 #if TM_PROFILE_VQNBEST
248 #define	VQNBEST_START()		PROFILE_START()
249 #define VQNBEST_STOP()		PROFILE_STOP()
250 #else
251 #define VQNBEST_START()
252 #define	VQNBEST_STOP()
253 #endif
254 
255 #if TM_PROFILE_VQNBESTSIGN
256 #define	VQNBESTSIGN_START()		PROFILE_START()
257 #define VQNBESTSIGN_STOP()		PROFILE_STOP()
258 #else
259 #define VQNBESTSIGN_START()
260 #define	VQNBESTSIGN_STOP()
261 #endif
262 
263 #if TM_PROFILE_PREPROCESSANALYSIS
264 #define	PREPROCESSANAYLSIS_START()		PROFILE_START()
265 #define PREPROCESSANAYLSIS_STOP()		PROFILE_STOP()
266 #else
267 #define PREPROCESSANAYLSIS_START()
268 #define	PREPROCESSANAYLSIS_STOP()
269 #endif
270 
271 #if TM_PROFILE_UPDATENOISEPROB
272 #define	UPDATENOISEPROB_START()		PROFILE_START()
273 #define UPDATENOISEPROB_STOP()		PROFILE_STOP()
274 #else
275 #define UPDATENOISEPROB_START()
276 #define	UPDATENOISEPROB_STOP()
277 #endif
278 
279 #if TM_PROFILE_COMPUTEGAINFLOOR
280 #define	COMPUTEGAINFLOOR_START()	PROFILE_START()
281 #define COMPUTEGAINFLOOR_STOP()		PROFILE_STOP()
282 #else
283 #define COMPUTEGAINFLOOR_START()
284 #define	COMPUTEGAINFLOOR_STOP()
285 #endif
286 
287 #if TM_PROFILE_FILTERDCNOTCH16
288 #define FILTERDCNOTCH16_START()		PROFILE_START()
289 #define FILTERDCNOTCH16_STOP()		PROFILE_STOP()
290 #else
291 #define FILTERDCNOTCH16_START()
292 #define	FILTERDCNOTCH16_STOP()
293 #endif
294 
295 #if TM_PROFILE_MDFINNERPROD
296 #define MDFINNERPROD_START()		PROFILE_START()
297 #define MDFINNERPROD_STOP()			PROFILE_STOP()
298 #else
299 #define MDFINNERPROD_START()
300 #define	MDFINNERPROD_STOP()
301 #endif
302 
303 #if TM_PROFILE_SPECTRALMULACCUM
304 #define SPECTRALMULACCUM_START()		PROFILE_START()
305 #define SPECTRALMULACCUM_STOP()			PROFILE_STOP()
306 #else
307 #define SPECTRALMULACCUM_START()
308 #define	SPECTRALMULACCUM_STOP()
309 #endif
310 
311 #if TM_PROFILE_WEIGHTEDSPECTRALMULCONJ
312 #define WEIGHTEDSPECTRALMULCONJ_START()		PROFILE_START()
313 #define WEIGHTEDSPECTRALMULCONJ_STOP()		PROFILE_STOP()
314 #else
315 #define WEIGHTEDSPECTRALMULCONJ_START()
316 #define	WEIGHTEDSPECTRALMULCONJ_STOP()
317 #endif
318 
319 #if TM_PROFILE_MDFADJUSTPROP
320 #define MDFADJUSTPROP_START()		PROFILE_START()
321 #define MDFADJUSTPROP_STOP()		PROFILE_STOP()
322 #else
323 #define MDFADJUSTPROP_START()
324 #define	MDFADJUSTPROP_STOP()
325 #endif
326 
327 #if TM_PROFILE_SPEEXECHOGETRESIDUAL
328 #define SPEEXECHOGETRESIDUAL_START()	PROFILE_START()
329 #define SPEEXECHOGETRESIDUAL_STOP()		PROFILE_STOP()
330 #else
331 #define SPEEXECHOGETRESIDUAL_START()
332 #define	SPEEXECHOGETRESIDUAL_STOP()
333 #endif
334 
335 #if TM_PROFILE_LSPENFORCEMARGIN
336 #define LSPENFORCEMARGIN_START()	PROFILE_START()
337 #define LSPENFORCEMARGIN_STOP()		PROFILE_STOP()
338 #else
339 #define LSPENFORCEMARGIN_START()
340 #define	LSPENFORCEMARGIN_STOP()
341 #endif
342 
343 #if TM_PROFILE_LSPTOLPC
344 #define LSPTOLPC_START()	PROFILE_START()
345 #define LSPTOLPC_STOP()		PROFILE_STOP()
346 #else
347 #define LSPTOLPC_START()
348 #define	LSPTOLPC_STOP()
349 #endif
350 
351 #if TM_PROFILE_MAXIMIZERANGE
352 #define MAXIMIZERANGE_START()	PROFILE_START()
353 #define MAXIMIZERANGE_STOP()	PROFILE_STOP()
354 #else
355 #define MAXIMIZERANGE_START()
356 #define	MAXIMIZERANGE_STOP()
357 #endif
358 
359 #if TM_PROFILE_RENORMRANGE
360 #define RENORMRANGE_START()	PROFILE_START()
361 #define RENORMRANGE_STOP()	PROFILE_STOP()
362 #else
363 #define RENORMRANGE_START()
364 #define	RENORMRANGE_STOP()
365 #endif
366 
367 #if TM_PROFILE_POWERSPECTRUM
368 #define POWERSPECTRUM_START()	PROFILE_START()
369 #define POWERSPECTRUM_STOP()	PROFILE_STOP()
370 #else
371 #define POWERSPECTRUM_START()
372 #define	POWERSPECTRUM_STOP()
373 #endif
374 
375 #if TM_PROFILE_QMFSYNTH
376 #define QMFSYNTH_START()	PROFILE_START()
377 #define QMFSYNTH_STOP()		PROFILE_STOP()
378 #else
379 #define QMFSYNTH_START()
380 #define	QMFSYNTH_STOP()
381 #endif
382 
383 #if TM_PROFILE_QMFDECOMP
384 #define QMFDECOMP_START()	PROFILE_START()
385 #define QMFDECOMP_STOP()	PROFILE_STOP()
386 #else
387 #define QMFDECOMP_START()
388 #define	QMFDECOMP_STOP()
389 #endif
390 
391 #if TM_PROFILE_FILTERBANKCOMPUTEBANK32
392 #define FILTERBANKCOMPUTEBANK32_START()	PROFILE_START()
393 #define FILTERBANKCOMPUTEBANK32_STOP()	PROFILE_STOP()
394 #else
395 #define FILTERBANKCOMPUTEBANK32_START()
396 #define	FILTERBANKCOMPUTEBANK32_STOP()
397 #endif
398 
399 #if TM_PROFILE_FILTERBANKCOMPUTEPSD16
400 #define FILTERBANKCOMPUTEPSD16_START()	PROFILE_START()
401 #define FILTERBANKCOMPUTEPSD16_STOP()	PROFILE_STOP()
402 #else
403 #define FILTERBANKCOMPUTEPSD16_START()
404 #define	FILTERBANKCOMPUTEPSD16_STOP()
405 #endif
406 
407 
408