ГОСТ Р 54711—2011
В случае коротких блоков (для верхних сублолос с block_typo равен 2 при установленном флаге
mixed_block_flag или для всех сублолос с blockjype равен 2 при сброшенном флаге mixed_block_flag)
три преобразования выполняются, образуя 12 выходных значений каждое. Эти три вектора выходных
значений взвешиваются в окне и складываются друг с другом. Добавление шести нулей к обоим концам
результирующего вектора дает вектор длины 36. который обрабатывается как выход длинного преоб
разования.
mixed_block_flag [дг] [с/?] — Указывает, что для нижних частот используется тип окна, который от
личен от используемого на высоких частотах. Если mixed_block_flag равен 0. то все блоки преобразуют ся
в соответствии с blockjype [дг] [с/?]. Если mixed_block_flag равен 1. то частотные линии, соответству ющие
двум самым нижним субполосам полифазного набора фильтров, преобразуются с нормальным окном
(blockjype—0). в то время как оставшиеся 30 сублолос преобразуются с blockjype (дг) [с/т].
table_solect (дг] [с/т] [гед/ол] — Различные кодовые таблицы Хаффмана используются в зависимо
сти от максимального квантованного значения и локальной статистики сигнала.
subblock_gain [дг] (с/)] [window] — Указывает изменение усиления (квантование с коэффициентом
4) текущего субблока по отношению к глобальному усилению одного субблока. Используется только
с типом блока 2 (короткие окна). Значения субблока должны быть разделены в декодере на
gain (window))
regionO_count [дг] [сЛ] — Дальнейшее разделение спектра используется для улучшения произво
дительности кодера Хаффмана. Делению подлежит область big_valuos. Цель этого деления состоит в
том. чтобы получить лучшую устойчивость к ошибкам и лучшую эффективность кодирования. Исполь
зуются три области — 0. 1 и 2. Каждая область кодируется с помощью отдельной таблицы Хаффмана в
зависимости от максимального квантованного значения и статистических свойств сигнала.
Значения regionO_count и rogionl_count используются для указания на границы областей. Границы
области выравниваются по полосам масштабных коэффициентов.
Поле regionO_count содержит значение на единицу меньшее, чем количество полос масштабных
коэффициентов в области 0. В случае коротких блоков каждая полоса масштабирующего коэффици
ента считается три раза, по разу на каждое короткое окно так, что region0_count. равное 8. указывает,
что область 1 начинается с полосы номер 3.
Если blockJype=2 и mixod_block_flag=0. общее количество полос масштабных коэффициентов
для гранулы в этом случае равно 12*3=36. Если btockJype-2 и mixed_Ыоск_вад-1. количество полос
равно 8+9*3=35. Если blockJype\-2, количество полос масштабных коэффициентов равно 21.
rogion\_count [gr\ [ch] — На единицу меньше числа полос масштабных коэффициентов в области
1. Если blockjype = 2. то полосы масштабных коэффициентов, представляющие различные времен
ные интервалы, считаются отдельно.
proflag [gr] [cb] — Флаг дополнительного усиления ВЧ квантованных значений. Если proflag уста
новлен. значения таблицы добавляются к масштабным коэффициентам (см. таблицу Б.6). Это эквива
лентно умножению повторно квантованных масштабных коэффициентов на табличные значения. Если
block_type=2 («короткие» блоки), proflag никогда не используется.
scalefac_scale [дг] [сЛ] — Масштабные коэффициенты логарифмически квантуются с размером
шага 2 или \2 в зависимости от scalefac_scale. В следующей таблице даны множители масштабных
коэффициентов, используемые в уравнении квантования для каждого шага:
scalefac^scaJe \дг]
scalefocmultipK«r
0
0.5
1
1
countllable_select [gf\ [cb] — Этот флаг определяет одну из двух возможных таблиц Хаффмана
для области тетрад квантованных значений с величиной, не превышающей 1:
countHabfo_s<i!cct
|gr]
Таблица Хаффмана
0
Таблица Б.7 (А)
1
Таблица Б.7 (Б)
23