Commit ac889707 authored by Zoe Liu's avatar Zoe Liu

Add encoder support for ext-comp-refs + altref2

Change-Id: I9d26f288657a15e3d0ec4c5a11e80aecc1a829ad
parent b5e48d94
...@@ -146,9 +146,15 @@ static const int filter_sets[DUAL_FILTER_SET_SIZE][2] = { ...@@ -146,9 +146,15 @@ static const int filter_sets[DUAL_FILTER_SET_SIZE][2] = {
#if CONFIG_EXT_REFS #if CONFIG_EXT_REFS
#if CONFIG_EXT_COMP_REFS #if CONFIG_EXT_COMP_REFS
#if CONFIG_ALTREF2
#define SECOND_REF_FRAME_MASK \
((1 << ALTREF_FRAME) | (1 << ALTREF2_FRAME) | (1 << BWDREF_FRAME) | \
(1 << GOLDEN_FRAME) | (1 << LAST2_FRAME) | 0x01)
#else // !CONFIG_ALTREF2
#define SECOND_REF_FRAME_MASK \ #define SECOND_REF_FRAME_MASK \
((1 << ALTREF_FRAME) | (1 << BWDREF_FRAME) | (1 << GOLDEN_FRAME) | \ ((1 << ALTREF_FRAME) | (1 << BWDREF_FRAME) | (1 << GOLDEN_FRAME) | \
(1 << LAST2_FRAME) | 0x01) // NOLINT (1 << LAST2_FRAME) | 0x01) // NOLINT
#endif // CONFIG_ALTREF2
#else // !CONFIG_EXT_COMP_REFS #else // !CONFIG_EXT_COMP_REFS
#if CONFIG_ALTREF2 #if CONFIG_ALTREF2
#define SECOND_REF_FRAME_MASK \ #define SECOND_REF_FRAME_MASK \
...@@ -6751,7 +6757,11 @@ static void estimate_ref_frame_costs( ...@@ -6751,7 +6757,11 @@ static void estimate_ref_frame_costs(
#else #else
base_cost; base_cost;
#endif // USE_UNI_COMP_REFS #endif // USE_UNI_COMP_REFS
ref_bicomp_costs[BWDREF_FRAME] = ref_bicomp_costs[ALTREF_FRAME] = 0; ref_bicomp_costs[BWDREF_FRAME] =
#if CONFIG_ALTREF2
ref_bicomp_costs[ALTREF2_FRAME] = 0;
#endif // CONFIG_ALTREF2
ref_bicomp_costs[ALTREF_FRAME] = 0;
ref_bicomp_costs[LAST_FRAME] += av1_cost_bit(ref_comp_p, 0); ref_bicomp_costs[LAST_FRAME] += av1_cost_bit(ref_comp_p, 0);
ref_bicomp_costs[LAST2_FRAME] += av1_cost_bit(ref_comp_p, 0); ref_bicomp_costs[LAST2_FRAME] += av1_cost_bit(ref_comp_p, 0);
...@@ -6765,14 +6775,22 @@ static void estimate_ref_frame_costs( ...@@ -6765,14 +6775,22 @@ static void estimate_ref_frame_costs(
ref_bicomp_costs[GOLDEN_FRAME] += av1_cost_bit(ref_comp_p2, 1); ref_bicomp_costs[GOLDEN_FRAME] += av1_cost_bit(ref_comp_p2, 1);
ref_bicomp_costs[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p, 0); ref_bicomp_costs[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p, 0);
#if CONFIG_ALTREF2
ref_bicomp_costs[ALTREF2_FRAME] += av1_cost_bit(bwdref_comp_p, 0);
#endif // CONFIG_ALTREF2
ref_bicomp_costs[ALTREF_FRAME] += av1_cost_bit(bwdref_comp_p, 1); ref_bicomp_costs[ALTREF_FRAME] += av1_cost_bit(bwdref_comp_p, 1);
int ref0; #if CONFIG_ALTREF2
ref_bicomp_costs[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p1, 0);
ref_bicomp_costs[ALTREF2_FRAME] += av1_cost_bit(bwdref_comp_p1, 1);
#endif // CONFIG_ALTREF2
int ref0, ref1;
for (ref0 = LAST_FRAME; ref0 <= GOLDEN_FRAME; ++ref0) { for (ref0 = LAST_FRAME; ref0 <= GOLDEN_FRAME; ++ref0) {
ref_costs_comp[ref0][BWDREF_FRAME] = for (ref1 = BWDREF_FRAME; ref1 <= ALTREF_FRAME; ++ref1) {
ref_bicomp_costs[ref0] + ref_bicomp_costs[BWDREF_FRAME]; ref_costs_comp[ref0][ref1] =
ref_costs_comp[ref0][ALTREF_FRAME] = ref_bicomp_costs[ref0] + ref_bicomp_costs[ref1];
ref_bicomp_costs[ref0] + ref_bicomp_costs[ALTREF_FRAME]; }
} }
aom_prob uni_comp_ref_p = av1_get_pred_prob_uni_comp_ref_p(cm, xd); aom_prob uni_comp_ref_p = av1_get_pred_prob_uni_comp_ref_p(cm, xd);
...@@ -6842,10 +6860,10 @@ static void estimate_ref_frame_costs( ...@@ -6842,10 +6860,10 @@ static void estimate_ref_frame_costs(
#endif // CONFIG_EXT_COMP_REFS #endif // CONFIG_EXT_COMP_REFS
} else { } else {
#if CONFIG_EXT_COMP_REFS #if CONFIG_EXT_COMP_REFS
int ref0; int ref0, ref1;
for (ref0 = LAST_FRAME; ref0 <= GOLDEN_FRAME; ++ref0) { for (ref0 = LAST_FRAME; ref0 <= GOLDEN_FRAME; ++ref0) {
ref_costs_comp[ref0][BWDREF_FRAME] = 512; for (ref1 = BWDREF_FRAME; ref1 <= ALTREF_FRAME; ++ref1)
ref_costs_comp[ref0][ALTREF_FRAME] = 512; ref_costs_comp[ref0][ref1] = 512;
} }
ref_costs_comp[LAST_FRAME][LAST2_FRAME] = 512; ref_costs_comp[LAST_FRAME][LAST2_FRAME] = 512;
ref_costs_comp[LAST_FRAME][LAST3_FRAME] = 512; ref_costs_comp[LAST_FRAME][LAST3_FRAME] = 512;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment