media/libvpx/vp9/common/vp9_scan.c

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
     3  *
     4  *  Use of this source code is governed by a BSD-style license
     5  *  that can be found in the LICENSE file in the root of the source
     6  *  tree. An additional intellectual property rights grant can be found
     7  *  in the file PATENTS.  All contributing project authors may
     8  *  be found in the AUTHORS file in the root of the source tree.
     9  */
    11 #include <assert.h>
    13 #include "vp9/common/vp9_scan.h"
    15 DECLARE_ALIGNED(16, const int16_t, vp9_default_scan_4x4[16]) = {
    16   0,  4,  1,  5,
    17   8,  2, 12,  9,
    18   3,  6, 13, 10,
    19   7, 14, 11, 15,
    20 };
    22 DECLARE_ALIGNED(16, const int16_t, vp9_col_scan_4x4[16]) = {
    23   0,  4,  8,  1,
    24   12,  5,  9,  2,
    25   13,  6, 10,  3,
    26   7, 14, 11, 15,
    27 };
    29 DECLARE_ALIGNED(16, const int16_t, vp9_row_scan_4x4[16]) = {
    30   0,  1,  4,  2,
    31   5,  3,  6,  8,
    32   9,  7, 12, 10,
    33   13, 11, 14, 15,
    34 };
    36 DECLARE_ALIGNED(16, const int16_t, vp9_default_scan_8x8[64]) = {
    37   0,  8,  1, 16,  9,  2, 17, 24,
    38   10,  3, 18, 25, 32, 11,  4, 26,
    39   33, 19, 40, 12, 34, 27,  5, 41,
    40   20, 48, 13, 35, 42, 28, 21,  6,
    41   49, 56, 36, 43, 29,  7, 14, 50,
    42   57, 44, 22, 37, 15, 51, 58, 30,
    43   45, 23, 52, 59, 38, 31, 60, 53,
    44   46, 39, 61, 54, 47, 62, 55, 63,
    45 };
    47 DECLARE_ALIGNED(16, const int16_t, vp9_col_scan_8x8[64]) = {
    48   0,  8, 16,  1, 24,  9, 32, 17,
    49   2, 40, 25, 10, 33, 18, 48,  3,
    50   26, 41, 11, 56, 19, 34,  4, 49,
    51   27, 42, 12, 35, 20, 57, 50, 28,
    52   5, 43, 13, 36, 58, 51, 21, 44,
    53   6, 29, 59, 37, 14, 52, 22,  7,
    54   45, 60, 30, 15, 38, 53, 23, 46,
    55   31, 61, 39, 54, 47, 62, 55, 63,
    56 };
    58 DECLARE_ALIGNED(16, const int16_t, vp9_row_scan_8x8[64]) = {
    59   0,  1,  2,  8,  9,  3, 16, 10,
    60   4, 17, 11, 24,  5, 18, 25, 12,
    61   19, 26, 32,  6, 13, 20, 33, 27,
    62   7, 34, 40, 21, 28, 41, 14, 35,
    63   48, 42, 29, 36, 49, 22, 43, 15,
    64   56, 37, 50, 44, 30, 57, 23, 51,
    65   58, 45, 38, 52, 31, 59, 53, 46,
    66   60, 39, 61, 47, 54, 55, 62, 63,
    67 };
    69 DECLARE_ALIGNED(16, const int16_t, vp9_default_scan_16x16[256]) = {
    70   0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 64, 34, 49, 19, 65, 80,
    71   50, 4, 35, 66, 20, 81, 96, 51, 5, 36, 82, 97, 67, 112, 21, 52,
    72   98, 37, 83, 113, 6, 68, 128, 53, 22, 99, 114, 84, 7, 129, 38, 69,
    73   100, 115, 144, 130, 85, 54, 23, 8, 145, 39, 70, 116, 101, 131, 160, 146,
    74   55, 86, 24, 71, 132, 117, 161, 40, 9, 102, 147, 176, 162, 87, 56, 25,
    75   133, 118, 177, 148, 72, 103, 41, 163, 10, 192, 178, 88, 57, 134, 149, 119,
    76   26, 164, 73, 104, 193, 42, 179, 208, 11, 135, 89, 165, 120, 150, 58, 194,
    77   180, 27, 74, 209, 105, 151, 136, 43, 90, 224, 166, 195, 181, 121, 210, 59,
    78   12, 152, 106, 167, 196, 75, 137, 225, 211, 240, 182, 122, 91, 28, 197, 13,
    79   226, 168, 183, 153, 44, 212, 138, 107, 241, 60, 29, 123, 198, 184, 227, 169,
    80   242, 76, 213, 154, 45, 92, 14, 199, 139, 61, 228, 214, 170, 185, 243, 108,
    81   77, 155, 30, 15, 200, 229, 124, 215, 244, 93, 46, 186, 171, 201, 109, 140,
    82   230, 62, 216, 245, 31, 125, 78, 156, 231, 47, 187, 202, 217, 94, 246, 141,
    83   63, 232, 172, 110, 247, 157, 79, 218, 203, 126, 233, 188, 248, 95, 173, 142,
    84   219, 111, 249, 234, 158, 127, 189, 204, 250, 235, 143, 174, 220, 205, 159,
    85   251,
    86   190, 221, 175, 236, 237, 191, 206, 252, 222, 253, 207, 238, 223, 254, 239,
    87   255,
    88 };
    90 DECLARE_ALIGNED(16, const int16_t, vp9_col_scan_16x16[256]) = {
    91   0, 16, 32, 48, 1, 64, 17, 80, 33, 96, 49, 2, 65, 112, 18, 81,
    92   34, 128, 50, 97, 3, 66, 144, 19, 113, 35, 82, 160, 98, 51, 129, 4,
    93   67, 176, 20, 114, 145, 83, 36, 99, 130, 52, 192, 5, 161, 68, 115, 21,
    94   146, 84, 208, 177, 37, 131, 100, 53, 162, 224, 69, 6, 116, 193, 147, 85,
    95   22, 240, 132, 38, 178, 101, 163, 54, 209, 117, 70, 7, 148, 194, 86, 179,
    96   225, 23, 133, 39, 164, 8, 102, 210, 241, 55, 195, 118, 149, 71, 180, 24,
    97   87, 226, 134, 165, 211, 40, 103, 56, 72, 150, 196, 242, 119, 9, 181, 227,
    98   88, 166, 25, 135, 41, 104, 212, 57, 151, 197, 120, 73, 243, 182, 136, 167,
    99   213, 89, 10, 228, 105, 152, 198, 26, 42, 121, 183, 244, 168, 58, 137, 229,
   100   74, 214, 90, 153, 199, 184, 11, 106, 245, 27, 122, 230, 169, 43, 215, 59,
   101   200, 138, 185, 246, 75, 12, 91, 154, 216, 231, 107, 28, 44, 201, 123, 170,
   102   60, 247, 232, 76, 139, 13, 92, 217, 186, 248, 155, 108, 29, 124, 45, 202,
   103   233, 171, 61, 14, 77, 140, 15, 249, 93, 30, 187, 156, 218, 46, 109, 125,
   104   62, 172, 78, 203, 31, 141, 234, 94, 47, 188, 63, 157, 110, 250, 219, 79,
   105   126, 204, 173, 142, 95, 189, 111, 235, 158, 220, 251, 127, 174, 143, 205,
   106   236,
   107   159, 190, 221, 252, 175, 206, 237, 191, 253, 222, 238, 207, 254, 223, 239,
   108   255,
   109 };
   111 DECLARE_ALIGNED(16, const int16_t, vp9_row_scan_16x16[256]) = {
   112   0, 1, 2, 16, 3, 17, 4, 18, 32, 5, 33, 19, 6, 34, 48, 20,
   113   49, 7, 35, 21, 50, 64, 8, 36, 65, 22, 51, 37, 80, 9, 66, 52,
   114   23, 38, 81, 67, 10, 53, 24, 82, 68, 96, 39, 11, 54, 83, 97, 69,
   115   25, 98, 84, 40, 112, 55, 12, 70, 99, 113, 85, 26, 41, 56, 114, 100,
   116   13, 71, 128, 86, 27, 115, 101, 129, 42, 57, 72, 116, 14, 87, 130, 102,
   117   144, 73, 131, 117, 28, 58, 15, 88, 43, 145, 103, 132, 146, 118, 74, 160,
   118   89, 133, 104, 29, 59, 147, 119, 44, 161, 148, 90, 105, 134, 162, 120, 176,
   119   75, 135, 149, 30, 60, 163, 177, 45, 121, 91, 106, 164, 178, 150, 192, 136,
   120   165, 179, 31, 151, 193, 76, 122, 61, 137, 194, 107, 152, 180, 208, 46, 166,
   121   167, 195, 92, 181, 138, 209, 123, 153, 224, 196, 77, 168, 210, 182, 240, 108,
   122   197, 62, 154, 225, 183, 169, 211, 47, 139, 93, 184, 226, 212, 241, 198, 170,
   123   124, 155, 199, 78, 213, 185, 109, 227, 200, 63, 228, 242, 140, 214, 171, 186,
   124   156, 229, 243, 125, 94, 201, 244, 215, 216, 230, 141, 187, 202, 79, 172, 110,
   125   157, 245, 217, 231, 95, 246, 232, 126, 203, 247, 233, 173, 218, 142, 111,
   126   158,
   127   188, 248, 127, 234, 219, 249, 189, 204, 143, 174, 159, 250, 235, 205, 220,
   128   175,
   129   190, 251, 221, 191, 206, 236, 207, 237, 252, 222, 253, 223, 238, 239, 254,
   130   255,
   131 };
   133 DECLARE_ALIGNED(16, const int16_t, vp9_default_scan_32x32[1024]) = {
   134   0, 32, 1, 64, 33, 2, 96, 65, 34, 128, 3, 97, 66, 160,
   135   129, 35, 98, 4, 67, 130, 161, 192, 36, 99, 224, 5, 162, 193,
   136   68, 131, 37, 100,
   137   225, 194, 256, 163, 69, 132, 6, 226, 257, 288, 195, 101, 164, 38,
   138   258, 7, 227, 289, 133, 320, 70, 196, 165, 290, 259, 228, 39, 321,
   139   102, 352, 8, 197,
   140   71, 134, 322, 291, 260, 353, 384, 229, 166, 103, 40, 354, 323, 292,
   141   135, 385, 198, 261, 72, 9, 416, 167, 386, 355, 230, 324, 104, 293,
   142   41, 417, 199, 136,
   143   262, 387, 448, 325, 356, 10, 73, 418, 231, 168, 449, 294, 388, 105,
   144   419, 263, 42, 200, 357, 450, 137, 480, 74, 326, 232, 11, 389, 169,
   145   295, 420, 106, 451,
   146   481, 358, 264, 327, 201, 43, 138, 512, 482, 390, 296, 233, 170, 421,
   147   75, 452, 359, 12, 513, 265, 483, 328, 107, 202, 514, 544, 422, 391,
   148   453, 139, 44, 234,
   149   484, 297, 360, 171, 76, 515, 545, 266, 329, 454, 13, 423, 203, 108,
   150   546, 485, 576, 298, 235, 140, 361, 330, 172, 547, 45, 455, 267, 577,
   151   486, 77, 204, 362,
   152   608, 14, 299, 578, 109, 236, 487, 609, 331, 141, 579, 46, 15, 173,
   153   610, 363, 78, 205, 16, 110, 237, 611, 142, 47, 174, 79, 206, 17,
   154   111, 238, 48, 143,
   155   80, 175, 112, 207, 49, 18, 239, 81, 113, 19, 50, 82, 114, 51,
   156   83, 115, 640, 516, 392, 268, 144, 20, 672, 641, 548, 517, 424,
   157   393, 300, 269, 176, 145,
   158   52, 21, 704, 673, 642, 580, 549, 518, 456, 425, 394, 332, 301,
   159   270, 208, 177, 146, 84, 53, 22, 736, 705, 674, 643, 612, 581,
   160   550, 519, 488, 457, 426, 395,
   161   364, 333, 302, 271, 240, 209, 178, 147, 116, 85, 54, 23, 737,
   162   706, 675, 613, 582, 551, 489, 458, 427, 365, 334, 303, 241,
   163   210, 179, 117, 86, 55, 738, 707,
   164   614, 583, 490, 459, 366, 335, 242, 211, 118, 87, 739, 615, 491,
   165   367, 243, 119, 768, 644, 520, 396, 272, 148, 24, 800, 769, 676,
   166   645, 552, 521, 428, 397, 304,
   167   273, 180, 149, 56, 25, 832, 801, 770, 708, 677, 646, 584, 553,
   168   522, 460, 429, 398, 336, 305, 274, 212, 181, 150, 88, 57, 26,
   169   864, 833, 802, 771, 740, 709,
   170   678, 647, 616, 585, 554, 523, 492, 461, 430, 399, 368, 337, 306,
   171   275, 244, 213, 182, 151, 120, 89, 58, 27, 865, 834, 803, 741,
   172   710, 679, 617, 586, 555, 493,
   173   462, 431, 369, 338, 307, 245, 214, 183, 121, 90, 59, 866, 835,
   174   742, 711, 618, 587, 494, 463, 370, 339, 246, 215, 122, 91, 867,
   175   743, 619, 495, 371, 247, 123,
   176   896, 772, 648, 524, 400, 276, 152, 28, 928, 897, 804, 773, 680,
   177   649, 556, 525, 432, 401, 308, 277, 184, 153, 60, 29, 960, 929,
   178   898, 836, 805, 774, 712, 681,
   179   650, 588, 557, 526, 464, 433, 402, 340, 309, 278, 216, 185, 154,
   180   92, 61, 30, 992, 961, 930, 899, 868, 837, 806, 775, 744, 713, 682,
   181   651, 620, 589, 558, 527,
   182   496, 465, 434, 403, 372, 341, 310, 279, 248, 217, 186, 155, 124,
   183   93, 62, 31, 993, 962, 931, 869, 838, 807, 745, 714, 683, 621, 590,
   184   559, 497, 466, 435, 373,
   185   342, 311, 249, 218, 187, 125, 94, 63, 994, 963, 870, 839, 746, 715,
   186   622, 591, 498, 467, 374, 343, 250, 219, 126, 95, 995, 871, 747, 623,
   187   499, 375, 251, 127,
   188   900, 776, 652, 528, 404, 280, 156, 932, 901, 808, 777, 684, 653, 560,
   189   529, 436, 405, 312, 281, 188, 157, 964, 933, 902, 840, 809, 778, 716,
   190   685, 654, 592, 561,
   191   530, 468, 437, 406, 344, 313, 282, 220, 189, 158, 996, 965, 934, 903,
   192   872, 841, 810, 779, 748, 717, 686, 655, 624, 593, 562, 531, 500, 469,
   193   438, 407, 376, 345,
   194   314, 283, 252, 221, 190, 159, 997, 966, 935, 873, 842, 811, 749, 718,
   195   687, 625, 594, 563, 501, 470, 439, 377, 346, 315, 253, 222, 191, 998,
   196   967, 874, 843, 750,
   197   719, 626, 595, 502, 471, 378, 347, 254, 223, 999, 875, 751, 627, 503,
   198   379, 255, 904, 780, 656, 532, 408, 284, 936, 905, 812, 781, 688, 657,
   199   564, 533, 440, 409,
   200   316, 285, 968, 937, 906, 844, 813, 782, 720, 689, 658, 596, 565, 534,
   201   472, 441, 410, 348, 317, 286, 1000, 969, 938, 907, 876, 845, 814, 783,
   202   752, 721, 690, 659,
   203   628, 597, 566, 535, 504, 473, 442, 411, 380, 349, 318, 287, 1001, 970,
   204   939, 877, 846, 815, 753, 722, 691, 629, 598, 567, 505, 474, 443, 381,
   205   350, 319, 1002, 971,
   206   878, 847, 754, 723, 630, 599, 506, 475, 382, 351, 1003, 879, 755, 631,
   207   507, 383, 908, 784, 660, 536, 412, 940, 909, 816, 785, 692, 661, 568,
   208   537, 444, 413, 972,
   209   941, 910, 848, 817, 786, 724, 693, 662, 600, 569, 538, 476, 445, 414,
   210   1004, 973, 942, 911, 880, 849, 818, 787, 756, 725, 694, 663, 632, 601,
   211   570, 539, 508, 477,
   212   446, 415, 1005, 974, 943, 881, 850, 819, 757, 726, 695, 633, 602, 571,
   213   509, 478, 447, 1006, 975, 882, 851, 758, 727, 634, 603, 510, 479,
   214   1007, 883, 759, 635, 511,
   215   912, 788, 664, 540, 944, 913, 820, 789, 696, 665, 572, 541, 976, 945,
   216   914, 852, 821, 790, 728, 697, 666, 604, 573, 542, 1008, 977, 946, 915,
   217   884, 853, 822, 791,
   218   760, 729, 698, 667, 636, 605, 574, 543, 1009, 978, 947, 885, 854, 823,
   219   761, 730, 699, 637, 606, 575, 1010, 979, 886, 855, 762, 731, 638, 607,
   220   1011, 887, 763, 639,
   221   916, 792, 668, 948, 917, 824, 793, 700, 669, 980, 949, 918, 856, 825,
   222   794, 732, 701, 670, 1012, 981, 950, 919, 888, 857, 826, 795, 764, 733,
   223   702, 671, 1013, 982,
   224   951, 889, 858, 827, 765, 734, 703, 1014, 983, 890, 859, 766, 735, 1015,
   225   891, 767, 920, 796, 952, 921, 828, 797, 984, 953, 922, 860, 829, 798,
   226   1016, 985, 954, 923,
   227   892, 861, 830, 799, 1017, 986, 955, 893, 862, 831, 1018, 987, 894, 863,
   228   1019, 895, 924, 956, 925, 988, 957, 926, 1020, 989, 958, 927, 1021,
   229   990, 959, 1022, 991, 1023,
   230 };
   232 // Neighborhood 5-tuples for various scans and blocksizes,
   233 // in {top, left, topleft, topright, bottomleft} order
   234 // for each position in raster scan order.
   235 // -1 indicates the neighbor does not exist.
   236 DECLARE_ALIGNED(16, int16_t,
   237                 vp9_default_scan_4x4_neighbors[17 * MAX_NEIGHBORS]);
   238 DECLARE_ALIGNED(16, int16_t,
   239                 vp9_col_scan_4x4_neighbors[17 * MAX_NEIGHBORS]);
   240 DECLARE_ALIGNED(16, int16_t,
   241                 vp9_row_scan_4x4_neighbors[17 * MAX_NEIGHBORS]);
   242 DECLARE_ALIGNED(16, int16_t,
   243                 vp9_col_scan_8x8_neighbors[65 * MAX_NEIGHBORS]);
   244 DECLARE_ALIGNED(16, int16_t,
   245                 vp9_row_scan_8x8_neighbors[65 * MAX_NEIGHBORS]);
   246 DECLARE_ALIGNED(16, int16_t,
   247                 vp9_default_scan_8x8_neighbors[65 * MAX_NEIGHBORS]);
   248 DECLARE_ALIGNED(16, int16_t,
   249                 vp9_col_scan_16x16_neighbors[257 * MAX_NEIGHBORS]);
   250 DECLARE_ALIGNED(16, int16_t,
   251                 vp9_row_scan_16x16_neighbors[257 * MAX_NEIGHBORS]);
   252 DECLARE_ALIGNED(16, int16_t,
   253                 vp9_default_scan_16x16_neighbors[257 * MAX_NEIGHBORS]);
   254 DECLARE_ALIGNED(16, int16_t,
   255                 vp9_default_scan_32x32_neighbors[1025 * MAX_NEIGHBORS]);
   258 DECLARE_ALIGNED(16, int16_t, vp9_default_iscan_4x4[16]);
   259 DECLARE_ALIGNED(16, int16_t, vp9_col_iscan_4x4[16]);
   260 DECLARE_ALIGNED(16, int16_t, vp9_row_iscan_4x4[16]);
   261 DECLARE_ALIGNED(16, int16_t, vp9_col_iscan_8x8[64]);
   262 DECLARE_ALIGNED(16, int16_t, vp9_row_iscan_8x8[64]);
   263 DECLARE_ALIGNED(16, int16_t, vp9_default_iscan_8x8[64]);
   264 DECLARE_ALIGNED(16, int16_t, vp9_col_iscan_16x16[256]);
   265 DECLARE_ALIGNED(16, int16_t, vp9_row_iscan_16x16[256]);
   266 DECLARE_ALIGNED(16, int16_t, vp9_default_iscan_16x16[256]);
   267 DECLARE_ALIGNED(16, int16_t, vp9_default_iscan_32x32[1024]);
   269 static int find_in_scan(const int16_t *scan, int l, int idx) {
   270   int n, l2 = l * l;
   271   for (n = 0; n < l2; n++) {
   272     int rc = scan[n];
   273     if (rc == idx)
   274       return  n;
   275   }
   276   assert(0);
   277   return -1;
   278 }
   279 static void init_scan_neighbors(const int16_t *scan,
   280                                 int16_t *iscan,
   281                                 int l, int16_t *neighbors) {
   282   int l2 = l * l;
   283   int n, i, j;
   285   // dc doesn't use this type of prediction
   286   neighbors[MAX_NEIGHBORS * 0 + 0] = 0;
   287   neighbors[MAX_NEIGHBORS * 0 + 1] = 0;
   288   iscan[0] = find_in_scan(scan, l, 0);
   289   for (n = 1; n < l2; n++) {
   290     int rc = scan[n];
   291     iscan[n] = find_in_scan(scan, l, n);
   292     i = rc / l;
   293     j = rc % l;
   294     if (i > 0 && j > 0) {
   295       // col/row scan is used for adst/dct, and generally means that
   296       // energy decreases to zero much faster in the dimension in
   297       // which ADST is used compared to the direction in which DCT
   298       // is used. Likewise, we find much higher correlation between
   299       // coefficients within the direction in which DCT is used.
   300       // Therefore, if we use ADST/DCT, prefer the DCT neighbor coeff
   301       // as a context. If ADST or DCT is used in both directions, we
   302       // use the combination of the two as a context.
   303       int a = (i - 1) * l + j;
   304       int b =  i      * l + j - 1;
   305       if (scan == vp9_col_scan_4x4 || scan == vp9_col_scan_8x8 ||
   306           scan == vp9_col_scan_16x16) {
   307         // in the col/row scan cases (as well as left/top edge cases), we set
   308         // both contexts to the same value, so we can branchlessly do a+b+1>>1
   309         // which automatically becomes a if a == b
   310         neighbors[MAX_NEIGHBORS * n + 0] =
   311         neighbors[MAX_NEIGHBORS * n + 1] = a;
   312       } else if (scan == vp9_row_scan_4x4 || scan == vp9_row_scan_8x8 ||
   313                  scan == vp9_row_scan_16x16) {
   314         neighbors[MAX_NEIGHBORS * n + 0] =
   315         neighbors[MAX_NEIGHBORS * n + 1] = b;
   316       } else {
   317         neighbors[MAX_NEIGHBORS * n + 0] = a;
   318         neighbors[MAX_NEIGHBORS * n + 1] = b;
   319       }
   320     } else if (i > 0) {
   321       neighbors[MAX_NEIGHBORS * n + 0] =
   322       neighbors[MAX_NEIGHBORS * n + 1] = (i - 1) * l + j;
   323     } else {
   324       assert(j > 0);
   325       neighbors[MAX_NEIGHBORS * n + 0] =
   326       neighbors[MAX_NEIGHBORS * n + 1] =  i      * l + j - 1;
   327     }
   328     assert(iscan[neighbors[MAX_NEIGHBORS * n + 0]] < n);
   329   }
   330   // one padding item so we don't have to add branches in code to handle
   331   // calls to get_coef_context() for the token after the final dc token
   332   neighbors[MAX_NEIGHBORS * l2 + 0] = 0;
   333   neighbors[MAX_NEIGHBORS * l2 + 1] = 0;
   334 }
   336 void vp9_init_neighbors() {
   337   init_scan_neighbors(vp9_default_scan_4x4, vp9_default_iscan_4x4, 4,
   338                       vp9_default_scan_4x4_neighbors);
   339   init_scan_neighbors(vp9_row_scan_4x4, vp9_row_iscan_4x4, 4,
   340                       vp9_row_scan_4x4_neighbors);
   341   init_scan_neighbors(vp9_col_scan_4x4, vp9_col_iscan_4x4, 4,
   342                       vp9_col_scan_4x4_neighbors);
   343   init_scan_neighbors(vp9_default_scan_8x8, vp9_default_iscan_8x8, 8,
   344                       vp9_default_scan_8x8_neighbors);
   345   init_scan_neighbors(vp9_row_scan_8x8, vp9_row_iscan_8x8, 8,
   346                       vp9_row_scan_8x8_neighbors);
   347   init_scan_neighbors(vp9_col_scan_8x8, vp9_col_iscan_8x8, 8,
   348                       vp9_col_scan_8x8_neighbors);
   349   init_scan_neighbors(vp9_default_scan_16x16, vp9_default_iscan_16x16, 16,
   350                       vp9_default_scan_16x16_neighbors);
   351   init_scan_neighbors(vp9_row_scan_16x16, vp9_row_iscan_16x16, 16,
   352                       vp9_row_scan_16x16_neighbors);
   353   init_scan_neighbors(vp9_col_scan_16x16, vp9_col_iscan_16x16, 16,
   354                       vp9_col_scan_16x16_neighbors);
   355   init_scan_neighbors(vp9_default_scan_32x32, vp9_default_iscan_32x32, 32,
   356                       vp9_default_scan_32x32_neighbors);
   357 }

mercurial