From 37fb8edd7ca7b37ae2c245e02569f0968d056231 Mon Sep 17 00:00:00 2001 From: Angie Chiang Date: Thu, 20 Oct 2016 09:50:32 -0700 Subject: [PATCH] Add data structure of adpat_scan experiment Change-Id: I163874ee64b9c348de2c7cc8e7b2852308734b0e --- av1/common/entropymode.h | 39 +++++++++++++++++++++++++++++++++++++++ av1/common/scan.h | 6 ------ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h index 02643c012..c58fbb3ab 100644 --- a/av1/common/entropymode.h +++ b/av1/common/entropymode.h @@ -41,6 +41,12 @@ extern "C" { struct AV1Common; +typedef struct { + const int16_t *scan; + const int16_t *iscan; + const int16_t *neighbors; +} SCAN_ORDER; + struct seg_counts { unsigned int tree_total[MAX_SEGMENTS]; unsigned int tree_mispred[MAX_SEGMENTS]; @@ -62,6 +68,31 @@ typedef struct frame_contexts { aom_prob switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] [SWITCHABLE_FILTERS - 1]; +#if CONFIG_ADAPT_SCAN + // TODO(angiebird): try aom_prob + uint32_t non_zero_prob_4X4[TX_TYPES][16]; + uint32_t non_zero_prob_8X8[TX_TYPES][64]; + uint32_t non_zero_prob_16X16[TX_TYPES][256]; + uint32_t non_zero_prob_32X32[TX_TYPES][1024]; + + DECLARE_ALIGNED(16, int16_t, scan_4X4[TX_TYPES][16]); + DECLARE_ALIGNED(16, int16_t, scan_8X8[TX_TYPES][64]); + DECLARE_ALIGNED(16, int16_t, scan_16X16[TX_TYPES][256]); + DECLARE_ALIGNED(16, int16_t, scan_32X32[TX_TYPES][1024]); + + DECLARE_ALIGNED(16, int16_t, iscan_4X4[TX_TYPES][16]); + DECLARE_ALIGNED(16, int16_t, iscan_8X8[TX_TYPES][64]); + DECLARE_ALIGNED(16, int16_t, iscan_16X16[TX_TYPES][256]); + DECLARE_ALIGNED(16, int16_t, iscan_32X32[TX_TYPES][1024]); + + int16_t nb_4X4[TX_TYPES][(16 + 1) * 2]; + int16_t nb_8X8[TX_TYPES][(64 + 1) * 2]; + int16_t nb_16X16[TX_TYPES][(256 + 1) * 2]; + int16_t nb_32X32[TX_TYPES][(1024 + 1) * 2]; + + SCAN_ORDER sc[TX_SIZES][TX_TYPES]; +#endif // CONFIG_ADAPT_SCAN + #if CONFIG_REF_MV aom_prob newmv_prob[NEWMV_MODE_CONTEXTS]; aom_prob zeromv_prob[ZEROMV_MODE_CONTEXTS]; @@ -159,6 +190,14 @@ typedef struct FRAME_COUNTS { [COEFF_CONTEXTS]; unsigned int switchable_interp[SWITCHABLE_FILTER_CONTEXTS] [SWITCHABLE_FILTERS]; +#if CONFIG_ADAPT_SCAN + unsigned int non_zero_count_4X4[TX_TYPES][16]; + unsigned int non_zero_count_8X8[TX_TYPES][64]; + unsigned int non_zero_count_16X16[TX_TYPES][256]; + unsigned int non_zero_count_32X32[TX_TYPES][1024]; + unsigned int txb_count[TX_SIZES][TX_TYPES]; +#endif + #if CONFIG_REF_MV unsigned int newmv_mode[NEWMV_MODE_CONTEXTS][2]; unsigned int zeromv_mode[ZEROMV_MODE_CONTEXTS][2]; diff --git a/av1/common/scan.h b/av1/common/scan.h index c183ba980..35b7de146 100644 --- a/av1/common/scan.h +++ b/av1/common/scan.h @@ -24,12 +24,6 @@ extern "C" { #define MAX_NEIGHBORS 2 -typedef struct { - const int16_t *scan; - const int16_t *iscan; - const int16_t *neighbors; -} SCAN_ORDER; - extern const SCAN_ORDER av1_default_scan_orders[TX_SIZES]; extern const SCAN_ORDER av1_intra_scan_orders[TX_SIZES][TX_TYPES];