51 |
XVID_QP_PASS *V_Pass_Avrg; |
XVID_QP_PASS *V_Pass_Avrg; |
52 |
XVID_QP_PASS *V_Pass_Avrg_Up; |
XVID_QP_PASS *V_Pass_Avrg_Up; |
53 |
|
|
54 |
// filter for QPel 8x? prediction |
/* filter for QPel 8x? prediction */ |
55 |
|
|
56 |
XVID_QP_PASS *H_Pass_8; |
XVID_QP_PASS *H_Pass_8; |
57 |
XVID_QP_PASS *H_Pass_Avrg_8; |
XVID_QP_PASS *H_Pass_Avrg_8; |
66 |
****************************************************************************/ |
****************************************************************************/ |
67 |
extern void xvid_Init_QP(); |
extern void xvid_Init_QP(); |
68 |
|
|
69 |
extern XVID_QP_FUNCS xvid_QP_Funcs_C; // for P-frames |
extern XVID_QP_FUNCS xvid_QP_Funcs_C; /* for P-frames */ |
70 |
extern XVID_QP_FUNCS xvid_QP_Add_Funcs_C; // for B-frames |
extern XVID_QP_FUNCS xvid_QP_Add_Funcs_C; /* for B-frames */ |
71 |
|
|
72 |
#ifdef ARCH_IS_IA32 |
#ifdef ARCH_IS_IA32 |
73 |
extern XVID_QP_FUNCS xvid_QP_Funcs_mmx; |
extern XVID_QP_FUNCS xvid_QP_Funcs_mmx; |
74 |
extern XVID_QP_FUNCS xvid_QP_Add_Funcs_mmx; |
extern XVID_QP_FUNCS xvid_QP_Add_Funcs_mmx; |
75 |
#endif |
#endif |
76 |
|
|
77 |
extern XVID_QP_FUNCS *xvid_QP_Funcs; // <- main pointer for enc/dec structure |
extern XVID_QP_FUNCS *xvid_QP_Funcs; /* <- main pointer for enc/dec structure */ |
78 |
extern XVID_QP_FUNCS *xvid_QP_Add_Funcs; // <- main pointer for enc/dec structure |
extern XVID_QP_FUNCS *xvid_QP_Add_Funcs; /* <- main pointer for enc/dec structure */ |
79 |
|
|
80 |
/***************************************************************************** |
/***************************************************************************** |
81 |
* macros |
* macros |
119 |
const int32_t xRef = x*4 + dx; |
const int32_t xRef = x*4 + dx; |
120 |
const int32_t yRef = y*4 + dy; |
const int32_t yRef = y*4 + dy; |
121 |
|
|
122 |
Ops = xvid_QP_Funcs; // TODO: pass as argument |
Ops = xvid_QP_Funcs; /* TODO: pass as argument */ |
123 |
quads = (dx&3) | ((dy&3)<<2); |
quads = (dx&3) | ((dy&3)<<2); |
124 |
|
|
125 |
x_int = xRef/4; |
x_int = xRef/4; |
133 |
dst = cur + y * stride + x; |
dst = cur + y * stride + x; |
134 |
src = refn + y_int * stride + x_int; |
src = refn + y_int * stride + x_int; |
135 |
|
|
136 |
tmp = refh; // we need at least a 16 x stride scratch block |
tmp = refh; /* we need at least a 16 x stride scratch block */ |
137 |
|
|
138 |
switch(quads) { |
switch(quads) { |
139 |
case 0: |
case 0: |
221 |
const int32_t xRef = x*4 + dx; |
const int32_t xRef = x*4 + dx; |
222 |
const int32_t yRef = y*4 + dy; |
const int32_t yRef = y*4 + dy; |
223 |
|
|
224 |
Ops = xvid_QP_Funcs; // TODO: pass as argument |
Ops = xvid_QP_Funcs; /* TODO: pass as argument */ |
225 |
quads = (dx&3) | ((dy&3)<<2); |
quads = (dx&3) | ((dy&3)<<2); |
226 |
|
|
227 |
x_int = xRef/4; |
x_int = xRef/4; |
235 |
dst = cur + y * stride + x; |
dst = cur + y * stride + x; |
236 |
src = refn + y_int * stride + x_int; |
src = refn + y_int * stride + x_int; |
237 |
|
|
238 |
tmp = refh; // we need at least a 16 x stride scratch block |
tmp = refh; /* we need at least a 16 x stride scratch block */ |
239 |
|
|
240 |
switch(quads) { |
switch(quads) { |
241 |
case 0: |
case 0: |
321 |
const int32_t xRef = x*4 + dx; |
const int32_t xRef = x*4 + dx; |
322 |
const int32_t yRef = y*4 + dy; |
const int32_t yRef = y*4 + dy; |
323 |
|
|
324 |
Ops = xvid_QP_Funcs; // TODO: pass as argument |
Ops = xvid_QP_Funcs; /* TODO: pass as argument */ |
325 |
quads = (dx&3) | ((dy&3)<<2); |
quads = (dx&3) | ((dy&3)<<2); |
326 |
|
|
327 |
x_int = xRef/4; |
x_int = xRef/4; |
335 |
dst = cur + y * stride + x; |
dst = cur + y * stride + x; |
336 |
src = refn + y_int * stride + x_int; |
src = refn + y_int * stride + x_int; |
337 |
|
|
338 |
tmp = refh; // we need at least a 16 x stride scratch block |
tmp = refh; /* we need at least a 16 x stride scratch block */ |
339 |
|
|
340 |
switch(quads) { |
switch(quads) { |
341 |
case 0: |
case 0: |