diff options
author | Linfeng Zhang <linfengz@google.com> | 2017-08-28 10:35:43 -0700 |
---|---|---|
committer | Linfeng Zhang <linfengz@google.com> | 2017-09-05 15:22:36 -0700 |
commit | d331e7a1c0c59d4055a3bfacd051268ec0832b48 (patch) | |
tree | 7309a0384415188af55340224c91d633ac608fbc /vpx_dsp/arm/vpx_convolve_neon.c | |
parent | d49a1a5329ea43968faaf295f7da5f72b28f971e (diff) | |
download | libvpx-d331e7a1c0c59d4055a3bfacd051268ec0832b48.tar libvpx-d331e7a1c0c59d4055a3bfacd051268ec0832b48.tar.gz libvpx-d331e7a1c0c59d4055a3bfacd051268ec0832b48.tar.bz2 libvpx-d331e7a1c0c59d4055a3bfacd051268ec0832b48.zip |
Remove get_filter_base() and get_filter_offset() in convolve
so that the convolve functions are independent of table alignment.
Change-Id: Ieab132a30d72c6e75bbe9473544fbe2cf51541ee
Diffstat (limited to 'vpx_dsp/arm/vpx_convolve_neon.c')
-rw-r--r-- | vpx_dsp/arm/vpx_convolve_neon.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/vpx_dsp/arm/vpx_convolve_neon.c b/vpx_dsp/arm/vpx_convolve_neon.c index bdaaff16a..2bf2d890b 100644 --- a/vpx_dsp/arm/vpx_convolve_neon.c +++ b/vpx_dsp/arm/vpx_convolve_neon.c @@ -15,8 +15,8 @@ #include "vpx_ports/mem.h" void vpx_convolve8_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, - ptrdiff_t dst_stride, const int16_t *filter_x, - int x_step_q4, const int16_t *filter_y, int y_step_q4, + ptrdiff_t dst_stride, const InterpKernel *filter, + int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h) { /* Given our constraints: w <= 64, h <= 64, taps == 8 we can reduce the * maximum buffer size to 64 * 64 + 7 (+ 1 to make it divisible by 4). @@ -33,19 +33,19 @@ void vpx_convolve8_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, * height and filter a multiple of 4 lines. Since this goes in to the temp * buffer which has lots of extra room and is subsequently discarded this is * safe if somewhat less than ideal. */ - vpx_convolve8_horiz_neon(src - src_stride * 3, src_stride, temp, w, filter_x, - x_step_q4, filter_y, y_step_q4, w, + vpx_convolve8_horiz_neon(src - src_stride * 3, src_stride, temp, w, filter, + x0_q4, x_step_q4, y0_q4, y_step_q4, w, intermediate_height); /* Step into the temp buffer 3 lines to get the actual frame data */ - vpx_convolve8_vert_neon(temp + w * 3, w, dst, dst_stride, filter_x, x_step_q4, - filter_y, y_step_q4, w, h); + vpx_convolve8_vert_neon(temp + w * 3, w, dst, dst_stride, filter, x0_q4, + x_step_q4, y0_q4, y_step_q4, w, h); } void vpx_convolve8_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, - const int16_t *filter_x, int x_step_q4, - const int16_t *filter_y, int y_step_q4, int w, + const InterpKernel *filter, int x0_q4, + int x_step_q4, int y0_q4, int y_step_q4, int w, int h) { uint8_t temp[64 * 72]; const int intermediate_height = h + 7; @@ -56,9 +56,9 @@ void vpx_convolve8_avg_neon(const uint8_t *src, ptrdiff_t src_stride, /* This implementation has the same issues as above. In addition, we only want * to average the values after both passes. */ - vpx_convolve8_horiz_neon(src - src_stride * 3, src_stride, temp, w, filter_x, - x_step_q4, filter_y, y_step_q4, w, + vpx_convolve8_horiz_neon(src - src_stride * 3, src_stride, temp, w, filter, + x0_q4, x_step_q4, y0_q4, y_step_q4, w, intermediate_height); - vpx_convolve8_avg_vert_neon(temp + w * 3, w, dst, dst_stride, filter_x, - x_step_q4, filter_y, y_step_q4, w, h); + vpx_convolve8_avg_vert_neon(temp + w * 3, w, dst, dst_stride, filter, x0_q4, + x_step_q4, y0_q4, y_step_q4, w, h); } |