| OLD | NEW |
| 1 /*********************************************************************** | 1 /*********************************************************************** |
| 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. | 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. |
| 3 Redistribution and use in source and binary forms, with or without | 3 Redistribution and use in source and binary forms, with or without |
| 4 modification, are permitted provided that the following conditions | 4 modification, are permitted provided that the following conditions |
| 5 are met: | 5 are met: |
| 6 - Redistributions of source code must retain the above copyright notice, | 6 - Redistributions of source code must retain the above copyright notice, |
| 7 this list of conditions and the following disclaimer. | 7 this list of conditions and the following disclaimer. |
| 8 - Redistributions in binary form must reproduce the above copyright | 8 - Redistributions in binary form must reproduce the above copyright |
| 9 notice, this list of conditions and the following disclaimer in the | 9 notice, this list of conditions and the following disclaimer in the |
| 10 documentation and/or other materials provided with the distribution. | 10 documentation and/or other materials provided with the distribution. |
| 11 - Neither the name of Internet Society, IETF or IETF Trust, nor the | 11 - Neither the name of Internet Society, IETF or IETF Trust, nor the |
| 12 names of specific contributors, may be used to endorse or promote | 12 names of specific contributors, may be used to endorse or promote |
| 13 products derived from this software without specific prior written | 13 products derived from this software without specific prior written |
| 14 permission. | 14 permission. |
| 15 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” | 15 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| 16 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 16 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| 17 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 17 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| 18 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 18 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
| 19 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 19 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| 20 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 20 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| 21 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 21 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 22 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 22 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| 23 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 23 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| 24 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 24 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 25 POSSIBILITY OF SUCH DAMAGE. | 25 POSSIBILITY OF SUCH DAMAGE. |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 opus_int silk_sigm_Q15( | 161 opus_int silk_sigm_Q15( |
| 162 opus_int in_Q5 /* I
*/ | 162 opus_int in_Q5 /* I
*/ |
| 163 ); | 163 ); |
| 164 | 164 |
| 165 /* Approximation of 2^() (exact inverse of approx log2() above) */ | 165 /* Approximation of 2^() (exact inverse of approx log2() above) */ |
| 166 /* Convert input to a linear scale */ | 166 /* Convert input to a linear scale */ |
| 167 opus_int32 silk_log2lin( | 167 opus_int32 silk_log2lin( |
| 168 const opus_int32 inLog_Q7 /* I input on log scale
*/ | 168 const opus_int32 inLog_Q7 /* I input on log scale
*/ |
| 169 ); | 169 ); |
| 170 | 170 |
| 171 /* Function that returns the maximum absolut value of the input vector */ | |
| 172 opus_int16 silk_int16_array_maxabs( /* O Maximum absolute valu
e, max: 2^15-1 */ | |
| 173 const opus_int16 *vec, /* I Input vector [len]
*/ | |
| 174 const opus_int32 len /* I Length of input vecto
r */ | |
| 175 ); | |
| 176 | |
| 177 /* Compute number of bits to right shift the sum of squares of a vector */ | 171 /* Compute number of bits to right shift the sum of squares of a vector */ |
| 178 /* of int16s to make it fit in an int32 */ | 172 /* of int16s to make it fit in an int32 */ |
| 179 void silk_sum_sqr_shift( | 173 void silk_sum_sqr_shift( |
| 180 opus_int32 *energy, /* O Energy of x, after sh
ifting to the right */ | 174 opus_int32 *energy, /* O Energy of x, after sh
ifting to the right */ |
| 181 opus_int *shift, /* O Number of bits right
shift applied to energy */ | 175 opus_int *shift, /* O Number of bits right
shift applied to energy */ |
| 182 const opus_int16 *x, /* I Input vector
*/ | 176 const opus_int16 *x, /* I Input vector
*/ |
| 183 opus_int len /* I Length of input vecto
r */ | 177 opus_int len /* I Length of input vecto
r */ |
| 184 ); | 178 ); |
| 185 | 179 |
| 186 /* Calculates the reflection coefficients from the correlation sequence */ | 180 /* Calculates the reflection coefficients from the correlation sequence */ |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 ); | 239 ); |
| 246 | 240 |
| 247 opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0
voiced, 1 unvoiced */ | 241 opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0
voiced, 1 unvoiced */ |
| 248 const opus_int16 *frame, /* I Signal of length PE_
FRAME_LENGTH_MS*Fs_kHz */ | 242 const opus_int16 *frame, /* I Signal of length PE_
FRAME_LENGTH_MS*Fs_kHz */ |
| 249 opus_int *pitch_out, /* O 4 pitch lag values
*/ | 243 opus_int *pitch_out, /* O 4 pitch lag values
*/ |
| 250 opus_int16 *lagIndex, /* O Lag Index
*/ | 244 opus_int16 *lagIndex, /* O Lag Index
*/ |
| 251 opus_int8 *contourIndex, /* O Pitch contour Index
*/ | 245 opus_int8 *contourIndex, /* O Pitch contour Index
*/ |
| 252 opus_int *LTPCorr_Q15, /* I/O Normalized correlati
on; input: value from previous frame */ | 246 opus_int *LTPCorr_Q15, /* I/O Normalized correlati
on; input: value from previous frame */ |
| 253 opus_int prevLag, /* I Last lag of previous
frame; set to zero is unvoiced */ | 247 opus_int prevLag, /* I Last lag of previous
frame; set to zero is unvoiced */ |
| 254 const opus_int32 search_thres1_Q16, /* I First stage threshol
d for lag candidates 0 - 1 */ | 248 const opus_int32 search_thres1_Q16, /* I First stage threshol
d for lag candidates 0 - 1 */ |
| 255 const opus_int search_thres2_Q15, /* I Final threshold for
lag candidates 0 - 1 */ | 249 const opus_int search_thres2_Q13, /* I Final threshold for
lag candidates 0 - 1 */ |
| 256 const opus_int Fs_kHz, /* I Sample frequency (kH
z) */ | 250 const opus_int Fs_kHz, /* I Sample frequency (kH
z) */ |
| 257 const opus_int complexity, /* I Complexity setting,
0-2, where 2 is highest */ | 251 const opus_int complexity, /* I Complexity setting,
0-2, where 2 is highest */ |
| 258 const opus_int nb_subfr /* I number of 5 ms subfr
ames */ | 252 const opus_int nb_subfr /* I number of 5 ms subfr
ames */ |
| 259 ); | 253 ); |
| 260 | 254 |
| 261 /* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter co
efficients */ | 255 /* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter co
efficients */ |
| 262 /* If not all roots are found, the a_Q16 coefficients are bandwidth expanded unt
il convergence. */ | 256 /* If not all roots are found, the a_Q16 coefficients are bandwidth expanded unt
il convergence. */ |
| 263 void silk_A2NLSF( | 257 void silk_A2NLSF( |
| 264 opus_int16 *NLSF, /* O Normalized Line Spec
tral Frequencies in Q15 (0..2^15-1) [d] */ | 258 opus_int16 *NLSF, /* O Normalized Line Spec
tral Frequencies in Q15 (0..2^15-1) [d] */ |
| 265 opus_int32 *a_Q16, /* I/O Monic whitening filt
er coefficients in Q16 [d] */ | 259 opus_int32 *a_Q16, /* I/O Monic whitening filt
er coefficients in Q16 [d] */ |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 ARMv6 2 instruction cycles. | 569 ARMv6 2 instruction cycles. |
| 576 ARMv3M+ 3 instruction cycles. use SMULL and ignore LSB registers.
(except xM)*/ | 570 ARMv3M+ 3 instruction cycles. use SMULL and ignore LSB registers.
(except xM)*/ |
| 577 /*#define silk_SMMUL(a32, b32) (opus_int32)silk_RSHIFT(silk_SMLAL
(silk_SMULWB((a32), (b32)), (a32), silk_RSHIFT_ROUND((b32), 16)), 16)*/ | 571 /*#define silk_SMMUL(a32, b32) (opus_int32)silk_RSHIFT(silk_SMLAL
(silk_SMULWB((a32), (b32)), (a32), silk_RSHIFT_ROUND((b32), 16)), 16)*/ |
| 578 /* the following seems faster on x86 */ | 572 /* the following seems faster on x86 */ |
| 579 #define silk_SMMUL(a32, b32) (opus_int32)silk_RSHIFT64(silk_SMULL
((a32), (b32)), 32) | 573 #define silk_SMMUL(a32, b32) (opus_int32)silk_RSHIFT64(silk_SMULL
((a32), (b32)), 32) |
| 580 | 574 |
| 581 #include "Inlines.h" | 575 #include "Inlines.h" |
| 582 #include "MacroCount.h" | 576 #include "MacroCount.h" |
| 583 #include "MacroDebug.h" | 577 #include "MacroDebug.h" |
| 584 | 578 |
| 579 #ifdef ARMv4_ASM |
| 580 #include "arm/SigProc_FIX_armv4.h" |
| 581 #endif |
| 582 |
| 583 #ifdef ARMv5E_ASM |
| 584 #include "arm/SigProc_FIX_armv5e.h" |
| 585 #endif |
| 586 |
| 585 #ifdef __cplusplus | 587 #ifdef __cplusplus |
| 586 } | 588 } |
| 587 #endif | 589 #endif |
| 588 | 590 |
| 589 #endif /* SILK_SIGPROC_FIX_H */ | 591 #endif /* SILK_SIGPROC_FIX_H */ |
| OLD | NEW |