Parent Directory
|
Revision Log
Revision 1.1.2.3 - (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 : | edgomez | 1.1.2.3 | const uint32_t dcscalar, |
39 : | const uint16_t * mpeg_quant_matrices); | ||
40 : | edgomez | 1.1.2.1 | |
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 : | edgomez | 1.1.2.3 | const uint32_t quant, |
95 : | const uint16_t * mpeg_quant_matrices); | ||
96 : | edgomez | 1.1.2.1 | |
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_ */ |
No admin address has been configured | ViewVC Help |
Powered by ViewVC 1.0.4 |