[NORMATIVE] Monochrome support in film grain
BUG=aomedia:1346
Change-Id: I4247f1387022cfd3b69116f6f259eebbf61db791
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 9424f5c..276d475 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -3223,11 +3223,12 @@
aom_wb_write_literal(wb, pars->scaling_points_y[i][1], 8);
}
- aom_wb_write_bit(wb, pars->chroma_scaling_from_luma);
+ if (!cm->seq_params.monochrome)
+ aom_wb_write_bit(wb, pars->chroma_scaling_from_luma);
- if (pars->chroma_scaling_from_luma) {
- assert(pars->num_cb_points == 0);
- assert(pars->num_cr_points == 0);
+ if (cm->seq_params.monochrome || pars->chroma_scaling_from_luma) {
+ pars->num_cb_points = 0;
+ pars->num_cr_points = 0;
} else {
aom_wb_write_literal(wb, pars->num_cb_points, 4); // max 10
for (int i = 0; i < pars->num_cb_points; i++) {
@@ -3251,7 +3252,8 @@
aom_wb_write_literal(wb, pars->ar_coeff_lag, 2);
int num_pos_luma = 2 * pars->ar_coeff_lag * (pars->ar_coeff_lag + 1);
- int num_pos_chroma = num_pos_luma + 1;
+ int num_pos_chroma = num_pos_luma;
+ if (pars->num_y_points > 0) ++num_pos_chroma;
if (pars->num_y_points)
for (int i = 0; i < num_pos_luma; i++)