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

ГОСТ Р 53528-2009 Телевидение вещательное цифровое. Требования к реализации протокола высокоскоростной передачи информации DSM-CC. Основные параметры

Приложение Б
(обязательное)

Требования к параметрам протокола передачи сообщений DSM-CC П-С при инкапсуляции в транспортных потоках MPEG-2 и в программном потоке MPEG-2

Б.1 Сборка сообщения DSM-CC из пакетов транспортного потока MPEG-2 выполняется при использовании частной секции (private-section), структуру которой определяет ISO/IEC [3].

При использовании транспортного потока MPEG-2 для передачи сообщений протокола DSM-CC формирование пакета этих сообщений должно быть выполнено в соответствии с настоящим приложением.

Структура секций DSMCC_section должна быть совместима с синтаксисом секций private_section так, чтобы обеспечивать использование совместимых декодеров MPEG-2.

Б.2 В тех случаях, когда сообщения DSM-CC П-С и загрузки инкапсулируются в транспортный поток MPEG-2, должен быть использован синтаксис DSMCC_section. Этот же синтаксис может быть использован и в случае передачи других полезных данных.

Структура DSMCC_section использует синтаксис частных секций (private_section) согласно ISO/IEC [3].

Специальная семантика применяет кодирование специфических полей в заголовке DSMCC секций (DSMCC_section).

Отображение DSMCC_section в пакете транспортного потока MPEG-2 и максимальная длина DSMCC_section определяются семантикой для рrivate_sections, установленных ISO/IEC [3].

В некоторых реализациях рекомендуется использовать циклическую проверку избыточности (CRC-32), доступную для применения в рrivate_sections. Поскольку некоторые системы не обеспечивают вычисление CRC-32, синтаксис DSMCC_section допускает альтернативу использования CRC-32.

В соответствии с ISO/IEC [3], если section_syntax_indicator установлен на "1", должно быть обеспечено эффективное использование CRC-32. Если section_syntax_indicator - "0", синтаксис раздела CRC-32 должен быть аналогичным случаю, когда section_syntax_indicator - "1", за исключением того, что поле CRC-32 заменено полем контрольной суммы.

Результирующий синтаксис остается соответствующим ISO/IEC [3], так как полезные данные, следующие за полем section_length, будут обработаны как частные данные.

Поскольку section_syntax_indicator может быть искажен ошибками, поле Private_sections должно быть дополнено величиной section_syntax_indicator.

Если section_syntax_indicator установлен на "0", то private_indicator должен быть проверен на равенство "1". Невыполнение этого условия означает, что секция поражена ошибкой.

Точно так же, если section_syntax_indicator установлен на "1", тогда частный индикатор должен быть установлен на "0".

Когда section_syntax_indicator имеет значение "0" (циклическая проверка избыточности не используется) и поле контрольной суммы было установлено на "0", должна быть предусмотрена другая форма обнаружения ошибок.

Это требование гарантирует, что DSMCC_sections поддерживает требования к транспортному протоколу согласно ISO/IEC [2] (таблица 9-1).

Синтаксис и семантика, связанные с передачей private_sections (и, следовательно, DSMCC_sections), определены в ISO/IEC [3] (пункт 2.4.4).

При отсутствии ограничений одна или несколько DSM-CC-секций с той же самой table_id могут быть размещены в пакетах транспортного потока с тем же самым значением PID, поскольку другая private_section форматировала таблицы (например, в ISO/IEC [3] stream_type 005), если выполнен анализ table_id.

Формат секций DSM CC_sections приведен в таблице Б.1.


Таблица Б.1 - Формат секций DSMCC_sections

Синтаксис

Число битов

Мнемоника

DSMCC _section() {

table_id

8

uimsbf

section_syntax_indicator

1

bslbf

private_indicator

1

bslbf

reserved

2

bslbf

dsmcc_section_length

12

uimsbf

table_id_extension

16

uimsbf

reserved

2

bslbf

version_number

5

uimsbf

current_next_indicator

1

bslbf

section_number

8

uimsbf

last_section_number

if(table id == 03A) {

             LLCSNAP()

}

else if(table_id == 03B) {

          userNetworkMessage()

}

else if(table_id == 03C) {

          downloadDataMessage()

}

else if(table_id == 03D) {

          DSMCC_descriptor_list()

}

else if(table_id == 03E) {

          for (i=0;i<dsmcc_section_length-9;i++) {

                       private_data_byte

           }

}

if(section_syntax_indicator == '0') {

8

uimsbf

          checksum

}

else {

32

uimsbf

          CRC_32

}

32

rpchof

}

Примечание - Поле LLCSNAP - в соответствии с ISO/IEC [2] (пункт 9.2).



Б.2.1 Семантические определения полей в секции DSMCC_section представлены ниже.

Поле table_id в случае DSMCC_section должно идентифицировать тип данных в полезной нагрузке DSMCC_section.

Это поле определяет специфические правила кодирования полей table_id_extension, version_number, section_number и last_section_number.

Перечень назначений table_id для DSM-CC приведен в таблице Б.2.


Таблица Б.2 - Перечень назначений table_id для DSM-CC