ncobmc-adapt-weight: update the interpolation kernel type
Change-Id: I862c4b5a22c3f5b3d923cc3feecd194d03b4b892
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 0e2d289..75d52a6 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -118,12 +118,7 @@
int mi_col_end;
} SB_MI_BD;
-typedef struct {
- int KERNEL_TL[MAX_SB_SIZE][MAX_SB_SIZE];
- int KERNEL_TR[MAX_SB_SIZE][MAX_SB_SIZE];
- int KERNEL_BL[MAX_SB_SIZE][MAX_SB_SIZE];
- int KERNEL_BR[MAX_SB_SIZE][MAX_SB_SIZE];
-} NCOBMC_KERNELS;
+typedef struct { int16_t KERNEL[4][MAX_SB_SIZE][MAX_SB_SIZE]; } NCOBMC_KERNELS;
#endif
typedef struct {
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index 5174d82..5a079aa 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -3577,19 +3577,18 @@
int i;
for (i = 0; i < 4; ++i) tmp_p[i] = preds[i][plane];
- tmp = (int64_t)knls->KERNEL_TL[k_r][k_c] * tmp_p[0][pos] +
- (int64_t)knls->KERNEL_TR[k_r][k_c] * tmp_p[1][pos] +
- (int64_t)knls->KERNEL_BL[k_r][k_c] * tmp_p[2][pos] +
- (int64_t)knls->KERNEL_BR[k_r][k_c] * tmp_p[3][pos];
+ tmp = 0;
+ for (i = 0; i < 4; ++i)
+ tmp += knls->KERNEL[i][k_r][k_c] * tmp_p[i][pos];
+
} else {
uint16_t *tmp_p[4];
int i;
for (i = 0; i < 4; ++i) tmp_p[i] = CONVERT_TO_SHORTPTR(preds[i][plane]);
- tmp = (int64_t)knls->KERNEL_TL[k_r][k_c] * tmp_p[0][pos] +
- (int64_t)knls->KERNEL_TR[k_r][k_c] * tmp_p[1][pos] +
- (int64_t)knls->KERNEL_BL[k_r][k_c] * tmp_p[2][pos] +
- (int64_t)knls->KERNEL_BR[k_r][k_c] * tmp_p[3][pos];
+ tmp = 0;
+ for (i = 0; i < 4; ++i)
+ tmp += knls->KERNEL[i][k_r][k_c] * tmp_p[i][pos];
}
q_tmp = (tmp <= 0) ? 0 : ROUND_POWER_OF_TWO(tmp, KERNEL_SCALE_LOG);