annotate lsp.h @ 6709:f18b7851b5a5 libavcodec

Use filename as multiple inclusion guard.
author diego
date Sun, 27 Apr 2008 10:01:07 +0000
parents 2cb901474f6f
children 459fe563a4dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6685
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
1 /*
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
2 * LSP computing for ACELP-based codecs
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
3 *
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
4 * Copyright (c) 2008 Vladimir Voroshilov
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
5 *
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
6 * This file is part of FFmpeg.
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
7 *
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
12 *
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
16 * Lesser General Public License for more details.
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
17 *
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
21 */
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
22
6709
f18b7851b5a5 Use filename as multiple inclusion guard.
diego
parents: 6706
diff changeset
23 #ifndef FFMPEG_LSP_H
f18b7851b5a5 Use filename as multiple inclusion guard.
diego
parents: 6706
diff changeset
24 #define FFMPEG_LSP_H
6685
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
25 /**
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
26 (I.F) means fixed-point value with F fractional and I integer bits
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
27 */
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
28
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
29 /**
6706
2cb901474f6f Grammar fixes and improvements for the new ACELP code
superdump
parents: 6685
diff changeset
30 * \brief ensure a minimum distance between LSFs
6685
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
31 * \param lsfq [in/out] LSF to check and adjust
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
32 * \param lsfq_min_distance minimum distance between LSFs
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
33 * \param lsfq_min minimum allowed LSF value
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
34 * \param lsfq_max maximum allowed LSF value
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
35 */
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
36 void ff_acelp_reorder_lsf(int16_t* lsfq, int lsfq_min_distance, int lsqf_min, int lsfq_max);
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
37
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
38 /**
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
39 * \brief Convert LSF to LSP
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
40 * \param lsp [out] LSP coefficients (-0x8000 <= (0.15) < 0x8000)
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
41 * \param lsf normalized LSF coefficients (0 <= (2.13) < 0x2000 * PI)
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
42 *
6706
2cb901474f6f Grammar fixes and improvements for the new ACELP code
superdump
parents: 6685
diff changeset
43 * \remark It is safe to pass the same array into the lsf and lsp parameters.
6685
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
44 */
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
45 void ff_acelp_lsf2lsp(int16_t *lsp, const int16_t *lsf);
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
46
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
47 /**
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
48 * \brief LSP to LP conversion (3.2.6 of G.729)
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
49 * \param lp [out] decoded LP coefficients (-0x8000 <= (3.12) < 0x8000)
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
50 * \param lsp LSP coefficients (-0x8000 <= (0.15) < 0x8000)
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
51 */
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
52 void ff_acelp_lsp2lpc(int16_t* lp, const int16_t* lsp);
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
53
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
54 /**
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
55 * \brief Interpolate LSP for the first subframe and convert LSP -> LP for both subframes (3.2.5 and 3.2.6 of G.729)
6706
2cb901474f6f Grammar fixes and improvements for the new ACELP code
superdump
parents: 6685
diff changeset
56 * \param lp_1st [out] decoded LP coefficients for first subframe (-0x8000 <= (3.12) < 0x8000)
6685
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
57 * \param lp_2nd [out] decoded LP coefficients for second subframe (-0x8000 <= (3.12) < 0x8000)
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
58 * \param lsp_2nd LSP coefficients of the second subframe (-0x8000 <= (0.15) < 0x8000)
6706
2cb901474f6f Grammar fixes and improvements for the new ACELP code
superdump
parents: 6685
diff changeset
59 * \param lsp_prev LSP coefficients from the second subframe of the previous frame (-0x8000 <= (0.15) < 0x8000)
6685
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
60 */
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
61 void ff_acelp_lp_decode(int16_t* lp_1st, int16_t* lp_2nd, const int16_t* lsp_2nd, const int16_t* lsp_prev);
df4f7cf1ee5f Fixed-point LSP and LPC decoding routines for ACELP-based codecs
voroshil
parents:
diff changeset
62
6709
f18b7851b5a5 Use filename as multiple inclusion guard.
diego
parents: 6706
diff changeset
63 #endif /* FFMPEG_LSP_H */