New prediction filter
This patch removes the old pred-filter experiment and replaces it with one that is implemented using the switchable filter framework. If the pred-filter experiment is enabled, three interopolation filters are tested during mode selection; the standard 8-tap interpolation filter, a sharp 8-tap filter and a (new) 8-tap smoothing filter. The 6-tap filter code has been preserved for now and if the enable-6tap experiment is enabled (in addition to the pred-filter experiment) the original 6-tap filter replaces the new 8-tap smooth filter in the switchable mode. The new experiment applies the prediction filter in cases of a fractional-pel motion vector. Future patches will apply the filter where the mv is pel-aligned and also to intra predicted blocks. Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
This commit is contained in:
@@ -41,19 +41,11 @@
|
||||
#define AF_THRESH2 100
|
||||
#define ARF_DECAY_THRESH 12
|
||||
|
||||
#if CONFIG_PRED_FILTER
|
||||
#if CONFIG_COMP_INTERINTRA_PRED
|
||||
#define MAX_MODES 66
|
||||
#else
|
||||
#define MAX_MODES 54
|
||||
#endif
|
||||
#else // CONFIG_PRED_FILTER
|
||||
#if CONFIG_COMP_INTERINTRA_PRED
|
||||
#define MAX_MODES 54
|
||||
#else
|
||||
#define MAX_MODES 42
|
||||
#endif
|
||||
#endif // CONFIG_PRED_FILTER
|
||||
|
||||
#define MIN_THRESHMULT 32
|
||||
#define MAX_THRESHMULT 512
|
||||
@@ -173,94 +165,6 @@ typedef struct {
|
||||
MBGRAPH_MB_STATS *mb_stats;
|
||||
} MBGRAPH_FRAME_STATS;
|
||||
|
||||
#if CONFIG_PRED_FILTER
|
||||
typedef enum {
|
||||
THR_ZEROMV,
|
||||
THR_ZEROMV_FILT,
|
||||
THR_DC,
|
||||
|
||||
THR_NEARESTMV,
|
||||
THR_NEARESTMV_FILT,
|
||||
THR_NEARMV,
|
||||
THR_NEARMV_FILT,
|
||||
|
||||
THR_ZEROG,
|
||||
THR_ZEROG_FILT,
|
||||
THR_NEARESTG,
|
||||
THR_NEARESTG_FILT,
|
||||
|
||||
THR_ZEROA,
|
||||
THR_ZEROA_FILT,
|
||||
THR_NEARESTA,
|
||||
THR_NEARESTA_FILT,
|
||||
|
||||
THR_NEARG,
|
||||
THR_NEARG_FILT,
|
||||
THR_NEARA,
|
||||
THR_NEARA_FILT,
|
||||
|
||||
THR_V_PRED,
|
||||
THR_H_PRED,
|
||||
THR_D45_PRED,
|
||||
THR_D135_PRED,
|
||||
THR_D117_PRED,
|
||||
THR_D153_PRED,
|
||||
THR_D27_PRED,
|
||||
THR_D63_PRED,
|
||||
THR_TM,
|
||||
|
||||
THR_NEWMV,
|
||||
THR_NEWMV_FILT,
|
||||
THR_NEWG,
|
||||
THR_NEWG_FILT,
|
||||
THR_NEWA,
|
||||
THR_NEWA_FILT,
|
||||
|
||||
THR_SPLITMV,
|
||||
THR_SPLITG,
|
||||
THR_SPLITA,
|
||||
|
||||
THR_B_PRED,
|
||||
THR_I8X8_PRED,
|
||||
|
||||
THR_COMP_ZEROLG,
|
||||
THR_COMP_NEARESTLG,
|
||||
THR_COMP_NEARLG,
|
||||
|
||||
THR_COMP_ZEROLA,
|
||||
THR_COMP_NEARESTLA,
|
||||
THR_COMP_NEARLA,
|
||||
|
||||
THR_COMP_ZEROGA,
|
||||
THR_COMP_NEARESTGA,
|
||||
THR_COMP_NEARGA,
|
||||
|
||||
THR_COMP_NEWLG,
|
||||
THR_COMP_NEWLA,
|
||||
THR_COMP_NEWGA,
|
||||
|
||||
THR_COMP_SPLITLG,
|
||||
THR_COMP_SPLITLA,
|
||||
THR_COMP_SPLITGA,
|
||||
#if CONFIG_COMP_INTERINTRA_PRED
|
||||
THR_COMP_INTERINTRA_ZEROL,
|
||||
THR_COMP_INTERINTRA_NEARESTL,
|
||||
THR_COMP_INTERINTRA_NEARL,
|
||||
THR_COMP_INTERINTRA_NEWL,
|
||||
|
||||
THR_COMP_INTERINTRA_ZEROG,
|
||||
THR_COMP_INTERINTRA_NEARESTG,
|
||||
THR_COMP_INTERINTRA_NEARG,
|
||||
THR_COMP_INTERINTRA_NEWG,
|
||||
|
||||
THR_COMP_INTERINTRA_ZEROA,
|
||||
THR_COMP_INTERINTRA_NEARESTA,
|
||||
THR_COMP_INTERINTRA_NEARA,
|
||||
THR_COMP_INTERINTRA_NEWA,
|
||||
#endif
|
||||
}
|
||||
THR_MODES;
|
||||
#else
|
||||
typedef enum {
|
||||
THR_ZEROMV,
|
||||
THR_DC,
|
||||
@@ -335,7 +239,6 @@ typedef enum {
|
||||
#endif
|
||||
}
|
||||
THR_MODES;
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
DIAMOND = 0,
|
||||
@@ -795,10 +698,6 @@ typedef struct VP9_COMP {
|
||||
|
||||
int dummy_packing; /* flag to indicate if packing is dummy */
|
||||
|
||||
#if CONFIG_PRED_FILTER
|
||||
int pred_filter_on_count;
|
||||
int pred_filter_off_count;
|
||||
#endif
|
||||
unsigned int switchable_interp_count[VP9_SWITCHABLE_FILTERS + 1]
|
||||
[VP9_SWITCHABLE_FILTERS];
|
||||
unsigned int best_switchable_interp_count[VP9_SWITCHABLE_FILTERS];
|
||||
|
||||
Reference in New Issue
Block a user