Displaying 2 results from an estimated 2 matches for "a0_u_q28".
Did you mean:
a0_l_q28
2017 Apr 25
2
2 patches related to silk_biquad_alt() optimization
Hi Jean-Marc,
Tested on my chromebook, when stride (channel) == 1, the optimization has
no gain compared with C function.
When stride (channel) == 2, the optimization is 1.2%-1.8% faster (1.6% at
Complexity 8) compared with C function.
Please let me know and I can remove the optimization of stride 1 case.
If it's allowed to skip the split of A_Q28 and replace by 32-bit
multiplication
2017 Apr 25
2
2 patches related to silk_biquad_alt() optimization
...> This may change the encoder results because of different order of
> > adding, shifting and rounding.
>
> I'm not sure what you mean for that.
>
/* Negate A_Q28 values and split in two parts */
A0_L_Q28 = ( -A_Q28[ 0 ] ) & 0x00003FFF; /* lower part */
A0_U_Q28 = silk_RSHIFT( -A_Q28[ 0 ], 14 ); /* upper part */
A1_L_Q28 = ( -A_Q28[ 1 ] ) & 0x00003FFF; /* lower part */
A1_U_Q28 = silk_RSHIFT( -A_Q28[ 1 ], 14 ); /* upper part */
...
S[ 0 ] = S[1] + silk_RSHIFT_ROUND( silk_SMULWB( out32_Q14, A0_L_Q28
), 14 );...