이하, 본 발명을 적용한 실시형태에 대해서 도면을 참조하면서 설명한다.
[제 1 실시형태]
이하, 본원발명을 적용한 제 1 실시형태에 대해 설명한다. 도 1은 제 1 실시형태로서 예시하는 계조보정장치(500)의 구성을 나타내는 블록도이다. 계조보정장치(500)는 입력한 화상의 계조를 자동적으로 보정하는 것으로서, 디지털카메라 등의 촬상장치나 프린터, 그 밖의 화상처리기능을 갖는 각종의 화상처리장치에 편입되어 사용된다.
계조보정장치(500)는 도 1에 나타내는 바와 같이, RGB의 색성분마다의 화소데이터로 이루어지는 화상데이터가 입력되는 입력부(1), V값 변환부(2), V값 평균산출부(3), 제 1 키 판정부(4), 제 2 키 판정부(5), 제 3 키 판정부(6), 히스토그램 작성부(7), 보정게인연산부(8), 좌표카운터(9), 계조변환부(10), 및 출력부(11)를 구비하고 있다. 계조변환부(10)는 입력부(1)에 입력한 화상데이터의 게인을 화소마다 조정한다.
입력부(1)는, 예를 들면 반도체 메모리칩에 의해서 실현되는 프레임메모리나 비디오RAM이다.
V값 변환부(2)는 취득수단으로서 기능하고, 입력부(1)에 입력한 화상데이터의 화소값(R값, G값, B값)을 HSV색공간에 있어서의 V(value: 명도)성분의 값으로 변환한다. V값 변환부(2)는 변환한 V값(Vin)을 V값 평균산출부(3) 및 히스토그램 작성부(7)에 출력한다. 또한, 주지하는 바와 같이 V값은 R값, G값, B값의 최대값이며, 이하에 나타내는 식 (1)에 의해서 변환된다.
Vin=max(Rin, Gin, Bin) (1)
V값 평균산출부(3)는 입력화상을 미리 정해져 있는 복수의 블록영역(분할영역)에 분할한다. V값 평균산출부(3)는 분할한 각각의 블록영역을 각각 주목영역으로 하고, 면적이 다른 2종류의 키 판정영역에 대해 각각의 영역 내의 전체 화소의 V값의 평균값(이하, 평균 V값)을 각각 산출한다. 도 2a 및 도 2b는 입력화상(100)에 있어서의 상기 블록영역(101)을 나타낸 모식도이며, 도 2a 및 도 2b에 사선으로 나타낸 영역이 키 판정영역이다.
즉 도 2a에 나타낸 바와 같이, V값 평균산출부(3)는 주목영역인 블록영역 (101, 도면에서 A) 그 자체를 제 1 키 판정영역(A)으로서 평균 V값을 산출한다. 또, 도 2b에 나타낸 바와 같이, V값 평균산출부(3)는 주목영역으로 되어 있는 블록영역(101, 도면에서 A)과 그 주위에 인접하는 8개의 다른 블록영역(101, 도면에서 B1, B2,ㆍㆍㆍB8)으로 이루어지는 영역을 제 2 키 판정영역(포괄영역, B)으로서 평균 V값을 산출한다.
제 1 키 판정부(4)는 V값 평균산출부(3)에 의해 산출된 상기한 제 1 키 판정영역(A)의 평균 V값으로부터, 그 영역의 밝기가 미리 정해져 있는 복수 단계로 레벨 분류된 밝기기준(제 1 밝기기준)에 있어서의 어느 것의 밝기레벨(이하, 제 1 밝기레벨)에 해당하는지를 판정한다. 이하의 설명에서는 이 판정처리를 제 1 키 판정이라고 한다. 여기에서 판정하는 밝기레벨은 「로(Low)」, 「미들(Middle」, 「 하이(High)」의 3단계이다. 또한, 각 밝기레벨에 대응하는 평균 V값의 범위는, 예를 들면 평균 V값의 전체 범위(「0」∼「MAX」)를 3등분 한 범위이다. 또한, V값 평균산출부(3)와 제 1 키 판정부(4)는 제 1 판정수단으로서 기능한다.
제 2 키 판정부(5)는 V값 평균산출부(3)에 의해 산출된 상기한 제 2 키 판정영역(B)의 평균 V값으로부터, 그 영역의 밝기가 미리 정해져 있는 복수 단계로 레벨 분류된 밝기기준(제 2 밝기기준)에 있어서의 어느 것의 밝기레벨(이하, 제 2 밝기레벨)에 해당하는지를 판정한다. 이하의 설명에서는 이 판정처리를 제 2 키 판정이라고 한다. 여기에서 판정하는 밝기레벨도 상기한 제 1 키 판정의 경우와 동일기준에 의거하는 밝기레벨이며, 「로」, 「미들」, 「하이」의 어느 하나이다. 또한, V값 평균산출부(3)와 제 2 키 판정부(5)는 제 2 판정수단으로서 기능한다.
제 3 키 판정부(6)는 제 3 판정수단으로서 기능하고, 상기한 제 1 및 제 2 키 판정의 결과(제 1 및 제 2 밝기레벨)의 조합에 대응하는 밝기레벨이며, 상기한 밝기기준보다도 상세하게 레벨 분류된 밝기기준(제 3 밝기기준)에 있어서의 어느 것의 밝기레벨(이하, 제 3 밝기레벨)에 해당하는지를 판정한다. 즉, 제 3 키 판정부(6)는 주목영역으로 되어 있는 블록영역(101)에 대해서, 그 주위에 인접하는 8개의 다른 블록영역(101, B1, B2,ㆍㆍㆍB8)과의 사이에 있어서의 상대적인 밝기의 관계를 고려한 밝기레벨을 판정한다. 이하의 설명에서는 이 판정처리를 제 3 키 판정이라고 부른다.
본 실시형태에 있어서, 관련되는 제 3 키 판정에서 판정되는 밝기레벨은 「로 1」, 「로 2」, 「미들 1」, 「미들 2」, 「하이 1」, 「하이 2」의 6단계의 어 느 하나의 레벨이며, 「로 1」이 최저레벨, 「하이 2」가 최고레벨이다. 또, 제 1 및 제 2 밝기레벨의 조합과 제 3 밝기레벨의 대응관계는, 예를 들면 도 3에 나타내는 바와 같이, 미리 정해져 있다.
히스토그램 작성부(7)는 히스토그램 취득수단으로서 기능하고, 상기 V값 변환부(2)에 의해 변환된 전체 화소의 V값(Vin)으로부터 V값별의 화소수를 카운트하며, 카운트 결과를 입력화상 전체의 밝기분포상태를 나타내는 히스토그램 정보로서 상기 보정게인연산부(8)에 출력한다.
보정게인연산부(8)는 제 1 특성설정수단, 제 2 특성설정수단, 산출수단, 콘트라스트판정수단, 상한조정수단, 분포상태판정수단, 하한규제수단으로서 기능하고, 상기한 제 3 키 판정의 결과와 히스토그램 정보에 의거하여 후술하는 게인함수 (보정함수)를 이용해서 계조변환부(10)에 의한 화소마다의 게인조정시에 있어서의 보정용의 게인, 즉 화상데이터의 각 화소값에 곱하는 계조보정용의 보정계수를 개별적으로 산출해서 계조변환부(10)에 설정한다.
좌표카운터(9)는 보정게인연산부(8)에 있어서 게인의 산출대상이 되는 화소의 좌표위치(가로위치 및 세로위치)를 카운트한다.
계조변환부(10)는 보정수단으로서 기능하고, 보정게인연산부(8)에 있어서 화소마다 연산된 게인으로 화상데이터의 게인을 화소마다 조정한다. 즉, 계조변환부 (10)는 각 화소의 화소값(R값, G값, B값)을 상기 게인을 곱한 화소값으로 변환한다. 계조변환부(10)는 게인 조정 후의 화상데이터를 출력부(11)에 출력한다.
출력부(11)는, 예를 들면 반도체 메모리칩에 의해서 실현되는 프레임메모리 나 비디오RAM이다. 또, 출력부(11)는 입력부(1)와 동일한 부재(component)라도 좋다.
여기에서, 상기 보정게인연산부(8)에 있어서의 보정용의 게인의 연산동작에 대해 상세히 서술한다. 우선, 보정게인연산부(8)는 게인산출시에 기본으로 하는, 각 화소의 V값의 변화에 대한 게인의 변화특성으로서, 후술하는 게인함수에 의해 얻어지는 보정특성을 전체 화소에 개별적으로 설정한다.
구체적으로는, 복수의 블록영역(101)의 각각의 중심화소에 대해, 상기한 「로 1」, 「로 2」, 「미들 1」, 「미들 2」, 「하이 1」, 「하이 2」의 6단계의 밝기레벨(도 3 참조)에 각각 대응해서 미리 정해져 있는 복수종의 보정특성 중에서, 제 3 키 판정으로 블록영역(101)마다 판정된 제 3 밝기레벨에 대응하는 보정특성을 대표보정특성으로서 설정한다.
또, 중심화소 이외의 화소에는, 그것과 인접하는 복수의 중심화소에 설정한 대표보정특성으로부터 선형보간에 의해 새로운 보정특성을 취득하고, 그 보정특성을 설정한다. 또한, 다른 화소에 설정하는 보정특성의 보간에 대해서는, 선형보간에 한정하지 않고 스플라인보간 등의 다른 보간방법이라도 상관없다.
도 4a는 입력화상(100)을 9개의 블록영역으로 분할하는 경우에 있어서의 각각의 블록영역과, 그들 중심화소(도면에서「+」)를 나타낸 도면이며, 도 4b는 중심화소 이외의 어느 화소(도면에서「ㆍ」)와, 해당 화소의 보정특성의 취득(보간)에 사용되는 중심화소의 관계를 나타낸 도면이다. 도 4b에 나타낸 바와 같이, 상기한 다른 화소에 설정하는 보정특성의 보간에 대해서는, 해당 화소에 인접하는 최 대로 4개의 중심화소의 대표보정특성을 사용한다. 단, 입력화상의 상하좌우의 코너부분에 위치하는 블록영역 내의 화소에 대해서는, 그 블록영역의 중심화소에 설정한 대표보정특성을 그대로 보정특성으로서 설정한다.
다음으로, 대표보정특성 및 보정특성에 대해 상세히 서술한다.
여기에서, 각 화소에 설정하는 대표보정특성 및 보정특성은 도 5a에 나타내는 식 (2)에 의해 나타내어지는 게인함수(g(Vin, lev, x))에 의해서 얻어지는 특성이다. 보정게인연산부(8)는 이 게인함수(g(Vin, lev, x))에 있어서 그 특성을 결정하는 파라미터(변수)인 게인레벨(lev) 및 차수(x)의 값을 상기한 대표보정특성 또는 보정특성으로서 화소마다 설정한다.
도 5b 및 도 5c는 게인함수(g(Vin, lev, x))에 의해서 얻어지는 V값(Vin)의 변화에 대한 게인(g)의 변화특성을 나타낸 도면이며, 게인함수(g(Vin, lev, x))에 의해 산출되는 게인(g)은 V값(Vin)이 커짐에 따라 작아지고, V값=MAX일 때 1.0배가 된다. 또, 상기 파라미터의 값의 차이는 이하와 같이 특성에 반영된다.
즉, 도 5b에 나타낸 바와 같이, 차수(x)의 값이 동일한 경우, 게인레벨(lev)이 클수록 전체의 게인(g)이 커지고, 「lev=2」일 때 게인(g)의 최대값이 2.0배가 된다. 또, 도 5c에 나타낸 바와 같이, 게인레벨(lev)의 값이 동일한 경우, 차수 (x)가 클수록, 중간의 밝기영역, 특히 하이라이트(V값이 최대) 측의 게인(g)이 억제되고, 값에 따라서는 하이라이트 측(V값이 큰 측)의 게인(g)이 1.0 이하가 된다.
즉 게인함수(g(Vin, lev, x))를 이용해서 계조변환부(10)에 설정하는 게인을 화소마다 산출할 때, 게인레벨(lev)을 크게 해서 전체적으로 게인을 높이면, 입력 화상의 어두운 부분의 계조를 향상할 수 있다. 동시에 차수(x)를 크게 해서 하이라이트(V값이 최대) 측의 게인을 1.0 이하로 하면, 입력화상의 밝은 부분에서의 화이트아웃을 경감할 수 있다.
그로 인해, 도시하지 않지만 상기한 6단계(「로 1」,ㆍㆍㆍ「하이 2」)의 각각의 밝기레벨에 대응하는 게인레벨(lev)에는, 밝기레벨이 높아짐에 따라 차례로 작아지는 값이 설정되어 있으며, 또, 각각의 밝기레벨에 대응하는 차수(x)에는, 밝기레벨이 높아짐에 따라 차례로 커지는 값이 설정되어 있다. 또, 쌍방의 파라미터 (lev, x)의 값은 경험칙(經驗則)에 의거하여 미리 정해진 값이다.
또, 보정게인연산부(8)에 있어서는, 게인함수(g(Vin, lev, x))를 그대로 이용해서 게인을 산출하는 것은 아니고, 도 6a에 나타낸 식 (3)으로 나타내어지는 게인함수(glim(Vin, lev, x))에 의해서 게인을 산출한다.
이 게인함수(glim(Vin, lev, x))에 있어서의 파라미터(lim)는, 게인의 상한을 결정하는 게인제한계수이며, 그 값을 1.0 이하로 설정함으로써, 게인레벨(lev)의 값에 대응해서 게인의 상한을 조정할 수 있다. 또한, 게인제한계수의 값은 화상전체(전체화소)에서 동일로 한다. 이하의 설명에 있어서는 게인함수(glim(Vin, lev, x))를 편의상, 게인제한 후의 게인함수라고 한다.
도 6b는 「lim=1」로 했을 때의 각 화소의 V값의 변화에 대한 게인의 변화특성을 나타낸 도면이며, 이 경우는 게인제한을 실행하지 않는 경우와 똑같은 특성이 된다. 도 6c는 「lim=0.5」로 했을 때의 각 화소의 V값의 변화에 대한 게인의 변화특성을 나타낸 도면이며, 게인제한계수를 1.0 이하로 설정함으로써, 게인레벨 (lev)의 값이 작을 때일수록, V값이 더욱 큰 측의 화소에 대한 게인을 억제할 수 있다. 즉, 어두운 부분의 화소에 대한 게인을 억제함으로써, 화상의 콘트라스트(암부(暗部)의 검음(blackness))를 강조할 수 있다.
또, 게인제한계수(lim)의 값은 화상의 콘트라스트에 따라 설정한다. 본 실시형태에 있어서는, 상기한 제 3 키 판정의 결과에 의거하여 화상의 콘트라스트 상태를 판정(추정)하는 콘트라스트 판정을 실행하고, 그 판정결과에 따른 값을 설정한다.
구체적으로는, 제 3 키 판정에 대해서 밝기레벨이 최저인 「로 1」이었던 블록영역의 수와, 밝기레벨이 최고인 「하이 2」이었던 블록영역의 수를 개별적으로 카운트하고, 쌍방의 밝기레벨에 대해서, 각각의 카운트수가 레벨마다 정해져 있는 임계값(N, M) 이상인지, 또는 임계값(N, M) 미만인지를 확인한다. 그리고, 도 7에 나타낸 바와 같이, 「로 1」의 수(N 이상의 수, N 미만의 수)와 「하이 2」의 수(M 이상의 수, M 미만의 수)의 조합으로부터 콘트라스트 상태를 판정하고, 그 판정결과에 따라 게인제한계수를 설정한다.
도 7은 콘트라스트 상태를 4단계로 분류해서 판정하는 경우의 예이며, 예를 들면 「로 1」의 수가 임계값 N 이상이며, 또한 「하이 2」의 수가 임계값 M 이상이었을 때에는 화상의 콘트라스트가 가장 높은 상태라고 판정하고, 게인제한계수의 값을 「1.0」으로 설정한다. 즉 실질적으로 상기한 콘트라스트 강조를 실행하지 않도록 한다. 또, 「로 1」의 수가 임계값 N 미만이며, 또한 「하이 2」의 수가 임계값 M 미만이었을 때에는, 화상의 콘트라스트가 가장 낮은 상태라고 판정하고, 게인제한계수의 값을 「0.5」로 설정한다.
한편, 상기한 게인제한 후의 게인함수를 이용해서 각 화소에 대한 게인의 상한을 조정하면, 화상의 콘트라스트(암부의 검음)를 강조할 수 있다. 이 경우에 있어서도, 도 5c에 나타낸 바와 같이, 게인의 산출에 대해서 각 화소에 설정하는 차수(x)의 값이 어느 정도 클 때에는, 하이라이트 부분(V값이 최대값인 화소부분)을 제외하는 하이라이트 측(V값이 큰 측)의 게인(g)이 1.0 이하가 된다. 즉 화상 내의 밝은 부분의 화소값을 마이너스 보정하는 것이 된다.
이것은, 밝은 부분의 계조가 부족한 화상에서는 콘트라스트의 쓸모없는 저하로 연결되고, 또, 화이트아웃이 큰(화이트아웃을 하고 있는 부분이 많은) 화상에서는, 화이트아웃이 발생하고 있는 부분과 그 주위에 있어서의 화이트아웃에 가까운 부분(V값이 최대값 부근)의 사이의 계조차가 커지는 톤 점프를 발생시키는 요인이 된다.
그로 인해, 보정게인연산부(8)에 있어서는, 각 화소의 게인의 산출에 대해서, 입력화상이, 밝은 부분의 화소에 대한 화소값의 마이너스 보정이 부적절하게 되는 화상인지 아닌지, 즉 밝은 부분의 계조가 부족한 화상, 또는 화이트아웃이 큰 화상인지 아닌지의 판정(이하, 하이라이트 판정)을 실행하고, 마이너스 보정이 부적절하게 되는 화상이라고 판정한 경우에 있어서는, 도 8a에 나타낸 식 (4)로 나타내어지는 게인함수(gclip(Vin, lev, x))에 의해서 게인을 산출한다.
즉, 게인의 하한을 「1.0」으로 클립(제한)함으로써, 입력화상이 밝은 부분의 계조가 부족한 화상인 경우에 있어서의 콘트라스트의 쓸모없는 저하, 및 화이트 아웃이 큰 화상인 경우에 있어서의 톤 점프의 발생을 회피한다. 이하의 설명에 있어서는 게인함수(gclip(Vin, lev, x))를, 편의상, 클립 후의 게인함수라고 한다.
도 8b 및 도 8c는 상기한 게인제한계수(lim)의 값을 「1.0」으로 설정하고 있는 경우에 있어서의, 상기 클립의 유무에 의한 게인의 변화특성의 차이를 나타낸 도면이다. 도 8b는 상기 클립을 실행하지 않을 때의 변화특성을 나타내고, 도 8c는 상기 클립을 실행할 때의 변화특성을 나타낸다.
또, 상기한 하이라이트 판정은, 상기 히스토그램 작성부(7)에 의해 취득된 히스토그램 정보(화상 전체의 V값별의 화소수에 의한 밝기의 분포상태)에 의거하여 이하와 같이 해서 실행한다. 즉 도 9의 상단(upper section)에 나타낸 바와 같이, 최대계조값(최대 V값)으로부터 수%(예를 들면 5∼10%) 아래의 계조위치의 계조값 X보다도 큰 계조값의 화소수가 미리 정해져 있는 일정수 이하일 때에는, 입력화상이 밝은 부분의 계조가 부족하고, 마이너스 보정이 부적절하게 되는 화상이라고 판단한다. 또, 도 9의 하단(lower section)에 나타낸 바와 같이, 최대계조값(최대 V값)의 화소수가 미리 정해져 있는 일정수 이상일 때에는, 입력화상이 화이트아웃이 크고, 마이너스 보정이 부적절하게 되는 화상이라고 판정한다. 그리고, 도 9의 중단(middle section)에 나타낸 바와 같이, 계조값 X보다도 큰 계조값의 화소수가 미리 정해져 있는 일정수를 넘고, 또한 최대계조값(최대 V값)의 화소수가 미리 정해져 있는 일정수 미만일 때, 즉 2개의 판정조건의 어느 것에도 해당하지 않을 때에는, 입력화상이 밝은 부분의 계조가 풍부하고, 마이너스 보정이 적절하게 되는 화상이라고 판정한다.
여기에서, 상기의 하이라이트 판정에 사용하는 히스토그램 정보는 R값, G값, B값의 최대값인 V값별의 화소수에 의한 밝기의 분포상태이다. 이로 인해, 입력화상이, 색포화가 발생하고 있는 부분이 많은 화상인 경우에 대해서도, 화이트아웃이 큰 화상의 경우와 똑같이 마이너스 보정이 부적절한 화상이라고 판정할 수 있다. 그로 인해, 화이트아웃이 발생하고 있는 부근에 있어서의 톤 점프에 덧붙여서, 색포화가 발생하고 있는 부근에 있어서의 톤 점프의 발생을 동시에 회피할 수 있다.
이상과 같이 보정게인연산부(8)는 상기 하이라이트 판정의 결과에 따라 입력화상이, 게인의 클립이 필요한 화상인 경우에 대해서는 클립 후의 게인함수 (gclip(Vin, lev, x))를 이용해서 화소마다의 게인을 산출하고, 상기 계조변환부 (10)에 보정용의 게인으로서 설정한다. 또, 보정게인연산부(8)는 입력화상이, 게인의 클립이 불필요한 화상인 경우에 대해서는 게인제한 후의 게인함수(glim(Vin, lev, x))를 이용해서 화소마다의 게인을 산출하고, 상기 계조변환부(10)에 보정용의 게인으로서 설정한다.
그리고, 계조변환부(10)에서는, 보정게인연산부(8)에 의해 상기 하이라이트 판정의 결과에 따라 산출된 게인에 의해 화상데이터의 화소값을 화소마다 조정한다. 즉 입력한 각 화소의 R, G, B별의 화소값 Rin, Gin, Bin을 하기의 식 (5), (6), (7) 또는 식 (8), (9), (10)에 의해 얻어지는 화소값 Rout, Gout, Bout으로 변환한다.
Rout=Rin×glim(Vin, lev, x) (5)
Gout=Gin×glim(Vin, lev, x) (6)
Bout=Bin×glim(Vin, lev, x) (7)
Rout=Rin×gclip(Vin, lev, x) (8)
Gout=Gin×gclip(Vin, lev, x) (9)
Bout=Bin×gclip(Vin, lev, x) (10)
즉, 계조변환부(10)는 입력화상의 각 화소의 휘도레벨(밝기)을 화소마다 설정된 보정특성에 따라 개별적으로 보정한다. 이에 따라 입력화상의 계조를 자동적으로 보정할 수 있다.
도 10은 상기한 계조보정장치(500)에 있어서의 계조보정순서의 개략을 나타내는 흐름도이다. 도 10에 나타내는 스텝S1이 V값 평균산출부(3)에 의한 동작, 스텝S2∼S4가 각각 제 1 키 판정부(4), 제 2 키 판정부(5), 제 3 키 판정부(6)에 의한 동작, 스텝S5∼S12가 보정게인연산부(8)에 의한 동작이다. 또한, 스텝S12, S13의 동작은, 실제로는 화소수에 따른 회수만큼 반복 실행된다. 또, 각 스텝의 상세에 대해서는 앞의 설명과 중복되기 때문에 설명을 생략한다.
이상과 같이 본 실시형태의 계조보정장치(500)에 있어서는, 화소마다의 게인산출시의 보정특성을 결정할 때에 기준이 되는 각각의 블록영역(101)의 밝기레벨을 단지 영역 내의 화소의 평균 V값 등의 밝기정보로부터만 얻는 것은 아니고, 상기한 제 1 키 판정, 제 2 키 판정, 제 3 키 판정이라고 하는 3단계의 판정처리로부터 얻도록 했다. 즉, 앞서 서술한 바와 같이 주위와의 상대적인 밝기의 관계를 고려한 밝기레벨을 얻도록 했다. 그로 인해, 계조보정장치(500)는 관련되는 밝기레벨에 의거하여 각 화소의 밝기를 보정함으로써, 화상 내에 있어서의 밝은 부분과 어두운 부분의 경계 부근에 대해서도 양호한 계조결과를 얻을 수 있다. 즉, 계조보정장치 (500)는 화상 내의 각부의 특징이 적확하게 반영된 더욱 적절한 계조보정을 실행하는 것이 가능하게 된다.
또, 화소마다의 게인산출에 대해서는, 입력화상에 대해 상기한 콘트라스트 판정을 실행하고, 그 판정결과에 따라 각 화소에 설정하는 게인의 상한을 조정하도록 했다. 이에 따라, 앞서 서술한 바와 같이 어두운 부분의 화소에 대한 게인을 억제할 수 있고, 그 결과, 화상의 콘트라스트(암부의 검음)를 강조할 수 있다.
또한, 화소마다의 게인산출에 대해서는, 입력화상에 대해 상기한 하이라이트 판정을 실행하며, 입력화상이 밝은 부분의 화소에 대한 화소값의 마이너스 보정이 부적절하게 되는 화상인지 아닌지를 판정하고, 상기 마이너스 보정이 부적절하게 되는 화상인 경우에는, 화소마다 설정하는 게인의 하한을 「1.0」으로 클립(제한) 하도록 했다. 이에 따라, 입력화상이 밝은 부분의 계조가 부족한 화상인 경우에 있어서의 콘트라스트의 쓸모없는 저하, 및 화이트아웃이 큰 화상인 경우에 있어서의 톤 점프의 발생이나, 색포화가 발생하고 있는 부분의 주위에 있어서의 톤 점프의 발생을 방지할 수 있다.
여기에서, 계조보정장치(500)에 있어서, 각각의 블록영역(101)의 밝기레벨에 의거하여 입력화상의 각 화소의 밝기를 개별적으로 보정할 때의 구체적 방법으로서는, 임의의 방법을 채용할 수 있다. 상기의 설명에서는, 각각의 블록영역(101)의 밝기레벨에 의거하여 각각의 블록영역(101)의 중심화소에 대표보정특성을 설정하고, 또한 그 대표보정특성에 의거하여 중심화소 서로의 다른 화소의 보정특성을 설 정하며, 관련되는 대표보정특성 및 보정특성에 따라 각 화소의 게인을 조정하도록 했는데, 이 이외의 방법에 의해서 각 화소의 밝기를 개별적으로 보정하도록 해도 좋다.
또, 본 실시형태에 있어서는, 각각의 블록영역(101)의 밝기가 6단계의 밝기레벨의 어느 것인지를 제 3 키 판정에 의해 판정하고, 각각의 블록영역(101)에 대해서, 제 3 키 판정의 결과에 대응하는 보정특성을 선택(설정)하는 동시에, 그것을 각각의 블록영역(101)의 중심화소에 대표보정특성으로서 설정했다. 그러나, 대표보정특성으로서 설정해야 할 보정특성은, 제 3 키 판정을 실행하지 않고 제 1 키 판정에서 판정한 밝기레벨과 제 2 키 판정에서 판정한 밝기레벨의 조합만에 의거하여 직접 선택하도록 해도 좋다. 단, 그 경우에는, 각 화소에 설정하는 게인의 상한을 결정하기 위한 상기한 콘트라스트 판정을 제 3 키 판정의 결과 이외의 정보에 의거하여 실행하게 된다. 또한, 이것에 대해서는 후술한다.
또, 본 실시형태에 있어서는, 입력화상(100)을 복수의 블록영역(101)에 분할하고, 각각의 블록영역(101)의 밝기레벨에 의거하여, 각 화소의 휘도레벨(밝기)을 화소마다 보정했다. 그러나, 각각의 블록영역은, 반드시 입력화상(100)을 분할한 영역일 필요는 없고, 입력화상(100)에, 인접하는 것끼리가 부분적으로 겹쳐지는 복수의 블록영역을 설정하고, 그들 블록영역의 밝기레벨에 의거하여, 각 화소의 휘도레벨(밝기)을 화소마다 보정하도록 해도 좋다.
또, 제 1 및 제 2 키 판정영역(A, B)의 밝기레벨을 「로」, 「미들」, 「하이」의 3단계로 판정했는데, 판정할 밝기레벨의 단계수는 2단계라도 좋고 4단계 이 상이라도 좋다. 또, 제 1 키 판정영역(A)과 제 2 키 판정영역(B)에 있어서 판정할 밝기레벨의 단계수를 다른 단계수로 해도 좋다.
또, 본 실시형태와 똑같이 단계수를 동일하게 할 경우에는, 예를 들면 제 1 키 판정영역(A)에 대한 제 1 키 판정과 제 2 키 판정영역(B)에 대한 제 2 키 판정에 있어서의 판정기준, 즉 평균 V값과 밝기레벨의 대응관계를 바꿈으로써 제 2 키 판정의 결과에 가중값을 실행해도 좋다.
또, 본 실시형태에 있어서는, 제 3 키 판정에서 최종적으로 판정하는 각각의 블록영역(101)의 밝기레벨, 즉 각각의 중심화소에 설정하는 대표보정특성을 결정할 때 기준이 되는 밝기를 「로 1」∼「하이 2」의 6단계로 판정했다. 그러나, 대표보정특성을 결정할 때 기준이 되는 밝기의 단계수는 변경해도 상관없다. 단, 판정할 밝기레벨의 단계수는 많은 쪽이 적확한 계조보정을 실행할 수 있다. 그로 인해, 제 3 키 판정에서 판정하는 밝기레벨의 단계수는, 본 실시형태와 같이 제 1 및 제 2 키 판정영역(A, B)의 밝기를 판정할 때의 밝기레벨의 단계수보다 많게 하는 것이 바람직하다.
또, 본 실시형태에 있어서는, 최종적으로 판정하는 각각의 블록영역(101)의 밝기레벨을 제 1 키 판정, 제 2 키 판정, 제 3 키 판정의 3단계의 판정처리에 의해서 판정했는데, 다음과 같이 해도 좋다. 예를 들면, 상기 제 2 키 판정영역(B)의 외측에, 그것을 포함하는 다른 키 판정영역을 추가로 설정하고, 관련되는 다른 키 판정영역에 대해서도 밝기를 판정하며, 그 판정결과와, 상기 제 1 및 제 2 키 판정의 결과의 조합으로부터 최종적으로 판정하는 각각의 블록영역(101)의 밝기를 판정 한다, 즉 각각의 블록영역(101)의 밝기레벨을 4단계의 판정처리에 의해서 판정해도 좋다.
또, 본 실시형태에 있어서는, 각 블록영역의 밝기레벨을 각 화소의 V값(구체적으로는 각 블록영역의 평균 V값)에 의거하여 판정하도록 했다. 그러나, 각 블록영역의 밝기레벨은 각 화소의 R값, G값, B값으로부터 얻어지는 Y(휘도)값 등의 다른 밝기정보에 의거하여 판정해도 좋다. 단, V값 이외의 밝기정보를 이용한 경우에는 색포화를 판단할 수 없고, 색포화 부분에 대해서 불필요한 게인을 부여해 버리는 경우가 있기 때문에, 밝기정보로서는 V값을 이용하는 것이 바람직하다. 또, 각 블록영역의 밝기레벨은 각 화소의 V값이나 Y값 등의 평균값에 한정하지 않고, 그들의 히스토그램으로부터 판정하도록 해도 좋다.
또, 본 실시형태에 있어서는, 각각의 블록영역(101)에 설정하는 보정특성(중심화소에 설정하는 대표보정특성)을, 입력화상의 각 화소에 대한 게인의 산출에 사용하는 게인함수(기본이 되는 게인함수)의 파라미터, 즉 게인레벨(lev) 및 차수(x)의 값으로 하고, 관련되는 파라미터의 값을 제 3 레벨판정의 결과에 대응해서 각각의 블록영역(101)에 설정하며, 그것에 의거하여 각 화소에 대한 게인을 산출하도록 했다. 그러나, 이 처리는, 예를 들면 이하와 같이 변경해도 좋다.
예를 들면, 제 3 레벨판정으로 판정하는 밝기레벨의 단계수 분의 보정특성으로서, 각각의 보정특성을 나타내는 게인커브상에 소정의 V값 간격으로 존재하는 복수의 대표점(16점 등)을 나타내는 복수의 V값과 게인(g)의 조합을 미리 결정해 두고, 그들을 제 3 레벨판정의 결과에 대응해서 각각의 블록영역(101)에 설정하도록 해도 좋다. 그 경우, 각각의 블록영역(101)의 중심화소에 대해서는, 각각의 블록영역(101)에 대해 제 3 레벨판정의 결과에 대응하는 복수의 대표점에 의해 나타내어지는 게인커브를 이용하여, 그 중심화소의 V값(Vin)에 대응하는 게인(g)을 결정하게 된다. 또, 중심화소 이외의 화소에 대해서는, 그것과 인접하는 복수의 중심화소를 각각 포함하는 각각의 블록영역(101)에 있어서의 제 3 레벨판정의 결과에 대응하는 복수의 대표점을 이용하여, V값이 같은 복수의 대표점으로부터 새로운 대표점을 각각 보간하고, 그것에 의해 얻어진 새로운 복수의 대표점을 잇는 게인커브를 이용해서, 그 화소의 V값(Vin)에 대응하는 게인(g)을 결정하게 된다.
또, 본 실시형태에서는 게인제한 후의 게인함수(glim(Vin, lev, x))를 이용해서 화소마다의 게인을 산출하고, 그때, 상기한 콘트라스트 판정의 결과에 따라 게인제한계수(lim)의 값을 설정함으로써, 각 화소에 설정하는 게인의 상한을 조정하도록 했다. 그러나, 이 처리는, 예를 들면 이하와 같이 변경해도 좋다.
예를 들면, 상기한 게인의 클립이 필요하지 않은 입력화상에 대해서는, 각 화소의 게인의 산출을 상기한 기본이 되는 게인함수(g(Vin, lev, x))를 이용해서 실행하는 것으로 하고, 각각의 블록영역(101)의 중심화소에 대표보정특성으로서 설정하는 게인레벨(lev) 및 차수(x)의 값(제 3 키 판정의 결과에 따른 값)을 콘트라스트 판정의 결과에 따라 조정함으로써, 각 화소에 설정하는 게인의 상한을 조정해도 좋다. 그 경우, 게인제한 후의 게인함수는, 이하에 나타내는 식 (11)에 의해 얻어진다.
gclip(Vin, lev, x)= max{g(Vin, lev, x), 1.0} (11)
또, 본 실시형태에서는, 각 화소에 설정하는 게인의 상한을 조정할 때에 기준이 되는 입력화상의 콘트라스트 상태를 상기한 제 3 키 판정의 결과에 의거하여 판정했다. 그러나, 입력화상의 콘트라스트 상태는, 다른 정보에 의거하여 판정하도록 해도 좋다. 예를 들면, 입력화상의 콘트라스트 상태를 판정하는 것에 대해서는, 제 3 키 판정의 결과에 대신해서 상기한 제 1 키 판정의 결과나 제 2 키 판정의 결과를 이용하거나, 쌍방의 판정결과를 이용하거나 해도 좋다. 또한, 상기한 계조보정장치를 디지털카메라에 채용할 경우에는, EV값(노광시간)에 의거하여 판정하도록 해도 좋다.
또, 각 화소에 설정하는 게인의 상한을 자동 조정하는 것은 아니고, 수동으로 조정 가능한 구성으로 해도 좋다. 그 경우에는, 예를 들면 계조보정장치의 사용자가 콘트라스트의 강조 정도를 복수 레벨 중에서 선택 가능한 구성으로 하고, 상기한 게인제한계수(lim)를 선택된 레벨에 따라 미리 결정해 둔 값으로 설정하도록 하면 좋다.
또, 입력화상의 콘트라스트 상태를 제 3 키 판정의 결과에 의거하여 판정할 경우에는, 본 실시형태와 같이 「로 1」에 해당하는 블록영역(101)의 수와 「하이 2」에 해당하는 블록영역(101)의 수를 각각 임계값(N, M)을 이용해서 2단계로 분류하고, 2단계의 수의 조합에 의거하여 콘트라스트 상태를 판정하는 이외에도, 단지 「로 1」의 해당 수와 「하이 2」의 해당 수의 조합에 의해 판정하거나, 다른 복수의 밝기레벨(3종류 이상이라도 좋다)의 해당 수의 조합에 의해 판정하거나, 어느 밝기레벨의 해당 수에만 의거하여 판정하거나 해도 좋다. 또한, 1 또는 복수의 소 정의 밝기레벨의 해당 수를 2 이상의 임계값을 이용해서 3단계 이상으로 분류해서 확인하고, 그들의 조합에 의거하여 콘트라스트 상태를 판정해도 좋다.
또한, 입력화상에 대해 상기한 콘트라스트 판정을 실행하고, 그 판정결과에 따라 각 화소에 설정하는 게인의 상한을 조정하는 기술, 즉 화소의 밝기를 개별적으로 보정할 때 각 화소에 대한 보정계수의 상한을 조정하는 기술은, 각각의 블록영역 (101)의 밝기레벨을 본 실시형태에서 설명한 방법 이외의 방법에 의해 판정하고, 그 판정결과에 의거하여 각 화소의 밝기를 개별적으로 보정하는 경우에 있어서도 유효하다.
또, 본 실시형태에서는, 입력화상이, 밝은 부분의 화소에 대한 화소값의 마이너스 보정이 부적절하게 되는 화상인지 아닌지의 하이라이트 판정을, 화상 전체의 V값별의 화소수에 의한 밝기의 분포상태를 나타내는 히스토그램 정보에 의거하여 실행하도록 했는데, 하이라이트 판정에 사용하는 히스토그램 정보는, 예를 들면 일정구간마다의 V값(계조)의 화소수를 나타내는 것이라도 상관없다. 또, 블록영역 (101)의 수(본 실시형태에서는 입력화상(100)의 분할수)가 어느 정도 많을 경우에는, 각각의 블록영역(101)의 평균 V값을 요소로 하는 히스토그램 정보를 사용해도 좋고, 복수의 블록영역(101)을 단위로서 평균 V값을 취득하고, 그 평균 V값을 요소로 하는 히스토그램 정보를 사용해도 좋다.
또, 본 실시형태에서는, 하이라이트 판정을 화상 전체에 대해서 실행하고, 화소마다 설정하는 게인의 하한을 클립할지 안할지의 판단을 일괄해서 실행하도록 했는데, 이하와 같이 해도 좋다. 예를 들면 각각의 블록영역(101)에 대해 V값의 히스토그램 정보를 취득해서, 블록영역(101)마다 하이라이트 판정을 실행하는 것으로 하고, 그 판정결과에 의거하여 각 화소의 게인의 산출시에는, 블록영역(101)마다 사용할 게인함수를 게인제한 후의 게인함수 또는 클립 후의 게인함수에서 선택하도록 해도 좋다. 또한, 그것을 복수의 블록영역(101)을 단위로서 실행하도록 해도 좋다.
또한, 상기한 하이라이트 판정의 결과에 따라서, 화소마다 설정하는 게인의 하한을 클립(제한)하는 기술, 즉 화소의 밝기를 개별적으로 보정할 때 각 화소에 대한 보정계수의 하한값을 소정의 값으로 규제하는 기술은, 각각의 블록영역(101)의 밝기레벨을 본 실시형태에서 설명한 방법 이외의 방법에 의해 판정하고, 그 판정결과에 의거하여 각 화소의 밝기를 개별적으로 보정하는 경우에 있어서도 유효하다.
또, 본 실시형태에서는 상기한 제 2 밝기레벨을 취득하는 대상영역인 제 2 키 판정영역을, 주목영역으로 되어 있는 블록영역(101, 도 2b에 나타내는 영역(A))과 그 주위에 인접하는 8개의 다른 블록영역(101, 도 2b에 나타내는 영역(B1, B2,ㆍㆍㆍB8)으로 이루어지는 영역(포괄영역, B)으로 했는데, 본 발명에 있어서 제 2 밝기레벨을 취득하는 대상영역은 이것에 한정되는 것은 아니다. 예를 들면, 주목영역의 주위에 인접하는 8개의 다른 블록영역만을 제 2 키 판정영역으로 해도 좋고, 주목영역의 주위에 인접하는 8개의 다른 블록영역 중의 몇 개의 블록영역(도 2b에 나타내는 영역(B2, B4, B5, B7 등)을 제 2 키 판정영역으로 해도 좋다.
또, 이상으로 설명한 계조보정장치(500)의 각부는, ASIC(특정용도용 집적회 로)에 의해 실현해도 좋다. 또, 이상으로 설명한 계조보정장치(500)에 의해서 실현되는 기능 중, 입력부(1)와 출력부(11) 이외의 각부의 모두, 또는 그 일부의 기능에 대해서는, 예를 들면, 컴퓨터, 촬상장치, 화상처리장치 등에 탑재되는 프로세서에 의해서 실행되는 소프트웨어 프로그램에 의해서 실현해도 좋다. 예를 들면, 계조보정장치(500)에 의해 실현되는 기능을, 디지털카메라, 디지털 비디오 카메라 등의 촬상장치에 편입할(implement) 경우, 그들 장치가 갖는 컴퓨터 시스템에 포함되는 프로세서에 의해서, 도 10에 나타내는 계조보정처리를 실행하기(perform) 위한 계조보정프로그램을 실행하는(run) 것으로 해도 좋다. 이와 같은 계조보정프로그램은, 예를 들면 마스크ROM(mask ROM)이나 EPROM(Erasable Programmable ROM) 등의 불휘발성 메모리(non-volatile memory), 플래시메모리디바이스, 광디스크 및 자기디스크 등의 기록매체에 의해서 제공할 수 있다. 또, 계조보정프로그램은 유선 (wired) 또는 무선(wireless)의 컴퓨터 네트워크를 통하여(through) 제공해도 좋다.
[제 2 실시형태]
이하, 본원 발명을 적용한 제 2 실시형태에 대해 설명한다. 또한, 제 2 실시형태에 대한 이하의 설명에 있어서는, 상기한 제 1 실시형태와 동일 또는 동등한 부재나 동작에 관한 설명에 대해서는, 제 1 실시형태의 설명에서 이용한 도면을 참조하고, 제 1 실시형태와 같은 부호를 이용해서 설명한다.
도 11은, 제 2 실시형태로서 예시하는 계조보정장치(600)의 구성을 나타내는 블록도이다. 계조보정장치(600)는 입력한 화상의 계조를 자동적으로 보정하는 것 으로서, 디지털카메라 등의 촬상장치나 프린터, 그 밖의 화상처리기능을 갖는 각종의 화상처리장치에 편입되어 사용된다.
계조보정장치(600)는 도 11에 나타내는 바와 같이, RGB의 색성분마다의 화소데이터로 이루어지는 화상데이터를 입력하는 입력부(601), V값 변환부(602), V값 평균산출부(603), 제 1 키 판정부(604), 제 2 키 판정부(605), 제 3 키 판정부 (606), 얼굴검출부(607), Y값 변환부(608), Y값 평균산출부(609), 얼굴 부분 키 판정부(610), 얼굴블록 키 판정부(611), 판정결과조정부(612), 히스토그램 작성부 (613), 보정게인연산부(614), 좌표카운터(615), 계조변환부(616), 및 출력부(617)를 구비하고 있다. 계조변환부(616)는 입력부(601)에 입력한 화상데이터의 게인을 화소마다 조정한다.
입력부(601)는, 예를 들면 반도체 메모리칩에 의해서 실현되는 프레임메모리나 비디오RAM이다.
V값 변환부(602)는 입력부(601)에 입력한 화상데이터의 화소값(R값, G값, B값)을 HSV색공간에 있어서의 V(value: 명도)성분의 값으로 변환하고, 변환한 V값 (Vin)을 V값 평균산출부(3) 및 히스토그램 작성부(13)에 출력한다. 또한, 주지하는 바와 같이 V값은 R값, G값, B값의 최대값이며, 이하에 나타내는 식 (12)에 의해서 변환된다.
Vin=max(Rin, Gin, Bin) (12)
V값 평균산출부(603)는 입력화상을 미리 정해져 있는 복수의 블록영역(분할영역)에 분할한다. V값 평균산출부(603)는 분할한 각각의 블록영역을 각각 주목영 역으로 하고, 면적이 다른 2종류의 키 판정영역에 대해 각각의 영역 내의 전체 화소의 V값의 평균(이하, 평균 V값)을 각각 산출한다. 입력화상(100)에 있어서의 상기 블록영역(101)을 도 2a 및 도 2b에 나타낸다. 도 2a 및 도 2b에 사선으로 나타낸 영역이 키 판정영역이다.
즉 도 2a에 나타낸 바와 같이, V값 평균산출부(603)는 주목영역인 블록영역 (101, 도 2에서 A) 그 자체를 제 1 키 판정영역(A)으로서 평균 V값을 산출한다. 또, V값 평균산출부(603)는 도 2b에 나타낸 바와 같이, 주목영역으로 되어 있는 블록영역(101, 도 2에서 A)과 그 주위에 인접하는 8개의 다른 블록영역(101, 도 2에서 B1, B2,ㆍㆍㆍB8)으로 이루어지는 영역을 제 2 키 판정영역(B)으로서 평균 V값을 산출한다.
제 1 키 판정부(604)는 V값 평균산출부(603)에 의해 산출된 상기한 제 1 키 판정영역(A)의 평균 V값으로부터, 그 영역의 밝기가 미리 정해져 있는 복수 단계로 레벨 분류된 밝기기준에 있어서의 어느 것의 밝기레벨(이하, 제 1 밝기레벨)에 해당하는지를 판정한다. 이하의 설명에서는 이 판정처리를 제 1 키 판정이라 한다. 여기에서 판정하는 밝기레벨은 「로」, 「미들」, 「하이」의 3단계이다. 또한, 각 밝기레벨에 대응하는 평균 V값의 범위는 예를 들면 평균 V값의 전체범위(0∼최대값)를 3등분 한 범위이다.
제 2 키 판정부(605)는 V값 평균산출부(603)에 의해 산출된 상기한 제 2 키 판정영역(B)의 평균 V값으로부터, 그 영역의 밝기가 미리 정해져 있는 복수 단계로 레벨 분류된 밝기기준에 있어서의 어느 것의 밝기레벨(이하, 제 2 밝기레벨)에 해 당하는지를 판정한다. 이하의 설명에서는, 이 판정처리를 제 2 키 판정이라 한다. 여기에서 판정하는 밝기레벨도 상기한 제 1 키 판정의 경우와 동일 기준에 의거하는 밝기레벨이며, 「로」, 「미들」, 「하이」의 어느 하나이다.
제 3 키 판정부(606)는 상기한 제 1 및 제 2 키 판정의 결과(제 1 및 제 2 밝기레벨)의 조합에 대응하는 밝기레벨로서, 상기한 밝기기준보다도 상세하게 레벨 분류된 밝기기준에 있어서의 어느 것의 밝기레벨(이하, 제 3 밝기레벨)에 해당하는지를 판정한다. 즉, 제 3 키 판정부(606)는 주목영역으로 되어 있는 블록영역 (101)에 대해서, 그 주위에 인접하는 8개의 다른 블록영역(101, B1, B2,ㆍㆍㆍB8)과의 사이에 있어서의 상대적인 밝기의 관계를 고려한 밝기레벨을 판정한다. 이하의 설명에서는, 이 판정처리를 제 3 키 판정이라 부른다.
본 실시형태에 있어서, 관련되는 제 3 키 판정에서 판정되는 밝기레벨은 「로 1」, 「로 2」, 「미들 1」, 「미들 2」, 「하이 1」, 「하이 2」의 6단계의 어느 하나의 레벨이며, 「로 1」이 최저 레벨, 「하이 2」가 최고 레벨이다. 또, 제 1 및 제 2 밝기레벨의 조합과 제 3 밝기레벨의 대응관계는, 예를 들면 도 3에 나타내는 바와 같이, 미리 정해져 있다.
또, V값 평균산출부(603)와, 제 1 키 판정부(604), 제 2 키 판정부(605), 제 3 키 판정부(606)는 제 1 취득수단으로서 기능한다.
얼굴검출부(607)는 입력화상(정지화상)에 존재하는 미리 정해져 있는 소정사이즈 이상의 임의의 인물의 얼굴 부분을 검출하고, 검출한 얼굴 부분에 대응하는 영역(얼굴 영역)의 좌표정보를 취득하며, 그것을 Y값 평균산출부(609) 및 보정게인 연산부(614)에 출력한다. 얼굴검출부(607)는 얼굴검출수단으로서 기능하고, 구체적으로는 화상데이터의 일시기억메모리나, 화상처리회로, 얼굴검출동작에 대해서 사용하는 파라미터를 기억하는 복수의 레지스터 등으로 구성되어 있다. 또한, 본 실시형태에 있어서 얼굴 부분의 검출방법은, 미리 준비(기억)되어 있는 인물의 얼굴에 관한 윤곽이나 색 등의 모델패턴과 특징이 가까운 얼굴 부분을 검출하는 패턴 매칭에 의한 공지의 방법을 적용할 수 있다. 또, 좌표정보로서 취득하는 얼굴 영역은, 검출한 얼굴 부분에 대응하는 직사각형 영역으로 하면 좋다.
Y값 변환부(608)는 입력부(601)에 입력한 화상데이터의 화소값(R값, G값, B값)을 YUV색공간에 있어서의 Y(휘도)값으로 변환하고, 변환한 Y값을 Y값 평균산출부(9)에 출력한다. 또한, Y값은 이하에 나타내는 식 (13)에 의해 변환한다.
Y=0.299×R+0.587×G+0.114×B (13)
Y값 평균산출부(609)는 얼굴검출부(607)에 의해 검출된 입력화상에 있어서의 얼굴 부분과, 얼굴 부분의 일부 또는 전부를 포함하는 1 또는 복수의 블록영역의 각각의 영역 내의 전체 화소의 Y값의 평균값(이하, 평균 Y값)을 각각 산출한다. 이하의 설명에서는 얼굴 부분의 일부 또는 전부를 포함하는, 즉 얼굴 부분에 겹쳐지는 1 또는 복수의 블록영역을 일괄해서 얼굴블록이라 부른다. 도 12는, 입력화상(100)에 있어서의 블록영역(101)과, 얼굴 부분(C), 상기 얼굴블록(D)을 나타낸 모식도로서, 얼굴블록(D)이 4개의 블록영역(101, 도 12에서 D1∼D4)으로 이루어지는 경우의 예이다.
얼굴 부분 키 판정부(610)는 Y값 평균산출부(609)에 의해 산출된 상기 얼굴 부분(C)의 평균 Y값으로부터, 그 영역의 밝기가 미리 정해져 있는 복수 단계로 레벨 분류된 밝기기준에 있어서의 어느 것의 밝기레벨에 해당하는지를 판정한다. 여기에서 판정하는 밝기레벨은, 상기한 제 3 키 판정과 같은 밝기기준(6단계의 밝기레벨)에 의거하는 밝기레벨이다. 이 얼굴 부분 키 판정부(610)와 상기 Y값 평균산출부(609)는 제 2 취득수단으로서 기능한다.
얼굴블록 키 판정부(611)는 Y값 평균산출부(609)에 의해 산출된 얼굴블록(D)에 속하는 각각의 블록영역(101)의 평균 Y값으로부터, 상기 얼굴 부분 키 판정부 (610)와 똑같이 상기한 제 3 키 판정과 같은 밝기기준에 의한 어느 것의 밝기레벨에 해당하는지를 각각 판정하고, 판정한 각각의 블록영역(101)의 밝기레벨을 평균화한 밝기레벨을 최종적으로 얼굴블록(D)의 밝기레벨로 판정한다.
상기 밝기레벨의 평균화는, 구체적으로는 6단계의 밝기레벨에 1∼6의 레벨값을 할당해 두고, 그 레벨값의 평균을 계산함으로써 실행한다(단, 소수점 이하는 사사오입). 예를 들면, 도 12에 나타낸 얼굴블록(D)에 속하는 각각의 블록영역(101, D1∼D4)의 밝기레벨이 각각 「로 2」, 「미들 1」, 「하이 1」, 「하이 2」이면, 레벨값의 평균은 (2+3+5+6)/4=4이며, 레벨값 「4」에 대응하는 「미들 2」를 얼굴블록(D)의 밝기레벨로 한다. 이 얼굴블록 키 판정부(611)와 상기 Y값 평균산출부(609)는 제 3 취득수단으로서 기능한다.
또한, 얼굴블록 키 판정부(611)에 있어서 얼굴블록(D)의 밝기레벨을 판정할 때의 밝기기준은, 얼굴 부분 키 판정부(610)에 있어서 얼굴 부분(C)의 밝기레벨을 판정할 때의 밝기기준과 동일하면 좋으며, 얼굴 부분(C) 및 얼굴블록(D)에 대해서 는, 그 밝기레벨을 제 3 키 판정과는 다른 복수 단계로 레벨 분류된 밝기기준에 의해서 판정해도 상관없다.
판정결과조정부(612)는 조정수단으로서 기능하고, 상기 얼굴블록(D)에 속하는 각각의 블록영역(101)에 대해서, 제 3 키 판정부(606)에 있어서의 제 3 키 판정의 결과(제 3 밝기레벨)를, 얼굴 부분 키 판정부(610)와 얼굴블록 키 판정부(611)에 의한 키 판정의 결과, 즉 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 평균화된 밝기레벨에 의거하여 조정한다.
구체적인 조정내용은, 도 13에 나타낸 바와 같이 해서 실행한다. 즉 판정결과조정부(612)는 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨을 비교하고(스텝S101), 얼굴 부분(C)의 밝기레벨 쪽이 높은, 즉 얼굴 부분(C)이 밝은 경우에는(스텝S102에서 YES), 얼굴블록(D)에 속하는 각 블록영역(101)의 밝기레벨을, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차에 따라 밝은 측으로 시프트한다(스텝S103).
반대로, 얼굴블록(D)의 밝기레벨 쪽이 높은, 즉 얼굴블록(D)이 밝은 경우에는(스텝S102에서 NO, 스텝S104에서 YES), 얼굴블록(D)에 속하는 각 블록영역 (101)의 밝기레벨을, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차에 따라 어두운 측으로 시프트한다(스텝S105).
또, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨이 동일한 경우에는(스텝S102, S104가 모두 NO), 얼굴블록(D)에 속하는 각 블록영역(101)의 밝기레벨을 그대로 유지한다(스텝S106).
여기에서, 상기 스텝S103, S105에 있어서, 블록영역(101)의 밝기레벨을 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차에 따라 밝은 측, 또는 어두운 측으로 시프트할 때의 시프트량(조정정도)은 미리 정해진 조정정도로서, 예를 들면 얼굴 부분(C)과 얼굴블록(D) 사이의 레벨차가 1단계 변화할 때마다 시프트량도 1단계 변화시키거나, 레벨차가 2단계 변화할 때마다 시프트량을 1단계 변화시키거나 한다. 또한, 상기 시프트량(조정정도)은, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차가 클수록 크게 하는 것이 좋다. 단, 상기 시프트량을 너무 크게 하면 주변의 블록영역(101)과의 밸런스가 나빠질 가능성도 커진다.
또, 여기에서는 편의상, 입력화상(100)에 있어서 검출한 얼굴, 즉 얼굴 부분 (C)이 1곳인 경우에 대해 설명했는데, 얼굴 부분(C)이 복수 검출되어 있는 경우에는, 판정결과조정부(612)는, 각각의 얼굴블록(D)에 속하는 각 블록영역(101)에 대해 상기한 밝기레벨의 조정을 실행한다. 또한, 그 경우에 있어서, 복수의 얼굴 부분(C)이 근접해서 존재하고 있으며, 각각의 얼굴블록(D)에 겹쳐지는 부분(블록영역 (101))이 있었을 때에는, 해당 블록영역(101)의 밝기레벨은, 미리 정해져 있는 기준(얼굴 부분(C)의 면적 등)에 대조해서 우선도가 더욱 높은 얼굴 부분(C), 및 그 얼굴블록(D)의 밝기레벨에 의거하여 조정한다.
히스토그램 작성부(613)는 상기 V값 변환부(602)에 의해 변환된 전체 화소의 V값(Vin)으로부터 V값별의 화소수를 카운트하고, 카운트 결과를 입력화상 전체의 밝기의 분포상태를 나타내는 히스토그램 정보로서 상기 보정게인연산부(614)에 출력한다.
보정게인연산부(614)는 특성설정수단(제 1 특성설정수단, 제 2 특성설정수단, 제 3 특성설정수단), 연산수단, 판단수단으로서 기능한다. 보정게인연산부 (614)는 상기 판정결과조정부(612)로부터 출력된 제 3 키 판정의 결과인 밝기레벨, 또는 조정 후의 밝기레벨과 상기 히스토그램 정보에 의거하여, 후술하는 게인함수(보정함수)를 이용해서 계조변환부(616)에 의한 화소마다의 게인조정시에 있어서의 보정용의 게인, 즉 화상데이터의 각 화소값에 곱하는 계조보정용의 보정계수를 개별적으로 산출하고, 그것을 계조변환부(616)에 설정한다.
좌표카운터(615)는 보정게인연산부(614)에 있어서 게인의 산출대상이 되는 화소의 좌표 위치(가로위치 및 세로위치)를 카운트한다.
계조변환부(616)는 보정게인연산부(614)에 있어서 화소마다 연산된 게인으로 화상데이터의 게인을 화소마다 조정한다. 즉, 계조변환부(616)는 각 화소의 화소값(R값, G값, B값)을 상기 게인 계수를 곱한 화소값으로 변환한다. 계조변환부 (616)는 게인 조정 후의 화상데이터를 출력부(617)에 출력한다.
출력부(617)는, 예를 들면 반도체 메모리칩에 의해서 실현되는 프레임메모리나 비디오RAM이다. 또, 출력부(617)는 입력부(601)와 동일한 부재(component)라도 좋다.
또한, 본 실시형태에 있어서, 상기 보정게인연산부(614)와 계조변환부(616)는 보정수단으로서 기능한다.
여기에서, 상기 보정게인연산부(614)에 있어서의 보정용의 게인의 연산동작에 대해 상세히 서술한다. 우선, 보정게인연산부(614)는, 게인산출시에 기본으로 하는 각 화소의 V값의 변화에 대한 게인의 변화특성으로서, 후술하는 게인함수에 의해 얻어지는 보정특성을 전체 화소에 개별적으로 설정한다.
구체적으로는, 복수의 블록영역(101)의 각각의 중심화소에 대해, 상기한 「로 1」, 「로 2」, 「미들 1」, 「미들 2」, 「하이 1」, 「하이 2」의 6단계의 밝기레벨(도 3 참조)에 각각 대응하여 미리 정해져 있는 복수종의 보정특성 중에서, 제 3 키 판정으로 블록영역(101)마다 판정된 제 3 밝기레벨에 대응하는 보정특성을 대표보정특성으로서 설정한다.
또, 중심화소 이외의 화소에는, 그것과 인접하는 복수의 중심화소에 설정한 대표보정특성으로부터 선형 보간에 의해 새로운 보정특성을 취득하고, 그 보정특성을 설정한다. 또한, 다른 화소에 설정하는 보정특성의 보간에 대해서는, 선형 보간에 한정하지 않고 스플라인 보간 등의 다른 보간방법이라도 상관없다.
도 4a는 입력화상(100)을 9개의 블록영역에 분할하는 경우에 있어서의 각각의 블록영역과, 그들 중심화소(도면에서 「+」)를 나타낸 도면이며, 도 4b는 중심화소 이외의 어느 화소(도면에서 「ㆍ」)와, 해당 화소의 보정특성의 취득(보간)에 사용되는 중심화소의 관계를 나타낸 도면이다. 도 4a에 나타낸 바와 같이, 상기한 다른 화소에 설정하는 보정특성의 보간에 대해서는, 해당 화소에 인접하는 최대로 4개의 중심화소의 대표보정특성을 사용한다. 단, 입력화상의 상하좌우의 각 부분에 위치하는 블록영역 내의 화소에 대해서는, 그 블록영역의 중심화소에 설정한 대표보정특성을 그대로 보정특성으로서 설정한다. 다음으로, 대표보정특성 및 보정특성에 대해 상세히 서술한다.
여기에서, 각 화소에 설정하는 대표보정특성 및 보정특성은, 도 5a에 나타내는 식 (2)에 의해 나타내어지는 게인함수(g(Vin, lev, x))에 의해서 얻어지는 특성이다. 보정게인연산부(614)는 이 게인함수(g(Vin, lev, x))에 있어서 그 특성을 결정하는 파라미터(변수)인 게인레벨(lev) 및 차수(x)의 값을 상기한 대표보정특성 또는 보정특성으로서 화소마다 설정한다.
도 5b 및 도 5c는 상기 게인함수(g(Vin, lev, x))에 의해서 얻어지는 V값 (Vin)의 변화에 대한 게인(g)의 변화특성을 나타낸 도면이며, 게인함수(g(Vin, lev, x))에 의해 산출되는 게인(g)은 V값(Vin)이 커짐에 따라 작아지고, V값이 최대값일 때 1.0배가 된다. 또, 상기 파라미터의 값의 차이는 이하와 같이 특성에 반영된다.
즉, 도 5b에 나타낸 바와 같이, 차수(x)의 값이 동일한 경우, 게인레벨(lev)이 클수록 전체의 게인(g)이 커지고, 「lev=2」일 때 게인(g)의 최대값이 2.0배가 된다. 또, 도 5c에 나타낸 바와 같이, 게인레벨(lev)의 값이 동일한 경우, 차수 (x)가 클수록, 중간의 밝기 영역, 특히 하이라이트(V값이 최대) 측의 게인(g)이 억제되고, 값에 따라서는 하이라이트 측(V값이 큰 쪽)의 게인(g)이 1.0 이하가 된다.
즉 게인함수(g(Vin, lev, x))를 이용해서 계조변환부(616)에 설정하는 게인을 화소마다 산출할 때, 게인레벨(lev)을 크게 해서 전체적으로 게인을 높이면, 입력화상의 어두운 부분의 계조를 향상할 수 있다. 동시에 차수(x)를 크게 해서 하이라이트(V값이 최대) 측의 게인을 1.0 이하로 하면, 입력화상의 밝은 부분에서의 화이트아웃을 경감할 수 있다.
그로 인해, 도시하지 않지만 상기한 6단계(「로 1」,ㆍㆍㆍ「하이 2」)의 각각의 밝기레벨에 대응하는 게인레벨(lev)에는, 밝기레벨이 높아짐에 따라 차레로 작아지는 값이 설정되어 있으며, 또, 각각의 밝기레벨에 대응하는 차수(x)에는, 밝기레벨이 높아짐에 따라 차례로 커지는 값이 설정되어 있다. 또, 쌍방의 파라미터 (lev, x)의 값은 경험칙에 의거하여 미리 정해진 값이다.
또, 보정게인연산부(614)에 있어서는, 상기한 게인함수(g(Vin, lev, x))를 그대로 이용해서 게인을 산출하는 것은 아나고, 도 6a에 나타낸 식 (3)으로 나타내어지는 게인함수(glim(Vin, lev, x))에 의해서 게인을 산출한다.
이 게인함수(glim(Vin, lev, x))에 있어서의 파라미터(lim)는, 게인의 상한을 결정하는 게인제한계수이며, 그 값을 1.0 이하로 설정함으로써, 게인레벨(lev)의 값에 대응해서 게인의 상한을 조정할 수 있다. 또한, 본 실시형태에 있어서, 게인제한계수의 값은 화상 전체(전체 화소)에서 동일로 한다. 이하의 설명에 있어서는 게인함수(glim(Vin, lev, x))를, 편의상, 게인제한 후의 게인함수로 한다.
도 6b는 「lim=1」로 했을 때의 각 화소의 V값의 변화에 대한 게인의 변화특성을 나타낸 도면이며, 이 경우는 게인제한을 실행하지 않는 경우와 똑같은 특성이 된다. 도 6c는 「lim=0.5」로 했을 때의 각 화소의 V값의 변화에 대한 게인의 변화특성을 나타낸 도면이며, 게인제한계수를 1.0 미만으로 설정함으로써, 게인레벨 (lev)의 값이 작을 때일수록, V값이 더욱 큰 측의 화소에 대한 게인을 억제할 수 있다. 즉, 어두운 부분의 화소에 대한 게인을 억제하면, 화상의 콘트라스트(암부의 검음)를 강조할 수 있다.
본 실시형태에 있어서, 상기 게인제한계수(lim)에는, 상기 얼굴검출부 (607)에 의해서 입력화상으로부터 소정사이즈 이상의 임의의 인물의 얼굴 부분이 검출되어 있었던 경우, 도 14a에 나타낸 식 (14)에 의해 산출한 값을 설정한다. 이 식 (14)에 있어서,
Yave_face는, 상기 Y값 평균산출부(9)에 의해 산출된 얼굴 부분(C, 도 12 참조)의 평균 Y값,
lev_face, x_face는, 각각의 블록영역(101)의 중심화소 중에서 얼굴 부분 (C)의 중심 좌표에 가장 가까운 중심화소에 대표보정특성으로서 설정한 게인레벨 (lev) 및 차수(x),
g(Yave, lev_face, x_face)는, 상기 중심화소의 대표보정특성에 따라 산출되는 얼굴 부분의 평균 Y값에 대응한 게인이며, 상기 대표보정특성의 게인레벨(lev_face)과, 상기 게인(이하, 얼굴 부분 게인)의 비율을 게인제한계수(lim)로 한다.
도 14b는 상기와 같이 취득한 게인제한계수(lim)를 이용함으로써 얻어지는, 각 화소의 V값의 변화에 대한 게인의 변화특성을 나타내는 도면이다. 즉 게인제한계수(lim)를 상기한 계산식에 의해 산출한 값으로 함으로써, 얼굴의 평균 Y값보다도 작은 V값의 화소에 대한 게인을, 얼굴 부분의 평균 Y값에 대응한 게인(g(Yave, lev_face, x_face))으로 제한하고, 이에 따라 화상 내의 얼굴 부분의 계조를 중시한 콘트라스트 강조(이하, 얼굴 우선 콘트라스트 강조)를 실행한다.
또, 상기와 달리 상기 얼굴검출부(607)에 의해서 입력화상으로부터 소정사이즈 이상의 임의의 인물의 얼굴 부분이 검출되어 있지 않은 경우, 게인제한계수 (lim)에는, 상기한 제 3 키 판정의 결과에 의거하여 입력화상의 콘트라스트 상태를 판정(추정)하는 콘트라스트 판정을 실행하고, 그 판정결과에 따른 값을 설정한다.
구체적으로는, 제 3 키 판정에 대해서 밝기레벨이 최저인 「로 1」이었던 블록영역의 수와, 밝기레벨이 최고인 「하이 2」이었던 블록영역의 수를 개별적으로 카운트하고, 쌍방의 밝기레벨에 대해서, 각각의 카운트 수가 레벨마다 정해져 있는 임계값(N, M) 이상인지, 또는 임계값(N, M) 미만인지를 확인한다. 그리고, 「로 1」의 수(N 이상의 수, N 미만의 수)와 「하이 2」의 수(M 이상의 수, M 미만의 수)의 조합으로부터 콘트라스트 상태를 판정하고, 그 판정결과에 따라 게인제한계수를 설정한다.
예를 들면 콘트라스트 상태를 4단계로 분류해서 판정할 경우, 「로 1」의 수가 임계값(N) 이상이고, 또한 「하이 2」의 수가 임계값(M) 이상이었을 때에는 화상의 콘트라스트가 가장 높은 상태라고 판정하며, 게인제한계수의 값을 「1.0」으로 설정한다. 즉 실질적으로 상기한 콘트라스트 강조를 실행하지 않도록 한다. 또, 「로 1」의 수가 임계값(N) 미만이고, 또한 「하이 2」의 수가 임계값(M) 미만이었을 때에는, 화상의 콘트라스트가 가장 낮은 상태라고 판정하며, 게인제한계수의 값을 「0.5」로 설정한다.
한편, 상기한 게인제한 후의 게인함수를 이용해서 각 화소에 대한 게인의 상한을 조정하면, 상기의 얼굴 우선 콘트라스트 강조를 실행할 수 있는데, 그 경우에 있어서도, 도 5c에 나타낸 바와 같이, 게인의 산출에 대해서 각 화소에 설정하는 차수(x)의 값이 어느 정도 클 때에는, 하이라이트 부분(V값이 최대값인 화소 부분) 을 제외하는 하이라이트 측(V값이 큰 쪽)의 게인(g)이 1.0 이하가 된다. 즉 화상 내의 밝은 부분의 화소값을 마이너스 보정하게 된다.
이것은, 밝은 부분의 계조가 부족한 화상에서는 콘트라스트의 쓸모없는 저하로 연결되고, 또, 화이트아웃이 큰(화이트아웃 하고 있는 부분이 많은) 화상에서는, 화이트아웃이 발생하고 있는 부분과 그 주위에 있어서의 화이트아웃에 가까운 부분(V값이 최대값 부근) 사이의 계조차가 커지는 톤 점프를 발생시키는 요인이 된다.
그로 인해, 보정게인연산부(614)에 있어서는, 각 화소의 게인의 산출에 대해서, 입력화상이, 밝은 부분의 화소에 대한 화소값의 마이너스 보정이 부적절하게 되는 화상인지 아닌지, 즉 밝은 부분의 계조가 부족한 화상, 또는 화이트아웃이 큰 화상인지 아닌지의 판정(이하, 하이라이트 판정)을 실행하고, 마이너스 보정이 부적절하게 되는 화상이라고 판정한 경우에 있어서는, 도 8a에 나타낸 식 (4)로 나타내어지는 게인함수(gclip(Vin, lev, x))에 의해서 게인을 산출한다.
즉, 게인의 하한을 「1.0」으로 클립(제한)함으로써, 입력화상이 밝은 부분의 계조가 부족한 화상인 경우에 있어서의 콘트라스트의 쓸모없는 저하, 및 화이트아웃이 큰 화상인 경우에 있어서의 톤 점프의 발생을 회피한다. 이하의 설명에 있어서는 게인함수(gclip(Vin, lev, x))를, 편의상, 클립 후의 게인함수라고 한다.
도 8b 및 도 8 c는 상기한 게인제한계수(lim)의 값이 「1.0」으로 설정되어 있는 경우에 있어서의, 상기 클립의 유무에 의한 게인의 변화특성의 차이를 나타낸 도면이며, 도 8b는 상기 클립을 실행하지 않을 때의 변화특성을 나타내고, 도 8c는 상기 클립을 실행할 때의 변화특성을 나타낸다.
또, 본 실시형태에 있어서 상기한 하이라이트 판정은, 상기 히스토그램 작성부(13)에 의해 취득된 히스토그램 정보(화상 전체의 V값별의 화소수에 의한 밝기의 분포상태)에 의거하여 이하와 같이 해서 실행한다. 즉 도 9의 상단(upper section)에 나타낸 바와 같이, 최대 계조값(최대 V값)으로부터 수%(예를 들면 5∼10%) 아래의 계조 위치의 계조값 X보다도 큰 계조값의 화소수가 미리 정해져 있는 일정수 이하일 때에는, 입력화상이 밝은 부분의 계조가 부족하고, 마이너스 보정이 부적절하게 되는 화상이라고 판단한다. 또, 도 9의 하단(lower section)에 나타낸 바와 같이, 최대 계조값(최대 V값)의 화소수가 미리 정해져 있는 일정수 이상일 때는, 입력화상이 화이트아웃이 크고, 마이너스 보정이 부적절하게 되는 화상이라고 판정한다. 그리고, 도 9의 중단(middle section)에 나타낸 바와 같이, 계조값 X보다도 큰 계조값의 화소수가 미리 정해져 있는 일정수를 넘고, 또한 최대 계조값(최대 V값)의 화소수가 미리 정해져 있는 일정수 미만일 때, 즉 2개의 판정조건의 어느 것에도 해당하지 않을 때에는, 입력화상이 밝은 부분의 계조가 풍부하고, 마이너스 보정이 적절하게 되는 화상이라고 판정한다.
여기에서, 상기의 하이라이트 판정에 사용하는 히스토그램 정보는, R값, G값, B값의 최대값인 V값별의 화소수에 의한 밝기의 분포상태이다. 이로 인해, 입력화상이, 색포화가 발생하고 있는 부분이 많은 화상인 경우에 대해서도, 화이트아웃이 큰 화상의 경우와 똑같이 마이너스 보정이 부적절한 화상으로 판정할 수 있다. 그로 인해, 화이트아웃이 발생하고 있는 부근에 있어서의 톤 점프에 덧붙여서 색포화가 발생하고 있는 부근에 있어서의 톤 점프의 발생을 동시에 회피할 수 있다.
이상과 같이 보정게인연산부(614)는 상기 하이라이트 판정의 결과에 따라 입력화상이, 게인의 클립이 필요한 화상인 경우에 대해서는 클립 후의 게인함수 (gclip(Vin, lev, x))를 이용해서 화소마다의 게인을 산출하고, 그것을 상기 계조변환부(16)에 보정용의 게인으로서 설정한다. 또, 보정게인연산부(614)는 입력화상이 게인의 클립이 불필요한 화상인 경우에 대해서는 게인제한 후의 게인함수 (glim(Vin, lev, x))를 이용해서 화소마다의 게인을 산출하고, 그것을 상기 계조변환부(616)에 보정용의 게인으로서 설정한다.
그리고, 계조변환부(616)에서는, 보정게인연산부(614)에 의해 상기 하이라이트 판정의 결과에 따라 산출된 게인에 의해 화상데이터의 화소값을 화소마다 조정한다. 즉 입력한 각 화소의 R, G, B별의 화소값 Rin, Gin, Bin를 하기의 식 (15), (16), (17) 또는 식 (18), (19), (20)에 의해 얻어지는 화소값 Rout, Gout, Bout로 변환한다.
Rout=Rin×glim(Vin, lev, x) (15)
Gout=Gin×glim(Vin, lev, x) (16)
Bout=Bin×glim(Vin, lev, x) (17)
Rout=Rin×gcrip(Vin, lev, x) (18)
Gout=Gin×gcrip(Vin, lev, x) (19)
Bout=Bin×gcrip(Vin, lev, x) (20)
즉, 계조변환부(616)는 입력화상의 각 화소의 휘도레벨(밝기)을 화소마다 설정된 보정특성에 따라 개별적으로 보정한다. 이에 따라 입력화상의 계조를 자동적으로 보정할 수 있다.
도 14 및 도 15는 상기한 계조보정장치에 있어서의 동작내용을 나타낸 흐름도이다. 도 14 및 도 15에 나타낸 각 스텝의 상세에 대해서는, 앞의 설명과 중복되기 때문에 설명을 생략하는데, 스텝S201가 V값 평균산출부(603)에 의한 동작, 스텝S202가 제 1 키 판정부(604), 제 2 키 판정부(605), 및 제 3 키 판정부(606)에 의한 동작이다. 또, 스텝S204가 얼굴검출부(607)에 의한 동작이며, 스텝S205가 Y값 평균산출부(609)에 의한 동작, 스텝S206가 얼굴 부분 키 판정부(610) 및 얼굴블록 키 판정부(611)에 의한 동작이다. 또, 스텝S207가 판정결과조정부(612)에 의한 동작이다. 스텝 S207의 상세는 도 13을 참조해서 앞에서 설명한 대로이다.
그리고, 스텝S208∼S217이 보정게인연산부(614)에 의한 동작이며, 스텝S218가 계조변환부(616)에 의한 동작이다. 또한, 스텝S617, S618의 동작은, 실제로는 화소수에 따른 회수만큼 반복 실행된다.
이상과 같이 본 실시형태의 계조보정장치(600)에 있어서는, 입력화상(100)에 소정사이즈 이상의 얼굴이 존재하고 있는 경우, 입력부(601)에 입력한 화상데이터의 게인을 계조변환부(616)에 있어서 화소마다 조정할 때의, 모든 화소에 설정하는 게인의 상한을 입력화상(100)에 있어서의 얼굴 부분(C)의 밝기에 따라 조정하도록 했다. 즉 상기한 바와 같이 화소마다의 게인의 산출에 사용하는 게인함수로서 얼굴 부분(C)의 평균 Y값을 이용해서 산출한 게인제한계수(lim)를 파라미터로 하는 게인제한 후의 게인함수(도 6a 및 도 14a 참조)를 사용함으로써, 입력화상(100)에 대해서 얼굴 우선 콘트라스트 강조를 실행하도록 했다.
이에 따라, 얼굴 부분에서의 눈의 주위나 입가 등의 어두운 부분의 화소에 대한 게인을 억제하고, 얼굴의 어두운 부분을 적당하게 어둡게 긴축시킴으로써 얼굴 부분의 계조에 억양을 갖게 할 수 있다. 즉 화상 내에 있어서의 인물의 얼굴 부분을 중시한 계조보정을 실행할 수 있고, 그 결과, 화상의 계조보정에 대해서 인물의 얼굴 부분에 적절한 계조를 확보할 수 있다.
또한, 화소마다의 게인의 산출에 사용하는 보정특성의 설정에 앞서서, 각각의 블록영역(101)의 중심화소에 설정하는 보정특성(대표보정특성)을 정할 때에 기준으로 하는 각각의 블록영역(101)의 밝기레벨을 취득할 때, 얼굴블록(D)에 속하는 블록영역(101, 얼굴 부분(C)에 겹쳐지고 그 일부 또 전부를 포함하는 블록영역 (101))에 대해서는(도 12 참조), 상기한 제 1∼제 3 키 판정에 의해서 일단 판정한 복수의 블록영역(101)의 밝기레벨을, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 평균레벨(얼굴블록(D)에 속하는 각 블록영역(101)의 밝기레벨의 평균)의 차에 따라 조정(고 레벨 측 또는 저 레벨 측으로 시프트)하도록 했다.
이에 따라, 얼굴 부분(C)의 사이즈가 각각의 블록영역(101)과 동일 정도, 또는 그것 이하의 크기라고 하는 작은 사이즈인 경우에 발생하는 얼굴 부분(C)의 화소에 대한 게인의 과부족을 보충할 수 있다.
예를 들면 도 17a에 나타낸 바와 같이, 얼굴 부분(C)이 어둡고, 또한 배경이 밝을 때에는, 상기한 바와 같은 밝기레벨조정을 실행하지 않으면 얼굴블록(D)에 속 하는 블록영역(101)의 평균 V값에 의거하는 밝기레벨이 높아진다. 이로 인해, 얼굴블록(D)에 있어서의 각 화소의 게인레벨이 작아지고, 그 결과, 얼굴 부분(C)의 화소에 대한 게인이 부족하다. 그러나, 상기한 바와 같이 밝기레벨을 조정함으로써, 관련되는 얼굴 부분(C)에 대한 게인부족을 회피할 수 있고, 계조보정에 동반하여 얼굴 부분(C)이 부자연스럽게 어두워지는 사태를 없앨 수 있다.
또, 도 17b에 나타낸 바와 같이, 얼굴 부분(C)이 밝고 어둡고, 또한 배경이 어두울 때에는, 상기한 바와 같은 밝기레벨조정을 실행하지 않으면, 얼굴블록(D)에 속하는 블록영역(101)의 평균 V값에 의거하는 밝기레벨이 낮아진다. 이로 인해, 얼굴블록(D)에 있어서의 각 화소의 게인레벨이 커지고, 그 결과, 얼굴 부분(C)의 화소에 대한 게인이 과잉이 된다. 그러나, 상기한 바와 같이 밝기레벨을 조정함으로써, 관련되는 얼굴 부분(C)에 대한 게인 과잉을 회피할 수 있고, 계조보정에 동반해서 얼굴 부분(C)이 부자연스럽게 밝아지는 사태를 없앨 수 있다.
즉 얼굴블록(D)에 속하는 블록영역(101)의 밝기레벨의 조정을 실행하는 것에 의해서도, 화상 내에 있어서의 인물의 얼굴 부분을 중시한 계조보정을 실행할 수 있고, 그 결과, 화상의 계조보정에 대해서 인물의 얼굴 부분에 적절한 계조를 확보할 수 있다.
또, 본 실시형태에 있어서는, 화소마다의 게인산출에 대해, 입력화상에 대해서 상기한 하이라이트 판정을 실행하고, 입력화상이 밝은 부분의 화소에 대한 화소값의 마이너스 보정이 부적절하게 되는 화상인지 아닌지를 판정하며, 상기 마이너스 보정이 부적절하게 되는 화상인 경우에는, 화소마다 설정하는 게인의 하한을 「 1.0」으로 클립(제한)하도록 했다. 이에 따라, 입력화상이 밝은 부분의 계조가 부족한 화상인 경우에 있어서의 콘트라스트의 쓸모없는 저하, 및 화이트아웃이 큰 화상인 경우에 있어서의 톤 점프의 발생이나, 색포화가 발생하고 있는 부분의 주위에 있어서의 톤 점프의 발생을 방지할 수 있다.
또한, 상기한 얼굴 우선 콘트라스트 강조와, 얼굴블록(D)에 속하는 블록영역 (101)의 밝기레벨의 조정은, 본 실시형태와 같이 병행해서 실행하는 것이 바람직한데, 그들은 반드시 병행해서 실행하지 않아도 좋으며, 어느 하나만을 실행하도록 해도 좋다.
또, 상기의 설명에 있어서는, 입력화상(100)의 계조보정에 대해, 화소마다 보정특성(게인함수)을 설정하고, 설정한 보정특성에 따라서 화소의 밝기를 개별적으로 보정한다고 설명했다. 그러나, 계조보정장치(600)에 있어서 각 화소의 밝기를 개별적으로 보정하는 구체적인 방법은, 특별히 한정되는 것이 아니고, 앞에서 설명한 이외의 방법이라도 좋다.
다른 방법을 채용하는 경우라도, 각 화소의 밝기를, 각각의 블록영역(101)의 밝기정보와 얼굴 부분(C)의 밝기정보에 의거하여 개별적으로 보정함으로써, 화상 내에 있어서의 인물의 얼굴 부분을 중시한 계조보정을 실행할 수 있고, 그것에 의해 인물의 얼굴 부분에 적절한 계조를 확보하는 것이 가능하게 된다.
또, 본 실시형태에 있어서는, 입력화상(100)에 소정사이즈 이상의 얼굴이 존재하고 있는 경우에는, 각 화소에 설정하는 게인을 도 6a에 나타낸 게인제한 후의 게인함수(glim(Vin, lev, x))를 이용해서 산출하는 것으로 했다. 그리고, 이 게인 함수(glim(Vin, lev, x))의 파라미터에, 각각의 블록영역(101)의 밝기레벨과 얼굴블록(D)의 밝기레벨에 의거하여 취득한 값을 설정함으로써, 얼굴 부분의 계조를 중시한 얼굴 우선 콘트라스트 강조를 실행하도록 했다. 그러나, 이 처리는, 예를 들면 이하와 같이 변경해도 좋다.
예를 들면, 도 5a에 나타낸 기본이 되는 게인함수(g(Vin, lev, x))를 이용하여, 각각의 블록영역(101)의 밝기레벨에 의거한 보정특성을 화소마다 설정하고, 설정한 보정특성에 따라 각 화소의 게인을 일단 산출하며, 산출한 게인을 얼굴블록 (D)의 밝기레벨에 의거하여 보정하도록 해도 좋다. 또, 그것과는 별도로, 각각의 블록영역(101)의 밝기레벨을 얼굴블록(D)의 밝기레벨에 의거하여 미리 높게 판정함으로써, 결과적으로 각 화소에 대한 게인의 상한을 제한하도록 해도 좋다.
또, 본 실시형태에 있어서는, 각각의 블록영역(101) 중에서 얼굴블록(D)에 속하는 블록영역(101)의 밝기레벨을, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차에 따라 조정하고, 조정 후의 밝기레벨에 의거하여 얼굴블록(D)에 속하는 블록영역(101)의 중심화소에 대표보정특성을 설정함으로써, 얼굴 부분(C)의 화소에 대한 게인의 과부족을 보충하도록 했다. 그러나, 이 처리는, 예를 들면 이하와 같이 변경해도 좋다.
예를 들면, 얼굴블록(D)에 속하는 블록영역(101)의 밝기레벨을 상기와 같이 조정하지 않고, 그 블록영역(101)의 중심화소에 대표보정특성을 각각 설정할 때, 그 밖의 일반의 블록영역(101)과는 달리, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차를 감안한 대표보정특성을 각각 설정하도록 해도 좋다.
또, 얼굴블록(D)에 속하는 블록영역(101)에 대해서는, 그 밝기레벨을 판정하는 시점에서, 그 주위에 인접하는 8개의 다른 블록영역(101)과의 사이에 있어서의 상대적인 밝기의 관계를 고려할 뿐만 아니라, 미리 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차를 감안해서 밝기레벨을 판정하고, 그 판정결과에 의거하여 얼굴블록(D)에 속하는 블록영역(101)의 중심화소에, 다른 블록영역(101)과 똑같은 기준에 따라 대표보정특성을 설정하도록 해도 좋다.
또한, 얼굴블록(D)에 속하는 블록영역(101)의 밝기레벨을 상기와 같이 조정하지 않고, 복수의 블록영역(101)의 각각의 중심화소에 설정하는 대표보정특성을 각각의 블록영역(101)의 밝기레벨에 따라 일단 결정한 후, 얼굴블록(D)에 속하는 블록영역(101)의 대표보정특성만을, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차를 감안한 보정특성으로 변경하도록 해도 좋다.
또, 얼굴블록(D)에 속하는 블록영역(101)의 중심화소에 설정하는 대표보정특성에 대해서는, 그 블록영역(101)의 밝기레벨과, 얼굴 부분(C)의 밝기레벨과 얼굴블록(D)의 밝기레벨의 차의 조합에 의거하여 직접 결정하도록 해도 좋다.
여기에서, 본 실시형태에 있어서는, 입력화상(100)을 복수의 블록영역(101)에 분할하고, 각각의 블록영역(101)에 대해 밝기레벨(밝기정보)을 취득했다. 그러나, 밝기레벨을 취득하는 블록영역은 반드시 입력화상(100)을 분할한 영역일 필요는 없고, 블록영역으로 하고, 인접하는 것끼리가 부분적으로 겹쳐지는 바와 같은 복수의 블록영역을 설정하도록 해도 좋다.
또, 본 실시형태에 있어서는, 얼굴 부분(C)의 밝기정보로서 평균 Y값을 취득 하고, 얼굴블록(D)에 속하는 각각의 블록영역(101)의 밝기레벨을 평균 Y값에 의거하여 판정했다. 그러나, 얼굴 부분(C)의 밝기정보로서 평균 V값을 취득하고, 각 블록영역(101)의 밝기레벨을 평균 V값에 의거하여 판정하도록 해도 좋다. 또한, 그 경우에는, 일반적으로 인물의 얼굴 부분은 R성분이 많은 피부색이기 때문에 평균 Y값보다도 평균 V값이 높아진다. 즉 얼굴 부분(C)이나 얼굴블록(D)의 밝기레벨이 높아진다. 그로 인해, 그것을 감안해서 최종적으로 취득하는 얼굴블록(D)에 속하는 각각의 블록영역(101)의 밝기레벨을 조정하거나 얼굴 우선 콘트라스트 강조에 대해 게인제한계수(lim)를 산출하거나 할 필요가 있다.
또, 제 1 및 제 2 키 판정영역(A, B)의 밝기레벨을 「로」, 「미들」, 「하이」의 3단계로 판정했는데, 판정할 밝기레벨의 단계수는 2단계라도 좋고 4단계 이상이라도 좋다. 또, 제 1 키 판정영역(A)과 제 2 키 판정영역(B)에 있어서 판정할 밝기레벨의 단계수를 다른 단계수로 해도 좋다.
또, 본 실시형태와 똑같이 단계수를 동일하게 할 경우에는, 예를 들면 제 1 키 판정영역(A)에 대한 제 1 키 판정과 제 2 키 판정영역(B)에 대한 제 2 키 판정에 있어서의 판정기준, 즉 평균 V값과 밝기레벨의 대응관계를 바꿈으로써 제 2 키 판정의 결과에 가중값을 실행해도 좋다.
또, 제 3 키 판정에서 판정하는 각각의 블록영역(101)의 밝기레벨, 즉 각각의 중심화소에 설정하는 대표보정특성을 결정할 때 기준이 되는 밝기를 「로 1」∼「하이 2」의 6단계로 판정했는데, 그 단계수는 변경해도 상관없다. 단, 판정할 밝기레벨의 단계수는 많은 것이 적확한 계조보정을 실행할 수 있다. 그로 인해, 제 3 키 판정에서 판정할 밝기레벨의 단계수는, 본 실시형태와 같이 제 1 및 제 2 키 판정영역(A, B)의 밝기를 판정할 때의 밝기레벨의 단계수보다도 많게 하는 것이 바람직하다.
또, 각 블록영역(101)의 밝기레벨을 각 화소의 V값(구체적으로는 각 블록영역의 평균 V값)에 의거하여 판정하도록 했는데, 그것을 각 화소의 R값, G값, B값으로부터 얻어지는 Y(휘도)값 등의 다른 밝기정보에 의거하여 판정해도 좋다. 단, V값 이외의 밝기정보를 이용한 경우에는 상기한 하이라이트 판정에 대해서 색포화를 판단할 수 없고, 색포화 부분에 대해서 불필요한 게인을 부여해 버릴 경우가 있기 때문에, 밝기정보로서는 V값을 이용하는 것이 바람직하다.
또, 본 실시형태에서는, 상기한 제 2 밝기레벨을 취득하는 대상 영역인 제 2 키 판정영역을, 주목영역으로 되어 있는 블록영역(101, 도 2b에서 A)과 그 주위에 인접하는 8개의 다른 블록영역(101, 도 2b에서 B1, B2,ㆍㆍㆍB8)으로 이루어지는 영역(포괄영역, B)으로 했다. 그러나, 본 발명에 있어서 제 2 밝기레벨을 취득하는 대상영역은 이것에 한정되는 것은 아니다. 예를 들면, 주목영역의 주위에 인접하는 8개의 다른 블록영역만을 제 2 키 판정영역으로 해도 좋고, 주목영역의 주위에 인접하는 8개의 다른 블록영역 중의 몇 개의 블록영역(도 2b에서 B2, B4, B5, B7 등)을 제 2 키 판정영역으로 해도 좋다.
또, 이상으로 설명한 계조보정장치(600)의 각부는, ASIC(특정용도용 집적회로)에 의해 실현해도 좋다. 또, 이상으로 설명한 계조보정장치(600)에 의해서 실현되는 기능 중, 입력부(601)와 출력부(617) 이외의 각부의 모두, 또는 그 일부의 기능에 대해서는, 예를 들면, 컴퓨터, 촬상장치, 화상처리장치 등에 탑재되는 프로세서에 의해서 실행되는 소프트웨어 프로그램에 의해서 실현해도 좋다. 예를 들면, 계조보정장치(600)에 의해 실현되는 기능을, 디지털카메라, 디지털 비디오 카메라 등의 촬상장치에 편입할(implement) 경우, 그들 장치가 갖는 컴퓨터 시스템에 포함되는 프로세서에 의해서 도 13, 도 15, 및 도 16에 나타내는 계조보정처리를 실행하기(perform) 위한 계조보정프로그램을 실행한다고(run) 해도 좋다. 이와 같은 계조보정프로그램은, 예를 들면, 마스크ROM(mask ROM)이나 EPROM(Erasable Programmable ROM)) 등의 불휘발성 메모리(non-volatile memory), 플래시메모리디바이스, 광디스크, 및 자기디스크 등의 기록매체에 의해서 제공할 수 있다. 또, 계조보정프로그램은, 유선(wired) 또는 무선(wireless)의 컴퓨터 네트워크를 통하여(through) 제공해도 좋다.