From c1077e9cdeab0b5de10f261300cbc090042d16da Mon Sep 17 00:00:00 2001 From: Debargha Mukherjee Date: Mon, 6 Nov 2017 20:17:33 -0800 Subject: [PATCH] Reorder ext_comp_ref modes Change-Id: Ie392e88609554fea99e74c94812799f72b78725b --- av1/encoder/rd.c | 76 ++++++++++++++++++++++----------------------- av1/encoder/rd.h | 69 ++++++++++++++++++++-------------------- av1/encoder/rdopt.c | 68 ++++++++++++++++++++-------------------- 3 files changed, 107 insertions(+), 106 deletions(-) diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c index ace49dab6..3b687fe0f 100644 --- a/av1/encoder/rd.c +++ b/av1/encoder/rd.c @@ -1178,10 +1178,10 @@ void av1_set_rd_speed_thresholds(AV1_COMP *cpi) { rd->thresh_mult[THR_COMP_NEAREST_NEARESTGA2] += 1000; #if CONFIG_EXT_COMP_REFS - rd->thresh_mult[THR_COMP_NEAREST_NEARESTLL2] += 1000; - rd->thresh_mult[THR_COMP_NEAREST_NEARESTLL3] += 1000; - rd->thresh_mult[THR_COMP_NEAREST_NEARESTLG] += 1000; - rd->thresh_mult[THR_COMP_NEAREST_NEARESTBA] += 1000; + rd->thresh_mult[THR_COMP_NEAREST_NEARESTLL2] += 2000; + rd->thresh_mult[THR_COMP_NEAREST_NEARESTLL3] += 2000; + rd->thresh_mult[THR_COMP_NEAREST_NEARESTLG] += 2000; + rd->thresh_mult[THR_COMP_NEAREST_NEARESTBA] += 2000; #endif // CONFIG_EXT_COMP_REFS rd->thresh_mult[THR_COMP_NEAR_NEARLA] += 1200; @@ -1280,40 +1280,6 @@ void av1_set_rd_speed_thresholds(AV1_COMP *cpi) { rd->thresh_mult[THR_COMP_NEW_NEWGA2] += 2000; rd->thresh_mult[THR_COMP_GLOBAL_GLOBALGA2] += 2500; -#if CONFIG_EXT_COMP_REFS - rd->thresh_mult[THR_COMP_NEAR_NEARLL2] += 1200; - rd->thresh_mult[THR_COMP_NEAREST_NEWLL2] += 1500; - rd->thresh_mult[THR_COMP_NEW_NEARESTLL2] += 1500; - rd->thresh_mult[THR_COMP_NEAR_NEWLL2] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEARLL2] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEWLL2] += 2000; - rd->thresh_mult[THR_COMP_GLOBAL_GLOBALLL2] += 2500; - - rd->thresh_mult[THR_COMP_NEAR_NEARLL3] += 1200; - rd->thresh_mult[THR_COMP_NEAREST_NEWLL3] += 1500; - rd->thresh_mult[THR_COMP_NEW_NEARESTLL3] += 1500; - rd->thresh_mult[THR_COMP_NEAR_NEWLL3] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEARLL3] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEWLL3] += 2000; - rd->thresh_mult[THR_COMP_GLOBAL_GLOBALLL3] += 2500; - - rd->thresh_mult[THR_COMP_NEAR_NEARLG] += 1200; - rd->thresh_mult[THR_COMP_NEAREST_NEWLG] += 1500; - rd->thresh_mult[THR_COMP_NEW_NEARESTLG] += 1500; - rd->thresh_mult[THR_COMP_NEAR_NEWLG] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEARLG] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEWLG] += 2000; - rd->thresh_mult[THR_COMP_GLOBAL_GLOBALLG] += 2500; - - rd->thresh_mult[THR_COMP_NEAR_NEARBA] += 1200; - rd->thresh_mult[THR_COMP_NEAREST_NEWBA] += 1500; - rd->thresh_mult[THR_COMP_NEW_NEARESTBA] += 1500; - rd->thresh_mult[THR_COMP_NEAR_NEWBA] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEARBA] += 1700; - rd->thresh_mult[THR_COMP_NEW_NEWBA] += 2000; - rd->thresh_mult[THR_COMP_GLOBAL_GLOBALBA] += 2500; -#endif // CONFIG_EXT_COMP_REFS - rd->thresh_mult[THR_H_PRED] += 2000; rd->thresh_mult[THR_V_PRED] += 2000; rd->thresh_mult[THR_D135_PRED] += 2500; @@ -1357,6 +1323,40 @@ void av1_set_rd_speed_thresholds(AV1_COMP *cpi) { rd->thresh_mult[THR_COMP_INTERINTRA_NEARESTA] += 1500; rd->thresh_mult[THR_COMP_INTERINTRA_NEARA] += 1500; rd->thresh_mult[THR_COMP_INTERINTRA_NEWA] += 2000; + +#if CONFIG_EXT_COMP_REFS + rd->thresh_mult[THR_COMP_NEAR_NEARLL2] += 1600; + rd->thresh_mult[THR_COMP_NEAREST_NEWLL2] += 2000; + rd->thresh_mult[THR_COMP_NEW_NEARESTLL2] += 2000; + rd->thresh_mult[THR_COMP_NEAR_NEWLL2] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEARLL2] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEWLL2] += 2400; + rd->thresh_mult[THR_COMP_GLOBAL_GLOBALLL2] += 3200; + + rd->thresh_mult[THR_COMP_NEAR_NEARLL3] += 1600; + rd->thresh_mult[THR_COMP_NEAREST_NEWLL3] += 2000; + rd->thresh_mult[THR_COMP_NEW_NEARESTLL3] += 2000; + rd->thresh_mult[THR_COMP_NEAR_NEWLL3] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEARLL3] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEWLL3] += 2400; + rd->thresh_mult[THR_COMP_GLOBAL_GLOBALLL3] += 3200; + + rd->thresh_mult[THR_COMP_NEAR_NEARLG] += 1600; + rd->thresh_mult[THR_COMP_NEAREST_NEWLG] += 2000; + rd->thresh_mult[THR_COMP_NEW_NEARESTLG] += 2000; + rd->thresh_mult[THR_COMP_NEAR_NEWLG] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEARLG] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEWLG] += 2400; + rd->thresh_mult[THR_COMP_GLOBAL_GLOBALLG] += 3200; + + rd->thresh_mult[THR_COMP_NEAR_NEARBA] += 1600; + rd->thresh_mult[THR_COMP_NEAREST_NEWBA] += 2000; + rd->thresh_mult[THR_COMP_NEW_NEARESTBA] += 2000; + rd->thresh_mult[THR_COMP_NEAR_NEWBA] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEARBA] += 2200; + rd->thresh_mult[THR_COMP_NEW_NEWBA] += 2400; + rd->thresh_mult[THR_COMP_GLOBAL_GLOBALBA] += 3200; +#endif // CONFIG_EXT_COMP_REFS } void av1_set_rd_speed_thresholds_sub8x8(AV1_COMP *cpi) { diff --git a/av1/encoder/rd.h b/av1/encoder/rd.h index b91018145..032ffaf6f 100644 --- a/av1/encoder/rd.h +++ b/av1/encoder/rd.h @@ -244,40 +244,6 @@ typedef enum { THR_COMP_NEW_NEWGA2, THR_COMP_GLOBAL_GLOBALGA2, -#if CONFIG_EXT_COMP_REFS - THR_COMP_NEAR_NEARLL2, - THR_COMP_NEW_NEARESTLL2, - THR_COMP_NEAREST_NEWLL2, - THR_COMP_NEW_NEARLL2, - THR_COMP_NEAR_NEWLL2, - THR_COMP_NEW_NEWLL2, - THR_COMP_GLOBAL_GLOBALLL2, - - THR_COMP_NEAR_NEARLL3, - THR_COMP_NEW_NEARESTLL3, - THR_COMP_NEAREST_NEWLL3, - THR_COMP_NEW_NEARLL3, - THR_COMP_NEAR_NEWLL3, - THR_COMP_NEW_NEWLL3, - THR_COMP_GLOBAL_GLOBALLL3, - - THR_COMP_NEAR_NEARLG, - THR_COMP_NEW_NEARESTLG, - THR_COMP_NEAREST_NEWLG, - THR_COMP_NEW_NEARLG, - THR_COMP_NEAR_NEWLG, - THR_COMP_NEW_NEWLG, - THR_COMP_GLOBAL_GLOBALLG, - - THR_COMP_NEAR_NEARBA, - THR_COMP_NEW_NEARESTBA, - THR_COMP_NEAREST_NEWBA, - THR_COMP_NEW_NEARBA, - THR_COMP_NEAR_NEWBA, - THR_COMP_NEW_NEWBA, - THR_COMP_GLOBAL_GLOBALBA, -#endif // CONFIG_EXT_COMP_REFS - THR_H_PRED, THR_V_PRED, THR_D135_PRED, @@ -321,6 +287,41 @@ typedef enum { THR_COMP_INTERINTRA_NEARESTA, THR_COMP_INTERINTRA_NEARA, THR_COMP_INTERINTRA_NEWA, + +#if CONFIG_EXT_COMP_REFS + THR_COMP_NEAR_NEARLL2, + THR_COMP_NEW_NEARESTLL2, + THR_COMP_NEAREST_NEWLL2, + THR_COMP_NEW_NEARLL2, + THR_COMP_NEAR_NEWLL2, + THR_COMP_NEW_NEWLL2, + THR_COMP_GLOBAL_GLOBALLL2, + + THR_COMP_NEAR_NEARLL3, + THR_COMP_NEW_NEARESTLL3, + THR_COMP_NEAREST_NEWLL3, + THR_COMP_NEW_NEARLL3, + THR_COMP_NEAR_NEWLL3, + THR_COMP_NEW_NEWLL3, + THR_COMP_GLOBAL_GLOBALLL3, + + THR_COMP_NEAR_NEARLG, + THR_COMP_NEW_NEARESTLG, + THR_COMP_NEAREST_NEWLG, + THR_COMP_NEW_NEARLG, + THR_COMP_NEAR_NEWLG, + THR_COMP_NEW_NEWLG, + THR_COMP_GLOBAL_GLOBALLG, + + THR_COMP_NEAR_NEARBA, + THR_COMP_NEW_NEARESTBA, + THR_COMP_NEAREST_NEWBA, + THR_COMP_NEW_NEARBA, + THR_COMP_NEAR_NEWBA, + THR_COMP_NEW_NEWBA, + THR_COMP_GLOBAL_GLOBALBA, +#endif // CONFIG_EXT_COMP_REFS + MAX_MODES } THR_MODES; diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index 0aab3d4be..550531d61 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c @@ -356,40 +356,6 @@ static const MODE_DEFINITION av1_mode_order[MAX_MODES] = { { NEW_NEWMV, { GOLDEN_FRAME, ALTREF2_FRAME } }, { GLOBAL_GLOBALMV, { GOLDEN_FRAME, ALTREF2_FRAME } }, -#if CONFIG_EXT_COMP_REFS - { NEAR_NEARMV, { LAST_FRAME, LAST2_FRAME } }, - { NEW_NEARESTMV, { LAST_FRAME, LAST2_FRAME } }, - { NEAREST_NEWMV, { LAST_FRAME, LAST2_FRAME } }, - { NEW_NEARMV, { LAST_FRAME, LAST2_FRAME } }, - { NEAR_NEWMV, { LAST_FRAME, LAST2_FRAME } }, - { NEW_NEWMV, { LAST_FRAME, LAST2_FRAME } }, - { GLOBAL_GLOBALMV, { LAST_FRAME, LAST2_FRAME } }, - - { NEAR_NEARMV, { LAST_FRAME, LAST3_FRAME } }, - { NEW_NEARESTMV, { LAST_FRAME, LAST3_FRAME } }, - { NEAREST_NEWMV, { LAST_FRAME, LAST3_FRAME } }, - { NEW_NEARMV, { LAST_FRAME, LAST3_FRAME } }, - { NEAR_NEWMV, { LAST_FRAME, LAST3_FRAME } }, - { NEW_NEWMV, { LAST_FRAME, LAST3_FRAME } }, - { GLOBAL_GLOBALMV, { LAST_FRAME, LAST3_FRAME } }, - - { NEAR_NEARMV, { LAST_FRAME, GOLDEN_FRAME } }, - { NEW_NEARESTMV, { LAST_FRAME, GOLDEN_FRAME } }, - { NEAREST_NEWMV, { LAST_FRAME, GOLDEN_FRAME } }, - { NEW_NEARMV, { LAST_FRAME, GOLDEN_FRAME } }, - { NEAR_NEWMV, { LAST_FRAME, GOLDEN_FRAME } }, - { NEW_NEWMV, { LAST_FRAME, GOLDEN_FRAME } }, - { GLOBAL_GLOBALMV, { LAST_FRAME, GOLDEN_FRAME } }, - - { NEAR_NEARMV, { BWDREF_FRAME, ALTREF_FRAME } }, - { NEW_NEARESTMV, { BWDREF_FRAME, ALTREF_FRAME } }, - { NEAREST_NEWMV, { BWDREF_FRAME, ALTREF_FRAME } }, - { NEW_NEARMV, { BWDREF_FRAME, ALTREF_FRAME } }, - { NEAR_NEWMV, { BWDREF_FRAME, ALTREF_FRAME } }, - { NEW_NEWMV, { BWDREF_FRAME, ALTREF_FRAME } }, - { GLOBAL_GLOBALMV, { BWDREF_FRAME, ALTREF_FRAME } }, -#endif // CONFIG_EXT_COMP_REFS - { H_PRED, { INTRA_FRAME, NONE_FRAME } }, { V_PRED, { INTRA_FRAME, NONE_FRAME } }, { D135_PRED, { INTRA_FRAME, NONE_FRAME } }, @@ -433,6 +399,40 @@ static const MODE_DEFINITION av1_mode_order[MAX_MODES] = { { NEARESTMV, { ALTREF_FRAME, INTRA_FRAME } }, { NEARMV, { ALTREF_FRAME, INTRA_FRAME } }, { NEWMV, { ALTREF_FRAME, INTRA_FRAME } }, + +#if CONFIG_EXT_COMP_REFS + { NEAR_NEARMV, { LAST_FRAME, LAST2_FRAME } }, + { NEW_NEARESTMV, { LAST_FRAME, LAST2_FRAME } }, + { NEAREST_NEWMV, { LAST_FRAME, LAST2_FRAME } }, + { NEW_NEARMV, { LAST_FRAME, LAST2_FRAME } }, + { NEAR_NEWMV, { LAST_FRAME, LAST2_FRAME } }, + { NEW_NEWMV, { LAST_FRAME, LAST2_FRAME } }, + { GLOBAL_GLOBALMV, { LAST_FRAME, LAST2_FRAME } }, + + { NEAR_NEARMV, { LAST_FRAME, LAST3_FRAME } }, + { NEW_NEARESTMV, { LAST_FRAME, LAST3_FRAME } }, + { NEAREST_NEWMV, { LAST_FRAME, LAST3_FRAME } }, + { NEW_NEARMV, { LAST_FRAME, LAST3_FRAME } }, + { NEAR_NEWMV, { LAST_FRAME, LAST3_FRAME } }, + { NEW_NEWMV, { LAST_FRAME, LAST3_FRAME } }, + { GLOBAL_GLOBALMV, { LAST_FRAME, LAST3_FRAME } }, + + { NEAR_NEARMV, { LAST_FRAME, GOLDEN_FRAME } }, + { NEW_NEARESTMV, { LAST_FRAME, GOLDEN_FRAME } }, + { NEAREST_NEWMV, { LAST_FRAME, GOLDEN_FRAME } }, + { NEW_NEARMV, { LAST_FRAME, GOLDEN_FRAME } }, + { NEAR_NEWMV, { LAST_FRAME, GOLDEN_FRAME } }, + { NEW_NEWMV, { LAST_FRAME, GOLDEN_FRAME } }, + { GLOBAL_GLOBALMV, { LAST_FRAME, GOLDEN_FRAME } }, + + { NEAR_NEARMV, { BWDREF_FRAME, ALTREF_FRAME } }, + { NEW_NEARESTMV, { BWDREF_FRAME, ALTREF_FRAME } }, + { NEAREST_NEWMV, { BWDREF_FRAME, ALTREF_FRAME } }, + { NEW_NEARMV, { BWDREF_FRAME, ALTREF_FRAME } }, + { NEAR_NEWMV, { BWDREF_FRAME, ALTREF_FRAME } }, + { NEW_NEWMV, { BWDREF_FRAME, ALTREF_FRAME } }, + { GLOBAL_GLOBALMV, { BWDREF_FRAME, ALTREF_FRAME } }, +#endif // CONFIG_EXT_COMP_REFS }; static const PREDICTION_MODE intra_rd_search_mode_order[INTRA_MODES] = { -- GitLab