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: Christophe Gisquet <christophe.gisquet@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
9ae8e23188
commit
91126dc481
@ -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.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user