[cvs] / xvidcore / src / motion / gmc.h Repository:
ViewVC logotype

Annotation of /xvidcore/src/motion/gmc.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (view) (download)

1 : edgomez 1.2 /*****************************************************************************
2 :     *
3 :     * XVID MPEG-4 VIDEO CODEC
4 :     * - GMC interpolation module header -
5 :     *
6 :     * Copyright(C) 2002-2003 Pascal Massimino <skal@planet-d.net>
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 : Skal 1.3 * $Id: gmc.h,v 1.2 2004/03/22 22:36:24 edgomez Exp $
23 : edgomez 1.2 *
24 :     ****************************************************************************/
25 :    
26 :     #include "../portab.h"
27 :     #include "../global.h"
28 :    
29 : Skal 1.3 /* *************************************************************
30 :     * will initialize internal pointers
31 : edgomez 1.2 */
32 :    
33 : Skal 1.3 void init_GMC(const unsigned int cpu_flags);
34 : edgomez 1.2
35 :     /* *************************************************************
36 :     * Warning! It's Accuracy being passed, not 'resolution'!
37 :     */
38 :    
39 :     void generate_GMCparameters(int nb_pts, const int accuracy,
40 :     const WARPPOINTS *const pts,
41 :     const int width, const int height,
42 :     NEW_GMC_DATA *const gmc);
43 :    
44 :     /* *******************************************************************
45 :     */
46 :    
47 :     void
48 :     generate_GMCimage( const NEW_GMC_DATA *const gmc_data, /* [input] precalculated data */
49 :     const IMAGE *const pRef, /* [input] */
50 :     const int mb_width,
51 :     const int mb_height,
52 :     const int stride,
53 :     const int stride2,
54 :     const int fcode, /* [input] some parameters... */
55 :     const int32_t quarterpel, /* [input] for rounding avgMV */
56 :     const int reduced_resolution, /* [input] ignored */
57 :     const int32_t rounding, /* [input] for rounding image data */
58 :     MACROBLOCK *const pMBs, /* [output] average motion vectors */
59 :     IMAGE *const pGMC); /* [output] full warped image */
60 :    
61 : Skal 1.3 /* *************************************************************
62 :     * utils
63 :     */
64 :    
65 :     /* This is borrowed from decoder.c */
66 :     static __inline int
67 :     gmc_sanitize(int value, int quarterpel, int fcode)
68 :     {
69 :     int length = 1 << (fcode+4);
70 :    
71 :     #if 0
72 :     if (quarterpel) value *= 2;
73 :     #endif
74 :    
75 :     if (value < -length)
76 :     return -length;
77 :     else if (value >= length)
78 :     return length-1;
79 :     else return value;
80 :     }
81 :    
82 :     /* *************************************************************/

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