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

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

     9.17 Отображение абстрактных значений в поля структур кодирования


Имеются шесть механизмов, предусмотренных для этой цели.

9.17.1 Первый механизм - это отображение указанных абстрактных значений, связанных с одним простым классом кодирования, в указанные абстрактные значения, связанные с другим простым классом кодирования. Это может использоваться многими способами. Например, значения "цепочки знаков" (цифр) могут быть отображены в целочисленные значения и т.д. (см. 19.2) (см. пример в D.1.10.2).

9.17.2 Второй механизм - это отображение полного поля одной структуры кодирования в поле совместимой структуры кодирования, которая может содержать дополнительные поля обычно для использования в качестве определителей длины или выбора (см. 19.3) (см. пример в D.2.8.3).

9.17.3 Третий механизм - это отображение путем трансформирования всех абстрактных значений, связанных одним классом кодирования, в абстрактные значения, связанные с другим (обычно, но не обязательно) классом кодирования, используя некоторый трансформирующий объект кодирования (см. 9.18). Этим механизмом возможно, например, отобразить #INTEGER в #CHARS, чтобы получить знаки, которые могут быть затем кодированы любым желательным способом (например, способом "двоично-кодированное десятичное число" или способом ASCII) (см. пример в D.1.6.3).

9.17.4 Четвертый механизм отображения - это использование указанного упорядочения абстрактных значений определенных типов и конструкций и отображение согласно этому упорядочению. Это образует очень мощные средства кодирования абстрактных значений, связанных с одним классом кодирования, как будто они были абстрактными значениями, связанными с полностью независимым классом кодирования (см. 19.5) (см. пример в D.1.4.2).

9.17.5 Пятый механизм - это распределение абстрактных значений (используя нотацию диапазона значений), связанных с одним классом кодирования (обычно #INTEGER), в поля другого класса кодирования (см. примеры в 19.6 и D.2.1.3).

9.17.6 Последний механизм позволяет спецификатору ECN обеспечить явное отображение целочисленных значений (которые могут быть образованы более ранним отображением, например, из класса #ENUMERATED) в биты, которые должны использоваться для кодирования таких значений. Это предназначается для поддержки кодовых последовательностей Хаффмана, где частость появления каждого значения известна (по крайней мере приблизительно) и где требуется оптимальное кодирование. В приложении Е подробно описываются коды последовательностей Хаффмана и даются примеры этого механизма, а также ссылки на программное обеспечение, которое будет генерировать синтаксис ECN для этих отображений, задавшись только относительной частостью, с которой, как ожидается, будет использоваться каждое значение целого числа (см. 19.7).