Add high bit depth support to the cmake build. BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76 Change-Id: Ibb5564989bd02cf3fec7b8e1d61d2dee1a96c42d
diff --git a/CMakeLists.txt b/CMakeLists.txt index a5adb8f..ab2c8e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -370,14 +370,6 @@ set(AOM_PORTS_ASM_MMX "${AOM_ROOT}/aom_ports/emms.asm") set(AOM_DSP_ASM_SSE2 - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.asm" - #"${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm" - #"${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm" - #"${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm" - #"${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm" - #"${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm" - #"${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm" "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.asm" "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_sse2.asm" "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_sse2.asm" @@ -390,11 +382,6 @@ "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm") set(AOM_DSP_INTRIN_SSE2 - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c" - #"${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c" - #"${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c" - #"${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c" "${AOM_ROOT}/aom_dsp/x86/aom_asm_stubs.c" "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c" "${AOM_ROOT}/aom_dsp/x86/fwd_dct32_8cols_sse2.c" @@ -433,8 +420,6 @@ set(AOM_DSP_ASM_SSE4_1 "${AOM_ROOT}/aom_dsp/x86/sad_sse4.asm") set(AOM_DSP_INTRIN_SSE4_1 - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c" "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c" "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c" "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c" @@ -442,8 +427,6 @@ "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c") set(AOM_DSP_AVX_ASM "${AOM_ROOT}/aom_dsp/x86/quantize_avx_x86_64.asm") set(AOM_DSP_AVX2_INTRIN - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/aom_dsp/x86/sad_highbd_avx2.c" "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c" "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_avx2.c" "${AOM_ROOT}/aom_dsp/x86/loopfilter_avx2.c" @@ -468,20 +451,14 @@ set(AOM_AV1_COMMON_SSE4_1_INTRIN # Requires CONFIG_CLPF #"${AOM_ROOT}/av1/common/clpf_sse4.c" - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c" # Requires CONFIG_FILTER_INTRA #"${AOM_ROOT}/av1/common/x86/filterintra_sse4.c" - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c" # Requires CONFIG_DERING #"${AOM_ROOT}/av1/common/x86/od_dering_sse4.c" "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm1d_sse4.c" "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c") set(AOM_AV1_COMMON_AVX2_INTRIN - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c" "${AOM_ROOT}/av1/common/x86/hybrid_inv_txfm_avx2.c") set(AOM_AV1_ENCODER_SSE2_ASM @@ -505,14 +482,9 @@ #"${AOM_ROOT}/av1/encoder/clpf_rdo_ssse3.c" "${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c") -#set(AOM_SSE4_1_INTRIN +#set(AOM_AV1_ENCODER_SSE4_1_INTRIN # Requires CONFIG_CLPF - #"${AOM_ROOT}/av1/encoder/clpf_rdo_sse4.c" - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c" - # Requires CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c") - + #"${AOM_ROOT}/av1/encoder/clpf_rdo_sse4.c") set(AOM_AV1_ENCODER_AVX2_INTRIN "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c" "${AOM_ROOT}/av1/encoder/x86/hybrid_fwd_txfm_avx2.c") @@ -551,13 +523,9 @@ "${AOM_ROOT}/test/av1_fht8x8_test.cc" "${AOM_ROOT}/test/av1_fwd_txfm1d_test.cc" "${AOM_ROOT}/test/av1_fwd_txfm2d_test.cc" - # requires CONFIG_AOM_HIGHBITDEPTH and HAVE_SSE4_1 - "${AOM_ROOT}/test/av1_highbd_iht_test.cc" "${AOM_ROOT}/test/av1_inv_txfm1d_test.cc" "${AOM_ROOT}/test/av1_inv_txfm2d_test.cc" "${AOM_ROOT}/test/av1_inv_txfm_test.cc" - # requires CONFIG_AOM_HIGHBITDEPTH and HAVE_SSE4_1 - #"${AOM_ROOT}/test/av1_quantize_test.cc" "${AOM_ROOT}/test/av1_txfm_test.cc" "${AOM_ROOT}/test/av1_txfm_test.h" # requires CONFIG_EXT_INTER @@ -596,8 +564,6 @@ "${AOM_ROOT}/test/frame_size_tests.cc" "${AOM_ROOT}/test/function_equivalence_test.h" "${AOM_ROOT}/test/hadamard_test.cc" - # requires CONFIG_INTERNAL_STATS and CONFIG_AOM_HIGHBITDEPTH - #"${AOM_ROOT}/test/hbd_metrics_test.cc" "${AOM_ROOT}/test/i420_video_source.h" "${AOM_ROOT}/test/idct8x8_test.cc" # omitted from tests.mk, includes non-existing file: aom_rtcd.h. @@ -647,6 +613,52 @@ set(AOM_UNIT_TEST_INTRIN_SSSE3 "${AOM_ROOT}/test/simd_cmp_ssse3.cc") set(AOM_UNIT_TEST_INTRIN_SSE4_1 "${AOM_ROOT}/test/simd_cmp_sse4.cc") +if (CONFIG_AOM_HIGHBITDEPTH) + set(AOM_DSP_ASM_SSE2 + ${AOM_DSP_ASM_SSE2} + "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.asm" + "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm" + "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm" + "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm" + "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm" + "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm" + "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm") + + set(AOM_DSP_INTRIN_SSE2 + ${AOM_DSP_INTRIN_SSE2} + "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c" + "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c" + "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c" + "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c") + + set(AOM_DSP_INTRIN_SSE4_1 + ${AOM_DSP_INTRIN_SSE4_1} + "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c") + + set(AOM_DSP_AVX2_INTRIN + ${AOM_DSP_AVX2_INTRIN} + "${AOM_ROOT}/aom_dsp/x86/sad_highbd_avx2.c") + + set(AOM_AV1_COMMON_SSE4_1_INTRIN + ${AOM_AV1_COMMON_SSE4_1_INTRIN} + "${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c" + "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c") + + set(AOM_AV1_COMMON_AVX2_INTRIN + ${AOM_AV1_COMMON_AVX2_INTRIN} + "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c") + + set(AOM_AV1_ENCODER_SSE4_1_INTRIN + ${AOM_AV1_ENCODER_SSE4_1_INTRIN} + "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c" + "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c") + + set(AOM_UNIT_TEST_INTRIN_SSE4_1 + ${AOM_UNIT_TEST_INTRIN_SSE4_1} + "${AOM_ROOT}/test/av1_highbd_iht_test.cc" + "${AOM_ROOT}/test/av1_quantize_test.cc") +endif () + set(AOM_GTEST_SOURCES "${AOM_ROOT}/third_party/googletest/src/src/gtest-all.cc" "${AOM_ROOT}/third_party/googletest/src/include/gtest/gtest.h") @@ -748,7 +760,12 @@ "AOM_DSP_INTRIN_SSE4_1") add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common" "AOM_AV1_COMMON_SSE4_1_INTRIN") + if (AOM_AV1_ENCODER_SSE4_1_INTRIN) + add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder" + "AOM_AV1_ENCODER_SSE4_1_INTRIN") + endif () endif () + if (HAVE_AVX) add_asm_build("aom_dsp" "AOM_DSP_AVX_ASM") endif ()
diff --git a/build/cmake/targets/generic.cmake b/build/cmake/targets/generic.cmake index e71bf18..6b7adb1 100644 --- a/build/cmake/targets/generic.cmake +++ b/build/cmake/targets/generic.cmake
@@ -28,3 +28,7 @@ set(RTCD_CONFIG_STATIC "yes") set(RTCD_CONFIG_OS_SUPPORT "yes") set(RTCD_CONFIG_TEMPORAL_DENOISING "yes") + +if (CONFIG_AOM_HIGHBITDEPTH) + set(RTCD_CONFIG_AOM_HIGHBITDEPTH "yes") +endif ()
diff --git a/build/cmake/targets/rtcd_templates/generic.rtcd.cmake b/build/cmake/targets/rtcd_templates/generic.rtcd.cmake index 2562976..099694a 100644 --- a/build/cmake/targets/rtcd_templates/generic.rtcd.cmake +++ b/build/cmake/targets/rtcd_templates/generic.rtcd.cmake
@@ -24,3 +24,4 @@ CONFIG_STATIC=${RTCD_CONFIG_STATIC} CONFIG_OS_SUPPORT=${RTCD_CONFIG_OS_SUPPORT} CONFIG_TEMPORAL_DENOISING=${RTCD_CONFIG_TEMPORAL_DENOISING} +CONFIG_AOM_HIGHBITDEPTH=${RTCD_CONFIG_AOM_HIGHBITDEPTH}
diff --git a/build/cmake/targets/rtcd_templates/x86_64.rtcd.cmake b/build/cmake/targets/rtcd_templates/x86_64.rtcd.cmake index 7665506..9cda3d4 100644 --- a/build/cmake/targets/rtcd_templates/x86_64.rtcd.cmake +++ b/build/cmake/targets/rtcd_templates/x86_64.rtcd.cmake
@@ -33,3 +33,4 @@ CONFIG_STATIC=${RTCD_CONFIG_STATIC} CONFIG_OS_SUPPORT=${RTCD_CONFIG_OS_SUPPORT} CONFIG_TEMPORAL_DENOISING=${RTCD_CONFIG_TEMPORAL_DENOISING} +CONFIG_AOM_HIGHBITDEPTH=${RTCD_CONFIG_AOM_HIGHBITDEPTH}
diff --git a/build/cmake/targets/x86_64.cmake b/build/cmake/targets/x86_64.cmake index cfffb4d..f688fa9 100644 --- a/build/cmake/targets/x86_64.cmake +++ b/build/cmake/targets/x86_64.cmake
@@ -49,3 +49,7 @@ set(RTCD_CONFIG_STATIC "yes") set(RTCD_CONFIG_OS_SUPPORT "yes") set(RTCD_CONFIG_TEMPORAL_DENOISING "yes") + +if (CONFIG_AOM_HIGHBITDEPTH) + set(RTCD_CONFIG_AOM_HIGHBITDEPTH "yes") +endif ()