ГОСТ Р 54711—2011
c
j
c
j
scalefac_ l [gr\ [ / ] [sfb], scalefac_s [gr] [ / ] [sfb] [window], is_pos [sfb] — Масштабные коэффициенты
используются, чтобы окрасить шумы квантования. Правильная окраска шумов квантования позволяет
полностью их маскировать. В отличие от Уровней I и II на Уровне III масштабные коэффициенты не не сут
информации о локальных максимумах квантованного сигнала. На Уровне III масштабные коэффи
циенты используются в декодере, чтобы получить коэффициенты, на которые будут разделены группы
значений. В случае Уровня III группы расширяются на несколько спектральных линий. Эти группы на
зывают полосами масштабных коэффициентов и они выбираются так. чтобы приблизить критические
полосы настолько близко, насколько возможно.
Из таблицы scalefac_compress видно, что масштабные коэффициенты 0 ... 10 находятся в диа
пазоне от 0 до 15 (максимальная длина 4 бита) и масштабные коэффициенты 11... 21 — в диапазоне от
0 до 7 (максимальная длина 3 бита).
Если включен режим intensity_steroo (modobit_extension). масштабные коэффициенты части zoro_
part разностного (правого) канала используются в качестве позиций intensity_stereo. is_pos [sfb]. is_pos
[sfb] является позицией intensity_stereo для полосы sfb.
Разделение спектра на полосы масштабных коэффициентов фиксировано для каждой возможной
длины блока и частоты дискретизации и сохранено в таблицах в кодере и декодере. Масштабным ко
эффициентом для спектральных линий выше самой высокой линии в таблицах является нуль, то есть
фактический коэффициент равен 1.0.
Значения масштабных коэффициентов квантуются логарифмически. Шаг квантования устанавли
вается в scalefac_scalo.
huffmancodebitsQ — Данные, закодированные с помощью кода Хаффмана.
Синтаксис huffmancodebits() показывает, как кодируются квантованные значения. В пределах
участка big_values пары квантованных значений с абсолютным значением меньше 15 кодируются на
прямую с использованием кода Хаффмана. Коды выбираются из таблиц Хаффмана с 0 по 31 в Б.7.
Всегда кодируются пары значений (х. у). Если квантованные значения имеют амплитуду, большую
или равную 15. то они кодируются раздельно. Если одно или оба значения пары отличны от нуля, один
или два знаковых бита должны быть добавлены к кодовой комбинации.
Таблицы Хаффмана для big_values раздела состоят из трех параметров:
hcod [|х|] [|уЛ
hlen [|х]] [|у|]
Unbits
элемент таблицы значений кода Хаффмана для значений х.у.
элемент таблицы длин кода Хаффмана для значений х. у.
длина linbitsx или linbitsy. если они кодируются.
Синтаксисдля huffmancodebits содержит следующие поля и параметры:
signvзнак v (0 если положительный. 1. если отрицательный).
signwзнак w (0 если положительный. 1. если отрицательный).
signxзнак х (0 если положительный. 1. если отрицательный).
signyзнак у (0 если положительный. 1, если отрицательный).
linbilsxИспользуется для кодирования значения х. большего или равного 15. Это поле коди
руется. только если |х| в hcod равен 15. Если linbits равно нулю, то есть никакие биты не были фактиче ски
кодированы при |х|==15, то значение linbitsx приравнивается к нулю.
linbitsyТо же самое, что и linbitsx. но для у.
is[\]Квантованное значение спектральной линии номер 1.
Поля linbitsx или linbitsy используются только при кодировании значений, больших или равных
15. Эти поля интерпретируются как целые числа без знака и добавляются к 15. чтобы получить коди
рованное значение. Поля linbitsx и linbitsy никогда не используются, если выбрана таблица для
блоков с максимальным квантованным значением меньше 15. Следует обратить внимание на то. что
значение 15 все еще может быть закодировано таблицей Хаффмана, для которой linbits является
нулем. В этом случае поля linbitsx или linbitsy не кодируются, так как linbits является нулем.
В пределах раздела соипП кодируются тетрады значений с амплитудой, меньшей или равной
единице. Значения кодируются с использованием кодов Хаффмана из таблиц (А) или (Б) в таблицах
Б.7. Снова для каждого ненулевого значения добавляется бит знака после символа кода Хаффмана.
Таблицы Хаффмана для раздела соилИ включают следующие параметры:
hcod [|v|] [|iv|j [|х|] [|у|]- Элемент таблицы значений кода Хаффмана для значений v. w. х, у.
hlen (Ml (И ) [|х|] [|уП- Элемент таблицы длин кода Хаффмана для значений v. w. х. у.
Таблица кода Хаффмана В не является настоящим 4-мерным кодом, потому что она создается
из тривиального кода: 0 кодируется с 1. и 1 кодируется с 0.
Квантованные значения выше раздела соолП являются нулями, таким образом, они не кодируются.
24