aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/g729data.h
diff options
context:
space:
mode:
authorVladimir Voroshilov <voroshil@gmail.com>2008-09-03 23:47:58 +0700
committerMichael Niedermayer <michaelni@gmx.at>2011-09-24 21:11:00 +0200
commite610c5f383f31e55a672961f1e671d83328c36b1 (patch)
tree064a96c6d93afe64266fb868025e32688dabcc79 /libavcodec/g729data.h
parentb7c7fc335900eb4bfd403115eecfafff23be684d (diff)
downloadffmpeg-e610c5f383f31e55a672961f1e671d83328c36b1.tar.gz
Add G.729D decoder
Diffstat (limited to 'libavcodec/g729data.h')
-rw-r--r--libavcodec/g729data.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/libavcodec/g729data.h b/libavcodec/g729data.h
index c36be40bc0..2509c3928a 100644
--- a/libavcodec/g729data.h
+++ b/libavcodec/g729data.h
@@ -351,4 +351,32 @@ static const uint16_t ma_prediction_coeff[4] = { /* (0.13) */
static const int16_t lsp_init[10]= { /* (0.15) */
30000, 26000, 21000, 15000, 8000, 0, -8000,-15000,-21000,-26000
};
+
+/**
+ * additional "phase" post-processing filter impulse response (D.6.2 of G.729)
+ *
+ * Table contains three impulse responses, correspond to
+ * different amounts of spreading.
+ */
+static const int16_t phase_filter[3][40] =
+{
+ { // maximum spreading (for noise-like segments)
+ 14690, 11518, 1268, -2762, -5672, 7514, -36, -2808, -3041, 4823,
+ 2952, -8425, 3785, 1455, 2179, -8638, 8051, -2104, -1455, 777,
+ 1108, -2386, 2254, -364, -675, -2104, 6046, -5682, 1072, 3123,
+ -5059, 5312, -2330, -3729, 6924, -3890, 675, -1776, 29, 10145,
+ },
+ { // medium spreading
+ 30274, 3831, -4037, 2972, -1049, -1003, 2477, -3044, 2815, -2232,
+ 1753, -1612, 1714, -1776, 1543, -1009, 429, -170, 472, -1265,
+ 2176, -2707, 2523, -1622, 344, 826, -1530, 1724, -1658, 1701,
+ -2064, 2644, -3061, 2897, -1979, 557, 780, -1370, 842, 655,
+ },
+ { // no spreading (for voiced speech)
+ 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ }
+};
#endif /* AVCODEC_G729DATA_H */