Commit 62fe78e5 authored by Yunqing Wang's avatar Yunqing Wang

Remove ext-warped-motion part2

Part2 of ext-warped-motion experiment was removed.

Change-Id: I1b7aebad1fd7cb60d92c3ce959d5101228addae2
parent 6396d3ac
......@@ -278,9 +278,6 @@ typedef struct MB_MODE_INFO {
int wedge_sign;
SEG_MASK_TYPE mask_type;
MOTION_MODE motion_mode;
#if CONFIG_EXT_WARPED_MOTION
int wm_ctx;
#endif // CONFIG_EXT_WARPED_MOTION
int overlappable_neighbors[2];
int_mv mv[2];
int_mv pred_mv[2];
......
......@@ -804,7 +804,6 @@ static const aom_cdf_prob
#endif // CONFIG_EXT_PARTITION
};
#if !CONFIG_EXT_WARPED_MOTION
static const aom_cdf_prob
default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
......@@ -825,69 +824,6 @@ static const aom_cdf_prob
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
#endif
};
#else
static const aom_cdf_prob
default_motion_mode_cdf[MOTION_MODE_CTX][BLOCK_SIZES_ALL][CDF_SIZE(
MOTION_MODES)] = {
{
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(7936, 19091) },
{ AOM_CDF3(4991, 19205) }, { AOM_CDF3(4992, 19314) },
{ AOM_CDF3(15104, 21590) }, { AOM_CDF3(9855, 21043) },
{ AOM_CDF3(12800, 22238) }, { AOM_CDF3(24320, 26498) },
{ AOM_CDF3(26496, 28995) }, { AOM_CDF3(25216, 28166) },
{ AOM_CDF3(30592, 31238) },
#if CONFIG_EXT_PARTITION
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
{ AOM_CDF3(32256, 32656) },
#endif
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
#if CONFIG_EXT_PARTITION
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
#endif
},
{
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(7936, 19091) },
{ AOM_CDF3(4991, 19205) }, { AOM_CDF3(4992, 19314) },
{ AOM_CDF3(15104, 21590) }, { AOM_CDF3(9855, 21043) },
{ AOM_CDF3(12800, 22238) }, { AOM_CDF3(24320, 26498) },
{ AOM_CDF3(26496, 28995) }, { AOM_CDF3(25216, 28166) },
{ AOM_CDF3(30592, 31238) },
#if CONFIG_EXT_PARTITION
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
{ AOM_CDF3(32256, 32656) },
#endif
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
#if CONFIG_EXT_PARTITION
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
#endif
},
{
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
{ AOM_CDF3(16384, 24576) }, { AOM_CDF3(7936, 19091) },
{ AOM_CDF3(4991, 19205) }, { AOM_CDF3(4992, 19314) },
{ AOM_CDF3(15104, 21590) }, { AOM_CDF3(9855, 21043) },
{ AOM_CDF3(12800, 22238) }, { AOM_CDF3(24320, 26498) },
{ AOM_CDF3(26496, 28995) }, { AOM_CDF3(25216, 28166) },
{ AOM_CDF3(30592, 31238) },
#if CONFIG_EXT_PARTITION
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
{ AOM_CDF3(32256, 32656) },
#endif
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
{ AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
#if CONFIG_EXT_PARTITION
{ AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
#endif
},
};
#endif // CONFIG_EXT_WARPED_MOTION
static const aom_cdf_prob default_obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
{ AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
......
......@@ -144,12 +144,7 @@ typedef struct frame_contexts {
aom_cdf_prob wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)];
aom_cdf_prob interintra_mode_cdf[BLOCK_SIZE_GROUPS]
[CDF_SIZE(INTERINTRA_MODES)];
#if CONFIG_EXT_WARPED_MOTION
aom_cdf_prob motion_mode_cdf[MOTION_MODE_CTX][BLOCK_SIZES_ALL]
[CDF_SIZE(MOTION_MODES)];
#else
aom_cdf_prob motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)];
#endif // CONFIG_EXT_WARPED_MOTION
aom_cdf_prob obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)];
aom_prob comp_inter_prob[COMP_INTER_CONTEXTS];
aom_cdf_prob palette_y_size_cdf[PALATTE_BSIZE_CTXS][CDF_SIZE(PALETTE_SIZES)];
......@@ -308,12 +303,7 @@ typedef struct FRAME_COUNTS {
#else
unsigned int compound_interinter[BLOCK_SIZES_ALL][COMPOUND_TYPES];
#endif // CONFIG_JNT_COMP
#if CONFIG_EXT_WARPED_MOTION
unsigned int motion_mode[MOTION_MODE_CTX][BLOCK_SIZES_ALL][MOTION_MODES];
#else
unsigned int motion_mode[BLOCK_SIZES_ALL][MOTION_MODES];
#endif // CONFIG_EXT_WARPED_MOTION
unsigned int obmc[BLOCK_SIZES_ALL][2];
unsigned int intra_inter[INTRA_INTER_CONTEXTS][2];
unsigned int comp_inter[COMP_INTER_CONTEXTS][2];
......
......@@ -515,10 +515,6 @@ typedef enum ATTRIBUTE_PACKED {
MOTION_MODES
} MOTION_MODE;
#if CONFIG_EXT_WARPED_MOTION
#define MOTION_MODE_CTX 3
#endif // CONFIG_EXT_WARPED_MOTION
typedef enum ATTRIBUTE_PACKED {
II_DC_PRED,
II_V_PRED,
......
This diff is collapsed.
......@@ -444,7 +444,7 @@ void av1_update_mv_context(const AV1_COMMON *cm, const MACROBLOCKD *xd,
#if CONFIG_EXT_WARPED_MOTION
int sortSamples(int *pts_mv, MV *mv, int *pts, int *pts_inref, int len);
int findSamples(const AV1_COMMON *cm, MACROBLOCKD *xd, int mi_row, int mi_col,
int *pts, int *pts_inref, int *pts_mv, int *pts_wm);
int *pts, int *pts_inref, int *pts_mv);
#else
int findSamples(const AV1_COMMON *cm, MACROBLOCKD *xd, int mi_row, int mi_col,
int *pts, int *pts_inref);
......
......@@ -36,8 +36,6 @@
// Here force number of samples within SAMPLES_MAX.
#define SAMPLES_MAX (LEAST_SQUARES_SAMPLES_MAX * 2)
#define SAMPLES_ARRAY_SIZE (SAMPLES_MAX * 2)
#define SCALING_FCT 3
#else
#define SAMPLES_ARRAY_SIZE (LEAST_SQUARES_SAMPLES_MAX * 2)
#endif // CONFIG_EXT_WARPED_MOTION
......
......@@ -280,13 +280,8 @@ static void read_drl_idx(FRAME_CONTEXT *ec_ctx, MACROBLOCKD *xd,
}
}
#if CONFIG_EXT_WARPED_MOTION
static MOTION_MODE read_motion_mode(MACROBLOCKD *xd, MODE_INFO *mi,
aom_reader *r, int best) {
#else
static MOTION_MODE read_motion_mode(MACROBLOCKD *xd, MODE_INFO *mi,
aom_reader *r) {
#endif // CONFIG_EXT_WARPED_MOTION
MB_MODE_INFO *mbmi = &mi->mbmi;
#if CONFIG_EXT_SKIP
......@@ -306,24 +301,10 @@ static MOTION_MODE read_motion_mode(MACROBLOCKD *xd, MODE_INFO *mi,
if (counts) ++counts->obmc[mbmi->sb_type][motion_mode];
return (MOTION_MODE)(SIMPLE_TRANSLATION + motion_mode);
} else {
#if CONFIG_EXT_WARPED_MOTION
int wm_ctx = 0;
if (best != -1) {
wm_ctx = 1;
if (mbmi->mode == NEARESTMV) wm_ctx = 2;
}
motion_mode =
aom_read_symbol(r, xd->tile_ctx->motion_mode_cdf[wm_ctx][mbmi->sb_type],
MOTION_MODES, ACCT_STR);
if (counts) ++counts->motion_mode[wm_ctx][mbmi->sb_type][motion_mode];
#else
motion_mode =
aom_read_symbol(r, xd->tile_ctx->motion_mode_cdf[mbmi->sb_type],
MOTION_MODES, ACCT_STR);
if (counts) ++counts->motion_mode[mbmi->sb_type][motion_mode];
#endif // CONFIG_EXT_WARPED_MOTION
return (MOTION_MODE)(SIMPLE_TRANSLATION + motion_mode);
}
}
......@@ -1846,7 +1827,7 @@ static void read_inter_block_mode_info(AV1Decoder *const pbi,
int16_t compound_inter_mode_ctx[MODE_CTX_REF_FRAMES];
int pts[SAMPLES_ARRAY_SIZE], pts_inref[SAMPLES_ARRAY_SIZE];
#if CONFIG_EXT_WARPED_MOTION
int pts_mv[SAMPLES_ARRAY_SIZE], pts_wm[SAMPLES_ARRAY_SIZE];
int pts_mv[SAMPLES_ARRAY_SIZE];
#endif // CONFIG_EXT_WARPED_MOTION
FRAME_CONTEXT *ec_ctx = xd->tile_ctx;
......@@ -2136,9 +2117,6 @@ static void read_inter_block_mode_info(AV1Decoder *const pbi,
xd->block_refs[ref] = ref_buf;
}
#if CONFIG_EXT_WARPED_MOTION
int best_cand = -1;
#endif // CONFIG_EXT_WARPED_MOTION
mbmi->motion_mode = SIMPLE_TRANSLATION;
if (mbmi->sb_type >= BLOCK_8X8 &&
#if CONFIG_EXT_SKIP
......@@ -2146,32 +2124,15 @@ static void read_inter_block_mode_info(AV1Decoder *const pbi,
#endif // CONFIG_EXT_SKIP
!has_second_ref(mbmi))
#if CONFIG_EXT_WARPED_MOTION
{
mbmi->num_proj_ref[0] =
findSamples(cm, xd, mi_row, mi_col, pts, pts_inref, pts_mv, pts_wm);
// Find a warped neighbor.
int best_weight = 0;
// if (mbmi->mode == NEARESTMV)
for (int cand = 0; cand < mbmi->num_proj_ref[0]; cand++) {
if (pts_wm[cand * 2 + 1] > best_weight) {
best_weight = pts_wm[cand * 2 + 1];
best_cand = cand;
}
}
}
findSamples(cm, xd, mi_row, mi_col, pts, pts_inref, pts_mv);
#else
mbmi->num_proj_ref[0] = findSamples(cm, xd, mi_row, mi_col, pts, pts_inref);
#endif // CONFIG_EXT_WARPED_MOTION
av1_count_overlappable_neighbors(cm, xd, mi_row, mi_col);
if (mbmi->ref_frame[1] != INTRA_FRAME)
#if CONFIG_EXT_WARPED_MOTION
mbmi->motion_mode = read_motion_mode(xd, mi, r, best_cand);
#else
mbmi->motion_mode = read_motion_mode(xd, mi, r);
#endif // CONFIG_EXT_WARPED_MOTION
#if CONFIG_JNT_COMP
// init
......@@ -2273,27 +2234,19 @@ static void read_inter_block_mode_info(AV1Decoder *const pbi,
mbmi->wm_params[0].wmtype = DEFAULT_WMTYPE;
#if CONFIG_EXT_WARPED_MOTION
if (mbmi->mode == NEARESTMV && best_cand != -1) {
MODE_INFO *best_mi = xd->mi[pts_wm[2 * best_cand]];
assert(best_mi->mbmi.motion_mode == WARPED_CAUSAL);
mbmi->wm_params[0] = best_mi->mbmi.wm_params[0];
} else {
if (mbmi->num_proj_ref[0] > 1)
mbmi->num_proj_ref[0] = sortSamples(pts_mv, &mbmi->mv[0].as_mv, pts,
pts_inref, mbmi->num_proj_ref[0]);
if (mbmi->num_proj_ref[0] > 1)
mbmi->num_proj_ref[0] = sortSamples(pts_mv, &mbmi->mv[0].as_mv, pts,
pts_inref, mbmi->num_proj_ref[0]);
#endif // CONFIG_EXT_WARPED_MOTION
if (find_projection(mbmi->num_proj_ref[0], pts, pts_inref, bsize,
mbmi->mv[0].as_mv.row, mbmi->mv[0].as_mv.col,
&mbmi->wm_params[0], mi_row, mi_col)) {
if (find_projection(mbmi->num_proj_ref[0], pts, pts_inref, bsize,
mbmi->mv[0].as_mv.row, mbmi->mv[0].as_mv.col,
&mbmi->wm_params[0], mi_row, mi_col)) {
#if WARPED_MOTION_DEBUG
printf("Warning: unexpected warped model from aomenc\n");
printf("Warning: unexpected warped model from aomenc\n");
#endif
mbmi->wm_params[0].invalid = 1;
}
#if CONFIG_EXT_WARPED_MOTION
mbmi->wm_params[0].invalid = 1;
}
#endif // CONFIG_EXT_WARPED_MOTION
}
#if DEC_MISMATCH_DEBUG
......
......@@ -306,22 +306,9 @@ static void write_motion_mode(const AV1_COMMON *cm, MACROBLOCKD *xd,
xd->tile_ctx->obmc_cdf[mbmi->sb_type], 2);
break;
default:
#if CONFIG_EXT_WARPED_MOTION
{
int wm_ctx = 0;
if (mbmi->wm_ctx != -1) {
wm_ctx = 1;
if (mbmi->mode == NEARESTMV) wm_ctx = 2;
}
aom_write_symbol(w, mbmi->motion_mode,
xd->tile_ctx->motion_mode_cdf[wm_ctx][mbmi->sb_type],
MOTION_MODES);
}
#else
aom_write_symbol(w, mbmi->motion_mode,
xd->tile_ctx->motion_mode_cdf[mbmi->sb_type],
MOTION_MODES);
#endif // CONFIG_EXT_WARPED_MOTION
}
}
......
......@@ -287,11 +287,7 @@ struct macroblock {
int interintra_cost[BLOCK_SIZE_GROUPS][2];
int wedge_interintra_cost[BLOCK_SIZES_ALL][2];
int interintra_mode_cost[BLOCK_SIZE_GROUPS][INTERINTRA_MODES];
#if CONFIG_EXT_WARPED_MOTION
int motion_mode_cost[MOTION_MODE_CTX][BLOCK_SIZES_ALL][MOTION_MODES];
#else
int motion_mode_cost[BLOCK_SIZES_ALL][MOTION_MODES];
#endif // CONFIG_EXT_WARPED_MOTION
int motion_mode_cost1[BLOCK_SIZES_ALL][2];
int intra_uv_mode_cost[INTRA_MODES][UV_INTRA_MODES];
int y_mode_costs[INTRA_MODES][INTRA_MODES][INTRA_MODES];
......
......@@ -1002,23 +1002,10 @@ static void update_stats(const AV1_COMMON *const cm, TileDataEnc *tile_data,
motion_mode_allowed(xd->global_motion, xd, mi);
if (mbmi->ref_frame[1] != INTRA_FRAME) {
if (motion_allowed == WARPED_CAUSAL) {
#if CONFIG_EXT_WARPED_MOTION
int wm_ctx = 0;
if (mbmi->wm_ctx != -1) {
wm_ctx = 1;
if (mbmi->mode == NEARESTMV) wm_ctx = 2;
}
counts->motion_mode[wm_ctx][bsize][mbmi->motion_mode]++;
if (allow_update_cdf)
update_cdf(fc->motion_mode_cdf[wm_ctx][bsize], mbmi->motion_mode,
MOTION_MODES);
#else
counts->motion_mode[bsize][mbmi->motion_mode]++;
if (allow_update_cdf)
update_cdf(fc->motion_mode_cdf[bsize], mbmi->motion_mode,
MOTION_MODES);
#endif // CONFIG_EXT_WARPED_MOTION
} else if (motion_allowed == OBMC_CAUSAL) {
counts->obmc[bsize][mbmi->motion_mode == OBMC_CAUSAL]++;
if (allow_update_cdf)
......
......@@ -262,20 +262,10 @@ void av1_fill_mode_rates(AV1_COMMON *const cm, MACROBLOCK *x,
av1_cost_tokens_from_cdf(x->wedge_interintra_cost[i],
fc->wedge_interintra_cdf[i], NULL);
}
#if CONFIG_EXT_WARPED_MOTION
for (i = 0; i < MOTION_MODE_CTX; i++) {
for (j = BLOCK_8X8; j < BLOCK_SIZES_ALL; j++) {
av1_cost_tokens_from_cdf(x->motion_mode_cost[i][j],
fc->motion_mode_cdf[i][j], NULL);
}
}
#else
for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; i++) {
av1_cost_tokens_from_cdf(x->motion_mode_cost[i], fc->motion_mode_cdf[i],
NULL);
}
#endif // CONFIG_EXT_WARPED_MOTION
for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; i++) {
av1_cost_tokens_from_cdf(x->motion_mode_cost1[i], fc->obmc_cdf[i], NULL);
}
......
This diff is collapsed.
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