mirror of
https://github.com/xiph/opus.git
synced 2025-05-20 10:28:32 +00:00
More work on making freq.[ch] more generic
This commit is contained in:
parent
fb3112ade6
commit
12f16df6b7
3 changed files with 15 additions and 12 deletions
16
dnn/freq.c
16
dnn/freq.c
|
@ -64,12 +64,12 @@ void compute_band_energy(float *bandE, const kiss_fft_cpx *X) {
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
int band_size;
|
int band_size;
|
||||||
band_size = (eband5ms[i+1]-eband5ms[i])<<FRAME_SIZE_SHIFT;
|
band_size = (eband5ms[i+1]-eband5ms[i])*WINDOW_SIZE_5MS;
|
||||||
for (j=0;j<band_size;j++) {
|
for (j=0;j<band_size;j++) {
|
||||||
float tmp;
|
float tmp;
|
||||||
float frac = (float)j/band_size;
|
float frac = (float)j/band_size;
|
||||||
tmp = SQUARE(X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].r);
|
tmp = SQUARE(X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].r);
|
||||||
tmp += SQUARE(X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].i);
|
tmp += SQUARE(X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].i);
|
||||||
sum[i] += (1-frac)*tmp;
|
sum[i] += (1-frac)*tmp;
|
||||||
sum[i+1] += frac*tmp;
|
sum[i+1] += frac*tmp;
|
||||||
}
|
}
|
||||||
|
@ -89,12 +89,12 @@ void compute_band_corr(float *bandE, const kiss_fft_cpx *X, const kiss_fft_cpx *
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
int band_size;
|
int band_size;
|
||||||
band_size = (eband5ms[i+1]-eband5ms[i])<<FRAME_SIZE_SHIFT;
|
band_size = (eband5ms[i+1]-eband5ms[i])*WINDOW_SIZE_5MS;
|
||||||
for (j=0;j<band_size;j++) {
|
for (j=0;j<band_size;j++) {
|
||||||
float tmp;
|
float tmp;
|
||||||
float frac = (float)j/band_size;
|
float frac = (float)j/band_size;
|
||||||
tmp = X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].r * P[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].r;
|
tmp = X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].r * P[(eband5ms[i]*WINDOW_SIZE_5MS) + j].r;
|
||||||
tmp += X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].i * P[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].i;
|
tmp += X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].i * P[(eband5ms[i]*WINDOW_SIZE_5MS) + j].i;
|
||||||
sum[i] += (1-frac)*tmp;
|
sum[i] += (1-frac)*tmp;
|
||||||
sum[i+1] += frac*tmp;
|
sum[i+1] += frac*tmp;
|
||||||
}
|
}
|
||||||
|
@ -114,10 +114,10 @@ void interp_band_gain(float *g, const float *bandE) {
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
int band_size;
|
int band_size;
|
||||||
band_size = (eband5ms[i+1]-eband5ms[i])<<FRAME_SIZE_SHIFT;
|
band_size = (eband5ms[i+1]-eband5ms[i])*WINDOW_SIZE_5MS;
|
||||||
for (j=0;j<band_size;j++) {
|
for (j=0;j<band_size;j++) {
|
||||||
float frac = (float)j/band_size;
|
float frac = (float)j/band_size;
|
||||||
g[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j] = (1-frac)*bandE[i] + frac*bandE[i+1];
|
g[(eband5ms[i]*WINDOW_SIZE_5MS) + j] = (1-frac)*bandE[i] + frac*bandE[i+1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,9 +28,12 @@
|
||||||
|
|
||||||
#define PREEMPHASIS (0.85f)
|
#define PREEMPHASIS (0.85f)
|
||||||
|
|
||||||
#define FRAME_SIZE_SHIFT 2
|
#define FRAME_SIZE_5MS (2)
|
||||||
#define FRAME_SIZE (40<<FRAME_SIZE_SHIFT)
|
#define OVERLAP_SIZE_5MS (2)
|
||||||
#define OVERLAP_SIZE (FRAME_SIZE)
|
#define WINDOW_SIZE_5MS (FRAME_SIZE_5MS + OVERLAP_SIZE_5MS)
|
||||||
|
|
||||||
|
#define FRAME_SIZE (80*FRAME_SIZE_5MS)
|
||||||
|
#define OVERLAP_SIZE (80*OVERLAP_SIZE_5MS)
|
||||||
#define WINDOW_SIZE (FRAME_SIZE + OVERLAP_SIZE)
|
#define WINDOW_SIZE (FRAME_SIZE + OVERLAP_SIZE)
|
||||||
#define FREQ_SIZE (WINDOW_SIZE/2 + 1)
|
#define FREQ_SIZE (WINDOW_SIZE/2 + 1)
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "arch.h"
|
#include "arch.h"
|
||||||
#include "lpcnet.h"
|
#include "lpcnet.h"
|
||||||
|
#include "freq.h"
|
||||||
|
|
||||||
|
|
||||||
#define FRAME_SIZE 160
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
FILE *fin, *fout;
|
FILE *fin, *fout;
|
||||||
LPCNetState *net;
|
LPCNetState *net;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue