Открыть сервис

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

Антиалиасинг (от англ. anti-aliasing — «сглаживание») — это совокупность методов и алгоритмов, предназначенных для устранения или уменьшения визуальных искажений (артефактов), возникающих при дискретизации непрерывных сигналов, в первую очередь — при отображении изображений и звука на устройствах с конечной разрешающей способностью. В компьютерной графике антиалиасинг используется для сглаживания «лестничного эффекта» (алиасинга) — ступенчатых краёв на линиях и границах объектов, которые появляются из-за того, что пиксели являются квадратными элементами конечного размера. В цифровом звуке антиалиасинг предотвращает появление низкочастотных шумов, возникающих при оцифровке сигналов с частотами выше половины частоты дискретизации (эффект наложения спектров).

Природа алиасинга

Алиасинг является следствием нарушения теоремы Котельникова — Найквиста, которая гласит, что для точного восстановления непрерывного сигнала по его дискретным отсчётам частота дискретизации должна быть как минимум вдвое выше максимальной частоты в спектре сигнала. В случае изображений аналогом частоты выступает пространственная частота — количество деталей на единицу длины. Если изображение содержит линии или переходы, которые тоньше, чем расстояние между соседними пикселями, дискретизация приводит к тому, что эти детали отображаются неправильно, создавая ложные узоры, муар или ступенчатость.

Проявление в графике

Наиболее заметное проявление алиасинга — «лестница» на диагональных линиях и кривых. При рендеринге, например, отрезка прямой под углом 45 градусов, пиксели, расположенные вдоль линии, образуют ступеньки, так как каждый пиксель закрашивается целиком, если его центр попадает внутрь линии, или не закрашивается вовсе, если центр оказывается снаружи. Это приводит к тому, что граница объекта выглядит неровной, особенно заметной на экранах с низким разрешением или при увеличении изображения.

Проявление в звуке

В цифровом звуке алиасинг проявляется как появление паразитных низкочастотных составляющих, которых не было в исходном сигнале. Если частота звука превышает половину частоты дискретизации (частоту Найквиста), при оцифровке она «отражается» обратно в слышимый диапазон, создавая искажения. Например, при записи звука с частотой дискретизации 44,1 кГц (стандарт компакт-дисков) сигнал с частотой 25 кГц (выше 22,05 кГц) будет воспринят как сигнал с частотой 19,1 кГц (44,1 — 25 = 19,1).

Методы антиалиасинга

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

Пространственный антиалиасинг (SSAA — Supersampling Anti-Aliasing)

Наиболее простой и качественный, но ресурсоёмкий метод. Изображение рендерится в разрешении, превышающем целевое (например, в 2, 4 или 8 раз по каждой оси), а затем масштабируется до нужного размера с усреднением цвета соседних пикселей. Это сглаживает края, так как каждый итоговый пиксель представляет собой среднее значение нескольких субпикселей. Недостаток — квадратичный рост требований к вычислительной мощности и объёму видеопамяти.

Мультисэмплинг (MSAA — Multisample Anti-Aliasing)

Более эффективная альтернатива SSAA. При MSAA геометрия (границы треугольников) рендерится с повышенной частотой дискретизации, а обработка текстур и шейдеров выполняется один раз на пиксель. Это позволяет сглаживать края объектов без значительного увеличения нагрузки на текстурирование и затенение. MSAA широко применялся в играх 2000-х — 2010-х годов, но с появлением сложных эффектов (например, отложенного освещения) его использование стало ограниченным.

Быстрое приближённое сглаживание (FXAA — Fast Approximate Anti-Aliasing)

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

Сглаживание с изменяемой частотой дискретизации (VRS — Variable Rate Shading)

Современный метод, появившийся в графических процессорах NVIDIA (архитектура Turing) и AMD (архитектура RDNA 2). VRS позволяет снижать частоту обработки шейдеров в областях, где детализация не важна (например, на однородных поверхностях в тени), и повышать её на контрастных границах. Это даёт прирост производительности при сохранении качества антиалиасинга.

Временной антиалиасинг (TAA — Temporal Anti-Aliasing)

Метод, ставший стандартом в современных видеоиграх. TAA использует информацию из предыдущих кадров для сглаживания текущего. При рендеринге текущего кадра применяется небольшое смещение (джиттер) субпикселей, и результаты смешиваются с данными предыдущих кадров. Это позволяет эффективно сглаживать не только геометрические края, но и мерцание тонких объектов (например, травы или проводов). Недостатком TAA является эффект «размытия» при быстром движении камеры (ghosting) и появление артефактов на неподвижных объектах.

Аппаратный антиалиасинг

В некоторых графических API (например, DirectX 12 и Vulkan) поддерживается аппаратное сглаживание, которое выполняется непосредственно на этапе растеризации. Современные графические процессоры могут выполнять сглаживание с помощью специализированных блоков, что снижает нагрузку на программную часть.

Антиалиасинг в звуке

В цифровом звуке антиалиасинг реализуется с помощью фильтров нижних частот (ФНЧ), устанавливаемых перед аналого-цифровым преобразователем (АЦП). Эти фильтры подавляют все частоты выше частоты Найквиста, предотвращая их попадание в цифровой сигнал. В современных аудиоинтерфейсах используются активные фильтры с крутым спадом (например, фильтры Баттерворта или эллиптические фильтры), обеспечивающие подавление на 60–100 дБ. В программных синтезаторах и сэмплерах антиалиасинг часто реализуется путём передискретизации (oversampling) — генерации сигнала с более высокой частотой дискретизации с последующим понижением до целевой.

Применение

Антиалиасинг применяется во всех областях, где используется цифровое представление непрерывных сигналов:

Критика и ограничения

Основным недостатком антиалиасинга является компромисс между качеством и производительностью. Методы SSAA требуют огромных вычислительных ресурсов, а методы постобработки (FXAA, TAA) могут ухудшать чёткость изображения, размывая текстуры и мелкие детали. Временной антиалиасинг (TAA) подвержен артефактам при быстром движении, что особенно критично в динамичных играх. Кроме того, некоторые пользователи предпочитают чёткие, но ступенчатые края размытому изображению, что привело к появлению в настройках игр опции отключения всех видов сглаживания. В последние годы активно развиваются методы машинного обучения (DLSS от NVIDIA, FSR от AMD), которые, будучи по сути не чистыми алгоритмами антиалиасинга, а масштабирования с повышением разрешения, также решают проблему алиасинга, комбинируя её с повышением производительности.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →