diff options
Diffstat (limited to 'src/dsp/dsp.cc')
-rw-r--r-- | src/dsp/dsp.cc | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/src/dsp/dsp.cc b/src/dsp/dsp.cc index 5b54c4e..a3d7701 100644 --- a/src/dsp/dsp.cc +++ b/src/dsp/dsp.cc @@ -16,7 +16,6 @@ #include <mutex> // NOLINT (unapproved c++11 header) -#include "src/dsp/arm/weight_mask_neon.h" #include "src/dsp/average_blend.h" #include "src/dsp/cdef.h" #include "src/dsp/convolve.h" @@ -24,6 +23,10 @@ #include "src/dsp/film_grain.h" #include "src/dsp/intra_edge.h" #include "src/dsp/intrapred.h" +#include "src/dsp/intrapred_cfl.h" +#include "src/dsp/intrapred_directional.h" +#include "src/dsp/intrapred_filter.h" +#include "src/dsp/intrapred_smooth.h" #include "src/dsp/inverse_transform.h" #include "src/dsp/loop_filter.h" #include "src/dsp/loop_restoration.h" @@ -39,6 +42,30 @@ namespace libgav1 { namespace dsp_internal { +void DspInit_C() { + dsp::AverageBlendInit_C(); + dsp::CdefInit_C(); + dsp::ConvolveInit_C(); + dsp::DistanceWeightedBlendInit_C(); + dsp::FilmGrainInit_C(); + dsp::IntraEdgeInit_C(); + dsp::IntraPredCflInit_C(); + dsp::IntraPredDirectionalInit_C(); + dsp::IntraPredFilterInit_C(); + dsp::IntraPredInit_C(); + dsp::IntraPredSmoothInit_C(); + dsp::InverseTransformInit_C(); + dsp::LoopFilterInit_C(); + dsp::LoopRestorationInit_C(); + dsp::MaskBlendInit_C(); + dsp::MotionFieldProjectionInit_C(); + dsp::MotionVectorSearchInit_C(); + dsp::ObmcInit_C(); + dsp::SuperResInit_C(); + dsp::WarpInit_C(); + dsp::WeightMaskInit_C(); +} + dsp::Dsp* GetWritableDspTable(int bitdepth) { switch (bitdepth) { case 8: { @@ -62,23 +89,7 @@ namespace dsp { void DspInit() { static std::once_flag once; std::call_once(once, []() { - AverageBlendInit_C(); - CdefInit_C(); - ConvolveInit_C(); - DistanceWeightedBlendInit_C(); - FilmGrainInit_C(); - IntraEdgeInit_C(); - IntraPredInit_C(); - InverseTransformInit_C(); - LoopFilterInit_C(); - LoopRestorationInit_C(); - MaskBlendInit_C(); - MotionFieldProjectionInit_C(); - MotionVectorSearchInit_C(); - ObmcInit_C(); - SuperResInit_C(); - WarpInit_C(); - WeightMaskInit_C(); + dsp_internal::DspInit_C(); #if LIBGAV1_ENABLE_SSE4_1 || LIBGAV1_ENABLE_AVX2 const uint32_t cpu_features = GetCpuInfo(); #if LIBGAV1_ENABLE_SSE4_1 @@ -87,7 +98,11 @@ void DspInit() { CdefInit_SSE4_1(); ConvolveInit_SSE4_1(); DistanceWeightedBlendInit_SSE4_1(); + FilmGrainInit_SSE4_1(); IntraEdgeInit_SSE4_1(); + IntraPredCflInit_SSE4_1(); + IntraPredDirectionalInit_SSE4_1(); + IntraPredFilterInit_SSE4_1(); IntraPredInit_SSE4_1(); IntraPredCflInit_SSE4_1(); IntraPredSmoothInit_SSE4_1(); @@ -108,6 +123,7 @@ void DspInit() { #endif // LIBGAV1_ENABLE_SSE4_1 #if LIBGAV1_ENABLE_AVX2 if ((cpu_features & kAVX2) != 0) { + CdefInit_AVX2(); ConvolveInit_AVX2(); LoopRestorationInit_AVX2(); #if LIBGAV1_MAX_BITDEPTH >= 10 @@ -125,7 +141,7 @@ void DspInit() { IntraEdgeInit_NEON(); IntraPredCflInit_NEON(); IntraPredDirectionalInit_NEON(); - IntraPredFilterIntraInit_NEON(); + IntraPredFilterInit_NEON(); IntraPredInit_NEON(); IntraPredSmoothInit_NEON(); InverseTransformInit_NEON(); @@ -138,6 +154,9 @@ void DspInit() { SuperResInit_NEON(); WarpInit_NEON(); WeightMaskInit_NEON(); +#if LIBGAV1_MAX_BITDEPTH >= 10 + InverseTransformInit10bpp_NEON(); +#endif // LIBGAV1_MAX_BITDEPTH >= 10 #endif // LIBGAV1_ENABLE_NEON }); } |