#include <assert.h>
#include <immintrin.h>
#include "./vpx_dsp_rtcd.h"
#include "vpx/vpx_integer.h"
#include "vp9/common/vp9_scan.h"
#include "vp9/encoder/vp9_block.h"
static VPX_FORCE_INLINE void load_b_values_avx2(
const struct macroblock_plane *mb_plane, __m256i *zbin, __m256i *round,
__m256i *quant, const int16_t *dequant_ptr, __m256i *dequant,
__m256i *shift, int log_scale) { … }
static VPX_FORCE_INLINE __m256i
load_coefficients_avx2(const tran_low_t *coeff_ptr) { … }
static VPX_FORCE_INLINE void store_coefficients_avx2(__m256i coeff_vals,
tran_low_t *coeff_ptr) { … }
static VPX_FORCE_INLINE __m256i
quantize_b_16(const tran_low_t *coeff_ptr, tran_low_t *qcoeff_ptr,
tran_low_t *dqcoeff_ptr, __m256i *v_quant, __m256i *v_dequant,
__m256i *v_round, __m256i *v_zbin, __m256i *v_quant_shift) { … }
static VPX_FORCE_INLINE __m256i get_max_lane_eob(const int16_t *iscan,
__m256i v_eobmax,
__m256i v_mask) { … }
static VPX_FORCE_INLINE int16_t accumulate_eob256(__m256i eob256) { … }
void vpx_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 quantize_b_32x32_16(
const tran_low_t *coeff_ptr, tran_low_t *qcoeff_ptr,
tran_low_t *dqcoeff_ptr, const int16_t *iscan, __m256i *v_quant,
__m256i *v_dequant, __m256i *v_round, __m256i *v_zbin,
__m256i *v_quant_shift, __m256i *v_eobmax) { … }
void vpx_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) { … }