Thursday, April 10, 2014

브라이트니스, 콘트라스트, 감마

Brightness : 밝기
Contrast : 명암
Gamma :  감마

출처: http://blog.naver.com/psy2993?Redirect=Log&logNo=90081371916

들어가기 전에... 수학 좋아하세요?

우리나라 중고등학교에는 수학이나 영어를 싫어하거나 공포스럽게 생각하는 학생들이 꽤나 많다. 그런데, 안되었지만 오늘 강좌
에는 수학과 영어가 좀 들어간다. 하지만, 전혀 어렵지 않으니 부담없이 읽어 주시기 바란다.

LCD 모니터나 TV의 OSD(On-Screen Display) 메뉴에 보면 밝기(Brightness)와 명암(Contrast)이라는 조정기능이 꼭 있다.
과거 CRT 시절부터 항상 있던 것인데, 최신의 모니터나 TV에는 여기에 감마(Gamma)나 백라이트(Backlight)라는 기능이 추가
되기도 한다.

화면의 밝은 정도나 계조 표현력에 큰 영향을 미치는 밝기, 명암, 감마의 3가지 요소들간의 관계를 가장 쉽게 이해하는 방법은
하나의 수학식으로 표현하는 것이다. 중학교인지 고등학교인지 기억이 잘 나지 않는데 2차 함수를 생각하시면 된다. 요즘 f(x)라는
걸그룹이 인기를 끌고 있는데 이 f(x)가 함수라는 것은 다들 잘 아실 것이다. 밝기, 명암, 감마가 영상에 미치는 영향을 수식으로
표시하면 아래와 같다. 여기서 gain=contrast, offset = brightness의 의미로 쓰고 있다.

f(x) = gain * x^gamma + offset

좀 어려우신가? 쉽게 쓰면 이거다. 하나씩 설명하자면... 즉, 밝기(brightness)는 (영상의 계조별 밝기 정도에) 더하거나 빼는 관계
에 있고, 명암(contrast)은 곱하는 관계, 그리고 감마(gamma)는 x에 대한 자승값의 관계이 있다는 것이다.

f(x) = 명암 * x^감마 + 밝기


혹시 이 함수식이 영상에 어떤 영향을 줄 지 전혀 감이 잡히지 않더라도 전혀 신경 쓰지 마시라. 아래에서 상세하게 설명하기도
하겠지만, 필자가 6년전인 2004년부터 무료로 배포하고 있는 Aura라는 간단한 프로그램으로 여러분의 모니터에서 밝기, 명암,
감마에 대한 실험을 아주 편하게 할 수 있기 때문이다. 홈페이지 자료실에서 일단 Aura 하나 내려 받아 놓으시기 바란다. 게임 좋아
하시는 분들께도 꽤 유용하다.




1. 밝기 (Brightness) - 그래픽 편집 SW

일단, 더 쉽게 이해하실 수 있도록 그래픽 편집 SW에서 '밝기'를 조절하면 어떻게 되는 지를 먼저 설명드리도록 하겠다. 우리가 쓰고
있는 8비트 시스템을 예로 들어 보자. 8비트 컬러 시스템은 계조를 0 ~ 255까지의 256단계로 나누어 표시한다. 그런데 이 256단계
의 계조에 똑같이 10씩 더했다면 어떻게 될까? 0은 10이 되고. 1은 11이 되고, 2는 12가 되고... 245는 255가 되고, 246 이상의
수들은 (255 이상은 없으니) 모두 255로 포화(saturate)될 것이다. 즉, 아래의 그래프에서와 같이 우상향하는 직선이 전체적으로
위로 뜨는 모양이 된다.



실제로 포토샵 등에서 밝기(brightness)를 올리면 아래의 첫번째 그림 우측과 같이 전체 계조가 다 골고루 밝아지는 영상이 된다.
그런데, 가장 눈에 두드러지게 드러나는 부분은 매우 어두운 계조들과 매우 밝은 계조들이다. 한 마디로 말해서 아래의 사진과 같이
블랙은 뜨고, 명부는 포화되는 이미지가 된다.


※ Brightness Up


반대로 밝기(brightness, offset)을 -10으로 했을 경우 (마이너스 영역은 없으니) 0 ~ 10 까지의 계조는 모두 0이 되고, 11은 1,
12는 2, 13은 3... 그리고 245는 235, 255는 245 등과 같은 수치로 낮아진다. 모든 계조들이 동일한 수준으로 밝기가 낮아 지는
것이다. 특히, 가장 중요한 것이 매우 어두운 계조들이 블랙에 묻힌다는 사실이다.



따라서, 밝기(brightness, offset)를 내리면 아래의 사진 우측과 같이 어둡고 침침한 이미지가 된다. 머리결의 구분이 안되는 등의
문제가 발생한다.


※ Brightness Down



2. 명암 (Contrast) - 그래픽 편집 SW

밝기 조정이 전체 계조에 일정한 수치를 더하기(+)나 빼기(-)를 하는 것이라면 명암 조정은 곱하기(X)를 하는 것이라고 말씀드렸다.
곱하기 기능이다 보니 어두운 계조에서는 별 차이가 없는데 밝은 계조로 갈 수록 반응이 커진다. 모니터나 TV가 너무 밝아 눈이 부실
때 밝기(Brightness)가 아니라 명암(Contrast)를 내려야 하는 이유가 바로 여기에 있다. 




실제로 포토샵 등에서 명암을 올리거나 낮추면 아래의 사진들과 같이 전체적인 명암대비는 높아지되 밝은 색이 포화되든가, 아니면
다소 부드럽지만 칙칙한 색이 되든가 둘 중의 하나이다.


※ Contrast Up


※ Contrast Down



3. 감마 (Gamma) - 그래픽 편집 SW

계조별 밝기를 좌우하는 3번째 요소는 감마(Gamma)라는 것이다. 감마라는 말은 여러 분야에서 많이 쓰이지만 그 뜻은 서로 다른
경우가 많다. 디스플레이나 비디오, 카메라와 관련해서 나오는 '감마' 라는 용어는 '입력값에 대한 출력값의 비선형적 특성을 보일 때
그 비선형성의 정도'를 뜻한다. 단순히 앞서 설명드린 수학 함수의 개념(Y=x^gamma)으로 이해하시는 게 더 쉬울 지도 모르겠다.
입력값 x에 대한 자승값의 개념이다 보니 1보다 작으면 위로 볼록한 곡선이 되고, 1보다 크면 아래로 볼록한 곡선이 된다.




그래서 감마는 (입력값에 대한 자승값)이므로 수치가 작아질 수록 (위로 볼록한 곡선이 되므로) 화면은 밝아 지고, 수치가 커질 수록
(아래로 볼록한 곡선이 되므로) 화면은 어두워진다. 하지만, 이 개념을 잘 이해하지 못하는 분들을 위해 많은 SW들은 감마 수치가
높으면 밝게, 감마 수치가 낮으면 어둡게 되도록 뒤집어 놓은 경우도 상당히 많다.


※ Gamma Low


※ Gamma High



4. 밝기(Brightness)와 명암(Contrast) - 디스플레이

포토샵과 같은 이미지 편집 SW들에서 '밝기(brightness)'를 조절했을 때에는 위에서 설명한 것과 같은 변화가 일어난다. 그런데,
모니터나 TV의 OSD에 있는 '밝기'를 건드렸을 경우에 나타나는 현상은 조금 다르다. CRT는 그 스스로가 입력되는 전압에 대해
비선형적 출력(휘도) 특성을 가지고 있기 때문이다. 따라서, 밝기(Brightness)를 조절하면 실제 눈에 보이는 계조별 밝기는 아래의
그림과 같이 변화하기 때문에 밝기의 조절은 Black Level에 가장 큰 영향을 미치게 된다.


※ 이미지 출처 : Charles Poynton, Brightness & Contrast Control


반면, 명암(Contrast)의 조절은 아래의 2번째 그림에서와 같이 암부에는 크게 영향을 미치지 않고 주로 밝은 색들에 영향을 미친다.
따라서, 밤에 불을 끄고 TV를 볼 때 너무 눈이 부시다면 (LCD의 경우) 백라이트(Backlight)를 적절하게 낮춰 주면 되고, 그 기능이
없을 경우에는 밝기(brightness)가 아닌 명암(contrast)을 낮춰 주어야 한다. 그래야 암부 계조가 블랙에 묻혀 안 보이는 문제가
없으면서도 전체적인 영상의 밝기를 줄일 수 있기 때문이다.


※ 이미지 출처 : Charles Poynton, Brightness & Contrast Control


다음의 그래프는 실제 LCD-TV의 밝기를 조절했을 때의 휘도 변화가 어떤지를 잘 보여 주고 있다. 가로축이 밝기 수준을 나타내는
것인데 레벨을 100%까지 단계별로 올리더라도 백색의 휘도는 비교적 완만하게 상승한다. 하지만, 흑색의 휘도는 50%까지는 큰
변화가 없다가 50%를 넘어서면서 급격히 휘도가 높아지는 것을 알 수 있다. 즉, 밝기를 50% 이상으로 올리면 블랙이 떠 보여
물빠진 색감이 되므로 이 정도가 적당하다는 것이다.



반면, 명암의 경우 100%까지 계속 올려도 흑색 휘도에는 별 영향이 없고, 백색의 휘도는 다소 가파르게 증가하고 있음을 알 수 있다.



요즘은 거의 대부분의 LCD-TV와 일부 모니터에 백라이트 조절기능이 탑재되는데 아래의 그래프에서와 같이 백라이트를 올리면
백색과 흑색의휘도가 모두 완만하게 상승하고 있음을 알 수 있다. 따라서, 모니터나 TV를 시청하는 환경에 적당하게 백라이트를
설정하고, 밝기와 명암은 적절한 블랙 레벨과 화이트 레벨을 맞추는데 활용하는 것이 가장 적절하다고 할 수 있다.




5. 감마(Gamma)의 정체는 무엇인가?

필자가 가장 많이 질문받는 것 중 하나가 감마에 대한 것인데, 특히 방송이나 영화와 같은 전문적인 분야에서 활동하시는 분들 사이
에서도 비디오 카메라와 모니터, TV, 인코딩 SW 등에서 적용되는 감마에 대해 꽤 많은 오해가 있는 것을 보면 감마가 어렵긴 어려운
것같다.

먼저, 감마(gamma)라는 용어에 대해 엔지니어나 학자들 사이에 꽤 큰 개념의 차이가 존재하고, 이에 따른 혼란도 많다는 점을 말씀
드리고 싶다. 심지어 ISO와 같은 국제표준에서 아예 '감마'라는 용어를 쓰지 말자고 제안하기도 할 정도이다. 하지만, 워낙 널리
쓰이고 있고, 익숙한 용어라 일단 위에 설명드린 '입력값에 대한 비선형적 출력 특성의 결정 요인' 정도로 이해하고 계시기 바란다.

감마는 크게 3가지가 있다. 인코딩 감마는 영상을 획득한 직후 카메라에서 이루어지는 것으로 취득된 선형 RGB를 비선형 R"G'B'로
변환해 준다. 전문용어로는 OETF(Opto-Electronic Transfer Function)이라고 하며, 방송 시스템이나 그래픽 표준 등에 따라 보통
1/2.2 ~ 1/2.5 사이의 값을 많이 사용한다. 이렇게 비선형 R'G'B로 변환된 뒤에는 색차신호 Y', R'-Y', G'-Y'로 변환되고 다시 용도나
인터페이스에 따라 YCC(YPbPr / YCbCr)이나 YUV, YIC 등의 형태로 변환되어 영상처리된다.

두번째 시스템 감마라는 것은 예를 들어 컴퓨터나 비디오 재생장치(DVD 플레이어 등)에서 가져가는 감마를 뜻한다. PC에는 그런게
없지만 매킨토시 컴퓨터의 경우 과거 스캐너 감마(1/7.2 ≒ 0.58)에 대한 대응 차원에서 시스템 감마를 1/1.45(≒0.69)를 가져
갔었다. 모니터 감마가 2.5 정도로 간주되었기 때문에 스캐너 감마의 부족한 부분을 컴퓨터에서 시스템 감마를 가져 감으로써 커버해
준 것이다.

세번째인 디스플레이 감마는 이미 많은 설명을 드렸기 때문에 이해하고 계실 것이라 기대한다. 그냥 CRT가 원래 그렇게 생겨 먹은
넘인데, 그 CRT를 기준으로 모든 표준이 만들어지다 보니 LCD, PDP, OLED 등 다른 감마 특성을 가진 디스플레이들이라 할 지라도
모두 CRT와 같거나 최대한 비슷한 감마 특성을 갖도록 만들어지고 있다는 것이다.



그런데, 여기서 큰 오해가 있는 것 같다. 상당수의 카메라 및 캠코더 관련 강의에서 강사들은 "디스플레이(CRT)가 감마 특성을 가지고
있기 때문에 (카메라나 캠코더에서) 인코딩 감마(역감마)를 넣어 주는 것"이라고 가르친다. 아주 전문적인 방송 카메라를 영업하시는
분들도 그렇게 설명하는 경우를 봤고, 심지어 영상 관련 책자에서도 그런 내용을 본 적이 있다.

하지만, 이건 진짜 오해다. 어떤 넘이 허구헌날 '오해'라는 말을 많이 써서 이 단어 쓰기가 싫어졌지만 어쩔 수 없다. 디스플레이가 2.2
감마를 가지고 있으니 카메라에서 그 역수인 1/2.2의 역감마를 넣어 인코딩해 주어야 원래의 장면이 그대로 재현된다는 것이 이들의
주장인데... 이것은 결과에 원인을 갖다 맞춘 것이다. 그 둘은 서로 독립적인 것인데 단지 우연히 역의 관계가 성립할 뿐이다.  

생각해 보라. 소위 역감마를 넣는 이유가 디스플레이 때문이라면 이렇게 복잡하게 할 필요가 뭐 있나? 디스플레이에서 디코딩 할 때
그냥 여기서 역감마 넣어 주면 간단하게 해결되지 않을까? CRT의 감마 특성이란 것은 전자총에 입력되는 전압과 그 결과로 방출된
전자가 형광체에 부딪혀 가시광선을 낼 때의 관계에서 나온 것이다. 전자총 바로 앞 단계에 역감마 회로를 구성해 주면 간단하게
끝날 문제다.


인코딩 감마의 진짜 목적은?

결론부터 말해서 인코딩 감마의 진짜 역할은 '영상신호의 효율성을 높이는 것'이라고 할 수 있다. 사람의 눈은 어두운 계조간의 차이는
잘 감지하는데 비해 밝은 계조간의 차이는 덜 민감한 특성을 가지고 있다. 이러한 특성을 활용하면 같은 데이타 용량으로 더 부드러운
계조, 더 깨끗한 영상을 표현할 수 있고, 그게 바로 감마의 역할인 것이다.


※ CIE L* (밝기 변화에 대한 인간의 시감 특성)


이게 무슨 말인가 하면 밝은 색에서 계조를 좀 빼서 어두운 색의 계조를 늘려 준다는 것이다. 8비트 시스템을 예를 들면, 역감마 커브를
통해 어두운 계조에는 최대 12비트를 할당하고 밝은 계조에는 최소 6비트 정도만 할당하는 효과를 구현함으로써 전체적으로 10비트 
영상이 맞먹는 계조표현력을 갖출 수 있다는 것이다.

그런데, 우연히도 CRT는 그 인코딩 감마와 반대의 감마 특성을 가지고 있어 카메라에서 인코딩해 준 역감마를 굳이 디코딩하지 않아도
(CRT의 감마 특성으로 인해) 자연스럽게 디코딩이 되는 효과가 있는 것이다. 인코딩 감마와 CRT 감마는 우연하게 역(reverse)의
특성을 가지게 되어 서로 상쇄(cancel)되는 것이지 어느 하나가 다른 하나의 존재 이유가 된 게 아니다.

만약, CRT에 감마 특성이 없었더라도 인코딩 감마는 (효율성 때문에) 무조건 했을 것이다. 단지, 나중에 TV 안에 간단한 디코더 회로만
하나 구성해 주면 된다. 


※ 다음 강좌에서는 LCD 모니터 OSD에 자주 등장하는 다른 조정기능에 대해 설명드릴 예정이다. 커밍 쑨~~


For RSS feed or Twitter.
Name: Email:

2 개의 댓글:

Unknown said... at December 24, 2015 at 2:18 AM

film news

For latest updates news said... at March 23, 2016 at 4:19 AM

Nice blog....film news

Post a Comment

Powered by Blogger.