summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2018-09-18 15:26:26 -0700
committerJingning Han <jingning@google.com>2018-09-20 08:58:06 -0700
commit4770f851a893123b76b204dad85a7a09dfb1b6ed (patch)
tree2550174fb631011224af4e4dfa24995dd695e583 /vp9
parentd7ed861ce3b1751d666d0cd942582eff48d310bf (diff)
downloadlibvpx-4770f851a893123b76b204dad85a7a09dfb1b6ed.tar
libvpx-4770f851a893123b76b204dad85a7a09dfb1b6ed.tar.gz
libvpx-4770f851a893123b76b204dad85a7a09dfb1b6ed.tar.bz2
libvpx-4770f851a893123b76b204dad85a7a09dfb1b6ed.zip
Update the comp_refs counts
Generalize the comp_refs counts update support the case where one has 1 fwd and 2 bwd reference frames too. Change-Id: I979216a95d45efef51026158f94612bef39d3c6d
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_encodeframe.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 488f04d98..702f8c2ea 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -2027,8 +2027,10 @@ static void update_stats(VP9_COMMON *cm, ThreadData *td) {
[has_second_ref(mi)]++;
if (has_second_ref(mi)) {
- counts->comp_ref[vp9_get_pred_context_comp_ref_p(cm, xd)]
- [ref0 == GOLDEN_FRAME]++;
+ const int idx = cm->ref_frame_sign_bias[cm->comp_fixed_ref];
+ const int ctx = vp9_get_pred_context_comp_ref_p(cm, xd);
+ const int bit = mi->ref_frame[!idx] == cm->comp_var_ref[1];
+ counts->comp_ref[ctx][bit]++;
} else {
counts->single_ref[vp9_get_pred_context_single_ref_p1(xd)][0]
[ref0 != LAST_FRAME]++;