ГОСТ Р 54713—2011
нок4). Информация о группировке содержится вэлементе данных scaleJactorgroupmg. Группировка озна
чает, что передается толькоодин набор масштабных коэффициентов для всех сгруппированных окон, как
будто это одно окно. Масштабные коэффициенты в этом случае применяются к соответствующим спект
ральным данным всехсгруппированных окон. Чтобы увеличить эффективность прозрачного кодирования
(см. раздел 7). спектральныеданные группы передаются в порядке чередования (см. 6.3.5). Чередование
выполняется по полосам масштабных коэффициентовтак, чтобы спектральныеданные могли бытьсгруппи
рованы. чтобы сформировать виртуальную полосу масштабных коэффициентов, к которой может быть при
менен общий масштабный коэффициент.
В
пределах этого документа выражение «полоса масштабных
коэффициентов» (сокращенно ’sfb’) означает эти виртуальные полосы масштабных коэффициентов. Если
речь идет о полосах масштабных коэффициентов отдельных окон, используется выражение «оконная поло са
масштабных коэффициентов» (сокращенно ’sfb’). Из-за влияния на полосы масштабных коэффициентов
группировка сказывается на section_data. порядке следования спектральных данных (см. 6.3.5) и общем
количестве полос масштабных коэффициентов. Для LONG_WINDOWполосы масштабных коэффициентов и
оконные полосы масштабных коэффициентов окна идентичны, так как на одно окно приходится только одна
группа.
Чтобы уменьшить количество информации, необходимой для передачи служебных данных, относя
щихся к каждой полосе масштабных коэффициентов, передается элементданных max_sfb. Его значение
превышает на единицу самую высокую активную полосу масштабных коэффициентов во всех группах.
max_sfb влияет на интерпретацию данных раздела (см. раздел 7). передачу масштабных коэффициентов
(см. разделы 7 и 9). передачу данных предсказывающего устройства (см. раздел 11) и передачу ms_mask
(см. 10.1).
Так как полосы масштабных коэффициентов являются основным элементом алгоритма кодирования,
необходимы некоторые справочные переменные и массивы для описания процесса декодирования во
всех инструментах, с использованием полос масштабных коэффициентов. Эти справочные переменные
зависят от sampling_frequency. v/indow_sequence, scalefactor_grouping и max_sfb и должны быть созданы
для каждого raw_data_block (). Псевдокод, показанный ниже, описывает:
- какопределить числоокон в window_sequence num_windows:
- как определить число window_groupsпит_window_groups:
- как определить число окон в каждой группе window_group_length[д]:
- как определитьобщее количество оконных полос масштабных коэффициентов num_swbдля факти
ческого типа окна:
- как определить swb_offset [swbj. смещение первого коэффициента в оконной полосе масштабных
коэффициентов swb используемогоокна;
- как определить soct_sfb_offset[g][secUon). смещение первого коэффициента в разделе section.
Это смещение зависит от window_sequence и scale_factor_grouping и требуется, чтобы декодировать
spectral_data ().
Длинное окно преобразования всегда описывается как window_дгоир. содержащая единственноеокно.
Так как число полос масштабных коэффициентов и их ширина зависят от частоты дискретизации, зависи
мые переменные индексируются с sampling^frequency_indexдля выбора соответствующей таблицы.
fsjndex =
samplingjroquencyjndex;
switch (window_sequonce) {
case
ONLY_LQNG_SEQUENCE:
case
LONG_START_SEQUENCE.
case LONG_STOP_SEQUENCE:
num_windows = 1;
num_window_groups = 1:
window_groupJength[num_window_groups-1]=1;
num_swb =num_swbJong_window[fsJndex/;
f* preparation of sect_sfb_offset for long blocks 7
Г also copy the last value! V
for
(i
= 0; i < max_sfb ♦ 1; i++) {
sect_sfb_offset[0][ij = swb_offset_long_window[fs_index][i]:
35