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

Annotation of /xvidcore/src/quant/quant.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (view) (download)

1 : edgomez 1.2 /*****************************************************************************
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 : edgomez 1.3 #ifdef ARCH_IS_PPC
71 :     quant_intraFunc quant_h263_intra_altivec_c;
72 :     #endif
73 :    
74 : edgomez 1.4 #ifdef ARCH_IS_X86_64
75 :     quant_intraFunc quant_h263_intra_x86_64;
76 :     quant_intraFunc quant_mpeg_intra_x86_64;
77 :     #endif
78 :    
79 : edgomez 1.2 /* DeQuant functions */
80 :     quant_intraFunc dequant_h263_intra_c;
81 :     quant_intraFunc dequant_mpeg_intra_c;
82 :    
83 :     #ifdef ARCH_IS_IA32
84 :     quant_intraFunc dequant_h263_intra_mmx;
85 :     quant_intraFunc dequant_h263_intra_xmm;
86 :     quant_intraFunc dequant_h263_intra_3dne;
87 :     quant_intraFunc dequant_h263_intra_sse2;
88 :    
89 :     quant_intraFunc dequant_mpeg_intra_mmx;
90 :     quant_intraFunc dequant_mpeg_intra_3dne;
91 :     #endif
92 :    
93 :     #ifdef ARCH_IS_IA64
94 :     quanth263_intraFunc dequant_intra_ia64;
95 :     #endif
96 :    
97 : edgomez 1.3 #ifdef ARCH_IS_PPC
98 :     quant_intraFunc dequant_h263_intra_altivec_c;
99 : edgomez 1.5 quant_intraFunc dequant_mpeg_intra_altivec_c;
100 : edgomez 1.3 #endif
101 :    
102 : edgomez 1.4 #ifdef ARCH_IS_X86_64
103 :     quant_intraFunc dequant_h263_intra_x86_64;
104 :     quant_intraFunc dequant_mpeg_intra_x86_64;
105 :     #endif
106 :    
107 : edgomez 1.2 /*****************************************************************************
108 :     * Common API for Inter (de)Quant functions
109 :     ****************************************************************************/
110 :    
111 :     typedef uint32_t (quant_interFunc) (int16_t * coeff,
112 :     const int16_t * data,
113 :     const uint32_t quant,
114 :     const uint16_t * mpeg_quant_matrices);
115 :    
116 :     typedef quant_interFunc *quant_interFuncPtr;
117 :    
118 :     /* Global function pointers */
119 :     extern quant_interFuncPtr quant_h263_inter;
120 :     extern quant_interFuncPtr quant_mpeg_inter;
121 :     extern quant_interFuncPtr dequant_h263_inter;
122 :     extern quant_interFuncPtr dequant_mpeg_inter;
123 :    
124 :     /*****************************************************************************
125 :     * Known implementation of Inter (de)Quant functions
126 :     ****************************************************************************/
127 :    
128 :     quant_interFunc quant_h263_inter_c;
129 :     quant_interFunc quant_mpeg_inter_c;
130 :    
131 :     #ifdef ARCH_IS_IA32
132 :     quant_interFunc quant_h263_inter_mmx;
133 :     quant_interFunc quant_h263_inter_3dne;
134 :     quant_interFunc quant_h263_inter_sse2;
135 :    
136 :     quant_interFunc quant_mpeg_inter_mmx;
137 :     quant_interFunc quant_mpeg_inter_xmm;
138 :     #endif
139 :    
140 :     #ifdef ARCH_IS_IA64
141 :     quant_interFunc quant_h263_inter_ia64;
142 :     #endif
143 :    
144 : edgomez 1.3 #ifdef ARCH_IS_PPC
145 :     quant_interFunc quant_h263_inter_altivec_c;
146 :     #endif
147 :    
148 : edgomez 1.4 #ifdef ARCH_IS_X86_64
149 :     quant_interFunc quant_h263_inter_x86_64;
150 :     quant_interFunc quant_mpeg_inter_x86_64;
151 :     #endif
152 :    
153 : edgomez 1.2 quant_interFunc dequant_h263_inter_c;
154 :     quant_interFunc dequant_mpeg_inter_c;
155 :    
156 :     #ifdef ARCH_IS_IA32
157 :     quant_interFunc dequant_h263_inter_mmx;
158 :     quant_interFunc dequant_h263_inter_xmm;
159 :     quant_interFunc dequant_h263_inter_3dne;
160 :     quant_interFunc dequant_h263_inter_sse2;
161 :    
162 :     quant_interFunc dequant_mpeg_inter_mmx;
163 :     quant_interFunc dequant_mpeg_inter_3dne;
164 :     #endif
165 :    
166 :     #ifdef ARCH_IS_IA64
167 :     quant_interFunc dequant_h263_inter_ia64;
168 : edgomez 1.3 #endif
169 :    
170 :     #ifdef ARCH_IS_PPC
171 :     quant_interFunc dequant_h263_inter_altivec_c;
172 : edgomez 1.5 quant_interFunc dequant_mpeg_inter_altivec_c;
173 : edgomez 1.2 #endif
174 :    
175 : edgomez 1.4 #ifdef ARCH_IS_X86_64
176 :     quant_interFunc dequant_h263_inter_x86_64;
177 :     quant_interFunc dequant_mpeg_inter_x86_64;
178 :     #endif
179 :    
180 : edgomez 1.2 #endif /* _QUANT_H_ */

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