tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

scan.c (128127B)


      1 /*
      2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved.
      3 *
      4 * This source code is subject to the terms of the BSD 2 Clause License and
      5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
      6 * was not distributed with this source code in the LICENSE file, you can
      7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
      8 * Media Patent License 1.0 was not distributed with this source code in the
      9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
     10 */
     11 
     12 #include <assert.h>
     13 
     14 #include "av1/common/common_data.h"
     15 #include "av1/common/scan.h"
     16 
     17 DECLARE_ALIGNED(16, static const int16_t, default_scan_4x4[16]) = {
     18  0, 4, 1, 2, 5, 8, 12, 9, 6, 3, 7, 10, 13, 14, 11, 15,
     19 };
     20 
     21 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_4x4[16]) = {
     22  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
     23 };
     24 
     25 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_4x4[16]) = {
     26  0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15,
     27 };
     28 
     29 DECLARE_ALIGNED(16, static const int16_t, default_scan_4x8[32]) = {
     30  0,  8, 1,  16, 9,  2, 24, 17, 10, 3, 25, 18, 11, 4,  26, 19,
     31  12, 5, 27, 20, 13, 6, 28, 21, 14, 7, 29, 22, 15, 30, 23, 31,
     32 };
     33 
     34 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_4x8[32]) = {
     35  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
     36  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
     37 };
     38 
     39 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_4x8[32]) = {
     40  0, 8,  16, 24, 1, 9,  17, 25, 2, 10, 18, 26, 3, 11, 19, 27,
     41  4, 12, 20, 28, 5, 13, 21, 29, 6, 14, 22, 30, 7, 15, 23, 31,
     42 };
     43 
     44 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x4[32]) = {
     45  0,  1,  4,  2,  5,  8,  3,  6,  9,  12, 7,  10, 13, 16, 11, 14,
     46  17, 20, 15, 18, 21, 24, 19, 22, 25, 28, 23, 26, 29, 27, 30, 31,
     47 };
     48 
     49 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x4[32]) = {
     50  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
     51  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
     52 };
     53 
     54 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x4[32]) = {
     55  0, 4, 8,  12, 16, 20, 24, 28, 1, 5, 9,  13, 17, 21, 25, 29,
     56  2, 6, 10, 14, 18, 22, 26, 30, 3, 7, 11, 15, 19, 23, 27, 31,
     57 };
     58 
     59 DECLARE_ALIGNED(16, static const int16_t, default_scan_4x16[64]) = {
     60  0,  16, 1,  32, 17, 2,  48, 33, 18, 3,  49, 34, 19, 4,  50, 35,
     61  20, 5,  51, 36, 21, 6,  52, 37, 22, 7,  53, 38, 23, 8,  54, 39,
     62  24, 9,  55, 40, 25, 10, 56, 41, 26, 11, 57, 42, 27, 12, 58, 43,
     63  28, 13, 59, 44, 29, 14, 60, 45, 30, 15, 61, 46, 31, 62, 47, 63,
     64 };
     65 
     66 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x4[64]) = {
     67  0,  1,  4,  2,  5,  8,  3,  6,  9,  12, 7,  10, 13, 16, 11, 14,
     68  17, 20, 15, 18, 21, 24, 19, 22, 25, 28, 23, 26, 29, 32, 27, 30,
     69  33, 36, 31, 34, 37, 40, 35, 38, 41, 44, 39, 42, 45, 48, 43, 46,
     70  49, 52, 47, 50, 53, 56, 51, 54, 57, 60, 55, 58, 61, 59, 62, 63,
     71 };
     72 
     73 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_4x16[64]) = {
     74  0,  16, 32, 48, 1,  17, 33, 49, 2,  18, 34, 50, 3,  19, 35, 51,
     75  4,  20, 36, 52, 5,  21, 37, 53, 6,  22, 38, 54, 7,  23, 39, 55,
     76  8,  24, 40, 56, 9,  25, 41, 57, 10, 26, 42, 58, 11, 27, 43, 59,
     77  12, 28, 44, 60, 13, 29, 45, 61, 14, 30, 46, 62, 15, 31, 47, 63,
     78 };
     79 
     80 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x4[64]) = {
     81  0, 4, 8,  12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
     82  1, 5, 9,  13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61,
     83  2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62,
     84  3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63,
     85 };
     86 
     87 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_4x16[64]) = {
     88  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
     89  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
     90  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
     91  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
     92 };
     93 
     94 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x4[64]) = {
     95  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
     96  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
     97  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
     98  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
     99 };
    100 
    101 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x32[256]) = {
    102  0,   32,  1,   64,  33,  2,   96,  65,  34,  3,   128, 97,  66,  35,  4,
    103  160, 129, 98,  67,  36,  5,   192, 161, 130, 99,  68,  37,  6,   224, 193,
    104  162, 131, 100, 69,  38,  7,   225, 194, 163, 132, 101, 70,  39,  8,   226,
    105  195, 164, 133, 102, 71,  40,  9,   227, 196, 165, 134, 103, 72,  41,  10,
    106  228, 197, 166, 135, 104, 73,  42,  11,  229, 198, 167, 136, 105, 74,  43,
    107  12,  230, 199, 168, 137, 106, 75,  44,  13,  231, 200, 169, 138, 107, 76,
    108  45,  14,  232, 201, 170, 139, 108, 77,  46,  15,  233, 202, 171, 140, 109,
    109  78,  47,  16,  234, 203, 172, 141, 110, 79,  48,  17,  235, 204, 173, 142,
    110  111, 80,  49,  18,  236, 205, 174, 143, 112, 81,  50,  19,  237, 206, 175,
    111  144, 113, 82,  51,  20,  238, 207, 176, 145, 114, 83,  52,  21,  239, 208,
    112  177, 146, 115, 84,  53,  22,  240, 209, 178, 147, 116, 85,  54,  23,  241,
    113  210, 179, 148, 117, 86,  55,  24,  242, 211, 180, 149, 118, 87,  56,  25,
    114  243, 212, 181, 150, 119, 88,  57,  26,  244, 213, 182, 151, 120, 89,  58,
    115  27,  245, 214, 183, 152, 121, 90,  59,  28,  246, 215, 184, 153, 122, 91,
    116  60,  29,  247, 216, 185, 154, 123, 92,  61,  30,  248, 217, 186, 155, 124,
    117  93,  62,  31,  249, 218, 187, 156, 125, 94,  63,  250, 219, 188, 157, 126,
    118  95,  251, 220, 189, 158, 127, 252, 221, 190, 159, 253, 222, 191, 254, 223,
    119  255,
    120 };
    121 
    122 DECLARE_ALIGNED(16, static const int16_t, default_scan_32x8[256]) = {
    123  0,   1,   8,   2,   9,   16,  3,   10,  17,  24,  4,   11,  18,  25,  32,
    124  5,   12,  19,  26,  33,  40,  6,   13,  20,  27,  34,  41,  48,  7,   14,
    125  21,  28,  35,  42,  49,  56,  15,  22,  29,  36,  43,  50,  57,  64,  23,
    126  30,  37,  44,  51,  58,  65,  72,  31,  38,  45,  52,  59,  66,  73,  80,
    127  39,  46,  53,  60,  67,  74,  81,  88,  47,  54,  61,  68,  75,  82,  89,
    128  96,  55,  62,  69,  76,  83,  90,  97,  104, 63,  70,  77,  84,  91,  98,
    129  105, 112, 71,  78,  85,  92,  99,  106, 113, 120, 79,  86,  93,  100, 107,
    130  114, 121, 128, 87,  94,  101, 108, 115, 122, 129, 136, 95,  102, 109, 116,
    131  123, 130, 137, 144, 103, 110, 117, 124, 131, 138, 145, 152, 111, 118, 125,
    132  132, 139, 146, 153, 160, 119, 126, 133, 140, 147, 154, 161, 168, 127, 134,
    133  141, 148, 155, 162, 169, 176, 135, 142, 149, 156, 163, 170, 177, 184, 143,
    134  150, 157, 164, 171, 178, 185, 192, 151, 158, 165, 172, 179, 186, 193, 200,
    135  159, 166, 173, 180, 187, 194, 201, 208, 167, 174, 181, 188, 195, 202, 209,
    136  216, 175, 182, 189, 196, 203, 210, 217, 224, 183, 190, 197, 204, 211, 218,
    137  225, 232, 191, 198, 205, 212, 219, 226, 233, 240, 199, 206, 213, 220, 227,
    138  234, 241, 248, 207, 214, 221, 228, 235, 242, 249, 215, 222, 229, 236, 243,
    139  250, 223, 230, 237, 244, 251, 231, 238, 245, 252, 239, 246, 253, 247, 254,
    140  255,
    141 };
    142 
    143 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x32[256]) = {
    144  0,  32, 64, 96,  128, 160, 192, 224, 1,  33, 65, 97,  129, 161, 193, 225,
    145  2,  34, 66, 98,  130, 162, 194, 226, 3,  35, 67, 99,  131, 163, 195, 227,
    146  4,  36, 68, 100, 132, 164, 196, 228, 5,  37, 69, 101, 133, 165, 197, 229,
    147  6,  38, 70, 102, 134, 166, 198, 230, 7,  39, 71, 103, 135, 167, 199, 231,
    148  8,  40, 72, 104, 136, 168, 200, 232, 9,  41, 73, 105, 137, 169, 201, 233,
    149  10, 42, 74, 106, 138, 170, 202, 234, 11, 43, 75, 107, 139, 171, 203, 235,
    150  12, 44, 76, 108, 140, 172, 204, 236, 13, 45, 77, 109, 141, 173, 205, 237,
    151  14, 46, 78, 110, 142, 174, 206, 238, 15, 47, 79, 111, 143, 175, 207, 239,
    152  16, 48, 80, 112, 144, 176, 208, 240, 17, 49, 81, 113, 145, 177, 209, 241,
    153  18, 50, 82, 114, 146, 178, 210, 242, 19, 51, 83, 115, 147, 179, 211, 243,
    154  20, 52, 84, 116, 148, 180, 212, 244, 21, 53, 85, 117, 149, 181, 213, 245,
    155  22, 54, 86, 118, 150, 182, 214, 246, 23, 55, 87, 119, 151, 183, 215, 247,
    156  24, 56, 88, 120, 152, 184, 216, 248, 25, 57, 89, 121, 153, 185, 217, 249,
    157  26, 58, 90, 122, 154, 186, 218, 250, 27, 59, 91, 123, 155, 187, 219, 251,
    158  28, 60, 92, 124, 156, 188, 220, 252, 29, 61, 93, 125, 157, 189, 221, 253,
    159  30, 62, 94, 126, 158, 190, 222, 254, 31, 63, 95, 127, 159, 191, 223, 255,
    160 };
    161 
    162 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x8[256]) = {
    163  0,   8,   16,  24,  32,  40,  48,  56,  64,  72,  80,  88,  96,  104, 112,
    164  120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232,
    165  240, 248, 1,   9,   17,  25,  33,  41,  49,  57,  65,  73,  81,  89,  97,
    166  105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217,
    167  225, 233, 241, 249, 2,   10,  18,  26,  34,  42,  50,  58,  66,  74,  82,
    168  90,  98,  106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202,
    169  210, 218, 226, 234, 242, 250, 3,   11,  19,  27,  35,  43,  51,  59,  67,
    170  75,  83,  91,  99,  107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187,
    171  195, 203, 211, 219, 227, 235, 243, 251, 4,   12,  20,  28,  36,  44,  52,
    172  60,  68,  76,  84,  92,  100, 108, 116, 124, 132, 140, 148, 156, 164, 172,
    173  180, 188, 196, 204, 212, 220, 228, 236, 244, 252, 5,   13,  21,  29,  37,
    174  45,  53,  61,  69,  77,  85,  93,  101, 109, 117, 125, 133, 141, 149, 157,
    175  165, 173, 181, 189, 197, 205, 213, 221, 229, 237, 245, 253, 6,   14,  22,
    176  30,  38,  46,  54,  62,  70,  78,  86,  94,  102, 110, 118, 126, 134, 142,
    177  150, 158, 166, 174, 182, 190, 198, 206, 214, 222, 230, 238, 246, 254, 7,
    178  15,  23,  31,  39,  47,  55,  63,  71,  79,  87,  95,  103, 111, 119, 127,
    179  135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247,
    180  255,
    181 };
    182 
    183 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x32[256]) = {
    184  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    185  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    186  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    187  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    188  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    189  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    190  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    191  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    192  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
    193  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
    194  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
    195  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
    196  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
    197  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
    198  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
    199  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
    200  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
    201  255,
    202 };
    203 
    204 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x8[256]) = {
    205  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    206  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    207  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    208  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    209  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    210  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    211  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    212  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    213  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
    214  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
    215  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
    216  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
    217  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
    218  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
    219  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
    220  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
    221  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
    222  255,
    223 };
    224 
    225 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x8[64]) = {
    226  0,  8,  1,  2,  9,  16, 24, 17, 10, 3,  4,  11, 18, 25, 32, 40,
    227  33, 26, 19, 12, 5,  6,  13, 20, 27, 34, 41, 48, 56, 49, 42, 35,
    228  28, 21, 14, 7,  15, 22, 29, 36, 43, 50, 57, 58, 51, 44, 37, 30,
    229  23, 31, 38, 45, 52, 59, 60, 53, 46, 39, 47, 54, 61, 62, 55, 63,
    230 };
    231 
    232 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x8[64]) = {
    233  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
    234  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
    235  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
    236  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
    237 };
    238 
    239 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x8[64]) = {
    240  0, 8,  16, 24, 32, 40, 48, 56, 1, 9,  17, 25, 33, 41, 49, 57,
    241  2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59,
    242  4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61,
    243  6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63,
    244 };
    245 
    246 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x16[128]) = {
    247  0,  16,  1,   32, 17,  2,   48,  33,  18, 3,  64,  49,  34,  19,  4,   80,
    248  65, 50,  35,  20, 5,   96,  81,  66,  51, 36, 21,  6,   112, 97,  82,  67,
    249  52, 37,  22,  7,  113, 98,  83,  68,  53, 38, 23,  8,   114, 99,  84,  69,
    250  54, 39,  24,  9,  115, 100, 85,  70,  55, 40, 25,  10,  116, 101, 86,  71,
    251  56, 41,  26,  11, 117, 102, 87,  72,  57, 42, 27,  12,  118, 103, 88,  73,
    252  58, 43,  28,  13, 119, 104, 89,  74,  59, 44, 29,  14,  120, 105, 90,  75,
    253  60, 45,  30,  15, 121, 106, 91,  76,  61, 46, 31,  122, 107, 92,  77,  62,
    254  47, 123, 108, 93, 78,  63,  124, 109, 94, 79, 125, 110, 95,  126, 111, 127,
    255 };
    256 
    257 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x8[128]) = {
    258  0,   1,   8,   2,   9,   16,  3,   10,  17,  24,  4,   11,  18,  25,  32,
    259  5,   12,  19,  26,  33,  40,  6,   13,  20,  27,  34,  41,  48,  7,   14,
    260  21,  28,  35,  42,  49,  56,  15,  22,  29,  36,  43,  50,  57,  64,  23,
    261  30,  37,  44,  51,  58,  65,  72,  31,  38,  45,  52,  59,  66,  73,  80,
    262  39,  46,  53,  60,  67,  74,  81,  88,  47,  54,  61,  68,  75,  82,  89,
    263  96,  55,  62,  69,  76,  83,  90,  97,  104, 63,  70,  77,  84,  91,  98,
    264  105, 112, 71,  78,  85,  92,  99,  106, 113, 120, 79,  86,  93,  100, 107,
    265  114, 121, 87,  94,  101, 108, 115, 122, 95,  102, 109, 116, 123, 103, 110,
    266  117, 124, 111, 118, 125, 119, 126, 127,
    267 };
    268 
    269 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x16[128]) = {
    270  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    271  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    272  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    273  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    274  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    275  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    276  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    277  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    278  120, 121, 122, 123, 124, 125, 126, 127,
    279 };
    280 
    281 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x8[128]) = {
    282  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    283  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    284  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    285  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    286  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    287  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    288  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    289  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    290  120, 121, 122, 123, 124, 125, 126, 127,
    291 };
    292 
    293 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x16[128]) = {
    294  0,  16, 32, 48, 64, 80, 96,  112, 1,  17, 33, 49, 65, 81, 97,  113,
    295  2,  18, 34, 50, 66, 82, 98,  114, 3,  19, 35, 51, 67, 83, 99,  115,
    296  4,  20, 36, 52, 68, 84, 100, 116, 5,  21, 37, 53, 69, 85, 101, 117,
    297  6,  22, 38, 54, 70, 86, 102, 118, 7,  23, 39, 55, 71, 87, 103, 119,
    298  8,  24, 40, 56, 72, 88, 104, 120, 9,  25, 41, 57, 73, 89, 105, 121,
    299  10, 26, 42, 58, 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123,
    300  12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61, 77, 93, 109, 125,
    301  14, 30, 46, 62, 78, 94, 110, 126, 15, 31, 47, 63, 79, 95, 111, 127,
    302 };
    303 
    304 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x8[128]) = {
    305  0, 8,  16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96,  104, 112, 120,
    306  1, 9,  17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97,  105, 113, 121,
    307  2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98,  106, 114, 122,
    308  3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99,  107, 115, 123,
    309  4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124,
    310  5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125,
    311  6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126,
    312  7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127,
    313 };
    314 
    315 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x32[512]) = {
    316  0,   32,  1,   64,  33,  2,   96,  65,  34,  3,   128, 97,  66,  35,  4,
    317  160, 129, 98,  67,  36,  5,   192, 161, 130, 99,  68,  37,  6,   224, 193,
    318  162, 131, 100, 69,  38,  7,   256, 225, 194, 163, 132, 101, 70,  39,  8,
    319  288, 257, 226, 195, 164, 133, 102, 71,  40,  9,   320, 289, 258, 227, 196,
    320  165, 134, 103, 72,  41,  10,  352, 321, 290, 259, 228, 197, 166, 135, 104,
    321  73,  42,  11,  384, 353, 322, 291, 260, 229, 198, 167, 136, 105, 74,  43,
    322  12,  416, 385, 354, 323, 292, 261, 230, 199, 168, 137, 106, 75,  44,  13,
    323  448, 417, 386, 355, 324, 293, 262, 231, 200, 169, 138, 107, 76,  45,  14,
    324  480, 449, 418, 387, 356, 325, 294, 263, 232, 201, 170, 139, 108, 77,  46,
    325  15,  481, 450, 419, 388, 357, 326, 295, 264, 233, 202, 171, 140, 109, 78,
    326  47,  16,  482, 451, 420, 389, 358, 327, 296, 265, 234, 203, 172, 141, 110,
    327  79,  48,  17,  483, 452, 421, 390, 359, 328, 297, 266, 235, 204, 173, 142,
    328  111, 80,  49,  18,  484, 453, 422, 391, 360, 329, 298, 267, 236, 205, 174,
    329  143, 112, 81,  50,  19,  485, 454, 423, 392, 361, 330, 299, 268, 237, 206,
    330  175, 144, 113, 82,  51,  20,  486, 455, 424, 393, 362, 331, 300, 269, 238,
    331  207, 176, 145, 114, 83,  52,  21,  487, 456, 425, 394, 363, 332, 301, 270,
    332  239, 208, 177, 146, 115, 84,  53,  22,  488, 457, 426, 395, 364, 333, 302,
    333  271, 240, 209, 178, 147, 116, 85,  54,  23,  489, 458, 427, 396, 365, 334,
    334  303, 272, 241, 210, 179, 148, 117, 86,  55,  24,  490, 459, 428, 397, 366,
    335  335, 304, 273, 242, 211, 180, 149, 118, 87,  56,  25,  491, 460, 429, 398,
    336  367, 336, 305, 274, 243, 212, 181, 150, 119, 88,  57,  26,  492, 461, 430,
    337  399, 368, 337, 306, 275, 244, 213, 182, 151, 120, 89,  58,  27,  493, 462,
    338  431, 400, 369, 338, 307, 276, 245, 214, 183, 152, 121, 90,  59,  28,  494,
    339  463, 432, 401, 370, 339, 308, 277, 246, 215, 184, 153, 122, 91,  60,  29,
    340  495, 464, 433, 402, 371, 340, 309, 278, 247, 216, 185, 154, 123, 92,  61,
    341  30,  496, 465, 434, 403, 372, 341, 310, 279, 248, 217, 186, 155, 124, 93,
    342  62,  31,  497, 466, 435, 404, 373, 342, 311, 280, 249, 218, 187, 156, 125,
    343  94,  63,  498, 467, 436, 405, 374, 343, 312, 281, 250, 219, 188, 157, 126,
    344  95,  499, 468, 437, 406, 375, 344, 313, 282, 251, 220, 189, 158, 127, 500,
    345  469, 438, 407, 376, 345, 314, 283, 252, 221, 190, 159, 501, 470, 439, 408,
    346  377, 346, 315, 284, 253, 222, 191, 502, 471, 440, 409, 378, 347, 316, 285,
    347  254, 223, 503, 472, 441, 410, 379, 348, 317, 286, 255, 504, 473, 442, 411,
    348  380, 349, 318, 287, 505, 474, 443, 412, 381, 350, 319, 506, 475, 444, 413,
    349  382, 351, 507, 476, 445, 414, 383, 508, 477, 446, 415, 509, 478, 447, 510,
    350  479, 511,
    351 };
    352 
    353 DECLARE_ALIGNED(16, static const int16_t, default_scan_32x16[512]) = {
    354  0,   1,   16,  2,   17,  32,  3,   18,  33,  48,  4,   19,  34,  49,  64,
    355  5,   20,  35,  50,  65,  80,  6,   21,  36,  51,  66,  81,  96,  7,   22,
    356  37,  52,  67,  82,  97,  112, 8,   23,  38,  53,  68,  83,  98,  113, 128,
    357  9,   24,  39,  54,  69,  84,  99,  114, 129, 144, 10,  25,  40,  55,  70,
    358  85,  100, 115, 130, 145, 160, 11,  26,  41,  56,  71,  86,  101, 116, 131,
    359  146, 161, 176, 12,  27,  42,  57,  72,  87,  102, 117, 132, 147, 162, 177,
    360  192, 13,  28,  43,  58,  73,  88,  103, 118, 133, 148, 163, 178, 193, 208,
    361  14,  29,  44,  59,  74,  89,  104, 119, 134, 149, 164, 179, 194, 209, 224,
    362  15,  30,  45,  60,  75,  90,  105, 120, 135, 150, 165, 180, 195, 210, 225,
    363  240, 31,  46,  61,  76,  91,  106, 121, 136, 151, 166, 181, 196, 211, 226,
    364  241, 256, 47,  62,  77,  92,  107, 122, 137, 152, 167, 182, 197, 212, 227,
    365  242, 257, 272, 63,  78,  93,  108, 123, 138, 153, 168, 183, 198, 213, 228,
    366  243, 258, 273, 288, 79,  94,  109, 124, 139, 154, 169, 184, 199, 214, 229,
    367  244, 259, 274, 289, 304, 95,  110, 125, 140, 155, 170, 185, 200, 215, 230,
    368  245, 260, 275, 290, 305, 320, 111, 126, 141, 156, 171, 186, 201, 216, 231,
    369  246, 261, 276, 291, 306, 321, 336, 127, 142, 157, 172, 187, 202, 217, 232,
    370  247, 262, 277, 292, 307, 322, 337, 352, 143, 158, 173, 188, 203, 218, 233,
    371  248, 263, 278, 293, 308, 323, 338, 353, 368, 159, 174, 189, 204, 219, 234,
    372  249, 264, 279, 294, 309, 324, 339, 354, 369, 384, 175, 190, 205, 220, 235,
    373  250, 265, 280, 295, 310, 325, 340, 355, 370, 385, 400, 191, 206, 221, 236,
    374  251, 266, 281, 296, 311, 326, 341, 356, 371, 386, 401, 416, 207, 222, 237,
    375  252, 267, 282, 297, 312, 327, 342, 357, 372, 387, 402, 417, 432, 223, 238,
    376  253, 268, 283, 298, 313, 328, 343, 358, 373, 388, 403, 418, 433, 448, 239,
    377  254, 269, 284, 299, 314, 329, 344, 359, 374, 389, 404, 419, 434, 449, 464,
    378  255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465,
    379  480, 271, 286, 301, 316, 331, 346, 361, 376, 391, 406, 421, 436, 451, 466,
    380  481, 496, 287, 302, 317, 332, 347, 362, 377, 392, 407, 422, 437, 452, 467,
    381  482, 497, 303, 318, 333, 348, 363, 378, 393, 408, 423, 438, 453, 468, 483,
    382  498, 319, 334, 349, 364, 379, 394, 409, 424, 439, 454, 469, 484, 499, 335,
    383  350, 365, 380, 395, 410, 425, 440, 455, 470, 485, 500, 351, 366, 381, 396,
    384  411, 426, 441, 456, 471, 486, 501, 367, 382, 397, 412, 427, 442, 457, 472,
    385  487, 502, 383, 398, 413, 428, 443, 458, 473, 488, 503, 399, 414, 429, 444,
    386  459, 474, 489, 504, 415, 430, 445, 460, 475, 490, 505, 431, 446, 461, 476,
    387  491, 506, 447, 462, 477, 492, 507, 463, 478, 493, 508, 479, 494, 509, 495,
    388  510, 511,
    389 };
    390 
    391 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x32[512]) = {
    392  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    393  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    394  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    395  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    396  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    397  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    398  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    399  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    400  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
    401  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
    402  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
    403  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
    404  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
    405  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
    406  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
    407  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
    408  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
    409  255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
    410  270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
    411  285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
    412  300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
    413  315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
    414  330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
    415  345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
    416  360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
    417  375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
    418  390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
    419  405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
    420  420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
    421  435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
    422  450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
    423  465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
    424  480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
    425  495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
    426  510, 511,
    427 };
    428 
    429 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x16[512]) = {
    430  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    431  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    432  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    433  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    434  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    435  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    436  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    437  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    438  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
    439  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
    440  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
    441  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
    442  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
    443  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
    444  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
    445  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
    446  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
    447  255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
    448  270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
    449  285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
    450  300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
    451  315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
    452  330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
    453  345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
    454  360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
    455  375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
    456  390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
    457  405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
    458  420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
    459  435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
    460  450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
    461  465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
    462  480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
    463  495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
    464  510, 511,
    465 };
    466 
    467 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x32[512]) = {
    468  0,  32, 64, 96,  128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480,
    469  1,  33, 65, 97,  129, 161, 193, 225, 257, 289, 321, 353, 385, 417, 449, 481,
    470  2,  34, 66, 98,  130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482,
    471  3,  35, 67, 99,  131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483,
    472  4,  36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 388, 420, 452, 484,
    473  5,  37, 69, 101, 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485,
    474  6,  38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486,
    475  7,  39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 455, 487,
    476  8,  40, 72, 104, 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488,
    477  9,  41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361, 393, 425, 457, 489,
    478  10, 42, 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490,
    479  11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491,
    480  12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364, 396, 428, 460, 492,
    481  13, 45, 77, 109, 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493,
    482  14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494,
    483  15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367, 399, 431, 463, 495,
    484  16, 48, 80, 112, 144, 176, 208, 240, 272, 304, 336, 368, 400, 432, 464, 496,
    485  17, 49, 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497,
    486  18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 402, 434, 466, 498,
    487  19, 51, 83, 115, 147, 179, 211, 243, 275, 307, 339, 371, 403, 435, 467, 499,
    488  20, 52, 84, 116, 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500,
    489  21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 469, 501,
    490  22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 342, 374, 406, 438, 470, 502,
    491  23, 55, 87, 119, 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503,
    492  24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504,
    493  25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 409, 441, 473, 505,
    494  26, 58, 90, 122, 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506,
    495  27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507,
    496  28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 476, 508,
    497  29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509,
    498  30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382, 414, 446, 478, 510,
    499  31, 63, 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511,
    500 };
    501 
    502 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x16[512]) = {
    503  0,   16,  32,  48,  64,  80,  96,  112, 128, 144, 160, 176, 192, 208, 224,
    504  240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464,
    505  480, 496, 1,   17,  33,  49,  65,  81,  97,  113, 129, 145, 161, 177, 193,
    506  209, 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433,
    507  449, 465, 481, 497, 2,   18,  34,  50,  66,  82,  98,  114, 130, 146, 162,
    508  178, 194, 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 402,
    509  418, 434, 450, 466, 482, 498, 3,   19,  35,  51,  67,  83,  99,  115, 131,
    510  147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
    511  387, 403, 419, 435, 451, 467, 483, 499, 4,   20,  36,  52,  68,  84,  100,
    512  116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340,
    513  356, 372, 388, 404, 420, 436, 452, 468, 484, 500, 5,   21,  37,  53,  69,
    514  85,  101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309,
    515  325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501, 6,   22,  38,
    516  54,  70,  86,  102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278,
    517  294, 310, 326, 342, 358, 374, 390, 406, 422, 438, 454, 470, 486, 502, 7,
    518  23,  39,  55,  71,  87,  103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
    519  263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439, 455, 471, 487,
    520  503, 8,   24,  40,  56,  72,  88,  104, 120, 136, 152, 168, 184, 200, 216,
    521  232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392, 408, 424, 440, 456,
    522  472, 488, 504, 9,   25,  41,  57,  73,  89,  105, 121, 137, 153, 169, 185,
    523  201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425,
    524  441, 457, 473, 489, 505, 10,  26,  42,  58,  74,  90,  106, 122, 138, 154,
    525  170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 394,
    526  410, 426, 442, 458, 474, 490, 506, 11,  27,  43,  59,  75,  91,  107, 123,
    527  139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363,
    528  379, 395, 411, 427, 443, 459, 475, 491, 507, 12,  28,  44,  60,  76,  92,
    529  108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284, 300, 316, 332,
    530  348, 364, 380, 396, 412, 428, 444, 460, 476, 492, 508, 13,  29,  45,  61,
    531  77,  93,  109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269, 285, 301,
    532  317, 333, 349, 365, 381, 397, 413, 429, 445, 461, 477, 493, 509, 14,  30,
    533  46,  62,  78,  94,  110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 270,
    534  286, 302, 318, 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510,
    535  15,  31,  47,  63,  79,  95,  111, 127, 143, 159, 175, 191, 207, 223, 239,
    536  255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479,
    537  495, 511,
    538 };
    539 
    540 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x16[256]) = {
    541  0,   16,  1,   2,   17,  32,  48,  33,  18,  3,   4,   19,  34,  49,  64,
    542  80,  65,  50,  35,  20,  5,   6,   21,  36,  51,  66,  81,  96,  112, 97,
    543  82,  67,  52,  37,  22,  7,   8,   23,  38,  53,  68,  83,  98,  113, 128,
    544  144, 129, 114, 99,  84,  69,  54,  39,  24,  9,   10,  25,  40,  55,  70,
    545  85,  100, 115, 130, 145, 160, 176, 161, 146, 131, 116, 101, 86,  71,  56,
    546  41,  26,  11,  12,  27,  42,  57,  72,  87,  102, 117, 132, 147, 162, 177,
    547  192, 208, 193, 178, 163, 148, 133, 118, 103, 88,  73,  58,  43,  28,  13,
    548  14,  29,  44,  59,  74,  89,  104, 119, 134, 149, 164, 179, 194, 209, 224,
    549  240, 225, 210, 195, 180, 165, 150, 135, 120, 105, 90,  75,  60,  45,  30,
    550  15,  31,  46,  61,  76,  91,  106, 121, 136, 151, 166, 181, 196, 211, 226,
    551  241, 242, 227, 212, 197, 182, 167, 152, 137, 122, 107, 92,  77,  62,  47,
    552  63,  78,  93,  108, 123, 138, 153, 168, 183, 198, 213, 228, 243, 244, 229,
    553  214, 199, 184, 169, 154, 139, 124, 109, 94,  79,  95,  110, 125, 140, 155,
    554  170, 185, 200, 215, 230, 245, 246, 231, 216, 201, 186, 171, 156, 141, 126,
    555  111, 127, 142, 157, 172, 187, 202, 217, 232, 247, 248, 233, 218, 203, 188,
    556  173, 158, 143, 159, 174, 189, 204, 219, 234, 249, 250, 235, 220, 205, 190,
    557  175, 191, 206, 221, 236, 251, 252, 237, 222, 207, 223, 238, 253, 254, 239,
    558  255,
    559 };
    560 
    561 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x16[256]) = {
    562  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
    563  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
    564  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
    565  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
    566  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    567  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    568  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
    569  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
    570  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
    571  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
    572  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
    573  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
    574  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
    575  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
    576  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
    577  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
    578  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
    579  255,
    580 };
    581 
    582 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x16[256]) = {
    583  0,  16, 32, 48, 64, 80, 96,  112, 128, 144, 160, 176, 192, 208, 224, 240,
    584  1,  17, 33, 49, 65, 81, 97,  113, 129, 145, 161, 177, 193, 209, 225, 241,
    585  2,  18, 34, 50, 66, 82, 98,  114, 130, 146, 162, 178, 194, 210, 226, 242,
    586  3,  19, 35, 51, 67, 83, 99,  115, 131, 147, 163, 179, 195, 211, 227, 243,
    587  4,  20, 36, 52, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244,
    588  5,  21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245,
    589  6,  22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246,
    590  7,  23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
    591  8,  24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248,
    592  9,  25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 201, 217, 233, 249,
    593  10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250,
    594  11, 27, 43, 59, 75, 91, 107, 123, 139, 155, 171, 187, 203, 219, 235, 251,
    595  12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 236, 252,
    596  13, 29, 45, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253,
    597  14, 30, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254,
    598  15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255,
    599 };
    600 
    601 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x32[1024]) = {
    602  0,    1,    2,    3,    4,    5,    6,    7,    8,    9,    10,   11,   12,
    603  13,   14,   15,   16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
    604  26,   27,   28,   29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
    605  39,   40,   41,   42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
    606  52,   53,   54,   55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
    607  65,   66,   67,   68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
    608  78,   79,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89,   90,
    609  91,   92,   93,   94,   95,   96,   97,   98,   99,   100,  101,  102,  103,
    610  104,  105,  106,  107,  108,  109,  110,  111,  112,  113,  114,  115,  116,
    611  117,  118,  119,  120,  121,  122,  123,  124,  125,  126,  127,  128,  129,
    612  130,  131,  132,  133,  134,  135,  136,  137,  138,  139,  140,  141,  142,
    613  143,  144,  145,  146,  147,  148,  149,  150,  151,  152,  153,  154,  155,
    614  156,  157,  158,  159,  160,  161,  162,  163,  164,  165,  166,  167,  168,
    615  169,  170,  171,  172,  173,  174,  175,  176,  177,  178,  179,  180,  181,
    616  182,  183,  184,  185,  186,  187,  188,  189,  190,  191,  192,  193,  194,
    617  195,  196,  197,  198,  199,  200,  201,  202,  203,  204,  205,  206,  207,
    618  208,  209,  210,  211,  212,  213,  214,  215,  216,  217,  218,  219,  220,
    619  221,  222,  223,  224,  225,  226,  227,  228,  229,  230,  231,  232,  233,
    620  234,  235,  236,  237,  238,  239,  240,  241,  242,  243,  244,  245,  246,
    621  247,  248,  249,  250,  251,  252,  253,  254,  255,  256,  257,  258,  259,
    622  260,  261,  262,  263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
    623  273,  274,  275,  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
    624  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
    625  299,  300,  301,  302,  303,  304,  305,  306,  307,  308,  309,  310,  311,
    626  312,  313,  314,  315,  316,  317,  318,  319,  320,  321,  322,  323,  324,
    627  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,  335,  336,  337,
    628  338,  339,  340,  341,  342,  343,  344,  345,  346,  347,  348,  349,  350,
    629  351,  352,  353,  354,  355,  356,  357,  358,  359,  360,  361,  362,  363,
    630  364,  365,  366,  367,  368,  369,  370,  371,  372,  373,  374,  375,  376,
    631  377,  378,  379,  380,  381,  382,  383,  384,  385,  386,  387,  388,  389,
    632  390,  391,  392,  393,  394,  395,  396,  397,  398,  399,  400,  401,  402,
    633  403,  404,  405,  406,  407,  408,  409,  410,  411,  412,  413,  414,  415,
    634  416,  417,  418,  419,  420,  421,  422,  423,  424,  425,  426,  427,  428,
    635  429,  430,  431,  432,  433,  434,  435,  436,  437,  438,  439,  440,  441,
    636  442,  443,  444,  445,  446,  447,  448,  449,  450,  451,  452,  453,  454,
    637  455,  456,  457,  458,  459,  460,  461,  462,  463,  464,  465,  466,  467,
    638  468,  469,  470,  471,  472,  473,  474,  475,  476,  477,  478,  479,  480,
    639  481,  482,  483,  484,  485,  486,  487,  488,  489,  490,  491,  492,  493,
    640  494,  495,  496,  497,  498,  499,  500,  501,  502,  503,  504,  505,  506,
    641  507,  508,  509,  510,  511,  512,  513,  514,  515,  516,  517,  518,  519,
    642  520,  521,  522,  523,  524,  525,  526,  527,  528,  529,  530,  531,  532,
    643  533,  534,  535,  536,  537,  538,  539,  540,  541,  542,  543,  544,  545,
    644  546,  547,  548,  549,  550,  551,  552,  553,  554,  555,  556,  557,  558,
    645  559,  560,  561,  562,  563,  564,  565,  566,  567,  568,  569,  570,  571,
    646  572,  573,  574,  575,  576,  577,  578,  579,  580,  581,  582,  583,  584,
    647  585,  586,  587,  588,  589,  590,  591,  592,  593,  594,  595,  596,  597,
    648  598,  599,  600,  601,  602,  603,  604,  605,  606,  607,  608,  609,  610,
    649  611,  612,  613,  614,  615,  616,  617,  618,  619,  620,  621,  622,  623,
    650  624,  625,  626,  627,  628,  629,  630,  631,  632,  633,  634,  635,  636,
    651  637,  638,  639,  640,  641,  642,  643,  644,  645,  646,  647,  648,  649,
    652  650,  651,  652,  653,  654,  655,  656,  657,  658,  659,  660,  661,  662,
    653  663,  664,  665,  666,  667,  668,  669,  670,  671,  672,  673,  674,  675,
    654  676,  677,  678,  679,  680,  681,  682,  683,  684,  685,  686,  687,  688,
    655  689,  690,  691,  692,  693,  694,  695,  696,  697,  698,  699,  700,  701,
    656  702,  703,  704,  705,  706,  707,  708,  709,  710,  711,  712,  713,  714,
    657  715,  716,  717,  718,  719,  720,  721,  722,  723,  724,  725,  726,  727,
    658  728,  729,  730,  731,  732,  733,  734,  735,  736,  737,  738,  739,  740,
    659  741,  742,  743,  744,  745,  746,  747,  748,  749,  750,  751,  752,  753,
    660  754,  755,  756,  757,  758,  759,  760,  761,  762,  763,  764,  765,  766,
    661  767,  768,  769,  770,  771,  772,  773,  774,  775,  776,  777,  778,  779,
    662  780,  781,  782,  783,  784,  785,  786,  787,  788,  789,  790,  791,  792,
    663  793,  794,  795,  796,  797,  798,  799,  800,  801,  802,  803,  804,  805,
    664  806,  807,  808,  809,  810,  811,  812,  813,  814,  815,  816,  817,  818,
    665  819,  820,  821,  822,  823,  824,  825,  826,  827,  828,  829,  830,  831,
    666  832,  833,  834,  835,  836,  837,  838,  839,  840,  841,  842,  843,  844,
    667  845,  846,  847,  848,  849,  850,  851,  852,  853,  854,  855,  856,  857,
    668  858,  859,  860,  861,  862,  863,  864,  865,  866,  867,  868,  869,  870,
    669  871,  872,  873,  874,  875,  876,  877,  878,  879,  880,  881,  882,  883,
    670  884,  885,  886,  887,  888,  889,  890,  891,  892,  893,  894,  895,  896,
    671  897,  898,  899,  900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
    672  910,  911,  912,  913,  914,  915,  916,  917,  918,  919,  920,  921,  922,
    673  923,  924,  925,  926,  927,  928,  929,  930,  931,  932,  933,  934,  935,
    674  936,  937,  938,  939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
    675  949,  950,  951,  952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
    676  962,  963,  964,  965,  966,  967,  968,  969,  970,  971,  972,  973,  974,
    677  975,  976,  977,  978,  979,  980,  981,  982,  983,  984,  985,  986,  987,
    678  988,  989,  990,  991,  992,  993,  994,  995,  996,  997,  998,  999,  1000,
    679  1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
    680  1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
    681 };
    682 
    683 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x32[1024]) = {
    684  0,   32,   64,  96,   128, 160,  192, 224,  256, 288,  320, 352,  384, 416,
    685  448, 480,  512, 544,  576, 608,  640, 672,  704, 736,  768, 800,  832, 864,
    686  896, 928,  960, 992,  1,   33,   65,  97,   129, 161,  193, 225,  257, 289,
    687  321, 353,  385, 417,  449, 481,  513, 545,  577, 609,  641, 673,  705, 737,
    688  769, 801,  833, 865,  897, 929,  961, 993,  2,   34,   66,  98,   130, 162,
    689  194, 226,  258, 290,  322, 354,  386, 418,  450, 482,  514, 546,  578, 610,
    690  642, 674,  706, 738,  770, 802,  834, 866,  898, 930,  962, 994,  3,   35,
    691  67,  99,   131, 163,  195, 227,  259, 291,  323, 355,  387, 419,  451, 483,
    692  515, 547,  579, 611,  643, 675,  707, 739,  771, 803,  835, 867,  899, 931,
    693  963, 995,  4,   36,   68,  100,  132, 164,  196, 228,  260, 292,  324, 356,
    694  388, 420,  452, 484,  516, 548,  580, 612,  644, 676,  708, 740,  772, 804,
    695  836, 868,  900, 932,  964, 996,  5,   37,   69,  101,  133, 165,  197, 229,
    696  261, 293,  325, 357,  389, 421,  453, 485,  517, 549,  581, 613,  645, 677,
    697  709, 741,  773, 805,  837, 869,  901, 933,  965, 997,  6,   38,   70,  102,
    698  134, 166,  198, 230,  262, 294,  326, 358,  390, 422,  454, 486,  518, 550,
    699  582, 614,  646, 678,  710, 742,  774, 806,  838, 870,  902, 934,  966, 998,
    700  7,   39,   71,  103,  135, 167,  199, 231,  263, 295,  327, 359,  391, 423,
    701  455, 487,  519, 551,  583, 615,  647, 679,  711, 743,  775, 807,  839, 871,
    702  903, 935,  967, 999,  8,   40,   72,  104,  136, 168,  200, 232,  264, 296,
    703  328, 360,  392, 424,  456, 488,  520, 552,  584, 616,  648, 680,  712, 744,
    704  776, 808,  840, 872,  904, 936,  968, 1000, 9,   41,   73,  105,  137, 169,
    705  201, 233,  265, 297,  329, 361,  393, 425,  457, 489,  521, 553,  585, 617,
    706  649, 681,  713, 745,  777, 809,  841, 873,  905, 937,  969, 1001, 10,  42,
    707  74,  106,  138, 170,  202, 234,  266, 298,  330, 362,  394, 426,  458, 490,
    708  522, 554,  586, 618,  650, 682,  714, 746,  778, 810,  842, 874,  906, 938,
    709  970, 1002, 11,  43,   75,  107,  139, 171,  203, 235,  267, 299,  331, 363,
    710  395, 427,  459, 491,  523, 555,  587, 619,  651, 683,  715, 747,  779, 811,
    711  843, 875,  907, 939,  971, 1003, 12,  44,   76,  108,  140, 172,  204, 236,
    712  268, 300,  332, 364,  396, 428,  460, 492,  524, 556,  588, 620,  652, 684,
    713  716, 748,  780, 812,  844, 876,  908, 940,  972, 1004, 13,  45,   77,  109,
    714  141, 173,  205, 237,  269, 301,  333, 365,  397, 429,  461, 493,  525, 557,
    715  589, 621,  653, 685,  717, 749,  781, 813,  845, 877,  909, 941,  973, 1005,
    716  14,  46,   78,  110,  142, 174,  206, 238,  270, 302,  334, 366,  398, 430,
    717  462, 494,  526, 558,  590, 622,  654, 686,  718, 750,  782, 814,  846, 878,
    718  910, 942,  974, 1006, 15,  47,   79,  111,  143, 175,  207, 239,  271, 303,
    719  335, 367,  399, 431,  463, 495,  527, 559,  591, 623,  655, 687,  719, 751,
    720  783, 815,  847, 879,  911, 943,  975, 1007, 16,  48,   80,  112,  144, 176,
    721  208, 240,  272, 304,  336, 368,  400, 432,  464, 496,  528, 560,  592, 624,
    722  656, 688,  720, 752,  784, 816,  848, 880,  912, 944,  976, 1008, 17,  49,
    723  81,  113,  145, 177,  209, 241,  273, 305,  337, 369,  401, 433,  465, 497,
    724  529, 561,  593, 625,  657, 689,  721, 753,  785, 817,  849, 881,  913, 945,
    725  977, 1009, 18,  50,   82,  114,  146, 178,  210, 242,  274, 306,  338, 370,
    726  402, 434,  466, 498,  530, 562,  594, 626,  658, 690,  722, 754,  786, 818,
    727  850, 882,  914, 946,  978, 1010, 19,  51,   83,  115,  147, 179,  211, 243,
    728  275, 307,  339, 371,  403, 435,  467, 499,  531, 563,  595, 627,  659, 691,
    729  723, 755,  787, 819,  851, 883,  915, 947,  979, 1011, 20,  52,   84,  116,
    730  148, 180,  212, 244,  276, 308,  340, 372,  404, 436,  468, 500,  532, 564,
    731  596, 628,  660, 692,  724, 756,  788, 820,  852, 884,  916, 948,  980, 1012,
    732  21,  53,   85,  117,  149, 181,  213, 245,  277, 309,  341, 373,  405, 437,
    733  469, 501,  533, 565,  597, 629,  661, 693,  725, 757,  789, 821,  853, 885,
    734  917, 949,  981, 1013, 22,  54,   86,  118,  150, 182,  214, 246,  278, 310,
    735  342, 374,  406, 438,  470, 502,  534, 566,  598, 630,  662, 694,  726, 758,
    736  790, 822,  854, 886,  918, 950,  982, 1014, 23,  55,   87,  119,  151, 183,
    737  215, 247,  279, 311,  343, 375,  407, 439,  471, 503,  535, 567,  599, 631,
    738  663, 695,  727, 759,  791, 823,  855, 887,  919, 951,  983, 1015, 24,  56,
    739  88,  120,  152, 184,  216, 248,  280, 312,  344, 376,  408, 440,  472, 504,
    740  536, 568,  600, 632,  664, 696,  728, 760,  792, 824,  856, 888,  920, 952,
    741  984, 1016, 25,  57,   89,  121,  153, 185,  217, 249,  281, 313,  345, 377,
    742  409, 441,  473, 505,  537, 569,  601, 633,  665, 697,  729, 761,  793, 825,
    743  857, 889,  921, 953,  985, 1017, 26,  58,   90,  122,  154, 186,  218, 250,
    744  282, 314,  346, 378,  410, 442,  474, 506,  538, 570,  602, 634,  666, 698,
    745  730, 762,  794, 826,  858, 890,  922, 954,  986, 1018, 27,  59,   91,  123,
    746  155, 187,  219, 251,  283, 315,  347, 379,  411, 443,  475, 507,  539, 571,
    747  603, 635,  667, 699,  731, 763,  795, 827,  859, 891,  923, 955,  987, 1019,
    748  28,  60,   92,  124,  156, 188,  220, 252,  284, 316,  348, 380,  412, 444,
    749  476, 508,  540, 572,  604, 636,  668, 700,  732, 764,  796, 828,  860, 892,
    750  924, 956,  988, 1020, 29,  61,   93,  125,  157, 189,  221, 253,  285, 317,
    751  349, 381,  413, 445,  477, 509,  541, 573,  605, 637,  669, 701,  733, 765,
    752  797, 829,  861, 893,  925, 957,  989, 1021, 30,  62,   94,  126,  158, 190,
    753  222, 254,  286, 318,  350, 382,  414, 446,  478, 510,  542, 574,  606, 638,
    754  670, 702,  734, 766,  798, 830,  862, 894,  926, 958,  990, 1022, 31,  63,
    755  95,  127,  159, 191,  223, 255,  287, 319,  351, 383,  415, 447,  479, 511,
    756  543, 575,  607, 639,  671, 703,  735, 767,  799, 831,  863, 895,  927, 959,
    757  991, 1023,
    758 };
    759 
    760 DECLARE_ALIGNED(16, static const int16_t, default_scan_32x32[1024]) = {
    761  0,    32,   1,    2,    33,   64,  96,   65,   34,   3,    4,    35,  66,
    762  97,   128,  160,  129,  98,   67,  36,   5,    6,    37,   68,   99,  130,
    763  161,  192,  224,  193,  162,  131, 100,  69,   38,   7,    8,    39,  70,
    764  101,  132,  163,  194,  225,  256, 288,  257,  226,  195,  164,  133, 102,
    765  71,   40,   9,    10,   41,   72,  103,  134,  165,  196,  227,  258, 289,
    766  320,  352,  321,  290,  259,  228, 197,  166,  135,  104,  73,   42,  11,
    767  12,   43,   74,   105,  136,  167, 198,  229,  260,  291,  322,  353, 384,
    768  416,  385,  354,  323,  292,  261, 230,  199,  168,  137,  106,  75,  44,
    769  13,   14,   45,   76,   107,  138, 169,  200,  231,  262,  293,  324, 355,
    770  386,  417,  448,  480,  449,  418, 387,  356,  325,  294,  263,  232, 201,
    771  170,  139,  108,  77,   46,   15,  16,   47,   78,   109,  140,  171, 202,
    772  233,  264,  295,  326,  357,  388, 419,  450,  481,  512,  544,  513, 482,
    773  451,  420,  389,  358,  327,  296, 265,  234,  203,  172,  141,  110, 79,
    774  48,   17,   18,   49,   80,   111, 142,  173,  204,  235,  266,  297, 328,
    775  359,  390,  421,  452,  483,  514, 545,  576,  608,  577,  546,  515, 484,
    776  453,  422,  391,  360,  329,  298, 267,  236,  205,  174,  143,  112, 81,
    777  50,   19,   20,   51,   82,   113, 144,  175,  206,  237,  268,  299, 330,
    778  361,  392,  423,  454,  485,  516, 547,  578,  609,  640,  672,  641, 610,
    779  579,  548,  517,  486,  455,  424, 393,  362,  331,  300,  269,  238, 207,
    780  176,  145,  114,  83,   52,   21,  22,   53,   84,   115,  146,  177, 208,
    781  239,  270,  301,  332,  363,  394, 425,  456,  487,  518,  549,  580, 611,
    782  642,  673,  704,  736,  705,  674, 643,  612,  581,  550,  519,  488, 457,
    783  426,  395,  364,  333,  302,  271, 240,  209,  178,  147,  116,  85,  54,
    784  23,   24,   55,   86,   117,  148, 179,  210,  241,  272,  303,  334, 365,
    785  396,  427,  458,  489,  520,  551, 582,  613,  644,  675,  706,  737, 768,
    786  800,  769,  738,  707,  676,  645, 614,  583,  552,  521,  490,  459, 428,
    787  397,  366,  335,  304,  273,  242, 211,  180,  149,  118,  87,   56,  25,
    788  26,   57,   88,   119,  150,  181, 212,  243,  274,  305,  336,  367, 398,
    789  429,  460,  491,  522,  553,  584, 615,  646,  677,  708,  739,  770, 801,
    790  832,  864,  833,  802,  771,  740, 709,  678,  647,  616,  585,  554, 523,
    791  492,  461,  430,  399,  368,  337, 306,  275,  244,  213,  182,  151, 120,
    792  89,   58,   27,   28,   59,   90,  121,  152,  183,  214,  245,  276, 307,
    793  338,  369,  400,  431,  462,  493, 524,  555,  586,  617,  648,  679, 710,
    794  741,  772,  803,  834,  865,  896, 928,  897,  866,  835,  804,  773, 742,
    795  711,  680,  649,  618,  587,  556, 525,  494,  463,  432,  401,  370, 339,
    796  308,  277,  246,  215,  184,  153, 122,  91,   60,   29,   30,   61,  92,
    797  123,  154,  185,  216,  247,  278, 309,  340,  371,  402,  433,  464, 495,
    798  526,  557,  588,  619,  650,  681, 712,  743,  774,  805,  836,  867, 898,
    799  929,  960,  992,  961,  930,  899, 868,  837,  806,  775,  744,  713, 682,
    800  651,  620,  589,  558,  527,  496, 465,  434,  403,  372,  341,  310, 279,
    801  248,  217,  186,  155,  124,  93,  62,   31,   63,   94,   125,  156, 187,
    802  218,  249,  280,  311,  342,  373, 404,  435,  466,  497,  528,  559, 590,
    803  621,  652,  683,  714,  745,  776, 807,  838,  869,  900,  931,  962, 993,
    804  994,  963,  932,  901,  870,  839, 808,  777,  746,  715,  684,  653, 622,
    805  591,  560,  529,  498,  467,  436, 405,  374,  343,  312,  281,  250, 219,
    806  188,  157,  126,  95,   127,  158, 189,  220,  251,  282,  313,  344, 375,
    807  406,  437,  468,  499,  530,  561, 592,  623,  654,  685,  716,  747, 778,
    808  809,  840,  871,  902,  933,  964, 995,  996,  965,  934,  903,  872, 841,
    809  810,  779,  748,  717,  686,  655, 624,  593,  562,  531,  500,  469, 438,
    810  407,  376,  345,  314,  283,  252, 221,  190,  159,  191,  222,  253, 284,
    811  315,  346,  377,  408,  439,  470, 501,  532,  563,  594,  625,  656, 687,
    812  718,  749,  780,  811,  842,  873, 904,  935,  966,  997,  998,  967, 936,
    813  905,  874,  843,  812,  781,  750, 719,  688,  657,  626,  595,  564, 533,
    814  502,  471,  440,  409,  378,  347, 316,  285,  254,  223,  255,  286, 317,
    815  348,  379,  410,  441,  472,  503, 534,  565,  596,  627,  658,  689, 720,
    816  751,  782,  813,  844,  875,  906, 937,  968,  999,  1000, 969,  938, 907,
    817  876,  845,  814,  783,  752,  721, 690,  659,  628,  597,  566,  535, 504,
    818  473,  442,  411,  380,  349,  318, 287,  319,  350,  381,  412,  443, 474,
    819  505,  536,  567,  598,  629,  660, 691,  722,  753,  784,  815,  846, 877,
    820  908,  939,  970,  1001, 1002, 971, 940,  909,  878,  847,  816,  785, 754,
    821  723,  692,  661,  630,  599,  568, 537,  506,  475,  444,  413,  382, 351,
    822  383,  414,  445,  476,  507,  538, 569,  600,  631,  662,  693,  724, 755,
    823  786,  817,  848,  879,  910,  941, 972,  1003, 1004, 973,  942,  911, 880,
    824  849,  818,  787,  756,  725,  694, 663,  632,  601,  570,  539,  508, 477,
    825  446,  415,  447,  478,  509,  540, 571,  602,  633,  664,  695,  726, 757,
    826  788,  819,  850,  881,  912,  943, 974,  1005, 1006, 975,  944,  913, 882,
    827  851,  820,  789,  758,  727,  696, 665,  634,  603,  572,  541,  510, 479,
    828  511,  542,  573,  604,  635,  666, 697,  728,  759,  790,  821,  852, 883,
    829  914,  945,  976,  1007, 1008, 977, 946,  915,  884,  853,  822,  791, 760,
    830  729,  698,  667,  636,  605,  574, 543,  575,  606,  637,  668,  699, 730,
    831  761,  792,  823,  854,  885,  916, 947,  978,  1009, 1010, 979,  948, 917,
    832  886,  855,  824,  793,  762,  731, 700,  669,  638,  607,  639,  670, 701,
    833  732,  763,  794,  825,  856,  887, 918,  949,  980,  1011, 1012, 981, 950,
    834  919,  888,  857,  826,  795,  764, 733,  702,  671,  703,  734,  765, 796,
    835  827,  858,  889,  920,  951,  982, 1013, 1014, 983,  952,  921,  890, 859,
    836  828,  797,  766,  735,  767,  798, 829,  860,  891,  922,  953,  984, 1015,
    837  1016, 985,  954,  923,  892,  861, 830,  799,  831,  862,  893,  924, 955,
    838  986,  1017, 1018, 987,  956,  925, 894,  863,  895,  926,  957,  988, 1019,
    839  1020, 989,  958,  927,  959,  990, 1021, 1022, 991,  1023,
    840 };
    841 
    842 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_4x4[16]) = {
    843  0, 2, 3, 9, 1, 4, 8, 10, 5, 7, 11, 14, 6, 12, 13, 15,
    844 };
    845 
    846 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_4x4[16]) = {
    847  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
    848 };
    849 
    850 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_4x4[16]) = {
    851  0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15,
    852 };
    853 
    854 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_4x8[32]) = {
    855  0, 2, 5,  9,  13, 17, 21, 25, 1, 4,  8,  12, 16, 20, 24, 28,
    856  3, 7, 11, 15, 19, 23, 27, 30, 6, 10, 14, 18, 22, 26, 29, 31,
    857 };
    858 
    859 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_4x8[32]) = {
    860  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
    861  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
    862 };
    863 
    864 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_4x8[32]) = {
    865  0, 4, 8,  12, 16, 20, 24, 28, 1, 5, 9,  13, 17, 21, 25, 29,
    866  2, 6, 10, 14, 18, 22, 26, 30, 3, 7, 11, 15, 19, 23, 27, 31,
    867 };
    868 
    869 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x4[32]) = {
    870  0,  1,  3,  6,  2,  4,  7,  10, 5,  8,  11, 14, 9,  12, 15, 18,
    871  13, 16, 19, 22, 17, 20, 23, 26, 21, 24, 27, 29, 25, 28, 30, 31,
    872 };
    873 
    874 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x4[32]) = {
    875  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
    876  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
    877 };
    878 
    879 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x4[32]) = {
    880  0, 8,  16, 24, 1, 9,  17, 25, 2, 10, 18, 26, 3, 11, 19, 27,
    881  4, 12, 20, 28, 5, 13, 21, 29, 6, 14, 22, 30, 7, 15, 23, 31,
    882 };
    883 
    884 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_4x16[64]) = {
    885  0, 2,  5,  9,  13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57,
    886  1, 4,  8,  12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
    887  3, 7,  11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 62,
    888  6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 61, 63,
    889 };
    890 
    891 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x4[64]) = {
    892  0,  1,  3,  6,  2,  4,  7,  10, 5,  8,  11, 14, 9,  12, 15, 18,
    893  13, 16, 19, 22, 17, 20, 23, 26, 21, 24, 27, 30, 25, 28, 31, 34,
    894  29, 32, 35, 38, 33, 36, 39, 42, 37, 40, 43, 46, 41, 44, 47, 50,
    895  45, 48, 51, 54, 49, 52, 55, 58, 53, 56, 59, 61, 57, 60, 62, 63,
    896 };
    897 
    898 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_4x16[64]) = {
    899  0, 4, 8,  12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,
    900  1, 5, 9,  13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61,
    901  2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62,
    902  3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63,
    903 };
    904 
    905 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x4[64]) = {
    906  0,  16, 32, 48, 1,  17, 33, 49, 2,  18, 34, 50, 3,  19, 35, 51,
    907  4,  20, 36, 52, 5,  21, 37, 53, 6,  22, 38, 54, 7,  23, 39, 55,
    908  8,  24, 40, 56, 9,  25, 41, 57, 10, 26, 42, 58, 11, 27, 43, 59,
    909  12, 28, 44, 60, 13, 29, 45, 61, 14, 30, 46, 62, 15, 31, 47, 63,
    910 };
    911 
    912 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_4x16[64]) = {
    913  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
    914  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
    915  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
    916  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
    917 };
    918 
    919 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x4[64]) = {
    920  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
    921  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
    922  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
    923  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
    924 };
    925 
    926 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x32[256]) = {
    927  0,   2,   5,   9,   14,  20,  27,  35,  43,  51,  59,  67,  75,  83,  91,
    928  99,  107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187, 195, 203, 211,
    929  219, 227, 1,   4,   8,   13,  19,  26,  34,  42,  50,  58,  66,  74,  82,
    930  90,  98,  106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202,
    931  210, 218, 226, 234, 3,   7,   12,  18,  25,  33,  41,  49,  57,  65,  73,
    932  81,  89,  97,  105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193,
    933  201, 209, 217, 225, 233, 240, 6,   11,  17,  24,  32,  40,  48,  56,  64,
    934  72,  80,  88,  96,  104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184,
    935  192, 200, 208, 216, 224, 232, 239, 245, 10,  16,  23,  31,  39,  47,  55,
    936  63,  71,  79,  87,  95,  103, 111, 119, 127, 135, 143, 151, 159, 167, 175,
    937  183, 191, 199, 207, 215, 223, 231, 238, 244, 249, 15,  22,  30,  38,  46,
    938  54,  62,  70,  78,  86,  94,  102, 110, 118, 126, 134, 142, 150, 158, 166,
    939  174, 182, 190, 198, 206, 214, 222, 230, 237, 243, 248, 252, 21,  29,  37,
    940  45,  53,  61,  69,  77,  85,  93,  101, 109, 117, 125, 133, 141, 149, 157,
    941  165, 173, 181, 189, 197, 205, 213, 221, 229, 236, 242, 247, 251, 254, 28,
    942  36,  44,  52,  60,  68,  76,  84,  92,  100, 108, 116, 124, 132, 140, 148,
    943  156, 164, 172, 180, 188, 196, 204, 212, 220, 228, 235, 241, 246, 250, 253,
    944  255,
    945 };
    946 
    947 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_32x8[256]) = {
    948  0,   1,   3,   6,   10,  15,  21,  28,  2,   4,   7,   11,  16,  22,  29,
    949  36,  5,   8,   12,  17,  23,  30,  37,  44,  9,   13,  18,  24,  31,  38,
    950  45,  52,  14,  19,  25,  32,  39,  46,  53,  60,  20,  26,  33,  40,  47,
    951  54,  61,  68,  27,  34,  41,  48,  55,  62,  69,  76,  35,  42,  49,  56,
    952  63,  70,  77,  84,  43,  50,  57,  64,  71,  78,  85,  92,  51,  58,  65,
    953  72,  79,  86,  93,  100, 59,  66,  73,  80,  87,  94,  101, 108, 67,  74,
    954  81,  88,  95,  102, 109, 116, 75,  82,  89,  96,  103, 110, 117, 124, 83,
    955  90,  97,  104, 111, 118, 125, 132, 91,  98,  105, 112, 119, 126, 133, 140,
    956  99,  106, 113, 120, 127, 134, 141, 148, 107, 114, 121, 128, 135, 142, 149,
    957  156, 115, 122, 129, 136, 143, 150, 157, 164, 123, 130, 137, 144, 151, 158,
    958  165, 172, 131, 138, 145, 152, 159, 166, 173, 180, 139, 146, 153, 160, 167,
    959  174, 181, 188, 147, 154, 161, 168, 175, 182, 189, 196, 155, 162, 169, 176,
    960  183, 190, 197, 204, 163, 170, 177, 184, 191, 198, 205, 212, 171, 178, 185,
    961  192, 199, 206, 213, 220, 179, 186, 193, 200, 207, 214, 221, 228, 187, 194,
    962  201, 208, 215, 222, 229, 235, 195, 202, 209, 216, 223, 230, 236, 241, 203,
    963  210, 217, 224, 231, 237, 242, 246, 211, 218, 225, 232, 238, 243, 247, 250,
    964  219, 226, 233, 239, 244, 248, 251, 253, 227, 234, 240, 245, 249, 252, 254,
    965  255,
    966 };
    967 
    968 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x32[256]) = {
    969  0,   8,   16,  24,  32,  40,  48,  56,  64,  72,  80,  88,  96,  104, 112,
    970  120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232,
    971  240, 248, 1,   9,   17,  25,  33,  41,  49,  57,  65,  73,  81,  89,  97,
    972  105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217,
    973  225, 233, 241, 249, 2,   10,  18,  26,  34,  42,  50,  58,  66,  74,  82,
    974  90,  98,  106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202,
    975  210, 218, 226, 234, 242, 250, 3,   11,  19,  27,  35,  43,  51,  59,  67,
    976  75,  83,  91,  99,  107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187,
    977  195, 203, 211, 219, 227, 235, 243, 251, 4,   12,  20,  28,  36,  44,  52,
    978  60,  68,  76,  84,  92,  100, 108, 116, 124, 132, 140, 148, 156, 164, 172,
    979  180, 188, 196, 204, 212, 220, 228, 236, 244, 252, 5,   13,  21,  29,  37,
    980  45,  53,  61,  69,  77,  85,  93,  101, 109, 117, 125, 133, 141, 149, 157,
    981  165, 173, 181, 189, 197, 205, 213, 221, 229, 237, 245, 253, 6,   14,  22,
    982  30,  38,  46,  54,  62,  70,  78,  86,  94,  102, 110, 118, 126, 134, 142,
    983  150, 158, 166, 174, 182, 190, 198, 206, 214, 222, 230, 238, 246, 254, 7,
    984  15,  23,  31,  39,  47,  55,  63,  71,  79,  87,  95,  103, 111, 119, 127,
    985  135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247,
    986  255,
    987 };
    988 
    989 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_32x8[256]) = {
    990  0,  32, 64, 96,  128, 160, 192, 224, 1,  33, 65, 97,  129, 161, 193, 225,
    991  2,  34, 66, 98,  130, 162, 194, 226, 3,  35, 67, 99,  131, 163, 195, 227,
    992  4,  36, 68, 100, 132, 164, 196, 228, 5,  37, 69, 101, 133, 165, 197, 229,
    993  6,  38, 70, 102, 134, 166, 198, 230, 7,  39, 71, 103, 135, 167, 199, 231,
    994  8,  40, 72, 104, 136, 168, 200, 232, 9,  41, 73, 105, 137, 169, 201, 233,
    995  10, 42, 74, 106, 138, 170, 202, 234, 11, 43, 75, 107, 139, 171, 203, 235,
    996  12, 44, 76, 108, 140, 172, 204, 236, 13, 45, 77, 109, 141, 173, 205, 237,
    997  14, 46, 78, 110, 142, 174, 206, 238, 15, 47, 79, 111, 143, 175, 207, 239,
    998  16, 48, 80, 112, 144, 176, 208, 240, 17, 49, 81, 113, 145, 177, 209, 241,
    999  18, 50, 82, 114, 146, 178, 210, 242, 19, 51, 83, 115, 147, 179, 211, 243,
   1000  20, 52, 84, 116, 148, 180, 212, 244, 21, 53, 85, 117, 149, 181, 213, 245,
   1001  22, 54, 86, 118, 150, 182, 214, 246, 23, 55, 87, 119, 151, 183, 215, 247,
   1002  24, 56, 88, 120, 152, 184, 216, 248, 25, 57, 89, 121, 153, 185, 217, 249,
   1003  26, 58, 90, 122, 154, 186, 218, 250, 27, 59, 91, 123, 155, 187, 219, 251,
   1004  28, 60, 92, 124, 156, 188, 220, 252, 29, 61, 93, 125, 157, 189, 221, 253,
   1005  30, 62, 94, 126, 158, 190, 222, 254, 31, 63, 95, 127, 159, 191, 223, 255,
   1006 };
   1007 
   1008 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x32[256]) = {
   1009  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1010  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1011  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1012  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1013  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1014  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1015  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1016  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1017  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
   1018  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
   1019  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
   1020  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
   1021  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
   1022  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
   1023  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
   1024  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
   1025  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
   1026  255,
   1027 };
   1028 
   1029 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_32x8[256]) = {
   1030  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1031  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1032  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1033  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1034  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1035  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1036  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1037  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1038  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
   1039  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
   1040  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
   1041  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
   1042  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
   1043  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
   1044  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
   1045  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
   1046  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
   1047  255,
   1048 };
   1049 
   1050 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x8[64]) = {
   1051  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,
   1052  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
   1053  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
   1054  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
   1055 };
   1056 
   1057 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x8[64]) = {
   1058  0, 8,  16, 24, 32, 40, 48, 56, 1, 9,  17, 25, 33, 41, 49, 57,
   1059  2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59,
   1060  4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61,
   1061  6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63,
   1062 };
   1063 
   1064 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x8[64]) = {
   1065  0,  2,  3,  9,  10, 20, 21, 35, 1,  4,  8,  11, 19, 22, 34, 36,
   1066  5,  7,  12, 18, 23, 33, 37, 48, 6,  13, 17, 24, 32, 38, 47, 49,
   1067  14, 16, 25, 31, 39, 46, 50, 57, 15, 26, 30, 40, 45, 51, 56, 58,
   1068  27, 29, 41, 44, 52, 55, 59, 62, 28, 42, 43, 53, 54, 60, 61, 63,
   1069 };
   1070 
   1071 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x16[128]) = {
   1072  0,  2,  5,  9,  14, 20, 27, 35, 43, 51,  59,  67,  75,  83,  91,  99,
   1073  1,  4,  8,  13, 19, 26, 34, 42, 50, 58,  66,  74,  82,  90,  98,  106,
   1074  3,  7,  12, 18, 25, 33, 41, 49, 57, 65,  73,  81,  89,  97,  105, 112,
   1075  6,  11, 17, 24, 32, 40, 48, 56, 64, 72,  80,  88,  96,  104, 111, 117,
   1076  10, 16, 23, 31, 39, 47, 55, 63, 71, 79,  87,  95,  103, 110, 116, 121,
   1077  15, 22, 30, 38, 46, 54, 62, 70, 78, 86,  94,  102, 109, 115, 120, 124,
   1078  21, 29, 37, 45, 53, 61, 69, 77, 85, 93,  101, 108, 114, 119, 123, 126,
   1079  28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 107, 113, 118, 122, 125, 127,
   1080 };
   1081 
   1082 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x8[128]) = {
   1083  0,  1,  3,   6,   10,  15,  21,  28,  2,  4,   7,   11,  16,  22,  29,  36,
   1084  5,  8,  12,  17,  23,  30,  37,  44,  9,  13,  18,  24,  31,  38,  45,  52,
   1085  14, 19, 25,  32,  39,  46,  53,  60,  20, 26,  33,  40,  47,  54,  61,  68,
   1086  27, 34, 41,  48,  55,  62,  69,  76,  35, 42,  49,  56,  63,  70,  77,  84,
   1087  43, 50, 57,  64,  71,  78,  85,  92,  51, 58,  65,  72,  79,  86,  93,  100,
   1088  59, 66, 73,  80,  87,  94,  101, 107, 67, 74,  81,  88,  95,  102, 108, 113,
   1089  75, 82, 89,  96,  103, 109, 114, 118, 83, 90,  97,  104, 110, 115, 119, 122,
   1090  91, 98, 105, 111, 116, 120, 123, 125, 99, 106, 112, 117, 121, 124, 126, 127,
   1091 };
   1092 
   1093 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x16[128]) = {
   1094  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1095  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1096  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1097  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1098  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1099  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1100  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1101  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1102  120, 121, 122, 123, 124, 125, 126, 127,
   1103 };
   1104 
   1105 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x8[128]) = {
   1106  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1107  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1108  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1109  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1110  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1111  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1112  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1113  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1114  120, 121, 122, 123, 124, 125, 126, 127,
   1115 };
   1116 
   1117 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x16[128]) = {
   1118  0, 8,  16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96,  104, 112, 120,
   1119  1, 9,  17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97,  105, 113, 121,
   1120  2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98,  106, 114, 122,
   1121  3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99,  107, 115, 123,
   1122  4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124,
   1123  5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125,
   1124  6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126,
   1125  7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127,
   1126 };
   1127 
   1128 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x8[128]) = {
   1129  0,  16, 32, 48, 64, 80, 96,  112, 1,  17, 33, 49, 65, 81, 97,  113,
   1130  2,  18, 34, 50, 66, 82, 98,  114, 3,  19, 35, 51, 67, 83, 99,  115,
   1131  4,  20, 36, 52, 68, 84, 100, 116, 5,  21, 37, 53, 69, 85, 101, 117,
   1132  6,  22, 38, 54, 70, 86, 102, 118, 7,  23, 39, 55, 71, 87, 103, 119,
   1133  8,  24, 40, 56, 72, 88, 104, 120, 9,  25, 41, 57, 73, 89, 105, 121,
   1134  10, 26, 42, 58, 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123,
   1135  12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61, 77, 93, 109, 125,
   1136  14, 30, 46, 62, 78, 94, 110, 126, 15, 31, 47, 63, 79, 95, 111, 127,
   1137 };
   1138 
   1139 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x32[512]) = {
   1140  0,   2,   5,   9,   14,  20,  27,  35,  44,  54,  65,  77,  90,  104, 119,
   1141  135, 151, 167, 183, 199, 215, 231, 247, 263, 279, 295, 311, 327, 343, 359,
   1142  375, 391, 1,   4,   8,   13,  19,  26,  34,  43,  53,  64,  76,  89,  103,
   1143  118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278, 294, 310, 326, 342,
   1144  358, 374, 390, 406, 3,   7,   12,  18,  25,  33,  42,  52,  63,  75,  88,
   1145  102, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309, 325,
   1146  341, 357, 373, 389, 405, 420, 6,   11,  17,  24,  32,  41,  51,  62,  74,
   1147  87,  101, 116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308,
   1148  324, 340, 356, 372, 388, 404, 419, 433, 10,  16,  23,  31,  40,  50,  61,
   1149  73,  86,  100, 115, 131, 147, 163, 179, 195, 211, 227, 243, 259, 275, 291,
   1150  307, 323, 339, 355, 371, 387, 403, 418, 432, 445, 15,  22,  30,  39,  49,
   1151  60,  72,  85,  99,  114, 130, 146, 162, 178, 194, 210, 226, 242, 258, 274,
   1152  290, 306, 322, 338, 354, 370, 386, 402, 417, 431, 444, 456, 21,  29,  38,
   1153  48,  59,  71,  84,  98,  113, 129, 145, 161, 177, 193, 209, 225, 241, 257,
   1154  273, 289, 305, 321, 337, 353, 369, 385, 401, 416, 430, 443, 455, 466, 28,
   1155  37,  47,  58,  70,  83,  97,  112, 128, 144, 160, 176, 192, 208, 224, 240,
   1156  256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 415, 429, 442, 454, 465,
   1157  475, 36,  46,  57,  69,  82,  96,  111, 127, 143, 159, 175, 191, 207, 223,
   1158  239, 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 414, 428, 441, 453,
   1159  464, 474, 483, 45,  56,  68,  81,  95,  110, 126, 142, 158, 174, 190, 206,
   1160  222, 238, 254, 270, 286, 302, 318, 334, 350, 366, 382, 398, 413, 427, 440,
   1161  452, 463, 473, 482, 490, 55,  67,  80,  94,  109, 125, 141, 157, 173, 189,
   1162  205, 221, 237, 253, 269, 285, 301, 317, 333, 349, 365, 381, 397, 412, 426,
   1163  439, 451, 462, 472, 481, 489, 496, 66,  79,  93,  108, 124, 140, 156, 172,
   1164  188, 204, 220, 236, 252, 268, 284, 300, 316, 332, 348, 364, 380, 396, 411,
   1165  425, 438, 450, 461, 471, 480, 488, 495, 501, 78,  92,  107, 123, 139, 155,
   1166  171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363, 379, 395,
   1167  410, 424, 437, 449, 460, 470, 479, 487, 494, 500, 505, 91,  106, 122, 138,
   1168  154, 170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378,
   1169  394, 409, 423, 436, 448, 459, 469, 478, 486, 493, 499, 504, 508, 105, 121,
   1170  137, 153, 169, 185, 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361,
   1171  377, 393, 408, 422, 435, 447, 458, 468, 477, 485, 492, 498, 503, 507, 510,
   1172  120, 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312, 328, 344,
   1173  360, 376, 392, 407, 421, 434, 446, 457, 467, 476, 484, 491, 497, 502, 506,
   1174  509, 511,
   1175 };
   1176 
   1177 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_32x16[512]) = {
   1178  0,   1,   3,   6,   10,  15,  21,  28,  36,  45,  55,  66,  78,  91,  105,
   1179  120, 2,   4,   7,   11,  16,  22,  29,  37,  46,  56,  67,  79,  92,  106,
   1180  121, 136, 5,   8,   12,  17,  23,  30,  38,  47,  57,  68,  80,  93,  107,
   1181  122, 137, 152, 9,   13,  18,  24,  31,  39,  48,  58,  69,  81,  94,  108,
   1182  123, 138, 153, 168, 14,  19,  25,  32,  40,  49,  59,  70,  82,  95,  109,
   1183  124, 139, 154, 169, 184, 20,  26,  33,  41,  50,  60,  71,  83,  96,  110,
   1184  125, 140, 155, 170, 185, 200, 27,  34,  42,  51,  61,  72,  84,  97,  111,
   1185  126, 141, 156, 171, 186, 201, 216, 35,  43,  52,  62,  73,  85,  98,  112,
   1186  127, 142, 157, 172, 187, 202, 217, 232, 44,  53,  63,  74,  86,  99,  113,
   1187  128, 143, 158, 173, 188, 203, 218, 233, 248, 54,  64,  75,  87,  100, 114,
   1188  129, 144, 159, 174, 189, 204, 219, 234, 249, 264, 65,  76,  88,  101, 115,
   1189  130, 145, 160, 175, 190, 205, 220, 235, 250, 265, 280, 77,  89,  102, 116,
   1190  131, 146, 161, 176, 191, 206, 221, 236, 251, 266, 281, 296, 90,  103, 117,
   1191  132, 147, 162, 177, 192, 207, 222, 237, 252, 267, 282, 297, 312, 104, 118,
   1192  133, 148, 163, 178, 193, 208, 223, 238, 253, 268, 283, 298, 313, 328, 119,
   1193  134, 149, 164, 179, 194, 209, 224, 239, 254, 269, 284, 299, 314, 329, 344,
   1194  135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345,
   1195  360, 151, 166, 181, 196, 211, 226, 241, 256, 271, 286, 301, 316, 331, 346,
   1196  361, 376, 167, 182, 197, 212, 227, 242, 257, 272, 287, 302, 317, 332, 347,
   1197  362, 377, 392, 183, 198, 213, 228, 243, 258, 273, 288, 303, 318, 333, 348,
   1198  363, 378, 393, 407, 199, 214, 229, 244, 259, 274, 289, 304, 319, 334, 349,
   1199  364, 379, 394, 408, 421, 215, 230, 245, 260, 275, 290, 305, 320, 335, 350,
   1200  365, 380, 395, 409, 422, 434, 231, 246, 261, 276, 291, 306, 321, 336, 351,
   1201  366, 381, 396, 410, 423, 435, 446, 247, 262, 277, 292, 307, 322, 337, 352,
   1202  367, 382, 397, 411, 424, 436, 447, 457, 263, 278, 293, 308, 323, 338, 353,
   1203  368, 383, 398, 412, 425, 437, 448, 458, 467, 279, 294, 309, 324, 339, 354,
   1204  369, 384, 399, 413, 426, 438, 449, 459, 468, 476, 295, 310, 325, 340, 355,
   1205  370, 385, 400, 414, 427, 439, 450, 460, 469, 477, 484, 311, 326, 341, 356,
   1206  371, 386, 401, 415, 428, 440, 451, 461, 470, 478, 485, 491, 327, 342, 357,
   1207  372, 387, 402, 416, 429, 441, 452, 462, 471, 479, 486, 492, 497, 343, 358,
   1208  373, 388, 403, 417, 430, 442, 453, 463, 472, 480, 487, 493, 498, 502, 359,
   1209  374, 389, 404, 418, 431, 443, 454, 464, 473, 481, 488, 494, 499, 503, 506,
   1210  375, 390, 405, 419, 432, 444, 455, 465, 474, 482, 489, 495, 500, 504, 507,
   1211  509, 391, 406, 420, 433, 445, 456, 466, 475, 483, 490, 496, 501, 505, 508,
   1212  510, 511,
   1213 };
   1214 
   1215 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x32[512]) = {
   1216  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1217  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1218  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1219  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1220  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1221  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1222  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1223  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1224  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
   1225  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
   1226  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
   1227  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
   1228  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
   1229  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
   1230  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
   1231  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
   1232  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
   1233  255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
   1234  270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
   1235  285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
   1236  300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
   1237  315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
   1238  330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
   1239  345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
   1240  360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
   1241  375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
   1242  390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
   1243  405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
   1244  420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
   1245  435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
   1246  450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
   1247  465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
   1248  480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
   1249  495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
   1250  510, 511,
   1251 };
   1252 
   1253 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_32x16[512]) = {
   1254  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1255  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1256  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1257  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1258  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1259  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1260  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1261  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1262  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
   1263  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
   1264  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
   1265  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
   1266  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
   1267  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
   1268  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
   1269  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
   1270  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
   1271  255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
   1272  270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
   1273  285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
   1274  300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
   1275  315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
   1276  330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
   1277  345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
   1278  360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
   1279  375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
   1280  390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
   1281  405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
   1282  420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
   1283  435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
   1284  450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
   1285  465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
   1286  480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
   1287  495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
   1288  510, 511,
   1289 };
   1290 
   1291 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x32[512]) = {
   1292  0,   16,  32,  48,  64,  80,  96,  112, 128, 144, 160, 176, 192, 208, 224,
   1293  240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464,
   1294  480, 496, 1,   17,  33,  49,  65,  81,  97,  113, 129, 145, 161, 177, 193,
   1295  209, 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433,
   1296  449, 465, 481, 497, 2,   18,  34,  50,  66,  82,  98,  114, 130, 146, 162,
   1297  178, 194, 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 402,
   1298  418, 434, 450, 466, 482, 498, 3,   19,  35,  51,  67,  83,  99,  115, 131,
   1299  147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
   1300  387, 403, 419, 435, 451, 467, 483, 499, 4,   20,  36,  52,  68,  84,  100,
   1301  116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340,
   1302  356, 372, 388, 404, 420, 436, 452, 468, 484, 500, 5,   21,  37,  53,  69,
   1303  85,  101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309,
   1304  325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501, 6,   22,  38,
   1305  54,  70,  86,  102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278,
   1306  294, 310, 326, 342, 358, 374, 390, 406, 422, 438, 454, 470, 486, 502, 7,
   1307  23,  39,  55,  71,  87,  103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
   1308  263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439, 455, 471, 487,
   1309  503, 8,   24,  40,  56,  72,  88,  104, 120, 136, 152, 168, 184, 200, 216,
   1310  232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392, 408, 424, 440, 456,
   1311  472, 488, 504, 9,   25,  41,  57,  73,  89,  105, 121, 137, 153, 169, 185,
   1312  201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425,
   1313  441, 457, 473, 489, 505, 10,  26,  42,  58,  74,  90,  106, 122, 138, 154,
   1314  170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 394,
   1315  410, 426, 442, 458, 474, 490, 506, 11,  27,  43,  59,  75,  91,  107, 123,
   1316  139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363,
   1317  379, 395, 411, 427, 443, 459, 475, 491, 507, 12,  28,  44,  60,  76,  92,
   1318  108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284, 300, 316, 332,
   1319  348, 364, 380, 396, 412, 428, 444, 460, 476, 492, 508, 13,  29,  45,  61,
   1320  77,  93,  109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269, 285, 301,
   1321  317, 333, 349, 365, 381, 397, 413, 429, 445, 461, 477, 493, 509, 14,  30,
   1322  46,  62,  78,  94,  110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 270,
   1323  286, 302, 318, 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510,
   1324  15,  31,  47,  63,  79,  95,  111, 127, 143, 159, 175, 191, 207, 223, 239,
   1325  255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479,
   1326  495, 511,
   1327 };
   1328 
   1329 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_32x16[512]) = {
   1330  0,  32, 64, 96,  128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480,
   1331  1,  33, 65, 97,  129, 161, 193, 225, 257, 289, 321, 353, 385, 417, 449, 481,
   1332  2,  34, 66, 98,  130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482,
   1333  3,  35, 67, 99,  131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483,
   1334  4,  36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 388, 420, 452, 484,
   1335  5,  37, 69, 101, 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485,
   1336  6,  38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486,
   1337  7,  39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 455, 487,
   1338  8,  40, 72, 104, 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488,
   1339  9,  41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361, 393, 425, 457, 489,
   1340  10, 42, 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490,
   1341  11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491,
   1342  12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364, 396, 428, 460, 492,
   1343  13, 45, 77, 109, 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493,
   1344  14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494,
   1345  15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367, 399, 431, 463, 495,
   1346  16, 48, 80, 112, 144, 176, 208, 240, 272, 304, 336, 368, 400, 432, 464, 496,
   1347  17, 49, 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497,
   1348  18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 402, 434, 466, 498,
   1349  19, 51, 83, 115, 147, 179, 211, 243, 275, 307, 339, 371, 403, 435, 467, 499,
   1350  20, 52, 84, 116, 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500,
   1351  21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 469, 501,
   1352  22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 342, 374, 406, 438, 470, 502,
   1353  23, 55, 87, 119, 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503,
   1354  24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504,
   1355  25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 409, 441, 473, 505,
   1356  26, 58, 90, 122, 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506,
   1357  27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507,
   1358  28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 476, 508,
   1359  29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509,
   1360  30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382, 414, 446, 478, 510,
   1361  31, 63, 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511,
   1362 };
   1363 
   1364 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x16[256]) = {
   1365  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,
   1366  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
   1367  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
   1368  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
   1369  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
   1370  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
   1371  90,  91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104,
   1372  105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
   1373  120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
   1374  135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
   1375  150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
   1376  165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
   1377  180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
   1378  195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
   1379  210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
   1380  225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
   1381  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
   1382  255,
   1383 };
   1384 
   1385 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x16[256]) = {
   1386  0,  16, 32, 48, 64, 80, 96,  112, 128, 144, 160, 176, 192, 208, 224, 240,
   1387  1,  17, 33, 49, 65, 81, 97,  113, 129, 145, 161, 177, 193, 209, 225, 241,
   1388  2,  18, 34, 50, 66, 82, 98,  114, 130, 146, 162, 178, 194, 210, 226, 242,
   1389  3,  19, 35, 51, 67, 83, 99,  115, 131, 147, 163, 179, 195, 211, 227, 243,
   1390  4,  20, 36, 52, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244,
   1391  5,  21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245,
   1392  6,  22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246,
   1393  7,  23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
   1394  8,  24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248,
   1395  9,  25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 201, 217, 233, 249,
   1396  10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250,
   1397  11, 27, 43, 59, 75, 91, 107, 123, 139, 155, 171, 187, 203, 219, 235, 251,
   1398  12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 236, 252,
   1399  13, 29, 45, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253,
   1400  14, 30, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254,
   1401  15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255,
   1402 };
   1403 
   1404 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x16[256]) = {
   1405  0,   2,   3,   9,   10,  20,  21,  35,  36,  54,  55,  77,  78,  104, 105,
   1406  135, 1,   4,   8,   11,  19,  22,  34,  37,  53,  56,  76,  79,  103, 106,
   1407  134, 136, 5,   7,   12,  18,  23,  33,  38,  52,  57,  75,  80,  102, 107,
   1408  133, 137, 164, 6,   13,  17,  24,  32,  39,  51,  58,  74,  81,  101, 108,
   1409  132, 138, 163, 165, 14,  16,  25,  31,  40,  50,  59,  73,  82,  100, 109,
   1410  131, 139, 162, 166, 189, 15,  26,  30,  41,  49,  60,  72,  83,  99,  110,
   1411  130, 140, 161, 167, 188, 190, 27,  29,  42,  48,  61,  71,  84,  98,  111,
   1412  129, 141, 160, 168, 187, 191, 210, 28,  43,  47,  62,  70,  85,  97,  112,
   1413  128, 142, 159, 169, 186, 192, 209, 211, 44,  46,  63,  69,  86,  96,  113,
   1414  127, 143, 158, 170, 185, 193, 208, 212, 227, 45,  64,  68,  87,  95,  114,
   1415  126, 144, 157, 171, 184, 194, 207, 213, 226, 228, 65,  67,  88,  94,  115,
   1416  125, 145, 156, 172, 183, 195, 206, 214, 225, 229, 240, 66,  89,  93,  116,
   1417  124, 146, 155, 173, 182, 196, 205, 215, 224, 230, 239, 241, 90,  92,  117,
   1418  123, 147, 154, 174, 181, 197, 204, 216, 223, 231, 238, 242, 249, 91,  118,
   1419  122, 148, 153, 175, 180, 198, 203, 217, 222, 232, 237, 243, 248, 250, 119,
   1420  121, 149, 152, 176, 179, 199, 202, 218, 221, 233, 236, 244, 247, 251, 254,
   1421  120, 150, 151, 177, 178, 200, 201, 219, 220, 234, 235, 245, 246, 252, 253,
   1422  255,
   1423 };
   1424 
   1425 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_32x32[1024]) = {
   1426  0,    1,    2,    3,    4,    5,    6,    7,    8,    9,    10,   11,   12,
   1427  13,   14,   15,   16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
   1428  26,   27,   28,   29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
   1429  39,   40,   41,   42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
   1430  52,   53,   54,   55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
   1431  65,   66,   67,   68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
   1432  78,   79,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89,   90,
   1433  91,   92,   93,   94,   95,   96,   97,   98,   99,   100,  101,  102,  103,
   1434  104,  105,  106,  107,  108,  109,  110,  111,  112,  113,  114,  115,  116,
   1435  117,  118,  119,  120,  121,  122,  123,  124,  125,  126,  127,  128,  129,
   1436  130,  131,  132,  133,  134,  135,  136,  137,  138,  139,  140,  141,  142,
   1437  143,  144,  145,  146,  147,  148,  149,  150,  151,  152,  153,  154,  155,
   1438  156,  157,  158,  159,  160,  161,  162,  163,  164,  165,  166,  167,  168,
   1439  169,  170,  171,  172,  173,  174,  175,  176,  177,  178,  179,  180,  181,
   1440  182,  183,  184,  185,  186,  187,  188,  189,  190,  191,  192,  193,  194,
   1441  195,  196,  197,  198,  199,  200,  201,  202,  203,  204,  205,  206,  207,
   1442  208,  209,  210,  211,  212,  213,  214,  215,  216,  217,  218,  219,  220,
   1443  221,  222,  223,  224,  225,  226,  227,  228,  229,  230,  231,  232,  233,
   1444  234,  235,  236,  237,  238,  239,  240,  241,  242,  243,  244,  245,  246,
   1445  247,  248,  249,  250,  251,  252,  253,  254,  255,  256,  257,  258,  259,
   1446  260,  261,  262,  263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
   1447  273,  274,  275,  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
   1448  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
   1449  299,  300,  301,  302,  303,  304,  305,  306,  307,  308,  309,  310,  311,
   1450  312,  313,  314,  315,  316,  317,  318,  319,  320,  321,  322,  323,  324,
   1451  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,  335,  336,  337,
   1452  338,  339,  340,  341,  342,  343,  344,  345,  346,  347,  348,  349,  350,
   1453  351,  352,  353,  354,  355,  356,  357,  358,  359,  360,  361,  362,  363,
   1454  364,  365,  366,  367,  368,  369,  370,  371,  372,  373,  374,  375,  376,
   1455  377,  378,  379,  380,  381,  382,  383,  384,  385,  386,  387,  388,  389,
   1456  390,  391,  392,  393,  394,  395,  396,  397,  398,  399,  400,  401,  402,
   1457  403,  404,  405,  406,  407,  408,  409,  410,  411,  412,  413,  414,  415,
   1458  416,  417,  418,  419,  420,  421,  422,  423,  424,  425,  426,  427,  428,
   1459  429,  430,  431,  432,  433,  434,  435,  436,  437,  438,  439,  440,  441,
   1460  442,  443,  444,  445,  446,  447,  448,  449,  450,  451,  452,  453,  454,
   1461  455,  456,  457,  458,  459,  460,  461,  462,  463,  464,  465,  466,  467,
   1462  468,  469,  470,  471,  472,  473,  474,  475,  476,  477,  478,  479,  480,
   1463  481,  482,  483,  484,  485,  486,  487,  488,  489,  490,  491,  492,  493,
   1464  494,  495,  496,  497,  498,  499,  500,  501,  502,  503,  504,  505,  506,
   1465  507,  508,  509,  510,  511,  512,  513,  514,  515,  516,  517,  518,  519,
   1466  520,  521,  522,  523,  524,  525,  526,  527,  528,  529,  530,  531,  532,
   1467  533,  534,  535,  536,  537,  538,  539,  540,  541,  542,  543,  544,  545,
   1468  546,  547,  548,  549,  550,  551,  552,  553,  554,  555,  556,  557,  558,
   1469  559,  560,  561,  562,  563,  564,  565,  566,  567,  568,  569,  570,  571,
   1470  572,  573,  574,  575,  576,  577,  578,  579,  580,  581,  582,  583,  584,
   1471  585,  586,  587,  588,  589,  590,  591,  592,  593,  594,  595,  596,  597,
   1472  598,  599,  600,  601,  602,  603,  604,  605,  606,  607,  608,  609,  610,
   1473  611,  612,  613,  614,  615,  616,  617,  618,  619,  620,  621,  622,  623,
   1474  624,  625,  626,  627,  628,  629,  630,  631,  632,  633,  634,  635,  636,
   1475  637,  638,  639,  640,  641,  642,  643,  644,  645,  646,  647,  648,  649,
   1476  650,  651,  652,  653,  654,  655,  656,  657,  658,  659,  660,  661,  662,
   1477  663,  664,  665,  666,  667,  668,  669,  670,  671,  672,  673,  674,  675,
   1478  676,  677,  678,  679,  680,  681,  682,  683,  684,  685,  686,  687,  688,
   1479  689,  690,  691,  692,  693,  694,  695,  696,  697,  698,  699,  700,  701,
   1480  702,  703,  704,  705,  706,  707,  708,  709,  710,  711,  712,  713,  714,
   1481  715,  716,  717,  718,  719,  720,  721,  722,  723,  724,  725,  726,  727,
   1482  728,  729,  730,  731,  732,  733,  734,  735,  736,  737,  738,  739,  740,
   1483  741,  742,  743,  744,  745,  746,  747,  748,  749,  750,  751,  752,  753,
   1484  754,  755,  756,  757,  758,  759,  760,  761,  762,  763,  764,  765,  766,
   1485  767,  768,  769,  770,  771,  772,  773,  774,  775,  776,  777,  778,  779,
   1486  780,  781,  782,  783,  784,  785,  786,  787,  788,  789,  790,  791,  792,
   1487  793,  794,  795,  796,  797,  798,  799,  800,  801,  802,  803,  804,  805,
   1488  806,  807,  808,  809,  810,  811,  812,  813,  814,  815,  816,  817,  818,
   1489  819,  820,  821,  822,  823,  824,  825,  826,  827,  828,  829,  830,  831,
   1490  832,  833,  834,  835,  836,  837,  838,  839,  840,  841,  842,  843,  844,
   1491  845,  846,  847,  848,  849,  850,  851,  852,  853,  854,  855,  856,  857,
   1492  858,  859,  860,  861,  862,  863,  864,  865,  866,  867,  868,  869,  870,
   1493  871,  872,  873,  874,  875,  876,  877,  878,  879,  880,  881,  882,  883,
   1494  884,  885,  886,  887,  888,  889,  890,  891,  892,  893,  894,  895,  896,
   1495  897,  898,  899,  900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
   1496  910,  911,  912,  913,  914,  915,  916,  917,  918,  919,  920,  921,  922,
   1497  923,  924,  925,  926,  927,  928,  929,  930,  931,  932,  933,  934,  935,
   1498  936,  937,  938,  939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
   1499  949,  950,  951,  952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
   1500  962,  963,  964,  965,  966,  967,  968,  969,  970,  971,  972,  973,  974,
   1501  975,  976,  977,  978,  979,  980,  981,  982,  983,  984,  985,  986,  987,
   1502  988,  989,  990,  991,  992,  993,  994,  995,  996,  997,  998,  999,  1000,
   1503  1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
   1504  1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
   1505 };
   1506 
   1507 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_32x32[1024]) = {
   1508  0,   32,   64,  96,   128, 160,  192, 224,  256, 288,  320, 352,  384, 416,
   1509  448, 480,  512, 544,  576, 608,  640, 672,  704, 736,  768, 800,  832, 864,
   1510  896, 928,  960, 992,  1,   33,   65,  97,   129, 161,  193, 225,  257, 289,
   1511  321, 353,  385, 417,  449, 481,  513, 545,  577, 609,  641, 673,  705, 737,
   1512  769, 801,  833, 865,  897, 929,  961, 993,  2,   34,   66,  98,   130, 162,
   1513  194, 226,  258, 290,  322, 354,  386, 418,  450, 482,  514, 546,  578, 610,
   1514  642, 674,  706, 738,  770, 802,  834, 866,  898, 930,  962, 994,  3,   35,
   1515  67,  99,   131, 163,  195, 227,  259, 291,  323, 355,  387, 419,  451, 483,
   1516  515, 547,  579, 611,  643, 675,  707, 739,  771, 803,  835, 867,  899, 931,
   1517  963, 995,  4,   36,   68,  100,  132, 164,  196, 228,  260, 292,  324, 356,
   1518  388, 420,  452, 484,  516, 548,  580, 612,  644, 676,  708, 740,  772, 804,
   1519  836, 868,  900, 932,  964, 996,  5,   37,   69,  101,  133, 165,  197, 229,
   1520  261, 293,  325, 357,  389, 421,  453, 485,  517, 549,  581, 613,  645, 677,
   1521  709, 741,  773, 805,  837, 869,  901, 933,  965, 997,  6,   38,   70,  102,
   1522  134, 166,  198, 230,  262, 294,  326, 358,  390, 422,  454, 486,  518, 550,
   1523  582, 614,  646, 678,  710, 742,  774, 806,  838, 870,  902, 934,  966, 998,
   1524  7,   39,   71,  103,  135, 167,  199, 231,  263, 295,  327, 359,  391, 423,
   1525  455, 487,  519, 551,  583, 615,  647, 679,  711, 743,  775, 807,  839, 871,
   1526  903, 935,  967, 999,  8,   40,   72,  104,  136, 168,  200, 232,  264, 296,
   1527  328, 360,  392, 424,  456, 488,  520, 552,  584, 616,  648, 680,  712, 744,
   1528  776, 808,  840, 872,  904, 936,  968, 1000, 9,   41,   73,  105,  137, 169,
   1529  201, 233,  265, 297,  329, 361,  393, 425,  457, 489,  521, 553,  585, 617,
   1530  649, 681,  713, 745,  777, 809,  841, 873,  905, 937,  969, 1001, 10,  42,
   1531  74,  106,  138, 170,  202, 234,  266, 298,  330, 362,  394, 426,  458, 490,
   1532  522, 554,  586, 618,  650, 682,  714, 746,  778, 810,  842, 874,  906, 938,
   1533  970, 1002, 11,  43,   75,  107,  139, 171,  203, 235,  267, 299,  331, 363,
   1534  395, 427,  459, 491,  523, 555,  587, 619,  651, 683,  715, 747,  779, 811,
   1535  843, 875,  907, 939,  971, 1003, 12,  44,   76,  108,  140, 172,  204, 236,
   1536  268, 300,  332, 364,  396, 428,  460, 492,  524, 556,  588, 620,  652, 684,
   1537  716, 748,  780, 812,  844, 876,  908, 940,  972, 1004, 13,  45,   77,  109,
   1538  141, 173,  205, 237,  269, 301,  333, 365,  397, 429,  461, 493,  525, 557,
   1539  589, 621,  653, 685,  717, 749,  781, 813,  845, 877,  909, 941,  973, 1005,
   1540  14,  46,   78,  110,  142, 174,  206, 238,  270, 302,  334, 366,  398, 430,
   1541  462, 494,  526, 558,  590, 622,  654, 686,  718, 750,  782, 814,  846, 878,
   1542  910, 942,  974, 1006, 15,  47,   79,  111,  143, 175,  207, 239,  271, 303,
   1543  335, 367,  399, 431,  463, 495,  527, 559,  591, 623,  655, 687,  719, 751,
   1544  783, 815,  847, 879,  911, 943,  975, 1007, 16,  48,   80,  112,  144, 176,
   1545  208, 240,  272, 304,  336, 368,  400, 432,  464, 496,  528, 560,  592, 624,
   1546  656, 688,  720, 752,  784, 816,  848, 880,  912, 944,  976, 1008, 17,  49,
   1547  81,  113,  145, 177,  209, 241,  273, 305,  337, 369,  401, 433,  465, 497,
   1548  529, 561,  593, 625,  657, 689,  721, 753,  785, 817,  849, 881,  913, 945,
   1549  977, 1009, 18,  50,   82,  114,  146, 178,  210, 242,  274, 306,  338, 370,
   1550  402, 434,  466, 498,  530, 562,  594, 626,  658, 690,  722, 754,  786, 818,
   1551  850, 882,  914, 946,  978, 1010, 19,  51,   83,  115,  147, 179,  211, 243,
   1552  275, 307,  339, 371,  403, 435,  467, 499,  531, 563,  595, 627,  659, 691,
   1553  723, 755,  787, 819,  851, 883,  915, 947,  979, 1011, 20,  52,   84,  116,
   1554  148, 180,  212, 244,  276, 308,  340, 372,  404, 436,  468, 500,  532, 564,
   1555  596, 628,  660, 692,  724, 756,  788, 820,  852, 884,  916, 948,  980, 1012,
   1556  21,  53,   85,  117,  149, 181,  213, 245,  277, 309,  341, 373,  405, 437,
   1557  469, 501,  533, 565,  597, 629,  661, 693,  725, 757,  789, 821,  853, 885,
   1558  917, 949,  981, 1013, 22,  54,   86,  118,  150, 182,  214, 246,  278, 310,
   1559  342, 374,  406, 438,  470, 502,  534, 566,  598, 630,  662, 694,  726, 758,
   1560  790, 822,  854, 886,  918, 950,  982, 1014, 23,  55,   87,  119,  151, 183,
   1561  215, 247,  279, 311,  343, 375,  407, 439,  471, 503,  535, 567,  599, 631,
   1562  663, 695,  727, 759,  791, 823,  855, 887,  919, 951,  983, 1015, 24,  56,
   1563  88,  120,  152, 184,  216, 248,  280, 312,  344, 376,  408, 440,  472, 504,
   1564  536, 568,  600, 632,  664, 696,  728, 760,  792, 824,  856, 888,  920, 952,
   1565  984, 1016, 25,  57,   89,  121,  153, 185,  217, 249,  281, 313,  345, 377,
   1566  409, 441,  473, 505,  537, 569,  601, 633,  665, 697,  729, 761,  793, 825,
   1567  857, 889,  921, 953,  985, 1017, 26,  58,   90,  122,  154, 186,  218, 250,
   1568  282, 314,  346, 378,  410, 442,  474, 506,  538, 570,  602, 634,  666, 698,
   1569  730, 762,  794, 826,  858, 890,  922, 954,  986, 1018, 27,  59,   91,  123,
   1570  155, 187,  219, 251,  283, 315,  347, 379,  411, 443,  475, 507,  539, 571,
   1571  603, 635,  667, 699,  731, 763,  795, 827,  859, 891,  923, 955,  987, 1019,
   1572  28,  60,   92,  124,  156, 188,  220, 252,  284, 316,  348, 380,  412, 444,
   1573  476, 508,  540, 572,  604, 636,  668, 700,  732, 764,  796, 828,  860, 892,
   1574  924, 956,  988, 1020, 29,  61,   93,  125,  157, 189,  221, 253,  285, 317,
   1575  349, 381,  413, 445,  477, 509,  541, 573,  605, 637,  669, 701,  733, 765,
   1576  797, 829,  861, 893,  925, 957,  989, 1021, 30,  62,   94,  126,  158, 190,
   1577  222, 254,  286, 318,  350, 382,  414, 446,  478, 510,  542, 574,  606, 638,
   1578  670, 702,  734, 766,  798, 830,  862, 894,  926, 958,  990, 1022, 31,  63,
   1579  95,  127,  159, 191,  223, 255,  287, 319,  351, 383,  415, 447,  479, 511,
   1580  543, 575,  607, 639,  671, 703,  735, 767,  799, 831,  863, 895,  927, 959,
   1581  991, 1023,
   1582 };
   1583 
   1584 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_32x32[1024]) = {
   1585  0,    2,    3,    9,    10,   20,   21,   35,   36,   54,   55,   77,   78,
   1586  104,  105,  135,  136,  170,  171,  209,  210,  252,  253,  299,  300,  350,
   1587  351,  405,  406,  464,  465,  527,  1,    4,    8,    11,   19,   22,   34,
   1588  37,   53,   56,   76,   79,   103,  106,  134,  137,  169,  172,  208,  211,
   1589  251,  254,  298,  301,  349,  352,  404,  407,  463,  466,  526,  528,  5,
   1590  7,    12,   18,   23,   33,   38,   52,   57,   75,   80,   102,  107,  133,
   1591  138,  168,  173,  207,  212,  250,  255,  297,  302,  348,  353,  403,  408,
   1592  462,  467,  525,  529,  588,  6,    13,   17,   24,   32,   39,   51,   58,
   1593  74,   81,   101,  108,  132,  139,  167,  174,  206,  213,  249,  256,  296,
   1594  303,  347,  354,  402,  409,  461,  468,  524,  530,  587,  589,  14,   16,
   1595  25,   31,   40,   50,   59,   73,   82,   100,  109,  131,  140,  166,  175,
   1596  205,  214,  248,  257,  295,  304,  346,  355,  401,  410,  460,  469,  523,
   1597  531,  586,  590,  645,  15,   26,   30,   41,   49,   60,   72,   83,   99,
   1598  110,  130,  141,  165,  176,  204,  215,  247,  258,  294,  305,  345,  356,
   1599  400,  411,  459,  470,  522,  532,  585,  591,  644,  646,  27,   29,   42,
   1600  48,   61,   71,   84,   98,   111,  129,  142,  164,  177,  203,  216,  246,
   1601  259,  293,  306,  344,  357,  399,  412,  458,  471,  521,  533,  584,  592,
   1602  643,  647,  698,  28,   43,   47,   62,   70,   85,   97,   112,  128,  143,
   1603  163,  178,  202,  217,  245,  260,  292,  307,  343,  358,  398,  413,  457,
   1604  472,  520,  534,  583,  593,  642,  648,  697,  699,  44,   46,   63,   69,
   1605  86,   96,   113,  127,  144,  162,  179,  201,  218,  244,  261,  291,  308,
   1606  342,  359,  397,  414,  456,  473,  519,  535,  582,  594,  641,  649,  696,
   1607  700,  747,  45,   64,   68,   87,   95,   114,  126,  145,  161,  180,  200,
   1608  219,  243,  262,  290,  309,  341,  360,  396,  415,  455,  474,  518,  536,
   1609  581,  595,  640,  650,  695,  701,  746,  748,  65,   67,   88,   94,   115,
   1610  125,  146,  160,  181,  199,  220,  242,  263,  289,  310,  340,  361,  395,
   1611  416,  454,  475,  517,  537,  580,  596,  639,  651,  694,  702,  745,  749,
   1612  792,  66,   89,   93,   116,  124,  147,  159,  182,  198,  221,  241,  264,
   1613  288,  311,  339,  362,  394,  417,  453,  476,  516,  538,  579,  597,  638,
   1614  652,  693,  703,  744,  750,  791,  793,  90,   92,   117,  123,  148,  158,
   1615  183,  197,  222,  240,  265,  287,  312,  338,  363,  393,  418,  452,  477,
   1616  515,  539,  578,  598,  637,  653,  692,  704,  743,  751,  790,  794,  833,
   1617  91,   118,  122,  149,  157,  184,  196,  223,  239,  266,  286,  313,  337,
   1618  364,  392,  419,  451,  478,  514,  540,  577,  599,  636,  654,  691,  705,
   1619  742,  752,  789,  795,  832,  834,  119,  121,  150,  156,  185,  195,  224,
   1620  238,  267,  285,  314,  336,  365,  391,  420,  450,  479,  513,  541,  576,
   1621  600,  635,  655,  690,  706,  741,  753,  788,  796,  831,  835,  870,  120,
   1622  151,  155,  186,  194,  225,  237,  268,  284,  315,  335,  366,  390,  421,
   1623  449,  480,  512,  542,  575,  601,  634,  656,  689,  707,  740,  754,  787,
   1624  797,  830,  836,  869,  871,  152,  154,  187,  193,  226,  236,  269,  283,
   1625  316,  334,  367,  389,  422,  448,  481,  511,  543,  574,  602,  633,  657,
   1626  688,  708,  739,  755,  786,  798,  829,  837,  868,  872,  903,  153,  188,
   1627  192,  227,  235,  270,  282,  317,  333,  368,  388,  423,  447,  482,  510,
   1628  544,  573,  603,  632,  658,  687,  709,  738,  756,  785,  799,  828,  838,
   1629  867,  873,  902,  904,  189,  191,  228,  234,  271,  281,  318,  332,  369,
   1630  387,  424,  446,  483,  509,  545,  572,  604,  631,  659,  686,  710,  737,
   1631  757,  784,  800,  827,  839,  866,  874,  901,  905,  932,  190,  229,  233,
   1632  272,  280,  319,  331,  370,  386,  425,  445,  484,  508,  546,  571,  605,
   1633  630,  660,  685,  711,  736,  758,  783,  801,  826,  840,  865,  875,  900,
   1634  906,  931,  933,  230,  232,  273,  279,  320,  330,  371,  385,  426,  444,
   1635  485,  507,  547,  570,  606,  629,  661,  684,  712,  735,  759,  782,  802,
   1636  825,  841,  864,  876,  899,  907,  930,  934,  957,  231,  274,  278,  321,
   1637  329,  372,  384,  427,  443,  486,  506,  548,  569,  607,  628,  662,  683,
   1638  713,  734,  760,  781,  803,  824,  842,  863,  877,  898,  908,  929,  935,
   1639  956,  958,  275,  277,  322,  328,  373,  383,  428,  442,  487,  505,  549,
   1640  568,  608,  627,  663,  682,  714,  733,  761,  780,  804,  823,  843,  862,
   1641  878,  897,  909,  928,  936,  955,  959,  978,  276,  323,  327,  374,  382,
   1642  429,  441,  488,  504,  550,  567,  609,  626,  664,  681,  715,  732,  762,
   1643  779,  805,  822,  844,  861,  879,  896,  910,  927,  937,  954,  960,  977,
   1644  979,  324,  326,  375,  381,  430,  440,  489,  503,  551,  566,  610,  625,
   1645  665,  680,  716,  731,  763,  778,  806,  821,  845,  860,  880,  895,  911,
   1646  926,  938,  953,  961,  976,  980,  995,  325,  376,  380,  431,  439,  490,
   1647  502,  552,  565,  611,  624,  666,  679,  717,  730,  764,  777,  807,  820,
   1648  846,  859,  881,  894,  912,  925,  939,  952,  962,  975,  981,  994,  996,
   1649  377,  379,  432,  438,  491,  501,  553,  564,  612,  623,  667,  678,  718,
   1650  729,  765,  776,  808,  819,  847,  858,  882,  893,  913,  924,  940,  951,
   1651  963,  974,  982,  993,  997,  1008, 378,  433,  437,  492,  500,  554,  563,
   1652  613,  622,  668,  677,  719,  728,  766,  775,  809,  818,  848,  857,  883,
   1653  892,  914,  923,  941,  950,  964,  973,  983,  992,  998,  1007, 1009, 434,
   1654  436,  493,  499,  555,  562,  614,  621,  669,  676,  720,  727,  767,  774,
   1655  810,  817,  849,  856,  884,  891,  915,  922,  942,  949,  965,  972,  984,
   1656  991,  999,  1006, 1010, 1017, 435,  494,  498,  556,  561,  615,  620,  670,
   1657  675,  721,  726,  768,  773,  811,  816,  850,  855,  885,  890,  916,  921,
   1658  943,  948,  966,  971,  985,  990,  1000, 1005, 1011, 1016, 1018, 495,  497,
   1659  557,  560,  616,  619,  671,  674,  722,  725,  769,  772,  812,  815,  851,
   1660  854,  886,  889,  917,  920,  944,  947,  967,  970,  986,  989,  1001, 1004,
   1661  1012, 1015, 1019, 1022, 496,  558,  559,  617,  618,  672,  673,  723,  724,
   1662  770,  771,  813,  814,  852,  853,  887,  888,  918,  919,  945,  946,  968,
   1663  969,  987,  988,  1002, 1003, 1013, 1014, 1020, 1021, 1023,
   1664 };
   1665 
   1666 const SCAN_ORDER av1_scan_orders[TX_SIZES_ALL][TX_TYPES] = {
   1667  {
   1668      // TX_4X4
   1669      { default_scan_4x4, av1_default_iscan_4x4 },
   1670      { default_scan_4x4, av1_default_iscan_4x4 },
   1671      { default_scan_4x4, av1_default_iscan_4x4 },
   1672      { default_scan_4x4, av1_default_iscan_4x4 },
   1673      { default_scan_4x4, av1_default_iscan_4x4 },
   1674      { default_scan_4x4, av1_default_iscan_4x4 },
   1675      { default_scan_4x4, av1_default_iscan_4x4 },
   1676      { default_scan_4x4, av1_default_iscan_4x4 },
   1677      { default_scan_4x4, av1_default_iscan_4x4 },
   1678      { default_scan_4x4, av1_default_iscan_4x4 },
   1679      { mrow_scan_4x4, av1_mrow_iscan_4x4 },
   1680      { mcol_scan_4x4, av1_mcol_iscan_4x4 },
   1681      { mrow_scan_4x4, av1_mrow_iscan_4x4 },
   1682      { mcol_scan_4x4, av1_mcol_iscan_4x4 },
   1683      { mrow_scan_4x4, av1_mrow_iscan_4x4 },
   1684      { mcol_scan_4x4, av1_mcol_iscan_4x4 },
   1685  },
   1686  {
   1687      // TX_8X8
   1688      { default_scan_8x8, av1_default_iscan_8x8 },
   1689      { default_scan_8x8, av1_default_iscan_8x8 },
   1690      { default_scan_8x8, av1_default_iscan_8x8 },
   1691      { default_scan_8x8, av1_default_iscan_8x8 },
   1692      { default_scan_8x8, av1_default_iscan_8x8 },
   1693      { default_scan_8x8, av1_default_iscan_8x8 },
   1694      { default_scan_8x8, av1_default_iscan_8x8 },
   1695      { default_scan_8x8, av1_default_iscan_8x8 },
   1696      { default_scan_8x8, av1_default_iscan_8x8 },
   1697      { default_scan_8x8, av1_default_iscan_8x8 },
   1698      { mrow_scan_8x8, av1_mrow_iscan_8x8 },
   1699      { mcol_scan_8x8, av1_mcol_iscan_8x8 },
   1700      { mrow_scan_8x8, av1_mrow_iscan_8x8 },
   1701      { mcol_scan_8x8, av1_mcol_iscan_8x8 },
   1702      { mrow_scan_8x8, av1_mrow_iscan_8x8 },
   1703      { mcol_scan_8x8, av1_mcol_iscan_8x8 },
   1704  },
   1705  {
   1706      // TX_16X16
   1707      { default_scan_16x16, av1_default_iscan_16x16 },
   1708      { default_scan_16x16, av1_default_iscan_16x16 },
   1709      { default_scan_16x16, av1_default_iscan_16x16 },
   1710      { default_scan_16x16, av1_default_iscan_16x16 },
   1711      { default_scan_16x16, av1_default_iscan_16x16 },
   1712      { default_scan_16x16, av1_default_iscan_16x16 },
   1713      { default_scan_16x16, av1_default_iscan_16x16 },
   1714      { default_scan_16x16, av1_default_iscan_16x16 },
   1715      { default_scan_16x16, av1_default_iscan_16x16 },
   1716      { default_scan_16x16, av1_default_iscan_16x16 },
   1717      { mrow_scan_16x16, av1_mrow_iscan_16x16 },
   1718      { mcol_scan_16x16, av1_mcol_iscan_16x16 },
   1719      { mrow_scan_16x16, av1_mrow_iscan_16x16 },
   1720      { mcol_scan_16x16, av1_mcol_iscan_16x16 },
   1721      { mrow_scan_16x16, av1_mrow_iscan_16x16 },
   1722      { mcol_scan_16x16, av1_mcol_iscan_16x16 },
   1723  },
   1724  {
   1725      // TX_32X32
   1726      { default_scan_32x32, av1_default_iscan_32x32 },
   1727      { default_scan_32x32, av1_default_iscan_32x32 },
   1728      { default_scan_32x32, av1_default_iscan_32x32 },
   1729      { default_scan_32x32, av1_default_iscan_32x32 },
   1730      { default_scan_32x32, av1_default_iscan_32x32 },
   1731      { default_scan_32x32, av1_default_iscan_32x32 },
   1732      { default_scan_32x32, av1_default_iscan_32x32 },
   1733      { default_scan_32x32, av1_default_iscan_32x32 },
   1734      { default_scan_32x32, av1_default_iscan_32x32 },
   1735      { default_scan_32x32, av1_default_iscan_32x32 },
   1736      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1737      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1738      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1739      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1740      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1741      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1742  },
   1743  {
   1744      // TX_64X64
   1745      // Half of the coefficients of tx64 at higher frequencies are set to
   1746      // zeros. So tx32's scan order is used.
   1747      { default_scan_32x32, av1_default_iscan_32x32 },
   1748      { default_scan_32x32, av1_default_iscan_32x32 },
   1749      { default_scan_32x32, av1_default_iscan_32x32 },
   1750      { default_scan_32x32, av1_default_iscan_32x32 },
   1751      { default_scan_32x32, av1_default_iscan_32x32 },
   1752      { default_scan_32x32, av1_default_iscan_32x32 },
   1753      { default_scan_32x32, av1_default_iscan_32x32 },
   1754      { default_scan_32x32, av1_default_iscan_32x32 },
   1755      { default_scan_32x32, av1_default_iscan_32x32 },
   1756      { default_scan_32x32, av1_default_iscan_32x32 },
   1757      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1758      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1759      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1760      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1761      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1762      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1763  },
   1764  {
   1765      // TX_4X8
   1766      { default_scan_4x8, av1_default_iscan_4x8 },
   1767      { default_scan_4x8, av1_default_iscan_4x8 },
   1768      { default_scan_4x8, av1_default_iscan_4x8 },
   1769      { default_scan_4x8, av1_default_iscan_4x8 },
   1770      { default_scan_4x8, av1_default_iscan_4x8 },
   1771      { default_scan_4x8, av1_default_iscan_4x8 },
   1772      { default_scan_4x8, av1_default_iscan_4x8 },
   1773      { default_scan_4x8, av1_default_iscan_4x8 },
   1774      { default_scan_4x8, av1_default_iscan_4x8 },
   1775      { default_scan_4x8, av1_default_iscan_4x8 },
   1776      { mrow_scan_4x8, av1_mrow_iscan_4x8 },
   1777      { mcol_scan_4x8, av1_mcol_iscan_4x8 },
   1778      { mrow_scan_4x8, av1_mrow_iscan_4x8 },
   1779      { mcol_scan_4x8, av1_mcol_iscan_4x8 },
   1780      { mrow_scan_4x8, av1_mrow_iscan_4x8 },
   1781      { mcol_scan_4x8, av1_mcol_iscan_4x8 },
   1782  },
   1783  {
   1784      // TX_8X4
   1785      { default_scan_8x4, av1_default_iscan_8x4 },
   1786      { default_scan_8x4, av1_default_iscan_8x4 },
   1787      { default_scan_8x4, av1_default_iscan_8x4 },
   1788      { default_scan_8x4, av1_default_iscan_8x4 },
   1789      { default_scan_8x4, av1_default_iscan_8x4 },
   1790      { default_scan_8x4, av1_default_iscan_8x4 },
   1791      { default_scan_8x4, av1_default_iscan_8x4 },
   1792      { default_scan_8x4, av1_default_iscan_8x4 },
   1793      { default_scan_8x4, av1_default_iscan_8x4 },
   1794      { default_scan_8x4, av1_default_iscan_8x4 },
   1795      { mrow_scan_8x4, av1_mrow_iscan_8x4 },
   1796      { mcol_scan_8x4, av1_mcol_iscan_8x4 },
   1797      { mrow_scan_8x4, av1_mrow_iscan_8x4 },
   1798      { mcol_scan_8x4, av1_mcol_iscan_8x4 },
   1799      { mrow_scan_8x4, av1_mrow_iscan_8x4 },
   1800      { mcol_scan_8x4, av1_mcol_iscan_8x4 },
   1801  },
   1802  {
   1803      // TX_8X16
   1804      { default_scan_8x16, av1_default_iscan_8x16 },
   1805      { default_scan_8x16, av1_default_iscan_8x16 },
   1806      { default_scan_8x16, av1_default_iscan_8x16 },
   1807      { default_scan_8x16, av1_default_iscan_8x16 },
   1808      { default_scan_8x16, av1_default_iscan_8x16 },
   1809      { default_scan_8x16, av1_default_iscan_8x16 },
   1810      { default_scan_8x16, av1_default_iscan_8x16 },
   1811      { default_scan_8x16, av1_default_iscan_8x16 },
   1812      { default_scan_8x16, av1_default_iscan_8x16 },
   1813      { default_scan_8x16, av1_default_iscan_8x16 },
   1814      { mrow_scan_8x16, av1_mrow_iscan_8x16 },
   1815      { mcol_scan_8x16, av1_mcol_iscan_8x16 },
   1816      { mrow_scan_8x16, av1_mrow_iscan_8x16 },
   1817      { mcol_scan_8x16, av1_mcol_iscan_8x16 },
   1818      { mrow_scan_8x16, av1_mrow_iscan_8x16 },
   1819      { mcol_scan_8x16, av1_mcol_iscan_8x16 },
   1820  },
   1821  {
   1822      // TX_16X8
   1823      { default_scan_16x8, av1_default_iscan_16x8 },
   1824      { default_scan_16x8, av1_default_iscan_16x8 },
   1825      { default_scan_16x8, av1_default_iscan_16x8 },
   1826      { default_scan_16x8, av1_default_iscan_16x8 },
   1827      { default_scan_16x8, av1_default_iscan_16x8 },
   1828      { default_scan_16x8, av1_default_iscan_16x8 },
   1829      { default_scan_16x8, av1_default_iscan_16x8 },
   1830      { default_scan_16x8, av1_default_iscan_16x8 },
   1831      { default_scan_16x8, av1_default_iscan_16x8 },
   1832      { default_scan_16x8, av1_default_iscan_16x8 },
   1833      { mrow_scan_16x8, av1_mrow_iscan_16x8 },
   1834      { mcol_scan_16x8, av1_mcol_iscan_16x8 },
   1835      { mrow_scan_16x8, av1_mrow_iscan_16x8 },
   1836      { mcol_scan_16x8, av1_mcol_iscan_16x8 },
   1837      { mrow_scan_16x8, av1_mrow_iscan_16x8 },
   1838      { mcol_scan_16x8, av1_mcol_iscan_16x8 },
   1839  },
   1840  {
   1841      // TX_16X32
   1842      { default_scan_16x32, av1_default_iscan_16x32 },
   1843      { default_scan_16x32, av1_default_iscan_16x32 },
   1844      { default_scan_16x32, av1_default_iscan_16x32 },
   1845      { default_scan_16x32, av1_default_iscan_16x32 },
   1846      { default_scan_16x32, av1_default_iscan_16x32 },
   1847      { default_scan_16x32, av1_default_iscan_16x32 },
   1848      { default_scan_16x32, av1_default_iscan_16x32 },
   1849      { default_scan_16x32, av1_default_iscan_16x32 },
   1850      { default_scan_16x32, av1_default_iscan_16x32 },
   1851      { default_scan_16x32, av1_default_iscan_16x32 },
   1852      { mrow_scan_16x32, av1_mrow_iscan_16x32 },
   1853      { mcol_scan_16x32, av1_mcol_iscan_16x32 },
   1854      { mrow_scan_16x32, av1_mrow_iscan_16x32 },
   1855      { mcol_scan_16x32, av1_mcol_iscan_16x32 },
   1856      { mrow_scan_16x32, av1_mrow_iscan_16x32 },
   1857      { mcol_scan_16x32, av1_mcol_iscan_16x32 },
   1858  },
   1859  {
   1860      // TX_32X16
   1861      { default_scan_32x16, av1_default_iscan_32x16 },
   1862      { default_scan_32x16, av1_default_iscan_32x16 },
   1863      { default_scan_32x16, av1_default_iscan_32x16 },
   1864      { default_scan_32x16, av1_default_iscan_32x16 },
   1865      { default_scan_32x16, av1_default_iscan_32x16 },
   1866      { default_scan_32x16, av1_default_iscan_32x16 },
   1867      { default_scan_32x16, av1_default_iscan_32x16 },
   1868      { default_scan_32x16, av1_default_iscan_32x16 },
   1869      { default_scan_32x16, av1_default_iscan_32x16 },
   1870      { default_scan_32x16, av1_default_iscan_32x16 },
   1871      { mrow_scan_32x16, av1_mrow_iscan_32x16 },
   1872      { mcol_scan_32x16, av1_mcol_iscan_32x16 },
   1873      { mrow_scan_32x16, av1_mrow_iscan_32x16 },
   1874      { mcol_scan_32x16, av1_mcol_iscan_32x16 },
   1875      { mrow_scan_32x16, av1_mrow_iscan_32x16 },
   1876      { mcol_scan_32x16, av1_mcol_iscan_32x16 },
   1877  },
   1878  {
   1879      // TX_32X64
   1880      // Half of the coefficients of tx64 at higher frequencies are set to
   1881      // zeros. So tx32's scan order is used.
   1882      { default_scan_32x32, av1_default_iscan_32x32 },
   1883      { default_scan_32x32, av1_default_iscan_32x32 },
   1884      { default_scan_32x32, av1_default_iscan_32x32 },
   1885      { default_scan_32x32, av1_default_iscan_32x32 },
   1886      { default_scan_32x32, av1_default_iscan_32x32 },
   1887      { default_scan_32x32, av1_default_iscan_32x32 },
   1888      { default_scan_32x32, av1_default_iscan_32x32 },
   1889      { default_scan_32x32, av1_default_iscan_32x32 },
   1890      { default_scan_32x32, av1_default_iscan_32x32 },
   1891      { default_scan_32x32, av1_default_iscan_32x32 },
   1892      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1893      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1894      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1895      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1896      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1897      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1898  },
   1899  {
   1900      // TX_64X32
   1901      // Half of the coefficients of tx64 at higher frequencies are set to
   1902      // zeros. So tx32's scan order is used.
   1903      { default_scan_32x32, av1_default_iscan_32x32 },
   1904      { default_scan_32x32, av1_default_iscan_32x32 },
   1905      { default_scan_32x32, av1_default_iscan_32x32 },
   1906      { default_scan_32x32, av1_default_iscan_32x32 },
   1907      { default_scan_32x32, av1_default_iscan_32x32 },
   1908      { default_scan_32x32, av1_default_iscan_32x32 },
   1909      { default_scan_32x32, av1_default_iscan_32x32 },
   1910      { default_scan_32x32, av1_default_iscan_32x32 },
   1911      { default_scan_32x32, av1_default_iscan_32x32 },
   1912      { default_scan_32x32, av1_default_iscan_32x32 },
   1913      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1914      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1915      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1916      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1917      { mrow_scan_32x32, av1_mrow_iscan_32x32 },
   1918      { mcol_scan_32x32, av1_mcol_iscan_32x32 },
   1919  },
   1920  {
   1921      // TX_4X16
   1922      { default_scan_4x16, av1_default_iscan_4x16 },
   1923      { default_scan_4x16, av1_default_iscan_4x16 },
   1924      { default_scan_4x16, av1_default_iscan_4x16 },
   1925      { default_scan_4x16, av1_default_iscan_4x16 },
   1926      { default_scan_4x16, av1_default_iscan_4x16 },
   1927      { default_scan_4x16, av1_default_iscan_4x16 },
   1928      { default_scan_4x16, av1_default_iscan_4x16 },
   1929      { default_scan_4x16, av1_default_iscan_4x16 },
   1930      { default_scan_4x16, av1_default_iscan_4x16 },
   1931      { default_scan_4x16, av1_default_iscan_4x16 },
   1932      { mrow_scan_4x16, av1_mrow_iscan_4x16 },
   1933      { mcol_scan_4x16, av1_mcol_iscan_4x16 },
   1934      { mrow_scan_4x16, av1_mrow_iscan_4x16 },
   1935      { mcol_scan_4x16, av1_mcol_iscan_4x16 },
   1936      { mrow_scan_4x16, av1_mrow_iscan_4x16 },
   1937      { mcol_scan_4x16, av1_mcol_iscan_4x16 },
   1938  },
   1939  {
   1940      // TX_16X4
   1941      { default_scan_16x4, av1_default_iscan_16x4 },
   1942      { default_scan_16x4, av1_default_iscan_16x4 },
   1943      { default_scan_16x4, av1_default_iscan_16x4 },
   1944      { default_scan_16x4, av1_default_iscan_16x4 },
   1945      { default_scan_16x4, av1_default_iscan_16x4 },
   1946      { default_scan_16x4, av1_default_iscan_16x4 },
   1947      { default_scan_16x4, av1_default_iscan_16x4 },
   1948      { default_scan_16x4, av1_default_iscan_16x4 },
   1949      { default_scan_16x4, av1_default_iscan_16x4 },
   1950      { default_scan_16x4, av1_default_iscan_16x4 },
   1951      { mrow_scan_16x4, av1_mrow_iscan_16x4 },
   1952      { mcol_scan_16x4, av1_mcol_iscan_16x4 },
   1953      { mrow_scan_16x4, av1_mrow_iscan_16x4 },
   1954      { mcol_scan_16x4, av1_mcol_iscan_16x4 },
   1955      { mrow_scan_16x4, av1_mrow_iscan_16x4 },
   1956      { mcol_scan_16x4, av1_mcol_iscan_16x4 },
   1957  },
   1958  {
   1959      // TX_8X32
   1960      { default_scan_8x32, av1_default_iscan_8x32 },
   1961      { default_scan_8x32, av1_default_iscan_8x32 },
   1962      { default_scan_8x32, av1_default_iscan_8x32 },
   1963      { default_scan_8x32, av1_default_iscan_8x32 },
   1964      { default_scan_8x32, av1_default_iscan_8x32 },
   1965      { default_scan_8x32, av1_default_iscan_8x32 },
   1966      { default_scan_8x32, av1_default_iscan_8x32 },
   1967      { default_scan_8x32, av1_default_iscan_8x32 },
   1968      { default_scan_8x32, av1_default_iscan_8x32 },
   1969      { default_scan_8x32, av1_default_iscan_8x32 },
   1970      { mrow_scan_8x32, av1_mrow_iscan_8x32 },
   1971      { mcol_scan_8x32, av1_mcol_iscan_8x32 },
   1972      { mrow_scan_8x32, av1_mrow_iscan_8x32 },
   1973      { mcol_scan_8x32, av1_mcol_iscan_8x32 },
   1974      { mrow_scan_8x32, av1_mrow_iscan_8x32 },
   1975      { mcol_scan_8x32, av1_mcol_iscan_8x32 },
   1976  },
   1977  {
   1978      // TX_32X8
   1979      { default_scan_32x8, av1_default_iscan_32x8 },
   1980      { default_scan_32x8, av1_default_iscan_32x8 },
   1981      { default_scan_32x8, av1_default_iscan_32x8 },
   1982      { default_scan_32x8, av1_default_iscan_32x8 },
   1983      { default_scan_32x8, av1_default_iscan_32x8 },
   1984      { default_scan_32x8, av1_default_iscan_32x8 },
   1985      { default_scan_32x8, av1_default_iscan_32x8 },
   1986      { default_scan_32x8, av1_default_iscan_32x8 },
   1987      { default_scan_32x8, av1_default_iscan_32x8 },
   1988      { default_scan_32x8, av1_default_iscan_32x8 },
   1989      { mrow_scan_32x8, av1_mrow_iscan_32x8 },
   1990      { mcol_scan_32x8, av1_mcol_iscan_32x8 },
   1991      { mrow_scan_32x8, av1_mrow_iscan_32x8 },
   1992      { mcol_scan_32x8, av1_mcol_iscan_32x8 },
   1993      { mrow_scan_32x8, av1_mrow_iscan_32x8 },
   1994      { mcol_scan_32x8, av1_mcol_iscan_32x8 },
   1995  },
   1996  {
   1997      // TX_16X64
   1998      // Half of the coefficients of tx64 at higher frequencies are set to
   1999      // zeros. So tx32's scan order is used.
   2000      { default_scan_16x32, av1_default_iscan_16x32 },
   2001      { default_scan_16x32, av1_default_iscan_16x32 },
   2002      { default_scan_16x32, av1_default_iscan_16x32 },
   2003      { default_scan_16x32, av1_default_iscan_16x32 },
   2004      { default_scan_16x32, av1_default_iscan_16x32 },
   2005      { default_scan_16x32, av1_default_iscan_16x32 },
   2006      { default_scan_16x32, av1_default_iscan_16x32 },
   2007      { default_scan_16x32, av1_default_iscan_16x32 },
   2008      { default_scan_16x32, av1_default_iscan_16x32 },
   2009      { default_scan_16x32, av1_default_iscan_16x32 },
   2010      { mrow_scan_16x32, av1_mrow_iscan_16x32 },
   2011      { mcol_scan_16x32, av1_mcol_iscan_16x32 },
   2012      { mrow_scan_16x32, av1_mrow_iscan_16x32 },
   2013      { mcol_scan_16x32, av1_mcol_iscan_16x32 },
   2014      { mrow_scan_16x32, av1_mrow_iscan_16x32 },
   2015      { mcol_scan_16x32, av1_mcol_iscan_16x32 },
   2016  },
   2017  {
   2018      // TX_64X16
   2019      // Half of the coefficients of tx64 at higher frequencies are set to
   2020      // zeros. So tx32's scan order is used.
   2021      { default_scan_32x16, av1_default_iscan_32x16 },
   2022      { default_scan_32x16, av1_default_iscan_32x16 },
   2023      { default_scan_32x16, av1_default_iscan_32x16 },
   2024      { default_scan_32x16, av1_default_iscan_32x16 },
   2025      { default_scan_32x16, av1_default_iscan_32x16 },
   2026      { default_scan_32x16, av1_default_iscan_32x16 },
   2027      { default_scan_32x16, av1_default_iscan_32x16 },
   2028      { default_scan_32x16, av1_default_iscan_32x16 },
   2029      { default_scan_32x16, av1_default_iscan_32x16 },
   2030      { default_scan_32x16, av1_default_iscan_32x16 },
   2031      { mrow_scan_32x16, av1_mrow_iscan_32x16 },
   2032      { mcol_scan_32x16, av1_mcol_iscan_32x16 },
   2033      { mrow_scan_32x16, av1_mrow_iscan_32x16 },
   2034      { mcol_scan_32x16, av1_mcol_iscan_32x16 },
   2035      { mrow_scan_32x16, av1_mrow_iscan_32x16 },
   2036      { mcol_scan_32x16, av1_mcol_iscan_32x16 },
   2037  },
   2038 };