Update opus to 1.3.1 and opusfile to 0.11
This commit is contained in:
parent
8570b9b0c2
commit
e00426c512
225 changed files with 10458 additions and 6917 deletions
|
|
@ -31,8 +31,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
#include "SigProc_FIX.h"
|
||||
#include "SigProc_FLP.h"
|
||||
|
||||
#define RC_THRESHOLD 0.9999f
|
||||
#include "define.h"
|
||||
|
||||
/* compute inverse of LPC prediction gain, and */
|
||||
/* test if LPC coefficients are stable (all poles within unit circle) */
|
||||
|
|
@ -43,34 +42,32 @@ silk_float silk_LPC_inverse_pred_gain_FLP( /* O return inverse prediction ga
|
|||
)
|
||||
{
|
||||
opus_int k, n;
|
||||
double invGain, rc, rc_mult1, rc_mult2;
|
||||
silk_float Atmp[ 2 ][ SILK_MAX_ORDER_LPC ];
|
||||
silk_float *Aold, *Anew;
|
||||
double invGain, rc, rc_mult1, rc_mult2, tmp1, tmp2;
|
||||
silk_float Atmp[ SILK_MAX_ORDER_LPC ];
|
||||
|
||||
Anew = Atmp[ order & 1 ];
|
||||
silk_memcpy( Anew, A, order * sizeof(silk_float) );
|
||||
silk_memcpy( Atmp, A, order * sizeof(silk_float) );
|
||||
|
||||
invGain = 1.0;
|
||||
for( k = order - 1; k > 0; k-- ) {
|
||||
rc = -Anew[ k ];
|
||||
if( rc > RC_THRESHOLD || rc < -RC_THRESHOLD ) {
|
||||
rc = -Atmp[ k ];
|
||||
rc_mult1 = 1.0f - rc * rc;
|
||||
invGain *= rc_mult1;
|
||||
if( invGain * MAX_PREDICTION_POWER_GAIN < 1.0f ) {
|
||||
return 0.0f;
|
||||
}
|
||||
rc_mult1 = 1.0f - rc * rc;
|
||||
rc_mult2 = 1.0f / rc_mult1;
|
||||
invGain *= rc_mult1;
|
||||
/* swap pointers */
|
||||
Aold = Anew;
|
||||
Anew = Atmp[ k & 1 ];
|
||||
for( n = 0; n < k; n++ ) {
|
||||
Anew[ n ] = (silk_float)( ( Aold[ n ] - Aold[ k - n - 1 ] * rc ) * rc_mult2 );
|
||||
for( n = 0; n < (k + 1) >> 1; n++ ) {
|
||||
tmp1 = Atmp[ n ];
|
||||
tmp2 = Atmp[ k - n - 1 ];
|
||||
Atmp[ n ] = (silk_float)( ( tmp1 - tmp2 * rc ) * rc_mult2 );
|
||||
Atmp[ k - n - 1 ] = (silk_float)( ( tmp2 - tmp1 * rc ) * rc_mult2 );
|
||||
}
|
||||
}
|
||||
rc = -Anew[ 0 ];
|
||||
if( rc > RC_THRESHOLD || rc < -RC_THRESHOLD ) {
|
||||
return 0.0f;
|
||||
}
|
||||
rc = -Atmp[ 0 ];
|
||||
rc_mult1 = 1.0f - rc * rc;
|
||||
invGain *= rc_mult1;
|
||||
if( invGain * MAX_PREDICTION_POWER_GAIN < 1.0f ) {
|
||||
return 0.0f;
|
||||
}
|
||||
return (silk_float)invGain;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue