--- interpolate8x8.c 2002/10/10 12:14:53 1.4.2.2 +++ interpolate8x8.c 2003/01/04 06:14:33 1.4.2.6 @@ -31,6 +31,7 @@ #include "../portab.h" +#include "../global.h" #include "interpolate8x8.h" // function pointers @@ -53,12 +54,12 @@ INTERPOLATE8X8_6TAP_LOWPASS_PTR interpolate8x8_6tap_lowpass_h; INTERPOLATE8X8_6TAP_LOWPASS_PTR interpolate8x8_6tap_lowpass_v; -void interpolate8x8_avg2_c(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, const uint32_t stride, const uint32_t rounding) +void interpolate8x8_avg2_c(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, const uint32_t stride, const uint32_t rounding, const uint32_t height) { - int32_t i; + uint32_t i; const int32_t round = 1 - rounding; - for(i = 0; i < 8; i++) + for(i = 0; i < height; i++) { dst[0] = (src1[0] + src2[0] + round) >> 1; dst[1] = (src1[1] + src2[1] + round) >> 1; @@ -167,8 +168,6 @@ * QPEL STUFF STARTS HERE * *************************************************************/ -#define CLIP(X,A,B) (X < A) ? (A) : ((X > B) ? (B) : (X)) - void interpolate8x8_6tap_lowpass_h_c(uint8_t *dst, uint8_t *src, int32_t stride, int32_t rounding) { int32_t i; @@ -196,7 +195,7 @@ int32_t i; uint8_t round_add = 16 - rounding; - for(i = 0; i < 16; i++) + for(i = 0; i < 17; i++) { dst[0] = CLIP(((7 * ((src[0]<<1) - src[2]) + 23 * src[1] + 3 * src[3] - src[4] + round_add) >> 5), 0, 255); @@ -228,7 +227,7 @@ int32_t i; uint8_t round_add = 16 - rounding; - for(i = 0; i < 8; i++) + for(i = 0; i < 9; i++) { dst[0] = CLIP(((7 * ((src[0]<<1) - src[2]) + 23 * src[1] + 3 * src[3] - src[4] + round_add) >> 5), 0, 255); @@ -285,7 +284,7 @@ int32_t i; uint8_t round_add = 16 - rounding; - for(i = 0; i < 16; i++) + for(i = 0; i < 17; i++) { int32_t src0 = src[0]; int32_t src1 = src[stride]; @@ -335,7 +334,7 @@ int32_t i; uint8_t round_add = 16 - rounding; - for(i = 0; i < 8; i++) + for(i = 0; i < 9; i++) { int32_t src0 = src[0]; int32_t src1 = src[stride]; @@ -421,4 +420,4 @@ interpolate8x8_lowpass_v_c(dst1, dst2, stride, rounding); -} \ No newline at end of file +}