ГОСТ Р 54712―2011
region1_count [gr] [tc
]
— На единицу меньше числа полос масштабных коэффициентов в обла-
сти 1. Если block_type==’10’, то полосы масштабных коэффициентов, представляющие различные вре-
менные интервалы, считаются отдельно.
preflag [gr] [tc
]
— Флаг дополнительного усиления ВЧ квантованных значений. Если prefl ag уста-
новлен, значения таблицы добавляются к масштабным коэффициентам. Это эквивалентно умножению
повторно квантованных масштабных коэффициентов на табличные значения. Если block_type==’10’
(короткие блоки), prefl ag не используется.
scalefac_scale [gr] [tc
]
— Масштабные коэффициенты логарифмически квантуются с размером
шага 2 или √2 в зависимости от scalefac_scale. В следующей таблице даны множители масштабных
коэффициентов, используемые в уравнении квантования для каждого шага:
scalefac_scale[gr]
scalefac_multiplier
’0’
’1’
0,5
1
count1table_select [gr] [tc
]
— Этот флаг определяет использование одной из двух возможных та-
блиц Хаффмана для области тетрад квантованных значений с величиной, не превышающей 1:
count1table_select[gr]
Комментарии
’0’
’1’
ГОСТ Р 54711, таблица Б.7 — A
ГОСТ Р 54711, таблица Б.7 — Б
44
scalefac_l [gr] [tc] [sfb], scalefac_s [gr] [tc] [sfb] [window], is_pos [sfb
]
— Масштабные коэффициенты
используются, чтобы окрасить шумы квантования. Правильная окраска шумов квантования позволяет
полностью их маскировать. В отличие от Уровней I и II, на Уровне III масштабные коэффициенты не не-
сут информации о локальных максимумах квантованного сигнала. На Уровне III масштабные коэффи-
циенты используются в декодере, чтобы получить коэффициенты, на которые будут разделены группы
значений. В случае Уровня III группы расширяются на несколько спектральных линий. Эти группы на-
зывают полосами масштабных коэффициентов, и они выбираются так, чтобы приблизить критические
полосы настолько близко, насколько возможно.
Из таблицы scalefac_compress видно, что масштабные коэффициенты 0...10 находятся в диапазо-
не от 0 до 15 (максимальная длина 4 бита) и масштабные коэффициенты 11... 21 — в диапазоне от 0 до
7 (максимальная длина 3 бита).
Разделение спектра на полосы масштабных коэффициентов фиксировано для каждой возможной
длины блока и частоты дискретизации и сохранено в таблицах, в кодере и декодере (см. ГОСТ Р 54711,
таблица Б.8). Масштабным коэффициентом для спектральных линий выше самой высокой линии в
таблицах является нуль, то есть фактический коэффициент равен 1,0.
Значения масштабных коэффициентов квантуются логарифмически. Шаг квантования устанавли-
вается в scalefac_scale.
Масштабные коэффициенты полос, которые не выбраны каналом передачи, не передаются. Это
означает, что масштабные коэффициенты будут упакованы вместе для передачи и должны быть рас-
пакованы для декодирования или дематрицирования.
huffmancodebits () — Данные, закодированные с помощью кода Хаффмана.
Синтаксис huffmancodebits() показывает, как кодируются квантованные значения. В пределах
участка big_value
s
пары квантованных значений с абсолютным значением меньше 15 кодируются
напрямую с использованием кодов Хаффмана. Коды выбираются из таблиц Хаффмана с 0 по 31 в
ГОСТ Р 54711, таблица Б.7. Всегда кодируются пары значений (x, y). Если квантованные значения име-ют
амплитуду больше или равно 15, то они кодируются отдельно. Если одно или оба значения пары
отличны от нуля, один или два знаковых бита должны быть добавлены к кодовой комбинации.
Таблицы Хаффмана для big_value
s
раздела состоят из трех параметров:
hcod [|x|] [|y|
]
— элемент таблицы значений кода Хаффмана для значений x, y;
hlen [|x|] [|y|
]
— элемент таблицы длин кода Хаффмана для значений x, y;
linbit
s
— длина linbits
x
или linbitsy, если они кодируются.
Синтаксис для huffmancodebits содержит следующие поля и параметры:
signv — знак v (0, если положительный, 1, если отрицательный);