감마 보정

감마 보정(gamma correction), 감마 교정 또는 감마(gamma)는 영상이나 이미지의 휘도를 부호화하고 복호화하는 데 사용되는 비선형 연산이다.[1]
감마 보정은 가장 간단한 경우 다음 멱법칙 표현식으로 정의된다.
여기서 음이 아닌 실수 입력 값 은 거듭제곱 로 올려지고 상수 A를 곱하여 출력 값 을 얻는다. 일반적인 A = 1의 경우, 입력과 출력은 일반적으로 0–1 범위에 있다.
감마 값 은 때때로 부호화 감마라고 불리며, 이러한 압축적인 멱법칙 비선형성을 사용하여 부호화하는 과정을 감마 압축이라고 한다. 반대로, 감마 값 은 복호화 감마라고 불리며, 팽창적인 멱법칙 비선형성을 적용하는 것을 감마 확장이라고 한다.
설명
[편집]이미지의 감마 부호화는 인간이 빛과 색을 지각하는 비선형적인 방식을 활용하여 이미지를 부호화할 때 비트 사용을 최적화하거나 이미지를 전송하는 데 사용되는 대역폭을 최적화하는 데 사용된다.[1] 일반적인 조명 조건(완전히 어둡지도 눈부시게 밝지도 않은)에서 인간의 밝기(밝기) 지각은 감마 함수와는 관련 없는 근사적인 멱함수를 따르며, 밝은 톤 사이보다 어두운 톤 사이의 상대적인 차이에 더 큰 민감도를 보인다. 이는 밝기 지각에 대한 스티븐스 멱법칙과 일치한다. 이미지가 감마 부호화되지 않으면, 인간이 구별할 수 없는 하이라이트에 너무 많은 비트나 대역폭을 할당하고, 인간이 민감하며 동일한 시각적 품질을 유지하는 데 더 많은 비트/대역폭을 필요로 하는 그림자 값에 너무 적은 비트나 대역폭을 할당하게 된다.[2][1][3] 부동소수점 이미지의 감마 부호화는 필요하지 않으며(오히려 역효과를 낼 수도 있음), 부동소수점 형식이 이미 로그 곡선의 조각별 선형 근사를 제공하기 때문이다.[4]
감마 부호화는 원래 음극선관 (CRT) 디스플레이의 밝기 특성을 보상하기 위해 개발되었지만, 현대 시스템에서는 주요 목적이나 장점이 아니다. CRT 디스플레이에서는 빛의 강도가 전자총 전압에 비선형적으로 변한다. 감마 압축으로 입력 신호를 변경하면 이 비선형성을 상쇄하여 출력 화면이 의도된 휘도를 갖도록 할 수 있다. 그러나 디스플레이 장치의 감마 특성은 이미지 및 비디오의 감마 부호화에 영향을 미치지 않는다. 디스플레이 장치의 감마 특성과 관계없이 신호의 시각적 품질을 극대화하기 위해 감마 부호화가 필요하다.[1][3] CRT 물리학이 비디오 전송에 필요한 감마 부호화의 역함수와 유사한 것은 우연과 공학의 조합이었으며, 이는 초기 텔레비전 세트의 전자 장치를 단순화했다.[5]
사진 필름은 사진 원지에 재현할 수 있는 것보다 훨씬 더 미묘한 명암 차이를 기록하는 능력이 있다. 마찬가지로, 대부분의 비디오 화면은 일반적인 전자 카메라로 캡처할 수 있는 밝기 범위(동적 범위)를 표시할 수 없다.[6] 이러한 이유로, 원본 이미지가 어떤 축소된 형태로 제시되어야 하는지를 선택하는 데 상당한 예술적 노력이 투자된다. 감마 보정, 또는 대비 선택은 재현된 이미지를 조정하는 데 사용되는 사진적 레퍼토리의 일부이다.
유사하게, 디지털 카메라는 일반적으로 선형적으로 반응하는 전자 센서를 사용하여 빛을 기록한다. 선형 원시 데이터를 일반적인 RGB 데이터(예: JPEG 이미지 형식으로 저장하기 위한)로 렌더링하는 과정에서 색 공간 변환 및 렌더링 변환이 수행된다. 특히, 거의 모든 표준 RGB 색 공간 및 파일 형식은 사진 재현의 의도된 원색 강도에 대한 비선형 부호화(감마 압축)를 사용한다. 또한, 의도된 재현은 거의 항상 톤 재현 비선형성을 통해 측정된 장면 강도와 비선형적으로 관련된다.
일반화된 감마
[편집]감마의 개념은 모든 비선형 관계에 적용될 수 있다. 멱법칙 관계 의 경우, 양대수 그래프의 곡선은 직선이며, 모든 곳에서 기울기는 감마와 같다(여기서 기울기는 미분 연산자로 표현된다).
즉, 감마는 로그 축에 플로팅했을 때 입력-출력 곡선의 기울기로 시각화될 수 있다. 멱법칙 곡선의 경우 이 기울기는 상수이지만, 이 아이디어는 모든 유형의 곡선으로 확장될 수 있으며, 이 경우 감마(엄밀히 말하면 "점 감마"[7])는 특정 영역에서 곡선의 기울기로 정의된다.
사진술
[편집]

사진 필름이 빛에 노출되면, 노출의 결과는 가로축에 노출의 로그를, 세로축에 밀도 또는 투과율의 음의 로그를 보여주는 그래프로 나타낼 수 있다. 주어진 필름 제형과 처리 방법에 대해 이 곡선은 특성 또는 허터-드리필드 곡선이다.[8][9] 두 축 모두 로그 단위를 사용하기 때문에 곡선의 선형 구간의 기울기를 필름의 감마라고 한다. 네거티브 필름은 일반적으로 감마가 1보다 작다.[9][10] 포지티브 필름(슬라이드 필름, 반전 필름)은 일반적으로 감마의 절대값이 1보다 크다.[11]
표준 감마
[편집]아날로그 TV
[편집]CRT 기반 텔레비전 수신기 및 모니터로의 출력은 일반적으로 추가 감마 보정을 필요로 하지 않는다. 전송되거나 이미지 파일에 저장되는 표준 비디오 신호는 CRT의 감마 확장에 일치하는 감마 압축을 통합한다(정확히 역은 아니지만). 텔레비전 신호의 경우, 감마 값은 아날로그 비디오 표준에 의해 고정되고 정의된다. CCIR System M은 NTSC 색상과 관련되어 감마 2.2를 사용하며; PAL 또는 SÉCAM 색상과 관련된 시스템 B/G, H, I, D/K, K1, L, M, 및 N은 감마 2.8을 사용한다.[12][13]
컴퓨터 디스플레이
[편집]대부분의 컴퓨터 디스플레이 시스템에서 이미지는 약 0.45의 감마로 부호화되고 2.2의 역 감마로 복호화된다. 2009년 9월 macOS X 10.6 (스노우 레오파드) 출시 이전까지 주목할 만한 예외는 매킨토시 컴퓨터였는데, 이는 0.55의 감마로 부호화되고 1.8의 감마로 복호화되었다. 어떤 경우든, 정지 이미지 파일(JPEG과 같은)의 이진 데이터는 명시적으로 부호화되어 있으며(즉, 선형 강도 대신 감마 압축된 값을 포함함), 동영상 파일(MPEG와 같은)도 마찬가지이다. 출력 장치 감마에 더 잘 맞도록 색 관리를 통해 두 가지 경우를 모두 선택적으로 추가 관리할 수 있다.

대부분의 카메라, PC 및 프린터에서 사용되는 sRGB 색 공간 표준은 위와 같은 단순한 멱법칙 비선형성을 사용하지 않지만, 오른쪽/위 그림에 표시된 대로 대부분의 범위에서 약 2.2의 복호화 감마 값을 갖는다. 압축된 값이 0.04045 미만이거나 선형 강도가 0.00313 미만인 경우 곡선은 선형이며(부호화된 값이 강도에 비례), 따라서 γ = 1이다. 빨간색 곡선 뒤의 파선 검정 곡선은 비교를 위한 표준 γ = 2.2 멱법칙 곡선이다.
컴퓨터의 감마 보정은 예를 들어, 감마 = 1.8인 애플 그림을 감마 = 2.2인 PC 모니터에 올바르게 표시하기 위해 이미지 감마를 변경하는 데 사용된다. 다른 용도는 모니터 불일치를 보정하기 위해 개별 색 채널 감마를 균일하게 만드는 것이다.
감마 메타 정보
[편집]일부 그림 형식은 이미지의 의도된 감마(부호화된 이미지 샘플과 빛 출력 간의 변환)를 메타데이터로 저장하여 자동 감마 보정을 용이하게 한다. PNG 사양에는 이 목적을 위한 gAMA 청크가 포함되어 있으며[14] JPEG 및 TIFF와 같은 형식에서는 Exif 감마 태그를 사용할 수 있다. 일부 형식은 전송 함수를 포함하는 ICC 프로파일을 지정할 수 있다.
이러한 기능은 특히 웹에서 역사적으로 문제를 일으켰다. HTML 및 CSS 색상과 색 프로필 메타데이터가 없는 JPG 또는 GIF 이미지의 경우, 인기 있는 브라우저는 색 관리를 하지 않고 숫자 색상 값을 디스플레이로 전달하여 장치 간에 상당히 다른 모습을 보였다. 그러나 이러한 동일한 브라우저는 메타데이터에 명시적으로 감마가 설정된 이미지를 색 관리를 통해 보냈고, 메타데이터가 누락된 PNG 이미지에도 기본 감마를 적용했다. 이로 인해 PNG 이미지가 모든 장치에서 HTML 또는 태그 없는 JPG 색상과 동시에 일치하는 것이 불가능했다.[15][16][17] 이 상황은 대부분의 주요 브라우저가 이제 감마 설정(또는 설정 없음)을 지원하면서 개선되었다.[18][19]
비디오 디스플레이를 위한 멱법칙
[편집]감마 특성은 텔레비전 시스템의 부호화된 루마와 실제 원하는 이미지 휘도 간의 관계를 근사화하는 멱법칙 관계이다.
이 비선형 관계를 통해, 부호화된 휘도에서의 동일한 단계는 주관적으로 동일한 밝기 단계에 대략적으로 해당한다. 에브너(Ebner)와 페어차일드(Fairchild)[20]는 중성 색조의 선형 강도를 밝기(루마)로 변환하기 위해 0.43의 지수를 사용했다. 그 역수, 약 2.33(일반적인 디스플레이 서브시스템에 대해 인용된 2.2 값에 상당히 가까움)은 회색의 대략적인 최적 지각 부호화를 제공하는 것으로 밝혀졌다.
다음 그림은 선형적으로 증가하는 부호화된 휘도 신호(선형 감마 압축 루마 입력) 스케일과 선형적으로 증가하는 강도 스케일(선형 휘도 출력) 간의 차이를 보여준다.
| 선형 부호화 | VS = | 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |
| 선형 강도 | I = | 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |
대부분의 디스플레이(감마가 약 2.2인 디스플레이)에서는 선형 강도 스케일이 강도 값 0.0과 0.1 사이에서 인식되는 밝기에서 큰 점프를 보이는 반면, 스케일의 상위 끝에서는 단계가 거의 감지되지 않는다. 비선형적으로 증가하는 강도를 가진 감마 부호화 스케일은 인식되는 밝기에서 훨씬 더 균일한 단계를 보여줄 것이다.
예를 들어 CRT는 전자총의 강도(밝기)가 인가된 비디오 전압의 함수로 비선형적이기 때문에 비디오 신호를 비선형 방식으로 빛으로 변환한다. 빛의 강도 I는 소스 전압 Vs에 따라
으로 관계된다. 여기서 γ는 그리스 문자 감마이다. CRT의 경우 밝기와 전압을 연결하는 감마는 일반적으로 2.35에서 2.55 범위에 있으며, 컴퓨터의 비디오 룩업 테이블은 일반적으로 시스템 감마를 1.8에서 2.2 범위로 조정한다.[1] 이는 이 섹션 상단의 다이어그램에 표시된 것처럼 균일한 부호화 차이가 대략적으로 균일한 인지적 밝기 차이를 제공하는 영역에 있다.
간단히 단색 CRT의 예를 들어보자. 이 경우, 0.5(중간 회색을 나타냄)의 비디오 신호가 디스플레이에 공급될 때, 강도 또는 밝기는 약 0.22(흰색 강도의 약 22%인 중간 회색)이다. 순수한 검정(0.0)과 순수한 흰색(1.0)만이 감마의 영향을 받지 않는 유일한 명암이다.
이러한 효과를 보상하기 위해 역 전송 함수(감마 보정)가 비디오 신호에 때때로 적용되어 최종 응답이 선형이 되도록 한다. 즉, 전송된 신호는 의도적으로 왜곡되어 디스플레이 장치에 의해 다시 왜곡된 후 시청자가 올바른 밝기를 볼 수 있도록 한다. 위 함수의 역함수는 다음과 같다.
여기서 Vc는 보정된 전압이고, Vs는 광전하를 전압으로 선형적으로 변환하는 이미지 센서 등에서 오는 소스 전압이다. CRT 예시에서 1/γ는 1/2.2 ≈ 0.45이다.
컬러 CRT는 세 가지 비디오 신호(빨강, 초록, 파랑)를 수신하며 일반적으로 각 색상은 고유한 감마 값(γR, γG 또는 γB)을 갖는다. 그러나 간단한 디스플레이 시스템에서는 세 가지 색상 모두에 단일 감마 값이 사용된다.
다른 디스플레이 장치는 다른 감마 값을 가진다. 예를 들어, 게임보이 어드밴스 디스플레이는 조명 조건에 따라 3에서 4 사이의 감마를 가진다. 노트북 컴퓨터와 같은 LCD에서 신호 전압 Vs와 강도 I 사이의 관계는 매우 비선형적이어서 감마 값으로 설명할 수 없다. 그러나 이러한 디스플레이는 약 γ = 2.5 동작을 얻기 위해 신호 전압에 보정을 적용한다. NTSC 텔레비전 녹화에서는 γ = 2.2이다.
멱법칙 함수 또는 그 역함수는 0에서 무한대 기울기를 갖는다. 이는 감마 색 공간으로의 변환 및 감마 색 공간으로부터의 변환에서 문제를 야기한다. 이러한 이유로 sRGB와 같은 대부분의 공식적으로 정의된 색 공간은 0 근처에 직선 세그먼트를 정의하고 곡선이 연속적인 기울기를 갖도록 x + K(여기서 K는 상수)를 거듭제곱하는 것을 추가한다. 이 직선은 CRT가 하는 일을 나타내지 않지만, 곡선의 나머지 부분이 CRT에 대한 주변광의 효과와 더 밀접하게 일치하도록 만든다. 이러한 표현에서 지수는 감마가 아니다. 예를 들어, sRGB 함수는 2.4의 거듭제곱을 사용하지만, 선형 부분이 없는 2.2의 지수를 가진 멱법칙 함수와 더 유사하다.
컴퓨팅에서 디스플레이 감마 보정을 수행하는 방법
[편집]일반적인 2.2 또는 1.8 감마 컴퓨터 디스플레이에 이미지를 올바르게 표시하기 위해 감마 부호화를 달성하려면 최대 4가지 요소를 조작할 수 있다.
- 주어진 이미지 파일의 픽셀 강도 값; 즉, 이진 픽셀 값은 선형 부호화 대신 감마 압축된 값을 통해 빛 강도를 나타내는 방식으로 파일에 저장된다. 이는 디지털 비디오 파일(DVD 영화와 같은)에서 체계적으로 수행되어 재생 중 감마 복호화 단계를 최소화하고 주어진 저장 공간에 대한 이미지 품질을 최대화한다. 마찬가지로, 표준 이미지 파일 형식의 픽셀 값은 일반적으로 sRGB 감마(또는 이에 상응하는, 기존 모니터 감마의 전형적인 근사치) 또는 ICC 프로파일과 같은 메타데이터에 의해 지정된 일부 감마에 대해 감마 보상된다. 부호화 감마가 재현 시스템의 감마와 일치하지 않으면 디스플레이에서 또는 다른 프로필을 가진 수정된 이미지 파일을 생성하여 추가 보정을 수행할 수 있다.
- 렌더링 소프트웨어는 감마 부호화된 픽셀 이진 값을 비디오 메모리에 직접 기록하거나(하이컬러/트루 컬러 모드가 사용될 때) 디스플레이 어댑터의 CLUT 하드웨어 레지스터에 기록한다(인덱스 컬러 모드가 사용될 때). 이들은 비례하는 전압을 디스플레이로 출력하는 DAC를 구동한다. 예를 들어, 24비트 RGB 색상(채널당 8비트)을 사용할 때 비디오 메모리에 128(바이트 범위 0-255의 반올림 중간점) 값을 기록하면 디스플레이에 비례하는 ≈ 0.5 전압을 출력하며, 이는 모니터 동작으로 인해 더 어둡게 표시된다. 또는 ≈ 50% 강도를 달성하기 위해 렌더링 소프트웨어는 128 대신 약 187에 가까운 값을 기록하도록 감마 부호화된 룩업 테이블을 적용할 수 있다.
- 최신 디스플레이 어댑터에는 전압을 모니터로 출력하는 DAC 이전에 부호화된 신호를 디지털 방식으로 수정하기 위해 적절한 감마 보정 룩업 테이블로 한 번 로드될 수 있는 전용 교정 CLUT가 있다.[21] 이러한 테이블을 올바르게 설정하는 것을 하드웨어 교정이라고 한다.[22]
- 일부 최신 모니터는 사용자가 감마 동작을 조작할 수 있도록 하여(마치 다른 밝기/대비 설정처럼), 화면에 표시되기 전에 입력 신호를 자체적으로 부호화한다. 이것은 또한 하드웨어 교정 기술이지만, 이전 경우처럼 디지털 값을 재매핑하는 대신 아날로그 전기 신호에서 수행된다.
올바르게 교정된 시스템에서는 각 구성 요소에 입력 및 출력 부호화를 위한 지정된 감마가 있다.[22] 단계는 다른 요구 사항을 충족하기 위해 감마를 변경할 수 있으며, 마지막으로 출력 장치는 필요에 따라 감마 복호화 또는 보정을 수행하여 선형 강도 도메인에 도달한다. 모든 부호화 및 보정 방법은 서로 다른 요소 간의 상호 지식 없이 임의로 중첩될 수 있다. 잘못 수행하면 이러한 변환은 심하게 왜곡된 결과를 초래할 수 있지만, 표준 및 규약에 따라 올바르게 수행하면 제대로 작동하는 시스템이 된다.
일반적인 시스템, 예를 들어 카메라에서 JPEG 파일, 디스플레이에 이르는 과정에서 감마 보정의 역할은 여러 협력 부품을 포함한다. 카메라는 저장 및 전송을 위해 표준 감마 값(예: 2.2) 중 하나를 사용하여 렌더링된 이미지를 JPEG 파일로 부호화한다. 디스플레이 컴퓨터는 픽셀 값을 비디오 메모리에 넣기 전에 색 관리 엔진을 사용하여 다른 색 공간(예: 구형 매킨토시의 γ = 1.8 색 공간)으로 변환할 수 있다. 모니터는 CRT 감마를 비디오 시스템에서 사용되는 감마와 일치시키기 위해 자체 감마 보정을 수행할 수 있다. 기본 표준 감마 값을 가진 표준 인터페이스를 통해 구성 요소를 조정하면 이러한 시스템을 올바르게 구성할 수 있다.
간단한 모니터 테스트
[편집]
이 절차는 프로필이 사용되지 않는 시스템(예: Firefox 3.0 이전 버전의 브라우저 및 기타 여러 브라우저) 또는 태그가 없는 소스 이미지가 sRGB 색 공간에 있다고 가정하는 시스템에서 모니터가 이미지를 대략적으로 올바르게 표시하도록 만드는 데 유용하다.
테스트 패턴에서 각 단색 막대의 강도는 주변 점선 디더의 강도 평균이 되도록 의도되었다. 따라서 이상적으로는 고체 영역과 디더가 지정된 감마에 적절하게 조정된 시스템에서 동일하게 밝게 보여야 한다.
일반적으로 그래픽 카드는 대비 및 명도 제어 기능을 가지며, 반투과형 LCD 모니터는 대비, 밝기 및 백라이트 제어 기능을 가진다. 그래픽 카드 및 모니터의 대비와 밝기는 유효 감마에 영향을 미치므로, 감마 보정이 완료된 후에는 변경해서는 안 된다.
테스트 이미지의 상위 두 막대는 올바른 대비 및 밝기 값을 설정하는 데 도움이 된다. 각 막대에는 8개의 세 자리 숫자가 있다. 적절한 보정을 거친 좋은 모니터는 양쪽 막대의 오른쪽 6개 숫자를 보여주며, 저렴한 모니터는 4개 숫자만 보여준다.
원하는 디스플레이 시스템 감마가 주어졌을 때, 관찰자가 모든 색상 영역의 바둑판 무늬 부분과 균일한 부분에서 동일한 밝기를 본다면 감마 보정이 대략적으로 올바르다.[23][24][25] 많은 경우 원색에 대한 감마 보정 값은 약간 다르다.
색온도 또는 백색점을 설정하는 것이 모니터 조정의 다음 단계이다.
감마 보정 전에 원하는 감마와 색온도는 모니터 제어를 사용하여 설정되어야 한다. 감마, 대비 및 밝기 제어를 사용하여 LCD의 감마 보정은 하나의 특정 수직 시야각, 즉 모니터의 한 특정 수평선, 하나의 특정 밝기 및 대비 수준에 대해서만 수행할 수 있다. ICC 프로파일을 사용하면 여러 밝기 수준에 대해 모니터를 조정할 수 있다. 모니터의 품질(및 가격)에 따라 이 작동 지점의 편차가 얼마나 만족스러운 감마 보정을 제공하는지 결정된다. 트위스티드 네마틱 (TN) 디스플레이는 색 깊이가 원색당 6비트로 가장 낮다. 일반적으로 8비트 색 깊이를 가진 IPS 패널 (IPS) 디스플레이가 더 좋다. 좋은 모니터는 10비트 색 깊이를 가지며, 하드웨어 색 관리 및 삼자극치색도계를 사용한 하드웨어 보정을 허용한다. 종종 6비트 + FRC 패널은 8비트로, 8비트 + FRC 패널은 10비트로 판매된다. FRC는 더 많은 비트의 진정한 대체물이 아니다. 24비트 및 32비트 색 깊이 형식은 원색당 8비트를 가진다.
마이크로소프트 윈도우 7 이상에서 사용자는 디스플레이 색상 보정 도구 dccw.exe 또는 다른 프로그램을 통해 감마 보정을 설정할 수 있다.[26][27][28] 이 프로그램들은 ICC 프로파일 파일을 생성하고 기본값으로 로드한다. 이는 색 관리를 쉽게 만든다.[29] dccw 프로그램의 감마 슬라이더를 마지막 색상 영역, 종종 녹색이 바둑판 무늬 영역과 균일한 영역에서 동일한 밝기를 가질 때까지 늘린다. 감마 보정 프로그램에서 색조화 또는 개별 색상 감마 보정 슬라이더를 사용하여 다른 두 색상을 조정한다. 일부 구형 그래픽 카드 드라이버는 대기 또는 최대 절전 모드에서 깨어난 후 색상 룩업 테이블을 올바르게 로드하지 못하고 잘못된 감마를 표시한다. 이 경우 그래픽 카드 드라이버를 업데이트한다.
X 윈도 시스템을 실행하는 일부 운영 체제에서는 xgamma -gamma 0.9 명령을 사용하여 감마 보정 계수를 0.9로 설정하고, xgamma 명령을 사용하여 현재 계수 값을 조회함으로써(기본값은 1.0) 감마 보정 계수(기존 감마 값에 적용됨)를 설정할 수 있다. macOS 시스템에서는 감마 및 기타 관련 화면 보정이 시스템 환경설정을 통해 이루어진다.
스케일링 및 혼합
[편집]일반적으로 픽셀 값에 대한 연산은 "선형 광"(감마 1)에서 수행되어야 한다. 에릭 브래서(Eric Brasseur)는 이 문제에 대해 자세히 논의하고 테스트 이미지를 제공한다.[30] 이들은 널리 퍼진 문제를 지적하는 역할을 한다. 많은 프로그램이 물리적으로 올바른 선형 공간 대신 감마가 있는 색 공간에서 스케일링을 수행한다. 테스트 이미지는 잘못 다운샘플링될 때 극적으로 다른 모양을 가지도록 구성된다. 요나스 베를린(Jonas Berlin)은 이 원리를 바탕으로 "당신의 스케일링 소프트웨어는 엉망/최고"라는 이미지를 만들었다.[31]
확대/축소 외에도 이 문제는 JPEG의 감마 지원 Y′CbCr에서의 크로마 서브샘플링과 같은 다른 형태의 다운샘플링(축소)에도 적용된다.[32] WebP는 선형 공간에서 크로마 평균을 계산한 다음 감마 지원 공간으로 다시 변환하여 이 문제를 해결한다. 더 큰 이미지의 경우 반복적인 솔루션이 사용된다. 동일한 샤프 YUV(이전의 스마트 YUV) 코드는 sjpeg 및 선택적으로 AVIF에서 사용된다. 코넬스키(Kornelski)는 루마 기반 가중 평균을 사용하여 더 간단한 근사치를 제공한다.[33] 알파 합성, 색상 그라디언트, 3D 렌더링도 이 문제의 영향을 받는다.[34][35]
역설적으로, 이미지를 업샘플링(확대)할 때 "잘못된"(비물리적인) 감마 색 공간에서 처리된 결과가 종종 미학적으로 더 만족스럽다.[36] 이는 미첼-네트라발리 및 랑초스와 같은 음의 로브를 가진 리샘플링 필터가 인간의 지각이 비선형이고 감마에 의해 더 잘 근사되는 반면 선형적으로 링잉 현상을 생성하기 때문이다. (선형 광(감마=1)에서 다운샘플링을 유도하는 "뒤로 물러서기"를 에뮬레이션하는 것은 업샘플링할 때는 적용되지 않는다.) 링잉 현상의 가시성을 줄이는 관련 방법은 이미지매직과 김프의 LoHalo 필터에서 개척되어 madVR, AviSynth 및 Mpv에 의해 비디오 업샘플링에 적용된 시그모이드 광 전송 함수를 사용하는 것이다.[37][38][39][40][41]
용어
[편집]"강도"는 엄밀히 말해 단위 시간당 단위 표면에서 방출되는 빛의 양을 룩스 단위로 나타낸다. 그러나 많은 과학 분야에서는 이 양을 광도와 구별하여 발광량이라고 부른다. 하지만 이러한 구분은 감마 압축과는 크게 관련이 없으며, 감마 압축은 모든 종류의 정규화된 선형 강도와 유사한 스케일에 적용될 수 있다.
"휘도"는 비디오 및 이미징의 맥락에서도 여러 가지 의미를 가질 수 있다.
- 휘도는 인간 눈의 파장 의존적 민감도(명순응 곡선)를 고려한 물체의 측광학적 밝기(단위: cd/m2)이다.
- 상대 휘도는 색 공간 인코딩에 사용되는 흰색 레벨에 대한 휘도이다.
- 루마는 인코딩된 비디오 밝기 신호, 즉 신호 전압 VS와 유사하다.
색상(감마 보정 없음) 의미의 상대 휘도와 비디오(감마 보정 있음) 의미의 루마를 대조하며, 상대 휘도를 Y로, 루마를 Y′로 표기하는데, 프라임 기호(′)는 감마 압축을 나타낸다.[42] 루마는 휘도에서 직접 계산되지 않고, 감마 압축된 RGB 구성 요소의 (어느 정도 임의적인) 가중 합이라는 점에 유의한다.[1]
마찬가지로 명도는 빛의 수준을 포함한 다양한 측정치에 적용되지만, 더 적절하게는 주관적인 시각적 속성에 적용된다.
감마 보정은 지수가 그리스 문자 감마 (γ)인 멱법칙 함수의 일종이다. 이는 수학적 감마 함수와 혼동해서는 안 된다. 소문자 감마 γ는 전자의 매개변수이고, 대문자 Γ는 후자의 이름(및 사용되는 기호)이다(Γ(x)와 같이). 감마 보정과 관련하여 "함수"라는 단어를 사용하려면 "일반화된 멱법칙 함수"라고 하여 혼동을 피할 수 있다.
맥락 없이 감마라고 표시된 값은 부호화 값 또는 복호화 값일 수 있다. 값을 보상에 적용할 것인지 또는 역함수를 적용하여 보상할 것인지 올바르게 해석하는 데 주의해야 한다. 일반적인 용어로, 많은 경우 복호화 값(예: 2.2)이 부호화 값 대신 역함수(이 경우 1/2.2)로 사용되는 경우가 많다. 이는 실제로 감마를 부호화하는 데 적용되어야 하는 값이다.
같이 보기
[편집]- 로그 부호화 (Log Encoding)
각주
[편집]- 1 2 3 4 5 6 Charles A. Poynton (2003). 《Digital Video and HDTV: Algorithms and Interfaces》. Morgan Kaufmann. 260, 630쪽. ISBN 1-55860-792-7.
- ↑ “PNG Specification 13. Appendix: Gamma Tutorial”. W3C. 1996년 10월 1일. 2018년 12월 3일에 확인함.
What is gamma correction?
- 1 2 Charles Poynton (2010). Frequently Questioned Answers about Gamma.
- ↑ Erik Reinhard; Wolfgang Heidrich; Paul Debevec; Sumanta Pattanaik; Greg Ward; Karol Myszkowski (2010). 《High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting》. Morgan Kaufmann. 82쪽. ISBN 9780080957111.
- ↑ McKesson, Jason L. “Chapter 12. Dynamic Range – Linearity and Gamma”. 《Learning Modern 3D Graphics Programming》. 2013년 7월 18일에 원본 문서에서 보존된 문서. 2013년 7월 11일에 확인함.
- ↑ Peter Hodges (2004). 《An introduction to video and audio measurement》 3판. Elsevier. 174쪽. ISBN 978-0-240-80621-1.
- ↑ R. W. G. Hunt, The Reproduction of Colour, 6th Ed., p. 48.
- ↑ Kodak, "Basic sensitometry and characteristics of film" 보관됨 2012-08-20 - 웨이백 머신: "A characteristic curve is like a film's fingerprint."
- 1 2 “Kodak Professional Tri-X 320 and 400 Films”. Eastman Kodak Company. May 2007. 2009년 8월 2일에 원본 문서 (PDF)에서 보존된 문서. 2015년 1월 3일에 확인함.
- ↑ “KODAK PROFESSIONAL PORTRA 160 Film” (PDF). 《imaging.kodakalaris.com》. kodak. 2019년 1월 29일에 확인함.
- ↑ “KODACHROME 25, 64, and 200 Professional Film” (PDF). 《wwwuk.kodak.com》. Kodak. 2019년 1월 29일에 확인함.
- ↑ 〈11A: Characteristics of systems for monochrome and color television〉. 《Reports of the CCIR, 1990: Also Decisions : XVIIth Plenary Assembly, Dusseldorf》 (PDF). International Radio Consultative Committee. 1990.
- ↑ 《Rec. ITU-R BT.470-6 - Conventional Television Systems》 (PDF). ITU-R. 1998. 9쪽.
- ↑ “Portable Network Graphics (PNG) Specification (Second Edition)”. 《www.w3.org》. 월드 와이드 웹 컨소시엄. 2020년 1월 25일에 확인함.
- ↑ Sivonen, Henri (2010년 3월 31일). “The Sad Story of PNG Gamma "Correction"”. 《hsivonen.fi》. 2021년 1월 25일에 확인함.
- ↑ Nicol, Jonathan (December 2006). “Fixing PNG Gamma”.
- ↑ Roelofs, Greg (2005년 8월 21일). “Browser Gamma-Consistency Test”. 《www.libpng.org》. 2020년 1월 25일에 확인함.
- ↑ “Gamma Test Page: Gamma-labelled PNGs (1/1.6) on HTML Colors”. 《www.libpng.org》. 2023년 7월 26일에 확인함.
- ↑ “Browser gamma test”.
- ↑ Fritz Ebner and Mark D Fairchild, "Development and testing of a color space (IPT) with improved hue uniformity," Proceedings of IS&T/SID's Sixth Color Imaging Conference, p 8-13 (1998).
- ↑ SetDeviceGammaRamp, the Win32 API to download arbitrary gamma ramps to display hardware
- 1 2 Jonathan Sachs (2003). Color Management. Digital Light & Color. 보관됨 2008-07-04 - 웨이백 머신
- ↑ Koren, Norman. “Monitor calibration and gamma”. 2018년 12월 10일에 확인함.
The chart below enables you to set the black level (brightness) and estimate display gamma over a range of 1 to 3 with precison [sic] better than 0.1.
- ↑ Nienhuys, Han-Kwang (2008). “Gamma calibration”. 2018년 11월 30일에 확인함.
The reason for using 48% rather than 50% as a luminance is that many LCD screens have saturation issues in the last 5 percent of their brightness range that would distort the gamma measurement.
- ↑ Andrews, Peter. “The Monitor calibration and Gamma assessment page”. 2018년 11월 30일에 확인함.
the problem is caused by the risetime of most monitor hardware not being sufficiently fast to turn from full black to full white in the space of a single pixel, or even two, in some cases.
- ↑ “Get the best display on your monitor - Calibrate your display”. Microsoft. 2018년 12월 10일에 확인함.
If you have a display calibration device and software, it's a good idea to use them instead of Display Color Calibration because they'll give you better calibration results.
- ↑ Werle, Eberhard. “Quickgamma”. 2018년 12월 10일에 확인함.
QuickGamma is a small utility program to calibrate a monitor on the fly without having to buy expensive hardware tools.
- ↑ Walters, Mike. “Monitor Calibration Wizard”. 2018년 12월 10일에 확인함.
Easy wizard for creating color profiles for you monitor.
- ↑ “About Color Management”. Microsoft. 2018년 12월 10일에 확인함.
Usually Windows handles this on its own
- ↑ Brasseur, Eric (August 2007). “Gamma error in picture scaling”. 2020년 3월 22일에 확인함.
Technically speaking, the problem is that "the computations are performed as if the scale of brightnesses was linear while in fact it is a power scale." In mathematical terms: "a gamma of 1.0 is assumed while it is 2.2." Lots of filters, plug-ins and scripts make the same error.
- ↑ Brasseur, Eric. “Gamma error in picture scaling, Acknowledgements”.
Jonas Berlin sent this image. Scale it down 1:2 with your software...
- ↑ Chan, Glenn (May 2008). 《Toward Better Chroma Subsampling: Recipient of the 2007 SMPTE Student Paper Award》. 《SMPTE Motion Imaging Journal》 117. 39–45쪽. doi:10.5594/J15100.
- ↑ “Gamma-correct chroma subsampling · Issue #193 · mozilla/mozjpeg” (영어). 《GitHub》.
- ↑ Archived at Ghostarchive and the Wayback Machine: Minute Physics (2015년 3월 20일). “Computer Color is Broken”. 《유튜브》.
- ↑ Novak, John (2016년 9월 21일). “What every coder should know about gamma”.
- ↑ Nicolas Robidoux. “Re: Enlarge with sRGB, RGB, LAB, LUV, XYZ, sigmoidal...?”. 《ImageMagick discourse server》.
Generally, the linear light colour spaces (linear RGB and XYZ) produce exaggerated dark halos, and the "perceptual" colour spaces (sRGB, LAB, LUV) produce exaggerated light halos. If you think about it for a minute, this makes complete sense, because the perceptual colour spaces pack lots of bits at the darker end of the intensity spectrum, and "hollow out" the lighter end, so as to mimick the HVS (Human Visual System). So, 1 unit of dark overshoot gets you less "far" in sRGB than in linear RGB, but 1 unit of light overshoot gets you less "far" in linear RGB than sRGB.
- ↑ Anthony Thyssen. “Resizing using a Sigmoidal Colorspace” (영어). 《imagemagick.org》.
A new technique has been developed in which rather than trying to resize images in a linear color space, the image is resized in a modified colorspace using the Sigmoidal Color Modifier Operator (-sigmoidal-contrast). This can reduce the clipping of extreme halo or Ringing Artefacts that may develop along very sharp edges.
- ↑ “GNOME/gegl: gegl-sampler-lohalo.c” (영어). 《GitHub》.
Sigmoidization was invented by N. Robidoux as a method of minimizing the over and undershoots that arise out of filtering with kernel with one more negative lobe. It basically consists of resampling through a colorspace in which gamut extremes are "far" from midtones.
- ↑ Mathias Rauen. “madVR - high quality video renderer (GPU) assisted)” (영어). 《forum.doom9.org》.
I've now implemented your sigmoid function "stretching" and it seems to work well, from what I can see.
- ↑ “Dither tools” (영어). 《AviSynth wiki》.
Dither_sigmoid_inverse applies the inverse sigmoid curve to a clip in linear luminance in order to lessen the ringing when resizing it. Dither_sigmoid_direct converts back a clip to linear luminance. The chroma channels remain untouched.
- ↑ “mpv-player: options.rst” (영어). 《GitHub》.
When upscaling, use a sigmoidal color transform to avoid emphasizing ringing artifacts. Enabled by default. This is incompatible with and replaces --linear-upscaling. (Note that sigmoidization also requires linearization, so the LINEAR rendering step fires in both cases)
- ↑ Engineering Guideline EG 28, "Annotated Glossary of Essential Terms for Electronic Production," SMPTE, 1993.
외부 링크
[편집]- (한국어) 감마 보정(gamma correction), 감마 인코딩(gamma encoding)의 이해 보관됨 2016-03-04 - 웨이백 머신
- (영어) Rehabilitation of gamma 감마에 대한 설명. 감마와 관련된 여러 오해들에 대해 자세히 설명하고 있다. (PDF)
- (영어) Linear and nonlinear coding 선형 부호화 및 비선형 부호화에 대한 설명
- (영어) Frequently Asked Questions about Gamma 감마 FAQ
- (영어) Xona.com - Color List - shows vast improvements gamma correction makes (2,000+ colors with and without gamma correction)
- (영어) Gamma tutorial (from the PNG specification)
- (영어) Measuring Gamma for Monitors (Gernot Hoffman)
- (영어) Monitor test pattern for correct gamma correction (by Norman Koren)
- (영어) Links browser Gamma Calibration page
- (영어) High Dynamic Range Image Encodings