ГОСТ Р ИСО/МЭК 8825-3—2016
21 Типы, используемые в спецификации определенного синтаксиса
П р и м е ч а н и е — Предполагается, что все приводимые здесь определения типов АСН.1 имеют автомати
ческие тети и не имеют растяжимости.
21.1 Тип Unit
21.1.1 Продукцией типа «Unit» является:
Unit ::= INTEGER
{repetitions (0), bit (1), nibble (4), octet (8), word16 (16),
dword32 (32)} (0..256)
21.1.2 Безусловным значением (по умолчанию) для этого типа всегда является bit.
21.1.3 Признак кодирования этого типа указывает единицу, в которой будут подсчитываться дру
гие признаки кодирования или поля определителя.
21.1.4 Значение признака кодирования этого типа ограничено во всех случаях, кроме одного,
до ненулевых значений. В этих случаях признак кодирования указывает число битов. Это число
битов определяет единицу, в которой подсчитываются другие признаки кодирования или поля опре
делителя.
21.1.5 При использовании в определении объекта кодирования класса в категории «повторение»
разрешается также значение repetitions, указывающее, что связанный подсчет дает число повторений в
кодировании.
21.2 Тип EncodingSpaceSize
21.2.1 Продукцией типа «EncodingSpaceSize» является:
EncodingSpaceSize ::= INTEGER
{ encoder-option-with-determinant (-3),
variable-with-determinant (-2),
self-delimiting-values (-1),
fixed-to-max (0)} (-3..MAX)
21.2.2 Безусловным значением (по умолчанию) для этого типа всегда является self-delimiting-
vaiues.
21.2.3 Признак кодирования этого типа указывает размер пространства кодирования (см. 9.21.5).
21.2.4 Положительные (не нулевые) значения указывают фиксированный размер пространства коди
рования в виде значения типа «Unit», умноженного на значение типа «EncodingSpaceSize» в битах. Если
значением типа «Unit» является «repetitions», то размер пространства кодирования может изменяться (так
как пространство кодирования, необходимое для каждого компонента, может быть разным), но оно всегда
составляет фиксированное число повторений, а если должно кодироваться абстрактное значение, которое
не имеет такого числа повторений, то спецификация или применение ECN будут ошибочными.
21.2.5 Значение «encoder-option-with-determinant» указывает, что размер пространства ко
дирования может меняться согласно кодируемому абстрактному значению и что кодер должен вы
бирать размер пространства кодирования, записывая выбранный размер в связанный опреде
литель. В этом случае требуется значение типа «EncodingSpaceDetermination» (см. 21.3) или
«RepotitionSpaceDotormination» (см. 21.7).
П ри м е ча н и е — Значение типа «EncodingSpaceDetermination» или «RepetitionSpaceDetermination»
(для определения размера пространства кодирования) требуется в этом случав (и в случае из 21.2.6). но обеспече
ние определителя разрешается во всех других случаях для поддержки кодирований (аналогичных BER), которые
используют определители длины даже тогда, когда они избыточны. Любое различие между двумя определениями
будет ошибкой. Не всегда, однако, может быть возможность определения, является ли она ошибкой спецификации
ECN или ошибкой применения, но кодеры, удовлетворяющие техническим требованиям, не должны передавать
таких кодирований.
21.2.6 Значение «variable-with-doterminant» указывает, что размер пространства кодирования
может меняться согласно кодируемому абстрактному значению. В этом случае требуется значение
70