Color Interpolation

 

1. 디지털 카메라의 Color Interpolation

 

 디지털 카메라는 일반적으로 하나의 CCD를 사용하기 때문에 full-color 영상을 얻기 위해서 우리는 각각의 픽셀에 대한 보다 많은 정보가 필요하다. 실제로 인간 시각 세계의 성질 때문에 영상을 나타내고자 할 때는 적어도 3가지 이상의 데이터를 필요로 하는데, 이것은 세가지 독립적인 칼라(RGB)의 화소값으로부터 추론 할 수 있다. 그리고 칼라 영상에 대한 single detector는 detector의 배열로 구성된 Color Filter Array(CFA)를 필요로 한다. 이러한 배열 속에서 detector의 각각에 화소들은 여러 개의 칼라 중에서 단 하나만의 칼라에 대한 화소값을 추출하게 되고 CFA를 이용하여 각각의 화소에 대한 잃어버린 화소의 정보를 그 주위의 화소에 대한 정보를 이용함으로써 추론 할 수 있다. 이러한 방법이 가장 일반적인 방법이며 Bayer 페턴은 가장 일반적인 CFA로 알려져 있다. 즉, CFA 기반의 detector로부터 칼라 영상을 복구하는 것을 칼라 보간(interpolation) 또는 칼라 demosaicing 알고리즘이라고 한다.

 

2. Interpolation의 방법

 

 보간의 알고리즘은 크게 비적응적 알고리즘(Nonadaptive algorithms)과 적응적 알고리즘(Adaptive algorithms)으로 나누어진다. 비적응적 알고리즘은 모든 화소에 대해서 고정된 패턴으로 보간하는 알고리즘으로 수행이 쉽고, 계산 양이 적은 장점이 있다. 

 적응적 알고리즘은 잃어버린 화소의 값을 찾기 위해 자장 효과적인 이웃 화소들의 특성을 이용하여 추정하는 알고리즘으로 계산양은 많지만 비적응적 알고리즘에 비해 더 나은 영상을 얻을 수 있다.

 비적응적 알고리즘의 방법에는 가장 인접한 이웃 화소 보간법, 양선형 보간법, 중앙값 보간법, 점진적 색상 변화 보간법의 방법이 있으며, 적응 알고리즘의 방법에는 패턴 일치 보간 알고리즘, 기울기의 문턱치 기반 가변수를 이용한 보간법, 경계법 보존 보간법 등의 방법이 있다.

 

 

비적응적 보간 방법

 - 가장 인접한 이웃 화소 보간법(Nearest neighbor replication)

 - 양선형 보간법(Bilinear interpolation)

 - 중간값 보간법(Median interpolation)

 -진적 색상 변화 보간법

 

적응적 보간 방법

 - 패턴 일치 보간 알고리즘

    (Pattern matching based interpolation algorithm)

 - 기울기의 문턱치 기반 가변수를 이용한 보간법

    (Interpolation using a Threshold-based variable number of gradients)

 - 경계값 보존 보간법(Edge sensing interpolation)

 

2.1 비적응적 알고리즘 

 

1) 가장 인접한 이웃 화소 보간법

 

 가장 인접한 이웃 화소의 보간법은 출력 화소로 생성된 주소에 가장 가까운 원시 화소를 출력 화소로 할당하는 원리이다. 이 방법은 가장 간단하며, 처리속도는 매우 빠르지만, 가장 인접한 이웃 화소를 추출한다는 자체가 영상을 바뀌게 하는 커다란 요소가 된다는 단점을 가지고 있다. 또한 새로운 화소값을 계산될 수 없어서 그만큼 입력 화소 안에서 찾아야 한다는 때문에 오류가 존재하게 될 수 있으며, 또한 하나의 입력 화소에 대응하는 출력 화소들의 수가 크면 클수록 출력이 나빠지게 된다[1]-[4].

 

ex)

그림 1. 인접한 이웃 화소 보간법

2) 양선형 보간법

 

양선형 보간법에서는 새롭게 생성된 화소의 값이 네 개의 가장 가까운 화소들에 가중치를 곱한 값으로 할당하는 방법으로 가중치는 선형적으로 결정되어지며, 각각 가중치는 각각의 존재하는 화소로부터의 거리에 정비례하게 된다. 또한 이 방법은 간단하고 계산과정이 단순하며 가장 인접한 이웃 화소의 보간법보다는 좀더 나은 영상을 얻을 수 있지만 이웃한 인접한 화소의 평균을 사용하므로 몽롱화(blurring)화 현상이 생기는 단점이 있다[2]-[8].

 

ex)

(1)    녹색 화소 보간법

  - 보간 화소의 G에 할당된 상하좌우 화소의 평균값으로 구한다.                             

       G8 = (G3+G7+G9+G13) / 4

 

(2) 적색(청색) 화소 보간법

            * 녹색 위치에서의 적색(청색) 화소 보간법

             - 2개의 근접한 화소의 평균값으로 구한다.                     

               B7 = (B6+B8) / 2 ,  R7 = (R2+R12) / 2

 

            * 청색(적색) 위치에서의 적색(청색)화소 보간법

             - 4개의 근접한 대각선 화소의 평균값으로 구한다.

               R8 = (R2+R4+R12+R14) / 4                                             

               B12 = (B6+B8+B16+B18) / 4

 

 

그림 2. 5×5 Bayer 패턴

 

 

3) 중간값 보간법

 

중간값 보간법에서는 새롭게 생성된 화소의 값이 네 개의 가장 가까운 화소들에 중간값으로 할당하는 방법이다. 이 방법은 가장 인접한 이웃 화소 보간법과 양선형 보간법에 비해서 좀 더 나은 결과를 나타내지만 여전히 blurring artifact 가 나타난다[9].

 

4) 점진적 색상변화 보간법

 

점진적 색상 변화 보간법은 휘도 채널과 색도 채널의 차이를 이용한 보간법을 말한다. Blue의 “hue value” 값은 B/G , Red 의 “hue value” 값을 R/G로 정의한다[2][10][11].

 

ex)

(1)    인접한 좌우에 녹색의 요소를 포함하는 녹색 화소에서 청색의 화소값을

          찾는 경우

 

 


(2)    인접한 상하에 녹색의 요소를 포함하는 녹색 화소에서 청색의 화소값을 

          찾는 경우                                                                                            

 

 


(3) 적색의 요소를 포함하는 화소에서 청색의 화소값을 찾는 경우

                                                                                     

 

 

그림 3. 5×5 Bayer 패턴

2.2. 적응적 알고리즘

 

1) 패턴 일치 보간 알고리즘

 

녹색이 아닌 임의의 화소 (m, n) 에서 녹색 패턴을 아래 식과 같이 정의한다.

                                                                                          

 

패턴과 이웃 화소의 차이를 계산한 후 가장 차이가 적은 값으로 보간하는 방법이다[2][12].

 

ex)

 

 

 

 

 

 

그림 4. 패턴 일치 보간 알고리즘

 

2) 기울기의 문턱치 기반 가변수를 이용한 보간법

 

 기본 절차[13]

(1) 기울기의 집합은 5X 5 이웃 화소의 색값에 의해 결정된다.

        각각의 기울기는 서로 다른 방향으로 대응한다.

 

(2) 각각의 기울기 집합에 의해서 문턱치 값은 결정되는데, 이 문턱치 값은 기울기의 부분집합을 선택하는데 사용된다. 기울기 값이 낮다는 것은 화소들이 비슷한 색값을 가진다는 것을 의미하고, 반면에 어떤 영상에서 높은 기울기 값은 섬세한 부분이나 예민한 가장자리를 나타낸다.

  

 (3) 기울기의 부분집합은 가장 비슷한 화소들의 영역을 나타내는데 사용된다. 이러한 영역에 포함되는 화소들은 중심 화소값에서 측정된 실제색과 잃어버린 색 사이의 평균 차이를 결정하기 위해 사용된다.

 

ex)  1) 8개의 기울기 값

           2) 문턱치 값 계산과 기울기의 부분집합 선택

              문턱치 값:  

                         여기서 Min 과 Max 는 기울기의 최소 최대 값이며,

                         이고 이다.

              부분집합 선택: Min = 4, Max= 14, T =11

                            기울기 부분집합 = {S, W, NE, SE}

 

       3) 중심 화소의 색과 찾고자 하는 색의 차이를 결정하기 위해 기울기의 부분집    

          합에 대응하는 영역 안에서의 화소를 이용한다.

 

 

그림 5. 5×5 Bayer 패턴

 

l         기울기의 부분집합 영역의 RGB의 평균을 계산한다.

 

 

G

B

R

S

G18

(B17+B19)/2

(R13+R23)/2

W

G12

(B7+B17)/2

(R11+R13)/2

NE

(G4+G8+G10+G14)/4

B9

(R13+R5)/2

SE

(G14+G18+G20+G24)/4

B19

(R13+R25)/2

 

l         기울기의 부분집합 영역에서 평균 색값의 형태로 합을 찾는다.

 

         

 

l         두 합의 차이를 나누어서 표준화된 색차이를 찾는다. 그리고 이 표준화된 색 차이로부터 잃어버린 색을 찾는다.

 

 

3) 경계값 보간 알고리즘

 

휘도 변화에 의존하는 경우에 아래와 같은 2개의 수평 수직방향의 변화율을 아래와 같이 정의한다.

 

 


  색도 변화에 의존하는 경우에는 아래와 같은 변화율을 적용한다.

 


                                                                                           

 

  각 방향에 대해서 주어진 문턱치 값과 비교 한 후 차이가 작은 방향으로 보간하는 방법이다[2], [14].

 

           (a)                           (b)

그림 6. (a) 녹색이 중심에 위치한 5×5 Bayer 패턴

(b) 청색이 중심에 위치한 5×5 Bayer 패턴

 

 

3. 실제 영상 적용 [15]

 

그림 8-1. 꽃 영상을 비적응적 알고리즘에 적용

 

 

 

그림 8-2. 꽃 영상을 비적응적 알고리즘에 적용

 

 

    

 

그림 8-3. 꽃 영상을 적응적 알고리즘에 적용

 

  

그림 8-4. 꽃 영상을 적응적 알고리즘에 적용

 

4. 참고문헌

[1] N. Ozawa, "Chrominance signal interpolation device for a color camera," U.S. Patent 4,716,455.

[2] J. E. Adams, "Interactions between color plane interpolation and other image processing functions in electronic photography," Proceedings of SPIE, vol. 2416, pp.144-151, 8-9 Feb. 1995.

[3] T. Sakamoto, C. Nakanishi, and T. Hase , "Software pixel interpolation for digital still cameras suitable for a 32-bit  MCU," IEEE Transactions on Consumer Electronics, vol.44, No.4, pp.1342-1352, November 1998.

[4] H. Zen, T. Koizumi, H. Yamamoto, and I. Kimura, "A New digital signal processor for progressive scan CCD," IEEE Transactions on Consumer Electronics, vol.44, No.2, pp.289-295, May 1998.

[5] D. R. Cok, "Single-chip electronic color camera with color-dependent birefringent optical spatial frequency filter and red and blue signal interpolating circuit," U.S. Patent 4,605,956.

[6] K. A. KParulski, "Color Filters and Processing Alternatives for one-chip cameras," IEEE Transactions on Electron Devices,  vol. ED-32, NO.8, Aug. 1985.

[7] Y. Tim, H. Wei-Geng, T. Shinn-Yih, and C. Shih-Liang, "Optimized Image Processing Algorithms for a Single Sensor Camera," 1997 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, vol.2,  pp.1010-1013, 20-22 Aug 1997.

[8] W. XiaoLin, C. K. Wai, and B. Paul, "Color Restoration from Digital Camera Data by Pattern Matching," Proceedings of SPIE, vol.3018 pp.12-17, 10-14 Feb. 1997.

[9] T. Ping-Sing, A. Tinku, and K. R. Ajay, Adaptive fuzzy color interpolation,” Journal of Electronic Imaging,  vol.11(3), pp. 293-305. July 2002.

[10] D. R. David, "Signal processing method and apparatus for producing interpolated chrominance values in a sampled color image signal," U.S. Patent 4,642,678.

[11] A. P. Kenneth, L. B. Brian, J. D. Lionel, and R. S. Paul, "A High-Performance Digital Color Video Camera," Proceedings of SPIE , vol.1448 pp.45-58, 24 Feb. 1991.

[12] D. R. Cok, "Signal processing method and apparatus for sampled image signals," U.S. Patent 4,630,307.

[13] E. Chang, C. Shinfun, and P. Davis, "Color Filter Array Recovery Using a Threshold-based Variable Number of Gradients," to be published in Proceedings of SPIE, Jan. 1999.

[14] R. H. Hibbard, "Apparatus and method for adaptively interpolating a full color image utilizing luminance gradients," U.S. Patent 5,382,976.

[15] C. Ting, “A Study of Spatial Color Interpolation Algorithms for Single-Detector Cameras,” Psych221/EE362.