Parent Directory
|
Revision Log
Revision 1.1.2.2 - (view) (download)
1 : | edgomez | 1.1.2.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_ */ |
No admin address has been configured | ViewVC Help |
Powered by ViewVC 1.0.4 |