FFmpeg
Loading...
Searching...
No Matches
sipr.h
Go to the documentation of this file.
1/*
2 * SIPR / ACELP.NET decoder
3 *
4 * Copyright (c) 2008 Vladimir Voroshilov
5 * Copyright (c) 2009 Vitor Sessak
6 *
7 * This file is part of FFmpeg.
8 *
9 * FFmpeg is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * FFmpeg is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with FFmpeg; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24#ifndef AVCODEC_SIPR_H
25#define AVCODEC_SIPR_H
26
27#include "acelp_pitch_delay.h"
29
30#define LP_FILTER_ORDER_16k 16
31#define L_SUBFR_16k 80
32#define PITCH_MIN 30
33#define PITCH_MAX 281
34
35#define LSFQ_DIFF_MIN (0.0125 * M_PI)
36
37#define LP_FILTER_ORDER 10
38
39/** Number of past samples needed for excitation interpolation */
40#define L_INTERPOL (LP_FILTER_ORDER + 1)
41
42/** Subframe size for all modes except 16k */
43#define SUBFR_SIZE 48
44
45#define SUBFRAME_COUNT_16k 2
46
54
55typedef struct SiprParameters {
56 int ma_pred_switch; ///< switched moving average predictor
57 int vq_indexes[5];
58 int pitch_delay[5]; ///< pitch delay
59 int gp_index[5]; ///< adaptive-codebook gain indexes
60 int16_t fc_indexes[5][10]; ///< fixed-codebook indexes
61 int gc_index[5]; ///< fixed-codebook gain indexes
63
98
99extern const float ff_pow_0_5[16];
100
102
104 float *out_data);
105
106#endif /* AVCODEC_SIPR_H */
SwsAArch64OpImplParams params
Definition ops.c:51
#define PITCH_DELAY_MAX
@ MODE_COUNT
Definition cinepakenc.c:76
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
const float ff_pow_0_5[]
Definition sipr.c:136
SiprMode
Definition sipr.h:47
@ MODE_16k
Definition sipr.h:48
@ MODE_6k5
Definition sipr.h:50
@ MODE_8k5
Definition sipr.h:49
@ MODE_5k0
Definition sipr.h:51
#define LP_FILTER_ORDER_16k
Definition sipr.h:30
#define L_SUBFR_16k
Definition sipr.h:31
#define PITCH_MAX
Definition sipr.h:33
#define L_INTERPOL
Number of past samples needed for excitation interpolation.
Definition sipr.h:40
#define SUBFR_SIZE
Subframe size for all modes except 16k.
Definition sipr.h:43
#define LP_FILTER_ORDER
Definition sipr.h:37
void ff_sipr_init_16k(SiprContext *ctx)
Definition sipr16k.c:271
void ff_sipr_decode_frame_16k(SiprContext *ctx, SiprParameters *params, float *out_data)
Definition sipr16k.c:176
float lsf_history[LP_FILTER_ORDER_16k]
Definition sipr.h:68
float highpass_filt_mem[2]
Definition sipr.h:77
float mem_preemph[LP_FILTER_ORDER_16k]
Definition sipr.h:91
float filt_buf[2][LP_FILTER_ORDER_16k+1]
Definition sipr.h:89
float postfilter_mem5k0[PITCH_DELAY_MAX+LP_FILTER_ORDER]
Definition sipr.h:83
float synth_buf[LP_FILTER_ORDER+5 *SUBFR_SIZE+6]
Definition sipr.h:72
float synth[LP_FILTER_ORDER_16k]
Definition sipr.h:92
int pitch_lag_prev
Definition sipr.h:87
float postfilter_mem[PITCH_DELAY_MAX+LP_FILTER_ORDER]
Definition sipr.h:78
SiprMode mode
Definition sipr.h:65
float postfilter_agc
Definition sipr.h:82
float energy_history[4]
Definition sipr.h:76
float postfilter_syn5k0[LP_FILTER_ORDER+SUBFR_SIZE *5]
Definition sipr.h:84
float past_pitch_gain
Definition sipr.h:67
float excitation[L_INTERPOL+PITCH_MAX+2 *L_SUBFR_16k]
Definition sipr.h:70
float gain_mem
Definition sipr.h:75
float * filt_mem[2]
Definition sipr.h:90
double lsp_history_16k[16]
Definition sipr.h:93
float iir_mem[LP_FILTER_ORDER_16k+1]
Definition sipr.h:88
void(* decode_frame)(struct SiprContext *ctx, SiprParameters *params, float *out_data)
Definition sipr.h:95
float lsp_history[LP_FILTER_ORDER]
Definition sipr.h:74
float tilt_mem
Definition sipr.h:81
int vq_indexes[5]
Definition sipr.h:57
int pitch_delay[5]
pitch delay
Definition sipr.h:58
int gp_index[5]
adaptive-codebook gain indexes
Definition sipr.h:59
int gc_index[5]
fixed-codebook gain indexes
Definition sipr.h:61
int ma_pred_switch
switched moving average predictor
Definition sipr.h:56
int16_t fc_indexes[5][10]
fixed-codebook indexes
Definition sipr.h:60
static AVFormatContext * ctx
Definition movenc.c:49