[FFmpeg-devel] Fixpoint FFT optimization, with MDCT and IMDCT wrappers for audio optimization

Marc Hoffman mmhoffm
Mon Jul 30 01:25:43 CEST 2007


On 7/29/07, Diego Biurrun <diego at biurrun.de> wrote:
> On Sun, Jul 29, 2007 at 07:15:36PM -0400, Marc Hoffman wrote:
> > On 7/29/07, Diego Biurrun <diego at biurrun.de> wrote:
> > > On Sun, Jul 29, 2007 at 06:00:26PM -0400, Marc Hoffman wrote:
> > > > On 7/29/07, Diego Biurrun <diego at biurrun.de> wrote:
> > > > > On Sun, Jul 29, 2007 at 02:14:19PM -0400, mmh wrote:
> > > > > >
> > > > > > I think I got the integration issues out now.  Thanks for all the great input.
> > > > > >
> > > > > > --- configure (revision 9807)
> > > > > > +++ configure (working copy)
> > > > > > @@ -608,6 +608,7 @@
> > > > > >      v4l2
> > > > > >      x11grab
> > > > > >      zlib
> > > > > > +    fixedpoint
> > > > > >  '
> > > > >
> > > > > Alphabetical order please, also this seems to be unused.
> > > > >
> > > > > > --- libavcodec/Makefile       (revision 9807)
> > > > > > +++ libavcodec/Makefile       (working copy)
> > > > > > @@ -358,6 +358,10 @@
> > > > > >  OBJS-$(CONFIG_VP6F_DECODER)            += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
> > > > > >  endif
> > > > > >
> > > > > > +ifeq ($(HAVE_FIXEDPOINT),yes)
> > > > > > +OBJS += fft_fixedpoint.o
> > > > > > +endif
> > > > >
> > > > > This can be done in one line like all the other entries in the Makefile.
> > > > >
> > > > > I don't quite understand what CONFIG_FIXEDPOINT/HAVE_FIXEDPOINT is
> > > > > supposed to do, you're not setting the variable anywhere and thus it
> > > > > will not find its way into config.mak and make will not compile the
> > > > > file ...
> > > >
> > > > I set it by hand with configure --enable-fixedpoint.
> > > >
> > > > which created the following
> > > >
> > > > mmh at yoda$ grep FIXEDPOINT config.mak config.h
> > > > config.mak:HAVE_FIXEDPOINT=yes
> > > > config.mak:CONFIG_FIXEDPOINT=yes
> > > > config.h:#define HAVE_FIXEDPOINT 1
> > > > config.h:#define ENABLE_FIXEDPOINT 1
> > > > config.h:#define CONFIG_FIXEDPOINT 1
> > > > config.h:#define ENABLE_FIXEDPOINT 1
> > > > mmh at yoda$
> > >
> > > OK, this will work of course, but you forgot to add the option to the
> > > --help output.
> > >
> > > CONFIG_FIXEDPOINT is enough, it's what we use for things that can be
> > > individually enabled and disabled.
> >
> > Ok I will just put it in the config list if thats what you want but I
> > kind of like the ENABLE_FIXPOINT macro.  Does it matter if I put it in
> > both places?
>
> Yes, it will be needlessly duplicated, ENABLE_FIXEDPOINT will be
> generated either way, ENABLE_FIXEDPOINT will be generated either way.
>
> Diego
>
> P.S.: Don't say fixpoint when you mean fixEDpoint, you'll confuse Attila
> ;)

No somethings different about it Diego.  I think the difference is
that if you have it defined in HAVE then you get a macro
ENABLE_FIXEDPOINT 0 or 1 which makes

===================================================================
--- libavcodec/fft.c	(revision 9807)
+++ libavcodec/fft.c	(working copy)
@@ -59,6 +59,9 @@
     s->imdct_calc = ff_imdct_calc;
     s->exptab1 = NULL;

+    if (ENABLE_FIXPOINT)
+        ff_fixedpoint_fft_init (s);
+
     /* compute constant table for HAVE_SSE version */
 #if defined(HAVE_MMX) \
     || (defined(HAVE_ALTIVEC) && !defined(ALTIVEC_USE_REFERENCE_C_CODE))

This patch ifdef less which someone told me was better moving forward.
 Your call I guess its only used here and in the make file.




More information about the ffmpeg-devel mailing list