X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=resample_effect.h;fp=resample_effect.h;h=1aa459cbaaa3926c1aeabe2cd8f4647d77fd5f29;hp=b06b09b57ae9af67f18e938396adc8ab8ddbdd0d;hb=b1b5194238dd8b357148a3eee48d8d3a1ad04b35;hpb=546632016ca9a297ca14a0d3e6890d52bfae049c diff --git a/resample_effect.h b/resample_effect.h index b06b09b..1aa459c 100644 --- a/resample_effect.h +++ b/resample_effect.h @@ -18,9 +18,11 @@ #include #include #include +#include #include #include "effect.h" +#include "fp16.h" namespace movit { @@ -28,6 +30,22 @@ class EffectChain; class Node; class SingleResamplePassEffect; +// Public so that it can be benchmarked externally. +template +struct Tap { + T weight; + T pos; +}; +struct ScalingWeights { + unsigned src_bilinear_samples; + unsigned dst_samples, num_loops; + + // Exactly one of these is set. + std::unique_ptr[]> bilinear_weights_fp16; + std::unique_ptr[]> bilinear_weights_fp32; +}; +ScalingWeights calculate_scaling_weights(unsigned src_size, unsigned dst_size, float zoom, float offset); + class ResampleEffect : public Effect { public: ResampleEffect();