--- idct_mmx.asm 2002/05/02 22:35:41 1.2 +++ idct_mmx.asm 2002/11/16 23:51:58 1.5 @@ -1,25 +1,73 @@ -; Originally provided by Intel at AP-922 -; http://developer.intel.com/vtune/cbts/strmsimd/922down.htm -; (See more app notes at http://developer.intel.com/vtune/cbts/strmsimd/appnotes.htm) -; but in a limited edition. -; New macro implements a column part for precise iDCT -; The routine precision now satisfies IEEE standard 1180-1990. -; -; Copyright (c) 2000-2001 Peter Gubanov -; Rounding trick Copyright (c) 2000 Michel Lespinasse -; -; http://www.elecard.com/peter/idct.html -; http://www.linuxvideo.org/mpeg2dec/ -; +;/***************************************************************************** +; * +; * XVID MPEG-4 VIDEO CODEC +; * mmx version - inverse discrete cosine transformation +; * +; * Initial version provided by Intel at AppNote AP-922 +; * Copyright (C) 1999 Intel Corporation, +; * +; * Modifications +; * Copyright (c) 2000-2001 Peter Gubanov +; * Copyright (c) 2000 Michel Lespinasse +; * +; * ported to NASM and some minor changes +; * Copyright (C) 2001 Peter Ross +; * +; * This file is part of XviD, a free MPEG-4 video encoder/decoder +; * +; * XviD 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 +; * +; * Under section 8 of the GNU General Public License, the copyright +; * holders of XVID explicitly forbid distribution in the following +; * countries: +; * +; * - Japan +; * - United States of America +; * +; * Linking XviD statically or dynamically with other modules is making a +; * combined work based on XviD. Thus, the terms and conditions of the +; * GNU General Public License cover the whole combination. +; * +; * As a special exception, the copyright holders of XviD give you +; * permission to link XviD with independent modules that communicate with +; * XviD solely through the VFW1.1 and DShow interfaces, regardless of the +; * license terms of these independent modules, and to copy and distribute +; * the resulting combined work under terms of your choice, provided that +; * every copy of the combined work is accompanied by a complete copy of +; * the source code of XviD (the version of XviD used to produce the +; * combined work), being distributed under the terms of the GNU General +; * Public License plus this exception. An independent module is a module +; * which is not derived from or based on XviD. +; * +; * Note that people who make modified versions of XviD are not obligated +; * to grant this special exception for their modified versions; it is +; * their choice whether to do so. The GNU General Public License gives +; * permission to release a modified version without this exception; this +; * exception also makes it possible to release a modified version which +; * carries forward this exception. +; * +; * $Id: idct_mmx.asm,v 1.5 2002/11/16 23:51:58 edgomez Exp $ +; * +; *************************************************************************/ + ;============================================================================= ; ; These examples contain code fragments for first stage iDCT 8x8 ; (for rows) and first stage DCT 8x8 (for columns) ; ;============================================================================= -; -; 04.11.2001 nasm conversion; peter ross -; bits 32 @@ -44,8 +92,11 @@ %define SHIFT_FRW_ROW BITS_FRW_ACC + 17 %define RND_FRW_ROW 262144 * (BITS_FRW_ACC - 1) ; 1 << (SHIFT_FRW_ROW-1) - +%ifdef FORMAT_COFF +section .data data +%else section .data data align=16 +%endif align 16