[FFmpeg-devel] [PATCH] SSE2 version of vf_idet's filter_line()

Pascal Massimino pascal.massimino at gmail.com
Wed Sep 3 21:15:49 CEST 2014


James,


On Wed, Sep 3, 2014 at 10:14 AM, James Almer <jamrial at gmail.com> wrote:

> > diff --git a/libavfilter/x86/vf_idet_init.c
> b/libavfilter/x86/vf_idet_init.c
> > new file mode 100644
> > index 0000000..402d504
> > --- /dev/null
> > +++ b/libavfilter/x86/vf_idet_init.c
> > @@ -0,0 +1,70 @@
> > +/*
> > + * This file is part of FFmpeg.
> > + *
> > + * FFmpeg 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.
> > + *
> > + * FFmpeg 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 FFmpeg; if not, write to the Free Software
> > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> 02110-1301 USA
> > + */
> > +
> > +#include "libavutil/attributes.h"
> > +#include "libavutil/cpu.h"
> > +#include "libavutil/mem.h"
> > +#include "libavutil/x86/asm.h"
> > +#include "libavutil/x86/cpu.h"
> > +#include "libavfilter/vf_idet.h"
> > +
> > +/* declares main callable idet_filter_line_{mmx,mmxext,sse2}() */
> > +#define FUNC_MAIN_DECL(KIND, SPAN)
>   \
> > +int ff_idet_filter_line_##KIND(const uint8_t *a, const uint8_t *b,
>   \
> > +                               const uint8_t *c, int w);
>   \
> > +static int idet_filter_line_##KIND(const uint8_t *a, const uint8_t *b,
>   \
> > +                                   const uint8_t *c, int w) {
>    \
> > +    int sum = 0;
>   \
> > +    const int left_over = w % SPAN;
>    \
>
> Can w ever be < 0? If not then w & SPAN-1 should be faster.
> You could also make SPAN be 15 and 7 to avoid that -1.
>

indeed, done.


>
> > +    w -= left_over;
>    \
> > +    if (w > 0)
>   \
> > +        sum += ff_idet_filter_line_##KIND(a, b, c, w);
>   \
> > +    if (left_over > 0)
>   \
> > +        sum += ff_idet_filter_line_c(a + w, b + w, c + w, left_over);
>    \
> > +    return sum;
>    \
> > +}
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-MMX-MMXEXT-SSE2-implementation-of-idet-s-filter_line.patch
Type: application/octet-stream
Size: 11946 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140903/a090214b/attachment.obj>


More information about the ffmpeg-devel mailing list