CamCyclopedia(카메라 백과사전)에서 카메라에 대한 기본 원리와 갤럭시 카메라에 적용된 AI 기술과 주요 기능에 대해 알아보세요.
👨🎓정흥식
목차
1. ISP 란?
2. ISP의 기본 구조
3. ISP의 주요 Block 들
4. 갤럭시 카메라 에서의 ISP
5. 그 밖의 ISP 블록들
6. 참고
ISP (Image Signal Processor) 란 ?
이미지 센서에서 얻어진 디지털 데이터를 가공하여, 영상개선/영상복원/영상변환/영상압축 등의 처리를 하는 장치를 말합니다. 모든 카메라에는 기본적으로 탑재되어 있는 Chip이며, 핸드폰의 경우 과거에는 별도의 Chip으로 존재했습니다만 현재는 대부분 AP(Application Processor) 내부에 내장되어 있습니다.
이미지 센서에서 전달된 신호를 갤럭시 안에 있는 AP 내의 ISP로 보내서 여러분이 보시게 되는 최종 이미지를 만들어 주게 됩니다.
ISP의 기본 구조
ISP는 AP Chip 제조사마다 독자적인 구조를 가집니다. 여기서는 가장 기본적인 구조를 소개합니다.
ISP의 주요 Block 들
여기서는 위에서 말씀드린 기본적이고 대표적인 8개의 ISP Block 들에 대해서 간단히 소개해 드리겠습니다.
이미지 센서의 물리적인 특성(암전류...) 등의 여러 이유로 아무런 데이터가 없는 암흑 상태에서도 특정 레벨의 값이 ISP로 입력됩니다. 이렇게 어느 정도 떠있는(왜곡된) 레벨의 센서 데이터를 제거해 주지 않으면, 이미지가 떠 보인다던가 검은색이 검은색답게 표현되지 않게 됩니다.
예를 들어, 정밀한 저울로 봉투에 담긴 어떤 물건의 무게를 측정하는 경우로 가정하면 이해가 쉽습니다. 봉투의 무게를 별도로 측정해서 가지고 있다가, 저울에 나온 숫자에서 해당 봉투의 무게만큼 빼는 것이지요.
Lens Shading 이란 렌즈의 광학 특성으로 이미지/영상의 외곽으로 갈수록 어두워지는 현상을 말합니다. LSC (Lens Shading Compensation or Correction)는 이 현상을 보상해 주는 Block입니다.
중앙부와 주변부의 Gain 을 다르게 적용, 즉 주변부의 Gain 을 더 많이 쓰도록하여 전체적인 Balance를 맞춘다고 이해하시면 쉽습니다.
일반적으로는 Lens Shading이라고 하면 밝기 측면에서 만을 언급하는 경우가 많지만, 앞에 Color를 붙여서 "Color Shading"이라고 하여 중앙과 주변부의 색 차이가 발생하는 현상을 표현하기도 합니다.
카메라가 색을 정확히 표현할 수 있도록 색의 균형을 조정할 수 있도록 해주는 Block입니다. (회색 영역이 회색으로 표현되도록) 한 장의 이미지는 하나의 공통된 WB Gain 을 가지고, 회색(무채색) 영역의 Red, Green, Blue 값이 동일하도록 조정합니다.
ISP가 받는 센서의 출력은 Green 채널이 다른 채널에 비해 2배 많이 존재하기 때문에, WB Gain 적용 전의 Raw 이미지는 전체적으로 녹색의 이미지처럼 보이게 됩니다. (아래 'Demosaic' 항목 참고)
대부분의 휴대폰 카메라는 Bayer type(또는 패턴) 센서를 사용하고 있습니다. Bayer 센서란 아래 그림[2]과 같은 배열로 Photo Diode Array 위에 3가지 색의 필터가 결합된 형태의 센서를 말합니다.
=> 한 픽셀은 Red, Green, Blue 중 하나의 성분만 가집니다.
이 필터를 센서의 Color Filter Array라고 하고, 이 Color Filter Array를 통과한 이미지는 픽셀 별로 하나의 Color만 갖게 됩니다. 이 단색 픽셀 들을 주변 픽셀의 정보들을 통해 다시 3색의 이미지로 추론하는 과정을 Demosaic이라고 합니다.
Demosaic을 수행하는 Block을 보통 Demosaic / Bayer Interpolation / Color Interpolation 등으로 부릅니다.
이미지 센서 특성에 따른 부정확한(좁은 범위의) 색 표현을 보정해 주는 Block입니다. 센서에서 출력되는 색상은 인간 눈으로 보는 색상과 상당히 다른데, 이를 인간의 시각과 일치하도록 만드는 역할을 하는 것이 CCM Block입니다.
Red, Green, Blue 각각에 Gain 을 높이거나 낮춰서 곱해줌으로써, 입력되는 RGB 데이터에 대해 실시간으로 색을 보정합니다.
보통 Gamma Correction이라고 부르며, 입력된 빛의 강도를 비선형 함수(입력 출력이 1:1이 아닌)를 통해서 변형시키는 것을 말합니다. 과거 브라운관(음극선 관 혹은 CRT)이 대중적으로 사용되던 당시에 브라운관의 특성 중 하나인 출력이 비선형적인 특성을 가진다는 것을 보완(또는 보정) 하기 위해 사용한 것으로 알려져 있습니다. 비선형적인 특성이라고 말씀드린 것이 아래 그림의 2번 그래프 형상에 해당합니다.
이후에 기술의 발전으로 선형(아래 그림의 1번)에 가까운 출력을 내더라도 부수적으로 Gamma Correction을 계속해서 사용하고 있습니다. 출력 장치의 특성 외에도 Gamma Correction을 사용하는 주된 이유는 사람의 시각도 역시 비선형적으로 대응하기 때문입니다. 사람의 시각은 베버의 법칙(Weber's law)[4] 에 따라 밝기에 대해 비선형적으로 반응합니다. 즉, 밝기가 어두울 때 사람의 눈은 밝기의 변화에 민감하게 반응하고, 밝기가 밝을 때 밝기의 변화에 둔감합니다.
이러한 인간 시각의 비선형성(2번 그래프)을 보완하기 위해 "비선형 함수" 즉, Gamma correction이 필요한 것입니다. 보통 아래 우측 그림의 3번 그래프 형상으로 적용합니다. 즉, 3번은 2번(비선형 함수) 그래프에 대한 보상 형태의 비선형 함수 그래프 입니다.
NR Block 은 이미지/영상 내에 노이즈를 줄여주는 Block입니다. 가장 기본적인 NR 방법으로는 보통 아래의 2가지가 있습니다.
노이즈 주변의 픽셀의 평균값을 구하여 해당 노이즈 픽셀의 데이터를 그 평균값으로 대체하는 방식이 있고, 노이즈 주변에 분포한 픽셀들의 중간값을 찾아 해당 노이즈 픽셀의 데이터를 그 중간값으로 대체하는 방식(median filter) 등이 있습니다.
따라서, 필연적으로 강한 NR 강도는 선명도/디테일의 손실을 가져올 수밖에 없습니다. 즉, NR 강도와 선명도는 Trade-Off 관계입니다.
NR 의 목표는 이미지 센서로부터 들어온 각 픽셀 정보 특성을 최대한 유지하면서, 노이즈를 줄여주는 것이라고 볼 수 있습니다.
NR 알고리즘 및 방법은 AP chip 제조사마다 독자적인 기술/구조를 가지며, 크게 아래의 2가지로 나누어 볼 수 있습니다.
첫 번째가 2D-NR 또는 Spatial-NR 이라고 부르는 것인데, 위에서 말씀드린 NR 방법(주변 픽셀의 평균값 or 중간값으로 대체)을 이용하여 한 장(하나의 프레임)의 이미지(영상) 내에서 NR 을 하는 방식입니다.
두 번째는 3D-NR 또는 Time-Domain-NR/Multiframe-NR 이라고 부르는 것으로, 여러 장(여러 프레임)을 가지고 노이즈와 신호를 더 확실히 구분하여 최대한 노이즈 픽셀에만 NR 이 적용되는 방식입니다. 기본적인 개념은 CamCyclopedia 멀티프레임 합성 기술 편과 비슷합니다. SW로 구현했느냐, HW로 구현했느냐 정도의 차이만 있습니다.
위의 NR(Noise Reduction) Block에 의한 디테일 손실 또는 센서/렌즈 등 하드웨어 성능의 제약으로 인한 디테일/선명도 손실 들을 보상/최적화해주는 Block입니다.
어디까지나 후보정의 영역이고, 주변 픽셀과의 차이를 더 벌리는 방향의 콘셉트를 가지기 때문에 필연적으로 어느 정도의 노이즈 증가를 유발하고, 의도치 않은 여러 가지 이미지 왜곡 현상을 발생시킬 수도 있습니다. 즉, Sharpen 과 7번에서 설명한 NR 과는 Trade-off 관계입니다.
Sharpen 역시 AP chip 제조사마다 독자적인 기술/구조를 가지며, 가장 기본적인 방법은 아래와 같이 경계면(Edge) 부분의 픽셀 차이를 더 벌리거나(아래 그림 2번) 또는 그 변화되는 slope의 폭을 줄이는(아래 그림 3번) 방식입니다.
아래의 첫 번째 이미지는 원본 이미지입니다. 두 번째 이미지는 3번만 처리한 이미지이고 세 번째 이미지는 2번과 3번을 모두 처리한 이미지입니다.
갤럭시 카메라에서의 ISP
이 페이지에서는 위에서 소개한 ISP의 각 Block 들이 갤럭시 카메라에서 어떤 역할을 하고 있는지, 이미지 기준으로 간단히 소개하고자 합니다.
Pedestal Cut
LSC (Lens Shading Correction)
Demosaic (Bayer Interpolation)
CCM (Color Correction Matrix)
Gamma
NR (Noise Reduction)
Sharpen
그 밖의 ISP의 Block 들
이 페이지에서는 위에서 소개한 ISP의 주요 Block 외에, AP Chip 제조사에 따라 다르지만 공통적으로 많이 적용되어 있는 추가 Block 몇 가지를 간단히 소개하고자 합니다.
FD (Face Detection)
이미지/영상 내에서의 얼굴을 인식하고, 얼굴에 대한 좌표를 다음 Block에 전달해 주는 Block입니다. 이후의 각종 알고리즘이나 Solution에서 해당 얼굴에 대한 좌표를 이용하여 여러 기능을 구현할 수 있습니다.
[적용 예] AWB(Auto White Balance), AE(Auto Exposure) 알고리즘 Block 에서 FD 정보를 사용한 경우
Contents Aware [5]
이미지/영상 내에서 몇 가지 구체적인 항목을 정하고, 그 항목에 따라 구분 해주는 기능입니다. 더 나아가, 나눠진 특정 영역에만 별도의 화질 세팅을 적용할 수 있도록 해주는 Block입니다. 예를 들어 머리카락/잔디/하늘 등의 영역으로 세분화하여, 그 각각의 영역에 따른 화질 세팅을 적용할 수 있습니다.
[적용 예]
CamCyclopedia(카메라 백과사전) 목차 바로 가기
CamCyclopedia 소개글 바로 가기
이외에도 CamCyclopedia는 커뮤니티 -> 카테고리(app) -> CamCyclopedia -> “CamCyclopedia 목차”를 통해 언제든지 확인하실 수 있습니다.
참고
[1] 위 그림들 중 일부는 설명을 목적으로 그래픽 효과가 적용된 가상 이미지입니다.
[2] Bayer Color Filter : https://en.wikipedia.org/wiki/Bayer_filter (Artwork by Cburnett CC BY 3.0)
[3] 자세한 내용은 CamCyclopedia '카메라에서의 칼라' 편에서 다룰 예정입니다.
[4] https://namu.wiki/w/베버의 법칙
[5] 대표 모델 Galaxy S22 등 일부 모델에 적용 중입니다.
여기에 의견을 추가하려면 등록된 사용자이어야 합니다. 이미 등록되어 있다면 로그인하시기 바랍니다. 아직 등록하지 않은 경우 등록 후 로그인하시기 바랍니다.