ГОСТ Р 53556.4—2013
for (т = 1; т < slayer_size: т **) {
layer_bit_offset[m]=layer_bit_offset[m-’\]*layer_si_maxlen[m-1]:
layer_bit_offset[m] += underflow_sizo / slayer_size:
if(layer <= (underflow_size%slayer_size):
layer_bit_offset(m] *= 1;
}
}
for (layer =0: layer <(top_layer*slayer_size): layer**)
availableJenpayer] =layer_bit_offset[layer*1J-layer_bit_offset[layer].
Чтобы описать разрядно-модульный процессдекодирования спектральных значений в каждом мел
коструктурном уровне BSAC. необходимы некоторые вспомогательные переменные и массивы. cur_snf
/cty/
9
/ W инициализируется как плоскость МСВ (MCBplane [ch][д][cband]), назначенная полосе кодирова
ния cband. где мы можем получить MCBplane [] [] из cband_si [ch] [д] [cband] используя таблицу А.ЗЗ.
Декодированиесекционированныхданных в каждом уровне запускается с максимального значения maxsnf.
Эти вспомогательные переменные и массивы должны быть созданы для каждого bsac_spectral_
data (). Показанный ниже псевдокод описывает;
- как инициализировать cur_snf[][] [], текущее значение спектров, которые будут вновь добавлены
из-за расширения спектральной полосы в каждом уровне масштабируемости расширения;
/* sef current snf У
д =layer_grouppayer]:
for (ch = 0. ch < nch. ch**) {
for(i =layer_start_indexpayer]: i<layer_end_indexpayer]; I**) {
cband = //32;
cur_snf[ch][g]p] = MCBplane[ch][g][cband];
}
};
- как определить maxsnf, максимальное значение всех векторов, которые будут декодироваться;
maxsnf = 0;
for (д = start_g: д < end_g; д*+)
for (ch = 0. ch < nch: ch**) {
for (i = start_indox[g]: i< end_index[g]; i*+)
if (maxsnf < cur_snf[ch][g]p])
maxsnf = cur_snf[ch][g][i];
};
- как сохранить cur_snf[] [] [] для вторичного кодирования (bsoc_lower_spectra () и bsac_higher_
spectra ()) после того, как секционированные биты новых спектров были кодированы в каждом уровне
(bsac_/ayer_spectra()):
/* store current snf V
for(g = 0:g< no_window_groups:g**)
for (ch = 0: ch < nch: ch**) {
for(i =layer_start_indoxpayer]: i <layer_end_index[layer]: i**) {
unc_snf[ch][g][i] = cur_snf[ch][g][i]:
}
V
5 2.6.2.6 Порядок спектральных коэффициентов в spectral_data
Для окон ONLY_LONG_SEQUENCE(num_window_groups - 1, window_group_length[0]= 1) спектраль
ные данные находятся в возрастающем спектральном порядке, как показано на рисунке 1.
Спектральные коэффициенты
sfbOsiМsfb2sfb(num_sfb-‘\)
Рисунок 1 — Порядок полос спектрального коэффициента для ONLY_LONG_SEQUENCE
86