[CFL] Add CfL Alpha cost to RDO
The cost of signaling the alpha symbol and the signs are added to the
DC_PRED rate in RDO.
Results on Subset1(compared to f9e04152b with CfL enabled)
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
-0.3699 | 1.5330 | 0.8664 | -0.2881 | -0.3107 | -0.2587 | 0.1954
Change-Id: Icd9827d11ee4ef29dfb527e636f0f380bcafa062
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index b3e517e..201c598 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -5326,7 +5326,7 @@
PALETTE_MODE_INFO *const pmi = &mbmi->palette_mode_info;
#endif // CONFIG_PALETTE
- for (int mode_idx = DC_PRED; mode_idx < INTRA_MODES; ++mode_idx) {
+ for (int mode_idx = 0; mode_idx < INTRA_MODES; ++mode_idx) {
int this_rate;
RD_STATS tokenonly_rd_stats;
PREDICTION_MODE mode = intra_rd_search_mode_order[mode_idx];
@@ -5361,6 +5361,11 @@
this_rate =
tokenonly_rd_stats.rate + cpi->intra_uv_mode_cost[mbmi->mode][mode];
+#if CONFIG_CFL
+ if (mode == DC_PRED) {
+ this_rate += xd->cfl->costs[mbmi->cfl_alpha_idx];
+ }
+#endif
#if CONFIG_EXT_INTRA
if (is_directional_mode && av1_use_angle_delta(mbmi->sb_type)) {
this_rate += write_uniform_cost(2 * MAX_ANGLE_DELTA + 1,