ГОСТ Р 53556.4—2013
В случае режима SBA для устойчивости к ошибкам следующий символ зависит от того, является ли
уровень терминальным уровнем сегмента или нет. Если уровень не является терминалом сегмента, спект
ральныеданные следующего уровня (bsac_layer_spectra f/ayenlj) должны декодироваться. То есть избы
точная длина уровня добавляется к доступной длине потока битое (availableJen [layer+17) следующего
уровня в первом процессе кодирования.
Если уровень является терминалом сегмента, некодированными символы спектров в уровнях более
низких, чем текущий уровень кодируются во вторичном процессе кодирования (bsac_!ov/er_spectra). Неко-
дированный символ спектров в уровнях более высоких, чем текущий уровень кодируется во вторичном
процессе кодирования (bsac_higher_spectra), если кодовая комбинация уровня доступна несмотря на то.
что более низкие спектры кодировались. Остающиеся символы непрерывно кодируются в уровнях, кодо
вая комбинация которыхдоступна, начиная с самого низкого уровня и продолжая до верхнего слоя.
Если есть избыточные биты после вторичного кодирования, размер избыточных битое добавляется к
длине доступногопотока битое (avatlablejen [layer+’\f) следующего уровня и избыточные биты используют ся
в первом кодировании следующего уровня.
5.2.6.2.2.13 Реконструкция декодируемой выборки изсекционированных данных
Чтобы восстановить спектральные данные, секционированная последовательность, которая была
декодирована, должна быть отображена в значения квантованного спектра. Декодируемый арифметичес
кий символ является нарезанным битом. Декодируемый символ преобразовывается в битовые значения
квантованных спектральных коэффициентов, как определено в следующем псевдо коде С:
snf = the significance of the symbol (the sliced bit) to be decoded:
sliced_bit[ch)[g)[i][snf] = the decoded symbol (the sliced bits of the quantized spectrum);
samplc[ch][g][i] = buffer for quantized spectral coefficients to be recontructed:
scaled_bit = shced_bit[ch)[g)[i][snf] « (snf-1):
if (sample[ch}[g)[i) < 0)
sample[ch][g][i} -= scaled_bit:
else
sample[ch][g)[i] += scalod_bit:.
Если бит знака декодируемой выборки равен 1. декодируемый образец выборки [ch] [д] [i] имеет
отрицательное значение следующим образом:
if (sample[ch][g][i] /= О) {
if (sign_bit[ch][g)[ij==1) sample[ch][g][i] = -sample[ch][g][i];
}
5.2.6.2.2.14 Декодирование расширенной части
Функции extended_bsac_raw_data_block. extonded_bsac_base_eloment, extended_bsac_sbr_data, и
extended_bsac_sac_data определяются в 5.2.11.
5.2.6.2.3 Окна и последовательности окна для BSAC
Квантование и кодирование производятся в частотной области. С этой целью сигнал времени отобра
жается в частотную область в кодере. В зависимости от сигнала кодер может изменить разрешающую
способность по времени/частоте путем использования двух различных окон: LONG_WINDOW и SHORT_
WINDOW. Чтобы переключиться между окнами, используются окна перехода. LONG_START_WINDOWи
LONG_STOP_ WINDOW.
5.2.6.2.4 Полосы масштабного коэффициента, группировка и полосы кодирования для BSAC
Многие инструменты декодера AAC/BSAC выполняют операции на группах последовательных спект
ральных значений, называемых полосами масштабного коэффициента (сокращение "s/b"). Ширина полос
масштабного коэффициента создается в имитации критических полосчеловеческой слуховой системы. По
этой причине число полос масштабного коэффициента вспектре и их ширина зависят отдлины преобразо
вания и частоты дискретизации.
Инструмент декодирования BSAC выполняетоперации на группах последовательных спектральных
значений, называемых полосами кодирования (сокращение "cbancT). Чтобы увеличить эффективность бес
шумного кодирования, ширина полос кодирования фиксируется как 32 независимо от длины преобразова
ния и частоты дискретизации. Вслучае последовательностей, которые содержат LONG_WINDOW. 32 спек
тральных данных просто группируются в полосу кодирования. Так как спектральные данные в пределах
группы чередуются в возрастающем спектральном порядке в случае SHORT_WINDOW. чередующиеся
спектральные данные группируются в полосу кодирования. Каждый спектральный индекс в пределах груп
пы отображается в полосу кодирования с функцией отображения cband =spectral_indexl32.
81