[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.24, Wed Nov 26 01:04:34 2008 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 44  Line 42 
42  extern sad16FuncPtr sad16;  extern sad16FuncPtr sad16;
43  sad16Func sad16_c;  sad16Func sad16_c;
44    
45  #ifdef ARCH_IS_IA32  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
46  sad16Func sad16_mmx;  sad16Func sad16_mmx;
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  sad16Func mrsad16_c;  sad16Func mrsad16_c;
62    
63  typedef uint32_t(sad8Func) (const uint8_t * const cur,  typedef uint32_t(sad8Func) (const uint8_t * const cur,
# Line 68  Line 67 
67  extern sad8FuncPtr sad8;  extern sad8FuncPtr sad8;
68  sad8Func sad8_c;  sad8Func sad8_c;
69    
70  #ifdef ARCH_IS_IA32  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
71  sad8Func sad8_mmx;  sad8Func sad8_mmx;
72  sad8Func sad8_xmm;  sad8Func sad8_xmm;
73  sad8Func sad8_3dne;  sad8Func sad8_3dne;
74  #endif  #endif
75    
 #ifdef ARCH_IS_ALTIVEC  
 sad8Func sad8_altivec;  
 #endif  
   
76  #ifdef ARCH_IS_IA64  #ifdef ARCH_IS_IA64
77  sad8Func sad8_ia64;  sad8Func sad8_ia64;
78  #endif  #endif
79    
80    #ifdef ARCH_IS_PPC
81    sad8Func sad8_altivec_c;
82    #endif
83    
84  typedef uint32_t(sad16biFunc) (const uint8_t * const cur,  typedef uint32_t(sad16biFunc) (const uint8_t * const cur,
85                                                             const uint8_t * const ref1,                                                             const uint8_t * const ref1,
86                                                             const uint8_t * const ref2,                                                             const uint8_t * const ref2,
# Line 90  Line 89 
89  extern sad16biFuncPtr sad16bi;  extern sad16biFuncPtr sad16bi;
90  sad16biFunc sad16bi_c;  sad16biFunc sad16bi_c;
91    
92  #ifdef ARCH_IS_IA32  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
93  sad16biFunc sad16bi_mmx;  sad16biFunc sad16bi_mmx;
94  sad16biFunc sad16bi_xmm;  sad16biFunc sad16bi_xmm;
95  sad16biFunc sad16bi_3dne;  sad16biFunc sad16bi_3dne;
# Line 101  Line 100 
100  sad16biFunc sad16bi_ia64;  sad16biFunc sad16bi_ia64;
101  #endif  #endif
102    
103    #ifdef ARCH_IS_PPC
104    sad16biFunc sad16bi_altivec_c;
105    #endif
106    
107  typedef uint32_t(sad8biFunc) (const uint8_t * const cur,  typedef uint32_t(sad8biFunc) (const uint8_t * const cur,
108                                                             const uint8_t * const ref1,                                                             const uint8_t * const ref1,
109                                                             const uint8_t * const ref2,                                                             const uint8_t * const ref2,
# Line 109  Line 112 
112  extern sad8biFuncPtr sad8bi;  extern sad8biFuncPtr sad8bi;
113  sad8biFunc sad8bi_c;  sad8biFunc sad8bi_c;
114    
115  #ifdef ARCH_IS_IA32  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
116  sad8biFunc sad8bi_mmx;  sad8biFunc sad8bi_mmx;
117  sad8biFunc sad8bi_xmm;  sad8biFunc sad8bi_xmm;
118  sad8biFunc sad8bi_3dne;  sad8biFunc sad8bi_3dne;
119  sad8biFunc sad8bi_3dn;  sad8biFunc sad8bi_3dn;
120  #endif  #endif
121    
   
122  typedef uint32_t(dev16Func) (const uint8_t * const cur,  typedef uint32_t(dev16Func) (const uint8_t * const cur,
123                                                           const uint32_t stride);                                                           const uint32_t stride);
124  typedef dev16Func *dev16FuncPtr;  typedef dev16Func *dev16FuncPtr;
125  extern dev16FuncPtr dev16;  extern dev16FuncPtr dev16;
126  dev16Func dev16_c;  dev16Func dev16_c;
127    
128  #ifdef ARCH_IS_IA32  typedef uint32_t (sad16vFunc)(  const uint8_t * const cur,
129                                                                    const uint8_t * const ref,
130                                                                    const uint32_t stride, int32_t *sad8);
131    typedef sad16vFunc *sad16vFuncPtr;
132    extern sad16vFuncPtr sad16v;
133    
134    sad16vFunc sad16v_c;
135    sad16vFunc sad32v_c;
136    
137    #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
138  dev16Func dev16_mmx;  dev16Func dev16_mmx;
139  dev16Func dev16_xmm;  dev16Func dev16_xmm;
140  dev16Func dev16_3dne;  dev16Func dev16_3dne;
141  dev16Func dev16_sse2;  dev16Func dev16_sse2;
142  #endif  dev16Func dev16_sse3;
143    sad16vFunc sad16v_xmm;
144  #ifdef ARCH_IS_ALTIVEC  sad16vFunc sad16v_mmx;
 dev16Func dev16_altivec;  
145  #endif  #endif
146    
147  #ifdef ARCH_IS_IA64  #ifdef ARCH_IS_IA64
148  dev16Func dev16_ia64;  dev16Func dev16_ia64;
149  #endif  #endif
150    
151  typedef uint32_t (sad16vFunc)(  const uint8_t * const cur,  #ifdef ARCH_IS_PPC
152                                                                  const uint8_t * const ref,  dev16Func dev16_altivec_c;
153                                                                  const uint32_t stride, int32_t *sad8);  #endif
 typedef sad16vFunc *sad16vFuncPtr;  
 extern sad16vFuncPtr sad16v;  
154    
155  sad16vFunc sad16v_c;  /* This function assumes blocks use 16bit signed elements */
156  sad16vFunc sad32v_c;  typedef uint32_t (sse8Func_16bit)(const int16_t * cur,
157  sad16vFunc mrsad16v;                                                                    const int16_t * ref,
158  sad16vFunc mrsad16v_c;                                                                    const uint32_t stride);
159    typedef sse8Func_16bit *sse8Func_16bitPtr;
160    extern sse8Func_16bitPtr sse8_16bit;
161    
162  #ifdef ARCH_IS_IA32  sse8Func_16bit sse8_16bit_c;
163  sad16vFunc sad16v_xmm;  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
164  sad16vFunc sad16v_mmx;  sse8Func_16bit sse8_16bit_mmx;
165    #endif
166    
167  int32_t sad8x8mean_mmx( const uint8_t * const current,  #ifdef ARCH_IS_PPC
168                                                  const uint8_t * const reference,  sse8Func_16bit sse8_16bit_altivec_c;
169                                                  const uint32_t stride,  #endif
170                                                  const int mean);  
171    /* This function assumes blocks use 8bit *un*signed elements */
172    typedef uint32_t (sse8Func_8bit)(const uint8_t * cur,
173                                                                     const uint8_t * ref,
174                                                                     const uint32_t stride);
175    typedef sse8Func_8bit *sse8Func_8bitPtr;
176    extern sse8Func_8bitPtr sse8_8bit;
177    
178    sse8Func_8bit sse8_8bit_c;
179    
180  void sad16x8total_mmx(const uint8_t *, const uint32_t, int32_t[]);  #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64)
181    sse8Func_8bit sse8_8bit_mmx;
182  #endif  #endif
183    
184  #endif                                                  /* _ENCODER_SAD_H_ */  #endif                                                  /* _ENCODER_SAD_H_ */

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

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