Этот алгоритм давно существует, но я не могу найти его нигде. Это так просто, хотя я не могу быть единственным, кто думал об этом. Вот как это работает:
Вы начинаете с изображения. Скажем, 7x7px:
Вам нужно переделать его, скажем, до 5x5px:
Итак, все, что вы делаете, это средний цвет каждого нового квадрата:
Это не ближайший сосед, потому что он принимает цвет только одного пикселя, а не дробных пикселей, которые, случается, перекрывают исходный пиксель. Это также не билинейное, бикубическое, lanczos или что-то еще, интерполирующее.
Итак - что это? Мне кажется интуитивно, что это должен быть "математически совершенный" алгоритм передискретизации, хотя, поскольку у меня нет определения того, что "математически совершенное", я не могу доказать или опровергнуть это.
И последнее, но не менее важное: "математически совершенный" не всегда "лучше выглядит", поэтому мне интересно, как он сравнивается с другими стандартными алгоритмами передискретизации изображений (бикубич, lanczos) с точки зрения "качества"? Это, конечно, субъективный термин, поэтому мне действительно интересно, существуют ли существенные различия между этим алгоритмом и другими, о чем большинство людей согласится.
P.S. Несколько вещей, которые я уже могу сказать об этом - это не будет "наилучшим образом" для пиксельного искусства, как показано здесь; для этого существуют специальные алгоритмы (2xSAI и т.д.); а также не будет лучше для увеличения изображений - интерполяция выиграет там. Но для сжатия фотографий...?
Обновление 1: Хм, только что узнал о supersampling. Это похоже на его вариант, с компоновкой образцов в виде сетки, где количество выборок оптимизировано для разрешения исходного и целевого изображений.