31 |
|
|
32 |
|
|
33 |
#include "../portab.h" |
#include "../portab.h" |
34 |
|
#include "../global.h" |
35 |
#include "interpolate8x8.h" |
#include "interpolate8x8.h" |
36 |
|
|
37 |
// function pointers |
// function pointers |
54 |
INTERPOLATE8X8_6TAP_LOWPASS_PTR interpolate8x8_6tap_lowpass_h; |
INTERPOLATE8X8_6TAP_LOWPASS_PTR interpolate8x8_6tap_lowpass_h; |
55 |
INTERPOLATE8X8_6TAP_LOWPASS_PTR interpolate8x8_6tap_lowpass_v; |
INTERPOLATE8X8_6TAP_LOWPASS_PTR interpolate8x8_6tap_lowpass_v; |
56 |
|
|
57 |
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) |
58 |
{ |
{ |
59 |
int32_t i; |
uint32_t i; |
60 |
const int32_t round = 1 - rounding; |
const int32_t round = 1 - rounding; |
61 |
|
|
62 |
for(i = 0; i < 9; i++) |
for(i = 0; i < height; i++) |
63 |
{ |
{ |
64 |
dst[0] = (src1[0] + src2[0] + round) >> 1; |
dst[0] = (src1[0] + src2[0] + round) >> 1; |
65 |
dst[1] = (src1[1] + src2[1] + round) >> 1; |
dst[1] = (src1[1] + src2[1] + round) >> 1; |
168 |
* QPEL STUFF STARTS HERE * |
* QPEL STUFF STARTS HERE * |
169 |
*************************************************************/ |
*************************************************************/ |
170 |
|
|
|
#define CLIP(X,A,B) (X < A) ? (A) : ((X > B) ? (B) : (X)) |
|
|
|
|
171 |
void interpolate8x8_6tap_lowpass_h_c(uint8_t *dst, uint8_t *src, int32_t stride, int32_t rounding) |
void interpolate8x8_6tap_lowpass_h_c(uint8_t *dst, uint8_t *src, int32_t stride, int32_t rounding) |
172 |
{ |
{ |
173 |
int32_t i; |
int32_t i; |