From 017253b7a31c2e248f4741399e24f62142348637 Mon Sep 17 00:00:00 2001 From: James Zern Date: Wed, 1 Jul 2015 19:01:58 -0700 Subject: remove vp9_get_interp_kernel() expose filter_kernels[] and do the table lookup directly Change-Id: I0b10bff0327c3e01a723736141a9ffd377cd3d20 --- vp9/common/vp9_filter.c | 8 +------- vp9/common/vp9_filter.h | 2 +- vp9/common/vp9_reconinter.c | 2 +- vp9/decoder/vp9_decodeframe.c | 2 +- vp9/encoder/vp9_encoder.c | 2 +- vp9/encoder/vp9_pickmode.c | 4 ++-- vp9/encoder/vp9_rdopt.c | 4 ++-- vp9/encoder/vp9_temporal_filter.c | 2 +- 8 files changed, 10 insertions(+), 16 deletions(-) (limited to 'vp9') diff --git a/vp9/common/vp9_filter.c b/vp9/common/vp9_filter.c index 14654a5ab..4b2198fc4 100644 --- a/vp9/common/vp9_filter.c +++ b/vp9/common/vp9_filter.c @@ -96,15 +96,9 @@ DECLARE_ALIGNED(256, static const InterpKernel, }; -static const InterpKernel* filter_kernels[4] = { +const InterpKernel *vp9_filter_kernels[4] = { sub_pel_filters_8, sub_pel_filters_8lp, sub_pel_filters_8s, bilinear_filters }; - -const InterpKernel *vp9_get_interp_kernel(INTERP_FILTER filter) { - assert(filter != SWITCHABLE); - return filter_kernels[filter]; -} - diff --git a/vp9/common/vp9_filter.h b/vp9/common/vp9_filter.h index 13d38affb..40d6a0d6a 100644 --- a/vp9/common/vp9_filter.h +++ b/vp9/common/vp9_filter.h @@ -40,7 +40,7 @@ typedef uint8_t INTERP_FILTER; typedef int16_t InterpKernel[SUBPEL_TAPS]; -const InterpKernel *vp9_get_interp_kernel(INTERP_FILTER filter); +extern const InterpKernel *vp9_filter_kernels[4]; #ifdef __cplusplus } // extern "C" diff --git a/vp9/common/vp9_reconinter.c b/vp9/common/vp9_reconinter.c index be5a1507d..6d38fabd1 100644 --- a/vp9/common/vp9_reconinter.c +++ b/vp9/common/vp9_reconinter.c @@ -161,7 +161,7 @@ void build_inter_predictors(MACROBLOCKD *xd, int plane, int block, struct macroblockd_plane *const pd = &xd->plane[plane]; const MODE_INFO *mi = xd->mi[0]; const int is_compound = has_second_ref(&mi->mbmi); - const InterpKernel *kernel = vp9_get_interp_kernel(mi->mbmi.interp_filter); + const InterpKernel *kernel = vp9_filter_kernels[mi->mbmi.interp_filter]; int ref; for (ref = 0; ref < 1 + is_compound; ++ref) { diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c index 659b84848..49efc91ec 100644 --- a/vp9/decoder/vp9_decodeframe.c +++ b/vp9/decoder/vp9_decodeframe.c @@ -650,7 +650,7 @@ static void dec_build_inter_predictors_sb(VP9Decoder *const pbi, const int mi_x = mi_col * MI_SIZE; const int mi_y = mi_row * MI_SIZE; const MODE_INFO *mi = xd->mi[0]; - const InterpKernel *kernel = vp9_get_interp_kernel(mi->mbmi.interp_filter); + const InterpKernel *kernel = vp9_filter_kernels[mi->mbmi.interp_filter]; const BLOCK_SIZE sb_type = mi->mbmi.sb_type; const int is_compound = has_second_ref(&mi->mbmi); diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 45b5df4d1..3a17b2da0 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -2562,7 +2562,7 @@ static void scale_and_extend_frame(const YV12_BUFFER_CONFIG *src, const int src_strides[3] = {src->y_stride, src->uv_stride, src->uv_stride}; uint8_t *const dsts[3] = {dst->y_buffer, dst->u_buffer, dst->v_buffer}; const int dst_strides[3] = {dst->y_stride, dst->uv_stride, dst->uv_stride}; - const InterpKernel *const kernel = vp9_get_interp_kernel(EIGHTTAP); + const InterpKernel *const kernel = vp9_filter_kernels[EIGHTTAP]; int x, y, i; for (y = 0; y < dst_h; y += 16) { diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 0cba63884..e99cbc7a0 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1813,7 +1813,7 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x, &xd->block_refs[0]->sf, 4 * num_4x4_blocks_wide, 4 * num_4x4_blocks_high, 0, - vp9_get_interp_kernel(mbmi->interp_filter), + vp9_filter_kernels[mbmi->interp_filter], MV_PRECISION_Q3, mi_col * MI_SIZE + 4 * (i & 0x01), mi_row * MI_SIZE + 4 * (i >> 1), xd->bd); @@ -1825,7 +1825,7 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x, &xd->block_refs[0]->sf, 4 * num_4x4_blocks_wide, 4 * num_4x4_blocks_high, 0, - vp9_get_interp_kernel(mbmi->interp_filter), + vp9_filter_kernels[mbmi->interp_filter], MV_PRECISION_Q3, mi_col * MI_SIZE + 4 * (i & 0x01), mi_row * MI_SIZE + 4 * (i >> 1)); diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index e6b7f193a..43991ec63 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -1358,7 +1358,7 @@ static int64_t encode_inter_mb_segment(VP9_COMP *cpi, int thisrate = 0, ref; const scan_order *so = &vp9_default_scan_orders[TX_4X4]; const int is_compound = has_second_ref(&mi->mbmi); - const InterpKernel *kernel = vp9_get_interp_kernel(mi->mbmi.interp_filter); + const InterpKernel *kernel = vp9_filter_kernels[mi->mbmi.interp_filter]; for (ref = 0; ref < 1 + is_compound; ++ref) { const uint8_t *pre = &pd->pre[ref].buf[vp9_raster_block_offset(BLOCK_8X8, i, @@ -1564,7 +1564,7 @@ static void joint_motion_search(VP9_COMP *cpi, MACROBLOCK *x, mbmi->ref_frame[1] < 0 ? 0 : mbmi->ref_frame[1]}; int_mv ref_mv[2]; int ite, ref; - const InterpKernel *kernel = vp9_get_interp_kernel(mbmi->interp_filter); + const InterpKernel *kernel = vp9_filter_kernels[mbmi->interp_filter]; struct scale_factors sf; // Do joint motion search in compound mode to get more accurate mv. diff --git a/vp9/encoder/vp9_temporal_filter.c b/vp9/encoder/vp9_temporal_filter.c index 24b6203cb..3475d58da 100644 --- a/vp9/encoder/vp9_temporal_filter.c +++ b/vp9/encoder/vp9_temporal_filter.c @@ -46,7 +46,7 @@ static void temporal_filter_predictors_mb_c(MACROBLOCKD *xd, const int which_mv = 0; const MV mv = { mv_row, mv_col }; const InterpKernel *const kernel = - vp9_get_interp_kernel(xd->mi[0]->mbmi.interp_filter); + vp9_filter_kernels[xd->mi[0]->mbmi.interp_filter]; enum mv_precision mv_precision_uv; int uv_stride; -- cgit v1.2.3