Rec. ITU-T H.274 (08/2020) 9
5.10 Variables, syntax elements and tables
Syntax elements in the syntax tables are represented in bold type. Each syntax element is described by its name (all lower
case letters with underscore characters), and one descriptor for its method of coded representation. The decoding process
behaves according to the value of the syntax element and to the values of previously decoded syntax elements. When a
value of a syntax element is used in the syntax tables or the text, it appears in regular (i.e., not bold) type.
In some cases, the syntax tables and semantics use the values of other variables derived from the values of syntax elements.
Such variables appear in the syntax tables, or text, named by a mixture of lower case and upper case letter and without any
underscore characters. Variables starting with an upper case letter are derived for the decoding of the current syntax
structure and all depending syntax structures. Variables starting with an upper case letter could, in some cases, be used in
the decoding process for later syntax structures without mentioning the originating syntax structure of the variable.
Variables starting with a lower case letter are only used within the clause in which they are derived.
In some cases, "mnemonic" names for syntax element values or variable values are used interchangeably with their
numerical values. Sometimes "mnemonic" names are used without any associated numerical values. The association of
values and names is specified in the text. The names are constructed from one or more groups of letters separated by an
underscore character. Each group starts with an upper case letter and could contain more upper case letters.
NOTE – The syntax is described in a manner that closely follows the C-language syntactic constructs.
Functions that specify properties of the current position in the SEI message payload data are referred to as syntax functions.
These functions are specified in clause 6.3 and assume the existence of a pointer with an indication of the position of the
next bit to be read by the decoding process from the payload data. Syntax functions are described by their names, which
are constructed as syntax element names and end with left and right round parentheses including zero or more variable
names (for definition) or values (for usage), separated by commas (if more than one variable).
Functions that are not syntax functions (including mathematical functions specified in clause 5.8) are described by their
names, which start with an upper case letter, contain a mixture of lower and upper case letters without any underscore
character, and end with left and right parentheses including zero or more variable names (for definition) or values (for
usage) separated by commas (if more than one variable).
A one-dimensional array is referred to as a list. A two-dimensional array is referred to as a matrix. Arrays can either be
syntax elements or variables. Subscripts or square parentheses are used for the indexing of arrays. In reference to a visual
depiction of a matrix, the first subscript is used as a row (vertical) index and the second subscript is used as a column
(horizontal) index. The indexing order is reversed when using square parentheses rather than subscripts for indexing. Thus,
an element of a matrix s at horizontal position x and vertical position y could be denoted either as s[ x ][ y ] or as s
yx
. A
single column of a matrix could be referred to as a list and denoted by omission of the row index. Thus, the column of a
matrix s at horizontal position x could be referred to as the list s[ x ].
A specification of values of the entries in rows and columns of an array could be denoted by { {...} {...} }, where each
inner pair of brackets specifies the values of the elements within a row in increasing column order and the rows are ordered
in increasing row order. Thus, setting a matrix s equal to { { 1 6 } { 4 9 }} specifies that s[ 0 ][ 0 ] is set equal to 1,
s[ 1 ][ 0 ] is set equal to 6, s[ 0 ][ 1 ] is set equal to 4, and s[ 1 ][ 1 ] is set equal to 9.
Binary notation is indicated by enclosing the string of bit values by single quote marks. For example, '01000001' represents
an eight-bit string having only its second and its last bits (counted from the most to the least significant bit) equal to 1.
Hexadecimal notation, indicated by prefixing the hexadecimal number by "0x", is used in some cases instead of binary
notation when the number of bits is an integer multiple of 4. For example, 0x41 represents an eight-bit string having only
its second and its last bits (counted from the most to the least significant bit) equal to 1.
Numerical values not enclosed in single quotes and not prefixed by "0x" are decimal values.
A value equal to 0 represents a FALSE condition in a test statement. The value TRUE is represented by any value different
from zero.
5.11 Text description of logical operations
In the text, a statement of logical operations as would be described mathematically in the following form:
if( condition 0 )
statement 0
else if( condition 1 )
statement 1
...
else /* informative remark on remaining condition */
statement n