diff options
author | Pascal Massimino <pascal.massimino@gmail.com> | 2014-09-09 14:38:58 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-09-09 16:47:22 +0200 |
commit | e3fd6a3a4e3d28d8a50bb6ec3e19449bc4e0d3db (patch) | |
tree | 4706c3e78a5046f13e80142b1f12cbbc0756e2b6 /libavfilter/vf_idet.h | |
parent | 881f96c4c2ef0c0162f63a370cbfff3c1e1feb2a (diff) | |
download | ffmpeg-streaming-e3fd6a3a4e3d28d8a50bb6ec3e19449bc4e0d3db.zip ffmpeg-streaming-e3fd6a3a4e3d28d8a50bb6ec3e19449bc4e0d3db.tar.gz |
av_filter/x86/idet: MMX/SSE2 implementation of 16bits filter_line()
tested on http://ps-auxw.de/10bit-h264-sample/10bit-eldorado.mkv
MMX: ~30% faster decoding overall
SSE2:~40% faster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_idet.h')
-rw-r--r-- | libavfilter/vf_idet.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libavfilter/vf_idet.h b/libavfilter/vf_idet.h index 0550690..c5799fb 100644 --- a/libavfilter/vf_idet.h +++ b/libavfilter/vf_idet.h @@ -24,6 +24,8 @@ #define HIST_SIZE 4 +typedef int (*ff_idet_filter_func)(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w); + typedef enum { TFF, BFF, @@ -45,14 +47,15 @@ typedef struct { AVFrame *cur; AVFrame *next; AVFrame *prev; - int (*filter_line)(const uint8_t *prev, const uint8_t *cur, const uint8_t *next, int w); + ff_idet_filter_func filter_line; const AVPixFmtDescriptor *csp; } IDETContext; -void ff_idet_init_x86(IDETContext *idet); +void ff_idet_init_x86(IDETContext *idet, int for_16b); /* main fall-back for left-over */ int ff_idet_filter_line_c(const uint8_t *a, const uint8_t *b, const uint8_t *c, int w); +int ff_idet_filter_line_c_16bit(const uint16_t *a, const uint16_t *b, const uint16_t *c, int w); #endif |