C군의 네버엔딩 스토리 – 디지털 영상처리의 이해 2

C군의 네버엔딩 스토리 – 디지털 영상처리의 이해 2

1064
0

안녕하세요. 유독 추웠던 겨울 탓인지 봄이 더욱 반가운 것 같습니다. 좋아지는 날씨처럼 독자 여러분 하시는 일도 술술 잘 풀리는 계절이 되면 좋겠습니다. 그러면 지난 연재에 이어 이야기를 이어가도록 하겠습니다.

지난 연재에서는 ‘영상의 기록과 재생’에 관한 이야기를 시작하며 사진의 간략한 원리를 설명하였습니다. 현대의 디지털 영상과 큰 상관이 없어 보이는 필름과 인화지 이야기에 약간은 의아함을 가졌던 독자분들이 많으셨을 것 같습니다. C군이 흑백사진과 컬러사진의 원리를 설명하였던 것은 현대의 디지털 영상에도 적용되는 빛의 3원색을 이용한 컬러영상의 구현 방법에 관한 기본적인 아이디어를 소개하기 위함이었습니다. 지난 연재에서 흑백사진의 원리를 간단히 설명하고 그다음에 컬러사진의 원리를 설명하였습니다. 컬러사진의 경우 3원색을 각각 처리하는 방법에서는 흑백사진과 유사하였습니다. 다시 말하면, 빛의 세기만을 저장하고 재생하는 흑백사진과 유사하게, 컬러사진도 빛을 3원색으로 나누어 각각의 원색에 해당하는 빛의 세기를 저장한 후 재생할 때에 이들 3원색이 다시 혼합되며 다양한 색상을 내도록 한 것입니다. 그러면 이 기본적 아이디어가 어떻게 현대의 컬러영상 장치로 이어지는지 설명하겠습니다.

그림 1. 카메라 내부의 분광기와 이미지 센서
그림 1. 카메라 내부의 분광기와 이미지 센서

현대의 컬러영상 장치도 빛을 3원색으로 분해하여 처리합니다. 우선 컬러영상을 획득하기 위한 장치인 카메라에 대해 간단히 설명하겠습니다. 카메라는 이미지 센서를 통해 영상을 획득합니다. 하지만 이미지 센서는 빛의 세기만을 전기신호로 바꿀 수 있을 뿐, 빛의 색을 전기신호로 바꾸지는 못 합니다. 그래서 카메라는 [그림 1]과 같이 프리즘을 이용한 분광기를 이용하여 렌즈를 통해 들어온 빛을 3원색인 빨강, 초록, 파랑으로 분해합니다. 이렇게 3원색으로 분해된 빛은 각각에 대응되는 이미지 센서를 통해 빛의 세기에 비례하는 전기신호로 변환되어 저장됩니다. [그림 1]의 이미지 센서 옆에 보이는 빨강, 초록, 파랑 영상은 카메라 렌즈를 통과한 사물로부터의 빛이 분광기를 통해 3원색으로 나뉜 뒤 이미지 센서에 맺힌 것을 나타냅니다.

그림 2. 이미지 센서와 3원색 영상 데이터
그림 2. 이미지 센서와 3원색 영상 데이터

하지만 앞서 말씀드렸듯이 이미지 센서는 빛의 세기를 측정할 뿐, 색을 측정하지는 않습니다. 그래서 이미지 센서로부터 읽어낸 영상 데이터는 [그림 2] 하단의 영상과 같이 밝고 어두움을 나타내는 데이터일 뿐, 색에 관한 데이터를 포함하지는 않습니다. 그렇다면 문득 독자 여러분들의 뇌리에 하나의 질문이 떠오를 것입니다.

“이미지 센서에서 읽은 영상 데이터는 모두 흑백인데, 어떻게 컬러영상으로 재생하지?”

디스플레이에서 컬러영상을 재생하는 것에 대해 추후 자세히 설명 드리겠지만 우선 간략히 설명 드리면, 우리는 카메라에서 영상이 만들어질 때부터 어느 원색으로부터 어느 영상 데이터가 얻어졌는지 알고 있고, 이 정보를 영상 데이터와 함께 유지합니다. 그래서 각 원색에 대응되는 영상 데이터 자체는 색에 관한 정보를 명시적으로 표현하지 못하지만, 그 대응관계에 관한 정보는 보존되므로 디스플레이에서 어느 영상 데이터로 빨강, 초록, 파랑 발광소자의 빛을 제어해야 하는지 알 수 있습니다. 이를 종합하여 세 개의 영상 데이터를 통해 디스플레이의 빨강, 초록, 파랑 발광소자의 빛을 제어하면 [그림 3]과 같이 컬러영상을 만들 수 있습니다.

그림 3. 디스플레이를 통한 컬러영상의 재생
그림 3. 디스플레이를 통한 컬러영상의 재생

카메라를 통해서 어떻게 컬러영상 데이터가 획득되고, 이를 어떻게 디스플레이에서 재생하는지에 관한 대강의 내용이 파악되었으므로, 이야기의 깊이를 이미지 센서로 조금 더 심화해 보겠습니다.

이미지 센서는 어떻게 빛으로부터 영상 데이터를 얻어내는 걸까요? 이미지 센서는 [그림 4]와 같이 여러 개의 감광 가능한 셀(Cell)들이 가로 세로로 나열된 바둑판처럼 생겼고, 셀마다 일정 범위의 빛의 세기를 측정할 수 있습니다. 빛의 세기를 측정하는 방법은 빛 에너지를 받으면 전압이 유도되는 광전효과라 불리는 현상을 이용하며, 이 빛의 세기를 측정할 수 있는 각 셀이 흔히 화소(픽셀, Pixel)라고 부르는 영상의 단위와 대응되게 됩니다. 그리고 이미지 센서에 빛을 쏘인 후 각 셀에서 측정된 전압을 디지털 값으로 바꾸어 저장하면 영상을 표현하는 데이터가 담긴 ‘이미지 파일’이 됩니다. 디지털 영상의 경우 화소마다 그 화소의 색에 대응하는 3원색의 밝기(세기)를 나타내는 3개의 데이터를 가지며, 각 원색의 밝기는 8-bit 디지털 영상의 경우 0~255(개), 10-bit 디지털 영상의 경우 0~1023(개) 사이의 값을 가지게 됩니다. 물론, 8-bit이나 10-bit 보다 더 높은 비트수를 가지는 영상도 존재할 수 있습니다. 각 원색의 데이터 값이 갖는 의미를 간략히 설명해드리면 0은 화소에 해당 원색의 빛이 감지되지 않은 상태와 같으며, 255 또는 1023은 화소의 이미지 센서가 감지할 수 있는 최대치의 밝기로 해당 원색의 빛이 감지된 것을 나타냅니다. 마지막으로 0과 255 또는 1023 사이의 값들은 화소에 해당 원색이 감지되지 않은 상태와 최대 밝기로 감지된 상태 사이의 중간값들을 나타냅니다.

그림 4. 이미지 센서
그림 4. 이미지 센서

그렇다면 모든 카메라는 앞서 설명된 바와 같이 영상을 분광기를 통해 3원색으로 나누어 처리하는 방법을 사용할까요? 대부분의 사람들이 쓰고 있는 디지털카메라에도 프리즘으로 만든 분광기가 다 들어있는 걸까요? 답부터 말씀드리면 그렇지 않은 카메라가 훨씬 많습니다. 이유는, 분광기를 사용할 경우 카메라의 기계적 구성이 복잡해지고 비용이 상승합니다. 그리고 분광기에서 나온 3개의 원색 영상들에 대해서 이미지 센서들이 모두 정확하게 위치가 맞아 있어야 합니다. 그렇지 않을 경우 [그림 5]와 같이 영상에 있는 사물의 경계 주변으로 이상한 색이 나타나는 영상이 출력됩니다. ([그림 5]는 C군이 설명을 위해 빨강, 파랑에 해당하는 영상은 그대로 두고, 초록에 해당하는 영상만을 사선방향으로 이동시켜 얻은 인위적 영상입니다.) 이러한 기계적 정렬문제를 영상 데이터의 후처리를 통해 해결한다고 할 때도, 그 후처리 장치에 관한 비용이 발생합니다.

그림 5. 이미지 센서의 미정렬로 인한 영상 오류
그림 5. 이미지 센서의 미정렬로 인한 영상 오류

분광기와 세 개의 이미지 센서를 쓰는 복잡한 기계 구성과 이미지 센서의 정렬에 의한 문제점들을 극복하기 위해서 70년대 중반에 Bayer라는 사람이 CFA(Color Filter Array)라는 것을 발명합니다. CFA의 기본 아이디어는 [그림 6]과 같은 컬러필터를 이미지 센서 앞에 부착하는 것입니다.

이미지 센서 앞에 화소마다 3원색 중 하나에 해당하는 컬러필터를 부착하면, 이미지 센서로부터 읽은 영상 데이터는 화소마다 3원색 중 하나에 해당하는 데이터만을 가지게 됩니다. 그런데 듣다 보니 조금 거짓말 같기도 합니다. 화소마다 임의의 색을 만들려면 3원색이 모두 필요한데, 어떻게 3원색 중 하나의 색에 관한 정보만을 가진 화소가 임의의 색을 만들 수 있을까요? 여기에 아주 흥미로운 이야기가 숨어 있습니다. 이 이야기는 다음 연재에서 풀어드리도록 하겠습니다. 독자 여러분 모두 환절기 건강에 유의하시고, 다음 연재에서 뵙겠습니다.

댓글 없음