프로그래밍[Univ]/그래픽스

[Graphics] Color model / Color mode / half tone / Dithering / 감마수정

Cloud Travel 2013. 3. 18. 18:58

* Basic

 - 전자기파(Electro-Magnetic wave) 

  > 주파수, 파장

  > ..., 우주광선, 감마, X선, (보)가시광선(적), 적외선, ...

  > 가시광선은 시각영역에 들어와 있는 것으로 인식 가능한 선이다.

 - 색도, 명도, 채도

  > 색상 : 가장 큰 에너지를 가진 파장의 색

  > 명도 : 파형 아래의 면적, 밝기

  > 채도 : Ed - Ew(hite)

  


* Color creation

 - RGB의 색의 크기를 이용하여 표현

 - 자연광에서 몇몇 색 구간에서 R의 값은 음수를 가진다 > 인위적으로 제작 불가능

 - 최대한 많은 색을 만들기 위해서 CIE Model이 나오게 된다.


* CIE color Model

 - 가상의 3원색으로 모두 양의 값을 이용하여 색을 만든다.

 - X, Z(색), Y(명도)를 이용하여 표현

 - 정규화 : x + y + z = 1, x,y가 결정되면 z는 자동적으로 결정된다.

 - CIE 표현 범위(Gamut)은 제한적이며, 또한, 장치마다 표현 범위가 다르다.

   (Gamut 내부에 대해서만 표현)

 ※ Sigma 2color = 백색 > 이 경우 두가지 색은 보색관계에 있다고 한다.

  - CIE에서 특정색 A와 B가 " ( (Ax+Bx)/2 , (Ay+By)/2 ) = (0.3, 0.3) white"관계에 있다면, 두 색은 보색관계이다.


* RGB Model

 - 인간의 눈이 R, G, B에 민감하게 반응하는 것을 이용(특히 G에 민감하다)

 - 가산 모델을 사용하여 색을 표현한다.

  > 가산 모델 : 빛의 합성을 이용하여 표현 

  > RGB의 보색은 CMY(Cyan, Magenta, Yellow)이다.


* CMY Model

 - 색의 감산 모델을 이용한다.

 - 감산모델 : 백색광(RGB의 혼합)을 받은 물체는 자신이 가진 색과 보색인 색상을 흡수하여 색을 나타낸다.

 - CMY Model은 실제 색을 이용하는 것으로 Printer등에 사용된다.

  cf) RGB Model은 모니터등 빛을 이용한 장비에 사용된다.

   


* CMYK Model

 - CMY + K(Chromatic : 회색 농도)

 - 회색(검은색)을 이용하여 색의 표현을 단순화 한다.

 - 잉크 건조 시간 및 잉크 사용량을 줄이며, 회색 농도에 대한 표현에 유리하다.

 


* HSV color model

 - RGB는 직관적이지 않다는 단점이 있다.

 - HSV(Hue, Saturation, Value) : 색상, 채도, 명도를 이용하여 색을 표현

  

 - 셰이드와 틴트

  > 셰이드 : Color + black > 명도와 채도가 낮아진다.

  > 틴트 : Color + white > 명도는 높아지고, 채도는 낮아진다.

 - Hue(각)을 이용하여 색을 결정하고, Saturation(채도)와 Value(명도)를 이용하여 원하는 색을 구한다.

 - 육각뿔이 아닌 원뿔형 HSV와 명도 범위가 2배인 HLS가 존재한다.


* YUV color model

 - 컬러 TV 개발시 흑백 TV와의 호환성을 위해서 생성

 - Y(흑백), Y', U(색)을 이용하여 색을 표현하다.


* CIE Lab Model

 - CIE Model의 문제점 : 인지된 색의 차이가 거리에 비례하지 않음

 - CIE 변형(CIE lab)

  > 인지된 색의 차이가 거리에 비례하게 변경된다.

 ※ 웨버의 법칙

  - 자극이 강할 수록 상대적 감도는 낮아진다.

  - 절대적 명도값이 증가함에 따라 Log함수에 비례하여 인식하게 된다.

 

* CMS(Color Management System)

 - 장비마다 특성이 있기 때문에 오차가 날 수 있다.

 - 이러한 오차를 줄이기 위해 CMS를 사용한다.

 - 장비는 자신의 Profile(color model, 특징)을 CMS에 전송하고,

   CMS는 profile을 이용하여 디코딩&인코딩으로 장비에 맞게 출력해준다.

 

* Color Mode

 ⓐ RGB color mode

  - 각각 프레임 버퍼에 나타나는 bit 정보를 이용하여 화면에 출력

  - ex. 3bit frame buffer 평면 : 8가지 색을 동시표현 가능하다.

  

 ⓑ Indexed color mode

  - 각각 프레임 버퍼에 나타나는 bit을 lookup table에서 값을 찾아 변환한다.

  - 각각의 bit는 색정보가 아닌 Index로 사용한다.

  

  - Lookup table을 이용하여 다양한 색을 출력 가능하다.

  - But, 3bit 평면 사용시 표현 가능한 색은 여전히 8가지이다.

   > 많은 색갈중 8가지 색을 선택하여 그림을 표현

  - 유사한 색상의 그림의 색상을 표현할때 유리하다. > Photoshop에서의 팔레트 기능


* Frame buffer = Video Memory

 - 레스터 장비에 보여줄 화면을 미리 저장하고, 시간이 되면 출력해준다.

 - 지속적으로 변환한다고 하여 refresh memory라고도 한다.

 - R, G, B 3개의 버퍼를 사용하며 동시에 읽고, 동시에 쓴다.

 


* Half tone(하프토우닝)

 - 눈의 종합적 인식능력을 이용 > 눈은 4 pixel 을 하나의 단위로 구분하고 인식한다.

 - 흑백 그림임에도 dotㅇ르 찍는 크기와 순서를 이용하여 회색과 같은 명도 표현이 가능하다.

 - pixel의 크기는 조정이 불가능하고 4 pixel을 하나로 사용하기 때문에 해상도가 떨어진다.

 - dot 찍는 순서는 직진성이 없게 하는 것이 좋다.(눈이 직진을 탐색하는 능력이 높다.)

 


* Dithering(디더링)

 - 시각적 오류를 최소화 하기 위해서 사용

 - 인접화소로의 오류확산과 패턴 디더를 이용한다.

 - 해상도 감소가 없으며, 표현을 위해 잡음이 들어갈 수 있다.


* 감마수정

 - 밝기의 변환은 전자빔의 밝기에 비례하지 않는다.

 - 이는 사람의 직관적인 상각과 다르게 나타나게 된다.

 - 이러한 현상을 수정하는 것이 감마수정이다.

 - 역함수를 취해서 먼저 값을 구한 후, 이값을 이용하여 원하는 밝기로 변환하는 과정을 수행한다.