Streamtools: Refactor rescaling code
[jpcrr.git] / streamtools / rescalers / bilinear.cpp
bloba67f4a2d1b166ae67406e114a6a93e7db2263475
1 #include "rescalers/linear-separable.hpp"
2 #include <stdint.h>
3 #include <cmath>
4 #include <stdexcept>
6 namespace
8 void compute_coefficients_bilinear(float* coeffs, position_t num, position_t denum, position_t width,
9 position_t twidth, unsigned& count, unsigned& base)
11 base = num / denum;
12 if(base < width - 1) {
13 float fpos = (num % denum) / denum;
14 coeffs[0] = 1 - fpos;
15 coeffs[1] = fpos;
16 count = 2;
17 } else {
18 coeffs[0] = 1;
19 count = 1;
23 simple_rescaler_linear_separable r_bilinear("bilinear", make_bound_method(compute_coefficients_bilinear));