KR20090109504A - 화상 처리 장치 및 화상 처리 방법 - Google Patents

화상 처리 장치 및 화상 처리 방법 Download PDF

Info

Publication number
KR20090109504A
KR20090109504A KR1020090032363A KR20090032363A KR20090109504A KR 20090109504 A KR20090109504 A KR 20090109504A KR 1020090032363 A KR1020090032363 A KR 1020090032363A KR 20090032363 A KR20090032363 A KR 20090032363A KR 20090109504 A KR20090109504 A KR 20090109504A
Authority
KR
South Korea
Prior art keywords
motion vector
value
block
motion
image
Prior art date
Application number
KR1020090032363A
Other languages
English (en)
Inventor
토오루 쿠라타
Original Assignee
소니 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 가부시끼가이샤 filed Critical 소니 가부시끼가이샤
Priority to KR1020090032363A priority Critical patent/KR20090109504A/ko
Publication of KR20090109504A publication Critical patent/KR20090109504A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Abstract

화상 처리 장치는, 화상 내에서 설정되고 복수의 화소로부터 형성되는 소정 크기의 복수개의 블록 각각에 대한 움직임 벡터(motion vector)를 검출하도록 구성된 움직임 벡터 검출부와; 상기 움직임 벡터 검출부에 의해 검출된 블록의 움직임 벡터로부터, 아핀 파라미터(affine parameter)의 적어도 하나를 상기 화상의 변위 축에 대한 변수의 함수로 나타낸 확장된 아핀 변환(affine transformation)을 이용해서, 수렴(convergence) 연산을 실행하고, 상기 화상 전체에 가해지고 있는 변형을 나타내는 글로벌 움직임(global motion)을 산출하도록 구성된 글로벌 움직임 산출부를 구비하는 것을 특징으로 한다.
글로벌 움직임 벡터 검출부, 매칭 처리부, 로컬 움직임 벡터 산출부, 움직임 벡터 신뢰성 지표값 산출부, 글로벌 움직임 벡터 연산부.

Description

화상 처리 장치 및 화상 처리 방법{IMAGE PROCESSING APPARATUS AND IMAGE PROCESSING METHOD}
본 발명은, 2개의 화면(畵面; screen image) 사이의 화상 전체의 변형(deformation)을 나타내는 글로벌 움직임(global motion)을 산출하는 화상 처리 장치 및 방법에 관한 것이다.
2개의 화면 사이의 움직임 벡터(motion vector)를, 화상 정보 자신으로부터 구하는 블록 매칭 수법은, 역사가 오래된 기술이다.
이 블록 매칭 수법은, 주목 화면인 참조 화면과, 그 참조 화면의 움직임의 근원이 되는 원화면(元畵面)(타겟 화면이라고 칭한다) 사이의 2개의 화면 사이의 움직임 벡터를 산출하는 방법이다. 블록 매칭 수법에 따르면, 소정 크기의 직사각형(rectangular) 영역의 블록(타겟 블록과 참조 블록)에 대해서, 참조 화면과 타겟 화면 사이에서의 상관을 산출하는 것에 의해서 움직임 벡터를 산출한다.
블록 매칭 수법에는, 타겟 화면이 시간상으로 참조 화면보다도 앞서는 경우와, 참조 화면이 시간상으로 타겟 화면보다도 앞서는 경우의 두 가지 케이스가 있다. 전자의 예로서는, 예를 들면 MPEG(Moving Picture Experts Group) 방식에 의 한 움직임 검출의 경우가 있고, 또 후자의 예로서는, 예를 들면 후술하는 화상 프레임의 겹침(superposition)에 의한 노이즈 저감의 경우가 있다.
이 명세서에서, 화면이라는 것은, 한 프레임 또는 한 필드의 화상 데이터로 형성되는 화상을 의미하고 있다. 그렇지만, 설명의 편의상, 이 명세서의 이하의 설명에서, 화면은 한 프레임으로 형성되는 것으로 상정한다. 그러므로 이후에서는, 화면을 프레임이라고 칭하기로 한다. 따라서, 이후에서는, 참조 화면을 참조 프레임이라고 칭하고, 타겟 화면을 타겟 프레임이라고 칭하기로 한다.
이 블록 매칭에 의한 움직임 벡터 검출 수법은, 특히 텔레비전 카메라의 팬-틸트 검출이나 촬상 피사체 추적(追尾; tracking), MPEG 방식의 동영상 부호화 등에 대해서 개발이 진행되고 있다. 90년대에 들어서서는, 화상의 중합에 의한 센서리스 카메라 흔들림(camera shake) 보정이나 저조도 촬영시의 노이즈 제거 등 다방면에 걸쳐서 응용이 진행되고 있다.
또, 블록 매칭에 의한 움직임 벡터 검출 수법은, 화상 인식 용도나 카메라 흔들림 보정 용도에 머무르지 않고, 촬상 장치의 셔터 속도의 자동 조정이나, 액정 텔레비전 세트의 배속 프레임 레이트 변환과 같이, 새로운 용도로도 응용되고 있다.
그런데, 화면내에 설정된 다수의 타겟 블록의 각각에 대한 움직임 벡터, 즉 로컬 움직임 벡터를 검출하고, 그 검출한 다수의 로컬 움직임 벡터를 이용해서, 2개의 화면 사이의 화상 전체에 가해지고 있는 변형을 나타내는 글로벌 움직임(global motion)을 산출하는 것이 행해지고 있다. 글로벌 움직임은 통상은, 화상 의 배경의 움직임 및 그 움직임량을 나타내는 것으로 된다.
종래 기술로서, 일본공개특허공보 특개2007-221631호(이하, 특허 문헌 1이라고 칭한다)에서, 왜곡 보정 방법은 하나의 화면을 다수의 블록으로 분할하고, 블록마다 벡터를 구한다. 그리고, 이와 같이 해서 구한 그들의 움직임 벡터를 직접 이용해서 글로벌 움직임을 산출하고 있다. 이 특허 문헌 1의 수법은, 화소수가 낮은 수년 전까지는, 주로 동영상의 카메라 흔들림 보정 기술로서 이용되어 온 수법의 하나이다.
상기 특허 문헌 1의 수법에 의하면, 낮은 비용의 하드웨어 규모로 글로벌 움직임을 검출하고, 동영상 및 정지 영상(still picture)의 양호하고 고화질의 센서리스(sensorless) 또는 자이로리스(gyroless) 카메라 흔들림 보정 및 노이즈 축소를 실현할 수가 있다.
그러나, 하나의 화면(화상)을, 예를 들면 16블록 정도의 비교적 큰 블록으로 분할한 경우에는, 화상 중에 움직이는 촬상 피사체가 포함되는 경우, 그 움직이는 촬상 피사체에 추종할 수 없다고 하는 문제가 있다.
그래서, 블록수를 예를 들면 64개 정도로 다수개로 하면, 비교적 좁은 화상 영역에 대한 다수의 로컬 움직임 벡터를 이용할 수 있으며, 이것에 의해, 어느 정도, 움직이는 촬상 피사체의 움직임에 추종할(따를) 수 있게 된다. 그러나, 그와 같이 구성한 경우에는, 특허 문헌 1의 수법에서는, 하드웨어의 규모가 증대하고, 이 특허 문헌 1의 수법의 장점인 코스트 메리트(cost merit)를 살릴 수 없다고 하는 문제가 생긴다.
한편, 글로벌 움직임을 구하는 방법으로서, 검출된 복수개의 로컬 움직임 벡터에 대해서 아핀 변환을 적용하는 방법이 제안되어 있다.
도 34에, 아핀 변환의 일반식을, (식 1)로서 나타낸다. 도 34를 참조하면, 이 (식 1)에서, v는 타겟 블록의 움직임 벡터의 수평 성분, w는 타겟 블록의 움직임 벡터의 수직 성분을 나타내고, a, b, c, d, e, f는 아핀 파라미터를 나타내고 있다. 통상의 아핀 변환에서는, 아핀 파라미터 a, b, c, d, e, f는, 고정값이다. 또, x, y는, 타겟 블록의 중심 좌표의 수평 성분 및 수직 성분을 나타내고 있다.
글로벌 움직임의 수렴 연산(convergence mathematical operation) 과정에 의해 구해진 아핀 파라미터와 각 타겟 블록의 중심의 좌표로부터, 글로벌 움직임에 대응하는 움직임 벡터가 얻어진다. 이하에서는, 이러한 벡터를 이상적인 움직임 벡터라고 칭한다. 이 이상적인 벡터와 블록 매칭에 의해 검출한 관측된 움직임 벡터 사이의 에러의 총합 ε는, 도 35의 (식 2)와 같이 표현된다.
글로벌 움직임을 도출한다고 하는 명제는, 상기의 에러의 총합 ε를 최소화하는 아핀 파라미터 a∼f의 추정이며, 이것은 예를 들면 최소 제곱법(the leaset squares method)에 의해서 푸는 것이 가능하다. 도 36, 도 37 및 도 38의 (식 3), (식 4), (식 5)에는 각각, 아핀 파라미터 a∼f의 도출 과정과 그 도출 과정의 결과를 나타낸다.
이와 같이, 아핀 변환의 파라미터는 비교적 용이하게 산출되지만, 그 효과는 크다. 아핀 변환은, 화상의 평행 이동, 회전 및, 확대나 축소 이외에, 어느 정도의 변형에도 대응할 수 있기 때문에, 대부분의 카메라 흔들림, 즉 카메라 워크(촬영 기술)의 미소한 보정을 커버한다.
상기한 바와 같은 아핀 변환에 대해서는, 예를 들면 일본 공개특허공보 특개2005-321902호(이하, 특허 문헌 2라고 칭한다)에 개시된 것이 있다.
그렇지만, 아핀 변환은, "경사 왜곡(oblique distortion)"에 대응할 수 없다는 결점이 있다. "경사 왜곡"은, 카메라 흔들림의 피치축{다시 말해 수직( vertical) 방향 축} 또는 요우축(yaw axis)(수직 방향에 대해 직교하는 수평 방향 축)의 회전 성분에 의해서 초래되는 현상이다. 이 "경사 왜곡"에 의해서, 정확히 대향(正對; exactly facing)한 상태의 직사각형 평면이, 도 39의 (b)에 도시하는 바와 같이, 사다리꼴로 변형되어 버리기 때문에, 사다리꼴 왜곡(trapezoidal distortion) 또는 키스톤(keystone)이라고도 불린다.
즉, 도 39의 (a)의 하측에 도시하는 바와 같이, 카메라 CAM의 광축 Lz가, 촬상 피사체 OBJ의 직사각형 평면과 직교해서 연장하도록, 카메라 CAM이 촬상 피사체 OBJ와 정확히 대향하고 있을 때는, 촬상 피사체 OBJ의 직사각형 평면의 촬상 화상은, 도 39의 (a)의 상측에 도시하는 바와 같이, 그대로 직사각형 형상으로 간주된다.
한편, 도 39의 (b)의 하측에 도시하는 바와 같이, 카메라 CAM의 광축 Lz가, 촬상 피사체 OBJ와 정확히 대향하지 않고, 각도 θ만큼 피치축 회전, 다시 말해 수직인 면내에서 회전한 경우에는, 촬상 피사체 OBJ의 직사각형 평면의 촬상 화상은, 도 39의 (b)의 상측에 도시하는 바와 같이, 좌우 방향, 다시 말해 화상의 수평 방향의 길이가, 각도θ에 따라서 선형으로 변화하는 사다리꼴을 나타내게(보이게) 된다.
도시는 생략하지만, 카메라 CAM의 광축 Lz가, 촬상 피사체 OBJ와 정확히 대향하지 않고, 각도 θ만큼 요우축 회전, 다시 말해 수평 면내에서 회전한 경우에는, 촬상 피사체 OBJ의 직사각형 평면의 촬상 화상은, 상하 방향, 다시 말해 화상의 수직 방향의 길이가, 각도 θ에 따라서 선형으로 변화하는 사다리꼴을 나타내게 된다.
카메라 흔들림에 의해서 상술한 바와 같이 변형된 형태로 촬상되어 버린 화상을, 원래대로 정확히 대향한 상태(형태)로 되돌리는 처리가, "경사 왜곡(oblique distortion)" 보정 또는 사다리꼴 보정이다. 그렇지만, 상기한 바와 같은 아핀 변환의 파라미터로는 이와 같은 보정을 표현할 수가 없다. 즉, 예를 들면 도 39의 (b)에 도시하는 바와 같은 "경사 왜곡된(obliquely distorted)" 사다리꼴 화상을, 직사각형의 화상으로 되돌리는 "경사 왜곡" 보정을 실행한다고 생각(의도)한 경우, 수직 축(y축)을 따른 화상의 상부(위쪽)를 수평 축소하고, 화상의 하부(아래쪽)를 수평 확대하면 좋다. 그런데, 아핀 변환의 파라미터 가운데, 수평 확대 또는 축소에 관한 파라미터는 a이며, 이 파라미터 a가 고정(일정) 값이기 때문에, 아핀 변환으로는 상기의 보정에 용이하게 대응할 수 없는 것이다.
이와 같은 문제를 회피하기 위해서, 아핀 변환 대신에 정사영(orthogonal projection) 변환을 이용하는 것이 제안되고 있다. 정사영 변환은, 도 40의 (식 6) 으로 표현되고, 3차원 공간에서의 임의의 평면에서 다른 평면으로의 사영 변환을 나타내는 것이 가능하다.
그러나, 여기서 상정하는 바와 같은 다수의 벡터에 대해서 하나의 글로벌 움직임을 특정하는 바와 같은 케이스에 있어서, 정사영 변환을 적용하는 것은 지극히 어렵다. 이것은, 도 40의 (식 6)의 형상으로부터 최소 제곱법을 이용하는 것은 어렵고, 다른 수법을 이용한 경우에서도, 방대한 연산이 필요하게 되기 때문이다.
현실적인 문제로서, 실제의 촬상 대상은 입체물(3차원 물체)이기 때문에, 관측된 로컬 움직임 벡터에는, 서로 거리가 다른 촬상 부분(피사체)이 다수 포함된다. 이와 같은 경우, 정사영 변환의 적용(응용)은, 단순한 근사에 불과하게 된다. 따라서, 정사영 변환의 일반 해(解; solution)를 풀기(얻기) 위해 필요한 방대한 코스트를 감안하면, 코스트 저감에 대한 대응책으로서는 어울리지 않는다.
보다 간이적으로 정사영 변환을 적용하기 위해서는, 6개의 벡터에 대해서 해를 구하는 방법이 적용가능하다. 이것은, 구해야 할 파라미터가 12개 있기 때문에, 6개의 벡터의 좌표를 대입하면, 6원 1차 방정식이 6개×2조 생성되고, 이 해를 6×6행렬의 역행렬 계산에 의해, 비교적 용이하게 도출할 수 있기 때문이다. 따라서, 다수의 로컬 벡터로부터 6개의 벡터를, 적절히 선택할 수 있기만 하면 좋게 된다.
그렇지만, 촬상 화상에 움직이는 촬상 피사체가 포함되어 있는 경우를 고려하면, 각각의 로컬 벡터의 정확도(accuracy)가 상당히 높을 것이라고 기대할 수 없기 때문에, 많은 로컬 움직임 벡터 중에서, 정확도가 높은 벡터만을 추출하는 것은 곤란하다. 이 때문에, 다수의 로컬 움직임 벡터로부터 6개의 벡터를 적절히 선택하 는 것은 매우 곤란하다.
본 발명은, 화상에 "경사 왜곡된" 변형이 있더라도, 양호하게 글로벌 움직임을 검출할 수 있도록 하는 수법을 제공하는 것을 목적으로 한다.
본 발명의 하나의 실시형태에 따르면, 화상 내에서 설정되고 복수의 화소로 형성되는 소정 크기의 복수개의 블록 각각에 대한 움직임 벡터를 검출하도록 구성된 움직임 벡터 검출부와; 상기 움직임 벡터 검출부에 의해 검출된 블록의 움직임 벡터로부터, 아핀 파라미터의 적어도 하나를 상기 화상의 변위 축에 대한 변수의 함수로 나타낸 확장된 아핀 변환을 이용해서, 수렴 연산을 실행하고, 상기 화상 전체에 가해지고 있는 변형을 나타내는 글로벌 움직임을 산출하도록 구성된 글로벌 움직임 산출부를 구비하는 화상 처리 장치가 제공된다.
이 화상 처리 장치에 있어서는, 아핀 파라미터가 모두 고정 값인 아핀 변환 대신에, 아핀 변환 파라미터의 적어도 하나가 화상의 변위 축에 대한 변수의 함수인, 확장된 아핀 변환을 이용해서 수렴 연산을 실행하고, 화상에 대한 글로벌 움직임을 산출한다.
예를 들면, 도 39의 (b)에 도시하는 바와 같은 "경사 왜곡된" 사다리꼴 화상을, 직사각형의 화상으로 되돌리는 "경사 왜곡" 보정을 실행하는 것으로 생각한 경우, 수직축 또는 y축을 따라 상기 화상의 상부(위쪽)를 수평 축소하고, 상기 화상의 하부(아래쪽)를 수평 확대하면 좋다. 도 34에 도시한 아핀 변환의 (식 1)에서의 아핀 파라미터 중에서, 수평 확대 또는 축소에 관한 파라미터는 a이다. 그래서, 예 를 들면, 수직축(y축)에 대한 변수 y의 함수가 아핀 파라미터 a로 사용되는, 확장된 아핀 변환을 이용하면, 도 39의 (b)에 도시한 바와 같은 화상의“경사 왜곡된” 변형도 고려한 글로벌 움직임이 산출 가능해진다.
확장된 아핀 변환은, 변형 파라미터가 많아지고 유연하기(flexible) 때문에, 글로벌 움직임의 수렴 연산에 있어서, 움직이는 촬상 피사체나 노이즈 등의 잘못된 움직임 벡터 성분에도 대응해 버리고, 결국에는 수렴 연산에 의해서 에러 벡터를 배제할 수 없을 가능성이 있다.
따라서, 바람직하게는, 화상 처리 장치에 있어서, 글로벌 움직임 산출부에 의한 초기 수렴 연산에서는, 상기 움직임 벡터 검출부에 의해 검출된 블록의 움직임 벡터로부터, 고정 계수의 아핀 파라미터를 이용하는 통상의 아핀 변환을 이용해서 수렴 연산을 실행하고, 상기 확장된 아핀 변환을 이용하는 수렴 연산은, 상기 초기 수렴 연산 후에 개시하도록 구성되어 있다.
이 화상 처리 장치에 있어서, 글로벌 움직임 산출부에 의한 초기 수렴 연산에서는, 고정 계수의 아핀 변환을 이용하는 통상의 아핀 변환을 실행하고 있다. 그리고, 움직임 벡터 검출 수단에 의한 움직임 벡터 성분으로부터, 움직이는 촬상 피사체 또는 노이즈 등의 잘못된 움직임 벡터 성분을 배제한 후에, 확장된 아핀 변환을 이용하는 수렴 연산을 실행하도록 한다.
본 발명의 다른 실시형태에 따르면, 화상 내에서 설정되고 복수의 화소로 형성되는 소정 크기의 복수개의 블록 각각에 대한 움직임 벡터를 검출하는 움직임 벡터 검출 단계와; 아핀 파라미터들 중의 적어도 하나를 상기 화상의 변위 축에 대한 변수의 함수로 나타낸 확장된 아핀 변환을 이용해서, 상기 움직임 벡터 검출 단계에서 검출된 상기 블록의 움직임 벡터로부터 수렴 연산을 실행하여, 상기 화상 전체에 가해지고 있는 변형을 나타내는 글로벌 움직임을 산출하는 글로벌 움직임 산출 단계를 포함하는 화상 처리 방법이 제공된다.
요컨대, 이 화상처리 장치에 의하면, 적어도 하나의 아핀 파라미터를 화상의 변위 축에 대한 변수의 함수로 나타낸, 확장된 아핀 변환을 이용하고 있으므로, 화상의 "경사 왜곡된" 변형도 고려한 글로벌 움직임이 산출 가능해진다.
본 발명의 상기 및 그 밖의 특징과 이점은, 첨부 도면과 관련하여 취해진 이하의 설명과 부수하는 특허청구범위로부터 명백해질 것이며, 첨부 도면에서는 동일하거나 유사한 부분을 같은 참조 기호에 의해 나타내고 있다.
이하에서는, 본 발명을, 본 발명에 따른 화상 처리 장치 및 화상 처리 방법을 촬상 장치에 적용한, 바람직한 실시형태의 경우에 관련해서 상세하게 설명한다.
[제1 실시형태]
이 제1 실시형태에 따른 촬상 장치는, 촬상 소자 또는 이미저(imager)에 의해서 촬상된 여러장(複數枚)의 정지 화상을, 서로에 대해 위치시키고 겹치게 하여, 화상의 노이즈 저감을 행하도록 하는 것이다.
촬상 장치를 손으로 들고 촬영하는 환경은, 카메라 흔들림이 발생하기 쉬운 환경이다. 이와 같이 사용자의 손에 들린 촬상 장치로 정지 영상을 연속 촬영한 경 우에, 예를 들면 제1 정지 영상을 타겟 프레임으로서 이용하고, 제2 정지영상과 그 이후의 정지 영상을 참조 프레임으로서 이용한다.
참조 프레임 전체에 평행 이동, 회전 및 확대 또는 축소를 포함하는 변형 처리를 적용하는 것에 의해, 타겟 프레임의 위치에 참조 프레임을 위치시킬 수 있는 경우, 이 참조 프레임 전체에 가해지고 있는 변형 처리가 글로벌 움직임이다. 글로벌 움직임은, 통상적으로, 화상의 배경의 움직임 및 그 움직임량을 나타낸다.
카메라 흔들림은, 참조 프레임이 타겟 프레임에 대해서, 평행 이동, 회전 및 확대 또는 축소를 포함하는 화상 변형을 한 양만큼, 타겟 프레임에 대해서 글로벌 움직임이 생긴 것을 의미하고 있다.
이 실시형태의 설명에서는, 설명의 간단화를 위해서, 촬영한 정지 영상의 첫장째를 기준으로서, 다시 말해 타겟 프레임으로서 이용하고 있다. 그렇지만, 이것은 필수적인 것은 아니다. 임의의 n장째 정지 영상을 타겟 프레임으로서 이용하고, 임의의 m장째(n≠m) 정지영상을 참조 프레임으로서 이용해서, 글로벌 움직임을 재정의(re-define)해도 좋다. 또는, 동영상 내의 시간상으로 다른 2장의 프레임 화상에 대해서, 글로벌 움직임을 정의해도 좋다. 또는, 촬상 화상의 한 프레임 내의 유효 영상 프레임 전체에 대해서가 아니라, 한 프레임의 화상의 일부분에 대해서만, 글로벌 움직임 처리를 적용해도 좋다.
글로벌 움직임이 구해지면, 그 구해진 글로벌 움직임으로부터, 타겟 프레임과 참조 프레임 사이의 화면 전체에 가해지고 있는 움직임을 나타내는 움직임 벡터를 산출하는 것이 가능해진다. 이하에서는, 이와 같은 움직임 벡터를 "글로벌 움직 임 벡터"라고 칭한다. 이 글로벌 움직임 벡터는, 화면에 설정되는 다수개의 타겟 블록의 각각에 대해서 구할 수가 있다.
그리고, 글로벌 움직임에 의거해서 글로벌 움직임 벡터를 정확하게 구할 수 있으면, 카메라 흔들림을 양호하게 보정할 수가 있다. 또는, 카메라 흔들림 량에 대해 글로벌 움직임 벡터를 보정하면서, 프레임 화상을 서로 겹치게 할 수가 있다.
이하의 설명에서는, 움직임 벡터 검출 및 움직임 보상(움직임 벡터를 이용해서, 상이한 프레임의 두 개의 화상을 위치시키는 것)을 이용해서 여러 장의 화상을 겹치게 하여 노이즈를 저감하는 것을, 노이즈 저감(NR; noise reduction)이라고 칭하며, 이러한 노이즈 저감에 의해 노이즈 저감된 화상을 노이즈 저감 화상(reduced noise image)이라고 칭하기로 한다.
이 실시형태에서, 움직임 벡터는, 상술한 블록 매칭 수법에 의해 검출한다. 또, 이 실시형태에서는, 하나의 화면을 다수개의 블록으로 분할하고, 그 블록 단위의 움직임 벡터(이하, 이와 같은 움직임 벡터를 "로컬 움직임 벡터"라고 칭한다)를, 블록 매칭 수법에 의해 검출한다. 또한, 해당 로컬 움직임 벡터의 신뢰성에 대한 지표(index)를, 블록 매칭 수법에서의 상관값(correlation value)을 이용해서, 후술하는 바와 같은 방식으로 검출한다. 그리고, 검출한 로컬 움직임 벡터 중에서, 신뢰성이 높은 것만으로부터 글로벌 움직임을 산출하고, 산출한 글로벌 움직임으로부터, 후술하는 타겟 블록인 블록마다의 글로벌 움직임 벡터를 검출하도록 한다.
[블록 매칭의 개요]
도 2∼도 7은, 블록 매칭 수법의 개요를 도시하는 것이다. 여기서 설명하는 블록 매칭 수법에서는, 예를 들면 도 2의 (a)에 도시하는 바와 같이, 타겟 프레임(100)에, 각각 수평 방향의 복수 화소 및 수직 방향의 복수 라인으로 이루어지는 소정 크기의 직사각형 영역의 블록, 즉 타겟 블록(102)을 상정한다.
블록 매칭에 있어서는, 타겟 블록(102)과 상관성이 높은 블록을, 참조 프레임(101) 내에서 검색해 낸다. 참조 프레임(101) 내로부터 타겟 블록(102)과 상관성이 가장 높은 블록으로서 검출된, 도 2의 (b)에 도시된 참조 블록(103)을, 움직임 보상 블록이라고 칭한다. 또, 타겟 블록(102)과, 이 타겟 블록(102)과 상관성이 가장 높은 움직임 보상 블록(103) 사이의 위치 변위(displacement)량을, 움직임 벡터{도 2의 (b)의 참조 기호 (104) 참조}라고 칭한다.
타겟 블록(102)과 움직임 보상 블록(103) 사이의 (변위량과 변위 방향을 포함하는) 변위에 대응하는 움직임 벡터(104)는, 타겟 프레임(100)의 각 타겟 블록(102)의 위치와 동일한, 참조 프레임(101)의 위치에, 타겟 블록(102)의 사영(射影; projection) 이미지 블록(109)을 상정했을 때, 이 타겟 블록(102)의 사영 이미지 블록(109)의, 예를 들면, 중심 위치와, 움직임 보상 블록(103)의, 예를 들면, 중심 위치 사이의 변위에 대응한다. 이것에 의해, 움직임 벡터(104)는, 변위량과, 그 변위의 방향 성분도 가지는 것이다.
블록 매칭 처리의 개요를 설명한다. 도 3을 참조하면, 도 3에서 점선으로 나타내는 바와 같이, 타겟 프레임(100)의 타겟 블록(102)의 위치와 동일한 위치인, 참조 프레임(101)의 위치에서, 타겟 프레임(100)의 타겟 블록(102)의 사영 이미지 블록(109)을 상정하고, 이 타겟 블록(102)의 사영 이미지 블록(109)의 중심의 좌표 를, 움직임 검출을 위한 원점(105)으로서 정한다. 그리고, 움직임 벡터(104)가, 움직임 검출을 위한 원점(105)으로부터 일정(certain) 범위 내에 존재한다고 가정하고, 이 움직임 검출을 위한 원점(105)을 중심으로 한 소정의 범위를, 도 3에서 1점 쇄선으로 나타낸 검색 범위(search range)(106)로서 설정한다.
다음에, 타겟 블록(102)과 동일한 크기의 블록, 즉 참조 블록(108)을 참조 화면에서 설정한다. 그리고, 이 참조 블록(108)의 위치를, 검색 범위(106) 내에서, 예를 들면 수평 방향 및 수직 방향으로 1화소 또는 복수의 화소 단위로 이동시키도록 한다. 따라서, 검색 범위(106)에서는, 복수개의 참조 블록(108)이 설정되게 된다.
여기서, 참조 블록(108)을 검색 범위(106) 내에서 이동시킨다는 것은, 움직임 검출을 위한 원점(105)이 타겟 블록의 중심 위치이므로, 참조 블록(108)의 중심 위치를 검색 범위(106) 내에서 이동시킨다는 것을 의미하고, 참조 블록(108)을 구성하는 화소는, 검색 범위(106)로부터 비어져 나올(protrude) 수도 있다.
그리고, 검색 범위(106)에서 설정되는 각 참조 블록(108)에 대해서, 그 참조 블록(108)과 타겟 블록(102) 사이의 변위량 및 변위 방향을 나타내는 벡터, 즉 참조 벡터(107)(도 3 참조)를 설정한다. 그리고, 각각의 참조 벡터(107)가 가리키는 위치에 있는 참조 블록(108)의 화상 내용과, 타겟 블록(102)의 화상 내용 사이의 상관성(correlation)을 평가한다.
도 4를 참조하면, 참조 벡터(107)는, 참조 블록(108)의 수평 방향(X방향)의 변위량을 Vx로 하고, 수직 방향(Y방향)의 변위량을 Vy로 했을 때, 벡터 (Vx, Vy)로 서 나타낼 수가 있다. 참조 블록(108)의 위치 좌표(예를 들면 중심 위치 좌표)와, 타겟 블록(102)의 위치 좌표(예를 들면 중심 위치 좌표)가 동일할 때, 참조 벡터(107)는 벡터 (0, 0)으로서 나타내어진다.
예를 들면, 참조 블록(108)이, 타겟 블록(102)의 위치로부터, X방향으로 1화소 거리만큼 변위된 위치에 있는 경우, 참조 벡터(107)는 벡터 (1, 0)로서 나타내어진다. 한편, 참조 블록(108)이, 타겟 블록(102)의 위치로부터, X방향으로 3화소 거리, Y방향으로 2화소 거리만큼 변위된 위치에 있는 경우, 참조 벡터(107)는 벡터 (3, 2)로 된다.
다시 말해, 참조 벡터(107)는, 도 5에 도시하는 바와 같이, 서로 대응하는 각 참조 블록(108)과 타겟 블록(102) 사이에서의, 변위량과 변위의 방향을 포함하는 벡터로 되는 변위를 의미한다. 도 5에서는, 타겟 블록(102) 및 참조 블록(108)의 위치를, 각각의 블록의 중심 위치에 의해 나타내고 있다.
참조 블록(108)은, 검색 범위(106) 내에서 이동하는 것으로 되지만, 그 경우에, 참조 블록(108)의 중심 위치가 검색 범위(106) 내에서 이동한다. 참조 블록(108)은, 상술한 바와 같이 수평 방향 및 수직 방향의 복수 화소로 이루어지므로, 타겟 블록(102)과 블록 매칭 처리되는 대상(object)으로 되는 참조 블록(108)의 이동의 최대 범위는, 도 5에 도시하는 바와 같이, 검색 범위(106)보다도 넓은 매칭 처리 범위(110)로 된다.
그리고, 타겟 블록(102)의 화상 내용과의 상관성이 가장 높은 블록으로서 검출된 참조 블록(108)의 위치를, 참조 프레임(101)에서의 타겟 프레임(100)의 타겟 블록(102)의 위치, 즉 움직인 후의 위치로서 검출한다. 그리고, 검출한 참조 블록을, 전술한 움직임 보상 블록(103)으로서 정한다. 그리고, 그 검출한 움직임 보상 블록(103)의 위치와 타겟 블록(102)의 위치 사이의 변위량을, 도 2의 (b)에 도시하는 바와 같이, 방향 성분을 포함하는 움직임 벡터(104)로서 검출하도록 한다.
타겟 블록(102)과, 검색 범위(106) 내에서 이동하는 참조 블록(108)과의 상관의 정도(degree; 세기)를 나타내는 상관값은, 기본적으로는 타겟 블록(102)과 참조 블록(108)과의 대응하는 화소값을 이용해서 산출된다. 그 상관값의 산출 방법으로서는, 제곱 평균 제곱근(root mean square)을 이용하는 방법을 포함한 각종 산출을 이용할 수가 있다.
그 중에서, 움직임 벡터를 산출할 때에 일반적으로 이용되는 상관값의 하나로서는, 도 6에 도시하는 바와 같이, 예를 들면 타겟 블록(102) 내의 각 화소의 휘도값과, 검색 범위(106) 내의 대응하는 화소의 휘도 값 사이의 차분(差分; difference)의 절대값의, 블록 내의 모든 화소에 대한 총합이 이용된다. 이 차분의 절대값의 총합을 차분 절대값의 합이라고 부르며, 이하에서는 SAD(Sum of Absolute Difference)값이라고 기재하기로 한다.
상관값으로서 SAD값이 이용되는 경우에는, SAD값이 작을수록, 상관성이 증가한다. 따라서, 검색 범위(106) 내에서 이동하는 참조 블록(108) 중에서, SAD값이 최소로 되는 위치에 있는 참조 블록(108)이, 가장 상관성이 높은 최강(最强) 상관 참조 블록으로 된다. 이 최강 상관 참조 블록은, 움직임 보상 블록(103)으로서 검출되며, 타겟 블록(102)의 위치로부터의 그 검출된 움직임 보상 블록(103)의 백터 량이 움직임 벡터로서 검출된다.
전술한 바와 같이, 블록 매칭에서는, 검색 범위(106) 내에서 설정되는 복수개의 참조 블록(108)의 각각의, 타겟 블록(102)의 위치로부터의 변위량은, 방향 성분을 포함하는 양으로서의 참조 벡터(107)에 의해 표현된다. 각 참조 블록(108)의 참조 벡터(107)는, 참조 블록(108)의 참조 프레임(101) 상의 위치에 대응하는 값을 갖는다. 전술한 바와 같이, 블록 매칭에서는, 상관값으로서의 SAD값이 최소값으로 되는 참조 블록(108)의 참조 벡터를, 움직임 벡터(104)로서 검출한다.
그래서, 블록 매칭에서는, 검색 범위(106) 내에서 설정되는 복수개의 참조 블록(108)의 각각과 타겟 블록(102) 사이에서의 SAD값{이하, 설명의 간단화를 위해서, 참조 블록(108)에 대한 SAD값이라고 한다}를, 먼저 구한다.
다음에, 이러한 방법으로 구한 SAD값을, 참조 블록(108)의 위치에 대응하는 참조 벡터(107)의 각각에 대응시켜서, 메모리에 기억(store)해 둔다. 그리고, 그 메모리에 기억된 모든 참조 블록(108)에 대한 SAD값 중에서, 최소의 SAD값의 참조 블록(108)을 검출함으로써, 움직임 벡터(104)를 검출하도록 하고 있다. 이하의 설명에서는, 설명의 간단화를 위해서, 참조 블록(108)의 위치에 대응하는 참조 벡터(107)를, 참조 블록(108)의 참조 벡터(107)라고 칭한다.
검색 범위(106)에서 설정된 복수개의 참조 블록(108)에 대한 상관값(이 예에서는, SAD값)을, 참조 블록(108)의 위치에 대응하는 참조 벡터(107)에 대응시켜 기억한 것을, 상관값 테이블이라고 칭한다. 이 예에서는, 상관값으로서, 차분 절대값의 합인 SAD값을 이용하므로, 이 상관값 테이블을, 차분 절대값의 합 테이블 또는 SAD 테이블이라고 칭하기로 한다.
도 7의 SAD 테이블 TBL이, 이것을 나타내고 있다. 도 7을 참조하면, 이 SAD 테이블 TBL에서, 각각의 참조 블록(108)에 대한 상관값(이 예에서는, SAD값)을, 상관값 테이블 요소라고 칭한다. 도 7의 예에서는, 참조 부호 (111)로 나타내는 SAD값은, 참조 벡터가 벡터 (0, 0)일 때의 SAD값이다. 또, 도 7의 예에서는, SAD값의 최소값은, 참조 벡터가 벡터 (3, 2)일 때의 "7"이므로, 구하는 움직임 벡터(104)는, 그 벡터 (3, 2)로 된다.
타겟 블록(102) 및 참조 블록(108)의 위치는, 그들 블록의 임의의 특정 위치, 예를 들면 중심 위치를 의미하는 것이다. 또, 참조 벡터(107)는, 참조 프레임(101)에서의 타겟 블록(102)의 사영 이미지 블록(109)의 위치와, 참조 블록(108)의 위치 사이의 변위량(방향을 포함한다)을 나타내는 것이다.
그리고, 각 참조 블록(108)에 대응하는 참조 벡터(107)는, 참조 프레임(101) 위에서, 타겟 블록(102)에 대응하는 사영 이미지 블록(109)의 위치로부터의 참조 블록(108)의 변위이다. 따라서, 참조 블록(108)의 위치가 특정되면, 그 위치에 대응하는 참조 벡터의 값도 특정된다. 이것에 의해, SAD 테이블 TLB의 메모리에서의 참조 블록의 상관값 테이블 요소의 어드레스가 특정되면, 대응하는 참조 벡터는 특정되게 된다.
SAD값은, 2개 이상의 타겟 블록에 대해서 병렬로 계산하도록 해도 좋다. 동시에 처리할 타겟 블록의 수가 증가하면, 처리 속도는 고속화한다. 그러나, SAD값을 계산하는 하드웨어의 규모가 증대하므로, 처리의 고속화와 회로 규모의 증대가 트레이드 오프(trade-off) 관계로 된다.
[실시형태의 블록 매칭]
상기한 블록 매칭의 설명은, 하나의 타겟 블록의 움직임 벡터의 산출에 대한 설명이다. 이 타겟 블록이 타겟 프레임 전체에서 차지하는 비율은, 통상적으로 작기 때문에, 이것을 그대로 글로벌 움직임 벡터로 결정하는 것은 일반적으로는 곤란하다.
이 실시형태에서는, 도 8에 도시하는 바와 같이, 타겟 프레임(100)을, 예를 들면 64화소×64라인과 같은 크기의 복수개의 타겟 블록(102)으로 분할하고, 이 복수개의 타겟 블록의 각각에 대한 움직임 벡터 또는 로컬 움직임 벡터(104B)를 먼저 구한다. 이때, 이 실시형태에서는, 구한 각각의 로컬 움직임 벡터의 신뢰성을 나타내는 지표를 함께 산출하도록 한다.
그리고, 로컬 움직임 벡터의 신뢰성에 대한 지표에 의거해서, 타겟 프레임에 대해서 구한 복수개의 로컬 움직임 벡터 중에서, 신뢰성이 높은 로컬 움직임 벡터만을 추출한다. 그리고, 추출한 신뢰성이 높은 로컬 움직임 벡터만으로부터, 글로벌 움직임을 산출함과 동시에, 블록 단위의 글로벌 움직임 벡터를 산출한다. 그리고, 산출한 블록 단위의 글로벌 움직임 벡터를 이용해서, 타겟 프레임에 대한 참조 프레임을 블록 단위로 위치시킨 후, 위치시킨 두 개의 프레임을 겹치게 하여 노이즈 저감(NR) 화상을 생성하도록 한다.
그리고, 이 촬상 장치는, 정지 영상 촬영시에, 도 9에 도시하는 바와 같이, 고속으로 여러장의 정지 영상의 촬영을 행하고, 첫장째(제1)의 정지 영상 촬영 화 상을 타겟 프레임(100)으로서 결정한다. 그리고, 이 촬상 장치는, 두장째(제2) 이후의 정지 영상 촬영 화상을 포함하는, 소정 장수(枚數)의 정지 영상 촬영 화상을 참조 프레임(101)으로 결정하고, 겹침을 실행한다. 그리고, 이 촬상 장치는, 그 겹쳐진 화상을 정지 영상 촬영 화상으로서 기록하도록 한다.
즉, 촬영자가 촬상 장치의 셔터 버튼을 누르면, 고속으로 상기 소정 장수의 정지 화상이 촬영되고, 그 1장째에 촬영한 정지 화상(프레임)에 대해서, 시간상으로 뒤에 촬영된 여러장의 정지 화상(프레임)이, 겹쳐지고, 기록되게 된다.
이 실시형태에서는 대상으로 하고 있지 않지만, 동영상 촬영시에는, 도 10과 같이, 촬상 소자로부터 출력되고 있는 현재 프레임의 화상을 타겟 프레임(100)의 화상으로 정하고, 그 이전 프레임의 과거의 화상을 참조 프레임(101)의 화상으로서 정한다. 다시 말해, 동영상 촬영시에는, 현재 프레임의 화상의 노이즈 저감을 실행하기 위해서, 현재 프레임의 이전 프레임의 화상을 현재 프레임에 겹치게 하고 있다.
[촬상 장치의 하드웨어 구성예]
도 1은, 본 발명의 실시형태에 따른 화상 처리 장치로서의 촬상 장치의 한 예의 블록도를 도시하는 것이다.
이 도 1을 참조하면, 도시된 촬상 장치는, 시스템 버스(2)에 중앙 처리 장치(CPU)(1)가 접속되고, 또 시스템 버스(2)에, 촬상 신호 처리계(10), 유저 조작 입력부(3), 화상 메모리부(4), 기록 재생 장치부(5) 등이 접속되어 구성되어 있다. 도 1에 도시하고 있지 않지만, CPU(1)는 각종 소프트웨어 처리를 실행하는 프로그 램을 기억하는 ROM(Read Only Memory)이나 작업 영역(work area)용 RAM(Random Access Memory) 등을 포함하는 것으로 하고 있다.
유저 조작 입력부(3)를 통한 촬상 기록 개시 조작에 응답해서, 도 1의 촬상 장치의 촬상 신호 처리계(10)는, 후술하는 바와 같은 촬상 화상 데이터의 기록 처리를 행한다. 또, 유저 조작 입력부(3)를 통한 촬상 기록 화상의 재생 개시 조작에 응답해서, 촬상 신호 처리계(10)는, 기록 재생 장치부(5)의 기록 매체에 기록된 촬상 화상 데이터의 재생 처리를 실행한다.
촬상 신호 처리계(10)에서는, 촬상 렌즈(10L)를 구비하는 카메라 광학계(도시되지 않음)를 통해 수신한 촬상 피사체로부터의 입사광은, 촬상 소자(11)에 조사되어, 촬상된다. 이 예에서는, 촬상 소자(11)는, CCD(Charge Coupled Device) 이미저로 구성되어 있다. 촬상 소자(11)는, CMOS(Complementary Metal Oxide Semiconductor) 이미저로 구성되어도 좋다.
이 촬상 장치에서는, 촬상 기록 개시 조작이 이루어지면, 렌즈(10L)를 통해서 입력된 영상이, 촬상 소자(11)에 의해 촬상 화상 신호로 변환된다. 그리고, 타이밍 신호 발생부(12)로부터의 타이밍 신호에 동기화한 신호로서, 빨강(R), 초록(G), 파랑(B)의 3원색으로 구성되는 베이어 배열(bayer array)의 RAW 신호{생신호(生信號)} 형태의 아날로그 촬상 신호가, 촬상 소자(11)로부터 출력된다. 출력된 아날로그 촬상 신호는, 전(前)처리부(13)에 공급되어, 결함 보정이나 γ보정 등의 전처리(pre-process)가 행해지고, 얻어진 아날로그 화상 신호는 데이터 변환부(14)에 공급된다.
데이터 변환부(14)는, 그것에 입력된 RAW 신호 형태의 아날로그 촬상 신호를, 휘도 신호 성분 Y와 색차 신호 성분 Cb/Cr으로 구성되는 디지털 촬상 신호 또는 YC 데이터로 변환한다. 데이터 변환부(14)로부터의 디지털 촬상 신호는, 유저 조작 입력부(3)를 통해서 수신된 촬영 지시에 의거해서, 화상 메모리부(4)에 기입(書入; write)된다.
즉, 유저 조작 입력부(3)를 통해 수신한 촬영 지시는, 셔터 버튼의 누름에 기인하는 정지 영상 촬영 지시이면, 데이터 변환부(14)로부터의 디지털 촬상 신호는, 프레임 메모리(4)에 기입된다. 이 경우에, 전술한, 서로 겹치게 할 데이터 변환부(14)로부터의 디지털 촬상 신호의 복수의 프레임이 화상 메모리부(4)의 제1∼ 제N(N은, 겹치게 할 정지 영상의 장수)의 프레임 메모리(41∼4N)에 기입된다.
이 예에서는, 셔터 버튼의 누름 시의 제1(첫장째) 프레임의 화상 데이터는, 타겟 프레임의 화상 데이터로서, 제1 프레임 메모리(41)에 기입된다. 그리고, 두장째 이후의 프레임 화상의 데이터는, 참조 프레임의 화상 데이터로서, 각각 제2∼ 제N 프레임 메모리(42∼4N)에 순차적으로 기입된다.
다른 프레임의 복수의 화상이 화상 메모리부(4)에 기입된 후, 타겟 프레임의 화상 데이터와 참조 프레임의 화상 데이터가, 글로벌 움직임 벡터 산출부(15)에 의해서 판독입력(讀入; read in)된다. 그리고, 글로벌 움직임 벡터 산출부(15)에서는, 후술하는 바와 같은 로컬 움직임 벡터 LMV의 검출, 로컬 움직임 벡터 LMV의 신뢰성의 산출, 글로벌 움직임의 산출 및 글로벌 움직임 벡터 GMV의 산출이 실행된다.
이 실시형태에서는, 글로벌 움직임 벡터 산출부(15)로부터는, 글로벌 움직임 벡터 GVM의 정보와, 타겟 프레임의 화상 데이터 TGv와, 참조 프레임의 화상 데이터 REFv가 출력된다.
글로벌 움직임 벡터 산출부(15)로부터의 글로벌 움직임 벡터 GVM의 정보와, 참조 프레임의 화상 데이터 REFv는, 움직임 보상 영상 생성부(16)에 공급된다. 움직임 보상 영상 생성부(16)에서는, 참조 프레임의 화상 데이터 REFv에 대해서, 글로벌 움직임 벡터 GVM에 의거해서, 글로벌 움직임에 대응하는 처리, 다시 말해, 평행 이동, 회전 및, 확대 또는 축소를 포함하는 변형 처리를 실시해서, 움직임 보상 화상을 생성한다.
그리고, 글로벌 움직임 벡터 산출부(15)로부터의 타겟 프레임의 화상 데이터 TGv가 가산부(17)에 공급됨과 동시에, 움직임 보상 영상 생성부(16)로부터의 움직임 보상 화상의 화상 데이터 MCv가 가산부(17)에 공급된다. 가산부(17)에서는, 화상 데이터 TGv 및 MCv의 대응하는 위치의 화소가 가산되는 것에 의해, 화상의 겹침 처리가 실행되며, 노이즈 저감 화상인 결과적(resulting) 가산 화상(加算畵像; sum image)의 화상 데이터 MIXv를 출력한다.
가산부(17)로부터의 가산 화상의 화상 데이터 MIXv는, 화상 메모리부(4)의 제1 프레임 메모리(41)에, 타겟 프레임의 화상 데이터로서, 그 이전 타겟 프레임의 화상 데이터에 덮어쓰기(重書; overwrite) 된다.
즉, 제1 프레임 메모리(41)의 타겟 프레임의 화상 데이터는, 최초에는, 셔터 버튼이 눌려진 직후의 첫장째 프레임의 화상 데이터로 된다. 제1 프레임 메모 리(41)의 타겟 프레임의 화상 데이터는, 두장째(제2) 참조 프레임의 움직임 보상 영상의 화상 데이터 MCv와 타겟 프레임이 가산되면, 그 가산 결과의 가산 화상의 화상 데이터 MIXv로 재기입(書換; re-write)된다.
그리고, 그 가산 화상의 화상 데이터 MIXv가, 세장째(제3)의 참조 프레임의 화상 데이터에 대한 타겟 프레임의 화상 데이터로 된다. 그리고, 상술한 것과 마찬가지로 해서, 글로벌 움직임 벡터 산출부(15)에 의해 글로벌 움직임 벡터 GVM이 산출되고, 가산부(17)에 의해 화상의 겹침 처리가 실행된다.
그리고, 그 가산 결과의 가산 화상의 화상 데이터 MIXv가 화상 메모리부(4)의 제1 프레임 메모리(41)에, 타겟 프레임의 화상 데이터로서, 그 이전 타겟 프레임의 화상 데이터에 덮어쓰기 된다. 이하, 네장째 이후의 참조 프레임 각각에 대해서도, 마찬가지의 처리 동작이 실행된다.
따라서, N장째의 참조 프레임까지에 대한 화상의 겹침 처리가 실행된 후에는, 화상 메모리부(4)의 제1 프레임 메모리(41)에는, 겹치게 할 N장의 모든 프레임이 겹쳐진 노이즈 저감(NR) 화상이 기입되어 있게 된다.
그리고, 이 화상 메모리부(4)의 제1 프레임 메모리(41)에 저장(store)된 겹침 결과의 노이즈 저감 화상인 가산 화상의 화상 데이터 MIXv는, 시스템 버스(2)를 통해서 정지 영상 코덱부(18)에 공급되고, 정지 영상 코덱부(18)에 의해 코덱 변환된다. 정지 영상 코덱부(18)로부터의 출력 데이터는, 기록 재생 장치부(5)의, 예를 들면, DVD(Digital Versatile Disc)나 하드 디스크 등의 기록 매체에 기록된다. 이 실시형태에서, 정지 영상 코덱부(18)에서는, JPEG(Joint Photographic  Experts Group) 방식에 따른 정지 영상에 대한 화상 압축 부호화 처리를 실행한다.
또, 이 정지 영상 촬영 모드 시, 셔터 버튼이 눌려지기 전에, 데이터 변환부(14)로부터의 화상 데이터는, 화상 메모리부(4)의 제1 프레임 메모리(41)를 통해서, 해상도 변환부(19)에 공급된다. 그리고, 화상 데이터는, 이 해상도 변환부(19)에 의해 소정의 해상도로 변환된 후, NTSC(National Television System Committee) 인코더(20)에 공급된다. 이 NTSC 인코더(20)에서, 화상 데이터는, NTSC 방식의 표준 컬러 영상 신호로 변환되고, 예를 들면 LCD(Liquid Crystal Display; 액정 디스플레이) 패널로 이루어지는 모니터 디스플레이부(6)에 공급된다. 모니터 디스플레이부(6)의 표시 화면에는, 정지 영상 촬영 모드 시의 모니터 화상이 모니터 표시된다.
이 기록 재생 장치부(5)의 기록 매체에 기록된 정지 영상의 화상 데이터는, 유저 조작 입력부(3)를 통한 재생 개시 조작에 응답해서 판독출력(讀出; read out)되고, 정지 영상 코덱부(18)에 공급되어, 재생을 위해 디코딩된다. 그리고, 재생을 위해 디코딩된 정지 영상의 화상 데이터는, 화상 메모리부(4)의 버퍼 메모리(도시는 생략됨)를 통해서 NTSC 인코더(20)에 공급되며, NTSC 인코더(20)에 의해 NTSC 방식의 표준 컬러 영상 신호로 변환된다. 그 표준 컬러 영상 신호는, 모니터 디스플레이부(6)에 공급되고, 그의 재생 화상이 그 모니터 디스플레이부(6)의 표시 화면에 표시된다.
도 1에서, 도시는 생략했지만, NTSC 인코더(20)로부터의 출력 영상 신호는, 영상 출력 단자를 통해서 외부로 도출(導出)하는 것이 가능하게 되어 있다.
이 실시형태에서는, 정지 영상 코덱부(18)에 의해 화상 데이터를 압축해서(압축 형태로) 기록하도록 했지만, 정지 영상 코덱부(18)를 생략하고, 화상 데이터를 압축하지 않고 기록하도록 해도 좋다.
또, 상술한 글로벌 움직임 벡터 산출부(15) 및 움직임 보상 영상 생성부(16)는, 하드웨어에 의해 구성할 수가 있다. 또, 글로벌 움직임 벡터 산출부(15) 및 움직임 보상 영상 생성부(16)는, DSP(Digital Signal Processor)를 이용해서 구성할 수도 있다. 또, 글로벌 움직임 벡터 산출부(15) 및 움직임 보상 영상 생성부(16)는, CPU(1)에 의한 소프트웨어 처리로 대체할 수도 있다.
마찬가지로, 가산부(17)도, 하드웨어에 의해 구성할 수 있으며, 또 DSP를 이용해서 구성할 수도 있다. 또, 가산부(17)도, CPU(1)에 의한 소프트웨어 처리로 대체할 수도 있다. 이것은, 정지 영상 코덱부(18)에 대해서도, 마찬가지로 적용된다.
[글로벌 움직임 벡터 산출부(15)]
이 실시형태에서, 글로벌 움직임 벡터 산출부(15)에서는, 우선, 도 2∼도 7을 이용해서 설명한 바와 같은 SAD값을 이용해서 블록 매칭 처리를 실행하는 것에 의해, 로컬 움직임 벡터 검출을 실행하도록 한다. 단, 이 실시형태에서는, 글로벌 움직임 벡터 산출부(15)는, 후술하는 바와 같은 하드웨어로 구성되며, 로컬 움직임 벡터는, 계층화(階層化; layered) 블록 매칭 처리 및 보간 처리에 의해 산출하도록 한다.
또, 전술한 바와 같이, 글로벌 움직임 벡터 산출부(15)에서는, 로컬 움직임 벡터의 각각의 신뢰성에 대한 지표도 산출하도록 한다.
또한, 글로벌 움직임 벡터 산출부(15)에서는, 신뢰성이 높은 로컬 움직임 벡터만을 이용해서, 글로벌 움직임을 산출한다. 그리고, 산출한 글로벌 움직임으로부터, 블록 단위의 글로벌 움직임 벡터를 산출한다.
<계층화 블록 매칭 처리>
일반적인 종래의 블록 매칭에서의 움직임 벡터 검출 처리에서는, 검색 범위 내에서, 픽셀 단위, 다시 말해 하나의 픽셀 단위 또는 복수의 픽셀 단위로 참조 블록을 이동시키고, 각 이동 위치에서의 참조 블록에 대한 SAD값을 산출한다. 그리고, 이와 같이 해서 산출한 SAD값 중에서 최소값을 나타내는 SAD값을 검출하고, 그 최소 SAD값을 나타내는 참조 블록 위치에 의거해서, 움직임 벡터를 검출하도록 한다.
그리고, 이 실시형태에서는, 하나의 프레임이 다수의 블록으로 분할되므로, 상기한 블록 매칭 처리는, 타겟 블록 및 참조 블록을 순차적으로 변경시킴으로써, 전체 화면에 대해 처리를 실행한다. 이것에 의해, 타겟 프레임 내의 모든 타겟 블록에 대한 로컬 움직임 벡터 LMV의 산출을 실행한다.
그러나, 이와 같은 종래의 움직임 벡터 검출 처리에서는, 검색 범위 내에서 픽셀 단위로 참조 블록을 이동시키도록 하므로, 검색 범위에 비례해서, SAD값을 산출하기 위한 매칭 처리 회수가 많아져서, 매칭 처리 시간이 증가한다. 또, 이와 같은 종래의 움직임 벡터 검출 처리에서는, SAD 테이블의 용량도 커진다고 하는 문제가 있었다.
특히, 정지 화상의 고화소화(화소수 증가), 및 동영상의 HD(Higher Definition)화가 진행되어, 1장의 화상 사이즈가 매우 커지고 있는 것을 고려하면, 이 문제는 크다. 또, 이와 같은 종래의 움직임 벡터 검출 처리에서는, 시스템 버스(2)를 거쳐서 화상 메모리를 액세스하는 회수가 증가되어, 버스 대역이 증가되어야 한다고 하는 문제도 있다.
이상을 고려해서, 이 실시형태에서는 우선, 타겟 화상 또는 타겟 프레임 및 참조 화상 또는 참조 프레임을 사이즈 축소해서 축소 화상과 중간 화상을 준비하며, 그리고 그 축소 화상, 중간 화상, 원화상(原畵像) 순으로, 블록 매칭에 의한 움직임 벡터 검색을, 이전 단계에서의 블록 매칭의 결과를 다음 단계에서의 검색에 반영시켜 실행한다고 하는 계층화 블록 매칭을 실행한다.
이 계층화 블록 매칭을 실행하는 것에 의해, 연산량이나 처리 시간을 적게 하여, 효율이 좋은 로컬 움직임 벡터의 산출을 실행하도록 한다. 여기서, 축소 화상을 축소면, 중간 화상을 중간면, 축소된 형태가 아닌(축소화를 행하고 있지 않은) 원래의 화상을 기저면(基底面; base plane)이라고 칭하기로 한다.
도 11은, 이 계층화 블록 매칭을 설명하기 위한 도면이다. 즉, 도 11의 예를 참조하면, 기저면 타겟 프레임(201) 및 기저면 참조 프레임(301)을 각각, 1/a·1/b(1/a 및 1/b는 축소 배율이며, 단 a>1 및 b>1이다)로 축소해서, 축소면 타겟 프레임(211) 및 축소면 참조 프레임(311)을 생성한다.
그리고, 기저면 타겟 프레임(201) 및 기저면 참조 프레임(301)을 각각, 1/b로 축소해서, 중간면 타겟 프레임(221) 및 중간면 참조 프레임(321)을 생성해 둔 다.
축소면이나 중간면의 기저면에 대한 배율은 임의이지만, 1/2∼1/8배, 다시 말해 화소수로 환산하면 1/4∼1/64배의 범위가 적당하다. 도 11의 예에서는, 중간면에 대한 축소면의 축소 배율은 1/4, 즉 a=4이며, 또 기저면에 대한 중간면의 축소 배율은 1/4, 즉 b=4이다.
축소면 및 중간면의 작성시에 있어서도, 임의의 방법이 적용된다. 그러나, 단지, 원화상의 화소를, 축소 배율에 따라서 솎아내는(sampled out) 것만으로 축소면이나 중간면을 작성하는 방법에서는, 반사(折返; reflection) 성분이 발생되고, 1계층째(축소면)에서 검출되는 움직임 벡터가, 정확한 움직임 벡터로부터 벗어나기(어긋나기) 쉽게 된다. 이 때문에, 통상, 축소 배율에 적합한 컷오프 주파수 대역을 가지는 로우패스 필터를 원화상에 대해서 실시한 후, 축소 배율에 적합한 서브-샘플링을 실행한다.
이 실시형태에서는, 배율(scale)에 따른 서브-샘플링에 의해 소실(消失; disappear)되는 화소를 포함하는 휘도 평균값을 생성하고, 그것을 축소면 화소나 중간면 화소로서 이용하고 있다. 다시 말해, 1/a 축소인 경우라면, a×a화소의 정방(正方; square) 영역의 휘도 평균값을 산출하며, 이것을 축소면 화소나 중간면 화소의 휘도값으로서 이용한다. 이 수법의 경우, 우선 중간면을 생성해 두고 나서, 중간면으로부터 축소면을 생성하더라도, 원화면으로부터 직접 축소면을 생성하는 경우와 동일한 결과가 얻어진다. 그 때문에, 이 방식은 보다 효율적이다.
축소 화상을 얻는데 있어서는, 수평 방향의 축소율과 수직 방향의 축소율은, 상기한 경우와 동일해도 좋고, 또 서로 달리 해도 좋다.
이상과 같은 방식으로 해서 축소면 및 중간면을 작성하면, 우선, 축소면 타겟 프레이(211)에 축소면 타겟 블록(212)을 설정함과 동시에, 축소면 참조 프레임(311)에 축소면 검색 범위(313)를 설정한다.
그리고, 그 축소면 검색 범위(313) 내의 복수개의 축소면 참조 블록(312)에 대해서, 축소면 움직임 벡터 검출 장치(401)에 의해, 상술한 블록 매칭 처리를 실행해서, 최소 SAD값을 나타내는 축소면 참조 블록 위치를 검출한다. 그리고, 이 축소면 참조 블록 위치의 검출에 의거해서, 축소면 움직임 벡터 MVs를 검출한다.
이 예에서는, 축소면 움직임 벡터 검출 장치(401)는, 축소면 타겟 블록(212)의 크기의, 다시 말해 수평 방향의 화소수×수직 방향의 라인수의, 블록을 블록 매칭 처리 단위로 해서 처리를 실행하는 것이다.
축소면 움직임 벡터 MVs의 산출이 종료된 후에는, 축소면 타겟 프레임(211)을 a배 한 것과 똑같은 크기의 중간면 타겟 프레임(221)에서, 중간면 타겟 블록(222)을 설정한다.
도 11의 예에서는, 중간면 움직임 벡터 검출 장치(402)는, 축소면 움직임 벡터 검출 장치(401)에서의 블록 매칭 처리 단위와 동일한 크기의 블록을 중간면 타겟 블록으로 해서 블록 매칭 처리를 실행하도록 하고 있다. 동일한 크기의 블록이라는 것은, 동일한 픽셀수의 블록이며, 동일한 수평 방향의 화소수×동일한 수직 방향의 라인수로 이루어지는 것이다.
이 예의 경우, 축소면은 중간면의 1/a이므로, 축소면 타겟 블록(212)에 대응 하는 중간면 타겟 프레임에서의 영역에는, 중간면 타겟 블록(222)이, a개 포함되게 된다. 따라서, 그 중간면 타겟 블록(222)의 a개 모두가 중간면 움직임 벡터 검출 장치(402)에서의 블록 매칭 처리 대상으로서 설정된다.
그리고, 축소면 참조 프레임(311)을 a배 한 것과 동일한 중간면 참조 프레임(321)에서, 축소면 움직임 벡터 MVs를 중심으로 한 중간면 검색 범위(323)를 설정한다. 그리고, 움직임 벡터 검출 장치(402)에 의해, 이 중간면 검색 범위(323) 내의 복수개의 중간면 참조 블록(322)에 대한, 상술한 블록 매칭 처리를 실행해서, 최소 SAD값을 나타내는 중간면 참조 블록 위치를 검출하는 것에 의해, 중간면 움직임 벡터 MVm을 검출한다.
중간면 움직임 벡터 검출 장치(402)에서는, a개의 중간면 타겟 블록의 각각에 대해서, 중간면 검색 범위(323) 내에 설정한 각각의 해당 중간면 타겟 블록용의 검색 범위에서, 블록 매칭 처리를 실행한다. 이것에 의해, 각각의 중간면 타겟 블록에 대한 움직임 벡터의 검출을 실행한다. 그리고, 그들 복수개의 움직임 벡터 중에서, 최소의 SAD값을 나타내는 움직임 벡터를, 중간면에서의 움직임 벡터, 다시 말해 중간면 움직임 벡터 MVm으로서 검출한다.
축소면 움직임 벡터 MVs의 산출이 종료된 후에는, 중간면 타겟 프레임(221)을 b배 한 것과 동일한 크기를 갖는 기저면 타겟 프레임(201)에서, 기저면 타겟 블록(202)을 설정한다.
도 11의 예에서는, 기저면 움직임 벡터 검출 장치(403)도, 움직임 벡터 검출 장치(401 및 402)와 동일한 크기의, 다시 말해 동일한 픽셀수=동일한 수평 방향의, 화소수×동일한 수직 방향의 라인수의 블록을 처리 단위 블록으로 해서 블록 매칭 처리를 실행하도록 하고 있다.
그리고, 전술한 바와 같이, 중간면 움직임 벡터 MVm은, 처리 단위 블록의 단위로 얻어진다. 따라서, 기저면 움직임 벡터 검출 장치(403)에서 대상(object)으로 되는 기저면 타겟 프레임(201)에서의 기저면 타겟 블록(202)은, 도 11에서 사선을 그어 나타낸 바와 같이, 축소면 타겟 블록과 동일한 크기의 블록, 다시 말해 처리 단위 블록의 b배의 개수로 이루어지는 것으로서 설정된다.
한편, 중간면 참조 프레임(321)을 b배 한 것과 똑같은 크기를 갖는 기저면 참조 프레임(301)에서, 축소면 움직임 벡터 MVs와 중간면 움직임 벡터 MVm와의 합성 벡터를 중심으로 한 기저면 검색 범위(303)를 설정한다. 그 기저면 검색 범위(303) 내의 복수개의 기저면 참조 블록(302)에 대해서, 기저면 움직임 벡터 검출 장치(403)에 의해, 상술한 블록 매칭 처리를 실행해서, 최소 SAD값을 나타내는 기저면 참조 블록 위치를 검출하는 것에 의해, 기저면 움직임 벡터 MVb를 검출한다.
축소면 움직임 벡터 MVs 및 중간면 움직임 벡터 MVm은, 동일한 크기의 처리 단위 블록의 단위로 얻어진다. 그 때문에, 축소면 움직임 벡터 MVs와 중간면 움직임 벡터 MVm와의 합성 벡터를 중심으로 하여 설정된 기저면 검색 범위(303)는, b개의 기저면 타겟 블록(202)을 포함하는 영역보다도 약간 넓은 영역으로 된다.
기저면 움직임 벡터 검출 장치(403)에서는, b개의 기저면 타겟 블록(202)에 대해서, 기저면 검색 범위(303) 내에 설정한 각각의 기저면 타겟 블록에 대한 검색 범위에서, 블록 매칭 처리를 실행하며, 이것에 의해 기저면 타겟 블록에 대한 움직 임 벡터의 검출을 실행한다. 그리고, 그들 복수개의 움직임 벡터 중에서, 최소의 SAD값을 지시하는 움직임 벡터를, 기저면에서의 움직임 벡터, 다시 말해 기저면 움직임 벡터 MVb로서 검출한다.
그리고, 이상과 같이 해서 구한 축소면 움직임 벡터 MVs와, 중간면 움직임 벡터 VMm와, 기저면 움직임 벡터 VMb와의 합성 벡터로서, 기저면 타겟 프레임(201)과 기저면 참조 프레임(301) 사이에서의 기저면 타겟 블록에 대한 로컬 움직임 벡터 LMV가 검출된다.
이상과 같은 계층화 블록 매칭 처리를, 타겟 블록 및 참조 블록을 순차적으로 전환(change over)하면서, 타겟 프레임 및 참조 프레임의 전체 영역에 대해 실행하며, 이것에 의해 타겟 프레임 내에서 설정한 복수개의 타겟 블록 단위의 복수개의 로컬 움직임 벡터 LMV 모두가 산출된다.
도 11의 예에서, 움직임 벡터 검출 장치(401, 402 및 403)는, 실제적으로는 하나의 장치이며, 화상 메모리부(4)로부터 판독출력되 입력되는 타겟 블록과, 검색 범위 내에서 판독출력되는 참조 블록이 다를 뿐이다.
기저면 타겟 프레임(201)이, 모든 기저면 타겟 블록(202)에 대한 로컬 움직임 벡터 LMV를 얻도록 구성되는 경우에, 타겟 블록의 전환은 다음과 같이 한다. 즉, 축소면에서, 축소면 타겟 블록을, 수평 방향으로는, 축소 배율 1/a 및 1/b에 따른 수평 방향의 화소수에 대응하는 양만큼 순차적으로 변위시키면서 설정한다. 한편, 수직 방향으로는, 축소 배율 1/a 및 1/b에 따른 수직 방향의 라인수에 대응하는 양만큼 순차적으로 어긋나게 하면서 설정한다.
그러나, 글로벌 움직임을 복수개의 로컬 움직임 벡터 LMV로부터 구한다고 하는 목적에서 보면, 다음과 같은 대응책을 채용해도 좋다. 즉, 기저면 타겟 프레임(201)에서의 띄엄띄엄한(skipping) 위치의 기저면 타겟 블록에 대한 로컬 움직임 벡터 LMV를 얻도록, 축소면 타겟 블록을, 수평 방향 및 수직 방향으로 순차적으로 변위시켜서 설정한다.
상술한 계층화 블록 매칭은, 중간면을 생략하고, 축소면과 기저면만의 2개의 계층으로 실행해도 좋고, 또는 다른 중간면에 대해서 중간면의 계층이 복수개 존재해도 상관없다. 단, 축소 배율이 너무 커서, 움직이는 피사체와 배경이 동일한 단위 블록에 포함되어 버리는 경우에는, 주의가 필요하다. 즉, 본래는 다른 움직임 벡터로서 검출되어야 할 것이, 하나의 움직임 벡터로서 취급되어 버리고, 이후의(later) 계층에서는 복구(recovery)가 불가능하기 때문에, 축소 배율의 선정은 신중하게 행해질 필요가 있다.
[로컬 움직임 벡터 LMV의 신뢰성 산출]
비교적 노이즈가 많은 화상이 타겟 화상인 경우, SAD값이 노이즈의 영향을 받기 때문에, 정확한 벡터가 얻어지지 않는 경우가 많다. 도 12는, 야경(夜景)을 촬영한 것으로서, 비교적 노이즈가 많은 화상이다. 이 도 12의 화상과, 아주 조금 회전을 수반하면서 왼쪽방향으로 카메라를 흔들어서 촬영된 화상 사이의 움직임 벡터를 도시하면, 도 13에 도시하는 바와 같은 결과가 얻어진다. 이 도 13은, 원영상(original picture)을 1/8로 축소해서 얻은 축소 화상에서의 축소면 움직임 벡터를 묘화(描畵; plot)한 것이다.
이 도 13을 보면 알 수 있는 바와 같이, 특히 텍스처(texture)가 확실치 않은 밤하늘의 움직임 벡터가, 완전히 흩어진 움직임으로서 얻어지고 있다. 계층화 블록 매칭에 있어서, 상술한 바와 같이, 축소 화상의 생성시에는 로우패스 필터가 적용되기 때문에, 비교적 노이즈 내성이 높다. 그렇지만, 이 도 13에 도시하는 바와 같이, 축소 화상은 노이즈의 영향을 받는다.
기저면의 로컬 움직임 벡터 LMV는, 축소면 움직임 벡터의 주변을 검색해서 얻어지기 때문에, 축소면 움직임 벡터가, 정확한 움직임 벡터로부터 어긋나(벗어나) 있는 경우에는, 복구가 효과가 없어, 노이즈의 영향을 그대로 받아서, 더욱더 흐트러지게 된다.
만일, 노이즈가 전혀 없는 촬상 화상이 대상이었던 경우이더라도, 텍스처가 확실치 않은 화상인 경우에는, 연속 촬영시의 얼마 안 되는 외광의 변화나 노광 시간의 차이에 따른 그라데이션(gradation)의 변화 쪽이 크고, 검출된 움직임 벡터가, 정확한 움직임 벡터로부터 어긋나는(벗어나는) 경우가 많다. 또, 다수의 나무나 빌딩 등의 인공 건축물에는, 텍스처의 반복 패턴이 많지만, 그와 같은 텍스처의 반복 패턴인 경우이더라도, 검출된 움직임 벡터가, 정확한 움직임 벡터로부터 어긋나기 쉽게 된다.
이러한 케이스를 상정해서, 전술한 바와 같이, 종래부터, 신뢰성이 높은 움직임 벡터만을 이용해서 글로벌 움직임을 산출하려는 시도가 이루어져 왔다. 예를 들면, 타겟 화상에서의 가장자리(edge) 검출을 실행하고, 가장자리가 뚜렷한 블록의 움직임 벡터는, 신뢰성이 높은 움직임 벡터로서 판정하는 것이 제안되었다. 또, 타겟 화상의 IDCT(Inverse Discreet Cosine Transform) 결과의 DC 성분 및 AC 성분을 사용해서 신뢰성을 산출하는 것이 또한 제안되었다.
또, 미리, 필터의 일종인 코너 디텍터(corner detector)를 이용해서, 타겟 화상 위의 특징점을 검출해서, 그들의 움직임 벡터는 신뢰성이 높도록 하는 것이 제안되었다. 또, 복수의 특징점의 위치 관계가, 참조 화상 위에서도 유지된다고 하는 전제로부터, 복수점의 움직임 벡터의 조합으로부터 신뢰성이 높은 움직임 벡터를 추출하는 방법도, 제안되었다.
그렇지만, 이들의 종래의 수법은, 그 어느 것도 고노이즈(high noise)의 화상을 전제로 하고 있지 않고, 노이즈가 높은 수준인 화상에서는, 어느 수법도 실패할 것이라는 것이 명확하다.
이 실시형태에서는, 상기한 상황을 감안해서, 고노이즈 환경의 화상에서도 유효하게 움직임 벡터의 신뢰성을 평가할 수 있는 신뢰성 지표값을 얻도록 하고 있다.
이 실시형태에서는, 타겟 블록과 참조 블록 사이의 상관값의 제1 극대값과 제2 극댓값 사이의 차 또는 비를, 움직임 벡터의 신뢰성에 대한 지표값으로서 이용한다. 이 실시형태에서는, 타겟 블록과 참조 블록 사이의 상관값은, SAD값으로서 검출하므로, 상관값의 제1 극대값 및 제2 극대값은 각각, SAD값의 제1 극소값 및 제2 극소값으로 된다.
도 14는, 하나의 타겟 블록에 대한 SAD 테이블에서의 각 SAD값을, 모식적으로 도시한 도면이다. 이 도 14에서는, 검색 범위를, 화상의 수평 방향(x방향)과 수 직 방향(y방향)과의 2차원으로 나타내고, 높이 방향(x방향 및 y방향과 직교하는 방향)으로 SAD값을 취하고 있다. 이것에 의해, SAD 테이블은 3차 곡면으로 나타내고 있다.
통상의 블록 매칭 처리의 경우, 움직임 벡터를 검출하기 위해서는 SAD 테이블에서의 SAD값의 최소값만이 검출 대상으로서 결정된다. 그러나, 이 SAD값의 최소값은, SAD 테이블에서의 SAD값의 제1 극소값이며, 도 14에서는 점(501)으로 표시한 위치이다. 도 14에서는, 움직임의 원점(x=0, y=0)으로부터, 이 점(501)으로 표시한 SAD값의 최소값 위치 사이의 벡터로서 움직임 벡터 MV가 검출된다.
노이즈가 존재하지 않는 이상적인 상태를 생각하면, 검색 범위 내의 복수의 참조 블록과 타겟 블록 사이의 상관값을 구했을 때, 3차 곡면으로 표현되는 SAD 테이블은, 한결같이(uniformly) 아래쪽으로 볼록하게 되고, SAD값의 극소값은 하나만 존재하는 상태로 된다. 그러나, 실제의 촬영 상황에서는, 광량 변화나 움직임 물체의 움직임 등의 영향뿐만 아니라 각종 노이즈 때문에, 3차 곡면으로 표현되는 SAD 테이블은, 한결같이 아래쪽으로 에 볼록하게 되는 일은 거의 없고, 복수개의 SAD값의 극소값이 존재하는 것이 일반적이다.
그래서, 이 실시형태에서는, SAD값의 최소값과 동일한 제1 극소값을 나타내는 참조 블록의 위치에 의거해서 움직임 벡터 MV를 검출하고 있다. 그렇지만, 신뢰성에 대한 지표를 생성하기 위해서, 이 SAD값의 제1 극소값을 제외한 SAD값 중의 극소값, 즉 SAD값의 제2 극소값을 검출한다. 도 14에서는, 점(501)으로 표시한 위치가 제1 극소값을 나타내고, 점(502)으로 표시한 위치가 제2 극소값을 나타내고 있다.
노이즈 등의 영향이 적으면(한정되어 있으면), SAD값의 제1 극소값과 SAD값의 제2 극소값 사이의 차는 크고, SAD값의 제1 극소값, 즉 SAD값의 최소값으로부터 검출되는 움직임 벡터 MV의 신뢰성은 높아진다. 한편, 노이즈 등이 많은 다른 환경에서는, SAD값의 제1 극소값과 SAD값의 제2 극소값 사이의 차가 작고, SAD값의 제1 극소값과 SAD값의 제2 극소값 중 어느 것이 움직임 벡터 MV에 정확히 대응하고 있는지 모르는 상황으로 된다. 따라서, 신뢰성이 낮아진다.
이상의 내용으로부터, 이 실시형태에서는, SAD값의 제1 극소값(SAD값의 최소값)과 SAD값의 제2 극소값 사이의 차를, 검출한 움직임 벡터의 신뢰성에 대한 지표로서 결정한다. 도 14의 검색 범위를 1차원 축 상에서 다시 나타낸 SAD 테이블을, 도 15에 도시한다. 이 실시형태에서는, 이 도 15에서 제2 극소값과, 제1 극소값(SAD값의 최소값) 사이의 차의 값을, 움직임 벡터 MV의 지표값 Ft로서 결정한다.
SAD값의 제1 극소값밖에 얻어지지 않고, 제2 극소값이 얻어지지 않는 경우에는, 이 실시형태에서는, SAD값의 이론상의 최대값 또는 SAD 테이블 내의 SAD값의 최대값을, 그 움직임 벡터 MV의 신뢰성 지표값으로서 정하도록 한다. 따라서, 그와 같은 블록의 움직임 벡터는 신뢰성이 높은 것으로 된다. 그렇지만, 이와 같은 블록은 거의 존재하지 않으므로, SAD값의 제1 극소값만이 얻어지고, 제2 극소값이 얻어지지 않는 블록의 움직임 벡터는, 신뢰성의 평가로부터 제외되도록 해도 좋다.
SAD값의 제1 극소값(SAD값의 최소값)과 SAD값의 제2 극소값 사이의 차 대신에, SAD값의 제1 극소값(SAD값의 최소값)과 SAD값의 제2 극소값 사이의 비를, 움직 임 벡터 MV의 신뢰성 지표값 Ft로서 이용할 수도 있다. 그러나, 이하의 설명에서는, SAD값의 제1 극소값(SAD값의 최소값)과 SAD값의 제2 극소값 사이의 차를 이용하는 것으로 한다.
이 실시형태의 움직임 벡터의 신뢰성 지표에 따르면, 종래와 같은 화상의 가장자리나 특징 등의 화상 성분을 이용하는 것이 아니라 타겟 프레임과 참조 프레임 사이의 상관값만을 이용하고 있으므로, 노이즈에 대한 견고성(robustness)이 높다. 즉, 화상의 노이즈에 의해 영향을 받는 일없이, 정확도가 높은 움직임 벡터의 신뢰성 지표가 얻어진다.
또, 이 실시형태에서는, 상관값의 제1 극대값(SAD값의 제1 극소값)과 상관값의 제2 극대값(SAD값의 제2 극소값) 사이의 차 또는 비를 이용하고 있는 것도, 이 실시형태의 움직임 벡터의 신뢰성 지표가, 노이즈에 대해서 견고성이 높은 이유가 된다.
즉, 일반적으로 노이즈 레벨이 높아지게 되면, 정확한 움직임 벡터였다고 해도, 그 움직임 벡터의 SAD값은 값이 상승해 버린다. 그 때문에, 신뢰성이 높은 움직임 벡터를 추출할 목적으로(추출하기 위해서), 움직임 벡터의 신뢰성 지표값 Ft에 대해서 임계값을 설정하고, 그 임계값 사이의 비교 처리를 실행하는 경우에는, 그 임계값 자체도 노이즈 레벨에 따라서 변화시킬 필요가 있다.
이에 대해서, 이 실시형태에 따른 움직임 벡터의 신뢰성 지표값 Ft를 이용하는 경우, 노이즈 레벨이 높아짐에 따라서, 상관값의 제1 극대값(SAD값의 제1 극소값)과 상관값의 제2 극대값(SAD값의 제2 극소값) 모두가, 노이즈 레벨에 따라서 값 이 상승한다. 그 때문에, 상관값의 제1 극대값(SAD값의 제1 극소값)과, 상관값의 제2 극댓값 사이의 차에 관해서는, 노이즈의 영향이 상쇄(相殺; cancel)되게 된다.
다시 말해, 노이즈 레벨에 의존하지 않는 고정된 값의 임계값 처리가 가능해진다. 이것은, 상관값의 제1 극대값(SAD값의 제1 극소값)과, 상관값의 제2 극대값(SAD값의 제2 극소값) 사이의 비를, 움직임 벡터의 신뢰성 지표값 Ft로서 이용하는 경우에도, 마찬가지로 적용된다.
그런데, 블록 매칭을 실행할 대상 블록의 화상의 콘트라스트(contrast)가 낮은 경우, SAD값의 제2 극소값과 SAD값의 최소값 사이의 차는 줄어드는(감소하는) 경향이 있다. 그 때문에, 동일 프레임 내에 콘트라스트가 높은 하나의 영역과, 콘트라스트가 낮은 다른 영역이 있을 때, 벡터 신뢰성의 평가값 Ix의 평가를 위해서 동일한 임계값을 이용하면, 콘트라스트가 높은 영역이 우선적으로 선정(추출)되기 쉽다.
이것은, 움직임 벡터의 신뢰성이라고 하는 관점에서는 정확한 결과이지만, 콘트라스트가 낮은 영역을 어느 정도 구제(救濟; relieve)할 목적으로, 이 실시형태에서는, 움직임 벡터의 신뢰성에 대한 지표값을 구하는 연산식에, 콘트라스트의 영향을 경감하는 항을 추가한다. 즉, 타겟 프레임의 화상의 최대 휘도의 값과 최소 휘도의 값 사이의 차를 구하고, 그 휘도의 차를 움직임 벡터의 신뢰성에 대한 지표값에 반영시키도록 한다. 노이즈에 의한 악영향을 피하기 위해서, 타겟 프레임의 화상 데이터에 대해서 로우패스 필터를 적용한 후에, 최대 휘도와 최소 휘도의 추출을 실행한다.
이상의 내용을 고려하면, 이 실시형태에서의 움직임 벡터의 신뢰성 지표값 Ft의 산출식은,
Ft=(Btm2SAD-MinSAD)-(MaxTAR-MinTAR)×Co  …(식 14)
단,
Ft: 움직임 벡터의 신뢰성 지표값
Btm2SAD: SAD값의 제2 극소값
MinSAD: SAD값의 최소값(제1 극소값)
MaxTAR: 타겟 블록의 최대 휘도값
MinTAR: 타겟 블록의 최소 휘도값
Co: 가중치 계수(weight coefficient)(≤1)
로 된다.
움직임 벡터 신뢰성 지표값으로서, 상관값의 제1 극대값과 상관값의 제2 극대값 사이의 비를 이용하는 경우에도, 신뢰성 지표값 산출식에, 상술한 (식 1)과 완전히 마찬가지로, 콘트라스트의 영향을 경감하는 항을 추가하도록 하면 좋다. 그렇지만, 움직임 벡터의 신뢰성 지표값 Ft의 산출에 있어서, 콘트라스트의 영향을 경감하는 항을 추가하는 것은 필수가 아니며, 이 항을 생략도 좋다.
한편, 상술한 설명에서는, 기저면 움직임 벡터 MVb에 대한 움직임 벡터 신뢰성 지표값만을 구하도록 했지만, 축소면 움직임 벡터 MVs나 중간면 움직임 벡터 MVm에 대해서도 마찬가지로, 움직임 벡터 신뢰성 지표값을 구할 수가 있다.
[글로벌 움직임 및 글로벌 움직임 벡터 GVM의 산출]
종래에는, 상술한 바와 같이 움직임 벡터의 신뢰성 지표값은 이용하지 않았다. 그 때문에, 타겟 프레임에 대해서 구해진 복수개의 로컬 움직임 벡터 LMV 모두를, 동일한 가중치를 이용해서, 글로벌 움직임을 산출하도록 하고 있다.
이에 대해서, 이 실시형태에서는, 상술한 바와 같은 방법으로, 타겟 프레임에 대한 복수개의 로컬 움직임 벡터 LMV의 각각의 신뢰성 지표값 Ft를 얻을 수가 있다.
그래서, 이러한 방법으로 구해진 복수개의 로컬 움직임 벡터 LMV의 신뢰성 지표값을 정규화해서, 예를 들면 0 이상, 1 이하의 가중치 계수를, 각각의 로컬 움직임 벡터 LMV에 대해서 설정할 수가 있다. 그리고, 그 로컬 움직임 벡터 LMV는, 동일한 가중치가 아니라, 각각의 가중치 계수에 따라서 정해진 가중치를 이용해서, 글로벌 움직임을 산출하도록 할 수가 있다. 즉, 구해진 복수개의 로컬 움직임 벡터 LMV 모두를 이용해서, 글로벌 움직임을 산출하는 수렴 연산을 개시하도록 하지만, 그때에, 각 로컬 움직임 벡터 LMV는, 각 신뢰성 지표값에 대응하는 가중치 계수로 가중(weighting)한 후에 이용하도록 한다.
그러나, 글로벌 움직임의 산출 연산 처리를 간단하게 해서, 연산 부하를 가볍게 하기 위해서, 이 실시형태에서는, 로컬 움직임 벡터 LMV에 대한 가중치 계수 W를, 0과 1로 이진화(binarize)하도록 한다.
그 때문에, 이 실시형태에서는, 움직임 벡터의 신뢰성 지표값 Ft에 대한 임계값 th를 설정하고,
Ft〉th일 때는, W=1
Ft≤th일 때는, W=0            …(식 15)
인 연산식을 따르는, 각각의 움직임 벡터의 신뢰성 지표값 Ft를 이용해서, 각 로컬 움직임 벡터 LMV의 무게 계수 W를 산출하도록 한다.
즉, 이 실시형태에서는, 움직임 벡터 신뢰성 지표값 Ft를 이용해서, 복수개의 로컬 움직임 벡터 LMV의 각각의 신뢰성을 판정하고, 복수개의 로컬 움직임 벡터 LMV중에서, 신뢰성이 높은 로컬 움직임 벡터 LMV만을 추출한다. 그리고, 그 추출한 신뢰성이 높은 로컬 움직임 벡터 LMV만을 이용해서, 글로벌 움직임을 산출한다.
이 실시형태에서는, 타겟 프레임에서의 타겟 블록수가 비교적 많기 때문에, 이 예와 같이, 신뢰성이 높은 로컬 움직임 벡터 LMV만을 추출하는 방법이 이용되더라도, 정확도가 높은 글로벌 움직임의 산출이 가능하다.
복수개의 로컬 움직임 벡터 LMV로부터, 글로벌 움직임을 산출하는 구체적인 처리예가 후술된다.
도 12를 참조해서 전술한 바와 같은 노이즈가 많은 화상으로부터는, 도 13에 도시한 바와 같은 로컬 움직임 벡터가 얻어지는 것을 설명했다. 그렇지만, 이 도 13의 화상 위에 나타낸 로컬 움직임 벡터에 대해서, 이 실시형태에 따른 움직임 벡터의 신뢰성 지표값을 이용해서 신뢰성의 판정을 실행하고, 임계값 이상의 신뢰성이 얻어진 것만을 추출한 후, 그 블록과 움직임 벡터를 묘화하면, 도 16에 도시한 바와 같은 화상이 얻어진다. 이 도 16에 도시한 이들 블록에 대해서는, 노이즈의 영향을 받지 않고, 거의(실질적으로) 정확한 로컬 움직임 벡터가 얻어지고 있다고 할 수 있다.
[글로벌 움직임 벡터 검출부(15)의 하드웨어 구성예]
글로벌 움직임 벡터 검출부(15)는, 이상에서 설명한 바와 같이, 타겟 블록마다의 로컬 움직임 벡터 LMV의 검출, 검출한 로컬 움직임 벡터 LMV에 대한 신뢰성 지표값의 산출, 글로벌 움직임 및 글로벌 움직임 벡터 GVM의 산출 등의 처리를 실행한다.
이 글로벌 움직임 벡터 검출부(15)의 하드웨어 구성예를 도 17에 도시한다. 도 17을 참조하면, 글로벌 움직임 벡터 검출부(15)는, 타겟 블록(102)의 화소 데이터를 저장하도록 구성된 타겟 블록 버퍼부(151)와, 참조 블록(108)의 화소 데이터를 저장하도록 구성된 참조 블록 버퍼부(152)를 구비한다.
글로벌 움직임 벡터 검출부(15)는, 타겟 블록(102)과 참조 블록(108)의 대응하는 화소에 대한 SAD값을 계산하도록 구성된 매칭 처리부(153)를 더 구비한다. 글로벌 움직임 벡터 검출부(15)는, 매칭 처리부(153)로부터 출력되는 SAD값 정보로부터 로컬 움직임 벡터를 산출하도록 구성된 로컬 움직임 벡터 산출부(154)를 더 구비한다. 글로벌 움직임 벡터 검출부(15)는, 컨트롤부(155)와, 움직임 벡터 신뢰성 지표값 산출부(156)와, 글로벌 움직임 벡터 산출부(157)와, 콘트라스트 산출부(158)를 구비한다.
콘트라스트 산출부(158)는, 로우패스 필터(LPF)(1581)와, 최대 휘도값 검출부(1582)와, 최소 휘도값 검출부(1583)를 포함한다.
그리고, 이 예에서는, 도시는 생략하지만, 화상 메모리부(4)에는, 원화상의 타겟 프레임이나 참조 프레임의 화상 데이터로부터 생성된, 타겟 프레임 및 참조 프레임에 대한 축소면의 화상 데이터 및 중간면의 화상 데이터가, 저장(store)되고 보존유지(retain)되어 있다.
컨트롤부(155)는, 이 글로벌 움직임 벡터 산출부(15)에서의 처리 시퀀스를 제어하며, 도 17에 도시하는 바와 같이 각 부(components)에 제어 신호를 공급하도록 한다.
타겟 블록 버퍼부(151)는, 이 컨트롤부(155)의 제어 하에서, 화상 메모리부(4)의 축소면, 중간면 또는 기저면의 타겟 프레임의 화상 데이터로부터, 지시된(designated) 타겟 블록의 화상 데이터를 판독입력하고(읽어들이고), 매칭 처리부(153)에 그 화상 데이터를 공급한다.
참조 블록 버퍼부(152)는, 컨트롤부(155)의 제어 하에서, 화상 메모리부(4)의 축소면, 중간면 또는 기저면의 참조 프레임의 화상 데이터로부터, 지시된 매칭 처리 범위 내의 화상 데이터를 판독입력한다. 그리고, 참조 블록 버퍼부(152)는, 그 매칭 처리 범위 내의 화상 데이터 중에서, 참조 블록의 화상 데이터를 순차적으로 매칭 처리부(153)에 공급하도록 한다.
매칭 처리부(153)는, 타겟 블록 버퍼부(151)로부터의 타겟 블록의 화상 데이터와, 참조 블록 버퍼부(152)로부터의 참조 블록의 화상 데이터를 받는다. 그리고, 매칭 처리부(153)는, 축소면, 중간면 및 기저면에 대한 블록 매칭 처리를, 컨트롤부(155)의 제어 하에서 실행한다. 그리고, 매칭 처리부(153)는, 참조 벡터(참조 블록의 위치 정보)와, 블록 매칭 처리 결과의 SAD값을, 로컬 움직임 벡터 산출부(154)에 공급한다.
로컬 움직임 벡터 산출부(154)는, SAD값의 제1 극소값 보존유지부(保持部; storage section)(1541)와, SAD값의 제2 극소값 보존유지부(1542)를 구비하고, 매칭 처리부(153)로부터의 SAD값 중에서, SAD값의 제1 극소값과 SAD값의 제2 극소값을 검출하는 처리를 실행한다.
그리고, 로컬 움직임 벡터 산출부(154)는, SAD값의 제1 극소값 보존유지부(1541)의 SAD값의 제1 극소값 및 그 위치 정보(참조 벡터)와, SAD값의 제2 극소값 보존유지부(1542)의 SAD값의 제2 극소값 및 그 위치 정보(참조 벡터)를 순차적으로 갱신(更新; update)해 간다. 로컬 움직임 벡터 산출부(154)는, 이 갱신 처리를 매칭 처리 범위의 모든 참조 블록에 대한 블록 매칭 처리가 종료될 때까지 실행한다.
그리고, 블록 매칭 처리가 종료됐을 때에는, SAD값의 제1 극소값 보존유지부(1541)에는, 그 시점에서의 타겟 블록에 대한 SAD값의 제1 극소값 및 그 위치 정보(참조 벡터)가 기억되고 보존유지된다. 또, SAD값의 제2 극소값 보존유지부(1542)에는, SAD값의 제2 극소값 및 그 위치 정보(참조 벡터)가, 기억되고 보존유지된다.
로컬 움직임 벡터 산출부(154)는, 매칭 처리 범위 내의 모든 참조 블록에 대한 블록 매칭 처리가 종료됐을 때에, SAD값의 제1 극소값 보존유지부(1541)에 보존유지되어 있는 참조 벡터의 정보(위치 정보)를, 축소면, 중간면 및 기저면에서의 각각의 움직임 벡터로서 검출한다. 이 로컬 움직임 벡터 산출부(154)의 처리 동작에 대해서는, 다음에 상세하게 기술한다.
이 실시형태에서 이 로컬 움직임 벡터 산출부(154)는, 축소면 매칭 처리시에는, 축소면 움직임 벡터 MVs가, 로컬 움직임 벡터 LMV로서 컨트롤부(155)에 공급된다.
컨트롤부(155)는, 이 축소면 움직임 벡터 MVs의 정보로부터, 중간면에 대한 검색 범위를 결정한다. 그리고, 컨트롤부는, 타겟 블록 버퍼부(151), 참조 블록 버퍼부(152) 및 매칭 처리부(153)에 제어 신호를 공급해서, 중간면에서의 블록 매칭을 실행하도록 제어한다.
다음에, 중간면의 매칭 처리가 종료됐을 때, 로컬 움직임 벡터 산출부(154)에서는, 축소면 움직임 벡터 MVs와 중간면 움직임 벡터 MVm의 합성 벡터의 정보를, 로컬 움직임 벡터 LMV로서 컨트롤부(155)에 공급한다.
컨트롤부(155)는, 이 축소면 움직임 벡터 MVs와 중간면 움직임 벡터 MVm와의 합성 벡터의 정보로부터, 기저면에 대한 검색 범위를 결정한다. 그리고, 컨트롤부(155)는, 기저면에서의 블록 매칭을 실행하도록, 타겟 블록 버퍼부(151), 참조 블록 버퍼부(152) 및 매칭 처리부(153)에 제어 신호를 공급한다.
기저면의 매칭 처리가 종료됐을 때, 로컬 움직임 벡터 산출부(154)에서는, 축소면 움직임 벡터 MVs와 중간면 움직임 벡터 MVm와 기저면 움직임 벡터 MVb의 합성 벡터의 정보를, 로컬 움직임 벡터 LMV로서 글로벌 움직임 벡터 산출부(157)에 공급한다. 글로벌 움직임 벡터 산출부(157)에서는, 수취한 로컬 움직임 벡터 LMV를, 일시적으로 기억(보존유지)한다.
또, 기저면에서의 매칭 처리가 종료됐을 때, 움직임 벡터 신뢰성 지표값 산 출부(156)는 컨트롤부(155)에 의해 인에이블(enable)로 된다. 한편, 로컬 움직임 벡터 산출부(154)로부터는, 제1 극소값 보존유지부(1541)의 SAD값의 최소값 MinSAD, 제2 극소값 보존유지부(1542)의 SAD값의 제2 극소값 Btm2SAD가, 움직임 벡터 신뢰성 지표값 산출부(156)에 공급된다.
또, 이때, 타겟 블록의 화상 데이터는, 타겟 블록 버퍼부(151)로부터, 로우패스 필터(1581)를 통해서, 최대 휘도값 검출부(1582) 및 최소 휘도값 검출부(1583)에 공급된다. 그리고, 최대 휘도값 검출부(1582) 및 최소 휘도값 검출부(1583)에 의해 각각 검출된 최대 휘도값 MaxTAR 및 최소 휘도값 MinTAR이, 움직임 벡터 신뢰성 지표값 산출부(156)에 공급된다.
움직임 벡터 신뢰성 지표값 산출부(156)에서는, 그것에 공급되는 정보를 이용해서, 전술한 (식 1)에 따라서, 움직임 벡터의 신뢰성 지표값 Ft를 산출한다. 그리고, 움직임 벡터 신뢰성 지표값 산출부(156)는, 산출한 움직임 벡터 신뢰성 지표값 Ft를, 글로벌 움직임 벡터 산출부(157)에 공급한다. 글로벌 움직임 벡터 산출부(157)에서는, 그때에 공급되고 있는 로컬 움직임 벡터 LMV와 연관된 관계로, 그것에 입력되어 온 움직임 벡터의 신뢰성 지표값 Ft를, 일시적으로 보존유지한다.
타겟 프레임 내의 모든 타겟 블록에 대해서 이상의 처리가 종료된 후, 컨트롤부(155)는, 글로벌 움직임 벡터 산출부(157)에, 글로벌 움직임의 연산 처리를 개시하도록 하는 제어 지시 신호를 공급한다.
이 실시형태에서는, 글로벌 움직임 벡터 산출부(157)는 우선, 컨트롤부(155)로부터의 제어 지시 신호에 따라서, 로컬 움직임 벡터 LMV에 대응하여 보존유지되 어 있는 움직임 벡터 신뢰성 지표값 Ft를 이용하여, 전술한 (식 2)에 의해, 보존유지하고 있는 복수개의 로컬 움직임 벡터 LMV의 신뢰성의 판정을 실행한다. 다음에, 글로벌 움직임 벡터 산출부(157)는, 높은 신뢰성을 나타내는 로컬 움직임 벡터 LMV만을 추출한다.
그리고, 글로벌 움직임 벡터 산출부(157)는, 추출한 신뢰성이 높은 로컬 움직임 벡터 LMV만을 이용해서, 글로벌 움직임을 산출하는 연산 처리를 실행한다. 그리고, 글로벌 움직임 벡터 산출부(157)는, 산출한 글로벌 움직임으로부터 글로벌 움직임 벡터 GVM을 산출하고, 얻어진 글로벌 움직임 벡터 GVM을, 움직임 보상 영상 생성부(16)에 공급한다.
움직임 보상 영상 생성부(16)에서는, 글로벌 움직임 벡터 산출부(15)를 통해서 보내져 온 참조 프레임의 화상 데이터 REFv에 대해서, 글로벌 움직임 벡터 GVM에 의해 글로벌 움직임에 대응하는 변형 처리가 실행되어, 움직임 보상 화상이 생성된다. 그리고, 생성된 움직임 보상 화상이, 가산부(17)에 의해 타겟 프레임의 화상 데이터와 겹쳐진다.
이 실시형태에서의 글로벌 움직임 및 글로벌 움직임 벡터 GVM는, 신뢰성이 높은 로컬 움직임 벡터 LMV로부터 생성된 것이므로, 정확도(accuracy)가 높은 움직임 벡터이며, 화상 겹침에 의해 얻어진 노이즈 저감(NR) 화상은, 품질이 양호하다.
[로컬 움직임 벡터 산출부(154)에서의 처리 동작]
이 실시형태의 로컬 움직임 벡터 산출부(154)는, SAD값에 대한 극소값을 검출하기 위해서, 도 18에서 점선으로 둘러싸여 표시된 바와 같이, 위치 Po를 판정 대상점으로 하고, 그 판정 대상점 위치 Po의 SAD값과 그 판정 대상점 위치 Po 주위 근방의 8개의 SAD값을 비교한다. 그리고, 로컬 움직임 벡터 산출부(154)는, 판정 대상점의 SAD값이, 점선으로 둘러싸여 표시된 영역의 9개의 SAD값 중에서 최소값(이하, 로컬 미니멈값이라고 칭한다)인지 아닌지를 판단한다.
그리고, 판정 대상점의 SAD값이, 로컬 미니멈값이라고 판단되었을 때에는, 상기 판정 대상점의 SAD값을, 그때까지 보존유지되어 있던 SAD값의 극소값과 비교해서, 보존유지되어 있던 SAD값의 극소값보다 상기 판정 대상점의 SAD값이 작은지 여부를 판단한다. 그리고, 판정 대상점의 SAD값이, 보존유지되어 있던 SAD값의 극소값보다도 작다고 판단되면, 보존유지하는 SAD값의 극소값을, 새롭게 검출된 로컬 미니멈 SAD값으로 갱신해 간다.
상술한 바와 같은 로컬 미니멈 SAD값을 검출하기 위한 구성으로서, 이 실시예에서 로컬 움직임 벡터 산출부(154)는, SAD값을 보존유지 해 두는 SAD 테이블의 버퍼 메모리의 규모를 작게 하도록 안출된다(devised). 즉, 로컬 움직임 벡터 산출부(154)에서 참조 블록을 1픽셀 단위로 검색하는 경우에는, SAD값을 보존유지해 두는 SAD 테이블의 버퍼 메모리로서, 도 18에 도시하는 바와 같이, 타겟 블록의 수평 방향의 사이즈의 2라인분량+3개분량의 SAD값을 보존유지할 수 있는 버퍼 메모리를 준비한다.
도 18로부터 알 수 있는 바와 같이, 타겟 블록의 수평 방향의 사이즈의 2라인분량+3개분량의 SAD값이, 버퍼 메모리에 기입되면, 판정 대상점 위치 Po에서의 로컬 미니멈값의 판정이 가능해진다.
버퍼 메모리의 사이즈를 최소화하기 위해서, 도 18에 도시하는 바와 같이, 극소값 평가(로컬 미니멈값 검출)에서 사용되지 않게 된 오래된(old) SAD값이 기억되어 있던 메모리 위치 Pa에는, 신규로(新規; newly) 입력되는 SAD값이 덮어쓰기 된다. 즉, 신규로 입력되는 SAD값은, 순번에 따라서(순번대로) 도 18의 메모리 위치 Pb에 기입되는 것이지만, 이 메모리 위치 Pb가 아니라, 더 이상 사용되지 않게 된 메모리 위치 Pa를 재이용함으로써, 메모리의 하드웨어 규모의 증대를 억제하도록 하고 있다.
로컬 움직임 벡터 산출부(154)는, 로컬 미니멈을 검출하기 위한 버퍼 이외에(버퍼에 부가해서), 전술한 제1 극소값 보존유지부(1541)와 제2 극소값 보존유지부(1542)를 구비하는 것이다.
이상의 처리가 기본적인 처리이며, 이 기본적인 처리를, 제1 극소값과 제2 극소값에 적용하는 것에 의해, SAD값의 최소값 및 SAD값의 제2 극소값을 검출하도록 한다.
한편, 이 실시형태에서는, 로컬 움직임 벡터 산출부(154)에서는, 축소면과 중간면과 기저면에 대해서 동일한 동작을 실행하지만, 기저면에서 로컬 움직임 벡터 LMV를 검출하도록 함과 동시에, 그 로컬 움직임 벡터 LMV의 신뢰성 지표값을 산출하도록 하고 있다. 따라서, SAD값의 제2 극소값이 필요하게 되는 것은, 기저면에서 뿐이며, 축소면 및 중간면에서의 SAD값의 제2 극소값의 산출 및 보존유지는, 생략하도록 해도 좋다.
도 19는, 이 로컬 움직임 벡터 산출부(154)에서의 제1 극소값 및 제2 극소값 의 검출 처리 동작의 흐름을 도시하는 플로차트이다.
도 19를 참조하면, 로컬 움직임 벡터 산출부(154)는 우선, 단계(S101)에서, 매칭 처리부(153)로부터의 SAD값을 페치(fetch)한다. 그리고, 로컬 움직임 벡터 산출부(154)는, 단계(S102)에서, 판정 대상점 위치 Po의 SAD값과, 그 판정 대상점 위치 Po 주위 위치의 8개의 SAD값을 서로 비교한다. 그리고, 로컬 움직임 벡터 산출부(154)는, 단계(S103)에서, 그 비교 결과에 의거하여, 판정 대상점 위치 Po의 SAD값이 로컬 미니멈값인지 여부를 판별한다.
단계(S103)에서 판정 대상점 위치 Po의 SAD값이 로컬 미니멈이 아니라고 판별되었을 때에는, 처리가 단계(S101)로 되돌아가서, 다음의 SAD값의 페치를 실행한다.
한편, 단계(S103)에서 판정 대상점 위치 Po의 SAD값이 로컬 미니멈값이라고 판별되었을 때, 단계(S104)에서 로컬 움직임 벡터 산출부(154)는, 보존유지하고 있는 SAD값의 제1 극소값 및 제2 극소값과, 판정 대상점 위치 Po의 SAD값을 비교한다.
그리고, 단계(S105)에서, 로컬 움직임 벡터 산출부(154)는, 판정 대상점 위치 Po의 SAD값이 보존유지하고 있는 SAD값의 제1 극소값보다도 작은지 여부를 판별한다. 그리고, 판정 대상점 위치 Po의 SAD값이 더 작다고 판별되었을 때, 단계(S106)에서, 로컬 움직임 벡터 산출부(154)는, 제1 극소값 보존유지부(1541)에 보존유지하고 있는 SAD값을, 제2 극소값 보존유지부(1542)에 보존유지하도록 갱신함과 동시에, 판정 대상점 위치 Po의 SAD값을 제1 극소값 보존유지부(1541)에 보존 유지하도록 한다.
그리고, 단계(S109)에서, 로컬 움직임 벡터 산출부(154)는, 모든 참조 블록에 관한 SAD값의 산출 처리가 타겟 블록에 대해서 완료됐는지 여부를 판별한다. 그 산출 처리가 아직 완료되지 않았다고 판별되었을 때에는, 처리는 단계(S101)로 되돌아가서, 다음의 SAD값을 페치한다. 한편, 단계(S109)에서, 모든 참조 블록에 관한 SAD값의 산출 처리가 타겟 블록에 대해서 완료했다고 판별되었을 때, 로컬 움직임 벡터 산출부(154)는, 그 처리 루틴(routine)을 종료한다.
한편, 단계(S105)에서, 판정 대상점 위치 Po의 SAD값이 보존유지하고 있는 SAD값의 제1 극소값보다도 크다고 판별되었을 때, 단계(S107)에서 로컬 움직임 벡터 산출부(154)는, 판정 대상점 위치 Po의 SAD값이, 보존유지하고 있는 SAD값의 제2 극소값보다도 작은지 여부를 판별한다. 판정 대상점 위치 Po의 SAD값이 작다고 판별되었을 때, 단계(S108)에서, 로컬 움직임 벡터 산출부(154)는, 제2 극소값 보존유지부(1542)에 보존유지하는 SAD값을, 판정 대상점 위치 Po의 SAD값으로 갱신하도록 한다.
처리는 단계(S108)로부터 단계(S109)로 진행되고, 로컬 움직임 벡터 산출부(154)는 모든 참조 블록에 관한 SAD값의 산출 처리가 완료했는지 여부를 판별한다. 산출 처리가 아직 완료하지 않았다고 판별되었을 때, 처리는 단계(S101)로 되돌아가서, 다음의 SAD값을 페치한다. 한편, 타겟 블록에 대해서 모든 참조 블록에 관한 SAD값의 산출 처리가 완료했다고 단계(S109)에서 판별되었을 때에는, 그 처리 루틴을 종료한다.
한편, 단계(S107)에서 판정 대상점 위치 Po의 SAD값이, 보존유지하고 있는 SAD값의 제2 극소값보다도 작지 않다고 판별되었을 때에도, 처리는 단계(S109)로 진행되며, 타겟 블록에 대해서 모든 참조 블록에 관한 SAD값의 산출 처리가 완료됐는지 여부를 판별한다. 산출 처리가 아직 완료하지 않았다고 판별되었을 때, 처리는 단계(S101)로 되돌아가서, 다음의 SAD값을 페치한다. 한편, 단계 S109에서, 타겟 블록에 대해서 모든 참조 블록에 관한 SAD값의 산출 처리가 완료했다고 판별되었을 때에는, 그 처리 루틴을 종료한다.
이 도 19에 도시한 처리 플로차트는, 축소면, 중간면 및 기저면에서 마찬가지로 적용할 수가 있다. 이 경우에, 축소면 및 중간면에 대해서는, 제1 극소값 보존유지부(1541)에 최종적으로 보존유지된 SAD값을, SAD값의 최소값 MinSAD로서 검출하고, 그것에 대응하는 참조 벡터를, 축소면 움직임 벡터 MVs 및 중간면 움직임 벡터 MVm으로서 각각 검출한다. 그리고, 그 최소값 MinSAD와, 축소면 움직임 벡터 MVs 및 중간면 움직임 벡터 MVm을 출력할 수가 있다.
한편, 기저면에 대해서는, 제1 극소값 보존유지부(1541)에 최종적으로 보존유지된 SAD값을, SAD값의 최소값 MinSAD로서 검출하고, 그것에 대응하는 참조 벡터를, 기저면 움직임 벡터 MVb로서 검출한다. 그리고, 그 SAD값의 최소값 MinSAD 및 기저면 움직임 벡터 MVb를 출력할 수가 있다. 또, 기저면에 대해서는, 제1 극소값 보존유지부(1541)에 최종적으로 보존유지된 SAD값(최소값 MinSAD)과, 제2 극소값 보존유지부(1542)에 최종적으로 보존유지된 SAD값(SAD값의 제2 극소값)을, 움직임 벡터 신뢰성 지표값 산출부(156)에 공급하도록 한다.
[글로벌 움직임 벡터 산출부(157)에서의 처리 동작]
<확장된 아핀 변환에 대해서>
이 실시형태에서는, 다수개의 로컬 움직임 벡터 LMV로부터, 글로벌 움직임을 산출 또는 추정한다. 그리고, 산출한 글로벌 움직임으로부터, 글로벌 움직임 벡터 GVM을 산출하거나 또는 글로벌 움직임을 추정한다. 이 경우에, 글로벌 움직임을 아핀 변환에 의해 표현하는 방법을 이용한다. 단, 이 실시형태에서는, 종래의 통상의 아핀 변환을 변형한 형태인 확장된 아핀 변환(extended affine transformation)을 이용한다.
도 20에서 실선으로 나타내는 바와 같은 "경사 왜곡된(obliquely distorted)" 사다리꼴 화상을, 도 20에서 점선으로 나타내는 직사각형(rectangular)으로 되돌리는 "경사 왜곡(oblique distortion)" 보정을 생각할 경우, 도 20에서 화살표에 의해 나타내는 바와 같이, 수직축(y축)을 따라서, 사다리꼴 화상의 위쪽 절반을 수평 축소하는 반면, 아래쪽 절반을 수평 확대하면 좋다.
전술한 바와 같이, 통상의 아핀 변환에서는, 아핀 변환의 파라미터 a, b, c, d, e, f 중에서, 수평 확대 축소에 관한 파라미터는 a이다. 이 파라미터 a가 고정값(일정값)이기 때문에, 통상의 아핀 변환에서는, 이 "경사 왜곡" 보정에 대응(ready)할 수가 없다.
그래서, 도 20의 하측에 도시하는 바와 같이, 파라미터 a를 y축을 따라 값이 변화하도록 q0·y+r0으로 고쳐쓰면(rewrite), 수평 방향의 확대 축소율이, 수직 축에 따라 선형으로 변화하는 변환으로 된다. 즉, 파라미터 a를, "경사 왜곡" 보정을 위해서, y축의 변수 y의 함수로 치환(置換; replace)한다. 여기에서는, 도 20의 "경사 왜곡"보정을 위해서는, 선형인 함수, 다시 말해 파라미터 a는 1차 함수 q0·y+r0로 하면 좋게 된다.
도 20에 도시한 아핀 변환은, 전술한 피치축의 회전에 의한 "경사 왜곡"의 보정을 고려한 것이지만, 요우축의 회전에 의한 "경사 왜곡"의 보정이나, 피치축 및 요우축의 양자의 회전이 합성된 "경사 왜곡"의 보정을 고려할 필요가 있다.
그래서, 이 실시형태에서는, 도 20을 참조하여 설명한 개념을 확장한다. 즉, 아핀 변환을, 임의의 축을 따라서, 그 축과 수직인 방향으로 확대 또는 축소하는 형태로 하기 위해서는, 파라미터 a, b, d, e를, 도 21의 (식 7)로 나타내는 바와 같이, 각각 pn·x+qn·y+rn(n=0, 1, 2, 3)으로 치환하도록 한다.
여기서, 아핀 파라미터 a, b, d, e는, 화상의 변형에 관여하는 파라미터인 반면, 아핀 파라미터 c, f는, 화상의 좌우, 상하 방향 방향의 시프트(shift)에 관여하는 파라미터이다. 따라서, 아핀 파라미터 c, f에 대해서는, 함수로의 치환은 하지 않는다.
아핀 파라미터 a,b,d,e를 이 (식 7)과 같이 나타내면, 합계 14개의 파라미터가 수반되고, 확장 아핀 변환은, 번잡성(complicatedness)이 높은 것처럼 보인다. 그렇지만, (식 7)을 전개해서 정리하면, 결국 12개의 파라미터를 사용하는 도 22의 (식 8)의 형태로 된다.
이 확장 아핀 변환의 식을 이용하면, 식은 복잡하게 되지만, 최소 제곱법에 의해서, 복수의 로컬 움직임 벡터에 대한 해를, 고유하게(uniquely) 도출(derive) 하는 것이 가능하다. 수법은 아핀 변환과 동일하기 때문에, 최종 결과만을 도 23∼도 27에 각각 (식 9)∼(식 13)으로 나타낸다.
이 실시형태에서는, 화상의 변형에 관여하는 아핀 파라미터 a, b, d, e 모두를 함수로 치환하도록 했지만, 화상의 변형이 특정한 방향뿐인 경우에는, 그 방향에 관한 파라미터만을 함수로 치환하도록 하면 좋다. 예를 들면, 도 20의 위쪽에 도시한 변형만을 고려하는 경우에는, 도 20의 하측에 도시한 바와 같이, 파라미터 a만을 함수로 치환하면 좋다.
또, 상술한 예에서는, 선형 변위를 상정했기 때문에 치환되는 함수는 1차 함수로 했지만, 곡선적인 변위를 상정하는 경우에는, 그 함수는 2차 이상의 함수로 하도록 해도 좋다.
<확장된 아핀 변환을 이용한 글로벌 움직임의 산출>
불특정 다수의 벡터로부터, 가장 적합한 글로벌 움직임을 도출하는 수법으로서, 이 실시형태에서는, 도 28 및 도 29의 플로차트에 도시하는 방법을 이용한다. 이 방법에 따르면, 신뢰성이 높은 블록 중에서, 움직이는 촬상 피사체 등의, 글로벌 움직임에 적합(conform)하기 어려운 블록의 움직임 벡터를 서서히 배제하면서, 최소 제곱법을 이용해서 글로벌 움직임의 파라미터의 수렴을 도모하는 방법이다.
이 도 28 및 도 29의 플로차트의 처리에 따르면, 확장 아핀 변환을 도입하는 것에 의해, 벡터 정확도가 낮은 많은 로컬 움직임 벡터로부터, 움직이는 촬상 피사체 등의 에러 벡터(error vector)를 배제하면서, "경사 왜곡"도 포함한 최적인 글로벌 움직임을, 현실적인 연산 코스트(cost)로 도출하는 것이 가능해진다.
그런데, 이 실시형태의 확장 아핀 변환은, 변형 파라미터가 많고 유연(flexible)하기 때문에, 글로벌 움직임의 수렴 연산에서, 움직이는 촬상 피사체나 노이즈 등의 잘못된 움직임 벡터에도 대응해 버려, 이들 잘못된 움직임 벡터를 배제할 수 없을 가능성이 있다.
그 때문에, 이 실시형태에서는, 도 28 및 도 29에 도시한 바와 같이, 수렴 연산 루프(loop)의 초기에 있어서는, 통상의 아핀 변환을 이용해서 잘못된 움직임 벡터(에러 벡터라고 한다)의 배제를 실행하고, 그 후, 확장 아핀 변환을 이용한 수렴 연산을 실행하도록 한다. 이것은, 통상의 아핀 변환을 이용하는 것에 의해, 경사 왜곡 성분의 벡터를 배제하지 않을 정도로, 벡터 에러가 작아지고 난 후에, 확장 아핀 변환을 이용해서, 경사 왜곡 성분에도 대응하는 높은 정확도의 수렴을 시도하는 수법을 이용하도록 하기 위해서이다.
또, 이 실시형태에서는, 수렴 연산의 각 회(回)에서 구해진 글로벌 움직임으로부터 구해지는 움직임 벡터(글로벌 움직임 벡터)와, 검출된 움직임 벡터(상술한 로컬 움직임 벡터 LMV) 사이의 차로서의 벡터 에러의 최대값을 검출한다.
그리고, 검출한 벡터 에러의 최대값이, 미리 정한 임계값보다도 큰 경우에는, 통상의 아핀 변환을 계속하지만, 검출한 벡터 에러의 최대값이, 미리 정한 임계값 이하로 되면, 확장 아핀 변환을 이용하는 수렴 연산을 실행하도록 한다.
이제, 도 28 및 도 29의 방법을 상세하게 설명한다.
우선, 단계(S201)에서, 글로벌 움직임 벡터 산출부(157)는, 보존유지하고 있는 복수개의 로컬 움직임 벡터 LMV의 움직임 벡터 신뢰성 지표값 Ft와, 미리 정한 임계값을 비교한다. 그리고, 글로벌 움직임 벡터 산출부(157)는, 그 비교 결과로부터, 움직임 벡터 신뢰성 지표값 Ft가, 미리 정한 임계값보다도 큰, 신뢰성이 높은 로컬 움직임 벡터 LMV의 타겟 블록(이하, 설명의 간소화를 위해 블록으로 기재)만을 선정한다(단계 S201). 이 처리는, 전술한 (식 15)를 이용하여 설명한 바와 같이, 가중치 계수 W로서 1과 0과의 두 값을 이용하는 경우에 해당한다.
다음에, 단계 S202에서, 글로벌 움직임 벡터 산출부(157)는, 수렴 연산의 수렴 루프(loop)가 최초의 1회째인지 아닌지를 판별한다. 최초 1회째의 수렴 루프를 실행하는 것이라고 판별되었을 때에는, 단계(S203)에서, 글로벌 움직임 벡터 산출부(157)는, 선정한 복수의 블록의 로컬 움직임 벡터 LMV만을 이용함과 동시에 통상의 아핀 변환을 이용해서, 글로벌 움직임을 도출 또는 추정한다. 다시 말해, 글로벌 움직임 벡터 산출부(157)는, 글로벌 움직임에 대한 아핀 파라미터 a∼f를 도출한다.
다음에, 단계(S206)에서는, 도출된 글로벌 움직임을 기초로 하여, 연산에 이용되는, 선정된 블록의 각각의 이론상의 로컬 움직임 벡터 LMVs를 계산한다.
다음에, 단계 207에서는, 선정된 복수의 블록의 각각에 대해서, 블록 매칭 처리에 의해 구한 로컬 움직임 벡터 LMV와, 단계(S206)에서 구한 이론상의 로컬 움직임 벡터 LMVs 사이의 오차 En을 계산한다(단계 S207).
이 블록 매칭으로 구한 움직임 벡터와 이론상의 움직임 벡터 사이의 오차 계산은, 연산의 정확도를 중시한다면, 피타고라스의 정리로부터 정확하게 거리 계산을 수행해야 한다. 그러나, 연산의 정확도보다 가벼움(lightness)을 중요시한다면, 수평 및 수직의 양자의 거리를 각각 구하고, 구해진 수평 및 수직의 양자의 거리의 합을, 근사적인 거리로서 이용해도 좋다.
다음에, 단계(S208)에서, 글로벌 움직임 벡터 산출부(157)는, 선정한 복수의 블록의 각각에 대해서 구한 오차 En 모두를 이용해서, 그 오차의 평균값 Eave과 최대값 Emax을 산출한다. 그리고, 단계(S209)에서, 평균값 Eave가, 그에 대해 미리 정해진 임계값 θa보다도 작고, 또한 최대값 Emax가, 그에 대해 미리 정해진 임계값 θb보다도 작은지 여부를 판별한다.
단계(S209)에서의 판별의 결과, 조건을 만족시키고 있지 않다고 판별되었을 때에는, 처리를 단계(S211)로 진행하여, 단계(S207)에서 구한 블록의 오차 En중에서, 오차 En=Emax를 만족시키는 블록을, 글로벌 움직임을 도출하기 위해 이용할 블록으로부터 배제한다. 또는, 단계(S211)에서, 글로벌 움직임 벡터 산출부(157)는, 오차가 En≥θb인 블록을 검출하고, 그 검출한 블록 모두를, 글로벌 움직임을 도출하기 위해 이용할 블록으로부터 배제한다.
다음에, 단계(S212)에서, 글로벌 움직임 벡터 산출부(157)는, 단계(S211)에서의 블록 배제의 결과로서 잔존하는 블록의 수가 미리 정한 수의 임계값 θc보다도 적은지 여부를 판별한다. 단계(S212)에서, 잔존하는 블록의 수가 임계값 θc보다도 적지 않다고 판별되었을 때, 처리는 단계(S202)로 되돌아가서, 잔존하는 블록을 선정한 블록으로 설정해서, 단계(S202) 이후의 처리를 반복한다.
잔존하는 블록의 수가 임계값 θc보다도 적을 때에는, 적절한 글로벌 움직임을 얻을 수 없기 때문에, 대상으로 되어 있는 참조 프레임의 화상은, 이 실시형태 의 화상의 겹침에는 사용할 수가 없다. 그래서, 잔존하는 블록의 수가 임계값 θc보다도 적다고 단계(S212)에서 판별되었을 때, 단계(S213)에서, 글로벌 움직임 벡터 산출부(157)는, 그 참조 프레임에 대한 그 후(later)의 처리를 모두 건너뛴다(skip). 글로벌 움직임 벡터 산출부(157)는, 이로써 도 28 및 도 29의 처리를 종료한다.
다음에, 수렴 연산의 수렴 루프가 최초 1회째가 아니라고 단계(S202)에서 판별되었을 때, 단계(S204)에서, 글로벌 움직임 벡터 산출부(157)는, 단계(S207)에서 구한 블록의 오차 En의 최대값 Emax가, 미리 정한 임계값 θd보다도 큰지 여부를 판별한다.
임계값 θd는, 통상의 아핀 변환을 이용해서 글로벌 움직임의 연산을 실행하고, 상술한 단계(S211)와 마찬가지로 해서 에러 벡터의 배제를 실행할 때, 경사 왜곡 성분의 벡터를 배제하지 않을 정도의 값으로 선정된다.
오차 En의 최대값 Emax가 미리 정한 임계값θd보다도 크다고 단계(S204)에서 판별되었을 때, 글로벌 움직임 벡터 산출부(157)는, 처리를 단계(S203)로 진행하여, 통상의 아핀 변환을 이용해서 글로벌 움직임을 도출하도록 한다. 다시 말해, 글로벌 움직임 벡터 산출부(157)는, 확장 아핀 변환의 파라미터를 산출한다. 그 후, 글로벌 움직임 벡터 산출부(157)는, 전술한 단계(S203) 이후의 처리를 수행한다.
오차 En의 최대값 Emax가 미리 정한 임계값 θd보다 낮다고 단계(S204)에서 판별되었을 때, 단계(S205)에서, 글로벌 움직임 벡터 산출부(157)는, 선정한 블록 의 로컬 움직임 벡터 LMV만을 이용함과 동시에 확장 아핀 변환을 이용해서, 글로벌 움직임을 도출한다. 그리고, 단계(S205)의 처리 후에는, 상술한 단계(S206) 이후의 처리를 수행한다.
그리고, 오차 En의 평균값 Eave가 임계값 θa보다도 작고, 또한 오차 En의 최대값 Emax가 임계값 θb보다도 작다고 도 28의 단계(S209)에서 판별되었을 때, 단계(S210)의 시점에서, 글로벌 움직임 벡터 산출부(157)는, 연산은 수렴했다고 판정하고, 마지막으로 글로벌 움직임을 그때의 것으로 확정하며, 그 후 이 처리 루틴을 종료한다.
단계(S211)에서, 오차 En이 최대 에러 Emax의 블록만을 배제할지, 오차 En이 임계값 θb 이상의 블록을 배제할지는, 글로벌 움직임 벡터 GVM을 구할 때의 수렴의 빠르기(quickness)와 정확도 사이의 균형(balance)에 의거해서 결정될 수도 있다. 우선권을 정확도에 부여하면(정확도를 우선시하면), 전자(前者)의 방식을 채용하여, 에러 블록을 하나씩 배제할 것이며, 우선권을 수렴의 빠르기에 부여하면(수렴의 빠르기를 우선시하면), 후자(後者)의 방식이 선택될 것이다.
상술한 처리 루틴의 단계(S204)에서는, 통상의 아핀 변환을 이용한 연산과, 확장 아핀 변환을 이용한 연산의 전환 판단에, 오차 En의 최대값 Emax를 이용하도록 했다. 그러나, 상기의 단계(S204)에서의 전환 판단은, 오차 En의 최대값 Emax 뿐만 아니라, 오차 En의 평균값 Eave를 고려해도 좋다.
즉, 단계(S204)에서, 오차 En의 평균값 Eave가 미리 정해진 임계값보다도 큰지 여부를 판별하고, 평균값 Eave가 임계값보다도 클 때에는, 통상의 아핀 변환을 이용해서 연산을 실행하지만, 평균값 Eave가 임계값 이하로 되었을 때에는, 확장 아핀 변환을 이용해서 연산을 실행한다.
또는, 단계(S204)에서, 오차 En의 최대값 Emax와 평균값 Eave와의 양쪽이, 미리 정해진 임계값보다도 큰지 여부를 판별한다. 그리고, 그들 양쪽이 각 임계값보다도 클 때에는, 통상의 아핀 변환을 이용해서 연산을 실행하지만, 그들 양쪽이 각 임계값 이하일 때에는, 확장 아핀 변환을 이용해서 연산을 실행하도록 해도 좋다.
카메라 흔들림 보정의 범위가 광학 줌 배율이나 세트 형상(set shape)으로부터 정해질(identify) 수 있는 것과 마찬가지로, 최대 카메라 흔들림량으로부터 경사 왜곡 성분의 최대값을 얻을 수 있기 때문에, 상기의 임계값을 정하는 것은 비교적 용이하다.
글로벌 움직임 벡터 산출부(157)는, 상술된 방법으로 산출한 글로벌 움직임에 의거하여, 각 타겟 블록마다의 글로벌 움직임 벡터 GVM을 산출한다. 즉, 글로벌 움직임 벡터 산출부(157)는, 산출한 글로벌 움직임에 대한 확장 아핀 변환의 파라미터 a∼l(도 22 참조)을 이용해서 도 22의 식 8과 같이, 이론상의 로컬 움직임 벡터 LMVs에 상당하는 각 타겟 블록마다의 움직임 벡터를 구한다. 도 22의 (식 8)에서의 x, y에 대해서는, 각 타겟 블록의 중심 위치 좌표가 이용된다. 이와 같은 방법으로 구한 움직임 벡터는, 각 타겟 블록마다의 글로벌 움직임 벡터 GVM가 된다.
그리고, 움직임 보상 영상 생성부(16)에는, 상술한 바와 같은 방법으로 구한 타겟 블록의 글로벌 움직임 벡터 GVM가 공급된다. 그리고, 움직임 보상 영상 생성 부(16)에서는, 그 타겟 블록의 글로벌 움직임 벡터 GVM을 이용해서, 타겟 블록의 움직임 보상 영상을 생성하고, 그 생성된 움직임 보상 영상을 가산부(17)에 공급한다.
이 실시형태에 있어서, 전술한 도 12의 노이즈가 많은 화상으로부터 구한 타겟 블록의 글로벌 움직임 벡터를, 도 30에 도시한다.
[제2 실시형태]
상술한 제1 실시형태에서는, 로컬 움직임 벡터 산출부(154)에서, 계층화 블록 매칭을 실행해서, 기저면에서의 로컬 움직임 벡터 LMV를 산출했다. 그리고, 움직임 벡터 신뢰성 지표값 산출부(156)에서는, 그 기저면의 로컬 움직임 벡터 LMV에 대한 신뢰성 지표값 Ft를 산출했다. 또, 글로벌 움직임 벡터 산출부(157)에서는, 그 기저면의 로컬 움직임 벡터 LMV에 대한 신뢰성 지표값 Ft를 이용해서, 신뢰성이 높은 로컬 움직임 벡터 LMV를 추출하며, 그 신뢰성이 높은 로컬 움직임 벡터 LMV를 이용해서, 글로벌 움직임 벡터 GVM을 산출하도록 했다.
그런데, 축소면 움직임 벡터 MVs나 중간면 움직임 벡터 MVm을, 기저면에 대한 화상 축소 배율의 역수배(逆數倍)하는 것에 의해, 기저면 움직임 벡터 MVb를 얻을 수가 있다. 그래서, 글로벌 움직임 벡터 GVM을 산출하기 위해서는, 기저면 움직임 벡터 MVb를 구하지 않더라도, 축소면 움직임 벡터 MVs나 중간면 움직임 벡터 MVm으로부터, 글로벌 움직임 벡터 GVM을 구하도록 할 수도 있다.
예를 들면, 축소면 움직임 벡터 MVs로부터 글로벌 움직임 벡터 GVM을 구하기 위해서는, 우선, 로컬 움직임 벡터 산출부(154)에서, 축소면에서의 로컬 움직임 벡 터 LMV, 즉 축소면 움직임 벡터 MVs를 산출한다.
그리고, 움직임 벡터 신뢰성 지표값 산출부(156)에서, 산출한 축소면 움직임 벡터 MVs에 대한 신뢰성 지표값 Ft를 산출한다. 또, 글로벌 움직임 벡터 산출부(157)에서, 이 축소면의 로컬 움직임 벡터 LMV에 대한 신뢰성 지표값 Ft를 이용해서, 신뢰성이 높은 로컬 움직임 벡터 LMV를 추출한다. 그리고, 글로벌 움직임 벡터 산출부(157)에서, 그 신뢰성이 높은 로컬 움직임 벡터 LMV를 이용해서, 글로벌 움직임 및 글로벌 움직임 벡터 GVM을 산출하도록 한다.
이러한 방법으로, 축소면이나 중간면의 로컬 움직임 벡터를 이용해서 글로벌 움직임 벡터 GVM을 구하는 것은, 다음과 같은 이점(merit)이 있다.
첫 번째 이점은, 앞서 기술한 바와 같이 축소면이나 중간면의 생성시에 로우패스 필터가 적용되기 때문에, 노이즈가 제거되며, 결과적으로, 얻어진 로컬 움직임 벡터가 노이즈의 영향을 받기 어렵다(잘 받지 않는다)는 점이다.
두 번째 이점은, 축소면이나 중간면에서는 타겟 블록의 수가 적어지므로, 로컬 움직임 벡터의 수는 적어지며, 연산 코스트가 감소함 동시에, 처리에 필요한 시간도 감소하기 때문에, 처리를 고속으로 실행할 수가 있다.
상술한 예와 같이, 통상은, 하드웨어의 제약으로 인해, 축소면, 중간면, 기저면의 매칭 처리 블록 단위는 동일한 크기이다. 그 때문에, 영상의 크기가 작은 축소면의 타겟 블록의 수, 즉 로컬 벡터의 수는, 기저면에서만 블록 매칭을 실행하는 경우에 비해서 상대적으로 적어진다.
그리고, 축소면 움직임 벡터로부터 글로벌 움직임 및 글로벌 움직임 벡터 GVM을 구하는 경우에는, 중간면 및 기저면에서의 움직임 벡터 검출 처리는 생략할 수 있다. 이 점에서도, 처리의 고속화를 기대할 수가 있다.
따라서, 특히 축소면 움직임 벡터를 이용해서 글로벌 움직임 및 글로벌 움직임 벡터 GVM을 구하도록 한 경우에는, 그 이점은 크다.
그러나, 축소면 및 중간면은 기저면의 화상이 축소된 것이므로, 이 축소면 움직임 벡터나 중간면 움직임 벡터의 정밀도는 비교적 낮다는 점을 고려할 필요가 있다.
그래서, 이 실시형태에서는, 축소면 움직임 벡터 또는 중간면 움직임 벡터를 이용하는 경우에는, 보간 처리를 실행한다. 즉, 산출된 축소면 움직임 벡터 또는 중간면 움직임 벡터에 의해 지시되는 축소면 참조 블록 위치 또는 중간면 참조 블록 위치 근방의 축소면 참조 블록 또는 중간면 참조 블록의 SAD값 및, 그 SAD값의 위치 정보를 이용해서, 보간 처리를 실행한다. 이 보간 처리에 의해, 픽셀 정밀도의 축소면 움직임 벡터 또는 중간면 움직임 벡터의 검출을 실행할 수가 있다. 이하에서는, 축소면인 경우를 예로 들어, 축소면의 보간 처리에 대해 설명한다.
예를 들면, 수평 방향(가로) 및 수직 방향(세로) 모두 1/4로 축소된 축소면에서 블록 매칭을 실시한 경우, 축소면 움직임 벡터는, 4픽셀 정밀도의 움직임 벡터이다. 그러나, 기저면 참조 프레임에서는, 축소면 움직임 벡터 MVs를 n배 한 움직임 벡터 근방에, 1픽셀 정밀도의 기저면 움직임 벡터 MVb가 존재하는 것은 분명하다.
따라서, 도 31에 도시하는 바와 같이, 축소면에서의 최소 SAD값(601)이 구해 진 경우, 그 최소 SAD값(601) 근방의 복수개, 예를 들면 상하 좌우로 각각 이 최소 SAD값(601)에 인접하는 4개의 SAD값(602, 603, 604, 605)을 이용해서 보간 처리를 실행하여, 4픽셀 정밀도의 움직임 벡터를 검출하는 것을 생각할 수가 있다. 이 경우, 요구되는 보간 배율(interpolation magnification)은 4배이다.
예를 들면, 2차 곡선을 이용해서, SAD 테이블을 보간함으로써, 예를 들면 n픽셀 단위로 매칭 처리를 실행한 축소면 SAD 테이블로부터, 픽셀 정밀도의 움직임 벡터를 산출하는 것을 생각할 수 있다. 이 경우에는, 2차 곡선 근사 보간이 아니라, 선형 보간이나 3차 이상의 고차(高次) 근사 곡선 보간을 이용해도 좋지만, 이 예에서는, 정밀도와 하드웨어 구성 사이의 균형으로부터, 2차 곡선 근사 보간을 이용하고 있다.
이 2차 곡선 근사 보간에서는, 도 31에 도시하는 바와 같이, n픽셀 정밀도의 축소면 움직임 벡터가 지시하는 축소면 SAD 테이블의 SAD값의 최소값 Smin과, 그 최소값 Smin의 위치 근방의 위치의 복수개의 SAD값{이후, 근방 축소면(neighboring reduction plane) SAD값이라고 칭한다}을 사용한다. 이 예에서는, 최소값 Smin의 위치의 X방향(수평 방향) 및 Y방향(수직 방향)으로 인접하는 4개의 근방 SAD값 Sx1, Sx2 및 Sy1, Sy2를 사용한다.
우선, X방향(수평 방향)의 보간에 있어서는, 도 32에 도시하는 바와 같이, 축소면 SAD값의 최소값 Smin과 X방향 또는 수평 방향의 인접하는 2점에서의 근방 축소면 SAD값 Sx1, Sx2에 대해서, 2차 근사 곡선(700)을 적용시킨다. 즉, 최소값 Smin과, X방향(수평 방향)의 인접하는 2점의 근방 축소면 SAD값 Sx1, Sx2를 지나는 2차 근사 곡선(700)을 구한다. 그러면, 도 32에 도시된 것과 같이, 이 2차 곡선(700)의 극소를 취하는 좌표가, 픽셀 정밀도의 SAD값의 최소값 SXmin인 축소면 움직임 벡터(고정밀도 축소면 움직임 벡터)의 X좌표 Vx가 된다. 이때의 2차 곡선 근사 보간의 식을, 다음의 (식 16)으로 나타낸다.
SXmin=1/2×(Sx2-Sx1)/(Sx2-2Smin+Sx1) …(식 16)
이 계산식(식 16)에 의해서 구한 픽셀 정밀도의 SAD값의 최소값 SXmin이 SAD 테이블 상에서 취하는 X좌표가, 픽셀 정밀도의 축소면 SAD값의 최소값이 되는 X좌표 Vx가 된다.
이 계산식(식 16)의 나눗셈은, 복수회의 뺄셈에 의해 실현 가능하다. 사용될 픽셀 정밀도가, 예를 들면, 축소면에서의 화소 피치의 1/4 화소 피치(pixel pitch)의 정밀도이면, 상기 나눗셈은 단지 2회의 뺄셈에 의해 실현가능하다(구할 수 있다). 그 때문에, 회로 규모가 작고, 연산 시간이 짧으며, 2차 근사 곡선 보간보다도 상당히 복잡한 3차 곡선 보간과 거의 다름없는 성능을 실현할 수가 있다.
마찬가지로, Y방향(수직 방향)의 보간에 있어서, 축소면 SAD값의 최소값 Smin과, Y방향(수직 방향)의 인접하는 2점의 근방 축소면 SAD값 Sy1, Sy2에 대해서, 2차 근사 곡선을 적용시킨다. 그러면, 이 2차 근사 곡선의 극소값 SYmin을 취하는 Y좌표가, 픽셀 정밀도의 SAD값의 최소값인 Y좌표 Vy가 된다. 이때의 2차 곡선 근사 보간의 식을, 다음의 (식 17)로 나타낸다.
SYmin=1/2×(Sy2-Sy1)/(Sy2-2Smin+Sy1) …(식 17)
이러한 방법으로, 2차 곡선의 근사를, X방향 및 Y방향으로 2회 실행하는 것 에 의해, 즉 픽셀 정밀도를 갖는 고정밀도의 축소면 움직임 벡터 (Vx, Vy)가 구해진다.
이상의 설명에서는, 축소면 SAD값의 최소값과, 그 X방향(수평 방향) 및 Y방향(수직 방향)의 인접하는 2점의 축소면 SAD값을 사용했지만, 각 방향의 인접하는 축소면 SAD값의 수는 2점 이상일 수도 있다. 또, 2차 곡선을 X방향 및 Y방향 대신에, 예를 들면, 기울기 방향으로 근사 곡선을 적용시킬 수도 있다. 또, X방향 및 Y방향에 부가적으로, 기울기 방향으로 근사 곡선을 적용시킬 수도 있다.
이상과 같은 수단 및 수순(手順; procedure)을 이용하는 것에 의해, n픽셀 단위의 정밀도의 SAD 테이블의 값으로부터, 픽셀 정밀도의 벡터 검출 결과를 얻을 수 있는 것을, 도 33에 도시한다. 도 33의 횡축은, 보간 배율을 나타낸 것이며, 1차원 방향으로 분해능(resolution)을 몇 배로 설정할지를 나타내고 있다. SAD 테이블은 2차원이기 때문에, 테이블 면적은, 제곱(square)의 비율로 감소된다. 그렇지만, 보간에 의한 오차는, 선형적인 정도로 밖에 증가하지 않기 때문에, 상술한 보간 수법의 유용성 인식할 수가 있다.
[다른 실시형태 및 변형예]
상술한 실시형태에서는, 본 발명을, 정지 영상 촬영시에 있어서 검출되는 움직임 벡터의 신뢰성을 판정하는 경우에 적용했지만, 본 발명은, 동영상 촬영시에 있어서 검출되는 움직임 벡터의 신뢰성을 판정하는 경우에도, 물론 적용할 수가 있다.
또, 상술한 실시형태에서는, 상관값으로서 SAD값을 검출하도록 했지만, 상관 값이 SAD값에 한정되지 않는다는 것은 말할 필요도 없다.
또, 상술한 실시형태에서는, 정지 화상에 대한 움직임 검출 처리 및 화상의 겹침 처리는, 화상 메모리부(4)에, 여러장의 촬상 화상을 페치하고, 그 페치한 여러장의 촬상 화상에 대해서, 상술한 바와 같이 움직임 검출 및 화상 겹침 처리를 실행하도록 했다. 그러나, 처리 대상의 여러장의 화상을, 동영상 촬영시와 마찬가지로, 실시간으로 처리하도록 할 수도 있다.
움직임 벡터의 검출 대상이 되는 화상 정보는, 촬상 화상 정보로 한정되는 것이 아니라는 것은 말할 필요도 없다.
또, 상술한 실시형태에서는, 움직임 벡터의 신뢰성의 판정을, 움직임 벡터 신뢰성 지표값에 의거해서 실행하도록 했다. 그러나, 상관값의 제1 극대값과 상관값의 제2 극댓값 사이의 차나 비뿐만 아니라, 그 상관값의 제1 극대값을 취하는 참조 벡터와, 상관값의 제2 극대값을 취하는 참조 벡터와의 위치적인 차이도 이용해서, 신뢰성의 판정을 실행하도록 해도 좋다. 또는, 상관값의 제3 극대값, 나아가서는, 그것보다도 더 높은 차수의 극대값의 값이나 그 극대값을 취하는 참조 벡터의 위치 분포를 더 참조해서, 신뢰성의 판정을 하도록 해도 좋다.
상술한 실시형태에서는, 글로벌 움직임의 연산 처리시에 연산 부하를 가볍게 하기 위해서, 로컬 움직임 벡터 LMV의 신뢰성 지표값에 대응하는 가중치 계수 W는, 0과 1로 이진화한 값을 사용했다. 그러나, 로컬 움직임 벡터 LMV의 신뢰성 지표값을 정규화해서 얻은, 예를 들면 0 이상 1 이하의 가중치 계수 W를 그대로 이용해서, 글로벌 움직임의 연산 처리를 실행하도록 해도, 물론 좋다.
본 발명은, 2008년 4월 15일자로 일본 특허청에 출원된 일본 우선권 특허출원 제JP2008-105248호에 관련된 주제를 포함하며, 상기 출원의 전체 내용은 본원 명세서에 참조로서 통합된다.
또한, 본 발명의 바람직한 실시형태에 대해서 특정 용어(term)를 이용해서 설명해 왔지만, 그와 같은 설명은 단지 예시의 목적을 위한 것일 뿐이며, 이하의 특허청구범위의 요지 및 범주를 벗어나지 않는 범위 내에서 각종 변경 및 수정이 이루어질 수 있다는 것이 이해되어야 한다.
도 1은 본 발명의 바람직한 실시형태에 따른 화상 처리 장치가 적용되는 촬상 장치의 구성예를 도시하는 블록도.
도 2의 (a), (b) 및 도 3 내지 도 10은 화상 처리 장치에 의한 블록 매칭 처리를 설명하기 위한 모식적인(schematic) 개략도.
도 11은 화상 처리 장치에 의한 블록 매칭 처리를 설명하기 위한 블록도.
도 12는 본 발명의 실시형태에 따른 화상 처리 방법이 적용되는 촬상 화상의 예를 도시하는 모식도(schematic view).
도 13은 화상 처리 방법을 이용해서 검출된 로컬 움직임 벡터를, 도 12의 촬상 화상과의 결합관계에서 도시한 모식도.
도 14는 화상 처리 방법에서 이용되는 SAD 테이블을 도시하는 개략도.
도 15는 1차원 축 상에 취해진 도 14의 SAD 테이블을 도시하는 개략도.
도 16은 화상 처리 방법에 의해 신뢰성이 높다고 판별된 로컬 움직임 벡터를, 도 12의 촬상 화상과의 결합 관계에서 도시한 도면.
도 17은 화상 처리 장치의 글로벌 움직임 벡터 산출부의 구성예를 도시하는 블록도.
도 18은 글로벌 움직임 벡터 산출부의 동작을 설명하기 위한 개략도.
도 19는 화상 처리 장치의 로컬 움직임 벡터 산출부에 의한 검출 처리 동작 예를 설명하기 위한 플로차트.
도 20은 통상의 아핀 변환을 설명하기 위한 모식도.
도 21 내지 도 27은 화상 처리 장치에 의해 실행되는 로컬 움직임 벡터로부터 글로벌 움직임을 산출하는 처리 예를 설명하기 위한 도면.
도 28 및 도 29는 화상 처리 장치에 의해 실행되는 로컬 움직임 벡터로부터 글로벌 움직임을 산출하는 처리 예를 설명하기 위한 플로차트.
도 30은 화상 처리 장치에 의해 산출된 글로벌 움직임으로부터 구해진 블록 단위의 움직임 벡터를, 한 화상과의 결합관계에서 도시한 도면.
도 31 및 도 32는 화상 처리 방법을 이용해서 로컬 움직임 벡터를 구하는 처리의 다른 예를 설명하기 위한 개략도.
도 33은 화상 처리 방법을 이용해서 로컬 움직임 벡터를 구하는 처리의 또 다른 예를 설명하기 위한 도면.
도 34 내지 도 38은 로컬 움직임 벡터로부터 글로벌 움직임을 구하는 처리 예에 이용되는 식을 설명하기 위한 도면.
도 39의 (a), (b)는 종래에 있어서, 통상의 아핀 변환을 이용해서 로컬 움직임 벡터로부터 글로벌 움직임을 구하는 경우의 문제점을 설명하기 위한 모식도.
도 40은 정사영(orthogonal projection) 변환을 이용해서 로컬 움직임 벡터로부터 글로벌 움직임을 구하는 처리에 이용되는 식을 설명하기 위한 도면.

Claims (19)

  1. 화상 처리 장치로서,
    화상 내에서 설정되고 복수의 화소로부터 형성되는 소정 크기의 복수개의 블록 각각의 움직임 벡터를 검출하도록 구성된 움직임 벡터 검출 수단과;
    상기 움직임 벡터 검출 수단에 의해 검출된 상기 복수개의 블록의 움직임 벡터로부터, 아핀 파라미터의 적어도 하나를 상기 화상의 변위 축에 대한 변수의 함수로 나타낸, 확장된 아핀 변환을 이용해서, 수렴 연산을 실행하고, 상기 화상 전체에 가해지고 있는 변형(deformation)을 나타내는 글로벌 움직임을 산출하도록 구성된 글로벌 움직임 산출 수단
    을 구비하는, 화상 처리 장치.
  2. 제1항에 있어서,
    상기 글로벌 움직임 산출 수단에 의한 초기 수렴 연산에서는, 상기 움직임 벡터 검출 수단에 의해 검출된 상기 복수개의 블록의 움직임 벡터로부터, 고정 계수의 아핀 파라미터를 이용하는 통상의 아핀 변환이 수행되고, 상기 확장된 아핀 변환을 이용하는 수렴 연산은, 상기 초기 수렴 연산 후에 개시하는, 화상 처리 장치.
  3. 제1항에 있어서,
    상기 글로벌 움직임 산출 수단은,
    상기 통상의 아핀 변환을 이용하는 수렴 연산에 의해 글로벌 움직임을 구했을 때 이용되는 상기 아핀 파라미터를 이용해서, 상기 복수개의 블록의 각각의 이상적인 움직임 벡터를 산출한 후, 상기 이상적인 움직임 벡터 각각과 상기 움직임 벡터 검출 수단에 의해 검출된 상기 복수개의 블록의 움직임 벡터 사이의 차(difference)의 최대값 및/또는 평균값을 산출하는 수단과;
    상기 차의 최대값 및/또는 평균값이, 미리 정해진 임계값(threshold value)보다도 작아졌을 때에, 이용할 수렴 연산을, 상기 통상의 아핀 변환을 이용하는 수렴 연산으로부터, 상기 확장된 아핀 변환을 이용하는 수렴 연산으로 전환( changeover)하는 수단
    을 포함하는, 화상 처리 장치.
  4. 제2항에 있어서,
    상기 글로벌 움직임 검출 수단은,
    타겟 화면(screen image) 내에서 설정된 상기 블록에 대응하는 타겟 블록과, 상기 타겟 화면과는 상이한 참조 화면에서 설정된 상기 블록에 대응하는 복수개의 참조 블록으로서, 하나의 타겟 블록에서 설정된 검색 범위 내에서 복수개 설정되는 상기 참조 블록 사이의 상관값을 구하는 상관값 산출 수단과;
    상기 상관값 산출 수단에 의해 산출된 상관값의 최대값과, 상기 최대값을 제외한 상관값 중의 극대값(maximum value)을 구하는 수단과;
    상기 상관값의 최대값이 산출된 상기 참조 블록의 상기 타겟 블록으로부터의 어긋남(displacement)으로서 상기 타겟 블록의 움직임 벡터를 검출하는 움직임 벡터 검출 수단과;
    상기 상관값의 최대값과 극대값 사이의 차를, 상기 움직임 벡터 검출 수단에 의해 검출한 상기 움직임 벡터의 신뢰성에 대한 지표로서 산출하는 수단
    을 포함하고;
    상기 글로벌 움직임 산출 수단은,
    상기 움직임 벡터의 신뢰성에 대한 지표를 이용하여 가중치를 적용한(weighted) 상기 움직임 벡터를 이용해서, 상기 글로벌 움직임의 산출 연산을 개시하는, 화상 처리 장치.
  5. 제2항에 있어서,
    상기 움직임 벡터 검출 수단은,
    타겟 화면 내에서 설정된 상기 블록에 대응하는 타겟 블록과, 상기 타겟 화면과는 상이한 참조 화면에서 설정된 상기 블록에 대응하는 복수의 참조 블록으로서, 하나의 타겟 블록에서 설정된 검색 범위 내에서 복수개 설정되는 상기 참조 블록 사이의 상관값을 구하는 상관값 산출 수단과;
    상기 상관값 산출 수단에 의해 산출된 상관값의 최대값과, 상기 최대값을 제외한 상관값 중의 극대값을 구하는 수단과;
    상기 상관값의 최대값이 산출된 상기 참조 블록의 상기 타겟 블록으로부터의 어긋남으로서 상기 타겟 블록의 움직임 벡터를 검출하는 움직임 벡터 검출 수단과;
    상기 상관값의 최대값과 극대값 사이의 차를, 상기 움직임 벡터 검출 수단에 의해 검출한 상기 움직임 벡터의 신뢰성에 대한 지표로서 산출하는 수단
    을 포함하고;
    상기 글로벌 움직임 산출 수단은, 상기 움직임 벡터의 신뢰성을 이용해서, 상기 움직임 벡터의 신뢰성을 판정하는 수단을 포함하고;
    상기 글로벌 움직임 산출 수단은, 신뢰성이 높다고 판정된 움직임 벡터만을 이용해서, 상기 글로벌 움직임의 초기 수렴 연산을 개시하는,
    화상 처리 장치.
  6. 제1항에 있어서,
    상기 글로벌 움직임 검출 수단은,
    타겟 화면 내에서 설정된 상기 블록에 대응하는 타겟 블록과, 상기 타겟 화면과는 상이한 참조 화면에서 설정된 상기 블록에 대응하는 복수개의 참조 블록으로서, 하나의 타겟 블록에서 설정된 검색 범위 내에서 복수개 설정되는 상기 참조 블록 사이의 상관값을 구하는 상관값 산출 수단과;
    상기 상관값 산출 수단에 의해 산출된 상관값의 최대값과, 상기 최대값을 제외한 상관값 중의 극대값을 구하는 수단과;
    상기 상관값의 최대값이 산출된 상기 참조 블록의 상기 타겟 블록으로부터의 어긋남으로서 상기 타겟 블록의 움직임 벡터를 검출하는 움직임 벡터 검출 수단과;
    상기 상관값의 최대값과 극대값 사이의 차를, 상기 움직임 벡터 검출 수단에 의해 검출한 상기 움직임 벡터의 신뢰성에 대한 지표로서 산출하는 수단
    을 포함하고,
    상기 글로벌 움직임 산출 수단은,
    상기 움직임 벡터의 신뢰성에 대한 지표를 이용하여 가중치를 적용한 상기 움직임 벡터를 이용해서, 상기 글로벌 움직임의 산출 연산을 개시하는,
    화상 처리 장치.
  7. 제1항에 있어서,
    상기 움직임 벡터 검출 수단은,
    타겟 화면 내에서 설정된 상기 블록에 대응하는 타겟 블록과, 상기 타겟 화면과는 상이한 참조 화면에서 설정된 상기 블록에 대응하는 복수의 참조 블록으로서, 하나의 타겟 블록에서 설정된 검색 범위 내에서 복수개 설정되는 상기 참조 블록 사이의 상관값을 구하는 상관값 산출 수단과;
    상기 상관값 산출 수단에 의해 산출된 상관값의 최대값과, 상기 최대값을 제외한 상관값 중의 극대값을 구하는 수단과;
    상기 상관값의 최대값이 산출된 상기 참조 블록의 상기 타겟 블록으로부터의 어긋남으로서 상기 타겟 블록의 움직임 벡터를 검출하는 움직임 벡터 검출 수단과;
    상기 상관값의 최대값과 극대값 사이의 차를, 상기 움직임 벡터 검출 수단에 의해 검출한 상기 움직임 벡터의 신뢰성에 대한 지표로서 산출하는 수단
    을 포함하고;
    상기 글로벌 움직임 산출 수단은, 상기 움직임 벡터의 신뢰성을 이용해서, 상기 움직임 벡터의 신뢰성을 판정하는 수단을 포함하고;
    상기 글로벌 움직임 산출 수단은, 신뢰성이 높다고 판정된 움직임 벡터만을 이용해서, 상기 글로벌 움직임의 산출 연산을 개시하는,
    화상 처리 장치.
  8. 제1항에 있어서,
    상기 글로벌 움직임 산출 수단은, 수렴 연산에 의해 글로벌 움직임을 구했을 때 이용하는 상기 아핀 파라미터를 이용해서, 상기 블록마다의 이상적인 움직임 벡터를 산출하고, 상기 이상적인 움직임 벡터와 상기 검출 수단에 의해 검출된 블록의 움직임 벡터 사이의 차를 산출하는 수단을 포함하고;
    상기 글로벌 움직임 산출 수단에 의한 상기 수렴 연산은, 최소 제곱법(the least squares method)을 이용함과 동시에, 상기 차의 최대값을 나타내는(exhibit) 블록의 움직임 벡터를 제거한 후에 다음번(次回; next cycle)의 연산을 실행하는 반복 연산을 이용하도록 실행되는, 화상 처리 장치.
  9. 제8항에 있어서,
    상기 글로벌 움직임 산출 수단은,
    상기 차의 최대값에 부가적으로, 상기 차의 평균값을 산출하는 수단과;
    상기 차의 최대값과 평균값으로부터, 상기 반복 연산의 수렴 완료를 판단하는 수단을 포함하는, 화상 처리 장치.
  10. 제9항에 있어서,
    상기 글로벌 움직임 산출 수단은, 상기 반복 연산에 의해 제거된 후의 잔존하는 움직임 벡터 수가, 미리 결정되어 있는 값보다도 적어졌을 때에, 글로벌 움직임의 산출 처리를 종료(end)하는,
    화상 처리 장치.
  11. 제1항에 있어서,
    상기 글로벌 움직임 산출 수단은, 수렴 연산에 의해 글로벌 움직임을 구했을 때 이용하는 상기 아핀 파라미터를 이용해서, 상기 블록 각각의 이상적인 움직임 벡터를 산출하고, 상기 이상적인 움직임 벡터와, 상기 검출 수단에 의해 검출된 상기 블록의 움직임 벡터 사이의 차를 산출하는 수단을 포함하고;
    상기 글로벌 움직임 산출 수단에 의한 상기 수렴 연산은, 최소 제곱법을 이용함과 동시에, 상기 차의 값이 미리 결정되어 있는 임계값 이상을 나타내는 블록의 움직임 벡터를 제거한 후에 다음 회의 연산을 실행하는 반복 연산을 이용하도록 실행되는, 화상 처리 장치.
  12. 제11항에 있어서,
    상기 글로벌 움직임 산출 수단은,
    상기 차의 최대값에 부가적으로, 상기 차의 평균값을 산출하는 수단과;
    상기 차의 최대값과 평균값으로부터, 상기 반복 연산의 수렴을 판단하는 수단을 포함하는,
    화상 처리 장치.
  13. 제12항에 있어서,
    상기 글로벌 움직임 산출 수단은, 상기 반복 연산에 의해 제거된 후의 잔존하는 움직임 벡터 수가, 미리 결정되어 있는 값보다도 적어졌을 때에, 글로벌 움직임의 산출 처리를 종료하는, 화상 처리 장치.
  14. 제1항에 있어서,
    상기 움직임 벡터 검출 수단에 의한 상기 블록의 움직임 벡터의 검출은, 상기 화상을 축소해서 얻은 축소 화상을 이용해서 실행하는 화상 처리 장치.
  15. 제14항에 있어서,
    상기 움직임 벡터 검출 수단은, 상기 축소 화상 내의 상기 상관값의 최대값과, 상기 상관값이 최대값인 블록 근방의 참조 블록으로부터 구해진 상관값을 이용해서 보간 처리를 실행하고, 그 보간 처리의 결과에 의거해서 상기 블록의 움직임 벡터를 검출하는 화상 처리 장치.
  16. 화상 처리 방법으로서,
    화상 내에서 설정되고 복수의 화소로부터 형성되는 소정 크기의 복수개의 블록 각각에 대한 움직임 벡터를 검출하는 움직임 벡터 검출 단계와;
    상기 움직임 벡터 검출 단계에서 검출된 상기 복수개의 블록의 움직임 벡터로부터, 아핀 파라미터의 적어도 하나를, 상기 화상의 변위 축에 대한 변수의 함수로 나타낸 확장된 아핀 변환을 이용해서 수렴 연산을 실행하고, 상기 화상 전체에 가해지고 있는 변형을 나타내는 글로벌 움직임을 산출하는 글로벌 움직임 산출 단계
    를 포함하는, 화상 처리 방법.
  17. 제16항에 있어서,
    상기 글로벌 움직임 산출 단계에서의 초기 수렴 연산에 있어서는, 상기 움직임 벡터 검출 단계에서 검출된 상기 복수개의 블록의 움직임 벡터로부터, 고정 계수의 아핀 파라미터를 이용하는 통상의 아핀 변환을 이용해서 수렴 연산을 실행하고, 상기 확장된 아핀 변환을 이용하는 수렴 연산은, 상기 초기 수렴 연산 후에 개시하는, 화상 처리 방법.
  18. 제17항에 있어서,
    상기 글로벌 움직임 산출 단계는,
    상기 통상의 아핀 변환을 이용하는 수렴 연산에 의해 글로벌 움직임을 구했을 때 이용되는 상기 아핀 파라미터를 이용해서, 상기 복수개의 블록 각각의 이상적인 움직임 벡터를 산출한 후, 상기 이상적인 움직임 벡터와, 상기 움직임 벡터 검출 단계에서 검출된 상기 복수개의 블록의 움직임 벡터 사이의 차의 최대값 및/또는 평균값을 산출하는 단계와;
    상기 차의 최대값 및/또는 평균값이, 미리 설정되어 있는 임계값보다도 작아졌을 때에, 이용할 수렴 연산을, 상기 통상의 아핀 변환을 이용하는 수렴 연산으로부터, 상기 확장된 아핀 변환을 이용하는 수렴 연산으로 전환하는 단계
    를 포함하는, 화상 처리 방법.
  19. 화상 처리 장치로서,
    화상 내에서 설정되고 복수의 화소로부터 형성되는 소정 크기의 복수개의 블록 각각에 대한 움직임 벡터를 검출하도록 구성된 움직임 벡터 검출부와;
    상기 움직임 벡터 검출부에 의해 검출된 블록의 움직임 벡터로부터, 아핀 파라미터들 중의 적어도 하나를 상기 화상의 변위 축에 대한 변수의 함수로 나타낸 확장된 아핀 변환을 이용해서, 수렴 연산을 실행하고, 상기 화상 전체에 가해지고 있는 변형을 나타내는 글로벌 움직임을 산출하도록 구성된 글로벌 움직임 산출부
    를 구비하는, 화상 처리 장치.
KR1020090032363A 2008-04-15 2009-04-14 화상 처리 장치 및 화상 처리 방법 KR20090109504A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090032363A KR20090109504A (ko) 2008-04-15 2009-04-14 화상 처리 장치 및 화상 처리 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2008-105248 2008-04-15
KR1020090032363A KR20090109504A (ko) 2008-04-15 2009-04-14 화상 처리 장치 및 화상 처리 방법

Publications (1)

Publication Number Publication Date
KR20090109504A true KR20090109504A (ko) 2009-10-20

Family

ID=41552795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090032363A KR20090109504A (ko) 2008-04-15 2009-04-14 화상 처리 장치 및 화상 처리 방법

Country Status (1)

Country Link
KR (1) KR20090109504A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9034710B2 (en) 2010-12-27 2015-05-19 Micron Technology, Inc. Methods of forming a nonvolatile memory cell and methods of forming an array of nonvolatile memory cells
US10055829B2 (en) 2015-10-15 2018-08-21 Samsung Electronics Co., Ltd. Method of measuring thickness, method of processing image and electronic system performing the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9034710B2 (en) 2010-12-27 2015-05-19 Micron Technology, Inc. Methods of forming a nonvolatile memory cell and methods of forming an array of nonvolatile memory cells
US10055829B2 (en) 2015-10-15 2018-08-21 Samsung Electronics Co., Ltd. Method of measuring thickness, method of processing image and electronic system performing the same

Similar Documents

Publication Publication Date Title
JP4544334B2 (ja) 画像処理装置および画像処理方法
JP4623111B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP4506875B2 (ja) 画像処理装置および画像処理方法
JP4645746B2 (ja) 画像処理装置、画像処理方法および撮像装置
JP2009290827A (ja) 画像処理装置および画像処理方法
JP4760923B2 (ja) 画像処理装置、画像処理方法および撮像装置
US20060152590A1 (en) Image processor
JP2009104284A (ja) 画像処理装置および画像処理方法
KR20070119525A (ko) 화상 처리 장치, 화상 처리 방법, 촬상 장치 및 촬상 방법
JP2010171753A (ja) 画像処理装置、画像処理方法および撮像装置
JP4639555B2 (ja) 動きベクトル検出装置および方法、手振れ補正装置および方法、並びに撮像装置
CN110969575B (zh) 自适应图像拼接的方法及图像处理装置
JP5731911B2 (ja) 画像処理装置及びその制御方法
JP2010187348A (ja) 画像処理装置、画像処理方法、画像処理プログラム
KR20090109504A (ko) 화상 처리 장치 및 화상 처리 방법
JP2010016580A (ja) 画像処理装置および画像処理方法
CN107251089B (zh) 用于移动检测和补偿的图像处理方法
JP4998134B2 (ja) 画像処理装置および画像処理方法
JP2011176776A (ja) 画像処理装置及び画像処理方法
WO2023174546A1 (en) Method and image processor unit for processing image data
JPH07203278A (ja) 画像取り扱い装置
JPH07284013A (ja) 画像取り扱い装置
JPH07284014A (ja) 画像取り扱い装置
JPH07264466A (ja) 画像取り扱い装置
JP2012142864A (ja) 画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid