2 ## Copyright (c) 2015 The WebM project authors. All Rights Reserved.
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.
11 DSP_SRCS-yes += vpx_dsp.mk
12 DSP_SRCS-yes += vpx_dsp_common.h
14 DSP_SRCS-$(HAVE_MSA) += mips/macros_msa.h
16 DSP_SRCS-$(HAVE_AVX2) += x86/bitdepth_conversion_avx2.h
17 DSP_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)
24 DSP_SRCS-yes += prob.h
25 DSP_SRCS-yes += prob.c
27 ifeq ($(CONFIG_ENCODERS),yes)
28 DSP_SRCS-yes += bitwriter.h
29 DSP_SRCS-yes += bitwriter.c
30 DSP_SRCS-yes += bitwriter_buffer.c
31 DSP_SRCS-yes += bitwriter_buffer.h
32 DSP_SRCS-yes += psnr.c
33 DSP_SRCS-yes += psnr.h
34 DSP_SRCS-$(CONFIG_INTERNAL_STATS) += ssim.c
35 DSP_SRCS-$(CONFIG_INTERNAL_STATS) += ssim.h
36 DSP_SRCS-$(CONFIG_INTERNAL_STATS) += psnrhvs.c
37 DSP_SRCS-$(CONFIG_INTERNAL_STATS) += fastssim.c
40 ifeq ($(CONFIG_DECODERS),yes)
41 DSP_SRCS-yes += bitreader.h
42 DSP_SRCS-yes += bitreader.c
43 DSP_SRCS-yes += bitreader_buffer.c
44 DSP_SRCS-yes += bitreader_buffer.h
48 DSP_SRCS-yes += intrapred.c
50 DSP_SRCS-$(HAVE_SSE2) += x86/intrapred_sse2.asm
51 DSP_SRCS-$(HAVE_SSSE3) += x86/intrapred_ssse3.asm
52 DSP_SRCS-$(HAVE_VSX) += ppc/intrapred_vsx.c
54 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
55 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_intrapred_sse2.asm
56 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_intrapred_intrin_sse2.c
57 DSP_SRCS-$(HAVE_SSSE3) += x86/highbd_intrapred_intrin_ssse3.c
58 DSP_SRCS-$(HAVE_NEON) += arm/highbd_intrapred_neon.c
59 endif # CONFIG_VP9_HIGHBITDEPTH
61 ifneq ($(filter yes,$(CONFIG_POSTPROC) $(CONFIG_VP9_POSTPROC)),)
62 DSP_SRCS-yes += add_noise.c
63 DSP_SRCS-yes += deblock.c
64 DSP_SRCS-yes += postproc.h
65 DSP_SRCS-$(HAVE_MSA) += mips/add_noise_msa.c
66 DSP_SRCS-$(HAVE_MSA) += mips/deblock_msa.c
67 DSP_SRCS-$(HAVE_NEON) += arm/deblock_neon.c
68 DSP_SRCS-$(HAVE_SSE2) += x86/add_noise_sse2.asm
69 DSP_SRCS-$(HAVE_SSE2) += x86/deblock_sse2.asm
70 DSP_SRCS-$(HAVE_SSE2) += x86/post_proc_sse2.c
71 DSP_SRCS-$(HAVE_VSX) += ppc/deblock_vsx.c
72 endif # CONFIG_POSTPROC
74 DSP_SRCS-$(HAVE_NEON_ASM) += arm/intrapred_neon_asm$(ASM)
75 DSP_SRCS-$(HAVE_NEON) += arm/intrapred_neon.c
76 DSP_SRCS-$(HAVE_MSA) += mips/intrapred_msa.c
77 DSP_SRCS-$(HAVE_LSX) += loongarch/intrapred_lsx.c
78 DSP_SRCS-$(HAVE_DSPR2) += mips/intrapred4_dspr2.c
79 DSP_SRCS-$(HAVE_DSPR2) += mips/intrapred8_dspr2.c
80 DSP_SRCS-$(HAVE_DSPR2) += mips/intrapred16_dspr2.c
82 DSP_SRCS-$(HAVE_DSPR2) += mips/common_dspr2.h
83 DSP_SRCS-$(HAVE_DSPR2) += mips/common_dspr2.c
85 DSP_SRCS-yes += vpx_filter.h
86 ifeq ($(CONFIG_VP9),yes)
87 # interpolation filters
88 DSP_SRCS-yes += vpx_convolve.c
89 DSP_SRCS-yes += vpx_convolve.h
91 DSP_SRCS-$(VPX_ARCH_X86)$(VPX_ARCH_X86_64) += x86/convolve.h
93 DSP_SRCS-$(HAVE_SSE2) += x86/convolve_sse2.h
94 DSP_SRCS-$(HAVE_SSSE3) += x86/convolve_ssse3.h
95 DSP_SRCS-$(HAVE_AVX2) += x86/convolve_avx2.h
96 DSP_SRCS-$(HAVE_SSE2) += x86/vpx_subpixel_8t_sse2.asm
97 DSP_SRCS-$(HAVE_SSE2) += x86/vpx_subpixel_4t_intrin_sse2.c
98 DSP_SRCS-$(HAVE_SSE2) += x86/vpx_subpixel_bilinear_sse2.asm
99 DSP_SRCS-$(HAVE_SSSE3) += x86/vpx_subpixel_8t_ssse3.asm
100 DSP_SRCS-$(HAVE_SSSE3) += x86/vpx_subpixel_bilinear_ssse3.asm
101 DSP_SRCS-$(HAVE_AVX2) += x86/vpx_subpixel_8t_intrin_avx2.c
102 DSP_SRCS-$(HAVE_SSSE3) += x86/vpx_subpixel_8t_intrin_ssse3.c
103 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
104 DSP_SRCS-$(HAVE_SSE2) += x86/vpx_high_subpixel_8t_sse2.asm
105 DSP_SRCS-$(HAVE_SSE2) += x86/vpx_high_subpixel_bilinear_sse2.asm
106 DSP_SRCS-$(HAVE_AVX2) += x86/highbd_convolve_avx2.c
107 DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve_copy_neon.c
108 DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve_avg_neon.c
109 DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve8_neon.c
110 DSP_SRCS-$(HAVE_NEON) += arm/highbd_vpx_convolve_neon.c
113 DSP_SRCS-$(HAVE_SSE2) += x86/vpx_convolve_copy_sse2.asm
114 DSP_SRCS-$(HAVE_NEON) += arm/vpx_scaled_convolve8_neon.c
116 ifeq ($(HAVE_NEON_ASM),yes)
117 DSP_SRCS-yes += arm/vpx_convolve_copy_neon_asm$(ASM)
118 DSP_SRCS-yes += arm/vpx_convolve8_horiz_filter_type2_neon$(ASM)
119 DSP_SRCS-yes += arm/vpx_convolve8_vert_filter_type2_neon$(ASM)
120 DSP_SRCS-yes += arm/vpx_convolve8_horiz_filter_type1_neon$(ASM)
121 DSP_SRCS-yes += arm/vpx_convolve8_vert_filter_type1_neon$(ASM)
122 DSP_SRCS-yes += arm/vpx_convolve8_avg_horiz_filter_type2_neon$(ASM)
123 DSP_SRCS-yes += arm/vpx_convolve8_avg_vert_filter_type2_neon$(ASM)
124 DSP_SRCS-yes += arm/vpx_convolve8_avg_horiz_filter_type1_neon$(ASM)
125 DSP_SRCS-yes += arm/vpx_convolve8_avg_vert_filter_type1_neon$(ASM)
126 DSP_SRCS-yes += arm/vpx_convolve_avg_neon_asm$(ASM)
127 DSP_SRCS-yes += arm/vpx_convolve8_neon_asm.c
128 DSP_SRCS-yes += arm/vpx_convolve8_neon_asm.h
129 DSP_SRCS-yes += arm/vpx_convolve_neon.c
131 ifeq ($(HAVE_NEON),yes)
132 DSP_SRCS-yes += arm/vpx_convolve_copy_neon.c
133 DSP_SRCS-yes += arm/vpx_convolve8_neon.c
134 DSP_SRCS-yes += arm/vpx_convolve_avg_neon.c
135 DSP_SRCS-yes += arm/vpx_convolve_neon.c
137 endif # HAVE_NEON_ASM
140 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_avg_horiz_msa.c
141 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_avg_msa.c
142 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_avg_vert_msa.c
143 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_horiz_msa.c
144 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_msa.c
145 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve8_vert_msa.c
146 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve_avg_msa.c
147 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve_copy_msa.c
148 DSP_SRCS-$(HAVE_MSA) += mips/vpx_convolve_msa.h
149 DSP_SRCS-$(HAVE_MMI) += mips/vpx_convolve8_mmi.c
152 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve_common_dspr2.h
153 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_avg_dspr2.c
154 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_avg_horiz_dspr2.c
155 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_dspr2.c
156 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_horiz_dspr2.c
157 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve2_vert_dspr2.c
158 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_avg_dspr2.c
159 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_avg_horiz_dspr2.c
160 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_dspr2.c
161 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_horiz_dspr2.c
162 DSP_SRCS-$(HAVE_DSPR2) += mips/convolve8_vert_dspr2.c
164 DSP_SRCS-$(HAVE_VSX) += ppc/vpx_convolve_vsx.c
167 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_avg_horiz_lsx.c
168 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_horiz_lsx.c
169 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_vert_lsx.c
170 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_lsx.c
171 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve8_avg_lsx.c
172 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve_avg_lsx.c
173 DSP_SRCS-$(HAVE_LSX) += loongarch/vpx_convolve_lsx.h
176 DSP_SRCS-yes += loopfilter.c
178 DSP_SRCS-$(HAVE_SSE2) += x86/loopfilter_sse2.c
179 DSP_SRCS-$(HAVE_AVX2) += x86/loopfilter_avx2.c
181 ifeq ($(HAVE_NEON_ASM),yes)
182 DSP_SRCS-yes += arm/loopfilter_16_neon$(ASM)
183 DSP_SRCS-yes += arm/loopfilter_8_neon$(ASM)
184 DSP_SRCS-yes += arm/loopfilter_4_neon$(ASM)
186 DSP_SRCS-$(HAVE_NEON) += arm/loopfilter_neon.c
187 endif # HAVE_NEON_ASM
189 DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_msa.h
190 DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_16_msa.c
191 DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_8_msa.c
192 DSP_SRCS-$(HAVE_MSA) += mips/loopfilter_4_msa.c
193 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_filters_dspr2.h
194 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_filters_dspr2.c
195 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_macros_dspr2.h
196 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_masks_dspr2.h
197 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_mb_dspr2.c
198 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_mb_horiz_dspr2.c
199 DSP_SRCS-$(HAVE_DSPR2) += mips/loopfilter_mb_vert_dspr2.c
201 DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_lsx.h
202 DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_16_lsx.c
203 DSP_SRCS-$(HAVE_LSX) += loongarch/loopfilter_8_lsx.c
205 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
206 DSP_SRCS-$(HAVE_NEON) += arm/highbd_loopfilter_neon.c
207 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_loopfilter_sse2.c
208 endif # CONFIG_VP9_HIGHBITDEPTH
211 DSP_SRCS-yes += txfm_common.h
212 DSP_SRCS-$(HAVE_SSE2) += x86/txfm_common_sse2.h
213 DSP_SRCS-$(HAVE_MSA) += mips/txfm_macros_msa.h
214 DSP_SRCS-$(HAVE_LSX) += loongarch/txfm_macros_lsx.h
216 ifeq ($(CONFIG_VP9_ENCODER),yes)
217 DSP_SRCS-yes += fwd_txfm.c
218 DSP_SRCS-yes += fwd_txfm.h
219 DSP_SRCS-$(HAVE_SSE2) += x86/fwd_txfm_sse2.h
220 DSP_SRCS-$(HAVE_SSE2) += x86/fwd_txfm_sse2.c
221 DSP_SRCS-$(HAVE_SSE2) += x86/fwd_txfm_impl_sse2.h
222 DSP_SRCS-$(HAVE_SSE2) += x86/fwd_dct32x32_impl_sse2.h
223 ifeq ($(VPX_ARCH_X86_64),yes)
224 DSP_SRCS-$(HAVE_SSSE3) += x86/fwd_txfm_ssse3_x86_64.asm
226 DSP_SRCS-$(HAVE_AVX2) += x86/fwd_txfm_avx2.c
227 DSP_SRCS-$(HAVE_AVX2) += x86/fwd_dct32x32_impl_avx2.h
228 DSP_SRCS-$(HAVE_NEON) += arm/fdct_neon.c
229 DSP_SRCS-$(HAVE_NEON) += arm/fdct16x16_neon.c
230 DSP_SRCS-$(HAVE_NEON) += arm/fdct32x32_neon.c
231 DSP_SRCS-$(HAVE_NEON) += arm/fdct_partial_neon.c
232 DSP_SRCS-$(HAVE_NEON) += arm/fwd_txfm_neon.c
233 DSP_SRCS-$(HAVE_MSA) += mips/fwd_txfm_msa.h
234 DSP_SRCS-$(HAVE_MSA) += mips/fwd_txfm_msa.c
235 DSP_SRCS-$(HAVE_LSX) += loongarch/fwd_txfm_lsx.h
237 ifneq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
238 DSP_SRCS-$(HAVE_MSA) += mips/fwd_dct32x32_msa.c
239 DSP_SRCS-$(HAVE_LSX) += loongarch/fwd_dct32x32_lsx.c
240 endif # !CONFIG_VP9_HIGHBITDEPTH
242 DSP_SRCS-$(HAVE_VSX) += ppc/fdct32x32_vsx.c
243 endif # CONFIG_VP9_ENCODER
246 ifeq ($(CONFIG_VP9),yes)
247 DSP_SRCS-yes += inv_txfm.h
248 DSP_SRCS-yes += inv_txfm.c
249 DSP_SRCS-$(HAVE_SSE2) += x86/inv_txfm_sse2.h
250 DSP_SRCS-$(HAVE_SSE2) += x86/inv_txfm_sse2.c
251 DSP_SRCS-$(HAVE_SSE2) += x86/inv_wht_sse2.asm
252 DSP_SRCS-$(HAVE_SSSE3) += x86/inv_txfm_ssse3.h
253 DSP_SRCS-$(HAVE_SSSE3) += x86/inv_txfm_ssse3.c
255 DSP_SRCS-$(HAVE_NEON_ASM) += arm/save_reg_neon$(ASM)
257 DSP_SRCS-$(HAVE_VSX) += ppc/inv_txfm_vsx.c
259 ifneq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
260 DSP_SRCS-$(HAVE_MSA) += mips/inv_txfm_msa.h
261 DSP_SRCS-$(HAVE_MSA) += mips/idct4x4_msa.c
262 DSP_SRCS-$(HAVE_MSA) += mips/idct8x8_msa.c
263 DSP_SRCS-$(HAVE_MSA) += mips/idct16x16_msa.c
264 DSP_SRCS-$(HAVE_MSA) += mips/idct32x32_msa.c
266 DSP_SRCS-$(HAVE_DSPR2) += mips/inv_txfm_dspr2.h
267 DSP_SRCS-$(HAVE_DSPR2) += mips/itrans4_dspr2.c
268 DSP_SRCS-$(HAVE_DSPR2) += mips/itrans8_dspr2.c
269 DSP_SRCS-$(HAVE_DSPR2) += mips/itrans16_dspr2.c
270 DSP_SRCS-$(HAVE_DSPR2) += mips/itrans32_dspr2.c
271 DSP_SRCS-$(HAVE_DSPR2) += mips/itrans32_cols_dspr2.c
273 DSP_SRCS-$(HAVE_LSX) += loongarch/idct32x32_lsx.c
274 else # CONFIG_VP9_HIGHBITDEPTH
275 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct4x4_add_neon.c
276 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct8x8_add_neon.c
277 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct16x16_add_neon.c
278 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_add_neon.c
279 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_34_add_neon.c
280 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_135_add_neon.c
281 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct32x32_1024_add_neon.c
282 DSP_SRCS-$(HAVE_NEON) += arm/highbd_idct_neon.h
283 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_inv_txfm_sse2.h
284 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct4x4_add_sse2.c
285 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct8x8_add_sse2.c
286 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct16x16_add_sse2.c
287 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_idct32x32_add_sse2.c
288 DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_inv_txfm_sse4.h
289 DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct4x4_add_sse4.c
290 DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct8x8_add_sse4.c
291 DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct16x16_add_sse4.c
292 DSP_SRCS-$(HAVE_SSE4_1) += x86/highbd_idct32x32_add_sse4.c
293 endif # !CONFIG_VP9_HIGHBITDEPTH
295 ifeq ($(HAVE_NEON_ASM),yes)
296 DSP_SRCS-yes += arm/idct_neon$(ASM)
297 DSP_SRCS-yes += arm/idct4x4_1_add_neon$(ASM)
298 DSP_SRCS-yes += arm/idct4x4_add_neon$(ASM)
300 DSP_SRCS-$(HAVE_NEON) += arm/idct4x4_1_add_neon.c
301 DSP_SRCS-$(HAVE_NEON) += arm/idct4x4_add_neon.c
302 endif # HAVE_NEON_ASM
303 DSP_SRCS-$(HAVE_NEON) += arm/idct_neon.h
304 DSP_SRCS-$(HAVE_NEON) += arm/idct8x8_1_add_neon.c
305 DSP_SRCS-$(HAVE_NEON) += arm/idct8x8_add_neon.c
306 DSP_SRCS-$(HAVE_NEON) += arm/idct16x16_1_add_neon.c
307 DSP_SRCS-$(HAVE_NEON) += arm/idct16x16_add_neon.c
308 DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_1_add_neon.c
309 DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_34_add_neon.c
310 DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_135_add_neon.c
311 DSP_SRCS-$(HAVE_NEON) += arm/idct32x32_add_neon.c
316 ifeq ($(CONFIG_VP9_ENCODER),yes)
317 DSP_SRCS-yes += quantize.c
318 DSP_SRCS-yes += quantize.h
320 DSP_SRCS-$(HAVE_SSE2) += x86/quantize_sse2.c
321 DSP_SRCS-$(HAVE_SSE2) += x86/quantize_sse2.h
322 DSP_SRCS-$(HAVE_SSSE3) += x86/quantize_ssse3.c
323 DSP_SRCS-$(HAVE_SSSE3) += x86/quantize_ssse3.h
324 DSP_SRCS-$(HAVE_AVX) += x86/quantize_avx.c
325 DSP_SRCS-$(HAVE_NEON) += arm/quantize_neon.c
326 DSP_SRCS-$(HAVE_VSX) += ppc/quantize_vsx.c
327 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
328 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_quantize_intrin_sse2.c
332 DSP_SRCS-yes += avg.c
333 DSP_SRCS-$(HAVE_SSE2) += x86/avg_intrin_sse2.c
334 DSP_SRCS-$(HAVE_AVX2) += x86/avg_intrin_avx2.c
335 DSP_SRCS-$(HAVE_NEON) += arm/avg_neon.c
336 DSP_SRCS-$(HAVE_NEON) += arm/hadamard_neon.c
337 DSP_SRCS-$(HAVE_MSA) += mips/avg_msa.c
338 ifeq ($(VPX_ARCH_X86_64),yes)
339 DSP_SRCS-$(HAVE_SSSE3) += x86/avg_ssse3_x86_64.asm
341 DSP_SRCS-$(HAVE_VSX) += ppc/hadamard_vsx.c
343 endif # CONFIG_VP9_ENCODER
346 DSP_SRCS-yes += skin_detection.h
347 DSP_SRCS-yes += skin_detection.c
349 ifeq ($(CONFIG_ENCODERS),yes)
350 DSP_SRCS-yes += sad.c
351 DSP_SRCS-yes += subtract.c
352 DSP_SRCS-yes += sum_squares.c
353 DSP_SRCS-$(HAVE_NEON) += arm/sum_squares_neon.c
354 DSP_SRCS-$(HAVE_SSE2) += x86/sum_squares_sse2.c
355 DSP_SRCS-$(HAVE_MSA) += mips/sum_squares_msa.c
357 DSP_SRCS-$(HAVE_NEON) += arm/sad4d_neon.c
358 DSP_SRCS-$(HAVE_NEON) += arm/sad_neon.c
359 DSP_SRCS-$(HAVE_NEON) += arm/subtract_neon.c
361 DSP_SRCS-$(HAVE_MSA) += mips/sad_msa.c
362 DSP_SRCS-$(HAVE_MSA) += mips/subtract_msa.c
364 DSP_SRCS-$(HAVE_LSX) += loongarch/sad_lsx.c
366 DSP_SRCS-$(HAVE_MMI) += mips/sad_mmi.c
367 DSP_SRCS-$(HAVE_MMI) += mips/subtract_mmi.c
369 DSP_SRCS-$(HAVE_AVX2) += x86/sad4d_avx2.c
370 DSP_SRCS-$(HAVE_AVX2) += x86/sad_avx2.c
371 DSP_SRCS-$(HAVE_AVX512) += x86/sad4d_avx512.c
373 DSP_SRCS-$(HAVE_SSE2) += x86/sad4d_sse2.asm
374 DSP_SRCS-$(HAVE_SSE2) += x86/sad_sse2.asm
375 DSP_SRCS-$(HAVE_SSE2) += x86/subtract_sse2.asm
377 DSP_SRCS-$(HAVE_VSX) += ppc/sad_vsx.c
378 DSP_SRCS-$(HAVE_VSX) += ppc/subtract_vsx.c
380 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
381 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_sad4d_sse2.asm
382 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_sad_sse2.asm
383 endif # CONFIG_VP9_HIGHBITDEPTH
385 endif # CONFIG_ENCODERS
387 ifneq ($(filter yes,$(CONFIG_ENCODERS) $(CONFIG_POSTPROC) $(CONFIG_VP9_POSTPROC)),)
388 DSP_SRCS-yes += variance.c
389 DSP_SRCS-yes += variance.h
391 DSP_SRCS-$(HAVE_NEON) += arm/avg_pred_neon.c
392 DSP_SRCS-$(HAVE_NEON) += arm/subpel_variance_neon.c
393 DSP_SRCS-$(HAVE_NEON) += arm/variance_neon.c
395 DSP_SRCS-$(HAVE_MSA) += mips/variance_msa.c
396 DSP_SRCS-$(HAVE_MSA) += mips/sub_pixel_variance_msa.c
398 DSP_SRCS-$(HAVE_LSX) += loongarch/variance_lsx.c
400 DSP_SRCS-$(HAVE_MMI) += mips/variance_mmi.c
402 DSP_SRCS-$(HAVE_SSE2) += x86/avg_pred_sse2.c
403 DSP_SRCS-$(HAVE_SSE2) += x86/variance_sse2.c # Contains SSE2 and SSSE3
404 DSP_SRCS-$(HAVE_AVX2) += x86/variance_avx2.c
405 DSP_SRCS-$(HAVE_VSX) += ppc/variance_vsx.c
407 ifeq ($(VPX_ARCH_X86_64),yes)
408 DSP_SRCS-$(HAVE_SSE2) += x86/ssim_opt_x86_64.asm
409 endif # VPX_ARCH_X86_64
411 DSP_SRCS-$(HAVE_SSE2) += x86/subpel_variance_sse2.asm # Contains SSE2 and SSSE3
413 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
414 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_variance_sse2.c
415 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_variance_impl_sse2.asm
416 DSP_SRCS-$(HAVE_SSE2) += x86/highbd_subpel_variance_impl_sse2.asm
417 endif # CONFIG_VP9_HIGHBITDEPTH
418 endif # CONFIG_ENCODERS || CONFIG_POSTPROC || CONFIG_VP9_POSTPROC
421 DSP_SRCS-$(HAVE_NEON) += arm/mem_neon.h
422 DSP_SRCS-$(HAVE_NEON) += arm/sum_neon.h
423 DSP_SRCS-$(HAVE_NEON) += arm/transpose_neon.h
424 DSP_SRCS-$(HAVE_NEON) += arm/vpx_convolve8_neon.h
427 DSP_SRCS-$(HAVE_VSX) += ppc/types_vsx.h
428 DSP_SRCS-$(HAVE_VSX) += ppc/txfm_common_vsx.h
429 DSP_SRCS-$(HAVE_VSX) += ppc/transpose_vsx.h
430 DSP_SRCS-$(HAVE_VSX) += ppc/bitdepth_conversion_vsx.h
433 DSP_SRCS-$(HAVE_SSE2) += x86/mem_sse2.h
434 DSP_SRCS-$(HAVE_SSE2) += x86/transpose_sse2.h
436 DSP_SRCS-no += $(DSP_SRCS_REMOVE-yes)
438 DSP_SRCS-yes += vpx_dsp_rtcd.c
439 DSP_SRCS-yes += vpx_dsp_rtcd_defs.pl
441 $(eval $(call rtcd_h_template,vpx_dsp_rtcd,vpx_dsp/vpx_dsp_rtcd_defs.pl))