Commit 3ec11d1e authored by Yunqing Wang's avatar Yunqing Wang Committed by Sebastien Alaiwan
Browse files

Remove unused macro USE_TEMPORALFILTER_12TAP

Removed unused macro USE_TEMPORALFILTER_12TAP as well as related unused
functions.

Change-Id: I547ec4b6d6e7e21fb38043cfd53f7f2dc0e63e1c
parent 0bdf5f5c
......@@ -59,9 +59,6 @@ if ($opts{arch} eq "x86_64") {
#
# 10/12-tap convolution filters
#
add_proto qw/void av1_lowbd_convolve_init/, "void";
specialize qw/av1_lowbd_convolve_init ssse3/;
add_proto qw/void av1_convolve_horiz/, "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params";
specialize qw/av1_convolve_horiz ssse3/;
......@@ -74,9 +71,6 @@ if (aom_config("CONFIG_HORZONLY_FRAME_SUPERRES") eq "yes") {
add_proto qw/void av1_highbd_convolve_horiz_rs/, "const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const int16_t *x_filters, int interp_taps, const int x0_qn, const int x_step_qn, int bd";
}
add_proto qw/void av1_highbd_convolve_init/, "void";
specialize qw/av1_highbd_convolve_init sse4_1/;
add_proto qw/void av1_highbd_convolve_horiz/, "const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd";
specialize qw/av1_highbd_convolve_horiz sse4_1/;
add_proto qw/void av1_highbd_convolve_vert/, "const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd";
......
......@@ -1342,23 +1342,6 @@ void av1_convolve_scale(const uint8_t *src, int src_stride, uint8_t *dst,
av1_convolve_vert_facade_scale);
}
void av1_lowbd_convolve_init_c(void) {
// A placeholder for SIMD initialization
return;
}
void av1_highbd_convolve_init_c(void) {
// A placeholder for SIMD initialization
return;
}
void av1_convolve_init(AV1_COMMON *cm) {
if (cm->use_highbitdepth)
av1_highbd_convolve_init();
else
av1_lowbd_convolve_init();
}
void av1_highbd_convolve_horiz_c(const uint16_t *src, int src_stride,
uint16_t *dst, int dst_stride, int w, int h,
const InterpFilterParams filter_params,
......
......@@ -86,7 +86,6 @@ static INLINE void av1_get_convolve_filter_params(InterpFilters interp_filters,
}
struct AV1Common;
void av1_convolve_init(struct AV1Common *cm);
struct scale_factors;
void av1_convolve_2d_facade(const uint8_t *src, int src_stride, uint8_t *dst,
int dst_stride, int w, int h,
......
......@@ -3426,7 +3426,6 @@ void av1_setup_past_independence(AV1_COMMON *cm) {
#if CONFIG_LV_MAP
av1_init_lv_map(cm);
#endif
av1_convolve_init(cm);
cm->fc->initialized = 1;
av1_setup_frame_contexts(cm);
......
......@@ -25,29 +25,6 @@ DECLARE_ALIGNED(256, static const InterpKernel,
{ 0, 0, 0, 16, 112, 0, 0, 0 }, { 0, 0, 0, 8, 120, 0, 0, 0 }
};
#if USE_TEMPORALFILTER_12TAP
DECLARE_ALIGNED(16, static const int16_t,
sub_pel_filters_temporalfilter_12[SUBPEL_SHIFTS][12]) = {
// intfilt 0.8
{ 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0 },
{ 0, 1, -1, 3, -7, 127, 8, -4, 2, -1, 0, 0 },
{ 0, 1, -3, 5, -12, 124, 18, -8, 4, -2, 1, 0 },
{ -1, 2, -4, 8, -17, 120, 28, -11, 6, -3, 1, -1 },
{ -1, 2, -4, 10, -21, 114, 38, -15, 8, -4, 2, -1 },
{ -1, 3, -5, 11, -23, 107, 49, -18, 9, -5, 2, -1 },
{ -1, 3, -6, 12, -25, 99, 60, -21, 11, -6, 3, -1 },
{ -1, 3, -6, 12, -25, 90, 70, -23, 12, -6, 3, -1 },
{ -1, 3, -6, 12, -24, 80, 80, -24, 12, -6, 3, -1 },
{ -1, 3, -6, 12, -23, 70, 90, -25, 12, -6, 3, -1 },
{ -1, 3, -6, 11, -21, 60, 99, -25, 12, -6, 3, -1 },
{ -1, 2, -5, 9, -18, 49, 107, -23, 11, -5, 3, -1 },
{ -1, 2, -4, 8, -15, 38, 114, -21, 10, -4, 2, -1 },
{ -1, 1, -3, 6, -11, 28, 120, -17, 8, -4, 2, -1 },
{ 0, 1, -2, 4, -8, 18, 124, -12, 5, -3, 1, 0 },
{ 0, 0, -1, 2, -4, 8, 127, -7, 3, -1, 1, 0 },
};
#endif // USE_TEMPORALFILTER_12TAP
DECLARE_ALIGNED(256, static const InterpKernel,
sub_pel_filters_8[SUBPEL_SHIFTS]) = {
{ 0, 0, 0, 128, 0, 0, 0, 0 }, { 0, 2, -6, 126, 8, -2, 0, 0 },
......@@ -96,13 +73,6 @@ static const InterpFilterParams
BILINEAR }
};
#if USE_TEMPORALFILTER_12TAP
static const InterpFilterParams av1_interp_temporalfilter_12tap = {
(const int16_t *)sub_pel_filters_temporalfilter_12, 12, SUBPEL_SHIFTS,
TEMPORALFILTER_12TAP
};
#endif // USE_TEMPORALFILTER_12TAP
#if CONFIG_SHORT_FILTER
DECLARE_ALIGNED(256, static const InterpKernel,
......@@ -138,21 +108,12 @@ static const InterpFilterParams av1_interp_4tap[2] = {
InterpFilterParams av1_get_interp_filter_params(
const InterpFilter interp_filter) {
#if USE_TEMPORALFILTER_12TAP
if (interp_filter == TEMPORALFILTER_12TAP)
return av1_interp_temporalfilter_12tap;
#endif // USE_TEMPORALFILTER_12TAP
return av1_interp_filter_params_list[interp_filter];
}
#if CONFIG_SHORT_FILTER
InterpFilterParams av1_get_interp_filter_params_with_block_size(
const InterpFilter interp_filter, const int w) {
#if USE_TEMPORALFILTER_12TAP
if (interp_filter == TEMPORALFILTER_12TAP)
return av1_interp_temporalfilter_12tap;
#endif // USE_TEMPORALFILTER_12TAP
if (w <= 4 &&
(interp_filter == MULTITAP_SHARP || interp_filter == EIGHTTAP_REGULAR))
return av1_interp_4tap[0];
......@@ -164,10 +125,6 @@ InterpFilterParams av1_get_interp_filter_params_with_block_size(
#endif
const int16_t *av1_get_interp_filter_kernel(const InterpFilter interp_filter) {
#if USE_TEMPORALFILTER_12TAP
if (interp_filter == TEMPORALFILTER_12TAP)
return av1_interp_temporalfilter_12tap.filter_ptr;
#endif // USE_TEMPORALFILTER_12TAP
return (const int16_t *)av1_interp_filter_params_list[interp_filter]
.filter_ptr;
}
......@@ -23,10 +23,7 @@
extern "C" {
#endif
#define USE_TEMPORALFILTER_12TAP 1
#define MAX_FILTER_TAP 12
#define USE_12TAP_FILTER 0
#define MAX_FILTER_TAP 8
typedef enum ATTRIBUTE_PACKED {
EIGHTTAP_REGULAR,
......@@ -37,9 +34,6 @@ typedef enum ATTRIBUTE_PACKED {
SWITCHABLE_FILTERS = BILINEAR,
SWITCHABLE = SWITCHABLE_FILTERS + 1, /* the last switchable one */
EXTRA_FILTERS = INTERP_FILTERS_ALL - SWITCHABLE_FILTERS,
#if USE_TEMPORALFILTER_12TAP
TEMPORALFILTER_12TAP = SWITCHABLE_FILTERS + EXTRA_FILTERS,
#endif
} InterpFilter;
// With CONFIG_DUAL_FILTER, pack two InterpFilter's into a uint32_t: since
......
This diff is collapsed.
......@@ -15,60 +15,10 @@
#include "./av1_rtcd.h"
#include "av1/common/filter.h"
#if USE_TEMPORALFILTER_12TAP
DECLARE_ALIGNED(16, static int16_t, subpel_temporalfilter[15][6][8]);
#endif
typedef int16_t (*HbdSubpelFilterCoeffs)[8];
typedef void (*TransposeSave)(int width, int pixelsNum, uint32_t *src,
int src_stride, uint16_t *dst, int dst_stride,
int bd);
static INLINE HbdSubpelFilterCoeffs
hbd_get_subpel_filter_ver_signal_dir(const InterpFilterParams p, int index) {
#if USE_TEMPORALFILTER_12TAP
if (p.interp_filter == TEMPORALFILTER_12TAP) {
return &subpel_temporalfilter[index][0];
}
#endif
(void)p;
(void)index;
return NULL;
}
static void init_simd_filter(const int16_t *filter_ptr, int taps,
int16_t (*simd_filter)[6][8]) {
int shift;
int offset = (12 - taps) / 2;
for (shift = 1; shift < SUBPEL_SHIFTS; ++shift) {
const int16_t *filter_row = filter_ptr + shift * taps;
int i, j;
for (i = 0; i < 12; ++i) {
for (j = 0; j < 4; ++j) {
int r = i / 2;
int c = j * 2 + (i % 2);
if (i - offset >= 0 && i - offset < taps)
simd_filter[shift - 1][r][c] = filter_row[i - offset];
else
simd_filter[shift - 1][r][c] = 0;
}
}
}
}
void av1_highbd_convolve_init_sse4_1(void) {
#if USE_TEMPORALFILTER_12TAP
{
InterpFilterParams filter_params =
av1_get_interp_filter_params(TEMPORALFILTER_12TAP);
int taps = filter_params.taps;
const int16_t *filter_ptr = filter_params.filter_ptr;
init_simd_filter(filter_ptr, taps, subpel_temporalfilter);
}
#endif
}
// pixelsNum 0: write all 4 pixels
// 1/2/3: residual pixels 1/2/3
static void writePixel(__m128i *u, int width, int pixelsNum, uint16_t *dst,
......@@ -200,83 +150,12 @@ void trans_accum_save_4x4(int width, int pixelsNum, uint32_t *src,
writePixel(u, width, pixelsNum, dst, dst_stride);
}
static TransposeSave transSaveTab[2] = { trans_save_4x4, trans_accum_save_4x4 };
static INLINE void transpose_pair(__m128i *in, __m128i *out) {
__m128i x0, x1;
x0 = _mm_unpacklo_epi32(in[0], in[1]);
x1 = _mm_unpacklo_epi32(in[2], in[3]);
out[0] = _mm_unpacklo_epi64(x0, x1);
out[1] = _mm_unpackhi_epi64(x0, x1);
x0 = _mm_unpackhi_epi32(in[0], in[1]);
x1 = _mm_unpackhi_epi32(in[2], in[3]);
out[2] = _mm_unpacklo_epi64(x0, x1);
out[3] = _mm_unpackhi_epi64(x0, x1);
x0 = _mm_unpacklo_epi32(in[4], in[5]);
x1 = _mm_unpacklo_epi32(in[6], in[7]);
out[4] = _mm_unpacklo_epi64(x0, x1);
out[5] = _mm_unpackhi_epi64(x0, x1);
}
static void highbd_filter_horiz(const uint16_t *src, int src_stride, __m128i *f,
int tapsNum, uint32_t *buf) {
__m128i u[8], v[6];
assert(tapsNum == 10 || tapsNum == 12);
if (tapsNum == 10) {
src -= 1;
}
u[0] = _mm_loadu_si128((__m128i const *)src);
u[1] = _mm_loadu_si128((__m128i const *)(src + src_stride));
u[2] = _mm_loadu_si128((__m128i const *)(src + 2 * src_stride));
u[3] = _mm_loadu_si128((__m128i const *)(src + 3 * src_stride));
u[4] = _mm_loadu_si128((__m128i const *)(src + 8));
u[5] = _mm_loadu_si128((__m128i const *)(src + src_stride + 8));
u[6] = _mm_loadu_si128((__m128i const *)(src + 2 * src_stride + 8));
u[7] = _mm_loadu_si128((__m128i const *)(src + 3 * src_stride + 8));
transpose_pair(u, v);
u[0] = _mm_madd_epi16(v[0], f[0]);
u[1] = _mm_madd_epi16(v[1], f[1]);
u[2] = _mm_madd_epi16(v[2], f[2]);
u[3] = _mm_madd_epi16(v[3], f[3]);
u[4] = _mm_madd_epi16(v[4], f[4]);
u[5] = _mm_madd_epi16(v[5], f[5]);
u[6] = _mm_min_epi32(u[2], u[3]);
u[7] = _mm_max_epi32(u[2], u[3]);
u[0] = _mm_add_epi32(u[0], u[1]);
u[0] = _mm_add_epi32(u[0], u[5]);
u[0] = _mm_add_epi32(u[0], u[4]);
u[0] = _mm_add_epi32(u[0], u[6]);
u[0] = _mm_add_epi32(u[0], u[7]);
_mm_storeu_si128((__m128i *)buf, u[0]);
}
void av1_highbd_convolve_horiz_sse4_1(const uint16_t *src, int src_stride,
uint16_t *dst, int dst_stride, int w,
int h,
const InterpFilterParams filter_params,
const int subpel_x_q4, int x_step_q4,
int avg, int bd) {
DECLARE_ALIGNED(16, uint32_t, temp[4 * 4]);
__m128i verf[6];
HbdSubpelFilterCoeffs vCoeffs;
const uint16_t *srcPtr;
const int tapsNum = filter_params.taps;
int i, col, count, blkResidu, blkHeight;
TransposeSave transSave = transSaveTab[avg];
(void)x_step_q4;
if (0 == subpel_x_q4 || 16 != x_step_q4) {
......@@ -285,51 +164,8 @@ void av1_highbd_convolve_horiz_sse4_1(const uint16_t *src, int src_stride,
return;
}
vCoeffs =
hbd_get_subpel_filter_ver_signal_dir(filter_params, subpel_x_q4 - 1);
if (!vCoeffs) {
av1_highbd_convolve_horiz_c(src, src_stride, dst, dst_stride, w, h,
filter_params, subpel_x_q4, x_step_q4, avg, bd);
return;
}
verf[0] = *((const __m128i *)(vCoeffs));
verf[1] = *((const __m128i *)(vCoeffs + 1));
verf[2] = *((const __m128i *)(vCoeffs + 2));
verf[3] = *((const __m128i *)(vCoeffs + 3));
verf[4] = *((const __m128i *)(vCoeffs + 4));
verf[5] = *((const __m128i *)(vCoeffs + 5));
src -= (tapsNum >> 1) - 1;
srcPtr = src;
count = 0;
blkHeight = h >> 2;
blkResidu = h & 3;
while (blkHeight != 0) {
for (col = 0; col < w; col += 4) {
for (i = 0; i < 4; ++i) {
highbd_filter_horiz(srcPtr, src_stride, verf, tapsNum, temp + (i * 4));
srcPtr += 1;
}
transSave(w, 0, temp, 4, dst + col, dst_stride, bd);
}
count++;
srcPtr = src + count * src_stride * 4;
dst += dst_stride * 4;
blkHeight--;
}
if (blkResidu == 0) return;
for (col = 0; col < w; col += 4) {
for (i = 0; i < 4; ++i) {
highbd_filter_horiz(srcPtr, src_stride, verf, tapsNum, temp + (i * 4));
srcPtr += 1;
}
transSave(w, blkResidu, temp, 4, dst + col, dst_stride, bd);
}
av1_highbd_convolve_horiz_c(src, src_stride, dst, dst_stride, w, h,
filter_params, subpel_x_q4, x_step_q4, avg, bd);
}
// Vertical convolutional filter
......@@ -385,133 +221,18 @@ static void write4pixelsAccum(__m128i *u, int bd, uint16_t *dst) {
WritePixels write4pixelsTab[2] = { write4pixelsOnly, write4pixelsAccum };
static void filter_vert_horiz_parallel(const uint16_t *src, int src_stride,
const __m128i *f, int taps,
uint16_t *dst, WritePixels saveFunc,
int bd) {
__m128i s[12];
__m128i zero = _mm_setzero_si128();
int i = 0;
int r = 0;
// TODO(luoyi) treat s[12] as a circular buffer in width = 2 case
assert(taps == 10 || taps == 12);
if (10 == taps) {
i += 1;
s[0] = zero;
}
while (i < 12) {
s[i] = _mm_loadu_si128((__m128i const *)(src + r * src_stride));
i += 1;
r += 1;
}
s[0] = _mm_unpacklo_epi16(s[0], s[1]);
s[2] = _mm_unpacklo_epi16(s[2], s[3]);
s[4] = _mm_unpacklo_epi16(s[4], s[5]);
s[6] = _mm_unpacklo_epi16(s[6], s[7]);
s[8] = _mm_unpacklo_epi16(s[8], s[9]);
s[10] = _mm_unpacklo_epi16(s[10], s[11]);
s[0] = _mm_madd_epi16(s[0], f[0]);
s[2] = _mm_madd_epi16(s[2], f[1]);
s[4] = _mm_madd_epi16(s[4], f[2]);
s[6] = _mm_madd_epi16(s[6], f[3]);
s[8] = _mm_madd_epi16(s[8], f[4]);
s[10] = _mm_madd_epi16(s[10], f[5]);
s[1] = _mm_min_epi32(s[4], s[6]);
s[3] = _mm_max_epi32(s[4], s[6]);
s[0] = _mm_add_epi32(s[0], s[2]);
s[0] = _mm_add_epi32(s[0], s[10]);
s[0] = _mm_add_epi32(s[0], s[8]);
s[0] = _mm_add_epi32(s[0], s[1]);
s[0] = _mm_add_epi32(s[0], s[3]);
saveFunc(s, bd, dst);
}
static void highbd_filter_vert_compute_large(const uint16_t *src,
int src_stride, const __m128i *f,
int taps, int w, int h,
uint16_t *dst, int dst_stride,
int avg, int bd) {
int col;
int rowIndex = 0;
const uint16_t *src_ptr = src;
uint16_t *dst_ptr = dst;
const int step = 4;
WritePixels write4pixels = write4pixelsTab[avg];
do {
for (col = 0; col < w; col += step) {
filter_vert_horiz_parallel(src_ptr, src_stride, f, taps, dst_ptr,
write4pixels, bd);
src_ptr += step;
dst_ptr += step;
}
rowIndex++;
src_ptr = src + rowIndex * src_stride;
dst_ptr = dst + rowIndex * dst_stride;
} while (rowIndex < h);
}
static void highbd_filter_vert_compute_small(const uint16_t *src,
int src_stride, const __m128i *f,
int taps, int w, int h,
uint16_t *dst, int dst_stride,
int avg, int bd) {
int rowIndex = 0;
WritePixels write2pixels = write2pixelsTab[avg];
(void)w;
do {
filter_vert_horiz_parallel(src, src_stride, f, taps, dst, write2pixels, bd);
rowIndex++;
src += src_stride;
dst += dst_stride;
} while (rowIndex < h);
}
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride,
uint16_t *dst, int dst_stride, int w,
int h,
const InterpFilterParams filter_params,
const int subpel_y_q4, int y_step_q4,
int avg, int bd) {
__m128i verf[6];
HbdSubpelFilterCoeffs vCoeffs;
const int tapsNum = filter_params.taps;
if (0 == subpel_y_q4 || 16 != y_step_q4) {
av1_highbd_convolve_vert_c(src, src_stride, dst, dst_stride, w, h,
filter_params, subpel_y_q4, y_step_q4, avg, bd);
return;
}
vCoeffs =
hbd_get_subpel_filter_ver_signal_dir(filter_params, subpel_y_q4 - 1);
if (!vCoeffs) {
av1_highbd_convolve_vert_c(src, src_stride, dst, dst_stride, w, h,
filter_params, subpel_y_q4, y_step_q4, avg, bd);
return;
}
verf[0] = *((const __m128i *)(vCoeffs));
verf[1] = *((const __m128i *)(vCoeffs + 1));
verf[2] = *((const __m128i *)(vCoeffs + 2));
verf[3] = *((const __m128i *)(vCoeffs + 3));
verf[4] = *((const __m128i *)(vCoeffs + 4));
verf[5] = *((const __m128i *)(vCoeffs + 5));
src -= src_stride * ((tapsNum >> 1) - 1);
if (w > 2) {
highbd_filter_vert_compute_large(src, src_stride, verf, tapsNum, w, h, dst,
dst_stride, avg, bd);
} else {
highbd_filter_vert_compute_small(src, src_stride, verf, tapsNum, w, h, dst,
dst_stride, avg, bd);
}
av1_highbd_convolve_vert_c(src, src_stride, dst, dst_stride, w, h,
filter_params, subpel_y_q4, y_step_q4, avg, bd);
}
......@@ -584,7 +584,6 @@ void av1_first_pass(AV1_COMP *cpi, const struct lookahead_entry *source) {
#if CONFIG_LV_MAP
av1_init_lv_map(cm);
#endif
av1_convolve_init(cm);
av1_initialize_rd_consts(cpi);
// Tiling is ignored in the first pass.
......
......@@ -42,15 +42,7 @@ static void temporal_filter_predictors_mb_c(
int uv_stride;
// TODO(angiebird): change plane setting accordingly
ConvolveParams conv_params = get_conv_params(which_mv, which_mv, 0);
#if USE_TEMPORALFILTER_12TAP
const InterpFilters interp_filters =
av1_broadcast_interp_filter(TEMPORALFILTER_12TAP);
(void)xd;
#else
const InterpFilters interp_filters = xd->mi[0]->mbmi.interp_filters;
#endif // USE_TEMPORALFILTER_12TAP
WarpTypesAllowed warp_types;
memset(&warp_types, 0, sizeof(WarpTypesAllowed));
......@@ -433,13 +425,13 @@ static void temporal_filter_iterate_c(AV1_COMP *cpi,
#if CONFIG_BGSPRITE
dst1 = target->y_buffer;
#else
dst1 = cpi->alt_ref_buffer.y_buffer;
dst1 = cpi->alt_ref_buffer.y_buffer;
#endif // CONFIG_BGSPRITE
dst1_16 = CONVERT_TO_SHORTPTR(dst1);
#if CONFIG_BGSPRITE
stride = target->y_stride;
#else
stride = cpi->alt_ref_buffer.y_stride;
stride = cpi->alt_ref_buffer.y_stride;
#endif // CONFIG_BGSPRITE
byte = mb_y_offset;
for (i = 0, k = 0; i < 16; i++) {
......@@ -483,8 +475,8 @@ static void temporal_filter_iterate_c(AV1_COMP *cpi,
dst1 = target->y_buffer;
stride = target->y_stride;
#else
dst1 = cpi->alt_ref_buffer.y_buffer;
stride = cpi->alt_ref_buffer.y_stride;
dst1 = cpi->alt_ref_buffer.y_buffer;
stride = cpi->alt_ref_buffer.y_stride;
#endif // CONFIG_BGSPRITE
byte = mb_y_offset;
for (i = 0, k = 0; i < 16; i++) {
......@@ -502,9 +494,9 @@ static void temporal_filter_iterate_c(AV1_COMP *cpi,
dst2 = target->v_buffer;
stride = target->uv_stride;
#else
dst1 = cpi->alt_ref_buffer.u_buffer;
dst2 = cpi->alt_ref_buffer.v_buffer;
stride = cpi->alt_ref_buffer.uv_stride;
dst1 = cpi->alt_ref_buffer.u_buffer;
dst2 = cpi->alt_ref_buffer.v_buffer;
stride = cpi->alt_ref_buffer.uv_stride;
#endif // CONFIG_BGSPRITE
byte = mb_uv_offset;
for (i = 0, k = 256; i < mb_uv_height; i++) {
......
......@@ -22,7 +22,6 @@ namespace {
using std::tr1::tuple;
using libaom_test::ACMRandom;
typedef void (*ConvInit)();
typedef void (*conv_filter_t)(const uint8_t *, int, uint8_t *, int, int, int,
const InterpFilterParams, int, int,
ConvolveParams *);
......@@ -33,13 +32,13 @@ typedef void (*hbd_conv_filter_t)(const uint16_t *, int, uint16_t *, int, int,
// <convolve_horiz_func, convolve_vert_func,
// <width, height>, filter_params, subpel_x_q4, avg>
typedef tuple<int, int> BlockDimension;
typedef tuple<ConvInit, conv_filter_t, conv_filter_t, BlockDimension,
InterpFilter, int, int>
typedef tuple<conv_filter_t, conv_filter_t, BlockDimension, InterpFilter, int,
int>
ConvParams;
// Test parameter list:
// <convolve_horiz_func, convolve_vert_func,
// <width, height>, filter_params, subpel_x_q4, avg, bit_dpeth>
typedef tuple<ConvInit, hbd_conv_filter_t, hbd_conv_filter_t, BlockDimension,
typedef tuple<hbd_conv_filter_t, hbd_conv_filter_t, BlockDimension,
InterpFilter, int, int, int>
HbdConvParams;
......@@ -58,16 +57,14 @@ class AV1ConvolveOptimzTest : public ::testing::TestWithParam<ConvParams> {
public:
virtual ~AV1ConvolveOptimzTest() {}
virtual void SetUp() {