mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-12 10:17:31 +09:00
Update aom to v1.0.0
Update aom to commit id d14c5bb4f336ef1842046089849dee4a301fbbf0.
This commit is contained in:
parent
bb61121b44
commit
48f6d2e034
1087 changed files with 154333 additions and 265310 deletions
119
third_party/aom/av1/encoder/av1_quantize.h
vendored
119
third_party/aom/av1/encoder/av1_quantize.h
vendored
|
|
@ -12,7 +12,8 @@
|
|||
#ifndef AV1_ENCODER_QUANTIZE_H_
|
||||
#define AV1_ENCODER_QUANTIZE_H_
|
||||
|
||||
#include "./aom_config.h"
|
||||
#include "config/aom_config.h"
|
||||
|
||||
#include "av1/common/quant_common.h"
|
||||
#include "av1/common/scan.h"
|
||||
#include "av1/encoder/block.h"
|
||||
|
|
@ -23,33 +24,22 @@ extern "C" {
|
|||
|
||||
typedef struct QUANT_PARAM {
|
||||
int log_scale;
|
||||
#if CONFIG_NEW_QUANT
|
||||
TX_SIZE tx_size;
|
||||
int dq;
|
||||
#endif // CONFIG_NEW_QUANT
|
||||
#if CONFIG_AOM_QM
|
||||
const qm_val_t *qmatrix;
|
||||
const qm_val_t *iqmatrix;
|
||||
#endif // CONFIG_AOM_QM
|
||||
} QUANT_PARAM;
|
||||
|
||||
typedef void (*AV1_QUANT_FACADE)(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
||||
// The QUANTS structure is used only for internal quantizer setup in
|
||||
// av1_quantize.c.
|
||||
// All of its fields use the same coefficient shift/scaling at TX.
|
||||
typedef struct {
|
||||
#if CONFIG_NEW_QUANT
|
||||
DECLARE_ALIGNED(
|
||||
16, tran_low_t,
|
||||
y_cuml_bins_nuq[QUANT_PROFILES][QINDEX_RANGE][COEF_BANDS][NUQ_KNOTS]);
|
||||
DECLARE_ALIGNED(
|
||||
16, tran_low_t,
|
||||
uv_cuml_bins_nuq[QUANT_PROFILES][QINDEX_RANGE][COEF_BANDS][NUQ_KNOTS]);
|
||||
#endif // CONFIG_NEW_QUANT
|
||||
// 0: dc 1: ac 2-8: ac repeated to SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t, y_quant[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, y_quant_shift[QINDEX_RANGE][8]);
|
||||
|
|
@ -59,25 +49,36 @@ typedef struct {
|
|||
// TODO(jingning): in progress of re-working the quantization. will decide
|
||||
// if we want to deprecate the current use of y_quant.
|
||||
DECLARE_ALIGNED(16, int16_t, y_quant_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, uv_quant_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, u_quant_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, v_quant_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, y_round_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, uv_round_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, u_round_fp[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, v_round_fp[QINDEX_RANGE][8]);
|
||||
|
||||
DECLARE_ALIGNED(16, int16_t, uv_quant[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, uv_quant_shift[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, uv_zbin[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, uv_round[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, u_quant[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, v_quant[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, u_quant_shift[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, v_quant_shift[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, u_zbin[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, v_zbin[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, u_round[QINDEX_RANGE][8]);
|
||||
DECLARE_ALIGNED(16, int16_t, v_round[QINDEX_RANGE][8]);
|
||||
} QUANTS;
|
||||
|
||||
// The Dequants structure is used only for internal quantizer setup in
|
||||
// av1_quantize.c.
|
||||
// Fields are sufffixed according to whether or not they're expressed in
|
||||
// the same coefficient shift/precision as TX or a fixed Q3 format.
|
||||
typedef struct {
|
||||
DECLARE_ALIGNED(16, int16_t, y_dequant[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t, uv_dequant[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
#if CONFIG_NEW_QUANT
|
||||
DECLARE_ALIGNED(16, dequant_val_type_nuq,
|
||||
y_dequant_val_nuq[QUANT_PROFILES][QINDEX_RANGE][COEF_BANDS]);
|
||||
DECLARE_ALIGNED(16, dequant_val_type_nuq,
|
||||
uv_dequant_val_nuq[QUANT_PROFILES][QINDEX_RANGE][COEF_BANDS]);
|
||||
#endif // CONFIG_NEW_QUANT
|
||||
DECLARE_ALIGNED(16, int16_t,
|
||||
y_dequant_QTX[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t,
|
||||
u_dequant_QTX[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t,
|
||||
v_dequant_QTX[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t, y_dequant_Q3[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t, u_dequant_Q3[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
DECLARE_ALIGNED(16, int16_t, v_dequant_Q3[QINDEX_RANGE][8]); // 8: SIMD width
|
||||
} Dequants;
|
||||
|
||||
struct AV1_COMP;
|
||||
|
|
@ -89,8 +90,9 @@ void av1_init_plane_quantizers(const struct AV1_COMP *cpi, MACROBLOCK *x,
|
|||
int segment_id);
|
||||
|
||||
void av1_build_quantizer(aom_bit_depth_t bit_depth, int y_dc_delta_q,
|
||||
int uv_dc_delta_q, int uv_ac_delta_q,
|
||||
QUANTS *const quants, Dequants *const deq);
|
||||
int u_dc_delta_q, int u_ac_delta_q, int v_dc_delta_q,
|
||||
int v_ac_delta_q, QUANTS *const quants,
|
||||
Dequants *const deq);
|
||||
|
||||
void av1_init_quantizer(struct AV1_COMP *cpi);
|
||||
|
||||
|
|
@ -105,51 +107,22 @@ void av1_quantize_skip(intptr_t n_coeffs, tran_low_t *qcoeff_ptr,
|
|||
|
||||
void av1_quantize_fp_facade(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p, tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc, const QUANT_PARAM *qparam);
|
||||
|
||||
void av1_quantize_b_facade(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p, tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd, tran_low_t *dqcoeff_ptr,
|
||||
uint16_t *eob_ptr, const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc, const QUANT_PARAM *qparam);
|
||||
|
||||
void av1_quantize_dc_facade(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p, tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc, const QUANT_PARAM *qparam);
|
||||
|
||||
#if CONFIG_NEW_QUANT
|
||||
void av1_quantize_fp_nuq_facade(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
||||
void av1_quantize_b_nuq_facade(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc, const QUANT_PARAM *qparam);
|
||||
|
||||
void av1_quantize_dc_nuq_facade(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
#endif // CONFIG_NEW_QUANT
|
||||
|
||||
void av1_highbd_quantize_fp_facade(const tran_low_t *coeff_ptr,
|
||||
intptr_t n_coeffs, const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
|
@ -157,7 +130,6 @@ void av1_highbd_quantize_fp_facade(const tran_low_t *coeff_ptr,
|
|||
void av1_highbd_quantize_b_facade(const tran_low_t *coeff_ptr,
|
||||
intptr_t n_coeffs, const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
|
@ -165,31 +137,10 @@ void av1_highbd_quantize_b_facade(const tran_low_t *coeff_ptr,
|
|||
void av1_highbd_quantize_dc_facade(const tran_low_t *coeff_ptr,
|
||||
intptr_t n_coeffs, const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr,
|
||||
const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr,
|
||||
const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
||||
#if CONFIG_NEW_QUANT
|
||||
void av1_highbd_quantize_fp_nuq_facade(
|
||||
const tran_low_t *coeff_ptr, intptr_t n_coeffs, const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr, const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr, const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
||||
void av1_highbd_quantize_b_nuq_facade(
|
||||
const tran_low_t *coeff_ptr, intptr_t n_coeffs, const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr, const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr, const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
|
||||
void av1_highbd_quantize_dc_nuq_facade(
|
||||
const tran_low_t *coeff_ptr, intptr_t n_coeffs, const MACROBLOCK_PLANE *p,
|
||||
tran_low_t *qcoeff_ptr, const MACROBLOCKD_PLANE *pd,
|
||||
tran_low_t *dqcoeff_ptr, uint16_t *eob_ptr, const SCAN_ORDER *sc,
|
||||
const QUANT_PARAM *qparam);
|
||||
#endif // CONFIG_NEW_QUANT
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue