ГОСТ Р ИСО/МЭК 8825-3—2016
D.2.5.3 Присвоением объекта кодирования является:
sparseUnevenlyDistributedValueSetEncoding «SparseUnevenlyDistributedValueSet ::= {
USE #lntFromOTo5
MAPPING ORDERED VALUES
WITH PER-BASIC-UNALIGNED}
«IntFromOToS ::= #INT (0..5)
D.2.5.4 Шесть возможных абстрактных значений отображаются в диапазон 0—5 и кодируются в трехбитовое
поле. Отображение будет следующим: 0->0. 3—1,5—2.6—3. 8—4 и 11—5.
D.2.6 Присутствие факультативного компонента в зависимости от значения другого компонента
D.2.6.1 Присвоение АСН.1 равно:
ConditionalPresenceOnValue ::= SEQUENCE {
a INTEGER (0..4),
b INTEGER (1..10),
c BOOLEAN OPTIONAL
- Условие: "с"
присутствует, если “а"равно 0. а в остальных случаях
"с"
отсутствует
-.
d BOOLEAN OPTIONAL
-
Условие: ~d"отсутствует, если "а"равно 1. а в остальных случаях "d"
присутствует - }
-
Учтем подразумеваемые в комментариях ограничения присутствия.
-
Учтем также, что целочисленное поле ~а“ переносит прикладную семантику
-
и имеет значения, отличающиеся от нуля и единицы. Если "а" имеет значение 0.
-т о “с "и “d "оба присутствуют. Если ~а~имеет значение 1. то
"с"u
“d " оба отсутствуют.
- Если V имеет
злаченое
3 или 4. то "с” отсутствует, a "d" присутствует. Эти условия
- являются очень жесткими для формального выражения при использовании только АСН.
?.
D.2.6.2 Компонент «а» выполняет роль детерминанта присутствия для двух компонентов «с» и •>d», а коди
рование PER будет вырабатывать два вспомогательных бита для факультативных компонентов. Мы нуждаемся в
кодировании, в котором эти вспомогательные биты отсутствуют.
D.2.6.3 Присвоениями объекта кодирования являются:
conditionalPresenceOnValueEncoding ^ConditionalPresenceOnValue{
ENCODE STRUCTURE{
c USE-SET OPTIONAL-ENCODING is-c-present{< a >}.
d USE-SET OPTIONAL-ENCODING is-d-present{< a >}}
WITH PER-BASIC-UNALIGNED}
is-c-present {< REFERENCE : a >} «OPTIONAL{
PRESENCE
DETERMINED BY field-to-be-used
USING a
DECODER-TRANSFORMS {{INT-TO-BOOL TRUE-IS {0}}}}
is-d-present {< REFERENCE : a >} «OPTIONAL ::= {
PRESENCE
DETERMINED BY field-to-be-used
USING a
DECODER-TRANSFORMS {{INT-TO-BOOL TRUE-IS {0 | 2 | 3 | 4}}}}
D.2.6.4 Здесь мы имеем простую, формальную и ясную спецификацию условий присутствия «с» и «d». ко
торая может быть понятна для инструментов кодера-декодера. Комментарии АСН.1 не могут обрабатываться ин
струментами. Обеспечение кодирования функциональных возможностей для «с» и ed» означает, что кодирование
PER для OPTIONAL не используется в этом случае и нет вспомогательных битов.
D.2.6.5 Параметризованные объекты кодирования is-c-present» и «is-d-present» указывают, как опреде
ляется присутствие компонентов во время кодирования. Заметим, что для кодирования не требуется (и не раз
решается) преобразование, так как детерминант имеет прикладную семантику (то есть он виден в определении
типа АСН.1). Однако хороший кодирующий инструмент будет контролировать установку «а» с помощью прило
жения. обеспечивая, что ее значение согласуется с наличием или отсутствием «с» и «d». которое определяется
кодом приложения.
177