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

Annotation of /trunk/xvidcore/src/motion/sad.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 430 - (view) (download)

1 : chl 430 /*****************************************************************************
2 :     *
3 :     * XVID MPEG-4 VIDEO CODEC
4 :     * - SAD Routines header -
5 :     *
6 :     * Copyright(C) 2002 Michael Militzer
7 :     *
8 :     * This program is an implementation of a part of one or more MPEG-4
9 :     * Video tools as specified in ISO/IEC 14496-2 standard. Those intending
10 :     * to use this software module in hardware or software products are
11 :     * advised that its use may infringe existing patents or copyrights, and
12 :     * any such use would be at such party's own risk. The original
13 :     * developer of this software module and his/her company, and subsequent
14 :     * editors and their companies, will have no liability for use of this
15 :     * software or modifications or derivatives thereof.
16 :     *
17 :     * This program is free software; you can redistribute it and/or modify
18 :     * it under the terms of the GNU General Public License as published by
19 :     * the Free Software Foundation; either version 2 of the License, or
20 :     * (at your option) any later version.
21 :     *
22 :     * This program is distributed in the hope that it will be useful,
23 :     * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 :     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 :     * GNU General Public License for more details.
26 :     *
27 :     * You should have received a copy of the GNU General Public License
28 :     * along with this program; if not, write to the Free Software
29 :     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 :     *
31 :     * Copyright(C) 2002 Michael Militzer
32 :     * Copyright(C) 2002 Peter Ross
33 :     *
34 :     ****************************************************************************/
35 :    
36 : Isibaar 3 #ifndef _ENCODER_SAD_H_
37 :     #define _ENCODER_SAD_H_
38 :    
39 :     #include "../portab.h"
40 :    
41 : edgomez 195 typedef void (sadInitFunc) (void);
42 :     typedef sadInitFunc *sadInitFuncPtr;
43 : Isibaar 3
44 : canard 115 extern sadInitFuncPtr sadInit;
45 :     sadInitFunc sadInit_altivec;
46 :    
47 : suxen_drol 118
48 : edgomez 195 typedef uint32_t(sad16Func) (const uint8_t * const cur,
49 :     const uint8_t * const ref,
50 :     const uint32_t stride,
51 :     const uint32_t best_sad);
52 :     typedef sad16Func *sad16FuncPtr;
53 : Isibaar 3 extern sad16FuncPtr sad16;
54 :     sad16Func sad16_c;
55 :     sad16Func sad16_mmx;
56 :     sad16Func sad16_xmm;
57 : h 126 sad16Func sad16_sse2;
58 : canard 89 sad16Func sad16_altivec;
59 : Isibaar 209 sad16Func sad16_ia64;
60 : Isibaar 3
61 : chl 177 sad16Func mrsad16_c;
62 : suxen_drol 118
63 : chl 177
64 : edgomez 195 typedef uint32_t(sad8Func) (const uint8_t * const cur,
65 :     const uint8_t * const ref,
66 :     const uint32_t stride);
67 :     typedef sad8Func *sad8FuncPtr;
68 : Isibaar 3 extern sad8FuncPtr sad8;
69 :     sad8Func sad8_c;
70 :     sad8Func sad8_mmx;
71 :     sad8Func sad8_xmm;
72 : canard 90 sad8Func sad8_altivec;
73 : Isibaar 209 sad8Func sad8_ia64;
74 : Isibaar 3
75 :    
76 : suxen_drol 329 typedef uint32_t(sad16biFunc) (const uint8_t * const cur,
77 :     const uint8_t * const ref1,
78 :     const uint8_t * const ref2,
79 :     const uint32_t stride);
80 :     typedef sad16biFunc *sad16biFuncPtr;
81 :     extern sad16biFuncPtr sad16bi;
82 :     sad16biFunc sad16bi_c;
83 :     sad16biFunc sad16bi_ia64;
84 :     sad16biFunc sad16bi_mmx;
85 :     sad16biFunc sad16bi_xmm;
86 :     sad16biFunc sad16bi_3dn;
87 : Isibaar 209
88 : suxen_drol 329
89 :     typedef uint32_t(sad8biFunc) (const uint8_t * const cur,
90 :     const uint8_t * const ref1,
91 :     const uint8_t * const ref2,
92 :     const uint32_t stride);
93 :     typedef sad8biFunc *sad8biFuncPtr;
94 :     extern sad8biFuncPtr sad8bi;
95 :     sad8biFunc sad8bi_c;
96 :     sad8biFunc sad8bi_mmx;
97 :     sad8biFunc sad8bi_xmm;
98 :     sad8biFunc sad8bi_3dn;
99 :    
100 :    
101 : edgomez 195 typedef uint32_t(dev16Func) (const uint8_t * const cur,
102 :     const uint32_t stride);
103 :     typedef dev16Func *dev16FuncPtr;
104 : Isibaar 3 extern dev16FuncPtr dev16;
105 :     dev16Func dev16_c;
106 :     dev16Func dev16_mmx;
107 :     dev16Func dev16_xmm;
108 : h 135 dev16Func dev16_sse2;
109 : canard 89 dev16Func dev16_altivec;
110 : Isibaar 209 dev16Func dev16_ia64;
111 : Isibaar 3
112 :     /* plain c */
113 :     /*
114 :    
115 :     uint32_t sad16(const uint8_t * const cur,
116 :     const uint8_t * const ref,
117 :     const uint32_t stride,
118 :     const uint32_t best_sad);
119 :    
120 :     uint32_t sad8(const uint8_t * const cur,
121 :     const uint8_t * const ref,
122 :     const uint32_t stride);
123 :    
124 :     uint32_t dev16(const uint8_t * const cur,
125 :     const uint32_t stride);
126 :     */
127 :     /* mmx */
128 :     /*
129 :    
130 :     uint32_t sad16_mmx(const uint8_t * const cur,
131 :     const uint8_t * const ref,
132 :     const uint32_t stride,
133 :     const uint32_t best_sad);
134 :    
135 :     uint32_t sad8_mmx(const uint8_t * const cur,
136 :     const uint8_t * const ref,
137 :     const uint32_t stride);
138 :    
139 :    
140 :     uint32_t dev16_mmx(const uint8_t * const cur,
141 :     const uint32_t stride);
142 :    
143 :     */
144 :     /* xmm */
145 :     /*
146 :     uint32_t sad16_xmm(const uint8_t * const cur,
147 :     const uint8_t * const ref,
148 :     const uint32_t stride,
149 :     const uint32_t best_sad);
150 :    
151 :     uint32_t sad8_xmm(const uint8_t * const cur,
152 :     const uint8_t * const ref,
153 :     const uint32_t stride);
154 :    
155 :     uint32_t dev16_xmm(const uint8_t * const cur,
156 :     const uint32_t stride);
157 :     */
158 :    
159 : edgomez 195 #endif /* _ENCODER_SAD_H_ */

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