Антиалиасинг

Новый параграф Лебедева говорит о его незнании смысла слова «антиалиасинг»:
Общая размытость и сглаженность возникают из-за автоматического применения алгоритмов антиалиасинга, задача которого — не допустить простого увеличения пикселей. Так как взять изобразительную информацию графической программе неоткуда, она додумывает. Алгоритмы догадывания хорошо работают, когда нам нужно уменьшить или немного увеличить фотографическое, то есть гладкое, изображение.
Антиалиасинг тут ни при чём, это называется интерполяцией.
 21   2008   Лебедев
17 комментариев
homm
Молодец. Верно подметил.
quazzymodo
true
Арсен
Смею не согласиться.
Лебедев правильно употребил в данном контексте термин антиалиасинг (сглаживание).
Интерполяция — это математический метод вычисления, разные способы которого в частности используются в различных алгоритмах антиалиасинга.
Так что учите матчасть :)
Илья Бирман
Дай определение антиалиасинга и приведи пример такого алгоритма.
Megakazbek
Арсен, учите матчасть сами.
Антиалиасинг — это не какое-то абстрактное сглаживание, а фильтрование компонент выше частоты Найквиста. В случае увеличения пиксельной картинки, антиалиасинг отвечает за то, чтобы у большой картинки пиксели сохранили вид, как можно более близкий к квадратному. А «сглаживание», в том виде, в каком оно нарисовано у Лебедева, это именно интерполяция, то есть, «достраивание» высокочастотных компонент картинки при увеличении её разрешения.
Арсен
2Megakazbek: что я вижу абстрактного — так это использование слово фильтрование в вашем определении. Какое фильтрование? Вы хотите сказать, что это самое фильтрование не достраивает высокочастотные компоненты изображения? Антиалиасинг в любом случае использует интерполяцию (не вдаваясь в подробности как именно он это делает).
Я не говорю что антиалиасинг это абстрактное сглаживание, я хотел сказать что это сглаживание в общем.

Я опираюсь на то что интерполяция — это численный метод определения промежуточного значение величины по дискретному ряду её значений. Разве понятие интерполяция в контексте графики по сути своей что-то другое.

Раз уж вы так хорошо в этом разбираетесь, покажите тогда эту картинку с использованием антиалиасинга, чтобы я наверняка понял что я заблуждаюсь (к сожалению не силён в компьютерной графике)
Арсен
UPD То что Лебедев в качестве примера привел не очень удачный вариант во внимание не берем
Megakazbek
>то я вижу абстрактного — так это использование слово фильтрование в вашем определении. Какое фильтрование?
Фильтрование — это отбрасывание.

>Вы хотите сказать, что это самое фильтрование не достраивает высокочастотные компоненты изображения?
Нет, оно их отбрасывает. Грубо говоря, когда мы представляем некоторое произвольное изображение в ограниченном разрешении, мы тем самым сохраняем в нем только частоты до частоты Найквиста. Если в этом изображении были частоты выше неё, то они в таком представлении изображения превратятся в частоты ниже неё (которые как раз называются alias’ами, из-за чего и название aliasing) и наложатся на данные самого изображения, исказив их. Поэтому перед тем, как представлять изображение в цифровом виде (или создавать новое представление уже существующего цифрового изображения — например, изменять его разрешение), нужно перед собственно семплированием убрать из него все компоненты выше частоты Н., чтобы не возникали искажения алиасинга. Вот механизм фильтрации этих частот и называется антиалиасингом.
К сожалению, представление изображения в виде цифрового сигнала не очень интуитивное, и в одном абзаце трудно объяснить, чтобы было понятно.

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

>Я опираюсь на то что интерполяция — это численный метод определения промежуточного значение величины по дискретному ряду её значений.
Именно.
В случае с вот таким вот увеличением: http://img.artlebedev.ru/kovodstvo/sections/155/home-big.gif, мы считаем что исходная картинка — полна, что у нее никаких других деталей не должно быть, и просто представляем её в увеличенном разрешении (то есть, просто представляем ту же самую полную картинку в другом формате)
В случае с увеличением вот таким: http://img.artlebedev.ru/kovodstvo/sections/155/home-big-aliased.gif, мы считаем, что исходная картинка — неполна, что она уменьшенная версия какой-то более детализированной (полной) большой картинки, и при ее увеличении мы достраиваем (интерполируем) неизвестные нам 176x160 пикселей исходя из известных изначально 11x10.

>Раз уж вы так хорошо в этом разбираетесь, покажите тогда эту картинку с использованием антиалиасинга
А эта картинка просто увеличена в 16 раз, то есть конечное разрешение кратно начальному, поэтому никакого алиасинга в этой картинке нет, и большие «пиксели» у неё идеально квадратные размером 16x16.
Алиасинг возникает при некратном увеличении, например, если бы мы попытались увеличить картинку 10x10 до размера 11x11 (к сожалению, нет редактора под рукой, чтобы это продемонстрировать).
homm
Арсен:
Антиалиасинго это примерно так:
http://stratero.ru/homm/antialiasing.png

А вообще хорошее у Вас замечание вышло: Илья оказался не прав в том, что поправил Лебедева, но Лебедев привел не удачный пример, на котором нельзя объснить почему Илья, поправивший Лебедева, не прав :)
Илья Бирман
Офигеть, мне бы не пришло в голову объяснить это картинкой, спасибо!

Всем остальным: пойдите по этой ссылке, она объясняет всё без слов.
Megakazbek
homm, проблема в том, что это совсем не антиалиасинг, а просто какие-то серые квадратики, добавленные к оригинальной картинке непонятно по какому принципу
Илья Бирман
Попытка поумничать не засчитана.
Megakazbek
Вообще, смотрю на картинку homm’а и совершенно непонятно, что это за фигня. Это нечто похожее на увеличенную в 16 раз картинку, которая была чуть-чуть увеличена или уменьшена (на какие-то субпиксели) с антиалиасингом от своего обычного размера в 11x10. В общем, по-моему, это как раз анти-объяснение, которое всё запутывает.
Илья Бирман
Картинка Хомма помогает тому, кто знает, что такое антиалиасинг и интерполяция, но путает эти слова, разобраться, какое из них что значит. Вы, судя по всему, вообще не знаете, что называется антиалиасингом (я не про слово, а про суть), иначе бы картинка Хомма не могла вызвать у вас вопросов.

См.: http://en.wikipedia.org/wiki/Antialiasing
Megakazbek
Суть антиалиасинга картинка Хомма, конечно, передает правильно, но она изображена для несколько другого случая.
Вот, нарисовал собственную картинку именно для того случая, что у нас:
http://smages.com/i/66/25/66251f5cb53bf72fcbde08fc5f632ed3.jpg
Коряво, конечно, но, надеюсь, что более-менее понятно.
Илья Бирман
Это чуть ближе, чем то, что у Лебедева, но тут придётся пояснять, в чём именно проявился эффект антиалиасинга. Картинка Хомма лишена этого недостатка.
Арсен
Вообще Лебедев размыл эту картинку по Гауссу и ниипет :)
Размытие по Гауссу, как и антиалиасинг, как и остальная подобная билибирда — методы обработки (если хотите фильтры) основаные на интерполяционных алгоритмах. Нельзя просто так использовать понятие интерполяция, нужно тогда уж контекретизировать метод, например, бикубическая- билинейная- сплайн- интерполяция — что в свою очередь есть метод основаный на интерполяционном алгоритме.
Илья Бирман
Арсен, ну ты не следишь за логикой. Из того факта, что антиалиасинг каким-то образом использует интерполяцию, не следует, что всякий процесс интерполяции можно называть антиалиасингом.

Совершенно неважно, какой из методов интерполяции использовал Лебедев при масштабировании своего домика. Факт состоит в том, что а) интерполяция в том или ином виде использовалась; б) антиалиасинг ни в каком виде не использовался.
homm
Megakazbek:
Все не то.
«Увеличение с антиаласингом» не то: антиалиасинг не способ увеличения. У вас как раз различия линейной и билинейной интерполяции получились.
«Работа антиалиасинга» не то: таже билинейная интерполяция.

Антиалиазинг не связан с изменением размеров. Хотя, конечно, некоторые алгоритмы антиалиасинга используют изменение размеров и интерполяцию.
Арсен
А если софт у Лебедева сработал в последовательности масштабирование, а потом уже интеполяция или антиалиасинг или чото там :)
Илья Бирман
Антиалиасингу просто по определению неоткуда было взяться. Чтобы антиалиасить, нужно картину высокого разрешения (или векторную) рендерить в низком.
Megakazbek
homm
>антиалиасинг не способ увеличения
Я знаю. Антиалиасинг — это способ избавления от алиасинга. Увеличение — это обработка изображения, которая, как и любая другая обработка может вносить алиасинг, соответственно, увеличение с антиалиасингом — это такое увеличение, которое его старается не вносить.

>Антиалиазинг не связан с изменением размеров.
Антиалиасинг может применяться при любом преобразовании изображения, которое может вносить алиасинг, в том числе и при увеличении.

Илья Бирман
>Антиалиасингу просто по определению неоткуда было взяться.
При увеличении ровно в 16 раз — не было. Но тем не менее, некачественное произвольное увеличение точно так же может привносить алиасинг, как и уменьшение (конечно, при увеличении он заметен гораздо меньше).
forajump
Я тоже как инженер всю жизнь считал, что интерполяция является методом сглаживания (анитиалиасинга): сглаживание методом интерполяции. Не прав я чтоли?…
Иван Пахомов
Если изъясняться не научным языком, антиалиасинг — это сглаживание границ. На растровом изображении не может быть границ, это ведь набор цветных точек. Антиалиасинг может быть только у вектора. Все что делается для сглаживания растра — интерполяция. Интерполяция не сглаживает границы а меняет разрешение растровой картинки. Так то.

Лебедев же неправ уже тем, что применил непонятное иностранное слово там, где на сто процентов уместным было бы понятное русское сглаживание.
Популярное