ГОСТ Р ИСО/МЭК 8825-3—2016
значениями) или переменным (разным для каждого абстрактного значения). Спецификация может так же
(во всех случаях) указать на использование определителя длины, который должен кодироваться с
длиной поля и либо создавать возможность декодирования, либо предоставлять избыточную инфор
мацию (в случае пространства кодирования с фиксированным размером), которую декодер может про
верять (см. 22.4);
- указать выравнивание кодирования значения внутри пространства кодирования (см. 22.8);
- указать форму какого-либо необходимого заполнения от начала пространства кодирования до
начала кодирования значения (предварительное заполнение значения) (см. 22.8);
- указать форму какого-либо необходимого заполнения между концом кодирования значения и
концом пространства кодирования (последующее заполнение значения) (см. 22.8);
- указать какие-либо необходимые реверсии битов для содержания пространства кодирования до
добавления битов к кодированию, сделанному ранее (см. 22.12).
9.21.13 Имеются признаки кодирования, поддерживающие спецификацию правил кодирования
для всех этих шагов.
9.21.14 В реальных случаях только некоторые (или никакие!) из этих признаков кодирования могут
иметь неиспользуемые значения и должны работать по умолчанию, если они не указаны (см. в D.1.3
пример определения кодирования для целого числа, имеющего выравнивание к правой стороне в фик
сированном двухоктетном поле, которое начинается на границе октета).
9.22 Приложение кодирований
9.22.1 Приложение кодирований (правил кодирования) к структурам кодирования является клю
чевой частью работы ECN, но сильно отличается от определения правил кодирования. Окончательное
приложение кодирований (к структуре кодирования, генерируемой из определения типа АСН.1) проис
ходит только внутри модуля компоновки кодирования, но приложение кодирований к полям структуры
кодирования может использоваться в определении кодирований для более широкой структуры кодиро
вания.
9.22.2 Кодирования прикладываются путем ссылки на набор объектов кодирования (или на оди
ночный объект кодирования). Такое приложение может происходить в EDM в определении объектов
кодирования для какого-нибудь класса (включая объекты кодирования для генерируемой структуры
кодирования и для определяемой пользователем структуры кодирования). Такое приложение в EDM
является просто определением большего числа объектов кодирования для этого класса кодирования.
Определяющее приложение к реальному типу происходит только в ELM.
9.22.3 Когда прикладывается набор объектов кодирования, он всегда дает в результате полную
спецификацию кодирования для классов кодирования, к которым эти объекты прикладываются. Если в
каком-либо заданном приложении требуются кодирования для классов кодирования (имеющихся вну
три кодируемой структуры кодирования), для которых нет объектов кодирования в приложенном набо ре.
то это будет ошибкой (см. 13.2.11).
Примечание — Если бы даже спецификация правил кодирования была завершена, точная форма
реального кодирования (например, наличие или отсутствие предварительного заполнения пространства кодирова
ния или влияние значений границ, указанных в правилах кодирования) может быть определена только вслучаях,
когда определение кодирования применяется к типу АСН.1 верхнего уровня.
9.22.4 Имеются два исключения к 9.22.3. Первое исключение будет в случае, когда механизм па
раметризации (похожий на АСН.1) используется для определения параметризованного объекта коди
рования. В этом случае полное кодирование будет определено только после установки реальных па
раметров. Второе исключение будет в случае, когда объект кодирования определен для конструктора
кодирования («CONCATENATION, «ALTERNATIVES, «REPETITION, «SEQUENCE и т. п.). В этом по
следнем случае правила кодирования, связанные с классом кодирования, просто определяют правила,
связанные с аспектами структурирования. Полная спецификация кодирования для структуры кодиро
вания. использующей эти классы кодирования, будет требовать также правил для кодирования компо
нентов этой структуры кодирования.
Примечание — Здесь имеется различие между объектами кодирования класса «SEQUENCE (конструк
тора кодирования) и объектов кодированиядля неявно генерируемой структуры кодирования ««Му-Туре», которая
определяется с использованием типа АСН.1 SEQUENCE. Последняя не является конструктором кодирования, а
объекты кодирования этого класса будут обеспечивать полные правила кодирования для кодирования значений
типа «Му-Туре».
23