ГОСТ Р 53556.4—2013
коэффициента создается в имитации критических полос человеческой слуховой системы. По этой причине
число полос масштабного коэффициента в спектре и их ширина зависятотдлины преобразования и часто ты
дискретизации. Таблицы от 129—147 перечисляют смещение к началу каждой полосы масштабного
коэффициента на длинах преобразования 1024 (960) и 128 (120) и на частотахдискретизации.
Чтобы уменьшать количество дополнительной информации в случае последовательностей, которые
содержат SHORT_ WINDOWS, последовательные SHORT_WINDOWs могутбыть сгруппированы. Инфор
мация о группировке содержится вэлементеданных scaleJactor_grouping. Группировка означает, что пере
дается только один набор масштабных коэффициентовдля всех сгруппированных окон, как будто имеется
только одно окно. Масштабные коэффициенты применяются к соответствующим спектральным данным во
всех сгруппированных окнах. Чтобы увеличить эффективность бесшумного кодирования (см. 6.3), спект
ральные данные группы передаются в чередующемся порядке, приведенном в 5.2.3.5. Чередование про
изводится на основе полосы масштабного коэффициента полосой масштабного коэффициента так, чтобы
спектральные данные могли быть сгруппированы, образуя виртуальную полосу масштабного коэффициен
та. к которой может быть применен общий масштабный коэффициент. Выражение ‘полоса масштабного
коэффициента’ (сокращение ’sfb’)обозначает эти виртуальные полосы масштабного коэффициента. Если
упоминаются полосы масштабного коэффициента единственных окон, используется выражение ‘полоса
окна масштабного коэффициента’ (сокращение ’swb’). Из-за ее влияния на полосы масштабного коэффици
ента группировка влияет на значение section_data (см. 6.3). порядок спектральных данных (см. 5.2.3.5), и
общее количество полос масштабного коэффициента. Для LONG_WINDOWполосы масштабного коэффи
циента и полосы окна масштабного коэффициента идентичны, так как есть только одна группа с одним
окном.
Чтобы уменьшать количество информации, необходимой для передачидополнительной информации,
специфическойдля каждой полосы масштабного коэффициента, передается элемент данных max_sfb. Его
значение является наединицу большим, чем самая высокая активная полоса масштабного коэффициента во
всех группаx.max_sfb оказывает влияние на интерпретацию данных раздела (см. 6.3). передачу масш
табных коэффициентов (см.6.3 и 6.2). передачуданных прогнозирующего устройства (см. 6.6 и 6.7). управ
ляющую информацию FSS в режимах кодирования моно-стерео (см. 6.14 и 5.2.2), и передачу ms_mask
(см. 6.8.1).
Поскольку полосы масштабного коэффициента являются базовым элементом алгоритма кодирова
ния. некоторые переменные и массивы справки должны описывать процесс декодирования во всех инстру
ментах, использующих полосы масштабного коэффициента. Эти переменные справки зависят от
samplingJrequency. window_sequence. sca!efactor_grouping и max_sfb и должны быть созданы для каждого
raw_data_block. Псевдокод, показанный ниже, описывает:
- какопределить числоокон в window_sequence. названное num_windows:
- как определить число windowjgroups. названное num_window_groups;
- как определить число окон в каждой группе, названное window_group_length [gj;
- как определить общее количество полос окна масштабного коэффициента, названных num_swbдля
фактического типа окна;
- как определить swb_offset[swb], смещение первого коэффициента в полосе окна масштабного ко
эффициента. названного swb фактически используемого окна;
- какопределить sect_sfb_offset[gj[section], смещение первого коэффициента в разделе, названного
section. Это смещение зависит от window_sequence и scale_factor_grouping и необходимо, чтобы декоди
ровать spectral_data ().
Окно длинного преобразования всегда описывается как window_дгоир. содержащее единственное
окно. Так как число полос масштабного коэффициента и их ширина зависят от частоты дискретизации,
переменные, на которые оказывается влияние, индексируются индексом samphngjrequencyjndex. чтобы
выбрать соответствующую таблицу.
fsjndex =samplingJrequencyJndex;
switch (window_sequence) {
caso ONLY_LONG__SEQUENCE:
case LONG_START_SEQUENCE:
case LONG_STOP’SEQUENCE:
num_windows = 1.
num_window_groups =1;
window_group_length[num_window_groijps-/\)=’\;
num_swb =num_swb_long_window(fsjndox];
65