rtc: Add scale factors for 1/3 and 2/3
Add 2/3 and 1/3 scale factors to AOME_SET_SCALEMODE,
this is useful when directly scaling high resoln input,
for example:
2/3: (3840x2160->2560x1440p, 1920x1080p->1280x720p)
1/3: (3840x2160->1280x720p)
Change-Id: Ifbea7d2db4181eab2518b593e78ea8c25117ed5f
diff --git a/aom/aomcx.h b/aom/aomcx.h
index b7d1d9d..4a78454 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -1494,7 +1494,9 @@
AOME_THREEFOUR = 3,
AOME_ONEFOUR = 4,
AOME_ONEEIGHT = 5,
- AOME_ONETWO = 6
+ AOME_ONETWO = 6,
+ AOME_TWOTHREE = 7,
+ AOME_ONETHREE = 8
} AOM_SCALING_MODE;
/*!\brief Max number of segments
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 499d934..e872924 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -125,6 +125,14 @@
*hr = 1;
*hs = 2;
break;
+ case AOME_TWOTHREE:
+ *hr = 2;
+ *hs = 3;
+ break;
+ case AOME_ONETHREE:
+ *hr = 1;
+ *hs = 3;
+ break;
default:
*hr = 1;
*hs = 1;
@@ -5070,7 +5078,8 @@
AOM_SCALING_MODE vert_mode) {
int hr = 0, hs = 0, vr = 0, vs = 0;
- if (horiz_mode > AOME_ONETWO || vert_mode > AOME_ONETWO) return -1;
+ // Checks for invalid AOM_SCALING_MODE values.
+ if (horiz_mode > AOME_ONETHREE || vert_mode > AOME_ONETHREE) return -1;
Scale2Ratio(horiz_mode, &hr, &hs);
Scale2Ratio(vert_mode, &vr, &vs);