본문 바로가기

자료실/etc

모니터의 컬러 깊이 - 24, 32bit color depth 에 대하여

나는 모니터하고 인연이 깊다. ^^
사실 모니터하고의 인연보다는 '모니터'라는 단어하고의 인연이 깊은지 모르겠다.
20년전 쯤 처음 컴퓨터를 통해 네트워크 세상에 2400BPS의 모뎀으로 접속했을때 나의 이름이 바로 '모니터'였기 때문이다. ^^
사실 아이디라는 걸 만들 때, 잘 안잊혀지고.. 감시자라는 의미도 있기때문에.. 선택했는데..
좋던 싫던 그 후론 모니터에 대해 수많은 질문을 받았고.. 덕분에 나는 모니터에 대한 많은 지식과 애정을 갖게 되었었다.
지금은 다른 인연으로 다른 아이디를 사용하고 있지만 추억속에 잊을 수 없고 매일 접하는 가장 친한 친구랄까?
지금도 모니터 앞에서 글을 쓰고 있으니 말이에요~ ^^

잡스형님의 30인치 모니터 갖고 싶네요..^^



다시 오늘의 주제로 돌아가보자

모니터를 세팅할때 색심도(Color Depth, Windows 에는 색 품질로 되어 있다)를 설정한다.
이때  24bit, 32bit등 여러가지 색심도를 선택할 수 있다.
24bit와 32bit 컬러는 왜 트루 컬러(true color)모드라고도 하던데 왜일까?

3원색과 혼합


우리가 보는 빛은 빨강(Red), 녹색(Green), 파랑(Blue)의 3원색으로 이루어져 있다.
이 빛은 가산혼합법이라는 방법으로 서로 섞여서 우리의 눈으로 인지하게 된다.
이러한 각 원색을 색 채널(Color channel)이라고 한다.

모니터는 컴퓨터의 정보를 R, G, B  3개의 채널을 화면에 점을 찍어서 사용자에게 보여주게 된다.
이미지 파일을 예로 들자면 이미지 파일은 이미지 각 화소에 대한 RGB 값이 특정한 형식으로 기록되어 있고
컴퓨터는 이를 역연산하여 비디오 인터페이스 카드(흔히 말하는 VGA카드)를 통하여 모니터 화면으로 전달하게 된다.
이때 전달되는 신호는 역시 RGB 값의 배열 형태로 전송하게 된다.

일반적으로 R0, G0, B0 은 각 색의 값이 모두 0인상태로 색이 없는 상태 즉 검은색(Black out) 이된다
R(MAX), G(MAX), B(MAX)는 모두 값이 최대치인 상태로 흰색(White)가 된다.
그리고 R, G, B 각 채널의 값에 따라서 색이 섞여 다양한 색이 나오게 된다.

채널당 8비트 컬러라하는 것은 한 화소(1 pixel)에 대하여
 R채널 256단계 (0~255), G 채널 256단계, B 256단계..
이를 조합하게 되면..256x256x256 = 16,777,216 가지의 경우의 수가 나온다.
이는 조합으로 이루어지는 채널당 8비트가 표현할 수 있는 색의 총가지수라 하겠다.


(8비트 컬러를 지원하는 모니터는 8개의 비트로 1픽셀을 구성하므로 256(2^8)컬러/흑백을 표현할 수 있다. 
현시점에서 8비트나 16비트 모드로 세팅하거나 24비트 컬러 모드를 지원안하는 모니터를  쓰시는 분들은 없을 것이기 때문에
여기에 대한 내용은 패쓰~! 혹 허큘리스 그래픽카드를 쓰시는 분이 있으시다면 댓글 남겨주세요.. ^^)

일부 특정한 VGA 카드[각주:1]를 제외하고는 대다수의 VGA 카드는 1 픽셀에 대해 채널당 8bit 레벨의 출력을 한다.
R-8bit(256단계), G-8bit, B-8bit  = 256 x 256 x 256 = 16,777,216 컬러를 표현할 수 있고
실제로 R200, G100, B100 과 R199, G100, B100 과 같이 근소한 데이터값의 차이는 우리가 눈으로 그 차이를 확인하기가 매우 어렵다.
따라서 각 채널당 8비트만 되더라도 데이터상의 차이가 있을지라도 우리 눈으로는 그 색을 구별하지 못하기 때문에
True Color (트루컬러)라고도 한다.
일반적인 VGA 카드의 출력은 트루컬러이며 채널당 8비트 데이터의 24bit 출력이다.

그리고  모니터는 ADC(아날로그 - 디지털 컨버터)를 통해 채널당 8bit 로 보여주게 되고 이를 우리가 인식하게 된다.

화면설정에 32비트 설정은 트루컬러 24비트 출력에 8비트의 알파 채널[각주:2]이다. 알파 채널은 투명도와 관련이 있다.



여기서 수학 문제 하나 내 보겠다.
24" 모니터의 경우 1920x1200 의 픽셀을 가지고 60hz(1 초에 60장의 이미지)를 보여주는 트루컬러 32bit 화면은
화면 표시만을 위해 1초에 필요한 버퍼 메모리의 양은 어느정도일까?




  1. ATi 의 FireGL 시리즈, Nvidia 의 Quadro 시리즈, Matrox 의 파헬리아 시리즈는 채널당 10bit 출력이 가능합니다. 채널당 10bit 출력은 1,073,741,824(약 10억이상) 컬러가 표현가능하다 [본문으로]
  2. Alpha channel, Transparency channel 이라고 한다. [본문으로]