KR20130001215A - 일반 플랫폼 비디오 이미지 안정화 - Google Patents

일반 플랫폼 비디오 이미지 안정화 Download PDF

Info

Publication number
KR20130001215A
KR20130001215A KR1020127020922A KR20127020922A KR20130001215A KR 20130001215 A KR20130001215 A KR 20130001215A KR 1020127020922 A KR1020127020922 A KR 1020127020922A KR 20127020922 A KR20127020922 A KR 20127020922A KR 20130001215 A KR20130001215 A KR 20130001215A
Authority
KR
South Korea
Prior art keywords
frame
motion
video
processing
motion vector
Prior art date
Application number
KR1020127020922A
Other languages
English (en)
Other versions
KR101725215B1 (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 KR20130001215A publication Critical patent/KR20130001215A/ko
Application granted granted Critical
Publication of KR101725215B1 publication Critical patent/KR101725215B1/ko

Links

Images

Classifications

    • G06T3/18
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/207Analysis of motion for motion estimation over a hierarchy of resolutions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • 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/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Abstract

비디오 이미지 안정화는 이용 가능한 멀티미디어 디지털 신호 처리 요소들을 평가하며 비디오 안정화의 처리 부분들에 대한 비디오 안정화 성능의 계층 구조에 따라 사용할 이용 가능한 요소들을 선택함으로써 컴퓨팅 장치들에 대한 일반 플랫폼 상에서 보다 나은 성능을 제공한다. 비디오 안정화는 비디오 프레임들의 다운 샘플링된 해상도 버전으로부터 시작하는 피라미드 블록 구조 관계에 따라 정밀 모션 벡터 검색을 이용하는 개선된 모션 벡터 추정을 포함한다. 비디오 안정화는 또한, 로컬 모션 벡터들을 처리하기 위한 RANSAC(random sample consensus) 접근방식을 수행함으로써 전반적 모션 변환 추정, 및 모션 벡터 신뢰도의 선택 기준을 개선한다. 비디오 안정화는 에러 검출 및 정정을 이용하는 실시간 원패스 또는 오프라인 투패스 시간상 평탄화를 통해 손 흔들림의 제거를 완만하게 수행한다.

Description

일반 플랫폼 비디오 이미지 안정화{GENERIC PLATFORM VIDEO IMAGE STABILIZATION}
비디오 카메라 기능들이 모바일 전화, 컴팩트 카메라 및 미디어 재생기와 같은 다목적 소형 경량의 핸드헬드 전자 기기들로 통합되는 것이 점점 일반화되고 있다. 보다 큰 전용 비디오 캠코더들과는 달리, 통상적으로 그러한 다목적 핸드헬드 장치들은 흔들리는 또는 불안정한 손으로 인한 떨림을 갖는 비디오 모션을 줄이기 위한 기계적이거나 광학적인 메커니즘이 결여되어 있다. 보다 가벼운 무게 및 광각 렌즈의 통상적 사용으로 인해, 다목적 핸드헬드 장치들은 손 흔들림에 기인한 떨림이 있는 비디오 모션에 보다 민감할 수 있다. 또한, 이러한 값싼 다목적 핸드헬드 장치들의 이용 가능성이 아마추어 및 프로 비디오 촬영자들의 커뮤니티를 넘어 비디오 촬영의 인기를 확산시킴에 따라, 고품질 비디오를 촬영하는 방법에 있어 아주 약간의 훈련이나 경험을 가진 사용자들에 의해 소비자 비디오가 점점 더 일반적으로 만들어지고 있다. 또한, 이메일, 블로그, 비디오 공유 웹 사이트 및 소셜 네트워킹 사이트를 통해 인터넷으로 짧은 비디오 클립들을 공유하는 것에 대한 인기가 소비자들 사이에서 증대되고 있다. 특히, 비디오 전문가나 열성적 취미를 가진 이들이 아닌 사용자들에게, 아무 편집이나 다른 가공 없이 비디오 클립들이 웹 사이트에 빈번히 (종종 비디오 캡처 장치로부터 직접) 업로드된다. 이러한 다양한 이유로, 웹 상에서 공유되는 비디오 클립들의 품질은 보통 아주 열악하며, 그러한 비디오 클립들은 통상 손 흔들림에 기인한 떨림이 있는 비디오 모션의 문제를 겪고 있다.
디지털 비디오 이미지 안정화는 손 흔들림으로 인한 떨림이 있는 비디오 모션을 정정하기 위해 비디오에 적용될 수 있는 디지털 신호 처리 기법이다. 한 전형적인 구현예에서, 이 기법은 비디오 시퀀스의 각각의 이미지의 매크로 블록들에 대해 그 이전 이미지와 연관하여 로컬 모션 추정을 산출하는 단계; 떨림으로 인한 전반적 모션의 추정치를 산출하기 위해 매크로 블록들의 로컬 모션 벡터들을 처리하는 단계; 및 추정된 떨림 모션에 대한 반대 방향으로 이미지를 디지털 쉬프팅하거나 워핑(warping)함으로써 떨림이 있는 비디오 모션을 보상하는 단계를 수반한다.
기존의 디지털 이미지 안정화의 한 결점은 그 기법이 매우 계산 집약적이라는 것이다. 비디오를 블로그, 비디오 공유 웹 사이트나 소셜 네트워킹 사이트로 업로드할 때, 그 비디오는 처리 능력들에 있어 다양한 장치들로부터 업로드될 것이다. 게다가, 보통의 사용자는 자신의 비디오를 비디오 공유 또는 소셜 네트워킹 사이트에 신속하게 포스팅하는 즉시성(immediacy)에 더 관심을 가질 수 있으므로, 어떠한 시간을 소비하는 비디오 처리도 요망되지 않는다. 예를 들어, 비디오는 셀룰라 네트워크와 같은 것을 통해 다목적 핸드헬드 장치로부터 직접 업로드될 수 있다. 그러나 다목적 핸드헬드 장치(모바일 전화 등)는 보통 제한된 처리 자원을 가지거나, 다목적 장치의 다른 기능들과 처리 자원들을 공유해야 한다. 다른 대안으로서, 핸드헬드 장치는 또한 PC, 랩탑, 노트북 등의 장치들에 연결되어 인터넷 접속을 통해 비디오를 비디오 공유 또는 소셜 네트워킹 사이트로 업로드할 수도 있다. 그러나 이러한 인터넷 연결 PC들 역시 처리 자원들에 있어 크게 차이가 난다. 또한 즉시성을 위해, 인터넷에 연결된 장치를 통한 포스팅 중의 어떠한 처리 지연도 바람직하지 않을 수 있다.
이러한 이유로, 다양한 이용 가능 컴퓨팅 플랫폼들 상에서 효과적으로 작용하는 비디오 이미지 안정화 기법이 유용할 수 있으며 요망된다.
요약하면, 상세한 설명은 일반적으로 비디오 시퀀스의 이미지 안정화를 위한 디지털 비디오 처리에 관한 것이다.
이하의 상세한 설명은 보다 나은 성능을 제공하기 위해 이용 가능한 멀티미디어 디지털 신호 처리 요소들을 효과적으로 이용하는 일반적인 플랫폼 상에서 비디오 안정화를 구현하는 시스템 및 방법에 관한 것이다. 예를 들어, 일반적인 플랫폼 상에서의 비디오 안정화는 그 일반적인 플랫폼을 가진 컴퓨팅 장치들 상에서 제공될 수 있는 다양한 멀티미디어 디지털 신호 처리 요소들 중 어느 것을 활용하기 위한 프로그래밍 함수들을 제공하는 실행 가능 라이브러리 안에 프로그래밍된다. 비디오 안정화의 구현예는 컴퓨팅 장치 상의 어떤 이용 가능한 멀티미디어 디지털 신호 처리 요소들에 대해 실행되고 있는 컴퓨팅 장치를 평가함으로써 일반 플랫폼 상에서 동작된다. 일반 플랫폼 상에서의 비디오 안정화에 대한 구현예는 이제 적어도 비디오 이미지 안정화를 위한 성능을 포함하는 기준에 의해 멀티미디어 디지털 신호 처리 요소들을 정렬하는 계층 구조에 따라 비디오 안정화의 한 개 이상의 부분들을 처리하기 위해 어떤 이용 가능한 멀티미디어 디지털 신호 처리 요소나 요소들을 활용할지를 판단한다. 그런 다음 이 구현예는 비디오 이미지 안정화 처리의 상기 부분들에 대해 상기 판단된 멀티미디어 디지털 신호 처리 요소들을 활용하는 실행 가능 라이브러리 함수들을 실행하는 것을 포함하여, 비디오 이미지 안정화를 위해 비디오를 처리한다.
이하의 상세한 설명에 제시된 일부 구현예들에서, 비디오 이미지 안정화는 비디오 프레임의 이웃하는 블록들 사이에서 모션 벡터들의 일관성을 강조하는 로컬 모션 벡터 추정의 형식을 이용한다. 이 로컬 모션 벡터 추정에 있어서, 복수 해상도의 복수 버전 프레임 및 기준 프레임을 생성하기 위해 프레임 및 그 기준 프레임이 일회 이상 다운 샘플링된다. 프레임의 최저 해상도 버전은 프레임의 각각의 상위 해상도 버전 내 대응 위치들에 있는 연속적인 보다 많은 수의 블록들과 피라미드 구조로서 연관된 복수의 블록들을 가진다. 모션 벡터 추정 프로세스는 프레임의 최저 해상도 버전에서 시작하여, 연관된 최저 해상도 버전 기준 프레임의 완전(full) 검색을 이용하여 최저 해상도 버전 프레임의 블록들의 모션 벡터들을 추정한다. 그런 다음, 각각의 연속적 상위 해상도 버전 프레임에 대해, 피라미드 구조에 따라 이전의 하위 해상도 버전 프레임의 연관 블록에 대해 추정된 모션 벡터로부터 시작하는 정밀(refinement) 검색을 이용하여 상위 해상도 버전 프레임의 블록들에 대한 모션 벡터들이 추정된다. 프레임의 완전(full) 해상도 버전 프레임까지 각각의 상위 해상도 버전에 대한 반복 후, 이웃하는 블록들의 일관성을 보다 잘 강조한 완전 해상도 버전 프레임의 블록들에 대해 추정된 로컬 모션 벡터들을 도출한다. 이러한 보다 일관된 로컬 모션 벡터들의 추정치는 프레임의 전반적 모션을 보다 잘 강조한다.
이하의 상세한 설명에서 제시되는 일부 구현예들에서, 비디오 이미지 안정화는 보다 안정적으로 비디오 내 프레임들의 전반적 모션을 추정하기 위해 모션 벡터들을 처리하는 방법들을 포함한다. 이들은 영상 경계들 상에서의 모션 벡터들을 제거하고, 높은 모션 보상 잔차들을 도출하는 모션 벡터들, 및 낮은 변동을 가진 블록들의 모션 벡터들을 제거하는 것과 같은 것을 통해, 프레임들의 전반적 모션을 보다 안정적으로 반영하는 모션 벡터들의 집합을 선택하는 것을 포함한다. 비디오 이미지 안정화는 또한, 무작위 샘플 컨센서스(RANSAC(random sample consensus)) 접근법을 사용하여 전반적 모션 변환의 파라미터들을 추정함으로써 모션 벡터 아웃라이어(outlier)들을 검출 및 제거하는 것을 포함할 수도 있다. 비디오 이미지 안정화는 또한 손 흔들림으로부터 떨리는 비디오 모션을 보다 잘 모델링할 수 있는 유사 모션 모델에 기반하여 전반적 모션 변환을 추정할 수도 있다.
이하의 상세한 설명에 제시된 일부 구현예들에서, 비디오 이미지 안정화는 또한 떨리는 비디오 모션에 대응하는 전반적 모션 변환의 추정이 그 전반적 모션 추정 시의 에러들에 대한 검출 및 정정을 위한 문턱치들의 제한을 받게 할 수도 있다. 비디오 이미지 안정화는 추정된 전반적 모션 변환의 파라미터들을 두 개의 한계치들과 비교한다. 상한치가 초과되면, 전반적 모션 변환의 추정은 리셋된다. 파라미터들이 하한치를 초과하면, 추정된 전반적 모션 변환의 파라미터들은 그들의 하한치로 제한된다. 그렇지 않으면, 추정된 전반적 모션 변환이 원래대로 사용된다.
이하의 상세한 설명에서 제시되는 일부 구현예들에서, 비디오 이미지 안정화는 프레임들에 대해 추정된 전반적 모션 변환들의 시간적 평탄화(temporal smoothing)를 수행한다.
이하의 상세한 설명은 실시간 재생이나 트랜스코딩 시나리오들에 사용될 수 있는 비디오 이미지 안정화의 변형들뿐 아니라 오프라인 비디오 안정화에 적합한 변형들 역시 제공한다. 실시간 모드에서, 비디오 이미지 안정화는 프레임들의 전반적 모션에 대한 추정치들을 도출하기 위해 로컬 모션 벡터들의 단일 패스(single pass) 처리를 이용하여 수행될 수 있다. 오프라인 모드에서, 비디오 이미지 안정화는 투패스(two passes)의 모션 벡터 처리를 수행할 수 있다. 예를 들어 제1모션 벡터 처리 패스는 비디오 세그먼트 장면의 프레임들에 걸친 모션 벡터들의 확률 분포와 같이, 모션 벡터들에 대한 통계적 정보를 모으는 데 사용될 수 있다. 이러한 통계적 정보는 전반적 모션 변환 추정에 인가되는 한계치들을 적응적으로 판단하기 위해 사용될 수 있다. 제1패스로부터의 정보는 또한 전반적 모션 변환들의 시간적 평탄화에 사용될 수도 있다. 예를 들어, 그 정보는 시간적 평탄화에 대한 강요된 전반적 최적화의 구속 한계치들을 판단하는 데 사용될 수 있다. 또한, 오프라인 모드의 제1패스 역시 비디오 세그먼트의 장면 바뀜을 검출하는 데 사용될 수 있다.
이 요약은 이하의 상세한 설명에 자세히 기술되는 개념들의 선택을 간략한 형식으로 소개하기 위해 주어진다. 이 요약은 청구된 발명 대상의 주요 특징이나 필수적 특징을 확인하도록 의도되거나 청구된 발명 대상의 범위의 판단을 돕는 것으로서 사용되도록 의도된 것이 아니다. 본 발명의 추가적 특징 및 이점은 첨부된 도면을 참조하여 진행되는 실시예들에 대한 이하의 상세한 설명으로부터 보다 잘 알 수 있을 것이다.
도 1은 계산 수행 계층구조에 따라 이용 가능한 멀티미디어 디지털 신호 처리 요소들을 가장 효과적으로 활용하는 일반 플랫폼의 디지털 비디오 이미지 안정화 기법에 대한 방법의 흐름도이다.
도 2는 도 1의 계층구조 활용 프로세스에 따라 타깃 컴퓨팅 장치의 이용 가능한 멀티미디어 디지털 신호 처리 요소들을 활용하는 세 부분의 디지털 비디오 이미지 안정화 프로세스에 대한 흐름도이다.
도 3은 피라미드 블록 기반 로컬 모션 추정을 위한 비디오 프레임의 다운 샘플링을 예시한 도면이다.
도 4, 5, 6 및 7은 피라미드 블록 기반 로컬 모션 추정을 위한 전형적 비디오 프레임의 처리를 예시한 도면들이다.
도 8은 디지털 비디오 이미지 안정화에 사용되는 전반적 모션 변환의 유사 모델을 포함하는 전반적 모션 변환 모델들을 예시한 도면이다.
도 9는 실시간 모드의 디지털 비디오 이미지 안정화에 사용하기 위한 것과 같이, 손 흔들림으로 인한 떨리는 모션의 전반적 모션 변환을 추정하기 위해 비디오 프레임에 대한 모션 벡터들의 단일 패스 처리를 예시한 흐름도이다.
도 10은 오프라인 모드의 디지털 비디오 이미지 안정화에 사용하기 위한 것과 같이, 손 흔들림으로 인한 떨리는 모션의 전반적 모션 변환을 추정하기 위해 비디오 프레임에 대한 모션 벡터들의 투 패스 처리를 예시한 흐름도이다.
도 11은 디지털 비디오 이미지 안정화 기법들이 실시될 수 있는 컴퓨팅 환경의 블록도이다.
도 12 및 13은 디지털 비디오 이미지 안정화 기법들이 실시될 수 있는 클라우드 컴퓨팅 환경의 블록도이다.
이하의 상세한 설명은 디지털 비디오 이미지 안정화를 제공하기 위한 시스템 및 기법에 관한 것으로, 특히 이용 가능한 멀티미디어 디지털 신호 처리(DSP) 하드웨어 요소들을 효과적으로 활용하면서 일반적 계산 하드웨어 플랫폼 상에서 운영되는 디지털 비디오 이미지 안정화 기법에 관한 것이다. 비디오 이미지 안정화 기법은 핸드헬드 및 휴대형 컴퓨팅 장치, 비디오 카메라, 모바일 전화, 게임 콘솔(가령, 비디오 게임 콘솔 및 텔레비전 세톱박스), 다양한 네트워크 클라이언트 컴퓨터(가령, 퍼스널 컴퓨터, 랩탑, 넷북, 및 태블릿 컴퓨터)뿐 아니라 서버 컴퓨터를 포함하는 다양한 하드웨어 장치들에서 실시될 수 있다. 디지털 비디오 이미지 안정화 기법들은 또한 전용 비디오 캡처 장치 상의 비디오 처리, 단독형 컴퓨터 상의 비디오 처리, 네트워크 클라이언트 컴퓨터 상의 비디오 처리 및 서버 컴퓨터 상의 비디오 처리를 포함하는 다양한 용도 및 계산 상황들에서 사용될 수 있다. 또한, 디지털 비디오 이미지 안정화 기법의 다양한 부분들은 다른 무엇보다 클라이언트/서버, 네트워크 "클라우드" 서비스 또는 피어(peer) 컴퓨팅 구조와 같이 여러 컴퓨팅 장치들 상에서 병렬로 혹은 협업하여 수행될 수 있다. 따라서, 이 기법들은 최종 사용자인 소비자 운영 장치들뿐 아니라, 고객들에게 제공하는 서비스의 일부인 기법들을 제공할 수 있는 서버 컴퓨터들 둘 모두를 포함하는 각종 다양한 전자 및 컴퓨팅 장치들 상에서 구현될 수 있다는 것을 인지하여야 한다.
디지털 비디오 이미지 안정화를 위한 일반 플랫폼 상에서의 멀티미디어 DSP 요소들의 계층적 선택
비디오의 처리, 특히 여기 기술된 디지털 비디오 이미지 안정화 기법들의 처리는 불가피하게 계산 집약적이다. 한편, 디지털 비디오 이미지 안정화 기법들은 서로 크게 차이가 날 수 있는 멀티미디어 처리 하드웨어 요소들의 구성을 가진 다양한 컴퓨팅 장치들 상에서 실시될 수 있다. 보다 나은 가능한 성능 및 품질을 달성하기 위해 여기에 기술된 디지털 비디오 이미지 안정화 기법들의 한 가지 방식은 기법들이 그들이 실행되는 타깃 컴퓨팅 장치를 평가하며 성능, 품질, 전력 소비, 부합성, 및 강건성 중 한 개 이상의 양태들을 고려하는 방식으로 구축된 계층 구조에 따라 이용 가능한 멀티미디어 처리 요소들을 활용하도록 선택한다는 것이다. 이렇게 디지털 비디오 이미지 안정화 기법들이 일반적 동작 플랫폼에 대해 개발되어, 그 기법들이 구현되는 실제 타깃 컴퓨팅 하드웨어의 멀티미디어 처리 능력들을 가장 잘 활용하도록 적응된다.
한 전형적 구현예에서, 이하에 기술되는 디지털 비디오 이미지 안정화 기법들은 동적 링크 라이브러리 파일(DLL)이나 애플리케이션 프로그램 실행 파일과 같이 (이하에 보다 상세히 기술되는) 컴퓨팅 장치 상에서 구현될 실행 가능 프로그램 안에서 구현된다. DLL이나 실행 가능 라이브러리 파일로서 구현될 때, 실행 가능 프로그램이 디지털 비디오 이미지 안정화를 라이브러리 함수들의 집합으로서 구현하며, 실행 가능 프로그램에 의해 함수적으로 구현되는 디지털 비디오 이미지 안정화 기능을 프로그램적으로 활용하기 위해 애플리케이션 프로그램들에 대한 프로그램적 인터페이스를 제공한다. 실행 가능 프로그램은 일반 플랫폼이나 컴퓨팅 환경에서 실행되는데, 이것은 실행 가능 프로그램이 서로 다른 멀티미디어 디지털 신호 처리(DSP) 요소들을 포함할 수 있는 다양한 컴퓨터들 및 컴퓨팅 장치들 상에서 실행될 수 있다는 것이다.
도 1을 참조할 때, 디지털 비디오 이미지 안정화 라이브러리 프로그램은 프로그램이 실행되는 타깃 컴퓨팅 장치 상에서 잠정적으로 이용 가능할 수 있는 다양한 멀티미디어 DSP 요소들을 이용하여 디지털 비디오 이미지 안정화의 비디오 처리를 수행하기 위한 프로그래밍을 포함한다. 그런 다음 그 프로그램은 멀티미디어 활용 계층구조 프로세스(100)를 통해 멀티미디어 DSP 요소들을 가장 잘 활용하도록 적응된다. 이 프로세스(100)의 최초 동작(110)에서, 라이브러리 프로그램은 자신이 설치되며 실행되는 타깃 컴퓨팅 시스템이나 장치의 멀티미디어 DSP 요소들을 평가한다. 라이브러리 프로그램은 시스템 정보를 액세스하고/하거나 하드웨어 요소들의 존재를 조회하기 위해 시스템 정보 조회용 운영체계 서비스에 대해 호출하거나, 레지스트리나 다른 시스템 데이터베이스 안에 기록된 시스템 정보를 검사하거나, 멀티미디어 DSP 요소들과 연관된 프로그래밍 인터페이스들을 호출하거나, 멀티미디어 DSP 요소들에 대한 액세스를 시도하는 등의 방식들을 통해 이러한 평가를 수행할 수 있다.
동작(110)의 평가 결과에 기초하여, 이제 라이브러리 프로그램은 처리 계층구조에 따라 타깃 컴퓨팅 장치 상에서 이용 가능하다고 판단된 멀티미디어 DSP 요소들로부터 선택을 행한다. 도시된 예에서, 라이브러리 프로그램은 먼저 동작들(120-121)에 도시된 것과 같이 타깃 컴퓨팅 장치에서 멀티미디어 DSP에 대해 적응된 어떤 이용 가능한 ASIC 유닛들을 활용하도록 선택한다. 현재 상용가능한 그러한 ASIC 유닛들의 예들에는 인텔에서 나온 비디오 카드(Larrabee(라라비)라는 이름으로 알려짐) 및 Nvidia에서 나온 비디오 카드(Tesla(테슬라)라 명명됨)가 포함된다. 그러한 ASIC 유닛들이 타깃 장치 상에서 전혀 이용 가능하지 않으면, 라이브러리 프로그램은 다음으로, 동작들(130-131)에 도시된 바와 같이 타깃 장치 상의 셰이더(shader) 기능을 가진 어떤 이용 가능한 그래픽 처리 유닛을 활용하도록 선택한다. ASIC이나 GPU 셰이더 요소들이 존재하지 않으면, 라이브러리 프로그램은 고급 멀티미디어 명령어 집합(가령, SSEx 명령어들)을 이용하여 어떤 이용 가능한 멀티코어 프로세서나 중앙 처리 유닛을 활용하도록 선택한다. 마지막으로, 이러한 고성능 멀티미디어 DSP 요소들 중 어느 것도 타깃 장치 상에서 이용 가능하지 않으면, 라이브러리 프로그램은 동작(150)에 도시된 바와 같이 C/C++ 프로그래밍을 사용하여 단일 코어 CPU 상에서 디지털 비디오 이미지 안정화 기법들의 비디오 처리를 수행하는 것으로 후퇴한다. 다른 대안적 구현예들에서, 멀티미디어 DSP 요소들의 다른 계층구조들이 일반 플랫폼의 사용 가능한 컴퓨팅 장치 하드웨어에서 이용 가능할 수 있는 멀티미디어 DSP 요소들의 상술한 성능, 품질, 전력 소비, 부합성, 및 강건성의 양태들에 대한 고려에 기반하여 사용될 수 있다. 그러한 대안적 구현예들은 예시된 계층적 멀티미디어 DSP 활용 프로세스(100)에서 보다 적거나 추가되는 멀티미디어 DSP 요소들의 활용을 포함할 수 있다.
일반 플랫폼 상에서의 디지털 비디오 이미지 안정화
도 2에 예시된 바와 같이, 디지털 비디오 이미지 안정화 기법들은 일반적으로 로컬 모션 추정(210), 손 흔들림으로부터의 비디오 떨림에 상응하는 전반적 모션 변환을 추정하기 위한 모션 벡터 처리(220), 및 비디오 떨림 모션을 보상하기 위한 이미지 워핑(warping)의 세 부분들을 수반하는 주 비디오 처리를 수행한다. 로컬 모션 추정(210) 및 이미지 워핑(230)은 계산 집약적이며, 가장 바람직하게는 도 1에 도시되고 위에서 논의된 어떤 이용 가능한 멀티미디어 DSP 요소들로부터의 선택을 이용하여 수행된다. 예를 들어, 사용중인 GPU 셰이더들을 처리하는데 특히 적합한 로컬 모션 추정(210)의 형식이 라이브러리 프로그램 안에서 구현될 수 있고, 타깃 컴퓨팅 장치가 그 이용 가능한 멀티미디어 DSP 요소들 사이에서 GPU 셰이더 기능을 가질 때 디지털 비디오 이미지 안정화의 로컬 모션 추정 부분을 수행하는데 사용될 수 있다. 한편, 라이브러리 프로그램은 평가된 타깃 컴퓨팅 장치가 자신의 이용 가능한 멀티미디어 DSP 요소들 사이에서 상기 기능을 보유한다고 판단될 때, D3D API 콜(call)을 이용하여 이미지 워핑(230)을 수행하는 기능을 포함할 수 있다. 전반적 모션 변환을 평가하기 위해 로컬 모션 벡터들을 처리하는 두 번째 부분(220)이 전형적 구현예를 통해 CPU 상에서 수행된다.
GPGPU 상의 피라미드 블록 기반 ME
하나의 전형적 구현예에서, 디지털 비디오 이미지 안정화를 위한 라이브러리 프로그램은 (위에서 논의된 프로세스(100)에 의해 타깃 컴퓨팅 장치 상에서 이용 가능하다고 판단될 때) GPU 셰이더에서의 처리에 특히 잘 맞는 도 3-7에 예시된 피라미드 블록 기반 모션 추정 기법을 이용하여 로컬 모션 추정(210)을 구현하는 프로그래밍을 포함한다. 완전 해상도의 비디오 프레임들의 블록들에 대한 로컬 모션을 개별적으로 추정하는 것과 비교할 때, 피라미드 블록 기반 모션 추정 기법 역시 디지털 비디오 이미지 안정화를 위한 비디오 프레임들의 전체적 전반적 모션을 추정하는데 잘 맞는 비디오 프레임의 전반적 모션을 강조한다.
피라미드 블록 기반 모션 추정은 비디오의 각 프레임에 대해 기준 프레임에 상대적인 모션 추정을 수행한다. 일반적으로 기준 프레임은 비디오 시퀀스 내에서 어떤 연속 프레임(가령, 바로 전이나 뒤의 프레임)이다. 다른 대안으로서, 모든 세 번째 프레임이 비디오의 다음 두 프레임들의 기준으로 사용될 수 있고, 아니면 기준 프레임에 대한 다른 선택이 이루어질 수 있다. 모션 추정을 위해 비디오 프레임이 블록들의 규칙적 그리드(regular grid)로 나누어질 수 있고, 모션 추정은 기준 프레임 안의 근접 매칭 이미지 콘텐츠에 대해 상대적인 비디오 프레임의 각 블록의 모션 벡터나 변위를 선출한다.
피라미드 블록 기반 모션 추정은 컴퓨팅 장치의 GPU 상의 다운 샘플링 셰이더를 사용하여 비디오 프레임 및 그 기준 프레임 모두의 해상도를 반복적으로 절반씩 다운 샘플링하는 것으로 시작된다. 도 3에 도시된 예에서, 비디오 프레임 및 기준 프레임은 세 번에 걸쳐 절반씩 다운 샘플링되어, 완전 해상도, 1/2 해상도, 1/4 해상도, 및 1/8 해상도의 비디오 프레임 및 기준 프레임 버전들을 산출한다. 비디오 프레임 및 기준 프레임은 해상도가 고정 횟수로 다운 샘플링되거나, 컴퓨팅 장치의 이용 가능한 이미지 버퍼 공간 및 처리 자원들에 따라 비디오 프레임의 크기 및 원래 해상도에 따른 가변적 횟수로 다운 샘플링될 수 있다. 다른 대안으로서, 비디오 프레임 및 기준 프레임은 도 3에 도시된 예보다 적거나 많은 횟수로 다운 샘플링될 수도 있다. 도 3에 예시된 예는 단지 예시적인 것으로, 디지털 비디오 이미지 안정화 기법에 의해 처리되는 실제 비디오 프레임들은 일반적으로, 도시된 예보다 많은 수의 픽셀들과 높은 원래 해상도를 가질 수 있다는 것을 알아야 한다.
비디오 프레임 각각의 해상도에 대해, 피라미드 블록 기반 모션 추정은 비디오 프레임을 블록들의 그리드로 분할한다. 각각의 해상도마다 동일한 크기의 블록이 사용된다. 16x16 또는 8x8 픽셀들과 같이 상대적으로 큰 블록 크기가 사용된다. 이렇게 최저 해상도 이미지의 각각의 블록이 차상위 해상도 이미지 내 상응하는 위치에서 같은 블록 크기로 된 4 블록들로 분리될 것이며, 이것은 최저 해상도 이미지 내 블록들의 피라미드 구조나 계층 관계를 상위 해상도 이미지들 내 상응하는 위치에 있는 것들로 효과적으로 제공한다. 예시의 목적으로, 1/8 해상도 이미지의 상위 좌측 블록에 대해 피라미드 구조 관계에 있는 비디오 프레임의 상위 해상도 버전(가령, 1/1, 1/2 및 1/4 해상도) 내 블록들이 도 3의 굵은 선으로 된 경계 안에서 보여진다.
다음으로, 피라미드 블록 기반 모션 추정은 기준 프레임 안에서 매치하는 이미지 콘텐츠의 위치를 찾기 위해 전체 기준 프레임에 대해 최저 해상도 이미지 내 각각의 블록에 대한 절대 차이의 합(SAD(sum of absolute difference))에 기반하는 완전 검색(full search)을 수행한다. 이것은 기준 프레임 내 매치하는 이미지 콘텐츠로부터의 변위에 해당하는 최저 해상도 비디오 프레임 내 각 블록의 로컬 이미지 벡터를 도출한다. 이러한 완전 검색은 도 4에 도시된 것과 같이 비디오 프레임 및 기준 프레임의 최저 해상도 버전에서만 수행된다.
도 5-7에 예시된 바와 같이, 피라미드 블록 기반 모션 추정은 이제, 원래 해상도의 비디오 프레임에 이르기까지 기준 프레임에 대해 상대적인 비디오 프레임의 각각의 연속적 상위 해상도 버전에서 정밀 모션 추정 검색을 수행한다. 앞서 언급한 바와 같이, 하위 해상도 이미지의 각각의 블록은 비디오 프레임의 차상위 해상도 버전의 상응하는 위치에서 네 블록들로 분리된다. 하위 해상도 이미지 내 블록에 대한 모션 추정 검색을 통해 산출되는 모션 벡터가 비디오 프레임의 차상위 해상도 버전에서 피라미드 구조의 네 블록들 각각에 대한 정밀(refinement) 모션 추정 검색들의 시작점으로서 사용된다. 차상위 해상도 비디오 프레임 안의 네 개의 대응 블록들에 대한 하위 해상도 비디오 프레임 안의 블록들의 피라미드 구조 관계를 이용하는 그 정밀 검색은 이웃하는 블록들 사이의 모션 추정 산출의 일관성을 강조한다. 비디오 프레임의 각각의 연속되는 상위 해상도 버전에 대해 정밀 검색이 반복됨에 따라, 이웃들 사이의 이러한 강조된 일관성은 이하에 논의되는 전반적 모션 변환 추정에 근거로 삼을 원래 해상도 이미지 안의 블록들에 대한 로컬 모션 벡터들의 보다 일관된 집합을 제공한다.
GPU 셰이더가 원래 비디오 프레임 해상도에서의 로컬 모션 추정을 마치면, 원래 해상도의 비디오 프레임의 각각의 블록에 대한 차이들의 결과의 합 및 변동과 함께 모션 벡터가 전반적 모션 변환 추정을 위해 CPU로 복사된다.
전반적 모션 변환 추정을 위한 모션 벡터 처리
도 2를 다시 참조하면, 한 전형적인 구현예에서 디지털 비디오 이미지 안정화 프로세스(200) 중 전반적 모션 변환을 추정하기 위한 모션 벡터 처리 부분(220)이 컴퓨팅 장치의 중앙 처리 유닛(CPU) 상에서 수행된다. 디지털 비디오 이미지 안정화 기법들은 비디오 재생, 비디오 스트리밍 또는 전송 중 실시간 처리를 위해 적합한 모션 벡터 처리의 단일 패스 모드를 이용할 수 있다. 다른 대안으로서, 높아진 계산 시간의 댓가로 보다 우수한 비디오 안정화 품질을 제공하는 모션 벡터 처리의 투 패스 모드가 사용될 수도 있다. 따라서 투 패스 모드는 실시간 비디오 재생의 시간적 한계를 겪지 않고 높은 비디오 안정화 품질이 요구되는 오프라인 비디오 처리 상황들에 보다 적합할 수 있다.
도 8은 변환 유사, 유클리드, 프로젝트 및 아핀(affine) 모션 변환 모델들을 포함하여, 손 흔들림으로부터의 떨리는 비디오 모션을 추정하는데 사용될 수 있을 다양한 전반적 모션 변환 모델들을 예시한다. 여기 나타낸 한 전형적 구현예에서, 모션 벡터 처리는 이하의 수학식 1에 보여진 것과 같은 변환, 회전 및 줌 파라미터들을 가지고 유사 전반적 변환 모델을 사용한다.
Figure pct00001
여기서 xy는 원래 위치이고, x'y'는 변환된 위치이며, s, β, tx, ty는 각기 줌, 회전 및 변환 파라미터들이다.
일반적으로, 대부분의 사용자들은 변환, 회전 및 줌에 대해서만 흔들리는 모션 효과를 경험할 것이다. 따라서 유사 모션 변환 모델은 카메라 조작자의 손 흔들림을 모델링하기 위해 비디오 안정화의 적용을 잘 맞춘다. 그러나 전반적 모션 변환 추정의 다른 대안적 구현예들은 손 흔들림으로부터의 비디오 떨림에 대한 추가되거나 더 적은 양태들을 모델링하는 다른 모델들을 사용할 수도 있다.
실시간 모드의 원 패스 모션 벡터 처리
도 9는 실시간 처리 모드에 적합한 비디오 프레임의 전반적 모션 변환을 추정하기 위한 원 패스 모션 벡터 처리(900)의 전형적 구현예를 예시한다. 상술한 피라미드 블록 기반 모션 추정을 통해 산출되는 것들과 같이, 비디오 시퀀스 내 한 장면의 각각의 비디오 프레임에 대한 모션 벡터들로 모션 벡터 처리가 적용된다. 이 전형적 구현예는 동작(910)에서 비디오 프레임에 대한 모션 벡터들의 정보를 수신함으로써 시작된다. 또한, 전형적 모션 벡터 처리(900)는 모션 벡터 추정 중에 산출된 절차 차이들의 합(SAD) 값에 해당하는 기준 프레임 내 모션 벡터 위치에서 매치하는 블록의 것에 대해 상대적인 각각의 블록에 대한 잔차 값의 정보를 또한 수신한다. 또한 전형적 모션 벡터 처리(900)는 역시 모션 벡터 추정 중에 산출될 수 있는 비디오 프레임 내 원래 블록의 이미지 콘텐츠의 변동 값을 수신한다.
동작(920)에서, 원 패스 모션 벡터 처리(900)는 전반적 모션 변환 추정에 근거로 삼을 보다 신뢰할 수 있는 모션 벡터들의 집합을 선택한다. 한 전형적 구현예에서, 원 패스 모션 벡터 처리(900)는 세 가지 규칙들에 기반하는 모션 벡터들을 선택한다. 먼저, 화상 경계들 상의 모션 벡터들은 신뢰할 수 없을 것이므로 선택되지 않는다. 예를 들어, 프레임에서 프레임까지의 카메라 모션 후, 경계 블록들의 화상 콘텐츠들은 부분적으로 누락될 수 있다. 둘째, 블록의 모션 보상 이후의 큰 잔차 에러(가령, 블록에 대한 SAD 값이 큼)는 신뢰할 수 없는 모션 추정을 나타낼 수 있다. (블록에 대한 모션 추정 도중 산출된 큰 SAD 값으로 나타낸 바와 같이) 큰 모션 보상 잔차들을 가진 블록들의 모션 벡터들 역시 그에 따라 선택되지 않는다. 셋째, 낮은 최초의 변동 값을 가진 블록들에 대한 모션 추정은 신뢰할 수 없을 것이므로, 그러한 블록들의 모션 벡터들 역시 선택되지 않는다. 다른 대안적 구현예들에서, 처리(900)는 신뢰성에 대해 더 적거나 더 추가되는 기준을 모션 벡터들의 집합 선택에 대한 근거로 삼을 수 있다.
동작(930)에서, 모션 벡터 처리(900)는 동작(920)에서 선택되는 모션 벡터들에 기초하여 각각의 프레임에 대한 전반적 모션 변환의 추정치를 산출한다. 한 전형적 구현예에서, 위에서 논의된 유사 전반적 모션 모델에 대한 전반적 모션 변환이 추정된다. 다른 대안으로서, 또 다른 모션 모델에 기반하여 전반적 모션 변환이 추정될 수 있다. 전반적 모션 변환을 추정하기 위해, 모션 벡터 처리(900)는 아웃라이어들인 모션 벡터들을 검출하고 제거하기 위해 RANSAC(Random Sample Consensus) 방법을 이용한다. 특히, RANSAC 방법에서는 동작 920에서 선택된 모션 벡터들의 집합으로부터 두 개의 모션 벡터들이 무작위로 선택된다. 이제 모션 벡터 처리는 그 두 개의 무작위로 선택된 모션 벡터들에 대한 s, β, tx, ty 파라미터들의 값들을 판단하기에 적합한 최소 평균 제곱 에러(LMSE(Least Mean Square Error))를 사용하여 수학식 1을 푼다. 그런 다음 RANSAC 방법은 역시 전반적 모션 변환 수학식의 파라미터들에 대한 그 해와 일치되는 여러 다른 모션 벡터들을 판단한다. RANSAC 방법은 그 해와 일치되는 모션 벡터들의 최대 그룹이 발견될 때까지 다른 모션 벡터 쌍들의 무작위 선택을 반복한다. 이것은 아웃라이어들이라고 간주되거나 전반적 모션 변환의 파라미터들에 대한 일치된 LMSE 해와 불일치하는 모션 벡터들을 제거한다.
동작(940-944)에서, 모션 벡터 처리는 전반적 모션 변환을 위한 파라미터들의 추정치를 줌, 회전 및 변환 모션 각각에 대한 두 개의 한계치들 하에 놓음으로써 에러 검출 및 정정을 수행한다. 이 흐름도에서, 두 한계치들은 하한치(T 1x ) 및 상한치(T 2x )로서 표시되고, 여기서 T 1x <T 2x 이고, x는 줌, 회전 또는 변환을 나타낸다. 떨리는 비디오 모션을 나타내고 통계적 확률을 떨리는 비디오 모션을 대표하는 전반적 모션이 된다고 나타내는 비디오들의 대표적 큰 샘플에 대한 실험을 통해, 두 한계치들이 경험적으로 도출될 수 있다. 동작(940-944)에서 보여진 것과 같이, 전반적 변환 파라미터들(s, β, tx, ty)이 그들의 하한치보다 작으면, 동작(930)에서 추정된 바와 같은 전반적 모션 변환이 사용된다. 그렇지 않고, 줌, 회전 및 변환에 대한 전반적 모션 변환 파라미터들이 하한치를 초과하지만 상한치보다 작은 상태이면, 모션 벡터 처리는 동작(943)에 보여진 바와 같이 전반적 모션 변환을 하한치로 제한한다. 동작(930)에서 추정된 전반적 모션 변환이 상한치를 초과하면, 전반적 모션 변환은 리셋된다. 따라서 이 동작들은 흔들리는 손으로부터 나온 떨리는 비디오 모션의 특징일 수 있는 과도한 전반적 모션을 검출하고, 그런 다음 과보상으로부터 정정을 행하도록 의도된다.
모션 벡터 처리(900)의 마지막 동작(950)은 시간적 평탄화를 전반적 모션 변환에 적용한다. 한 전형적 구현예에서, 한 장면의 비디오 프레임들의 시퀀스에 대한 전반적 모션 변환 추정치들은 이하의 수학식 2에 보여진 것과 같이 31-탭 가우시안 필터에 의해 필터링된다.
Figure pct00002
표기 (W t -1 W t -2 ... W t -15 )- 1는 역행렬을 나타낸다. 수학식 2에서, Wt'는 시점 t에서 평탄화 이후의 전반적 모션 변환이며, W t -i 는 시점 (t-i)에서 평탄화 이전의 전반적 모션 변환이다. C t -i 값들은 가우시안 필터 계수들이고, I는 단위 행렬이다. 실시간 비디오 재생이나 트랜스코딩 상황들에서, 이러한 필터 크기는 15 개 화상들의 지연을 부과한다. 대안적 구현예들은 더 길거나 더 짧은 필터 크기를 사용할 수 있으며, 또 다른 대안으로서 적응적 필터를 포함하는 다른 타입의 필터를 사용할 수 있다.
오프라인 모드의 투 패스 모션 벡터 처리
전반적 모션 변환의 추정은 다른 대안으로서 투 패스 모션 벡터 처리(도 10에 도시된 전형적인 투 패스 모션 벡터 처리(1000)와 같은 것)를 이용하여 수행될 수 있으며, 두 패스 모션 벡터 처리는 훨씬 증가된 계산 시간을 댓가로 하지만 보다 우수한 품질의 비디오 이미지 안정화를 제공한다. 투 패스 처리는 또한 일반적으로 사용자에게 보다 덜한 편리성을 부과하는데, 이는 사용자가 결과들을 보기 위해 비디오 안정화 처리의 끝까지 기다려야 하기 때문이다. 증가된 계산 부하로 인해, 투 패스 모션 벡터 처리는 통상적으로 오프라인 모드로서 실행되는 것이 더 알맞다. 모션 벡터 처리의 투 패스 구성은 에러 검출 및 정정 부분, 및 모션 벡터 처리의 시간적 평탄화 부분의 보다 나은 최적화를 허용한다. 제1패스에서 모션 벡터 처리는 처리의 상기 부분들에 사용되고 그런 다음 제2모션 벡터 처리 패스에 적용될 수 있는 추가 정보를 모을 수 있다.
도 10의 동작(1005)에서 도시된 것과 같이, 투 패스 모션 벡터 처리(1000)는 제1패스 도중 비디오 세그먼트에 대한 장면 전환 검출을 수행한다. 장면 전환 검출은 종래에 알려진 방법들을 이용하여 수행될 수 있다. 그런 다음 동작 1010에서, 투 패스 모션 벡터 처리(1000)는 도 9의 단일 패스 모션 벡터 처리(900)의 동작들(910, 920 및 930)과 동일한 동작들과 같은 것을 적용함으로써, 제1패스 동안 장면의 각각의 비디오 프레임에 대한 전반적 모션 변환의 추정치들을 도출한다. 이 제1패스에서는 단지 전반적 모션 변환의 그러한 추정치들이 얻어져서, 제2패스에서 전반적 모션 변환 추정치들을 보다 최적화하기 위한 통계적 정보를 산출하도록 한다. 그에 따라, 제1패스의 전반적 모션 추정치들은 떨리는 비디오 모션을 보상하기 위한 비디오 이미지 안정화 처리(200)의 이미지 워핑(230)에 직접 사용되지 않는다. 대신, 동작(1020)에서, 투 패스 모션 벡터 처리(1000)가 비디오 세그먼트의 각각의 장면 상의 모든 프레임들에 걸쳐 전반적 모션 변환의 변환, 회전 및 줌 파라미터들의 최소 및 최대값들, 및 확률 분포들(가령, s min , s max , β min , β max , t xmin , t xmax , t ymin , t ymax p(s), p(β), p(tx), 및 p(ty))을 산출한다. 다른 대안으로서, 확률 통계치들이 비디오 세그먼트에 대해 개별 장면마다가 아닌 전체로서 얻어질 수 있다.
각각의 장면에 대한 파라미터들의 이러한 경험적 확률 분포에 기반하여, 투 패스 모션 벡터 처리(1000)가 동작(1030)에서 각각의 장면 내 전반적 모션 변환 파라미터들(s, β, tx, ty) 각각에 대한 하한치 및 상한치(T1 x 및 T2 x )를 판단한다. 예를 들어, 이 하한치 및 상한치는 소정 확률 문턱치들 p1 및 p2에 일치하도록 선택될 수 있다. 일례로서, 확률 문턱치들 p1 및 p2는 각기 95%와 98%이다. 즉, 장면에 대해 제1패스에서 관찰된 파라미터 값들의 95%는 한계치 T1 x 안에 있고, 관찰된 파라미터 값들의 98%는 상한치 T2 x 밑에 있다. 대안적 구현예들에서, 투 패스 모션 벡터 처리는 다른 확률 문턱치들이나 어떤 다른 경험적 확률 기반 기준에 기반하여 한계치들을 판단할 수 있다. 또한, 하한치 및 상한치가 고정 한계치들로 정해질 수도 있다. 도 9의 단일 패스 모션 벡터 처리(900)와 비교할 때, 비디오의 경험적 확률 통계에 기반하는 이러한 파라미터 한계치들(T1 x 및 T2 x )의 설정은 전반적 모션 변환에 적용되는 에러 정정 및 검출이 비디오의 특정 콘텐츠에 적응될 수 있게 한다.
동작(1030)에서 투 패스 모션 벡터 처리(1000)는 이제 모션 벡터 처리의 제2패스를 수행한다. 이러한 제2패스 중에, 처리(1000)는 단일 패스 모션 벡터 처리(900)의 동작들(910, 920, 930 및 940-944)에서 수행된 것과 같은 처리를 수행한다. 이 제2패스의 동작들(940-944)에 적용되는 한계치들(T1 x 및 T2 x )에 대해, 투 패스 프로세스는 제1패스에서 얻어졌던 비디오의 확률 통계치들에 기반하여 판단된 한계치들을 사용한다. 이러한 한계치들이 주 비디오의 콘텐츠에 적응되므로, 두 패스 모션 벡터 처리(1000)는 그러한 적응적 한계치들을 사용하여 보다 나은 품질의 에러 검출 및 정정을 수행할 수 있을 것이다.
두 패스 모션 벡터 처리는 또한, 비디오 세그먼트에 대해 전체적으로 시간적 평탄화를 역시 수행함으로써 (단일 패스 모션 벡터 처리와 비교할 때) 보다 우수한 품질의 디지털 비디오 이미지 안정화를 달성할 수 있다. 두 패스 모션 벡터 처리(1000)의 한 전형적인 구현예에서, 그 처리는 단일 패스 모션 벡터 처리의 슬라이딩 윈도우(sliding window) 접근법 대신, 구속된 전반적 최적화를 이용하여 시간적 평탄화를 수행한다. 그러한 구속된 전반적 최적화의 일례는 과평탄화(over-smooting)에 대해 N이 [10, 15]의 범위 안에 있는 값일 수 있을 때, 시간적 평탄화를 위한 상한치로서, N 개의 비디오 프레임들에 대한 전반적 모션 변환들을 평균한 것으로부터 과평탄화된 전반적 모션 변환들의 제한치를 판단하는 것을 포함한다. 그런 다음 그 과평탄화 제한치 밑에서 컨벡스(convex) 최적화가 수행된다. 한 전형적 구현예에서 타깃 함수 예컨대 한 타깃 함수는 다음과 같이 특정될 수 있다.
Figure pct00003
타깃 함수의 수학식 3에서, 제1항은 최종 평탄화 변환 W j 가 윈도우 안에서 서로 다른 가중 계수들 C i 를 가지는 최초의 변환 및 그 이웃 변환들 W oi 와 유사해야 한다는 것을 의미한다. 두 번째 항은 최종 평탄화 변환 W j 이 가중치 ρ를 가진 제한치로서 과평탄화된 W si 와 유사해야 한다는 것을 의미한다. 값 D는 거리 측정 메트릭이며, 이것은 W j 와 W oi 를 이용한 네 개의 이미지 코너들의 변환 좌표들 사이의 거리일 수 있다. 컨벡스 최적화는 타깃 함수를 최소화하기 위해 적용될 수 있다.
전반적 모션 변환을 이용한 이미지 워핑( Warping )
도 2를 다시 참조할 때, 디지털 비디오 이미지 안정화 프로세스(200)는 마지막으로, 단일 패스 또는 투 패스 모션 벡터 처리(220)를 이용하여 도출된 전반적 모션 변환들에 기초하여 이미지 워핑(230)을 수행한다. 이미지 워핑은 GPU D3D API들 및/또는 맞춤화된 바이큐빅 버텍스 셰이더(bi-cubic vertex shader)를 이용하여 떨리는 비디오 모션으로 인한 전반적 모션 변환의 추정치로부터 반대 방향으로 이미지 워핑을 적용하도록 함으로써 GPU 안에서 간단하게 수행될 수 있다. 이미지 워핑을 허용하도록 비디오 프레임의 경계들에서 충분한 비디오 콘텐츠를 제공하기 위해, 비디오 프레임이 한 전형적 구현예로서 경계들에서 약 τ% 정도 잘라내어지는데, 이것은 원 패스 처리 모드에서 통상적으로 10%일 수 있고 두 패스 처리 모드에서는 상이한 장면들에 대해 가변적인(적응적인) 백분율일 수 있다. 이것은 디스플레이 포트가 이미지 워핑을 통해 비디오 프레임의 콘텐츠 안에서 이동될 수 있게 하고, 그런 다음 출력할 이미지 안정화된 비디오를 형성한다.
모션 벡터 처리의 동작(944)으로부터 이해할 수 있는 바와 같이, 전반적 모션이 단순히 흔들리는 손에 기인할 수 있을 떨리는 비디오 모션의 양을 초과할 때, 추정된 전반적 모션 변환은 간단히 리셋된다. 이런 식으로, 손 흔들림으로부터의 떨림에 대한 한계 특성을 초과하는 전반적 비디오 모션에 대해서는 아무 이미지 워핑도 적용되지 않는다. 대신 비디오 프레임은 손 흔들림에 대한 아무 보상도 없이 그 실질적 모션으로 재생된다.
전형적 컴퓨팅 환경
도 11은 기술된 실시예, 기법, 및 기술들이 구현될 수 있는 알맞은 컴퓨팅 환경(1100)의 일반화된 예를 도시한다. 예를 들어, 컴퓨팅 환경(1100)은 도 2의 디지털 비디오 이미지 안정화 프로세스가 실행되는 컴퓨팅 장치들(가령, 컴퓨터 서버, 퍼스널 컴퓨터, 랩탑 또는 다른 컴퓨팅 장치) 중 하나일 수 있다.
기술이 다양한 범용 혹은 특수용 컴퓨팅 환경에서 구현될 수 있으므로, 이 컴퓨팅 환경(1100)이 기술의 사용 범위나 기능에 관한 어떤 한계를 제시하는 것으로 의도된 것은 아니다. 예를 들어, 개시된 기술은 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 혹은 프로그래머블 가전기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성들을 이용해 구현될 수도 있다. 개시된 기술은 또한, 작업들이 통신 네트워크를 통해 링크되는 원격 처리 장치들에 의해 수행되는 분산형 컴퓨팅 환경 안에서 실시될 수 있다. 분산형 컴퓨팅 환경에서 프로그램 모듈들은 로컬 및/또는 원격 컴퓨터 저장 장치들 모두에서 위치될 수 있다.
도 11을 참조할 때, 컴퓨팅 환경(1100)은 적어도 한 개의 중앙 처리 유닛(1110) 및 메모리(1120)를 포함한다. 도 11에서 이러한 가장 기본적인 구성(1130)은 점선 안에 포함된다. 중앙 처리 유닛(1110)은 컴퓨터 실행 가능 명령어들을 실행하며 실제 혹은 가상의 프로세서일 수 있다. 멀티 처리 시스템에서, 멀티 처리 유닛들은 처리 능력을 높이기 위하여 컴퓨터 실행 가능 명령들을 실행하고 그에 따라 다중 프로세서들이 동시에 실행될 수 있다. 메모리(1120)는 휘발성 메모리(가령, 레지스터, 캐시, RAM), 비휘발성 메모리(가령, ROM, EEPROM, 플래시 메모리 등), 또는 그 둘의 어떤 조합일 수 있다. 메모리(1120)는 예컨대 여기에 기술된 기술들을 구현할 수 있는 소프트웨어(1180)를 저장한다.
중앙 처리 유닛(1110)외에, 컴퓨팅 환경은 디지털 신호 처리 DSP나 멀티미디어 요소들(1115)과 같은 다른 처리 자원들을 포함할 수 있다. DSP 요소들(1115)은 도 1과 연관하여 위에서 논의된 일반 플랫폼 라이브러리 구현예에 의한 디지털 비디오 이미지 안정화 프로세스에 대해 바람직하게 활용될 수 있는 자원들 중 어느 하나일 수 있다. 예를 들어, DSP 요소들은 멀티미디어 DSP ASIC 유닛들, GPU 셰이더 유닛들, 멀티코어 CPU, CPU에 대한 고급 멀티미디어 명령어 집합들 등을 포함할 수 있다.
컴퓨팅 환경은 추가적 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(1100)은 스토리지(1140), 한 개 이상의 입력 장치들(1150), 한 개 이상의 출력 장치들(1160), 및 한 개 이상의 통신 연연관들(1170)을 포함한다. 버스, 제어기, 또는 네트워크 같은 상호연결 메커니즘(미도시)이 컴퓨팅 환경(1100)의 구성요소들을 상호 연결한다. 통상적으로, 운영체계 소프트웨어(미도시)가 컴퓨팅 환경(1100)에서 실행되는 다른 소프트웨어의 운영 환경을 제공하고, 컴퓨팅 환경(1100)의 구성요소들의 활동들을 조정한다.
스토리지(1140)는 착탈형 또는 비착탈형일 수 있고, 정보를 저장하는데 사용될 수 있고 컴퓨팅 환경(1100) 안에서 액세스될 수 있는 마그네틱 디스크, 마그네틱 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 어떤 다른 매체를 포함한다. 스토리지(1140)는 여기에 기술된 기술들을 구현할 수 있는 소프트웨어(1180)의 명령어들을 저장한다.
입력 장치(들)(1150)은 키보드, 키패드, 마우스, 펜, 또는 트랙볼 같은 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(1100)에 입력을 제공하는 다른 장치일 수 있다. 오디오에 있어서, 입력 장치(들)(1150)은 아날로그나 디지털 형식의 오디오 입력을 수용하는 사운드 카드나 그와 유사한 장치이거나, 컴퓨팅 환경(1100)에 오디오 샘플들을 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(1160)은 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(1100)으로부터 출력을 제공하는 다른 장치일 수 있다.
통신 접속부(들)(1170)은 통신 매체(가령 접속 네트워크)를 통해 다른 컴퓨팅 개체와 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행 가능 명령어, 압축된 그래픽 정보, 또는 변조된 데이터 신호로 된 다른 데이터 같은 정보를 전달한다.
컴퓨터 판독가능 매체는 컴퓨팅 환경(1100) 안에서 데이터 및 프로세서 명령어들이 액세스될 수 있는 어떤 이용 가능한 매체이다. 한정하는 것이 아닌 예로서, 예시된 컴퓨팅 환경(1100) 안에서 컴퓨터 판독가능 매체는 메모리(1120) 및/또는 스토리지(1140)를 포함한다. 용이하게 이해할 수 있다시피, 컴퓨터 판독가능 저장 매체라는 용어는 메모리(1120) 및 스토리지(1140)와 같은 데이터 및 프로그램 명령어들, 그리고 변조되지 않은 신호들 자체의 저장을 위한 매체를 포함한다.
전형적인 클라우드 컴퓨팅 네트워크 환경
도 12 및 13은 상술한 디지털 비디오 이미지 안정화가 실시될 수 있는 클라우드 컴퓨팅을 위한 알맞은 네트워킹 환경(1200)의 일반화된 예를 예시한다.
전형적인 클라우드 컴퓨팅 네트워크 환경(1200)에서, 비디오 공유, 저장 또는 배포를 위한 다양한 타입의 컴퓨팅 서비스들(가령, 비디오 공유나 소셜 네트워킹 사이트들)이 클라우드(1210)라 일컫는 네트워크 액세스 가능 컴퓨팅 및 저장 자원들의 모음을 통해 제공된다. 예를 들어 클라우드(1210)는 중앙 집중식으로 위치되거나 분산된 위치들에 있을 수 있고, 인터넷과 같은 네트워크를 통해 연결되는 다양한 유형의 사용자들 및 장치들로 클라우드 기반 서비스들을 제공하는 서버 컴퓨팅 장치들의 모음을 포함할 수 있다.
전형적인 환경(1200)에서, 클라우드(1210)는 사용자 컴퓨팅 장치들을 위한 서비스들(다른 예들 가운데에서 비디오 저장, 비디오 공유 또는 소셜 네트워킹 서비스 같은 것)을 제공한다. 서비스는 클라우드(1210) 안에에 클라우드 컴퓨팅 서비스 제공자들을 통하거나, 온라인 서비스의 다른 제공자들을 통해 제공될 수 있다. 예를 들어, 클라우드 기반 서비스들은 비디오 저장 서비스, 비디오 공유 사이트, 소셜 네트워킹 사이트, 또는 연결된 장치들(1320A-N) 상에서 다른 이들이 보도록 사용자를 소스로 하는 비디오가 배포되게 하는 다른 서비스들을 포함할 수 있다.
사용자는 비디오 캠코더, 비디오 모드를 가진 디지털 카메라, 모바일 전화, 및 핸드헬드 컴퓨팅 장치들과 같이 비디오를 기록하는 다양한 모바일 비디오 캡처 장치들을 이용할 수 있다. 사용자는 직접적으로(가령, 전기통신 네트워크의 데이터 전송 서비스를 이용하여), 혹은 먼저 비디오를 랩탑, 퍼스널 컴퓨터 또는 다른 네트워크 연결 컴퓨팅 장치와 같은 로컬 컴퓨터(1230)로 먼저 전송함으로써 클라우드(1210) 상의 어떤 서비스로 비디오를 업로드할 수 있다.
도 13에 도시된 바와 같이, 클라우드 기반의 비디오 저장이나 공유 사이트로부터 다양한 스크린 디스플레이 사이즈 팩터들(1320A-N)을 가질 수 있는 연결된 다른 컴퓨터 장치들로 비디오가 나중에 다운로드되거나, 스트리밍되고/되거나 그렇지 않으면 재생될 수 있다. 연결된 장치(1320A)는 퍼스널 컴퓨터, 랩탑, 태블릿 등의 네트워크 연결 장치들 상에서 이용될 수 있는 것과 같이, 중간 크기 디스플레이 스크린을 가진 장치를 나타낸다.
연결된 장치(1320B)는 휴대성이 높도록 설계된 폼 팩터들(가령, 소형 스크린)을 가진 디스플레이 스크린이 있는 장치를 나타낸다. 예를 들어 연결 장치(1320B)는 모바일 전화기, 스마트 폰, PDA 등일 수 있다.
연결 장치(1320N)는 대형 시청 스크린을 가진 연결 장치를 나타낸다. 예를 들어 연결 장치(1320N)는 텔레비전 스크린(가령, 스마트 텔레비전)이나, 텔레비전이나 비디오 프로젝터(가령, 세톱박스나 게임 콘솔)나 유사 비디오 디스플레이 출력을 가진 다른 장치들로 비디오 출력을 제공하는 다른 장치일 수 있다.
예시된 클라우드 컴퓨팅 네트워크 환경(1200)에서, 디지털 비디오 이미지 안정화는 원하는 사용 상황에 따라 묘사된 다양한 장치들에 의해 비디오 공유, 저장 및 배포의 다양한 단계들에서 구현되고 수행될 수 있다. 한 전형적인 상황에서, 디지털 비디오 이미지 안정화는 로컬 컴퓨터(1230) 상의 소프트웨어에서 구현되고, 비디오가 초기에 로컬 컴퓨터로 전송될 때나 클라우드 기반 서비스로 업로드될 때 적용된다. 다른 상황에서, 디지털 비디오 이미지 안정화는 클라우드 안에서 구현되며, 비디오가 클라우드로 업로드되고 그 안에 저장될 때 그 비디오에 적용된다. 다른 상황에서, 디지털 비디오 이미지 안정화는 클라우드 컴퓨팅 서비스들에 의해 구현되고, 비디오가 재생되고 다른 연결 장치나 서비스로 전송되거나 배포될 때 적용된다. 또 다른 상황에서, 디지털 비디오 이미지 안정화는 클라우드 컴퓨팅 서비스들에 의해 구현되고, 알맞은 해상도로 표현하기 위해 비디오를 트랜스코딩할 때나 비디오가 보여지는 연결 장치를 위해 알맞은 전송 대역폭으로 스트리밍될 때 적용된다. 또 다른 상황에서, 디지털 비디오 이미지 안정화는 재생 중인 연결 장치 상에서 수행될 수 있다.
전형적 대안들 및 조합들
여기에 기술된 방법들 중 어느 하나는 그러한 방법을 수행(가령, 컴퓨팅 장치가 수행할 수 있게)하기 위한 컴퓨터 실행 가능 명령어들을 포함하는(가령, 가지거나 저장하는) 한 개 이상의 컴퓨터 판독가능 매체(가령, 스토리지 또는 다른 유형 매체)를 통해 수행될 수 있다. 동작은 완전히 자동적이거나, 반자동적이거나, 수동적 개입을 수반할 수 있다.
상세한 설명 및 첨부된 도면에 우리의 쇄신사항에 대한 원리들이 기술되고 도시되었지만, 그러한 원리들에서 벗어나지 않고 여러 실시예들의 배열 및 세부사항에 있어 수정이 이루어질 수 있다는 것을 알 수 있을 것이다. 여기에 기술된 프로그램, 프로세스 또는 방법들은 다르게 지시되지 않는 한 어떤 특정한 유형의 컴퓨팅 환경과도 연관되거나 국한되지 않는다는 것을 알아야 한다. 다양한 유형의 범용 또는 특수용 컴퓨팅 환경은 여기 기술된 가르침에 따른 동작들을 수행하거나 그 동작들과 함께 사용될 수 있다. 소프트웨어를 통해 보여진 실시예들의 구성요소들은 하드웨어를 통해 구현될 수 있고, 그 반대의 경우 역시 성립한다.
본 발명의 원리가 적용될 수 있는 많은 가능한 실시예들을 감안하여, 이하의 청구범위 및 그 균등물의 범위 및 사상 내에 들어올 수 있는 모든 실시예들을 우리의 발명으로서 청구한다.

Claims (15)

  1. 디지털 비디오 안정화 방법으로서, 상기 방법은 컴퓨팅 장치 상에서 단계를 수행하는 것을 포함하되, 상기 단계는
    상기 컴퓨팅 장치 상에서 다양한 멀티미디어 디지털 신호 처리(DSP) 요소 중 어느 것이 이용 가능한 지를 판단하기 위해 상기 컴퓨팅 장치를 평가하는 단계,
    상기 평가의 결과로부터, 디지털 비디오 안정화의 성능을 적어도 포함하는 기준에 의해 멀티미디어 DSP 요소를 정렬하기 위한 계층적 구조에 따른 상기 디지털 비디오 안정화 처리의 적어도 한 부분을 처리하기 위해 어느 이용 가능한 멀티미디어 DSP 요소를 활용할지를 판단하는 단계 - 상기 디지털 비디오 안정화는 적어도 로컬 모션 벡터 추정의 처리, 떨리는 비디오 모션을 나타내는 전반적(global) 모션 변환의 추정을 위한 모션 벡터의 처리, 및 상기 떨리는 비디오 모션을 보상하기 위한 상기 전반적 모션 변환에 기반하는 이미지 워핑의 처리를 포함함 - , 및
    상기 디지털 비디오 안정화 처리의 상기 적어도 한 부분에 대해 상기 판단된 이용 가능한 멀티미디어 DSP 요소를 활용하여 상기 컴퓨팅 장치 상에서 비디오 세그먼트의 디지털 비디오 안정화를 처리하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 계층 구조는 멀티미디어 DSP ASIC 유닛, GPU 셰이더(shader) 유닛, 멀티코어 CPU 및 단일 코어 CPU를 차례로 포함하는
    방법.
  3. 제1항에 있어서,
    상기 평가하는 단계에서 GPU 셰이더가 상기 컴퓨팅 장치 상에서 이용 가능하다고 판단할 경우, 상기 로컬 모션 벡터 추정의 처리를 위해 상기 GPU 셰이더를 활용하도록 상기 디지털 비디오 안정화를 처리하는 단계를 더 포함하는
    방법.
  4. 제3항에 있어서,
    상기 평가하는 단계에서 GPU 셰이더가 상기 컴퓨팅 장치 상에서 이용 가능하다고 판단할 경우, 상기 이미지 워핑을 처리하기 위해 상기 GPU 셰이더를 더 활용하도록 상기 디지털 비디오 안정화를 처리하는 단계를 더 포함하는
    방법.
  5. 디지털 비디오 안정화 방법으로서, 상기 방법은 컴퓨팅 장치 상에서 단계를 수행하는 것을 포함하되, 상기 단계는
    비디오 세그먼트의 각각의 장면의 복수의 프레임 각각에 대해 로컬 모션 벡터 추정을 처리하는 단계 - 상기 로컬 모션 벡터 추정을 처리하는 단계는 상기 각각의 프레임에 대해
    상기 각각의 프레임에 대한 복수의 버전을 복수의 해상도로 형성하기 위해 상기 각각의 프레임 및 상기 각각의 프레임과 연관된 기준 프레임을 한 번 이상 다운 샘플링하되, 상기 각각의 프레임의 최저 해상도 버전은 상기 각각의 프레임의 각각의 상위 해상도 버전의 대응 위치에 있는 연속적인 보다 많은 수의 블록에 피라미드 구조로서 연관되는 복수의 블록을 가지는 단계,
    상기 각각의 프레임의 상기 최저 해상도 버전에 대해, 상기 연관된 최저 해상도 버전 기준 프레임의 완전 검색 모션 벡터 추정 처리를 이용하여 상기 최저 해상도 버전 프레임의 상기 블록의 모션 벡터를 추정하는 단계,
    상기 각각의 프레임의 각각의 연속적 상위 해상도 버전 프레임에 대해, 상기 피라미드 구조에 따라 상기 이전 하위 해상도 버전 프레임의 상기 연관 블록에 대해 추정된 상기 모션 벡터로부터 시작하는 정밀 검색(refinement search)을 이용하여 상기 연속적 상위 해상도 버전 프레임의 상기 블록의 모션 벡터를 추정하는 단계, 및
    상기 각각의 프레임의 상기 원래 해상도 버전의 상기 블록에 대해 추정되는 로컬 모션 벡터를 도출하는 단계를 포함하는 단계,
    떨리는 비디오 모션을 나타내는 전반적 모션 변환의 추정을 위해 상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계, 및
    상기 떨리는 비디오 모션을 보상하기 위해 상기 전반적 모션 변환에 기반하여 상기 각각에 대한 이미지 워핑을 처리하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계는
    상기 각각의 프레임의 상기 도출되는 추정된 로컬 모션 벡터로부터 상기 전반적 모션 변환의 추정을 위해 사용할 모션 벡터의 집합을 선택하는 단계를 포함하며, 상기 모션 벡터의 집합의 상기 선택 단계는
    화상 경계 상의 모션 벡터를 배제하는 단계,
    높은 모션 보상 잔차를 가진 모션 벡터를 배제하는 단계, 및
    낮은 이미지 콘텐츠 변동을 가진 블록의 모션 벡터를 배제하는 단계를 포함하는
    방법.
  7. 제5항에 있어서,
    상기 전반적 모션 변환을 추정하기 위해 상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계는 아웃라이어(outlier) 모션 벡터의 제거를 위해 무작위 샘플 컨센서스를 이용하여 상기 각각의 프레임의 상기 로컬 모션 벡터를 처리하는
    방법.
  8. 제5항에 있어서,
    상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계는
    상기 각각의 프레임의 상기 로컬 모션 벡터를 처리한 것으로부터 추정된 상기 전반적 모션 변환을 하한치 및 상한치와 비교하는 단계,
    상기 추정된 전반적 모션 변환이 상기 상한치를 초과하면, 상기 전반적 모션 변환을 리셋하는 단계,
    상기 추정된 전반적 모션 변환이 상기 하한치를 초과하지만 상기 상한치를 초과하지는 않으면, 상기 전반적 모션 변환을 상기 하한치로 제한하는 단계, 및
    그렇지 않으면, 떨리는 비디오 모션을 나타내도록 상기 추정된 전반적 모션 변환을 이용하는 단계를 포함하는
    방법.
  9. 제8항에 있어서,
    비디오 세그먼트의 장면 내 상기 프레임에 대한 제1패스로서, 상기 프레임에 대한 전반적 모션 변환을 추정하기 위해 상기 프레임을 처리하는 단계,
    상기 프레임에 대한 상기 전반적 모션 변환의 파라미터의 확률 분포를 판단하는 단계,
    상기 확률 분포에 기반하여 상기 하한치 및 상기 상한치를 판단하는 단계, 및
    상기 비디오 세그먼트의 상기 프레임을 처리하는 제2패스에서 상기 전반적 모션 변환의 추정치에 상기 하한치 및 상한치를 적용하는 단계를 더 포함하는
    방법.
  10. 제5항에 있어서,
    상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계는
    유사 모션 모델에 기반하여 전반적 모션 변환에 대한 파라미터를 추정하기 위해 무작위 샘플 컨센서스 및 최소 평균 제곱 에러를 이용하여 상기 각각의 프레임의 상기 모션 벡터를 처리하는 단계, 및
    상기 전반적 모션 변환의 상기 추정된 파라미터를 상기 파라미터에 대한 하한치 및 상한치와 비교하는 단계,
    상기 전반적 모션 변환의 상기 추정된 파라미터 중 어느 하나가 그 상한치를 초과하면, 상기 전반적 모션 변환을 리셋하는 단계,
    상기 전반적 모션 변환의 상기 추정된 파라미터 중 어느 하나가 상기 하한치를 초과하지만 상기 상한치를 초과하지는 않으면, 상기 전반적 모션 변환의 상기 추정된 파라미터를 그의 하한치로 제한하는 단계, 및
    그렇지 않으면, 떨리는 비디오 모션을 나타내도록 상기 추정된 전반적 모션 변환을 이용하는 단계를 포함하는 방법.
  11. 제5항에 있어서,
    상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계는 가우시안 필터를 이용하여 상기 추정된 전반적 모션 변환에 시간적 평탄화를 적용하는 단계를 포함하며,
    상기 각각의 프레임의 상기 추정된 로컬 모션 벡터를 처리하는 단계는 비디오 세그먼트의 장면 내 상기 프레임에 대한 제한된 전반적 최적화를 이용하여 상기 추정된 전반적 모션 변환에 시간적 평탄화를 적용하는 단계를 포함하는
    방법.
  12. 비디오에 대해 비디오 이미지 안정화를 적용하도록 상기 비디오를 처리하는 디지털 비디오 처리 장치로서,
    일반 플랫폼 비디오 안정화 라이브러리 프로그램을 저장하는 메모리,
    적어도 한 개의 디지털 신호 처리 요소,
    상기 메모리로부터 상기 비디오 안정화 라이브러리 프로그램을 실행하도록 동작하는 처리 유닛을 포함하며, 상기 비디오 안정화 라이브러리 프로그램의 실행은
    상기 디지털 비디오 처리 장치의 적어도 한 개의 디지털 처리 요소를 평가하는 동작,
    상기 디지털 비디오 안정화의 성능을 적어도 포함하는 기준에 의해 디지털 신호 처리 요소를 정렬하는 계층 구조에 따른 비디오 이미지 안정화를 위한 비디오 처리의 적어도 한 부분을 위해 상기 적어도 한 개의 디지털 신호 처리 요소 중 어느 것을 활용할지를 판단하는 동작,
    부분적으로 상기 비디오의 프레임의 로컬 모션 벡터를 추정하기 위해 상기 비디오의 프레임을 처리하고, 상기 프레임의 떨리는 비디오 모션을 나타내는 전반적 모션 변환의 추정을 위해 상기 모션 벡터를 처리하며, 상기 떨리는 비디오 모션을 보상하기 위해 상기 전반적 모션 변환에 기반하여 상기 프레임의 이미지 워핑을 처리함으로써, 상기 비디오 이미지 안정화를 위해 상기 비디오를 처리하되, 상기 비디오의 처리는 이미지 안정화를 위해 상기 비디오 처리의 적어도 한 부분을 위해 상기 판단된 디지털 신호 처리 요소를 활용하도록 상기 일반 플랫폼 비디오 안정화 라이브러리 프로그램 안의 프로그래밍 함수를 실행하는 동작을 포함하는
    디지털 비디오 처리 장치.
  13. 제12항에 있어서,
    상기 디지털 신호 요소에 의해 상기 프레임의 로컬 모션 벡터를 추정하도록 상기 비디오의 프레임을 처리하는 상기 부분은 상기 비디오 세그먼트의 상기 장면 내 복수의 프레임 각각에 대해 상기 판단된 적어도 한 개의 디지털 신호 처리 요소가
    복수의 해상도에서 상기 각각의 프레임의 복수의 버전을 형성하기 위해 상기 각각의 프레임 및 상기 각각의 프레임과 연관된 기준 프레임을 한 번 이상 다운 샘플링하되, 상기 각각의 프레임의 최저 해상도 버전은 상기 각각의 프레임의 각각의 상위 해상도 버전 내 상응하는 위치에 있는 연속적인 보다 많은 수의 블록과 피라미드 구조로서 연관된 복수의 블록을 가지는 동작,
    상기 각각의 프레임의 상기 최저 해상도 버전에 대해, 상기 연관된 최저 해상도 버전 기준 프레임의 완전(full) 검색 모션 벡터 추정 처리를 이용하여 상기 최저 해상도 버전 프레임의 상기 블록의 모션 벡터를 추정하는 동작,
    상기 각각의 프레임의 각각의 연속적 상위 해상도 버전에 대해, 상기 피라미드 구조에 따라 이전 하위 해상도 버전 프레임의 상기 연관 블록에 대해 추정된 상기 모션 벡터로부터 시작하는 정밀 검색을 이용하여 상기 연속적 상위 해상도 버전 프레임의 상기 블록의 모션 벡터를 추정하는 동작, 및
    상기 각각의 프레임의 상기 원래 해상도 버전의 상기 블록에 대해 추정되는 로컬 모션 벡터를 도출하는 동작을 수행하도록 하는
    디지털 비디오 처리 장치.
  14. 제13항에 있어서,
    상기 프레임의 떨리는 비디오 모션을 나타내는 전반적 모션 변환의 추정을 위해 모션 벡터를 처리하는 상기 부분은 유사 모션 모델에 기반하여 전반적 모션 변환에 대한 파라미터를 추정하기 위해 무작위 샘플 컨센서스 및 최소 평균 제곱 에러를 이용하여 각각의 프레임의 상기 모션 벡터를 처리하는 동작을 포함하는
    디지털 비디오 처리 장치.
  15. 제14항에 있어서,
    상기 프레임의 떨리는 비디오 모션을 나타내는 전반적 모션 변환의 추정을 위해 모션 벡터를 처리하는 상기 부분은
    상기 비디오 세그먼트의 상기 장면 내 프레임의 전반적 모션 변환의 추정을 위해 상기 모션 벡터를 처리하는 투 패스(two passes)를 수행하는 동작,
    상기 프레임에 대해 제1패스에서 추정된 상기 전반적 모션 변환을 이용하는 동작,
    상기 전반적 모션 변환의 파라미터의 확률 분포를 판단하는 동작,
    상기 확률 분포에 기반하여 하한치 및 상한치를 판단하는 동작, 및
    제2패스에서, 상기 전반적 모션 변환의 상기 추정된 파라미터를 상기 파라미터에 대한 하한치 및 상한치와 비교하는 동작,
    상기 전반적 모션 변환의 상기 추정된 파라미터 중 어느 하나가 상기 상한치를 초과하면, 상기 전반적 모션 변환을 리셋하는 동작,
    상기 전반적 모션 변환의 상기 추정된 파라미터 중 어느 하나가 상기 하한치를 초과하지만 상기 상한치를 초과하지는 않으면, 상기 전반적 모션 변환의 상기 추정된 파라미터를 그의 하한치로 제한하는 동작, 및
    그렇지 않으면, 떨리는 비디오 모션을 나타내도록 상기 추정된 전반적 모션 변환을 이용하는 동작을 더 포함하는
    디지털 비디오 처리 장치.
KR1020127020922A 2010-02-11 2011-02-05 일반 플랫폼 비디오 이미지 안정화 기법 KR101725215B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/704,047 US8896715B2 (en) 2010-02-11 2010-02-11 Generic platform video image stabilization
US12/704,047 2010-02-11
PCT/US2011/023839 WO2011100174A2 (en) 2010-02-11 2011-02-05 Generic platform video image stabilization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157031199A Division KR101757838B1 (ko) 2010-02-11 2011-02-05 일반 플랫폼 비디오 이미지 안정화 기법

Publications (2)

Publication Number Publication Date
KR20130001215A true KR20130001215A (ko) 2013-01-03
KR101725215B1 KR101725215B1 (ko) 2017-04-10

Family

ID=44353429

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127020922A KR101725215B1 (ko) 2010-02-11 2011-02-05 일반 플랫폼 비디오 이미지 안정화 기법
KR1020157031199A KR101757838B1 (ko) 2010-02-11 2011-02-05 일반 플랫폼 비디오 이미지 안정화 기법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157031199A KR101757838B1 (ko) 2010-02-11 2011-02-05 일반 플랫폼 비디오 이미지 안정화 기법

Country Status (11)

Country Link
US (4) US8896715B2 (ko)
EP (2) EP2999210B1 (ko)
JP (1) JP5778187B2 (ko)
KR (2) KR101725215B1 (ko)
CN (1) CN102742260B (ko)
AU (1) AU2011216119B2 (ko)
CA (1) CA2786910C (ko)
HK (1) HK1216695A1 (ko)
RU (1) RU2564832C2 (ko)
TW (2) TWI517705B (ko)
WO (1) WO2011100174A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661476B1 (ko) * 2015-06-04 2016-09-30 숭실대학교산학협력단 비의도 움직임 완화 필터링 기반의 동영상 안정화 방법, 이를 수행하기 위한 기록매체 및 장치

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US8947453B2 (en) * 2011-04-01 2015-02-03 Sharp Laboratories Of America, Inc. Methods and systems for mobile document acquisition and enhancement
US9094617B2 (en) 2011-04-01 2015-07-28 Sharp Laboratories Of America, Inc. Methods and systems for real-time image-capture feedback
US9824426B2 (en) 2011-08-01 2017-11-21 Microsoft Technology Licensing, Llc Reduced latency video stabilization
CN102497550A (zh) * 2011-12-05 2012-06-13 南京大学 H.264编码中运动补偿插值的并行加速方法及装置
CN103186372B (zh) * 2011-12-29 2017-01-18 上海墨游信息科技有限公司 一种游戏引擎
US9460495B2 (en) 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
KR101939628B1 (ko) * 2012-05-30 2019-01-17 삼성전자주식회사 모션 검출 방법 및 모션 검출기
US9300873B2 (en) * 2012-06-22 2016-03-29 Apple Inc. Automated tripod detection and handling in video stabilization
US8941743B2 (en) * 2012-09-24 2015-01-27 Google Technology Holdings LLC Preventing motion artifacts by intelligently disabling video stabilization
US9554042B2 (en) * 2012-09-24 2017-01-24 Google Technology Holdings LLC Preventing motion artifacts by intelligently disabling video stabilization
US9712818B2 (en) * 2013-01-11 2017-07-18 Sony Corporation Method for stabilizing a first sequence of digital image frames and image stabilization unit
US9055223B2 (en) * 2013-03-15 2015-06-09 Samsung Electronics Co., Ltd. Digital image stabilization method and imaging device using the same
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
KR102121558B1 (ko) * 2013-03-15 2020-06-10 삼성전자주식회사 비디오 이미지의 안정화 방법, 후처리 장치 및 이를 포함하는 비디오 디코더
JP6232730B2 (ja) * 2013-04-16 2017-11-22 セイコーエプソン株式会社 プロジェクターおよび制御方法
US20170206184A9 (en) * 2013-05-06 2017-07-20 Sas Institute Inc. Techniques to perform curve fitting for statistical tests
CN103297657B (zh) * 2013-05-14 2016-08-10 李小林 一种基于gpu的视频稳定方法
US20150022677A1 (en) * 2013-07-16 2015-01-22 Qualcomm Incorporated System and method for efficient post-processing video stabilization with camera path linearization
CN105409196B (zh) * 2013-07-23 2018-11-30 微软技术许可有限责任公司 用于视频稳定的自适应路径平滑
US9953400B2 (en) 2013-07-23 2018-04-24 Microsoft Technology Licensing, Llc Adaptive path smoothing for video stabilization
GB201318658D0 (en) 2013-10-22 2013-12-04 Microsoft Corp Controlling resolution of encoded video
AU2013260753A1 (en) * 2013-11-25 2015-06-11 Canon Kabushiki Kaisha Rapid shake detection using a cascade of quad-tree motion detectors
JP6448218B2 (ja) 2014-05-12 2019-01-09 キヤノン株式会社 撮像装置、その制御方法および情報処理システム
IL233684B (en) 2014-07-17 2018-01-31 Shamir Hanan Stabilizing and displaying remote images
US9398217B2 (en) 2014-10-15 2016-07-19 Microsoft Technology Licensing, Llc Video stabilization using padded margin pixels
CN105100546A (zh) * 2014-12-31 2015-11-25 天津航天中为数据系统科技有限公司 运动估计方法及装置
US9949093B2 (en) * 2015-01-29 2018-04-17 Dominic M. Kotab System, method, and computer program product for managing a network based on feedback
JP6348665B2 (ja) * 2015-06-10 2018-06-27 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウントディスプレイ、表示制御方法及びプログラム
GB2539241B (en) * 2015-06-11 2019-10-23 Advanced Risc Mach Ltd Video processing system
US10708571B2 (en) * 2015-06-29 2020-07-07 Microsoft Technology Licensing, Llc Video frame processing
US10043070B2 (en) * 2016-01-29 2018-08-07 Microsoft Technology Licensing, Llc Image-based quality control
US10148880B2 (en) 2016-04-04 2018-12-04 Microsoft Technology Licensing, Llc Method and apparatus for video content stabilization
US10097765B2 (en) 2016-04-20 2018-10-09 Samsung Electronics Co., Ltd. Methodology and apparatus for generating high fidelity zoom for mobile video
US10534503B1 (en) * 2016-06-06 2020-01-14 Google Llc Motion stills experience
US9961261B2 (en) * 2016-06-20 2018-05-01 Gopro, Inc. Image alignment using a virtual gyroscope model
US9916863B1 (en) * 2017-02-24 2018-03-13 Gopro, Inc. Systems and methods for editing videos based on shakiness measures
US10534837B2 (en) * 2017-11-13 2020-01-14 Samsung Electronics Co., Ltd Apparatus and method of low complexity optimization solver for path smoothing with constraint variation
CN108416382B (zh) * 2018-03-01 2022-04-19 南开大学 一种基于迭代采样和一对多标签修正的Web图像训练卷积神经网络方法
CN108765356A (zh) * 2018-07-26 2018-11-06 杭州拓叭吧科技有限公司 一种防眩晕的模拟驾驶系统、方法及其驾驶舱
US11455705B2 (en) * 2018-09-27 2022-09-27 Qualcomm Incorporated Asynchronous space warp for remotely rendered VR
CN109544584B (zh) * 2018-11-30 2021-03-16 国网智能科技股份有限公司 一种实现巡检稳像精度测量的方法及系统
US10970911B2 (en) * 2019-02-21 2021-04-06 Facebook Technologies, Llc Graphics processing chip with machine-learning based shader
WO2020195232A1 (ja) * 2019-03-28 2020-10-01 ソニー株式会社 画像処理装置、画像処理方法、プログラム
US11089220B2 (en) 2019-05-02 2021-08-10 Samsung Electronics Co., Ltd. Electronic test device, method and computer-readable medium
US11470254B1 (en) * 2019-06-21 2022-10-11 Gopro, Inc. Systems and methods for assessing stabilization of videos
CN110430480B (zh) * 2019-08-09 2022-02-18 深圳市迈岭信息技术有限公司 一种流媒体云存储同步的系统和方法
CN110750757B (zh) * 2019-10-29 2023-04-07 哈尔滨工业大学 一种基于灰度线性建模及金字塔分解的图像抖动量计算方法
CN110971895B (zh) * 2019-12-18 2022-07-08 北京百度网讯科技有限公司 视频抖动检测方法和装置
KR20210107958A (ko) 2020-02-24 2021-09-02 삼성전자주식회사 디지털 영상 안정화 장치, 그것의 동작 방법, 및 그것을 갖는 전자 장치
KR20210155284A (ko) * 2020-06-15 2021-12-22 한화테크윈 주식회사 영상처리장치
CN112291561B (zh) * 2020-06-18 2024-03-19 珠海市杰理科技股份有限公司 Hevc最大编码块运动向量计算方法、装置、芯片及存储介质
US10991190B1 (en) 2020-07-20 2021-04-27 Abbott Laboratories Digital pass verification systems and methods
US11436793B1 (en) 2021-02-12 2022-09-06 Facebook Technologies, Llc Systems and methods for graphics rendering based on machine learning
US11863786B2 (en) * 2021-05-21 2024-01-02 Varjo Technologies Oy Method of transporting a framebuffer
CN113411500B (zh) * 2021-06-18 2024-01-12 上海盈方微电子有限公司 一种全局运动向量估计方法及电子防抖方法
CN116193257B (zh) * 2023-04-21 2023-09-22 成都华域天府数字科技有限公司 一种消除手术视频图像画面抖动的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060066728A1 (en) * 2004-09-27 2006-03-30 Batur Aziz U Motion stabilization
JP2007049545A (ja) * 2005-08-11 2007-02-22 Casio Comput Co Ltd 画像合成装置、画像合成方法及びプログラム
JP2007072573A (ja) * 2005-09-05 2007-03-22 Casio Comput Co Ltd 画像処理装置及び画像処理方法
JP2009527991A (ja) * 2006-02-24 2009-07-30 マイクロソフト コーポレーション 加速ビデオ符号化

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5259040A (en) 1991-10-04 1993-11-02 David Sarnoff Research Center, Inc. Method for determining sensor motion and scene structure and image processing system therefor
US5748231A (en) 1992-10-13 1998-05-05 Samsung Electronics Co., Ltd. Adaptive motion vector decision method and device for digital image stabilizer system
EP0986252B1 (en) 1993-06-04 2006-03-08 Sarnoff Corporation System and method for electronic image stabilization
US5973733A (en) 1995-05-31 1999-10-26 Texas Instruments Incorporated Video stabilization system and method
JP2914320B2 (ja) 1996-09-06 1999-06-28 日本電気株式会社 モジュール切り替え型画像圧縮・再生装置
US6097854A (en) 1997-08-01 2000-08-01 Microsoft Corporation Image mosaic construction system and apparatus with patch-based alignment, global block adjustment and pair-wise motion-based local warping
US6847737B1 (en) 1998-03-13 2005-01-25 University Of Houston System Methods for performing DAF data filtering and padding
US7382927B2 (en) * 1999-01-08 2008-06-03 Sharp Laboratories Of America, Inc. System for constructing mosaic images
US6798843B1 (en) 1999-07-13 2004-09-28 Pmc-Sierra, Inc. Wideband digital predistortion linearizer for nonlinear amplifiers
US7084905B1 (en) 2000-02-23 2006-08-01 The Trustees Of Columbia University In The City Of New York Method and apparatus for obtaining high dynamic range images
US6970206B1 (en) 2000-04-20 2005-11-29 Ati International Srl Method for deinterlacing interlaced video by a graphics processor
US7227896B2 (en) * 2001-10-04 2007-06-05 Sharp Laboratories Of America, Inc. Method and apparatus for global motion estimation
US7061524B2 (en) 2001-11-13 2006-06-13 The Board Of Trustees Of The Leland Stanford Junior University Motion/saturation detection system and method for synthesizing high dynamic range motion blur free images from multiple captures
EP1376471A1 (en) 2002-06-19 2004-01-02 STMicroelectronics S.r.l. Motion estimation for stabilization of an image sequence
US7119837B2 (en) 2002-06-28 2006-10-10 Microsoft Corporation Video processing system and method for automatic enhancement of digital video
JP3799326B2 (ja) 2002-12-02 2006-07-19 Necインフロンティア株式会社 パケット送信方式及びパケット受信方式
US6879731B2 (en) 2003-04-29 2005-04-12 Microsoft Corporation System and process for generating high dynamic range video
JP4262014B2 (ja) 2003-07-31 2009-05-13 キヤノン株式会社 画像撮影装置および画像処理方法
US7346109B2 (en) 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7817726B2 (en) 2004-05-21 2010-10-19 Broadcom Corporation System and method for automatic filter generation using sampled SINC function with windowed smoothing
US7489341B2 (en) 2005-01-18 2009-02-10 Primax Electronics Ltd. Method to stabilize digital video motion
BRPI0610398B1 (pt) * 2005-04-13 2019-07-02 Nokia Technologies Oy Método e aparelho
US7755667B2 (en) 2005-05-17 2010-07-13 Eastman Kodak Company Image sequence stabilization method and camera having dual path image sequence stabilization
US7894528B2 (en) 2005-05-25 2011-02-22 Yissum Research Development Company Of The Hebrew University Of Jerusalem Fast and robust motion computations using direct methods
US7433514B2 (en) 2005-07-13 2008-10-07 Canon Kabushiki Kaisha Tone mapping of high dynamic range images
US7454136B2 (en) 2005-07-28 2008-11-18 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for acquiring HDR flash images
US7557832B2 (en) 2005-08-12 2009-07-07 Volker Lindenstruth Method and apparatus for electronically stabilizing digital images
US7817151B2 (en) * 2005-10-18 2010-10-19 Via Technologies, Inc. Hardware corrected software vertex shader
TWI296178B (en) 2005-12-12 2008-04-21 Novatek Microelectronics Corp Image vibration-compensating apparatus and the method thereof
US9182228B2 (en) 2006-02-13 2015-11-10 Sony Corporation Multi-lens array system and method
JP4620607B2 (ja) * 2006-02-24 2011-01-26 株式会社モルフォ 画像処理装置
US8014445B2 (en) 2006-02-24 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for high dynamic range video coding
US7623683B2 (en) 2006-04-13 2009-11-24 Hewlett-Packard Development Company, L.P. Combining multiple exposure images to increase dynamic range
JP2007328693A (ja) * 2006-06-09 2007-12-20 Canon Inc 画像回転装置
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
EP2296108B1 (en) 2006-06-15 2012-11-14 Kabushiki Kaisha Toshiba Portable electronic device and control method thereof
US8340185B2 (en) * 2006-06-27 2012-12-25 Marvell World Trade Ltd. Systems and methods for a motion compensated picture rate converter
WO2008012822A2 (en) 2006-07-26 2008-01-31 Human Monitoring Ltd Image stabilizer
JP2008053875A (ja) * 2006-08-23 2008-03-06 Sony Corp 画像処理装置および方法、プログラム、並びにプログラム格納媒体
US20080112630A1 (en) * 2006-11-09 2008-05-15 Oscar Nestares Digital video stabilization based on robust dominant motion estimation
US7856246B2 (en) 2007-03-21 2010-12-21 Nokia Corporation Multi-cell data processor
JP4931223B2 (ja) * 2007-03-30 2012-05-16 株式会社バンダイナムコゲームス 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
JP4958610B2 (ja) 2007-04-06 2012-06-20 キヤノン株式会社 画像防振装置、撮像装置及び画像防振方法
US8422550B2 (en) 2007-07-27 2013-04-16 Lagavulin Limited Apparatuses, methods, and systems for a portable, automated contractual image dealer and transmitter
KR101392732B1 (ko) 2007-08-20 2014-05-08 삼성전자주식회사 손떨림에 의한 움직임 추정 장치 및 방법, 그를 이용한영상 촬상 장치
JP4461165B2 (ja) 2007-09-26 2010-05-12 株式会社東芝 画像処理装置、方法およびプログラム
US8284205B2 (en) 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US8760450B2 (en) 2007-10-30 2014-06-24 Advanced Micro Devices, Inc. Real-time mesh simplification using the graphics processing unit
US8750390B2 (en) 2008-01-10 2014-06-10 Microsoft Corporation Filtering and dithering as pre-processing before encoding
US8769207B2 (en) * 2008-01-16 2014-07-01 Via Technologies, Inc. Caching method and apparatus for a vertex shader and geometry shader
US8130277B2 (en) * 2008-02-20 2012-03-06 Aricent Group Method and system for intelligent and efficient camera motion estimation for video stabilization
JP2009230537A (ja) 2008-03-24 2009-10-08 Olympus Corp 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
US8300117B2 (en) * 2008-03-28 2012-10-30 Fuji Xerox Co., Ltd. System and method for exposing video-taking heuristics at point of capture
US8213706B2 (en) 2008-04-22 2012-07-03 Honeywell International Inc. Method and system for real-time visual odometry
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
JP5213613B2 (ja) * 2008-09-26 2013-06-19 キヤノン株式会社 画像処理装置及び画像処理方法及び撮像装置及びプログラム
US8406569B2 (en) 2009-01-19 2013-03-26 Sharp Laboratories Of America, Inc. Methods and systems for enhanced dynamic range images and video from multiple exposures
JP4915424B2 (ja) 2009-02-19 2012-04-11 ソニー株式会社 画像処理装置、カメラモーション成分算出方法、画像処理プログラム及び記録媒体
US8659670B2 (en) * 2009-04-20 2014-02-25 Qualcomm Incorporated Motion information assisted 3A techniques
WO2010123923A1 (en) 2009-04-23 2010-10-28 Zoran Corporation Multiple exposure high dynamic range image capture
US8446433B1 (en) * 2009-06-12 2013-05-21 Lucasfilm Entertainment Company Ltd. Interactive visual distortion processing
KR101614914B1 (ko) 2009-07-23 2016-04-25 삼성전자주식회사 모션 적응적 고대비 영상 획득 장치 및 방법
US8606009B2 (en) 2010-02-04 2013-12-10 Microsoft Corporation High dynamic range image generation and rendering
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US8531535B2 (en) 2010-10-28 2013-09-10 Google Inc. Methods and systems for processing a video for stabilization and retargeting
US20120162449A1 (en) * 2010-12-23 2012-06-28 Matthias Braun Digital image stabilization device and method
US8711248B2 (en) 2011-02-25 2014-04-29 Microsoft Corporation Global alignment for high-dynamic range image generation
US9824426B2 (en) 2011-08-01 2017-11-21 Microsoft Technology Licensing, Llc Reduced latency video stabilization
US9460495B2 (en) 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060066728A1 (en) * 2004-09-27 2006-03-30 Batur Aziz U Motion stabilization
JP2007049545A (ja) * 2005-08-11 2007-02-22 Casio Comput Co Ltd 画像合成装置、画像合成方法及びプログラム
JP2007072573A (ja) * 2005-09-05 2007-03-22 Casio Comput Co Ltd 画像処理装置及び画像処理方法
JP2009527991A (ja) * 2006-02-24 2009-07-30 マイクロソフト コーポレーション 加速ビデオ符号化

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661476B1 (ko) * 2015-06-04 2016-09-30 숭실대학교산학협력단 비의도 움직임 완화 필터링 기반의 동영상 안정화 방법, 이를 수행하기 위한 기록매체 및 장치

Also Published As

Publication number Publication date
EP2534828A4 (en) 2015-03-04
US20150036010A1 (en) 2015-02-05
KR101725215B1 (ko) 2017-04-10
HK1216695A1 (zh) 2016-11-25
TW201143398A (en) 2011-12-01
US9578240B2 (en) 2017-02-21
WO2011100174A2 (en) 2011-08-18
KR101757838B1 (ko) 2017-07-26
TW201616859A (zh) 2016-05-01
US20170094172A1 (en) 2017-03-30
EP2534828B1 (en) 2018-12-19
EP2999210B1 (en) 2019-12-04
RU2564832C2 (ru) 2015-10-10
WO2011100174A3 (en) 2011-11-17
EP2534828A2 (en) 2012-12-19
EP2999210A1 (en) 2016-03-23
TWI568262B (zh) 2017-01-21
US10841494B2 (en) 2020-11-17
AU2011216119A1 (en) 2012-08-09
AU2011216119B2 (en) 2014-07-03
US20110193978A1 (en) 2011-08-11
JP2013520717A (ja) 2013-06-06
RU2012134335A (ru) 2014-02-20
JP5778187B2 (ja) 2015-09-16
US20190297263A1 (en) 2019-09-26
KR20150126421A (ko) 2015-11-11
US10257421B2 (en) 2019-04-09
CA2786910A1 (en) 2011-08-18
TWI517705B (zh) 2016-01-11
US8896715B2 (en) 2014-11-25
CN102742260A (zh) 2012-10-17
CN102742260B (zh) 2015-07-15
CA2786910C (en) 2020-06-30

Similar Documents

Publication Publication Date Title
US10841494B2 (en) Motion vector estimation for video image stabilization
US9824426B2 (en) Reduced latency video stabilization
US10217200B2 (en) Joint video stabilization and rolling shutter correction on a generic platform
US8750645B2 (en) Generating a composite image from video frames
US9854168B2 (en) One-pass video stabilization
EP3800878B1 (en) Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
JP7078139B2 (ja) ビデオ安定化方法及び装置、並びに非一時的コンピュータ可読媒体
Gryaditskaya et al. Motion aware exposure bracketing for HDR video
JP6088344B2 (ja) 撮影装置およびノイズ除去プログラム
US20110050930A1 (en) Fast iterative motion estimation method on gradually changing images
CN114612837A (zh) 视频处理方法、装置以及视频稳定方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant