[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.2, Mon Mar 22 22:36:24 2004 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                                                                            const uint16_t * mpeg_quant_matrices);
40    
41    typedef quant_intraFunc *quant_intraFuncPtr;
42    
43    /* Global function pointers */
44    extern quant_intraFuncPtr quant_h263_intra;
45    extern quant_intraFuncPtr quant_mpeg_intra;
46    extern quant_intraFuncPtr dequant_h263_intra;
47    extern quant_intraFuncPtr dequant_mpeg_intra;
48    
49    /*****************************************************************************
50     * Known implementation of Intra (de)Quant functions
51     ****************************************************************************/
52    
53    /* Quant functions */
54    quant_intraFunc quant_h263_intra_c;
55    quant_intraFunc quant_mpeg_intra_c;
56    
57    #ifdef ARCH_IS_IA32
58    quant_intraFunc quant_h263_intra_mmx;
59    quant_intraFunc quant_h263_intra_3dne;
60    quant_intraFunc quant_h263_intra_sse2;
61    
62    quant_intraFunc quant_mpeg_intra_mmx;
63    quant_intraFunc quant_mpeg_intra_xmm;
64    #endif
65    
66    #ifdef ARCH_IS_IA64
67    quant_intraFunc quant_h263_intra_ia64;
68    #endif
69    
70    /* DeQuant functions */
71    quant_intraFunc dequant_h263_intra_c;
72    quant_intraFunc dequant_mpeg_intra_c;
73    
74    #ifdef ARCH_IS_IA32
75    quant_intraFunc dequant_h263_intra_mmx;
76    quant_intraFunc dequant_h263_intra_xmm;
77    quant_intraFunc dequant_h263_intra_3dne;
78    quant_intraFunc dequant_h263_intra_sse2;
79    
80    quant_intraFunc dequant_mpeg_intra_mmx;
81    quant_intraFunc dequant_mpeg_intra_3dne;
82    #endif
83    
84    #ifdef ARCH_IS_IA64
85    quanth263_intraFunc dequant_intra_ia64;
86    #endif
87    
88    /*****************************************************************************
89     * Common API for Inter (de)Quant functions
90     ****************************************************************************/
91    
92    typedef uint32_t (quant_interFunc) (int16_t * coeff,
93                                                                            const int16_t * data,
94                                                                            const uint32_t quant,
95                                                                            const uint16_t * mpeg_quant_matrices);
96    
97    typedef quant_interFunc *quant_interFuncPtr;
98    
99    /* Global function pointers */
100    extern quant_interFuncPtr quant_h263_inter;
101    extern quant_interFuncPtr quant_mpeg_inter;
102    extern quant_interFuncPtr dequant_h263_inter;
103    extern quant_interFuncPtr dequant_mpeg_inter;
104    
105    /*****************************************************************************
106     * Known implementation of Inter (de)Quant functions
107     ****************************************************************************/
108    
109    quant_interFunc quant_h263_inter_c;
110    quant_interFunc quant_mpeg_inter_c;
111    
112    #ifdef ARCH_IS_IA32
113    quant_interFunc quant_h263_inter_mmx;
114    quant_interFunc quant_h263_inter_3dne;
115    quant_interFunc quant_h263_inter_sse2;
116    
117    quant_interFunc quant_mpeg_inter_mmx;
118    quant_interFunc quant_mpeg_inter_xmm;
119    #endif
120    
121    #ifdef ARCH_IS_IA64
122    quant_interFunc quant_h263_inter_ia64;
123    #endif
124    
125    quant_interFunc dequant_h263_inter_c;
126    quant_interFunc dequant_mpeg_inter_c;
127    
128    #ifdef ARCH_IS_IA32
129    quant_interFunc dequant_h263_inter_mmx;
130    quant_interFunc dequant_h263_inter_xmm;
131    quant_interFunc dequant_h263_inter_3dne;
132    quant_interFunc dequant_h263_inter_sse2;
133    
134    quant_interFunc dequant_mpeg_inter_mmx;
135    quant_interFunc dequant_mpeg_inter_3dne;
136    #endif
137    
138    #ifdef ARCH_IS_IA64
139    quant_interFunc dequant_h263_inter_ia64;
140    #endif
141    
142    #endif /* _QUANT_H_ */

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

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