ГОСТ Р 54711—2011
При частотах дискретизации ниже 48 кГц размер буфера должен быть ограничен так, чтобы его
действительное значение былодостаточным, как в случае с буфером, определенным выше для 48 кГц.
5.3.4.5 Масштабные коэффициенты
Масштабные коэффициенты декодируются в соответствии с s/ел 1 и slen2. которые в свою оче
редь определяются непосредственно из значений scalefac_compross. Декодированные значения могут
использоваться в таблице или для непосредственного вычисления коэффициентовдля каждой полосы.
При декодировании второй гранулы необходимо учитывать scfsi. Для полос, в которых соответствую
щий scfsi равен 1. масштабные коэффициенты первой гранулы также используются идля второй грану
лы, поэтому они не передаются для нее.
Число битов, отводимых для кодирования масштабных коэффициентов, называется parJ2_length
и вычисляется следующим образом:
для block_typo == 0. 1 или 3 {длинные блоки),
part2_length = 11* s/ел1 «-10 *s/en2;
для blockjypo = 2 (короткие блоки) и mixod_block_flag = 0,
parfZJength = 18 *slenl +18 *slen2;
для blockjype = 2 (короткие блоки) и mixcd_block_flag = 1,
part2_length = 17’s/ел 1 ♦ 18*s/en2.
Эти формулы действительны, если дг= 0 или дг= 1и scfsi[сЛ] [scfsi_band\ = 0 для всех scfsi_bands.
то есть информация о выборе масштабных коэффициентов не используется.
5.3.4.6 Декодирование кода Хаффмана
Вся необходимая информация, включая таблицу декодирования дерева кода Хаффмана, может быть
получена из таблицы Б.7. Сначала декодируются данные big_values по таблицам с номером table_select
[дг] (сЛ) [region]. Частотные линии в областях 0.1 и 2 декодируются в парах до восстановления количества
nap big_\/alues. Оставшиеся биты кода Хаффмана декодируются с помощью таблицы из countUable_select
[дг] [ей]. Декодирование выполняется до тех пор. пока все биты кода Хаффмана не оказываются восста
новленными или пока квантованные значения, соответствующие 576 частотным линиям, не оказываются
декодированными. Если количество битое кода Хаффмана превышает необходимое для декодирования
576 значений, то эти биты расцениваются как биты стаффинга и отбрасываются. Переменная count! опре
деляется с помощью солл/1table_selectкак число тетрад декодируемых значений.
5.3.4.7 Переквантователь
При квантовании используется неравномерная шкала с powerlaw. Для каждого выходного значе
ния декодера Хаффмана is вычисляется |/s|4’3. Это может быть сделано при помощи таблицы или не
посредственным вычислением.
Весь процесс обработки, от декодируемых значений Хаффмана до входных значений набора
фильтров синтеза, описывается одной формулой. В ней содержатся все необходимые масштабные ко
эффициенты. Выходные данные восстанавливаются из переквантованных значений. Общее усиление и
значения усиления субблоков влияют на все значения в пределах одного временнбго окна (в случае
block_type=2). Масштабные коэффициенты и префлаг корректируют усиление в пределах каждой по
лосы масштабных коэффициентов. Ниже приведено уравнение переквантования для коротких блоков.
Декодированное i-e значение кода Хаффмана обозначено как fe,; входные отсчеты / набора фильтров
синтеза обозначены хг{:
3l i global gaiM gr]
210
8avbbfof! _ga«i[window |(pr ] |
xr,
= s ig n (/S ;)|/s ,[I-2 4~"x
2
{ scalefac _ multiplier•scalefac _ sfgr ][cft|[sto],window j)
Для длинных блоков
3 I j global_ga>n\gr\ 210)
xr, = sign(/sj|/s1[7 ’2 4x
2
(scatoft»c_/ni/ftipAer(seatofac_/|s/b||cft][gr ji prBffag[gr]prcfob(s/bj|)
Значение pretab[cb] дано в таблице Б.6 со значениями лредкоррекции. Постоянная 210 необходи
ма для корректного масштабирования и является системной константой. Набор фильтров синтеза ре
ализуется согласно формулам, данным ниже. Диапазон выходных значений декодера (ИКМ-
отсчетов) от-1.0 до -ИД
29