Об интерполировании

Наверное, каждый человек, начинающий (да и не только начинающий) работать с программами пиксельной графики, сталкивался с проблемой изначального выбора разрешения (image resolution). Это именно те грабли, на которые все наступают. Как бы ни была хороша работа в художественном плане, все ее достоинства могут сойти на нет, если при ее создании или переводе в цифровой вид данный параметр выбран неверно.

Проблема масштабирования в работе с пиксельной графикой стоит достаточно остро. Если разрешение больше, чем надо, это грозит только замедлением работы. В конце концов, разрешение можно и уменьшить (но при этом надо понимать, что это приведет к ухудшению качества и восполнить потерю уже не удастся, если не сохранена резервная копия).

Увеличение разрешения изображения являет собой еще большую проблему. Откуда возьмутся дополнительные элементы?

Программное обеспечение обычно предлагает на выбор два варианта:

1. увеличить изображение, просто увеличив пикселы (тем самым, уменьшая разрешение). Этот способ не подходит, если надо увеличить изображение, сохраняя при этом высокое разрешение;

2. Программа сама каким-то образом генерирует новые пикселы, основываясь на уже имеющейся цветовой информации. Этот метод называется интерполяцией (resampling).

В программе Adobe Photoshop предложено три алгоритма интерполяции: Bicubic (бикубическая), Nearest Neighbor (по соседним) и Bilinear (билинейная).

Мною было проведено мини-"исследование" всех этих видов интерполяции. В качестве "подопытных кроликов" выступили два изображения с экранным разрешением 72 ppi. Одно представляло собой полноцветную фотографию аппетитной клубнички, второе - черно-белый текст с четкими границами.

После последовательного увеличения разрешения каждого из них в 2, 4 и более раз было выяснено, что бикубическая интерполяция, которую традиционно принято считать наиболее удачным, но медленным методом, хороша для многоцветных изображений с плавными переходами цветов, однако не очень подходит для текста.

Зато Nearest Neighbor (самая быстрая, но наименее точная) является, видимо, самым удачным вариантом для увеличения чертежей, текстов и прочих подобных изображений.

Билинейная интерполяция представляет собой нечто среднее по скорости, больше подходит для полноцветных изображений, как и бикубическая, однако довольно заметно проигрывает ей в качестве конечного результата (клубничка стала расплывчатой и какой-то мутной).

Естественно, что далее мне захотелось "копнуть" поглубже. Создав гениальное в своей простоте изображение размером в два пиксела (черный и белый), я начала методично увеличивать изображение, применяя поочередно к первоначальному изображению каждый из трех способов интерполяции.

Повторила эту нехитрую операцию несколько раз и получила некую информацию к размышлению. Меня интересовали цветовые характеристики пикселов, возникших в результате пересчета.

Nearest Neighbor просто присваивал новому пикселу один из уже имеющихся цветов, не давая промежуточных градаций серого (за счет этого и сохраняется четкость границ изображения, особенно горизонтальной и вертикальной).

Бикубическая и Билинейная интерполяция вели себя "хитрее". Обе они генерируют промежуточные цвета, однако Билинейная интерполяция действует более грубо, усредняя значения цветов. При использовании Бикубической интерполяции контрастность изображения сохраняется гораздо лучше.

Как это не грустно, но поскольку я не математик, то "копать" далее не имело смысла. Разбор математических алгоритмов, собственно действующих при использовании каждого из видов интерполяции, ничего не дал бы мне для практической работы с компьютерной графикой.

Иногда бывает сложно предугадать разрешение или размер файла, которые потребуются на последних этапах работы, поэтому необходимо уметь грамотно использовать средства, предлагаемые программами, для того, чтобы после масштабирования изображение могло быть выведено с наилучшим качеством, которое возможно в данных условиях.

Однако общий вывод на основе проведенного эксперимента можно сделать: лучше всего СРАЗУ выбирать правильное разрешение, потому что любой из видов интерполяции УХУДШАЕТ исходное изображение.

Пишите!

 

Hosted by uCoz