#include "config/av1_rtcd.h"
#include "av1/common/enums.h"
#include "av1/common/av1_txfm.h"
#include "av1/encoder/x86/av1_fwd_txfm_avx2.h"
#include "av1/common/x86/av1_txfm_sse2.h"
#include "av1/encoder/av1_fwd_txfm1d_cfg.h"
#include "av1/encoder/x86/av1_txfm1d_sse4.h"
#include "av1/encoder/x86/av1_fwd_txfm_sse2.h"
#include "aom_dsp/x86/txfm_common_avx2.h"
static inline void fdct16x16_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fdct16x32_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fdct16x64_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fdct32_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fdct64_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fadst16x16_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fidentity16x16_new_avx2(const __m256i *input,
__m256i *output, int8_t cos_bit) { … }
static inline void fidentity16x32_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void store_output_32bit_w16(int32_t *const out,
const __m256i *const in1,
const __m256i *const in2,
const int stride,
const int out_size) { … }
static inline void store_buffer_16bit_to_32bit_w16_avx2(const __m256i *const in,
int32_t *out,
const int stride,
const int out_size) { … }
static inline void store_rect_16bit_to_32bit_avx2(const __m256i a,
int32_t *const b) { … }
static inline void store_rect_buffer_16bit_to_32bit_w16_avx2(
const __m256i *const in, int32_t *const out, const int stride,
const int out_size) { … }
transform_1d_avx2;
static const transform_1d_avx2 col_txfm16x32_arr[TX_TYPES] = …;
static const transform_1d_avx2 row_txfm16x32_arr[TX_TYPES] = …;
static const transform_1d_avx2 col_txfm16x16_arr[TX_TYPES] = …;
static const transform_1d_avx2 row_txfm16x16_arr[TX_TYPES] = …;
static const transform_1d_sse2 col_txfm8x8_arr[TX_TYPES] = …;
static const transform_1d_sse2 row_txfm8x8_arr[TX_TYPES] = …;
static inline void load_buffer_and_round_shift(const int16_t *in, int stride,
__m128i *out, int bit) { … }
static inline void load_buffer_and_flip_round_shift(const int16_t *in,
int stride, __m128i *out,
int bit) { … }
#define TRANSPOSE_8X8_AVX2() …
static inline void transpose_round_shift_flip_8x8(__m128i *const in,
__m128i *const out, int bit) { … }
static inline void transpose_round_shift_8x8(__m128i *const in,
__m128i *const out, int bit) { … }
static inline void store_buffer_16bit_to_32bit_w8_avx2(const __m128i *const in,
int32_t *const out,
const int stride,
const int out_size) { … }
static void av1_lowbd_fwd_txfm2d_8x8_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_16x16_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_32x32_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_64x64_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_16x32_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_32x16_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_64x32_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_32x64_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_16x64_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_64x16_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static inline void btf_16_avx2(__m256i *w0, __m256i *w1, __m256i *in0,
__m256i *in1, __m128i *out0, __m128i *out1,
__m128i *out2, __m128i *out3,
const __m256i *__rounding, int8_t *cos_bit) { … }
static inline void fdct8x8_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fadst8x8_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fidentity8x8_new_avx2(const __m256i *input, __m256i *output,
int8_t cos_bit) { … }
static inline void fdct8x16_new_avx2(const __m128i *input, __m128i *output,
int8_t cos_bit) { … }
static inline void fadst8x16_new_avx2(const __m128i *input, __m128i *output,
int8_t cos_bit) { … }
static inline void fidentity8x16_new_avx2(const __m128i *input, __m128i *output,
int8_t cos_bit) { … }
static const transform_1d_avx2 row_txfm8x16_arr[TX_TYPES] = …;
static const transform_1d_sse2 col_txfm8x16_arr[TX_TYPES] = …;
static const transform_1d_avx2 col_txfm16x8_arr[TX_TYPES] = …;
static const transform_1d_sse2 row_txfm16x8_arr[TX_TYPES] = …;
static void lowbd_fwd_txfm2d_8x16_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static void lowbd_fwd_txfm2d_16x8_avx2(const int16_t *input, int32_t *output,
int stride, TX_TYPE tx_type, int bd) { … }
static FwdTxfm2dFunc fwd_txfm2d_func_ls[TX_SIZES_ALL] = …;
void av1_lowbd_fwd_txfm_avx2(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TxfmParam *txfm_param) { … }