Commit 91126dc4 authored by James Darnley's avatar James Darnley Committed by Michael Niedermayer

flacdsp_lpc_template: add comment to explain the CONFIG_SMALL code

I found the optimisation of 2 samples per iteration obscured the
underlying algorithm.  I had to write it out on paper and translate into
a mathematical sum to see that the two samples are unconnected.  I hope
that if anyone else is struggling to understand the code that this will
be useful.
Reviewed-by: 's avatarChristophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 9ae8e231
......@@ -139,3 +139,21 @@ static void FUNC(flac_lpc_encode_c)(int32_t *res, const int32_t *smp, int len,
}
#endif
}
/* Comment for clarity/de-obfuscation.
*
* for (int i = order; i < len; i++) {
* int32_t p = 0;
* for (int j = 0; j < order; j++) {
* int c = coefs[j];
* int s = smp[(i-1)-j];
* p += c*s;
* }
* res[i] = smp[i] - (p >> shift);
* }
*
* The CONFIG_SMALL code above simplifies to this, in the case of SAMPLE_SIZE
* not being equal to 32 (at the present time that means for 16-bit audio). The
* code above does 2 samples per iteration. Commit bfdd5bc ( made all the way
* back in 2007) says that way is faster.
*/
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment