1 |
/* |
/***************************************************************************** |
2 |
* Simple IDCT |
* |
3 |
|
* XVID MPEG-4 VIDEO CODEC |
4 |
|
* - Inverse DCT (More precise version) - |
5 |
* |
* |
6 |
* Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at> |
* Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at> |
7 |
* |
* |
8 |
* This library is free software; you can redistribute it and/or |
* Originally distributed under the GNU LGPL License (ffmpeg). |
9 |
* modify it under the terms of the GNU Lesser General Public |
* It is licensed under the GNU GPL for the XviD tree. |
|
* License as published by the Free Software Foundation; either |
|
|
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
* |
11 |
* This library is distributed in the hope that it will be useful, |
* This program is free software ; you can redistribute it and/or modify |
12 |
|
* it under the terms of the GNU General Public License as published by |
13 |
|
* the Free Software Foundation ; either version 2 of the License, or |
14 |
|
* (at your option) any later version. |
15 |
|
* |
16 |
|
* This program is distributed in the hope that it will be useful, |
17 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
19 |
* Lesser General Public License for more details. |
* GNU General Public License for more details. |
20 |
* |
* |
21 |
* You should have received a copy of the GNU Lesser General Public |
* You should have received a copy of the GNU General Public License |
22 |
* License along with this library; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
23 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
24 |
*/ |
* |
25 |
|
* $Id$ |
26 |
|
* |
27 |
|
****************************************************************************/ |
28 |
|
|
29 |
/* |
/* |
30 |
based upon some outcommented c code from mpeg2dec (idct_mmx.c |
based upon some outcommented c code from mpeg2dec (idct_mmx.c |
31 |
written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>) |
written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>) |
32 |
*/ |
*/ |
33 |
|
|
34 |
#include "../portab.h" |
#include "../portab.h" |
35 |
#include "idct.h" |
#include "idct.h" |
36 |
|
|
45 |
#define ROW_SHIFT 8 |
#define ROW_SHIFT 8 |
46 |
#define COL_SHIFT 17 |
#define COL_SHIFT 17 |
47 |
#else |
#else |
48 |
#define W1 22725 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W1 22725 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
49 |
#define W2 21407 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W2 21407 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
50 |
#define W3 19266 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W3 19266 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
51 |
#define W4 16383 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W4 16383 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
52 |
#define W5 12873 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W5 12873 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
53 |
#define W6 8867 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W6 8867 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
54 |
#define W7 4520 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 |
#define W7 4520 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ |
55 |
#define ROW_SHIFT 11 |
#define ROW_SHIFT 11 |
56 |
#define COL_SHIFT 20 // 6 |
#define COL_SHIFT 20 /* 6 */ |
57 |
#endif |
#endif |
58 |
|
|
59 |
#if defined(ARCH_IS_PPC) |
#if defined(ARCH_IS_PPC) |