1## 2## Copyright (c) 2015 The WebM project authors. All Rights Reserved. 3## 4## Use of this source code is governed by a BSD-style license 5## that can be found in the LICENSE file in the root of the source 6## tree. An additional intellectual property rights grant can be found 7## in the file PATENTS. All contributing project authors may 8## be found in the AUTHORS file in the root of the source tree. 9## 10 11DSP_SRCS-yes += vpx_dsp.mk 12DSP_SRCS-yes += vpx_dsp_common.h 13 14DSP_SRCS-$(HAVE_MSA) += mips/macros_msa.h 15 16DSP_SRCS-$(HAVE_AVX2) += x86/bitdepth_conversion_avx2.h 17DSP_SRCS-$(HAVE_SSE2) += x86/bitdepth_conversion_sse2.h 18# This file is included in libs.mk. Including it here would cause it to be 19# compiled into an object. Even as an empty file, this would create an 20# executable section on the stack. 21#DSP_SRCS-$(HAVE_SSE2) += x86/bitdepth_conversion_sse2$(ASM) 22 23# bit reader 24DSP_SRCS-yes += prob.h 25DSP_SRCS-yes += prob.c 26 27ifeq ($(CONFIG_ENCODERS),yes) 28DSP_SRCS-yes += bitwriter.h 29DSP_SRCS-yes += bitwriter.c 30DSP_SRCS-yes += bitwriter_buffer.c 31DSP_SRCS-yes += bitwriter_buffer.h 32DSP_SRCS-yes += psnr.c 33DSP_SRCS-yes += psnr.h 34DSP_SRCS-yes += sse.c 35DSP_SRCS-$(CONFIG_INTERNAL_STATS) += ssim.c 36DSP_SRCS-$(CONFIG_INTERNAL_STATS) += ssim.h 37DSP_SRCS-$(CONFIG_INTERNAL_STATS) += psnrhvs.c 38DSP_SRCS-$(CONFIG_INTERNAL_STATS) += fastssim.c 39DSP_SRCS-$(HAVE_NEON) += arm/sse_neon.c 40DSP_SRCS-$(HAVE_NEON_DOTPROD) += arm/sse_neon_dotprod.c 41DSP_SRCS-$(HAVE_SSE4_1) += x86/sse_sse4.c 42DSP_SRCS-$(HAVE_AVX2) += x86/sse_avx2.c 43endif 44 45ifeq ($(CONFIG_DECODERS),yes) 46DSP_SRCS-yes += bitreader.h 47DSP_SRCS-yes += bitreader.c 48DSP_SRCS-yes += bitreader_buffer.c 49DSP_SRCS-yes += bitreader_buffer.h 50endif 51 52# intra predictions 53DSP_SRCS-yes += intrapred.c 54 55DSP_SRCS-$(HAVE_SSE2) += x86/intrapred_sse2.asm 56DSP_SRCS-$(HAVE_SSSE3) += x86/intrapred_ssse3.asm 57DSP_SRCS-$(HAVE_VSX) += ppc/intrapred_vsx.c 58 59ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 60DSP_SRCS-$(HAVE_SSE2) += x86/highbd_intrapred_sse2.asm 61DSP_SRCS-$(HAVE_SSE2) += x86/highbd_intrapred_intrin_sse2.c 62DSP_SRCS-$(HAVE_SSSE3) += x86/highbd_intrapred_intrin_ssse3.c 63DSP_SRCS-$(HAVE_NEON) += arm/highbd_intrapred_neon.c 64endif # CONFIG_VP9_HIGHBITDEPTH 65 66ifneq ($(filter yes,$(CONFIG_POSTPROC) $(CONFIG_VP9_POSTPROC)),) 67DSP_SRCS-yes += add_noise.c 68DSP_SRCS-yes += deblock.c 69DSP_SRCS-yes += postproc.h 70DSP_SRCS-$(HAVE_MSA) += mips/add_noise_msa.c 71DSP_SRCS-$(HAVE_MSA) += mips/deblock_msa.c 72DSP_SRCS-$(HAVE_NEON) += arm/deblock_neon.c 73DSP_SRCS-$(HAVE_SSE2) += x86/add_noise_sse2.asm 74DSP_SRCS-$(HAVE_SSE2) += x86/deblock_sse2.asm 75DSP_SRCS-$(HAVE_SSE2) += x86/post_proc_sse2.c 76DSP_SRCS-$(HAVE_VSX) += ppc/deblock_vsx.c 77endif # CONFIG_POSTPROC 78 79DSP_SRCS-$(HAVE_NEON_ASM) += arm/intrapred_neon_asm$(ASM) 80DSP_SRCS-$(HAVE_NEON) += arm/intrapred_neon.c 81DSP_SRCS-$(HAVE_MSA) += mips/intrapred_msa.c 82DSP_SRCS-$(HAVE_LSX) += loongarch/intrapred_lsx.c 83DSP_SRCS-$(HAVE_DSPR2) += mips/intrapred4_dspr2.c 84DSP_SRCS-$(HAVE_DSPR2) += mips/intrapred8_dspr2.c 85DSP_SRCS-$(HAVE_DSPR2) += mips/intrapred16_dspr2.c 86 87DSP_SRCS-$(HAVE_DSPR2) += mips/common_dspr2.h 88DSP_SRCS-$(HAVE_DSPR2) += mips/common_dspr2.c 89 90DSP_SRCS-yes += vpx_filter.h 91ifeq ($(CONFIG_VP9),yes) 92# interpolation filters 93DSP_SRCS-yes += vpx_convolve.c 94DSP_SRCS-yes += vpx_convolve.h 95 96DSP_SRCS-$(VPX_ARCH_X86)$(VPX_ARCH_X86_64) += x86/convolve.h 97 98DSP_SRCS-$(HAVE_SSE2) += x86/convolve_sse2.h 99DSP_SRCS-$(HAVE_SSSE3) += x86/convolve_ssse3.h 100DSP_SRCS-$(HAVE_AVX2) += x86/convolve_avx2.h 101DSP_SRCS-$(HAVE_SSE2) += x86/vpx_subpixel_8t_sse2.asm 102DSP_SRCS-$(HAVE_SSE2) += x86/vpx_subpixel_4t_intrin_sse2.c 103DSP_SRCS-$(HAVE_SSE2) += x86/vpx_subpixel_bilinear_sse2.asm 104DSP_SRCS-$(HAVE_SSSE3) += x86/vpx_subpixel_8t_ssse3.asm 105DSP_SRCS-$(HAVE_SSSE3) += x86/vpx_subpixel_bilinear_ssse3.asm 106DSP_SRCS-$(HAVE_AVX2) += x86/vpx_subpixel_8t_intrin_avx2.c 107DSP_SRCS-$(HAVE_SSSE3) += x86/vpx_subpixel_8t_intrin_ssse3.c 108ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 109DSP_SRCS-$(HAVE_SSE2) += x86/vpx_high_subpixel_8t_sse2.asm 110DSP_SRCS-$(HAVE_SSE2) += x86/vpx_high_subpixel_bilinear_sse2.asm 111DSP_SRCS-$(HAVE_AVX2) += x86/highbd_convolve_avx2.c 112DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve_copy_neon.c 113DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve_avg_neon.c 114DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve8_neon.c 115DSP_SRCS-$(HAVE_SVE) += arm/highbd_vpx_convolve8_sve.c 116DSP_SRCS-$(HAVE_SVE2) += arm/highbd_vpx_convolve8_sve2.c 117endif 118 119DSP_SRCS-$(HAVE_SSE2) += x86/vpx_convolve_copy_sse2.asm 120DSP_SRCS-$(HAVE_NEON) += arm/vpx_scaled_convolve8_neon.c 121 122ifeq ($(HAVE_NEON_ASM),yes) 123DSP_SRCS-yes += arm/vpx_convolve_copy_neon_asm$(ASM) 124DSP_SRCS-yes += arm/vpx_convolve8_horiz_filter_type2_neon$(ASM) 125DSP_SRCS-yes += arm/vpx_convolve8_vert_filter_type2_neon$(ASM) 126DSP_SRCS-yes += arm/vpx_convolve8_horiz_filter_type1_neon$(ASM) 127DSP_SRCS-yes += arm/vpx_convolve8_vert_filter_type1_neon$(ASM) 128DSP_SRCS-yes += arm/vpx_convolve8_avg_horiz_filter_type2_neon$(ASM) 129DSP_SRCS-yes += arm/vpx_convolve8_avg_vert_filter_type2_neon$(ASM) 130DSP_SRCS-yes += arm/vpx_convolve8_avg_horiz_filter_type1_neon$(ASM) 131DSP_SRCS-yes += arm/vpx_convolve8_avg_vert_filter_type1_neon$(ASM) 132DSP_SRCS-yes += arm/vpx_convolve_avg_neon_asm$(ASM) 133DSP_SRCS-yes += arm/vpx_convolve8_neon_asm.c 134DSP_SRCS-yes += arm/vpx_convolve8_neon_asm.h 135DSP_SRCS-yes += arm/vpx_convolve_neon.c 136else 137ifeq ($(HAVE_NEON),yes) 138DSP_SRCS-yes += arm/vpx_convolve_copy_neon.c 139DSP_SRCS-yes += arm/vpx_convolve8_neon.c 140DSP_SRCS-yes += arm/vpx_convolve_avg_neon.c 141DSP_SRCS-yes += arm/vpx_convolve_neon.c 142DSP_SRCS-$(HAVE_NEON_DOTPROD) += arm/vpx_convolve8_neon_dotprod.c 143DSP_SRCS-$(HAVE_NEON_I8MM) += arm/vpx_convolve8_neon_i8mm.c 144endif # HAVE_NEON 145endif # HAVE_NEON_ASM 146 147# common (msa) 148DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_avg_horiz_msa.c 149DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_avg_msa.c 150DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_avg_vert_msa.c 151DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_horiz_msa.c 152DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_msa.c 153DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_vert_msa.c 154DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve_avg_msa.c 155DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve_copy_msa.c 156DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve_msa.h 157DSP_SRCS-$(HAVE_MMI) += mips/vpx_convolve8_mmi.c 158 159# common (dspr2) 160DSP_SRCS-$(HAVE_DSPR2) += mips/convolve_common_dspr2.h 161DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_avg_dspr2.c 162DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_avg_horiz_dspr2.c 163DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_dspr2.c 164DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_horiz_dspr2.c 165DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_vert_dspr2.c 166DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_avg_dspr2.c 167DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_avg_horiz_dspr2.c 168DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_dspr2.c 169DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_horiz_dspr2.c 170DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_vert_dspr2.c 171 172DSP_SRCS-$(HAVE_VSX) += ppc/vpx_convolve_vsx.c 173 174# common (lsx) 175DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_avg_horiz_lsx.c 176DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_avg_vert_lsx.c 177DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_horiz_lsx.c 178DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_vert_lsx.c 179DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_lsx.c 180DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_avg_lsx.c 181DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve_avg_lsx.c 182DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve_copy_lsx.c 183DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve_lsx.h 184 185# loop filters 186DSP_SRCS-yes += loopfilter.c 187 188DSP_SRCS-$(HAVE_SSE2) += x86/loopfilter_sse2.c 189DSP_SRCS-$(HAVE_AVX2) += x86/loopfilter_avx2.c 190 191ifeq ($(HAVE_NEON_ASM),yes) 192DSP_SRCS-yes += arm/loopfilter_16_neon$(ASM) 193DSP_SRCS-yes += arm/loopfilter_8_neon$(ASM) 194DSP_SRCS-yes += arm/loopfilter_4_neon$(ASM) 195else 196DSP_SRCS-$(HAVE_NEON) += arm/loopfilter_neon.c 197endif # HAVE_NEON_ASM 198 199DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_msa.h 200DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_16_msa.c 201DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_8_msa.c 202DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_4_msa.c 203DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_filters_dspr2.h 204DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_filters_dspr2.c 205DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_macros_dspr2.h 206DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_masks_dspr2.h 207DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_mb_dspr2.c 208DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_mb_horiz_dspr2.c 209DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_mb_vert_dspr2.c 210 211DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_lsx.h 212DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_16_lsx.c 213DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_8_lsx.c 214DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_4_lsx.c 215 216ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 217DSP_SRCS-$(HAVE_NEON) += arm/highbd_loopfilter_neon.c 218DSP_SRCS-$(HAVE_SSE2) += x86/highbd_loopfilter_sse2.c 219endif # CONFIG_VP9_HIGHBITDEPTH 220endif # CONFIG_VP9 221 222DSP_SRCS-yes += txfm_common.h 223DSP_SRCS-$(HAVE_SSE2) += x86/txfm_common_sse2.h 224DSP_SRCS-$(HAVE_MSA) += mips/txfm_macros_msa.h 225DSP_SRCS-$(HAVE_LSX) += loongarch/txfm_macros_lsx.h 226# forward transform 227ifeq ($(CONFIG_VP9_ENCODER),yes) 228DSP_SRCS-yes += fwd_txfm.c 229DSP_SRCS-yes += fwd_txfm.h 230DSP_SRCS-$(HAVE_SSE2) += x86/fwd_txfm_sse2.h 231DSP_SRCS-$(HAVE_SSE2) += x86/fwd_txfm_sse2.c 232DSP_SRCS-$(HAVE_SSE2) += x86/fwd_txfm_impl_sse2.h 233DSP_SRCS-$(HAVE_SSE2) += x86/fwd_dct32x32_impl_sse2.h 234ifeq ($(VPX_ARCH_X86_64),yes) 235DSP_SRCS-$(HAVE_SSSE3) += x86/fwd_txfm_ssse3_x86_64.asm 236endif 237DSP_SRCS-$(HAVE_AVX2) += x86/fwd_dct32x32_impl_avx2.h 238DSP_SRCS-$(HAVE_NEON) += arm/fdct4x4_neon.c 239DSP_SRCS-$(HAVE_NEON) += arm/fdct8x8_neon.c 240DSP_SRCS-$(HAVE_NEON) += arm/fdct16x16_neon.c 241DSP_SRCS-$(HAVE_NEON) += arm/fdct32x32_neon.c 242DSP_SRCS-$(HAVE_NEON) += arm/fdct_partial_neon.c 243DSP_SRCS-$(HAVE_MSA) += mips/fwd_txfm_msa.h 244DSP_SRCS-$(HAVE_MSA) += mips/fwd_txfm_msa.c 245DSP_SRCS-$(HAVE_LSX) += loongarch/fwd_txfm_lsx.h 246DSP_SRCS-$(HAVE_LSX) += loongarch/fwd_txfm_lsx.c 247 248ifneq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 249DSP_SRCS-$(HAVE_AVX2) += x86/fwd_txfm_avx2.c 250DSP_SRCS-$(HAVE_MSA) += mips/fwd_dct32x32_msa.c 251DSP_SRCS-$(HAVE_LSX) += loongarch/fwd_dct32x32_lsx.c 252endif # !CONFIG_VP9_HIGHBITDEPTH 253 254DSP_SRCS-$(HAVE_VSX) += ppc/fdct32x32_vsx.c 255endif # CONFIG_VP9_ENCODER 256 257# inverse transform 258ifeq ($(CONFIG_VP9),yes) 259DSP_SRCS-yes += inv_txfm.h 260DSP_SRCS-yes += inv_txfm.c 261DSP_SRCS-$(HAVE_SSE2) += x86/inv_txfm_sse2.h 262DSP_SRCS-$(HAVE_SSE2) += x86/inv_txfm_sse2.c 263DSP_SRCS-$(HAVE_AVX2) += x86/inv_txfm_avx2.c 264DSP_SRCS-$(HAVE_SSE2) += x86/inv_wht_sse2.asm 265DSP_SRCS-$(HAVE_SSSE3) += x86/inv_txfm_ssse3.h 266DSP_SRCS-$(HAVE_SSSE3) += x86/inv_txfm_ssse3.c 267 268DSP_SRCS-$(HAVE_NEON_ASM) += arm/save_reg_neon$(ASM) 269 270DSP_SRCS-$(HAVE_VSX) += ppc/inv_txfm_vsx.c 271 272ifneq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 273DSP_SRCS-$(HAVE_MSA) += mips/inv_txfm_msa.h 274DSP_SRCS-$(HAVE_MSA) += mips/idct4x4_msa.c 275DSP_SRCS-$(HAVE_MSA) += mips/idct8x8_msa.c 276DSP_SRCS-$(HAVE_MSA) += mips/idct16x16_msa.c 277DSP_SRCS-$(HAVE_MSA) += mips/idct32x32_msa.c 278 279DSP_SRCS-$(HAVE_DSPR2) += mips/inv_txfm_dspr2.h 280DSP_SRCS-$(HAVE_DSPR2) += mips/itrans4_dspr2.c 281DSP_SRCS-$(HAVE_DSPR2) += mips/itrans8_dspr2.c 282DSP_SRCS-$(HAVE_DSPR2) += mips/itrans16_dspr2.c 283DSP_SRCS-$(HAVE_DSPR2) += mips/itrans32_dspr2.c 284DSP_SRCS-$(HAVE_DSPR2) += mips/itrans32_cols_dspr2.c 285 286DSP_SRCS-$(HAVE_LSX) += loongarch/idct32x32_lsx.c 287else # CONFIG_VP9_HIGHBITDEPTH 288DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct4x4_add_neon.c 289DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct8x8_add_neon.c 290DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct16x16_add_neon.c 291DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_add_neon.c 292DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_34_add_neon.c 293DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_135_add_neon.c 294DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_1024_add_neon.c 295DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct_neon.h 296DSP_SRCS-$(HAVE_SSE2) += x86/highbd_inv_txfm_sse2.h 297DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct4x4_add_sse2.c 298DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct8x8_add_sse2.c 299DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct16x16_add_sse2.c 300DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct32x32_add_sse2.c 301DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_inv_txfm_sse4.h 302DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct4x4_add_sse4.c 303DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct8x8_add_sse4.c 304DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct16x16_add_sse4.c 305DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct32x32_add_sse4.c 306endif # !CONFIG_VP9_HIGHBITDEPTH 307 308ifeq ($(HAVE_NEON_ASM),yes) 309DSP_SRCS-yes += arm/idct_neon$(ASM) 310DSP_SRCS-yes += arm/idct4x4_1_add_neon$(ASM) 311DSP_SRCS-yes += arm/idct4x4_add_neon$(ASM) 312else 313DSP_SRCS-$(HAVE_NEON) += arm/idct4x4_1_add_neon.c 314DSP_SRCS-$(HAVE_NEON) += arm/idct4x4_add_neon.c 315endif # HAVE_NEON_ASM 316DSP_SRCS-$(HAVE_NEON) += arm/idct_neon.h 317DSP_SRCS-$(HAVE_NEON) += arm/idct8x8_1_add_neon.c 318DSP_SRCS-$(HAVE_NEON) += arm/idct8x8_add_neon.c 319DSP_SRCS-$(HAVE_NEON) += arm/idct16x16_1_add_neon.c 320DSP_SRCS-$(HAVE_NEON) += arm/idct16x16_add_neon.c 321DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_1_add_neon.c 322DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_34_add_neon.c 323DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_135_add_neon.c 324DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_add_neon.c 325 326endif # CONFIG_VP9 327 328# quantization 329ifeq ($(CONFIG_VP9_ENCODER),yes) 330DSP_SRCS-yes += quantize.c 331DSP_SRCS-yes += quantize.h 332 333DSP_SRCS-$(HAVE_SSE2) += x86/quantize_sse2.c 334DSP_SRCS-$(HAVE_SSE2) += x86/quantize_sse2.h 335DSP_SRCS-$(HAVE_SSSE3) += x86/quantize_ssse3.c 336DSP_SRCS-$(HAVE_SSSE3) += x86/quantize_ssse3.h 337DSP_SRCS-$(HAVE_AVX) += x86/quantize_avx.c 338DSP_SRCS-$(HAVE_AVX2) += x86/quantize_avx2.c 339DSP_SRCS-$(HAVE_NEON) += arm/quantize_neon.c 340DSP_SRCS-$(HAVE_VSX) += ppc/quantize_vsx.c 341DSP_SRCS-$(HAVE_LSX) += loongarch/quantize_lsx.c 342ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 343DSP_SRCS-$(HAVE_SSE2) += x86/highbd_quantize_intrin_sse2.c 344DSP_SRCS-$(HAVE_AVX2) += x86/highbd_quantize_intrin_avx2.c 345DSP_SRCS-$(HAVE_NEON) += arm/highbd_quantize_neon.c 346endif 347 348# avg 349DSP_SRCS-yes += avg.c 350DSP_SRCS-$(HAVE_SSE2) += x86/avg_intrin_sse2.c 351DSP_SRCS-$(HAVE_AVX2) += x86/avg_intrin_avx2.c 352DSP_SRCS-$(HAVE_NEON) += arm/avg_neon.c 353DSP_SRCS-$(HAVE_NEON) += arm/hadamard_neon.c 354ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 355DSP_SRCS-$(HAVE_NEON) += arm/highbd_hadamard_neon.c 356DSP_SRCS-$(HAVE_NEON) += arm/highbd_avg_neon.c 357endif 358DSP_SRCS-$(HAVE_MSA) += mips/avg_msa.c 359DSP_SRCS-$(HAVE_LSX) += loongarch/avg_lsx.c 360ifeq ($(VPX_ARCH_X86_64),yes) 361DSP_SRCS-$(HAVE_SSSE3) += x86/avg_ssse3_x86_64.asm 362endif 363DSP_SRCS-$(HAVE_VSX) += ppc/hadamard_vsx.c 364 365endif # CONFIG_VP9_ENCODER 366 367# skin detection 368DSP_SRCS-yes += skin_detection.h 369DSP_SRCS-yes += skin_detection.c 370 371ifeq ($(CONFIG_ENCODERS),yes) 372DSP_SRCS-yes += sad.c 373DSP_SRCS-yes += subtract.c 374DSP_SRCS-yes += sum_squares.c 375DSP_SRCS-$(HAVE_NEON) += arm/sum_squares_neon.c 376DSP_SRCS-$(HAVE_SVE) += arm/sum_squares_sve.c 377DSP_SRCS-$(HAVE_SSE2) += x86/sum_squares_sse2.c 378DSP_SRCS-$(HAVE_MSA) += mips/sum_squares_msa.c 379 380DSP_SRCS-$(HAVE_NEON) += arm/sad4d_neon.c 381DSP_SRCS-$(HAVE_NEON_DOTPROD) += arm/sad4d_neon_dotprod.c 382DSP_SRCS-$(HAVE_NEON) += arm/sad_neon.c 383DSP_SRCS-$(HAVE_NEON_DOTPROD) += arm/sad_neon_dotprod.c 384DSP_SRCS-$(HAVE_NEON) += arm/subtract_neon.c 385 386DSP_SRCS-$(HAVE_MSA) += mips/sad_msa.c 387DSP_SRCS-$(HAVE_MSA) += mips/subtract_msa.c 388 389DSP_SRCS-$(HAVE_LSX) += loongarch/sad_lsx.c 390 391DSP_SRCS-$(HAVE_MMI) += mips/sad_mmi.c 392DSP_SRCS-$(HAVE_MMI) += mips/subtract_mmi.c 393 394DSP_SRCS-$(HAVE_AVX2) += x86/sad4d_avx2.c 395DSP_SRCS-$(HAVE_AVX2) += x86/sad_avx2.c 396DSP_SRCS-$(HAVE_AVX2) += x86/subtract_avx2.c 397DSP_SRCS-$(HAVE_AVX512) += x86/sad4d_avx512.c 398 399DSP_SRCS-$(HAVE_SSE2) += x86/sad4d_sse2.asm 400DSP_SRCS-$(HAVE_SSE2) += x86/sad_sse2.asm 401DSP_SRCS-$(HAVE_SSE2) += x86/subtract_sse2.asm 402 403DSP_SRCS-$(HAVE_VSX) += ppc/sad_vsx.c 404DSP_SRCS-$(HAVE_VSX) += ppc/subtract_vsx.c 405 406DSP_SRCS-$(HAVE_LSX) += loongarch/subtract_lsx.c 407 408ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 409DSP_SRCS-$(HAVE_SSE2) += x86/highbd_sad4d_sse2.asm 410DSP_SRCS-$(HAVE_SSE2) += x86/highbd_sad_sse2.asm 411DSP_SRCS-$(HAVE_NEON) += arm/highbd_sad4d_neon.c 412DSP_SRCS-$(HAVE_NEON) += arm/highbd_sad_neon.c 413DSP_SRCS-$(HAVE_AVX2) += x86/highbd_sad4d_avx2.c 414DSP_SRCS-$(HAVE_AVX2) += x86/highbd_sad_avx2.c 415endif # CONFIG_VP9_HIGHBITDEPTH 416 417endif # CONFIG_ENCODERS 418 419ifneq ($(filter yes,$(CONFIG_ENCODERS) $(CONFIG_POSTPROC) $(CONFIG_VP9_POSTPROC)),) 420DSP_SRCS-yes += variance.c 421DSP_SRCS-yes += variance.h 422 423DSP_SRCS-$(HAVE_NEON) += arm/avg_pred_neon.c 424DSP_SRCS-$(HAVE_NEON) += arm/subpel_variance_neon.c 425DSP_SRCS-$(HAVE_NEON) += arm/variance_neon.c 426DSP_SRCS-$(HAVE_NEON_DOTPROD) += arm/variance_neon_dotprod.c 427 428DSP_SRCS-$(HAVE_MSA) += mips/variance_msa.c 429DSP_SRCS-$(HAVE_MSA) += mips/sub_pixel_variance_msa.c 430 431DSP_SRCS-$(HAVE_LSX) += loongarch/variance_lsx.h 432DSP_SRCS-$(HAVE_LSX) += loongarch/variance_lsx.c 433DSP_SRCS-$(HAVE_LSX) += loongarch/sub_pixel_variance_lsx.c 434DSP_SRCS-$(HAVE_LSX) += loongarch/avg_pred_lsx.c 435 436DSP_SRCS-$(HAVE_MMI) += mips/variance_mmi.c 437 438DSP_SRCS-$(HAVE_SSE2) += x86/avg_pred_sse2.c 439DSP_SRCS-$(HAVE_AVX2) += x86/avg_pred_avx2.c 440DSP_SRCS-$(HAVE_SSE2) += x86/variance_sse2.c # Contains SSE2 and SSSE3 441DSP_SRCS-$(HAVE_AVX2) += x86/variance_avx2.c 442DSP_SRCS-$(HAVE_VSX) += ppc/variance_vsx.c 443 444ifeq ($(VPX_ARCH_X86_64),yes) 445DSP_SRCS-$(HAVE_SSE2) += x86/ssim_opt_x86_64.asm 446endif # VPX_ARCH_X86_64 447 448DSP_SRCS-$(HAVE_SSE2) += x86/subpel_variance_sse2.asm # Contains SSE2 and SSSE3 449 450ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes) 451DSP_SRCS-$(HAVE_SSE2) += x86/highbd_variance_sse2.c 452DSP_SRCS-$(HAVE_SSE2) += x86/highbd_variance_impl_sse2.asm 453DSP_SRCS-$(HAVE_SSE2) += x86/highbd_subpel_variance_impl_sse2.asm 454DSP_SRCS-$(HAVE_NEON) += arm/highbd_avg_pred_neon.c 455DSP_SRCS-$(HAVE_NEON) += arm/highbd_sse_neon.c 456DSP_SRCS-$(HAVE_NEON) += arm/highbd_variance_neon.c 457DSP_SRCS-$(HAVE_NEON_DOTPROD) += arm/highbd_variance_neon_dotprod.c 458DSP_SRCS-$(HAVE_SVE) += arm/highbd_variance_sve.c 459DSP_SRCS-$(HAVE_NEON) += arm/highbd_subpel_variance_neon.c 460endif # CONFIG_VP9_HIGHBITDEPTH 461endif # CONFIG_ENCODERS || CONFIG_POSTPROC || CONFIG_VP9_POSTPROC 462 463# Neon utilities 464DSP_SRCS-$(HAVE_NEON) += arm/mem_neon.h 465DSP_SRCS-$(HAVE_NEON) += arm/sum_neon.h 466DSP_SRCS-$(HAVE_NEON) += arm/transpose_neon.h 467DSP_SRCS-$(HAVE_NEON) += arm/vpx_convolve8_neon.h 468 469# PPC VSX utilities 470DSP_SRCS-$(HAVE_VSX) += ppc/types_vsx.h 471DSP_SRCS-$(HAVE_VSX) += ppc/txfm_common_vsx.h 472DSP_SRCS-$(HAVE_VSX) += ppc/transpose_vsx.h 473DSP_SRCS-$(HAVE_VSX) += ppc/bitdepth_conversion_vsx.h 474 475# X86 utilities 476DSP_SRCS-$(HAVE_SSE2) += x86/mem_sse2.h 477DSP_SRCS-$(HAVE_SSE2) += x86/transpose_sse2.h 478 479# LSX utilities 480DSP_SRCS-$(HAVE_LSX) += loongarch/bitdepth_conversion_lsx.h 481 482DSP_SRCS-no += $(DSP_SRCS_REMOVE-yes) 483 484DSP_SRCS-yes += vpx_dsp_rtcd.c 485DSP_SRCS-yes += vpx_dsp_rtcd_defs.pl 486 487$(eval $(call rtcd_h_template,vpx_dsp_rtcd,vpx_dsp/vpx_dsp_rtcd_defs.pl)) 488