diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h index fc9fe7cdf286551bf096e2487af5c75820a2749a..4b06a61bd4bab10c6357285649cf6be0e70a1004 100644 --- a/vp9/common/vp9_blockd.h +++ b/vp9/common/vp9_blockd.h @@ -30,7 +30,7 @@ #define MBSKIP_CONTEXTS 3 #define MAX_REF_LF_DELTAS 4 -#define MAX_MODE_LF_DELTAS 4 +#define MAX_MODE_LF_DELTAS 2 /* Segment Feature Masks */ #define SEGMENT_DELTADATA 0 @@ -339,9 +339,9 @@ typedef struct macroblockd { signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS]; /* 0 = Intra, Last, GF, ARF */ signed char ref_lf_deltas[MAX_REF_LF_DELTAS]; - /* 0 = I4X4_PRED, ZERO_MV, MV, SPLIT */ + /* 0 = ZERO_MV, MV */ signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS]; - /* 0 = I4X4_PRED, ZERO_MV, MV, SPLIT */ + /* 0 = ZERO_MV, MV */ signed char mode_lf_deltas[MAX_MODE_LF_DELTAS]; /* Distance of MB away from frame edges */ diff --git a/vp9/common/vp9_entropymode.c b/vp9/common/vp9_entropymode.c index 699b84686899713c532d8e0c70f1f3a85a4a4f4f..bf57e7ecca0e37ffa946c1696602c9cbd2dbd72a 100644 --- a/vp9/common/vp9_entropymode.c +++ b/vp9/common/vp9_entropymode.c @@ -449,10 +449,8 @@ static void set_default_lf_deltas(MACROBLOCKD *xd) { xd->ref_lf_deltas[GOLDEN_FRAME] = -1; xd->ref_lf_deltas[ALTREF_FRAME] = -1; - xd->mode_lf_deltas[0] = 2; // I4X4_PRED - xd->mode_lf_deltas[1] = -1; // Zero - xd->mode_lf_deltas[2] = 1; // New mv - xd->mode_lf_deltas[3] = 2; // Split mv + xd->mode_lf_deltas[0] = 0; // Zero + xd->mode_lf_deltas[1] = 0; // New mv } void vp9_setup_past_independence(VP9_COMMON *cm, MACROBLOCKD *xd) { diff --git a/vp9/common/vp9_loopfilter.c b/vp9/common/vp9_loopfilter.c index e3d8e858d8b5f56c5134934f8ed386701f2dfee7..0347630fa2a3c53fb4ebebf64b60a56af2f591c9 100644 --- a/vp9/common/vp9_loopfilter.c +++ b/vp9/common/vp9_loopfilter.c @@ -17,20 +17,20 @@ #include "vp9/common/vp9_seg_common.h" static void lf_init_lut(loop_filter_info_n *lfi) { - lfi->mode_lf_lut[DC_PRED] = 1; - lfi->mode_lf_lut[D45_PRED] = 1; - lfi->mode_lf_lut[D135_PRED] = 1; - lfi->mode_lf_lut[D117_PRED] = 1; - lfi->mode_lf_lut[D153_PRED] = 1; - lfi->mode_lf_lut[D27_PRED] = 1; - lfi->mode_lf_lut[D63_PRED] = 1; - lfi->mode_lf_lut[V_PRED] = 1; - lfi->mode_lf_lut[H_PRED] = 1; - lfi->mode_lf_lut[TM_PRED] = 1; - lfi->mode_lf_lut[ZEROMV] = 1; - lfi->mode_lf_lut[NEARESTMV] = 2; - lfi->mode_lf_lut[NEARMV] = 2; - lfi->mode_lf_lut[NEWMV] = 2; + lfi->mode_lf_lut[DC_PRED] = 0; + lfi->mode_lf_lut[D45_PRED] = 0; + lfi->mode_lf_lut[D135_PRED] = 0; + lfi->mode_lf_lut[D117_PRED] = 0; + lfi->mode_lf_lut[D153_PRED] = 0; + lfi->mode_lf_lut[D27_PRED] = 0; + lfi->mode_lf_lut[D63_PRED] = 0; + lfi->mode_lf_lut[V_PRED] = 0; + lfi->mode_lf_lut[H_PRED] = 0; + lfi->mode_lf_lut[TM_PRED] = 0; + lfi->mode_lf_lut[ZEROMV] = 0; + lfi->mode_lf_lut[NEARESTMV] = 1; + lfi->mode_lf_lut[NEARMV] = 1; + lfi->mode_lf_lut[NEWMV] = 1; } void vp9_loop_filter_update_sharpness(loop_filter_info_n *lfi, @@ -132,13 +132,7 @@ void vp9_loop_filter_frame_init(VP9_COMMON *cm, /* Apply delta for reference frame */ lvl_ref += xd->ref_lf_deltas[ref] << n_shift; - /* Apply delta for Intra modes */ - mode = 0; /* I4X4_PRED */ - /* Only the split mode I4X4_PRED has a further special case */ - lvl_mode = lvl_ref + (xd->mode_lf_deltas[mode] << n_shift); - lfi->lvl[seg][ref][mode] = clamp(lvl_mode, 0, 63); - - mode = 1; /* all the rest of Intra modes */ + mode = 0; /* all the rest of Intra modes */ lvl_mode = lvl_ref; lfi->lvl[seg][ref][mode] = clamp(lvl_mode, 0, 63); @@ -150,7 +144,7 @@ void vp9_loop_filter_frame_init(VP9_COMMON *cm, lvl_ref += xd->ref_lf_deltas[ref] << n_shift; /* Apply delta for Inter modes */ - for (mode = 1; mode < 4; mode++) { + for (mode = 0; mode < MAX_MODE_LF_DELTAS; mode++) { lvl_mode = lvl_ref + (xd->mode_lf_deltas[mode] << n_shift); lfi->lvl[seg][ref][mode] = clamp(lvl_mode, 0, 63); } diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index dd79edd4a2fcaa91e8579e9281980287dca8fcd8..73220dcd9c6f669cff8414bf14ff363d0f6dcc1e 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -575,10 +575,8 @@ static void set_default_lf_deltas(VP9_COMP *cpi) { cpi->mb.e_mbd.ref_lf_deltas[GOLDEN_FRAME] = -2; cpi->mb.e_mbd.ref_lf_deltas[ALTREF_FRAME] = -2; - cpi->mb.e_mbd.mode_lf_deltas[0] = 4; // I4X4_PRED - cpi->mb.e_mbd.mode_lf_deltas[1] = -2; // Zero - cpi->mb.e_mbd.mode_lf_deltas[2] = 2; // New mv - cpi->mb.e_mbd.mode_lf_deltas[3] = 4; // Split mv + cpi->mb.e_mbd.mode_lf_deltas[0] = 0; // Zero + cpi->mb.e_mbd.mode_lf_deltas[1] = 0; // New mv } static void set_rd_speed_thresholds(VP9_COMP *cpi, int mode, int speed) { diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h index a2ecf6d82c8c9eb464ec72254f438d49c8d4a166..b8a60d2f2bd361095bffeddc95c292cfc08c0ce5 100644 --- a/vp9/encoder/vp9_onyx_int.h +++ b/vp9/encoder/vp9_onyx_int.h @@ -74,7 +74,7 @@ typedef struct { // 0 = Intra, Last, GF, ARF signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS]; - // 0 = I4X4_PRED, ZERO_MV, MV, SPLIT + // 0 = ZERO_MV, MV signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS]; vp9_coeff_probs_model coef_probs[TX_SIZE_MAX_SB][BLOCK_TYPES];