Clean ups and bug-fixes for filter_intra
Clean up: clean up unused entropy related arrays
Bug-fixes: resolve compiling errors when it is enabled with
entropy_stats and ext_skip
Change-Id: I2893e1b5c09e847fb4677f6e62709464208b76f8
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 4bae6af..880cedb 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -818,7 +818,7 @@
if (mbmi->filter_intra_mode_info.use_filter_intra) {
const FILTER_INTRA_MODE mode =
mbmi->filter_intra_mode_info.filter_intra_mode;
- aom_write_symbol(w, mode, xd->tile_ctx->filter_intra_mode_cdf[0],
+ aom_write_symbol(w, mode, xd->tile_ctx->filter_intra_mode_cdf,
FILTER_INTRA_MODES);
}
}
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index 5126eb9..f02b9e0 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -297,7 +297,7 @@
int y_mode_costs[INTRA_MODES][INTRA_MODES][INTRA_MODES];
#if CONFIG_FILTER_INTRA
int filter_intra_cost[TX_SIZES_ALL][2];
- int filter_intra_mode_cost[PLANE_TYPES][FILTER_INTRA_MODES];
+ int filter_intra_mode_cost[FILTER_INTRA_MODES];
#endif
int switchable_interp_costs[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS];
#if CONFIG_EXT_PARTITION_TYPES
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 208f99e..635a992 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -4156,24 +4156,15 @@
const int use_filter_intra_mode =
mbmi->filter_intra_mode_info.use_filter_intra;
#if CONFIG_ENTROPY_STATS
- if (use_filter_intra_mode) {
- const PREDICTION_MODE above = av1_above_block_mode(above_mi);
- const PREDICTION_MODE left = av1_left_block_mode(left_mi);
-#if CONFIG_KF_CTX
- int above_ctx = intra_mode_context[above];
- int left_ctx = intra_mode_context[left];
-#endif
- ++counts->filter_intra_mode[0][mbmi->filter_intra_mode_info
- .filter_intra_mode[0]];
- ++counts->filter_intra_mode_ctx[above_ctx][left_ctx]
- [mbmi->filter_intra_mode_info
- .filter_intra_mode[0]];
- }
++counts->filter_intra_tx[mbmi->tx_size][use_filter_intra_mode];
+ if (use_filter_intra_mode) {
+ ++counts
+ ->filter_intra_mode[mbmi->filter_intra_mode_info.filter_intra_mode];
+ }
#endif // CONFIG_ENTROPY_STATS
if (allow_update_cdf) {
if (use_filter_intra_mode)
- update_cdf(fc->filter_intra_mode_cdf[0],
+ update_cdf(fc->filter_intra_mode_cdf,
mbmi->filter_intra_mode_info.filter_intra_mode,
FILTER_INTRA_MODES);
update_cdf(fc->filter_intra_cdfs[mbmi->tx_size], use_filter_intra_mode,
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index e88794e..710df4f 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -119,8 +119,8 @@
NULL);
#if CONFIG_FILTER_INTRA
- av1_cost_tokens_from_cdf(x->filter_intra_mode_cost[0],
- fc->filter_intra_mode_cdf[0], NULL);
+ av1_cost_tokens_from_cdf(x->filter_intra_mode_cost, fc->filter_intra_mode_cdf,
+ NULL);
for (i = 0; i < TX_SIZES_ALL; ++i)
av1_cost_tokens_from_cdf(x->filter_intra_cost[i], fc->filter_intra_cdfs[i],
NULL);
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index fa8c6b9..2f63807 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2759,7 +2759,7 @@
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];
+ x->filter_intra_mode_cost[mode];
} else {
mode_cost += x->filter_intra_cost[mbmi->tx_size][0];
}
@@ -3071,7 +3071,7 @@
if (tokenonly_rd_stats.rate == INT_MAX) continue;
this_rate = tokenonly_rd_stats.rate +
x->filter_intra_cost[mbmi->tx_size][1] +
- x->filter_intra_mode_cost[0][mode] + mode_cost;
+ x->filter_intra_mode_cost[mode] + mode_cost;
this_rd = RDCOST(x->rdmult, this_rate, tokenonly_rd_stats.dist);
if (this_rd < *best_rd) {
@@ -9169,8 +9169,7 @@
}
#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->interintra_mode = (INTERINTRA_MODE)(II_DC_PRED - 1);
#if CONFIG_JNT_COMP
@@ -9848,10 +9847,9 @@
super_block_yrd(cpi, x, &rd_stats_y_fi, bsize, best_rd);
if (rd_stats_y_fi.rate == INT_MAX) continue;
- this_rate_tmp = rd_stats_y_fi.rate +
- x->filter_intra_cost[mbmi->tx_size][1] +
- x->filter_intra_mode_cost[0][fi_mode] +
- intra_mode_cost[mbmi->mode];
+ this_rate_tmp =
+ rd_stats_y_fi.rate + x->filter_intra_cost[mbmi->tx_size][1] +
+ x->filter_intra_mode_cost[fi_mode] + intra_mode_cost[mbmi->mode];
this_rd_tmp = RDCOST(x->rdmult, this_rate_tmp, rd_stats_y_fi.dist);
if (this_rd_tmp < best_rd_tmp) {
@@ -9953,8 +9951,8 @@
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];
+ rate2 += x->filter_intra_mode_cost[mbmi->filter_intra_mode_info
+ .filter_intra_mode];
}
}
#endif // CONFIG_FILTER_INTRA
@@ -10714,8 +10712,7 @@
best_mbmode.interintra_mode = (INTERINTRA_MODE)(II_DC_PRED - 1);
#if CONFIG_FILTER_INTRA
- best_mbmode.filter_intra_mode_info.use_filter_intra_mode[0] = 0;
- best_mbmode.filter_intra_mode_info.use_filter_intra_mode[1] = 0;
+ best_mbmode.filter_intra_mode_info.use_filter_intra = 0;
#endif // CONFIG_FILTER_INTRA
set_default_interp_filters(&best_mbmode, cm->interp_filter);