ГОСТ Р ИСО/МЭК 8825-3—2016
Unit ::= INTEGER
(repetitions(O), bit(1), nibblo{4), octet(8), word16(16),
dword32(32)} (0..256) -
(
c m
.
21.1)
Padding ::= ENUMERATED (zero, one. pattern, encoder-option} -
(
c m
.
21.9)
Pattern ::= CHOICE
(bits
octets
char8
char16
char32
any-of-length
different
BIT STRING,
OCTET STRING,
IA5String,
BMPString,
UniversalString.
INTEGER (1..MAX).
ENUMERATED {any} }
Non-Null-Pattern ::= Pattern
(ALL EXCEPT (bits:"B | octets:"H | char8:’charl 6:” |
char32:m’)) --
(
c m
.
21.10)
22.2.1.4Признаки кодирования предварительного выравнивания используют значение типа «Unite
для указания, что контейнер должен начинаться с целого числа битов, кратного «Unit», от точки вырав
нивания. Точкой выравнивания является начало кодирования типа, к которому ELM применяет кодиро вание.
кроме случаев, когда применен сброс для кодирования вложенного типа путем использования объекта
кодирования #OUTER (см. раздел 25). Признаки кодирования типов «Padding» и «Pattern» ис пользуются для
управления битами, которые обеспечивают заполнение для затребованного выравнива
ния. Спецификация «ALIGNED ТО NEXT» создает минимальное число вставляемых битов. Специфика
ция «ALIGNED ТО ANY» оставляет реальное число вставляемых битое (подчиненное вышеуказанному
ограничению по кратности с «Unit») на усмотрение кодеров и требует определения начального указателя.
22.2.2 Ограничения на спецификацию
22.2.2.1 Должен указываться один самый больший из «NEXT» и «ANY». Если не указывается, то
подразумевается «NEXT».
22.2.2.2 Если указывается «ALIGNED ТО ANY», то спецификация объекта кодирования должна
содержать раздел «START-POINTER».
22.2.3 Действия кодера
22.2.3.1 Если указывается «NEXT» (или применяется по умолчанию), то кодер вставляет мини
мальное число битов, необходимое для гарантии, что общее число битов в кодировании (от точки вы
равнивания до начала контейнера, см. 22.2.1.4) будет кратно признаку кодирования типа «Unit».
22.2.3.2 Если указывается «ANY», то кодер вставляет независящее от кодера число битов при
условии, что общее число битов в кодировании (от точки выравнивания) будет кратно признаку кодиро
вания типа «Unit».
22.2.3.3 Вставляемые биты устанавливаются так. чтобы первый вставляемый бит был начальным
битом «Pattern» и т. д. Если необходимо больше битов, чем имеется в признаке кодирования типа
«Pattern», то эта комбинация используется повторно, помещая первым старший значащий бит.
22.2.4 Действия декодера
22.2.4.1 Декодер определяет число вставленных битов из действий кодера, если указан «NEXT».
22.2.4.2 Декодер определяет число вставленных битов из спецификации начального указателя,
если указан «ANY».
22.2.4.3 Во всех случаях декодер сбрасывает вставленные биты незаметно для приложения. Он
не должен распознавать ошибку кодера или спецификации, когда биты не согласуются с указанными
действиями кодеров.
22.3Спецификация начального указателя
22.3.1 Признаки кодирования, синтаксис и цель
22.3.1.1 В спецификации начального указателя используются следующие признаки кодирования:
&start-pointer
&start-pointer-unit
&Start-pointer-encoder-transforms
REFERENCE OPTIONAL,
Unit (ALL EXCEPT repetitions) DEFAULT bit,
#TRANSFORM ORDERED OPTIONAL
85