10 |
#include "../image/interpolate8x8.h" |
#include "../image/interpolate8x8.h" |
11 |
#include "../image/reduced.h" |
#include "../image/reduced.h" |
12 |
#include "../utils/timer.h" |
#include "../utils/timer.h" |
13 |
|
#include "../image/qpel.h" |
14 |
#include "motion.h" |
#include "motion.h" |
15 |
|
|
16 |
#ifndef ABS |
#ifndef ABS |
90 |
|
|
91 |
if(quarterpel) { |
if(quarterpel) { |
92 |
if ((dx&3) | (dy&3)) { |
if ((dx&3) | (dy&3)) { |
93 |
interpolate16x16_quarterpel(tmp - y * stride - x, |
new_interpolate16x16_quarterpel(tmp - y * stride - x, |
94 |
(uint8_t *) ref, tmp + 32, |
(uint8_t *) ref, tmp + 32, |
95 |
tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding); |
tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding); |
96 |
ptr = tmp; |
ptr = tmp; |
152 |
|
|
153 |
if(quarterpel) { |
if(quarterpel) { |
154 |
if ((dx&3) | (dy&3)) { |
if ((dx&3) | (dy&3)) { |
155 |
interpolate8x8_quarterpel(tmp - y*stride - x, |
new_interpolate8x8_quarterpel(tmp - y*stride - x, |
156 |
(uint8_t *) ref, tmp + 32, |
(uint8_t *) ref, tmp + 32, |
157 |
tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding); |
tmp + 64, tmp + 96, x, y, dx, dy, stride, rounding); |
158 |
ptr = tmp; |
ptr = tmp; |
418 |
if (quarterpel) { |
if (quarterpel) { |
419 |
|
|
420 |
if ((dx&3) | (dy&3)) { |
if ((dx&3) | (dy&3)) { |
421 |
interpolate16x16_quarterpel(tmp - i * 16 - j * 16 * edged_width, |
new_interpolate16x16_quarterpel(tmp - i * 16 - j * 16 * edged_width, |
422 |
(uint8_t *) f_ref->y, tmp + 32, |
(uint8_t *) f_ref->y, tmp + 32, |
423 |
tmp + 64, tmp + 96, 16*i, 16*j, dx, dy, edged_width, 0); |
tmp + 64, tmp + 96, 16*i, 16*j, dx, dy, edged_width, 0); |
424 |
ptr1 = tmp; |
ptr1 = tmp; |
425 |
} else ptr1 = f_ref->y + (16*j + dy/4)*edged_width + 16*i + dx/4; // fullpixel position |
} else ptr1 = f_ref->y + (16*j + dy/4)*edged_width + 16*i + dx/4; // fullpixel position |
426 |
|
|
427 |
if ((b_dx&3) | (b_dy&3)) { |
if ((b_dx&3) | (b_dy&3)) { |
428 |
interpolate16x16_quarterpel(tmp - i * 16 - j * 16 * edged_width + 16, |
new_interpolate16x16_quarterpel(tmp - i * 16 - j * 16 * edged_width + 16, |
429 |
(uint8_t *) b_ref->y, tmp + 32, |
(uint8_t *) b_ref->y, tmp + 32, |
430 |
tmp + 64, tmp + 96, 16*i, 16*j, b_dx, b_dy, edged_width, 0); |
tmp + 64, tmp + 96, 16*i, 16*j, b_dx, b_dy, edged_width, 0); |
431 |
ptr2 = tmp + 16; |
ptr2 = tmp + 16; |
471 |
b_sumx += b_dx/2; b_sumy += b_dy/2; |
b_sumx += b_dx/2; b_sumy += b_dy/2; |
472 |
|
|
473 |
if ((dx&3) | (dy&3)) { |
if ((dx&3) | (dy&3)) { |
474 |
interpolate8x8_quarterpel(tmp - (i * 16+(k&1)*8) - (j * 16+((k>>1)*8)) * edged_width, |
new_interpolate8x8_quarterpel(tmp - (i * 16+(k&1)*8) - (j * 16+((k>>1)*8)) * edged_width, |
475 |
(uint8_t *) f_ref->y, |
(uint8_t *) f_ref->y, |
476 |
tmp + 32, tmp + 64, tmp + 96, |
tmp + 32, tmp + 64, tmp + 96, |
477 |
16*i + (k&1)*8, 16*j + (k>>1)*8, dx, dy, edged_width, 0); |
16*i + (k&1)*8, 16*j + (k>>1)*8, dx, dy, edged_width, 0); |
479 |
} else ptr1 = f_ref->y + (16*j + (k>>1)*8 + dy/4)*edged_width + 16*i + (k&1)*8 + dx/4; |
} else ptr1 = f_ref->y + (16*j + (k>>1)*8 + dy/4)*edged_width + 16*i + (k&1)*8 + dx/4; |
480 |
|
|
481 |
if ((b_dx&3) | (b_dy&3)) { |
if ((b_dx&3) | (b_dy&3)) { |
482 |
interpolate8x8_quarterpel(tmp - (i * 16+(k&1)*8) - (j * 16+((k>>1)*8)) * edged_width + 16, |
new_interpolate8x8_quarterpel(tmp - (i * 16+(k&1)*8) - (j * 16+((k>>1)*8)) * edged_width + 16, |
483 |
(uint8_t *) b_ref->y, |
(uint8_t *) b_ref->y, |
484 |
tmp + 16, tmp + 32, tmp + 48, |
tmp + 16, tmp + 32, tmp + 48, |
485 |
16*i + (k&1)*8, 16*j + (k>>1)*8, b_dx, b_dy, edged_width, 0); |
16*i + (k&1)*8, 16*j + (k>>1)*8, b_dx, b_dy, edged_width, 0); |