ГОСТ Р 54712―2011
8
4.1.2.7 Данные звукового сигнала. Уровень III
Синтаксис
Количество
битов
Мнемоника
main_data_begin
8
uimsbf
if (mode==single_channel)
else {
for (region=0; region <3; region ++)
table_select[ch][region]
region0_count[ch]
region1_count[ch]
}
scalefac_scale[ch]
countltable_select[ch]
}
audio_data () {
private_bits1bslbf
else
private_bits2bslbf
for (ch=0; ch <nch; ch ++) {
12 uimsbf
9 uimsbf
8 uimsbf
9 bslbf
1 bslbf
2bslbf
1 uimsbf
5bslbf
3uimsbf
part2_3_length[ch]
big_values[ch]
global_gain[ch]
scalefac_compress[ch]
window_switching_fl ag[ch]
if (window_switching_flag[ch] == ’1’) {
block_type[ch]
mixed_block_fIag[ch]
for (region=0; region<2; region++)
table_select[ch][region]
for (window=0; window<3; window++)
subblock_gain[ch][window]
}
5bslbf
4bslbf
3bslbf
1bslbf
1bslbf
main_data ()
}
Ниже определяется структура основного потока битов данных. Поле main_data в audio_data() со-
держит байты основных данных. Однако из-за свойств кодов Хаффмана, используемых на Уровне III,
основные данные кадра обычно не следуют непосредственно за заголовком и служебной информацией
об этом кадре. Данные main_data начинаются в потоке битов перед заголовком фрейма при отрица-
тельном смещении, заданном значением main_data_begin.
Синтаксис
Количество
битов
Мнемоника
main_data () {
for (ch=0; ch<nch; ch++) {
if ((window_switching_flag[ch] == ’1’) &&
(block_type[ch] == ’10’)) {
if (mixed_block_flag[ch] == ’1’) {
for (sfb=0; sfb <6; sfb++)
scalefac_l[ch][sfb]0 ... 4uimsbf
for (sfb=3; sfb<12; sfb++)
for (window=0; window<3; window++)
scalefac_s[ch][sfb][window]0 ... 5uimsbf