/********************************************************************** * MPEG/Audio Tables I/O routines **********************************************************************/ #include #include #include #include #include "common.h" #include "mem.h" #include "tables.h" #define NUMTABLES 38 char table_names[NUMTABLES][9]; long table_offsets[NUMTABLES]; int numtables = 0; char table_filename[250]; int pick_table (frame_info * frame) /* choose table, load if necess, return # sb's */ { int table, lay, ws, bsp, br_per_ch, sfrq; int sblim = frame->sblimit; /* return current value if no load */ lay = frame->header->lay - 1; bsp = frame->header->bitrate_index; br_per_ch = bitrate[frame->header->version][bsp] / frame->nch; ws = frame->header->sampling_frequency; sfrq = s_freq[frame->header->version][ws]; /* decision rules refer to per-channel bitrates (kbits/sec/chan) */ if (frame->header->version == MPEG_AUDIO_ID) { /* MPEG-1 */ if ((sfrq == 48 && br_per_ch >= 56) || (br_per_ch >= 56 && br_per_ch <= 80)) table = 0; else if (sfrq != 48 && br_per_ch >= 96) table = 1; else if (sfrq != 32 && br_per_ch <= 48) table = 2; else table = 3; } else { /* MPEG-2 LSF */ table = 4; } if (frame->tab_num != table) { if (frame->tab_num >= 0) mem_free ((void **) &(frame->alloc)); frame->alloc = (al_table *) mem_alloc (sizeof (al_table), "alloc"); sblim = read_bit_alloc (frame->tab_num = table, frame->alloc); } return sblim; } /*********************************************************************** * * Read one of the data files ("alloc_*") specifying the bit allocation * quatization parameters for each subband in layer II encoding * **********************************************************************/ int read_bit_alloc (table, alloc) /* read in table, return # subbands */ int table; al_table *alloc; { static const int startindex_subband[5] = { 0, 290, 592, 674, 788 }; static const char alloc_subbands[][20] = { "", "27", "0 0 0 4 0 0", "0 1 3 5 1 0", "0 2 7 3 3 2", "0 3 15 4 3 4", "0 4 31 5 3 5", "0 5 63 6 3 6", "0 6 127 7 3 7", "0 7 255 8 3 8", "0 8 511 9 3 9", "0 9 1023 10 3 10", "0 10 2047 11 3 11", "0 11 4095 12 3 12", "0 12 8191 13 3 13", "0 13 16383 14 3 14", "0 14 32767 15 3 15", "0 15 65535 16 3 16", "1 0 0 4 0 0", "1 1 3 5 1 0", "1 2 7 3 3 2", "1 3 15 4 3 4", "1 4 31 5 3 5", "1 5 63 6 3 6", "1 6 127 7 3 7", "1 7 255 8 3 8", "1 8 511 9 3 9", "1 9 1023 10 3 10", "1 10 2047 11 3 11", "1 11 4095 12 3 12", "1 12 8191 13 3 13", "1 13 16383 14 3 14", "1 14 32767 15 3 15", "1 15 65535 16 3 16", "2 0 0 4 0 0", "2 1 3 5 1 0", "2 2 7 3 3 2", "2 3 15 4 3 4", "2 4 31 5 3 5", "2 5 63 6 3 6", "2 6 127 7 3 7", "2 7 255 8 3 8", "2 8 511 9 3 9", "2 9 1023 10 3 10", "2 10 2047 11 3 11", "2 11 4095 12 3 12", "2 12 8191 13 3 13", "2 13 16383 14 3 14", "2 14 32767 15 3 15", "2 15 65535 16 3 16", "3 0 0 4 0 0", "3 1 3 5 1 0", "3 2 5 7 1 1", "3 3 7 3 3 2", "3 4 9 10 1 3", "3 5 15 4 3 4", "3 6 31 5 3 5", "3 7 63 6 3 6", "3 8 127 7 3 7 ", "3 9 255 8 3 8", "3 10 511 9 3 9", "3 11 1023 10 3 10", "3 12 2047 11 3 11", "3 13 4095 12 3 12", "3 14 8191 13 3 13", "3 15 65535 16 3 16", "4 0 0 4 0 0", "4 1 3 5 1 0", "4 2 5 7 1 1", "4 3 7 3 3 2", "4 4 9 10 1 3", "4 5 15 4 3 4", "4 6 31 5 3 5", "4 7 63 6 3 6", "4 8 127 7 3 7 ", "4 9 255 8 3 8", "4 10 511 9 3 9", "4 11 1023 10 3 10", "4 12 2047 11 3 11", "4 13 4095 12 3 12", "4 14 8191 13 3 13", "4 15 65535 16 3 16", "5 0 0 4 0 0", "5 1 3 5 1 0", "5 2 5 7 1 1", "5 3 7 3 3 2", "5 4 9 10 1 3", "5 5 15 4 3 4", "5 6 31 5 3 5", "5 7 63 6 3 6", "5 8 127 7 3 7 ", "5 9 255 8 3 8", "5 10 511 9 3 9", "5 11 1023 10 3 10", "5 12 2047 11 3 11", "5 13 4095 12 3 12", "5 14 8191 13 3 13", "5 15 65535 16 3 16", "6 0 0 4 0 0", "6 1 3 5 1 0", "6 2 5 7 1 1", "6 3 7 3 3 2", "6 4 9 10 1 3", "6 5 15 4 3 4", "6 6 31 5 3 5", "6 7 63 6 3 6", "6 8 127 7 3 7 ", "6 9 255 8 3 8", "6 10 511 9 3 9", "6 11 1023 10 3 10", "6 12 2047 11 3 11", "6 13 4095 12 3 12", "6 14 8191 13 3 13", "6 15 65535 16 3 16", "7 0 0 4 0 0", "7 1 3 5 1 0", "7 2 5 7 1 1", "7 3 7 3 3 2", "7 4 9 10 1 3", "7 5 15 4 3 4", "7 6 31 5 3 5", "7 7 63 6 3 6", "7 8 127 7 3 7 ", "7 9 255 8 3 8", "7 10 511 9 3 9", "7 11 1023 10 3 10", "7 12 2047 11 3 11", "7 13 4095 12 3 12", "7 14 8191 13 3 13", "7 15 65535 16 3 16", "8 0 0 4 0 0", "8 1 3 5 1 0", "8 2 5 7 1 1", "8 3 7 3 3 2", "8 4 9 10 1 3", "8 5 15 4 3 4", "8 6 31 5 3 5", "8 7 63 6 3 6", "8 8 127 7 3 7 ", "8 9 255 8 3 8", "8 10 511 9 3 9", "8 11 1023 10 3 10", "8 12 2047 11 3 11", "8 13 4095 12 3 12", "8 14 8191 13 3 13", "8 15 65535 16 3 16", "9 0 0 4 0 0", "9 1 3 5 1 0", "9 2 5 7 1 1", "9 3 7 3 3 2", "9 4 9 10 1 3", "9 5 15 4 3 4", "9 6 31 5 3 5", "9 7 63 6 3 6", "9 8 127 7 3 7 ", "9 9 255 8 3 8", "9 10 511 9 3 9", "9 11 1023 10 3 10", "9 12 2047 11 3 11", "9 13 4095 12 3 12", "9 14 8191 13 3 13", "9 15 65535 16 3 16", "10 0 0 4 0 0", "10 1 3 5 1 0", "10 2 5 7 1 1", "10 3 7 3 3 2", "10 4 9 10 1 3", "10 5 15 4 3 4", "10 6 31 5 3 5", "10 7 63 6 3 6", "10 8 127 7 3 7 ", "10 9 255 8 3 8", "10 10 511 9 3 9", "10 11 1023 10 3 10", "10 12 2047 11 3 11", "10 13 4095 12 3 12", "10 14 8191 13 3 13", "10 15 65535 16 3 16", "11 0 0 3 0 0", "11 1 3 5 1 0", "11 2 5 7 1 1", "11 3 7 3 3 2", "11 4 9 10 1 3", "11 5 15 4 3 4", "11 6 31 5 3 5", "11 7 65535 16 3 16 ", "12 0 0 3 0 0", "12 1 3 5 1 0", "12 2 5 7 1 1", "12 3 7 3 3 2", "12 4 9 10 1 3", "12 5 15 4 3 4", "12 6 31 5 3 5", "12 7 65535 16 3 16 ", "13 0 0 3 0 0", "13 1 3 5 1 0", "13 2 5 7 1 1", "13 3 7 3 3 2", "13 4 9 10 1 3", "13 5 15 4 3 4", "13 6 31 5 3 5", "13 7 65535 16 3 16 ", "14 0 0 3 0 0", "14 1 3 5 1 0", "14 2 5 7 1 1", "14 3 7 3 3 2", "14 4 9 10 1 3", "14 5 15 4 3 4", "14 6 31 5 3 5", "14 7 65535 16 3 16 ", "15 0 0 3 0 0", "15 1 3 5 1 0", "15 2 5 7 1 1", "15 3 7 3 3 2", "15 4 9 10 1 3", "15 5 15 4 3 4", "15 6 31 5 3 5", "15 7 65535 16 3 16 ", "16 0 0 3 0 0", "16 1 3 5 1 0", "16 2 5 7 1 1", "16 3 7 3 3 2", "16 4 9 10 1 3", "16 5 15 4 3 4", "16 6 31 5 3 5", "16 7 65535 16 3 16 ", "17 0 0 3 0 0", "17 1 3 5 1 0", "17 2 5 7 1 1", "17 3 7 3 3 2", "17 4 9 10 1 3", "17 5 15 4 3 4", "17 6 31 5 3 5", "17 7 65535 16 3 16 ", "18 0 0 3 0 0", "18 1 3 5 1 0", "18 2 5 7 1 1", "18 3 7 3 3 2", "18 4 9 10 1 3", "18 5 15 4 3 4", "18 6 31 5 3 5", "18 7 65535 16 3 16 ", "19 0 0 3 0 0", "19 1 3 5 1 0", "19 2 5 7 1 1", "19 3 7 3 3 2", "19 4 9 10 1 3", "19 5 15 4 3 4", "19 6 31 5 3 5", "19 7 65535 16 3 16 ", "20 0 0 3 0 0", "20 1 3 5 1 0", "20 2 5 7 1 1", "20 3 7 3 3 2", "20 4 9 10 1 3", "20 5 15 4 3 4", "20 6 31 5 3 5", "20 7 65535 16 3 16 ", "21 0 0 3 0 0", "21 1 3 5 1 0", "21 2 5 7 1 1", "21 3 7 3 3 2", "21 4 9 10 1 3", "21 5 15 4 3 4", "21 6 31 5 3 5", "21 7 65535 16 3 16 ", "22 0 0 3 0 0", "22 1 3 5 1 0", "22 2 5 7 1 1", "22 3 7 3 3 2", "22 4 9 10 1 3", "22 5 15 4 3 4", "22 6 31 5 3 5", "22 7 65535 16 3 16 ", "23 0 0 2 0 0", "23 1 3 5 1 0", "23 2 5 7 1 1", "23 3 65535 16 3 16", "24 0 0 2 0 0", "24 1 3 5 1 0", "24 2 5 7 1 1", "24 3 65535 16 3 16", "25 0 0 2 0 0", "25 1 3 5 1 0", "25 2 5 7 1 1", "25 3 65535 16 3 16", "26 0 0 2 0 0", "26 1 3 5 1 0", "26 2 5 7 1 1", "26 3 65535 16 3 16", "", "30", "0 0 0 4 0 0", "0 1 3 5 1 0", "0 2 7 3 3 2", "0 3 15 4 3 4", "0 4 31 5 3 5", "0 5 63 6 3 6", "0 6 127 7 3 7", "0 7 255 8 3 8", "0 8 511 9 3 9", "0 9 1023 10 3 10", "0 10 2047 11 3 11", "0 11 4095 12 3 12", "0 12 8191 13 3 13", "0 13 16383 14 3 14", "0 14 32767 15 3 15", "0 15 65535 16 3 16", "1 0 0 4 0 0", "1 1 3 5 1 0", "1 2 7 3 3 2", "1 3 15 4 3 4", "1 4 31 5 3 5", "1 5 63 6 3 6", "1 6 127 7 3 7", "1 7 255 8 3 8", "1 8 511 9 3 9", "1 9 1023 10 3 10", "1 10 2047 11 3 11", "1 11 4095 12 3 12", "1 12 8191 13 3 13", "1 13 16383 14 3 14", "1 14 32767 15 3 15", "1 15 65535 16 3 16", "2 0 0 4 0 0", "2 1 3 5 1 0", "2 2 7 3 3 2", "2 3 15 4 3 4", "2 4 31 5 3 5", "2 5 63 6 3 6", "2 6 127 7 3 7", "2 7 255 8 3 8", "2 8 511 9 3 9", "2 9 1023 10 3 10", "2 10 2047 11 3 11", "2 11 4095 12 3 12", "2 12 8191 13 3 13", "2 13 16383 14 3 14", "2 14 32767 15 3 15", "2 15 65535 16 3 16", "3 0 0 4 0 0", "3 1 3 5 1 0", "3 2 5 7 1 1", "3 3 7 3 3 2", "3 4 9 10 1 3", "3 5 15 4 3 4", "3 6 31 5 3 5", "3 7 63 6 3 6", "3 8 127 7 3 7 ", "3 9 255 8 3 8", "3 10 511 9 3 9", "3 11 1023 10 3 10", "3 12 2047 11 3 11", "3 13 4095 12 3 12", "3 14 8191 13 3 13", "3 15 65535 16 3 16", "4 0 0 4 0 0", "4 1 3 5 1 0", "4 2 5 7 1 1", "4 3 7 3 3 2", "4 4 9 10 1 3", "4 5 15 4 3 4", "4 6 31 5 3 5", "4 7 63 6 3 6", "4 8 127 7 3 7 ", "4 9 255 8 3 8", "4 10 511 9 3 9", "4 11 1023 10 3 10", "4 12 2047 11 3 11", "4 13 4095 12 3 12", "4 14 8191 13 3 13", "4 15 65535 16 3 16", "5 0 0 4 0 0", "5 1 3 5 1 0", "5 2 5 7 1 1", "5 3 7 3 3 2", "5 4 9 10 1 3", "5 5 15 4 3 4", "5 6 31 5 3 5", "5 7 63 6 3 6", "5 8 127 7 3 7 ", "5 9 255 8 3 8", "5 10 511 9 3 9", "5 11 1023 10 3 10", "5 12 2047 11 3 11", "5 13 4095 12 3 12", "5 14 8191 13 3 13", "5 15 65535 16 3 16", "6 0 0 4 0 0", "6 1 3 5 1 0", "6 2 5 7 1 1", "6 3 7 3 3 2", "6 4 9 10 1 3", "6 5 15 4 3 4", "6 6 31 5 3 5", "6 7 63 6 3 6", "6 8 127 7 3 7 ", "6 9 255 8 3 8", "6 10 511 9 3 9", "6 11 1023 10 3 10", "6 12 2047 11 3 11", "6 13 4095 12 3 12", "6 14 8191 13 3 13", "6 15 65535 16 3 16", "7 0 0 4 0 0", "7 1 3 5 1 0", "7 2 5 7 1 1", "7 3 7 3 3 2", "7 4 9 10 1 3", "7 5 15 4 3 4", "7 6 31 5 3 5", "7 7 63 6 3 6", "7 8 127 7 3 7 ", "7 9 255 8 3 8", "7 10 511 9 3 9", "7 11 1023 10 3 10", "7 12 2047 11 3 11", "7 13 4095 12 3 12", "7 14 8191 13 3 13", "7 15 65535 16 3 16", "8 0 0 4 0 0", "8 1 3 5 1 0", "8 2 5 7 1 1", "8 3 7 3 3 2", "8 4 9 10 1 3", "8 5 15 4 3 4", "8 6 31 5 3 5", "8 7 63 6 3 6", "8 8 127 7 3 7 ", "8 9 255 8 3 8", "8 10 511 9 3 9", "8 11 1023 10 3 10", "8 12 2047 11 3 11", "8 13 4095 12 3 12", "8 14 8191 13 3 13", "8 15 65535 16 3 16", "9 0 0 4 0 0", "9 1 3 5 1 0", "9 2 5 7 1 1", "9 3 7 3 3 2", "9 4 9 10 1 3", "9 5 15 4 3 4", "9 6 31 5 3 5", "9 7 63 6 3 6", "9 8 127 7 3 7 ", "9 9 255 8 3 8", "9 10 511 9 3 9", "9 11 1023 10 3 10", "9 12 2047 11 3 11", "9 13 4095 12 3 12", "9 14 8191 13 3 13", "9 15 65535 16 3 16", "10 0 0 4 0 0", "10 1 3 5 1 0", "10 2 5 7 1 1", "10 3 7 3 3 2", "10 4 9 10 1 3", "10 5 15 4 3 4", "10 6 31 5 3 5", "10 7 63 6 3 6", "10 8 127 7 3 7 ", "10 9 255 8 3 8", "10 10 511 9 3 9", "10 11 1023 10 3 10", "10 12 2047 11 3 11", "10 13 4095 12 3 12", "10 14 8191 13 3 13", "10 15 65535 16 3 16", "11 0 0 3 0 0", "11 1 3 5 1 0", "11 2 5 7 1 1", "11 3 7 3 3 2", "11 4 9 10 1 3", "11 5 15 4 3 4", "11 6 31 5 3 5", "11 7 65535 16 3 16 ", "12 0 0 3 0 0", "12 1 3 5 1 0", "12 2 5 7 1 1", "12 3 7 3 3 2", "12 4 9 10 1 3", "12 5 15 4 3 4", "12 6 31 5 3 5", "12 7 65535 16 3 16 ", "13 0 0 3 0 0", "13 1 3 5 1 0", "13 2 5 7 1 1", "13 3 7 3 3 2", "13 4 9 10 1 3", "13 5 15 4 3 4", "13 6 31 5 3 5", "13 7 65535 16 3 16 ", "14 0 0 3 0 0", "14 1 3 5 1 0", "14 2 5 7 1 1", "14 3 7 3 3 2", "14 4 9 10 1 3", "14 5 15 4 3 4", "14 6 31 5 3 5", "14 7 65535 16 3 16 ", "15 0 0 3 0 0", "15 1 3 5 1 0", "15 2 5 7 1 1", "15 3 7 3 3 2", "15 4 9 10 1 3", "15 5 15 4 3 4", "15 6 31 5 3 5", "15 7 65535 16 3 16 ", "16 0 0 3 0 0", "16 1 3 5 1 0", "16 2 5 7 1 1", "16 3 7 3 3 2", "16 4 9 10 1 3", "16 5 15 4 3 4", "16 6 31 5 3 5", "16 7 65535 16 3 16 ", "17 0 0 3 0 0", "17 1 3 5 1 0", "17 2 5 7 1 1", "17 3 7 3 3 2", "17 4 9 10 1 3", "17 5 15 4 3 4", "17 6 31 5 3 5", "17 7 65535 16 3 16 ", "18 0 0 3 0 0", "18 1 3 5 1 0", "18 2 5 7 1 1", "18 3 7 3 3 2", "18 4 9 10 1 3", "18 5 15 4 3 4", "18 6 31 5 3 5", "18 7 65535 16 3 16 ", "19 0 0 3 0 0", "19 1 3 5 1 0", "19 2 5 7 1 1", "19 3 7 3 3 2", "19 4 9 10 1 3", "19 5 15 4 3 4", "19 6 31 5 3 5", "19 7 65535 16 3 16 ", "20 0 0 3 0 0", "20 1 3 5 1 0", "20 2 5 7 1 1", "20 3 7 3 3 2", "20 4 9 10 1 3", "20 5 15 4 3 4", "20 6 31 5 3 5", "20 7 65535 16 3 16 ", "21 0 0 3 0 0", "21 1 3 5 1 0", "21 2 5 7 1 1", "21 3 7 3 3 2", "21 4 9 10 1 3", "21 5 15 4 3 4", "21 6 31 5 3 5", "21 7 65535 16 3 16 ", "22 0 0 3 0 0", "22 1 3 5 1 0", "22 2 5 7 1 1", "22 3 7 3 3 2", "22 4 9 10 1 3", "22 5 15 4 3 4", "22 6 31 5 3 5", "22 7 65535 16 3 16 ", "23 0 0 2 0 0", "23 1 3 5 1 0", "23 2 5 7 1 1", "23 3 65535 16 3 16", "24 0 0 2 0 0", "24 1 3 5 1 0", "24 2 5 7 1 1", "24 3 65535 16 3 16", "25 0 0 2 0 0", "25 1 3 5 1 0", "25 2 5 7 1 1", "25 3 65535 16 3 16", "26 0 0 2 0 0", "26 1 3 5 1 0", "26 2 5 7 1 1", "26 3 65535 16 3 16", "27 0 0 2 0 0", "27 1 3 5 1 0", "27 2 5 7 1 1", "27 3 65535 16 3 16", "28 0 0 2 0 0", "28 1 3 5 1 0", "28 2 5 7 1 1", "28 3 65535 16 3 16", "29 0 0 2 0 0", "29 1 3 5 1 0", "29 2 5 7 1 1", "29 3 65535 16 3 16", "", "8", "0 0 0 4 0 0", "0 1 3 5 1 0", "0 2 5 7 1 1", "0 3 9 10 1 3", "0 4 15 4 3 4", "0 5 31 5 3 5", "0 6 63 6 3 6", "0 7 127 7 3 7", "0 8 255 8 3 8", "0 9 511 9 3 9", "0 10 1023 10 3 10", "0 11 2047 11 3 11", "0 12 4095 12 3 12", "0 13 8191 13 3 13", "0 14 16383 14 3 14", "0 15 32767 15 3 15", "1 0 0 4 0 0", "1 1 3 5 1 0", "1 2 5 7 1 1", "1 3 9 10 1 3", "1 4 15 4 3 4", "1 5 31 5 3 5", "1 6 63 6 3 6", "1 7 127 7 3 7", "1 8 255 8 3 8", "1 9 511 9 3 9", "1 10 1023 10 3 10", "1 11 2047 11 3 11", "1 12 4095 12 3 12", "1 13 8191 13 3 13", "1 14 16383 14 3 14", "1 15 32767 15 3 15", "2 0 0 3 0 0", "2 1 3 5 1 0", "2 2 5 7 1 1", "2 3 9 10 1 3", "2 4 15 4 3 4", "2 5 31 5 3 5", "2 6 63 6 3 6", "2 7 127 7 3 7", "3 0 0 3 0 0", "3 1 3 5 1 0", "3 2 5 7 1 1", "3 3 9 10 1 3", "3 4 15 4 3 4", "3 5 31 5 3 5", "3 6 63 6 3 6", "3 7 127 7 3 7", "4 0 0 3 0 0", "4 1 3 5 1 0", "4 2 5 7 1 1", "4 3 9 10 1 3", "4 4 15 4 3 4", "4 5 31 5 3 5", "4 6 63 6 3 6", "4 7 127 7 3 7", "5 0 0 3 0 0", "5 1 3 5 1 0", "5 2 5 7 1 1", "5 3 9 10 1 3", "5 4 15 4 3 4", "5 5 31 5 3 5", "5 6 63 6 3 6", "5 7 127 7 3 7", "6 0 0 3 0 0", "6 1 3 5 1 0", "6 2 5 7 1 1", "6 3 9 10 1 3", "6 4 15 4 3 4", "6 5 31 5 3 5", "6 6 63 6 3 6", "6 7 127 7 3 7", "7 0 0 3 0 0", "7 1 3 5 1 0", "7 2 5 7 1 1", "7 3 9 10 1 3", "7 4 15 4 3 4", "7 5 31 5 3 5", "7 6 63 6 3 6", "7 7 127 7 3 7", "", "12", "0 0 0 4 0 0", "0 1 3 5 1 0", "0 2 5 7 1 1", "0 3 9 10 1 3", "0 4 15 4 3 4", "0 5 31 5 3 5", "0 6 63 6 3 6", "0 7 127 7 3 7", "0 8 255 8 3 8", "0 9 511 9 3 9", "0 10 1023 10 3 10", "0 11 2047 11 3 11", "0 12 4095 12 3 12", "0 13 8191 13 3 13", "0 14 16383 14 3 14", "0 15 32767 15 3 15", "1 0 0 4 0 0", "1 1 3 5 1 0", "1 2 5 7 1 1", "1 3 9 10 1 3", "1 4 15 4 3 4", "1 5 31 5 3 5", "1 6 63 6 3 6", "1 7 127 7 3 7", "1 8 255 8 3 8", "1 9 511 9 3 9", "1 10 1023 10 3 10", "1 11 2047 11 3 11", "1 12 4095 12 3 12", "1 13 8191 13 3 13", "1 14 16383 14 3 14", "1 15 32767 15 3 15", "2 0 0 3 0 0", "2 1 3 5 1 0", "2 2 5 7 1 1", "2 3 9 10 1 3", "2 4 15 4 3 4", "2 5 31 5 3 5", "2 6 63 6 3 6", "2 7 127 7 3 7", "3 0 0 3 0 0", "3 1 3 5 1 0", "3 2 5 7 1 1", "3 3 9 10 1 3", "3 4 15 4 3 4", "3 5 31 5 3 5", "3 6 63 6 3 6", "3 7 127 7 3 7", "4 0 0 3 0 0", "4 1 3 5 1 0", "4 2 5 7 1 1", "4 3 9 10 1 3", "4 4 15 4 3 4", "4 5 31 5 3 5", "4 6 63 6 3 6", "4 7 127 7 3 7", "5 0 0 3 0 0", "5 1 3 5 1 0", "5 2 5 7 1 1", "5 3 9 10 1 3", "5 4 15 4 3 4", "5 5 31 5 3 5", "5 6 63 6 3 6", "5 7 127 7 3 7", "6 0 0 3 0 0", "6 1 3 5 1 0", "6 2 5 7 1 1", "6 3 9 10 1 3", "6 4 15 4 3 4", "6 5 31 5 3 5", "6 6 63 6 3 6", "6 7 127 7 3 7", "7 0 0 3 0 0", "7 1 3 5 1 0", "7 2 5 7 1 1", "7 3 9 10 1 3", "7 4 15 4 3 4", "7 5 31 5 3 5", "7 6 63 6 3 6", "7 7 127 7 3 7", "8 0 0 3 0 0", "8 1 3 5 1 0", "8 2 5 7 1 1", "8 3 9 10 1 3", "8 4 15 4 3 4", "8 5 31 5 3 5", "8 6 63 6 3 6", "8 7 127 7 3 7", "9 0 0 3 0 0", "9 1 3 5 1 0", "9 2 5 7 1 1", "9 3 9 10 1 3", "9 4 15 4 3 4", "9 5 31 5 3 5", "9 6 63 6 3 6", "9 7 127 7 3 7", "10 0 0 3 0 0", "10 1 3 5 1 0", "10 2 5 7 1 1", "10 3 9 10 1 3", "10 4 15 4 3 4", "10 5 31 5 3 5", "10 6 63 6 3 6", "10 7 127 7 3 7", "11 0 0 3 0 0", "11 1 3 5 1 0", "11 2 5 7 1 1", "11 3 9 10 1 3", "11 4 15 4 3 4", "11 5 31 5 3 5", "11 6 63 6 3 6", "11 7 127 7 3 7", "", "30", "0 0 0 4 0 0", "0 1 3 5 1 0", "0 2 5 7 1 1", "0 3 7 3 3 2", "0 4 9 10 1 3", "0 5 15 4 3 4", "0 6 31 5 3 5", "0 7 63 6 3 6", "0 8 127 7 3 7", "0 9 255 8 3 8", "0 10 511 9 3 9", "0 11 1023 10 3 10", "0 12 2047 11 3 11", "0 13 4095 12 3 12", "0 14 8191 13 3 13", "0 15 16383 14 3 14", "1 0 0 4 0 0", "1 1 3 5 1 0", "1 2 5 7 1 1", "1 3 7 3 3 2", "1 4 9 10 1 3", "1 5 15 4 3 4", "1 6 31 5 3 5", "1 7 63 6 3 6", "1 8 127 7 3 7", "1 9 255 8 3 8", "1 10 511 9 3 9", "1 11 1023 10 3 10", "1 12 2047 11 3 11", "1 13 4095 12 3 12", "1 14 8191 13 3 13", "1 15 16383 14 3 14", "2 0 0 4 0 0", "2 1 3 5 1 0", "2 2 5 7 1 1", "2 3 7 3 3 2", "2 4 9 10 1 3", "2 5 15 4 3 4", "2 6 31 5 3 5", "2 7 63 6 3 6", "2 8 127 7 3 7", "2 9 255 8 3 8", "2 10 511 9 3 9", "2 11 1023 10 3 10", "2 12 2047 11 3 11", "2 13 4095 12 3 12", "2 14 8191 13 3 13", "2 15 16383 14 3 14", "3 0 0 4 0 0", "3 1 3 5 1 0", "3 2 5 7 1 1", "3 3 7 3 3 2", "3 4 9 10 1 3", "3 5 15 4 3 4", "3 6 31 5 3 5", "3 7 63 6 3 6", "3 8 127 7 3 7", "3 9 255 8 3 8", "3 10 511 9 3 9", "3 11 1023 10 3 10", "3 12 2047 11 3 11", "3 13 4095 12 3 12", "3 14 8191 13 3 13", "3 15 16383 14 3 14", "4 0 0 3 0 0", "4 1 3 5 1 0", "4 2 5 7 1 1", "4 3 9 10 1 3", "4 4 15 4 3 4", "4 5 31 5 3 5", "4 6 63 6 3 6", "4 7 127 7 3 7 ", "5 0 0 3 0 0", "5 1 3 5 1 0", "5 2 5 7 1 1", "5 3 9 10 1 3", "5 4 15 4 3 4", "5 5 31 5 3 5", "5 6 63 6 3 6", "5 7 127 7 3 7 ", "6 0 0 3 0 0", "6 1 3 5 1 0", "6 2 5 7 1 1", "6 3 9 10 1 3", "6 4 15 4 3 4", "6 5 31 5 3 5", "6 6 63 6 3 6", "6 7 127 7 3 7 ", "7 0 0 3 0 0", "7 1 3 5 1 0", "7 2 5 7 1 1", "7 3 9 10 1 3", "7 4 15 4 3 4", "7 5 31 5 3 5", "7 6 63 6 3 6", "7 7 127 7 3 7 ", "8 0 0 3 0 0", "8 1 3 5 1 0", "8 2 5 7 1 1", "8 3 9 10 1 3", "8 4 15 4 3 4", "8 5 31 5 3 5", "8 6 63 6 3 6", "8 7 127 7 3 7 ", "9 0 0 3 0 0", "9 1 3 5 1 0", "9 2 5 7 1 1", "9 3 9 10 1 3", "9 4 15 4 3 4", "9 5 31 5 3 5", "9 6 63 6 3 6", "9 7 127 7 3 7 ", "10 0 0 3 0 0", "10 1 3 5 1 0", "10 2 5 7 1 1", "10 3 9 10 1 3", "10 4 15 4 3 4", "10 5 31 5 3 5", "10 6 63 6 3 6", "10 7 127 7 3 7 ", "11 0 0 2 0 0", "11 1 3 5 1 0", "11 2 5 7 1 1", "11 3 9 10 1 3", "12 0 0 2 0 0", "12 1 3 5 1 0", "12 2 5 7 1 1", "12 3 9 10 1 3", "13 0 0 2 0 0", "13 1 3 5 1 0", "13 2 5 7 1 1", "13 3 9 10 1 3", "14 0 0 2 0 0", "14 1 3 5 1 0", "14 2 5 7 1 1", "14 3 9 10 1 3", "15 0 0 2 0 0", "15 1 3 5 1 0", "15 2 5 7 1 1", "15 3 9 10 1 3", "16 0 0 2 0 0", "16 1 3 5 1 0", "16 2 5 7 1 1", "16 3 9 10 1 3", "17 0 0 2 0 0", "17 1 3 5 1 0", "17 2 5 7 1 1", "17 3 9 10 1 3", "18 0 0 2 0 0", "18 1 3 5 1 0", "18 2 5 7 1 1", "18 3 9 10 1 3", "19 0 0 2 0 0", "19 1 3 5 1 0", "19 2 5 7 1 1", "19 3 9 10 1 3", "20 0 0 2 0 0", "20 1 3 5 1 0", "20 2 5 7 1 1", "20 3 9 10 1 3", "21 0 0 2 0 0", "21 1 3 5 1 0", "21 2 5 7 1 1", "21 3 9 10 1 3", "22 0 0 2 0 0", "22 1 3 5 1 0", "22 2 5 7 1 1", "22 3 9 10 1 3", "23 0 0 2 0 0", "23 1 3 5 1 0", "23 2 5 7 1 1", "23 3 9 10 1 3", "24 0 0 2 0 0", "24 1 3 5 1 0", "24 2 5 7 1 1", "24 3 9 10 1 3", "25 0 0 2 0 0", "25 1 3 5 1 0", "25 2 5 7 1 1", "25 3 9 10 1 3", "26 0 0 2 0 0", "26 1 3 5 1 0", "26 2 5 7 1 1", "26 3 9 10 1 3", "27 0 0 2 0 0", "27 1 3 5 1 0", "27 2 5 7 1 1", "27 3 9 10 1 3", "28 0 0 2 0 0", "28 1 3 5 1 0", "28 2 5 7 1 1", "28 3 9 10 1 3", "29 0 0 2 0 0", "29 1 3 5 1 0", "29 2 5 7 1 1", "29 3 9 10 1 3", "" }; unsigned int a, b, c, d, i, j; char t[80]; int sblim; int startindex; if ((table < 0) || (table > 4)) table = 0; startindex = startindex_subband[table] + 1; // if (g_verbose) printf("using bit allocation table %d\n", table); sprintf (t, "%s", alloc_subbands[startindex]); startindex++; sscanf (t, "%d\n", &sblim); while (t[0] != '<') { sprintf (t, "%s", alloc_subbands[startindex]); startindex++; if (t[0] == '<') break; sscanf (t, "%d %d %d %d %d %d\n", &i, &j, &a, &b, &c, &d); (*alloc)[i][j].steps = a; (*alloc)[i][j].bits = b; (*alloc)[i][j].group = c; (*alloc)[i][j].quant = d; } return sblim; }