Commit 11bac017 authored by Yue Chen's avatar Yue Chen

Improve filter_intra throughput

The prediction can be done in 2x2 or 4x4 processing unit, within
which there is no dependency and the computation can be fully
parallelized.
Also turn < 8x8 filter_intra on, and disable it in > 32x32 txbs.

Change-Id: I4f8a3104019cbb35e88f342d97516f81b19152b0
parent 9c1f92ba
......@@ -198,7 +198,7 @@ static const PREDICTION_MODE fimode_to_intradir[FILTER_INTRA_MODES] = {
DC_PRED, V_PRED, H_PRED, D117_PRED, D153_PRED, DC_PRED
};
#define DISABLE_SUB8X8_FILTER_INTRA 1
#define DISABLE_SUB8X8_FILTER_INTRA 0
static INLINE int av1_filter_intra_allowed_bsize(BLOCK_SIZE bs) {
(void)bs;
......@@ -212,9 +212,10 @@ static INLINE int av1_filter_intra_allowed_bsize(BLOCK_SIZE bs) {
static INLINE int av1_filter_intra_allowed_txsize(TX_SIZE tx) {
(void)tx;
#if DISABLE_SUB8X8_FILTER_INTRA
return tx_size_wide[tx] >= 8 && tx_size_high[tx] >= 8;
return tx_size_wide[tx] >= 8 && tx_size_high[tx] >= 8 &&
tx_size_wide[tx] <= 32 && tx_size_high[tx] <= 32;
#else
return 1;
return tx_size_wide[tx] <= 32 && tx_size_high[tx] <= 32;
#endif
}
#endif // CONFIG_FILTER_INTRA
......
This diff is collapsed.
......@@ -42,7 +42,12 @@ static const INTERINTRA_MODE intra_to_interintra_mode[INTRA_MODES] = {
};
#if CONFIG_FILTER_INTRA
#define FILTER_INTRA_PROC_UNIT_SIZE 2
#if FILTER_INTRA_PROC_UNIT_SIZE == 4
#define FILTER_INTRA_SCALE_BITS 4
#else
#define FILTER_INTRA_SCALE_BITS 3
#endif
#endif // CONFIG_FILTER_INTRA
#define CONFIG_INTRA_EDGE_UPSAMPLE CONFIG_INTRA_EDGE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment