ГОСТ Р 54711—2011
36отсчетов одной субполосы в пределах фрейма делятся на три равные части по 12 отсчетов.
У каждой части может быть свой масштабный коэффициент. Количество масштабных коэффициентов,
которое должно быть считано из потока битов, зависит от scfsi[sb].
Информация о выборе масштабных коэффициентовscfsl[sb] считывается из потока битов для суб
полос с ненулевым выделением битов. Если scfsi[sb] равно ’00’, то передаются три масштабных коэф
фициента для частей 0, 1, 2 соответственно. Если scfsi[sb] равно ’01’, то передаются два масштабных
коэффициента, первый — для частей 0 и 1. второй — для части 2. Если scfafsb] равно ’10’. передается
один масштабный коэффициент для всех трех частей. Если scfa)sb] равно ‘11’, передаются два мас
штабных коэффициента, первый — для части 0, второй — для частей 1 и 2.
5.3.3.3 Декодирование масштабных коэффициентов
Кодированные значения масштабных коэффициентов для каждой субполосы с ненулевым вы
делением битов считываются из потока битов. Количество кодированных масштабных коэффициентов и
часть субполосных отсчетов, к которым они относятся, определяются с помощью scfsi [sb]. 6 битов
кодированного значения масштабного коэффициента интерпретируются как беззнаковое целое, соот
ветствующее номеру в таблице Б.1. Из этой таблицы определяется масштабный коэффициент, на кото
рый соответствующие субполосные отсчеты должны быть умножены после пвреквантования.
5.3.3.4 Переквантование субполосных отсчетов
Далее производится считывание кодированных отсчетов. Как следует из 5.1.6. кодированные от
счеты объединены по тройкам, так что одно кодовое слово соответствует трем последовательным от
счетам. В таблице Б.4 показано, сколько битов необходимо считать из потока для получения одной
тройки в каждой полосе, а также состоит ли текущий код из трех последовательных отдельных кодов,
соответствующих трем отсчетам, или одного объединенного кода для трех отсчетов (группировка). В по
следнем случае должна быть выполнена процедура разбиения группы (degrouping). Объединенный код
должен быть расценен как беззнаковое целое С. Следующий алгоритм образует три отдельных кодо
вых слова s{0]. sf1J. s{2).
for (/=0; i <3: /♦+) {
s (/J = c % nlevels
C = C DIV nlevols
}.
где nlevels — количество шагов (см. таблицу Б.2).
Первый бит каждого из трех кодовых слов должен быть инвертирован, и полученные значения
должны быть интерпретированы как дробные значения в дополнительном коде, где MSB представляет
значение минус один. Переквантование выполняется с помощью линейного выражения:
s’ = C(s% D),
где s’ — переквантованное значение:
s" — дробное число.
Значения констант С и D даются в таблице Б.4. Переквантованные значения должны повторно
масштабироваться. Масштабные коэффициенты даны в таблице Б.1. Повторно масштабируемые зна
чения s’ вычисляются как
s’ = factor ♦s’,
где factor — масштабный коэффициент.
5.3.3.5 Субполосный фильтр синтеза
Если на субполосу не было выделено ни одного бита, то отсчеты этой полосы заменяются нулями.
Каждый раз. после определения отсчетов всех 32 субполос одного канала, отсчеты поступают на суб
полосный фильтр синтеза для получения 32 последовательных звуковых отсчетов. На рисунке А.2 по
казан процесс реконструкции. Коэффициенты Ыл для операции матрицирования задаются формулой
W.V=cos|(16-‘-/)(2Jc + 1}— |. 0 s / S 63. 0 s /с S 31.
Значения оконной функции D, содержатся в таблице Б.З. Один фрейм содержит 36 * 32 = 1152 от
счета субполосы, которые в результате фильтрации преобразуются в 1152 звуковых отсчета.
5.3.4 Уровень III
5.3.4.1 Декодирование
Дополнительная разрешающая способность по частоте обеспечивается с помощью гибридного
набора фильтров. Каждая полоса при помощи МДКП разделяется на 18 частотных линий. Длина окна
МДКП составляет 36 отсчетов. Для контроля временных артефактов (пре-эхо) используется адаптивное
27