mips msa vp9 avg subpel variance optimization

average improvement ~3x-5x

Change-Id: Iefbcafc05daab77b38a4e63b551e427867a501a4
This commit is contained in:
Parag Salasakar
2015-07-01 13:46:41 +05:30
parent a42df86c03
commit 61774ad1c4
3 changed files with 1290 additions and 14 deletions

View File

@@ -2095,6 +2095,47 @@ INSTANTIATE_TEST_CASE_P(
make_tuple(5, 6, subpel_variance32x64_msa, 0),
make_tuple(6, 5, subpel_variance64x32_msa, 0),
make_tuple(6, 6, subpel_variance64x64_msa, 0)));
const vp9_subp_avg_variance_fn_t subpel_avg_variance4x4_msa =
vp9_sub_pixel_avg_variance4x4_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance4x8_msa =
vp9_sub_pixel_avg_variance4x8_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance8x4_msa =
vp9_sub_pixel_avg_variance8x4_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance8x8_msa =
vp9_sub_pixel_avg_variance8x8_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance8x16_msa =
vp9_sub_pixel_avg_variance8x16_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance16x8_msa =
vp9_sub_pixel_avg_variance16x8_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance16x16_msa =
vp9_sub_pixel_avg_variance16x16_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance16x32_msa =
vp9_sub_pixel_avg_variance16x32_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance32x16_msa =
vp9_sub_pixel_avg_variance32x16_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance32x32_msa =
vp9_sub_pixel_avg_variance32x32_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance32x64_msa =
vp9_sub_pixel_avg_variance32x64_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance64x32_msa =
vp9_sub_pixel_avg_variance64x32_msa;
const vp9_subp_avg_variance_fn_t subpel_avg_variance64x64_msa =
vp9_sub_pixel_avg_variance64x64_msa;
INSTANTIATE_TEST_CASE_P(
MSA, VP9SubpelAvgVarianceTest,
::testing::Values(make_tuple(2, 2, subpel_avg_variance4x4_msa, 0),
make_tuple(2, 3, subpel_avg_variance4x8_msa, 0),
make_tuple(3, 2, subpel_avg_variance8x4_msa, 0),
make_tuple(3, 3, subpel_avg_variance8x8_msa, 0),
make_tuple(3, 4, subpel_avg_variance8x16_msa, 0),
make_tuple(4, 3, subpel_avg_variance16x8_msa, 0),
make_tuple(4, 4, subpel_avg_variance16x16_msa, 0),
make_tuple(4, 5, subpel_avg_variance16x32_msa, 0),
make_tuple(5, 4, subpel_avg_variance32x16_msa, 0),
make_tuple(5, 5, subpel_avg_variance32x32_msa, 0),
make_tuple(5, 6, subpel_avg_variance32x64_msa, 0),
make_tuple(6, 5, subpel_avg_variance64x32_msa, 0),
make_tuple(6, 6, subpel_avg_variance64x64_msa, 0)));
#endif // CONFIG_VP9_ENCODER
#endif // HAVE_MSA
} // namespace