# VC-1 Zigzag Tables

Part of Understanding VC-1

ZigZag Tables

These tables are used in AC Coefficient Decode. They are selected based on the following factors:

• Progressive vs Interlaced
• Intra vs Inter
• Ac Prediction Parameters
• Prediction Direction
• ACPRED syntax element
• Profile
• Transform Type
```unsigned char vc1_Inv_Intra_Normal_Scan [64] = /* Table 226 */
{
0,     8,     1,     2,     9,    16,    24,    17,
10,     3,     4,    11,    18,    25,    32,    40,
33,    48,    26,    19,    12,     5,     6,    13,
20,    27,    34,    41,    56,    49,    57,    42,
35,    28,    21,    14,     7,    15,    22,    29,
36,    43,    50,    58,    51,    59,    44,    37,
30,    23,    31,    38,    45,    52,    60,    53,
61,    46,    39,    47,    54,    62,    55,    63
};
```
```unsigned char vc1_Inv_Intra_Horizontal_Scan [64] = /* Table 227 */
{
0,     1,     8,     2,     3,     9,    16,    24,
17,    10,     4,     5,    11,    18,    25,    32,
40,    48,    33,    26,    19,    12,     6,     7,
13,    20,    27,    34,    41,    56,    49,    57,
42,    35,    28,    21,    14,    15,    22,    29,
36,    43,    50,    58,    51,    44,    37,    30,
23,    31,    38,    45,    52,    59,    60,    53,
46,    39,    47,    54,    61,    62,    55,    63
};
```
```unsigned char vc1_Inv_Intra_Vertical_Scan [64] = /* Table 228 */
{
0,     8,    16,     1,    24,    32,    40,     9,
2,     3,    10,    17,    25,    48,    56,    41,
33,    26,    18,    11,     4,     5,    12,    19,
27,    34,    49,    57,    50,    42,    35,    28,
20,    13,     6,     7,    14,    21,    29,    36,
43,    51,    58,    59,    52,    44,    37,    30,
22,    15,    23,    31,    38,    45,    60,    53,
46,    39,    47,    54,    61,    62,    55,    63
};
```
```unsigned char vc1_Inv_Inter_8x8_Scan_Simple_Main_Profiles_Progressive_Advanced_Profile [64] = /* Table 229 */
{
0,     8,     1,     2,     9,    16,    24,    17,
10,     3,     4,    11,    18,    25,    32,    40,
48,    56,    41,    33,    26,    19,    12,     5,
6,    13,    20,    27,    34,    49,    57,    58,
50,    42,    35,    28,    21,    14,     7,    15,
22,    29,    36,    43,    51,    59,    60,    52,
44,    37,    30,    23,    31,    38,    45,    53,
61,    62,    54,    46,    39,    47,    55,    63
};
```
```unsigned char vc1_Inv_Inter_8x4_Scan_Simple_Main_Profiles [32] = /* Table 230 */
{
0,     1,     2,     8,     3,     9,    10,    16,
4,    11,    17,    24,    18,    12,     5,    19,
25,    13,    20,    26,    27,     6,    21,    28,
14,    22,    29,     7,    30,    15,    23,    31
};
```
```unsigned char vc1_Inv_Inter_4x8_Scan_Simple_Main_Profiles [32] = /* Table 231 */
{
0,     8,     1,    16,
9,    24,    17,     2,
32,    10,    25,    40,
18,    48,    33,    26,
56,    41,    34,     3,
49,    57,    11,    42,
19,    50,    27,    58,
35,    43,    51,    59
};
```
```unsigned char vc1_Inv_Inter_4x4_Scan_Simple_Main_Profiles_Progressive_Advanced_Profile [16] = /* Table 232 */
{
0,     8,    16,     1,
9,    24,    17,     2,
10,    18,    25,     3,
11,    26,    19,    27
};
```
```unsigned char vc1_Inv_Progressive_Inter_8x4_Scan_Advanced_Profile [32] = /* Table 233 */
{
0,     8,     1,    16,     2,     9,    10,     3,
24,    17,     4,    11,    18,    12,     5,    19,
25,    13,    20,    26,    27,     6,    21,    28,
14,    22,    29,     7,    30,    15,    23,    31
};
```
```unsigned char vc1_Inv_Progressive_Inter_4x8_Scan_Advanced_Profile [32] = /* Table 234 */
{
0,     1,     8,     2,
9,    16,    17,    24,
10,    32,    25,    18,
40,     3,    33,    26,
48,    11,    56,    41,
34,    49,    57,    42,
19,    50,    27,    58,
35,    43,    51,    59
};
```
```unsigned char vc1_Inv_Interlace_Inter_8x8_Scan_Advanced_Profile [64] = /* Table 235 */
{
0,     8,     1,    16,    24,     9,     2,    32,
40,    48,    56,    17,    10,     3,    25,    18,
11,     4,    33,    41,    49,    57,    26,    34,
42,    50,    58,    19,    12,     5,    27,    20,
13,     6,    35,    28,    21,    14,     7,    15,
22,    29,    36,    43,    51,    59,    60,    52,
44,    37,    30,    23,    31,    38,    45,    53,
61,    62,    54,    46,    39,    47,    55,    63
};
```
```unsigned char vc1_Inv_Interlace_Inter_8x4_Scan_Advanced_Profile [32] = /* Table 236 */
{
0,     8,    16,    24,     1,     9,     2,    17,
25,    10,     3,    18,    26,     4,    11,    19,
12,     5,    13,    20,    27,     6,    21,    28,
14,    22,    29,     7,    30,    15,    23,    31
};
```
```unsigned char vc1_Inv_Interlace_Inter_4x8_Scan_Advanced_Profile [32] = /* Table 237 */
{
0,     1,     2,     8,
16,     9,    24,    17,
10,     3,    32,    40,
48,    56,    25,    18,
33,    26,    41,    34,
49,    57,    11,    42,
19,    50,    27,    58,
35,    43,    51,    59
};
```
```unsigned char vc1_Inv_Interlace_Inter_4x4_Scan_Advanced_Profile [16] = /* Table 238 */
{
0,     8,    16,    24,
1,     9,    17,     2,
25,    10,    18,     3,
26,    11,    19,    27
};
```