Conduct diff wtd type search once per coding block
Reuse the prior search results of diff wtd type.
STATS_CHANGED
Change-Id: I7606778284658389b640379c97ce584c8ff00493
diff --git a/av1/encoder/compound_type.c b/av1/encoder/compound_type.c
index 6594bce..fd39bde 100644
--- a/av1/encoder/compound_type.c
+++ b/av1/encoder/compound_type.c
@@ -1470,7 +1470,8 @@
}
if (need_mask_search) {
- args->diffwtd_index = best_mask_index;
+ if (have_newmv_in_inter_mode(this_mode))
+ args->diffwtd_index = best_mask_index;
} else {
mbmi->interinter_comp.mask_type = args->diffwtd_index;
rs2 = masked_type_cost[cur_type];
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index c6b2d16..d9cbc90 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2656,8 +2656,6 @@
save_mv[i][1].as_int = INVALID_MV;
}
- args->diffwtd_index = -1;
-
// Main loop of this function. This will iterate over all of the ref mvs
// in the dynamic reference list and do the following:
// 1.) Get the current MV. Create newmv MV if necessary
@@ -5230,7 +5228,7 @@
0,
-1,
-1,
- 0 };
+ -1 };
// Indicates the appropriate number of simple translation winner modes for
// exhaustive motion mode evaluation
const int max_winner_motion_mode_cand =
diff --git a/test/horz_superres_test.cc b/test/horz_superres_test.cc
index 09fc101..b8a268e 100644
--- a/test/horz_superres_test.cc
+++ b/test/horz_superres_test.cc
@@ -55,7 +55,7 @@
{ "park_joy_90p_8_420.y4m", AOM_IMG_FMT_I420, AOM_BITS_8, 0, 5, 0, 25.7,
45.0 },
#if CONFIG_AV1_HIGHBITDEPTH
- { "park_joy_90p_10_444.y4m", AOM_IMG_FMT_I44416, AOM_BITS_10, 1, 5, 0, 28.0,
+ { "park_joy_90p_10_444.y4m", AOM_IMG_FMT_I44416, AOM_BITS_10, 1, 5, 0, 27.0,
48.0 },
#endif
{ "screendata.y4m", AOM_IMG_FMT_I420, AOM_BITS_8, 0, 4, 1, 23.0, 56.0 },