You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Add LP zero synthesis filter. Patch by Kenan Gillet.
Originally committed as revision 18616 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
				
					committed by
					
						 Reynaldo H. Verdejo Pinochet
						Reynaldo H. Verdejo Pinochet
					
				
			
			
				
	
			
			
			
						parent
						
							b36da2c215
						
					
				
				
					commit
					d1bf60771c
				
			| @@ -103,3 +103,23 @@ void ff_celp_lp_synthesis_filterf( | ||||
|             out[n] -= filter_coeffs[i-1] * out[n-i]; | ||||
|     } | ||||
| } | ||||
|  | ||||
| void ff_celp_lp_zero_synthesis_filterf( | ||||
|         float *out, | ||||
|         const float* filter_coeffs, | ||||
|         const float* in, | ||||
|         int buffer_length, | ||||
|         int filter_length) | ||||
| { | ||||
|     int i,n; | ||||
|  | ||||
|     // Avoids a +1 in the inner loop. | ||||
|     filter_length++; | ||||
|  | ||||
|     for(n=0; n<buffer_length; n++) | ||||
|     { | ||||
|         out[n] = in[n]; | ||||
|         for(i=1; i<filter_length; i++) | ||||
|             out[n] -= filter_coeffs[i-1] * in[n-i]; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -91,4 +91,26 @@ void ff_celp_lp_synthesis_filterf( | ||||
|         int buffer_length, | ||||
|         int filter_length); | ||||
|  | ||||
| /** | ||||
|  * LP zero synthesis filter. | ||||
|  * @param out [out] pointer to output buffer | ||||
|  * @param filter_coeffs filter coefficients. | ||||
|  * @param in input signal | ||||
|  *        - the array in[-filter_length, -1] must | ||||
|  *        contain the previous input of this filter | ||||
|  * @param buffer_length amount of data to process | ||||
|  * @param filter_length filter length (10 for 10th order LP filter) | ||||
|  * | ||||
|  * @note Output buffer must contain filter_length samples of past | ||||
|  *       speech data before pointer. | ||||
|  * | ||||
|  * Routine applies A(z) filter to given speech data. | ||||
|  */ | ||||
| void ff_celp_lp_zero_synthesis_filterf( | ||||
|         float *out, | ||||
|         const float* filter_coeffs, | ||||
|         const float* in, | ||||
|         int buffer_length, | ||||
|         int filter_length); | ||||
|  | ||||
| #endif /* AVCODEC_CELP_FILTERS_H */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user