맨위로가기

SRGB

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

sRGB는 빨강, 녹색, 파랑의 색도와 전달 함수를 정의하는 표준 RGB 색 공간이다. HDTV의 원색을 기반으로 하며, CRT 모니터의 특성을 반영하도록 설계되었다. sRGB는 CIE 1931 색 공간에서 정의된 색역을 가지며, 색상 값은 비선형적으로 인코딩되어 저장된다. sRGB는 인터넷, 컴퓨터, 프린터에서 널리 사용되며, OpenGL 및 Direct3D와 같은 프로그래밍 인터페이스에서 지원된다. 또한 ICC 프로파일을 통해 다른 색상 공간으로 변환할 수 있으며, sYCC라는 YCbCr 색상 표현도 정의한다.

광고

더 읽어볼만한 페이지

  • 색 공간 - SÉCAM
    SECAM은 프랑스에서 개발된 아날로그 컬러 텔레비전 방송 방식으로, PAL에 비해 수직 색 해상도가 낮고 아날로그 편집이 어려운 단점이 있으며, 프랑스의 옛 식민지, 일부 동유럽 국가, 소련 등에서 사용되었으나 현재는 사용 국가가 크게 감소하였다.
  • 색 공간 - PAL
    PAL은 발터 브루흐가 개발한 컬러 텔레비전 방송 표준으로, 위상 오차 자동 보정 기능을 가지며, 다양한 변종이 존재했으나 디지털 방송으로 전환되며 사용이 감소하고, 색상 정보 인코딩 방식을 나타낸다.

2. sRGB 정의

(내용 없음 - 주어진 원본 소스만으로는 해당 섹션에 추가할 고유한 정보가 없으며, 하위 섹션과의 중복을 피하기 위해 내용을 생략함)

2. 1. 색역 (Gamut)

sRGB 표준은 빨강(Red), 녹색(Green), 파랑(Blue) 원색의 색도를 정의하며, 이는 세 색상 채널 중 하나만 최댓값을 가지고 나머지 두 채널은 0인 색상을 의미한다. 각 원색과 화이트 포인트(White Point)의 CIE xyY 색도 좌표는 다음과 같다.

색도빨강녹색파랑화이트 포인트
x0.64000.30000.15000.3127
y0.33000.60000.06000.3290
Y0.21260.71520.07221.0000



sRGB에서 표현할 수 있는 색상의 범위, 즉 색역(Gamut)은 이 세 원색이 CIE xy 색도 다이어그램 상에서 만드는 색상 삼각형(Color triangle)으로 정의된다. 이 색역 삼각형은 정상적인 삼색 시각을 가진 사람이 인지할 수 있는 색상 범위 내에 잘 포함되도록 설정되었다. 모든 RGB 색 공간과 마찬가지로, R, G, B 값이 음수가 아닌 경우에는 이 삼각형 바깥의 색상을 표현하는 것이 불가능하다.

sRGB의 원색은 HDTV 표준인 ITU-R BT.709에서 가져왔으며, 이는 이전의 아날로그 컬러 TV 시스템(ITU-R BT.601)에서 사용하던 원색과는 다소 차이가 있다. 이 값들은 표준이 제정될 당시 소비자용 CRT 디스플레이에 사용되던 형광체의 대략적인 색상을 반영하여 선택되었다. 당시 평판 디스플레이 기술은 일반적으로 CRT의 특성을 모방하도록 설계되었기 때문에, 이 값들은 다른 유형의 디스플레이 장치에서도 통용되는 기준이 되었다.

2. 2. 전달 함수 (Transfer function, "gamma")



sRGB 디스플레이에서 각 단색 막대는 주변의 줄무늬 디더와 동일한 밝기로 보여야 한다. (참고: 원본, 100% 크기로 보아야 한다)


sRGB 표준은 물리적 밝기 값(단위 면적당 방출되는 발광 전력에 비례)을 컴퓨터 메모리 또는 이미지 파일에 저장될 정수 R, G 및 B 값으로 비선형적으로 인코딩하도록 지정한다. 이 전달 함수는 일반적으로 '''감마 인코딩'''이라고 하며, 낮은 밝기 값에서는 선형 함수와 나머지 범위에서는 변위된 멱함수의 조합으로 이루어진다.

구체적으로, z를 인코딩된 R, G 또는 B 값이라고 가정하고, 이는 0(빛 없음)에서 최대값 M(해당 채널의 최대 표시 가능 강도를 의미)까지의 정수라고 가정한다. 일반적으로 z가 8비트 정수일 때 M은 255이고, 일반적으로 N비트 정수일 때는 2^N - 1이다. z로 표현되는 물리적 강도는 v = D(z/M)으로 정의되며, 여기서 디코딩 함수 D는 다음과 같이 정의된다.[4]

:D(u) = \begin{cases}

u/A, & u \le U \\[5mu]

\left(\frac{\displaystyle u + C}{\displaystyle 1+C}\right)^\Gamma, & u > U

\end{cases}

여기서 U=0.04045, A=12.92, C = 0.055, 그리고 \Gamma=2.4이다. 결과는 빛이 없을 경우 0이고 최대 강도일 경우 1이다. 값 v = D(z/M)은 인코딩된 샘플 z에 해당하는 "선형 값" 또는 "선형-광 값"이라고도 한다.

반대로, 표시할 물리적 R, G 또는 B 강도에 비례하는 0과 1 사이의 값 v가 주어지면 인코딩된 정수 강도는 z = \operatorname{round}(M E(v))가 되며, 여기서 인코딩 함수 E는 다음과 같이 정의된다.[4]

:E(v) = \begin{cases}

A v, & v \le V \\[5mu]

(1 + C)v^{1/\Gamma} - C, & v > V

\end{cases}

여기서 V=0.0031308이고, A, C\Gamma는 디코딩 함수 D와 동일한 값을 가진다.

위에 제시된 sRGB 인코딩 및 디코딩 함수 DE는 BT.709의 함수와 형태가 유사하지만, 값에는 눈에 띄는 차이가 있다.[17] 매개변수 반올림으로 인해 선형 부분과 비선형 부분 사이의 전환 지점에서 10−8 정도의 작은 불연속성이 발생하지만, 이는 대부분의 실제 상황에서 중요하지 않다.[7]

인수 u의 중간 및 큰 값의 경우, 디코딩 함수 D는 실제로 지수(감마)가 2.2인 순수한 멱함수와 매우 가깝다. 그러나 낮은 값(분기점 U 주변 및 그 미만)에서는 차이가 감지될 수 있다.[17][8]

필요한 경우 인코딩 및 디코딩 함수 D, E는 1보다 큰 인수에 대해서도 사용할 수 있다. 또한 항등식 D(-u) = -D(u), E(-v) = -E(v)를 사용하여 음수 값으로 확장될 수 있다.[4]

실제로, "sRGB" 파일에서 이미지 색상을 인코딩하거나 디코딩하는 데 사용되는 공식에 대한 논쟁과 혼란이 여전히 존재한다. 이러한 혼란의 일부는 \Gamma 값이 초기 초안(널리 사용 가능했던 버전)에서는 2.2였으나 최종 문서(유료로 제공됨)에서는 2.4로 변경된 데 기인한다.[9] 또한 프로그래머들은 코드의 단순성이나 효율성을 위해 올바른 조각별 공식을 사용하는 대신 "순수한" 멱함수 D(u) =u^{2.2}를 선택하기도 한다. 일부 운영 체제 및 프로그램은 2.2 지수를 가진 순수한 멱함수와 같이 실제로는 다른 유효 디코딩 함수를 가진 모니터에 직접 sRGB 인코딩된 이미지를 보낼 수도 있다.[8]

2. 3. CIE XYZ 자극과의 대응

sRGB 표준은 빨강, 녹색, 파랑 기본 색상의 색도와 백색점을 다음과 같이 정의한다. 여기서 각 기본 색상은 해당 채널만 0이 아니고 다른 두 채널은 0인 색상을 의미한다.

색도빨강녹색파랑백색점 (D65)
x0.64000.30000.15000.3127
y0.33000.60000.06000.3290
Y (상대 휘도)0.21260.71520.07221.0000



sRGB에서 표현할 수 있는 색도 범위, 즉 색역은 위 표의 빨강, 녹색, 파랑 기본 색상으로 정의되는 색상 삼각이다. 이 색역은 일반적인 삼색 시각을 가진 사람이 볼 수 있는 색상 범위 내에 있도록 설정되었다. 다른 RGB 색 공간과 마찬가지로, R, G, B 값이 음수가 아닌 경우 이 삼각형 밖의 색상은 표현할 수 없다.

sRGB의 기본 색상은 HDTV 표준인 ITU-R BT.709에서 가져왔으며, 이는 이전 컬러 TV 시스템 표준(ITU-R BT.601)의 기본 색상과는 약간 다르다. 이 값들은 sRGB 표준이 제정될 당시 소비자용 CRT 디스플레이의 형광체 색상을 대략적으로 반영하여 선택되었다. 당시 평판 디스플레이들도 일반적으로 CRT의 특성을 모방하여 설계되었기 때문에, 이 값들은 다른 디스플레이 장치들의 일반적인 특성도 반영한다.

sRGB 표준은 감마 인코딩 전의 선형 RGB 값(Rlinear, Glinear, Blinear)과 CIE XYZ 색상 좌표 사이의 변환 행렬도 정의한다. 이 변환은 세 기본 색상의 정확한 색상과 상대적인 강도(휘도)를 지정하며, BT.709 표준에서 지정한 것과 동일하다.[21] 행렬 표기법으로는 다음과 같다.[4]

:

\begin{bmatrix} X_{D65} \\ Y_{D65} \\ Z_{D65} \end{bmatrix}

=

\begin{bmatrix}

0.4124 & 0.3576 & 0.1805 \\

0.2126 & 0.7152 & 0.0722 \\

0.0193 & 0.1192 & 0.9505

\end{bmatrix}

\begin{bmatrix} R_\text{linear} \\ G_\text{linear} \\ B_\text{linear} \end{bmatrix}



이 계수들은 정확한 값으로 간주해야 하며,[3] CIE XYZ 값은 2° 표준 색상 관찰자를 기준으로 한다.[20] 특히, 위 행렬의 두 번째 행(0.2126, 0.7152, 0.0722)은 선형 R, G, B 값으로부터 BT.709-2 휘도(Y) 값을 계산하는 방법을 보여준다. 이는 위 표의 Y 값과 일치한다.

반대로 CIE XYZ 값을 선형 sRGB 값으로 변환하는 행렬은 위의 행렬을 역산하여 얻을 수 있다. 1999년 발표된 sRGB 표준은 다음의 역변환 행렬을 제시했다.

:

\begin{bmatrix} R_\text{linear} \\ G_\text{linear} \\ B_\text{linear} \end{bmatrix}

= \begin{bmatrix}

+3.2406 & -1.5372 & -0.4986 \\


  • 0.9689 & +1.8758 & +0.0415 \\

+0.0557 & -0.2040 & +1.0570

\end{bmatrix}

\begin{bmatrix} X_{D65} \\ Y_{D65} \\ Z_{D65} \end{bmatrix}



이 행렬은 sRGB에서 XYZ로 변환하는 행렬의 정확한 역행렬은 아니지만, 8비트(채널당 256단계)로 색상을 표현하는 데에는 충분히 정확하다고 간주되었다.

2003년 개정된 sRGB 표준[4]에서는 8비트보다 높은 정밀도로 색상을 표현할 때 더 정확한 변환이 필요함을 지적하며 다음과 같은 개선된 역변환 행렬을 제공했다.

:

\begin{bmatrix} R_\text{linear} \\ G_\text{linear} \\ B_\text{linear} \end{bmatrix}

= \begin{bmatrix}

+3.2406255 & -1.5372080 & -0.4986286 \\

  • 0.9689307 & +1.8757561 & +0.0415175 \\

+0.0557101 & -0.2040211 & +1.0569959

\end{bmatrix}

\begin{bmatrix} X_{D65} \\ Y_{D65} \\ Z_{D65} \end{bmatrix}



이 행렬은 16비트(채널당 65536단계) 정밀도의 색상 표현에 충분히 정확하다고 여겨진다.

위 변환 공식들을 사용할 때, 입력되는 CIE XYZ 값은 D65 백색점을 기준으로 하며, 이때 백색의 휘도 ''Y'' 값은 1.0이 되도록 조정되어야 한다 (즉, ''X'' = 0.9505, ''Y'' = 1.0000, ''Z'' = 1.0890). 일부 다른 색 공간(예: CIELAB)에서는 기준 백색의 Y 값을 100 등으로 사용하는 경우도 있으므로 주의가 필요하다.

2. 4. 시청 환경 (Viewing environment)

sRGB 사양은 주변 상관 색온도(CCT)가 5003 K인 어둡게 비춰진 인코딩(생성) 환경을 가정한다.

매개변수
화면 휘도 수준80 cd/m2
광원 백색점x = 0.3127, y = 0.3290 (광원 D65)
이미지 주변 반사율20% (~ 중간 회색)
인코딩 주변 조도 수준64 럭스
인코딩 주변 백색점x = 0.3457, y = 0.3585 (D50)
인코딩 시야 플레어1.0%
일반적인 주변 조도 수준200 럭스
일반적인 주변 백색점x = 0.3457, y = 0.3585 (D50)
일반적인 시야 플레어5.0%



가정된 주변 CCT는 화면 백색점으로 유지되는 BT.709 표준 광원(광원 D65)의 CCT와 다르다. 두 환경 모두 D50을 사용하면 대부분의 사진 용지의 백색점이 지나치게 푸르게 보일 수 있기 때문이다.[22][23] 휘도 수준과 같은 다른 매개변수들은 일반적인 CRT 모니터를 기준으로 설정되었다.

최적의 결과를 얻기 위해, ICC는 덜 엄격한 일반적인 시야 환경 대신 인코딩 시야 환경(즉, 어둡고 확산된 조명)을 사용할 것을 권장한다.[19]

3. bg-sRGB 공간

2003년 sRGB 표준의 부록 G에서는 채널당 비트 수 N이 10 이상일 때 권장되는 '''bg-sRGB'''라는 대체 색상 값 인코딩 방식을 설명한다.

이 방식에서는 정수 인코딩된 샘플 값 z와 해당 선형 R, G 또는 B 값 v는 다음 공식을 통해 연관된다.

:v = D\left(\frac{\displaystyle z - K}{\displaystyle W - K}\right)

그리고

:z = \mbox{round}(K + (W-K)E(v))

여기서 DE 함수는 sRGB 공간과 동일하다. 표준에서는 N=10일 때 K = 384, W = 894로 지정하며, 일반적으로 N>10인 경우 다음 식으로 계산한다.

: K = 3\times 2^{N-3}\quad\quad W = K + 255\times 2^{N-9}

bg-sRGB 색 공간에서는 0의 강도(v=0)는 정수 K로, 최대 표시 가능 강도(v=1)는 정수 W로 인코딩된다. 이 인코딩 방식은 sYCC에서 변환하는 경우처럼 음수 또는 1보다 큰 값 v가 생성될 수 있는 색 공간 조작에 유용하다.[4]

4. 역사

물리적 데이터 샘플을 비선형적으로 인코딩하는 것은 인간의 감각이 물리적 자극을 인지하는 비선형적인 방식을 고려하여 인코딩된 신호에 가용 비트를 더 효율적으로 사용하기 위한 일반적인 디지털 신호 처리 기술이다. 작은 신호에 대해 더 작은 증분을 사용함으로써 양자화로 인한 오류를 줄일 수 있다.

이 원리는 초창기 컴퓨터 모니터의 디지털-아날로그 변환기 및 아날로그 회로에 통합되어, 지수 2에서 3 사이의 대략적인 거듭제곱 법칙 형태인 효과적인 디코딩 함수(디지털 샘플 값에서 화면에 표시되는 강도로의 매핑)를 만들어냈다. 이 지수는 일반적으로 그리스 문자 \gamma(감마)로 표시되었으며, 이 함수에 대한 일반적인 이름은 "감마 보정"이었다. 초기에는 이 매핑 방식이 CRT 제조업체마다 달랐으나, 1993년 ITU는 HDTV 시스템에서 사용하기 위해 BT.709 표준[12]을 제정하여 이를 정규화했다. BT.709 표준은 0에 가까운 영역에서는 선형 함수를 사용하고, 그 외의 영역에서는 지수가 1/0.45 ≈ 2.222인 이동된 거듭제곱 법칙으로 전환되는 디코딩 함수를 명시했다.

sRGB 인코딩은 몇 년 후 휴렛 팩커드(Hewlett-Packard)와 마이크로소프트(Microsoft)가 당시 윈도우 운영체제와 함께 사용되던 대부분의 CRT 컴퓨터 모니터의 디코딩 함수를 설명하기 위해 만들었다. 이는 BT.709에서 가정한 것과는 여전히 차이가 있었다.[16] sRGB 표준의 첫 번째 초안은 1996년에 발표되었다. 불완전하지만 네 번째 초안은 온라인에서 찾아볼 수 있다.[2] BT.709와 마찬가지로 sRGB 디코딩 함수는 0 근처의 선형 구간과 이동된 거듭제곱 법칙 구간으로 정의되었다.[10][11]

4. 0. 1. 공식 유도에 대한 정당성



sRGB 표준은 물리적 밝기 값(단위 면적당 방출되는 발광 전력에 비례)을 컴퓨터 메모리나 이미지 파일에 저장될 정수 R, G, B 값으로 비선형적으로 인코딩하는 방식을 규정한다. 이 전송 함수는 흔히 '''감마 인코딩'''이라고 불리며, 낮은 밝기 값에서는 선형 함수를, 나머지 범위에서는 변위된 멱함수를 조합하여 사용한다.

구체적으로, 인코딩된 R, G 또는 B 값을 z라고 하자. z는 0(빛 없음)부터 최대값 M(해당 채널의 최대 표시 가능 강도)까지의 정수이다. 일반적으로 8비트 정수에서는 M=255이고, N비트 정수에서는 M=2^N - 1이다. z로 표현되는 물리적 강도는 v = D(z/M)로 정의되며, 여기서 디코딩 함수 D는 다음과 같다.[4]

:D(u) = \begin{cases} u/A, & u \le U \\[5mu] \left(\frac{\displaystyle u + C}{\displaystyle 1+C}\right)^\Gamma, & u > U \end{cases}

여기서 U=0.04045, A=12.92, C = 0.055, \Gamma=2.4이다. 결과 v는 빛이 없을 때 0이고 최대 강도일 때 1이 된다. 이 값 v = D(z/M)는 인코딩된 샘플 z에 해당하는 "선형 값" 또는 "선형-광 값"이라고도 불린다.

반대로, 표시할 물리적 R, G 또는 B 강도에 비례하는 0과 1 사이의 값 v가 주어지면, 인코딩된 정수 강도는 z = \mbox{round}(M E(v))가 되며, 여기서 인코딩 함수 E는 다음과 같이 정의된다.[4]

:E(v) = \begin{cases} A v, & v \le V \\[5mu] (1 + C)v^{1/\Gamma} - C, & v > V \end{cases}

여기서 V=0.0031308이고, A, C, \Gamma는 디코딩 함수 D와 동일하다.

이러한 sRGB 인코딩 및 디코딩 함수 DE는 BT.709의 함수와 형태는 유사하지만, 파라미터 값에는 눈에 띄는 차이가 있다.[17] 파라미터 반올림으로 인해 선형 부분과 비선형 부분 사이의 전환 지점에서 약 10−8 정도의 작은 불연속성이 발생하지만, 이는 대부분의 실제 상황에서 중요하지 않다.[7]

인수 u의 중간 및 큰 값에 대해 디코딩 함수 D는 지수(감마)가 2.2인 순수한 멱함수와 매우 유사하다. 그러나 낮은 값(분기점 U 주변 및 그 이하)에서는 차이가 감지될 수 있다.[17][8] 필요한 경우, 인코딩 및 디코딩 함수 D, E는 1보다 큰 인수나 음수 값에 대해서도 확장하여 사용할 수 있다(D(-u) = -D(u), E(-v) = -E(v)).[4]

이론적으로 인코딩 및 디코딩 함수의 파라미터는 선형 구간에서 지수 함수 구간으로의 전환이 연속적(갑작스러운 단계 변화 없이)이고 매끄럽게(기울기의 급격한 변화 없이) 이루어지도록 선택되어야 한다.[16] 디코딩 함수를 유도하기 위해, 원점 (0,0)을 지나는 직선인 선형 함수 y = x/A와 점 (1,1)을 지나는 이동된 지수 함수 곡선 y = \left(\frac{x+C}{1+C}\right)^\Gamma를 고려한다. x=U에서 두 함수가 매끄럽게 연결되려면 다음 두 조건이 만족되어야 한다.

1. 연속성 조건: 두 함수의 값이 x=U에서 같아야 한다.

:\frac{U}{A} = \left(\frac{U+C}{1+C}\right)^\Gamma

2. 매끄러움 조건: 두 함수의 도함수(기울기)가 x=U에서 같아야 한다.

:\frac{1}{A} = \Gamma\left(\frac{U+C}{1+C}\right)^{\Gamma-1}\left(\frac{1}{1+C}\right)

이 두 방정식을 UA에 대해 풀면 다음과 같다.

:U = \frac{C}{\Gamma-1}\;\;\;\;\; A = \frac{(1+C)^\Gamma(\Gamma-1)^{\Gamma-1}}{(C^{\Gamma-1})(\Gamma^\Gamma)}

sRGB 표준의 초기 초안에서는 C = 0.055\Gamma= 2.4를 설정했다. 이는 결과적인 디코딩 함수 D가 당시 컴퓨터 모니터의 일반적인 특성으로 여겨졌던 지수(감마) 2.2의 순수한 멱법칙과 매우 유사하도록 만들기 위함이었다. 이 선택은 분기점 U \approx 0.0392857...와 선형 계수 A \approx 12.9232102...를 의미했다. 이 값들은 U = 0.03928A = 12.92321로 반올림되어 일부 문헌에 여전히 잘못 기재되기도 한다.[6] 그러나 sRGB 초안 표준에서는 A 값을 12.92로 이미 반올림했으며, 이로 인해 곡선에 작은 불연속성이 발생했다.

1999년 IEC에서 발표된 표준의 첫 공식 버전에서는 A = 12.92라는 반올림된 값을 유지하면서, 곡선을 거의 연속적으로 만들기 위해 분기점 U0.04045로 재정의했다. 이 값들을 사용해도 교차점 직전(1/12.92)과 직후(1/12.70)의 기울기에 여전히 불연속성이 존재한다. 최종 표준은 또한 초안에 있던 몇 가지 작은 반올림 오류를 수정했다.

1999년 IEC 표준은 2003년에 수정되었다.[4] sRGB에서 CIE XYZ 행렬은 유지되었지만, 위의 역변환은 소수점 7자리의 더 정확한 버전으로 대체되었다. 수정된 표준에는 또한 R, G 및 B 좌표 대신 휘도(Y) 및 두 개의 색도 좌표(CC)를 사용하는 sYCC 인코딩, 그리고 0-1 범위를 벗어나는 일부 구성 요소 값을 허용하는 10비트 구성 요소에 대한 bg-sRGB 인코딩의 정의가 포함되었다.

실제로 "sRGB" 파일에서 이미지 색상을 인코딩하거나 디코딩하는 데 사용되는 공식에 대한 논쟁과 혼란이 여전히 존재한다. 혼란의 일부는 \Gamma 값이 초기 초안(널리 퍼짐)의 2.2에서 최종 문서(유료 구매 필요)의 2.4로 변경된 데서 비롯된다.[9] 또한 프로그래머들은 코드의 단순성이나 효율성을 위해 올바른 조각별 공식을 사용하는 대신 "순수한" 멱함수 D(u) =u^{2.2}를 선택하기도 한다. 일부 운영 체제나 프로그램은 실제로 다른 유효 디코딩 함수(예: 2.2 지수를 가진 순수 멱함수)를 가진 모니터에 sRGB로 인코딩된 이미지를 직접 보내기도 한다.[8]

5. 사용

인터넷, 컴퓨터, 프린터 등 다양한 디지털 환경에서 sRGB는 표준 색 공간으로 널리 사용된다. 이는 디지털 카메라이미지 스캐너 같은 많은 보급형 및 중급형 소비자 기기에서 기본적이거나 유일하게 사용 가능한 작업 색 공간으로 채택되는 이유이다. 하지만 소비자 수준의 CCD는 일반적으로 보정되지 않는 경우가 많아, 특정 기기나 이미지가 'sRGB'라고 표시되어 있더라도 실제 색상이 표준과 정확히 일치한다고 단정하기는 어렵다.

이미지의 색상 공간 정보가 명확하지 않고, R, G, B 각 채널이 8비트로 인코딩된 경우, 일반적으로 해당 이미지는 sRGB 인코딩을 따르는 것으로 간주된다.

일부 RGB 및 CMYK 색상 영역의 CIE 1931 xy 색도 다이어그램 비교. sRGB(빨간색 삼각형)는 다른 색 공간과 비교하여 표현 가능한 색상 범위가 제한적임을 보여준다.


sRGB 색상 영역은 일반적인 보급형 잉크젯 프린터의 색상 표현 범위를 충족하거나 넘어서므로, 가정용 인쇄 환경에서는 sRGB 이미지만으로도 만족스러운 결과물을 얻는 경우가 많다. 그러나 sRGB는 특히 청록색 계열에서 CMYK 인쇄 방식으로 재현 가능한 모든 색상을 포함하지 못하는 한계가 있다. 이 때문에 고급 인쇄 출판 전문가들은 sRGB 사용을 피하는 경향이 있다. 전문적인 인쇄 작업, 예를 들어 프리프레스 출력과 같이 완전한 색상 관리 워크플로가 필요한 경우에는 더 넓은 색상 영역을 지원하는 Adobe RGB (1998)와 같은 다른 색 공간을 사용하는 것이 일반적이다. 이러한 다른 색 공간으로 작업된 이미지를 인터넷 등 sRGB 환경에서 사용해야 할 때는, 해당 색 공간을 지원하는 소프트웨어에 포함된 색상 관리 도구를 사용하여 sRGB로 변환할 수 있다.

sRGB는 이미지의 밝기 정보를 효율적으로 저장하고 표시하기 위해 비선형적인 방식(감마 인코딩)을 사용한다. 이는 인간의 시각이 밝기 변화에 비선형적으로 반응하는 특성을 고려한 것이다.[4][17] 하지만 실제 구현에서는 감마 값 적용 방식(예: 단순 멱함수 사용)이나 운영체제, 프로그램별 처리 방식의 차이로 인해 약간의 색상 표현 차이가 발생할 수 있다.[8][9]

5. 1. 프로그래밍 인터페이스 지원

3D 그래픽을 위한 주요 프로그래밍 인터페이스인 OpenGLDirect3D는 모두 sRGB 감마 곡선 지원 기능을 포함하고 있다. OpenGL은 sRGB 감마로 인코딩된 색상 요소를 가진 텍스처를 지원한다. 이 기능은 EXT_texture_sRGB 확장으로 처음 도입되었고,[13] OpenGL 2.1 버전부터는 핵심 기능으로 포함되었다. 또한, sRGB 감마로 인코딩된 프레임 버퍼에 렌더링하는 기능도 지원하는데, 이는 EXT_framebuffer_sRGB 확장을 통해 처음 도입되었으며,[14] OpenGL 3.0부터 핵심 기능이 되었다.

sRGB 감마 텍스처를 사용할 때 올바른 mipmap 처리와 보간법 적용은 대부분의 최신 GPU에 내장된 텍스처 처리 유닛에서 하드웨어적으로 직접 지원된다. 예를 들어, 엔비디아(Nvidia)의 지포스 8(GeForce 8) 시리즈는 8비트 텍스처 값을 보간하기 전에 선형 값으로 변환하는 기능을 갖추고 있어, sRGB 텍스처 사용으로 인한 성능 저하가 거의 없다.[15]

5. 2. ICC 프로파일

룩업 테이블은 계산 없이 sRGB를 다른 색 공간으로 효율적으로 변환하는 데 사용될 수 있다. 국제 색채 컨소시엄(ICC)은 이러한 목적으로 널리 사용되는 색상 프로파일을 발표했다.[19][20] ICCmax, 버전 4, 버전 2를 포함한 여러 변형이 있다.[18]

버전 4가 일반적으로 권장되지만, 버전 2는 여전히 널리 사용되며 브라우저를 포함한 다른 소프트웨어와의 호환성이 가장 높다. 그러나 해당 ICC 프로파일과 IEC sRGB 표준 간에 불일치가 지적되었다.[24] 특히 ICC 프로파일 사양의 버전 2는 IEC sRGB 표준에서 지정한 조각별 매개변수 곡선 인코딩을 구현하지 않고 단순한 멱함수만 구현한다.[18]

6. sYCC 색 공간

IEC 61966-2-1:1999 표준의 2003년 개정판(Amendment 1)에서는 '''sYCC'''라고 불리는 Y′Cb′Cr′ 색상 표현 방식이 정의되었다. sYCC의 RGB 색상 기본 요소는 BT.709 표준을 기반으로 하지만, sRGB 색 공간과 sYCC 색 공간 사이의 변환 방정식은 BT.601 표준을 따른다. sYCC 표준은 인코딩된 각 색상 구성 요소(Y′, Cb′, Cr′)에 대해 8비트를 사용하도록 명시하고 있다. 변환 행렬(matrix)은 Y′(휘도) 성분에 대해 대략 0에서 1까지의 범위를 가지며, Cb′와 Cr′(색차) 성분에 대해서는 -0.5에서 0.5까지의 범위를 갖도록 정의된다.[4]

이 변환 과정에서 계산된 sRGB 값이 표준 범위인 0에서 1 사이를 벗어나는 경우가 발생할 수 있다. 이러한 문제를 해결하기 위해, 개정된 표준에서는 음수 값에 감마 보정을 적용하는 방법을 구체적으로 설명한다. 입력값 `x`가 음수일 경우, `−''f''(−''x'')`와 같은 방식으로 계산하여 처리한다. 여기서 ''f''는 sRGB 색 공간과 선형 색 공간 사이의 변환 함수를 의미한다. 이와 같은 음수 값 처리 방식은 scRGB 색 공간에서도 동일하게 사용된다.

참조

[1] 웹사이트 A Standard Default Color Space for the Internet – sRGB, Version 1.10 https://www.w3.org/G[...] 1996-11-05
[2] 문서 fourth working draft (4WD) for 2CD of IEC 61966-2-1 https://web.archive.[...]
[3] 웹사이트 IEC 61966-2-1:1999 https://webstore.iec[...] International Electrotechnical Commission 2017-03-03
[4] 웹사이트 IEC 61966-2-1:1999 Multimedia systems and equipment – Colour measurement and management – Part 2-1: Colour management – Default RGB colour space – sRGB: Amendment 1 https://webstore.iec[...] International Electrotechnical Commission 2003
[5] 서적 Digital Video and HDTV: Algorithms and Interfaces https://books.google[...] Morgan Kaufmann
[6] 서적 Colour Engineering: Achieving Device Independent Colour https://books.google[...] John Wiley and Sons
[7] 문서 A close look at the sRGB formula https://entropymine.[...] 2012
[8] Youtube Colour Online: sRGB... We Need To Talk https://www.youtube.[...] 2020
[9] 서적 Acquisition and Reproduction of Color Images: Colorimetric and Multispectral Approaches https://books.google[...] Universal-Publishers.com
[10] 간행물 BBC RD 1991/6 Methods of Measuring and Calculating Display Transfer Characteristics https://downloads.bb[...] BBC
[11] 문서 The Importance of Terminology and sRGB Uncertainty https://www.colour-s[...] 2015-12-05
[12] 웹사이트 BT.709 : Parameter values for the HDTV standards for production and international programme exchange https://www.itu.int/[...] n.d.
[13] 웹사이트 EXT_texture_sRGB https://www.khronos.[...] 2007-01-24
[14] 웹사이트 EXT_framebuffer_sRGB https://www.khronos.[...] 2010-09-17
[15] 웹사이트 GPU Gems 3: Chapter 24. The Importance of Being Linear, section 24.4.1 https://developer.nv[...] NVIDIA Corporation 2017-03-03
[16] 문서 sRGB.com Notes on design and use of sRGB https://web.archive.[...] Hewlett Packard
[17] 문서 Color spaces - REC.709 vs. sRGB https://www.image-en[...] 2012
[18] 문서 sRGB profiles https://color.org/sr[...] undated
[19] 문서 sRGB https://www.color.or[...] undated
[20] 문서 How to interpret the sRGB color space (specified in IEC 61966-2-1) for ICC profiles https://www.color.or[...] 2015
[21] 문서 Conversion matrices for RGB vs. XYZ conversion http://www.brucelind[...]
[22] 서적 Color Management for Photographers https://books.google[...] Focal Press
[23] 웹사이트 Why Calibrate Monitor to D65 When Light Booth is D50 https://www.xrite.co[...] 2022-09-11
[24] 문서 Will the Real sRGB Profile Please Stand Up? https://ninedegreesb[...]
[25] 뉴스 삼성전자, 전문가용 LCD 모니터 2종 출시 http://www.ddaily.co[...] 디지털데일리 IT/과학 2009-07-14
[26] 웹인용 IEC 61966-2-1:1999 https://webstore.iec[...] International Electrotechnical Commission 2017-03-03



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com