61
escape_sequence Последовательность escape_prefix, escape_separatorи escape_word.
escapecode 2 Л (N+4) + escape_word.
x_quant [g] [win] [sfb] [bin] Декодированное значение Хаффмана для группы g, окна win, полосы масш-
табных коэффициентов sfb, коэффициента bin.
spec [w] [k] Спектр без чередования. w в диапазоне от 0 до num_windows-1 и к в диапазо
не от 0 до swb_offset [num_swb]-1.
Инструмент прозрачного кодирования требует следующих констант (см. 4.3, spectraldata ()).
ZERO_HCB 0
FIRS T_PAIR_HCB 5
ESC_HCB 11
QUADLEN 4
PAIRLEN 2
INTENSITYHCB2 14
INTENSITY_HCB 15
ESC_FLAG 16
- Процесс декодирования
Четверки или пары квантованных спектральных коэффициентов являются кодированными с помощью кодов Хаффмана и передаются в порядке от коэффициента самой низкой частоты и до коэффициента самой высокой частоты. При наличии нескольких окон в блоке (EIGHT_SHORT_SEQUENCE) сгруппированные и чередующиеся наборы спектральных коэффициентов обрабатываются как единый набор коэффициентов, которые следуют от низкой частоты к высокой. Чередование может быть устранено после декодирования коэффициентов (см. 6.3.5). Коэффициенты сохраняются в массиве xquant[g][win][sfb][bin], и порядок передачи кодовых комбинаций Хаффмана такой, чтобы коэффициенты декодировались в порядке получения и записи в массив, bin — наиболее быстро меняющийся индекс, а g — наиболее медленный. В пределах кодовой комбинации порядок декодирования четверок — w, x, y, z; порядок декодирования пар — y, z. Набор коэффициентов делится на разделы, и информация разделения передается, начиная с самого низкого частотного раздела до самого высокого частотного раздела. Спектральная информация для разделов, которые кодируются с «нулевой» кодовой книгой, не передается, поскольку эта спектральная информация равна нулю. Точно так же, спектральная информация для разделов, кодированных «интенсив- ностными» кодовыми книгами, не передается. Спектральная информация для всех полос масштабных коэффициентов, выше и равных maxsfb, для которых нет данных раздела, равна нулю.
Существует единственная дифференциальная кодовая книга масштабных коэффициентов, которая представляет диапазон значений как показано в таблице 58. Дифференциальная кодовая книга масштабных коэффициентов дана в таблице А.1. Существует одиннадцать кодовых книг Хаффмана для спектральных данных, в соответствии с таблицей 59. Кодовые книги даны в таблицах А.2—A.12. Существует три других «кодовых книги» выше и вне фактических кодовых книг Хаффмана, в частности «нулевая» кодовая книга, указывающая, что ни масштабные коэффициенты, ни квантованные данные не будут переданы, и «интенсивностные» сборники кодов, указывающие, что этот отдельный канал является частью канальной пары, и что данные, которые обычно были бы в обычном случае масштабными коэффициентами, вместо этого являются данными для intensity stereo. В этом случае никакие квантованные спектральные данные не передаются. Кодовые книги 12 и 13 находятся в резерве.
Кодовые книги Хаффмана для спектральных значений кодируют пары или четверки квантованных спектральных коэффициентов без знака или со знаком, как показано в таблице 59. В этой таблице также указано самое большое абсолютное значение (LAV), которое может быть закодировано каждой кодовой книгой, и определен двоичный массив unsignedcb [], в котором 1 соответствует беззнаковой кодовой книге и 0 — знаковой.
Результатом декодирования Хаффмана каждого кодового слова является индекс кодового слова, приведенный в первой графе таблицы A.1. Этот результат преобразовывается в требуемый дифференциальный масштабный коэффициент путем добавления indexoffset к индексу. Значение indexoffset равно -60, как показано в таблице 58. Аналогично результатом декодирования Хаффмана каждой группы из n спектральных коэффициентов является индекс кодового слова, приведенный в первой графе таблиц A.2—A.12. Этот индекс преобразовывается в n спектральных значений в соответствии со следующим псевдо c-кодом: unsigned = булевое значение unsigned cb [i], приведенное во второй графе таблицы 59. dim = размерность кодовой книги, приведенная в третьем графе таблицы 59.
lav = LAV, приведенный в четвертом графе таблицы 59.
idx = индекс кодового слова.