search for: silk_sqrt_approx

Displaying 6 results from an estimated 6 matches for "silk_sqrt_approx".

2017 Nov 27
3
Reg an issue with smoothing factor in VAD implementation
...A_Q15, 1 ); } else if( speech_nrg < 32768 ) { if( psEncC->frame_length == 10 * psEncC->fs_kHz ) { speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 16 ); // Energy is doubled here : comment by me } else { speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 15 ); } /* square-root */ speech_nrg = silk_SQRT_APPROX( speech_nrg ); SA_Q15 = silk_SMULWB( 32768 + speech_nrg, SA_Q15 ); } /* Smoothing coefficient */ smooth_coef_Q16 = silk_SMULWB( VAD_SNR_SMOOTH_COEF_Q18, silk_SMULWB( (opus_int32)SA_Q15, SA_Q15 ) ); // step3: Update the smoothing factor based on speech probability : comment by me if( psEncC-&...
2018 Feb 16
1
Reg an issue with smoothing factor in VAD implementation
...6-bit value is stored in a 32-bit int without sign-extension > e.g. 0x00008b3b), but that doesn't seem to be the case here. > The problem is even worse when opus_int is defined as 16-bit in the > platform - SA_Q15 overflows to negative right here with a similar effect > speech_nrg = silk_SQRT_APPROX(speech_nrg); > SA_Q15 = silk_SMULWB(32768 + speech_nrg, SA_Q15); > > I can't speak for the logic where the speech energy gets doubled. It > obviously seems intentional but I don't know why. Maybe so that > smoothing is performed at a constant rate regardless of whether >...
2017 Nov 20
4
Reg an issue with smoothing factor in VAD implementation
...t; 32768 ) { > if( psEncC->frame_length == 10 * psEncC->fs_kHz ) { > speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 16 ); // Energy is doubled > here : comment by me > } else { > speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 15 ); > } > > /* square-root */ > speech_nrg = silk_SQRT_APPROX( speech_nrg ); > SA_Q15 = silk_SMULWB( 32768 + speech_nrg, SA_Q15 ); > } > > /* Smoothing coefficient */ > smooth_coef_Q16 = silk_SMULWB( VAD_SNR_SMOOTH_COEF_Q18, silk_SMULWB( > (opus_int32)SA_Q15, SA_Q15 ) ); // step3: Update the smoothing factor based > on speech probability...
2017 Nov 27
0
Reg an issue with smoothing factor in VAD implementation
...in cases where the 16-bit value is stored in a 32-bit int without sign-extension e.g. 0x00008b3b), but that doesn't seem to be the case here. The problem is even worse when opus_int is defined as 16-bit in the platform - SA_Q15 overflows to negative right here with a similar effect speech_nrg = silk_SQRT_APPROX(speech_nrg); SA_Q15 = silk_SMULWB(32768 + speech_nrg, SA_Q15); I can't speak for the logic where the speech energy gets doubled. It obviously seems intentional but I don't know why. Maybe so that smoothing is performed at a constant rate regardless of whether framesize is 10 or 20ms? On S...
2017 Nov 20
0
Reg an issue with smoothing factor in VAD implementation
...A_Q15, 1 ); } else if( speech_nrg < 32768 ) { if( psEncC->frame_length == 10 * psEncC->fs_kHz ) { speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 16 ); // Energy is doubled here : comment by me } else { speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 15 ); } /* square-root */ speech_nrg = silk_SQRT_APPROX( speech_nrg ); SA_Q15 = silk_SMULWB( 32768 + speech_nrg, SA_Q15 ); } /* Smoothing coefficient */ smooth_coef_Q16 = silk_SMULWB( VAD_SNR_SMOOTH_COEF_Q18, silk_SMULWB( (opus_int32)SA_Q15, SA_Q15 ) ); // step3: Update the smoothing factor based on speech probability : comment by me if( psEncC-&...
2017 Nov 22
0
Reg an issue with smoothing factor in VAD implementation
...;frame_length == 10 * psEncC->fs_kHz ) { >> speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 16 ); // Energy is doubled >> here : comment by me >> } else { >> speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 15 ); >> } >> >> /* square-root */ >> speech_nrg = silk_SQRT_APPROX( speech_nrg ); >> SA_Q15 = silk_SMULWB( 32768 + speech_nrg, SA_Q15 ); >> } >> >> /* Smoothing coefficient */ >> smooth_coef_Q16 = silk_SMULWB( VAD_SNR_SMOOTH_COEF_Q18, silk_SMULWB( >> (opus_int32)SA_Q15, SA_Q15 ) ); // step3: Update the smoothing factor based &gt...