diff options
author | Vladimir Voroshilov <voroshil@gmail.com> | 2008-09-03 23:47:58 +0700 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-09-24 21:11:00 +0200 |
commit | e610c5f383f31e55a672961f1e671d83328c36b1 (patch) | |
tree | 064a96c6d93afe64266fb868025e32688dabcc79 /libavcodec/g729data.h | |
parent | b7c7fc335900eb4bfd403115eecfafff23be684d (diff) | |
download | ffmpeg-e610c5f383f31e55a672961f1e671d83328c36b1.tar.gz |
Add G.729D decoder
Diffstat (limited to 'libavcodec/g729data.h')
-rw-r--r-- | libavcodec/g729data.h | 28 |
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 */ |