James,
On Wed, Sep 3, 2014 at 10:14 AM, James Almer <jamr...@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@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
0001-MMX-MMXEXT-SSE2-implementation-of-idet-s-filter_line.patch
Description: Binary data
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel