Some refactoring of EXT_TX
Change-Id: I61359787fdacdeb245e2798031a6e06e4afb83e0
This commit is contained in:
Родитель
9fc691efbe
Коммит
ab3042ba3b
|
@ -94,15 +94,14 @@ typedef enum {
|
||||||
ADST_DCT = 1, // ADST in vertical, DCT in horizontal
|
ADST_DCT = 1, // ADST in vertical, DCT in horizontal
|
||||||
DCT_ADST = 2, // DCT in vertical, ADST in horizontal
|
DCT_ADST = 2, // DCT in vertical, ADST in horizontal
|
||||||
ADST_ADST = 3, // ADST in both directions
|
ADST_ADST = 3, // ADST in both directions
|
||||||
TX_TYPES,
|
|
||||||
#if CONFIG_EXT_TX
|
#if CONFIG_EXT_TX
|
||||||
FLIPADST_DCT = 4,
|
FLIPADST_DCT = 4,
|
||||||
DCT_FLIPADST = 5,
|
DCT_FLIPADST = 5,
|
||||||
FLIPADST_FLIPADST = 6,
|
FLIPADST_FLIPADST = 6,
|
||||||
ADST_FLIPADST = 7,
|
ADST_FLIPADST = 7,
|
||||||
FLIPADST_ADST = 8,
|
FLIPADST_ADST = 8,
|
||||||
TOTAL_TX_TYPES,
|
|
||||||
#endif // CONFIG_EXT_TX
|
#endif // CONFIG_EXT_TX
|
||||||
|
TX_TYPES,
|
||||||
} TX_TYPE;
|
} TX_TYPE;
|
||||||
|
|
||||||
#if CONFIG_EXT_TX
|
#if CONFIG_EXT_TX
|
||||||
|
|
|
@ -695,13 +695,98 @@ DECLARE_ALIGNED(16, static const int16_t, vp10_default_iscan_32x32[1024]) = {
|
||||||
1023,
|
1023,
|
||||||
};
|
};
|
||||||
|
|
||||||
const scan_order vp10_default_scan_orders[TX_SIZES] = {
|
#if CONFIG_EXT_TX
|
||||||
|
|
||||||
|
const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
|
||||||
|
{ // TX_4X4
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{row_scan_4x4, vp10_row_iscan_4x4, row_scan_4x4_neighbors},
|
||||||
|
{col_scan_4x4, vp10_col_iscan_4x4, col_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
}, { // TX_8X8
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{row_scan_8x8, vp10_row_iscan_8x8, row_scan_8x8_neighbors},
|
||||||
|
{col_scan_8x8, vp10_col_iscan_8x8, col_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
}, { // TX_16X16
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{row_scan_16x16, vp10_row_iscan_16x16, row_scan_16x16_neighbors},
|
||||||
|
{col_scan_16x16, vp10_col_iscan_16x16, col_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
}, { // TX_32X32
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const scan_order vp10_inter_scan_orders[TX_SIZES][TX_TYPES] = {
|
||||||
|
{ // TX_4X4
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
}, { // TX_8X8
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
||||||
|
}, { // TX_16X16
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
||||||
|
}, { // TX_32X32
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#else // CONFIG_EXT_TX
|
||||||
|
|
||||||
const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
|
const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
|
||||||
{ // TX_4X4
|
{ // TX_4X4
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
||||||
|
@ -726,48 +811,4 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CONFIG_EXT_TX
|
|
||||||
const scan_order vp10_inter_scan_orders[TX_SIZES][TOTAL_TX_TYPES] = {
|
|
||||||
{ // TX_4X4
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
|
|
||||||
}, { // TX_8X8
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
|
|
||||||
}, { // TX_16X16
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors},
|
|
||||||
}, { // TX_32X32
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#endif // CONFIG_EXT_TX
|
#endif // CONFIG_EXT_TX
|
||||||
|
|
|
@ -29,7 +29,6 @@ typedef struct {
|
||||||
const int16_t *neighbors;
|
const int16_t *neighbors;
|
||||||
} scan_order;
|
} scan_order;
|
||||||
|
|
||||||
extern const scan_order vp10_default_scan_orders[TX_SIZES];
|
|
||||||
extern const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES];
|
extern const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES];
|
||||||
|
|
||||||
static INLINE int get_coef_context(const int16_t *neighbors,
|
static INLINE int get_coef_context(const int16_t *neighbors,
|
||||||
|
@ -44,7 +43,7 @@ static INLINE const scan_order *get_intra_scan(TX_SIZE tx_size,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_EXT_TX
|
#if CONFIG_EXT_TX
|
||||||
extern const scan_order vp10_inter_scan_orders[TX_SIZES][TOTAL_TX_TYPES];
|
extern const scan_order vp10_inter_scan_orders[TX_SIZES][TX_TYPES];
|
||||||
|
|
||||||
static INLINE const scan_order *get_inter_scan(TX_SIZE tx_size,
|
static INLINE const scan_order *get_inter_scan(TX_SIZE tx_size,
|
||||||
TX_TYPE tx_type) {
|
TX_TYPE tx_type) {
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
#define NEW_MV_DISCOUNT_FACTOR 8
|
#define NEW_MV_DISCOUNT_FACTOR 8
|
||||||
|
|
||||||
#if CONFIG_EXT_TX
|
#if CONFIG_EXT_TX
|
||||||
const double ext_tx_th = 0.98;
|
const double ext_tx_th = 0.99;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче