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, 18 default_scan_4x4[16]) = { 0, 1, 4, 8, 5, 2, 3, 6, 19 9, 12, 13, 10, 7, 11, 14, 15 }; 20 21 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_4x4[16]) = { 22 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 23 }; 24 25 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_4x4[16]) = { 26 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 27 }; 28 29 DECLARE_ALIGNED(16, static const int16_t, default_scan_4x8[32]) = { 30 0, 1, 4, 2, 5, 8, 3, 6, 9, 12, 7, 10, 13, 16, 11, 14, 31 17, 20, 15, 18, 21, 24, 19, 22, 25, 28, 23, 26, 29, 27, 30, 31, 32 }; 33 34 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_4x8[32]) = { 35 0, 4, 8, 12, 16, 20, 24, 28, 1, 5, 9, 13, 17, 21, 25, 29, 36 2, 6, 10, 14, 18, 22, 26, 30, 3, 7, 11, 15, 19, 23, 27, 31, 37 }; 38 39 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_4x8[32]) = { 40 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 41 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 42 }; 43 44 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x4[32]) = { 45 0, 8, 1, 16, 9, 2, 24, 17, 10, 3, 25, 18, 11, 4, 26, 19, 46 12, 5, 27, 20, 13, 6, 28, 21, 14, 7, 29, 22, 15, 30, 23, 31, 47 }; 48 49 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x4[32]) = { 50 0, 8, 16, 24, 1, 9, 17, 25, 2, 10, 18, 26, 3, 11, 19, 27, 51 4, 12, 20, 28, 5, 13, 21, 29, 6, 14, 22, 30, 7, 15, 23, 31, 52 }; 53 54 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x4[32]) = { 55 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 56 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 57 }; 58 59 DECLARE_ALIGNED(16, static const int16_t, default_scan_4x16[64]) = { 60 0, 1, 4, 2, 5, 8, 3, 6, 9, 12, 7, 10, 13, 16, 11, 14, 61 17, 20, 15, 18, 21, 24, 19, 22, 25, 28, 23, 26, 29, 32, 27, 30, 62 33, 36, 31, 34, 37, 40, 35, 38, 41, 44, 39, 42, 45, 48, 43, 46, 63 49, 52, 47, 50, 53, 56, 51, 54, 57, 60, 55, 58, 61, 59, 62, 63, 64 }; 65 66 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x4[64]) = { 67 0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 49, 34, 19, 4, 50, 35, 68 20, 5, 51, 36, 21, 6, 52, 37, 22, 7, 53, 38, 23, 8, 54, 39, 69 24, 9, 55, 40, 25, 10, 56, 41, 26, 11, 57, 42, 27, 12, 58, 43, 70 28, 13, 59, 44, 29, 14, 60, 45, 30, 15, 61, 46, 31, 62, 47, 63, 71 }; 72 73 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_4x16[64]) = { 74 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 75 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 76 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 77 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 78 }; 79 80 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x4[64]) = { 81 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 82 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 83 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 84 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 85 }; 86 87 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_4x16[64]) = { 88 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 89 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 90 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 91 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, 92 }; 93 94 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x4[64]) = { 95 0, 16, 32, 48, 1, 17, 33, 49, 2, 18, 34, 50, 3, 19, 35, 51, 96 4, 20, 36, 52, 5, 21, 37, 53, 6, 22, 38, 54, 7, 23, 39, 55, 97 8, 24, 40, 56, 9, 25, 41, 57, 10, 26, 42, 58, 11, 27, 43, 59, 98 12, 28, 44, 60, 13, 29, 45, 61, 14, 30, 46, 62, 15, 31, 47, 63, 99 }; 100 101 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x32[256]) = { 102 0, 1, 8, 2, 9, 16, 3, 10, 17, 24, 4, 11, 18, 25, 32, 103 5, 12, 19, 26, 33, 40, 6, 13, 20, 27, 34, 41, 48, 7, 14, 104 21, 28, 35, 42, 49, 56, 15, 22, 29, 36, 43, 50, 57, 64, 23, 105 30, 37, 44, 51, 58, 65, 72, 31, 38, 45, 52, 59, 66, 73, 80, 106 39, 46, 53, 60, 67, 74, 81, 88, 47, 54, 61, 68, 75, 82, 89, 107 96, 55, 62, 69, 76, 83, 90, 97, 104, 63, 70, 77, 84, 91, 98, 108 105, 112, 71, 78, 85, 92, 99, 106, 113, 120, 79, 86, 93, 100, 107, 109 114, 121, 128, 87, 94, 101, 108, 115, 122, 129, 136, 95, 102, 109, 116, 110 123, 130, 137, 144, 103, 110, 117, 124, 131, 138, 145, 152, 111, 118, 125, 111 132, 139, 146, 153, 160, 119, 126, 133, 140, 147, 154, 161, 168, 127, 134, 112 141, 148, 155, 162, 169, 176, 135, 142, 149, 156, 163, 170, 177, 184, 143, 113 150, 157, 164, 171, 178, 185, 192, 151, 158, 165, 172, 179, 186, 193, 200, 114 159, 166, 173, 180, 187, 194, 201, 208, 167, 174, 181, 188, 195, 202, 209, 115 216, 175, 182, 189, 196, 203, 210, 217, 224, 183, 190, 197, 204, 211, 218, 116 225, 232, 191, 198, 205, 212, 219, 226, 233, 240, 199, 206, 213, 220, 227, 117 234, 241, 248, 207, 214, 221, 228, 235, 242, 249, 215, 222, 229, 236, 243, 118 250, 223, 230, 237, 244, 251, 231, 238, 245, 252, 239, 246, 253, 247, 254, 119 255, 120 }; 121 122 DECLARE_ALIGNED(16, static const int16_t, default_scan_32x8[256]) = { 123 0, 32, 1, 64, 33, 2, 96, 65, 34, 3, 128, 97, 66, 35, 4, 124 160, 129, 98, 67, 36, 5, 192, 161, 130, 99, 68, 37, 6, 224, 193, 125 162, 131, 100, 69, 38, 7, 225, 194, 163, 132, 101, 70, 39, 8, 226, 126 195, 164, 133, 102, 71, 40, 9, 227, 196, 165, 134, 103, 72, 41, 10, 127 228, 197, 166, 135, 104, 73, 42, 11, 229, 198, 167, 136, 105, 74, 43, 128 12, 230, 199, 168, 137, 106, 75, 44, 13, 231, 200, 169, 138, 107, 76, 129 45, 14, 232, 201, 170, 139, 108, 77, 46, 15, 233, 202, 171, 140, 109, 130 78, 47, 16, 234, 203, 172, 141, 110, 79, 48, 17, 235, 204, 173, 142, 131 111, 80, 49, 18, 236, 205, 174, 143, 112, 81, 50, 19, 237, 206, 175, 132 144, 113, 82, 51, 20, 238, 207, 176, 145, 114, 83, 52, 21, 239, 208, 133 177, 146, 115, 84, 53, 22, 240, 209, 178, 147, 116, 85, 54, 23, 241, 134 210, 179, 148, 117, 86, 55, 24, 242, 211, 180, 149, 118, 87, 56, 25, 135 243, 212, 181, 150, 119, 88, 57, 26, 244, 213, 182, 151, 120, 89, 58, 136 27, 245, 214, 183, 152, 121, 90, 59, 28, 246, 215, 184, 153, 122, 91, 137 60, 29, 247, 216, 185, 154, 123, 92, 61, 30, 248, 217, 186, 155, 124, 138 93, 62, 31, 249, 218, 187, 156, 125, 94, 63, 250, 219, 188, 157, 126, 139 95, 251, 220, 189, 158, 127, 252, 221, 190, 159, 253, 222, 191, 254, 223, 140 255, 141 }; 142 143 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x32[256]) = { 144 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 145 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 146 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 147 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 148 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 149 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 150 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 151 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 152 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 153 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 154 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 155 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 156 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 157 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 158 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 159 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 160 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 161 255, 162 }; 163 164 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x8[256]) = { 165 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 166 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 167 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 168 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 169 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 170 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 171 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 172 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 173 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 174 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 175 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 176 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 177 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 178 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 179 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 180 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 181 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 182 255, 183 }; 184 185 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x32[256]) = { 186 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 187 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 188 240, 248, 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 189 105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217, 190 225, 233, 241, 249, 2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 191 90, 98, 106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202, 192 210, 218, 226, 234, 242, 250, 3, 11, 19, 27, 35, 43, 51, 59, 67, 193 75, 83, 91, 99, 107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187, 194 195, 203, 211, 219, 227, 235, 243, 251, 4, 12, 20, 28, 36, 44, 52, 195 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148, 156, 164, 172, 196 180, 188, 196, 204, 212, 220, 228, 236, 244, 252, 5, 13, 21, 29, 37, 197 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, 141, 149, 157, 198 165, 173, 181, 189, 197, 205, 213, 221, 229, 237, 245, 253, 6, 14, 22, 199 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126, 134, 142, 200 150, 158, 166, 174, 182, 190, 198, 206, 214, 222, 230, 238, 246, 254, 7, 201 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127, 202 135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247, 203 255, 204 }; 205 206 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x8[256]) = { 207 0, 32, 64, 96, 128, 160, 192, 224, 1, 33, 65, 97, 129, 161, 193, 225, 208 2, 34, 66, 98, 130, 162, 194, 226, 3, 35, 67, 99, 131, 163, 195, 227, 209 4, 36, 68, 100, 132, 164, 196, 228, 5, 37, 69, 101, 133, 165, 197, 229, 210 6, 38, 70, 102, 134, 166, 198, 230, 7, 39, 71, 103, 135, 167, 199, 231, 211 8, 40, 72, 104, 136, 168, 200, 232, 9, 41, 73, 105, 137, 169, 201, 233, 212 10, 42, 74, 106, 138, 170, 202, 234, 11, 43, 75, 107, 139, 171, 203, 235, 213 12, 44, 76, 108, 140, 172, 204, 236, 13, 45, 77, 109, 141, 173, 205, 237, 214 14, 46, 78, 110, 142, 174, 206, 238, 15, 47, 79, 111, 143, 175, 207, 239, 215 16, 48, 80, 112, 144, 176, 208, 240, 17, 49, 81, 113, 145, 177, 209, 241, 216 18, 50, 82, 114, 146, 178, 210, 242, 19, 51, 83, 115, 147, 179, 211, 243, 217 20, 52, 84, 116, 148, 180, 212, 244, 21, 53, 85, 117, 149, 181, 213, 245, 218 22, 54, 86, 118, 150, 182, 214, 246, 23, 55, 87, 119, 151, 183, 215, 247, 219 24, 56, 88, 120, 152, 184, 216, 248, 25, 57, 89, 121, 153, 185, 217, 249, 220 26, 58, 90, 122, 154, 186, 218, 250, 27, 59, 91, 123, 155, 187, 219, 251, 221 28, 60, 92, 124, 156, 188, 220, 252, 29, 61, 93, 125, 157, 189, 221, 253, 222 30, 62, 94, 126, 158, 190, 222, 254, 31, 63, 95, 127, 159, 191, 223, 255, 223 }; 224 225 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x8[64]) = { 226 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 227 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 228 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 229 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 230 }; 231 232 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x8[64]) = { 233 0, 8, 16, 24, 32, 40, 48, 56, 1, 9, 17, 25, 33, 41, 49, 57, 234 2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59, 235 4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61, 236 6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63, 237 }; 238 239 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x8[64]) = { 240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 241 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 242 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 243 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 244 }; 245 246 DECLARE_ALIGNED(16, static const int16_t, default_scan_8x16[128]) = { 247 0, 1, 8, 2, 9, 16, 3, 10, 17, 24, 4, 11, 18, 25, 32, 248 5, 12, 19, 26, 33, 40, 6, 13, 20, 27, 34, 41, 48, 7, 14, 249 21, 28, 35, 42, 49, 56, 15, 22, 29, 36, 43, 50, 57, 64, 23, 250 30, 37, 44, 51, 58, 65, 72, 31, 38, 45, 52, 59, 66, 73, 80, 251 39, 46, 53, 60, 67, 74, 81, 88, 47, 54, 61, 68, 75, 82, 89, 252 96, 55, 62, 69, 76, 83, 90, 97, 104, 63, 70, 77, 84, 91, 98, 253 105, 112, 71, 78, 85, 92, 99, 106, 113, 120, 79, 86, 93, 100, 107, 254 114, 121, 87, 94, 101, 108, 115, 122, 95, 102, 109, 116, 123, 103, 110, 255 117, 124, 111, 118, 125, 119, 126, 127, 256 }; 257 258 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x8[128]) = { 259 0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 64, 49, 34, 19, 4, 80, 260 65, 50, 35, 20, 5, 96, 81, 66, 51, 36, 21, 6, 112, 97, 82, 67, 261 52, 37, 22, 7, 113, 98, 83, 68, 53, 38, 23, 8, 114, 99, 84, 69, 262 54, 39, 24, 9, 115, 100, 85, 70, 55, 40, 25, 10, 116, 101, 86, 71, 263 56, 41, 26, 11, 117, 102, 87, 72, 57, 42, 27, 12, 118, 103, 88, 73, 264 58, 43, 28, 13, 119, 104, 89, 74, 59, 44, 29, 14, 120, 105, 90, 75, 265 60, 45, 30, 15, 121, 106, 91, 76, 61, 46, 31, 122, 107, 92, 77, 62, 266 47, 123, 108, 93, 78, 63, 124, 109, 94, 79, 125, 110, 95, 126, 111, 127, 267 }; 268 269 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x16[128]) = { 270 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 271 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121, 272 2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122, 273 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115, 123, 274 4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 275 5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 276 6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126, 277 7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127, 278 }; 279 280 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x8[128]) = { 281 0, 16, 32, 48, 64, 80, 96, 112, 1, 17, 33, 49, 65, 81, 97, 113, 282 2, 18, 34, 50, 66, 82, 98, 114, 3, 19, 35, 51, 67, 83, 99, 115, 283 4, 20, 36, 52, 68, 84, 100, 116, 5, 21, 37, 53, 69, 85, 101, 117, 284 6, 22, 38, 54, 70, 86, 102, 118, 7, 23, 39, 55, 71, 87, 103, 119, 285 8, 24, 40, 56, 72, 88, 104, 120, 9, 25, 41, 57, 73, 89, 105, 121, 286 10, 26, 42, 58, 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123, 287 12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61, 77, 93, 109, 125, 288 14, 30, 46, 62, 78, 94, 110, 126, 15, 31, 47, 63, 79, 95, 111, 127, 289 }; 290 291 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x16[128]) = { 292 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 293 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 294 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 295 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 296 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 297 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 298 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 299 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 300 120, 121, 122, 123, 124, 125, 126, 127, 301 }; 302 303 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x8[128]) = { 304 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 305 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 306 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 307 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 308 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 309 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 310 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 311 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 312 120, 121, 122, 123, 124, 125, 126, 127, 313 }; 314 315 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x32[512]) = { 316 0, 1, 16, 2, 17, 32, 3, 18, 33, 48, 4, 19, 34, 49, 64, 317 5, 20, 35, 50, 65, 80, 6, 21, 36, 51, 66, 81, 96, 7, 22, 318 37, 52, 67, 82, 97, 112, 8, 23, 38, 53, 68, 83, 98, 113, 128, 319 9, 24, 39, 54, 69, 84, 99, 114, 129, 144, 10, 25, 40, 55, 70, 320 85, 100, 115, 130, 145, 160, 11, 26, 41, 56, 71, 86, 101, 116, 131, 321 146, 161, 176, 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177, 322 192, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 208, 323 14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209, 224, 324 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 325 240, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211, 226, 326 241, 256, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212, 227, 327 242, 257, 272, 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213, 228, 328 243, 258, 273, 288, 79, 94, 109, 124, 139, 154, 169, 184, 199, 214, 229, 329 244, 259, 274, 289, 304, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230, 330 245, 260, 275, 290, 305, 320, 111, 126, 141, 156, 171, 186, 201, 216, 231, 331 246, 261, 276, 291, 306, 321, 336, 127, 142, 157, 172, 187, 202, 217, 232, 332 247, 262, 277, 292, 307, 322, 337, 352, 143, 158, 173, 188, 203, 218, 233, 333 248, 263, 278, 293, 308, 323, 338, 353, 368, 159, 174, 189, 204, 219, 234, 334 249, 264, 279, 294, 309, 324, 339, 354, 369, 384, 175, 190, 205, 220, 235, 335 250, 265, 280, 295, 310, 325, 340, 355, 370, 385, 400, 191, 206, 221, 236, 336 251, 266, 281, 296, 311, 326, 341, 356, 371, 386, 401, 416, 207, 222, 237, 337 252, 267, 282, 297, 312, 327, 342, 357, 372, 387, 402, 417, 432, 223, 238, 338 253, 268, 283, 298, 313, 328, 343, 358, 373, 388, 403, 418, 433, 448, 239, 339 254, 269, 284, 299, 314, 329, 344, 359, 374, 389, 404, 419, 434, 449, 464, 340 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 341 480, 271, 286, 301, 316, 331, 346, 361, 376, 391, 406, 421, 436, 451, 466, 342 481, 496, 287, 302, 317, 332, 347, 362, 377, 392, 407, 422, 437, 452, 467, 343 482, 497, 303, 318, 333, 348, 363, 378, 393, 408, 423, 438, 453, 468, 483, 344 498, 319, 334, 349, 364, 379, 394, 409, 424, 439, 454, 469, 484, 499, 335, 345 350, 365, 380, 395, 410, 425, 440, 455, 470, 485, 500, 351, 366, 381, 396, 346 411, 426, 441, 456, 471, 486, 501, 367, 382, 397, 412, 427, 442, 457, 472, 347 487, 502, 383, 398, 413, 428, 443, 458, 473, 488, 503, 399, 414, 429, 444, 348 459, 474, 489, 504, 415, 430, 445, 460, 475, 490, 505, 431, 446, 461, 476, 349 491, 506, 447, 462, 477, 492, 507, 463, 478, 493, 508, 479, 494, 509, 495, 350 510, 511, 351 }; 352 353 DECLARE_ALIGNED(16, static const int16_t, default_scan_32x16[512]) = { 354 0, 32, 1, 64, 33, 2, 96, 65, 34, 3, 128, 97, 66, 35, 4, 355 160, 129, 98, 67, 36, 5, 192, 161, 130, 99, 68, 37, 6, 224, 193, 356 162, 131, 100, 69, 38, 7, 256, 225, 194, 163, 132, 101, 70, 39, 8, 357 288, 257, 226, 195, 164, 133, 102, 71, 40, 9, 320, 289, 258, 227, 196, 358 165, 134, 103, 72, 41, 10, 352, 321, 290, 259, 228, 197, 166, 135, 104, 359 73, 42, 11, 384, 353, 322, 291, 260, 229, 198, 167, 136, 105, 74, 43, 360 12, 416, 385, 354, 323, 292, 261, 230, 199, 168, 137, 106, 75, 44, 13, 361 448, 417, 386, 355, 324, 293, 262, 231, 200, 169, 138, 107, 76, 45, 14, 362 480, 449, 418, 387, 356, 325, 294, 263, 232, 201, 170, 139, 108, 77, 46, 363 15, 481, 450, 419, 388, 357, 326, 295, 264, 233, 202, 171, 140, 109, 78, 364 47, 16, 482, 451, 420, 389, 358, 327, 296, 265, 234, 203, 172, 141, 110, 365 79, 48, 17, 483, 452, 421, 390, 359, 328, 297, 266, 235, 204, 173, 142, 366 111, 80, 49, 18, 484, 453, 422, 391, 360, 329, 298, 267, 236, 205, 174, 367 143, 112, 81, 50, 19, 485, 454, 423, 392, 361, 330, 299, 268, 237, 206, 368 175, 144, 113, 82, 51, 20, 486, 455, 424, 393, 362, 331, 300, 269, 238, 369 207, 176, 145, 114, 83, 52, 21, 487, 456, 425, 394, 363, 332, 301, 270, 370 239, 208, 177, 146, 115, 84, 53, 22, 488, 457, 426, 395, 364, 333, 302, 371 271, 240, 209, 178, 147, 116, 85, 54, 23, 489, 458, 427, 396, 365, 334, 372 303, 272, 241, 210, 179, 148, 117, 86, 55, 24, 490, 459, 428, 397, 366, 373 335, 304, 273, 242, 211, 180, 149, 118, 87, 56, 25, 491, 460, 429, 398, 374 367, 336, 305, 274, 243, 212, 181, 150, 119, 88, 57, 26, 492, 461, 430, 375 399, 368, 337, 306, 275, 244, 213, 182, 151, 120, 89, 58, 27, 493, 462, 376 431, 400, 369, 338, 307, 276, 245, 214, 183, 152, 121, 90, 59, 28, 494, 377 463, 432, 401, 370, 339, 308, 277, 246, 215, 184, 153, 122, 91, 60, 29, 378 495, 464, 433, 402, 371, 340, 309, 278, 247, 216, 185, 154, 123, 92, 61, 379 30, 496, 465, 434, 403, 372, 341, 310, 279, 248, 217, 186, 155, 124, 93, 380 62, 31, 497, 466, 435, 404, 373, 342, 311, 280, 249, 218, 187, 156, 125, 381 94, 63, 498, 467, 436, 405, 374, 343, 312, 281, 250, 219, 188, 157, 126, 382 95, 499, 468, 437, 406, 375, 344, 313, 282, 251, 220, 189, 158, 127, 500, 383 469, 438, 407, 376, 345, 314, 283, 252, 221, 190, 159, 501, 470, 439, 408, 384 377, 346, 315, 284, 253, 222, 191, 502, 471, 440, 409, 378, 347, 316, 285, 385 254, 223, 503, 472, 441, 410, 379, 348, 317, 286, 255, 504, 473, 442, 411, 386 380, 349, 318, 287, 505, 474, 443, 412, 381, 350, 319, 506, 475, 444, 413, 387 382, 351, 507, 476, 445, 414, 383, 508, 477, 446, 415, 509, 478, 447, 510, 388 479, 511, 389 }; 390 391 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x32[512]) = { 392 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 393 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464, 394 480, 496, 1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193, 395 209, 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433, 396 449, 465, 481, 497, 2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162, 397 178, 194, 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 402, 398 418, 434, 450, 466, 482, 498, 3, 19, 35, 51, 67, 83, 99, 115, 131, 399 147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371, 400 387, 403, 419, 435, 451, 467, 483, 499, 4, 20, 36, 52, 68, 84, 100, 401 116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340, 402 356, 372, 388, 404, 420, 436, 452, 468, 484, 500, 5, 21, 37, 53, 69, 403 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309, 404 325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501, 6, 22, 38, 405 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278, 406 294, 310, 326, 342, 358, 374, 390, 406, 422, 438, 454, 470, 486, 502, 7, 407 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 408 263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439, 455, 471, 487, 409 503, 8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 410 232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392, 408, 424, 440, 456, 411 472, 488, 504, 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 412 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425, 413 441, 457, 473, 489, 505, 10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 414 170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 394, 415 410, 426, 442, 458, 474, 490, 506, 11, 27, 43, 59, 75, 91, 107, 123, 416 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363, 417 379, 395, 411, 427, 443, 459, 475, 491, 507, 12, 28, 44, 60, 76, 92, 418 108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284, 300, 316, 332, 419 348, 364, 380, 396, 412, 428, 444, 460, 476, 492, 508, 13, 29, 45, 61, 420 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269, 285, 301, 421 317, 333, 349, 365, 381, 397, 413, 429, 445, 461, 477, 493, 509, 14, 30, 422 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 270, 423 286, 302, 318, 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510, 424 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 425 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479, 426 495, 511, 427 }; 428 429 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x16[512]) = { 430 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480, 431 1, 33, 65, 97, 129, 161, 193, 225, 257, 289, 321, 353, 385, 417, 449, 481, 432 2, 34, 66, 98, 130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482, 433 3, 35, 67, 99, 131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483, 434 4, 36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 388, 420, 452, 484, 435 5, 37, 69, 101, 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485, 436 6, 38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486, 437 7, 39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 455, 487, 438 8, 40, 72, 104, 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488, 439 9, 41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361, 393, 425, 457, 489, 440 10, 42, 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490, 441 11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491, 442 12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364, 396, 428, 460, 492, 443 13, 45, 77, 109, 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493, 444 14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494, 445 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367, 399, 431, 463, 495, 446 16, 48, 80, 112, 144, 176, 208, 240, 272, 304, 336, 368, 400, 432, 464, 496, 447 17, 49, 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497, 448 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 402, 434, 466, 498, 449 19, 51, 83, 115, 147, 179, 211, 243, 275, 307, 339, 371, 403, 435, 467, 499, 450 20, 52, 84, 116, 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500, 451 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 469, 501, 452 22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 342, 374, 406, 438, 470, 502, 453 23, 55, 87, 119, 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503, 454 24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504, 455 25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 409, 441, 473, 505, 456 26, 58, 90, 122, 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506, 457 27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507, 458 28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 476, 508, 459 29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509, 460 30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382, 414, 446, 478, 510, 461 31, 63, 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511, 462 }; 463 464 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x32[512]) = { 465 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 466 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 467 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 468 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 469 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 470 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 471 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 472 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 473 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 474 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 475 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 476 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 477 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 478 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 479 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 480 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 481 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 482 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 483 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 484 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 485 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 486 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 487 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 488 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 489 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 490 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 491 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 492 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 493 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 494 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 495 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 496 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 497 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 498 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 499 510, 511, 500 }; 501 502 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x16[512]) = { 503 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 504 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 505 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 506 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 507 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 508 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 509 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 510 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 511 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 512 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 513 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 514 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 515 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 516 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 517 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 518 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 519 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 520 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 521 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 522 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 523 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 524 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 525 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 526 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 527 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 528 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 529 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 530 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 531 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 532 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 533 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 534 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 535 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 536 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 537 510, 511, 538 }; 539 540 DECLARE_ALIGNED(16, static const int16_t, default_scan_16x16[256]) = { 541 0, 1, 16, 32, 17, 2, 3, 18, 33, 48, 64, 49, 34, 19, 4, 542 5, 20, 35, 50, 65, 80, 96, 81, 66, 51, 36, 21, 6, 7, 22, 543 37, 52, 67, 82, 97, 112, 128, 113, 98, 83, 68, 53, 38, 23, 8, 544 9, 24, 39, 54, 69, 84, 99, 114, 129, 144, 160, 145, 130, 115, 100, 545 85, 70, 55, 40, 25, 10, 11, 26, 41, 56, 71, 86, 101, 116, 131, 546 146, 161, 176, 192, 177, 162, 147, 132, 117, 102, 87, 72, 57, 42, 27, 547 12, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 208, 548 224, 209, 194, 179, 164, 149, 134, 119, 104, 89, 74, 59, 44, 29, 14, 549 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 550 240, 241, 226, 211, 196, 181, 166, 151, 136, 121, 106, 91, 76, 61, 46, 551 31, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212, 227, 242, 552 243, 228, 213, 198, 183, 168, 153, 138, 123, 108, 93, 78, 63, 79, 94, 553 109, 124, 139, 154, 169, 184, 199, 214, 229, 244, 245, 230, 215, 200, 185, 554 170, 155, 140, 125, 110, 95, 111, 126, 141, 156, 171, 186, 201, 216, 231, 555 246, 247, 232, 217, 202, 187, 172, 157, 142, 127, 143, 158, 173, 188, 203, 556 218, 233, 248, 249, 234, 219, 204, 189, 174, 159, 175, 190, 205, 220, 235, 557 250, 251, 236, 221, 206, 191, 207, 222, 237, 252, 253, 238, 223, 239, 254, 558 255 559 }; 560 561 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x16[256]) = { 562 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 563 1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 564 2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162, 178, 194, 210, 226, 242, 565 3, 19, 35, 51, 67, 83, 99, 115, 131, 147, 163, 179, 195, 211, 227, 243, 566 4, 20, 36, 52, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244, 567 5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 568 6, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 569 7, 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 570 8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248, 571 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 201, 217, 233, 249, 572 10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250, 573 11, 27, 43, 59, 75, 91, 107, 123, 139, 155, 171, 187, 203, 219, 235, 251, 574 12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 575 13, 29, 45, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 576 14, 30, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 577 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255, 578 }; 579 580 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x16[256]) = { 581 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 582 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 583 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 584 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 585 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 586 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 587 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 588 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 589 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 590 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 591 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 592 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 593 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 594 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 595 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 596 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 597 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 598 255, 599 }; 600 601 DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x32[1024]) = { 602 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 603 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 604 896, 928, 960, 992, 1, 33, 65, 97, 129, 161, 193, 225, 257, 289, 605 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 606 769, 801, 833, 865, 897, 929, 961, 993, 2, 34, 66, 98, 130, 162, 607 194, 226, 258, 290, 322, 354, 386, 418, 450, 482, 514, 546, 578, 610, 608 642, 674, 706, 738, 770, 802, 834, 866, 898, 930, 962, 994, 3, 35, 609 67, 99, 131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483, 610 515, 547, 579, 611, 643, 675, 707, 739, 771, 803, 835, 867, 899, 931, 611 963, 995, 4, 36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 612 388, 420, 452, 484, 516, 548, 580, 612, 644, 676, 708, 740, 772, 804, 613 836, 868, 900, 932, 964, 996, 5, 37, 69, 101, 133, 165, 197, 229, 614 261, 293, 325, 357, 389, 421, 453, 485, 517, 549, 581, 613, 645, 677, 615 709, 741, 773, 805, 837, 869, 901, 933, 965, 997, 6, 38, 70, 102, 616 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486, 518, 550, 617 582, 614, 646, 678, 710, 742, 774, 806, 838, 870, 902, 934, 966, 998, 618 7, 39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 619 455, 487, 519, 551, 583, 615, 647, 679, 711, 743, 775, 807, 839, 871, 620 903, 935, 967, 999, 8, 40, 72, 104, 136, 168, 200, 232, 264, 296, 621 328, 360, 392, 424, 456, 488, 520, 552, 584, 616, 648, 680, 712, 744, 622 776, 808, 840, 872, 904, 936, 968, 1000, 9, 41, 73, 105, 137, 169, 623 201, 233, 265, 297, 329, 361, 393, 425, 457, 489, 521, 553, 585, 617, 624 649, 681, 713, 745, 777, 809, 841, 873, 905, 937, 969, 1001, 10, 42, 625 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490, 626 522, 554, 586, 618, 650, 682, 714, 746, 778, 810, 842, 874, 906, 938, 627 970, 1002, 11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 628 395, 427, 459, 491, 523, 555, 587, 619, 651, 683, 715, 747, 779, 811, 629 843, 875, 907, 939, 971, 1003, 12, 44, 76, 108, 140, 172, 204, 236, 630 268, 300, 332, 364, 396, 428, 460, 492, 524, 556, 588, 620, 652, 684, 631 716, 748, 780, 812, 844, 876, 908, 940, 972, 1004, 13, 45, 77, 109, 632 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493, 525, 557, 633 589, 621, 653, 685, 717, 749, 781, 813, 845, 877, 909, 941, 973, 1005, 634 14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 635 462, 494, 526, 558, 590, 622, 654, 686, 718, 750, 782, 814, 846, 878, 636 910, 942, 974, 1006, 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 637 335, 367, 399, 431, 463, 495, 527, 559, 591, 623, 655, 687, 719, 751, 638 783, 815, 847, 879, 911, 943, 975, 1007, 16, 48, 80, 112, 144, 176, 639 208, 240, 272, 304, 336, 368, 400, 432, 464, 496, 528, 560, 592, 624, 640 656, 688, 720, 752, 784, 816, 848, 880, 912, 944, 976, 1008, 17, 49, 641 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497, 642 529, 561, 593, 625, 657, 689, 721, 753, 785, 817, 849, 881, 913, 945, 643 977, 1009, 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 644 402, 434, 466, 498, 530, 562, 594, 626, 658, 690, 722, 754, 786, 818, 645 850, 882, 914, 946, 978, 1010, 19, 51, 83, 115, 147, 179, 211, 243, 646 275, 307, 339, 371, 403, 435, 467, 499, 531, 563, 595, 627, 659, 691, 647 723, 755, 787, 819, 851, 883, 915, 947, 979, 1011, 20, 52, 84, 116, 648 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500, 532, 564, 649 596, 628, 660, 692, 724, 756, 788, 820, 852, 884, 916, 948, 980, 1012, 650 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 651 469, 501, 533, 565, 597, 629, 661, 693, 725, 757, 789, 821, 853, 885, 652 917, 949, 981, 1013, 22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 653 342, 374, 406, 438, 470, 502, 534, 566, 598, 630, 662, 694, 726, 758, 654 790, 822, 854, 886, 918, 950, 982, 1014, 23, 55, 87, 119, 151, 183, 655 215, 247, 279, 311, 343, 375, 407, 439, 471, 503, 535, 567, 599, 631, 656 663, 695, 727, 759, 791, 823, 855, 887, 919, 951, 983, 1015, 24, 56, 657 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504, 658 536, 568, 600, 632, 664, 696, 728, 760, 792, 824, 856, 888, 920, 952, 659 984, 1016, 25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 660 409, 441, 473, 505, 537, 569, 601, 633, 665, 697, 729, 761, 793, 825, 661 857, 889, 921, 953, 985, 1017, 26, 58, 90, 122, 154, 186, 218, 250, 662 282, 314, 346, 378, 410, 442, 474, 506, 538, 570, 602, 634, 666, 698, 663 730, 762, 794, 826, 858, 890, 922, 954, 986, 1018, 27, 59, 91, 123, 664 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507, 539, 571, 665 603, 635, 667, 699, 731, 763, 795, 827, 859, 891, 923, 955, 987, 1019, 666 28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 667 476, 508, 540, 572, 604, 636, 668, 700, 732, 764, 796, 828, 860, 892, 668 924, 956, 988, 1020, 29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 669 349, 381, 413, 445, 477, 509, 541, 573, 605, 637, 669, 701, 733, 765, 670 797, 829, 861, 893, 925, 957, 989, 1021, 30, 62, 94, 126, 158, 190, 671 222, 254, 286, 318, 350, 382, 414, 446, 478, 510, 542, 574, 606, 638, 672 670, 702, 734, 766, 798, 830, 862, 894, 926, 958, 990, 1022, 31, 63, 673 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511, 674 543, 575, 607, 639, 671, 703, 735, 767, 799, 831, 863, 895, 927, 959, 675 991, 1023, 676 }; 677 678 DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x32[1024]) = { 679 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 680 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 681 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 682 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 683 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 684 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 685 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 686 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 687 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 688 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 689 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 690 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 691 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 692 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 693 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 694 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 695 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 696 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 697 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 698 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 699 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 700 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 701 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 702 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 703 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 704 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 705 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 706 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 707 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 708 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 709 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 710 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 711 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 712 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 713 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 714 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 715 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 716 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 717 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 718 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 719 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 720 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 721 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 722 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 723 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 724 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 725 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 726 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 727 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 728 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 729 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 730 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 731 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 732 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 733 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 734 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 735 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 736 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 737 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 738 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 739 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 740 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 741 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 742 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 743 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 744 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 745 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 746 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 747 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 748 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 749 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 750 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 751 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 752 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 753 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 754 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 755 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 756 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 757 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 758 }; 759 760 DECLARE_ALIGNED(16, static const int16_t, default_scan_32x32[1024]) = { 761 0, 1, 32, 64, 33, 2, 3, 34, 65, 96, 128, 97, 66, 762 35, 4, 5, 36, 67, 98, 129, 160, 192, 161, 130, 99, 68, 763 37, 6, 7, 38, 69, 100, 131, 162, 193, 224, 256, 225, 194, 764 163, 132, 101, 70, 39, 8, 9, 40, 71, 102, 133, 164, 195, 765 226, 257, 288, 320, 289, 258, 227, 196, 165, 134, 103, 72, 41, 766 10, 11, 42, 73, 104, 135, 166, 197, 228, 259, 290, 321, 352, 767 384, 353, 322, 291, 260, 229, 198, 167, 136, 105, 74, 43, 12, 768 13, 44, 75, 106, 137, 168, 199, 230, 261, 292, 323, 354, 385, 769 416, 448, 417, 386, 355, 324, 293, 262, 231, 200, 169, 138, 107, 770 76, 45, 14, 15, 46, 77, 108, 139, 170, 201, 232, 263, 294, 771 325, 356, 387, 418, 449, 480, 512, 481, 450, 419, 388, 357, 326, 772 295, 264, 233, 202, 171, 140, 109, 78, 47, 16, 17, 48, 79, 773 110, 141, 172, 203, 234, 265, 296, 327, 358, 389, 420, 451, 482, 774 513, 544, 576, 545, 514, 483, 452, 421, 390, 359, 328, 297, 266, 775 235, 204, 173, 142, 111, 80, 49, 18, 19, 50, 81, 112, 143, 776 174, 205, 236, 267, 298, 329, 360, 391, 422, 453, 484, 515, 546, 777 577, 608, 640, 609, 578, 547, 516, 485, 454, 423, 392, 361, 330, 778 299, 268, 237, 206, 175, 144, 113, 82, 51, 20, 21, 52, 83, 779 114, 145, 176, 207, 238, 269, 300, 331, 362, 393, 424, 455, 486, 780 517, 548, 579, 610, 641, 672, 704, 673, 642, 611, 580, 549, 518, 781 487, 456, 425, 394, 363, 332, 301, 270, 239, 208, 177, 146, 115, 782 84, 53, 22, 23, 54, 85, 116, 147, 178, 209, 240, 271, 302, 783 333, 364, 395, 426, 457, 488, 519, 550, 581, 612, 643, 674, 705, 784 736, 768, 737, 706, 675, 644, 613, 582, 551, 520, 489, 458, 427, 785 396, 365, 334, 303, 272, 241, 210, 179, 148, 117, 86, 55, 24, 786 25, 56, 87, 118, 149, 180, 211, 242, 273, 304, 335, 366, 397, 787 428, 459, 490, 521, 552, 583, 614, 645, 676, 707, 738, 769, 800, 788 832, 801, 770, 739, 708, 677, 646, 615, 584, 553, 522, 491, 460, 789 429, 398, 367, 336, 305, 274, 243, 212, 181, 150, 119, 88, 57, 790 26, 27, 58, 89, 120, 151, 182, 213, 244, 275, 306, 337, 368, 791 399, 430, 461, 492, 523, 554, 585, 616, 647, 678, 709, 740, 771, 792 802, 833, 864, 896, 865, 834, 803, 772, 741, 710, 679, 648, 617, 793 586, 555, 524, 493, 462, 431, 400, 369, 338, 307, 276, 245, 214, 794 183, 152, 121, 90, 59, 28, 29, 60, 91, 122, 153, 184, 215, 795 246, 277, 308, 339, 370, 401, 432, 463, 494, 525, 556, 587, 618, 796 649, 680, 711, 742, 773, 804, 835, 866, 897, 928, 960, 929, 898, 797 867, 836, 805, 774, 743, 712, 681, 650, 619, 588, 557, 526, 495, 798 464, 433, 402, 371, 340, 309, 278, 247, 216, 185, 154, 123, 92, 799 61, 30, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341, 800 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713, 744, 801 775, 806, 837, 868, 899, 930, 961, 992, 993, 962, 931, 900, 869, 802 838, 807, 776, 745, 714, 683, 652, 621, 590, 559, 528, 497, 466, 803 435, 404, 373, 342, 311, 280, 249, 218, 187, 156, 125, 94, 63, 804 95, 126, 157, 188, 219, 250, 281, 312, 343, 374, 405, 436, 467, 805 498, 529, 560, 591, 622, 653, 684, 715, 746, 777, 808, 839, 870, 806 901, 932, 963, 994, 995, 964, 933, 902, 871, 840, 809, 778, 747, 807 716, 685, 654, 623, 592, 561, 530, 499, 468, 437, 406, 375, 344, 808 313, 282, 251, 220, 189, 158, 127, 159, 190, 221, 252, 283, 314, 809 345, 376, 407, 438, 469, 500, 531, 562, 593, 624, 655, 686, 717, 810 748, 779, 810, 841, 872, 903, 934, 965, 996, 997, 966, 935, 904, 811 873, 842, 811, 780, 749, 718, 687, 656, 625, 594, 563, 532, 501, 812 470, 439, 408, 377, 346, 315, 284, 253, 222, 191, 223, 254, 285, 813 316, 347, 378, 409, 440, 471, 502, 533, 564, 595, 626, 657, 688, 814 719, 750, 781, 812, 843, 874, 905, 936, 967, 998, 999, 968, 937, 815 906, 875, 844, 813, 782, 751, 720, 689, 658, 627, 596, 565, 534, 816 503, 472, 441, 410, 379, 348, 317, 286, 255, 287, 318, 349, 380, 817 411, 442, 473, 504, 535, 566, 597, 628, 659, 690, 721, 752, 783, 818 814, 845, 876, 907, 938, 969, 1000, 1001, 970, 939, 908, 877, 846, 819 815, 784, 753, 722, 691, 660, 629, 598, 567, 536, 505, 474, 443, 820 412, 381, 350, 319, 351, 382, 413, 444, 475, 506, 537, 568, 599, 821 630, 661, 692, 723, 754, 785, 816, 847, 878, 909, 940, 971, 1002, 822 1003, 972, 941, 910, 879, 848, 817, 786, 755, 724, 693, 662, 631, 823 600, 569, 538, 507, 476, 445, 414, 383, 415, 446, 477, 508, 539, 824 570, 601, 632, 663, 694, 725, 756, 787, 818, 849, 880, 911, 942, 825 973, 1004, 1005, 974, 943, 912, 881, 850, 819, 788, 757, 726, 695, 826 664, 633, 602, 571, 540, 509, 478, 447, 479, 510, 541, 572, 603, 827 634, 665, 696, 727, 758, 789, 820, 851, 882, 913, 944, 975, 1006, 828 1007, 976, 945, 914, 883, 852, 821, 790, 759, 728, 697, 666, 635, 829 604, 573, 542, 511, 543, 574, 605, 636, 667, 698, 729, 760, 791, 830 822, 853, 884, 915, 946, 977, 1008, 1009, 978, 947, 916, 885, 854, 831 823, 792, 761, 730, 699, 668, 637, 606, 575, 607, 638, 669, 700, 832 731, 762, 793, 824, 855, 886, 917, 948, 979, 1010, 1011, 980, 949, 833 918, 887, 856, 825, 794, 763, 732, 701, 670, 639, 671, 702, 733, 834 764, 795, 826, 857, 888, 919, 950, 981, 1012, 1013, 982, 951, 920, 835 889, 858, 827, 796, 765, 734, 703, 735, 766, 797, 828, 859, 890, 836 921, 952, 983, 1014, 1015, 984, 953, 922, 891, 860, 829, 798, 767, 837 799, 830, 861, 892, 923, 954, 985, 1016, 1017, 986, 955, 924, 893, 838 862, 831, 863, 894, 925, 956, 987, 1018, 1019, 988, 957, 926, 895, 839 927, 958, 989, 1020, 1021, 990, 959, 991, 1022, 1023 840 }; 841 842 DECLARE_ALIGNED(16, static const int16_t, 843 av1_default_iscan_4x4[16]) = { 0, 1, 5, 6, 2, 4, 7, 12, 844 3, 8, 11, 13, 9, 10, 14, 15 }; 845 846 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_4x4[16]) = { 847 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 848 }; 849 850 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_4x4[16]) = { 851 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 852 }; 853 854 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_4x8[32]) = { 855 0, 1, 3, 6, 2, 4, 7, 10, 5, 8, 11, 14, 9, 12, 15, 18, 856 13, 16, 19, 22, 17, 20, 23, 26, 21, 24, 27, 29, 25, 28, 30, 31, 857 }; 858 859 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_4x8[32]) = { 860 0, 8, 16, 24, 1, 9, 17, 25, 2, 10, 18, 26, 3, 11, 19, 27, 861 4, 12, 20, 28, 5, 13, 21, 29, 6, 14, 22, 30, 7, 15, 23, 31, 862 }; 863 864 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_4x8[32]) = { 865 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 866 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 867 }; 868 869 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x4[32]) = { 870 0, 2, 5, 9, 13, 17, 21, 25, 1, 4, 8, 12, 16, 20, 24, 28, 871 3, 7, 11, 15, 19, 23, 27, 30, 6, 10, 14, 18, 22, 26, 29, 31, 872 }; 873 874 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x4[32]) = { 875 0, 4, 8, 12, 16, 20, 24, 28, 1, 5, 9, 13, 17, 21, 25, 29, 876 2, 6, 10, 14, 18, 22, 26, 30, 3, 7, 11, 15, 19, 23, 27, 31, 877 }; 878 879 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x4[32]) = { 880 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 881 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 882 }; 883 884 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_4x16[64]) = { 885 0, 1, 3, 6, 2, 4, 7, 10, 5, 8, 11, 14, 9, 12, 15, 18, 886 13, 16, 19, 22, 17, 20, 23, 26, 21, 24, 27, 30, 25, 28, 31, 34, 887 29, 32, 35, 38, 33, 36, 39, 42, 37, 40, 43, 46, 41, 44, 47, 50, 888 45, 48, 51, 54, 49, 52, 55, 58, 53, 56, 59, 61, 57, 60, 62, 63, 889 }; 890 891 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x4[64]) = { 892 0, 2, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 893 1, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 894 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 62, 895 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 61, 63, 896 }; 897 898 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_4x16[64]) = { 899 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 900 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 901 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 902 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 903 }; 904 905 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x4[64]) = { 906 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 907 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 908 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 909 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 910 }; 911 912 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_4x16[64]) = { 913 0, 16, 32, 48, 1, 17, 33, 49, 2, 18, 34, 50, 3, 19, 35, 51, 914 4, 20, 36, 52, 5, 21, 37, 53, 6, 22, 38, 54, 7, 23, 39, 55, 915 8, 24, 40, 56, 9, 25, 41, 57, 10, 26, 42, 58, 11, 27, 43, 59, 916 12, 28, 44, 60, 13, 29, 45, 61, 14, 30, 46, 62, 15, 31, 47, 63, 917 }; 918 919 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x4[64]) = { 920 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 921 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 922 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 923 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, 924 }; 925 926 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x32[256]) = { 927 0, 1, 3, 6, 10, 15, 21, 28, 2, 4, 7, 11, 16, 22, 29, 928 36, 5, 8, 12, 17, 23, 30, 37, 44, 9, 13, 18, 24, 31, 38, 929 45, 52, 14, 19, 25, 32, 39, 46, 53, 60, 20, 26, 33, 40, 47, 930 54, 61, 68, 27, 34, 41, 48, 55, 62, 69, 76, 35, 42, 49, 56, 931 63, 70, 77, 84, 43, 50, 57, 64, 71, 78, 85, 92, 51, 58, 65, 932 72, 79, 86, 93, 100, 59, 66, 73, 80, 87, 94, 101, 108, 67, 74, 933 81, 88, 95, 102, 109, 116, 75, 82, 89, 96, 103, 110, 117, 124, 83, 934 90, 97, 104, 111, 118, 125, 132, 91, 98, 105, 112, 119, 126, 133, 140, 935 99, 106, 113, 120, 127, 134, 141, 148, 107, 114, 121, 128, 135, 142, 149, 936 156, 115, 122, 129, 136, 143, 150, 157, 164, 123, 130, 137, 144, 151, 158, 937 165, 172, 131, 138, 145, 152, 159, 166, 173, 180, 139, 146, 153, 160, 167, 938 174, 181, 188, 147, 154, 161, 168, 175, 182, 189, 196, 155, 162, 169, 176, 939 183, 190, 197, 204, 163, 170, 177, 184, 191, 198, 205, 212, 171, 178, 185, 940 192, 199, 206, 213, 220, 179, 186, 193, 200, 207, 214, 221, 228, 187, 194, 941 201, 208, 215, 222, 229, 235, 195, 202, 209, 216, 223, 230, 236, 241, 203, 942 210, 217, 224, 231, 237, 242, 246, 211, 218, 225, 232, 238, 243, 247, 250, 943 219, 226, 233, 239, 244, 248, 251, 253, 227, 234, 240, 245, 249, 252, 254, 944 255, 945 }; 946 947 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_32x8[256]) = { 948 0, 2, 5, 9, 14, 20, 27, 35, 43, 51, 59, 67, 75, 83, 91, 949 99, 107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187, 195, 203, 211, 950 219, 227, 1, 4, 8, 13, 19, 26, 34, 42, 50, 58, 66, 74, 82, 951 90, 98, 106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202, 952 210, 218, 226, 234, 3, 7, 12, 18, 25, 33, 41, 49, 57, 65, 73, 953 81, 89, 97, 105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 954 201, 209, 217, 225, 233, 240, 6, 11, 17, 24, 32, 40, 48, 56, 64, 955 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 956 192, 200, 208, 216, 224, 232, 239, 245, 10, 16, 23, 31, 39, 47, 55, 957 63, 71, 79, 87, 95, 103, 111, 119, 127, 135, 143, 151, 159, 167, 175, 958 183, 191, 199, 207, 215, 223, 231, 238, 244, 249, 15, 22, 30, 38, 46, 959 54, 62, 70, 78, 86, 94, 102, 110, 118, 126, 134, 142, 150, 158, 166, 960 174, 182, 190, 198, 206, 214, 222, 230, 237, 243, 248, 252, 21, 29, 37, 961 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, 141, 149, 157, 962 165, 173, 181, 189, 197, 205, 213, 221, 229, 236, 242, 247, 251, 254, 28, 963 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148, 964 156, 164, 172, 180, 188, 196, 204, 212, 220, 228, 235, 241, 246, 250, 253, 965 255, 966 }; 967 968 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x32[256]) = { 969 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 970 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 971 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 972 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 973 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 974 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 975 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 976 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 977 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 978 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 979 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 980 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 981 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 982 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 983 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 984 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 985 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 986 255, 987 }; 988 989 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_32x8[256]) = { 990 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 991 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 992 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 993 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 994 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 995 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 996 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 997 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 998 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 999 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 1000 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 1001 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 1002 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 1003 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 1004 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 1005 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 1006 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 1007 255, 1008 }; 1009 1010 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x32[256]) = { 1011 0, 32, 64, 96, 128, 160, 192, 224, 1, 33, 65, 97, 129, 161, 193, 225, 1012 2, 34, 66, 98, 130, 162, 194, 226, 3, 35, 67, 99, 131, 163, 195, 227, 1013 4, 36, 68, 100, 132, 164, 196, 228, 5, 37, 69, 101, 133, 165, 197, 229, 1014 6, 38, 70, 102, 134, 166, 198, 230, 7, 39, 71, 103, 135, 167, 199, 231, 1015 8, 40, 72, 104, 136, 168, 200, 232, 9, 41, 73, 105, 137, 169, 201, 233, 1016 10, 42, 74, 106, 138, 170, 202, 234, 11, 43, 75, 107, 139, 171, 203, 235, 1017 12, 44, 76, 108, 140, 172, 204, 236, 13, 45, 77, 109, 141, 173, 205, 237, 1018 14, 46, 78, 110, 142, 174, 206, 238, 15, 47, 79, 111, 143, 175, 207, 239, 1019 16, 48, 80, 112, 144, 176, 208, 240, 17, 49, 81, 113, 145, 177, 209, 241, 1020 18, 50, 82, 114, 146, 178, 210, 242, 19, 51, 83, 115, 147, 179, 211, 243, 1021 20, 52, 84, 116, 148, 180, 212, 244, 21, 53, 85, 117, 149, 181, 213, 245, 1022 22, 54, 86, 118, 150, 182, 214, 246, 23, 55, 87, 119, 151, 183, 215, 247, 1023 24, 56, 88, 120, 152, 184, 216, 248, 25, 57, 89, 121, 153, 185, 217, 249, 1024 26, 58, 90, 122, 154, 186, 218, 250, 27, 59, 91, 123, 155, 187, 219, 251, 1025 28, 60, 92, 124, 156, 188, 220, 252, 29, 61, 93, 125, 157, 189, 221, 253, 1026 30, 62, 94, 126, 158, 190, 222, 254, 31, 63, 95, 127, 159, 191, 223, 255, 1027 }; 1028 1029 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_32x8[256]) = { 1030 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 1031 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 1032 240, 248, 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 1033 105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217, 1034 225, 233, 241, 249, 2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 1035 90, 98, 106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202, 1036 210, 218, 226, 234, 242, 250, 3, 11, 19, 27, 35, 43, 51, 59, 67, 1037 75, 83, 91, 99, 107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187, 1038 195, 203, 211, 219, 227, 235, 243, 251, 4, 12, 20, 28, 36, 44, 52, 1039 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148, 156, 164, 172, 1040 180, 188, 196, 204, 212, 220, 228, 236, 244, 252, 5, 13, 21, 29, 37, 1041 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, 141, 149, 157, 1042 165, 173, 181, 189, 197, 205, 213, 221, 229, 237, 245, 253, 6, 14, 22, 1043 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126, 134, 142, 1044 150, 158, 166, 174, 182, 190, 198, 206, 214, 222, 230, 238, 246, 254, 7, 1045 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127, 1046 135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247, 1047 255, 1048 }; 1049 1050 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x8[64]) = { 1051 0, 8, 16, 24, 32, 40, 48, 56, 1, 9, 17, 25, 33, 41, 49, 57, 1052 2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59, 1053 4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61, 1054 6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63, 1055 }; 1056 1057 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x8[64]) = { 1058 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1059 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1060 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 1061 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1062 }; 1063 1064 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x8[64]) = { 1065 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 1066 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 1067 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 1068 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63 1069 }; 1070 1071 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_8x16[128]) = { 1072 0, 1, 3, 6, 10, 15, 21, 28, 2, 4, 7, 11, 16, 22, 29, 36, 1073 5, 8, 12, 17, 23, 30, 37, 44, 9, 13, 18, 24, 31, 38, 45, 52, 1074 14, 19, 25, 32, 39, 46, 53, 60, 20, 26, 33, 40, 47, 54, 61, 68, 1075 27, 34, 41, 48, 55, 62, 69, 76, 35, 42, 49, 56, 63, 70, 77, 84, 1076 43, 50, 57, 64, 71, 78, 85, 92, 51, 58, 65, 72, 79, 86, 93, 100, 1077 59, 66, 73, 80, 87, 94, 101, 107, 67, 74, 81, 88, 95, 102, 108, 113, 1078 75, 82, 89, 96, 103, 109, 114, 118, 83, 90, 97, 104, 110, 115, 119, 122, 1079 91, 98, 105, 111, 116, 120, 123, 125, 99, 106, 112, 117, 121, 124, 126, 127, 1080 }; 1081 1082 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x8[128]) = { 1083 0, 2, 5, 9, 14, 20, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 1084 1, 4, 8, 13, 19, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 1085 3, 7, 12, 18, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 112, 1086 6, 11, 17, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 111, 117, 1087 10, 16, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 110, 116, 121, 1088 15, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 109, 115, 120, 124, 1089 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 108, 114, 119, 123, 126, 1090 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 107, 113, 118, 122, 125, 127, 1091 }; 1092 1093 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_8x16[128]) = { 1094 0, 16, 32, 48, 64, 80, 96, 112, 1, 17, 33, 49, 65, 81, 97, 113, 1095 2, 18, 34, 50, 66, 82, 98, 114, 3, 19, 35, 51, 67, 83, 99, 115, 1096 4, 20, 36, 52, 68, 84, 100, 116, 5, 21, 37, 53, 69, 85, 101, 117, 1097 6, 22, 38, 54, 70, 86, 102, 118, 7, 23, 39, 55, 71, 87, 103, 119, 1098 8, 24, 40, 56, 72, 88, 104, 120, 9, 25, 41, 57, 73, 89, 105, 121, 1099 10, 26, 42, 58, 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123, 1100 12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61, 77, 93, 109, 125, 1101 14, 30, 46, 62, 78, 94, 110, 126, 15, 31, 47, 63, 79, 95, 111, 127, 1102 }; 1103 1104 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x8[128]) = { 1105 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 1106 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121, 1107 2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122, 1108 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115, 123, 1109 4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 1110 5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 1111 6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126, 1112 7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127, 1113 }; 1114 1115 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_8x16[128]) = { 1116 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1117 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1118 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1119 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1120 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 1121 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1122 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 1123 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1124 120, 121, 122, 123, 124, 125, 126, 127, 1125 }; 1126 1127 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x8[128]) = { 1128 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1129 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1130 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1131 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1132 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 1133 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1134 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 1135 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1136 120, 121, 122, 123, 124, 125, 126, 127, 1137 }; 1138 1139 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x32[512]) = { 1140 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 1141 120, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79, 92, 106, 1142 121, 136, 5, 8, 12, 17, 23, 30, 38, 47, 57, 68, 80, 93, 107, 1143 122, 137, 152, 9, 13, 18, 24, 31, 39, 48, 58, 69, 81, 94, 108, 1144 123, 138, 153, 168, 14, 19, 25, 32, 40, 49, 59, 70, 82, 95, 109, 1145 124, 139, 154, 169, 184, 20, 26, 33, 41, 50, 60, 71, 83, 96, 110, 1146 125, 140, 155, 170, 185, 200, 27, 34, 42, 51, 61, 72, 84, 97, 111, 1147 126, 141, 156, 171, 186, 201, 216, 35, 43, 52, 62, 73, 85, 98, 112, 1148 127, 142, 157, 172, 187, 202, 217, 232, 44, 53, 63, 74, 86, 99, 113, 1149 128, 143, 158, 173, 188, 203, 218, 233, 248, 54, 64, 75, 87, 100, 114, 1150 129, 144, 159, 174, 189, 204, 219, 234, 249, 264, 65, 76, 88, 101, 115, 1151 130, 145, 160, 175, 190, 205, 220, 235, 250, 265, 280, 77, 89, 102, 116, 1152 131, 146, 161, 176, 191, 206, 221, 236, 251, 266, 281, 296, 90, 103, 117, 1153 132, 147, 162, 177, 192, 207, 222, 237, 252, 267, 282, 297, 312, 104, 118, 1154 133, 148, 163, 178, 193, 208, 223, 238, 253, 268, 283, 298, 313, 328, 119, 1155 134, 149, 164, 179, 194, 209, 224, 239, 254, 269, 284, 299, 314, 329, 344, 1156 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 1157 360, 151, 166, 181, 196, 211, 226, 241, 256, 271, 286, 301, 316, 331, 346, 1158 361, 376, 167, 182, 197, 212, 227, 242, 257, 272, 287, 302, 317, 332, 347, 1159 362, 377, 392, 183, 198, 213, 228, 243, 258, 273, 288, 303, 318, 333, 348, 1160 363, 378, 393, 407, 199, 214, 229, 244, 259, 274, 289, 304, 319, 334, 349, 1161 364, 379, 394, 408, 421, 215, 230, 245, 260, 275, 290, 305, 320, 335, 350, 1162 365, 380, 395, 409, 422, 434, 231, 246, 261, 276, 291, 306, 321, 336, 351, 1163 366, 381, 396, 410, 423, 435, 446, 247, 262, 277, 292, 307, 322, 337, 352, 1164 367, 382, 397, 411, 424, 436, 447, 457, 263, 278, 293, 308, 323, 338, 353, 1165 368, 383, 398, 412, 425, 437, 448, 458, 467, 279, 294, 309, 324, 339, 354, 1166 369, 384, 399, 413, 426, 438, 449, 459, 468, 476, 295, 310, 325, 340, 355, 1167 370, 385, 400, 414, 427, 439, 450, 460, 469, 477, 484, 311, 326, 341, 356, 1168 371, 386, 401, 415, 428, 440, 451, 461, 470, 478, 485, 491, 327, 342, 357, 1169 372, 387, 402, 416, 429, 441, 452, 462, 471, 479, 486, 492, 497, 343, 358, 1170 373, 388, 403, 417, 430, 442, 453, 463, 472, 480, 487, 493, 498, 502, 359, 1171 374, 389, 404, 418, 431, 443, 454, 464, 473, 481, 488, 494, 499, 503, 506, 1172 375, 390, 405, 419, 432, 444, 455, 465, 474, 482, 489, 495, 500, 504, 507, 1173 509, 391, 406, 420, 433, 445, 456, 466, 475, 483, 490, 496, 501, 505, 508, 1174 510, 511, 1175 }; 1176 1177 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_32x16[512]) = { 1178 0, 2, 5, 9, 14, 20, 27, 35, 44, 54, 65, 77, 90, 104, 119, 1179 135, 151, 167, 183, 199, 215, 231, 247, 263, 279, 295, 311, 327, 343, 359, 1180 375, 391, 1, 4, 8, 13, 19, 26, 34, 43, 53, 64, 76, 89, 103, 1181 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278, 294, 310, 326, 342, 1182 358, 374, 390, 406, 3, 7, 12, 18, 25, 33, 42, 52, 63, 75, 88, 1183 102, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309, 325, 1184 341, 357, 373, 389, 405, 420, 6, 11, 17, 24, 32, 41, 51, 62, 74, 1185 87, 101, 116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 1186 324, 340, 356, 372, 388, 404, 419, 433, 10, 16, 23, 31, 40, 50, 61, 1187 73, 86, 100, 115, 131, 147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 1188 307, 323, 339, 355, 371, 387, 403, 418, 432, 445, 15, 22, 30, 39, 49, 1189 60, 72, 85, 99, 114, 130, 146, 162, 178, 194, 210, 226, 242, 258, 274, 1190 290, 306, 322, 338, 354, 370, 386, 402, 417, 431, 444, 456, 21, 29, 38, 1191 48, 59, 71, 84, 98, 113, 129, 145, 161, 177, 193, 209, 225, 241, 257, 1192 273, 289, 305, 321, 337, 353, 369, 385, 401, 416, 430, 443, 455, 466, 28, 1193 37, 47, 58, 70, 83, 97, 112, 128, 144, 160, 176, 192, 208, 224, 240, 1194 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 415, 429, 442, 454, 465, 1195 475, 36, 46, 57, 69, 82, 96, 111, 127, 143, 159, 175, 191, 207, 223, 1196 239, 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 414, 428, 441, 453, 1197 464, 474, 483, 45, 56, 68, 81, 95, 110, 126, 142, 158, 174, 190, 206, 1198 222, 238, 254, 270, 286, 302, 318, 334, 350, 366, 382, 398, 413, 427, 440, 1199 452, 463, 473, 482, 490, 55, 67, 80, 94, 109, 125, 141, 157, 173, 189, 1200 205, 221, 237, 253, 269, 285, 301, 317, 333, 349, 365, 381, 397, 412, 426, 1201 439, 451, 462, 472, 481, 489, 496, 66, 79, 93, 108, 124, 140, 156, 172, 1202 188, 204, 220, 236, 252, 268, 284, 300, 316, 332, 348, 364, 380, 396, 411, 1203 425, 438, 450, 461, 471, 480, 488, 495, 501, 78, 92, 107, 123, 139, 155, 1204 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363, 379, 395, 1205 410, 424, 437, 449, 460, 470, 479, 487, 494, 500, 505, 91, 106, 122, 138, 1206 154, 170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 1207 394, 409, 423, 436, 448, 459, 469, 478, 486, 493, 499, 504, 508, 105, 121, 1208 137, 153, 169, 185, 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 1209 377, 393, 408, 422, 435, 447, 458, 468, 477, 485, 492, 498, 503, 507, 510, 1210 120, 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312, 328, 344, 1211 360, 376, 392, 407, 421, 434, 446, 457, 467, 476, 484, 491, 497, 502, 506, 1212 509, 511, 1213 }; 1214 1215 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x32[512]) = { 1216 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480, 1217 1, 33, 65, 97, 129, 161, 193, 225, 257, 289, 321, 353, 385, 417, 449, 481, 1218 2, 34, 66, 98, 130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482, 1219 3, 35, 67, 99, 131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483, 1220 4, 36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 388, 420, 452, 484, 1221 5, 37, 69, 101, 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485, 1222 6, 38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486, 1223 7, 39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 455, 487, 1224 8, 40, 72, 104, 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488, 1225 9, 41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361, 393, 425, 457, 489, 1226 10, 42, 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490, 1227 11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491, 1228 12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364, 396, 428, 460, 492, 1229 13, 45, 77, 109, 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493, 1230 14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494, 1231 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367, 399, 431, 463, 495, 1232 16, 48, 80, 112, 144, 176, 208, 240, 272, 304, 336, 368, 400, 432, 464, 496, 1233 17, 49, 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497, 1234 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 402, 434, 466, 498, 1235 19, 51, 83, 115, 147, 179, 211, 243, 275, 307, 339, 371, 403, 435, 467, 499, 1236 20, 52, 84, 116, 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500, 1237 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 469, 501, 1238 22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 342, 374, 406, 438, 470, 502, 1239 23, 55, 87, 119, 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503, 1240 24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504, 1241 25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 409, 441, 473, 505, 1242 26, 58, 90, 122, 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506, 1243 27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507, 1244 28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 476, 508, 1245 29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509, 1246 30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382, 414, 446, 478, 510, 1247 31, 63, 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511, 1248 }; 1249 1250 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_32x16[512]) = { 1251 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 1252 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464, 1253 480, 496, 1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193, 1254 209, 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433, 1255 449, 465, 481, 497, 2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162, 1256 178, 194, 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 402, 1257 418, 434, 450, 466, 482, 498, 3, 19, 35, 51, 67, 83, 99, 115, 131, 1258 147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371, 1259 387, 403, 419, 435, 451, 467, 483, 499, 4, 20, 36, 52, 68, 84, 100, 1260 116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340, 1261 356, 372, 388, 404, 420, 436, 452, 468, 484, 500, 5, 21, 37, 53, 69, 1262 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309, 1263 325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501, 6, 22, 38, 1264 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278, 1265 294, 310, 326, 342, 358, 374, 390, 406, 422, 438, 454, 470, 486, 502, 7, 1266 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 1267 263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439, 455, 471, 487, 1268 503, 8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 1269 232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392, 408, 424, 440, 456, 1270 472, 488, 504, 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 1271 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425, 1272 441, 457, 473, 489, 505, 10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 1273 170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 394, 1274 410, 426, 442, 458, 474, 490, 506, 11, 27, 43, 59, 75, 91, 107, 123, 1275 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363, 1276 379, 395, 411, 427, 443, 459, 475, 491, 507, 12, 28, 44, 60, 76, 92, 1277 108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284, 300, 316, 332, 1278 348, 364, 380, 396, 412, 428, 444, 460, 476, 492, 508, 13, 29, 45, 61, 1279 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269, 285, 301, 1280 317, 333, 349, 365, 381, 397, 413, 429, 445, 461, 477, 493, 509, 14, 30, 1281 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 270, 1282 286, 302, 318, 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510, 1283 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 1284 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479, 1285 495, 511, 1286 }; 1287 1288 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x32[512]) = { 1289 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1290 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1291 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1292 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1293 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 1294 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1295 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 1296 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1297 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 1298 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 1299 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 1300 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 1301 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 1302 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 1303 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 1304 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 1305 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 1306 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 1307 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 1308 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 1309 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1310 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1311 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 1312 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 1313 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 1314 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 1315 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 1316 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 1317 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 1318 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 1319 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1320 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 1321 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 1322 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 1323 510, 511, 1324 }; 1325 1326 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_32x16[512]) = { 1327 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1328 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1329 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1330 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1331 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 1332 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1333 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 1334 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1335 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 1336 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 1337 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 1338 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 1339 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 1340 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 1341 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 1342 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 1343 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 1344 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 1345 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 1346 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 1347 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1348 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1349 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 1350 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 1351 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 1352 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 1353 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 1354 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 1355 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 1356 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 1357 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1358 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 1359 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 1360 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 1361 510, 511, 1362 }; 1363 1364 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_16x16[256]) = { 1365 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 1366 1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 1367 2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162, 178, 194, 210, 226, 242, 1368 3, 19, 35, 51, 67, 83, 99, 115, 131, 147, 163, 179, 195, 211, 227, 243, 1369 4, 20, 36, 52, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244, 1370 5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 1371 6, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 1372 7, 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 1373 8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248, 1374 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 201, 217, 233, 249, 1375 10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250, 1376 11, 27, 43, 59, 75, 91, 107, 123, 139, 155, 171, 187, 203, 219, 235, 251, 1377 12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 1378 13, 29, 45, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 1379 14, 30, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 1380 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255, 1381 }; 1382 1383 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_16x16[256]) = { 1384 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1385 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1386 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1387 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1388 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 1389 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1390 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 1391 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1392 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 1393 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 1394 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 1395 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 1396 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 1397 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 1398 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 1399 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 1400 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 1401 255, 1402 }; 1403 1404 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_16x16[256]) = { 1405 0, 1, 5, 6, 14, 15, 27, 28, 44, 45, 65, 66, 90, 91, 119, 1406 120, 2, 4, 7, 13, 16, 26, 29, 43, 46, 64, 67, 89, 92, 118, 1407 121, 150, 3, 8, 12, 17, 25, 30, 42, 47, 63, 68, 88, 93, 117, 1408 122, 149, 151, 9, 11, 18, 24, 31, 41, 48, 62, 69, 87, 94, 116, 1409 123, 148, 152, 177, 10, 19, 23, 32, 40, 49, 61, 70, 86, 95, 115, 1410 124, 147, 153, 176, 178, 20, 22, 33, 39, 50, 60, 71, 85, 96, 114, 1411 125, 146, 154, 175, 179, 200, 21, 34, 38, 51, 59, 72, 84, 97, 113, 1412 126, 145, 155, 174, 180, 199, 201, 35, 37, 52, 58, 73, 83, 98, 112, 1413 127, 144, 156, 173, 181, 198, 202, 219, 36, 53, 57, 74, 82, 99, 111, 1414 128, 143, 157, 172, 182, 197, 203, 218, 220, 54, 56, 75, 81, 100, 110, 1415 129, 142, 158, 171, 183, 196, 204, 217, 221, 234, 55, 76, 80, 101, 109, 1416 130, 141, 159, 170, 184, 195, 205, 216, 222, 233, 235, 77, 79, 102, 108, 1417 131, 140, 160, 169, 185, 194, 206, 215, 223, 232, 236, 245, 78, 103, 107, 1418 132, 139, 161, 168, 186, 193, 207, 214, 224, 231, 237, 244, 246, 104, 106, 1419 133, 138, 162, 167, 187, 192, 208, 213, 225, 230, 238, 243, 247, 252, 105, 1420 134, 137, 163, 166, 188, 191, 209, 212, 226, 229, 239, 242, 248, 251, 253, 1421 135, 136, 164, 165, 189, 190, 210, 211, 227, 228, 240, 241, 249, 250, 254, 1422 255 1423 }; 1424 1425 DECLARE_ALIGNED(16, static const int16_t, av1_mcol_iscan_32x32[1024]) = { 1426 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 1427 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 1428 896, 928, 960, 992, 1, 33, 65, 97, 129, 161, 193, 225, 257, 289, 1429 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 1430 769, 801, 833, 865, 897, 929, 961, 993, 2, 34, 66, 98, 130, 162, 1431 194, 226, 258, 290, 322, 354, 386, 418, 450, 482, 514, 546, 578, 610, 1432 642, 674, 706, 738, 770, 802, 834, 866, 898, 930, 962, 994, 3, 35, 1433 67, 99, 131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483, 1434 515, 547, 579, 611, 643, 675, 707, 739, 771, 803, 835, 867, 899, 931, 1435 963, 995, 4, 36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 1436 388, 420, 452, 484, 516, 548, 580, 612, 644, 676, 708, 740, 772, 804, 1437 836, 868, 900, 932, 964, 996, 5, 37, 69, 101, 133, 165, 197, 229, 1438 261, 293, 325, 357, 389, 421, 453, 485, 517, 549, 581, 613, 645, 677, 1439 709, 741, 773, 805, 837, 869, 901, 933, 965, 997, 6, 38, 70, 102, 1440 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486, 518, 550, 1441 582, 614, 646, 678, 710, 742, 774, 806, 838, 870, 902, 934, 966, 998, 1442 7, 39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 1443 455, 487, 519, 551, 583, 615, 647, 679, 711, 743, 775, 807, 839, 871, 1444 903, 935, 967, 999, 8, 40, 72, 104, 136, 168, 200, 232, 264, 296, 1445 328, 360, 392, 424, 456, 488, 520, 552, 584, 616, 648, 680, 712, 744, 1446 776, 808, 840, 872, 904, 936, 968, 1000, 9, 41, 73, 105, 137, 169, 1447 201, 233, 265, 297, 329, 361, 393, 425, 457, 489, 521, 553, 585, 617, 1448 649, 681, 713, 745, 777, 809, 841, 873, 905, 937, 969, 1001, 10, 42, 1449 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490, 1450 522, 554, 586, 618, 650, 682, 714, 746, 778, 810, 842, 874, 906, 938, 1451 970, 1002, 11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 1452 395, 427, 459, 491, 523, 555, 587, 619, 651, 683, 715, 747, 779, 811, 1453 843, 875, 907, 939, 971, 1003, 12, 44, 76, 108, 140, 172, 204, 236, 1454 268, 300, 332, 364, 396, 428, 460, 492, 524, 556, 588, 620, 652, 684, 1455 716, 748, 780, 812, 844, 876, 908, 940, 972, 1004, 13, 45, 77, 109, 1456 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493, 525, 557, 1457 589, 621, 653, 685, 717, 749, 781, 813, 845, 877, 909, 941, 973, 1005, 1458 14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 1459 462, 494, 526, 558, 590, 622, 654, 686, 718, 750, 782, 814, 846, 878, 1460 910, 942, 974, 1006, 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 1461 335, 367, 399, 431, 463, 495, 527, 559, 591, 623, 655, 687, 719, 751, 1462 783, 815, 847, 879, 911, 943, 975, 1007, 16, 48, 80, 112, 144, 176, 1463 208, 240, 272, 304, 336, 368, 400, 432, 464, 496, 528, 560, 592, 624, 1464 656, 688, 720, 752, 784, 816, 848, 880, 912, 944, 976, 1008, 17, 49, 1465 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497, 1466 529, 561, 593, 625, 657, 689, 721, 753, 785, 817, 849, 881, 913, 945, 1467 977, 1009, 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 1468 402, 434, 466, 498, 530, 562, 594, 626, 658, 690, 722, 754, 786, 818, 1469 850, 882, 914, 946, 978, 1010, 19, 51, 83, 115, 147, 179, 211, 243, 1470 275, 307, 339, 371, 403, 435, 467, 499, 531, 563, 595, 627, 659, 691, 1471 723, 755, 787, 819, 851, 883, 915, 947, 979, 1011, 20, 52, 84, 116, 1472 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500, 532, 564, 1473 596, 628, 660, 692, 724, 756, 788, 820, 852, 884, 916, 948, 980, 1012, 1474 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 1475 469, 501, 533, 565, 597, 629, 661, 693, 725, 757, 789, 821, 853, 885, 1476 917, 949, 981, 1013, 22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 1477 342, 374, 406, 438, 470, 502, 534, 566, 598, 630, 662, 694, 726, 758, 1478 790, 822, 854, 886, 918, 950, 982, 1014, 23, 55, 87, 119, 151, 183, 1479 215, 247, 279, 311, 343, 375, 407, 439, 471, 503, 535, 567, 599, 631, 1480 663, 695, 727, 759, 791, 823, 855, 887, 919, 951, 983, 1015, 24, 56, 1481 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504, 1482 536, 568, 600, 632, 664, 696, 728, 760, 792, 824, 856, 888, 920, 952, 1483 984, 1016, 25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 1484 409, 441, 473, 505, 537, 569, 601, 633, 665, 697, 729, 761, 793, 825, 1485 857, 889, 921, 953, 985, 1017, 26, 58, 90, 122, 154, 186, 218, 250, 1486 282, 314, 346, 378, 410, 442, 474, 506, 538, 570, 602, 634, 666, 698, 1487 730, 762, 794, 826, 858, 890, 922, 954, 986, 1018, 27, 59, 91, 123, 1488 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507, 539, 571, 1489 603, 635, 667, 699, 731, 763, 795, 827, 859, 891, 923, 955, 987, 1019, 1490 28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 1491 476, 508, 540, 572, 604, 636, 668, 700, 732, 764, 796, 828, 860, 892, 1492 924, 956, 988, 1020, 29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 1493 349, 381, 413, 445, 477, 509, 541, 573, 605, 637, 669, 701, 733, 765, 1494 797, 829, 861, 893, 925, 957, 989, 1021, 30, 62, 94, 126, 158, 190, 1495 222, 254, 286, 318, 350, 382, 414, 446, 478, 510, 542, 574, 606, 638, 1496 670, 702, 734, 766, 798, 830, 862, 894, 926, 958, 990, 1022, 31, 63, 1497 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511, 1498 543, 575, 607, 639, 671, 703, 735, 767, 799, 831, 863, 895, 927, 959, 1499 991, 1023, 1500 }; 1501 1502 DECLARE_ALIGNED(16, static const int16_t, av1_mrow_iscan_32x32[1024]) = { 1503 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1504 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1505 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 1506 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 1507 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1508 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 1509 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 1510 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 1511 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 1512 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 1513 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 1514 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 1515 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 1516 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 1517 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 1518 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 1519 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 1520 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 1521 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 1522 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1523 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 1524 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 1525 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1526 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1527 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 1528 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 1529 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1530 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 1531 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1532 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 1533 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 1534 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 1535 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 1536 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 1537 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 1538 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 1539 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1540 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 1541 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 1542 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 1543 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 1544 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 1545 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 1546 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 1547 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 1548 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 1549 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 1550 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 1551 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 1552 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 1553 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 1554 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 1555 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 1556 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 1557 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 1558 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 1559 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 1560 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 1561 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 1562 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 1563 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 1564 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 1565 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 1566 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 1567 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 1568 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 1569 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 1570 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 1571 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 1572 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 1573 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 1574 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 1575 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 1576 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 1577 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1578 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 1579 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1580 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1581 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1582 }; 1583 1584 DECLARE_ALIGNED(16, static const int16_t, av1_default_iscan_32x32[1024]) = { 1585 0, 1, 5, 6, 14, 15, 27, 28, 44, 45, 65, 66, 90, 1586 91, 119, 120, 152, 153, 189, 190, 230, 231, 275, 276, 324, 325, 1587 377, 378, 434, 435, 495, 496, 2, 4, 7, 13, 16, 26, 29, 1588 43, 46, 64, 67, 89, 92, 118, 121, 151, 154, 188, 191, 229, 1589 232, 274, 277, 323, 326, 376, 379, 433, 436, 494, 497, 558, 3, 1590 8, 12, 17, 25, 30, 42, 47, 63, 68, 88, 93, 117, 122, 1591 150, 155, 187, 192, 228, 233, 273, 278, 322, 327, 375, 380, 432, 1592 437, 493, 498, 557, 559, 9, 11, 18, 24, 31, 41, 48, 62, 1593 69, 87, 94, 116, 123, 149, 156, 186, 193, 227, 234, 272, 279, 1594 321, 328, 374, 381, 431, 438, 492, 499, 556, 560, 617, 10, 19, 1595 23, 32, 40, 49, 61, 70, 86, 95, 115, 124, 148, 157, 185, 1596 194, 226, 235, 271, 280, 320, 329, 373, 382, 430, 439, 491, 500, 1597 555, 561, 616, 618, 20, 22, 33, 39, 50, 60, 71, 85, 96, 1598 114, 125, 147, 158, 184, 195, 225, 236, 270, 281, 319, 330, 372, 1599 383, 429, 440, 490, 501, 554, 562, 615, 619, 672, 21, 34, 38, 1600 51, 59, 72, 84, 97, 113, 126, 146, 159, 183, 196, 224, 237, 1601 269, 282, 318, 331, 371, 384, 428, 441, 489, 502, 553, 563, 614, 1602 620, 671, 673, 35, 37, 52, 58, 73, 83, 98, 112, 127, 145, 1603 160, 182, 197, 223, 238, 268, 283, 317, 332, 370, 385, 427, 442, 1604 488, 503, 552, 564, 613, 621, 670, 674, 723, 36, 53, 57, 74, 1605 82, 99, 111, 128, 144, 161, 181, 198, 222, 239, 267, 284, 316, 1606 333, 369, 386, 426, 443, 487, 504, 551, 565, 612, 622, 669, 675, 1607 722, 724, 54, 56, 75, 81, 100, 110, 129, 143, 162, 180, 199, 1608 221, 240, 266, 285, 315, 334, 368, 387, 425, 444, 486, 505, 550, 1609 566, 611, 623, 668, 676, 721, 725, 770, 55, 76, 80, 101, 109, 1610 130, 142, 163, 179, 200, 220, 241, 265, 286, 314, 335, 367, 388, 1611 424, 445, 485, 506, 549, 567, 610, 624, 667, 677, 720, 726, 769, 1612 771, 77, 79, 102, 108, 131, 141, 164, 178, 201, 219, 242, 264, 1613 287, 313, 336, 366, 389, 423, 446, 484, 507, 548, 568, 609, 625, 1614 666, 678, 719, 727, 768, 772, 813, 78, 103, 107, 132, 140, 165, 1615 177, 202, 218, 243, 263, 288, 312, 337, 365, 390, 422, 447, 483, 1616 508, 547, 569, 608, 626, 665, 679, 718, 728, 767, 773, 812, 814, 1617 104, 106, 133, 139, 166, 176, 203, 217, 244, 262, 289, 311, 338, 1618 364, 391, 421, 448, 482, 509, 546, 570, 607, 627, 664, 680, 717, 1619 729, 766, 774, 811, 815, 852, 105, 134, 138, 167, 175, 204, 216, 1620 245, 261, 290, 310, 339, 363, 392, 420, 449, 481, 510, 545, 571, 1621 606, 628, 663, 681, 716, 730, 765, 775, 810, 816, 851, 853, 135, 1622 137, 168, 174, 205, 215, 246, 260, 291, 309, 340, 362, 393, 419, 1623 450, 480, 511, 544, 572, 605, 629, 662, 682, 715, 731, 764, 776, 1624 809, 817, 850, 854, 887, 136, 169, 173, 206, 214, 247, 259, 292, 1625 308, 341, 361, 394, 418, 451, 479, 512, 543, 573, 604, 630, 661, 1626 683, 714, 732, 763, 777, 808, 818, 849, 855, 886, 888, 170, 172, 1627 207, 213, 248, 258, 293, 307, 342, 360, 395, 417, 452, 478, 513, 1628 542, 574, 603, 631, 660, 684, 713, 733, 762, 778, 807, 819, 848, 1629 856, 885, 889, 918, 171, 208, 212, 249, 257, 294, 306, 343, 359, 1630 396, 416, 453, 477, 514, 541, 575, 602, 632, 659, 685, 712, 734, 1631 761, 779, 806, 820, 847, 857, 884, 890, 917, 919, 209, 211, 250, 1632 256, 295, 305, 344, 358, 397, 415, 454, 476, 515, 540, 576, 601, 1633 633, 658, 686, 711, 735, 760, 780, 805, 821, 846, 858, 883, 891, 1634 916, 920, 945, 210, 251, 255, 296, 304, 345, 357, 398, 414, 455, 1635 475, 516, 539, 577, 600, 634, 657, 687, 710, 736, 759, 781, 804, 1636 822, 845, 859, 882, 892, 915, 921, 944, 946, 252, 254, 297, 303, 1637 346, 356, 399, 413, 456, 474, 517, 538, 578, 599, 635, 656, 688, 1638 709, 737, 758, 782, 803, 823, 844, 860, 881, 893, 914, 922, 943, 1639 947, 968, 253, 298, 302, 347, 355, 400, 412, 457, 473, 518, 537, 1640 579, 598, 636, 655, 689, 708, 738, 757, 783, 802, 824, 843, 861, 1641 880, 894, 913, 923, 942, 948, 967, 969, 299, 301, 348, 354, 401, 1642 411, 458, 472, 519, 536, 580, 597, 637, 654, 690, 707, 739, 756, 1643 784, 801, 825, 842, 862, 879, 895, 912, 924, 941, 949, 966, 970, 1644 987, 300, 349, 353, 402, 410, 459, 471, 520, 535, 581, 596, 638, 1645 653, 691, 706, 740, 755, 785, 800, 826, 841, 863, 878, 896, 911, 1646 925, 940, 950, 965, 971, 986, 988, 350, 352, 403, 409, 460, 470, 1647 521, 534, 582, 595, 639, 652, 692, 705, 741, 754, 786, 799, 827, 1648 840, 864, 877, 897, 910, 926, 939, 951, 964, 972, 985, 989, 1002, 1649 351, 404, 408, 461, 469, 522, 533, 583, 594, 640, 651, 693, 704, 1650 742, 753, 787, 798, 828, 839, 865, 876, 898, 909, 927, 938, 952, 1651 963, 973, 984, 990, 1001, 1003, 405, 407, 462, 468, 523, 532, 584, 1652 593, 641, 650, 694, 703, 743, 752, 788, 797, 829, 838, 866, 875, 1653 899, 908, 928, 937, 953, 962, 974, 983, 991, 1000, 1004, 1013, 406, 1654 463, 467, 524, 531, 585, 592, 642, 649, 695, 702, 744, 751, 789, 1655 796, 830, 837, 867, 874, 900, 907, 929, 936, 954, 961, 975, 982, 1656 992, 999, 1005, 1012, 1014, 464, 466, 525, 530, 586, 591, 643, 648, 1657 696, 701, 745, 750, 790, 795, 831, 836, 868, 873, 901, 906, 930, 1658 935, 955, 960, 976, 981, 993, 998, 1006, 1011, 1015, 1020, 465, 526, 1659 529, 587, 590, 644, 647, 697, 700, 746, 749, 791, 794, 832, 835, 1660 869, 872, 902, 905, 931, 934, 956, 959, 977, 980, 994, 997, 1007, 1661 1010, 1016, 1019, 1021, 527, 528, 588, 589, 645, 646, 698, 699, 747, 1662 748, 792, 793, 833, 834, 870, 871, 903, 904, 932, 933, 957, 958, 1663 978, 979, 995, 996, 1008, 1009, 1017, 1018, 1022, 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 }; 2039