search for: silk_sat16

Displaying 9 results from an estimated 9 matches for "silk_sat16".

2017 Apr 26
2
2 patches related to silk_biquad_alt() optimization
...S[ 0 ] = silk_SMLAWB( S[ 0 ], B_Q28[ 1 ], in[ k ] ); S[ 1 ] = silk_RSHIFT_ROUND( (opus_int64)out32_Q14 * (-A_Q28[ 1 ]) , 30 ); S[ 1 ] = silk_SMLAWB( S[ 1 ], B_Q28[ 2 ], in[ k ] ); /* Scale back to Q0 and saturate */ out[ k ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14 + (1<<14) - 1, 14 ) ); } } else { opus_int32 out32_Q14[ 2 ]; for( k = 0; k < len; k++ ) { /* S[ 0 ], S[ 1 ]: Q12 */ out32_Q14[ 0 ] = silk_LSHIFT( silk_SMLAWB( S[ 0 ], B_Q28[ 0 ], in[ k * 2 + 0 ] ), 2 );...
2017 May 15
2
2 patches related to silk_biquad_alt() optimization
...[ k ] ); > > S[ 1 ] = silk_RSHIFT_ROUND( (opus_int64)out32_Q14 * > (-A_Q28[ 1 ]) , 30 ); > S[ 1 ] = silk_SMLAWB( S[ 1 ], B_Q28[ 2 ], in[ k ] ); > > /* Scale back to Q0 and saturate */ > out[ k ] = (opus_int16)silk_SAT16( silk_RSHIFT( > out32_Q14 + (1<<14) - 1, 14 ) ); > } > } else { > opus_int32 out32_Q14[ 2 ]; > for( k = 0; k < len; k++ ) { > /* S[ 0 ], S[ 1 ]: Q12 */ > out32_Q14[ 0 ] = silk_LSHIFT( silk_...
2017 May 08
0
2 patches related to silk_biquad_alt() optimization
...S[ 0 ], B_Q28[ 1 ], in[ k ] ); > > S[ 1 ] = silk_RSHIFT_ROUND( (opus_int64)out32_Q14 * (-A_Q28[ > 1 ]) , 30 ); > S[ 1 ] = silk_SMLAWB( S[ 1 ], B_Q28[ 2 ], in[ k ] ); > > /* Scale back to Q0 and saturate */ > out[ k ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14 + > (1<<14) - 1, 14 ) ); > } > } else { > opus_int32 out32_Q14[ 2 ]; > for( k = 0; k < len; k++ ) { > /* S[ 0 ], S[ 1 ]: Q12 */ > out32_Q14[ 0 ] = silk_LSHIFT( silk_SMLAWB( S[ 0 ], B_Q28[ 0 ],...
2017 May 17
0
2 patches related to silk_biquad_alt() optimization
...S[ 1 ] = silk_RSHIFT_ROUND( (opus_int64)out32_Q14 * > > (-A_Q28[ 1 ]) , 30 ); > > S[ 1 ] = silk_SMLAWB( S[ 1 ], B_Q28[ 2 ], in[ k ] ); > > > > /* Scale back to Q0 and saturate */ > > out[ k ] = (opus_int16)silk_SAT16( silk_RSHIFT( > > out32_Q14 + (1<<14) - 1, 14 ) ); > > } > > } else { > > opus_int32 out32_Q14[ 2 ]; > > for( k = 0; k < len; k++ ) { > > /* S[ 0 ], S[ 1 ]: Q12 */ > >...
2017 Apr 25
2
2 patches related to silk_biquad_alt() optimization
On Mon, Apr 24, 2017 at 5:52 PM, Jean-Marc Valin <jmvalin at jmvalin.ca> wrote: > On 24/04/17 08:03 PM, Linfeng Zhang wrote: > > Tested on my chromebook, when stride (channel) == 1, the optimization > > has no gain compared with C function. > > You mean that the Neon code is the same speed as the C code for > stride==1? This is not terribly surprising for an IIRC
2016 Nov 03
0
Silk CNG
...g when I get all input voice silent. I have applied the recent bugfix 2349213003, but that didn't help. I tried windows and android build, both ends keep quiet even both builds happily seems to generate silence there. There is a line: frame[ i ] = (opus_int16)silk_ADD_SAT16( frame[ i ], silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( CNG_sig_Q14[ MAX_LPC_ORDER + i ], gain_Q10 ), 8 ) ) ); When I mute both ends, the frame[i] is 0 before and after that line. Opus 1.1.3 used with PJSip 2.5.5. Windows 7 desktop, Android 5 phone Any help what is the trick to get Comfort Noise to be generated? Thx,...
2016 Aug 23
0
[PATCH 8/8] Optimize silk_NSQ_del_dec() for ARM NEON
...es, pxq, NSQ ); + } + for( ; ( i < decisionDelay ) && ( last_smple_idx >= 0 ); i++, last_smple_idx-- ) { + pulses[ i - decisionDelay ] = (opus_int8)silk_RSHIFT_ROUND( psDelDec->Q_Q10[ last_smple_idx ][ Winner_ind ], 10 ); + pxq[ i - decisionDelay ] = (opus_int16)silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( psDelDec->Xq_Q14[ last_smple_idx ][ Winner_ind ], gain ), shift ) ); + NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - decisionDelay + i ] = psDelDec->Shape_Q14[ last_smple_idx ][ Winner_ind ]; + } + + last_smple_idx += DECISION_DELAY; + for(...
2016 Aug 23
2
[PATCH 7/8] Update NSQ_LPC_BUF_LENGTH macro.
NSQ_LPC_BUF_LENGTH is independent of DECISION_DELAY. --- silk/define.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/silk/define.h b/silk/define.h index 781cfdc..1286048 100644 --- a/silk/define.h +++ b/silk/define.h @@ -173,11 +173,7 @@ extern "C" #define MAX_MATRIX_SIZE MAX_LPC_ORDER /* Max of LPC Order and LTP order */ -#if( MAX_LPC_ORDER >
2016 Jul 28
0
[PATCH] Optimize silk_LPC_analysis_filter() for ARM NEON
...celt_fir( in + d, num, out + d, len - d, d, arch ); - for ( j = 0; j < d; j++ ) { - out[ j ] = 0; - } #else (void)arch; for( ix = d; ix < len; ix++ ) { @@ -104,8 +100,8 @@ void silk_LPC_analysis_filter( /* Saturate output */ out[ ix ] = (opus_int16)silk_SAT16( out32 ); } +#endif /* Set first d output samples to zero */ silk_memset( out, 0, d * sizeof( opus_int16 ) ); -#endif } diff --git a/silk/SigProc_FIX.h b/silk/SigProc_FIX.h index 72df6d3..0e619d0 100644 --- a/silk/SigProc_FIX.h +++ b/silk/SigProc_FIX.h @@ -35,6 +35,7 @@ extern &qu...