===== Main Spectral Data Encoding Trees ===== ==== General Intro ==== The quantized values are encoded using a prefix free binary code. To make matters more complicated there are up to 16 encoding scheme per quantization precision (symbol set depends on precision, so different encoding schemes must be used for different precisions.). In many cases, the symbols are built from a group of two or four quantized values instead of just one quantized value. For groups of size two, the trees are shown as table, the first symbol choosing the row, the second value the column. For groups of size four, the tables are organized so that the first symbol chooses the row block, the second symbol the exact row, the third symbol the column block and the fourth symbol the column. //I think about swapping second and third symbol, so be careful when coming back later!// Another catch is that some of the encoding schemes encoded the signed quantized values, while others encode only the absolute values of the quantized values. If only the absolute values are encoded in a symbol, each symbol is followed by one bit per absolute value that is not zero. If that bit is set, the value is negative. The trees can be calculated as [[canonical huffman trees]]. Note that unsigned sorting (on two's complement numbers) is used, so negative numbers sort behind positive ones. The sort order for the grouped symbols is lexicographically by the single quantized numbers. ==== Examples ==== === Interpreting a group-by-four block === Let's take a look at Tree 1A. The shortest symbol is (0,0,0,0), encoded with one bit, and gets assigned the code ''0''. The next shortest symbol has 4 bits, there is only one of them, and it is (-1,0,0,0). So this symbol gets the code ''1000''. Now, there are seven symbols with 5 bits. From top to bottom in the table, the symbols are * (0,-1,0,0) * (0,0,-1,0) * (0,0,0,-1) * (0,0,0,1) * (0,0,1,0) * (0,1,0,0) * (1,0,0,0) Now for sorting these symbols lexicographically, rember that negative values go past positive ones (if we had -2,-1,0,1,2 the sorted order would be 0,1,2,-2,-1 instead). In this case, the sorted order ist * (0,0,0,1) -> ''10010'' * (0,0,0,-1) -> ''10011'' * (0,0,1,0) -> ''10100'' * (0,0,-1,0) -> ''10101'' * (0,1,0,0) -> ''10110'' * (0,-1,0,0) -> ''10111'' * (1,0,0,0) -> ''11000'' === Interpreting absolute value encoding === Now take a look at Tree 1H. In this coding scheme, the prefix free code is built from positive values only. Applying the algorithm to build the canonical code from the given lengths, one gets the following code assignment: * (0,0) -> ''0'' * (1,0) -> ''10'' * (0,1) -> ''110'' * (1,1) -> ''111'' as the these codes are absolute value, they have to be interpreted as (0,0), (±1,0), (0,±1), (±1,±1) in fact, and the signs have to be specified afterwards. For each non-zero value from left to right, one bit being zero for positive and one for negative is appended to to the code, so you finally obtain * (0,0) -> ''0'' * (+1,0) -> ''10**0**''; (-1,0) -> ''10**1**'' * (0,+1) -> ''110**0**''; (0,-1) -> ''110**1**'' * (+1,+1) -> ''111**00**'', (-1,+1) -> ''111**10**'', (+1,-1) -> ''111**01**'', (-1,-1) -> ''111**11**'' ==== Trees for Precision 1 ==== (i.e. symbol set -1..+1) === Tree 1A === (used for A/0)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -111 91210 710121011
010 810 7 4 8 9 710
112 910 9 710111012
0 -1 9 710 8 5 7 9 710
0 7 5 7 5 1 5 7 5 7
110 7 9 7 5 810 7 9
1 -1121011 9 7 910 912
010 7 9 7 5 710 810
111101210 71012 911
=== Tree 1B === (used for A/1)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -110 91110 710111011
010 8 9 7 5 7 9 710
111 8 9 9 7 911 911
0 -1 9 8 9 7 5 7 8 7 9
0 7 5 7 5 1 5 6 5 7
1 9 7 8 7 5 8 9 8 9
1 -111 911 9 7 9 9 811
0 9 7 9 7 5 7 9 810
111 91110 71011 910
=== Tree 1C === (used for A/2, B/1)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -110 91210 810111011
010 8 9 8 5 8 9 710
111 8 9 9 7 9111012
0 -1 9 810 8 5 8 8 710
0 8 5 7 4 1 4 7 5 8
1 9 7 8 8 5 810 8 9
1 -1121011 9 7 9 9 811
010 8 9 8 5 8 9 810
111101110 81012 910
=== Tree 1D === (used for A/3)
-101
-1 6 4 6
0 3 1 3
1 6 3 6
=== Tree 1E === (used for A/4, B/2, B/6)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -112111212 912121112
0121011 9 5 911 912
112101111 911121112
0 -1111011 9 4 910 911
0 9 4 9 4 1 4 9 4 9
111 910 9 410111011
1 -112111211 911111012
011 911 9 5 9111012
112111211 912121112
=== Tree 1F === (used for A/5, B/3)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -110 91110 7 911 911
010 7 9 7 4 7 9 7 9
111 8 9 9 6 911 911
0 -1 9 7 9 7 5 7 8 6 9
0 7 4 6 4 2 4 6 5 7
1 9 6 8 7 4 7 9 7 9
1 -111 911 9 6 9 9 811
0 9 7 9 7 4 7 9 710
111 911 9 71011 910
=== Tree 1G === (used for A/6, B/5)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -110 911 9 7 911 911
0 9 8 9 8 4 8 9 7 9
110 910 9 7 910 910
0 -1 8 7 9 8 4 7 8 7 9
0 7 4 6 4 2 4 7 4 7
1 9 7 8 7 4 7 9 7 9
1 -110 911 9 7 910 910
0 9 7 9 8 4 8 9 8 9
110 910 9 7 910 910
=== Tree 1H === (used for A/7) (absolute values in followed by sign bits if nonzero)
01
0 1 3
1 2 3
=== Tree 1I === (used for B/0)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -110 91210 710121011
010 810 8 4 8 9 710
112 910 9 710111012
0 -1 9 810 8 5 8 9 710
0 7 5 7 5 1 5 7 5 7
110 7 9 8 5 810 8 9
1 -112101110 7 910 912
010 8 9 8 4 810 810
111101210 71012 910
=== Tree 1J === (used for B/4)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -111 91210 710121012
010 710 7 5 810 710
112 91010 710121012
0 -1 9 710 8 5 7 9 710
0 7 5 7 5 1 5 7 5 7
110 7 9 7 5 810 7 9
1 -112101210 7 910 912
010 7 9 7 4 810 710
112101210 71012 911
=== Tree 1K === (used for B/7)
-1 0 1
-1 0 1 -1 0 1 -1 0 1
-1 -110 91210 7 9121012
010 710 8 4 810 7 9
112 910 9 710121012
0 -1 9 710 8 5 7 9 710
0 7 5 7 5 1 5 7 5 7
110 7 9 7 5 810 7 9
1 -112101210 71010 912
0 9 710 7 5 810 710
1121012 9 71012 910
==== Trees for Precision 2 ==== (i.e. symbol set -2..+2) === Tree 2A === (used for A/0) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 2 4 8 4 5 7 8 810
1 4 5 8 5 5 8 8 810
2 8 8 9 8 810101011
1 0 4 5 8 5 5 8 8 910
1 5 5 8 5 5 8 9 810
2 8 810 8 810 9 910
2 0 8 810 8 810101012
1 8 811 8 810101011
210101110 911111112
=== Tree 2B === (used for A/1) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 5 5 7 5 5 6 8 7 8
1 5 5 7 5 5 6 7 7 7
2 7 7 8 7 6 8 8 7 8
1 0 5 5 7 5 5 6 7 7 7
1 5 5 7 5 5 6 7 7 7
2 7 7 8 6 6 7 8 7 7
2 0 7 7 8 7 7 8 8 8 9
1 6 6 8 6 6 7 7 7 8
2 8 810 7 7 810 8 8
=== Tree 2C === (used for A/2)
-2-1012
-2 9 8 6 7 8
-1 7 5 3 5 7
0 7 3 2 3 6
1 7 5 3 5 7
2 8 7 6 7 9
=== Tree 2D === (used for A/3, B/2) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 1 4 6 5 6 7 6 7 8
1 5 7 8 6 7 8 7 8 8
2 7 810 7 810 8 9 9
1 0 4 7 9 7 8 9 8 9 9
1 6 8 9 7 8 9 8 9 9
2 7 910 8 910 9 910
2 0 6 910 8 910101011
1 7 910 8 911101011
2 81011 81011 91011
=== Tree 2E === (used for A/4) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 3 4 7 5 5 7 7 7 8
1 5 5 7 5 5 7 7 7 8
2 7 7 9 7 7 9 9 810
1 0 4 5 7 5 5 7 7 7 8
1 5 5 7 5 5 7 7 7 8
2 7 7 9 7 6 8 8 8 9
2 0 7 7 9 7 7 9 9 910
1 7 7 9 7 7 8 9 8 9
2 9 810 8 8 9 9 910
=== Tree 2F === (used for A/5)
-2-1012
-210 9 7 8 9
-1 8 6 4 6 8
0 8 3 1 3 7
1 8 6 4 6 8
2 9 8 7 810
=== Tree 2G === (used for A/6)
-2-1012
-2 8 7 6 6 7
-1 6 5 3 4 6
0 6 3 3 3 6
1 6 4 3 5 7
2 7 6 6 7 8
=== Tree 2H === (used for A/7) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 2 4 7 4 5 7 7 8 9
1 4 5 8 5 5 8 8 7 9
2 7 810 8 8 9 9 910
1 0 4 5 8 5 6 8 8 8 9
1 5 6 8 5 6 8 8 8 9
2 8 810 7 8 9 9 910
2 0 7 810 8 810101011
1 7 810 8 8 9 9 910
2 9 911 9 911101011
=== Tree 2I === (used for B/0) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 1 4 7 4 6 8 8 810
1 4 6 9 6 6 9 8 910
2 8 911 8 911101012
1 0 4 6 9 6 7 9 9 911
1 6 710 6 7 9 9 910
2 81011 9 911101011
2 0 8 912 91012111112
1 8 912 9 911111112
2101112101012121112
=== Tree 2J === (used for B/1) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 3 4 7 5 5 7 7 7 9
1 4 5 7 5 5 7 7 7 8
2 7 7 9 7 8 9 9 810
1 0 4 5 7 5 5 7 8 7 9
1 5 5 7 5 5 7 7 7 8
2 7 7 9 7 7 9 8 8 9
2 0 7 710 7 7 9 9 910
1 7 7 9 7 7 9 9 910
2 9 910 8 81010 910
=== Tree 2K === (used for B/3, B/7) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 2 4 6 4 5 7 7 7 8
1 4 5 7 5 6 8 7 8 9
2 7 810 7 810 9 910
1 0 4 5 8 5 6 8 8 8 9
1 5 6 8 6 6 8 8 8 9
2 7 810 8 810 9 910
2 0 6 810 7 810101011
1 7 810 8 810 91011
2 8 911 9 910101011
=== Tree 2L === (used for B/4)
-2-1012
-2 9 8 7 7 9
-1 8 6 3 5 7
0 7 4 1 4 6
1 7 5 4 6 8
2 9 7 7 8 9
=== Tree 2M === (used for B/5)
-2-1012
-2 9 8 7 7 9
-1 8 6 4 5 7
0 6 4 1 4 7
1 7 5 3 6 8
2 9 7 7 8 9
=== Tree 2N === (used for B/6) (absolute values in followed by sign bits if nonzero)
0 1 2
0 1 2 0 1 2 0 1 2
0 0 1 4 6 5 6 6 7 7 8
1 5 7 8 7 7 8 7 8 8
2 7 910 7 910 8 910
1 0 4 7 9 7 8 9 9 910
1 6 8 9 7 8 9 9 910
2 7 911 8 910 9 910
2 0 5 911 81011101112
1 6 911 8 911101011
2 81011 81012101011
==== Trees for Precision 3 ==== (i.e. symbol set -3..+3) === Tree 3A === (used for A/0, B/2)
-3-2-10123
-3 9 8 7 6 7 7 8
-2 8 7 6 6 6 7 7
-1 7 6 4 4 4 6 7
0 7 6 4 3 4 6 7
1 7 6 4 4 4 6 7
2 7 7 6 6 6 8 8
3 8 7 7 7 7 8 9
=== Tree 3B === (used for A/1, B/1)
-3-2-10123
-310 9 8 8 8 910
-2 9 9 7 7 7 8 9
-1 9 8 6 4 5 7 8
0 8 7 4 1 4 7 8
1 8 7 5 4 6 8 9
2 9 8 7 7 8 9 9
310 9 8 8 8 910
=== Tree 3C === (used for A/2)
-3-2-10123
-3 9 9 8 7 8 8 9
-2 9 8 7 6 6 8 8
-1 8 7 5 3 5 7 8
0 7 6 3 3 3 6 7
1 8 7 5 3 5 7 8
2 8 8 6 6 7 8 9
3 9 8 8 7 8 9 9
=== Tree 3D === (used for A/3) (absolute values in followed by sign bits if nonzero)
0 1 2 3
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 0 3 5 810 4 5 7 9 7 8101012101012
1 5 5 8 9 5 5 7 8 8 7101010 910 9
2 8 8 9 9 7 81010 9 8101110101111
310101112101010121110121211101211
1 0 5 5 810 5 5 810 7 8 91010 91112
1 5 5 8 9 5 6 7 9 8 8 81010 91010
2 8 81011 7 8 911 8 710111110 910
310 91210 9111010 9 9101110101112
2 0 7 81010 8 71010 9 9111011101210
1 7 71012 7 8 81011 9 81011101012
2 8 91012 910 91011 9111012121110
31110 91210 910121111121012121212
3 010 9111110101112 911121212121112
1 9 91212 8 910121212111211121012
210101012 810101212 9121012101212
310101212101010121012121210121012
=== Tree 3E === (used for A/4) * -3: 4 bits * -2: 3 bits * -1,0: 2 bits * 1,2: 3 bits * 3: 4 bits === Tree 3F === (used for A/5) * -3: 4 bits * -2,-1: 3 bits * 0,1: 2 bits * 2: 3 bits * 3: 4 bits === Tree 3G === (used for A/6) (absolute values in followed by sign bits if nonzero)
0 1 2 3
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 0 3 4 7 9 5 5 710 8 7 9 910101111
1 5 5 8 9 5 6 8 9 7 7 71010 91110
2 9 71110 8 810111010101010 91010
3 9 91111 9 910111010111111101111
1 0 5 5 811 6 6 8 9 9 710 911 91011
1 5 5 8 9 6 5 710 7 8 7 910 9 911
2 8 8 910 8 8 810 8 8101010 81010
31111111010 81111101110111110 911
2 0 7 71110 8 7 910 9 8101111111010
1 8 8 810 7 7 91110 8 911 9101011
2 9 9 911 8 8 910 9 8101010 91110
310101111111111 910 9111111101010
3 010 91011 9 91111 910101111111011
1 9 81011 81010101011111111 91111
210 91011 910 91110 9101111111111
31111111010111011 911111111101011
=== Tree 3H === (used for A/7)
-3-2-10123
-310 9 9 8 7 810
-2 9 9 7 6 6 7 8
-1 8 7 5 4 4 6 8
0 8 6 4 2 3 6 8
1 8 6 4 4 5 7 8
2 8 7 6 6 7 8 9
3 9 9 8 8 91010
=== Tree 3I === (used for B/0)
-3-2-10123
-3 9 9 8 7 8 8 9
-2 9 9 8 7 7 9 9
-1 8 7 6 4 6 7 8
0 7 6 4 1 4 7 7
1 8 7 6 4 6 8 8
2 9 8 7 7 8 9 9
3 9 9 8 7 8 9 9
=== Tree 3J === (used for B/3) (absolute values in followed by sign bits if nonzero)
0 1 2 3
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 0 2 5 810 5 6 8 9 7 8101010111111
1 5 6 810 6 6 810 8 8 81010 91010
2 8 81010 8 8101010 9101010101010
31010111110 910101110101011101010
1 0 5 6 8 9 6 6 810 8 8101010101010
1 6 6 810 6 6 7 9 8 7 9 910 9 9 9
2 8 71010 8 7 9 910 8 9 910 9 9 9
310101010 9 9 9 910 9 9 910 9 9 9
2 0 8 8 911 8 7 9 910 9101011101010
1 8 71010 7 8 9 9 9 9 9 910 9 9 9
2 9 91010 9 8 9 9 9 9 9 910 9 9 9
31010101010 9 9 910 9 9 910 9 9 9
3 0 9101011 9 910101010101012101010
110101010 9 8 9 910 9 9 910 9 9 9
21210101010 9 9 910 9 9 910 9 9 9
31110101010 9 9 911 9 9 911 9 9 9
=== Tree 3K === (used for B/4)
-3-2-10123
-3 9 8 7 7 7 8 9
-2 8 8 7 6 6 8 8
-1 7 6 5 3 5 6 7
0 7 6 4 2 4 6 7
1 7 6 5 4 5 7 7
2 8 8 6 6 7 8 8
3 9 8 7 7 7 8 9
=== Tree 3L === (used for B/5) * -3,-2: 5 bits * -1: 2 bits * 0: 1 bits * 1: 3 bits * 2,3: 5 bits === Tree 3M === (used for B/6) * -3,-2: 5 bits * -1: 3 bits * 0: 1 bits * 1: 2 bits * 2,3: 5 bits === Tree 3N === (used for B/7) (absolute values in followed by sign bits if nonzero)
0 1 2 3
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 0 1 5 9 9 6 7 9 91010111111101010
1 6 81010 7 7 9 9 9 9101011101010
21011101110 910101110101011101010
311111111101010101110101010101010
1 0 6 71011 7 7 9101010 91011101010
1 6 7 910 7 7 8 9 9 9 9 910 9 9 9
210101010 9 9 9 910 9 9 910 9 9 9
310 9101010 9 9 910 9 9 910 9 9 9
2 0 9 9111111 910101010101011101010
1 9 91010 9 9 9 9 9 9 9 910 9 9 9
210101010 9 9 9 910 8 9 910 9 9 9
31010101010 9 9 910 9 9 910 9 9 9
3 0 8111111101010101110101011101010
1 9 9101010 9 9 910 9 9 910 9 9 9
21010101010 9 9 910 9 9 910 9 9 9
31010101010 9 9 910 9 9 910 9 9 9
==== Trees for Precision 4 ==== (i.e. symbol set -5..+5) === Tree 4A === (used for A/0) (absolute values in followed by sign bits if nonzero) * 0: 3 bits * 1,2: 2 bits * 3..5: 3 bits === Tree 4B === (used for A/1)
-5-4-3-2-1012345
-51110 9 8 8 7 8 9 91011
-4 91010 9 9 8 9 9101010
-3 91010 9 8 7 8 9101010
-2 910 9 8 7 6 7 8 9 9 8
-1 8 9 8 7 5 4 5 7 8 9 8
0 7 8 7 6 4 2 4 6 7 8 7
1 8 8 8 7 5 4 6 7 8 9 8
2 910 9 8 7 6 7 8 9 9 8
3 91010 9 8 7 8 91010 9
4101110 9 9 8 9 9101010
51110 9 9 8 7 8 9 91010
=== Tree 4C === (used for A/2, B/5) (absolute values in followed by sign bits if nonzero) * 0..2: 2 bits * 3: 3 bits * 4,5: 4 bits === Tree 4D === (used for A/3) (absolute values in followed by sign bits if nonzero) * 0: 2 bits * 1: 1 bits * 2: 3 bits * 3: 4 bits * 4,5: 5 bits === Tree 4E === (used for A/4, B/2)
-5-4-3-2-1012345
-510 9 9 8 8 8 8 8 8 910
-41010 9 9 8 8 8 8 9 9 9
-3 9 9 9 8 7 7 7 7 8 9 8
-2 8 9 8 7 6 6 6 7 8 8 8
-1 8 8 7 6 5 4 5 6 7 8 8
0 8 8 7 6 4 4 4 6 7 8 7
1 8 8 7 6 5 4 5 6 8 8 8
2 8 8 8 7 6 6 6 7 8 9 9
3 8 9 8 8 7 7 7 8 910 9
4 910 9 8 8 8 8 9101010
510 9 8 8 8 8 8 9 91010
=== Tree 4F === (used for A/5)
-5-4-3-2-1012345
-5 9 9 9 9 8 9 9 9 9 8 8
-4 9 7 9 9 9 7 8 9 9 9 9
-3 8 9 8 9 7 7 7 7 8 9 9
-2 9 9 9 8 6 6 7 6 7 9 7
-1 8 8 8 7 5 4 4 5 6 9 9
0 9 8 7 5 5 4 5 6 7 7 9
1 9 7 7 6 5 4 5 6 9 9 9
2 8 7 8 9 6 6 6 7 9 9 8
3 9 8 8 7 6 6 9 9 7 8 9
4 9 9 9 9 9 9 9 8 9 9 9
5 9 9 9 9 8 9 9 9 9 8 9
=== Tree 4G === (used for A/6)
-5-4-3-2-1012345
-5 8 8 8 8 8 8 8 7 8 8 8
-4 8 8 8 8 7 7 8 8 8 8 8
-3 7 8 7 8 7 8 7 7 8 8 8
-2 8 8 7 6 7 5 6 7 8 7 8
-1 9 8 6 5 6 7 7 7 7 8 9
0 8 7 7 5 5 4 5 5 6 7 8
1 8 8 7 7 6 6 6 6 6 8 8
2 8 8 7 7 6 5 6 7 7 7 8
3 7 7 8 7 7 7 7 7 8 8 8
4 8 8 8 7 8 8 8 8 8 8 8
5 8 8 8 8 7 7 8 8 8 8 8
=== Tree 4H === (used for A/7)
-5-4-3-2-1012345
-51211111010 9 910101111
-41111111010 91010101110
-311111010 9 9 9 9101110
-2101010 9 8 7 8 8 91010
-11010 9 8 6 4 6 8 910 9
0 9 9 9 7 4 1 4 7 910 9
1 910 9 8 6 4 6 8 91010
21010 9 8 7 7 8 9101010
3101010 9 9 9 910101111
411111010 9101010111211
5111010 9 9 91010111111
=== Tree 4I === (used for B/0, B/3)
-5-4-3-2-1012345
-5111010 9 9 8 8 9 91010
-4101010 9 9 8 9 9 910 9
-31010 9 9 8 8 8 8 910 9
-2 9 9 9 8 7 6 7 7 8 9 9
-1 9 9 8 7 5 4 5 7 8 9 8
0 8 8 8 6 4 2 4 6 8 9 8
1 8 9 8 7 5 4 5 7 8 9 9
2 9 9 8 7 6 6 7 8 9 9 9
3 9 9 9 8 8 8 8 9 91010
41010 9 9 8 9 9 9101110
510 9 9 8 8 8 9 9101010
=== Tree 4J === (used for B/1, B/4)
-5-4-3-2-1012345
-5121110 9 9 8 910101112
-41011111010 91010111111
-310111110 9 8 910111111
-2101110 9 8 7 8 91010 9
-1 910 9 8 6 4 6 8 910 9
0 8 9 8 7 4 1 4 7 8 9 8
1 9 9 9 8 6 4 7 8 910 9
2101110 9 8 7 8 91010 9
310111110 9 8 910111110
41112111010 91010111111
512111010 9 8 910101111
=== Tree 4K === (used for B/6) (absolute values in followed by sign bits if nonzero) * 0: 2 bits * 1: 1 bits * 2: 3 bits * 3,4: 5 bits * 5: 4 bits === Tree 4L === (used for B/7) * -5,-4: 6 bits * -3: 5 bits * -2: 4 bits * -1: 3 bits * 0: 1 bits * 1: 3 bits * 2: 4 bits * 3,4: 6 bits * 5: 5 bits ==== Trees for Precision 5 ==== (i.e. symbol set -7..+7) === Tree 5A === (used for A/0)
-7-6-5-4-3-2-101234567
-7121111101010 9 9 9 91010101111
-61111111010 9 9 9 9 91010101111
-5111111111010 9 9 9101010111010
-410101110 9 9 9 8 8 9 910101010
-3101010 9 9 8 8 7 8 8 9 9101010
-210 910 9 8 7 7 6 6 7 8 910 9 9
-1 9 9 9 9 8 7 5 5 5 6 8 9 9 9 9
0 9 9 9 8 7 6 4 3 4 6 7 8 9 9 9
1 9 9 9 8 8 6 5 4 5 7 8 9 9 9 9
2 9 910 9 8 7 6 6 7 7 8 910 910
3101010 9 9 8 8 7 8 8 910101010
410101010 9 9 8 8 9 9 910111010
5111011101010 9 9 9101011111111
61111101010 9 9 9 9 91010111111
71111101010 9 9 9 9101010111112
=== Tree 5B === (used for A/1, B/1)
-7-6-5-4-3-2-101234567
-7111010 9 9 9 9 8 9 9 910101011
-6101010 9 9 9 8 8 8 9 9 9 91010
-5101010 9 9 9 9 9 9 9 910101010
-4 9 9 9 9 9 8 8 8 8 8 9 910 9 9
-3 9 9 9 9 8 8 7 7 7 8 8 9 9 9 9
-2 9 9 9 8 8 7 6 6 6 7 8 8 9 9 9
-1 9 9 9 8 7 6 5 5 5 6 7 8 9 9 9
0 8 8 9 8 7 6 5 5 5 6 7 8 9 8 8
1 9 9 9 8 7 6 5 5 5 6 7 8 9 9 9
2 9 9 9 8 8 7 6 6 6 7 8 8 9 9 9
3 9 910 9 8 8 7 7 7 8 8 9 9 9 9
410 910 9 9 8 8 8 8 8 9 910 910
510101010 9 9 9 9 9 9 910101010
6101010 9 9 9 8 8 8 9 9 9101010
7111010 9 9 9 9 8 9 9 910101011
=== Tree 5C === (used for A/2) (absolute values in followed by sign bits if nonzero) * 0: 3 bits * 1: 2 bits * 2..5: 3 bits * 6,7: 4 bits === Tree 5D === (used for A/3)
-7-6-5-4-3-2-101234567
-7101010101010 9 910 910 9 9 910
-610101010 9 9 9 910 9 9 9101010
-510 9101010 9 9 910 91010101010
-4101010 9 910 9 9 9 9 9 9 91010
-31010 9 910 9 9 8 9 8 8 910 910
-2101010 9 9 7 7 6 7 7 7 910 910
-110101010 8 7 5 4 6 7 8101010 9
0 910 910 7 6 4 2 5 6 7 7 9 9 9
1 9 910 9 9 7 6 5 6 7 9 9101010
210 910 9 8 7 7 7 7 710 9101010
31010101010 9 8 7 7 9 9 8101010
41010 910 910 9 810 9 910101010
51010101010 910 9 91010 9101010
610 910 9 910 910 910 910 91010
7101010 91010 91010101010 91010
=== Tree 5E === (used for A/4, B/4) (absolute values in followed by sign bits if nonzero) * 0: 3 bits * 1,2: 2 bits * 3: 3 bits * 4..7: 4 bits === Tree 5F === (used for A/5, B/5) (absolute values in followed by sign bits if nonzero) * 0: 1 bits * 1: 2 bits * 2: 3 bits * 3: 5 bits * 4,5: 6 bits * 6,7: 5 bits === Tree 5G === (used for A/6) * -7: 7 bits * -6: 6 bits * -5: 7 bits * -4: 6 bits * -3: 5 bits * -2: 4 bits * -1..1: 2 bits * 2,3: 5 bits * 4: 6 bits * 5: 7 bits * 6: 6 bits * 7: 7 bits === Tree 5H === (used for A/7) * -7: 6 bits * -6: 5 bits * -5: 6 bits * -4: 5 bits * -3: 4 bits * -2,-1: 3 bits * 0: 2 bits * 1: 3 bits * 2,3: 4 bits * 4: 5 bits * 5: 6 bits * 6: 5 bits * 7: 6 bits === Tree 5I === (used for B/0, B/2)
-7-6-5-4-3-2-101234567
-71111101010 9 9 8 9 9 910101011
-61110101010 9 9 8 9 91010101011
-5101011111010 9 9 9101011111010
-41010111010 9 9 8 9 91010111010
-3 9101010 9 9 8 7 8 8 9101010 9
-2 9 910 9 9 8 7 6 7 8 8 910 9 9
-1 9 9 9 9 8 7 5 4 5 7 8 9 9 9 9
0 8 8 9 8 7 6 4 3 4 6 7 8 9 8 8
1 9 9 9 9 8 7 5 4 5 7 8 9 9 9 9
2 9 910 9 8 8 7 6 7 8 8 910 9 9
3 9 91010 9 8 8 7 8 8 910101010
41010101010 9 9 8 9 91010111010
5101011111010 9 9 9101011111010
611101010 9 9 9 8 9 91010101011
711111010 9 9 9 8 9 91010101111
=== Tree 5J === (used for B/3)
-7-6-5-4-3-2-101234567
-712111110101010 9 9101012111212
-6121212111110 9 9 9101111121112
-5111112121111101010111112121112
-411111211111010 9 9101112121110
-31111111110 9 9 8 8 91010111010
-210101110 9 8 7 6 8 8 9101010 9
-1 9 911 9 8 7 6 5 6 8 91010 9 9
0 9 9 9 9 8 7 5 1 5 7 8 910 9 9
1 91010 9 9 8 6 5 6 7 9101010 9
210101110 9 8 7 6 8 8 911111010
31010111110 9 9 8 9101011121010
411111212101010 910101011121111
511111212121110 910111112121111
611111111101010 910101111121111
7121111111110 9 9 9101010111212
=== Tree 5K === (used for B/6)
-7-6-5-4-3-2-101234567
-712111011101010 9 910 911111012
-6101111101010 9 810101011111111
-5111112121110101010111011121011
-411111111121010 9 9101111121011
-310101111 9 9 9 810101110111011
-2 91011101110 8 7 8 910101110 9
-1 912111110 8 7 5 7 8 910101012
0 9 910 9 8 7 4 1 5 7 9101010 9
1 91010 9 9 8 6 4 6 810101110 9
2 910101010 9 8 7 810 910111110
311101110101010 9 910101112 910
411111212101011 910101010111210
5101011121211111011101210121011
61110101010 910 910101110111110
71210121210 9 9 810101010111011
=== Tree 5L === (used for B/7)
-7-6-5-4-3-2-101234567
-712121111111110 910101112111212
-6121212121111101010101112121112
-5111112121211111011111212121212
-411111212121110 910101212121111
-3111111121110 9 8 9101011121111
-21011121110 9 8 7 8 91010111110
-110101210 9 8 7 3 7 8 910111010
0 9 910 9 8 7 3 2 3 7 9 910 9 9
110101110 9 8 7 3 7 8 910111010
21010111110 9 8 7 8 91011111010
3111111111010 9 8 9101112121111
412111212111110 910111112121211
5111212121211111011111212121112
612121212111010 910101112121212
712121211111010 910101111121212
==== Trees for Precision 6 ==== (i.e. symbol set -15..+15) === Tree 6A === (used for A/0, B/0) (absolute values in followed by sign bits if nonzero) * 0: 3 bits * 1: 2 bits * 2,3: 3 bits * 4,5: 4 bits * 6..9: 5 bits * 10..12: 6 bits * 13,14: 5 bits * 15: 6 bits === Tree 6B === (used for A/1, B/4) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 2 4 6 7 8 9 9101010111210 9 9 9
1 3 4 5 6 7 8 8 9 910101010 8 8 9
2 6 5 6 7 8 8 9 91010101110 8 9 9
3 7 6 7 8 8 9 9101010101110 8 9 9
4 8 7 7 8 9 910101010101110 9 9 9
5 8 8 8 9 9 910101011111111 9 9 9
6 9 8 9 9101010111111111110 91010
7 9 9 9 9101011111111121211 91010
810 9 910101010111111121211101010
910101010111011111111121211101010
1011101010111111111212121211101010
1111101011111111121212121211101010
1210 91010111111111111111111101011
13 9 8 8 9 9 9 910 910101010111111
14 9 8 8 9 9 910101010101010111111
15 9 9 9 910 910101011101111111111
=== Tree 6C === (used for A/2) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 4 5 6 6 7 8 8 9 9 9101010 9 910
1 4 4 5 6 6 7 7 8 8 9 9 9 9 8 9 9
2 6 5 5 6 7 7 8 8 8 9 910 9 8 9 9
3 6 6 6 6 7 7 8 8 9 9 910 9 8 9 9
4 7 6 6 7 7 8 8 9 9 9 910 9 9 9 9
5 8 7 7 7 8 8 8 9 9 9101010 9 910
6 8 7 7 8 8 8 9 9 910101010 9 910
7 9 8 8 8 8 9 9 91010101010 91010
8 9 8 8 8 9 9 9101010101110 91010
9 9 8 9 9 9 9 9101010111110101010
1010 9 9 9 91010101011111111101010
1110 9 910101010101011111111101111
1210 9 9 9 91010101010111111101111
13 9 8 8 8 9 9 9 9 910101010111111
14 9 8 9 9 9 9 9101010101011111111
1510 9 9 9 9 910101010101111111111
=== Tree 6D === (used for A/3) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 3 4 5 7 7 8 9 91010101110 91010
1 4 4 5 6 6 7 8 8 9 9 910 9 8 9 9
2 5 5 5 6 7 8 8 8 9 91010 9 8 9 9
3 7 6 6 7 7 8 8 9 910101010 8 9 9
4 7 7 7 7 8 8 8 9 9101010 9 9 9 9
5 8 7 7 8 8 8 9 9 910101010 9 910
6 9 8 8 8 8 9 9101010101110 9 910
7 9 8 8 9 9 9 9101010101110 9 910
810 9 9 9 9 910101010111110 91010
910 9 910101010101011111111101010
101010 910101010111111111111101010
1111101010101011111111121211101010
1210 9 910101010101010111111101011
13 9 8 8 8 9 9 9 9 9 9101010101011
1410 9 9 9 9 9 9 91010101011111111
1510 9 9 9101010101010101111111111
=== Tree 6E === (used for A/4) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 6 7 8 6 7 9 9 9 9 9 9 7 9 9 9 9
1 7 7 6 6 6 8 6 9 7 8 9 9 9 8 9 9
2 5 6 6 7 6 7 6 7 9 7 9 9 9 9 9 8
3 7 7 8 7 6 6 7 9 8 8 9 9 9 9 9 9
4 8 7 6 7 8 7 7 7 8 8 9 9 9 9 9 9
5 7 7 7 7 6 7 7 8 8 9 9 9 8 9 9 9
6 7 9 6 8 7 7 8 9 9 8 9 8 9 9 9 9
7 8 9 6 8 9 7 7 9 9 8 9 9 9 9 9 9
8 8 9 8 8 8 9 8 9 7 9 9 9 9 9 9 9
9 8 9 9 9 9 9 8 8 9 9 9 9 9 9 9 9
10 8 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9
11 9 8 9 9 9 9 9 9 9 8 9 9 9 9 9 9
12 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9
13 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9
14 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
15 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
=== Tree 6F === (used for A/5) * -15,-14: 7 bits * -13: 6 bits * -12: 7 bits * -11..-9: 6 bits * -8,-7: 5 bits * -6: 6 bits * -5: 5 bits * -4..3: 4 bits * 4: 3 bits * 5..7: 5 bits * 8,9: 6 bits * 10..13: 7 bits * 14: 6 bits * 15: 7 bits === Tree 6G === (used for A/6, B/7) * -15: 5 bits * -14: 10 bits * -13,-12: 8 bits * -11..-9: 7 bits * -8..-5: 6 bits * -4,-3: 5 bits * -2: 4 bits * -1: 3 bits * 0: 2 bits * 1: 3 bits * 2: 4 bits * 3,4: 5 bits * 5..8: 6 bits * 9..11: 7 bits * 12: 8 bits * 13: 9 bits * 14: 10 bits * 15: 5 bits === Tree 6H === (used for A/7) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 3 4 5 6 7 8 8 9 910101010 8 9 9
1 4 4 5 6 6 7 7 8 8 9 910 9 8 8 8
2 5 5 6 7 7 8 8 8 9 91010 9 8 9 9
3 6 6 6 7 8 8 8 9 9 9101010 8 9 9
4 7 6 7 8 8 8 9 9 910101010 9 9 9
5 8 7 8 8 8 9 9101010101110 9 9 9
6 8 7 8 8 9 9 9101010111111 91010
7 9 8 8 9 9 910101011111211101010
8 9 8 9 9 91010101011111111101010
910 9 9 9101010111111111111101010
1010 9 910101011111111111211101011
1110 91010101111111112121211101111
1210 9 9 9101010111111111112101111
13 8 8 8 8 9 9 9101010101010111111
14 9 8 8 9 9 910101010101011111111
15 9 8 9 9 91010101010101111111212
=== Tree 6I === (used for B/1) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 4 4 5 6 7 8 8 8 9 9101010 9 9 9
1 4 4 5 6 6 7 7 8 8 9 9 9 9 8 8 9
2 5 5 6 6 7 7 8 8 8 9 9 9 9 8 9 9
3 6 6 6 7 7 8 8 8 9 9 910 9 8 9 9
4 7 6 7 7 8 8 9 9 9 9101010 9 9 9
5 8 7 7 8 8 8 9 9 910101010 9 910
6 8 7 8 8 9 9 9 91010101010 9 910
7 8 8 8 8 9 9 9101010101110 91010
8 9 8 8 9 9 910101010111111101010
9 9 8 9 9 91010101011111111101010
10 9 9 9 9101010101111111111101011
1110 9 910101011111111111111101011
12 9 9 9 9101010101011111111101111
13 9 8 8 8 9 9 9 91010101010111111
14 9 8 8 9 9 9 9101010101011111111
15 9 8 9 9 91010101010111111111212
=== Tree 6J === (used for B/2, B/3) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 3 4 5 6 7 8 9 9 910101110 9 9 9
1 3 4 5 6 7 7 8 8 9 9 910 9 8 8 9
2 5 5 6 7 7 8 8 9 9 91010 9 8 9 9
3 6 6 7 7 8 8 9 91010101010 8 9 9
4 7 7 7 8 8 9 9 91010101110 9 9 9
5 8 7 8 8 9 9 9101010111110 9 9 9
6 8 8 8 9 9 910101010111110 9 910
7 9 8 9 9 91010101111111111 91010
8 9 8 9 9101010101111111211101010
910 9 910101011111111111211101010
1010 91010101111111211121211101011
1110 91010111111111212121211101011
1210 9 910101010111111111111101111
13 9 8 8 8 9 9 9 91010101010111111
14 9 8 8 9 9 9 9101010101010111111
15 9 9 9 9 91010101010101111111112
=== Tree 6K === (used for B/5) * -15..-13: 7 bits * -12..-7: 8 bits * -6..-4: 7 bits * -3: 6 bits * -2: 5 bits * -1: 3 bits * 0: 1 bits * 1: 3 bits * 2: 5 bits * 3,4: 6 bits * 5..7: 7 bits * 8,9: 8 bits * 10,11: 9 bits * 12: 8 bits * 13: 6 bits * 14,15: 7 bits === Tree 6L === (used for B/6) (absolute values in followed by sign bits if nonzero)
0123456789101112131415
0 1 4 7 8 9 9 911 912121210 9 910
1 4 4 6 8 8 9 9101010111210 8 8 9
2 6 6 7 8 9 8 9101010111010 9 9 9
3 8 7 8 9 910101011101011 9 9 910
4 9 91011101210111012101011 911 9
51010 9 9121111121110111211101111
610 91010101111111110111211101010
710 910101211111112111112121010 9
810101010111212121111121212 91010
910101012111112111211121212121010
1010101211111212121112121110101011
1110101112121212111212121212101010
1211 910 9101012101012111111121112
13 9 9 8 910 910111010111112111210
14 9 9 910111010 91010121111121011
151010 910101010101111111110111111
==== Trees for Precision 7 ==== (i.e. symbol set -31..+31) === Tree 7A === (used for A/0, A/7, B/1, B/2) * -31..-29: 8 bits * -28..-26: 7 bits * -25: 8 bits * -24: 10 bits * -23..-18: 9 bits * -17..-11: 8 bits * -10..-7: 7 bits * -6..-4: 6 bits * -3: 5 bits * -2: 4 bits * -1: 3 bits * 0: 2 bits * 1: 3 bits * 2: 4 bits * 3: 5 bits * 4..6: 6 bits * 7..10: 7 bits * 11..16: 8 bits * 17..23: 9 bits * 24: 10 bits * 25: 8 bits * 26..28: 7 bits * 29..31: 8 bits === Tree 7B === (used for A/1) * -31..-29: 8 bits * -28..-26: 7 bits * -25: 8 bits * -24..-22: 9 bits * -21..-15: 8 bits * -14..-9: 7 bits * -8..-6: 6 bits * -5..-3: 5 bits * -2: 4 bits * -1..1: 3 bits * 2: 4 bits * 3,4: 5 bits * 5..8: 6 bits * 9..14: 7 bits * 15..21: 8 bits * 22..24: 9 bits * 25: 8 bits * 26,27: 7 bits * 28..31: 8 bits === Tree 7C === (used for A/2) * -31..-26: 8 bits * -25: 7 bits * -24..-22: 8 bits * -21..-16: 7 bits * -15: 6 bits * -14,-13: 7 bits * -12,-11: 6 bits * -10..-8: 5 bits * -7: 6 bits * -6..-1: 5 bits * 0: 4 bits * 1: 5 bits * 2,3: 4 bits * 4: 6 bits * 5..7: 5 bits * 8: 6 bits * 9: 5 bits * 10..12: 6 bits * 13: 7 bits * 14: 6 bits * 15..19: 7 bits * 20,21: 8 bits * 22,23: 7 bits * 24: 8 bits * 25,26: 7 bits * 27..29: 8 bits * 30: 7 bits * 31: 8 bits === Tree 7D === (used for A/3) * -31,-30: 8 bits * -29..-26: 7 bits * -25..-17: 8 bits * -16..-11: 7 bits * -10..-7: 6 bits * -6..-4: 5 bits * -3..3: 4 bits * 4..6: 5 bits * 7..10: 6 bits * 11..16: 7 bits * 17..24: 8 bits * 25..30: 7 bits * 31: 8 bits === Tree 7E === (used for A/4) * -31,-30: 9 bits * -29: 8 bits * -28,-27: 7 bits * -26: 8 bits * -25: 7 bits * -24,-23: 8 bits * -22: 7 bits * -21: 8 bits * -20: 9 bits * -19..-13: 8 bits * -12: 7 bits * -11: 6 bits * -10: 5 bits * -9: 6 bits * -8..-3: 5 bits * -2..2: 4 bits * 3..6: 5 bits * 7: 6 bits * 8: 5 bits * 9..14: 6 bits * 15..21: 7 bits * 22: 8 bits * 23,24: 9 bits * 25: 8 bits * 26,27: 9 bits * 28: 8 bits * 29..31: 9 bits === Tree 7F === (used for A/5) * -31..-29: 8 bits * -28..-26: 7 bits * -25: 8 bits * -24..-22: 9 bits * -21..-16: 8 bits * -15..-11: 7 bits * -10..-7: 6 bits * -6..-4: 5 bits * -3..-1: 4 bits * 0: 3 bits * 1,2: 4 bits * 3..6: 5 bits * 7..10: 6 bits * 11..15: 7 bits * 16..21: 8 bits * 22: 9 bits * 23..25: 8 bits * 26..28: 7 bits * 29..31: 8 bits === Tree 7G === (used for A/6) * -31..-27: 8 bits * -26: 7 bits * -25: 8 bits * -24..-20: 9 bits * -19..-13: 8 bits * -12..-8: 7 bits * -7..-5: 6 bits * -4,-3: 5 bits * -2,-1: 4 bits * 0: 2 bits * 1: 3 bits * 2: 4 bits * 3,4: 5 bits * 5..7: 6 bits * 8..13: 7 bits * 14..19: 8 bits * 20..24: 9 bits * 25: 8 bits * 26: 7 bits * 27..31: 8 bits === Tree 7H === (used for B/0, B/5) * -31..-25: 7 bits * -24..-20: 9 bits * -19..-14: 8 bits * -13..-9: 7 bits * -8..-5: 6 bits * -4,-3: 5 bits * -2: 4 bits * -1..1: 3 bits * 2: 4 bits * 3,4: 5 bits * 5..8: 6 bits * 9..12: 7 bits * 13..19: 8 bits * 20..24: 9 bits * 25..31: 7 bits === Tree 7I === (used for B/3) * -31: 9 bits * -30,-29: 8 bits * -28: 9 bits * -27..-25: 8 bits * -24: 11 bits * -23: 10 bits * -22: 11 bits * -21..-16: 10 bits * -15..-10: 9 bits * -9..-7: 8 bits * -6..-4: 7 bits * -3: 6 bits * -2: 5 bits * -1: 3 bits * 0: 1 bits * 1: 3 bits * 2: 5 bits * 3: 6 bits * 4..6: 7 bits * 7..10: 8 bits * 11: 9 bits * 12: 10 bits * 13..15: 9 bits * 16..19: 10 bits * 20: 11 bits * 21: 10 bits * 22..24: 11 bits * 25..29: 8 bits * 30,31: 9 bits === Tree 7J === (used for B/4) * -31..-28: 8 bits * -27,-26: 7 bits * -25: 8 bits * -24..-19: 9 bits * -18..-13: 8 bits * -12..-8: 7 bits * -7..-5: 6 bits * -4,-3: 5 bits * -2,-1: 4 bits * 0: 2 bits * 1: 3 bits * 2: 4 bits * 3,4: 5 bits * 5..7: 6 bits * 8..12: 7 bits * 13..18: 8 bits * 19..24: 9 bits * 25: 8 bits * 26,27: 7 bits * 28..31: 8 bits === Tree 7K === (used for B/6) * -31..-25: 8 bits * -24..-19: 9 bits * -18..-13: 8 bits * -12..-8: 7 bits * -7..-5: 6 bits * -4,-3: 5 bits * -2: 4 bits * -1: 3 bits * 0: 2 bits * 1: 3 bits * 2,3: 5 bits * 4..7: 6 bits * 8..12: 7 bits * 13..18: 8 bits * 19..24: 9 bits * 25..31: 8 bits === Tree 7L === (used for B/7) * -31,-30: 11 bits * -29: 10 bits * -28: 11 bits * -27..-20: 9 bits * -19,-18: 8 bits * -17: 7 bits * -16: 8 bits * -15..-11: 7 bits * -10..-6: 6 bits * -5..-3: 5 bits * -2,-1: 4 bits * 0: 2 bits * 1,2: 4 bits * 3..5: 5 bits * 6..10: 6 bits * 11..16: 7 bits * 17..20: 8 bits * 21..27: 9 bits * 28..30: 10 bits * 31: 11 bits ===== Tree Sets ===== This table shows the mapping of tree set IDs, tree IDs and quantization precisions to the code tables defined above. If the table says //n x Tree XX// it means that n symbols of that tree (which might groups of 1, 2 or 4 quantized coefficients) are clustered together. Each cluster is preceeded by an "data present" bit. If that bit is zero, all coefficients of the whole cluster are zero, and no codes for the cluster are stored. If that bit is one that at least one non-zero entry is present and the codes for this cluster follow as in non-clustered mode. The tree choice can be limited to a restricted tree set. The IDs inside the restricted tree set are in the range 0..3 instead of 0..7, and printed as R0..R3 in the table. ==== Tree Set A==== |Quant\ID^ 0^ 1^ 2^ 3^ 4^ 5^ 6^ 7^ ^ R0^ R1^ R2^ R3^ ^ 1| Tree 1A| 4 x Tree 1B| Tree 1C| Tree 1D| Tree 1E| Tree 1F| 2 x Tree 1G| Tree 1H| | Tree 1A| Tree 1F| Tree 1E| 4x Tree 1B| ^ 2| Tree 2A| Tree 2B| Tree 2C| Tree 2D| Tree 2E| Tree 2F| Tree 2G| 2 x Tree 2H| | Tree 2A| Tree 2B| Tree 2C| Tree 2D| ^ 3| Tree 3A| Tree 3B| Tree 3C| Tree 3D| Tree 3E| Tree 3F| Tree 3G| Tree 3H| | Tree 3D| Tree 3A| Tree 3E| Tree 3C| ^ 4| Tree 4A| Tree 4B| Tree 4C| Tree 4D| Tree 4E| Tree 4F| Tree 4G| Tree 4H| | Tree 4E| Tree 4A| Tree 4B| Tree 4C| ^ 5| Tree 5A| Tree 5B| Tree 5C| Tree 5D| Tree 5E| Tree 5F| Tree 5G| Tree 5H| | Tree 5B| Tree 5A| Tree 5E| Tree 5D| ^ 6| Tree 6A| Tree 6B| Tree 6C| Tree 6D| Tree 6E| Tree 6F| Tree 6G| 2 x Tree 6H| | Tree 6D| Tree 6A| Tree 6C| Tree 6B| ^ 7| Tree 7A| Tree 7B| Tree 7C| Tree 7D| Tree 7E| Tree 7F| Tree 7G| 4 x Tree 7A| | Tree 7A| Tree 7D| Tree 7B| Tree 7C| ==== Tree Set B==== |Quant\ID^ 0^ 1^ 2^ 3^ 4^ 5^ 6^ 7^ ^ R0^ R1^ R2^ R3^ ^ 1| 4 x Tree 1I| Tree 1C| 4 x Tree 1E| Tree 1F| Tree 1J| 2 x Tree 1G| Tree 1E| Tree 1K| | Tree 1J| 4 x Tree 1I| Tree 1C| 4 x Tree 1E| ^ 2| Tree 2I| Tree 2J| 4 x Tree 2D| Tree 2K| 4 x Tree 2L| Tree 2M| Tree 2N| 4 x Tree 2K| | Tree 2I| Tree 2K| 4 x Tree 2D| Tree 2J| ^ 3| 4 x Tree 3I| Tree 3B| Tree 3A| Tree 3J| Tree 3K| 4 x Tree 3L| Tree 3M| 4 x Tree 3N| | 4 x Tree 3I| Tree 3B| Tree 3A| Tree 3J| ^ 4| Tree 4I| Tree 4J| Tree 4E| 2 x Tree 4I| 4 x Tree 4J| Tree 4C| Tree 4K| Tree 4L| | Tree 4I| Tree 4J| Tree 4E| 4 x Tree 4J| ^ 5| Tree 5I| Tree 5B| 2 x Tree 5I| Tree 5J| Tree 5E| Tree 5F| 4 x Tree 5K| Tree 5L| | Tree 5I| Tree 5B| 2 x Tree 5I| Tree 5J| ^ 6| Tree 6A| Tree 6I| 2 x Tree 6J| Tree 6J| Tree 6B| Tree 6K| Tree 6L| Tree 6G| | Tree 6I| Tree 6B| 2 x Tree 6J| Tree 6A| ^ 7| Tree 7H| Tree 7A| 4 x Tree 7A| Tree 7I| Tree 7J| 2 x Tree 7H| Tree 7K| Tree 7L| | Tree 7H| Tree 7A| 4 x Tree 7A| Tree 7I|