diff options
Diffstat (limited to 'third_party/aom/av1/common/convolve.h')
-rw-r--r-- | third_party/aom/av1/common/convolve.h | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/third_party/aom/av1/common/convolve.h b/third_party/aom/av1/common/convolve.h index 48b476ed5..462733946 100644 --- a/third_party/aom/av1/common/convolve.h +++ b/third_party/aom/av1/common/convolve.h @@ -27,6 +27,7 @@ typedef int32_t CONV_BUF_TYPE; typedef struct ConvolveParams { int ref; + int do_average; CONVOLVE_OPT round; CONV_BUF_TYPE *dst; int dst_stride; @@ -36,9 +37,11 @@ typedef struct ConvolveParams { int do_post_rounding; } ConvolveParams; -static INLINE ConvolveParams get_conv_params(int ref, int plane) { +static INLINE ConvolveParams get_conv_params(int ref, int do_average, + int plane) { ConvolveParams conv_params; conv_params.ref = ref; + conv_params.do_average = do_average; conv_params.round = CONVOLVE_OPT_ROUND; conv_params.plane = plane; conv_params.do_post_rounding = 0; @@ -47,12 +50,6 @@ static INLINE ConvolveParams get_conv_params(int ref, int plane) { struct AV1Common; void av1_convolve_init(struct AV1Common *cm); #if CONFIG_CONVOLVE_ROUND -void av1_convolve_2d(const uint8_t *src, int src_stride, CONV_BUF_TYPE *dst, - int dst_stride, int w, int h, - InterpFilterParams *filter_params_x, - InterpFilterParams *filter_params_y, const int subpel_x_q4, - const int subpel_y_q4, ConvolveParams *conv_params); - void av1_convolve_2d_facade(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilter *interp_filter, @@ -60,11 +57,12 @@ void av1_convolve_2d_facade(const uint8_t *src, int src_stride, uint8_t *dst, const int subpel_y_q4, int y_step_q4, ConvolveParams *conv_params); -static INLINE ConvolveParams get_conv_params_no_round(int ref, int plane, - int32_t *dst, +static INLINE ConvolveParams get_conv_params_no_round(int ref, int do_average, + int plane, int32_t *dst, int dst_stride) { ConvolveParams conv_params; conv_params.ref = ref; + conv_params.do_average = do_average; conv_params.round = CONVOLVE_OPT_NO_ROUND; #if CONFIG_COMPOUND_ROUND conv_params.round_0 = FILTER_BITS; @@ -79,21 +77,7 @@ static INLINE ConvolveParams get_conv_params_no_round(int ref, int plane, return conv_params; } -void av1_convolve_rounding(const int32_t *src, int src_stride, uint8_t *dst, - int dst_stride, int w, int h, int bits); - #if CONFIG_HIGHBITDEPTH -void av1_highbd_convolve_rounding(const int32_t *src, int src_stride, - uint8_t *dst8, int dst_stride, int w, int h, - int bits, int bd); - -void av1_highbd_convolve_2d(const uint16_t *src, int src_stride, - CONV_BUF_TYPE *dst, int dst_stride, int w, int h, - InterpFilterParams *filter_params_x, - InterpFilterParams *filter_params_y, - const int subpel_x_q4, const int subpel_y_q4, - ConvolveParams *conv_params, int bd); - void av1_highbd_convolve_2d_facade(const uint8_t *src8, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilter *interp_filter, @@ -123,6 +107,16 @@ void av1_convolve_c(const uint8_t *src, int src_stride, uint8_t *dst, const int subpel_x, int xstep, const int subpel_y, int ystep, ConvolveParams *conv_params); +void av1_convolve_scale(const uint8_t *src, int src_stride, uint8_t *dst, + int dst_stride, int w, int h, +#if CONFIG_DUAL_FILTER + const InterpFilter *interp_filter, +#else + const InterpFilter interp_filter, +#endif + const int subpel_x, int xstep, const int subpel_y, + int ystep, ConvolveParams *conv_params); + #if CONFIG_HIGHBITDEPTH void av1_highbd_convolve(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, @@ -133,6 +127,16 @@ void av1_highbd_convolve(const uint8_t *src, int src_stride, uint8_t *dst, #endif const int subpel_x, int xstep, const int subpel_y, int ystep, int avg, int bd); + +void av1_highbd_convolve_scale(const uint8_t *src, int src_stride, uint8_t *dst, + int dst_stride, int w, int h, +#if CONFIG_DUAL_FILTER + const InterpFilter *interp_filter, +#else + const InterpFilter interp_filter, +#endif // CONFIG_DUAL_FILTER + const int subpel_x, int xstep, + const int subpel_y, int ystep, int avg, int bd); #endif // CONFIG_HIGHBITDEPTH #ifdef __cplusplus |