This patch adds Interpolation kernels in MicroBenchmarks/ImageProcessing directory
It contains the implementation of bicubic and bilinear interpolation (sources mentioned in corresponding kernel files)
Since there was no license mentioned in either of reference, I have not added any license (but still mentioned them in corresponding kernel files).
Runtime: (Using O3 flag)
Benchmark | Time | CPU | Iterations |
---|---|---|---|
BENCHMARK_BICUBIC_INTERPOLATION/16 | 75 us | 75 us | 9085 |
BENCHMARK_BICUBIC_INTERPOLATION/32 | 379 us | 379 us | 1877 |
BENCHMARK_BICUBIC_INTERPOLATION/64 | 1654 us | 1654 us | 419 |
BENCHMARK_BICUBIC_INTERPOLATION/128 | 6987 us | 6988 us | 97 |
BENCHMARK_BICUBIC_INTERPOLATION/256 | 28686 us | 28688 us | 24 |
BENCHMARK_BILINEAR_INTERPOLATION/16 | 18 us | 18 us | 39513 |
BENCHMARK_BILINEAR_INTERPOLATION/32 | 74 us | 74 us | 9368 |
BENCHMARK_BILINEAR_INTERPOLATION/64 | 294 us | 294 us | 2352 |
BENCHMARK_BILINEAR_INTERPOLATION/128 | 1191 us | 1191 us | 571 |
BENCHMARK_BILINEAR_INTERPOLATION/256 | 4969 us | 4969 us | 127 |
Runtime with and without Polly is same