26 |
#ifndef _ENCODER_SAD_H_ |
#ifndef _ENCODER_SAD_H_ |
27 |
#define _ENCODER_SAD_H_ |
#define _ENCODER_SAD_H_ |
28 |
|
|
|
|
|
29 |
#include "../portab.h" |
#include "../portab.h" |
30 |
|
|
31 |
typedef void (sadInitFunc) (void); |
typedef void (sadInitFunc) (void); |
34 |
extern sadInitFuncPtr sadInit; |
extern sadInitFuncPtr sadInit; |
35 |
sadInitFunc sadInit_altivec; |
sadInitFunc sadInit_altivec; |
36 |
|
|
|
|
|
37 |
typedef uint32_t(sad16Func) (const uint8_t * const cur, |
typedef uint32_t(sad16Func) (const uint8_t * const cur, |
38 |
const uint8_t * const ref, |
const uint8_t * const ref, |
39 |
const uint32_t stride, |
const uint32_t stride, |
121 |
extern dev16FuncPtr dev16; |
extern dev16FuncPtr dev16; |
122 |
dev16Func dev16_c; |
dev16Func dev16_c; |
123 |
|
|
124 |
|
typedef uint32_t (sad16vFunc)( const uint8_t * const cur, |
125 |
|
const uint8_t * const ref, |
126 |
|
const uint32_t stride, int32_t *sad8); |
127 |
|
typedef sad16vFunc *sad16vFuncPtr; |
128 |
|
extern sad16vFuncPtr sad16v; |
129 |
|
|
130 |
|
sad16vFunc sad16v_c; |
131 |
|
sad16vFunc sad32v_c; |
132 |
|
|
133 |
#ifdef ARCH_IS_IA32 |
#ifdef ARCH_IS_IA32 |
134 |
dev16Func dev16_mmx; |
dev16Func dev16_mmx; |
135 |
dev16Func dev16_xmm; |
dev16Func dev16_xmm; |
136 |
dev16Func dev16_3dne; |
dev16Func dev16_3dne; |
137 |
dev16Func dev16_sse2; |
dev16Func dev16_sse2; |
138 |
|
sad16vFunc sad16v_xmm; |
139 |
|
sad16vFunc sad16v_mmx; |
140 |
#endif |
#endif |
141 |
|
|
142 |
#ifdef ARCH_IS_ALTIVEC |
#ifdef ARCH_IS_ALTIVEC |
147 |
dev16Func dev16_ia64; |
dev16Func dev16_ia64; |
148 |
#endif |
#endif |
149 |
|
|
150 |
typedef uint32_t (sad16vFunc)( const uint8_t * const cur, |
typedef uint32_t (sse8Func_16bit)(const int16_t * cur, |
151 |
const uint8_t * const ref, |
const int16_t * ref, |
152 |
const uint32_t stride, int32_t *sad8); |
const uint32_t stride); |
153 |
typedef sad16vFunc *sad16vFuncPtr; |
typedef sse8Func_16bit *sse8Func_16bitPtr; |
154 |
extern sad16vFuncPtr sad16v; |
extern sse8Func_16bitPtr sse8_16bit; |
|
|
|
|
sad16vFunc sad16v_c; |
|
|
sad16vFunc sad32v_c; |
|
|
sad16vFunc mrsad16v; |
|
|
sad16vFunc mrsad16v_c; |
|
155 |
|
|
156 |
|
sse8Func_16bit sse8_16bit_c; |
157 |
#ifdef ARCH_IS_IA32 |
#ifdef ARCH_IS_IA32 |
158 |
sad16vFunc sad16v_xmm; |
sse8Func_16bit sse8_16bit_mmx; |
|
sad16vFunc sad16v_mmx; |
|
|
|
|
|
int32_t sad8x8mean_mmx( const uint8_t * const current, |
|
|
const uint8_t * const reference, |
|
|
const uint32_t stride, |
|
|
const int mean); |
|
|
|
|
|
void sad16x8total_mmx(const uint8_t *, const uint32_t, int32_t[]); |
|
159 |
#endif |
#endif |
160 |
|
|
161 |
#endif /* _ENCODER_SAD_H_ */ |
#endif /* _ENCODER_SAD_H_ */ |