Добрый день.
Думаю при Ваших коэффициентах масштабирования изображения Вам вполне будет достаточно в качестве алгоритма масштабирования линейной интерполяции. Более продвинутые алгоритиы сильный прирост качества изображения Вам не дадут, а вот количество ресурсов и сложность алгоритмов повысят сильно.
Фильтрация для устранения алиасинга в Вашем случае тоже не нужна, так как ее следует применять при коэффициенте уменьшения изображения больше 2 (так как при больших коэффициентах вы начнете терять информацию об исходных пикселах при прореживании), да и при 2 эффект алиасинга не очень заметен.
Следует учитывать, что для устранения алиасинга обычно ставят размывающий фильтр на входе, что повлечет за собой размытие изображения, которое в ряде применений не допустимо. Да и при фильтрации вам понадобится дополнительная внутренняя память для буферизации при вертикальной фильтрации.
Для расчета коэффициентов линейной интерполяции могу предложить алгоритм Брезенхема (коротко):
Допустим, у нас есть пять исходных точек с номерами 0..4 и нам надо выбрать из них четыре, так, чтобы первая выбранная точка (ее номер 0) совпала с первой (номер 0) исходной и последняя выбранная (номер 3) совпала с последней исходной (номер 4).
Точки подаются последовательно в виде пар (текущая, следующая = текущая+1).
Шаг перемещения равен 1+1/3 (числа записываются либо в десятичной системе счисления, либо как целая_часть+дробная_часть). Шаг определяется как кол-во точек до масштабирования - 1 разделить на кол-во точек после масштабирования -1. Таким образом при увеличении целая часть = 0, а при уменьшении 1 и более.
Алгоритм Брезенхема использует текущую сумму (изначально равна шагу перемещения). Если целая часть равна нулю, то на выход мы выдаем текущую дробную часть в качестве веса интерполяции и обновляем сумму прибавлением полного шага. Если целая часть не равна нулю, то мы выдаем запрос на передвижение входной пары и отнимаем от целой части 1, обновляя сумму.
Получается универсальный алгоритм, работающий при любых коэффициентах масштабирования, однако, если у Вас фиксированные разрешения, то можно также фиксированно и сделать