ГОСТ Р 54712―2011
xxxxxxxxxxxxxxxxxxxxxxxx – – – – – – – – – – – – – – – – – – – 000000000000000000000000
||||
1bigvalues*2bigvalues*2+count1*4iblen
Значения 000 соответствуют нулям. Их количество кратно 2.
Значения ––– соответствуют –1, 0 или +1. Их количество кратно 4.
Значения xxx не определены. Их количество кратно 2.
Iblen равно 576.
global_gain [gr] [tc
]
— Информация о размере шага квантования передается в global_gain. Ис-
пользуется логарифмическое квантование. Об использовании global_gain см. формулу в ГОСТ Р 54711,
5.3.4.7, «Формула для переквантования и масштабирования».
scalefac_compress [gr] [tc
]
— Определяет число битов, используемых для передачи масштабных
коэффициентов согласно следующей таблице:
- при block_type ’00’, ’01’, ’11’:
slen1 — размер масштабных коэффициентов для полос 0—10,
slen2 — размер масштабных коэффициентов для полос 11—20;
- при block_type ’10’:
slen1 — размер масштабных коэффициентов для полос 0—5,
slen2 — размер масштабных коэффициентов для полос 6—11:
scalefac_compress[gr]slen1slen2
’0000’00
’0001’01
’0010’02
’0011’03
’0100’30
’0101’11
’0110’12
’0111’13
’1000’21
’1001’22
’1010’23
’1011’31
’1100’32
’1101’33
’1110’42
’1111’43
43
table_select [gr] [tc] [region
]
— Различные кодовые таблицы Хаффмана используются в зависимо-
сти от максимального квантованного значения и локальной статистики сигнала.
subblock_gain [gr] [tc] [window
]
— Указывает изменение усиления (квантование с коэффициен-
том 4) текущего субблока по отношению к глобальному усилению одного субблока. Использует-
ся только с типом блока 2 (короткие окна). Значения субблока должны быть разделены в декодере
на 4
(subblock_gain [window])
.
region0_count [gr] [tc
]
— Дальнейшее разделение спектра используется, чтобы улучшить произво-
дительность кодера Хаффмана. Делению подлежит область big_values. Цель этого деления состоит в
том, чтобы получить лучшую устойчивость к ошибкам и лучшую эффективность кодирования. Исполь-
зуются три области — 0, 1 и 2. Каждая область кодируется с помощью отдельной таблицы Хаффмана в
зависимости от максимального квантованного значения и статистических свойствах сигнала.
Значения region0_coun
t
и regionl_coun
t
используются для указания на границы областей. Границы
области выравниваются по полосам масштабных коэффициентов.
Поле region0_coun
t
содержит значение на единицу меньшее, чем количество полос масштабных
коэффициентов в области 0. В случае коротких блоков каждая полоса масштабирующего коэффициен-
та считается три раза, по разу на каждое короткое окно, так что region0_count, равное 8, указывает, что
область 1 начинается с полосы номер 3.
Если block_type==’10’, общее количество полос масштабных коэффициентов для гранулы равно
12 * 3 = 36. Если block_type
! ==’10’, количество полос масштабных коэффициентов равно 21.