공간 안티에일리어싱

Spatial anti-aliasing

디지털 신호 처리에서 공간 안티에일리어싱은 고해상도 화상을 저해상도로 나타낼 때 왜곡 아티팩트(에일리어싱)를 최소화하는 기술이다.안티에이리어싱은 디지털 사진, 컴퓨터 그래픽스, 디지털 오디오 및 기타 많은 응용 프로그램에서 사용됩니다.

안티에일리어싱이란 기록(또는 샘플링) 장치에서 올바르게 해결할 수 있는 것보다 높은 주파수를 가진 신호 성분을 제거하는 것을 의미합니다.이 제거는 낮은 분해능으로 샘플링하기 전에 수행됩니다.신호의 이 부분을 제거하지 않고 샘플링을 수행하면 흑백 노이즈와 같은 바람직하지 않은 아티팩트가 발생합니다.

신호 취득 및 오디오에서 안티에일리어싱은 아날로그 디지털 변환기로 샘플링하기 전에 아날로그 안티에일리어싱 필터를 사용하여 입력 신호의 대역 외 컴포넌트를 제거하는 경우가 많습니다.디지털 촬영에서는 복굴절 재료로 이루어진 광학적 안티에일리어싱 필터가 공간 광학 영역에서 신호를 평활화한다.안티에일리어싱 필터는 기본적으로 디지털 센서가 달성할 수 있는 해상도 이하로 해상도를 낮추기 위해 이미지를 약간 흐리게 합니다(픽셀 피치가 클수록 센서 수준에서 달성할 수 있는 해상도는 낮아집니다).

안티에이리어싱을 사용하지 않을 때 시각적 왜곡
안티에이리어스
sync 필터 알고리즘을 통한 안티에이리어스
안티에이리어싱(왼쪽) 및 안티에이리어싱(오른쪽)이 없는 이미지의 확대된 부분

컴퓨터 그래픽스에서 안티에이리어싱은 "잡힌" 폴리곤 모서리, 즉 "잡지"의 외관을 개선하여 화면에 평활화합니다.다만, 그래픽 카드의 퍼포먼스 코스트를 발생시켜, 보다 많은 비디오 메모리를 사용합니다.안티에일리어싱 레벨은 폴리곤 에지의 평활도(및 사용하는 비디오 메모리량)를 결정합니다.

후퇴하는 체커보드 패턴이 있는 이미지의 상단 부근에서는 이미지를 인식하기 어렵고 미적으로도 매력적이지 않습니다.반대로 안티에일리어스를 지정하면 상단 부근의 체커 보드가 회색으로 변합니다.이것은 일반적으로 해상도가 상세하게 표시되지 않는 경우에 바람직한 효과입니다.이미지의 하단 근처에서도 안티에이리어스 이미지에서는 가장자리가 훨씬 매끄럽게 나타납니다.더 나은 안티에이리어싱 [1]알고리즘으로 간주되는 sync 필터 등 여러 가지 방법이 있습니다.영역을 확대하면 흑백 타일이 공간을 차지하기 때문에 안티에이리어싱이 경계에서 픽셀의 밝기를 보간하여 회색 픽셀을 생성하는 방법을 알 수 있습니다.이렇게 하면 동기 필터의 앨리어스 방지 이미지가 원본보다 훨씬 부드럽게 나타납니다.

왼쪽: 단순 도형의 별칭 버전입니다.맞습니다. 같은 모양의 안티에이리어스 버전입니다.

단순한 다이아몬드 이미지에서 안티에이리어싱은 경계 픽셀을 혼합합니다.이로 인해 앨리어싱된 그래픽에 나타나는 날카롭고 스텝 같은 경계의 미학적 왜곡 효과가 줄어듭니다.

안티에일리어싱은 컴퓨터 화면의 텍스트를 렌더링할 때 종종 적용되며, 이는 기존의 잉크와 종이 인쇄로 생성된 텍스트의 모양을 보다 잘 모방할 수 있는 부드러운 윤곽을 제시하기 위해 사용됩니다.특히 일반적인 LCD 화면에 표시되는 글꼴에서는 ClearType과 같은 서브픽셀 렌더링 기술을 사용하는 것이 일반적입니다.서브픽셀 렌더링에서는, 색 왜곡이 심한 것을 거의 눈에 띄지 않는 색 테두리로 변환하기 위해서, 특수한 색 밸런스 안티 에일리어싱 필터가 필요합니다.OLPC XO-1 노트북의 디스플레이 컨트롤러에서와 같이 개별 서브픽셀을 풀픽셀처럼 주소 지정할 수 있도록 하고 하드웨어 기반의 안티에이리어싱 필터를 제공하면 동일한 결과를 얻을 수 있습니다.안티에일리어싱과 서브픽셀 어드레싱이 소프트웨어에서 이루어지든 하드웨어에서 이루어지든 픽셀 지오메트리는 모든 것에 영향을 미칩니다.

안티에이리어싱에 대한 가장 간단한 접근법

픽셀의 안티에이리어싱을 위한 가장 기본적인 접근법은 벡터 그래픽의 특정 영역(이 경우 픽셀 크기의 정사각형)이 차지하는 픽셀의 비율을 결정하고 이 비율을 색상으로 사용하는 것입니다.

이 방법을 사용하여 단일 흰색-온-블랙 안티에일리어스 포인트의 매우 기본적인 플롯을 다음과 같이 작성할 수 있습니다.

방어하다 플롯_안티앨리어스_점(x: 흘러가다, y: 흘러가다):     "흑백의 안티에일리어스 포인트 플롯."""     위해서 반올림했다  바닥.(x) 로. 동작하다(x):         위해서 둥그스름하다  바닥.(y) 로. 동작하다(y):             퍼센트_x = 1 - 복근(x - 반올림했다)             퍼센티지_y = 1 - 복근(y - 둥그스름하다)             퍼센티 = 퍼센트_x * 퍼센티지_y             draw_draw_draw_draw_drawing(좌표=(반올림했다, 둥그스름하다), 색.=퍼센티 (범위 0-1)) 

이 방법은 일반적으로 기본 선이나 곡선과 같은 단순한 그래픽 및 절대 좌표를 3D 그래픽과 같이 픽셀 제약 좌표로 변환해야 하는 애플리케이션에 가장 적합합니다.꽤 빠른 기능이지만, 비교적 품질이 낮고, 모양이 복잡할수록 느려집니다.매우 고품질의 그래픽스나 매우 복잡한 벡터 쉐이프를 필요로 하는 목적에서는 이 방법이 최선의 방법은 아닐 수 있습니다.

주의:DrawPixel위의 루틴은 색상 값을 계산된 백분율로 무작정 설정할 수 없습니다.새 값을 해당 위치의 기존 값에 최대 1까지 추가해야 합니다.그렇지 않으면 각 픽셀의 밝기가 해당 위치에 대해 계산된 가장 어두운 값과 같게 되어 매우 나쁜 결과가 발생합니다.예를 들어, 한 점이 특정 픽셀의 밝기 레벨을 0.90으로 설정하고 나중에 계산된 다른 점이 해당 픽셀에 거의 닿지 않고 밝기가 0.05인 경우 해당 픽셀에 대해 설정된 최종 값은 0.05가 아니라 0.95여야 합니다.

보다 복잡한 형상의 경우, 알고리즘은, 목표 표시면보다 높은 해상도의 픽셀 그리드에 형상을 렌더링(보통 왜곡을 줄이기 위한 2의 배수)한 후, 쌍입방 보간법을 사용하여 표시면상의 각 실제 픽셀의 평균 강도를 결정하는 것으로 일반화할 수 있다.

안티에이리어싱에 대한 신호 처리 접근법

이 어프로치에서는 이상적인 이미지가 신호로 간주됩니다.화면에 표시된 영상은 신호의 필터링된 버전의 각 (x,y) 픽셀 위치에서 샘플로 촬영됩니다.이상적으로는 인간의 뇌가 원래의 신호를 어떻게 처리하는지를 이해하고 뇌가 가장 유사한 반응을 보이는 화면을 제공할 것이다.

이러한 문제에 대해 가장 널리 받아들여지는 분석 도구는 푸리에 변환입니다. 푸리에 변환은 신호를 주파수 성분으로 알려진 서로 다른 주파수의 기저 함수로 분해하여 신호 내 각 주파수 성분의 진폭을 제공합니다.파형의 형태는 다음과 같습니다.

여기j와 k는 이 아닌 임의의 정수입니다.한 차원 또는 두 차원 모두에서 사인 함수를 포함하는 주파수 성분도 있지만, 이 설명에서는 코사인만으로 충분합니다.

숫자 j와 k는 성분의 주파수입니다.jx방향 주파수, k는 y방향 주파수입니다.

안티에일리어싱 필터의 목적은 나이키스트 주파수라고 불리는 특정 한계 이상의 주파수를 크게 줄여 신호가 샘플링 정리에 따라 샘플로 정확하게 표현되도록 하는 것입니다. 필터 전송 함수에 따라 다양한 세부 알고리즘 선택지가 있습니다.일반적으로 인간의 시각 지각에 대한 현재의 지식은 어떤 접근법이 가장 좋아 보일지 말하기에 충분하지 않다.

2차원 고려사항

X와 Y가 다른 동기 함수

이전 설명에서는 직사각형 메시 샘플링이 문제의 주요 부분이라고 가정했습니다.일반적으로 최적이라고 간주되는 필터는 첫 번째 그림에 표시된 것처럼 회전 대칭이 아닙니다. 이는 데이터가 연속 이미지를 사용하지 않고 정사각형 격자에서 샘플링되기 때문입니다.이 샘플링 패턴은 기존에는 1차원 데이터에 대해 이루어지던 것처럼 각 축을 따라 신호 처리를 수행하는 데 정당성이 있습니다.Lanczos 재샘플링은 sync 함수의 이산적 표현으로 데이터의 컨볼루션에 기초합니다.

해상도가 소스 또는 대상 영상의 직사각형 샘플링 속도에 의해 제한되지 않는 경우 데이터가 연속 x 및 y의 2차원 함수인 것처럼 회전 대칭 필터 또는 보간 기능을 이상적으로 사용해야 합니다.반지름의 동기 함수에 꼬리가 너무 길어서 양호한 필터를 만들 수 없습니다(스퀘어 인테그레이션도 불가능).1차원 sync에 더 적합한 아날로그는 2차원 에어리 디스크 진폭입니다. 에어리 디스크 진폭은 정사각형 영역이 아닌 2D 주파수 공간에서 원형 영역의 2D 푸리에 변환입니다.

가우스 + 미분 함수

그림과 같이 (주파수 영역에서) 상단을 평평하게 하거나 (공간 영역에서) 연마하기에 충분한 가우스 2차 도함수를 고려할 수 있다.가우스 함수에 기반한 함수는 x와 y 또는 반지름에 적용되는 다른 가우스 값을 제공하기 때문에 자연스러운 선택입니다.웨이브릿과 유사하게, 또 다른 특성 중 하나는 이것이 배치(x와 y)와 스펙트럼(j와 k) 표현 사이의 중간에 있다는 것이다.보간함수로서 가우스만으로는 가능한 최대 디테일을 보존하기 위해 너무 넓게 펼쳐져 있는 것처럼 보이므로 제2 도함수가 추가된다.

예를 들면, 처리 능력이 풍부한 사진 네거티브를 인쇄하는 경우나, 6각형 패턴의 프린터로 인쇄하는 경우는, sync 함수 보간을 사용할 필요가 없다.이러한 보간법은 대각선을 약한 형태의 별칭과 같은 수평선 및 수직선과 다르게 취급합니다.

실제 실시간 안티에일리어싱 근사치

실시간 렌더링 엔진(소프트웨어 또는 하드웨어 가속)에서 가장 낮은 수준에서 사용되는 원시 요소는 극소수입니다.여기에는 "점", "선" 및 "삼각형"이 포함됩니다.검은 바탕에 흰색의 원형을 그리려면 원형의 테두리를 흐릿하게 만들어 안티에이리어싱(anti-aliasing)을 실현할 수 있습니다.그러나 이 접근 방식은 인접한 원시 요소(예: 모서리를 공유하는 삼각형)를 처리하는 데 어려움이 있습니다.

균일한 평균화 알고리즘의 근사치를 구하려면 서브픽셀 데이터에 추가 버퍼를 사용할 수 있습니다.초기(및 메모리 소모가 최소) 방식에서는 4 × 4 그리드에서 픽셀당 16비트를 추가로 사용했습니다.원본을 앞뒤로 신중하게 렌더링하면 적절한 이미지를 만들 수 있습니다.

이 방법에서는 원형이 일정한 순서가 필요하기 때문에 OpenGL과 같은 응용 프로그램프로그래밍 인터페이스와 상호 작용하지 않기 때문에 최신 방법에서는 각 서브픽셀에 대한 풀컬러 정보를 포함하여 픽셀당 2개 이상의 풀 서브픽셀이 있습니다.일부 정보는 서브픽셀 간에 공유될 수 있습니다(Z 버퍼 등).

맵핑

또한 mipmapping이라고 하는 텍스처 매핑에 특화된 접근법이 있습니다.이것은 텍스처 맵의 저해상도 사전 필터링 버전을 작성하는 것으로 동작합니다.이미지를 렌더링할 때 적절한 해상도의 mipmap이 선택되므로 텍스처 픽셀(텍셀)은 화면에 도착했을 때 이미 필터링되어 있습니다.Mipmapping은 일반적으로 최종 결과를 개선하기 위해 다양한 형태의 텍스처 필터링과 결합됩니다.

극단적인 의사 랜덤 별칭을 가진 이미지 예제

프랙탈은 디테일이 무한하고 산술 반올림 오차 이외의 노이즈가 없기 때문에 사진이나 기타 측정된 데이터보다 앨리어스를 명확하게 나타냅니다.픽셀의 정확한 중심에서 색상으로 변환되는 이스케이프 시간은 세트의 경계에서 무한대로 이동하므로 앨리어싱으로 인해 경계 근처의 중심에서 색상을 예측할 수 없습니다.이 예에서는 픽셀의 절반에 가장자리가 있기 때문에 앨리어스가 많이 나타납니다.첫 번째 이미지는 원래 샘플링 레이트로 업로드됩니다(대부분의 최신 소프트웨어 안티에이리어스가 있기 때문에 모든 에일리어스를 표시하려면 풀사이즈 버전을 다운로드해야 합니다).두 번째 영상은 샘플링 속도의 5배로 계산되고 안티앨리어싱으로 다운샘플링됩니다.각 픽셀의 평균 색상과 같은 것을 정말 좋아한다고 가정하면, 이 픽셀은 점점 가까워지고 있습니다.그것은 확실히 첫번째보다 더 질서정연하다.

이러한 영상을 제대로 비교하려면 실물 크기로 볼 필요가 있습니다.

이 경우 사용할 수 있는 추가 정보가 있을 수 있습니다."거리 추정기" 알고리즘을 사용하여 재계산함으로써 세트의 가장자리에 매우 가까운 점을 식별하여 세트의 가장자리 부근에서 빠르게 변화하는 이스케이프 시간으로부터 비정상적으로 미세한 디테일이 별칭으로 지정되었습니다.이러한 계산된 포인트에서 도출된 색상은 픽셀을 비정상적으로 나타내지 않는 것으로 확인되었습니다.세트 변경 속도가 빨라지므로 단일 점 샘플이 전체 픽셀을 나타내지 않습니다.세 번째 이미지에서는 이 점들을 주변의 점들을 보간함으로써 대체했습니다.이렇게 하면 이미지의 노이즈가 감소하지만 색상이 밝아지는 부작용이 있습니다.따라서 이 이미지는 더 큰 점 집합을 사용하여 얻을 수 있는 것과 정확히 동일하지 않습니다.폐기된 점을 표시하기 위해 회색 배경으로 혼합된 거부된 점이 네 번째 이미지에 표시됩니다.

마지막으로, "버딩 터빈"은 매우 규칙적이어서 가장 가까운 픽셀을 취함으로써 크기를 줄였을 때 주 "터빈 축" 근처에서 체계적인 (Moiré) 별칭을 명확하게 볼 수 있다.첫 번째 이미지의 앨리어스는 픽셀 크기보다 작은 모든 세부 수준에서 발생하므로 랜덤으로 나타납니다.하위 레벨 앨리어싱을 억제하고 세 번째 이미지를 만든 후 안티 앨리어싱을 하지 않고 다운샘플링을 한 번 더 수행하여 다섯 번째 이미지를 만들면 세 번째 이미지의 스케일 순서가 다섯 번째 이미지에 체계적인 앨리어싱으로 나타납니다.

영상의 순수 다운샘플링은 다음과 같은 효과가 있습니다(풀스케일로 보는 것이 좋습니다).

슈퍼샘플링/풀씬 안티에일리어스

슈퍼샘플링 안티에일리어싱(SSAA)[2][3]은 풀스크린 이미지의 [4]에일리어싱(재기)을 회피하기 위해 사용됩니다.SSAA는 초기 비디오 카드로 사용할 수 있는 최초의 안티 에일리어싱 타입이었습니다.그러나 엄청난 계산 비용과 GPU에서의 MSAA(Multisample Anti-Aliasing) 지원의 등장으로 인해 더 이상 실시간 애플리케이션에서 널리 사용되지 않습니다.MSAA는 그래픽 품질은 다소 낮지만 계산 능력도 대폭 절감됩니다.

SSAA의 이미지는 부드러워 보일 수 있으며 보다 사실적으로 보일 수도 있습니다.그러나 사진과 같은 이미지에는 유용하지만 간단한 안티앨리어싱 접근법(슈퍼샘플링 및 평균화 등)은 특히 대부분의 선이 수평 또는 수직인 경우 일부 유형의 라인 아트 또는 다이어그램의 외관을 실제로 악화시킬 수 있습니다.이러한 경우, 이전의 그리드 장착 단계가 유용할 수 있습니다(힌트 참조).

일반적으로 슈퍼샘플링은 최종 데이터 분해능보다 더 높은 분해능(일반적으로 2제곱)으로 데이터 포인트를 수집하는 기술입니다.그런 다음 이러한 데이터 포인트는 종종 단순한 평균에 의해 원하는 분해능으로 결합(다운 샘플링)됩니다.결합된 데이터 포인트는 눈에 보이는 앨리어싱 아티팩트(또는 모아레 패턴)가 적습니다.

슈퍼샘플링을 통한 풀씬 안티에일리어싱은 일반적으로 각 풀프레임이 디스플레이 해상도의 2배(2배) 또는 4배(4배)로 렌더링된 후 디스플레이 해상도와 일치하도록 다운샘플링됨을 의미합니다.따라서 2x FSAA는 각 프레임의 단일 픽셀에 대해 4개의 슈퍼 샘플링 픽셀을 렌더링합니다.해상도를 높이면 더 좋은 결과를 얻을 수 있지만, 더 많은 프로세서의 파워가 필요하기 때문에 퍼포먼스와 프레임 레이트가 저하될 수 있습니다.때때로 FSAA는 그래픽 애플리케이션이 이미지가 슈퍼 샘플링되고 있음을 인식하지 못하는 방식으로 하드웨어에 구현되어 표시되기 전에 다운 샘플링됩니다.

오브젝트 기반 안티에일리어스

그래픽스 렌더링 시스템은 폴리곤 프리미티브로 구성된 오브젝트에 근거해 화상을 작성한다.또, 오브젝트의 실루엣 에지를 나타내는 화상의 영역에만 안티 에일리어싱 스킴을 적용함으로써, 화상의 에일리어싱 효과를 저감 할 수 있다.실루엣 가장자리는 불투명도가 다른 안티앨리어싱 프리미티브를 생성하여 안티앨리어싱됩니다.이러한 안티앨리어싱 프리미티브는 실루엣된 가장자리에 결합되어 이미지에서 객체가 배경에 혼합되는 것처럼 보이는 영역을 만듭니다.[clarification needed] 방법에는 축적 버퍼에 기반한 기존 방식보다 몇 가지 중요한 이점이 있습니다.그 이유는 2개의 패스만으로 풀씬 안티에일리어싱을 생성하고 축적 버퍼에 필요한 추가 메모리를 사용할 필요가 없기 때문입니다.오브젝트 기반의 안티에일리어싱은 인디 워크스테이션용으로 실리콘 그래픽스에서 처음 개발되었습니다.

안티에일리어싱 및 감마 압축

디지털 이미지는 보통 감마 압축 형식으로 저장되지만 대부분의 광학 안티앨리어싱 필터는 선형입니다.따라서 이미지를 광학적으로 흐리게 하는 방법에 맞게 다운샘플링하려면 먼저 이미지를 선형 형식으로 변환한 다음 안티앨리어싱 필터를 적용하고 마지막으로 감마 압축 형식으로 [5]변환해야 합니다.감마 압축 영상에서 선형 산술을 사용하면 이상적인 필터와 약간 다른 값이 생성됩니다.이 에러는, 고콘트라스트 영역을 취급할 때에 커지기 때문에, 고콘트라스트 영역이 어두워집니다.광학적 안티에이리어스 [6]이미지에 비해, 밝은 디테일(고양이 수염 등)은 시각적으로 얇아지고, 어두운 디테일(나무 가지 등)은 두꺼워집니다.각 픽셀이 개별적으로 일그러져 있으므로 안티에일리어싱 후 윤곽이 매끄럽지 않습니다.선형 형식으로 변환하거나 선형 형식에서 변환하면 프로세스가 크게 느려지고 일반적으로 차이가 미묘하기 때문에 Final Cut Pro 및 Adobe Photoshop을 포함대부분의 이미지 편집 소프트웨어는 감마 압축 도메인에서 이미지를 처리합니다.

대부분의 최신 GPU는 sRGB 형식으로 메모리에 텍스처를 저장할 수 있으며, 기본적으로 성능 저하 없이 선형 공간으로의 변환과 투과적인 복귀를 수행할 수 있습니다.

역사

안티에일리어싱 역사에서 중요한 초기 업적은 다음과 같습니다.

  • Freeman, H. (March 1974). "Computer processing of line drawing images". ACM Computing Surveys. 6 (1): 57–97. doi:10.1145/356625.356627. S2CID 18962414.
  • Crow, Franklin C. (November 1977). "The aliasing problem in computer-generated shaded images". Communications of the ACM. 20 (11): 799–805. doi:10.1145/359863.359869. S2CID 18799849.
  • Catmull, Edwin (August 23–25, 1978). "A hidden-surface algorithm with anti-aliasing". Proceedings of the 5th annual conference on Computer graphics and interactive techniques. pp. 6–11.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Leler, William J. (July 1980). "Human Vision, Anti-aliasing, and the Cheap 4000 Line Display". ACM SIGGRAPH Computer Graphics. 14 (3): 308–313. doi:10.1145/965105.807509.
  2. ^ "AMD's Radeon HD 5870: Bringing About the Next Generation Of GPUs". AnandTech.com.
  3. ^ Jason Gregory, Jeff Lander (2009). Game Engine Architecture. A K Peters, Ltd. p. 39. ISBN 978-1-56881-413-1.
  4. ^ M. Carmen Juan Lizandra (June 2000). "Graphic libraries for Windows programming". Crossroads. ACM. 6 (4): 14–18. doi:10.1145/333424.333433. S2CID 15786664.
  5. ^ Maruszczyk, Kuba; Denes, Gyorgy; Mantiuk, Rafal K. (2018). "Improving Quality of Anti-Aliasing in Virtual Reality" (PDF). EG UK Computer Graphics & Visual Computing. S2CID 54081570. Archived from the original (PDF) on 2019-02-18.
  6. ^ Brasseur, Eric. "Gamma error in picture scaling". www.4p8.com. Archived from the original on 2012-12-23. Retrieved 2012-12-14.

외부 링크