Parent Directory | Revision Log
Revision 1.5.2.1 - (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 : | Isibaar | 1.5.2.1 | * $Id: quant.h,v 1.5 2005/04/04 23:49:37 edgomez Exp $ |
23 : | edgomez | 1.2 | * |
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 : | Isibaar | 1.5.2.1 | quant_intraFunc dequant_h263_intra_ia64 |
95 : | edgomez | 1.2 | #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 |