디더링

 

[image]
[image]
디더링으로 표현된 그래픽의 예시.[1]
1. 등장 배경
2. 특징
3. 그 외
4. 관련 문서

Dithering. 그래픽 표현 기법 중 하나.

1. 등장 배경


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

2. 특징


간단히 점과 점을 일정 패턴으로 교차해서 찍으면서 멀리서 보면 색이 섞여 보이게끔 하는 기법이다. 원리 면으로 점묘법과 비슷하다고 볼 수 있다. 초기 아미가DOS 그래픽(게임 등)에는 이런 게 많아서 고전 게임들을 하다 보면 그래픽에 도트 같은 게 보이는 경우가 있을 텐데, 그게 디더링을 사용한 흔적이다.
컴퓨터에서 반투명 기법이 지원되지 않았을 때도 많이 썼다. 두 가지 색을 1픽셀씩 번갈아가며 찍은 뒤에, 색 한 가지를 프로그램에서 출력되지 않는 것으로 처리하면 반투명 꼼수가 완성된다.[2] GIF 같이 자체적으로 투명색을 팔레트에서 지원하는 경우에는 비슷하게 투명색과 다른 색을 1픽셀씩 번갈아가며 찍는 꼼수를 썼다. 웹의 경우에는 2000년대 초중반까지 많이 썼던 기법으로, 이후 반투명을 지원하는 PNG 이미지 포맷과 투명도 비율을 지정할 수 있는 CSS3이 대중화되면서 사라졌다.
색 표현수가 많아졌다고 해도 현재도 쓰이는 기법이다. 계단 현상을 제거하는 안티에일리어싱도 디더링 기법의 일종이고 사양을 덜 잡아먹기 때문에 저사양 컴퓨터에서 그래픽적인 꼼수로 쓰는 경우도 있다. 또한 GIF는 파일 구조 자체에서 256색밖에 지원을 하지 않기 때문에 움짤 만들 때 쓰이기도 한다.
그리고 현재도 색상표현 제한을 극복하기 위해 사용하고 있다.
특히 하드웨어로 구현되는 사례가 많다. 대표적으로 최신 모니터 등의 LCD는 물리적 스펙은 서브픽셀당 10비트 색을 지원하는 경우가 있는데,입력 데이터는 8비트(RGB 24비트)가 들어오는 게 일반적이므로, 이 경우 LSB 2비트는 00이나 11등 고정값으로 채우는게 아니라 슈도렌덤값으로 흔들어줘서(디더링) 출력한다. 다만 6->8비트 디더링 정도는 화질이 눈에 띄게 좋아지지만, 8->10비트는 특수한 이미지 패턴이 아닌 이상 개선효과가 거의 눈에띄지 않는다.
가령 일반적인 모니터 패널은 8bit 심도의 컬러 표현이 가능해 1600만 가지 색을 표현하지만 저가형 패널에 경우 6bit + frc(디더링)을 이용해 8bit 즉 1600만 가지 색을 표현하고, 일반 패널보다 좀더 고급 패널은 8bit + FRC를 이용해 10bit 즉 10억가지 색을 표현한다. 전문가용 패널은 네이티브 10bit를 사용하지만 너무 비싸서 2020년대 까지는 일반인이 사용할 만큼 대중화 되지 않았다.

3. 그 외


dither는 '초조해하다', '안절부절 못하다'는 뜻의 영단어. 실생활에서는 거의 쓰이지 않는다.
요즘 시대에는 디더링 하면 열에 아홉은 본 항목에 기술된 S/W적 컴퓨터 그래픽 기술을 얘기하는 거지만, 디더링의 역사는 2차대전 시기까지 거슬러 올라간다. 당시 폭격기의 조준기에는 기계식(=톱니바퀴) 계산기가 탑재되어 있었는데, 공중에서 사용하면 잘 돌아가던 물건이 지상에서 테스트하면 제대로 동작하지 않는 현상이 발견되었다. 알고보니 비행기의 진동이 기계식 컴퓨터를 살살 흔들어주면서 톱니바퀴들이 걸리지 않고 부드럽게 돌아가도록 도와주는 역할을 하고있던 것. 이후 지상에서 테스트 할 시에는 기기를 흔들어주면서 구동했는데, 이 때문에 디더링(안절부절함)이라는 이름이 붙었다고.
메이플스토리의 일러스트들 일부는 잘보면 이 기법이 사용됐음을 알 수 있다.

4. 관련 문서



[1] 킹스 퀘스트 시리즈 중 4편 스샷이다. 당시 VGA 이전 시에라 2D 디더링 그래픽 기술의 노하우가 결집된 게임이었다.[2] 이 기법이 사용된 사례로 스타크래프트에서 일꾼 유닛으로 구조물 생성 시 구조물 생성 위치를 지정하는 과정에서 해당 구조물이 지형에서 차지하는 범위가 녹색 바탕으로 표시되는데, 자세히 보면 녹색 픽셀과 투명 픽셀을 번갈아 찍어 만든 형태라는 것을 알 수 있다. 물론 엄밀하게 말해서 해당 게임은 (은폐 능력을 지닌 유닛의 형태에서 확인할 수 있듯이) 분명 반투명 색상을 지원하고 이 사례도 녹색 픽셀에 반투명이 적용되어 있긴 하다. 단지 픽셀을 번갈아 찍는 기법을 함께 사용해서 그렇지만 말이다.