Set temp to comp_pred in aom_upsampled_pred_c/neon This CL extends the SSE2 changes in commit c0f1cef (https://aomedia-review.googlesource.com/c/aom/+/207021) to C and Neon. Use the heap allocated buffer `comp_pred` as a temporary buffer in aom_upsampled_pred_c/neon() and aom_highbd_upsampled_pred_c/neon(). Change-Id: I14c8e10a4f346ca77b54952f6833c965830d13e1
diff --git a/av1/encoder/arm/reconinter_enc_neon.c b/av1/encoder/arm/reconinter_enc_neon.c index 7e0295c..e95d74f 100644 --- a/av1/encoder/arm/reconinter_enc_neon.c +++ b/av1/encoder/arm/reconinter_enc_neon.c
@@ -75,8 +75,7 @@ aom_convolve8_vert(ref, ref_stride, comp_pred, width, NULL, -1, filter_y, 16, width, height); } else { - DECLARE_ALIGNED(16, uint8_t, - im_block[((MAX_SB_SIZE * 2 + 16) + 16) * MAX_SB_SIZE]); + uint8_t *im_block = comp_pred; const int16_t *const filter_x = av1_get_interp_filter_subpel_kernel(filter_params, subpel_x_q3 << 1); @@ -171,8 +170,7 @@ aom_highbd_convolve8_vert_neon(ref8, ref_stride, comp_pred8, width, NULL, -1, kernel, 16, width, height, bd); } else { - DECLARE_ALIGNED(16, uint16_t, - temp[((MAX_SB_SIZE + 16) + 16) * MAX_SB_SIZE]); + uint16_t *temp = CONVERT_TO_SHORTPTR(comp_pred8); const int16_t *const kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1); const int16_t *const kernel_y =
diff --git a/av1/encoder/reconinter_enc.c b/av1/encoder/reconinter_enc.c index 24b20bb..a395a2f 100644 --- a/av1/encoder/reconinter_enc.c +++ b/av1/encoder/reconinter_enc.c
@@ -488,8 +488,7 @@ aom_convolve8_vert_c(ref, ref_stride, comp_pred, width, NULL, -1, kernel, 16, width, height); } else { - DECLARE_ALIGNED(16, uint8_t, - temp[((MAX_SB_SIZE * 2 + 16) + 16) * MAX_SB_SIZE]); + uint8_t *temp = comp_pred; const int16_t *const kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1); const int16_t *const kernel_y = @@ -574,8 +573,7 @@ aom_highbd_convolve8_vert_c(ref8, ref_stride, comp_pred8, width, NULL, -1, kernel, 16, width, height, bd); } else { - DECLARE_ALIGNED(16, uint16_t, - temp[((MAX_SB_SIZE + 16) + 16) * MAX_SB_SIZE]); + uint16_t *temp = CONVERT_TO_SHORTPTR(comp_pred8); const int16_t *const kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1); const int16_t *const kernel_y =