Table of Contents

Introduction     ix
 1     Scope  
 2     Normative references 
        2.1     Identical Recommendations | International Standards 
        2.2     Additional references 
 3     Definitions 
        3.1     ASN.1 definitions 
        3.2     ECN‑specific definitions 
 4     Abbreviations 
 5     Definition of ECN syntax 
 6     Encoding conventions and notation  
 7     The ECN character set 
 8     ECN lexical items 
        8.1     Encoding object references 
        8.2     Encoding object set references 
        8.3     Encoding class references 
        8.4     Reserved word items 
        8.5     Reserved encoding class name items 
        8.6     Non-ECN item   
 9     ECN Concepts 
        9.1     Encoding Control Notation (ECN) specifications 
        9.2     Encoding classes 
        9.3     Encoding structures 
        9.4     Encoding objects 
        9.5     Encoding object sets 
        9.6     Defining new encoding classes 
        9.7     Defining encoding objects 
        9.8     Differential encoding-decoding 
        9.9     Encoders options in encodings 
       9.10     Properties of encoding objects 
       9.11     Parameterization  
       9.12     Governors 
       9.13     General aspects of encodings 
       9.14     Identification of information elements 
       9.15     Reference fields and determinants 
       9.16     Replacement classes and structures 
       9.17     Mapping abstract values onto fields of encoding structures 
       9.18     Transforms and transform composites 
       9.19     Contents of Encoding Definition Modules 
       9.20     Contents of the Encoding Link Module  
       9.21     Defining encodings for primitive encoding classes 
       9.22     Application of encodings 
       9.23     Combined encoding object set 
       9.24     Application point 
       9.25     Conditional encodings 
       9.26     Other conditions for applying encodings 
       9.27     Encoding control for the open type  
       9.28     Changes to ASN.1 Recommendations | International Standards 
10     Identifying encoding classes, encoding objects, and encoding object sets 
11     Encoding ASN.1 types 
       11.1     General
       11.2     Built‑in encoding classes used for implicitly generated encoding structures 
       11.3     Simplification and expansion of ASN.1 notation for encoding purposes 
       11.4     The implicitly generated encoding structure  
12     The Encoding Link Module (ELM) 
       12.1     Structure of the ELM   
       12.2     Encoding types 
13     Application of encodings 
       13.1     General
       13.2     The combined encoding object set and its application  
14     The Encoding Definition Module (EDM) 
15     The renames clause  
       15.1     Explicitly generated and exported structures 
       15.2     Name changes 
       15.3     Specifying the region for name changes 
16     Encoding class assignments 
       16.1     General
       16.2     Encoding structure definition  
       16.3     Alternative encoding structure  
       16.4     Repetition encoding structure  
       16.5     Concatenation encoding structure  
17     Encoding object assignments 
       17.1     General
       17.2     Encoding with a defined syntax 
       17.3     Encoding with encoding object sets 
       17.4     Encoding using value mappings 
       17.5     Encoding an encoding structure  
       17.6     Differential encoding-decoding 
       17.7     Encoding options 
       17.8     Non-ECN definition of encoding objects 
18     Encoding object set assignments 
       18.1     General
       18.2     Built‑in encoding object sets 
19     Mapping values 
       19.1     General
       19.2     Mapping by explicit values 
       19.3     Mapping by matching fields 
       19.4     Mapping by #TRANSFORM encoding objects 
       19.5     Mapping by abstract value ordering 
       19.6     Mapping by value distribution  
       19.7     Mapping integer values to bits 
20     Defining encoding objects using defined syntax 
21     Types used in defined syntax specification  
       21.1     The Unit type  
       21.2     The EncodingSpaceSize type  
       21.3     The EncodingSpaceDetermination type  
       21.4     The UnusedBitsDetermination type  
       21.5     The OptionalityDetermination type  
       21.6     The AlternativeDetermination type  
       21.7     The RepetitionSpaceDetermination type  
       21.8     The Justification type  
       21.9     The Padding type  
      21.10     The Pattern and Non-Null-Pattern types 
      21.11     The RangeCondition type  
      21.12     The Comparison type  
      21.13     The SizeRangeCondition type  
      21.14     The ReversalSpecification type  
      21.15     The ResultSize type  
      21.16     The HandleValueSet type  
      21.17     The IntegerMapping type  
22     Commonly used encoding property groups 
       22.1     Replacement specification  
                  22.1.1     Encoding properties, syntax and purpose  
                  22.1.2     Specification restrictions 
                  22.1.3     Encoder actions 
                  22.1.4     Decoder actions 
       22.2     Pre-alignment and padding specification  
                  22.2.1     Encoding properties, syntax and purpose  
                  22.2.2     Specification constraints 
                  22.2.3     Encoder actions 
                  22.2.4     Decoder actions 
       22.3     Start pointer specification  
                  22.3.1     Encoding properties, syntax and purpose  
                  22.3.2     Specification constraints 
                  22.3.3     Encoder actions 
                  22.3.4     Decoder actions 
       22.4     Encoding space specification  
                  22.4.1     Encoding properties, syntax and purpose  
                  22.4.2     Specification restrictions 
                  22.4.3     Encoder actions 
                  22.4.4     Decoder actions 
       22.5     Optionality determination  
                  22.5.1     Encoding properties, syntax and purpose  
                  22.5.2     Specification restrictions 
                  22.5.3     Encoder actions 
                  22.5.4     Decoder actions 
       22.6     Alternative determination  
                  22.6.1     Encoding properties, syntax and purpose  
                  22.6.2     Specification restrictions 
                  22.6.3     Encoder actions 
                  22.6.4     Decoder actions 
       22.7     Repetition space specification  
                  22.7.1     Encoding properties, syntax and purpose  
                  22.7.2     Specification constraints 
                  22.7.3     Encoder actions 
                  22.7.4     Decoder actions 
       22.8     Value padding and justification  
                  22.8.1     Encoding properties, syntax, and purpose  
                  22.8.2     Specification restrictions 
                  22.8.3     Encoder actions 
                  22.8.4     Decoder actions 
       22.9     Identification handle specification  
                  22.9.1     Encoding properties, syntax and purpose  
                  22.9.2     Specification constraints 
                  22.9.3     Encoders actions 
                  22.9.4     Decoders actions 
      22.10     Concatenation specification  
                  22.10.1     Encoding properties, syntax and purpose  
                  22.10.2     Specification constraints 
                  22.10.3     Encoder actions 
                  22.10.4     Decoder actions 
      22.11     Contained type encoding specification  
                  22.11.1     Encoding properties, syntax and purpose  
                  22.11.2     Encoder actions 
                  22.11.3     Decoder actions 
      22.12     Bit reversal specification  
                  22.12.1     Encoding properties, syntax, and purpose  
                  22.12.2     Specification constraints 
                  22.12.3     Encoder actions 
                  22.12.4     Decoder actions 
23     Defined syntax specification for bit-field and constructor classes 
       23.1     Defining encoding objects for classes in the alternatives category 
                  23.1.1     The defined syntax 
                  23.1.2     Purpose and restrictions 
                  23.1.3     Encoder actions 
                  23.1.4     Decoder actions 
       23.2     Defining encoding objects for classes in the bitstring category 
                  23.2.1     The defined syntax 
                  23.2.2     Model for the encoding of classes in the bitstring category 
                  23.2.3     Purpose and restrictions 
                  23.2.4     Encoder actions 
                  23.2.5     Decoder actions 
       23.3     Defining encoding objects for classes in the boolean category 
                  23.3.1     The defined syntax 
                  23.3.2     Purpose and restrictions 
                  23.3.3     Encoder actions 
                  23.3.4     Decoder actions 
       23.4     Defining encoding objects for classes in the characterstring category 
                  23.4.1     The defined syntax 
                  23.4.2     Model for the encoding of classes in the characterstring category 
                  23.4.3     Purpose and restrictions 
                  23.4.4     Encoder actions 
                  23.4.5     Decoder actions 
       23.5     Defining encoding objects for classes in the concatenation category 
                  23.5.1     The defined syntax 
                  23.5.2     Purpose and restrictions 
                  23.5.3     Encoder actions 
                  23.5.4     Decoder actions 
       23.6     Defining encoding objects for classes in the integer category 
                  23.6.1     The defined syntax 
                  23.6.2     Purpose and restrictions 
                  23.6.3     Encoder actions 
                  23.6.4     Decoder actions 
       23.7     Defining encoding objects for the #CONDITIONAL-INT class 
                  23.7.1     The defined syntax 
                  23.7.2     Purpose and restrictions 
                  23.7.3     Encoder actions 
                  23.7.4     Decoder actions 
       23.8     Defining encoding objects for classes in the null category 
                  23.8.1     The defined syntax 
                  23.8.2     Purpose and restrictions 
                  23.8.3     Encoder actions 
                  23.8.4     Decoder actions 
       23.9     Defining encoding objects for classes in the octetstring category 
                  23.9.1     The defined syntax 
                  23.9.2     Model for the encoding of classes in the octetstring category 
                  23.9.3     Purpose and restrictions 
                  23.9.4     Encoder actions 
                  23.9.5     Decoder actions 
      23.10     Defining encoding objects for classes in the open type category 
                  23.10.1     The defined syntax 
                  23.10.2     Model for the encoding of classes in the open type category 
                  23.10.3     Purpose and restrictions 
                  23.10.4     Encoder actions 
                  23.10.5     Decoder actions 
      23.11     Defining encoding objects for classes in the optionality category 
                  23.11.1     The defined syntax 
                  23.11.2     Purpose and restrictions 
                  23.11.3     Encoder actions 
                  23.11.4     Decoder actions 
      23.12     Defining encoding objects for classes in the pad category 
                  23.12.1     The defined syntax 
                  23.12.2     Purpose and restrictions 
                  23.12.3     Encoder actions 
                  23.12.4     Decoder actions 
      23.13     Defining encoding objects for classes in the repetition category 
                  23.13.1     The defined syntax 
                  23.13.2     Purpose and restrictions 
                  23.13.3     Encoder actions 
                  23.13.4     Decoder actions 
      23.14     Defining encoding objects for the #CONDITIONAL-REPETITION class 
                  23.14.1     The defined syntax 
                  23.14.2     Purpose and restrictions 
                  23.14.3     Encoder actions 
                  23.14.4     Decoder actions 
      23.15     Defining encoding objects for classes in the tag category 
                  23.15.1     The defined syntax 
                  23.15.2     Purpose and restrictions 
                  23.15.3     Encoder actions 
                  23.15.4     Decoder actions 
      23.16     Defining encoding objects for classes in the other categories 
24     Defined syntax specification for the #TRANSFORM encoding class 
       24.1     Summary of encoding properties and defined syntax 
       24.2     Source and target of transforms 
       24.3     The int-to-int transform   
       24.4     The bool-to-bool transform   
       24.5     The bool-to-int transform   
       24.6     The int-to-bool transform   
       24.7     The int-to-chars transform   
       24.8     The int-to-bits transform   
       24.9     The bits-to-int transform   
      24.10     The char-to-bits transform   
      24.11     The bits-to-char transform   
      24.12     The bit-to-bits transform   
      24.13     The bits-to-bits transform   
      24.14     The chars-to-composite-char transform   
      24.15     The bits-to-composite-bits transform   
      24.16     The octets-to-composite-bits transform   
      24.17     The composite-char-to-chars transform   
      24.18     The composite-bits-to-bits transform   
      24.19     The composite-bits-to-octets transform   
25     Complete encodings and the #OUTER class 
       25.1     Encoding properties, syntax and purpose for the #OUTER class 
       25.2     Encoder actions for #OUTER  
       25.3     Decoder actions for #OUTER  
Annex A  Addendum to Rec. ITU-T X.680 | ISO/IEC 8824‑1     
        A.1     Exports and imports clauses 
        A.2     Addition of REFERENCE  
        A.3     Notation for character string values 
Annex B  Addendum to Rec. ITU-T X.681 | ISO/IEC 8824‑2    
        B.1     Definitions 
        B.2     Additional lexical items 
                  B.2.1     Ordered value list field references 
                  B.2.2     Ordered encoding object list field references 
                  B.2.3     Encoding class field references 
        B.3     Addition of "ENCODING‑CLASS" 
        B.4     FieldSpec additions 
        B.5     Fixed-type ordered value list field spec 
        B.6     Fixed-class encoding object field spec 
        B.7     Variable-class encoding object field spec 
        B.8     Fixed-class encoding object set field spec 
        B.9     Fixed-class ordered encoding object list field spec 
       B.10     Encoding class field spec 
       B.11     Ordered value list notation  
       B.12     Ordered encoding object list notation  
       B.13     Primitive field names 
       B.14     Additional reserved words 
       B.15     Definition of encoding objects 
       B.16     Additions to "Setting" 
       B.17     Encoding class field type  
Annex C  Addendum to Rec. ITU-T X.683 | ISO/IEC 8824‑4     
Annex C  Addendum to Rec. ITU-T X.683 | ISO/IEC 8824‑4    
        C.1     Parameterized assignments 
        C.2     Parameterized encoding assignments 
        C.3     Referencing parameterized definitions 
        C.4     Actual parameter list 
Annex D  Examples    
Annex E   Support for Huffman encodings    
Annex F  Additional information on the Encoding Control Notation (ECN)    
Annex G  Summary of the ECN notation