파란 물결

나눔의 쉼터/컴퓨터 정보

컴퓨터에서 색을 숫자로 표기하는 이유

靑 波 2009. 1. 18. 01:05
    컴퓨터에서 색을 숫자로 표기하는 이유

     

    컴퓨터는 왜 색을 숫자로 표기하는가? 이것은 매우 간단할 수도 있고, 복잡할 수도 있는 질문인 것 같습니다. 가장 단순한 답을 찾자면, 컴퓨터는 모든 것을 0과 1, 즉 디지털 방식으로 받아들이거나 표현하기 때문이라는 것이지요. 즉, 컴퓨터가 사용하는 방식대로 색상 등을 표기하는 것이 숫자에 의한 표기방법인 것입니다.

    우리가 눈으로 보거나 귀로 듣는 어떤 것들은 모두 아날로그 방식으로 표현된 것들입니다. 반면, 컴퓨터는 모든 것을 디지털 방식으로 변환하여 입력을 받습니다. 이 때, 어떤 식으로 디지털화를 할 것인지를 결정하는 것이 중요한데, 그 이유는 디지털화를 하는 과정에서 원본의 왜곡이 생기기 마련이고, 그 왜곡을 최소화하는 것이 중요하기 때문입니다.

    그렇다면, "색"은 어떤 식으로 디지털화될까요? 색은 기본적으로 "파(Wave)"로 분석되는데, 파의 높낮이, 즉 진폭에 의해 밝기가 결정되고, 파의 길이, 즉 파장에 의해 색상이 결정된다고 합니다. 파장의 크기에 따라 다양한 색상이 표현되는 것인데, 이 중 빛의 3원색이라고 하는 빨강(R), 녹색(G), 파랑(B)을 혼합함으로써 모든 색상을 표현할 수 있습니다. 색의 디지털화는 근본적으로 이러한 속성을 이용하게 됩니다.

    위의 설명을 거꾸로 해석해 보면, 모든 색은 어느 정도의 빨강, 어느 정도의 녹색, 어느 정도의 파랑으로 구성되어 있다고 할 수 있겠지요. 즉, 어떤 색을 빨강, 녹색, 파랑의 함유 정도로 분해할 수 있는 것입니다. 이때, 함유량을 수치로 표현하지요. 빨강은 255, 녹색은 0, 파랑은 127이 함유되어 있다는 식으로 말입니다.

    위의 예처럼, 각 원색을 256단계(0~255)로 표현하는 것이 컴퓨터에서 일반적으로 사용하는 방식입니다. 3원색을 256단계로 구분하면, 총 표현 가능한 색상의 수는 약 1천6백만 개가 되고, 이 정도라면 인간의 눈으로 충분히 자연스럽다고 느낄 수 있기 때문에 디지털화에 의한 왜곡이 일어나지 않는다고 보는 것입니다.

    이러한 이유로, 자연색을 각각 R, G, B로 분해하여 각각을 256 단계로 표현하는 것을 왜곡 없는 디지털화로 간주하는 것입니다. 즉, 모든 색은 0~255 사이의 R값, 0~255 사이의 G값, 0~255 사이의 B값으로 표현할 수 있게 되는 것이지요. 이것이 색상의 디지털화입니다.

    이러한 표현 방식으로 보면, R:G:B 값이 0:0:0인 경우 검정색, 255:255:255인 경우 흰색을 나타내는 것입니다. 255:0:0이면 빨강색이 되고, 127:127:127이면 50%의 회색이 되겠지요.

    홈페이지를 만들 때 사용하는 HTML 문서에서 색상을 표현하는 방식은, 근본적으로 위에서 설명한 것과 같지만 10진수 대신 16진수를 사용합니다. 256 단계는 2자리의 16진수로 표현이 가능합니다. 즉, 0~255 대신 00~FF라는 값을 이용하는 것이지요. 예를 들어, HTML 문서 내에서 색상이 #0F80FF라고 표현되었다면, 이것은 R값이 15(0F), G값이 128(80), B값이 255(FF)인 색상을 지시하는 것입니다.

    여기에서 빛의 3원색인 R, G, B를 사용하는 것은 컴퓨터에서 표현하는 색상이 1차적으로 표현되는 수단이 "빛을 이용하는" 모니터이기 때문입니다. 프린터의 경우라면 이 색상은 다른 방식으로 분해되어야 할 것입니다. 프린트한 문서는 빛을 보는 것이 아니라 빛이 반사된 색을 보는 것이기 때문에, Cyan, Magenta, Yellow의 3원색이 사용됩니다.

    Cyan은 백색광선으로부터 R이 흡수되어버리고 GB가 반사되었을 때 보이는 색상이고, MagentaG가 흡수되었을 때, YellowB가 흡수되었을 때 보이는 색상이 되는 것입니다. 다시 말해, CyanGB가 반반씩 혼합된 색상이라고 보시면 되겠습니다. 프린터의 컬러 잉크가 빨노파가 아닌 Cyan, Magenta, Yellow로 구성되는 것도, 이 색상들이 색의 3원색으로서 다양한 중간색을 표현하는 데 가장 적합하기 때문입니다.

    또다른 방법으로는 HSB라는 방식이 있습니다. RGB가 빛의 속성을 이용한 방식이라면, HSB는 빛을 인간의 눈이 받아들이는 원리를 이용한 방식이라 할 수 있습니다. H는 Hue(색상), S는 Saturation(채도), B는 Brightness(명도)를 의미합니다. 이렇게 분해된 값들 역시 디지털 방식으로는 수치로 표현되는 것입니다. 명도는 Value의 V로 표현되기도 하며, 따라서 HSV 방식이라 하기도 합니다.

    RGB는 컴퓨터가 모니터로 보낼 신호, 즉 영상을 표현하는 방법으로서 가장 보편적으로 사용되는 방식이며, HTML에서도 이 방식이 사용되므로 현재로서는 색상을 수치로 표현하는 방식의 표준이라 할만 합니다.

    자, 정리해 보도록 하지요. 앞서 말씀드렸듯이, 컴퓨터에서 색을 숫자로 표현하는 이유는 컴퓨터가 "색"을 디지털 방식으로 다루기 때문입니다. 가장 보편적인 방식은 RGB지만, 용도나 취향에 따라 CMY, HSB 등의 다른 방식으로 사용되기도 하지요. 그렇지만, RGB 방식이 표준이라 할 수 있으므로, 그래픽 전문가가 아니라면 다른 방식은 몰라도 무방합니다. 색을 어떤 식으로 디지털화하느냐를 설명하기 위해 다른 방식들도 함께 설명드린 것이니까요.