From d0cb273e04a865b0ea1e020e1c8caffbb505e43b Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Fri, 27 Jun 2014 15:23:02 -0700 Subject: [PATCH] Allow encoder to set lpf level to 0 As a way to speed-up rtc encoding at speed 7. Change-Id: Ie36a010392cf7b741dc130df21a4e733622a75b7 --- vp9/encoder/vp9_picklpf.c | 4 +++- vp9/encoder/vp9_speed_features.c | 2 +- vp9/encoder/vp9_speed_features.h | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/vp9/encoder/vp9_picklpf.c b/vp9/encoder/vp9_picklpf.c index 53284656e..0f363a7c3 100644 --- a/vp9/encoder/vp9_picklpf.c +++ b/vp9/encoder/vp9_picklpf.c @@ -144,7 +144,9 @@ void vp9_pick_filter_level(const YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi, lf->sharpness_level = cm->frame_type == KEY_FRAME ? 0 : cpi->oxcf.sharpness; - if (method == LPF_PICK_FROM_Q) { + if (method == LPF_PICK_MINIMAL_LPF && lf->filter_level) { + lf->filter_level = 0; + } else if (method >= LPF_PICK_FROM_Q) { const int min_filter_level = 0; const int max_filter_level = get_max_filter_level(cpi); const int q = vp9_ac_quant(cm->base_qindex, 0); diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index 7c8e33743..cf60c8f1c 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -280,7 +280,7 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf, sf->reuse_inter_pred_sby = 1; } if (speed >= 7) { - sf->disable_filter_search_var_thresh = 1000; + sf->lpf_pick = LPF_PICK_MINIMAL_LPF; } if (speed >= 8) { int i; diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h index 75070a70f..5160633ff 100644 --- a/vp9/encoder/vp9_speed_features.h +++ b/vp9/encoder/vp9_speed_features.h @@ -73,6 +73,8 @@ typedef enum { LPF_PICK_FROM_SUBIMAGE, // Estimate the level based on quantizer and frame type LPF_PICK_FROM_Q, + // Pick 0 to disable LPF if LPF was enabled last frame + LPF_PICK_MINIMAL_LPF } LPF_PICK_METHOD; typedef enum { -- 2.40.0