Parent Directory
|
Revision Log
Revision 1.8 - (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.8 | * $Id: quant.h,v 1.7 2006/07/10 08:09:59 syskin 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 : | Isibaar | 1.8 | #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
58 : | edgomez | 1.2 | 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 : | #endif | ||
64 : | |||
65 : | #ifdef ARCH_IS_IA64 | ||
66 : | quant_intraFunc quant_h263_intra_ia64; | ||
67 : | #endif | ||
68 : | |||
69 : | edgomez | 1.3 | #ifdef ARCH_IS_PPC |
70 : | quant_intraFunc quant_h263_intra_altivec_c; | ||
71 : | #endif | ||
72 : | |||
73 : | edgomez | 1.2 | /* DeQuant functions */ |
74 : | quant_intraFunc dequant_h263_intra_c; | ||
75 : | quant_intraFunc dequant_mpeg_intra_c; | ||
76 : | |||
77 : | Isibaar | 1.8 | #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
78 : | edgomez | 1.2 | quant_intraFunc dequant_h263_intra_mmx; |
79 : | quant_intraFunc dequant_h263_intra_xmm; | ||
80 : | quant_intraFunc dequant_h263_intra_3dne; | ||
81 : | quant_intraFunc dequant_h263_intra_sse2; | ||
82 : | |||
83 : | quant_intraFunc dequant_mpeg_intra_mmx; | ||
84 : | quant_intraFunc dequant_mpeg_intra_3dne; | ||
85 : | #endif | ||
86 : | |||
87 : | #ifdef ARCH_IS_IA64 | ||
88 : | Skal | 1.6 | quant_intraFunc dequant_h263_intra_ia64; |
89 : | edgomez | 1.2 | #endif |
90 : | |||
91 : | edgomez | 1.3 | #ifdef ARCH_IS_PPC |
92 : | quant_intraFunc dequant_h263_intra_altivec_c; | ||
93 : | edgomez | 1.5 | quant_intraFunc dequant_mpeg_intra_altivec_c; |
94 : | edgomez | 1.3 | #endif |
95 : | |||
96 : | edgomez | 1.2 | /***************************************************************************** |
97 : | * Common API for Inter (de)Quant functions | ||
98 : | ****************************************************************************/ | ||
99 : | |||
100 : | typedef uint32_t (quant_interFunc) (int16_t * coeff, | ||
101 : | const int16_t * data, | ||
102 : | const uint32_t quant, | ||
103 : | const uint16_t * mpeg_quant_matrices); | ||
104 : | |||
105 : | typedef quant_interFunc *quant_interFuncPtr; | ||
106 : | |||
107 : | /* Global function pointers */ | ||
108 : | extern quant_interFuncPtr quant_h263_inter; | ||
109 : | extern quant_interFuncPtr quant_mpeg_inter; | ||
110 : | extern quant_interFuncPtr dequant_h263_inter; | ||
111 : | extern quant_interFuncPtr dequant_mpeg_inter; | ||
112 : | |||
113 : | /***************************************************************************** | ||
114 : | * Known implementation of Inter (de)Quant functions | ||
115 : | ****************************************************************************/ | ||
116 : | |||
117 : | quant_interFunc quant_h263_inter_c; | ||
118 : | quant_interFunc quant_mpeg_inter_c; | ||
119 : | |||
120 : | Isibaar | 1.8 | #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
121 : | edgomez | 1.2 | quant_interFunc quant_h263_inter_mmx; |
122 : | quant_interFunc quant_h263_inter_3dne; | ||
123 : | quant_interFunc quant_h263_inter_sse2; | ||
124 : | |||
125 : | quant_interFunc quant_mpeg_inter_mmx; | ||
126 : | quant_interFunc quant_mpeg_inter_xmm; | ||
127 : | #endif | ||
128 : | |||
129 : | #ifdef ARCH_IS_IA64 | ||
130 : | quant_interFunc quant_h263_inter_ia64; | ||
131 : | #endif | ||
132 : | |||
133 : | edgomez | 1.3 | #ifdef ARCH_IS_PPC |
134 : | quant_interFunc quant_h263_inter_altivec_c; | ||
135 : | #endif | ||
136 : | |||
137 : | edgomez | 1.2 | quant_interFunc dequant_h263_inter_c; |
138 : | quant_interFunc dequant_mpeg_inter_c; | ||
139 : | |||
140 : | Isibaar | 1.8 | #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
141 : | edgomez | 1.2 | quant_interFunc dequant_h263_inter_mmx; |
142 : | quant_interFunc dequant_h263_inter_xmm; | ||
143 : | quant_interFunc dequant_h263_inter_3dne; | ||
144 : | quant_interFunc dequant_h263_inter_sse2; | ||
145 : | |||
146 : | quant_interFunc dequant_mpeg_inter_mmx; | ||
147 : | quant_interFunc dequant_mpeg_inter_3dne; | ||
148 : | #endif | ||
149 : | |||
150 : | #ifdef ARCH_IS_IA64 | ||
151 : | quant_interFunc dequant_h263_inter_ia64; | ||
152 : | edgomez | 1.3 | #endif |
153 : | |||
154 : | #ifdef ARCH_IS_PPC | ||
155 : | quant_interFunc dequant_h263_inter_altivec_c; | ||
156 : | edgomez | 1.5 | quant_interFunc dequant_mpeg_inter_altivec_c; |
157 : | edgomez | 1.2 | #endif |
158 : | |||
159 : | #endif /* _QUANT_H_ */ |
No admin address has been configured | ViewVC Help |
Powered by ViewVC 1.0.4 |