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

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

     21.7 Тип RepetitionSpaceDetermination

21.7.1 Продукцией типа "RepetitionSpaceDetermination" является:


RepetitionSpaceDetermination ::= ENUMERATED

{field-to-be-set, field-to-be-used, flag-to-be-set, flag-to-be-used,

container, pattern, handle, not-needed}

21.7.2 Безусловным значением (по умолчанию) для этого типа всегда является "field-to-be-set".

21.7.3 Признак кодирования этого типа указывает способ, которым декодер определяет конец пространства кодирования в кодировании класса категории "повторение". Оно заменяет использование признака кодирования типа "EncodingSpaceDetermination" при кодировании повторений.

21.7.4 Значение "field-to-be-set" требует спецификацию REFERENCE для поля, которое будет устанавливаться кодером для переноса информации, указывающей размер пространства повторения. Эта спецификация кодирования определяет, как кодер должен устанавливать значение этого поля в пределах размера (в единицах пространства повторения) поля повторения. Если поле устанавливается более одного раза с помощью "field-to-be-set" или "flag-to-be-set", то спецификация ECN или приложение будут ошибочными, когда разные значения выдаются разными процедурами кодирования; в этом случае кодеры не должны генерировать кодирования.

21.7.5 Значение "field-to-be-used" требует спецификацию REFERENCE для поля, значение которого может быть установлено из абстрактного синтаксиса (то есть соответствующее поле появляется в пределах спецификации АСН.1) либо может быть установлено некоторыми другими действиями кодера, вызванными с помощью "field-tobe-set" или "flag-to-be-set". Эта спецификация кодирования определяет, как декодер должен получать размер (в единицах пространства повторения) пространства кодирования из значения этого поля. Кодер, соответствующий техническим требованиям, не должен выдавать кодирования, при которых преобразования этого поля в декодере не указывают правильно конец пространства кодирования.

21.7.6 Значение "flag-to-be-set" требует спецификацию REFERENCE для поля, которое является частью повторяющегося элемента и которое будет устанавливаться кодером для указания последнего элемента в повторении. Эта спецификация кодирования определяет, как кодер должен устанавливать значение этого поля с булевым значением, которое будет FALSE, когда элемент является последним в повторении, или TRUE в противном случае. Если поле устанавливается более одного раза с помощью "flag-to-be-set" или "field-to-be-set", то спецификация ECN или применение будут ошибочными, когда разные значения выдаются разными процедурами кодирования; в этом случае кодеры не должны генерировать кодирования.

21.7.7 Значение "flag-to-be-used" требует спецификацию REFERENCE для поля, которое является частью повторяющегося элемента и чье значение может быть установлено из абстрактного синтаксиса (то есть соответствующее поле появляется в пределах спецификации АСН.1) либо может быть установлено некоторыми другими действиями кодера, вызванными с помощью "flag-to-be-set" или "field-to-be-set". Эта спецификация кодирования определяет, как декодер должен получать булево значение из значения этого поля. Булево значение будет FALSE, когда элемент является последним элементом в повторении, или TRUE в противном случае.


Кодер, соответствующий техническим требованиям, не должен выдавать кодирования, при которых преобразования этого поля в декодере не указывают правильно последний элемент повторения.

21.7.8 Значение "container" требует либо спецификацию REFERENCE для другого поля, класс кодирования (контейнер) которого имеет определитель длины, а содержимое которого включает в себя класс кодирования в категории "повторение", либо спецификацию (с помощью OUTER) того, что конец PDU определяет конец повторений.


Повторения кончаются, когда указанный контейнер заканчивается либо когда после завершения кодирования одного повторения подсчитан конец PDU.

Примечание - Эта спецификация может использоваться только в случаях, когда кодирование класса (категории "повторение") является последним кодированием, помещаемым в контейнер. Спецификация ECN будет ошибочной, если в контейнер помещаются дополнительные кодирования; кодеры, соответствующие техническим требованиям, не должны генерировать такие кодирования.

21.7.9 Значение "pattern" указывает, что некоторая определенная комбинация битов (см. 21.10) будет заканчивать повторения. В этом случае дополнительные признаки кодирования будут требовать введения кодером определенной комбинации и обнаружения этой комбинации декодером. Спецификация ECN будет ошибочной, если кодирование комбинации может стать начальной частью кодирования абстрактного значения в повторении. Кодер, соответствующий техническим требованиям, должен обнаруживать такие ошибки и не должен генерировать кодирования, нарушающие это правило.


Примечание - Примером является цепочка знаков с нулем в конце, содержимое которой не допускает применения знака нуль.

21.7.10 Значение "handle" требует, чтобы был определен идентификационный описатель. Идентификационный описатель должен выставляться элементом, который повторяется, и всеми возможными последующими элементами (с учетом факультативных возможностей). Значение идентификационного описателя для элемента, который повторяется, должно отличаться от значения для всех возможных последующих элементов.


Примечание - Каждое абстрактное значение данного компонента должно иметь значение описателя, соответствующее набору значений описателя компонента (см. 22.9.2.2).