summaryrefslogtreecommitdiff
path: root/libavcodec/hevcdsp.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-07-24 18:56:54 +0200
committerAnton Khirnov <anton@khirnov.net>2015-12-05 21:10:41 +0100
commit688417399c69aadd4c287bdb0dec82ef8799011c (patch)
tree872ef2840ecd6007bad27df007b0f97ee19c9ae0 /libavcodec/hevcdsp.h
parent818bfe7f0a3ff243deb63c4b146de2563f38ffd4 (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.h36
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,