libavcodec/celp_filters.c File Reference

#include <inttypes.h>
#include "avcodec.h"
#include "celp_filters.h"

Go to the source code of this file.

Functions

void ff_celp_convolve_circ (int16_t *fc_out, const int16_t *fc_in, const int16_t *filter, int len)
 Circularly convolve fixed vector with a phase dispersion impulse response filter (D.6.2 of G.729 and 6.1.5 of AMR).
int ff_celp_lp_synthesis_filter (int16_t *out, const int16_t *filter_coeffs, const int16_t *in, int buffer_length, int filter_length, int stop_on_overflow, int rounder)
 LP synthesis filter.
void ff_celp_lp_synthesis_filterf (float *out, const float *filter_coeffs, const float *in, int buffer_length, int filter_length)
 LP synthesis filter.


Function Documentation

void ff_celp_convolve_circ ( int16_t *  fc_out,
const int16_t *  fc_in,
const int16_t *  filter,
int  len 
)

Circularly convolve fixed vector with a phase dispersion impulse response filter (D.6.2 of G.729 and 6.1.5 of AMR).

Parameters:
fc_out vector with filter applied
fc_in source vector
filter phase filter coefficients
fc_out[n] = sum(i,0,len-1){ fc_in[i] * filter[(len + n - i)len] }

Note:
fc_in and fc_out should not overlap!

Definition at line 28 of file celp_filters.c.

int ff_celp_lp_synthesis_filter ( int16_t *  out,
const int16_t *  filter_coeffs,
const int16_t *  in,
int  buffer_length,
int  filter_length,
int  stop_on_overflow,
int  rounder 
)

LP synthesis filter.

Parameters:
out [out] pointer to output buffer
filter_coeffs filter coefficients (-0x8000 <= (3.12) < 0x8000)
in input signal
buffer_length amount of data to process
filter_length filter length (10 for 10th order LP filter)
stop_on_overflow 1 - return immediately if overflow occurs 0 - ignore overflows
rounder the amount to add for rounding (usually 0x800 or 0xfff)
Returns:
1 if overflow occurred, 0 - otherwise
Note:
Output buffer must contain filter_length samples of past speech data before pointer.
Routine applies 1/A(z) filter to given speech data.

Definition at line 53 of file celp_filters.c.

Referenced by do_output_subblock().

void ff_celp_lp_synthesis_filterf ( float *  out,
const float *  filter_coeffs,
const float *  in,
int  buffer_length,
int  filter_length 
)

LP synthesis filter.

Parameters:
out [out] pointer to output buffer
  • the array out[-filter_length, -1] must contain the previous result of this filter
filter_coeffs filter coefficients.
in input signal
buffer_length amount of data to process
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 1/A(z) filter to given speech data.

Definition at line 88 of file celp_filters.c.

Referenced by decode(), and qcelp_decode_frame().


Generated on Fri Oct 26 02:35:42 2012 for FFmpeg by  doxygen 1.5.8