ГОСТ Р 53556.4—2013
Операция перемасштабирования производится согласно следующему псевдокоду:
for(д =
0
:д < num_window_groups:д++) {
for (sfb =
0
; sfb < max_sfb; sfb++) {
width = (swb_offsot [sfb+1] - swb_offset [sfb]);
for(win =
0
; win < window_group_len[g]; win**) {
gain = get_scale_factor_gain( sf[g][sfb]);
for (к =
0
: к < width: k+*) {
x_rescal[g][window][sfb][k] =
x_invquant[g][window][sfb][k] *gain:
}
}
}
}
Функция got_scale_factor_gain (sf[g][sfb)) возвращает коэффициент усиления, который соответствует
масштабному коэффициенту. Возвращаемое значение следует уравнению:
gain
= 2
° 25
’ а,№®>1•s
?.
offs
e
t
)
Константа SF_OFFSETдолжна быть установлена в 100.
Следующий псевдокод описывает эту работу:
get_scalo_factor_gain( sf[g][sfb]) {
SF_OFFSET = 100:
gain = 2Л(0.25 * ( sf[g](sfb) - SF_OFFSET));
return(gain);
)
6.3 Бесшумное кодирование
6.3.1 Описание инструмента
Бесшумное кодирование используется, чтобы дополнительно уменьшить избыточность масштабных
коэффициентов и квантованный спектр каждого звукового канала.
gk>bal_gain кодируется как
8
-битововое целое число без знака. Первый масштабный коэффициент
ассоциированный с квантованным спектром дифференцированно кодируется относительно значения
global_gain, а затем кодируется по Хаффману, используя сборник кодов масштабного коэффициента. Оста
ющиеся масштабные коэффициентыдифференцированно кодируются относительно предыдущего масш
табного коэффициента и затем кодируются по Хаффману, используя сборник кодов масштабного коэффи
циента.
Бесшумное кодирование квантованного спектра делится на два подразделения спектральных коэф
фициентов. Первое является подразделением полос масштабного коэффициента, которые содержат крат
ное4 количество квантованных спектральных коэффициентов.
Второе подразделение, которое зависит от квантованных спектральныхданных, является подразде
лением полос масштабного коэффициента на разделы формы. Значение раздела состоит втом, что кванто
ванный спектр в пределах раздела представляется, используя единственный сборник кодов Хаффмана,
выбранным из комплекта одиннадцати возможных сборников кодов. Длина раздела и связанного с ним
сборника кодов Хафмана должна быть передана какдополнительная информация вдополнение к кодиро
ванному по Хаффману спектру раздела. Длина раздела дается в полосах масштабного коэффициента, а не в
полосах окна масштабного коэффициента. Чтобы максимизировать соответствие статистики квантованно го
спектра этим сборникам кодов Хаффмана, разрешается столь же большое число разделов как число полос
масштабного коэффициента. Максимальный размер раздела равен max_sfb полосмасштабного ко
эффициента.
Как обозначено втаблице 151, спектральные сборники кодов Хаффмана могут представлять л-корте-
жи коэффициентов со знаком или без знака. Для сборников кодов без знака биты знака для каждого нену
левого коэффициента в л-кортеже следуют непосредственно за соответствующей кодовой комбинацией.
У бесшумного кодирования есть два способа представить большие квантованные спектры. Один
способ состоит в том. чтобы отправить флаг перехода из сборника кодов Хаффмана переходов (ESC),
который сигнализирует, что биты, следующие сразу после этой кодовой комбинации, плюсдополнительные
биты знака являются escape-последовательностью, которая кодирует значения, большие чем те. которые
представлены сборником кодов Хаффмана ESC. Вторым способом является импульсный метод перехода, в
котором коэффициенты относительно большой амплитуды могутбыть заменены коэффициентами с мень-
123