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

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

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