1 |
/***************************************************************************** |
/* |
2 |
* |
* Simple IDCT |
|
* XVID MPEG-4 VIDEO CODEC |
|
|
* - Inverse DCT (More precise version) - |
|
3 |
* |
* |
4 |
* Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at> |
* Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at> |
5 |
* |
* |
6 |
* Originally distributed under the GNU LGPL License (ffmpeg). |
* This library is free software; you can redistribute it and/or |
7 |
* It is licensed under the GNU GPL for the XviD tree. |
* modify it under the terms of the GNU Lesser General Public |
8 |
|
* License as published by the Free Software Foundation; either |
9 |
|
* version 2 of the License, or (at your option) any later version. |
10 |
* |
* |
11 |
* This program is free software ; you can redistribute it and/or modify |
* This library is distributed in the hope that it will be useful, |
|
* it under the terms of the GNU General Public License as published by |
|
|
* the Free Software Foundation ; either version 2 of the License, or |
|
|
* (at your option) any later version. |
|
|
* |
|
|
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY ; without even the implied warranty of |
* but WITHOUT ANY WARRANTY ; without even the implied warranty of |
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 |
* GNU General Public License for more details. |
* Lesser General Public License for more details. |
15 |
* |
* |
16 |
* You should have received a copy of the GNU General Public License |
* You should have received a copy of the GNU Lesser General Public |
17 |
* along with this program ; if not, write to the Free Software |
* License along with this library; if not, write to the Free Software |
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 |
* |
*/ |
|
* $Id$ |
|
|
* |
|
|
****************************************************************************/ |
|
|
|
|
20 |
/* |
/* |
21 |
based upon some outcommented c code from mpeg2dec (idct_mmx.c |
based upon some outcommented c code from mpeg2dec (idct_mmx.c |
22 |
written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>) |
written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>) |
23 |
*/ |
*/ |
|
|
|
24 |
#include "../portab.h" |
#include "../portab.h" |
25 |
#include "idct.h" |
#include "idct.h" |
26 |
|
|
35 |
#define ROW_SHIFT 8 |
#define ROW_SHIFT 8 |
36 |
#define COL_SHIFT 17 |
#define COL_SHIFT 17 |
37 |
#else |
#else |
38 |
#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 |
39 |
#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 |
40 |
#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 |
41 |
#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 |
42 |
#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 |
43 |
#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 |
44 |
#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 |
45 |
#define ROW_SHIFT 11 |
#define ROW_SHIFT 11 |
46 |
#define COL_SHIFT 20 /* 6 */ |
#define COL_SHIFT 20 // 6 |
47 |
#endif |
#endif |
48 |
|
|
49 |
#if defined(ARCH_IS_PPC) |
#if defined(ARCH_IS_PPC) |