diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2015-07-12 19:33:06 -0400 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-14 05:07:07 +0200 |
commit | dfc58584b4e5c35d6aebc5d21223bf714024f0ea (patch) | |
tree | 7394cda41bc28fdb073b60f168e508349b4815b8 /libavfilter/ssim.h | |
parent | 39a04ebcaf0410d8c5de1435fd1c4d0ed9752776 (diff) | |
download | ffmpeg-dfc58584b4e5c35d6aebc5d21223bf714024f0ea.tar.gz |
vf_ssim: x86 simd for ssim_4x4xN and ssim_endN.
Both are 2-2.5x faster than their C counterpart.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavfilter/ssim.h')
-rw-r--r-- | libavfilter/ssim.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libavfilter/ssim.h b/libavfilter/ssim.h new file mode 100644 index 0000000000..cd3a6eef4b --- /dev/null +++ b/libavfilter/ssim.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2015 Ronald S. Bultje <rsbultje@gmail.com> + * + * This file is part of FFmpeg. + * + * FFmpeg 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.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser 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 + */ + +#ifndef LIBAVFILTER_SSIM_H +#define LIBAVFILTER_SSIM_H + +#include <stddef.h> +#include <stdint.h> + +typedef struct SSIMDSPContext { + void (*ssim_4x4_line)(const uint8_t *buf, ptrdiff_t buf_stride, + const uint8_t *ref, ptrdiff_t ref_stride, + int (*sums)[4], int w); + float (*ssim_end_line)(const int (*sum0)[4], const int (*sum1)[4], int w); +} SSIMDSPContext; + +void ff_ssim_init_x86(SSIMDSPContext *dsp); + +#endif /* LIBAVFILTER_SSIM_H */ |