[cvs] / xvidcore / src / motion / sad.h Repository:
ViewVC logotype

Diff of /xvidcore/src/motion/sad.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.18.2.2, Wed Aug 13 11:43:59 2003 UTC revision 1.23, Wed Dec 6 19:55:07 2006 UTC
# Line 26  Line 26 
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);
# Line 35  Line 34 
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,
# Line 49  Line 47 
47  sad16Func sad16_xmm;  sad16Func sad16_xmm;
48  sad16Func sad16_3dne;  sad16Func sad16_3dne;
49  sad16Func sad16_sse2;  sad16Func sad16_sse2;
50  #endif  sad16Func sad16_sse3;
   
 #ifdef ARCH_IS_ALTIVEC  
 sad16Func sad16_altivec;  
51  #endif  #endif
52    
53  #ifdef ARCH_IS_IA64  #ifdef ARCH_IS_IA64
54  sad16Func sad16_ia64;  sad16Func sad16_ia64;
55  #endif  #endif
56    
57    #ifdef ARCH_IS_PPC
58    sad16Func sad16_altivec_c;
59    #endif
60    
61    #ifdef ARCH_IS_X86_64
62    sad16Func sad16_x86_64;
63    #endif
64    
65  sad16Func mrsad16_c;  sad16Func mrsad16_c;
66    
67  typedef uint32_t(sad8Func) (const uint8_t * const cur,  typedef uint32_t(sad8Func) (const uint8_t * const cur,
# Line 74  Line 77 
77  sad8Func sad8_3dne;  sad8Func sad8_3dne;
78  #endif  #endif
79    
 #ifdef ARCH_IS_ALTIVEC  
 sad8Func sad8_altivec;  
 #endif  
   
80  #ifdef ARCH_IS_IA64  #ifdef ARCH_IS_IA64
81  sad8Func sad8_ia64;  sad8Func sad8_ia64;
82  #endif  #endif
83    
84    #ifdef ARCH_IS_PPC
85    sad8Func sad8_altivec_c;
86    #endif
87    
88    #ifdef ARCH_IS_X86_64
89    sad8Func sad8_x86_64;
90    #endif
91    
92  typedef uint32_t(sad16biFunc) (const uint8_t * const cur,  typedef uint32_t(sad16biFunc) (const uint8_t * const cur,
93                                                             const uint8_t * const ref1,                                                             const uint8_t * const ref1,
94                                                             const uint8_t * const ref2,                                                             const uint8_t * const ref2,
# Line 101  Line 108 
108  sad16biFunc sad16bi_ia64;  sad16biFunc sad16bi_ia64;
109  #endif  #endif
110    
111    #ifdef ARCH_IS_PPC
112    sad16biFunc sad16bi_altivec_c;
113    #endif
114    
115    #ifdef ARCH_IS_X86_64
116    sad16biFunc sad16bi_x86_64;
117    #endif
118    
119  typedef uint32_t(sad8biFunc) (const uint8_t * const cur,  typedef uint32_t(sad8biFunc) (const uint8_t * const cur,
120                                                             const uint8_t * const ref1,                                                             const uint8_t * const ref1,
121                                                             const uint8_t * const ref2,                                                             const uint8_t * const ref2,
# Line 116  Line 131 
131  sad8biFunc sad8bi_3dn;  sad8biFunc sad8bi_3dn;
132  #endif  #endif
133    
134    #ifdef ARCH_IS_X86_64
135    sad8biFunc sad8bi_x86_64;
136    #endif
137    
138  typedef uint32_t(dev16Func) (const uint8_t * const cur,  typedef uint32_t(dev16Func) (const uint8_t * const cur,
139                                                           const uint32_t stride);                                                           const uint32_t stride);
# Line 123  Line 141 
141  extern dev16FuncPtr dev16;  extern dev16FuncPtr dev16;
142  dev16Func dev16_c;  dev16Func dev16_c;
143    
144    typedef uint32_t (sad16vFunc)(  const uint8_t * const cur,
145                                                                    const uint8_t * const ref,
146                                                                    const uint32_t stride, int32_t *sad8);
147    typedef sad16vFunc *sad16vFuncPtr;
148    extern sad16vFuncPtr sad16v;
149    
150    sad16vFunc sad16v_c;
151    sad16vFunc sad32v_c;
152    
153  #ifdef ARCH_IS_IA32  #ifdef ARCH_IS_IA32
154  dev16Func dev16_mmx;  dev16Func dev16_mmx;
155  dev16Func dev16_xmm;  dev16Func dev16_xmm;
156  dev16Func dev16_3dne;  dev16Func dev16_3dne;
157  dev16Func dev16_sse2;  dev16Func dev16_sse2;
158  #endif  dev16Func dev16_sse3;
159    sad16vFunc sad16v_xmm;
160  #ifdef ARCH_IS_ALTIVEC  sad16vFunc sad16v_mmx;
 dev16Func dev16_altivec;  
161  #endif  #endif
162    
163  #ifdef ARCH_IS_IA64  #ifdef ARCH_IS_IA64
164  dev16Func dev16_ia64;  dev16Func dev16_ia64;
165  #endif  #endif
166    
167  typedef uint32_t (sad16vFunc)(  const uint8_t * const cur,  #ifdef ARCH_IS_PPC
168                                                                  const uint8_t * const ref,  dev16Func dev16_altivec_c;
169                                                                  const uint32_t stride, int32_t *sad8);  #endif
 typedef sad16vFunc *sad16vFuncPtr;  
 extern sad16vFuncPtr sad16v;  
170    
171  sad16vFunc sad16v_c;  #ifdef ARCH_IS_X86_64
172  sad16vFunc sad32v_c;  dev16Func dev16_x86_64;
173  sad16vFunc mrsad16v;  sad16vFunc sad16v_x86_64;
174  sad16vFunc mrsad16v_c;  #endif
175    
176    /* This function assumes blocks use 16bit signed elements */
177    typedef uint32_t (sse8Func_16bit)(const int16_t * cur,
178                                                                      const int16_t * ref,
179                                                                      const uint32_t stride);
180    typedef sse8Func_16bit *sse8Func_16bitPtr;
181    extern sse8Func_16bitPtr sse8_16bit;
182    
183    sse8Func_16bit sse8_16bit_c;
184  #ifdef ARCH_IS_IA32  #ifdef ARCH_IS_IA32
185  sad16vFunc sad16v_xmm;  sse8Func_16bit sse8_16bit_mmx;
186  sad16vFunc sad16v_mmx;  #endif
187    
188  int32_t sad8x8mean_mmx( const uint8_t * const current,  #ifdef ARCH_IS_PPC
189                                                  const uint8_t * const reference,  sse8Func_16bit sse8_16bit_altivec_c;
190                                                  const uint32_t stride,  #endif
191                                                  const int mean);  
192    #ifdef ARCH_IS_X86_64
193    sse8Func_16bit sse8_16bit_x86_64;
194    #endif
195    
196    /* This function assumes blocks use 8bit *un*signed elements */
197    typedef uint32_t (sse8Func_8bit)(const uint8_t * cur,
198                                                                     const uint8_t * ref,
199                                                                     const uint32_t stride);
200    typedef sse8Func_8bit *sse8Func_8bitPtr;
201    extern sse8Func_8bitPtr sse8_8bit;
202    
203    sse8Func_8bit sse8_8bit_c;
204    
205    #ifdef ARCH_IS_IA32
206    sse8Func_8bit sse8_8bit_mmx;
207    #endif
208    
209  void sad16x8total_mmx(const uint8_t *, const uint32_t, int32_t[]);  #ifdef ARCH_IS_X86_64
210    sse8Func_8bit sse8_8bit_x86_64;
211  #endif  #endif
212    
213  #endif                                                  /* _ENCODER_SAD_H_ */  #endif                                                  /* _ENCODER_SAD_H_ */

Legend:
Removed from v.1.18.2.2  
changed lines
  Added in v.1.23

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4