공간 위신호 제거

디지털 신호 처리에서 **공간 위신호 제거**()는 고해상도 이미지를 더 낮은 해상도로 표현할 때 발생하는 왜곡 아티팩트(에일리어싱)를 최소화하는 기술이다. 위신호 제거는 디지털 사진, 컴퓨터 그래픽스, 디지털 오디오 및 기타 여러 응용 분야에서 사용된다.

위신호 제거는 기록(또는 표본화) 장치가 적절하게 분해할 수 있는 것보다 더 높은 진동수를 가진 신호 구성 요소를 제거하는 것을 의미한다. 이 제거는 더 낮은 해상도로 (재)표본화하기 전에 수행된다. 이 신호 부분을 제거하지 않고 표본화를 수행하면 흑백 노이즈와 같은 바람직하지 않은 아티팩트가 발생한다.

신호 획득 및 오디오에서 위신호 제거는 종종 아날로그-디지털 변환회로로 표본화하기 전에 입력 신호의 대역 외 구성 요소를 제거하기 위해 아날로그 위신호 제거 필터를 사용하여 수행된다. 디지털 사진에서 복굴절 재료로 만들어진 광학 위신호 제거 필터는 공간 광학 영역에서 신호를 부드럽게 한다. 위신호 제거 필터는 본질적으로 이미지의 해상도를 디지털 센서가 달성할 수 있는 수준 이하로 줄이기 위해 이미지를 약간 흐리게 한다(픽셀 피치가 클수록 센서 수준에서 달성 가능한 해상도가 낮아진다).

## 예시
컴퓨터 그래픽스에서 위신호 제거는 "들쭉날쭉한" 다각형 가장자리 또는 "재기스"의 모양을 개선하여 화면에서 부드럽게 만든다. 그러나 이는 그래픽 카드의 성능 비용을 발생시키고 더 많은 비디오 메모리를 사용한다. 위신호 제거 수준은 다각형 가장자리가 얼마나 부드러운지(그리고 얼마나 많은 비디오 메모리를 사용하는지)를 결정한다.

체커보드 패턴이 뒤로 물러나는 이미지 상단 근처에서 이미지를 인식하기 어렵고 종종 미학적으로 좋지 않다고 여겨진다. 반대로 위신호 제거될 때 상단 근처의 체커보드는 회색으로 혼합되는데, 이는 해상도가 세부 정보를 표시하기에 불충분할 때 일반적으로 원하는 효과이다. 이미지 하단 근처에서도 위신호 제거된 이미지에서 가장자리가 훨씬 더 부드럽게 보인다. 싱크 필터를 포함하여 여러 방법이 존재하며, 싱크 필터는 더 나은 위신호 제거 알고리즘으로 간주된다. 확대하면 위신호 제거가 경계에서 화소의 밝기를 보간하여 공간이 흑백 타일로 모두 차지되므로 회색 픽셀을 생성하는 것을 볼 수 있다. 이는 싱크 필터 위신호 제거 이미지가 원본보다 훨씬 부드럽게 보이도록 돕는다.
alt=|left|섬네일|upright=1.3|왼쪽: 단순한 모양의 에일리어싱 버전. 오른쪽: 동일한 모양의 위신호 제거 버전.
단순한 다이아몬드 이미지에서 위신호 제거는 경계 픽셀을 혼합한다. 이는 에일리어싱된 그래픽에 나타나는 날카롭고 계단식 경계의 미학적으로 거슬리는 효과를 줄인다.

위신호 제거는 종종 컴퓨터 화면에 텍스트를 렌더링하는 데 적용되어 기존 잉크 및 종이 인쇄로 생성된 텍스트의 모양을 더 잘 에뮬레이션하는 부드러운 윤곽을 제안한다. 특히 일반적인 LCD 화면에 표시되는 글꼴의 경우 클리어타입과 같은 서브픽셀 렌더링 기술을 사용하는 것이 일반적이다. 서브픽셀 렌더링은 심각한 색상 왜곡을 거의 눈에 띄지 않는 색상 가장자리로 바꾸기 위해 특수 색상 균형 위신호 제거 필터가 필요하다. 개별 서브픽셀을 전체 픽셀처럼 주소 지정 가능하게 만들고 OLPC XO-1 랩톱의 디스플레이 컨트롤러에서 수행되는 것처럼 하드웨어 기반 위신호 제거 필터를 제공함으로써 동등한 결과를 얻을 수 있다. 픽셀 기하학은 위신호 제거 및 서브픽셀 주소 지정이 소프트웨어 또는 하드웨어에서 수행되는지에 관계없이 이 모든 것에 영향을 미친다.

## 위신호 제거에 대한 가장 간단한 접근 방식
픽셀의 위신호 제거에 대한 가장 기본적인 접근 방식은 벡터 그래픽에서 주어진 영역(이 경우 픽셀 크기의 정사각형, 여러 픽셀에 걸쳐 전치될 수 있음)이 차지하는 픽셀의 비율을 결정하고 그 비율을 색상으로 사용하는 것이다.

이 방법을 사용하여 단일의 흑백 위신호 제거된 점을 그리는 매우 기본적인 플롯은 다음과 같이 수행할 수 있다.


```python
def plot_antialiased_point(x: float, y: float):
    """Plot a single, white-on-black anti-aliased point."""
    for rounded_x in floor(x) to ceil(x):
        for rounded_y in floor(y) to ceil(y):
            percent_x = 1 - abs(x - rounded_x)
            percent_y = 1 - abs(y - rounded_y)
            percent = percent_x * percent_y
            draw_pixel(coordinates=(rounded_x, rounded_y), color=percent (range 0-1))
```


이 방법은 일반적으로 기본적인 선이나 곡선과 같은 단순한 그래픽과 3D 그래픽과 같이 절대 좌표를 픽셀 제한 좌표로 변환해야 하는 응용 프로그램에 가장 적합하다. 이 함수는 상당히 빠르지만, 비교적 낮은 품질이며, 모양의 복잡성이 증가함에 따라 느려진다. 매우 고품질의 그래픽이나 매우 복잡한 벡터 모양을 요구하는 목적에는 이것이 최선의 접근 방식이 아닐 수 있다.

참고: 위의 `draw_pixel` 루틴은 계산된 비율로 색상 값을 맹목적으로 설정할 수 없다. 해당 위치의 기존 값에 최대 1까지 새 값을 **더해야** 한다. 그렇지 않으면 각 픽셀의 밝기는 해당 위치에 대해 시간에 계산된 가장 어두운 값과 같아져 매우 나쁜 결과를 초래한다. 예를 들어, 한 점이 특정 픽셀에 대해 0.90의 밝기 수준을 설정하고 나중에 계산된 다른 점이 해당 픽셀을 거의 건드리지 않고 0.05의 밝기를 가진다면, 해당 픽셀에 대해 설정된 최종 값은 0.95여야 하며 0.05가 아니다.

더 정교한 모양의 경우, 알고리즘은 대상 디스플레이 표면보다 더 높은 해상도(일반적으로 왜곡을 줄이기 위해 2의 거듭제곱인 배수)로 픽셀 격자에 모양을 렌더링한 다음, 쌍입방 보간법을 사용하여 디스플레이 표면의 각 실제 픽셀의 평균 강도를 결정하도록 일반화될 수 있다.

## 위신호 제거를 위한 신호 처리 접근 방식
이 접근 방식에서 이상적인 이미지는 신호로 간주된다. 화면에 표시되는 이미지는 신호의 필터링된 버전의 각 (x,y) 픽셀 위치에서 표본으로 간주된다. 이상적으로는 인간 두뇌가 원본 신호를 어떻게 처리할지 이해하고, 두뇌가 가장 유사한 반응을 보일 수 있는 화면 이미지를 제공해야 한다.

이러한 문제에 대한 가장 널리 받아들여지는 분석 도구는 푸리에 변환이다. 이는 신호를 다른 주파수의 기저 함수, 즉 주파수 구성 요소로 분해하고 신호에서 각 주파수 구성 요소의 진폭을 제공한다. 파동은 다음과 같은 형태이다.

:\ \cos (2j \pi x) \cos (2k \pi y)

여기서 j와 k는 임의의 음이 아닌 정수이다. 한 차원 또는 두 차원에서 사인 함수를 포함하는 주파수 구성 요소도 있지만, 이 논의의 목적을 위해서는 코사인으로 충분하다.

j와 k는 함께 구성 요소의 주파수이다. j는 x 방향의 주파수이고 k는 y 방향의 주파수이다.

위신호 제거 필터의 목표는 나이퀴스트 진동수로 알려진 특정 한계 이상의 주파수를 크게 줄여서 표본화 정리에 따라 신호가 표본에 의해 정확하게 또는 거의 정확하게 표현되도록 하는 것이다. 다양한 필터 전달 함수를 가진 여러 가지 세부 알고리즘 선택이 있다. 인간 시각 인식에 대한 현재 지식은 일반적으로 어떤 접근 방식이 가장 잘 보일지 말하기에 충분하지 않다.

## 2차원적 고려 사항
섬네일|싱크 함수, X 및 Y가 분리됨
이전 논의는 직사각형 메시 표본화가 문제의 주요 부분이라고 가정한다. 이 첫 번째 그림에 표시된 것처럼 일반적으로 최적으로 간주되는 필터는 회전 대칭이 아니다. 이는 데이터가 연속적인 이미지를 사용하는 것이 아니라 정사각형 격자에서 표본화되기 때문이다. 이 표본화 패턴은 1차원 데이터에서 전통적으로 수행되는 것처럼 각 축을 따라 신호 처리를 수행하는 정당성이다. 랑초스 리샘플링은 데이터와 싱크 함수의 이산 표현의 컨볼루션에 기반한다.

해상도가 원본 또는 대상 이미지의 직사각형 표본화 속도에 의해 제한되지 않는다면, 데이터가 연속적인 x와 y의 2차원 함수인 것처럼 이상적으로 회전 대칭 필터 또는 보간 함수를 사용해야 한다. 반지름의 싱크 함수는 좋은 필터가 되기에는 너무 긴 꼬리를 가지고 있다(심지어 제곱 적분 가능 함수도 아니다). 1차원 싱크에 대한 더 적절한 아날로그는 2D 주파수 공간의 원형 영역의 2D 푸리에 변환인 2차원 에어리 원판 진폭이다. 이는 정사각형 영역과 대조된다.

섬네일|가우스 함수와 그 자체의 곡률
가우시안 함수에 충분한 2차 도함수를 더하여 상단을 평평하게(주파수 영역에서) 만들거나 날카롭게(공간 영역에서) 만드는 것을 고려할 수 있다. 그림과 같이. 가우시안 함수에 기반한 함수는 자연스러운 선택인데, 이는 가우시안 함수와의 컨볼루션이 x와 y 또는 반지름에 적용될 때 또 다른 가우시안을 주기 때문이다. 웨이블릿과 마찬가지로 또 다른 속성은 구성(x와 y) 및 스펙트럼(j와 k) 표현에서 국지화되는 중간에 있다는 것이다. 보간 함수로서 가우시안 함수만으로는 가능한 최대 세부 사항을 보존하기에 너무 퍼져 있는 것처럼 보이므로 2차 도함수가 추가된다.

예를 들어, 풍부한 처리 능력과 육각형 패턴을 가진 프린터로 사진 음화를 인쇄할 때 싱크 함수 보간을 사용할 이유가 없다. 이러한 보간은 대각선을 수평 및 수직선과 다르게 처리할 것이며, 이는 약한 형태의 위신호 제거와 같다.

## 실용적인 실시간 위신호 제거 근사치
실시간 렌더링 엔진(소프트웨어 또는 하드웨어 가속)의 최하위 수준에서 사용되는 기본 요소는 "점", "선" 및 "삼각형" 몇 가지뿐이다. 검은색 배경에 흰색으로 이러한 기본 요소를 그릴 경우, 이러한 기본 요소를 흐릿한 가장자리를 갖도록 설계하여 일종의 위신호 제거를 달성할 수 있다. 그러나 이 접근 방식은 인접한 기본 요소(예: 가장자리를 공유하는 삼각형)를 처리하는 데 어려움이 있다.

균일 평균화 알고리즘을 근사화하기 위해 하위 픽셀 데이터에 대한 추가 버퍼를 사용할 수 있다. 초기(그리고 메모리 소모가 가장 적은) 접근 방식은 4 × 4 그리드에서 픽셀당 16개의 추가 비트를 사용했다. 기본 요소를 앞뒤와 같이 신중한 순서로 렌더링하면 합리적인 이미지를 만들 수 있다.

이것은 기본 요소가 어떤 순서로 있어야 하므로 OpenGL과 같은 응용 프로그래밍 인터페이스와 잘 상호 작용하지 않기 때문에, 최신 방법은 각 하위 픽셀에 대한 전체 색상 정보를 포함하여 픽셀당 두 개 이상의 전체 하위 픽셀을 가진다. 일부 정보는 하위 픽셀 간에 공유될 수 있다(예: Z 버퍼.)

### 밉맵

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

## 극단적인 의사 난수 위신호 제거가 있는 이미지의 예
프랙탈은 무한한 디테일과 산술 반올림 오류 외에는 노이즈가 없기 때문에 사진이나 다른 측정된 데이터보다 위신호 제거를 더 명확하게 보여준다. 픽셀의 정확한 중앙에서 색상으로 변환되는 탈출 시간은 집합의 경계에서 무한대로 가므로, 위신호 제거로 인해 경계 근처 중앙의 색상은 예측할 수 없다. 이 예시는 픽셀의 절반 정도에 가장자리가 있으므로 많은 위신호 제거를 보여준다. 첫 번째 이미지는 원본 표본화 속도로 업로드된다. (대부분의 최신 소프트웨어는 위신호 제거를 수행하므로, 모든 위신호 제거를 보려면 전체 크기 버전을 다운로드해야 할 수도 있다.) 두 번째 이미지는 5배의 표본화 속도로 계산되고 위신호 제거를 통해 다운샘플링된다. 각 픽셀의 평균 색상과 같은 것을 정말로 원한다면, 이 이미지가 더 가깝다. 첫 번째 이미지보다 분명히 더 질서 정연하다.

이 이미지를 제대로 비교하려면 전체 크기로 보는 것이 필요하다.

파일:Mandelbrot_"Turbine"_desk_shape.jpg|1. "MandelZot" 프로그램으로 계산된 이미지
파일:Mandelbrot_Turbine_big_all_samples.jpg|2. 흐리게 처리하고 5배로 다운샘플링하여 위신호 제거됨
파일:Mandelbrot_Budding_turbines.jpg|3. 가장자리 점을 보간한 후 위신호 제거 및 다운샘플링됨
파일:Mandelbrot_Turbine_Chaff.jpg|4. 이전 이미지에서 제거된 점을 강화한 것
파일:Mandelbrot Budding Turbines downsampled.jpg|5. 위신호 제거 없이 다시 다운샘플링됨


이 경우, 사용할 수 있는 추가 정보가 있다. "거리 추정기" 알고리즘으로 다시 계산함으로써 집합의 가장자리에 매우 가까운 점들이 식별되었으며, 이로 인해 집합의 가장자리 근처에서 급격하게 변하는 탈출 시간으로부터 매우 미세한 세부 사항이 위신호 제거된다. 이 계산된 점들로부터 파생된 색상들은 해당 픽셀을 비정상적으로 대표하지 않는 것으로 확인되었다. 그곳에서 집합이 더 빠르게 변하므로 단일 점 표본은 전체 픽셀을 덜 대표한다. 이 점들은 세 번째 이미지에서 주변 점들을 보간하여 대체되었다. 이는 이미지의 노이즈를 줄이지만 색상을 밝게 하는 부작용이 있다. 따라서 이 이미지는 훨씬 더 많은 계산된 점들로 얻을 수 있는 이미지와 정확히 같지는 않다. 폐기된 것을 보여주기 위해 회색 배경으로 혼합된 거부된 점들이 네 번째 이미지에 표시된다.

마지막으로, "싹트는 터빈"은 너무나 규칙적이어서 가장 가까운 픽셀을 취하여 크기를 줄일 때 주 "터빈 축" 근처에서 체계적인(무아레) 위신호 제거가 명확하게 보일 수 있다. 첫 번째 이미지의 위신호 제거는 픽셀 크기 미만의 모든 수준의 디테일에서 발생하므로 무작위로 보인다. 하위 수준의 위신호 제거가 억제되어 세 번째 이미지를 만들고, 위신호 제거 없이 한 번 더 다운샘플링하여 다섯 번째 이미지를 만들면, 세 번째 이미지의 스케일에서의 순서가 다섯 번째 이미지에서 체계적인 위신호 제거로 나타난다.

이미지를 순수하게 다운샘플링하는 것은 다음과 같은 효과를 가진다(전체 크기로 보는 것을 권장한다).


파일:Mandelbrot-spiral-original.png|1) 망델브로 집합의 특정 나선형 특징 사진
파일:Mandelbrot-spiral-antialiased-4-samples.png|2) 픽셀당 4개 표본
파일:Mandelbrot-spiral-antialiased-25-samples.png|3) 픽셀당 25개 표본
파일:Mandelbrot-spiral-antialiased-400-samples.png|4) 픽셀당 400개 표본


## 슈퍼샘플링 / 풀신 위신호 제거
슈퍼샘플링 위신호 제거(SSAA), 또한 풀신 위신호 제거(FSAA)라고도 불리며, 전체 화면 이미지의 위신호 제거(또는 "재기스")를 방지하는 데 사용된다. SSAA는 초기 비디오 카드에서 사용할 수 있었던 최초의 위신호 제거 유형이었다. 그러나 엄청난 계산 비용과 GPU에서 멀티샘플 안티에일리어싱(MSAA) 지원의 출현으로 실시간 응용 프로그램에서는 더 이상 널리 사용되지 않는다. MSAA는 그래픽 품질이 다소 떨어지지만, 계산 능력에서 엄청난 절약을 제공한다.

SSAA의 결과 이미지는 더 부드럽게 보이며 더 사실적으로 보일 것이다. 그러나 사진과 같은 이미지에 유용하지만, 간단한 위신호 제거 접근 방식(예: 슈퍼샘플링 및 평균화)은 실제로 일부 유형의 선화 또는 다이어그램의 모양을 악화시킬 수 있다(이미지를 흐릿하게 보이게 함), 특히 대부분의 선이 수평 또는 수직인 경우. 이러한 경우, 사전 격자 맞춤 단계가 유용할 수 있다(참조: 힌팅).

일반적으로 슈퍼샘플링은 최종 데이터 해상도보다 더 높은 해상도(일반적으로 2의 거듭제곱)로 데이터 포인트를 수집하는 기술이다. 이 데이터 포인트는 원하는 해상도로 결합(다운샘플링)되며, 종종 간단한 평균으로 이루어진다. 결합된 데이터 포인트는 위신호 제거 아티팩트(또는 무아레)를 덜 눈에 띄게 한다.

슈퍼샘플링에 의한 풀신 위신호 제거는 일반적으로 각 전체 프레임이 디스플레이 해상도의 두 배(2배) 또는 네 배(4배)로 렌더링된 다음 디스플레이 해상도와 일치하도록 다운샘플링된다는 것을 의미한다. 따라서 2배 FSAA는 각 프레임의 각 단일 픽셀에 대해 4개의 슈퍼샘플링된 화소를 렌더링한다. 더 큰 해상도로 렌더링하면 더 나은 결과를 생성하지만, 더 많은 프로세서 성능이 필요하여 성능과 프레임 속도를 저하시킬 수 있다. 때로는 FSAA가 하드웨어에서 그래픽 응용 프로그램이 이미지가 슈퍼샘플링된 다음 표시되기 전에 다운샘플링된다는 것을 알지 못하는 방식으로 구현된다.

## 객체 기반 위신호 제거
그래픽 렌더링 시스템은 다각형 기본 요소로 구성된 객체를 기반으로 이미지를 생성한다. 이미지의 위신호 제거 효과는 객체의 실루엣 가장자리를 나타내는 이미지 영역에만 위신호 제거 방식을 적용함으로써 줄일 수 있다. 실루엣 가장자리는 불투명도가 변하는 위신호 제거 기본 요소를 생성하여 위신호 제거된다. 이러한 위신호 제거 기본 요소는 실루엣 가장자리에 결합되어 객체가 배경과 혼합되어 보이는 이미지 영역을 생성한다. 이 방법은 누산 버퍼를 기반으로 하는 고전적인 방법에 비해 몇 가지 중요한 장점을 가지고 있는데, 두 번의 패스만으로 전체 장면 위신호 제거를 생성하고 누산 버퍼에 필요한 추가 메모리를 사용하지 않기 때문이다. 객체 기반 위신호 제거는 실리콘 그래픽스에서 Indy 워크스테이션을 위해 처음 개발되었다.

## 위신호 제거 및 감마 압축
디지털 이미지는 일반적으로 감마 압축 형식으로 저장되지만, 대부분의 광학 위신호 제거 필터는 선형이다. 따라서 광학 블러링과 일치하는 방식으로 이미지를 다운샘플링하려면 먼저 선형 형식으로 변환한 다음 위신호 제거 필터를 적용하고 마지막으로 감마 압축 형식으로 다시 변환해야 한다. 감마 압축된 이미지에 선형 산술을 적용하면 이상적인 필터와 약간 다른 값이 생성된다. 이 오류는 고대비 영역을 다룰 때 더 커져 고대비 영역이 더 어두워진다. 밝은 세부 사항(예: 고양이 수염)은 시각적으로 더 가늘어지고, 어두운 세부 사항(예: 나뭇가지)은 광학적으로 위신호 제거된 이미지에 비해 더 두꺼워진다. 각 픽셀은 개별적으로 왜곡되어 위신호 제거 후 윤곽이 부드럽지 않게 된다. 선형 형식으로 변환하고 다시 변환하는 과정이 프로세스를 크게 느리게 하고, 차이가 보통 미묘하기 때문에 파이널 컷 프로 및 어도비 포토샵을 포함한 대부분의 이미지 편집 소프트웨어는 감마 압축 도메인에서 이미지를 처리한다.

대부분의 최신 GPU는 텍스처를 메모리에 sRGB 형식으로 저장하는 것을 지원하며, 성능 손실 없이 선형 공간으로 변환하고 다시 변환하는 작업을 투명하게 수행할 수 있다.

## 역사
위신호 제거 역사에서 중요한 초기 작업은 다음과 같다.

*
*
*

## 같이 보기
* 알파 투 커버리지
* 비등방성 필터링
* 글꼴 래스터화
* 표본화
* 시간 위신호 제거

## 각주

## 외부 링크
* Antialiasing and Transparency Tutorial: 위신호 제거와 투명도 간의 상호 작용, 특히 웹 그래픽을 다룰 때 설명
* Interpolation and Gamma Correction 대부분의 실제 시스템에서 감마 보정은 센서 및 디스플레이 시스템의 응답 곡선을 선형화하는 데 필요하다. 이를 고려하지 않으면 결과적으로 발생하는 비선형 왜곡은 선형 시스템 응답 가정을 기반으로 한 위신호 제거 계산의 목적을 무산시킬 것이다.
* The Future of Anti-Aliasing: MSAA, MLAA, DLAA 및 FXAA와 같은 다양한 알고리즘 비교
*  Le rôle du filtre anti-aliasing dans les APN (dSLR의 위신호 제거 필터 기능)
*

분류:영상 처리
분류:디지털 타이포그래피