--- simple_idct.c 2003/06/09 01:19:46 1.2.2.1 +++ simple_idct.c 2003/06/09 19:42:21 1.2.2.3 @@ -1,26 +1,36 @@ -/* - * Simple IDCT +/***************************************************************************** * - * Copyright (c) 2001 Michael Niedermayer + * XVID MPEG-4 VIDEO CODEC + * - Inverse DCT (More precise version) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. + * Copyright (c) 2001 Michael Niedermayer * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. + * Originally distributed under the GNU LGPL License (ffmpeg). + * It is licensed under the GNU GPL for the XviD tree. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ + * This program is free software ; you can redistribute it and/or modify + * 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, + * but WITHOUT ANY WARRANTY ; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program ; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id: simple_idct.c,v 1.2.2.3 2003/06/09 19:42:21 edgomez Exp $ + * + ****************************************************************************/ + /* based upon some outcommented c code from mpeg2dec (idct_mmx.c written by Aaron Holtzman ) */ + #include "../portab.h" #include "idct.h" @@ -230,29 +240,3 @@ for(i=0; i<8; i++) idctSparseCol(block + i); } - - -/* Input permutation for the simple_idct_mmx */ -static const uint8_t simple_mmx_permutation[64]={ - 0x00, 0x08, 0x04, 0x09, 0x01, 0x0C, 0x05, 0x0D, - 0x10, 0x18, 0x14, 0x19, 0x11, 0x1C, 0x15, 0x1D, - 0x20, 0x28, 0x24, 0x29, 0x21, 0x2C, 0x25, 0x2D, - 0x12, 0x1A, 0x16, 0x1B, 0x13, 0x1E, 0x17, 0x1F, - 0x02, 0x0A, 0x06, 0x0B, 0x03, 0x0E, 0x07, 0x0F, - 0x30, 0x38, 0x34, 0x39, 0x31, 0x3C, 0x35, 0x3D, - 0x22, 0x2A, 0x26, 0x2B, 0x23, 0x2E, 0x27, 0x2F, - 0x32, 0x3A, 0x36, 0x3B, 0x33, 0x3E, 0x37, 0x3F, -}; - -#if defined(ARCH_IS_IA32) -/* wrapper function, as simple_idct_mmx expects data to be permutated */ -void simple_idct_mmx2(int16_t * const block) -{ - int16_t tmp[64]; - int i; - - for(i=0;i<64;i++) tmp[simple_mmx_permutation[i]] = block[i]; - simple_idct_mmx(tmp); - for(i=0;i<64;i++) block[i] = tmp[i]; -} -#endif