diff options
| author | Author Name <[email protected]> | 2023-07-07 12:20:59 +0930 |
|---|---|---|
| committer | David Rowe <[email protected]> | 2023-07-07 12:29:06 +0930 |
| commit | ac7c48b4dee99d4c772f133d70d8d1b38262fcd2 (patch) | |
| tree | a2d0ace57a9c0e2e5b611c4987f6fed1b38b81e7 /src/newamp2.h | |
shallow zip-file copy from codec2 e9d726bf20
Diffstat (limited to 'src/newamp2.h')
| -rw-r--r-- | src/newamp2.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/newamp2.h b/src/newamp2.h new file mode 100644 index 0000000..ec14566 --- /dev/null +++ b/src/newamp2.h @@ -0,0 +1,89 @@ +/*---------------------------------------------------------------------------*\ + + FILE........: newamp2.h + AUTHOR......: Thomas Kurin and Stefan Erhardt + INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg + DATE CREATED: July 2018 + BASED ON....: "newamp1.h" by David Rowe + + Quantisation functions for the sinusoidal coder, using "newamp1" + algorithm that resamples variable rate L [Am} to a fixed rate K then + VQs. + +\*---------------------------------------------------------------------------*/ + +/* + Copyright Thomas Kurin and Stefan Erhardt 2018 + + All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 2.1, as + published by the Free Software Foundation. This program is + distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef __NEWAMP2__ +#define __NEWAMP2__ + +#define NEWAMP2_N_INDEXES 4 /* Number of indexes to pack: vq1, vq2, energy, Wo */ +#define NEWAMP2_PHASE_NFFT 128 /* size of FFT used for phase synthesis */ +#define NEWAMP2_K 29 /* rate K vector length */ +#define NEWAMP2_16K_K 40 /* rate K vector length for 16k Mode */ + +#include "codec2_fft.h" +#include "comp.h" + +void n2_mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K); +void n2_resample_const_rate_f(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); +void n2_rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim); +void n2_resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K,int plosive_flag); +void n2_post_filter_newamp2(float vec[], float sample_freq_kHz[], int K, float pf_gain); +void newamp2_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K,int plosive_flag); +void newamp2_model_to_indexes(C2CONST *c2const, + int indexes[], + MODEL *model, + float rate_K_vec[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean, + float rate_K_vec_no_mean[], + float rate_K_vec_no_mean_[], + int plosiv + ); +void newamp2_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float pf_gain); +void newamp2_16k_indexes_to_rate_K_vec(float rate_K_vec_[], + float rate_K_vec_no_mean_[], + float rate_K_sample_freqs_kHz[], + int K, + float *mean_, + int indexes[], + float pf_gain); +void newamp2_indexes_to_model(C2CONST *c2const, + MODEL model_[], + COMP H[], + float interpolated_surface_[], + float prev_rate_K_vec_[], + float *Wo_left, + int *voicing_left, + float rate_K_sample_freqs_kHz[], + int K, + codec2_fft_cfg fwd_cfg, + codec2_fft_cfg inv_cfg, + int indexes[], + float pf_gain, + int flag16k); + +#endif |
