--- trunk/xvidcore/src/image/interpolate8x8.h 2002/06/09 23:30:50 194 +++ trunk/xvidcore/src/image/interpolate8x8.h 2002/06/12 20:38:41 195 @@ -1,10 +1,10 @@ #include "../utils/mem_transfer.h" -typedef void (INTERPOLATE8X8)(uint8_t * const dst, - const uint8_t * const src, - const uint32_t stride, - const uint32_t rounding); -typedef INTERPOLATE8X8 * INTERPOLATE8X8_PTR; +typedef void (INTERPOLATE8X8) (uint8_t * const dst, + const uint8_t * const src, + const uint32_t stride, + const uint32_t rounding); +typedef INTERPOLATE8X8 *INTERPOLATE8X8_PTR; extern INTERPOLATE8X8_PTR interpolate8x8_halfpel_h; extern INTERPOLATE8X8_PTR interpolate8x8_halfpel_v; @@ -26,48 +26,56 @@ INTERPOLATE8X8 interpolate8x8_halfpel_v_3dn; INTERPOLATE8X8 interpolate8x8_halfpel_hv_3dn; -static __inline void interpolate8x8_switch(uint8_t * const cur, - const uint8_t * const refn, - const uint32_t x, const uint32_t y, - const int32_t dx, const int dy, - const uint32_t stride, - const uint32_t rounding) +static __inline void +interpolate8x8_switch(uint8_t * const cur, + const uint8_t * const refn, + const uint32_t x, + const uint32_t y, + const int32_t dx, + const int dy, + const uint32_t stride, + const uint32_t rounding) { int32_t ddx, ddy; - switch ( ((dx&1)<<1) + (dy&1) ) // ((dx%2)?2:0)+((dy%2)?1:0) - { - case 0 : - ddx = dx/2; - ddy = dy/2; - transfer8x8_copy(cur + y*stride + x, refn + (y+ddy)*stride + x + ddx, stride); + switch (((dx & 1) << 1) + (dy & 1)) // ((dx%2)?2:0)+((dy%2)?1:0) + { + case 0: + ddx = dx / 2; + ddy = dy / 2; + transfer8x8_copy(cur + y * stride + x, + refn + (y + ddy) * stride + x + ddx, stride); break; - case 1 : - ddx = dx/2; - ddy = (dy-1)/2; - interpolate8x8_halfpel_v(cur + y*stride + x, - refn + (y+ddy)*stride + x + ddx, stride, rounding); + case 1: + ddx = dx / 2; + ddy = (dy - 1) / 2; + interpolate8x8_halfpel_v(cur + y * stride + x, + refn + (y + ddy) * stride + x + ddx, stride, + rounding); break; - case 2 : - ddx = (dx-1)/2; - ddy = dy/2; - interpolate8x8_halfpel_h(cur + y*stride + x, - refn + (y+ddy)*stride + x + ddx, stride, rounding); + case 2: + ddx = (dx - 1) / 2; + ddy = dy / 2; + interpolate8x8_halfpel_h(cur + y * stride + x, + refn + (y + ddy) * stride + x + ddx, stride, + rounding); break; - default : - ddx = (dx-1)/2; - ddy = (dy-1)/2; - interpolate8x8_halfpel_hv(cur + y*stride + x, - refn + (y+ddy)*stride + x + ddx, stride, rounding); + default: + ddx = (dx - 1) / 2; + ddy = (dy - 1) / 2; + interpolate8x8_halfpel_hv(cur + y * stride + x, + refn + (y + ddy) * stride + x + ddx, stride, + rounding); break; - } + } } void interpolate8x8_c(uint8_t * const dst, - const uint8_t * const src, - const uint32_t x, const uint32_t y, - const uint32_t stride); + const uint8_t * const src, + const uint32_t x, + const uint32_t y, + const uint32_t stride);