Статус документа
Статус документа

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII: усовершенствованное кодирование звука (MPEG-2 AAC)

     4.3 Необработанные данные



Таблица 11 - Синтаксис raw_data_stream ()

Синтаксис

Количество битов

Мнемоника

raw_data_stream ()

{

while (data available()) {

raw data block();

}

}



Таблица 12 - Синтаксис raw_data_block()

Синтаксис

Количество битов

Мнемоника

raw_data_block()

{

while ((id = id_syn_ele) != ID_END) {

3

uimsbf

switch (id) {

case ID_SCE: single_channel_element ();

break;

case ID_CPE: channel_pair_element();

break;

case ID_CCE: coupling_channel_element ();

break;

case ID_LFE: lfe_channel_element();

break;

case ID_DSE: data_stream_element();

break;

case ID_PCE: program_config_element ();

break;

case ID FIL: } fill_element();

} byte _alignment();

}



Таблица 13 - Синтаксис single_channel_element()

Синтаксис

Количество битов

Мнемоника

single_channel_element()

{

element_instance_tag;

4

uimsbf

individual_channel_stream(0);

}



Таблица 14 - Синтаксис channel_pair_element ()

Синтаксис

Количество битов

Мнемоника

channel_pair_element()

{

element_instance_tag;

4

uimsbf

common_window;

1

uimsbf

if (common_window) {

ics_info();

ms_mask_present;

2

uimsbf

if (ms_mask_present == 1) {

for (g = 0; g < num_window_groups; g++) {

for (sfb = 0; sfb < max_sfb; sfb++) {

ms_used[g][sfb];

1

uimsbf

}

}

}

}

individual_channel_stream(common_window);

individual_channel stream(common_window);

}



Таблица 15 - Синтаксис ics_info ()

Синтаксис

Количество битов

Мнемоника

ics_info()

{

ics_reserved_bit;

1

bslbf

window_sequence;

2

uimsbf

window shape;

1

uimsbf

if (window sequence == EIGHT SHORT SEQUENCE) {

max sfb;

scale factor grouping;

4

uimsbf

}

7

uimsbf

else {

max sfb;

6

uimsbf

predictor data present;

1

uimsbf

if (predictor data present) {

predictor reset;

1

uimsbf

if (predictor reset) {

predictor reset group number;

5

uimsbf

}

for (sfb = 0; sfb< min(max sfb,

PRED SFB MAX); sfb++) {

prediction used[sfb];

1

uimsbf

}

}

}

}



Таблица 16 - Синтаксис individual_channel_stream ()

Синтаксис

Количество битов

Мнемоника

individual_channel_stream(common_window)

{

global_gain;

8

uimsbf

if (!common_window)

ics_info();

section_data();

1

uismbf

scale_factor_data();

pulse_data_present;

if (pulse_data_present) {

pulse data();

1

uimsbf

}

tns_data_present;

if (tns_data_present) {

tns data();

1

uimsbf

}

gain_control_data_present;

if (gain_control_data_present) {

gain control data();

}

spectral data();

}



Таблица 17 - Синтаксис section_data()

Синтаксис

Количество битов

Мнемоника

section_data()

{

if (window_sequence == EIGHT_SHORT_SEQUENCE)

sect_esc_val = (1<<3) -1;

else sect_esc_val = (1<<5) -1;

for (g = 0; g < num window groups; g++) {

k = 0;

i = 0;

while (k < max_sfb) {

sect_cb[g][i];

sect_len = 0;

while (sect_len _incr == sect_esc_val) {

4

uimsbf

sect_len += sect_esc_val;

}

{3; 5}

uismbf

sect_len += sect_len_incr;

sect_start[g][i] = k;

sect_end[g][i] = k+sect_len;

for (sfb = k; sfb < k+sect_len; sfb++)

sfb_cb[g][sfb] = sect_cb[g][i];

к += sect_len;

/++;

}

num_sec[g] = i;

}

}