기글 하드웨어 질문 게시판
일반적인 카메라 센서 rgb구성이 이렇다고 알고 있습니다. 저 네모 하나하나가 한 픽셀이고요. 동영상의 경우 4픽셀을 하나로 쳐서 1픽셀을 구성하기도 하고 일반 사진도 그렇게 할 수 있다고 알고 있습니다. 그리고 저 하나의 픽셀이 주변컬러값을 전해받아 보간법?으로 저렇게 rgb위치가 각각임에도 4픽셀을 만들어 낸다고.
그런데 저 그림의 픽셀을 빨간색부터 시계방향으로 1,2,3,4의 번호를 부여하고 생각해 봤는데
1=R+(G1+G2)/2+B
2=R+G1+B
3=R+(G1+G2)/2+B
4=R+G2+B
1, 3이 같으니 이것은 아닌 것 같고. 해당 픽셀의 위 아래로 다른 픽셀이 존재하고 설령 가장 구석의 픽셀이라 하더라도 8방中3방의 픽셀이 존재하니 그것을 이용하는 것 같기도 하고.
차라리 저 화소 4개가 하나의 픽셀을 구성하는 거라면 이해하기 쉬울 것 같은데 보간법으로 각 화소가 하나의 픽셀을 가진다고 하더라구요. DSLR부터 스마트폰 카메라까지 서로 비슷비슷 할텐데 각 화소의 컬러값(R) 외의 색값(G,B)는 어떤 방식으로 산출해 내나요?
색 외에 밝기 값의 차이일까요? 그런데 빨간색 화소에 가장 밝으면 Red 가장 어두우면 Black이 되는데 색값 외에 밝기 값이 진짜 따로 있나 싶기도 하지만 같은 이미지와 영상이라도 백라이트 밝기에 따라 달라보이니 무슨 밝기가 알파채널 개념인가 싶기도 하지만..
빨간색 화소의 픽셀을 구성할때 파란색 화소의 정보를 가져올때 빨간색 화소의 밝기가 더 밝았으면 비율에 맞춰 가져온 파란색 화소의 밝기를 더 올리는 걸까요? rgb 255:255:255 같은식으로 머리에 그려보는데 방법이 잘못되었나 싶기도 하고.
그냥 해당 화소의 맞닿아 잇는 각 컬러픽셀의 값을 합치고 참고한 화소 수 만큼 나누서어서 평균값을 내리는 걸까요?
사이드에 있지 않는한 R의 경우 언제나 주변에 G,B화소가 4개씩 있고 G도 마찬가지로 상하좌우로 RB화소가 존재하니 좌우R,상하B의 값을 합치고 2로 나눠서 해당 픽셀의 RGB값을 구현하는 것도 같은데 그냥 뇌내 망상 수준이라 RGGB로 구성되는 카메라 센서에서 픽셀의 컬러값을 어떻게 산출하는지 하루종일 생각해 봐도 모르겠습니다ㅜㅜ
원본은 대문자 보간값은 소문라고 보시고 편의상 두개씩 끊어놨지만
12 34 56 픽셀이라고 보시면 아래처럼 RGB 레이어를 구성한다고 볼 수 있겠죠?
--원본-- | --R채널- | --G채널- | --B채널- | -R'채널- | -G'채널- | -B'채널-
RG RG RG | RX RX RX | XG XG XG | XX XX XX | Rr Rr Rr | gG gG gG | bb bb bb
GB GB GB | XX XX XX | GX GX GX | XB XB XB | rr rr rr | Gg Gg Gg | bB bB bB
RG RG RG | RX RX RX | XG XG XG | XX XX XX | Rr Rr Rr | gG gG gG | bb bb bb
GB GB GB | XX XX XX | GX GX GX | XB XB XB | rr rr rr | Gg Gg Gg | bB bB bB
그러면 R'+G'+B' 채널의 동일한 X, Y 픽셀 값을 합쳐서 RGB 영상 생성.. 이 아닐까요?
1,1 = R+g+b // 1,2 = r+G+b // 1,3 = R+g+b // ...
2,1 = r+G+b // 2,2 = r+g+B // 2,3 = r+G+b // ...
...
뭐 이런 식으로요
실세계를 찍으면 '1,1의 R'과 '1,3 R'은 같을 수도 다를 수도 있어요
그리고 밝기에 따른 수정이라는 의미를 잘 모르겠는데..
일단 카메라 센서는 CCD/CMOS 를 흔히 쓰고 있고 이건 말 그대로 전하 충전 장치(판형)입니다
빛의 강도에 따라 센서에 전하가 충전되는 양이 결정되고
이걸 그냥 강도에 따라 숫자값으로 변환하는 것 뿐이에요(아날로그 to 디지털 컨버터)
그리고 앞에 R, G, B에 해당하는 밴드컷 필터를 부착해서 R에 해당하는 영역의
밝기값(이지만 무차원 상수 Digital Number)으로 표현하는 것 뿐이에요
근데 이건 파장의 대역이나 길이에 따라 모두 같은 양의 전하가 충전되는게 아니에요
예를 들어 'Blue인 380nm 에서의 전하량 = Red인 780nm 에서의 전하량' 이라고 해서
우리 눈에 보이는게 반드시 'B=255, R=255'는 아니라는 의미에요 ㅠ
그래서 밝기라고 할 수 있는 DN 을 조합할 때 히스토그램을 사용하거나 표준편차를 이용해
DN을 0~255 범위로 rescale 하고 RGB로 합성한다.. 라는걸로 알고 있습니다
사실 동영상도 그렇고 jpeg같은것도 그렇고 손실압축 알고리즘들은 대부분 명암만 해상도를 그대로 쓰고 색상값은 해상도를 반토막내는 식의 뻥을 쓰지요 (..) 예를 들어 1920x1080짜리 영상이라고 하면 Y만 1920x1080이고 Cb/Cr은 960x540으로 저장하는 식..
센서의 경우 Digital Number 값일거고.. 각각의 픽셀에 X, Y, DN이 있으면
Red 레이어 X, Y 에다 DN 값을 배치하고 빈 공간은 보간.. 이걸 동일하게 Green, Blue에 적용하면
수광부 픽셀은 어긋나 있어도 그것과 무관하게 하나의 단일 레이어가 각각의 채널별로 구성되지 않나요?
Green 이 2픽셀을 담당하는건 광량이 부족해서 였던가? 아무튼 신호 강도를 증폭시키기 위해서 였던걸로 알고 있고..
그렇게 단순히 RGB 채널을 담당하는 각각의 레이어를 생성하고
DN을 히스토그램 혹은 표준편차 기법으로 RGB 합성을 하면 RGB 영상이 구성되는게 아닌가 싶네요