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

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

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

revision 3, Fri Mar 8 02:46:11 2002 UTC revision 499, Sat Sep 21 03:11:36 2002 UTC
# Line 1  Line 1 
1    /*****************************************************************************
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 <pross@xvid.org>
33     *
34     ****************************************************************************/
35    
36  #ifndef _ENCODER_SAD_H_  #ifndef _ENCODER_SAD_H_
37  #define _ENCODER_SAD_H_  #define _ENCODER_SAD_H_
38    
   
39  #include "../portab.h"  #include "../portab.h"
40    
41    typedef void (sadInitFunc) (void);
42    typedef sadInitFunc *sadInitFuncPtr;
43    
44    extern sadInitFuncPtr sadInit;
45    sadInitFunc sadInit_altivec;
46    
47    
48  typedef uint32_t (sad16Func)(const uint8_t * const cur,  typedef uint32_t (sad16Func)(const uint8_t * const cur,
49                                                   const uint8_t * const ref,                                                   const uint8_t * const ref,
50                                                   const uint32_t stride,                                                   const uint32_t stride,
51                                                   const uint32_t best_sad);                                                   const uint32_t best_sad);
   
   
52  typedef sad16Func* sad16FuncPtr;  typedef sad16Func* sad16FuncPtr;
   
53  extern sad16FuncPtr sad16;  extern sad16FuncPtr sad16;
54  sad16Func sad16_c;  sad16Func sad16_c;
55  sad16Func sad16_mmx;  sad16Func sad16_mmx;
56  sad16Func sad16_xmm;  sad16Func sad16_xmm;
57    sad16Func sad16_sse2;
58    sad16Func sad16_altivec;
59    sad16Func sad16_ia64;
60    
61    sad16Func mrsad16_c;
62    
63    
64  typedef uint32_t (sad8Func)(const uint8_t * const cur,  typedef uint32_t (sad8Func)(const uint8_t * const cur,
65                                                  const uint8_t * const ref,                                                  const uint8_t * const ref,
66                                                  const uint32_t stride);                                                  const uint32_t stride);
   
   
67  typedef sad8Func* sad8FuncPtr;  typedef sad8Func* sad8FuncPtr;
   
68  extern sad8FuncPtr sad8;  extern sad8FuncPtr sad8;
69  sad8Func sad8_c;  sad8Func sad8_c;
70  sad8Func sad8_mmx;  sad8Func sad8_mmx;
71  sad8Func sad8_xmm;  sad8Func sad8_xmm;
72    sad8Func sad8_altivec;
73    sad8Func sad8_ia64;
74    
75    
76  typedef uint32_t (dev16Func)(const uint8_t * const cur,  typedef uint32_t(sad16biFunc) (const uint8_t * const cur,
77                                  const uint32_t stride);                                                             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    
88    
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    typedef uint32_t(dev16Func) (const uint8_t * const cur,
102                                                             const uint32_t stride);
103  typedef dev16Func *dev16FuncPtr;  typedef dev16Func *dev16FuncPtr;
   
104  extern dev16FuncPtr dev16;  extern dev16FuncPtr dev16;
105  dev16Func dev16_c;  dev16Func dev16_c;
106  dev16Func dev16_mmx;  dev16Func dev16_mmx;
107  dev16Func dev16_xmm;  dev16Func dev16_xmm;
108    dev16Func dev16_sse2;
109    dev16Func dev16_altivec;
110    dev16Func dev16_ia64;
111    
112  /* plain c */  /* plain c */
113  /*  /*

Legend:
Removed from v.3  
changed lines
  Added in v.499

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