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