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...