LCOV - code coverage report
Current view: top level - media/libaom/config/linux/x64 - av1_rtcd.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 91 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #ifndef AOM_RTCD_H_
       2             : #define AOM_RTCD_H_
       3             : 
       4             : #ifdef RTCD_C
       5             : #define RTCD_EXTERN
       6             : #else
       7             : #define RTCD_EXTERN extern
       8             : #endif
       9             : 
      10             : /*
      11             :  * AV1
      12             :  */
      13             : 
      14             : #include "aom/aom_integer.h"
      15             : #include "av1/common/common.h"
      16             : #include "av1/common/enums.h"
      17             : #include "av1/common/quant_common.h"
      18             : #include "av1/common/filter.h"
      19             : #include "av1/common/convolve.h"
      20             : #include "av1/common/av1_txfm.h"
      21             : #include "av1/common/odintrin.h"
      22             : 
      23             : struct macroblockd;
      24             : 
      25             : /* Encoder forward decls */
      26             : struct macroblock;
      27             : struct aom_variance_vtable;
      28             : struct search_site_config;
      29             : struct mv;
      30             : union int_mv;
      31             : struct yv12_buffer_config;
      32             : typedef uint16_t od_dering_in;
      33             : 
      34             : #ifdef __cplusplus
      35             : extern "C" {
      36             : #endif
      37             : 
      38             : void aom_clpf_block_c(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      39             : void aom_clpf_block_sse2(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      40             : void aom_clpf_block_ssse3(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      41             : void aom_clpf_block_sse4_1(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      42             : RTCD_EXTERN void (*aom_clpf_block)(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      43             : 
      44             : void aom_clpf_block_hbd_c(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      45             : void aom_clpf_block_hbd_sse2(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      46             : void aom_clpf_block_hbd_ssse3(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      47             : void aom_clpf_block_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      48             : RTCD_EXTERN void (*aom_clpf_block_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      49             : 
      50             : void aom_clpf_hblock_c(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      51             : void aom_clpf_hblock_sse2(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      52             : void aom_clpf_hblock_ssse3(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      53             : void aom_clpf_hblock_sse4_1(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      54             : RTCD_EXTERN void (*aom_clpf_hblock)(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      55             : 
      56             : void aom_clpf_hblock_hbd_c(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      57             : void aom_clpf_hblock_hbd_sse2(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      58             : void aom_clpf_hblock_hbd_ssse3(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      59             : void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      60             : RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
      61             : 
      62             : int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
      63             : #define av1_block_error av1_block_error_c
      64             : 
      65             : void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
      66             : void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
      67             : RTCD_EXTERN void (*av1_convolve_horiz)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
      68             : 
      69             : void av1_convolve_vert_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
      70             : void av1_convolve_vert_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
      71             : RTCD_EXTERN void (*av1_convolve_vert)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
      72             : 
      73             : int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_config *cfg,  struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
      74             : #define av1_diamond_search_sad av1_diamond_search_sad_c
      75             : 
      76             : void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
      77             : #define av1_fdct8x8_quant av1_fdct8x8_quant_c
      78             : 
      79             : void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      80             : void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      81             : void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      82             : RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      83             : 
      84             : void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      85             : void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      86             : #define av1_fht16x32 av1_fht16x32_sse2
      87             : 
      88             : void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      89             : #define av1_fht16x4 av1_fht16x4_c
      90             : 
      91             : void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      92             : void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      93             : #define av1_fht16x8 av1_fht16x8_sse2
      94             : 
      95             : void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      96             : void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
      97             : #define av1_fht32x16 av1_fht32x16_sse2
      98             : 
      99             : void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     100             : void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     101             : void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     102             : RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     103             : 
     104             : void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     105             : #define av1_fht32x8 av1_fht32x8_c
     106             : 
     107             : void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     108             : #define av1_fht4x16 av1_fht4x16_c
     109             : 
     110             : void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     111             : void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     112             : #define av1_fht4x4 av1_fht4x4_sse2
     113             : 
     114             : void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     115             : void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     116             : #define av1_fht4x8 av1_fht4x8_sse2
     117             : 
     118             : void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     119             : void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     120             : #define av1_fht8x16 av1_fht8x16_sse2
     121             : 
     122             : void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     123             : #define av1_fht8x32 av1_fht8x32_c
     124             : 
     125             : void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     126             : void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     127             : #define av1_fht8x4 av1_fht8x4_sse2
     128             : 
     129             : void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     130             : void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     131             : #define av1_fht8x8 av1_fht8x8_sse2
     132             : 
     133             : int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
     134             : #define av1_full_range_search av1_full_range_search_c
     135             : 
     136             : int av1_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
     137             : int av1_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
     138             : int av1_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
     139             : RTCD_EXTERN int (*av1_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
     140             : 
     141             : void av1_fwd_idtx_c(const int16_t *src_diff, tran_low_t *coeff, int stride, int bs, int tx_type);
     142             : #define av1_fwd_idtx av1_fwd_idtx_c
     143             : 
     144             : void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     145             : void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     146             : RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     147             : 
     148             : void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     149             : void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     150             : RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     151             : 
     152             : void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     153             : void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     154             : RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     155             : 
     156             : void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     157             : void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     158             : RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     159             : 
     160             : void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     161             : void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     162             : RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
     163             : 
     164             : void av1_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
     165             : #define av1_fwht4x4 av1_fwht4x4_c
     166             : 
     167             : int64_t av1_highbd_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz, int bd);
     168             : int64_t av1_highbd_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz, int bd);
     169             : #define av1_highbd_block_error av1_highbd_block_error_sse2
     170             : 
     171             : void av1_highbd_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     172             : void av1_highbd_convolve8_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     173             : #define av1_highbd_convolve8 av1_highbd_convolve8_sse2
     174             : 
     175             : void av1_highbd_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     176             : void av1_highbd_convolve8_avg_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     177             : #define av1_highbd_convolve8_avg av1_highbd_convolve8_avg_sse2
     178             : 
     179             : void av1_highbd_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     180             : void av1_highbd_convolve8_avg_horiz_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     181             : #define av1_highbd_convolve8_avg_horiz av1_highbd_convolve8_avg_horiz_sse2
     182             : 
     183             : void av1_highbd_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     184             : void av1_highbd_convolve8_avg_vert_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     185             : #define av1_highbd_convolve8_avg_vert av1_highbd_convolve8_avg_vert_sse2
     186             : 
     187             : void av1_highbd_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     188             : void av1_highbd_convolve8_horiz_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     189             : #define av1_highbd_convolve8_horiz av1_highbd_convolve8_horiz_sse2
     190             : 
     191             : void av1_highbd_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     192             : void av1_highbd_convolve8_vert_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     193             : #define av1_highbd_convolve8_vert av1_highbd_convolve8_vert_sse2
     194             : 
     195             : void av1_highbd_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     196             : #define av1_highbd_convolve_avg av1_highbd_convolve_avg_c
     197             : 
     198             : void av1_highbd_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
     199             : #define av1_highbd_convolve_copy av1_highbd_convolve_copy_c
     200             : 
     201             : void av1_highbd_convolve_horiz_c(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
     202             : void av1_highbd_convolve_horiz_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
     203             : RTCD_EXTERN void (*av1_highbd_convolve_horiz)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
     204             : 
     205             : void av1_highbd_convolve_init_c(void);
     206             : void av1_highbd_convolve_init_sse4_1(void);
     207             : RTCD_EXTERN void (*av1_highbd_convolve_init)(void);
     208             : 
     209             : void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
     210             : void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
     211             : RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
     212             : 
     213             : void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     214             : #define av1_highbd_fht16x16 av1_highbd_fht16x16_c
     215             : 
     216             : void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     217             : #define av1_highbd_fht16x32 av1_highbd_fht16x32_c
     218             : 
     219             : void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     220             : #define av1_highbd_fht16x4 av1_highbd_fht16x4_c
     221             : 
     222             : void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     223             : #define av1_highbd_fht16x8 av1_highbd_fht16x8_c
     224             : 
     225             : void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     226             : #define av1_highbd_fht32x16 av1_highbd_fht32x16_c
     227             : 
     228             : void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     229             : #define av1_highbd_fht32x32 av1_highbd_fht32x32_c
     230             : 
     231             : void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     232             : #define av1_highbd_fht32x8 av1_highbd_fht32x8_c
     233             : 
     234             : void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     235             : #define av1_highbd_fht4x16 av1_highbd_fht4x16_c
     236             : 
     237             : void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     238             : void av1_highbd_fht4x4_sse4_1(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     239             : RTCD_EXTERN void (*av1_highbd_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     240             : 
     241             : void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     242             : #define av1_highbd_fht4x8 av1_highbd_fht4x8_c
     243             : 
     244             : void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     245             : #define av1_highbd_fht8x16 av1_highbd_fht8x16_c
     246             : 
     247             : void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     248             : #define av1_highbd_fht8x32 av1_highbd_fht8x32_c
     249             : 
     250             : void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     251             : #define av1_highbd_fht8x4 av1_highbd_fht8x4_c
     252             : 
     253             : void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
     254             : #define av1_highbd_fht8x8 av1_highbd_fht8x8_c
     255             : 
     256             : void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
     257             : #define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
     258             : 
     259             : void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
     260             : #define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
     261             : 
     262             : void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     263             : #define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
     264             : 
     265             : void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     266             : #define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
     267             : 
     268             : void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     269             : #define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
     270             : 
     271             : void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     272             : #define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
     273             : 
     274             : void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     275             : #define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
     276             : 
     277             : void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     278             : #define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
     279             : 
     280             : void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     281             : #define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
     282             : 
     283             : void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     284             : #define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
     285             : 
     286             : void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     287             : #define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
     288             : 
     289             : void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     290             : #define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
     291             : 
     292             : void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     293             : #define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
     294             : 
     295             : void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
     296             : #define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
     297             : 
     298             : void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
     299             : #define av1_highbd_quantize_b av1_highbd_quantize_b_c
     300             : 
     301             : void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
     302             : void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
     303             : RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
     304             : 
     305             : void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
     306             : #define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
     307             : 
     308             : void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     309             : void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     310             : RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     311             : 
     312             : void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
     313             : void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
     314             : void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
     315             : RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
     316             : 
     317             : void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     318             : void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     319             : #define av1_iht16x32_512_add av1_iht16x32_512_add_sse2
     320             : 
     321             : void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     322             : #define av1_iht16x4_64_add av1_iht16x4_64_add_c
     323             : 
     324             : void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     325             : void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     326             : #define av1_iht16x8_128_add av1_iht16x8_128_add_sse2
     327             : 
     328             : void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     329             : void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     330             : #define av1_iht32x16_512_add av1_iht32x16_512_add_sse2
     331             : 
     332             : void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
     333             : #define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
     334             : 
     335             : void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     336             : #define av1_iht32x8_256_add av1_iht32x8_256_add_c
     337             : 
     338             : void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     339             : #define av1_iht4x16_64_add av1_iht4x16_64_add_c
     340             : 
     341             : void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     342             : void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     343             : #define av1_iht4x4_16_add av1_iht4x4_16_add_sse2
     344             : 
     345             : void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     346             : void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     347             : #define av1_iht4x8_32_add av1_iht4x8_32_add_sse2
     348             : 
     349             : void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     350             : void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     351             : #define av1_iht8x16_128_add av1_iht8x16_128_add_sse2
     352             : 
     353             : void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     354             : #define av1_iht8x32_256_add av1_iht8x32_256_add_c
     355             : 
     356             : void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     357             : void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     358             : #define av1_iht8x4_32_add av1_iht8x4_32_add_sse2
     359             : 
     360             : void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     361             : void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
     362             : #define av1_iht8x8_64_add av1_iht8x8_64_add_sse2
     363             : 
     364             : void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     365             : void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     366             : RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     367             : 
     368             : void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     369             : void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     370             : RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     371             : 
     372             : void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     373             : void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     374             : RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     375             : 
     376             : void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     377             : #define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
     378             : 
     379             : void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     380             : void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     381             : RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
     382             : 
     383             : void av1_lowbd_convolve_init_c(void);
     384             : void av1_lowbd_convolve_init_ssse3(void);
     385             : RTCD_EXTERN void (*av1_lowbd_convolve_init)(void);
     386             : 
     387             : void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
     388             : #define av1_quantize_b av1_quantize_b_c
     389             : 
     390             : void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
     391             : void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
     392             : #define av1_quantize_fp av1_quantize_fp_sse2
     393             : 
     394             : void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
     395             : #define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
     396             : 
     397             : void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
     398             : void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
     399             : #define av1_temporal_filter_apply av1_temporal_filter_apply_sse2
     400             : 
     401             : void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     402             : void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     403             : void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     404             : RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
     405             : 
     406             : void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
     407             : void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
     408             : #define av1_wedge_compute_delta_squares av1_wedge_compute_delta_squares_sse2
     409             : 
     410             : int av1_wedge_sign_from_residuals_c(const int16_t *ds, const uint8_t *m, int N, int64_t limit);
     411             : int av1_wedge_sign_from_residuals_sse2(const int16_t *ds, const uint8_t *m, int N, int64_t limit);
     412             : #define av1_wedge_sign_from_residuals av1_wedge_sign_from_residuals_sse2
     413             : 
     414             : uint64_t av1_wedge_sse_from_residuals_c(const int16_t *r1, const int16_t *d, const uint8_t *m, int N);
     415             : uint64_t av1_wedge_sse_from_residuals_sse2(const int16_t *r1, const int16_t *d, const uint8_t *m, int N);
     416             : #define av1_wedge_sse_from_residuals av1_wedge_sse_from_residuals_sse2
     417             : 
     418             : double compute_cross_correlation_c(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
     419             : double compute_cross_correlation_sse4_1(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
     420             : RTCD_EXTERN double (*compute_cross_correlation)(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
     421             : 
     422             : void copy_4x4_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     423             : void copy_4x4_16bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     424             : void copy_4x4_16bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     425             : void copy_4x4_16bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     426             : RTCD_EXTERN void (*copy_4x4_16bit_to_16bit)(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     427             : 
     428             : void copy_4x4_16bit_to_8bit_c(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     429             : void copy_4x4_16bit_to_8bit_sse2(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     430             : void copy_4x4_16bit_to_8bit_ssse3(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     431             : void copy_4x4_16bit_to_8bit_sse4_1(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     432             : RTCD_EXTERN void (*copy_4x4_16bit_to_8bit)(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     433             : 
     434             : void copy_8x8_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     435             : void copy_8x8_16bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     436             : void copy_8x8_16bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     437             : void copy_8x8_16bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     438             : RTCD_EXTERN void (*copy_8x8_16bit_to_16bit)(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
     439             : 
     440             : void copy_8x8_16bit_to_8bit_c(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     441             : void copy_8x8_16bit_to_8bit_sse2(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     442             : void copy_8x8_16bit_to_8bit_ssse3(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     443             : void copy_8x8_16bit_to_8bit_sse4_1(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     444             : RTCD_EXTERN void (*copy_8x8_16bit_to_8bit)(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
     445             : 
     446             : void copy_rect8_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
     447             : void copy_rect8_16bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
     448             : void copy_rect8_16bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
     449             : void copy_rect8_16bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
     450             : RTCD_EXTERN void (*copy_rect8_16bit_to_16bit)(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
     451             : 
     452             : void copy_rect8_8bit_to_16bit_c(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
     453             : void copy_rect8_8bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
     454             : void copy_rect8_8bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
     455             : void copy_rect8_8bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
     456             : RTCD_EXTERN void (*copy_rect8_8bit_to_16bit)(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
     457             : 
     458             : int od_dir_find8_c(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
     459             : int od_dir_find8_sse2(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
     460             : int od_dir_find8_ssse3(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
     461             : int od_dir_find8_sse4_1(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
     462             : RTCD_EXTERN int (*od_dir_find8)(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
     463             : 
     464             : void od_filter_dering_direction_4x4_c(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     465             : void od_filter_dering_direction_4x4_sse2(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     466             : void od_filter_dering_direction_4x4_ssse3(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     467             : void od_filter_dering_direction_4x4_sse4_1(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     468             : RTCD_EXTERN void (*od_filter_dering_direction_4x4)(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     469             : 
     470             : void od_filter_dering_direction_8x8_c(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     471             : void od_filter_dering_direction_8x8_sse2(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     472             : void od_filter_dering_direction_8x8_ssse3(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     473             : void od_filter_dering_direction_8x8_sse4_1(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     474             : RTCD_EXTERN void (*od_filter_dering_direction_8x8)(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
     475             : 
     476             : void aom_rtcd(void);
     477             : 
     478             : #ifdef RTCD_C
     479             : #include "aom_ports/x86.h"
     480           0 : static void setup_rtcd_internal(void)
     481             : {
     482           0 :     int flags = x86_simd_caps();
     483             : 
     484             :     (void)flags;
     485             : 
     486           0 :     aom_clpf_block = aom_clpf_block_sse2;
     487           0 :     if (flags & HAS_SSSE3) aom_clpf_block = aom_clpf_block_ssse3;
     488           0 :     if (flags & HAS_SSE4_1) aom_clpf_block = aom_clpf_block_sse4_1;
     489           0 :     aom_clpf_block_hbd = aom_clpf_block_hbd_sse2;
     490           0 :     if (flags & HAS_SSSE3) aom_clpf_block_hbd = aom_clpf_block_hbd_ssse3;
     491           0 :     if (flags & HAS_SSE4_1) aom_clpf_block_hbd = aom_clpf_block_hbd_sse4_1;
     492           0 :     aom_clpf_hblock = aom_clpf_hblock_sse2;
     493           0 :     if (flags & HAS_SSSE3) aom_clpf_hblock = aom_clpf_hblock_ssse3;
     494           0 :     if (flags & HAS_SSE4_1) aom_clpf_hblock = aom_clpf_hblock_sse4_1;
     495           0 :     aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
     496           0 :     if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
     497           0 :     if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
     498           0 :     av1_convolve_horiz = av1_convolve_horiz_c;
     499           0 :     if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
     500           0 :     av1_convolve_vert = av1_convolve_vert_c;
     501           0 :     if (flags & HAS_SSSE3) av1_convolve_vert = av1_convolve_vert_ssse3;
     502           0 :     av1_fht16x16 = av1_fht16x16_sse2;
     503           0 :     if (flags & HAS_AVX2) av1_fht16x16 = av1_fht16x16_avx2;
     504           0 :     av1_fht32x32 = av1_fht32x32_sse2;
     505           0 :     if (flags & HAS_AVX2) av1_fht32x32 = av1_fht32x32_avx2;
     506           0 :     av1_full_search_sad = av1_full_search_sad_c;
     507           0 :     if (flags & HAS_SSE3) av1_full_search_sad = av1_full_search_sadx3;
     508           0 :     if (flags & HAS_SSE4_1) av1_full_search_sad = av1_full_search_sadx8;
     509           0 :     av1_fwd_txfm2d_16x16 = av1_fwd_txfm2d_16x16_c;
     510           0 :     if (flags & HAS_SSE4_1) av1_fwd_txfm2d_16x16 = av1_fwd_txfm2d_16x16_sse4_1;
     511           0 :     av1_fwd_txfm2d_32x32 = av1_fwd_txfm2d_32x32_c;
     512           0 :     if (flags & HAS_SSE4_1) av1_fwd_txfm2d_32x32 = av1_fwd_txfm2d_32x32_sse4_1;
     513           0 :     av1_fwd_txfm2d_4x4 = av1_fwd_txfm2d_4x4_c;
     514           0 :     if (flags & HAS_SSE4_1) av1_fwd_txfm2d_4x4 = av1_fwd_txfm2d_4x4_sse4_1;
     515           0 :     av1_fwd_txfm2d_64x64 = av1_fwd_txfm2d_64x64_c;
     516           0 :     if (flags & HAS_SSE4_1) av1_fwd_txfm2d_64x64 = av1_fwd_txfm2d_64x64_sse4_1;
     517           0 :     av1_fwd_txfm2d_8x8 = av1_fwd_txfm2d_8x8_c;
     518           0 :     if (flags & HAS_SSE4_1) av1_fwd_txfm2d_8x8 = av1_fwd_txfm2d_8x8_sse4_1;
     519           0 :     av1_highbd_convolve_horiz = av1_highbd_convolve_horiz_c;
     520           0 :     if (flags & HAS_SSE4_1) av1_highbd_convolve_horiz = av1_highbd_convolve_horiz_sse4_1;
     521           0 :     av1_highbd_convolve_init = av1_highbd_convolve_init_c;
     522           0 :     if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
     523           0 :     av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
     524           0 :     if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
     525           0 :     av1_highbd_fht4x4 = av1_highbd_fht4x4_c;
     526           0 :     if (flags & HAS_SSE4_1) av1_highbd_fht4x4 = av1_highbd_fht4x4_sse4_1;
     527           0 :     av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
     528           0 :     if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
     529           0 :     av1_highbd_warp_affine = av1_highbd_warp_affine_c;
     530           0 :     if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
     531           0 :     av1_iht16x16_256_add = av1_iht16x16_256_add_sse2;
     532           0 :     if (flags & HAS_AVX2) av1_iht16x16_256_add = av1_iht16x16_256_add_avx2;
     533           0 :     av1_inv_txfm2d_add_16x16 = av1_inv_txfm2d_add_16x16_c;
     534           0 :     if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_16x16 = av1_inv_txfm2d_add_16x16_sse4_1;
     535           0 :     av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_c;
     536           0 :     if (flags & HAS_AVX2) av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_avx2;
     537           0 :     av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_c;
     538           0 :     if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_sse4_1;
     539           0 :     av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_c;
     540           0 :     if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_sse4_1;
     541           0 :     av1_lowbd_convolve_init = av1_lowbd_convolve_init_c;
     542           0 :     if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
     543           0 :     av1_warp_affine = av1_warp_affine_sse2;
     544           0 :     if (flags & HAS_SSSE3) av1_warp_affine = av1_warp_affine_ssse3;
     545           0 :     compute_cross_correlation = compute_cross_correlation_c;
     546           0 :     if (flags & HAS_SSE4_1) compute_cross_correlation = compute_cross_correlation_sse4_1;
     547           0 :     copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_sse2;
     548           0 :     if (flags & HAS_SSSE3) copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_ssse3;
     549           0 :     if (flags & HAS_SSE4_1) copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_sse4_1;
     550           0 :     copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_sse2;
     551           0 :     if (flags & HAS_SSSE3) copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_ssse3;
     552           0 :     if (flags & HAS_SSE4_1) copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_sse4_1;
     553           0 :     copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_sse2;
     554           0 :     if (flags & HAS_SSSE3) copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_ssse3;
     555           0 :     if (flags & HAS_SSE4_1) copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_sse4_1;
     556           0 :     copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_sse2;
     557           0 :     if (flags & HAS_SSSE3) copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_ssse3;
     558           0 :     if (flags & HAS_SSE4_1) copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_sse4_1;
     559           0 :     copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_sse2;
     560           0 :     if (flags & HAS_SSSE3) copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_ssse3;
     561           0 :     if (flags & HAS_SSE4_1) copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_sse4_1;
     562           0 :     copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_sse2;
     563           0 :     if (flags & HAS_SSSE3) copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_ssse3;
     564           0 :     if (flags & HAS_SSE4_1) copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_sse4_1;
     565           0 :     od_dir_find8 = od_dir_find8_sse2;
     566           0 :     if (flags & HAS_SSSE3) od_dir_find8 = od_dir_find8_ssse3;
     567           0 :     if (flags & HAS_SSE4_1) od_dir_find8 = od_dir_find8_sse4_1;
     568           0 :     od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_sse2;
     569           0 :     if (flags & HAS_SSSE3) od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_ssse3;
     570           0 :     if (flags & HAS_SSE4_1) od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_sse4_1;
     571           0 :     od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_sse2;
     572           0 :     if (flags & HAS_SSSE3) od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_ssse3;
     573           0 :     if (flags & HAS_SSE4_1) od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_sse4_1;
     574           0 : }
     575             : #endif
     576             : 
     577             : #ifdef __cplusplus
     578             : }  // extern "C"
     579             : #endif
     580             : 
     581             : #endif

Generated by: LCOV version 1.13