Билинейный метод является наиболее широко используемым, и его можно использовать так же быстро, как и алгоритм пониженной дискретизации ближайшего соседа, который является самым быстрым, но наименее точным.
Проблема с наивной реализацией билинейногоВыборка заключается в том, что если вы используете его, чтобы уменьшить изображение более чем наполовину, то вы можете столкнуться с артефактами сглаживания, подобными тем, с которыми вы столкнетесь с ближайшим соседом.Решение этой проблемы заключается в использовании подхода на основе пирамиды.В основном, если вы хотите уменьшить 600x600 до 30x30, сначала уменьшите до 300x300, затем до 150x150, затем до 75x75, затем до 38x38, и только затем используйте билинейный режим, чтобы уменьшить до 30x30.Алгоритм выборки становится намного проще.В основном для каждой чередующейся строки и столбца пикселей:
y[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;