ref: 130d9ade253508a2a93d9fe3a38959fa24689dbd
parent: f9d1e66f6a33aafc0c428f2a8ed7dfe1a632fbff
parent: b0a8057f6735c75f5f6d27aaa0fd54904bc5632a
author: Alex Converse <aconverse@google.com>
date: Thu Jun 12 06:37:20 EDT 2014
Merge "Fix SEG_LVL_SKIP in RD inter mode selection."
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2802,7 +2802,8 @@
*rate2 += vp9_get_switchable_rate(cpi);
if (!is_comp_pred) {
- if (!x->in_active_map) {
+ if (!x->in_active_map ||
+ vp9_segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP)) {
if (psse)
*psse = 0;
*distortion = 0;
@@ -3119,9 +3120,7 @@
// If the segment skip feature is enabled....
// then do nothing if the current mode is not allowed..
if (vp9_segfeature_active(seg, segment_id, SEG_LVL_SKIP)) {
- const int inter_non_zero_mode_mask = 0x1F7F7;
- mode_skip_mask |= inter_non_zero_mode_mask;
- mode_skip_mask &= ~(1 << THR_ZEROMV);
+ mode_skip_mask = ~(1 << THR_ZEROMV);
inter_mode_mask = (1 << ZEROMV);
}