FRAME_SUPERRES: Rework to use scale factor of 8/D
Earlier, the superres scale was in the form of:
N/16, where N ranged from 8 to 16.
We change this to the form:
8/D, where D ranges from 8 to 16.
This helps on the decoder side, by making it possible to work on 8x8
blocks at a time.
Change-Id: I6c72d4b3e8d1c830e61d4bb8d7f6337a100c3064
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 799ee81..302b56c 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -4249,12 +4249,12 @@
static void write_superres_scale(const AV1_COMMON *const cm,
struct aom_write_bit_buffer *wb) {
// First bit is whether to to scale or not
- if (cm->superres_scale_numerator == SCALE_DENOMINATOR) {
+ if (cm->superres_scale_denominator == SCALE_NUMERATOR) {
aom_wb_write_bit(wb, 0); // no scaling
} else {
aom_wb_write_bit(wb, 1); // scaling, write scale factor
aom_wb_write_literal(
- wb, cm->superres_scale_numerator - SUPERRES_SCALE_NUMERATOR_MIN,
+ wb, cm->superres_scale_denominator - SUPERRES_SCALE_DENOMINATOR_MIN,
SUPERRES_SCALE_BITS);
}
}