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

ГОСТ Р 55697-2013 Телевидение вещательное цифровое. Сервисная информация. Общие технические требования

     6 Таблицы сервисной информации

6.1 Таблица взаимосвязи программ PAT

6.1.1 Таблица взаимосвязи программ PAT должна определять соответствие между меткой program_number и значением PID для пакетов транспортного потока. Метка program_number - это числовая метка, связанная с программой. Для каждой службы в мультиплексе таблица PAT должна указывать местонахождение соответствующей таблицы РМТ (значения PID пакетов транспортного потока). Она также должна указывать местонахождение таблицы сетевой информации NIT.

6.1.2 Общая таблица может содержаться в одной или нескольких секциях с описанным далее синтаксисом. Она может быть сегментирована и может занимать несколько секций (см. таблицу 4).


Таблица 4

Синтаксис

Число битов

Мнемокод

program_association_section() {

table_id

8

uimsbf

section_syntax_indicator

1

bslbf

"0"

1

bslbf

reserved

2

bslbf

section_length

12

uimsbf

transport_stream_id

16

uimsbf

reserved

2

bslbf

version_number

5

uimsbf

current_next_indicator

1

bslbf

section_number

8

uimsbf

last_section_number

8

uimsbf

for (i = 0; i < N; i++) {

program_number

16

uimsbf

reserved

3

bslbf

if (program_number = = "0") {

network_PID

13

uimsbf

}

else {

program_map_PID

13

uimsbf

}

}

CRC_32

32

rpchof

}



6.1.3 Каждая секция PAT должна передаваться не реже, чем каждые 100 мс [4].

6.1.4 Семантические определения полей в секции взаимосвязи программ PAT:

table_id: идентификатор таблицы (см. таблицу 3).

section_syntax_indicator: индикатор синтаксиса секции - поле длиной 1 бит, которое должно быть установлено равным "1".

reserved: зарезервировано.

section_length: длина секции - поле длиной 12 бит, первые два бита которого должны иметь значение "00". Оставшиеся 10 битов определяют количество байтов в секции, начинающейся сразу же после поля section_length, включая CRC. Значение в этом поле не должно превышать величины 1021 (0x3FD).

transport_stream_id: идентификатор транспортного потока - поле длиной 16 бит, которое служит меткой, для того чтобы отличить этот транспортный поток от любого другого мультиплексированного потока в сети. Его значение определяется пользователем.

version_number: номер версии - поле длиной 5 бит представляет собой номер версии полной таблицы взаимосвязи программ. Номер версии должен увеличиваться на 1 (по модулю 32) всегда, когда происходят изменения в таблице взаимосвязи программ. Когда индикатор current_next_indicator установлен в "1", поле version_number должно соответствовать применяемой в текущий момент версии таблицы PAT. Когда индикатор current_next_indicator установлен в "0", поле version_number должно соответствовать следующей применяемой версии таблицы взаимосвязи программ.

current_next_indicator: индикатор текущая/следующая - поле длиной 1 бит, которое, будучи установлено в "1", указывает, что в настоящий момент применяется переданная таблица PAT. Когда этот бит установлен в "0", он указывает, что переданная таблица уже неприменима, и что должна быть введена в действие следующая таблица.

section_number: номер секции - поле длиной 8 бит указывает номер этой секции. Поле section_number первой секции в таблицы взаимосвязи программ должно быть представлено в шестнадцатеричном формате. Оно должно увеличиваться на 1 с появлением каждой дополнительной секции в таблице взаимосвязи программ.

last_section_number: номер последней секции - поле длиной 8 бит указывает номер последней секции (т.е. секции с наибольшим номером section_number) полной таблицы взаимосвязи программ.

program_number: номер программы - поле длиной 16 бит. Он определяет программу, к которой применяется поле program_map_PID. Когда он установлен в 0x0000, то следующим опорным PID должен быть PID сети. Во всех других случаях значение этого поля определяется пользователем. Это поле не должно принимать никакого значения более чем один раз в пределах одной версии таблицы взаимосвязи программ. (Поле program_number может использоваться, например, для обозначения радиовещательного канала.)

network_PID: PID сети вещания - это поле длиной 13 бит, которое используется только в объединении со значением поля program_number=0x0000 и определяет значение PID пакетов транспортного потока, которые должны содержать таблицу сетевой информации. Присутствие идентификатора network_PID является необязательным.

program_map_PID - поле длиной 13 бит, определяющее значение PID пакетов транспортного потока, которые должны содержать секцию program_map_section, применимую программе, определенной полем program_number. Ни одно поле program_number не должно иметь более одного назначения program_map_PID.

CRC_32 - поле длиной 32 бита, которое содержит значение кода циклической проверки на основе избыточности CRC. При отсутствии ошибок в данных после обработки полной секции PAT результатом проверки являются "нули" на выходе регистров в декодере, определенном в Приложении В.

6.2 Таблица структуры программы PMT

6.2.1 Таблица структуры программы PMT обеспечивает связь между номерами программ и составными элементами программы при помощи идентификаторов программ PID. Таблица структуры программы PMT должна идентифицировать и указывать местоположение потоков, которые составляют каждую службу и местоположение полей эталонных меток времени программы конкретной службы. Таблица структуры программы PMT должна передаваться в пакетах, значения PID для которых выбираются кодером. Эта таблица содержится в одной или нескольких секциях с описанным ниже синтаксисом. Она может быть сегментирована и занимать несколько секций. Секции должны определяться полем номера программы program_number.

Синтаксис секции структуры программы РМТ для транспортного потока приведен в таблице 5.


Таблица 5

Синтаксис

Число битов

Мнемокод

TS_program_map_section() {

table_id

8

uimsbf

section_syntax_indicator

1

bslbf

"0"

1

bslbf

reserved

2

bslbf

section_length

12

uimsbf

program_number

16

uimsbf

reserved

2

bslbf

version_number

5

uimsbf

current_next_indicator

1

bslbf

section_number

8

uimsbf

last_section_number

8

uimsbf

reserved

3

bslbf

PCR_PID

13

uimsbf

reserved

4

bslbf

program_info_length

12

uimsbf

for (i = 0; i < N; i++) {

descriptor()

}

for (i = 0; i < N1; i++) {

stream_type

8

uimsbf

reserved

3

bslbf

elementary_PID

13

uimsbf

reserved

4

bslbf

ES_info_length

12

uimsbf

for (i = 0; i < N2; i++) {

descriptor()

}

}

CRC_32

32

rpchof

}