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

Diff of /xvidcore/src/quant/quant.h

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

revision 1.1, Tue Oct 7 14:16:29 2003 UTC revision 1.1.2.1, Tue Oct 7 14:16:29 2003 UTC
# Line 0  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - (de)Quantization related header  -
5     *
6     *  Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr>
7     *
8     *  This program is free software ; you can redistribute it and/or modify
9     *  it under the terms of the GNU General Public License as published by
10     *  the Free Software Foundation ; either version 2 of the License, or
11     *  (at your option) any later version.
12     *
13     *  This program is distributed in the hope that it will be useful,
14     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
15     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     *  GNU General Public License for more details.
17     *
18     *  You should have received a copy of the GNU General Public License
19     *  along with this program ; if not, write to the Free Software
20     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21     *
22     * $Id$
23     *
24     ****************************************************************************/
25    
26    #ifndef _QUANT_H_
27    #define _QUANT_H_
28    
29    #include "../portab.h"
30    
31    /*****************************************************************************
32     * Common API for Intra (de)Quant functions
33     ****************************************************************************/
34    
35    typedef uint32_t (quant_intraFunc) (int16_t * coeff,
36                                                                            const int16_t * data,
37                                                                            const uint32_t quant,
38                                                                            const uint32_t dcscalar);
39    
40    typedef quant_intraFunc *quant_intraFuncPtr;
41    
42    /* Global function pointers */
43    extern quant_intraFuncPtr quant_h263_intra;
44    extern quant_intraFuncPtr quant_mpeg_intra;
45    extern quant_intraFuncPtr dequant_h263_intra;
46    extern quant_intraFuncPtr dequant_mpeg_intra;
47    
48    /*****************************************************************************
49     * Known implementation of Intra (de)Quant functions
50     ****************************************************************************/
51    
52    /* Quant functions */
53    quant_intraFunc quant_h263_intra_c;
54    quant_intraFunc quant_mpeg_intra_c;
55    
56    #ifdef ARCH_IS_IA32
57    quant_intraFunc quant_h263_intra_mmx;
58    quant_intraFunc quant_h263_intra_3dne;
59    quant_intraFunc quant_h263_intra_sse2;
60    
61    quant_intraFunc quant_mpeg_intra_mmx;
62    quant_intraFunc quant_mpeg_intra_xmm;
63    #endif
64    
65    #ifdef ARCH_IS_IA64
66    quant_intraFunc quant_h263_intra_ia64;
67    #endif
68    
69    /* DeQuant functions */
70    quant_intraFunc dequant_h263_intra_c;
71    quant_intraFunc dequant_mpeg_intra_c;
72    
73    #ifdef ARCH_IS_IA32
74    quant_intraFunc dequant_h263_intra_mmx;
75    quant_intraFunc dequant_h263_intra_xmm;
76    quant_intraFunc dequant_h263_intra_3dne;
77    quant_intraFunc dequant_h263_intra_sse2;
78    
79    quant_intraFunc dequant_mpeg_intra_mmx;
80    quant_intraFunc dequant_mpeg_intra_3dne;
81    #endif
82    
83    #ifdef ARCH_IS_IA64
84    quanth263_intraFunc dequant_intra_ia64;
85    #endif
86    
87    /*****************************************************************************
88     * Common API for Inter (de)Quant functions
89     ****************************************************************************/
90    
91    typedef uint32_t (quant_interFunc) (int16_t * coeff,
92                                                                            const int16_t * data,
93                                                                            const uint32_t quant);
94    
95    typedef quant_interFunc *quant_interFuncPtr;
96    
97    /* Global function pointers */
98    extern quant_interFuncPtr quant_h263_inter;
99    extern quant_interFuncPtr quant_mpeg_inter;
100    extern quant_interFuncPtr dequant_h263_inter;
101    extern quant_interFuncPtr dequant_mpeg_inter;
102    
103    /*****************************************************************************
104     * Known implementation of Inter (de)Quant functions
105     ****************************************************************************/
106    
107    quant_interFunc quant_h263_inter_c;
108    quant_interFunc quant_mpeg_inter_c;
109    
110    #ifdef ARCH_IS_IA32
111    quant_interFunc quant_h263_inter_mmx;
112    quant_interFunc quant_h263_inter_3dne;
113    quant_interFunc quant_h263_inter_sse2;
114    
115    quant_interFunc quant_mpeg_inter_mmx;
116    quant_interFunc quant_mpeg_inter_xmm;
117    #endif
118    
119    #ifdef ARCH_IS_IA64
120    quant_interFunc quant_h263_inter_ia64;
121    #endif
122    
123    quant_interFunc dequant_h263_inter_c;
124    quant_interFunc dequant_mpeg_inter_c;
125    
126    #ifdef ARCH_IS_IA32
127    quant_interFunc dequant_h263_inter_mmx;
128    quant_interFunc dequant_h263_inter_xmm;
129    quant_interFunc dequant_h263_inter_3dne;
130    quant_interFunc dequant_h263_inter_sse2;
131    
132    quant_interFunc dequant_mpeg_inter_mmx;
133    quant_interFunc dequant_mpeg_inter_3dne;
134    #endif
135    
136    #ifdef ARCH_IS_IA64
137    quant_interFunc dequant_h263_inter_ia64;
138    #endif
139    
140    #endif /* _QUANT_H_ */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.1

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