rtc: Adjust condition in rc_bits_per_mb on keyframe
For RTC when the feature sf->rc_adjust_keyframe is used:
use flat_blocks_keyframe for more aggressive setting of
enumerator, to reduece overshoot on first keyframes or
keyframes after scene change.
Change-Id: I79dc6786fbe794188b13fe74cd857961a1540529
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 3e20bb9..b9b7e28 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -187,7 +187,9 @@
if (rc->last_encoded_size_keyframe == 0 ||
rc->frames_since_scene_change < rc->frames_since_key) {
// Very first frame, or if scene change happened after last keyframe.
- if (rc->spatial_variance_keyframe > 1000)
+ if (rc->spatial_variance_keyframe > 1000 ||
+ (rc->spatial_variance_keyframe > 500 &&
+ rc->perc_flat_blocks_keyframe == 0))
return enumerator << 3;
else if (rc->spatial_variance_keyframe > 500 &&
rc->perc_flat_blocks_keyframe < 10)