32 #include "config_components.h" 
   36     65536, 65025, 64516, 64009, 63504, 63001, 62500, 62001, 61504, 61009, 60516, 60025, 59536, 59049, 58564, 58081,
 
   37     57600, 57121, 56644, 56169, 55696, 55225, 54756, 54289, 53824, 53361, 52900, 52441, 51984, 51529, 51076, 50625,
 
   38     50176, 49729, 49284, 48841, 48400, 47961, 47524, 47089, 46656, 46225, 45796, 45369, 44944, 44521, 44100, 43681,
 
   39     43264, 42849, 42436, 42025, 41616, 41209, 40804, 40401, 40000, 39601, 39204, 38809, 38416, 38025, 37636, 37249,
 
   40     36864, 36481, 36100, 35721, 35344, 34969, 34596, 34225, 33856, 33489, 33124, 32761, 32400, 32041, 31684, 31329,
 
   41     30976, 30625, 30276, 29929, 29584, 29241, 28900, 28561, 28224, 27889, 27556, 27225, 26896, 26569, 26244, 25921,
 
   42     25600, 25281, 24964, 24649, 24336, 24025, 23716, 23409, 23104, 22801, 22500, 22201, 21904, 21609, 21316, 21025,
 
   43     20736, 20449, 20164, 19881, 19600, 19321, 19044, 18769, 18496, 18225, 17956, 17689, 17424, 17161, 16900, 16641,
 
   44     16384, 16129, 15876, 15625, 15376, 15129, 14884, 14641, 14400, 14161, 13924, 13689, 13456, 13225, 12996, 12769,
 
   45     12544, 12321, 12100, 11881, 11664, 11449, 11236, 11025, 10816, 10609, 10404, 10201, 10000,  9801,  9604,  9409,
 
   46      9216,  9025,  8836,  8649,  8464,  8281,  8100,  7921,  7744,  7569,  7396,  7225,  7056,  6889,  6724,  6561,
 
   47      6400,  6241,  6084,  5929,  5776,  5625,  5476,  5329,  5184,  5041,  4900,  4761,  4624,  4489,  4356,  4225,
 
   48      4096,  3969,  3844,  3721,  3600,  3481,  3364,  3249,  3136,  3025,  2916,  2809,  2704,  2601,  2500,  2401,
 
   49      2304,  2209,  2116,  2025,  1936,  1849,  1764,  1681,  1600,  1521,  1444,  1369,  1296,  1225,  1156,  1089,
 
   50      1024,   961,   900,   841,   784,   729,   676,   625,   576,   529,   484,   441,   400,   361,   324,   289,
 
   51       256,   225,   196,   169,   144,   121,   100,    81,    64,    49,    36,    25,    16,     9,     4,     1,
 
   52         0,     1,     4,     9,    16,    25,    36,    49,    64,    81,   100,   121,   144,   169,   196,   225,
 
   53       256,   289,   324,   361,   400,   441,   484,   529,   576,   625,   676,   729,   784,   841,   900,   961,
 
   54      1024,  1089,  1156,  1225,  1296,  1369,  1444,  1521,  1600,  1681,  1764,  1849,  1936,  2025,  2116,  2209,
 
   55      2304,  2401,  2500,  2601,  2704,  2809,  2916,  3025,  3136,  3249,  3364,  3481,  3600,  3721,  3844,  3969,
 
   56      4096,  4225,  4356,  4489,  4624,  4761,  4900,  5041,  5184,  5329,  5476,  5625,  5776,  5929,  6084,  6241,
 
   57      6400,  6561,  6724,  6889,  7056,  7225,  7396,  7569,  7744,  7921,  8100,  8281,  8464,  8649,  8836,  9025,
 
   58      9216,  9409,  9604,  9801, 10000, 10201, 10404, 10609, 10816, 11025, 11236, 11449, 11664, 11881, 12100, 12321,
 
   59     12544, 12769, 12996, 13225, 13456, 13689, 13924, 14161, 14400, 14641, 14884, 15129, 15376, 15625, 15876, 16129,
 
   60     16384, 16641, 16900, 17161, 17424, 17689, 17956, 18225, 18496, 18769, 19044, 19321, 19600, 19881, 20164, 20449,
 
   61     20736, 21025, 21316, 21609, 21904, 22201, 22500, 22801, 23104, 23409, 23716, 24025, 24336, 24649, 24964, 25281,
 
   62     25600, 25921, 26244, 26569, 26896, 27225, 27556, 27889, 28224, 28561, 28900, 29241, 29584, 29929, 30276, 30625,
 
   63     30976, 31329, 31684, 32041, 32400, 32761, 33124, 33489, 33856, 34225, 34596, 34969, 35344, 35721, 36100, 36481,
 
   64     36864, 37249, 37636, 38025, 38416, 38809, 39204, 39601, 40000, 40401, 40804, 41209, 41616, 42025, 42436, 42849,
 
   65     43264, 43681, 44100, 44521, 44944, 45369, 45796, 46225, 46656, 47089, 47524, 47961, 48400, 48841, 49284, 49729,
 
   66     50176, 50625, 51076, 51529, 51984, 52441, 52900, 53361, 53824, 54289, 54756, 55225, 55696, 56169, 56644, 57121,
 
   67     57600, 58081, 58564, 59049, 59536, 60025, 60516, 61009, 61504, 62001, 62500, 63001, 63504, 64009, 64516, 65025,
 
   76     for (
i = 0; 
i < 
h; 
i++) {
 
   77         s    += sq[pix1[0] - pix2[0]];
 
   78         s    += sq[pix1[1] - pix2[1]];
 
   79         s    += sq[pix1[2] - pix2[2]];
 
   80         s    += sq[pix1[3] - pix2[3]];
 
   93     for (
i = 0; 
i < 
h; 
i++) {
 
   94         s    += sq[pix1[0] - pix2[0]];
 
   95         s    += sq[pix1[1] - pix2[1]];
 
   96         s    += sq[pix1[2] - pix2[2]];
 
   97         s    += sq[pix1[3] - pix2[3]];
 
   98         s    += sq[pix1[4] - pix2[4]];
 
   99         s    += sq[pix1[5] - pix2[5]];
 
  100         s    += sq[pix1[6] - pix2[6]];
 
  101         s    += sq[pix1[7] - pix2[7]];
 
  114     for (
i = 0; 
i < 
h; 
i++) {
 
  115         s += sq[pix1[0]  - pix2[0]];
 
  116         s += sq[pix1[1]  - pix2[1]];
 
  117         s += sq[pix1[2]  - pix2[2]];
 
  118         s += sq[pix1[3]  - pix2[3]];
 
  119         s += sq[pix1[4]  - pix2[4]];
 
  120         s += sq[pix1[5]  - pix2[5]];
 
  121         s += sq[pix1[6]  - pix2[6]];
 
  122         s += sq[pix1[7]  - pix2[7]];
 
  123         s += sq[pix1[8]  - pix2[8]];
 
  124         s += sq[pix1[9]  - pix2[9]];
 
  125         s += sq[pix1[10] - pix2[10]];
 
  126         s += sq[pix1[11] - pix2[11]];
 
  127         s += sq[pix1[12] - pix2[12]];
 
  128         s += sq[pix1[13] - pix2[13]];
 
  129         s += sq[pix1[14] - pix2[14]];
 
  130         s += sq[pix1[15] - pix2[15]];
 
  142     for (
i = 0; 
i < 64; 
i++)
 
  147 #define avg2(a, b) (((a) + (b) + 1) >> 1) 
  148 #define avg4(a, b, c, d) (((a) + (b) + (c) + (d) + 2) >> 2) 
  155     for (
i = 0; 
i < 
h; 
i++) {
 
  156         s    += 
abs(pix1[0]  - pix2[0]);
 
  157         s    += 
abs(pix1[1]  - pix2[1]);
 
  158         s    += 
abs(pix1[2]  - pix2[2]);
 
  159         s    += 
abs(pix1[3]  - pix2[3]);
 
  160         s    += 
abs(pix1[4]  - pix2[4]);
 
  161         s    += 
abs(pix1[5]  - pix2[5]);
 
  162         s    += 
abs(pix1[6]  - pix2[6]);
 
  163         s    += 
abs(pix1[7]  - pix2[7]);
 
  164         s    += 
abs(pix1[8]  - pix2[8]);
 
  165         s    += 
abs(pix1[9]  - pix2[9]);
 
  166         s    += 
abs(pix1[10] - pix2[10]);
 
  167         s    += 
abs(pix1[11] - pix2[11]);
 
  168         s    += 
abs(pix1[12] - pix2[12]);
 
  169         s    += 
abs(pix1[13] - pix2[13]);
 
  170         s    += 
abs(pix1[14] - pix2[14]);
 
  171         s    += 
abs(pix1[15] - pix2[15]);
 
  183 #define V(x) (pix1[x] - pix2[x]) 
  205     for (
i = 1; 
i < 
h; 
i++) {
 
  207         for (j = 1; j < 16; j++)
 
  222     for (
i = 0; 
i < 
h; 
i++) {
 
  223         s    += 
abs(pix1[0]  - 
avg2(pix2[0],  pix2[1]));
 
  224         s    += 
abs(pix1[1]  - 
avg2(pix2[1],  pix2[2]));
 
  225         s    += 
abs(pix1[2]  - 
avg2(pix2[2],  pix2[3]));
 
  226         s    += 
abs(pix1[3]  - 
avg2(pix2[3],  pix2[4]));
 
  227         s    += 
abs(pix1[4]  - 
avg2(pix2[4],  pix2[5]));
 
  228         s    += 
abs(pix1[5]  - 
avg2(pix2[5],  pix2[6]));
 
  229         s    += 
abs(pix1[6]  - 
avg2(pix2[6],  pix2[7]));
 
  230         s    += 
abs(pix1[7]  - 
avg2(pix2[7],  pix2[8]));
 
  231         s    += 
abs(pix1[8]  - 
avg2(pix2[8],  pix2[9]));
 
  232         s    += 
abs(pix1[9]  - 
avg2(pix2[9],  pix2[10]));
 
  233         s    += 
abs(pix1[10] - 
avg2(pix2[10], pix2[11]));
 
  234         s    += 
abs(pix1[11] - 
avg2(pix2[11], pix2[12]));
 
  235         s    += 
abs(pix1[12] - 
avg2(pix2[12], pix2[13]));
 
  236         s    += 
abs(pix1[13] - 
avg2(pix2[13], pix2[14]));
 
  237         s    += 
abs(pix1[14] - 
avg2(pix2[14], pix2[15]));
 
  238         s    += 
abs(pix1[15] - 
avg2(pix2[15], pix2[16]));
 
  249     const uint8_t *pix3 = pix2 + 
stride;
 
  251     for (
i = 0; 
i < 
h; 
i++) {
 
  252         s    += 
abs(pix1[0]  - 
avg2(pix2[0],  pix3[0]));
 
  253         s    += 
abs(pix1[1]  - 
avg2(pix2[1],  pix3[1]));
 
  254         s    += 
abs(pix1[2]  - 
avg2(pix2[2],  pix3[2]));
 
  255         s    += 
abs(pix1[3]  - 
avg2(pix2[3],  pix3[3]));
 
  256         s    += 
abs(pix1[4]  - 
avg2(pix2[4],  pix3[4]));
 
  257         s    += 
abs(pix1[5]  - 
avg2(pix2[5],  pix3[5]));
 
  258         s    += 
abs(pix1[6]  - 
avg2(pix2[6],  pix3[6]));
 
  259         s    += 
abs(pix1[7]  - 
avg2(pix2[7],  pix3[7]));
 
  260         s    += 
abs(pix1[8]  - 
avg2(pix2[8],  pix3[8]));
 
  261         s    += 
abs(pix1[9]  - 
avg2(pix2[9],  pix3[9]));
 
  262         s    += 
abs(pix1[10] - 
avg2(pix2[10], pix3[10]));
 
  263         s    += 
abs(pix1[11] - 
avg2(pix2[11], pix3[11]));
 
  264         s    += 
abs(pix1[12] - 
avg2(pix2[12], pix3[12]));
 
  265         s    += 
abs(pix1[13] - 
avg2(pix2[13], pix3[13]));
 
  266         s    += 
abs(pix1[14] - 
avg2(pix2[14], pix3[14]));
 
  267         s    += 
abs(pix1[15] - 
avg2(pix2[15], pix3[15]));
 
  279     const uint8_t *pix3 = pix2 + 
stride;
 
  281     for (
i = 0; 
i < 
h; 
i++) {
 
  282         s    += 
abs(pix1[0]  - 
avg4(pix2[0],  pix2[1],  pix3[0],  pix3[1]));
 
  283         s    += 
abs(pix1[1]  - 
avg4(pix2[1],  pix2[2],  pix3[1],  pix3[2]));
 
  284         s    += 
abs(pix1[2]  - 
avg4(pix2[2],  pix2[3],  pix3[2],  pix3[3]));
 
  285         s    += 
abs(pix1[3]  - 
avg4(pix2[3],  pix2[4],  pix3[3],  pix3[4]));
 
  286         s    += 
abs(pix1[4]  - 
avg4(pix2[4],  pix2[5],  pix3[4],  pix3[5]));
 
  287         s    += 
abs(pix1[5]  - 
avg4(pix2[5],  pix2[6],  pix3[5],  pix3[6]));
 
  288         s    += 
abs(pix1[6]  - 
avg4(pix2[6],  pix2[7],  pix3[6],  pix3[7]));
 
  289         s    += 
abs(pix1[7]  - 
avg4(pix2[7],  pix2[8],  pix3[7],  pix3[8]));
 
  290         s    += 
abs(pix1[8]  - 
avg4(pix2[8],  pix2[9],  pix3[8],  pix3[9]));
 
  291         s    += 
abs(pix1[9]  - 
avg4(pix2[9],  pix2[10], pix3[9],  pix3[10]));
 
  292         s    += 
abs(pix1[10] - 
avg4(pix2[10], pix2[11], pix3[10], pix3[11]));
 
  293         s    += 
abs(pix1[11] - 
avg4(pix2[11], pix2[12], pix3[11], pix3[12]));
 
  294         s    += 
abs(pix1[12] - 
avg4(pix2[12], pix2[13], pix3[12], pix3[13]));
 
  295         s    += 
abs(pix1[13] - 
avg4(pix2[13], pix2[14], pix3[13], pix3[14]));
 
  296         s    += 
abs(pix1[14] - 
avg4(pix2[14], pix2[15], pix3[14], pix3[15]));
 
  297         s    += 
abs(pix1[15] - 
avg4(pix2[15], pix2[16], pix3[15], pix3[16]));
 
  310     for (
i = 0; 
i < 
h; 
i++) {
 
  311         s    += 
abs(pix1[0] - pix2[0]);
 
  312         s    += 
abs(pix1[1] - pix2[1]);
 
  313         s    += 
abs(pix1[2] - pix2[2]);
 
  314         s    += 
abs(pix1[3] - pix2[3]);
 
  315         s    += 
abs(pix1[4] - pix2[4]);
 
  316         s    += 
abs(pix1[5] - pix2[5]);
 
  317         s    += 
abs(pix1[6] - pix2[6]);
 
  318         s    += 
abs(pix1[7] - pix2[7]);
 
  330 #define V(x) (pix1[x] - pix2[x]) 
  344     for (
i = 1; 
i < 
h; 
i++) {
 
  346         for (j = 1; j < 8; j++)
 
  361     for (
i = 0; 
i < 
h; 
i++) {
 
  362         s    += 
abs(pix1[0] - 
avg2(pix2[0], pix2[1]));
 
  363         s    += 
abs(pix1[1] - 
avg2(pix2[1], pix2[2]));
 
  364         s    += 
abs(pix1[2] - 
avg2(pix2[2], pix2[3]));
 
  365         s    += 
abs(pix1[3] - 
avg2(pix2[3], pix2[4]));
 
  366         s    += 
abs(pix1[4] - 
avg2(pix2[4], pix2[5]));
 
  367         s    += 
abs(pix1[5] - 
avg2(pix2[5], pix2[6]));
 
  368         s    += 
abs(pix1[6] - 
avg2(pix2[6], pix2[7]));
 
  369         s    += 
abs(pix1[7] - 
avg2(pix2[7], pix2[8]));
 
  380     const uint8_t *pix3 = pix2 + 
stride;
 
  382     for (
i = 0; 
i < 
h; 
i++) {
 
  383         s    += 
abs(pix1[0] - 
avg2(pix2[0], pix3[0]));
 
  384         s    += 
abs(pix1[1] - 
avg2(pix2[1], pix3[1]));
 
  385         s    += 
abs(pix1[2] - 
avg2(pix2[2], pix3[2]));
 
  386         s    += 
abs(pix1[3] - 
avg2(pix2[3], pix3[3]));
 
  387         s    += 
abs(pix1[4] - 
avg2(pix2[4], pix3[4]));
 
  388         s    += 
abs(pix1[5] - 
avg2(pix2[5], pix3[5]));
 
  389         s    += 
abs(pix1[6] - 
avg2(pix2[6], pix3[6]));
 
  390         s    += 
abs(pix1[7] - 
avg2(pix2[7], pix3[7]));
 
  402     const uint8_t *pix3 = pix2 + 
stride;
 
  404     for (
i = 0; 
i < 
h; 
i++) {
 
  405         s    += 
abs(pix1[0] - 
avg4(pix2[0], pix2[1], pix3[0], pix3[1]));
 
  406         s    += 
abs(pix1[1] - 
avg4(pix2[1], pix2[2], pix3[1], pix3[2]));
 
  407         s    += 
abs(pix1[2] - 
avg4(pix2[2], pix2[3], pix3[2], pix3[3]));
 
  408         s    += 
abs(pix1[3] - 
avg4(pix2[3], pix2[4], pix3[3], pix3[4]));
 
  409         s    += 
abs(pix1[4] - 
avg4(pix2[4], pix2[5], pix3[4], pix3[5]));
 
  410         s    += 
abs(pix1[5] - 
avg4(pix2[5], pix2[6], pix3[5], pix3[6]));
 
  411         s    += 
abs(pix1[6] - 
avg4(pix2[6], pix2[7], pix3[6], pix3[7]));
 
  412         s    += 
abs(pix1[7] - 
avg4(pix2[7], pix2[8], pix3[7], pix3[8]));
 
  423     int score1 = 0, score2 = 0, x, y;
 
  425     for (y = 0; y < 
h; y++) {
 
  426         for (x = 0; x < 16; x++)
 
  427             score1 += (
s1[x] - 
s2[x]) * (
s1[x] - 
s2[x]);
 
  429             for (x = 0; x < 15; x++)
 
  440         return score1 + 
FFABS(score2) * 
c->avctx->nsse_weight;
 
  442         return score1 + 
FFABS(score2) * 8;
 
  448     int score1 = 0, score2 = 0, x, y;
 
  450     for (y = 0; y < 
h; y++) {
 
  451         for (x = 0; x < 8; x++)
 
  452             score1 += (
s1[x] - 
s2[x]) * (
s1[x] - 
s2[x]);
 
  454             for (x = 0; x < 7; x++)
 
  465         return score1 + 
FFABS(score2) * 
c->avctx->nsse_weight;
 
  467         return score1 + 
FFABS(score2) * 8;
 
  481     memset(
cmp, 0, 
sizeof(
void *) * 6);
 
  483     for (
i = 0; 
i < 6; 
i++) {
 
  484         switch (
type & 0xFF) {
 
  489             cmp[
i] = 
c->median_sad[
i];
 
  492             cmp[
i] = 
c->hadamard8_diff[
i];
 
  501             cmp[
i] = 
c->dct264_sad[
i];
 
  507             cmp[
i] = 
c->quant_psnr[
i];
 
  537                    "invalid cmp function selection\n");
 
  546 #define BUTTERFLY2(o1, o2, i1, i2)              \ 
  550 #define BUTTERFLY1(x, y)                        \ 
  559 #define BUTTERFLYA(x, y) (FFABS((x) + (y)) + FFABS((x) - (y))) 
  564     int i, 
temp[64], sum = 0;
 
  566     for (
i = 0; 
i < 8; 
i++) {
 
  592     for (
i = 0; 
i < 8; 
i++) {
 
  614     int i, 
temp[64], sum = 0;
 
  616     for (
i = 0; 
i < 8; 
i++) {
 
  638     for (
i = 0; 
i < 8; 
i++) {
 
  668     return s->mecc.sum_abs_dctelem(
temp);
 
  674         const int s07 = SRC(0) + SRC(7);                \ 
  675         const int s16 = SRC(1) + SRC(6);                \ 
  676         const int s25 = SRC(2) + SRC(5);                \ 
  677         const int s34 = SRC(3) + SRC(4);                \ 
  678         const int a0  = s07 + s34;                      \ 
  679         const int a1  = s16 + s25;                      \ 
  680         const int a2  = s07 - s34;                      \ 
  681         const int a3  = s16 - s25;                      \ 
  682         const int d07 = SRC(0) - SRC(7);                \ 
  683         const int d16 = SRC(1) - SRC(6);                \ 
  684         const int d25 = SRC(2) - SRC(5);                \ 
  685         const int d34 = SRC(3) - SRC(4);                \ 
  686         const int a4  = d16 + d25 + (d07 + (d07 >> 1)); \ 
  687         const int a5  = d07 - d34 - (d25 + (d25 >> 1)); \ 
  688         const int a6  = d07 + d34 - (d16 + (d16 >> 1)); \ 
  689         const int a7  = d16 - d25 + (d34 + (d34 >> 1)); \ 
  691         DST(1, a4 + (a7 >> 2));                         \ 
  692         DST(2, a2 + (a3 >> 1));                         \ 
  693         DST(3, a5 + (a6 >> 2));                         \ 
  695         DST(5, a6 - (a5 >> 2));                         \ 
  696         DST(6, (a2 >> 1) - a3);                         \ 
  697         DST(7, (a4 >> 2) - a7);                         \ 
  708 #define SRC(x) dct[i][x] 
  709 #define DST(x, v) dct[i][x] = v 
  710     for (
i = 0; 
i < 8; 
i++)
 
  716 #define DST(x, v) sum += FFABS(v) 
  717         for (
i = 0; 
i < 8; 
i++)
 
  734     for (
i = 0; 
i < 64; 
i++)
 
  744     int16_t *
const bak = 
temp + 64;
 
  751     memcpy(bak, 
temp, 64 * 
sizeof(int16_t));
 
  753     s->block_last_index[0 ] =
 
  754         s->fast_dct_quantize(
s, 
temp, 0 , 
s->qscale, &
i);
 
  755     s->dct_unquantize_inter(
s, 
temp, 0, 
s->qscale);
 
  758     for (
i = 0; 
i < 64; 
i++)
 
  767     const uint8_t *scantable = 
s->intra_scantable.permutated;
 
  772     const int esc_length = 
s->ac_esc_length;
 
  773     uint8_t *length, *last_length;
 
  778     s->pdsp.diff_pixels(
temp, lsrc1, lsrc2, 8);
 
  780     s->block_last_index[0 ] =
 
  782         s->fast_dct_quantize(
s, 
temp, 0 , 
s->qscale, &
i);
 
  788         length      = 
s->intra_ac_vlc_length;
 
  789         last_length = 
s->intra_ac_vlc_last_length;
 
  790         bits       += 
s->luma_dc_vlc_length[
temp[0] + 256]; 
 
  793         length      = 
s->inter_ac_vlc_length;
 
  794         last_length = 
s->inter_ac_vlc_last_length;
 
  797     if (last >= start_i) {
 
  799         for (
i = start_i; 
i < last; 
i++) {
 
  800             int j = scantable[
i];
 
  805                 if ((
level & (~127)) == 0)
 
  819         if ((
level & (~127)) == 0) {
 
  827             s->dct_unquantize_intra(
s, 
temp, 0, 
s->qscale);
 
  829             s->dct_unquantize_inter(
s, 
temp, 0, 
s->qscale);
 
  832     s->idsp.idct_add(lsrc2, 8, 
temp);
 
  834     distortion = 
s->mecc.sse[1](
NULL, lsrc2, lsrc1, 8, 8);
 
  836     return distortion + ((
bits * 
s->qscale * 
s->qscale * 109 + 64) >> 7);
 
  842     const uint8_t *scantable = 
s->intra_scantable.permutated;
 
  845     const int esc_length = 
s->ac_esc_length;
 
  846     uint8_t *length, *last_length;
 
  850     s->block_last_index[0 ] =
 
  852         s->fast_dct_quantize(
s, 
temp, 0 , 
s->qscale, &
i);
 
  858         length      = 
s->intra_ac_vlc_length;
 
  859         last_length = 
s->intra_ac_vlc_last_length;
 
  860         bits       += 
s->luma_dc_vlc_length[
temp[0] + 256]; 
 
  863         length      = 
s->inter_ac_vlc_length;
 
  864         last_length = 
s->inter_ac_vlc_last_length;
 
  867     if (last >= start_i) {
 
  869         for (
i = start_i; 
i < last; 
i++) {
 
  870             int j = scantable[
i];
 
  875                 if ((
level & (~127)) == 0)
 
  889         if ((
level & (~127)) == 0)
 
  898 #define VSAD_INTRA(size)                                                \ 
  899 static int vsad_intra ## size ## _c(MpegEncContext *c,                  \ 
  900                                     const uint8_t *s, const uint8_t *dummy, \ 
  901                                     ptrdiff_t stride, int h)            \ 
  903     int score = 0, x, y;                                                \ 
  905     for (y = 1; y < h; y++) {                                           \ 
  906         for (x = 0; x < size; x += 4) {                                 \ 
  907             score += FFABS(s[x]     - s[x + stride])     +              \ 
  908                      FFABS(s[x + 1] - s[x + stride + 1]) +              \ 
  909                      FFABS(s[x + 2] - s[x + 2 + stride]) +              \ 
  910                      FFABS(s[x + 3] - s[x + 3 + stride]);               \ 
  921 static int vsad ## size ## _c(MpegEncContext *c,                               \ 
  922                               const uint8_t *s1, const uint8_t *s2,            \ 
  923                               ptrdiff_t stride, int h)                               \ 
  925     int score = 0, x, y;                                                       \ 
  927     for (y = 1; y < h; y++) {                                                  \ 
  928         for (x = 0; x < size; x++)                                             \ 
  929             score += FFABS(s1[x] - s2[x] - s1[x + stride] + s2[x + stride]);   \ 
  939 #define SQ(a) ((a) * (a)) 
  940 #define VSSE_INTRA(size)                                                \ 
  941 static int vsse_intra ## size ## _c(MpegEncContext *c,                  \ 
  942                                     const uint8_t *s, const uint8_t *dummy, \ 
  943                                     ptrdiff_t stride, int h)            \ 
  945     int score = 0, x, y;                                                \ 
  947     for (y = 1; y < h; y++) {                                           \ 
  948         for (x = 0; x < size; x += 4) {                                 \ 
  949             score += SQ(s[x]     - s[x + stride]) +                     \ 
  950                      SQ(s[x + 1] - s[x + stride + 1]) +                 \ 
  951                      SQ(s[x + 2] - s[x + stride + 2]) +                 \ 
  952                      SQ(s[x + 3] - s[x + stride + 3]);                  \ 
  963 static int vsse ## size ## _c(MpegEncContext *c, const uint8_t *s1, const uint8_t *s2, \ 
  964                               ptrdiff_t stride, int h)                         \ 
  966     int score = 0, x, y;                                                       \ 
  968     for (y = 1; y < h; y++) {                                                  \ 
  969         for (x = 0; x < size; x++)                                             \ 
  970             score += SQ(s1[x] - s2[x] - s1[x + stride] + s2[x + stride]);      \ 
  980 #define WRAPPER8_16_SQ(name8, name16)                                   \ 
  981 static int name16(MpegEncContext *s, const uint8_t *dst, const uint8_t *src, \ 
  982                   ptrdiff_t stride, int h)                              \ 
  986     score += name8(s, dst, src, stride, 8);                             \ 
  987     score += name8(s, dst + 8, src + 8, stride, 8);                     \ 
  991         score += name8(s, dst, src, stride, 8);                         \ 
  992         score += name8(s, dst + 8, src + 8, stride, 8);                 \ 
 1022 #define SET_CMP_FUNC(name)                      \ 
 1023     c->name[0] = name ## 16_c;                  \ 
 1024     c->name[1] = name ## 8x8_c; 
 1027     c->hadamard8_diff[4] = hadamard8_intra16_c;
 
 1042     c->vsad[0] = vsad16_c;
 
 1043     c->vsad[1] = vsad8_c;
 
 1044     c->vsad[4] = vsad_intra16_c;
 
 1045     c->vsad[5] = vsad_intra8_c;
 
 1046     c->vsse[0] = vsse16_c;
 
 1047     c->vsse[1] = vsse8_c;
 
 1048     c->vsse[4] = vsse_intra16_c;
 
 1049     c->vsse[5] = vsse_intra8_c;
 
 1052 #if CONFIG_SNOW_DECODER || CONFIG_SNOW_ENCODER