에일리어싱 : Aliasing
디지털 샘플링에서 샘플링 주파수가 원본 신호의 최대 주파수의 2배보다 낮은 경우, 인접한 스펙트럼이 겹쳐서 출력이 왜곡되는 현상을 계단 현상(에일리어싱, Aliasing)이라 한다.
쉽게 설명하자면.. 고해상도의 사진을 저해상도의 화면에서 보거나, 저해상도의 사진을 고해상도의 화면에서 볼 때 원본 이미지에 비해 특정 사물이나 개체 등 색상이 급격히 달라지는 테두리 부분에서의 경계의 패턴이 깨지는 듯한 현상으로 볼 수 있다.
예시를 들어서 설명하자면
- 원본의 디지털 매체에서 '나를 똑같게 보여줘!'라고 명령을 내린다.
- 샘플링하는 과정에서 신호의 왜곡이 발생하여 원본의 그림을 정상적으로 복원하지 못한다.
- 일그러짐이 발생한다.
라고 볼 수 있다.
이는 다양한 예시들이 발생하는데,
1 : 자동차를 타고 가다가 옆에 같이 주행하고 있는 차량 바퀴 휠을 보면, 움직이는 모습이 보이는가 싶더니 주행방향과 달리 거꾸로 돌고 있거나, 천천히 움직이는 것처럼 보일 때가 있다.
2 : 게임에서 렌더링 된 컨텐츠를 재생할 때 출력되는 이미지의 픽셀조각이 튀거나, 선이나 도형의 가장자리가 우둘투둘하고 날카로워지는 형상으로 나타난다.
아래 사진에서 카메라가 회전할 때 보이는 배의 삭구(돛대를 지탱하는 밧줄들)가 자글거리는 듯한 모습을 봐보자.
왜 이런 현상이 일어나는가?
일단, '카메라'가 영상을 찍는 원리부터 짚어봐야 한다.
사람의 눈으로 움직이는 물체를 볼 때는 물체의 동작을 쭉 이어서 보게 된다.
하지만, 카메라는 물체의 움직임을 '짧은 간격'을 두고 연속해서 찍는다.
그리고, 연속해서 찍은 사진들을 차례로 사람에게 보여주면 사람의 뇌는 이를 '물체가 움직인다!'라고 인식하게 된다.
장면과 장면 사이 비어있는 움직임을 뇌 스스로가 채운다. 또는 처리 장치에서 보간을 해주려 한다.
이렇게 카메라가 움직이는 물체의 불연속적인 순간을 잡는 것을 '샘플링'이라고 하고, 각각의 사진을 '프레임'이라고 한다.
카메라가 30 프레임으로 영상을 찍는다고 가정해 보자.
바퀴가 천천히 돈다면, 바퀴가 돌 때 사이 장면을 무리 없이 잡을 수 있을 것이다.
1초(30 프레임)에 한 바퀴(360°)씩 돈다고 생각하면, 1 프레임당 12°(360÷30=12)씩 돌아가며, 30번의 샘플링이 생긴다.
따라서 이를 연속으로 보여주면 무리 없이 바퀴가 돌아가는 모양의 영상이 될 것이다.
그렇다면, 정확히 1초에 정확히 30바퀴를 돈다고 생각해 보자.
그러면 1초(30 프레임) 동안, 30바퀴(360 ×30=10800)를 돌려면 프레임당 360°(10800÷30=360)를 돌아야 한다.
그러면 프레임 자체에서는 샘플링을 할 때마다 '모두 다 같은' 장면인 셈이 되는 것이다.
그렇다면 정지되는 것처럼 보일 것이고, 바퀴가 도는 속도가 이것보다 아주 조금 느리다면 조금 '덜 도는' 상태가 되는 것이다.
이제 다시 한번 앞선 차를 다시 봐보자.
이제는 이 차에서 바퀴가 느리게 보이거나, 멈춰 있는 것처럼 보이는 이유에 대해서 이해가 됐을 것이다.
유독 차에서 이런 현상이 두드러지게 나오는 이유는, 바퀴 안의 휠의 모습이 동일하기 때문에, 한 바퀴를 도는 동안 똑같은 모양이 여러 번 나타나기 때문이다.
실제 주파수와 샘플링 주파수가 달라서 생기는 '에일리어싱'
실제 어떤 '주기'를 가지고 일어나는 일을 기록하는 경우, 기록하는 샘플링 주기로는 실제 상황을 제대로 기록할 수 없을 때, 이른바 '에일리어싱 현상'이 일어난다.
앞서 보여줬던 예시들도 에일리어싱의 범주에 포함된다.
검은색 곡선 : 원래 신호
빨간 점 : 샘플링한 시점에서의 데이터
아래 사진에서 직선 : 샘플링이 끊어지게 되는 부분들에 대한 보간되어 보이는 것? 아무튼.
결론적으로 적절한 샘플링 속도로 하지 못하였기 때문에, 즉 원신호보다 샘플링 속도가 느릴 경우 이러한 현상이 발생한다.
신호의 왜곡이 발생하지 않도록 적절한 샘플링을 취하는 것이 중요하다고 볼 수 있다.
안티에일리어싱 : Anti-Aliasing, AA
결론적으로 3D그래픽뿐만 아니라 2D그래픽, 디지털카메라의 사진 등등에서 에일리어싱은 매우 흔하게 일어난다.
게임 속 계단현상(에일리어싱)은 명도 및 색조 대비가 클수록 극명하게 나타나고, 안티 에일리어싱이 특히 빛을 발할 때는 '같은 타일이 수없이 반복되는 것을 멀리서 바라볼 때' 생긴다.
첫 번째 경우가 안티에일리어싱이 없는 경우로 저게 대체 뭔지 알 수가 없을 정도로 일그러지며, 대충 보는 것만으로 눈이 아프다.
결론적으로는 이런 에일리어싱 현상을 해결하기 위한 기술이 '안티(Anti) 에일리어싱'이다.
다만 3D그래픽 분야에서 위와 같은 전형적인 에일리어싱 문제는 대체로 밉맵과 비등방성필터링으로 쉽게 해결 가능하며, 안티에일리어싱은 계단 현상 제거에 초점을 맞추고 있다.
비등방성필터링에 대한 설명은 여기를 참조
밉맵에 대한 설명은 여기를 참조.
3D게임에서 필수적으로 쓰이고 있으며, 콘솔 및 PC게임에서 유용하게 사용되고 있고, 모바일영역에서도 점차 영역이 확대되고 있다.
나이퀴스트 이론과 안티에일리어싱의 한계점
렌더링 된 컨텐츠를 재생할 때 출력되는 이미지의 픽셀조각이 튀거나, 선이나 도형의 가장자리 우둘투둘하고 날카로워지는 형상으로 나타나는데, 쉽게 말하자면 그래픽 픽셀이 깨지는 현상이다.
신호는 그 신호에 포함된 가장 높은 진동수의 2배에 해당하는 빈도로 일정한 간격으로 샘플링하면 원래의 신호로 복원할 수 있다는 샘플링 이론이 나이퀴스트 이론이다.
나이퀴스트 이론에 대한 자세한 설명은 여기를 참조.
결론은 나이퀴스트 이론을 적용시켜, 에일리어싱 발생을 제거하기 위해서는 재생하는 기기 측의 샘플링 주파수가 '원본의 샘플링 주파수'의 2배 이상이어야 한다는 이론이다.
하지만, AA기술만으로는 안티에일리어싱 효과를 완벽하게 만들 수 없다.
직선, 원, 또는 현실의 물체가 가지는 해상도는 무한대이기에 이를 모니터/TV 화면의 제한된 해상도로 출력하는 순간 에일리어싱이 일어난다.
무한한 해상도를 가지는 벡터 그래픽 포맷으로 출력할 때는 에일리어싱이 일어나지 않지만 이를 눈에 보이는 빛의 형태로 출력해야 할 디스플레이 기기는 어차피 제한된 해상도를 가지는 픽셀들의 맵 형식이기 때문에 결국 에일리어싱이 일어난다.
디스플레이의 근본적인 목적(빛을 통해 사람의 눈에 시각 정보를 전달) 상, 현실적으로 사람 눈에 보이기에만 충분하면 된다고 해도, 이를 정확히 만족하려면 '최소' 8K급 해상도가 필요한데 현재에도 극소수나 써볼 수 있는 초고해상도이다. 또한 AA 기능을 그래픽 설정에서 사용하게 되면 심한 경우 프레임 드랍까지 일어나기도 한다.
간단하게 정리하자
렌더링 된 컨텐츠를 재생할 때 출력되는 이미지의 픽셀조각이 튀거나, 선이나 도형의 가장자리 우둘투둘하고 날카로워지는 형상으로 나타나는데, 쉽게 말하자면 그래픽 픽셀이 깨지는 현상이 나타난다.
디지털 샘플링에서 샘플링 주파수가 원본 신호의 최대 주파수의 2배보다 낮은 경우, 인접한 스펙트럼이 겹쳐서 출력이 왜곡되는 현상을 계단 현상(에일리어싱, Aliasing)이라 한다.
이러한 에일리어싱 현상을 해결하기 위한 기술이 '안티-에일리어싱' 기술이며, 이에 대한 해결 방법에 대해서는 여러 가지가 있다. 본문에 설명하지 않은 기술 또한 매우 많음.
'여러 분석 > [ 단어 정의 ]' 카테고리의 다른 글
텍스처 관련 : 텍스처 필터링 (4) | 2023.10.23 |
---|---|
비등방성 필터링(AF) (2) | 2023.10.23 |
텍스처 관련 : Mip(밉), 밉맵(Mipmap)에 대하여 (0) | 2023.10.23 |
나이퀴스트 이론 : Nyquist Frequency (0) | 2023.10.23 |
화면 출력 : 버퍼(Buffer)에 대하여 (3) | 2023.10.23 |