AV1: Disable several intra coding tools.
This will speed up key frame encoding (together with libaom changes)
3x-4x times with ~13% BDRate loss on key frames only
Bug: None
Change-Id: I24332f4f7285811cdc6619ba29844fe564cae95e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212040
Reviewed-by: Marco Paniconi <marpan@webrtc.org>
Commit-Queue: Fyodor Kyslov <kyslov@google.com>
Cr-Commit-Position: refs/heads/master@{#33468}
diff --git a/modules/video_coding/codecs/av1/libaom_av1_encoder.cc b/modules/video_coding/codecs/av1/libaom_av1_encoder.cc
index dd9ff98..0edbd74 100644
--- a/modules/video_coding/codecs/av1/libaom_av1_encoder.cc
+++ b/modules/video_coding/codecs/av1/libaom_av1_encoder.cc
@@ -382,6 +382,34 @@
return WEBRTC_VIDEO_CODEC_ERROR;
}
+ ret = aom_codec_control(&ctx_, AV1E_SET_ENABLE_CFL_INTRA, 0);
+ if (ret != AOM_CODEC_OK) {
+ RTC_LOG(LS_WARNING) << "LibaomAv1Encoder::EncodeInit returned " << ret
+ << " on control AV1E_SET_ENABLE_CFL_INTRA.";
+ return WEBRTC_VIDEO_CODEC_ERROR;
+ }
+
+ ret = aom_codec_control(&ctx_, AV1E_SET_ENABLE_SMOOTH_INTRA, 0);
+ if (ret != AOM_CODEC_OK) {
+ RTC_LOG(LS_WARNING) << "LibaomAv1Encoder::EncodeInit returned " << ret
+ << " on control AV1E_SET_ENABLE_SMOOTH_INTRA.";
+ return WEBRTC_VIDEO_CODEC_ERROR;
+ }
+
+ ret = aom_codec_control(&ctx_, AV1E_SET_ENABLE_ANGLE_DELTA, 0);
+ if (ret != AOM_CODEC_OK) {
+ RTC_LOG(LS_WARNING) << "LibaomAv1Encoder::EncodeInit returned " << ret
+ << " on control AV1E_SET_ENABLE_ANGLE_DELTA.";
+ return WEBRTC_VIDEO_CODEC_ERROR;
+ }
+
+ ret = aom_codec_control(&ctx_, AV1E_SET_ENABLE_FILTER_INTRA, 0);
+ if (ret != AOM_CODEC_OK) {
+ RTC_LOG(LS_WARNING) << "LibaomAv1Encoder::EncodeInit returned " << ret
+ << " on control AV1E_SET_ENABLE_FILTER_INTRA.";
+ return WEBRTC_VIDEO_CODEC_ERROR;
+ }
+
return WEBRTC_VIDEO_CODEC_OK;
}
diff --git a/modules/video_coding/codecs/test/videocodec_test_libaom.cc b/modules/video_coding/codecs/test/videocodec_test_libaom.cc
index a96e2c9..9510b0f 100644
--- a/modules/video_coding/codecs/test/videocodec_test_libaom.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_libaom.cc
@@ -89,7 +89,7 @@
std::vector<RateControlThresholds> rc_thresholds = {
{13, 3, 0, 1, 0.3, 0.1, 0, 1}};
- std::vector<QualityThresholds> quality_thresholds = {{36, 32, 0.93, 0.87}};
+ std::vector<QualityThresholds> quality_thresholds = {{36, 31.9, 0.93, 0.87}};
fixture->RunTest(rate_profiles, &rc_thresholds, &quality_thresholds, nullptr);
}