[svn] / branches / dev-api-4 / xvidcore / src / utils / mbfunctions.h Repository:
ViewVC logotype

Annotation of /branches/dev-api-4/xvidcore/src/utils/mbfunctions.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1077 - (view) (download)

1 : edgomez 1054 /*****************************************************************************
2 : Isibaar 3 *
3 : edgomez 1054 * XVID MPEG-4 VIDEO CODEC
4 :     * - MB related header -
5 : Isibaar 3 *
6 : edgomez 1054 * Copyright(C) 2001 Michael Militzer <isibaar@videocoding.de>
7 : Isibaar 3 *
8 : edgomez 1054 * 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 : Isibaar 3 *
13 : edgomez 1054 * 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 : chl 1077 * $Id: mbfunctions.h,v 1.17.2.5 2003-06-28 15:48:08 chl Exp $
23 : edgomez 1054 *
24 :     ****************************************************************************/
25 : Isibaar 3
26 : edgomez 851 #ifndef _ENCORE_BLOCK_H
27 :     #define _ENCORE_BLOCK_H
28 : Isibaar 3
29 :     #include "../encoder.h"
30 :     #include "../bitstream/bitstream.h"
31 :    
32 : edgomez 851 /** MotionEstimation **/
33 : Isibaar 3
34 : edgomez 195 bool MotionEstimation(MBParam * const pParam,
35 : edgomez 965 FRAMEINFO * const current,
36 :     FRAMEINFO * const reference,
37 :     const IMAGE * const pRefH,
38 :     const IMAGE * const pRefV,
39 :     const IMAGE * const pRefHV,
40 : chl 1077 const IMAGE * const pGMC,
41 : edgomez 965 const uint32_t iLimit);
42 : Isibaar 3
43 : chl 1077
44 :    
45 :     void
46 :     GMEanalysis(const MBParam * const pParam,
47 :     const FRAMEINFO * const current,
48 :     const FRAMEINFO * const reference,
49 :     const IMAGE * const pRefH,
50 :     const IMAGE * const pRefV,
51 :     const IMAGE * const pRefHV);
52 :    
53 :     WARPPOINTS
54 :     GlobalMotionEst(MACROBLOCK * const pMBs,
55 :     const MBParam * const pParam,
56 :     const FRAMEINFO * const current,
57 :     const FRAMEINFO * const reference,
58 :     const IMAGE * const pRefH,
59 :     const IMAGE * const pRefV,
60 :     const IMAGE * const pRefHV);
61 :    
62 :     int
63 :     GlobalMotionEstRefine(
64 :     WARPPOINTS *const startwp,
65 :     MACROBLOCK * const pMBs,
66 :     const MBParam * const pParam,
67 :     const FRAMEINFO * const current,
68 :     const FRAMEINFO * const reference,
69 :     const IMAGE * const pCurr,
70 :     const IMAGE * const pRef,
71 :     const IMAGE * const pRefH,
72 :     const IMAGE * const pRefV,
73 :     const IMAGE * const pRefHV);
74 :    
75 :     int
76 :     globalSAD(const WARPPOINTS *const wp,
77 :     const MBParam * const pParam,
78 :     const MACROBLOCK * const pMBs,
79 :     const FRAMEINFO * const current,
80 :     const IMAGE * const pRef,
81 :     const IMAGE * const pCurr,
82 :     uint8_t *const GMCblock);
83 :    
84 :    
85 :    
86 :    
87 : edgomez 851 /** MBMotionCompensation **/
88 : edgomez 420
89 : edgomez 851 void
90 :     MBMotionCompensation(MACROBLOCK * const mb,
91 : edgomez 965 const uint32_t i,
92 :     const uint32_t j,
93 :     const IMAGE * const ref,
94 :     const IMAGE * const refh,
95 :     const IMAGE * const refv,
96 :     const IMAGE * const refhv,
97 :     const IMAGE * const refGMC,
98 :     IMAGE * const cur,
99 :     int16_t * dct_codes,
100 :     const uint32_t width,
101 :     const uint32_t height,
102 :     const uint32_t edged_width,
103 :     const int32_t quarterpel,
104 :     const int reduced_resolution,
105 :     const int32_t rounding);
106 : Isibaar 3
107 : edgomez 851 /** MBTransQuant.c **/
108 : Isibaar 3
109 :    
110 : edgomez 965 void MBTransQuantIntra(const MBParam * const pParam,
111 : syskin 984 const FRAMEINFO * const frame,
112 : edgomez 965 MACROBLOCK * const pMB,
113 :     const uint32_t x_pos, /* <-- The x position of the MB to be searched */
114 :     const uint32_t y_pos, /* <-- The y position of the MB to be searched */
115 :     int16_t data[6 * 64], /* <-> the data of the MB to be coded */
116 :     int16_t qcoeff[6 * 64]); /* <-> the quantized DCT coefficients */
117 : Isibaar 3
118 : edgomez 965 uint8_t MBTransQuantInter(const MBParam * const pParam,
119 : syskin 984 const FRAMEINFO * const frame,
120 : edgomez 965 MACROBLOCK * const pMB,
121 :     const uint32_t x_pos,
122 :     const uint32_t y_pos,
123 :     int16_t data[6 * 64],
124 :     int16_t qcoeff[6 * 64]);
125 : Isibaar 3
126 : chl 368 uint8_t MBTransQuantInterBVOP(const MBParam * pParam,
127 : edgomez 851 FRAMEINFO * frame,
128 :     MACROBLOCK * pMB,
129 : edgomez 914 const uint32_t x_pos,
130 :     const uint32_t y_pos,
131 : edgomez 851 int16_t data[6 * 64],
132 :     int16_t qcoeff[6 * 64]);
133 : edgomez 195
134 :    
135 : edgomez 851 typedef uint32_t (MBFIELDTEST) (int16_t data[6 * 64]); /* function pointer for field test */
136 :     typedef MBFIELDTEST *MBFIELDTEST_PTR;
137 : h 69
138 : edgomez 851 /* global field test pointer for xvid.c */
139 :     extern MBFIELDTEST_PTR MBFieldTest;
140 : h 69
141 : edgomez 851 /* field test implementations */
142 :     MBFIELDTEST MBFieldTest_c;
143 :     MBFIELDTEST MBFieldTest_mmx;
144 : Isibaar 3
145 : edgomez 851 void MBFrameToField(int16_t data[6 * 64]); /* de-interlace vertical Y blocks */
146 : chl 347
147 :    
148 : edgomez 851 /** MBCoding.c **/
149 : Isibaar 3
150 : edgomez 851 void MBCoding(const FRAMEINFO * const frame, /* <-- the parameter for coding of the bitstream */
151 : edgomez 965 MACROBLOCK * pMB, /* <-- Info of the MB to be coded */
152 :     int16_t qcoeff[6 * 64], /* <-- the quantized DCT coefficients */
153 :     Bitstream * bs, /* <-> the bitstream */
154 :     Statistics * pStat); /* <-> statistical data collected for current frame */
155 : edgomez 851
156 : Isibaar 3 #endif

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