separate compound/singleref convolve functions
First part of a clean-up to remove conv_params->dst.
This is a similar change as
https://aomedia-review.googlesource.com/c/aom/+/107922
but for the master branch.
1. Directly reference convolves and clean-up unused parameters
(instead of the indirect sf->convolve map)
2. Remove av1_convolve_2d_copy - redundant with
aom_convolve_copy. Other redundant functions will be removed
in future changes.
3. Enable MIPS optimizations for aom_convolve_copy -- they
are already present, but were not enabled.
4. Re-work the convolve testing framework. The time
to run the tests has been reduced by ~8%; the code is less
compact but I believe it is easier to read.
BUG=aomedia:2634
Change-Id: I515526437e9dc40db3b54a264c8cde416e3a1e4c
diff --git a/aom_dsp/mips/convolve8_dspr2.c b/aom_dsp/mips/aom_convolve_copy_dspr2.c
similarity index 96%
rename from aom_dsp/mips/convolve8_dspr2.c
rename to aom_dsp/mips/aom_convolve_copy_dspr2.c
index af54b42..12a213e 100644
--- a/aom_dsp/mips/convolve8_dspr2.c
+++ b/aom_dsp/mips/aom_convolve_copy_dspr2.c
@@ -21,17 +21,9 @@
#if HAVE_DSPR2
void aom_convolve_copy_dspr2(const uint8_t *src, ptrdiff_t src_stride,
- uint8_t *dst, ptrdiff_t dst_stride,
- const int16_t *filter_x, int filter_x_stride,
- const int16_t *filter_y, int filter_y_stride,
- int w, int h) {
+ uint8_t *dst, ptrdiff_t dst_stride, int w, int h) {
int x, y;
- (void)filter_x;
- (void)filter_x_stride;
- (void)filter_y;
- (void)filter_y_stride;
-
/* prefetch data to cache memory */
prefetch_load(src);
prefetch_load(src + 32);
diff --git a/aom_dsp/mips/aom_convolve_copy_msa.c b/aom_dsp/mips/aom_convolve_copy_msa.c
index f7f116f..12e7d95 100644
--- a/aom_dsp/mips/aom_convolve_copy_msa.c
+++ b/aom_dsp/mips/aom_convolve_copy_msa.c
@@ -198,15 +198,8 @@
}
void aom_convolve_copy_msa(const uint8_t *src, ptrdiff_t src_stride,
- uint8_t *dst, ptrdiff_t dst_stride,
- const int16_t *filter_x, int32_t filter_x_stride,
- const int16_t *filter_y, int32_t filter_y_stride,
- int32_t w, int32_t h) {
- (void)filter_x;
- (void)filter_y;
- (void)filter_x_stride;
- (void)filter_y_stride;
-
+ uint8_t *dst, ptrdiff_t dst_stride, int32_t w,
+ int32_t h) {
switch (w) {
case 4: {
uint32_t cnt, tmp;
@@ -238,7 +231,7 @@
default: {
uint32_t cnt;
for (cnt = h; cnt--;) {
- memcpy(dst, src, w);
+ memmove(dst, src, w);
src += src_stride;
dst += dst_stride;
}