KR101027353B1 - 전자 비디오 이미지 안정화 - Google Patents

전자 비디오 이미지 안정화 Download PDF

Info

Publication number
KR101027353B1
KR101027353B1 KR1020087027272A KR20087027272A KR101027353B1 KR 101027353 B1 KR101027353 B1 KR 101027353B1 KR 1020087027272 A KR1020087027272 A KR 1020087027272A KR 20087027272 A KR20087027272 A KR 20087027272A KR 101027353 B1 KR101027353 B1 KR 101027353B1
Authority
KR
South Korea
Prior art keywords
motion
macroblocks
statistics
spatial
motion vector
Prior art date
Application number
KR1020087027272A
Other languages
English (en)
Other versions
KR20090016553A (ko
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 퀄컴 인코포레이티드
Publication of KR20090016553A publication Critical patent/KR20090016553A/ko
Application granted granted Critical
Publication of KR101027353B1 publication Critical patent/KR101027353B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Abstract

본 개시물은 이미징 디바이스 및 비디오 디바이스에 대한 전자 이미지 안정화 기술들을 기재한다. 그 기술들은 프레임의 개별 매크로블록들에 대한 모션 통계 및 공간 통계를 결정하는 단계, 및 매크로블록들 각각의 통계에 기초하여 프레임의 글로벌 모션 벡터를 결정하는 단계를 포함한다. 일 실시형태에 있어서, 전자 이미지 안정화를 수행하는 방법은, 이미지의 프레임 내에서 복수의 매크로블록들 각각에 대한 공간 추정을 수행하여 매크로블록들 각각에 대한 공간 통계를 획득하는 단계, 복수의 매크로블록들 각각에 대한 모션 추정을 수행하여 매크로블록들 각각에 대한 모션 통계를 획득하는 단계, 매크로블록들 각각의 공간 통계 및 모션 통계를 적분하여 프레임에 대한 글로벌 모션 벡터를 결정하는 단계, 및 글로벌 모션 벡터에 따라 기준 윈도우에 대하여 이미지를 오프셋하는 단계를 포함한다.
이미지 안정화 모듈, 모션 적분 모듈, 공간 추정 모듈, 모션 추정 모듈

Description

전자 비디오 이미지 안정화{ELECTRONIC VIDEO IMAGE STABILIZATION}
본 출원은 2006년 4월 6일자로 출원된 미국 가출원 제 60/790,514 호의 우선권을 주장하며, 그 전부가 여기에서 참조로서 포함된다.
본 개시물은 비디오 처리에 관한 것으로, 보다 상세하게는, 전자 비디오 애플리케이션들에 있어서 전자 이미지 안정화를 위한 기술에 관한 것이다.
이미징 디바이스들이 경량화 및 소형화되면서, 이러한 이미징 디바이스들에 의해 캡처된 이미지들은 의도하지 않은 흔들림으로 인해 품질 저하에 더 민감하다. 정지 이미지 캡처에 있어서, 흔들림은 흐린 (blurry) 이미지를 야기할 수도 있다. 비디오 캡처에 있어서, 흔들림은 비디오 이미지의 지터 (jitter) 또는 흔들림을 야기할 수도 있다. 흔들림 및 지터는 인간의 시각 체계가 비디오 내의 관심 객체 또는 관심 영역을 포커싱하고 거기에 집중하는 것을 어렵게 할 수 있다. 이러한 흔들림이 비디오의 실제 모션 (genuine motion) 과 함께 나타나는 경우, 악영향이 더 심화될 수 있다. 어느 경우에나, 비디오 또는 이미지의 뷰잉 경험의 품질이 감소된다.
이미지 안정화 시스템은 흔들림에 대한 이미지를 보상하여 우수한 이미지 품 질을 생성하고자 한다. 일반적으로, 이미지 안정화 시스템은 3개의 주요 카테고리, 즉 광학 이미지 안정화기 (OIS), 기계적 이미지 안정화기 (MIS), 및 전자 이미지 안정화기 (EIS) 로 분류된다. OIS 시스템은 이미지가 센서에 도달하기 전에 이미지를 모핑하는 조정가능한 렌즈를 채용하며, 상기 렌즈는 외부 모션 센서에 의해 제어된다. MIS 시스템은, 카메라에 의해 캡처된 이미지가 아닌 전체 카메라를 안정화시킨다. 특히, MIS 시스템은 일반적으로 카메라의 중력 중심, 평형 시스템, 및 카메라 조작자의 바디를 이용하여 평활한 모션을 유지한다.
EIS 시스템은 신호처리 알고리즘을 채용하여 캡처된 이미지를 변경한다. 일부 EIS 시스템은 여러 상황들에서 잘 작동하지만, 원치않는 흔들림으로부터 실제 모션을 구별할 수 없을 수도 있다. 주밍 EIS는, 주밍에 의해 캡처된 이미지의 크기를 증가시킨 후, 약간 더 작은 이미지를 선택하기 위해 그 이미지 내에서 주밍하는 것을 수반하여, 흔들림에 의해 야기된 이동을 보상한다. 특대형 EIS는, 요구된 해상도보다 약간 더 큰 이미지를 캡처하고 그 특대형 이미지 내에서 패닝하는 것을 수반하여 흔들림에 의해 야기된 이동을 보상한다.
요약
본 개시물은 비디오 이미징 능력을 갖는 디바이스에 유용한 전자 이미지 안정화 기술을 기재한다. 본 개시물에 기재된 기술들은 디바이스의 원치않는 흔들림과 캡처된 장면에서 나타나는 실제 모션 사이를 효과적으로 구별한다. 동작에 있어서, 비디오 시퀀스의 비디오 프레임은 복수의 비중첩 매크로블록들로 분할된다. 공간 통계 및 모션 통계의 계산 시, 각 매크로블록에 대해 모션 벡터가 결정된다. 모션 벡터는 비디오 시퀀스에 있어서 다른 프레임의 대응하는 매크로블록에 대한 매크로블록의 이동을 나타낸다. 공간 통계는 프레임 내의 매크로블록들의 평균 (mean) 및 분산 (variance) 을 표시한다.
매크로블록들에 대한 공간 통계 및 모션 통계는 그 프레임에 대한 글로벌 모션 벡터를 획득하기 위해 적분된다. 안정화는 흔들림을 보상하기 위해 글로벌 모션 벡터에 기초하여 프레임으로의 오프셋 적용을 수반한다. 예를 들어, 글로벌 모션 벡터는 흔들림을 보상하는 약간 더 작은 이미지를 선택하기 위해 특대형 이미지 내에서 패닝에 사용될 수 있다. 공간 통계 및 모션 통계는 프레임을 인코딩하기 위해 즉시 이용될 수 있으며, 또한 전자 이미지 안정화를 지원하기 위해 사용될 수 있다. 이와 같이, 공간 통계 및 모션 통계는 흔들림 및 실제 모션 사이를 구별하는데 또한 효과적인 효율적 안정화 기술을 지원한다.
일 실시형태에 있어서, 본 개시물은, 비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하는 공간 추정 모듈, 상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하는 모션 추정 모듈, 상기 공간 통계 및 상기 모션 통계를 적분하여 상기 프레임에 대한 글로벌 모션 벡터를 결정하는 모션 적분 모듈; 및 상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하는 안정화 모듈을 포함하는, 디바이스를 제공한다.
다른 실시형태에 있어서, 본 개시물은, 비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하는 단계, 상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하는 단계, 상기 공간 통계 및 상기 모션 통계를 적분하여 상기 프레임에 대한 글로벌 모션 벡터를 결정하는 단계, 및 상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법을 제공한다.
다른 실시형태에 있어서, 본 개시물은, 비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하는 수단, 상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하는 수단, 상기 프레임에 대한 글로벌 모션 벡터를 결정하기 위해 상기 공간 통계 및 상기 모션 통계를 적분하는 수단, 및 상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스를 제공한다.
본 명세서에 기재된 이러한 기술 및 다른 기술은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨이로 구현되는 경우, 그 소프트웨어는 디지털 신호 프로세서 (DSP) 또는 다른 유형의 프로세서에서 실행될 수 있다. 상기 기술들을 실행하는 소프트웨어는 초기에 컴퓨터 판독가능 매체에 저장될 수 있으며, 캡처된 이미지의 효과적인 이미지 안정화를 위해 DSP 에서 로딩되고 실행될 수 있다.
따라서, 본 개시물은, 디바이스에서의 실행시에, 상기 디바이스가, 이미지의 프레임 내의 복수의 매크로블록들 각각에 관한 공간 추정을 수행하여 상기 매크로블록들 각각에 대한 공간 통계를 획득하게 하고, 상기 복수의 매크로블록들 각각에 관한 모션 추정을 수행하여 상기 매크로블록들 각각에 대한 모션 통계를 획득하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체를 또한 고려한다. 상기 컴퓨터 판독가능 매체는, 상기 디바이스에서의 실행 시에, 상기 디바이스가, 상기 매크로블록들 각각의 공간 통계 및 모션 통계를 적분하여 상기 프레임에 대한 글로벌 모션 벡터를 결정하게 하고, 상기 글로벌 모션 벡터에 따라 기준 윈도우에 대하여 이미지를 오프셋하게 하는 명령들을 더 포함한다.
첨부된 도면 및 다음의 상세한 설명에서 본 발명의 하나 이상의 실시형태들의 상세가 설명된다. 본 발명의 다른 특징들, 목적들 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구범위로부터 명백해질 것이다.
도 1은 본 개시물에 따른 스케일러블 (scalable) 전자 이미지 안정화를 수행하기 위해 구비된 예시적인 비디오 처리 디바이스의 블록도이다.
도 2는 도 1의 디바이스에 유용한 예시적인 프론트-엔드 (front-end) 처리 유닛을 도시하는 블록도이다.
도 3은 스케일러블 전자 이미지 안정화를 수행하기 위한, 도 2의 처리 유닛의 각종 컴포넌트들의 동작을 도시하는 블록도이다.
도 4는 스케일러블 이미지 안정화 기술의 구현에 있어서 도 1의 디바이스의 예시적인 동작을 도시하는 플로우 챠트이다.
도 5는 이미지 안정화를 지원하기 위해 글로벌 모션 벡터에 기초하여 비디오 프레임 내의 이미지에 이미지 오프셋을 적용하는 것을 도시하는 도면이다.
도 6은 이미지 안정화를 위한 글로벌 모션 벡터를 확립하기 위해 매크로블록 들의 서브세트를 포함하는 영역을 이용하는 것을 도시하는 도면이다.
도 7은 본 개시물에 기재된 바와 같은 비디오 처리 디바이스의 통합에 적합한 이동 모뎀의 일 예의 비디오 코어를 도시하는 블록도이다.
도 8a 내지 도 8d는 본 개시물에 따른 스케일러블 이미지 안정화 기술들을 구현하기 위한 예시적인 구현 방식들을 도시하는 블록도들이다.
도 9는 본 개시물의 이미지 안정화 기술들이 구현될 수 있는 예시적인 무선 통신 디바이스를 도시하는 블록도이다.
도 1은 본 개시물에 따른 스케일러블 전자 이미지 안정화 기술을 구현할 수 있는 예시적인 디바이스 (2) 의 블록도이다. 디바이스 (2) 는 비디오 데이터를 코딩할 수 있는 디지털 비디오 처리 디바이스의 부분을 형성할 수도 있다. 디지털 비디오 처리 디바이스는 비디오 카메라와 같은 비디오 캡처 디바이스, 또는 이전에 캡처된 비디오를 저장하는 비디오 아카이브 (archive) 에 의해 획득된 비디오를 처리할 수 있다. 예시로서, 디바이스 (2) 는 디지털 비디오 카메라, 랩탑 컴퓨터, 데스크탑 컴퓨터, 셀룰러 또는 위성 무선 전화와 같은 무선 통신 디바이스, PDA (personal digital assistant), 또는 디지털 비디오 기능을 갖는 임의의 디바이스의 부분을 형성할 수도 있다. 비디오 캡처 디바이스는 비디오 품질을 악화시키는 원치않는 흔들림에 민감할 수도 있다. 모션 추정은 이미지 안정화를 위해 사용될 수 있다. 그러나, 모션은 캡처될 장면에서 발생하는 실제 모션 뿐만 아니라, 패닝, 주밍, 틸팅 또는 다른 동작들로부터 야기되는 의도된 이동 또는 비디오 캡처 디바이스의 의도되지 않은 흔들림 중 어느 하나로 인해 발생할 수도 있다. 이에 따라, 효과적인 비디오 안정화를 제공하는 모션 추정의 애플리케이션은 난제일 수 있다. 본 명세서에 개시된 이미지 안정화 기술은 의도된 이동의 존재를 유지하면서 의도되지 않은 이동을 보상할 수 있다.
비디오 처리 장치 (4) 는 비디오 프레임의 시퀀스에 있어서 각 비디오 프레임에 대한 글로벌 모션 벡터를 결정함으로써 전자 비디오 이미지 안정화를 제공하도록 동작한다. 더 상세하게 설명되겠지만, 비디오 처리 장치 (4) 는 글로벌 모션 벡터를 사용하여 흔들림에 의해 발생된 이미지의 이동을 보상한다. 글로벌 모션 벡터는 이전 비디오 프레임과 같은, 다른 비디오 프레임 내에서의 이미지에 관한 현재의 비디오 프레임 내의 이미지의 전체 이동을 나타낸다.
비디오 처리 장치 (4) 는 비중첩 블록들로 프레임을 분해하고, 각각의 블록에 관한 공간 추정 및 모션 추정을 수행하여 각 블록에 대한 공간 통계 및 모션 통계를 결정함으로써, 글로벌 모션 벡터를 획득한다. 일부 실시형태에 있어서, 비디오 처리 장치 (4) 는 비디오 인코딩을 위해 발생된 공간 통계 및 모션 통계를 사용할 수도 있다. 비디오 처리 장치 (4) 는 공간 통계 및 모션 통계에 기초하여 비디오 프레임의 각 블록에 대한 모션 벡터를 발생할 수도 있다.
비디오 처리 장치 (4) 는 각각 개개의 블록에 대하여 획득된 정보 모두를 적분하여 글로벌 모션 벡터를 획득한다. 이러한 방식으로, 비디오 처리 장치 (4) 는 캡처 비디오 프레임을 보상하여, 예를 들어 흔들림으로 인한 디바이스 (2) 의 의도하지 않은 병진 모션에 의해 야기되는 모션의 출현을 실질적으로 제거한다.
비디오 처리 장치 (4) 는 원시 (raw) 비디오 데이터를 저장하고 그러한 데이터에 대해 다양한 비디오 처리 기술들을 수행할 수 있다. 비디오 처리 장치 (4) 는 디지털 신호 프로세서 (DSP) 및 온-칩 메모리를 포함하는 "칩 세트" 를 포함할 수도 있다. 다른 경우에 있어서, 비디오 처리 장치 (4) 는 프로세서, 하드웨어, 소프트웨어 또는 펌웨어의 임의의 조합을 포함할 수도 있다. 또한, 비디오 처리 장치 (4) 는 단일 집적 칩을 포함할 수도 있다.
도 1의 실시예에 있어서, 비디오 처리 장치 (4) 는 로컬 메모리 (8), 메모리 제어기 (10) 및 비디오 처리 유닛 (6) 을 포함한다. 비디오 처리 유닛 (6) 은 프론트-엔드 처리 유닛 (18) 을 포함하고, 또한 코딩 유닛 (19) 을 포함할 수도 있다. 프론트-엔드 처리 유닛 (18) 은, 본 개시물에 기재된 바와 같이, 비디오 이미지 안정화 이외에, 필터링, 디모자이킹, 렌즈 롤오프 보정, 스케일링, 컬러 보정, 컬러 변환, 노이즈 저감 필터링, 공간 필터링 및 다른 동작들을 수행할 수도 있다. 일부 실시형태에 있어서, 프론트-엔드 처리 유닛 (18) 은 본 개시물의 기술을 수행할 수도 있고, 이하 더 상세하게 설명되는 바와 같이, 복수의 이미지 처리 모듈을 포함할 수도 있다. 다른 실시형태에 있어서, 각각의 프론트-엔드 처리 유닛 (18) 및 코딩 유닛 (19) 은 본 개시물의 기술들을 수행하는 하나 이상의 비디오 처리 모듈을 포함할 수도 있다. 다른 경우에 있어서, 프론트-엔드 처리 유닛 (18) 은 코딩 유닛 (19) 과 협력할 수도 있다. 예를 들어, 프론트-엔드 처리 유닛 (18) 은 공간 통계 및 모션 통계를 획득하고, 이들을 코딩을 위해 코딩 유닛 (19) 에 제공함으로써, 상기 통계의 중복 계산을 피할 수 있다. 대신, 공 간 통계 및 모션 통계, 또는 그 부분들은 코딩 유닛 (19) 내에서의 비디오 코딩과 프론트-엔드 처리 유닛 (18) 내에서의 이미지 안정화 모두를 위해 사용될 수 있다.
예를 들어, 유선 또는 무선 통신 매체를 통한 원격 디바이스들로의 송신 또는 압축 저장을 위하여, 비디오 스트림에서 획득된 비디오를 인코딩하기 위해, 비디오 처리 장치 (4) 가 구비되는 경우, 코딩 유닛 (19) 이 제공될 수 있다. 이 경우에 있어서, 코딩 유닛 (19) 은 비디오 코딩을 수행할 수도 있으며, 이 비디오 코딩은 인터 프레임 압축 또는 인트라 프레임 압축과 같은 하나 이상의 비디오 압축 기술을 적용할 수도 있다. 예를 들어, 코딩 유닛 (19) 은 모션 추정 및 모션 보상 기술을 구현하여 시간적 또는 인터 프레임 데이터 상관을 이용하여 인터 프레임 압축을 제공할 수 있다. 대안으로, 또는 부가적으로, 코딩 유닛 (19) 은 공간 추정 및 인트라 예측 기술을 수행하여 공간적 또는 인트라 프레임 데이터 상관을 이용하여 인트라 프레임 압축을 제공할 수 있다. 일부 실시형태에 있어서, 코딩 유닛 (19) 은 프론트-엔드 처리 유닛 (18) 에 의해 획득된 공간 및 모션 통계를 사용하여, 예를 들어 계산의 중복을 감소시킬 수 있다. 대안으로, 코딩 유닛 (19) 은 그 자신의 모션 추정, 모션 보상 및 공간 추정 기술들을 프론트-엔드 처리 유닛에 의해 생성된 비디오에 적용할 수 있다.
일반적으로, 코딩 유닛 (19) 은 MPEG-1, MPEG-2, MPEG-4, ITU H.261, ITU H.263, ITU H.264, 및/또는 다른 표준들과 같은 임의의 각종 비디오 코딩 표준들에 따라 비디오 코딩을 적용할 수 있다. 또한, 코딩 유닛 (19) 은 정지 이미지를 압축하기 위해 사용될 수 있다. 코딩 유닛 (19) 은 CODEC (combined encoder/decoder) 의 부분을 형성할 수도 있다. CODEC은 하드웨어, 소프트웨어, 펌웨어, DSP, 마이크로프로세서, 주문형 집적회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA), 별개의 하드웨어 컴포넌트들, 또는 이들의 다양한 조합 내에서 구현될 수도 있다. 각종 디지털 필터들 및 하드웨어 컴포넌트들은 인코딩 및 디코딩 애플리케이션 모두를 지원하기 위해 제공될 수도 있다.
일반적으로, 로컬 메모리 (8) 는 원시 비디오 데이터를 저장하며, 또한 비디오 처리 유닛 (6) 에 의해 수행된 임의의 처리에 따른 처리된 비디오 데이터를 저장할 수도 있다. 예를 들어, 로컬 메모리 (8) 는 또한 코딩 유닛 (19) 에 의해 발생된 인코딩된 비디오 데이터를 저장할 수도 있다. 메모리 제어기 (10) 는 로컬 메모리 (8) 내에서 메모리 조직을 제어한다. 또한, 메모리 제어기 (10) 는 로컬 메모리 (8) 로부터 비디오 처리 유닛 (6) 으로의 메모리 로딩, 및 비디오 처리 유닛 (6) 으로부터 로컬 메모리 (8) 로의 되기입을 제어한다.
디바이스 (2) 는 비디오를 캡처하는 비디오 캡처 장치 (12) 를 포함할 수 있다. 예를 들어, 비디오 캡처 장치 (12) 는, 소위 카메라 폰 또는 비디오 폰을 형성하는 이동 전화기와 같은 또 다른 디바이스 내에 집적된 비디오 카메라일 수 있다. 또한, 비디오 캡처 장치 (12) 는 유선 또는 무선 매체, 예를 들어 USB (universal serial bus) 또는 IEEE 1394 접속에 의해 직접적으로, 또는 플래시 메모리 카드, 자기 하드 드라이브 또는 다른 매체와 같은 탈착형 저장 매체의 교환에 의해 간접적으로, 비디오 처리 장치에 비디오를 제공하기 위해 연결된 카메라일 수 있다. 비디오 캡처 장치 (12) 는 각각의 센서들의 표면 상에, 예를 들어 베이 어 패턴 (Bayer pattern) 으로 배열된 컬러 필터 어레이 (CFA) 들을 포함하는 이미지 센서의 세트를 포함할 수 있다.
비디오 캡처 장치 (12) 가 비디오 처리 장치 (4) 와 통합되는 경우, 이미지 센서들은, 뷰파인더 이미지들, 즉 상대적으로 소형 포맷인 저해상도 디스플레이를 통해 실질적으로 실시간으로 사용자에게 제시되는 이미지들의 이미지 처리에 있어서 레이턴시를 피하기 위해, 비디오 처리 유닛 (6) 에 직접적으로 연결될 수 있다. 그러나, 다른 유형의 이미지 센서들이 비디오 데이터를 캡처하기 위해 또한 사용될 수 있다. 이미지 캡처 장치 (12) 를 실현하기 위해 사용될 수 있는 다른 예시적인 센서들은 CMOS (complementary metal-oxide semiconductor) 센서 엘리먼트, CCD (charge coupled device) 센서 엘리먼트 등과 같은 고상 센서 엘리먼트의 어레이를 포함한다.
비디오 캡처 장치 (12) 에 의해 획득된 비디오는, 이미지 안정화를 제공하기 위해 본 개시물에 따라 처리되어 원치않는 흔들림을 보상한다. 비디오 캡처 장치 (12) 는 비디오 인코딩에 필요한 크기보다 더 큰 크기를 갖는 비디오 프레임을 캡처할 수 있다. 이러한 방식으로, 캡처된 비디오 프레임은 초과 영역을 제공하여 전자 이미지 안정화를 허용한다. 특히, 더 크게 캡처된 비디오 프레임내의 원하는 이미지는 글로벌 모션 벡터에 기초하여 수직으로, 수평으로, 또는 둘다로 이동되어 흔들림을 보상할 수 있다.
비디오 캡처 장치 (12) 의 대안으로서, 비디오 처리 장치 (4) 는 이전에 캡처된 비디오를 저장하는 비디오 아카이브로부터 획득된 비디오를 처리할 수 있다. 이에 따라, 이미지 안정화는 캡처될 때 즉시, 실질적으로 실시간으로, 비디오에 적용될 수 있으며, 또는 사후 처리 단계로서 이전에 캡처된 비디오에 적용될 수 있다. 어느 경우이든, 이미지 안정화는 인코딩 이전에 비디오의 흔들림을 보상하여, 궁극적으로 사용자에 의해 뷰잉되는 비디오의 품질을 향상시킨다. 비디오가 캡처될 때 이미지 안정화의 즉각적인 적용은, 최종 원시 비디오 품질 또는 인코딩된 비디오 품질 뿐만 아니라, 뷰파인더 이미지 품질을 향상시키기에 바람직하다.
디바이스 (2) 는 실시간 비디오를 시뮬레이션하기 위해 이미지 캡처 장치 (12) 에 의해 샘플링된 뷰파인더 이미지의 실시간 시퀀스를 표시하는 디스플레이 (21) 를 포함할 수도 있다. 이 이미지들은 폭이 상대적으로 작을 수도 있다. 따라서, 이러한 소형 이미지들은 캡처될 때, 프론트-엔드 처리 유닛 (18) 으로 라인씩 직접 로딩될 수 있다. 처리 이후, 뷰파인더 이미지들은 로컬 메모리 (8) 또는 외부 메모리 (14) 에 기록될 수도 있다. 그 후, 처리된 이미지들은 사용자에게 나타내기 위해 디스플레이 (21) 로 전송될 수 있다. 또한, 디스플레이 (21) 는 프론트-엔드 처리 유닛 (18) 에 의해 이러한 정지 이미지의 처리에 따른 정지 이미지를 표시하기 위해 사용될 수도 있다. 그러나, 일부 경우에 있어서, 정지 이미지들은 디바이스 (2) 에 의해 표시되지 않고 처리되고 저장될 수 있다. 정지 이미지의 캡처 다음에, 로컬 메모리 (8) 는 원시 데이터를 저장할 수 있다.
일부 경우에 있어서, 디바이스 (2) 는 다수의 메모리들을 포함할 수 있다. 예를 들어, 디바이스 (2) 는 외부 메모리 (14) 를 포함할 수도 있으며, 일반적으 로 외부 메모리 (14) 는 비교적 큰 메모리 공간을 포함한다. 외부 메모리 (14) 는 예를 들어, DRAM (Dynamic random access memory) 또는 FLASH 메모리를 포함할 수 있다. 다른 실시예에 있어서, 외부 메모리 (14) 는 비휘발성 메모리 또는 임의의 다른 유형의 데이터 저장 유닛을 포함할 수 있다. 외부 메모리 (14) 와는 반대로, 로컬 메모리 (8) 는 소형의 고속 메모리 공간을 포함할 수도 있지만, 본 개시물이 이러한 점에 반드시 제한되지는 않는다. 실시예로서, 로컬 메모리 (8) 는 동기식 DRAM (SDRAM) 을 포함할 수도 있다.
임의의 경우에 있어서, 메모리들 (14 및 8) 은 단지 예시일 뿐이며, 동일한 메모리로 결합될 수도 있고, 또는 다수의 다른 구성으로 구현될 수도 있다. 일 실시형태에 있어서, 로컬 메모리 (8) 는 일반적으로 SDRAM 에서 외부 메모리 (14) 의 일 부분을 형성한다. 이러한 경우에 있어서, 어느 메모리도 비디오 처리 유닛 (6) 과 "온-칩" 으로 배치되지 않는다는 점에서, 메모리들 (8 및 14) 은 모두 "외부" 이다. 따라서, 단지 비디오 처리 유닛 (6) 의 라인 버퍼들만이 "온-칩" 메모리일 수 있다.
또한, 디바이스 (2) 는 일부 실시형태에 있어서, 처리된 비디오 또는 코딩된 비디오, 또는 다른 정보를, 예를 들어 유선 또는 무선 통신 매체를 통해 다른 디바이스로 송신하는 송신기 (미도시) 를 포함할 수도 있다. 또한, 일부 실시형태에 있어서, 디바이스 (2) 는 처리된 비디오 또는 코딩된 비디오, 또는 다른 정보를, 다른 디바이스로부터 수신하는 수신기를 포함할 수도 있다. 로컬 메모리 (8), 디스플레이 (21) 및 외부 메모리 (14) (원한다면 다른 컴포넌트들) 은 통신 버스 (15) 를 통해 연결될 수 있다. 또한, 다수의 다른 엘리먼트들이 디바이스 (2) 에 포함될 수도 있지만, 설명의 용이성 및 간략함을 위해 도 1에 구체적으로 도시되지는 않는다. 도 1에 도시된 구조는 단지 예시일뿐이며, 본 명세서에 기재된 기술들은 다양한 다른 구조로 구현될 수도 있다.
도 2는 본 개시물의 원리에 따라 도 1의 일 예의 프론트-엔드 처리 유닛 (18) 을 더 상세하게 설명하는 블록도이다. 도 2에 나타낸 바와 같이, 프론트-엔드 처리 유닛 (18) 은 공간 추정 모듈 (22) 및 모션 추정 모듈 (24) 을 포함할 수 있다. 또한, 프론트-엔드 처리 유닛 (18) 은 모션 적분 모듈 (26), 모션 보상 모듈 (28), 통계 메모리 (27) 및 원프레임 (original frame) 메모리 (29) 를 포함할 수 있다. 프론트-엔드 처리 유닛 (18) 은 비디오 프레임을 비중첩 매크로블록들로 분할한다. 공간 추정 모듈 (22) 및 모션 추정 모듈 (24) 양자는, 대응하는, 즉 매우 밀접하게 매칭하는, 또 다른 프레임의 매크로블록들에 관하여, 프레임의 매크로블록들 각각을 분석하여, 공간 통계 및 모션 통계를 각각 획득한다.
통계 메모리 (27) 은 공간 통계 및 모션 통계를 저장한다. 원프레임 메모리 (29) 는 비디오 캡처 디바이스에 의해 획득된 비디오 프레임을 저장한다. 원프레임 메모리 (29) 에 저장된 비디오 프레임은 원치않는 흔들림을 포함할 수도 있다. 모션 적분 모듈 (26) 은 공간 추정 모듈 (22) 및 모션 추정 모듈 (24) 에 의해 발생된 공간 통계 및 모션 통계에 기초하여 글로벌 모션 벡터를 발생한다. 모션 보상 모듈 (28) 은 글로벌 모션 벡터를 사용하여 수신된 비디오 프레임 내의 이미지에 오프셋을 적용함으로써 흔들림을 보상한다.
도 3은 스케일러블 전자 이미지 안정화를 수행하기 위한 도 2의 처리 유닛의 다양한 컴포넌트들의 동작을 설명하는 블록도이다. 도 3에 나타낸 바와 같이, 공간 추정 모듈 (22), 모션 추정 모듈 (24), 통계 메모리 (27), 원프레임 메모리 (29) 는 전자 이미지 안정화 매크로블록 (EIS MB) 루프의 부분을 형성한다. EIS MB 루프는 흔들리는 이미지를 처리하여 공간 통계 및 모션 통계를 생성한다. 모션 적분 모듈 (26) 은 통계 메모리 (27) 로부터 통계를 수신하고, 모션 보상 모듈 (28) 에 의한 적용을 위해 글로벌 모션 벡터를 발생하여 안정화된 이미지를 생성한다.
공간 추정 모듈 (22) 은 현재의 비디오 프레임으로부터 개개의 비중첩 매크로블록들에 관한 공간 추정을 수행한다. 공간 추정은, 예를 들어 텍스쳐 (texture) 의 관점에서 프레임의 특성들을 표시한다. 일 실시형태에 있어서, 공간 추정을 수행하는 것은 매크로블록 내의 픽셀들과 연관된 휘도값의 분산 및 평균을 측정하는 것을 포함한다. 공간 추정 모듈 (22) 은 통계 메모리 (27) 에 공간 통계로서 평균 및 분산을 저장하는데, 통계 메모리 (27) 는 로컬 메모리 (8) 의 부분을 형성할 수 있다.
모션 추정 모듈 (24) 은 개개의 비중첩 매크로블록들에 대한 모션 추정을 수행한다. 모션 추정 모듈 (24) 은 현재의 프레임에서의 각 매크로블록에 대한 모션 벡터를 결정하여 이전 프레임에서의 위치로부터 그 매크로블록의 배치를 나타낸다. 즉, 모션 벡터는 현재의 매크로블록과 매우 밀접하게 매칭한다고 찾아낸 이전의 프레임의 매크로블록에 관하여 현재의 프레임의 매크로블록의 변위를 표시 한다. 모션 추정 모듈 (24) 은 이러한 기능을, 현재의 프레임의 각 매크로블록과 이전 프레임의 그 주변 영역의 매크로블록들을 비교함으로써 수행하여, 최상의 매치를 찾아낸다. 또한, 모션 추정 모듈 (24) 은 현재의 프레임의 소정의 매크로블록과 이전 프레임 내의 탐색 영역으로부터의 후보 매크로블록 사이의 SAD (sum-of-absolute-difference) 를 결정할 수 있다. 모션 추정 모듈 (24) 은 모션 통계로서 SAD와 모션 벡터들을 로컬 메모리 (8) 내에 저장한다.
공간 추정 모듈 및 모션 추정 모듈 (22, 24) 에 의해 제공된 공간 추정 동작 및 모션 추정 동작은, 일반적으로, MPEG-1, MPEG-2, MPEG-4, ITU H.261, ITU H.263, 또는 ITU H.264 표준들에 따른 인코딩과 같은 비디오 인코딩에서 수행된 유사한 동작들에 부합할 수도 있다. 현재의 프레임의 개개의 비중첩 매크로블록들 각각에 대하여 공간 통계 및 모션 통계가 통계 메모리 (27) 에 저장되면, 모션 적분 모듈 (26) 은 흔들림에 의해 발생된 이동을 보상하기 위해 사용될 단일 글로벌 모션 벡터로 개개의 모션 벡터들을 적분한다. 모션 적분 모듈 (26) 은 이하 설명되는 바와 같이 비선형 적분 함수를 채용할 수도 있다. 예를 들어, 일 실시형태에 있어서, 모션 적분 모듈 (26) 은 각각의 모션 벡터에 대응하는 빈들을 갖는 2-차원 (2D) 히스토그램을 형성하고, 글로벌 모션 벡터로서 최대값을 갖는 그 히스토그램 빈과 연관된 모션 벡터를 선택한다. 모션 적분 모듈 (26) 이 글로벌 모션 벡터를 계산하면, 모션 보상 모듈 (28) 은 이러한 벡터에 의해 전체로서 현재의 이미지를 오프셋한다. 다시, 현재의 이미지는, 이미지 안정화를 허용하기 위하여, 즉 소형 이미지를 대형 이미지 내에서 수직, 수평 또는 둘다로 시프트 시킴으로써, 특대형화된 대형 이미지 내의 영역에 대응할 수도 있다. 그 후 시프트된 이미지는 비디오 인코딩과 같은 추가의 처리를 위해 샘플링될 수 있다.
일부 실시형태에 있어서, 도 2 및 도 3의 예시적 프론트-엔드 처리 유닛 (18) 에 나타낸 하나 이상의 이미지 처리 모듈은, 프론트-엔드 처리 유닛 (18) 이외의 디바이스 (2) 의 위치에 상주할 수도 있다. 예를 들어, 이미지 안정화 및 비디오 인코딩이 공간 추정 및 모션 추정을 위해 통상의 하드웨어, 펌웨어, 및/또는 소프트웨어 유닛에 의존하도록, 공간 추정 모듈 (22) 및 모션 추정 모듈 (24) 은 코딩 유닛 (19) 내에 배치될 수 있다. 또한, 프론트-엔드 처리 유닛 (18) 은 도시되지 않은 다른 이미지 처리 모듈을 포함할 수도 있다. 실시예로서, 프론트-엔드 처리 유닛 (18) 의 부가적 모듈은 2-차원 필터링 모듈, 디모자이킹 모듈, 렌즈 롤오프 보정 모듈, 스케일링 모듈, 컬러 보정 모듈, 컬러 변환 모듈, 노이즈 저감 필터링 모듈, 공간 필터링 모듈, 또는 다른 유형의 모듈을 포함할 수도 있다.
도 4는 본 개시물의 기술들을 구현하는데 있어서 도 1의 디바이스 (2) 의 예시적인 동작을 도시하는 플로우챠트이다. 비디오 캡처 장치 (12) 는 일련의 프레임 내에서 비디오 프레임을 형성하는 비디오 이미지를 캡처한다 (30). 비디오 처리 유닛 (6) 은 캡처된 이미지를 수신한다. 프론트-엔드 처리 유닛 (18) 은 이미지의 현재 프레임을 매크로블록들로 분할한다 (32). 예를 들어, 프론트-엔드 처리 유닛 (18) 은 그 프레임을 16×16 픽셀 어레이들을 포함하는 매크로블록들로 분할한다. 또한, 매크로블록들은 8×8, 4×4, 8×16, 4×8 등과 같은 소형 또는 대형 크기를 가질 수도 있다. 이에 따라, 용어 "매크로블록" 은 비디오 프레임 내의 픽셀들의 어레이로 지칭할 수도 있다. 이러한 어레이의 크기는 고정되거나 변할 수도 있으며, 소정 범위의 크기를 가질 수도 있다. 매크로블록 내의 픽셀들은 그 매크로블록에 전체로서 적용하는 통계들의 세트를 제공하기 위해 분석될 수도 있다.
공간 추정 모듈 (22) 은 현재의 프레임
Figure 112008077020873-pct00001
으로부터 개개의 비중첩 매크로블록들
Figure 112008077020873-pct00002
의 세트에 대한 공간 추정을 수행한다 (34). 공간 추정 모듈 (22) 은 매크로블록의 평균 및 분산을 측정함으로써 매크로블록의 공간 추정을 수행할 수도 있다. 일 실시형태에 있어서, 공간 추정 모듈 (22) 은 다음의 수학식들에 따라 평균 (mean) 및 분산 (variance) 을 측정한다.
Figure 112008077020873-pct00003
Figure 112008077020873-pct00004
본 실시형태에 있어서, 공간 추정 모듈 (22) 은, 나타낸 간단한 근사 (제곱 대신 절대값) 가 이미지 안정화 목적을 위해 충분할 수도 있기 때문에, 잘 알려진 제곱 근사를 사용하여 분산을 측정하지 않는다. 그러나, 제곱의 합은 다른 실 시형태에서 사용될 수도 있다. 공간 추정 모듈 (22) 은 예를 들어, 공간 통계로서 평균 및 분산을 로컬 메모리 (8) 에 저장한다 (36).
모션 추정 모듈 (24) 은 현재의 프레임의 개개의 비중첩 매크로블록들에 관한 모션 추정을 수행한다 (38). 예를 들어, 모션 추정 모듈 (24) 은, 이전 프레임의 그 위치, 즉 이전 프레임의 밀접하게 매칭하는 매크로블록의 위치로부터, 매크로블록의 이동을 나타내는 현재의 프레임의 각 매크로블록에 대한 모션 벡터를 결정한다. 모션 추정 모듈 (24) 은 이러한 기능을, 현재의 프레임의 각 매크로블록과 이전 프레임의 그 주변 영역을 비교하여 최상의 매치를 찾아냄으로써 수행한다. 예를 들어, 각각의 매크로블록은 이전 프레임의 탐색 영역 (S) 내에서 탐색된다. 탐색 영역 (SX, SY) 의 크기는 그 기술이 구현되는 플랫폼, 및 소스 비디오에 따라 달라질 수 있다.
모션 추정 모듈 (24) 은 모션 벡터 예측기
Figure 112008077020873-pct00005
또는
Figure 112008077020873-pct00006
벡터 중 어느 하나의 주변에서 탐색 영역 중앙
Figure 112008077020873-pct00007
을 적응가능하게 선택한다. 모션 추정 모듈 (24) 은 가능한 탐색 영역 중앙 근처에 있어서 모션의 신뢰성에 기초하여 어느 벡터가 탐색 영역 중앙으로서 선택하는지를 결정한다. 이것은
Figure 112008077020873-pct00008
로 표시되며, 그 계산은 다음의 섹션에서 나타낸다. 모션 벡터 예측기
Figure 112008077020873-pct00009
는 아래에 나타낸 바와 같이, 이웃하 는 매크로블록들의 모션 벡터들에 기초하여 계산된다.
Figure 112008077020873-pct00010
Figure 112008077020873-pct00011
식 중,
Figure 112008077020873-pct00012
은 좌측 매크로블록의 모션 벡터이고,
Figure 112008077020873-pct00013
은 상측 매크로블록의 모션 벡터이며,
은 우측 매크로블록의 모션 벡터이다.
모션 추정 모듈 (24) 은 다음과 같이 탐색 영역 중앙을 적응가능하게 선택한다.
Figure 112008077020873-pct00015
상기 단계의 결과는 탐색이 수행된 현재의 프레임에서 소정의 매크로블록에 대하여 최상의 매치를 야기하는 모션 벡터
Figure 112008077020873-pct00016
이다.
또한, 매치의 범위는 정량 측정에 의해 설명될 수 있다. 일 실시형태에 있어서, 모션 추정 모듈 (24) 은 정량 측정으로서 소정의 매크로블록
Figure 112008077020873-pct00017
과 탐색 영역
Figure 112008077020873-pct00018
으로부터의 후보 매크로블록 사이의 SAD (sum-of-absolute-difference)
Figure 112008077020873-pct00019
를 결정한다. SAD 는 다음의 수학식으로 주어진다.
Figure 112008077020873-pct00020
모션 추정 모듈 (24) 은 매크로블록
Figure 112008077020873-pct00021
에 대한 모션 통계로서 매크로 블록의 SAD 및 매크로블록의 모션 벡터를 저장한다 (40).
프론트-엔드 처리 유닛 (18) 이 현재의 프레임의 개개의 비중첩 매크로블록들
Figure 112008077020873-pct00022
각각에 대한 공간 통계 및 모션 통계를 획득하면, 모션 적분 모듈 (26) 은 흔들림에 의해 발생된 이동을 보상하기 위해 사용될 단일 글로벌 모션 벡터로 개개의 모션 벡터들을 적분한다 (42). 모션 적분 모듈 (26) 은 이하 설명되는 바와 같이 비선형 적분 함수를 채용할 수도 있다. 일 실시형태에 있어서, 모션 적분 모듈 (26) 은 가능한 모션 벡터들 각각에 대응하는 빈들을 갖는 2차원 (2D) 히스토그램
Figure 112008077020873-pct00023
을 형성한다. 그러나, 모션 적분 모듈 (26) 은 글로벌 모션 벡터로 개별 모션 벡터들을 적분하는 다른 방법을 사용할 수도 있다. 2D 히스토그램의 2개의 디멘젼은 프레임의 수평 방향 및 수직 방향에 대응한다. 각 블록
Figure 112008077020873-pct00024
의 모션 벡터
Figure 112008077020873-pct00025
에 대응하는 빈은 아래 정의된 바와 같이 값/기여도
Figure 112008077020873-pct00026
로 업데이트된다.
기여도는 그 관련 모션 벡터
Figure 112008077020873-pct00027
의 신뢰성을 반영한다. 모션 적분 모듈 (26) 은 이러한 목적을 위해
Figure 112008077020873-pct00028
의 공간, 시간 및 공간-시간 특성들에 따라
Figure 112008077020873-pct00029
Figure 112008077020873-pct00030
의 3가지 유형의 신뢰성 지수를 계산한다. 모션 적분 모듈 (26) 은
Figure 112008077020873-pct00031
를 사용하여 신뢰성 지수
Figure 112008077020873-pct00032
를 계산하며, 이는 다음과 같이 고정된 스케일 (0 부터
Figure 112008077020873-pct00033
) 로 정규화된다.
Figure 112008077020873-pct00034
모션 적분 모듈 (26) 은
Figure 112008077020873-pct00035
를 사용하여 신뢰성 지수
Figure 112008077020873-pct00036
를 계산하며, 이는 다음과 같이 고정된 스케일 (0 부터
Figure 112008077020873-pct00037
)로 정규화된다.
Figure 112008077020873-pct00038
Figure 112008077020873-pct00039
모션 적분 모듈 (26) 은 이웃하는 블록들의 모션 벡터들의 동차성 (homogeneity) 을 고려하여 신뢰성 지수
Figure 112008077020873-pct00040
를 계산한다. 또한, 모션 적분 모듈 (26) 은 다음과 같이 고정된 스케일 (0 부터
Figure 112008077020873-pct00041
) 로 정규화된다.
Figure 112008077020873-pct00042
Figure 112008077020873-pct00043
모션 적분 모듈 (26) 은 다음과 같이 기여도
Figure 112008077020873-pct00044
를 계산한다.
Figure 112008077020873-pct00045
Figure 112008077020873-pct00046
모션 적분 모듈 (26) 은 각각의 블록
Figure 112008077020873-pct00047
에 대하여 다음과 같이 히스토그램
Figure 112008077020873-pct00048
을 업데이트한다.
Figure 112008077020873-pct00049
모션 적분 모듈 (26) 은 글로벌 모션 벡터
Figure 112008077020873-pct00050
로서 최대값을 갖는 히스 토그램 위치를 선택한다.
Figure 112008077020873-pct00051
모션 적분 모듈 (26) 이 글로벌 모션 벡터
Figure 112008077020873-pct00052
를 계산하면, 모션 보상 모듈 (28) 은 이 벡터에 의해 전체로서 현재의 이미지를 오프셋한다 (44). 그 후 시프트된 이미지는 추가 처리를 위해 샘플링된다. 현재의 프레임은 다음의 프레임에 대한 글로벌 모션 벡터를 결정하기 위한 기준 프레임으로서 사용되도록 저장될 수 있다.
도 5는 대형 기준 윈도우 (48) 내에서 글로벌 모션 벡터
Figure 112008077020873-pct00053
에 따라 오프셋된 예시적인 현재의 이미지 (46) 를 도시하는 블록도이다. 현재의 이미지 (46) 는 수직 디멘젼 (IV) 및 수평 디멘젼 (IH) 을 가지며, 기준 윈도우 (48) 는 수직 디멘젼 (RV) 및 수평 디멘젼 (RH) 을 갖는다. 프론트-엔드 처리 유닛 (18) 은 각각의 연속 프레임에 대한 글로벌 모션 벡터
Figure 112008077020873-pct00054
를 계산하여, 각각의 연속 프레임이 기준 윈도우 (48) 내에서 글로벌 모션 벡터에 따라 변위된다.
도 6은 영역 (52) 이 프레임의 매크로블록들의 서브세트를 포함하는 일 예의 프레임 (50) 을 도시하는 도면이다. 도 6은 본 명세서에 개시된 기술들의 스케일러블 복잡도 (scalable complexity) 를 정의하는 영역 (52) 의 예시적인 파라미터들을 나타낸다. 상술한 기술들은 전자 이미지 안정화를 수행하는데 있어서 리소스들의 최소 사용을 위한 복잡도 스케일러빌리티 (complexity scalability) 를 제공할 수도 있다. 특히, 프론트-엔드 처리 유닛 (18) 은 프레임에 대한 글로벌 모션 벡터를 결정하기 위해 프레임의 각 매크로블록 및 모든 매크로블록을 사용할 필요가 없다. 대신, 매크로블록들의 서브세트의 분석은 프레임에 대한 적당한 글로벌 모션 벡터를 산출할 수 있다. 예를 들어, 상술한 예시적인 실시형태에 있어서, 모션 적분을 수행하는 단계는 프레임 (50) 에 대한 글로벌 모션 벡터를 찾아내기 위해 2D 히스토그램의 피크를 찾는 단계를 필요로 한다. 블록들
Figure 112008077020873-pct00055
의 서브세트는 2D 히스토그램에서의 피크를 산출할 수 있다.
Figure 112008077020873-pct00056
Figure 112008077020873-pct00057
의 서브세트인 영역으로서 정의된다.
영역
Figure 112008077020873-pct00058
은 신뢰성이 있도록 피크에 대하여 충분히 커야하고, 또한 신뢰성이 있는 모션의 영역들을 포함하여야 한다. 다음의 파라미터들은
Figure 112008077020873-pct00059
의 함수로서
Figure 112008077020873-pct00060
을 정의하기 위해 채용될 수 있다.
Figure 112008077020873-pct00061
는 정수개의 블록들에서의 영역의 시작 로우이다.
Figure 112008077020873-pct00062
은 정수개의 블록들에서의 시작 컬럼이다.
Figure 112008077020873-pct00063
는 정수개의 블록들에 있어서 영역의 로우들의 개수이다.
Figure 112008077020873-pct00064
은 정수개의 블록들에서의 영역의 컬럼들의 개수이다.
Figure 112008077020873-pct00065
는 (백분율로) 영역에서의 로우들의 밀도이고,
Figure 112008077020873-pct00066
는 (백분율로) 영역에서의 컬럼들의 밀도이다. 일부 구현들에 있어서, 100% 의
Figure 112008077020873-pct00067
가 하드웨어의 효율적인 사용을 위해 바람직하다.
성능 및 가요성 사이의 합당한 균형도를 유지하기 위해, 디지털 신호 프로세 서 (DSP), 또는 다른 처리 엔티티가 본 개시물의 전자 이미지 안정화 기술들을 구현하기 위해 프로그램가능 하드웨어와 함께 사용될 수 있다. 이러한 구성에 있어서, DSP는 다양한 하드웨어 컴포넌트들의 프로그래밍 및 실행을 제어한다. 이하, 이러한 아키텍쳐의 일 예가 이미지 안정화와 관련하여 설명된다.
도 7은 이동 무선 전화와 같은 무선 통신 디바이스에 사용되는 이동국 모뎀 (MSM) 플랫폼의 일 예의 비디오 코어 (54) 를 도시하는 블록도이다. 도 7의 실시예에 있어서, 비디오 코어 (54) 는 단지 DSP로부터만 액세스가 가능하고 프로세스 코어로부터는 액세스가 불가능하다. 비디오 코어 (54) 는, 비디오 인코딩 및 디코딩 동안 픽셀들의 이동에 대한 전력 효율 솔루션 (power-efficient solution) 을 제공하며; 이에 따라, 비디오 코어 (54) 는 공간 추정 및 모션 추정과 같은, 본 명세서에서 개시된 전자 이미지 안정화 기술들의 모든 픽셀 집중 동작들에 영향을 미칠 수도 있다. 단지 비디오 인코딩을 위해 요구되는 동작들의 서브세트만이 전자 이미지 안정화를 위해 요구되기 때문에, 오직 비디오 코어의 씬 버전 (thin version) 만이 사용되어야 한다. 프로세서 코어 또는 DSP 중 어느 하나는 이미지 안정화 알고리즘의 모션 적분 양태를 하우징할 수도 있다.
도 7에 나타낸 바와 같이, 비디오 코어 (54) 는 비디오 프론트 엔드 (VFE, 56) 와 비디오 백 엔드 (VBE, 58) 사이에 파티셔닝될 수도 있다. 일반적으로, VFE (56) 는 각종 카메라 또는 캠코더 애플리케이션들을 지원하기 위해 사전-프로세싱 (pre-processing) 동작들 및 기능성을 캡슐화하고, 이러한 동작들을 제어하기 위해 가요성 프로세서간 인터페이스를 포함한다. VFE (56) 의 주요 태스크는 실시간으로 들어오는 비디오 입력 데이터 (60) 를 처리하는 것이다. VFE (56) 는 비디오 입력 데이터 (60) 를 수신하고 그 데이터를 처리하여, 제어기 (미도시) 로부터 수신된 구성 파라미터들 및 커맨드들에 기초하여 VBE (58) 에 대하여 허용가능한 포맷으로 비디오 출력 데이터를 생성한다.
예를 들어, VFE (56) 는 상술한 전자 이미지 안정화 기술들을 사용하여 비디오 입력 데이터 (60) 를 처리할 수도 있다. 게다가, VFE (56) 는 비디오 입력 데이터 (60) 를 포맷하여 디스플레이 모듈 (미도시) 에 의한 디스플레이에 적당한 형태로 비디오 디스플레이 데이터를 생성한다. VFE (56) 은 각각 VBE (58) 및 제어기에 의한 액세스용 비디오 메모리 (미도시) 내에 비디오 디스플레이 데이터 및 비디오 출력 데이터를 저장한다. VFE (56) 는 프로세서간 인터페이스를 통해 상태 정보를 제공하여 계류중인 커맨드들의 상태를 표시한다.
VBE (58) 는 비디오 데이터를 인코딩 또는 디코딩하는, 임의의 소프트웨어 애플리케이션, 하드웨어 유닛 등을 포함할 수도 있다. 보다 구체적으로, VBE (58) 는 비디오 출력 데이터를 사용하여 비디오 시퀀스의 인코딩된 비트 스트림을 발생할 수도 있다.
인코더로서 동작하는 경우, VBE (58) 는 비디오 출력 데이터를 인코딩하고, 인코딩된 비트 스트림을, 예를 들어 송신기/수신기 (미도시) 를 통한 무선 송신을 위해 비디오 메모리 내에 버퍼링할 수도 있다. 예를 들어, VBE (58) 는 디지털 카메라용 JPEG 정지 이미지 인코더, 디지털 캠코더용 MPEG 비디오 인코더 등을 포함할 수도 있다. 이에 따라, VBE 는 사유 (proprietary) 인코더 또는 디코더일 수도 있으며, 또는 MPEG-1, MPEG-2, MPEG-4, ITU H.261, ITU H.263, ITU H.264 및/또는 다른 표준들과 같은 각종 데이터 압축 표준들 중 하나 이상에 따라 비디오 출력 데이터를 처리할 수도 있다.
대안으로, 또는 게다가, VBE (58) 은 디코더로서 동작할 수도 있다. 보다 상세하게, VBE (58) 는 수신기/송신기로부터 인코딩된 비디오 시퀀스의 비트 스트림을 수신하고, 그 비트 스트림을 처리하여 VFE (56) 에 의해 처리 및 표시하기 위한 디코딩된 비디오 시퀀스를 생성할 수도 있다. VFE (56) 및 VBE (58) 는 제어 신호들을 교환하여 비디오 처리 동작들을 트리거할 수도 있다. 예를 들어, 제어기 또는 VFE (56) 는 VBE (58) 에 의한 인코딩 동작들을 트리거할 수도 있다. 디코더로서 동작하는 경우, 제어기 또는 VBE (58) 는 VFE (56) 에 의한 동작들을 트리거할 수 있다. VFE (56) 및 VBE (58) 은 독립형 하드웨어 또는 스프트웨어 모듈, 예를 들어 DSP (62) 에 의한 실행용 소프트웨어 모듈, 또는 이들의 조합으로서 제공될 수도 있다.
도 8a 내지 도 8d 는 도 7의 플랫폼 상에서 본 개시물의 이미지 안정화 기술들을 구현하기 위한 예시적인 구현 방식들을 도시하는 블록도들이다. 도 8a는 MSM7K 플랫폼 상에서 이미지 안정화를 구현하기 위한 일 옵션을 도시하는 블록도이다. 도 8a에 나타낸 바와 같이, 프로세서 코어 (74) 는 "인코드" 커맨드를 2번 이슈하는데, 즉 이미지 안정화를 위해 한번 이슈하고, 프레임의 실제 인코딩을 위해 다시 이슈한다. 이미지 안정화 단계에 있어서, DSP (76) 및 비디오 코어 (78) 는 프레임이 인코딩되었다면 동일한 방식으로 구동된다. 이러한 단계에 있어서, 모션 및 공간 통계는 매 매크로블록들에 기초하여 프로세서 코어 (74) 로 되전송되어 이미지 안정화를 지원한다. 그 후, 프로세서 코어 (74) 는 상술한 모션 적분 기술들을 구현하게 된다. 그 후, 프로세서 코어 (74) 에 의해 계산된 글로벌 모션 벡터는 다음 단계 동안 다시 프로그래밍되어, 실제 인코딩이 수행된다.
도 8b는 MSM7K 플랫폼 상에서 이미지 안정화를 구현하기 위한 다른 동작을 도시하는 블록도이다. 이 동작에 있어서, 프로세서 코어 (74) 는 단지 상술한 전자 이미지 안정화 기술들을 적응가능하게 제어하게 되는 "이미지 안정화" 커맨드를 구현하는 것만을 필요로한다. 프로세서 코어 (74) 는 프레임을 인코딩하기 위한 "인코드 커맨드"를 이슈하기 전에 "이미지 안정화" 커맨드를 이슈한다. "이미지 안정화" 커맨드는 DSP (76) 가 단지 프레임의 서브세트, 즉 영역
Figure 112008077020873-pct00068
만을 인코딩하도록 명령한다. 이는 본 개시물의 전자 이미지 안정화 기술을 구현하기 위한 스케일러블 인터페이스를 허용할 수 있다. 상기 단계들의 나머지는 도 8a의 단계들과 실질적으로 동일하다.
도 8c는 MSM7K 플랫폼 상에서 이미지 안정화를 수행하는 추가 옵션을 도시하는 블록도이다. 이 옵션은 DSP (76) 상에서 안정화 모드 ("stab" 모드) 로서 알려진 새로운 기능성을 구현하는 것을 요구한다. 안정화 모드는 단지 비디오 코어 (78) 의 서브세트만이 작동되도록 한다. 특히, 인코딩에 필요한 모든 동작들을 작동하기 보다는, 이미지 안정화를 위한 공간 및 모션 추정을 지원하기에 충분한 동작들의 서브세트가 작동될 수 있다. 이는 이미지 안정화 단계 동안 소모되는 시간을 감소시키는데 도움을 줄 수도 있다. 상기 단계들의 나머지는 도 8b의 단계들과 실질적으로 동일하다.
도 8d는 도 7의 플랫폼 상에서 이미지 안정화를 구현하기 위한 또 다른 옵션을 나타내는 블록도이다. 이 옵션은 DSP (76) 내의 알고리즘의 모션 적분 단계들을 구현하는 것을 요구한다. 이는 프로세서 코어 (74) 와 DSP (76) 사이에 필요한 통신 (즉, 매 매크로블록에 기초한 모션 통계 및 공간 통계의 통신) 의 양을 최소화할 수 있다. 이로써, 프로세서 코어 (74) 는 프레임 마다 (인코드 및 안정화가 조합된) 단일 커맨드를 이슈한다. DSP (76) 는 모션 적분을 포함하고 글로벌 모션 벡터를 결정하는 이미지 안정화를 수행한 후, 글로벌 모션 벡터에 팩토링하면서 프레임을 인코딩한다.
도 9는 본 개시물의 기술들이 구현될 수 있는 예시적인 디지털 비디오 디바이스 (80) 를 도시하는 블록도이다. 디지털 비디오 디바이스 (80) 는 비디오 데이터의 인코딩된 시퀀스를 수신 디바이스 (미도시) 로 무선 송신하는 소스 디바이스로서 동작할 수도 있다. 유사하게, 디지털 비디오 디바이스 (80) 는 비디오 데이터를 무선 수신하고 디코딩할 수 있는 수신 디바이스로서 동작할 수도 있다. 디지털 비디오 디바이스는 비디오 브로드캐스트, 비디오 컨퍼런싱, 비디오 전화통신, 또는 비디오 송신을 요구하는 임의의 다른 애플리케이션을 지원할 수 있다. 예를 들어, 디지털 비디오 디바이스 (80) 는 셀룰러 또는 위성 무선 전화, 또는 PDA (personal digital assistant) 와 같은 무선 통신 디바이스일 수 있다.
프론트-엔드 처리 유닛 (82) 은 상술한 이미지 안정화 기술들에 따라 비디오 캡처 디바이스 (84) 에 의해 캡처된 비디오 프레임을 처리하기 위해 사용될 수 있다. 메모리 (86) 는 비디오 시퀀스를 저장할 수도 있다. 예를 들어, 메모리 (86) 는 후속 프레임을 안정화하고 인코딩하기 위한 기준으로서 사용되도록 현재의 프레임을 저장할 수도 있다. 인코더 (88) 는 압축 알고리즘을 사용하여 저장된 비디오 시퀀스를 인코딩할 수 있다. 인코더 (88) 는, 예를 들어 각종 하드웨어, 소프트웨어 또는 펌웨어, 또는 프로그램가능한 소프트웨어 모듈을 실행하여 본 명세서에서 상술한 바와 같은 비디오 인코딩 기술들을 제어하는 하나 이상의 DSP를 포함할 수도 있다. 또한, 디지털 비디오 디바이스 (80) 는 무선 안테나 (92) 를 통해 인코딩된 시퀀스들을 수신 디바이스 (미도시) 로 송신하는 송신기 (90) 를 포함한다.
본 개시물에 기재된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 상기 기술들의 다양한 양태들은 하나 이상의 마이크로프로세서, DSP, 주문형 집적 회로 (ASIC), 필드 프로그램가능 로직 어레이 (FPGA) 또는 임의의 다른 등가의 집적 로직 회로 또는 별개의 로직 회로 뿐만 아니라, 이러한 컴포넌트들의 임의의 조합물 내에서 구현될 수 있다. 일반적으로, 용어 "프로세서" 또는 "처리 회로" 는 상기 로직 회로 단독 또는 다른 로직 회로와의 조합 중 어느 것으로서 지칭될 수 있다.
소프트 웨어에서 구현되는 경우, 본 개시물에 기재된 시스템들 및 디바이스들에 속하는 기능성은 RAM (random access memory), ROM (read-only memory), NVRAM (non-volatile RAM), EEPROM (electrically erasable programmable ROM), FLASH 메모리, 자기 매체, 광학 매체 등과 같은 컴퓨터 판독가능 매체 상에 명령들로서 수록될 수 있다. 상기 명령들은 본 개시물에 기재된 기능성의 하나 이상의 양태를 지원하기 위해 실행된다.
다양한 실시형태들이 설명되었다. 상기 설명된 실시형태들은 단지 예시적인 목적만을 위해서이다. 이들 및 다른 실시형태들은 다음의 청구범위의 범위 내에 있다.

Claims (43)

  1. 비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하는 공간 추정 모듈;
    상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하는 모션 추정 모듈;
    상기 비디오 프레임에 대한 글로벌 모션 벡터를 결정하기 위해 상기 공간 통계 및 상기 모션 통계를 적분하는 모션 적분 모듈; 및
    상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하는 안정화 모듈을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  2. 제 1 항에 있어서,
    상기 공간 통계는 상기 매크로블록들 각각과 연관된 비디오 정보의 평균 및 분산을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  3. 제 1 항에 있어서,
    상기 모션 통계는 상기 매크로블록들과 이전 비디오 프레임의 대응하는 매크로블록들 사이의 이동을 나타내는 모션 벡터들을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  4. 제 3 항에 있어서,
    상기 모션 통계는 상기 매크로블록들과 상기 이전 비디오 프레임의 상기 대응하는 매크로블록들 사이의 차이를 나타내는 SAD (sum-of-absolute-difference) 값을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  5. 제 3 항에 있어서,
    상기 모션 추정 모듈은 상기 이전 비디오 프레임의 탐색 영역 중앙을 적응가능하게 선택하고, 상기 매크로블록의 위치를 상기 탐색 영역 중앙과 연관된 탐색 영역에 있어서의 상기 이전 비디오 프레임의 매크로블록들의 위치들과 비교하여 상기 이전 비디오 프레임의 최상의 매칭 매크로블록을 찾아내는, 전자 이미지 안정화를 수행하는 디바이스.
  6. 제 1 항에 있어서,
    상기 모션 적분 모듈은 복수의 가능한 모션 벡터들 각각에 대응하는 빈들을 포함하는 2차원 (2D) 히스토그램을 형성하고, 최대값을 갖는 빈과 연관된 모션 벡터를 상기 글로벌 모션 벡터로서 지정하는, 전자 이미지 안정화를 수행하는 디바이스.
  7. 제 1 항에 있어서,
    디지털 신호 프로세서; 및
    상기 디지털 신호 프로세서로 2개의 인코드 커맨드를 이슈하는 프로세서 코어를 더 포함하고,
    상기 디지털 신호 프로세서는, 제1 인코드 커맨드를 수신할 시에, 상기 공간 추정 모듈이 공간 통계를 획득하도록 하고, 상기 모션 추정 모듈이 모션 통계를 획득하도록 하며,
    상기 프로세서 코어는 상기 모션 적분 모듈이 상기 매크로블록들 각각의 상기 모션 통계 및 상기 공간 통계를 적분하도록 하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하도록 하는, 전자 이미지 안정화를 수행하는 디바이스.
  8. 제 7 항에 있어서,
    상기 프로세서 코어는 상기 글로벌 모션 벡터로 상기 디지털 신호 프로세서를 프로그래밍하고,
    상기 디지털 신호 프로세서는 제2 인코드 커맨드를 수신할 시에, 상기 안정화 모듈에 의해 오프셋된 상기 이미지의 인코딩을 수행하는, 전자 이미지 안정화를 수행하는 디바이스.
  9. 제 1 항에 있어서,
    디지털 신호 프로세서; 및
    상기 디지털 신호 프로세서가 상기 비디오 프레임의 매크로블록들의 서브세트로 이루어진 영역 R 상에서 이미지 안정화를 수행하도록 명령하는 이미지 안정화 커맨드를 상기 디지털 신호 프로세서에 이슈하는 프로세서 코어를 더 포함하고,
    상기 모션 적분 모듈은 상기 영역 R 내의 상기 매크로블록들 각각의 공간 통계 및 모션 통계에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하는, 전자 이미지 안정화를 수행하는 디바이스.
  10. 제 9 항에 있어서,
    비디오 코어를 더 포함하고,
    상기 디지털 신호 프로세서는 안정화 모드를 구현하며,
    상기 안정화 모드는 상기 디바이스가 단지 상기 비디오 코어의 서브세트만을 작동하도록 하는, 전자 이미지 안정화를 수행하는 디바이스.
  11. 제 1 항에 있어서,
    상기 모션 적분 모듈이 상기 매크로블록들 각각의 상기 모션 통계 및 상기 공간 통계를 적분하도록 하여 상기 비디오 프레임에 대한 글로벌 모션 벡터를 결정하는 디지털 신호 프로세서; 및
    상기 디지털 신호 프로세서가 상기 비디오 프레임의 인코딩 및 이미지 안정화를 수행하도록 명령하는 커맨드를 상기 디지털 신호 프로세서에 이슈하는 프로세서 코어를 더 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  12. 제 1 항에 있어서,
    상기 이미지를 캡처하는 이미지 캡처 장치를 더 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  13. 제 1 항에 있어서,
    16 픽셀 × 16 픽셀 매크로블록들 상에서 상기 공간 추정 및 상기 모션 추정을 수행하는, 전자 이미지 안정화를 수행하는 디바이스.
  14. 제 1 항에 있어서,
    무선 통신 디바이스, PDA (personal digital assistant), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 리코딩 디바이스, 비디오 기능을 갖는 셀룰러 무선 전화기, 및 비디오 기능을 갖는 위성 무선전화기 중 적어도 하나를 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  15. 제 1 항에 있어서,
    상기 공간 추정 모듈, 상기 모션 추정 모듈, 상기 모션 적분 모듈, 및 상기 안정화 모듈에 의해 처리된 비디오 프레임들을 송신하는 송신기를 더 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  16. 비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하는 단계;
    상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하는 단계;
    상기 비디오 프레임에 대한 글로벌 모션 벡터를 결정하기 위해 상기 공간 통계 및 상기 모션 통계를 적분하는 단계; 및
    상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  17. 제 16 항에 있어서,
    상기 공간 통계를 발생하는 단계는, 상기 매크로블록들 각각과 연관된 비디오 정보의 평균 및 분산을 획득하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  18. 제 16 항에 있어서,
    상기 모션 통계는 상기 매크로블록들과 이전 비디오 프레임 내의 대응하는 매크로블록들 사이의 이동을 나타내는 모션 벡터들을 포함하는, 전자 이미지 안정화를 수행하는 방법.
  19. 제 16 항에 있어서,
    상기 모션 통계를 발생하는 단계는, 상기 매크로블록에 대한 모션 벡터 및 상기 매크로블록과 이전 비디오 프레임으로부터의 매크로블록 사이의 SAD (sum-of-absolute-difference) 를 결정하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  20. 제 19 항에 있어서,
    상기 모션 벡터를 결정하는 단계는,
    탐색 영역 중앙을 적응가능하게 선택하는 단계; 및
    상기 매크로블록의 위치를 상기 이전 비디오 프레임의 상기 탐색 영역 중앙과 연관된 탐색 영역의 매크로블록들의 위치들과 비교하여 상기 이전 비디오 프레임의 최상의 매칭 매크로블록을 찾아내는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  21. 제 16 항에 있어서,
    상기 공간 통계 및 상기 모션 통계를 적분하는 단계는,
    복수의 가능한 모션 벡터들 각각에 대응하는 빈들을 포함하는 2차원 (2D) 히스토그램을 형성하는 단계와,
    최대값을 갖는 빈과 연관된 모션 벡터를 상기 글로벌 모션 벡터로서 지정하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  22. 제 16 항에 있어서,
    상기 비디오 프레임 내의 상기 매크로블록들의 서브세트를 영역 R로서 정의하는 단계; 및
    상기 영역 R 내의 상기 매크로블록들 각각의 상기 모션 통계 및 상기 공간 통계에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하는 단계를 더 포함하는, 전자 이미지 안정화를 수행하는 방법.
  23. 전자 이미지 안정화를 수행하는 디바이스에서의 실행시에, 상기 디바이스로 하여금,
    비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하게 하고,
    상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하게 하고,
    상기 비디오 프레임에 대한 글로벌 모션 벡터를 결정하기 위해 상기 공간 통계 및 상기 모션 통계를 적분하게 하며,
    상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  24. 제 23 항에 있어서,
    상기 명령들은 상기 디바이스로 하여금 상기 매크로블록들 각각과 연관된 비디오 정보의 평균 및 분산을 획득함으로써 공간 통계를 발생하게 하는, 컴퓨터 판독가능 매체.
  25. 제 23 항에 있어서,
    상기 모션 통계는 상기 매크로블록들과 이전 비디오 프레임에서의 대응하는 매크로블록들 사이의 이동을 표시하는 모션 벡터들을 포함하는, 컴퓨터 판독가능 매체.
  26. 제 23 항에 있어서,
    상기 명령들은 상기 디바이스로 하여금 상기 매크로블록에 대한 모션 벡터 및 상기 매크로블록과 이전 비디오 프레임으로부터의 매크로블록 사이의 SAD (sum-of-absolute-difference) 를 결정함으로써 모션 통계를 발생하게 하는, 컴퓨터 판독가능 매체.
  27. 제 23 항에 있어서,
    상기 디바이스에서의 실행 시에, 상기 디바이스로 하여금,
    복수의 가능한 모션 벡터들 각각에 대응하는 빈들을 포함하는 2-차원 (2D) 히스토그램을 형성하게 하고,
    최대값을 갖는 빈과 연관된 모션 벡터를 상기 글로벌 모션 벡터로서 지정하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  28. 제 23 항에 있어서,
    상기 디바이스에서의 실행 시에, 상기 디바이스로 하여금,
    상기 비디오 프레임 내의 매크로블록들의 서브세트를 영역 R로써 정의하게 하고,
    상기 영역 R 내의 상기 매크로블록들 각각의 상기 공간 통계 및 모션 통계에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  29. 비디오 프레임 내의 매크로블록들에 대한 공간 통계를 발생하는 수단;
    상기 비디오 프레임 내의 상기 매크로블록들에 대한 모션 통계를 발생하는 수단;
    상기 비디오 프레임에 대한 글로벌 모션 벡터를 결정하기 위해 상기 공간 통 계 및 상기 모션 통계를 적분하는 수단; 및
    상기 글로벌 모션 벡터에 기초하여 상기 매크로블록들에 의해 정의된 이미지에 오프셋을 적용하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  30. 제 29 항에 있어서,
    상기 공간 통계를 발생하는 수단은, 상기 매크로블록들 각각과 연관된 비디오 정보의 평균 및 분산을 획득하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  31. 제 29 항에 있어서,
    상기 모션 통계는, 상기 매크로블록들과 이전의 비디오 프레임에서의 대응하는 매크로블록들 사이의 이동을 나타내는 모션 벡터들을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  32. 제 29 항에 있어서,
    상기 모션 통계를 발생하는 수단은,
    상기 매크로블록에 대한 모션 벡터 및 상기 매크로블록과 이전 비디오 프레임으로부터의 매크로블록 사이의 SAD (sum-of-absolute-difference) 를 결정하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  33. 제 32 항에 있어서,
    상기 모션 벡터를 결정하는 수단은,
    탐색 영역 중앙을 적응가능하게 선택하는 수단; 및
    상기 매크로블록의 위치와 상기 이전 비디오 프레임의 상기 탐색 영역 중앙과 연관된 탐색 영역에서의 매크로블록들의 위치들을 비교하여 상기 이전 비디오 프레임의 최상의 매칭 매크로블록을 찾아내는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  34. 제 29 항에 있어서,
    상기 공간 통계 및 상기 모션 통계를 적분하는 수단은,
    복수의 가능한 모션 벡터들 각각에 대응하는 빈들을 포함하는 2-차원 (2D) 히스토그램을 형성하는 수단, 및
    최대값을 갖는 빈과 연관된 모션 벡터를 상기 글로벌 모션 벡터로서 지정하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  35. 제 29 항에 있어서,
    상기 비디오 프레임 내의 상기 매크로블록들의 서브세트를 영역 R 로서 정의하는 수단; 및
    상기 영역 R 내의 상기 매크로블록들 각각의 상기 공간 통계 및 모션 통계에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하는 수단을 더 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  36. 제 1 항에 있어서,
    상기 모션 적분 모듈은, 또한,
    상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계에 기초하여 상기 매크로블록들과 연관된 모션 벡터들에 대한 신뢰성 지수들을 결정하고,
    상기 모션 벡터들 및 상기 신뢰성 지수들에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하도록 구성되는, 전자 이미지 안정화를 수행하는 디바이스.
  37. 제 36 항에 있어서,
    상기 모션 적분 모듈은, 또한,
    상기 공간 통계에 기초하여 공간 신뢰성 지수를 결정하고,
    상기 모션 통계에 기초하여 공간-시간 신뢰성 지수를 결정하고,
    상기 모션 통계에 기초하여 결정되는 시간 신뢰성 지수를 결정하도록 구성되며,
    상기 전자 이미지 안정화를 수행하는 디바이스는,
    상기 공간 신뢰성 지수, 상기 공간-시간 신뢰성 지수, 및 상기 시간 신뢰성 지수에 기초하여 상기 매크로블록과 연관된 모션 벡터의 신뢰성을 반영하는, 상기 매크로블록들 각각에 대한 기여도를 결정하는 수단을 더 포함하고,
    상기 모션 적분 모듈은, 상기 매크로블록들 각각에 대한 상기 기여도 및 상기 매크로블록들과 연관된 상기 모션 벡터들에 기초하여 상기 글로벌 모션 벡터를 결정함으로써 상기 글로벌 모션 벡터를 결정하는, 전자 이미지 안정화를 수행하는 디바이스.
  38. 제 16 항에 있어서,
    상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계를 적분하는 단계는,
    상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계에 기초하여 상기 매크로블록들과 연관된 모션 벡터들에 대한 신뢰성 지수들을 결정하는 단계; 및
    상기 모션 벡터들 및 상기 신뢰성 지수들에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  39. 제 38 항에 있어서,
    상기 신뢰성 지수들을 결정하는 단계는,
    상기 공간 통계에 기초하여 공간 신뢰성 지수를 결정하는 단계;
    상기 모션 통계에 기초하여 공간-시간 신뢰성 지수를 결정하는 단계; 및
    상기 모션 통계에 기초하여 결정되는 시간 신뢰성 지수를 결정하는 단계를 포함하고,
    상기 전자 이미지 안정화를 수행하는 방법은,
    상기 공간 신뢰성 지수, 상기 공간-시간 신뢰성 지수, 및 상기 시간 신뢰성 지수에 기초하여 상기 매크로블록과 연관된 모션 벡터의 신뢰성을 반영하는, 상기 매크로블록들 각각에 대한 기여도를 결정하는 단계를 더 포함하고,
    상기 글로벌 모션 벡터를 결정하는 단계는, 상기 매크로블록들 각각에 대한 상기 기여도 및 상기 매크로블록들과 연관된 상기 모션 벡터들에 기초하여 상기 글로벌 모션 벡터를 결정하는 단계를 포함하는, 전자 이미지 안정화를 수행하는 방법.
  40. 제 23 항에 있어서,
    상기 디바이스로 하여금 상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계를 적분하게 하는 명령들은, 상기 디바이스로 하여금,
    상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계에 기초하여 상기 매크로블록들과 연관된 모션 벡터들에 대한 신뢰성 지수들을 결정하게 하고,
    상기 모션 벡터들 및 상기 신뢰성 지수들에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  41. 제 40 항에 있어서,
    상기 디바이스로 하여금 신뢰성 지수들을 결정하게 하는 명령들은, 상기 디바이스로 하여금,
    상기 공간 통계에 기초하여 공간 신뢰성 지수를 결정하게 하고,
    상기 모션 통계에 기초하여 공간-시간 신뢰성 지수를 결정하게 하며,
    상기 모션 통계에 기초하여 결정되는 시간 신뢰성 지수를 결정하게 하는 명령들을 포함하고,
    상기 명령들은 또한, 상기 디바이스로 하여금,
    상기 공간 신뢰성 지수, 상기 공간-시간 신뢰성 지수, 및 상기 시간 신뢰성 지수에 기초하여 상기 매크로블록과 연관된 모션 벡터의 신뢰성을 반영하는, 상기 매크로블록들 각각에 대한 기여도를 결정하게 하고,
    상기 글로벌 모션 벡터를 결정하는 것은, 상기 매크로블록들 각각에 대한 상기 기여도 및 상기 매크로블록들과 연관된 상기 모션 벡터들에 기초하여 상기 글로벌 모션 벡터를 결정하는 것을 포함하는, 컴퓨터 판독가능 매체.
  42. 제 29 항에 있어서,
    상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계를 적분하는 수단은,
    상기 매크로블록들에 대한 상기 공간 통계 및 상기 모션 통계에 기초하여 상기 매크로블록들과 연관된 모션 벡터들에 대한 신뢰성 지수들을 결정하는 수단; 및
    상기 모션 벡터들 및 상기 신뢰성 지수들에 기초하여 상기 비디오 프레임에 대한 상기 글로벌 모션 벡터를 결정하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
  43. 제 42 항에 있어서,
    상기 신뢰성 지수들을 결정하는 수단은,
    상기 공간 통계에 기초하여 공간 신뢰성 지수를 결정하는 수단;
    상기 모션 통계에 기초하여 공간-시간 신뢰성 지수를 결정하는 수단; 및
    상기 모션 통계에 기초하여 결정되는 시간 신뢰성 지수를 결정하는 수단을 포함하고,
    상기 전자 이미지 안정화를 수행하는 디바이스는,
    상기 공간 신뢰성 지수, 상기 공간-시간 신뢰성 지수, 및 상기 시간 신뢰성 지수에 기초하여 상기 매크로블록과 연관된 모션 벡터의 신뢰성을 반영하는, 상기 매크로블록들 각각에 대한 기여도를 결정하는 수단을 더 포함하고,
    상기 글로벌 모션 벡터를 결정하는 수단은, 상기 매크로블록들 각각에 대한 상기 기여도 및 상기 매크로블록들과 연관된 상기 모션 벡터들에 기초하여 상기 글로벌 모션 벡터를 결정하는 수단을 포함하는, 전자 이미지 안정화를 수행하는 디바이스.
KR1020087027272A 2006-04-06 2007-04-06 전자 비디오 이미지 안정화 KR101027353B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US79051406P 2006-04-06 2006-04-06
US60/790,514 2006-04-06
US11/487,078 2006-07-14
US11/487,078 US7840085B2 (en) 2006-04-06 2006-07-14 Electronic video image stabilization

Publications (2)

Publication Number Publication Date
KR20090016553A KR20090016553A (ko) 2009-02-16
KR101027353B1 true KR101027353B1 (ko) 2011-04-11

Family

ID=38442958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087027272A KR101027353B1 (ko) 2006-04-06 2007-04-06 전자 비디오 이미지 안정화

Country Status (7)

Country Link
US (1) US7840085B2 (ko)
EP (1) EP2002649B1 (ko)
JP (2) JP2009533009A (ko)
KR (1) KR101027353B1 (ko)
CN (1) CN101411181B (ko)
ES (1) ES2565177T3 (ko)
WO (1) WO2007118197A2 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4838699B2 (ja) * 2006-12-19 2011-12-14 キヤノン株式会社 色処理装置および方法
US8428142B2 (en) * 2007-03-05 2013-04-23 Stmicroelectronics International N.V. System and method for transcoding data from one video standard to another video standard
US20090073283A1 (en) * 2007-09-18 2009-03-19 Atmel Corporation Method and apparatus for capturing images
JP4940164B2 (ja) * 2008-02-07 2012-05-30 オリンパス株式会社 撮像装置及び撮像方法
JP5048542B2 (ja) * 2008-02-07 2012-10-17 オリンパス株式会社 画像処理装置及び画像処理プログラム
JP4561845B2 (ja) * 2008-02-29 2010-10-13 カシオ計算機株式会社 撮像装置と画像処理プログラム
JP4561919B2 (ja) * 2008-04-21 2010-10-13 ソニー株式会社 撮像装置、画像処理装置及び画像処理方法
US8120659B2 (en) * 2008-05-22 2012-02-21 Aptina Imaging Corporation Method and system for motion estimation in digital imaging applications
US8185823B2 (en) * 2008-09-30 2012-05-22 Apple Inc. Zoom indication for stabilizing unstable video clips
US20100215104A1 (en) * 2009-02-26 2010-08-26 Akira Osamoto Method and System for Motion Estimation
US20100295957A1 (en) * 2009-05-19 2010-11-25 Sony Ericsson Mobile Communications Ab Method of capturing digital images and image capturing apparatus
JP2011114407A (ja) * 2009-11-24 2011-06-09 Sony Corp 画像処理装置、画像処理方法、プログラム及び記録媒体
TW201230805A (en) * 2011-01-04 2012-07-16 Aptos Technology Inc Video playback apparatus and method
JP5708097B2 (ja) * 2011-03-18 2015-04-30 株式会社リコー 撮像装置、撮像方法、及び撮像プログラム
GB2492529B (en) 2011-05-31 2018-01-10 Skype Video stabilisation
CN102355581A (zh) * 2011-09-22 2012-02-15 山东大学 用于视频编码芯片硬件系统中的多级稳定性处理方法
GB201116566D0 (en) 2011-09-26 2011-11-09 Skype Ltd Video stabilisation
GB2497507B (en) * 2011-10-14 2014-10-22 Skype Received video stabilisation
CN102637295B (zh) * 2012-03-31 2014-07-23 北京智安邦科技有限公司 一种快速图像电子稳定方法及装置
JP5996418B2 (ja) * 2012-12-20 2016-09-21 オリンパス株式会社 撮像装置および撮像方法
US10602175B2 (en) 2012-12-21 2020-03-24 Nvidia Corporation Using an average motion vector for a motion search
KR101783990B1 (ko) * 2012-12-21 2017-10-10 한화테크윈 주식회사 디지털 영상 처리 장치 및 영상의 대표 움직임 예측 방법
CN103455983A (zh) * 2013-08-30 2013-12-18 深圳市川大智胜科技发展有限公司 嵌入式视频系统中的图像扰动消除方法
US20150071343A1 (en) * 2013-09-12 2015-03-12 Magnum Semiconductor, Inc. Methods and apparatuses including an encoding system with temporally adaptive quantization
KR102290964B1 (ko) 2014-02-19 2021-08-18 삼성전자주식회사 적응적 서치 레인지를 이용한 비디오 인코딩 장치 및 그 방법
KR101589186B1 (ko) * 2014-04-16 2016-01-27 국방과학연구소 글로벌 모션벡터 보상을 이용한 영상정합 방법
WO2017087537A1 (en) * 2015-11-16 2017-05-26 Google Inc. Stabilization based on accelerometer data
US11368620B2 (en) * 2016-03-03 2022-06-21 Sony Corporation Image processing apparatus, image processing method, and electronic device
CN107222659A (zh) * 2017-05-03 2017-09-29 武汉东智科技股份有限公司 一种视频异常检测方法
WO2019084801A1 (zh) * 2017-10-31 2019-05-09 深圳市大疆创新科技有限公司 运动估计方法和装置
US10750092B2 (en) * 2018-09-19 2020-08-18 Gopro, Inc. Systems and methods for stabilizing videos
CN111010494B (zh) * 2019-10-28 2020-11-03 武汉大学 一种带有地理编码的光学卫星视频稳像方法及系统
US11006044B1 (en) * 2020-03-03 2021-05-11 Qualcomm Incorporated Power-efficient dynamic electronic image stabilization
US11418810B2 (en) * 2020-09-21 2022-08-16 Tencent America LLC Methods of inter picture motion prediction for multi-view video compression
CN114257756A (zh) * 2020-09-25 2022-03-29 瑞昱半导体股份有限公司 校正移动向量的视频处理方法
CN112351281A (zh) * 2020-10-28 2021-02-09 西安万像电子科技有限公司 图像处理方法及装置、处理器、非易失性存储介质
KR20240029000A (ko) * 2021-07-07 2024-03-05 퀄컴 인코포레이티드 이미지 캡처 및/또는 프로세싱 동작들을 개선하기 위한 로컬 모션 검출
US11863791B1 (en) 2021-11-17 2024-01-02 Google Llc Methods and systems for non-destructive stabilization-based encoder optimization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040001147A1 (en) 2002-06-19 2004-01-01 Stmicroelectronics S.R.L. Method of stabilizing an image sequence
KR100467375B1 (ko) 1995-08-30 2005-06-08 소니 가부시끼 가이샤 화상신호처리장치및기록/재생장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0514798A (ja) * 1991-07-03 1993-01-22 Sony Corp 手振れ補正装置
JP3221785B2 (ja) * 1993-10-07 2001-10-22 株式会社日立製作所 撮像装置
JP3951321B2 (ja) * 1995-08-30 2007-08-01 ソニー株式会社 画像信号処理装置および記録/再生装置
JP4245695B2 (ja) * 1998-09-24 2009-03-25 シャープ株式会社 画像動きベクトル検出方法およびその装置
DE60011773T2 (de) * 1999-03-18 2005-07-07 British Broadcasting Corp. Wasserzeichen
EP1075147A1 (en) 1999-08-02 2001-02-07 Koninklijke Philips Electronics N.V. Motion estimation
US6809758B1 (en) 1999-12-29 2004-10-26 Eastman Kodak Company Automated stabilization method for digital image sequences
FR2831698A1 (fr) * 2001-10-30 2003-05-02 Koninkl Philips Electronics Nv Station d'imagerie medicale a fonction d'extraction de trajectoire au sein d'un objet ramifie
JP2004015376A (ja) * 2002-06-06 2004-01-15 Canon Inc 像振れ防止装置およびカメラ
US7188092B2 (en) * 2002-07-12 2007-03-06 Chroma Energy, Inc. Pattern recognition template application applied to oil exploration and production
US7184991B1 (en) * 2002-07-12 2007-02-27 Chroma Energy, Inc. Pattern recognition applied to oil exploration and production
CN1258925C (zh) * 2003-06-27 2006-06-07 中国科学院计算技术研究所 多视角视频编解码预测补偿方法及装置
US7705884B2 (en) 2004-07-21 2010-04-27 Zoran Corporation Processing of video data to compensate for unintended camera motion between acquired image frames

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100467375B1 (ko) 1995-08-30 2005-06-08 소니 가부시끼 가이샤 화상신호처리장치및기록/재생장치
US20040001147A1 (en) 2002-06-19 2004-01-01 Stmicroelectronics S.R.L. Method of stabilizing an image sequence

Also Published As

Publication number Publication date
JP2012009036A (ja) 2012-01-12
CN101411181A (zh) 2009-04-15
WO2007118197A3 (en) 2008-01-03
WO2007118197A2 (en) 2007-10-18
ES2565177T3 (es) 2016-04-01
EP2002649A2 (en) 2008-12-17
JP5129370B2 (ja) 2013-01-30
JP2009533009A (ja) 2009-09-10
CN101411181B (zh) 2011-07-06
US20070236578A1 (en) 2007-10-11
US7840085B2 (en) 2010-11-23
EP2002649B1 (en) 2016-01-13
KR20090016553A (ko) 2009-02-16

Similar Documents

Publication Publication Date Title
KR101027353B1 (ko) 전자 비디오 이미지 안정화
US8179446B2 (en) Video stabilization and reduction of rolling shutter distortion
KR101154087B1 (ko) 블록-기반 이미지 안정화
US8160150B2 (en) Method and system for rate distortion optimization
US7880769B2 (en) Adaptive image stabilization
US8098957B2 (en) Shared block comparison architechture for image registration and video coding
JP4799438B2 (ja) 画像記録装置、画像記録方法、画像符号化装置、及びプログラム
US20100215104A1 (en) Method and System for Motion Estimation
EP3175618A1 (en) Perceptual optimization for model-based video encoding
US20070025443A1 (en) Moving picture coding apparatus, method and program
JP5156704B2 (ja) 画像符号化装置、画像符号化方法、集積回路及びカメラ
US20190020851A1 (en) Image encoding apparatus, and control method thereof
WO2017205597A1 (en) Image signal processing-based encoding hints for motion estimation
US8149911B1 (en) Method and/or apparatus for multiple pass digital image stabilization
JP5869839B2 (ja) 画像処理装置およびその制御方法
JP6152642B2 (ja) 動画像圧縮装置、動画像復号装置およびプログラム
JP5165084B2 (ja) 画像符号化装置
JP2017200199A (ja) 動画像圧縮装置、動画像復号装置およびプログラム
JP2012222460A (ja) 動画像符号化装置、動画像符号化方法及びプログラム
JP2019036992A (ja) 圧縮装置、復号装置およびプログラム
JP2005143029A (ja) 画像処理装置、画像処理方法、プログラム、情報記録媒体及び撮像装置
JP2012178713A (ja) 画像処理装置、画像処理方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 9