본문 바로가기
해외 자료 번역 & 분석

[Digital Compositing for film and video] Chapter 2 : Pulling Keys

by z03y 2024. 10. 24.

 

Digital Compositing for film and video
영화 및 비디오를 위한 디지털 합성: 제작 워크플로 및 기술 (Fourth Edition)

저자 : Steve Wright

번역 /  정리 : Zoey Hwang

 

 

🐌 Luma key

비디오 신호는 밝기(luminance)와 색상(Chrominance)로 분리됩니다. Luma key는 이미지의 밝기 값의 일부 범위를 분리하여 Key를 생성합니다.

 

Luma Keyer는 먼저 RGB 이미지의 채도를 줄인 버전을 생성합니다. 이는 Monochrome이라고 불리는 단일 채널 흑백 이미지입니다. 임계값이 설정되고 임계값보다 크거나 같은 모든 픽셀 값은 100% 흰색으로 설정되고 임계값보다 작은 모든 픽셀 값은 검정색으로 설정됩니다. Monochrome을 생성할 때, 각 채널이 1/3의 밝기를 가져가고 합하는 단순한 방법으로 접근할 수 없습니다. 흑백 이미지의 시각적 밝기가 인간의 눈에 색상 이미지의 시각적 밝기와 일치하도록 해야하기 때문입니다.

Figure 2.4는 눈이 세 가지 기본 색상에 대해 서로 다르게 반응하는 방식을 보여줍니다. 100% 순수한 세 가지 기본 색상은 밝기로 변환할 때 각각 다른 회색으로 변환됩니다. 순수 Blue보다는 Red를 더 밝게 인식하고, Red 보다는 Green을 더 밝게 인식합니다.

 

Figure 2.4 Color converted to luminance

 

RGB를 올바른 비율의 Luma 이미지를 생성하지 않으면 결과물이 잘못된 것처럼 보일 수 있습니다. 예를 들어, RGB를 각각 1/3으로 평균화 하면 파란 하늘이 너무 밝아보인다거나 녹색 숲은 초록색이 과소 표현되어 너무 어두워 보일 수 있습니다.

컬러 모니터에서는 휘도 이미지를 생성하기 위한 RGB 값 비율에 대한 표준 방정식이 있습니다. (작업 중인 색상 공간에 따라 정확하지 않을 수 있다)

 

💡  Luminance = 0. 30R + 0. 59G + 0. 11B

 

Figure 2.5 Flowgraph for generating a custom luminance image

 

🐌 Chroma key

Luma Key가 휘도 차이라면 Chroma Key는 이름대로 색상 차이로 분리합니다.

고전 Chroma Key에 대한 설명, 생략.

 

 

🐌 Making a 3D Chromakeyer

각 픽셀은 RGB 값으로 큐브 내에서 표현될 수 있습니다. 예를들어, Green screen 플레이트에서는 배경을 구성하는 녹색 픽셀들이 비슷한 RGB 값을 가지므라 RGB 큐브 내에서 특정 영역에 군집하게 됩니다. 이러한 군집은 RGB 큐브 내에서 ‘Green blob’을 형성합니다.

Figure 2.12 Greenscreen plate(좌) / Figure 2.13 Green backing pixels ploed in RGB color cube (우)

 

이제 이 ‘Green blob’을 분리할 수 있다고 가정해봅니다. 중심에 해당하는 RGB 값을 선택하고 이미지 내 모든 픽셀과 이 중심점 간의 거리를 측정합니다. Green 배경 픽셀들은 중심점 주위에 밀집되어 있어, 중심점과 거리가 0에 가깝습니다. 반면 다른 픽셀들은 이 중심점으로부터 멀리 떨어져 있을 수록 더 큰 거리 값을 가지게 됩니다. 이를 통해 녹색 배경 픽셀을 나머지 이미지와 구분할 수 있습니다.

 

Distance map

이 중심점으로부터 각 픽셀까지의 거리를 보여주는 새로운 버전의 Green screen 이미지를 생성합니다. 이 것을 Distance map이라고 부릅니다. 중심점에 가장 가까운 픽셀은 거의 0에 가까운 거리를 가지기 때문에 검정색으로 나타날 것입니다. 전체 Green 배경 영역은 검은 색이 될 것이고, 더 멀리 떨어진 픽셀인 피부는 회색 음영으로 표시될 것입니다. 결과적으로 밝기가 Green 배경 색상으로부터의 각 픽셀 거리를 나타내는 Grey scale 이미지를 얻게 되는 것입니다.

Figure 2.14 Distance map of greenscreen plate(좌) / Figure 2.15 Hicon version of distance map(우)

 

이후 Color curve를 사용하여 검은 ‘가까운’ 픽셀과 더 밝은 ‘멀리 있는’ 픽셀을 구분함으로써 Green 배경을 제거할 수 있습니다. figure 2.15처럼 고대비 이미지를 만들 수 있습니다. 이런 방식의 Key는 Blue나 Green이 아닌 임의의 RGB 값에 대해 생성할 수 있습니다.

이제 함수로 계산해봅니다. 이것은 단순히 3D 공간에서 두 점 사이의 거리를 계산하는 삼각 방정식에 기반합니다. 점1이 x1, y1, z1에 위치하고 점2가 x2, y2, z2에 위치한 경우, 점1과 점2 사이의 거리는 다음과 같습니다.

 

💡  거리 = 제곱근 ((x1 − x2)² + (y1 − y2)² + (z1 −z2)²)

 

이 방정식을 Key에 적용하려면, 점1이 중심점 RGB 값이 되고 점2가 이미지의 각 픽셀 RGB 값이되며, 모든 RGB 값은 0과 1.0 사이의 부동 소수점 값으로 표현됩니다. 즉, 우리가 얻을 수 있는 가장 작은 거리 값은 0이고 가장 큰 값은 1.0입니다. 이는 픽셀 값이 0에서 1.0 사이로 범위를 가진 Grey scale 이미지를 만들어냅니다. RGB 색상을 위해 삼각 방정식을 다시 쓰면 아래와 같습니다.

 

💡  회색 값 = 제곱근 ((R1 −R2)²+(G1−G2)²+(B1−B2)²)

 

여기서 R1G1B1은 정규화(Nomalized)된 값(0과 1.0 사이 부동 소수점 값)으로, 즉 분리하려는 색상입니다. 그리고 R2G2B2는 이미지의 각 픽셀의 정규화된 값입니다.

 

반응형