diff --git a/libcelt/modes.c b/libcelt/modes.c index 30d7a3e8..7b38c1e8 100644 --- a/libcelt/modes.c +++ b/libcelt/modes.c @@ -46,6 +46,8 @@ static const celt_int16 eband5ms[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40, 48, 60, 78, 100 }; +#if 1 + #define BITALLOC_SIZE 9 /* Bit allocation table in units of 1/32 bit/sample (0.1875 dB SNR) */ static const unsigned char band_allocation[] = { @@ -61,6 +63,26 @@ static const unsigned char band_allocation[] = { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,220,188,144,104, 84, 60, }; +#else +/* Alternate tuning (partially derived from Vorbis) */ +#define BITALLOC_SIZE 11 +/* Bit allocation table in units of 1/32 bit/sample (0.1875 dB SNR) */ +static const unsigned char band_allocation[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 85, 75, 70, 63, 55, 50, 45, 40, 35, 33, 28, 15, 1, 0, 0, 0, 0, 0, 0, 0, +108,105, 96, 88, 83, 77, 72, 66, 59, 53, 49, 44, 41, 37, 30, 27, 1, 0, 0, 0, 0, +120,117,108,100, 95, 89, 84, 78, 71, 65, 61, 56, 53, 49, 42, 34, 30, 25, 1, 0, 0, +136,131,123,118,109, 99, 93, 87, 81, 75, 69, 66, 61, 56, 50, 45, 40, 35, 32, 1, 1, +151,148,138,131,122,113,105,102, 96, 92, 85, 82, 76, 68, 63, 58, 51, 44, 38, 27, 8, +171,168,158,147,139,130,123,119,111,108,103, 99, 91, 82, 78, 75, 66, 55, 48, 36, 12, +187,184,174,163,155,146,139,135,127,124,119,115,107, 98, 94, 91, 82, 71, 64, 52, 28, +203,200,191,181,174,166,159,156,149,147,143,139,132,124,121,119,110,100, 94, 83, 60, +219,216,207,197,190,183,176,173,166,164,161,157,150,142,139,138,129,119,113,102, 80, +229,229,224,222,223,224,224,225,222,221,221,220,220,219,218,200,178,154,146,130,102, +}; + +#endif + #ifdef STATIC_MODES #include "static_modes.c" #endif