an index i is set equal to 0. Then, when TrailingOnes( coeff_token) is not equal to 0, the following ordered steps are applied TrailingOnes coeff_token) times to decode the trailing one transform coefficient levels: 1. A 1-bit syntax element trailing_ones_sign_flag is decoded and evaluated as follows: If trailing_ones_sign_flag is equal to 0, levelVal[ i ] is set equal to 1. Otherwise (trailing_ones_sign_flagi is equal to 1), levelVal[ i ] is set equal to -1. 2. The index i is incremented by 1. Then, the variable suffixLength is initialised as follows: If TotalCoeff( coeff_token) is greater than 10 and TrailingOnes( coeff_token) is less than 3, suffixLength is set equal to 1. Otherwise (TotalCoeff( coeff_token) is less than or equal to 10 or TrailingOnes( coeff_token ) is equal to 3), suffixLength is set equal to 0. Then, when TotalCoeff( coeff_token) - TrailingOnes( coeff_token) is not equal to 0, the following ordered steps are applied TotalCoeff( coeff_token) - TrailingOnes( coeff_token) times to decode the remaining non-zero level values: The syntax element level_prefix is decoded as specified in clause 9.2.2.1. 2. The variable levelSuffixSize is set as follows: If level prefix is equal to 14 and suffixLength is equal to 0, levelSuffixSize is set equal to 4. Otherwise, if level_prefix is greater than or equal to 15, levelSuffixSize is set equal to level_prefix - 3. Otherwise, levelSuffixSize is set equal to suffixLength. The syntax element level_suffix is decoded as follows: If levelSuffixSize is greater than 0, the syntax element level suffix is decoded as unsigned integer representation u(v) with levelSuffixSize bits. Otherwise (levelSuffixSize is equal to 0), the syntax element level_suffix is inferred to be equal to 0. The variable levelCode is set equal to (Min( 15, level_prefix ) << suffixLength + level_suffix. When level_prefix is greater than or equal to 15 and suffixLength is equal to 0, levelCode is incremented by 15. 6. When level prefix is greater than or equal to 16, levelCode is incremented by (