Remove filter_intra mode info for UV plane
Change-Id: I92f73b78dfd0e25a61897e8b6e9e28ff210376d5
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index ac3a6d9..c6c4275 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2362,9 +2362,9 @@
if (ext_tx_set > 0 && ALLOW_INTRA_EXT_TX) {
#if CONFIG_FILTER_INTRA
PREDICTION_MODE intra_dir;
- if (mbmi->filter_intra_mode_info.use_filter_intra_mode[0])
+ if (mbmi->filter_intra_mode_info.use_filter_intra)
intra_dir = fimode_to_intradir[mbmi->filter_intra_mode_info
- .filter_intra_mode[0]];
+ .filter_intra_mode];
else
intra_dir = mbmi->mode;
return x->intra_tx_type_costs[ext_tx_set][square_tx_size][intra_dir]
@@ -2401,8 +2401,7 @@
mbmi->tx_type = tx_type;
mbmi->tx_size = tx_size;
#if CONFIG_FILTER_INTRA
- if (!is_inter_block(mbmi) &&
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] &&
+ if (!is_inter_block(mbmi) && mbmi->filter_intra_mode_info.use_filter_intra &&
!av1_filter_intra_allowed_txsize(tx_size)) {
rd_stats->rate = INT_MAX;
// Note: Initialize following to avoid uninitialied warnings.
@@ -2723,7 +2722,7 @@
int64_t temp_sse, this_rd;
TX_SIZE tx_size = tx_size_from_tx_mode(bsize, cm->tx_mode, 0);
#if CONFIG_FILTER_INTRA
- if (mbmi->filter_intra_mode_info.use_filter_intra_mode[0]) {
+ if (mbmi->filter_intra_mode_info.use_filter_intra) {
tx_size = av1_max_tx_size_for_filter_intra(bsize, cm->tx_mode);
if (!av1_filter_intra_allowed_txsize(tx_size)) return INT64_MAX;
}
@@ -2756,8 +2755,8 @@
#endif // CONFIG_EXT_INTRA
#if CONFIG_FILTER_INTRA
if (mbmi->mode == DC_PRED && av1_filter_intra_allowed_txsize(mbmi->tx_size)) {
- if (mbmi->filter_intra_mode_info.use_filter_intra_mode[0]) {
- const int mode = mbmi->filter_intra_mode_info.filter_intra_mode[0];
+ if (mbmi->filter_intra_mode_info.use_filter_intra) {
+ const int mode = mbmi->filter_intra_mode_info.filter_intra_mode;
mode_cost += x->filter_intra_cost[mbmi->tx_size][1] +
x->filter_intra_mode_cost[0][mode];
} else {
@@ -2924,7 +2923,7 @@
#endif // CONFIG_HIGHBITDEPTH
colors = av1_count_colors(src, src_stride, rows, cols, count_buf);
#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
if (colors > 1 && colors <= 64) {
@@ -2972,7 +2971,7 @@
mbmi->mode = DC_PRED;
#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
if (rows * cols > MAX_PALETTE_SQUARE) return 0;
@@ -3053,7 +3052,7 @@
TX_TYPE best_tx_type;
av1_zero(filter_intra_mode_info);
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 1;
+ mbmi->filter_intra_mode_info.use_filter_intra = 1;
mbmi->mode = DC_PRED;
mbmi->palette_mode_info.palette_size[0] = 0;
@@ -3061,7 +3060,7 @@
int this_rate;
int64_t this_rd, this_model_rd;
RD_STATS tokenonly_rd_stats;
- mbmi->filter_intra_mode_info.filter_intra_mode[0] = mode;
+ mbmi->filter_intra_mode_info.filter_intra_mode = mode;
this_model_rd = intra_model_yrd(cpi, x, bsize, mode_cost);
if (*best_model_rd != INT64_MAX &&
this_model_rd > *best_model_rd + (*best_model_rd >> 1))
@@ -3090,10 +3089,7 @@
if (filter_intra_selected_flag) {
mbmi->mode = DC_PRED;
mbmi->tx_size = best_tx_size;
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] =
- filter_intra_mode_info.use_filter_intra_mode[0];
- mbmi->filter_intra_mode_info.filter_intra_mode[0] =
- filter_intra_mode_info.filter_intra_mode[0];
+ mbmi->filter_intra_mode_info = filter_intra_mode_info;
mbmi->tx_type = best_tx_type;
return 1;
} else {
@@ -3426,7 +3422,7 @@
directional_mode_skip_mask);
#endif // CONFIG_EXT_INTRA
#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
pmi->palette_size[0] = 0;
if (try_palette) {
@@ -5156,9 +5152,6 @@
if (rows * cols > MAX_PALETTE_SQUARE) return;
mbmi->uv_mode = UV_DC_PRED;
-#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
-#endif // CONFIG_FILTER_INTRA
int count_buf[1 << 12]; // Maximum (1 << 12) color levels.
#if CONFIG_HIGHBITDEPTH
@@ -5518,9 +5511,6 @@
static void init_sbuv_mode(MB_MODE_INFO *const mbmi) {
mbmi->uv_mode = UV_DC_PRED;
mbmi->palette_mode_info.palette_size[1] = 0;
-#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
-#endif // CONFIG_FILTER_INTRA
}
static int64_t rd_pick_intra_sbuv_mode(const AV1_COMP *const cpi, MACROBLOCK *x,
@@ -9724,8 +9714,7 @@
pmi->palette_size[0] = 0;
pmi->palette_size[1] = 0;
#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
- mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
// Evaluate all sub-pel filters irrespective of whether we can use
// them for this frame.
@@ -9836,12 +9825,12 @@
distortion_y);
}
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 1;
+ mbmi->filter_intra_mode_info.use_filter_intra = 1;
for (FILTER_INTRA_MODE fi_mode = FILTER_DC_PRED;
fi_mode < FILTER_INTRA_MODES; ++fi_mode) {
int this_rate_tmp;
int64_t this_rd_tmp;
- mbmi->filter_intra_mode_info.filter_intra_mode[0] = fi_mode;
+ mbmi->filter_intra_mode_info.filter_intra_mode = fi_mode;
super_block_yrd(cpi, x, &rd_stats_y_fi, bsize, best_rd);
if (rd_stats_y_fi.rate == INT_MAX) continue;
@@ -9868,10 +9857,10 @@
mbmi->tx_size = best_tx_size;
mbmi->tx_type = best_tx_type;
if (filter_intra_selected_flag) {
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 1;
- mbmi->filter_intra_mode_info.filter_intra_mode[0] = best_fi_mode;
+ mbmi->filter_intra_mode_info.use_filter_intra = 1;
+ mbmi->filter_intra_mode_info.filter_intra_mode = best_fi_mode;
} else {
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
}
}
#endif
@@ -9948,11 +9937,11 @@
if (mbmi->mode == DC_PRED &&
av1_filter_intra_allowed_txsize(mbmi->tx_size)) {
rate2 +=
- x->filter_intra_cost[mbmi->tx_size][mbmi->filter_intra_mode_info
- .use_filter_intra_mode[0]];
- if (mbmi->filter_intra_mode_info.use_filter_intra_mode[0]) {
+ x->filter_intra_cost[mbmi->tx_size]
+ [mbmi->filter_intra_mode_info.use_filter_intra];
+ if (mbmi->filter_intra_mode_info.use_filter_intra) {
rate2 += x->filter_intra_mode_cost[0][mbmi->filter_intra_mode_info
- .filter_intra_mode[0]];
+ .filter_intra_mode];
}
}
#endif // CONFIG_FILTER_INTRA
@@ -9977,8 +9966,7 @@
mbmi->angle_delta[1] = 0;
#endif // CONFIG_EXT_INTRA
#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
- mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
}
mbmi->ref_mv_idx = 0;
@@ -11035,8 +11023,7 @@
mbmi->palette_mode_info.palette_size[1] = 0;
#if CONFIG_FILTER_INTRA
- mbmi->filter_intra_mode_info.use_filter_intra_mode[0] = 0;
- mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0;
+ mbmi->filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
mbmi->mode = GLOBALMV;
mbmi->motion_mode = SIMPLE_TRANSLATION;