[NORMATIVE] Signal color range for monochorme
BUG=aomedia:1684
Change-Id: Ief0cb209418d37a6e5d895d703ae0f3ca6e96208
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index a6cae4e..3a41311 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -2199,7 +2199,8 @@
cm->matrix_coefficients = AOM_CICP_MC_UNSPECIFIED;
}
if (is_monochrome) {
- cm->color_range = AOM_CR_FULL_RANGE;
+ // [16,235] (including xvycc) vs [0,255] range
+ cm->color_range = aom_rb_read_bit(rb);
cm->subsampling_y = cm->subsampling_x = 1;
cm->chroma_sample_position = AOM_CSP_UNKNOWN;
cm->separate_uv_delta_q = 0;
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index f050c04..67a3ec2 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -2446,7 +2446,11 @@
aom_wb_write_literal(wb, cm->transfer_characteristics, 8);
aom_wb_write_literal(wb, cm->matrix_coefficients, 8);
}
- if (is_monochrome) return;
+ if (is_monochrome) {
+ // 0: [16, 235] (i.e. xvYCC), 1: [0, 255]
+ aom_wb_write_bit(wb, cm->color_range);
+ return;
+ }
if (cm->color_primaries == AOM_CICP_CP_BT_709 &&
cm->transfer_characteristics == AOM_CICP_TC_SRGB &&
cm->matrix_coefficients ==