You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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:
		
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						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. | ||||
|  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user