mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-28 02:12:28 +00:00
lpc: remove unused ff_lpc_calc_levinson() function
Not needed anymore, it was only used by the AAC TNS encoder and was replaced with a more suitable function in the following commit. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
This commit is contained in:
parent
139c2f93fd
commit
a70ee2bdcd
@ -271,62 +271,6 @@ int ff_lpc_calc_coefs(LPCContext *s,
|
||||
return opt_order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simplified Levinson LPC accepting float samples
|
||||
*
|
||||
* @param lpc_type LPC method for determining coefficients,
|
||||
* see #FFLPCType for details
|
||||
*/
|
||||
int ff_lpc_calc_levinson(LPCContext *s, const float *samples, int len,
|
||||
double lpc[][MAX_LPC_ORDER], int min_order,
|
||||
int max_order, int omethod)
|
||||
{
|
||||
double ref[MAX_LPC_ORDER] = { 0 };
|
||||
double autoc[MAX_LPC_ORDER+1];
|
||||
double *w_data = s->windowed_samples;
|
||||
int i, n2 = (len >> 1);
|
||||
double w, c = 2.0 / (len - 1.0);
|
||||
|
||||
av_assert2(max_order >= MIN_LPC_ORDER && max_order <= MAX_LPC_ORDER);
|
||||
|
||||
/* reinit LPC context if parameters have changed */
|
||||
if (len > s->blocksize || max_order > s->max_order) {
|
||||
ff_lpc_end(s);
|
||||
ff_lpc_init(s, len, max_order, FF_LPC_TYPE_LEVINSON);
|
||||
}
|
||||
|
||||
/* Apply welch window */
|
||||
if (len & 1) {
|
||||
for(i=0; i<n2; i++) {
|
||||
w = c - i - 1.0;
|
||||
w = 1.0 - (w * w);
|
||||
w_data[i] = samples[i] * w;
|
||||
w_data[len-1-i] = samples[len-1-i] * w;
|
||||
}
|
||||
} else {
|
||||
w_data+=n2;
|
||||
samples+=n2;
|
||||
for(i=0; i<n2; i++) {
|
||||
w = c - n2 + i;
|
||||
w = 1.0 - (w * w);
|
||||
w_data[-i-1] = samples[-i-1] * w;
|
||||
w_data[+i ] = samples[+i ] * w;
|
||||
}
|
||||
}
|
||||
|
||||
s->lpc_compute_autocorr(w_data, len, max_order, autoc);
|
||||
|
||||
compute_lpc_coefs(autoc, max_order, &lpc[0][0], max_order, 0, 1);
|
||||
|
||||
if(omethod == ORDER_METHOD_EST) {
|
||||
for(i=0; i<max_order; i++)
|
||||
ref[i] = fabs(lpc[i][i]);
|
||||
return estimate_best_order(ref, min_order, max_order);
|
||||
}
|
||||
|
||||
return max_order;
|
||||
}
|
||||
|
||||
av_cold int ff_lpc_init(LPCContext *s, int blocksize, int max_order,
|
||||
enum FFLPCType lpc_type)
|
||||
{
|
||||
|
@ -100,9 +100,6 @@ int ff_lpc_calc_coefs(LPCContext *s,
|
||||
int ff_lpc_calc_ref_coefs(LPCContext *s,
|
||||
const int32_t *samples, int order, double *ref);
|
||||
|
||||
int ff_lpc_calc_levinson(LPCContext *s, const float *samples, int len,
|
||||
double lpc[][MAX_LPC_ORDER], int min_order,
|
||||
int max_order, int omethod);
|
||||
|
||||
/**
|
||||
* Initialize LPCContext.
|
||||
|
Loading…
Reference in New Issue
Block a user