mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-21 22:57:31 +09:00
Update aom to commit id e87fb2378f01103d5d6e477a4ef6892dc714e614
This commit is contained in:
parent
debbee1e2a
commit
992c6637e3
429 changed files with 76047 additions and 40937 deletions
34
third_party/aom/av1/common/scan.h
vendored
34
third_party/aom/av1/common/scan.h
vendored
|
|
@ -30,6 +30,9 @@ extern const SCAN_ORDER av1_intra_scan_orders[TX_SIZES_ALL][TX_TYPES];
|
|||
extern const SCAN_ORDER av1_inter_scan_orders[TX_SIZES_ALL][TX_TYPES];
|
||||
|
||||
#if CONFIG_ADAPT_SCAN
|
||||
#define USE_2X2_PROB 1
|
||||
#define USE_TOPOLOGICAL_SORT 0
|
||||
#define USE_LIMIT_SCAN_DISTANCE 0
|
||||
void av1_update_scan_count_facade(AV1_COMMON *cm, FRAME_COUNTS *counts,
|
||||
TX_SIZE tx_size, TX_TYPE tx_type,
|
||||
const tran_low_t *dqcoeffs, int max_scan);
|
||||
|
|
@ -39,6 +42,7 @@ void av1_update_scan_count_facade(AV1_COMMON *cm, FRAME_COUNTS *counts,
|
|||
// will be scanned first
|
||||
void av1_augment_prob(TX_SIZE tx_size, TX_TYPE tx_type, uint32_t *prob);
|
||||
|
||||
#if USE_TOPOLOGICAL_SORT
|
||||
// apply quick sort on nonzero probabilities to obtain a sort order
|
||||
void av1_update_sort_order(TX_SIZE tx_size, TX_TYPE tx_type,
|
||||
const uint32_t *non_zero_prob, int16_t *sort_order);
|
||||
|
|
@ -48,14 +52,24 @@ void av1_update_sort_order(TX_SIZE tx_size, TX_TYPE tx_type,
|
|||
// scanned before the to-be-scanned coefficient.
|
||||
void av1_update_scan_order(TX_SIZE tx_size, int16_t *sort_order, int16_t *scan,
|
||||
int16_t *iscan);
|
||||
#else // USE_TOPOLOGICAL_SORT
|
||||
void av1_update_scan_order(TX_SIZE tx_size, TX_TYPE tx_type,
|
||||
uint32_t *non_zero_prob, int16_t *scan,
|
||||
int16_t *iscan);
|
||||
#endif // USE_TOPOLOGICAL_SORT
|
||||
|
||||
// For each coeff_idx in scan[], update its above and left neighbors in
|
||||
// neighbors[] accordingly.
|
||||
void av1_update_neighbors(int tx_size, const int16_t *scan,
|
||||
void av1_update_neighbors(TX_SIZE tx_size, const int16_t *scan,
|
||||
const int16_t *iscan, int16_t *neighbors);
|
||||
void av1_init_scan_order(AV1_COMMON *cm);
|
||||
void av1_adapt_scan_order(AV1_COMMON *cm);
|
||||
#endif
|
||||
#if USE_2X2_PROB
|
||||
void av1_down_sample_scan_count(uint32_t *non_zero_count_ds,
|
||||
const uint32_t *non_zero_count,
|
||||
TX_SIZE tx_size);
|
||||
#endif // USE_2X2_PROB
|
||||
#endif // CONFIG_ADAPT_SCAN
|
||||
void av1_deliver_eob_threshold(const AV1_COMMON *cm, MACROBLOCKD *xd);
|
||||
|
||||
static INLINE int get_coef_context(const int16_t *neighbors,
|
||||
|
|
@ -77,6 +91,17 @@ static INLINE const SCAN_ORDER *get_default_scan(TX_SIZE tx_size,
|
|||
#endif // CONFIG_EXT_TX
|
||||
}
|
||||
|
||||
static INLINE int do_adapt_scan(TX_SIZE tx_size, TX_TYPE tx_type) {
|
||||
(void)tx_size;
|
||||
#if CONFIG_EXT_TX
|
||||
if (tx_size_2d[tx_size] >= 1024 && tx_type != DCT_DCT) return 0;
|
||||
return tx_type < IDTX;
|
||||
#else
|
||||
(void)tx_type;
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static INLINE const SCAN_ORDER *get_scan(const AV1_COMMON *cm, TX_SIZE tx_size,
|
||||
TX_TYPE tx_type,
|
||||
const MB_MODE_INFO *mbmi) {
|
||||
|
|
@ -84,12 +109,15 @@ static INLINE const SCAN_ORDER *get_scan(const AV1_COMMON *cm, TX_SIZE tx_size,
|
|||
// use the DCT_DCT scan order for MRC_DCT for now
|
||||
if (tx_type == MRC_DCT) tx_type = DCT_DCT;
|
||||
#endif // CONFIG_MRC_TX
|
||||
#if CONFIG_LGT_FROM_PRED
|
||||
if (mbmi->use_lgt) tx_type = DCT_DCT;
|
||||
#endif
|
||||
const int is_inter = is_inter_block(mbmi);
|
||||
#if CONFIG_ADAPT_SCAN
|
||||
(void)mbmi;
|
||||
(void)is_inter;
|
||||
#if CONFIG_EXT_TX
|
||||
if (tx_type >= IDTX)
|
||||
if (!do_adapt_scan(tx_size, tx_type))
|
||||
return get_default_scan(tx_size, tx_type, is_inter);
|
||||
else
|
||||
#endif // CONFIG_EXT_TX
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue