디더링

image013.GIF
080228_2.png
디더링으로 표현된 그래픽의 예시.

Dithering

그래픽 표현 기법 중 하나.

1 등장 배경

과거 CGA를 필두로 한 컬러 그래픽의 태동기에는 컬러라곤 해도 사용할 수 있는 색이 상당히 제한된 경우가 많았다. 예를 들면 CGA는 4색(흑,백,청,자)밖에 못 썼고, EGAVGA도 16색, 많아봐야 256색 정도였다. 현재 들어서야 16bit 하이컬러다 32bit 트루컬러다 해서 몇억 가지 색을 쓸 수 있지만, 당시에는 색이 제한되어 있었기 때문에 당연히 그래픽의 표현에도 한계가 있어서 색을 쓰는 게 쉽지 않았다. 이런 와중에 등장한 게 디더링이다.

2 특징

간단히 점과 점을 일정 패턴으로 교차해서 찍으면서 멀리서 보면 색이 섞여 보이게끔 하는 기법이다. 원리 면으로 점묘법과 비슷하다고 볼 수 있다. 초기 아미가DOS 그래픽(게임 등)에는 이런 게 많아서 고전 게임들을 하다 보면 그래픽에 도트 같은 게 보이는 경우가 있을 텐데, 그게 디더링을 사용한 흔적이다.

색 표현수가 많아졌다고 해도 현재도 쓰이는 기법이다. 계단 현상을 제거하는 안티에일리어싱도 디더링 기법의 일종이고 사양을 덜 잡아먹기 때문에 저사양 컴퓨터에서 그래픽적인 꼼수로 쓰는 경우도 있다. 또한 GIF는 파일 구조 자체에서 256색밖에 지원을 하지 않기 때문에 움짤 만들 때 쓰이기도 한다.

3 그 외

dither는 '초조해하다', '안절부절하다'는 뜻의 영단어. 실생활에서는 거의 쓰이지 않는다.
요즘 시대에는 디더링 하면 열에 아홉은 본 항목에 기술된 S/W적 컴퓨터 그래픽 기술을 예기하는 거지만, 디더링의 역사는 2차대전 시기까지 거슬러 올라간다. 당시 폭격기의 조준기에는 기계식(=톱니바퀴) 계산기가 탑제되어 있었는데, 공중에서 사용하면 잘 돌아가던 물건이 지상에서 테스트하면 제대로 동작하지 않는 현상이 발견되었다. 알고보니 비행기의 진동이 기계식 컴퓨터를 살살 흔들어주면서 톱니바퀴들이 걸리지 않고 스무스하게 돌아가도록 도와주는 역할을 하고있던 것. 이후 지상에서 테스트 할 시에는 기기를 흔들어주면서 구동했는데, 이 때문에 디더링(안절부절함)이라는 이름이 붙었다고.
하드웨어로 구현되는 사례도 많다. 대표적으로 최신 모니터 등의 LCD는 물리적 스펙은 서브픽셀당 10비트 색을 지원하는 경우가 있는데,입력 데이터는 8비트(RGB 24비트)가 들어오는 게 일반적이므로, 이 경우 LSB 2비트는 00이나 11등 고정값으로 채우는게 아니라 슈도렌덤값으로 흔들어줘서(디더링) 출력한다. 다만 6->8비트 디더링 정도는 화질이 눈에 띄게 좋아지지만, 8->10비트는 특수한 이미지 패턴이 아닌 이상 개선효과가 거의 눈에띄지 않는다..