#include <immintrin.h>
#include "./vpx_dsp_rtcd.h"
#include "vp9/common/vp9_scan.h"
#include "vp9/encoder/vp9_block.h"
static VPX_FORCE_INLINE void init_one_qp(const __m128i *p, __m256i *qp) { … }
static VPX_FORCE_INLINE void update_qp(__m256i *qp) { … }
static VPX_FORCE_INLINE void init_qp(
const struct macroblock_plane *const mb_plane, const int16_t *dequant_ptr,
__m256i *qp, int log_scale) { … }
static VPX_FORCE_INLINE __m256i mm256_mul_shift_epi32(const __m256i *x,
const __m256i *y) { … }
static VPX_FORCE_INLINE __m256i get_max_lane_eob(const int16_t *iscan_ptr,
__m256i eobmax,
__m256i nz_mask) { … }
static VPX_FORCE_INLINE uint16_t get_max_eob(__m256i eob) { … }
static VPX_FORCE_INLINE void quantize(const __m256i *qp,
const tran_low_t *coeff_ptr,
const int16_t *iscan_ptr,
tran_low_t *qcoeff, tran_low_t *dqcoeff,
__m256i *eob) { … }
void vpx_highbd_quantize_b_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
const struct macroblock_plane *const mb_plane,
tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr,
const int16_t *dequant_ptr, uint16_t *eob_ptr,
const struct ScanOrder *const scan_order) { … }
static VPX_FORCE_INLINE __m256i mm256_mul_shift_epi32_logscale(const __m256i *x,
const __m256i *y,
int log_scale) { … }
static VPX_FORCE_INLINE void quantize_b_32x32(
const __m256i *qp, const tran_low_t *coeff_ptr, const int16_t *iscan_ptr,
tran_low_t *qcoeff, tran_low_t *dqcoeff, __m256i *eob) { … }
void vpx_highbd_quantize_b_32x32_avx2(
const tran_low_t *coeff_ptr, const struct macroblock_plane *const mb_plane,
tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr,
uint16_t *eob_ptr, const struct ScanOrder *const scan_order) { … }