From d4dbf19f6b0181ee78034bfe4caf189d1c016998 Mon Sep 17 00:00:00 2001 From: Boyuan Yang Date: Thu, 14 Jul 2022 15:56:57 -0400 Subject: New upstream version 0.18.0 --- src/dsp/convolve.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/dsp/convolve.h') diff --git a/src/dsp/convolve.h b/src/dsp/convolve.h index 5bc0bad..8780bfc 100644 --- a/src/dsp/convolve.h +++ b/src/dsp/convolve.h @@ -17,6 +17,8 @@ #ifndef LIBGAV1_SRC_DSP_CONVOLVE_H_ #define LIBGAV1_SRC_DSP_CONVOLVE_H_ +#include + // Pull in LIBGAV1_DspXXX defines representing the implementation status // of each function. The resulting value of each can be used by each module to // determine whether an implementation is needed at compile time. @@ -43,6 +45,35 @@ namespace dsp { // thread-safe. void ConvolveInit_C(); +inline int GetNumTapsInFilter(const int filter_index) { + if (filter_index < 2) { + // Despite the names these only use 6 taps. + // kInterpolationFilterEightTap + // kInterpolationFilterEightTapSmooth + return 6; + } + + if (filter_index == 2) { + // kInterpolationFilterEightTapSharp + return 8; + } + + if (filter_index == 3) { + // kInterpolationFilterBilinear + return 2; + } + + assert(filter_index > 3); + // For small sizes (width/height <= 4) the large filters are replaced with 4 + // tap options. + // If the original filters were |kInterpolationFilterEightTap| or + // |kInterpolationFilterEightTapSharp| then it becomes + // |kInterpolationFilterSwitchable|. + // If it was |kInterpolationFilterEightTapSmooth| then it becomes an unnamed 4 + // tap filter. + return 4; +} + } // namespace dsp } // namespace libgav1 -- cgit v1.2.3