mirror of https://git.ffmpeg.org/ffmpeg.git
simplify compute_autocorr
Originally committed as revision 5575 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
412759560c
commit
b2e30cb324
|
@ -583,34 +583,22 @@ static void apply_welch_window(const int32_t *data, int len, double *w_data)
|
||||||
static void compute_autocorr(const int32_t *data, int len, int lag,
|
static void compute_autocorr(const int32_t *data, int len, int lag,
|
||||||
double *autoc)
|
double *autoc)
|
||||||
{
|
{
|
||||||
int i;
|
int i, lag_ptr;
|
||||||
double *data1;
|
double tmp[len + lag];
|
||||||
int lag_ptr, ptr;
|
double *data1= tmp + lag;
|
||||||
|
|
||||||
data1 = av_malloc(len * sizeof(double));
|
|
||||||
apply_welch_window(data, len, data1);
|
apply_welch_window(data, len, data1);
|
||||||
|
|
||||||
for(i=0; i<lag; i++) autoc[i] = 1.0;
|
for(i=0; i<lag; i++){
|
||||||
|
autoc[i] = 1.0;
|
||||||
ptr = 0;
|
data1[i-lag]= 0.0;
|
||||||
while(ptr <= lag) {
|
|
||||||
lag_ptr = 0;
|
|
||||||
while(lag_ptr <= ptr) {
|
|
||||||
autoc[ptr-lag_ptr] += data1[ptr] * data1[lag_ptr];
|
|
||||||
lag_ptr++;
|
|
||||||
}
|
|
||||||
ptr++;
|
|
||||||
}
|
|
||||||
while(ptr < len) {
|
|
||||||
lag_ptr = ptr - lag;
|
|
||||||
while(lag_ptr <= ptr) {
|
|
||||||
autoc[ptr-lag_ptr] += data1[ptr] * data1[lag_ptr];
|
|
||||||
lag_ptr++;
|
|
||||||
}
|
|
||||||
ptr++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
av_freep(&data1);
|
for(i=0; i<len; i++){
|
||||||
|
for(lag_ptr= i-lag; lag_ptr<=i; lag_ptr++){
|
||||||
|
autoc[i-lag_ptr] += data1[i] * data1[lag_ptr];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue