diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2018-10-28 01:38:21 +0300 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2018-10-28 03:03:29 +0300 |
commit | acde4240fe0fd55077cfefabba1348b632f33fbd (patch) | |
tree | ef623d3f249690133c86b865bc2b4797670e763a /src/cdef.h | |
parent | dd797aa20b080487cd3a2975e7d028b03039502f (diff) |
Add AVX2 SIMD implementation for cdef_dir
cdef_dir_8bpc_c: 629.3
cdef_dir_8bpc_avx2: 82.4
First 1000 frames of Chimera 1080p:
before: 0m23.084s
after: 0m21.860s
Diffstat (limited to 'src/cdef.h')
-rw-r--r-- | src/cdef.h | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -48,8 +48,10 @@ typedef void (*cdef_fn)(pixel *dst, ptrdiff_t stride, /*const*/ pixel *const top[2], int pri_strength, int sec_strength, int dir, int damping, enum CdefEdgeFlags edges); -typedef int (*cdef_dir_fn)(const pixel *dst, ptrdiff_t stride, - unsigned *var); + +#define decl_cdef_dir_fn(name) \ +int (name)(const pixel *dst, ptrdiff_t dst_stride, unsigned *var) +typedef decl_cdef_dir_fn(*cdef_dir_fn); typedef struct Dav1dCdefDSPContext { cdef_dir_fn dir; @@ -59,4 +61,7 @@ typedef struct Dav1dCdefDSPContext { void dav1d_cdef_dsp_init_8bpc(Dav1dCdefDSPContext *c); void dav1d_cdef_dsp_init_10bpc(Dav1dCdefDSPContext *c); +void dav1d_cdef_dsp_init_x86_8bpc(Dav1dCdefDSPContext *c); +void dav1d_cdef_dsp_init_x86_10bpc(Dav1dCdefDSPContext *c); + #endif /* __DAV1D_SRC_CDEF_H__ */ |