From ab3042ba3ba8de3e3b0f90474e97e141d06c8136 Mon Sep 17 00:00:00 2001 From: Debargha Mukherjee Date: Thu, 3 Sep 2015 02:58:12 -0700 Subject: [PATCH] Some refactoring of EXT_TX Change-Id: I61359787fdacdeb245e2798031a6e06e4afb83e0 --- vp10/common/enums.h | 3 +-- vp10/common/scan.c | 63 ++++++++++++++++++++++++++++++++++++-------- vp10/common/scan.h | 3 +-- vp10/encoder/rdopt.c | 2 +- 4 files changed, 55 insertions(+), 16 deletions(-) diff --git a/vp10/common/enums.h b/vp10/common/enums.h index 47c99df44..a63b4932a 100644 --- a/vp10/common/enums.h +++ b/vp10/common/enums.h @@ -94,15 +94,14 @@ typedef enum { ADST_DCT = 1, // ADST in vertical, DCT in horizontal DCT_ADST = 2, // DCT in vertical, ADST in horizontal ADST_ADST = 3, // ADST in both directions - TX_TYPES, #if CONFIG_EXT_TX FLIPADST_DCT = 4, DCT_FLIPADST = 5, FLIPADST_FLIPADST = 6, ADST_FLIPADST = 7, FLIPADST_ADST = 8, - TOTAL_TX_TYPES, #endif // CONFIG_EXT_TX + TX_TYPES, } TX_TYPE; #if CONFIG_EXT_TX diff --git a/vp10/common/scan.c b/vp10/common/scan.c index eb5e58479..4cb78e880 100644 --- a/vp10/common/scan.c +++ b/vp10/common/scan.c @@ -695,39 +695,53 @@ DECLARE_ALIGNED(16, static const int16_t, vp10_default_iscan_32x32[1024]) = { 1023, }; -const scan_order vp10_default_scan_orders[TX_SIZES] = { - {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, - {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, - {default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, - {default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, -}; +#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}, {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}, + {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, }, { // TX_8X8 {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}, + {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, }, { // TX_16X16 {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}, + {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}, } }; -#if CONFIG_EXT_TX -const scan_order vp10_inter_scan_orders[TX_SIZES][TOTAL_TX_TYPES] = { +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}, @@ -770,4 +784,31 @@ const scan_order vp10_inter_scan_orders[TX_SIZES][TOTAL_TX_TYPES] = { {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] = { + { // TX_4X4 + {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} + }, { // TX_8X8 + {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} + }, { // TX_16X16 + {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} + }, { // 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}, + } +}; + #endif // CONFIG_EXT_TX diff --git a/vp10/common/scan.h b/vp10/common/scan.h index 09dab1a69..2f1b65848 100644 --- a/vp10/common/scan.h +++ b/vp10/common/scan.h @@ -29,7 +29,6 @@ typedef struct { const int16_t *neighbors; } scan_order; -extern const scan_order vp10_default_scan_orders[TX_SIZES]; extern const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES]; 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 -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, TX_TYPE tx_type) { diff --git a/vp10/encoder/rdopt.c b/vp10/encoder/rdopt.c index bbc2a294a..9b27bc795 100644 --- a/vp10/encoder/rdopt.c +++ b/vp10/encoder/rdopt.c @@ -54,7 +54,7 @@ #define NEW_MV_DISCOUNT_FACTOR 8 #if CONFIG_EXT_TX -const double ext_tx_th = 0.98; +const double ext_tx_th = 0.99; #endif typedef struct { -- 2.40.0