감마 보정

이미지에 대한 감마 보정의 효과: 원본 이미지는 다양한 배율로 촬영되었으며, 1보다 큰 배율은 그림자를 더 어둡게 만들고 1보다 작은 배율은 어두운 영역을 더 밝게 만든다. 그러나 이것은 그림의 실제 감마는 아니다.

감마 보정(gamma correction), 감마 교정 또는 감마(gamma)는 비디오 카메라, 컴퓨터 그래픽 등에서 비선형 전달 함수(nonlinear transfer function)를 사용하여 의 강도(intensity) 신호를 비선형적으로 변형하는 것을 말한다. 일반적으로 감마 보정(gamma correction)이란 용어가 널리 쓰이나, 대부분의 경우 감마 부호화(gamma encoding)란 표현이 더 적절하다.

디스플레이 등의 특성에 따라 감마 값을 미세하게 조정하는 것은 감마 조정이며, 감마 보정과는 다른 개념이다

용어

일반적으로 '감마보정'(gamma correction)이란 용어가 널리 쓰이나, 일부에서는 감마 부호화(gamma encoding)란 표현이 사용된다. 감마 부호화라는 표현은 영상 데이터 만을 취급하는 단계의 엔지니어 들에게는 단순한 엔코딩의 역할만으로 보이기 때문에 이러한 표현이 사용된다. 감마 보정은 영상의 입력단인 카메라와 최종 출력단인 디스플레이의 경우 gamma를 이용하여 Brightness, Contrast, Color Reproduction등에 제작사의 정책을 반영하고 있기 때문에 보정이라는 표현을 사용한다.

비선형 전달 함수는 보통 다음과 유사하며, 감마( γ, gamma) 값으로 그 특성이 결정된다.

여기서 VC는 보정된 전압이고, VS는 입력 전압이다.

이렇게 신호를 비선형적으로 변형하여 부호화하는 것을 비선형 부호화(nonlinear coding)이라고 한다. 이러한 감마 보정은 보통 비디오 카메라에서 수행된다.

감마 보정의 역사

감마 보정(gamma correction)은 음극선관(CRT)의 출력이 비선형 특성을 가지고 있었기 때문에 그것을 보정하기 위해 카메라의 선형 입력을 비선형으로 만들어주기 위해 탄생된 것으로 알려져 있으나 실제 목적은 인간 시각의 비선형성에 맞추어 정보를 부호화하려는 것이므로, 많은 경우 감마 부호화(gamma encoding)라는 표현이 더 적합하다. 인간 시각은 카메라의 다이나믹 레인지보다 훨씬 높은 명암차이를 감지할 수 있으며 색상이나 해상도차이에 비해 명암의 차이에 민감하다. 디스플레이 장치의 발전에 따라서 다이나믹 레인지를 보다 잘 표현하기 위해서 기존의 영상 시스템의 활용성을 높이면서 시각에 민감한 부분의 데이터를 보다 효율적으로 압축 전달하기 위한 방향으로 gamma encoding이 개발, 발전 되고 있다.

감마 보정의 목적

인간시각베버의 법칙(Weber's law)에 따라 밝기에 대해 비선형적으로 반응한다. (청각과 같은 다른 감각들도 자극에 대해 비선형적으로 반응한다.) 이 때문에 예를 들어 채널 당 8 bit와 같이 한정된 정보표현량(bit depth)안에서 선형적으로 빛의 밝기를 기록하면, 사람의 눈이 민감하게 반응하는 어두운 부분의 경우 밝기가 변할 때 부드럽게 느껴지지 않고 단절되어 보이는 현상(posterization)이 발생한다. 따라서, 주어진 정보표현량의 한계 안에서 최적의 화질을 보여주기 위해선 비선형적으로 부호화하여 어두운 부분을 더 자세히 기록할 필요가 있다. (예. Rec. 709 transfer function과 같은 비선형 함수 사용)

디지털 카메라의 경우 내부에 저장되어 있는 데이터를 JPEG, TIFF 형식으로 저장하는 과정에서 감마 보정이 이루어진다. 디지털 카메라에서 지원하는 대부분의 RAW 그래픽 파일 포맷은 감마 보정이 적용되지 않은 데이터이다. 하지만, 니콘의 압축형 NEF (compressed NEF)의 경우 색 깊이를 9.4 비트로 줄이는 양자화(quantization)과정에서 감마 곡선과 유사한 비선형 곡선(전달 함수)을 사용한다.

감마 보정에 대한 오해

  • '감마 보정은 CRT의 비선형성을 보정하기 위한 것이다' : CRT의 비선형성은 감마 보정의 주된 이유가 아니다. 감마 보정을 통해 비선형적으로 부호화하는(nonlinear coding) 주된 이유는 인간 시각의 비선형성에 대응하여, 주어진 bit depth 하에서 최대한 좋은 화질을 보여주기 위해서이다.
  • '영상 데이터를 저장하기 위해서는 선형 부호화가 이상적이다' : 선형 부호화는 영상 데이터에 효율적이지 않다. 선형 부호화를 사용하여 영상 데이터를 고화질로 저장하기 위해서는 각 성분(R,G,B 혹은 Y,Cb,Cr)마다 11 비트 이상이 필요하다. 11비트보다 적은 비트를 사용할 경우 포스터리제이션(posterization)이 발생하게 된다. 비선형 부호화(감마 보정)를 사용할 때는 8비트로도 가능하다.

같이 보기

외부 링크