Libav
|
00001 /* 00002 * LSP computing for ACELP-based codecs 00003 * 00004 * Copyright (c) 2008 Vladimir Voroshilov 00005 * 00006 * This file is part of FFmpeg. 00007 * 00008 * FFmpeg is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public 00010 * License as published by the Free Software Foundation; either 00011 * version 2.1 of the License, or (at your option) any later version. 00012 * 00013 * FFmpeg is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with FFmpeg; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00021 */ 00022 00023 #ifndef AVCODEC_LSP_H 00024 #define AVCODEC_LSP_H 00025 00026 #include <stdint.h> 00027 00040 void ff_acelp_reorder_lsf(int16_t* lsfq, int lsfq_min_distance, int lsfq_min, int lsfq_max, int lp_order); 00041 00053 void ff_set_min_dist_lsf(float *lsf, double min_spacing, int order); 00054 00063 void ff_acelp_lsf2lsp(int16_t *lsp, const int16_t *lsf, int lp_order); 00064 00071 void ff_acelp_lsp2lpc(int16_t* lp, const int16_t* lsp, int lp_half_order); 00072 00081 void ff_acelp_lp_decode(int16_t* lp_1st, int16_t* lp_2nd, const int16_t* lsp_2nd, const int16_t* lsp_prev, int lp_order); 00082 00083 00084 #define MAX_LP_HALF_ORDER 8 00085 00098 void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order); 00099 00105 void ff_sort_nearly_sorted_floats(float *vals, int len); 00106 00117 void ff_lsp2polyf(const double *lsp, double *f, int lp_half_order); 00118 00119 #endif /* AVCODEC_LSP_H */