1# 2# Copyright (c) 2017, Alliance for Open Media. All rights reserved 3# 4# This source code is subject to the terms of the BSD 2 Clause License and the 5# Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was 6# not distributed with this source code in the LICENSE file, you can obtain it 7# at www.aomedia.org/license/software. If the Alliance for Open Media Patent 8# License 1.0 was not distributed with this source code in the PATENTS file, you 9# can obtain it at www.aomedia.org/license/patent. 10# 11if(AOM_AOM_DSP_AOM_DSP_CMAKE_) 12 return() 13endif() # AOM_AOM_DSP_AOM_DSP_CMAKE_ 14set(AOM_AOM_DSP_AOM_DSP_CMAKE_ 1) 15 16list(APPEND AOM_DSP_COMMON_SOURCES 17 "${AOM_ROOT}/aom_dsp/aom_convolve.c" 18 "${AOM_ROOT}/aom_dsp/aom_dsp_common.h" 19 "${AOM_ROOT}/aom_dsp/aom_filter.h" 20 "${AOM_ROOT}/aom_dsp/aom_simd.h" 21 "${AOM_ROOT}/aom_dsp/aom_simd_inline.h" 22 "${AOM_ROOT}/aom_dsp/bitreader_buffer.c" 23 "${AOM_ROOT}/aom_dsp/bitreader_buffer.h" 24 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.c" 25 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.h" 26 "${AOM_ROOT}/aom_dsp/blend.h" 27 "${AOM_ROOT}/aom_dsp/blend_a64_hmask.c" 28 "${AOM_ROOT}/aom_dsp/blend_a64_mask.c" 29 "${AOM_ROOT}/aom_dsp/blend_a64_vmask.c" 30 "${AOM_ROOT}/aom_dsp/entcode.c" 31 "${AOM_ROOT}/aom_dsp/entcode.h" 32 "${AOM_ROOT}/aom_dsp/fft.c" 33 "${AOM_ROOT}/aom_dsp/fft_common.h" 34 "${AOM_ROOT}/aom_dsp/grain_params.h" 35 "${AOM_ROOT}/aom_dsp/intrapred.c" 36 "${AOM_ROOT}/aom_dsp/intrapred_common.h" 37 "${AOM_ROOT}/aom_dsp/loopfilter.c" 38 "${AOM_ROOT}/aom_dsp/odintrin.c" 39 "${AOM_ROOT}/aom_dsp/odintrin.h" 40 "${AOM_ROOT}/aom_dsp/prob.h" 41 "${AOM_ROOT}/aom_dsp/recenter.h" 42 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics.h" 43 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics_c.h" 44 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics.h" 45 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics_c.h" 46 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics.h" 47 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics_c.h" 48 "${AOM_ROOT}/aom_dsp/subtract.c" 49 "${AOM_ROOT}/aom_dsp/txfm_common.h" 50 "${AOM_ROOT}/aom_dsp/x86/convolve_common_intrin.h") 51 52list(APPEND AOM_DSP_COMMON_ASM_SSE2 53 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm" 54 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm" 55 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_asm_sse2.asm" 56 "${AOM_ROOT}/aom_dsp/x86/intrapred_asm_sse2.asm" 57 "${AOM_ROOT}/aom_dsp/x86/inv_wht_sse2.asm") 58 59list(APPEND AOM_DSP_COMMON_INTRIN_SSE2 60 "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.c" 61 "${AOM_ROOT}/aom_dsp/x86/aom_asm_stubs.c" 62 "${AOM_ROOT}/aom_dsp/x86/convolve.h" 63 "${AOM_ROOT}/aom_dsp/x86/convolve_sse2.h" 64 "${AOM_ROOT}/aom_dsp/x86/fft_sse2.c" 65 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.c" 66 "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.c" 67 "${AOM_ROOT}/aom_dsp/x86/intrapred_x86.h" 68 "${AOM_ROOT}/aom_dsp/x86/loopfilter_sse2.c" 69 "${AOM_ROOT}/aom_dsp/x86/lpf_common_sse2.h" 70 "${AOM_ROOT}/aom_dsp/x86/mem_sse2.h" 71 "${AOM_ROOT}/aom_dsp/x86/transpose_sse2.h" 72 "${AOM_ROOT}/aom_dsp/x86/txfm_common_sse2.h" 73 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.h" 74 "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_sse2.h") 75 76list(APPEND AOM_DSP_COMMON_ASM_SSSE3 77 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_ssse3.asm" 78 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_ssse3.asm") 79 80list(APPEND AOM_DSP_COMMON_INTRIN_SSSE3 81 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_ssse3.c" 82 "${AOM_ROOT}/aom_dsp/x86/convolve_ssse3.h" 83 "${AOM_ROOT}/aom_dsp/x86/intrapred_ssse3.c") 84 85list(APPEND AOM_DSP_COMMON_INTRIN_SSE4_1 86 "${AOM_ROOT}/aom_dsp/x86/blend_mask_sse4.h" 87 "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c" 88 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c" 89 "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c" 90 "${AOM_ROOT}/aom_dsp/x86/intrapred_sse4.c" 91 "${AOM_ROOT}/aom_dsp/x86/intrapred_utils.h") 92 93list(APPEND AOM_DSP_COMMON_INTRIN_AVX2 94 "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_avx2.c" 95 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c" 96 "${AOM_ROOT}/aom_dsp/x86/common_avx2.h" 97 "${AOM_ROOT}/aom_dsp/x86/txfm_common_avx2.h" 98 "${AOM_ROOT}/aom_dsp/x86/convolve_avx2.h" 99 "${AOM_ROOT}/aom_dsp/x86/fft_avx2.c" 100 "${AOM_ROOT}/aom_dsp/x86/intrapred_avx2.c" 101 "${AOM_ROOT}/aom_dsp/x86/loopfilter_avx2.c" 102 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_avx2.c" 103 "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_avx2.h" 104 "${AOM_ROOT}/third_party/SVT-AV1/convolve_2d_avx2.h" 105 "${AOM_ROOT}/third_party/SVT-AV1/convolve_avx2.h" 106 "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_AVX2.h" 107 "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_SSE4_1.h" 108 "${AOM_ROOT}/third_party/SVT-AV1/synonyms.h") 109 110list(APPEND AOM_DSP_COMMON_INTRIN_NEON 111 "${AOM_ROOT}/aom_dsp/arm/aom_convolve_copy_neon.c" 112 "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon.c" 113 "${AOM_ROOT}/aom_dsp/arm/fwd_txfm_neon.c" 114 "${AOM_ROOT}/aom_dsp/arm/loopfilter_neon.c" 115 "${AOM_ROOT}/aom_dsp/arm/intrapred_neon.c" 116 "${AOM_ROOT}/aom_dsp/arm/subtract_neon.c" 117 "${AOM_ROOT}/aom_dsp/arm/blend_a64_mask_neon.c" 118 "${AOM_ROOT}/aom_dsp/arm/avg_pred_neon.c") 119 120list(APPEND AOM_DSP_COMMON_INTRIN_NEON_DOTPROD 121 "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon_dotprod.c") 122 123list(APPEND AOM_DSP_COMMON_INTRIN_NEON_I8MM 124 "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon_i8mm.c") 125 126if(CONFIG_AV1_HIGHBITDEPTH) 127 list(APPEND AOM_DSP_COMMON_INTRIN_SSE2 128 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_sse2.c" 129 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c") 130 131 list(APPEND AOM_DSP_COMMON_INTRIN_SSSE3 132 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_ssse3.c") 133 134 list(APPEND AOM_DSP_COMMON_INTRIN_AVX2 135 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_avx2.c" 136 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_avx2.c") 137 138 list(APPEND AOM_DSP_COMMON_INTRIN_NEON 139 "${AOM_ROOT}/aom_dsp/arm/highbd_blend_a64_hmask_neon.c" 140 "${AOM_ROOT}/aom_dsp/arm/highbd_blend_a64_mask_neon.c" 141 "${AOM_ROOT}/aom_dsp/arm/highbd_blend_a64_vmask_neon.c" 142 "${AOM_ROOT}/aom_dsp/arm/highbd_convolve8_neon.c" 143 "${AOM_ROOT}/aom_dsp/arm/highbd_intrapred_neon.c" 144 "${AOM_ROOT}/aom_dsp/arm/highbd_loopfilter_neon.c") 145 146 list(APPEND AOM_DSP_COMMON_INTRIN_SVE 147 "${AOM_ROOT}/aom_dsp/arm/highbd_convolve8_sve.c") 148endif() 149 150if(CONFIG_AV1_DECODER) 151 list(APPEND AOM_DSP_DECODER_SOURCES 152 "${AOM_ROOT}/aom_dsp/binary_codes_reader.c" 153 "${AOM_ROOT}/aom_dsp/binary_codes_reader.h" 154 "${AOM_ROOT}/aom_dsp/bitreader.c" 155 "${AOM_ROOT}/aom_dsp/bitreader.h" "${AOM_ROOT}/aom_dsp/entdec.c" 156 "${AOM_ROOT}/aom_dsp/entdec.h") 157endif() 158 159if(CONFIG_AV1_ENCODER) 160 list(APPEND AOM_DSP_ENCODER_SOURCES 161 "${AOM_ROOT}/aom_dsp/avg.c" 162 "${AOM_ROOT}/aom_dsp/binary_codes_writer.c" 163 "${AOM_ROOT}/aom_dsp/binary_codes_writer.h" 164 "${AOM_ROOT}/aom_dsp/bitwriter.c" 165 "${AOM_ROOT}/aom_dsp/bitwriter.h" 166 "${AOM_ROOT}/aom_dsp/blk_sse_sum.c" 167 "${AOM_ROOT}/aom_dsp/entenc.c" 168 "${AOM_ROOT}/aom_dsp/entenc.h" 169 "${AOM_ROOT}/aom_dsp/fwd_txfm.c" 170 "${AOM_ROOT}/aom_dsp/grain_table.c" 171 "${AOM_ROOT}/aom_dsp/grain_table.h" 172 "${AOM_ROOT}/aom_dsp/noise_model.c" 173 "${AOM_ROOT}/aom_dsp/noise_model.h" 174 "${AOM_ROOT}/aom_dsp/noise_util.c" 175 "${AOM_ROOT}/aom_dsp/noise_util.h" 176 "${AOM_ROOT}/aom_dsp/psnr.c" 177 "${AOM_ROOT}/aom_dsp/psnr.h" 178 "${AOM_ROOT}/aom_dsp/quantize.c" 179 "${AOM_ROOT}/aom_dsp/quantize.h" 180 "${AOM_ROOT}/aom_dsp/sad.c" 181 "${AOM_ROOT}/aom_dsp/sad_av1.c" 182 "${AOM_ROOT}/aom_dsp/sse.c" 183 "${AOM_ROOT}/aom_dsp/ssim.c" 184 "${AOM_ROOT}/aom_dsp/ssim.h" 185 "${AOM_ROOT}/aom_dsp/sum_squares.c" 186 "${AOM_ROOT}/aom_dsp/variance.c" 187 "${AOM_ROOT}/aom_dsp/variance.h") 188 189 # Flow estimation library 190 if(NOT CONFIG_REALTIME_ONLY) 191 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/pyramid.c" 192 "${AOM_ROOT}/aom_dsp/flow_estimation/corner_detect.c" 193 "${AOM_ROOT}/aom_dsp/flow_estimation/corner_match.c" 194 "${AOM_ROOT}/aom_dsp/flow_estimation/disflow.c" 195 "${AOM_ROOT}/aom_dsp/flow_estimation/flow_estimation.c" 196 "${AOM_ROOT}/aom_dsp/flow_estimation/ransac.c") 197 198 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1 199 "${AOM_ROOT}/aom_dsp/flow_estimation/x86/corner_match_sse4.c" 200 "${AOM_ROOT}/aom_dsp/flow_estimation/x86/disflow_sse4.c") 201 202 list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2 203 "${AOM_ROOT}/aom_dsp/flow_estimation/x86/corner_match_avx2.c" 204 "${AOM_ROOT}/aom_dsp/flow_estimation/x86/disflow_avx2.c") 205 206 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON 207 "${AOM_ROOT}/aom_dsp/flow_estimation/arm/disflow_neon.c") 208 endif() 209 210 list(APPEND AOM_DSP_ENCODER_ASM_SSE2 "${AOM_ROOT}/aom_dsp/x86/sad4d_sse2.asm" 211 "${AOM_ROOT}/aom_dsp/x86/sad_sse2.asm" 212 "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm") 213 214 list(APPEND AOM_DSP_ENCODER_ASM_SSE2_X86_64 215 "${AOM_ROOT}/aom_dsp/x86/ssim_sse2_x86_64.asm") 216 217 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE2 218 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c" 219 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_impl_sse2.h" 220 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c" 221 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h" 222 "${AOM_ROOT}/aom_dsp/x86/quantize_sse2.c" 223 "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_sse2.c" 224 "${AOM_ROOT}/aom_dsp/x86/quantize_x86.h" 225 "${AOM_ROOT}/aom_dsp/x86/blk_sse_sum_sse2.c" 226 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c" 227 "${AOM_ROOT}/aom_dsp/x86/variance_sse2.c" 228 "${AOM_ROOT}/aom_dsp/x86/jnt_sad_sse2.c") 229 230 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3 231 "${AOM_ROOT}/aom_dsp/x86/subpel_variance_ssse3.asm") 232 233 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3_X86_64 234 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_ssse3_x86_64.asm" 235 "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3_x86_64.asm") 236 237 list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2 238 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_avx2.c" 239 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_avx2.c" 240 "${AOM_ROOT}/aom_dsp/x86/subtract_avx2.c" 241 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_avx2.c" 242 "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_avx2.c" 243 "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_avx2.c" 244 "${AOM_ROOT}/aom_dsp/x86/quantize_avx2.c" 245 "${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c" 246 "${AOM_ROOT}/aom_dsp/x86/sad_avx2.c" 247 "${AOM_ROOT}/aom_dsp/x86/highbd_sad_avx2.c" 248 "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c" 249 "${AOM_ROOT}/aom_dsp/x86/variance_avx2.c" 250 "${AOM_ROOT}/aom_dsp/x86/sse_avx2.c" 251 "${AOM_ROOT}/aom_dsp/x86/variance_impl_avx2.c" 252 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_avx2.c" 253 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_avx2.c" 254 "${AOM_ROOT}/aom_dsp/x86/blk_sse_sum_avx2.c" 255 "${AOM_ROOT}/aom_dsp/x86/sum_squares_avx2.c") 256 257 list(APPEND AOM_DSP_ENCODER_INTRIN_AVX 258 "${AOM_ROOT}/aom_dsp/x86/aom_quantize_avx.c") 259 260 list(APPEND AOM_DSP_ENCODER_INTRIN_SSSE3 261 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.h" 262 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c" 263 "${AOM_ROOT}/aom_dsp/x86/masked_sad4d_ssse3.c" 264 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.h" 265 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c" 266 "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3.c" 267 "${AOM_ROOT}/aom_dsp/x86/variance_impl_ssse3.c" 268 "${AOM_ROOT}/aom_dsp/x86/jnt_variance_ssse3.c") 269 270 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1 271 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse4.c" 272 "${AOM_ROOT}/aom_dsp/x86/sse_sse4.c" 273 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c" 274 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c") 275 276 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON 277 "${AOM_ROOT}/aom_dsp/arm/sadxd_neon.c" 278 "${AOM_ROOT}/aom_dsp/arm/sad_neon.c" 279 "${AOM_ROOT}/aom_dsp/arm/masked_sad_neon.c" 280 "${AOM_ROOT}/aom_dsp/arm/masked_sad4d_neon.c" 281 "${AOM_ROOT}/aom_dsp/arm/subpel_variance_neon.c" 282 "${AOM_ROOT}/aom_dsp/arm/variance_neon.c" 283 "${AOM_ROOT}/aom_dsp/arm/hadamard_neon.c" 284 "${AOM_ROOT}/aom_dsp/arm/avg_neon.c" 285 "${AOM_ROOT}/aom_dsp/arm/obmc_variance_neon.c" 286 "${AOM_ROOT}/aom_dsp/arm/obmc_sad_neon.c" 287 "${AOM_ROOT}/aom_dsp/arm/sse_neon.c" 288 "${AOM_ROOT}/aom_dsp/arm/sum_squares_neon.c" 289 "${AOM_ROOT}/aom_dsp/arm/blk_sse_sum_neon.c") 290 291 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON_DOTPROD 292 "${AOM_ROOT}/aom_dsp/arm/sad_neon_dotprod.c" 293 "${AOM_ROOT}/aom_dsp/arm/sadxd_neon_dotprod.c" 294 "${AOM_ROOT}/aom_dsp/arm/sse_neon_dotprod.c" 295 "${AOM_ROOT}/aom_dsp/arm/sum_squares_neon_dotprod.c" 296 "${AOM_ROOT}/aom_dsp/arm/variance_neon_dotprod.c") 297 298 list(APPEND AOM_DSP_ENCODER_INTRIN_SVE "${AOM_ROOT}/aom_dsp/arm/avg_sve.c" 299 "${AOM_ROOT}/aom_dsp/arm/blk_sse_sum_sve.c" 300 "${AOM_ROOT}/aom_dsp/arm/sum_squares_sve.c") 301 302 if(CONFIG_AV1_HIGHBITDEPTH) 303 list(APPEND AOM_DSP_ENCODER_ASM_SSE2 304 "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm" 305 "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm" 306 "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm" 307 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm") 308 309 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE2 310 "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_sse2.c" 311 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c" 312 "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c" 313 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c") 314 315 list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2 316 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_avx2.c") 317 318 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1 319 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c") 320 321 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON 322 "${AOM_ROOT}/aom_dsp/arm/highbd_avg_neon.c" 323 "${AOM_ROOT}/aom_dsp/arm/highbd_avg_pred_neon.c" 324 "${AOM_ROOT}/aom_dsp/arm/highbd_hadamard_neon.c" 325 "${AOM_ROOT}/aom_dsp/arm/highbd_masked_sad_neon.c" 326 "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_sad_neon.c" 327 "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_variance_neon.c" 328 "${AOM_ROOT}/aom_dsp/arm/highbd_quantize_neon.c" 329 "${AOM_ROOT}/aom_dsp/arm/highbd_sad_neon.c" 330 "${AOM_ROOT}/aom_dsp/arm/highbd_sadxd_neon.c" 331 "${AOM_ROOT}/aom_dsp/arm/highbd_sse_neon.c" 332 "${AOM_ROOT}/aom_dsp/arm/highbd_subpel_variance_neon.c" 333 "${AOM_ROOT}/aom_dsp/arm/highbd_variance_neon.c") 334 335 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON_DOTPROD 336 "${AOM_ROOT}/aom_dsp/arm/highbd_variance_neon_dotprod.c") 337 338 list(APPEND AOM_DSP_ENCODER_INTRIN_SVE 339 "${AOM_ROOT}/aom_dsp/arm/highbd_sse_sve.c" 340 "${AOM_ROOT}/aom_dsp/arm/highbd_variance_sve.c") 341 endif() 342 343 if(CONFIG_INTERNAL_STATS) 344 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/fastssim.c" 345 "${AOM_ROOT}/aom_dsp/psnrhvs.c") 346 endif() 347 348 if(CONFIG_TUNE_VMAF) 349 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/vmaf.c" 350 "${AOM_ROOT}/aom_dsp/vmaf.h") 351 endif() 352 353 if(CONFIG_TUNE_BUTTERAUGLI) 354 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/butteraugli.c" 355 "${AOM_ROOT}/aom_dsp/butteraugli.h") 356 endif() 357 358 if(CONFIG_REALTIME_ONLY) 359 list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_AVX2 360 "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_avx2.c" 361 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_avx2.c" 362 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_avx2.c") 363 364 list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_SSE4_1 365 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c" 366 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c") 367 368 list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_SSE2 369 "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_sse2.c") 370 371 list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_NEON 372 "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_variance_neon.c" 373 "${AOM_ROOT}/aom_dsp/arm/obmc_variance_neon.c") 374 endif() 375endif() 376 377# Creates aom_dsp build targets. Must not be called until after libaom target 378# has been created. 379function(setup_aom_dsp_targets) 380 add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES}) 381 list(APPEND AOM_LIB_TARGETS aom_dsp_common) 382 create_no_op_source_file("aom_av1" "c" "no_op_source_file") 383 add_library(aom_dsp OBJECT "${no_op_source_file}") 384 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_common>) 385 if(BUILD_SHARED_LIBS) 386 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_common>) 387 endif() 388 list(APPEND AOM_LIB_TARGETS aom_dsp) 389 390 # Not all generators support libraries consisting only of object files. Add a 391 # source file to the aom_dsp target. 392 add_no_op_source_file_to_target("aom_dsp" "c") 393 394 if(CONFIG_AV1_DECODER) 395 add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES}) 396 list(APPEND AOM_LIB_TARGETS aom_dsp_decoder) 397 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>) 398 if(BUILD_SHARED_LIBS) 399 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>) 400 endif() 401 endif() 402 403 if(CONFIG_AV1_ENCODER) 404 add_library(aom_dsp_encoder OBJECT ${AOM_DSP_ENCODER_SOURCES}) 405 list(APPEND AOM_LIB_TARGETS aom_dsp_encoder) 406 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>) 407 if(BUILD_SHARED_LIBS) 408 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>) 409 endif() 410 if(CONFIG_TUNE_VMAF) 411 target_include_directories(aom_dsp_encoder PRIVATE ${VMAF_INCLUDE_DIRS}) 412 endif() 413 endif() 414 415 if(HAVE_SSE2) 416 add_asm_library("aom_dsp_common_sse2" "AOM_DSP_COMMON_ASM_SSE2") 417 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_common" 418 "AOM_DSP_COMMON_INTRIN_SSE2") 419 420 if(CONFIG_AV1_ENCODER) 421 if("${AOM_TARGET_CPU}" STREQUAL "x86_64") 422 list(APPEND AOM_DSP_ENCODER_ASM_SSE2 ${AOM_DSP_ENCODER_ASM_SSE2_X86_64}) 423 endif() 424 add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2") 425 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_encoder" 426 "AOM_DSP_ENCODER_INTRIN_SSE2") 427 endif() 428 endif() 429 430 if(HAVE_SSSE3) 431 add_asm_library("aom_dsp_common_ssse3" "AOM_DSP_COMMON_ASM_SSSE3") 432 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_common" 433 "AOM_DSP_COMMON_INTRIN_SSSE3") 434 435 if(CONFIG_AV1_ENCODER) 436 if("${AOM_TARGET_CPU}" STREQUAL "x86_64") 437 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3 438 ${AOM_DSP_ENCODER_ASM_SSSE3_X86_64}) 439 endif() 440 add_asm_library("aom_dsp_encoder_ssse3" "AOM_DSP_ENCODER_ASM_SSSE3") 441 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_encoder" 442 "AOM_DSP_ENCODER_INTRIN_SSSE3") 443 endif() 444 endif() 445 446 if(HAVE_SSE4_1) 447 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_common" 448 "AOM_DSP_COMMON_INTRIN_SSE4_1") 449 if(CONFIG_AV1_ENCODER) 450 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_encoder" 451 "AOM_DSP_ENCODER_INTRIN_SSE4_1") 452 endif() 453 endif() 454 455 if(HAVE_AVX) 456 if(CONFIG_AV1_ENCODER) 457 add_intrinsics_object_library("-mavx" "avx" "aom_dsp_encoder" 458 "AOM_DSP_ENCODER_INTRIN_AVX") 459 endif() 460 endif() 461 462 if(HAVE_AVX2) 463 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_common" 464 "AOM_DSP_COMMON_INTRIN_AVX2") 465 if(CONFIG_AV1_ENCODER) 466 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_encoder" 467 "AOM_DSP_ENCODER_INTRIN_AVX2") 468 endif() 469 endif() 470 471 if(HAVE_NEON) 472 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon" 473 "aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON") 474 if(CONFIG_AV1_ENCODER) 475 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon" 476 "aom_dsp_encoder" 477 "AOM_DSP_ENCODER_INTRIN_NEON") 478 endif() 479 endif() 480 481 if(HAVE_NEON_DOTPROD) 482 add_intrinsics_object_library("${AOM_NEON_DOTPROD_FLAG}" "neon_dotprod" 483 "aom_dsp_common" 484 "AOM_DSP_COMMON_INTRIN_NEON_DOTPROD") 485 if(CONFIG_AV1_ENCODER) 486 add_intrinsics_object_library("${AOM_NEON_DOTPROD_FLAG}" "neon_dotprod" 487 "aom_dsp_encoder" 488 "AOM_DSP_ENCODER_INTRIN_NEON_DOTPROD") 489 endif() 490 endif() 491 492 if(HAVE_NEON_I8MM) 493 add_intrinsics_object_library("${AOM_NEON_I8MM_FLAG}" "neon_i8mm" 494 "aom_dsp_common" 495 "AOM_DSP_COMMON_INTRIN_NEON_I8MM") 496 endif() 497 498 if(HAVE_SVE) 499 add_intrinsics_object_library("${AOM_SVE_FLAG}" "sve" "aom_dsp_common" 500 "AOM_DSP_COMMON_INTRIN_SVE") 501 if(CONFIG_AV1_ENCODER) 502 add_intrinsics_object_library("${AOM_SVE_FLAG}" "sve" "aom_dsp_encoder" 503 "AOM_DSP_ENCODER_INTRIN_SVE") 504 endif() 505 endif() 506 507 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp>) 508 if(BUILD_SHARED_LIBS) 509 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp>) 510 endif() 511 512 # Pass the new lib targets up to the parent scope instance of 513 # $AOM_LIB_TARGETS. 514 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE) 515endfunction() 516