From 7ad909bd59ef97df8ed349c3d0a6a3a3f165542d Mon Sep 17 00:00:00 2001 From: Vladimir Voroshilov Date: Tue, 26 Aug 2008 07:10:38 +0000 Subject: [PATCH] Another set of definitions for G.729 Originally committed as revision 14973 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/g729data.h | 9 +++++++++ libavcodec/g729dec.c | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/libavcodec/g729data.h b/libavcodec/g729data.h index 5334e48..ee140a8 100644 --- a/libavcodec/g729data.h +++ b/libavcodec/g729data.h @@ -27,6 +27,15 @@ /// Moving Average (MA) prediction order #define MA_NP 4 +#define VQ_1ST_BITS 7 ///< first stage vector of quantizer (size in bits) +#define VQ_2ND_BITS 5 ///< second stage vector of quantizer (size in bits) + +#define GC_1ST_IDX_BITS_8K 3 ///< gain codebook (first stage) index, 8k mode (size in bits) +#define GC_2ND_IDX_BITS_8K 4 ///< gain codebook (second stage) index, 8k mode (size in bits) + +#define GC_1ST_IDX_BITS_6K4 3 ///< gain codebook (first stage) index, 6.4k mode (size in bits) +#define GC_2ND_IDX_BITS_6K4 3 ///< gain codebook (second stage) index, 6.4k mode (size in bits) + /** * first stage LSP codebook * (10-dimensional, with 128 entries (3.24 of G.729) diff --git a/libavcodec/g729dec.c b/libavcodec/g729dec.c index f00e597..f17524a 100644 --- a/libavcodec/g729dec.c +++ b/libavcodec/g729dec.c @@ -49,6 +49,21 @@ #define LSFQ_DIFF_MIN 321 /** + * minimum gain pitch value (3.8, Equation 47) + * 0.2 in (1.14) + */ +#define SHARP_MIN 3277 + +/** + * maximum gain pitch value (3.8, Equation 47) + * (EE) This does not comply with the specification. + * Specification says about 0.8, which should be + * 13107 in (1.14), but reference C code uses + * 13017 (equals to 0.7945) instead of it. + */ +#define SHARP_MAX 13017 + +/** * \brief pseudo random number generator */ static inline uint16_t g729_random(uint16_t value) -- 2.7.4