diff options
author | Anton Khirnov <anton@khirnov.net> | 2015-07-24 19:56:54 +0300 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2015-12-05 23:10:41 +0300 |
commit | 688417399c69aadd4c287bdb0dec82ef8799011c (patch) | |
tree | 872ef2840ecd6007bad27df007b0f97ee19c9ae0 /libavcodec/hevcdsp.h | |
parent | 818bfe7f0a3ff243deb63c4b146de2563f38ffd4 (diff) |
hevcdsp: split the pred functions by width
This should allow for more efficient SIMD.
Diffstat (limited to 'libavcodec/hevcdsp.h')
-rw-r--r-- | libavcodec/hevcdsp.h | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/libavcodec/hevcdsp.h b/libavcodec/hevcdsp.h index e906c5e4aa..59dd9b25ec 100644 --- a/libavcodec/hevcdsp.h +++ b/libavcodec/hevcdsp.h @@ -65,18 +65,30 @@ typedef struct HEVCDSPContext { ptrdiff_t srcstride, int height, int mx, int my, int16_t *mcbuffer); - void (*put_unweighted_pred)(uint8_t *dst, ptrdiff_t dststride, int16_t *src, - ptrdiff_t srcstride, int width, int height); - void (*put_unweighted_pred_avg)(uint8_t *dst, ptrdiff_t dststride, - int16_t *src1, int16_t *src2, - ptrdiff_t srcstride, int width, int height); - void (*weighted_pred)(uint8_t denom, int16_t wlxFlag, int16_t olxFlag, - uint8_t *dst, ptrdiff_t dststride, int16_t *src, - ptrdiff_t srcstride, int width, int height); - void (*weighted_pred_avg)(uint8_t denom, int16_t wl0Flag, int16_t wl1Flag, - int16_t ol0Flag, int16_t ol1Flag, uint8_t *dst, - ptrdiff_t dststride, int16_t *src1, int16_t *src2, - ptrdiff_t srcstride, int width, int height); + void (*put_unweighted_pred[8])(uint8_t *dst, ptrdiff_t dststride, int16_t *src, + ptrdiff_t srcstride, int height); + void (*put_unweighted_pred_chroma[8])(uint8_t *dst, ptrdiff_t dststride, int16_t *src, + ptrdiff_t srcstride, int height); + void (*put_unweighted_pred_avg[8])(uint8_t *dst, ptrdiff_t dststride, + int16_t *src1, int16_t *src2, + ptrdiff_t srcstride, int height); + void (*put_unweighted_pred_avg_chroma[8])(uint8_t *dst, ptrdiff_t dststride, + int16_t *src1, int16_t *src2, + ptrdiff_t srcstride, int height); + void (*weighted_pred[8])(uint8_t denom, int16_t wlxFlag, int16_t olxFlag, + uint8_t *dst, ptrdiff_t dststride, int16_t *src, + ptrdiff_t srcstride, int height); + void (*weighted_pred_chroma[8])(uint8_t denom, int16_t wlxFlag, int16_t olxFlag, + uint8_t *dst, ptrdiff_t dststride, int16_t *src, + ptrdiff_t srcstride, int height); + void (*weighted_pred_avg[8])(uint8_t denom, int16_t wl0Flag, int16_t wl1Flag, + int16_t ol0Flag, int16_t ol1Flag, uint8_t *dst, + ptrdiff_t dststride, int16_t *src1, int16_t *src2, + ptrdiff_t srcstride, int height); + void (*weighted_pred_avg_chroma[8])(uint8_t denom, int16_t wl0Flag, int16_t wl1Flag, + int16_t ol0Flag, int16_t ol1Flag, uint8_t *dst, + ptrdiff_t dststride, int16_t *src1, int16_t *src2, + ptrdiff_t srcstride, int height); void (*hevc_h_loop_filter_luma)(uint8_t *pix, ptrdiff_t stride, int beta, int *tc, |