33 #ifndef FLAC__PRIVATE__LPC_H
34 #define FLAC__PRIVATE__LPC_H
42 #include "../../../format.h"
44 #ifndef FLAC__INTEGER_ONLY_LIBRARY
73 # ifdef FLAC__CPU_IA32
74 # ifdef FLAC__HAS_NASM
75 void FLAC__lpc_compute_autocorrelation_asm_ia32(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
76 void FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_4(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
77 void FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_8(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
78 void FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_12(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
79 void FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
82 # if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && defined FLAC__HAS_X86INTRIN
83 # ifdef FLAC__SSE_SUPPORTED
84 void FLAC__lpc_compute_autocorrelation_intrin_sse_lag_4(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
85 void FLAC__lpc_compute_autocorrelation_intrin_sse_lag_8(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
86 void FLAC__lpc_compute_autocorrelation_intrin_sse_lag_12(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
87 void FLAC__lpc_compute_autocorrelation_intrin_sse_lag_16(
const FLAC__real data[],
unsigned data_len,
unsigned lag,
FLAC__real autoc[]);
153 # ifdef FLAC__CPU_IA32
154 # ifdef FLAC__HAS_NASM
155 void FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
156 void FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32_mmx(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
157 void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
160 # if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && defined FLAC__HAS_X86INTRIN
161 # ifdef FLAC__SSE2_SUPPORTED
162 void FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_sse2(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
163 void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
165 # ifdef FLAC__SSE4_1_SUPPORTED
166 void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse41(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
167 void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
169 # ifdef FLAC__AVX2_SUPPORTED
170 void FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_avx2(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
171 void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_avx2(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
172 void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_avx2(
const FLAC__int32 *
data,
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 residual[]);
197 # ifdef FLAC__CPU_IA32
198 # ifdef FLAC__HAS_NASM
201 void FLAC__lpc_restore_signal_wide_asm_ia32(
const FLAC__int32 residual[],
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 data[]);
204 # if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && defined FLAC__HAS_X86INTRIN
205 # ifdef FLAC__SSE2_SUPPORTED
206 void FLAC__lpc_restore_signal_16_intrin_sse2(
const FLAC__int32 residual[],
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 data[]);
208 # ifdef FLAC__SSE4_1_SUPPORTED
209 void FLAC__lpc_restore_signal_wide_intrin_sse41(
const FLAC__int32 residual[],
unsigned data_len,
const FLAC__int32 qlp_coeff[],
unsigned order,
int lp_quantization,
FLAC__int32 data[]);
214 #ifndef FLAC__INTEGER_ONLY_LIBRARY
FLAC__double FLAC__lpc_compute_expected_bits_per_residual_sample_with_error_scale(FLAC__double lpc_error, FLAC__double error_scale)
Definition: lpc_flac.c:1315
int FLAC__lpc_quantize_coefficients(const FLAC__real lp_coeff[], unsigned order, unsigned precision, FLAC__int32 qlp_coeff[], int *shift)
Definition: lpc_flac.c:166
void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 residual[])
float FLAC__real
Definition: float.h:58
FLAC__double FLAC__lpc_compute_expected_bits_per_residual_sample(FLAC__double lpc_error, unsigned total_samples)
Definition: lpc_flac.c:1304
void FLAC__lpc_compute_lp_coefficients(const FLAC__real autoc[], unsigned *max_order, FLAC__real lp_coeff[][FLAC__MAX_LPC_ORDER], FLAC__double error[])
Definition: lpc_flac.c:122
void FLAC__lpc_restore_signal_wide(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
unsigned FLAC__lpc_compute_best_order(const FLAC__double lpc_error[], unsigned max_order, unsigned total_samples, unsigned overhead_bits_per_order)
Definition: lpc_flac.c:1332
void FLAC__lpc_window_data(const FLAC__int32 in[], const FLAC__real window[], FLAC__real out[], unsigned data_len)
Definition: lpc_flac.c:66
void FLAC__lpc_compute_autocorrelation(const FLAC__real data[], unsigned data_len, unsigned lag, FLAC__real autoc[])
Definition: lpc_flac.c:73
JSAMPIMAGE data
Definition: jpeglib.h:945
void FLAC__lpc_compute_residual_from_qlp_coefficients_wide(const FLAC__int32 *data, unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 residual[])
void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
double FLAC__double
Definition: float.h:52
int32_t FLAC__int32
Definition: ordinals.h:62