KR20240029000A - 이미지 캡처 및/또는 프로세싱 동작들을 개선하기 위한 로컬 모션 검출 - Google Patents

이미지 캡처 및/또는 프로세싱 동작들을 개선하기 위한 로컬 모션 검출 Download PDF

Info

Publication number
KR20240029000A
KR20240029000A KR1020237045324A KR20237045324A KR20240029000A KR 20240029000 A KR20240029000 A KR 20240029000A KR 1020237045324 A KR1020237045324 A KR 1020237045324A KR 20237045324 A KR20237045324 A KR 20237045324A KR 20240029000 A KR20240029000 A KR 20240029000A
Authority
KR
South Korea
Prior art keywords
image
motion
image capture
image frames
frame
Prior art date
Application number
KR1020237045324A
Other languages
English (en)
Inventor
원-춘 펑
웨이-치 리우
몐 리
‘x 리
뤄청 장
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 KR20240029000A publication Critical patent/KR20240029000A/ko

Links

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
    • 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/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • 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/67Focus control based on electronic image sensor signals
    • H04N23/673Focus control based on electronic image sensor signals based on contrast or high frequency components of image signals, e.g. hill climbing method
    • 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
    • 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/69Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/73Circuitry for compensating brightness variation in the scene by influencing the exposure time

Abstract

하나 이상의 이미지 캡처 동작들을 개선하기 위한 기법들 및 시스템들이 제공된다. 일부 예들에서, 시스템은, 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정한다. 시스템은 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정한다. 시스템은 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정한다. 시스템은 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택한다.

Description

이미지 캡처 및/또는 프로세싱 동작들을 개선하기 위한 로컬 모션 검출
본 출원은 이미지 프로세싱에 관한 것이다. 일부 예들에서, 본 출원의 양태들은 이미지 데이터에 대해 수행되는 이미지 캡처 및/또는 이미지 프로세싱 동작들을 개선하기 위한 시스템들 및 기법들에 관한 것이다.
카메라들은 이미지의 현상(appearance)을 변경하기 위해 다양한 이미지 캡처 및 이미지 프로세싱 설정들로 구성될 수 있다. 오토 초점(auto-focus), 오토 노출(auto-exposure) 및 오토 화이트 밸런스(auto-white-balance) 동작들과 같은, 일부 이미지 프로세싱 동작들이 사진의 캡처 동안에 또는 그 전에 결정되고 적용된다. 이들 동작들은 (예를 들어, 영역들의 콘텐츠가 흐릿하거나, 과노출되거나, 초점이 벗어나지 않는 것을 보장하도록) 이미지의 하나 이상의 영역들을 보정 및/또는 변경하도록 구성된다. 동작들은 이미지 프로세싱 시스템에 의해 자동으로 또는 사용자 입력에 응답하여 수행될 수 있다. 보다 진보되고 정확한 이미지 프로세싱 기법들이 이미지 프로세싱 동작들의 출력을 개선하기 위해 필요하다.
이미지 데이터에 대해 수행되는 이미지 캡처 및/또는 이미지 프로세싱 동작들(예를 들어, 자동 노출 알고리즘, 자동 초점, 자동 화이트 밸런스, 및 관련 알고리즘)을 개선하기 위한 시스템들 및 기법들이 본 명세서에 설명된다. 적어도 하나의 예에 따르면, 이미지 데이터를 프로세싱하기 위한 방법이 제공된다. 본 방법은: 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하는 단계; 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하는 단계; 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하는 단계; 및 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하는 단계를 포함할 수 있다.
다른 예에서, 이미지 데이터를 프로세싱하기 위한 장치가 제공된다. 본 장치는 적어도 하나의 메모리, 및 적어도 하나의 메모리에 커플링된 (예를 들어, 회로부로 구성된) 하나 이상의 프로세서들을 포함한다. 하나 이상의 프로세서들은: 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하고; 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하고; 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하고; 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하도록 구성된다.
다른 예에서, 이미지 데이터를 프로세싱하기 위한 장치가 제공되며, 본 장치는: 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하기 위한 수단; 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하기 위한 수단; 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하기 위한 수단; 및 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하기 위한 수단을 포함한다.
다른 예에서, 명령들을 저장한 비일시적 컴퓨터 판독가능 저장 매체가 제공되며, 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금: 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하고; 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하고; 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하고; 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하게 한다.
일부 양태들에서, 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 및 관성 측정 유닛(inertial measurement unit, IMU) 중 적어도 하나를 포함한다.
일부 양태들에서, 이미지 캡처 디바이스의 움직임은 복수의 이미지 프레임들 각각에 대응하는 노출 시간 동안 발생한다.
일부 양태들에서, 전술한 방법, 장치들, 및 컴퓨터 판독가능 매체는, 이미지 캡처 디바이스의 움직임이 임계값보다 크다고 결정하는 것에 응답하여, 적어도 하나의 이미지 캡처 파라미터에 대한 디폴트 값을 선택하는 것을 추가로 포함한다.
일부 양태들에서, 적어도 하나의 객체의 위치를 조정하는 것은 전자 이미지 안정화(electronic image stabilization, EIS) 보상을 계산하는 것을 포함한다.
일부 양태들에서, 적어도 하나의 객체의 모션을 결정하기 위해, 전술한 방법, 장치들, 및 컴퓨터 판독가능 매체는, 복수의 이미지 프레임들 사이의 광학 흐름(optical flow)을 결정하는 것을 추가로 포함한다.
일부 양태들에서, 적어도 하나의 객체의 모션을 결정하기 위해, 전술한 방법, 장치들, 및 컴퓨터 판독가능 매체는, 복수의 이미지 프레임들로부터 제1 이미지 프레임과 제2 이미지 프레임 사이의 모션 마스크를 결정하는 것을 추가로 포함한다.
일부 양태들에서, 모션 마스크는 제1 이미지 프레임과 제2 이미지 프레임 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함한다.
일부 양태들에서, 전술한 방법, 장치들, 및 컴퓨터 판독가능 매체는, 하나 이상의 모션 벡터들의 적어도 일부에 대응하는 하나 이상의 가중치 값들을 포함하는 가중치 테이블을 결정하는 것을 추가로 포함한다.
일부 양태들에서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 중앙 영역에 기초하여 선택된다.
일부 양태들에서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 관심 영역에 기초하여 선택된다.
일부 양태들에서, 관심 영역 외부의 영역에 대응하는 하나 이상의 가중치 값들의 일부는 0으로 설정된다.
일부 양태들에서, 적어도 하나의 이미지 캡처 파라미터는 노출 시간 및 이득 중 적어도 하나를 포함한다.
일부 양태들에서, 위에서 설명된 장치들 중 하나 이상은 모바일 디바이스(예를 들어, 모바일 전화 또는 소위 "스마트폰" 또는 다른 모바일 디바이스), 웨어러블 디바이스, 확장 현실 디바이스(예를 들어, 가상 현실(VR) 디바이스, 증강 현실(AR) 디바이스, 또는 혼합 현실(MR) 디바이스), 개인용 컴퓨터, 랩톱 컴퓨터, 서버 컴퓨터, 차량(예를 들어, 차량의 컴퓨팅 디바이스), 또는 다른 디바이스이거나 그 일부이다. 일부 양태들에서, 장치는 하나 이상의 이미지들을 캡처하기 위한 카메라 또는 다수의 카메라들을 포함한다. 일부 양태들에서, 장치는 하나 이상의 이미지들, 통지들 및/또는 다른 디스플레이가능한 데이터를 디스플레이 하기 위한 디스플레이를 추가로 포함한다. 일부 양태들에서, 장치는 장치의 위치 및/또는 포즈, 장치들의 상태를 결정하기 위해, 그리고/또는 다른 목적들을 위해 사용될 수 있는 하나 이상의 센서들을 포함할 수 있다.
이러한 발명의 내용은 청구 대상의 핵심적인 또는 본질적인 특징들을 식별하는 것으로 의도되는 것이 아니고, 청구 대상의 범주를 결정하기 위해 별개로 사용되는 것으로 의도되는 것도 아니다. 청구 대상은 본 특허의 전체 명세서의 적절한 부분들, 임의의 또는 모든 도면들, 및 각각의 청구항에 대한 참조에 의해 이해되어야 한다.
전술한 내용은 다른 특징들 및 실시예들과 함께, 하기의 명세서, 청구항들 및 첨부 도면들을 참조할 때 더 명백해질 것이다.
본 출원의 예시적인 실시예들은 다음의 도면들을 참조하여 아래에서 상세히 설명된다:
도 1은 일부 예들에 따른, 이미지 캡처 및 프로세싱 시스템의 예시적인 아키텍처를 예시하는 블록도이고;
도 2는 일부 예들에 따른, 이미지 프로세싱 시스템의 컴포넌트들의 동작들 및 컴포넌트들 사이의 상호작용들을 예시하는 개념도이고;
도 3은 일부 예들에 따른, 노출 시간과 모션 크기 사이의 관계를 예시하는 그래프이고;.
도 4는 일부 예들에 따른, 이미지 프로세싱 시스템의 컴포넌트들의 동작들 및 컴포넌트들 사이의 상호작용들을 예시하는 개념도이고;
도 5는 일부 예들에 따른, 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 프로세스의 예를 예시하는 흐름도이고;
도 6은 일부 예들에 따른, 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 프로세스의 다른 예를 예시하는 흐름도이고; 그리고
도 7은 본 명세서에서 설명된 특정 양태들을 구현하기 위한 시스템의 예를 예시하는 도면이다.
본 개시내용의 특정 양태들 및 실시예들이 아래에서 제공된다. 이들 양태들 및 실시예들 중 일부는 독립적으로 적용될 수 있고, 그들 중 일부는 당업자들에게 명백하듯이, 조합하여 적용될 수 있다. 다음의 설명에서는, 설명의 목적으로, 본 출원의 실시예들의 전반적인 이해를 제공하기 위해 특정 세부사항들이 기재된다. 그러나, 다양한 실시예들은 이들 특정 세부사항들 없이 실시될 수 있음이 명백할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다.
다음의 설명은 예시적인 실시예들만을 제공하며, 본 개시내용의 범위, 적용가능성, 또는 구성을 제한하도록 의도되지 않는다. 오히려, 예시적인 실시예들의 다음의 설명은 예시적인 실시예를 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 첨부된 청구항들에 기재된 바와 같이 본 출원의 사상 및 범주를 벗어나지 않으면서 요소들의 기능 및 배열에 다양한 변경들이 이루어질 수 있다고 이해되어야 한다.
카메라는 이미지 센서를 사용하여, 광을 수신하고 정지 이미지들 또는 비디오 프레임들과 같은 이미지 프레임들을 캡처하는 디바이스이다. 용어 "이미지", "이미지 프레임", 및 "프레임"은 본 명세서에서 상호교환가능하게 사용된다. 카메라는 하나 이상의 이미지 프레임들을 수신하고 하나 이상의 이미지 프레임들을 프로세싱할 수 있는 이미지 신호 프로세서(ISP)와 같은 프로세서를 포함할 수 있다. 예를 들어, 카메라 센서로 캡처한 원시 이미지 프레임은 ISP에서 프로세싱하여 최종 이미지를 생성할 수 있다. ISP에 의한 프로세싱은, 특히, 디노이징 또는 노이즈 필터링, 에지 향상, 컬러 밸런싱, 콘트라스트, 강도 조정(예컨대, 다크닝 또는 라이트닝), 톤 조정과 같은, 캡처된 이미지 프레임에 적용되는 복수의 필터들 또는 프로세싱 블록들에 의해 수행될 수 있다. 이미지 프로세싱 블록들 또는 모듈들은 특히 렌즈/센서 노이즈 보정, 베이어 필터들, 디-모자이킹(de-mosaicing), 컬러 변환, 이미지 속성들의 보정 또는 향상/억제, 디노이징 필터들, 샤프닝 필터들을 포함할 수도 있다.
카메라들은 다양한 이미지 캡처 및 이미지 프로세싱 동작들 및 설정들로 구성될 수 있다. 상이한 설정은 외관이 상이한 이미지를 낳는다. "3A" 또는 "3A들"로 총칭되는, 자동 초점(automatic-focus)(오토 초점(auto-focus)으로도 지칭됨), 자동 노출(automatic-exposure)(오토 노출(auto-exposure)로도 지칭됨), 및 자동 화이트 밸런스(automatic white-balance) 알고리즘들(오토 화이트 밸런스(auto-white-balance)로도 지칭됨)과 같은, 일부 카메라 동작들은 사진의 캡처 전에 또는 동안에 결정되고 적용된다. 이미지의 캡처 이전에, 동안에, 또는 이후에 적용되는 추가적인 카메라 동작들은, 줌(예를 들어, 줌인 또는 줌아웃), ISO, 조리개 사이즈, f/스톱, 셔터 속력, 및 이득을 수반하는 동작들을 포함한다. 다른 카메라 동작들은 콘트라스트, 밝기, 채도, 선명도, 레벨들, 곡선들, 또는 컬러들에 대한 변경들과 같은, 이미지의 포스트프로세싱을 구성할 수 있다.
카메라로 캡처된 이미지들은 종종 움직이고 있는 하나 이상의 객체들을 포함한다. 이미지에서 객체들의 움직임은 로컬 모션으로 지칭될 수 있다. 모션 블러는 영화 또는 애니메이션과 같은, 사진 또는 프레임들의 시퀀스에서의 움직이는 객체들의 뚜렷한 줄무늬(apparent streaking)이다. 모션 블러는, 단일 노출의 기록 동안 물체들의 움직임(예를 들어, 로컬 모션) 또는 긴 노출로 인해 이미지가 변화할 때 발생한다. 로컬 모션을 검출하는 알고리즘들(예를 들어, 광학 흐름 알고리즘들)은 노출 시간과 같은 파라미터들을 조정함으로써 모션 블러를 최소화하는 데 사용될 수 있다.
그러나, 로컬 모션을 검출하는 것은, 이미지를 캡처하는 동안 카메라 자체가 (예를 들어, 사용자의 손 움직임으로 인한) 모션 또는 움직임을 겪을 때 어려울 수 있다. 이미지를 캡처하는 동안 카메라의 움직임은 글로벌 모션으로 지칭될 수 있다. 로컬 모션과 유사하게, 글로벌 모션은 이미지에서 모션 블러를 야기할 수 있다. 또한, 글로벌 모션은 로컬 모션을 검출하는 알고리즘들을 방해할 수 있는데, 그 이유는 글로벌 모션이 하나의 프레임으로부터 다음 프레임으로 모든 객체들을 시프트할 것이기 때문이며, 이는 고정된 객체가 동적인 것으로 보이게 할 것이고 동적 객체들의 모션을 변경할 것이다.
따라서, 시스템들, 장치들, 프로세스들(방법들로도 지칭됨), 및 컴퓨터 판독가능 매체들(본 명세서에서 "시스템들 및 기법들"로 총칭됨)은 이미지 프로세싱 동작들의 품질 및/또는 효율을 개선하기 위해 본 명세서에서 설명된다. 예를 들어, 일부 예들에서, 시스템들 및 기법들은 디바이스 센서들을 사용하여 글로벌 모션을 검출하고 글로벌 모션에 기초하여 이미지 프레임들을 조정함으로써 모션 블러를 최소화할 수 있다. 일부 양태들에서, 시스템들 및 기법들은 이미지 캡처 파라미터(예를 들어, 노출 시간)에 대한 적절한 값을 선택하기 위해 글로벌 모션을 보상하면서 로컬 모션 크기를 추정하는 데 사용될 수 있다. 시스템들 및 기법들의 추가 양태들이 도면들과 관련하여 설명될 것이다.
도 1은 이미지 캡처 및 프로세싱 시스템(100)의 아키텍처를 예시하는 블록도이다. 이미지 캡처 및 프로세싱 시스템(100)은 장면의 이미지(예를 들어, 장면(110)의 이미지)를 캡처 및 프로세싱하는 데 사용되는 다양한 컴포넌트들을 포함한다. 이미지 캡처 및 프로세싱 시스템(100)은 독립형 이미지들(또는 사진들)을 캡처할 수 있고/거나 특정 시퀀스 내의 다수의 이미지들(또는 비디오 프레임들)을 포함하는 비디오들을 캡처할 수 있다. 시스템(100)의 렌즈(115)는 장면(110)을 향하고 장면(110)으로부터 광을 수신한다. 렌즈(115)는 이미지 센서(130)를 향해 광을 굴절시킨다. 렌즈(115)에 의해 수신된 광은 하나 이상의 제어 메커니즘들(120)에 의해 제어되는 조리개를 통과하고 이미지 센서(130)에 의해 수신된다.
하나 이상의 제어 메커니즘들(120)은 이미지 센서(130)로부터의 정보에 기초하여 그리고/또는 이미지 프로세서(150)로부터의 정보에 기초하여 노출, 초점, 및/또는 줌을 제어할 수 있다. 하나 이상의 제어 메커니즘들(120)은 다수의 메커니즘들 및 컴포넌트들을 포함할 수 있는데; 예를 들어, 제어 메커니즘들(120)은 하나 이상의 노출 제어 메커니즘들(125A), 하나 이상의 초점 제어 메커니즘들(125B), 및/또는 하나 이상의 줌 제어 메커니즘들(125C)을 포함할 수 있다. 하나 이상의 제어 메커니즘들(120)은 또한 아날로그 이득, 플래시, HDR, 피사계 심도, 및/또는 다른 이미지 캡처 속성들을 제어하는 제어 메커니즘들과 같이, 예시된 것 외에 추가적인 제어 메커니즘들을 포함할 수 있다. 일부 경우들에서, 하나 이상의 제어 메커니즘들(120)은 "3A" 이미지 프로세싱 동작들을 제어 및/또는 구현할 수 있다.
제어 메커니즘들(120)의 초점 제어 메커니즘(125B)은 초점 설정을 획득할 수 있다. 일부 예들에서, 초점 제어 메커니즘(125B)은 메모리 레지스터에 초점 설정을 저장한다. 초점 설정에 기초하여, 초점 제어 메커니즘(125B)은 이미지 센서(130)의 위치에 대해 렌즈(115)의 위치를 조정할 수 있다. 예를 들어, 초점 설정에 기초하여, 초점 제어 메커니즘(125B)은 모터 또는 서보를 작동시켜 렌즈(115)를 이미지 센서(130)에 더 가깝게 또는 이미지 센서(130)로부터 더 멀리 움직여서, 초점을 조정할 수 있다. 일부 경우들에서, 이미지 센서(130)의 각각의 포토다이오드 위에 하나 이상의 마이크로렌즈들 같은 추가적인 렌즈들이 디바이스(105A)에 포함될 수 있으며, 이들 각각은 광이 포토다이오드에 도달하기 전에 렌즈(115)로부터 수신된 광을 대응하는 포토다이오드 쪽으로 굴절시킨다. 초점 설정은 콘트라스트 검출 자동 초점(contrast detection autofocus, CDAF), 위상 검출 자동 초점(phase detection autofocus, PDAF) 또는 이들의 일부 조합을 통해 결정될 수 있다. 초점 설정은 제어 메커니즘(120), 이미지 센서(130), 및/또는 이미지 프로세서(150)를 이용하여 결정될 수 있다. 초점 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로 지칭될 수 있다.
제어 메커니즘들(120)의 노출 제어 메커니즘(125A)은 노출 설정을 획득할 수 있다. 일부 경우들에서, 노출 제어 메커니즘(125A)은 메모리 레지스터에 노출 설정을 저장한다. 이 노출 설정에 기초하여, 노출 제어 메커니즘(125A)은 조리개의 크기(예를 들어, 조리개 크기 또는 f/스톱), 조리개가 열려 있는 지속 시간(예를 들어, 노출 시간 또는 셔터 속력), 이미지 센서(130)의 감도(예를 들어, ISO 속력 또는 필름 속력), 이미지 센서(130)에 의해 적용된 아날로그 이득, 또는 이들의 임의의 조합을 제어할 수 있다. 노출 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로서 지칭될 수 있다.
제어 메커니즘(120)의 줌 제어 메커니즘(125C)은 줌 설정을 획득할 수 있다. 일부 예들에서, 줌 제어 메커니즘(125C)은 메모리 레지스터에 줌 설정을 저장한다. 줌 설정에 기초하여, 줌 제어 메커니즘(125C)은 렌즈(115) 및 하나 이상의 추가 렌즈들을 포함하는 렌즈 요소들의 어셈블리(렌즈 어셈블리)의 초점 길이를 제어할 수 있다. 예를 들어, 줌 제어 메커니즘(125C)은 서로에 대해 렌즈들 중 하나 이상을 움직이기 위해 하나 이상의 모터들 또는 서보들을 작동시킴으로써 렌즈 어셈블리의 초점 길이를 제어할 수 있다. 줌 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로 지칭될 수 있다. 일부 예들에서, 렌즈 어셈블리는 동초점(parfocal) 줌 렌즈 또는 가변초점(varifocal) 줌 렌즈를 포함할 수 있다. 일부 예들에서, 렌즈 어셈블리는 먼저 장면(110)으로부터 광을 수신하는 (일부 경우들에서 렌즈(115)일 수 있는) 포커싱 렌즈를 포함할 수 있으며, 다음으로 광이 이미지 센서(130)에 도달하기 전에 포커싱 렌즈(예를 들어, 렌즈(115))와 이미지 센서(130) 사이의 무한초점(afocal) 줌 시스템을 광이 통과한다. 무한초점 줌 시스템은, 일부 경우들에서, 초점 길이가 같거나 유사한(예를 들어, 임계 차이 내에 있는) 2개의 포지티브(예를 들어, 수렴하는, 볼록) 렌즈를 포함할 수 있으며, 그 사이에는 네거티브(예를 들어, 발산하는, 오목) 렌즈를 갖는다. 일부 경우들에서, 줌 제어 메커니즘(125C)은 네거티브 렌즈 및 포지티브 렌즈들 중 하나 또는 둘 모두와 같은, 무한초점 줌 시스템에서의 렌즈들 중 하나 이상을 움직인다.
이미지 센서(130)는 포토다이오드들 또는 다른 감광 요소들의 하나 이상의 어레이들을 포함한다. 각각의 포토다이오드는 이미지 센서(130)에 의해 생성된 이미지에서의 특정 픽셀에 최종적으로 대응하는 광의 양을 측정한다. 일부 경우들에서, 상이한 포토다이오드들은 상이한 컬러 필터들에 의해 커버될 수 있고, 따라서, 포토다이오드를 커버하는 필터의 컬러와 매칭하는 광을 측정할 수 있다. 예를 들어, 베이어 컬러 필터들은 적색 컬러 필터들, 청색 컬러 필터들, 및 녹색 컬러 필터들을 포함하고, 이미지의 각각의 픽셀은 적색 컬러 필터에서 커버된 적어도 하나의 포토다이오드로부터의 적색 광 데이터, 청색 컬러 필터에서 커버된 적어도 하나의 포토다이오드로부터의 청색 광 데이터, 및 녹색 컬러 필터에서 커버된 적어도 하나의 포토다이오드로부터의 녹색 광 데이터에 기초하여 생성된다. 다른 유형들의 컬러 필터들이 적색, 청색, 및/또는 녹색 컬러 필터들 대신에 또는 그에 부가하여 황색, 마젠타, 및/또는 시안("에메랄드"로도 지칭됨) 컬러 필터들을 사용할 수 있다. 일부 이미지 센서들에는 컬러 필터가 전혀 없을 수 있으며, 대신에 (일부 경우들에서 수직으로 적층된) 픽셀 어레이 전체에 걸쳐 상이한 포토다이오드들을 사용할 수 있다. 픽셀 어레이 전체에 걸쳐 상이한 포토다이오드들은 상이한 스펙트럼 감도 곡선들을 가질 수 있으므로, 상이한 파장들의 광에 반응한다. 모노크롬 이미지 센서들에도 컬러 필터가 없을 수 있으며, 따라서 컬러 심도가 없을 수 있다.
일부 경우들에서, 이미지 센서(130)는 대안적으로 또는 추가적으로, 특정 시간들에 그리고/또는 특정 각도들로부터, 특정 포토다이오드들, 또는 특정 포토다이오드들의 부분들에 광이 도달하는 것을 차단하는 불투명 및/또는 반사 마스크들을 포함할 수 있으며, 이들은 위상 검출 자동 초점(PDAF)을 위해 사용될 수 있다. 이미지 센서(130)는 또한 포토다이오드에 의해 출력된 아날로그 신호를 증폭하기 위한 아날로그 이득 증폭기 및/또는 포토다이오드의 출력된 (및/또는 아날로그 이득 증폭기에 의해 증폭된) 아날로그 신호를 디지털 신호로 변환하기 위한 아날로그-디지털 변환기(ADC)를 포함할 수 있다. 일부 경우들에서, 제어 메커니즘들(120) 중 하나 이상과 관련하여 논의된 특정 컴포넌트들 또는 기능들이 이미지 센서(130) 대신에 또는 추가적으로 포함될 수 있다. 이미지 센서(130)는 CCD(charge-coupled device) 센서, EMCCD(electron-multiplying CCD) 센서, APS(active-pixel sensor), CMOS(complimentary metal-oxide semiconductor), NMOS(N-type metal-oxide semiconductor), 하이브리드 CCD/CMOS 센서(예를 들어, sCMOS), 또는 이들의 일부 다른 조합일 수 있다.
이미지 프로세서(150)는, 하나 이상의 이미지 신호 프로세서(ISP)들(ISP(154)를 포함함), 하나 이상의 호스트 프로세서들(호스트 프로세서(152)를 포함함), 및/또는 컴퓨팅 시스템(700)과 관련하여 논의된 임의의 다른 유형의 프로세서(710)의 하나 이상과 같은 하나 이상의 프로세서들을 포함할 수 있다. 호스트 프로세서(152)는 디지털 신호 프로세서(DSP) 및/또는 다른 유형의 프로세서일 수 있다. 일부 구현들에서, 이미지 프로세서(150)는 호스트 프로세서(152) 및 ISP(154)를 포함하는 단일 집적 회로 또는 칩(예를 들어, 시스템-온-칩 또는 SoC로 지칭됨)이다. 일부 경우들에서, 칩은 또한 하나 이상의 입력/출력 포트들(예를 들어, 입력/출력(I/O) 포트들(156)), 중앙 프로세싱 유닛(CPU)들, 그래픽 프로세싱 유닛(GPU)들, 광대역 모뎀들(예를 들어, 3G, 4G 또는 LTE, 5G 등), 메모리, 접속성 컴포넌트들(예를 들어, BluetoothTM, GPS(Global Positioning System) 등), 이들의 임의의 조합, 및/또는 다른 컴포넌트들을 포함할 수 있다. I/O 포트들(156)은 I2C(Inter-Integrated Circuit 2) 인터페이스, I3C(Inter-Integrated Circuit 3) 인터페이스, SPI(Serial Peripheral Interface) 인터페이스, 직렬 GPIO(General Purpose Input/Output) 인터페이스, MIPI(Mobile Industry Processor Interface)(예컨대, MIPI CSI-2 물리(PHY) 계층 포트 또는 인터페이스, AHB(Advanced High-performance Bus) 버스, 이들의 임의의 조합, 및/또는 다른 입력/출력 포트와 같은, 하나 이상의 프로토콜 또는 규격에 따른 임의의 적합한 입력/출력 포트들 또는 인터페이스를 포함할 수 있다. 하나의 예시적인 예에서, 호스트 프로세서(152)는 I2C 포트를 사용하여 이미지 센서(130)와 통신할 수 있고, ISP(154)는 MIPI 포트를 사용하여 이미지 센서(130)와 통신할 수 있다.
이미지 프로세서(150)는 디모자이크, 컬러 공간 변환, 이미지 프레임 다운샘플링, 픽셀 보간, 자동 노출(AE) 제어, 자동 이득 제어(AGC), CDAF, PDAF, 자동 화이트 밸런스, HDR 이미지를 형성하기 위한 이미지 프레임들의 병합, 이미지 인식, 객체 인식, 특징(feature) 인식, 입력들의 수신, 출력들 관리, 메모리 관리, 또는 이들의 일부 조합과 같은 다수의 작업들을 수행할 수 있다. 이미지 프로세서(150)는 이미지 프레임들 및/또는 프로세싱된 이미지들을 랜덤 액세스 메모리(RAM)(140/720), 판독전용 메모리(ROM)(145/725), 캐시(712), 메모리 유닛(715), 다른 저장 디바이스(730), 또는 이들의 일부 조합에 저장할 수 있다.
다양한 입력/출력(I/O) 디바이스들(160)이 이미지 프로세서(150)에 접속될 수 있다. I/O 디바이스(160)는 디스플레이 스크린, 키보드, 키패드, 터치스크린, 트랙패드, 터치 감지 표면, 프린터, 임의의 다른 출력 디바이스(735), 임의의 다른 입력 디바이스(745), 또는 이들의 일부 조합을 포함할 수 있다. 일부 경우들에서, 캡션은 I/O 디바이스(160)의 물리적 키보드 또는 키패드를 통해, 또는 I/O 디바이스(160)의 터치스크린의 가상 키보드 또는 키패드를 통해 이미지 프로세싱 디바이스(105B)에 입력될 수 있다. I/O(160)는 디바이스(105B)와 하나 이상의 주변 디바이스들 사이의 유선 접속을 가능하게 하는 하나 이상의 포트들, 잭들, 또는 다른 커넥터들을 포함할 수 있으며, 이를 통해 디바이스(105B)는 하나 이상의 주변 디바이스로부터 데이터를 수신하고/하거나 하나 이상의 주변 디바이스들로 데이터를 송신할 수 있다. I/O(160)는 디바이스(105B)와 하나 이상의 주변 디바이스들 사이의 무선 접속을 가능하게 하는 하나 이상의 무선 트랜시버들을 포함할 수 있으며, 이를 통해 디바이스(105B)는 하나 이상의 주변 디바이스로부터 데이터를 수신하고/하거나 하나 이상의 주변 디바이스들로 데이터를 송신할 수 있다. 주변 디바이스는 이전에 논의된 유형의 I/O 디바이스들(160) 중 임의의 것을 포함할 수 있으며 포트, 잭, 무선 트랜시버, 또는 다른 유선 및/또는 무선 커넥터에 커플링되면 그 자체가 I/O 디바이스(160)로 고려될 수 있다.
일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(100)은 단일의 디바이스일 수 있다. 일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(100)은 이미지 캡처 디바이스(105A)(예를 들어, 카메라) 및 이미지 프로세싱 디바이스(105B)(예를 들어, 카메라에 커플링된 컴퓨팅 디바이스)를 포함하는 둘 이상의 별개의 디바이스들일 수 있다. 일부 구현들에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는, 예를 들어, 하나 이상의 와이어, 케이블, 또는 다른 전기 커넥터를 통해, 및/또는 하나 이상의 무선 트랜시버를 통해 무선으로 함께 커플링될 수 있다. 일부 구현들에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는 서로 분리될 수 있다.
도 1에 도시된 바와 같이, 수직 파선은 도 1의 이미지 캡처 및 프로세싱 시스템(100)을 각각 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)를 표현하는 두 부분으로 나눈다. 이미지 캡처 디바이스(105A)는 렌즈(115), 제어 메커니즘들(120), 및 이미지 센서(130)를 포함한다. 이미지 프로세싱 디바이스(105B)는 (ISP(154) 및 호스트 프로세서(152)를 포함하는) 이미지 프로세서(150), RAM(140), ROM(145) 및 I/O(160)를 포함한다. 일부 경우들에서, ISP(154) 및/또는 호스트 프로세서(152)와 같은 이미지 캡처 디바이스(105A)에 예시된 특정 컴포넌트들은 이미지 캡처 디바이스(105A)에 포함될 수 있다.
이미지 캡처 및 프로세싱 시스템(100)은 전자 디바이스, 예를 들어, 모바일 또는 고정식 전화 핸드셋(예를 들어, 스마트폰, 셀룰러 전화기 등), 데스크톱 컴퓨터, 랩톱 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔, 비디오 스트리밍 디바이스, 인터넷 프로토콜(IP) 카메라, 또는 임의의 다른 적합한 전자 디바이스를 포함할 수 있다. 일부 예들에서, 이미지 캡처 및 프로세싱 시스템(100)은 셀룰러 네트워크 통신들, 802.11 wi-fi 통신들, 무선 로컬 영역 네트워크(WLAN) 통신들, 또는 이들의 일부 조합과 같은 무선 통신들을 위한 하나 이상의 무선 트랜시버들을 포함할 수 있다. 일부 구현들에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는 상이한 디바이스일 수 있다. 예를 들어, 이미지 캡처 디바이스(105A)는 카메라 디바이스를 포함할 수 있고 이미지 프로세싱 디바이스(105B)는 모바일 핸드셋, 데스크톱 컴퓨터, 또는 다른 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스를 포함할 수 있다.
이미지 캡처 및 프로세싱 시스템(100)이 특정 컴포넌트들을 포함하는 것으로 도시되어 있지만, 당업자는 이미지 캡처 및 프로세싱 시스템(100)이 도 1a에 도시된 것들보다 더 많은 컴포넌트들을 포함할 수 있음을 이해할 것이다. 이미지 캡처 및 프로세싱 시스템(100)의 컴포넌트들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 하나 이상의 조합들을 포함할 수 있다. 예를 들어, 일부 구현들에서, 이미지 캡처 및 프로세싱 시스템(100)의 컴포넌트들은, 하나 이상의 프로그래밍가능 전자 회로들(예컨대, 마이크로프로세서들, GPU들, DSP들, CPU들, 및/또는 다른 적합한 전자 회로들)을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고/거나 이들을 이용하여 구현될 수 있거나, 그리고/또는 본 명세서에 기재된 다양한 동작들을 수행하기 위해 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고/거나 이들을 이용하여 구현될 수 있다. 소프트웨어 및/또는 펌웨어는 컴퓨터 판독가능 저장 매체에 저장되고 이미지 캡처 및 프로세싱 시스템(100)을 구현하는 전자 디바이스의 하나 이상의 프로세서들에 의해 실행가능한 하나 이상의 명령들을 포함할 수 있다.
호스트 프로세서(152)는 (예를 들어, I2C, I3C, SPI, GPIO, 및/또는 다른 인터페이스와 같은 외부 제어 인터페이스를 통해) 새로운 파라미터 설정들로 이미지 센서(130)를 구성할 수 있다. 하나의 예시적인 예에서, 호스트 프로세서(152)는 과거 이미지 프레임으로부터의 노출 제어 알고리즘의 내부 프로세싱 결과에 기초하여 이미지 센서(130)에 의해 사용되는 노출 설정들을 업데이트할 수 있다.
일부 예들에서, 호스트 프로세서(152)는 전자 이미지 안정화(EIS)를 수행할 수 있다. 예를 들어, 호스트 프로세서(152)는 하나 이상의 이미지 프레임들에 대한 모션 보상에 대응하는 모션 벡터를 결정할 수 있다. 일부 양태들에서, 호스트 프로세서(152)는 픽셀들의 총 어레이 내에 크로핑된(cropped) 픽셀 어레이("이미지 윈도우")를 위치시킬 수 있다. 이미지 윈도우는 이미지들을 캡처하는 데 사용되는 픽셀들을 포함할 수 있다. 일부 예들에서, 이미지 윈도우는 센서의 주변부에 있는 행들 및 열들의 일부분을 제외한, 센서 내의 픽셀들 모두를 포함할 수 있다. 일부 경우들에서, 이미지 캡처 디바이스(105A)가 정지되어 있는 동안 이미지 윈도우는 센서의 중심에 있을 수 있다. 일부 양태들에서, 주변 픽셀들은 이미지 윈도우의 픽셀들을 둘러싸고, 이미지 윈도우 주위의 버퍼 픽셀 행들 및 버퍼 픽셀 열들의 세트를 형성할 수 있다. 호스트 프로세서(152)는 EIS를 구현하고 이미지 윈도우를 비디오의 프레임에서 프레임으로 시프트시켜, 이미지 윈도우가 연속적인 프레임들에 걸쳐 동일한 장면을 추적하도록 할 수 있다(예를 들어, 피사체가 움직이지 않는다고 가정하면). 피사체가 움직이는 일부 예들에서, 호스트 프로세서(152)는 장면이 변했다고 결정할 수 있다.
일부 예들에서, 이미지 윈도우는 센서 상의 픽셀들의 적어도 95%(예를 들어, 95% 내지 99%)를 포함할 수 있다. (예를 들어, AE 및/또는 AWB에 사용되는) 제1 관심 영역(ROI)은 이미지 캡처 디바이스(105A)의 이미지 센서(130) 내의 복수의 이미징 픽셀들 중 적어도 95%(예를 들어, 95% 내지 99%)의 시야 내의 이미지 데이터를 포함할 수 있다. 일부 양태들에서, 센서의 주변부에 있는(이미지 윈도우의 외부의) 일정 수의 버퍼 픽셀들은 지터를 보상하기 위해 이미지 윈도우가 시프트할 수 있도록 버퍼로서 예약될 수 있다. 일부 경우들에서, 이미지 윈도우는, 피사체로부터의 광이 센서의 상이한 영역에 충돌할 수 있더라도 피사체가 조정된 이미지 윈도우 내에서 동일한 위치에 유지되도록, 움직여질 수 있다. 다른 예에서, 버퍼 픽셀들은 센서 상의 10개의 최상부 행들, 10개의 최하부 행들, 10개의 최좌측 열들, 및 10개의 최우측 열들을 포함할 수 있다. 일부 구성들에서, 버퍼 픽셀들은 이미지 캡처 디바이스(105A)가 정지되어 있고 버퍼 픽셀들이 이미지 출력에 포함되지 않을 때 AF, AE 또는 AWB에 사용되지 않는다. 지터가 프레임들 사이에서 픽셀들의 열의 폭의 2배만큼 좌측으로 센서를 움직이는 경우, EIS 알고리즘이 사용되어 이미지 윈도우를 픽셀들의 2개의 열만큼 우측으로 시프트시켜, 캡처된 이미지가 현재 프레임에서와 동일한 장면을 다음 프레임에서 보여주도록 할 수 있다. 호스트 프로세서(152)는 EIS를 사용하여 한 프레임에서 다음 프레임으로의 전이를 평활화할 수 있다.
일부 양태들에서, 호스트 프로세서(152)는 또한, 이미지 데이터가 ISP(154)에 의해 올바르게 프로세싱되도록 이미지 센서(130)로부터의 하나 이상의 입력 이미지 프레임들의 설정들과 매칭되도록, ISP(154)의 내부 파이프라인들 또는 모듈들의 파라미터 설정들을 동적으로 구성할 수 있다. ISP(154)의 프로세싱(또는 파이프라인) 블록들 또는 모듈들은 특히 렌즈/센서 노이즈 보정, 디모자이킹, 컬러 변환, 이미지 속성의 보정 또는 강화/억제, 디노이징 필터, 샤프닝 필터를 위한 모듈들을 포함할 수 있다. ISP(154)의 상이한 모듈들의 설정들은 호스트 프로세서(152)에 의해 구성될 수 있다. 각각의 모듈은 많은 수의 튜닝가능한 파라미터 설정들을 포함할 수 있다. 추가적으로, 상이한 모듈들이 이미지의 유사한 양상들에 영향을 미칠 수 있기 때문에 모듈들은 상호의존적일 수도 있다. 예를 들어, 디노이징 및 텍스처 보정 또는 강화는 양자 모두 이미지의 고주파 양상들에 영향을 미칠 수 있다. 그 결과, 캡처된 원시 이미지로부터 최종 이미지를 생성하기 위해 많은 수의 파라미터들이 ISP에 의해 사용된다.
일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(100)은 전술한 이미지 프로세싱 기능들 중 하나 이상을 자동으로 수행할 수 있다. 예를 들어, 제어 메커니즘들(120) 중 하나 이상은 오토 초점 동작들, 오토 노출 동작들, 및/또는 오토 화이트 밸런스 동작들(위에서 언급된 바와 같이 "3A들"로 지칭됨)을 수행하도록 구성될 수 있다. 일부 실시예들에서, 오토 초점 기능은 이미지 캡처 디바이스(105A)로 하여금 원하는 이미지를 캡처하기 이전에 자동으로 초점을 맞출 수 있게 한다. 다양한 오토 초점 기술들이 존재한다. 예를 들어, 능동 자동 초점 기술들은 통상적으로 적외선 레이저들 또는 초음파 신호들을 방출하고 이들 신호들의 반사들을 수신함으로써, 카메라의 레인지(range) 센서를 통해 카메라와 이미지의 피사체 사이의 레인지를 결정한다. 또한, 수동 오토 초점 기술들은 카메라의 초점을 맞추기 위해 카메라 자체의 이미지 센서를 사용하고, 따라서 카메라에 추가적인 센서들을 통합시킬 필요가 없다. 수동 AF 기법들은 콘트라스트 검출 오토 초점(CDAF), 위상 검출 오토 초점(PDAF), 및 일부 경우들에서는 양자 모두를 사용하는 하이브리드 시스템들을 포함한다. 이미지 캡처 및 프로세싱 시스템(100)은 이들 또는 임의의 추가적인 유형의 오토 초점 기술을 구비할 수 있다.
도 2는 이미지 프로세싱 시스템(200)의 컴포넌트들의 동작들 및 컴포넌트들 사이의 상호작용들을 예시하는 개념도이다. 이미지 프로세싱 시스템(200)은 일부 실시예들에서 이미지 캡처 및 프로세싱 시스템(100)의 컴포넌트들을 포함할 수 있다. 일부 양태들에서, 이미지 프로세싱 시스템(200)은 모션 검출 엔진(204) 및 자동 노출 제어(AEC) 모션 핸들링 모듈(214)을 포함할 수 있다. 일부 예들에서, 모션 검출 엔진(204)은 이미지 센서를 사용하여 캡처된 정지 이미지들 또는 비디오 프레임들과 같은 입력 이미지(202)(예를 들어, 이미지 프레임, 프레임 등)를 수신할 수 있다. 일부 경우들에서, 모션 검출 엔진(204)은 입력 이미지(202)를 프레임 'n'(206) 및 프레임 'n-1'(208)과 같은 하나 이상의 프레임들로 분리하거나 파싱할 수 있다.
일부 양태들에서, 모션 검출 엔진(204)은 하나 이상의 글로벌 모션 제거 모듈(들)(210)을 포함할 수 있다. 일부 예들에서, 글로벌 모션 제거 모듈(210)은 하나 이상의 이미지 프레임들(예를 들어, 프레임 'n'(206) 및/또는 프레임 'n-1'(208))을 프로세싱하여, 글로벌 모션(예를 들어, 핸드 지터(hand jitter)에 의해 야기된 카메라의 모션)에 대해 프레임 'n'(206) 및/또는 프레임 'n-1'(208)을 보상, 조정, 및/또는 수정할 수 있다. 예를 들어, 글로벌 모션 제거 모듈(210)은 카메라 및/또는 카메라와 연관된 디바이스(예를 들어, 모바일 폰, 태블릿, 컴퓨터 등)의 모션을 검출하도록 구성된 하나 이상의 센서들(도시되지 않음)로부터 데이터를 수신할 수 있다. 일부 예들에서, 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 관성 측정 유닛(IMU), 모션을 검출하도록 구성된 임의의 다른 디바이스/센서, 및/또는 이들의 임의의 조합을 포함할 수 있다. 일부 경우들에서, 글로벌 모션은 회전 모션(예를 들어, 피치, 롤, 및 요) 및/또는 병진 모션(예를 들어, 수평 또는 x-방향, 수직 또는 y-방향, 및 깊이 또는 z-방향)을 포함할 수 있다. 하나의 예시적인 예에서, 가속도계는 병진 모션을 제공할 수 있고 자이로스코프는 회전 모션을 제공할 수 있다.
일부 경우들에서, 글로벌 모션 제거 모듈(210)은 하나 이상의 센서들로부터의 데이터를 사용하여, 프레임 'n'(206) 및/또는 프레임 'n-1'(208)의 캡처 동안 발생한 카메라의 움직임 또는 모션을 결정할 수 있다. 예를 들어, 글로벌 모션 제거 모듈(210)은 각각의 프레임(예를 들어, 프레임 'n'(206) 및/또는 프레임 'n-1'(208))에 대응하는 노출 시간 동안 카메라의 움직임 또는 모션을 결정할 수 있다. 일부 양태들에서, 글로벌 모션 제거 모듈(210)은 프레임 'n'(206) 및/또는 프레임 'n-1'(208)으로부터 글로벌 모션을 제거하기 위해 전자 이미지 안정화(EIS) 알고리즘들을 구현할 수 있다. 예를 들어, EIS 알고리즘들은 글로벌 모션을 제거하기 위해 프레임 'n'(206) 및/또는 프레임 'n-1'(208)을 시프트하는 데 사용될 수 있다. 일부 양태들에서, 모션 검출 엔진(204)은 글로벌 모션을 위한 버퍼를 제공하기 위해 가시 프레임의 경계 외부의 픽셀들을 사용함으로써 EIS 알고리즘들을 구현할 수 있다. 일부 예들에서, EIS 알고리즘들은 프레임들(예를 들어, 프레임 'n'(206) 및/또는 프레임 'n-1'(208)) 사이의 전이를 평활화함으로써 모션 블러를 감소시킬 수 있다.
일부 양태들에서, 모션 검출 엔진(204)은 모션 추정 모듈(212)을 포함할 수 있다. 일부 예들에서, 모션 추정 모듈(212)은 프레임 'n'(206) 및/또는 프레임 'n-1'(208)로부터의 글로벌 모션의 제거를 나타내거나 포함하는 글로벌 모션 제거 모듈(210)로부터 데이터를 수신할 수 있다. 일부 경우들에서, 모션 추정 모듈(212)은 글로벌 모션이 글로벌 모션 제거 모듈(210)에 의해 제거된 후 하나 이상의 프레임들에서 로컬 모션을 검출하도록 구성될 수 있다. 일부 경우들에서, 로컬 모션은 이미지 프레임(예를 들어, 프레임 'n'(206) 및/또는 프레임 'n-1'(208))의 캡처 동안 하나 이상의 객체들의 움직임을 지칭한다. 예를 들어, 이미지 프레임의 캡처 동안 달리고 있는 피사체는 로컬 모션을 야기할 수 있다. 일부 경우들에서, 로컬 모션은 이미지 프레임에서 모션 블러를 야기할 수 있다. 일부 예들에서, 하나 이상의 이미지 캡처 파라미터들(예를 들어, 노출 시간)의 조정은 로컬 모션에 의해 야기된 모션 블러를 제거하거나 최소화하기 위해 로컬 모션을 보상하는 데 사용될 수 있다.
일부 예들에서, 모션 추정 모듈(212)은 이미지 기반 방법(예를 들어, 광학 흐름 알고리즘)을 사용하여 프레임 'n'(206) 및 프레임 'n-1'(208)과 같은 2개 이상의 프레임들 사이의 로컬 모션을 결정할 수 있다. 일부 양태들에서, 모션 추정 모듈(212)은 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 로컬 모션을 나타내거나 표현하는 하나 이상의 모션 벡터들을 결정할 수 있다. 예를 들어, 모션 벡터는 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 픽셀의 위치의 변화(예를 들어, 방향 및/또는 크기에 의해 표시되는 움직임)를 나타내는 데 사용될 수 있다. 일부 양태들에서, 모션 추정 모듈(212)은, 모션 추정 모듈(212)이 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 픽셀들의 일부의 움직임에 대응하는 하나 이상의 모션 벡터들을 결정하는, 희소(sparse) 광학 흐름 알고리즘을 구현할 수 있다. 일부 예들에서, 모션 추정 모듈(212)은, 모션 추정 모듈(212)이 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 일부 또는 모든 픽셀들의 움직임에 대응하는 하나 이상의 모션 벡터들을 결정하는, 고밀도(dense) 광학 흐름 알고리즘을 구현할 수 있다. 예를 들어, 고밀도 광학 흐름에 기초하여, 모션 추정 모듈(212)은 프레임 'n'(206)에서의 각각의 픽셀에 대한 광학 흐름 벡터를 결정할 수 있으며, 이때 각각의 광학 흐름 벡터는 프레임 'n-1'(208)의 대응하는(또는 함께-위치된) 픽셀에 대한 프레임 'n'(206)의 각각의 픽셀의 수평 또는 x-방향에서의 변위 및 수직 또는 y-방향에서의 변위를 나타낸다.
일부 경우들에서, 모션 추정 모듈(212)은 AEC 모션 핸들링 모듈(214)에 제공될 수 있는 모션 마스크(216)를 생성하거나 결정할 수 있다. 일부 구성들에서, 모션 추정 모듈(212)은 하나 이상의 모션 벡터들에 대응하는 데이터를 AEC 모션 핸들링 모듈(214)에 제공할 수 있고, AEC 모션 핸들링 모듈(214)은 모션 마스크(216)를 생성하거나 결정할 수 있다. 일부 예들에서, 모션 마스크(216)는 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 픽셀들의 움직임을 나타내는 하나 이상의 모션 벡터들을 포함할 수 있다. 일부 양태들에서, 모션 마스크(216) 내의 모션 벡터들 각각은 글로벌 모션 제거 모듈(210)에 의한 글로벌 모션의 제거 후 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 로컬 모션과 연관된다.
일부 양태들에서, AEC 모션 핸들링 모듈(214)은 가중치 함수를 구현하는 데 사용될 수 있는 하나 이상의 가중치들을 포함할 수 있는 가중치 테이블(218)을 결정 및/또는 포함할 수 있다. 일부 예들에서, 가중치 테이블(218)은 하나 이상의 대응하는 가중치 벡터들에 추가적인 가중치 또는 영향을 부여하는 데 사용될 수 있다. 하나의 예시적인 예에서, AEC 모션 핸들링 모듈(214)은 프레임 'n'(206)의 중앙 영역에서의 모션에 초점을 맞추기 위해 가중치 테이블(218)에서 가중치 값들을 선택할 수 있다. 다른 예에서, AEC 모션 핸들링 모듈(214)은 다수의 객체들이 로컬 모션과 연관된다고 결정할 수 있고, AEC 모션 핸들링 모듈(214)은 객체들 중 하나와 연관된 관심 영역(ROI)에 대응하는 가중치 값들을 선택할 수 있다. 일부 경우들에서, ROI는 가장 큰 객체에 대응하도록 선택될 수 있다. 일부 예들에서, ROI 외부에 있는 가중치 값들은 0과 같은 디폴트 값으로 설정될 수 있다. 일부 양태들에서, 움직이는 객체와 연관되는 가중치 테이블(218) 내의 가중치들의 평균은 1이 될 수 있다. 일부 예들에서, AEC 모션 핸들링 모듈(214) 및/또는 모션 검출 엔진(204)은 머신 러닝 시스템들과 같은 하나 이상의 인공 지능(AI) 러닝 알고리즘들을 구현할 수 있다. 예를 들어, 머신 러닝 시스템들은 모션 마스크(216)를 프로세싱하고 가중치 테이블(218)에 대한 가중치들을 결정하는 데 사용될 수 있다.
일부 경우들에서, AEC 모션 핸들링 모듈(214)은 유한 임펄스 응답(FIR) 필터(220)와 같은 하나 이상의 필터들을 포함할 수 있다. 일부 예들에서, FIR 필터(220)는 모션 마스크(216) 및 가중치 테이블(218)을 사용하여 수행되는 하나 이상의 동작들의 출력을 필터링하는 데 사용될 수 있다. 예를 들어, 모션 마스크(216)(예를 들어, 하나 이상의 모션 벡터들)와 가중치 테이블(218)의 곱은 FIR 필터(220)를 사용하여 필터링될 수 있다.
일부 양태들에서, FIR 필터(220)의 출력은 로컬 모션 크기(228)에 대응할 수 있다. 일부 예들에서, 로컬 모션 크기(228)는 AEC 모션 핸들링 모듈(214)에 의해 결정된 로컬 모션의 크기(예를 들어, 이미지 내의 픽셀들의 상대적 오프셋)를 나타내는 스칼라에 대응할 수 있다. 일부 경우들에서, 로컬 모션 크기(228)는 가중치 테이블(218) 및/또는 FIR 필터(220)의 적용 없이 모션 마스크(216)에 기초하여 결정될 수 있다.
일부 예들에서, 로컬 모션 크기(228) 및 글로벌 모션 데이터(222)는 노출 중재 모듈(224)에 대한 입력들로서 제공될 수 있다. 일부 경우들에서, 노출 중재 모듈(224)은 입력 이미지(202)를 캡처하는 것과 연관된 하나 이상의 파라미터들에 대한 값들을 결정하도록 구성될 수 있다. 예를 들어, 노출 중재 모듈(224)은 노출 시간, 이득(예를 들어, 신호 증폭), 감마, 및/또는 로컬 모션과 연관될 수 있는 임의의 다른 파라미터에 대한 값들을 결정하도록 구성될 수 있다.
일부 경우들에서, 글로벌 모션 데이터(222)는 (예를 들어, 글로벌 모션 제거 모듈(210)에 의해 결정된) 글로벌 모션 크기를 포함할 수 있다. 일부 예들에서, 글로벌 모션 데이터(222)는 글로벌 모션을 결정하는 데 사용되는 센서 데이터(예를 들어, 자이로스코프 데이터, 가속도계 데이터 등)를 포함할 수 있다. 일부 양태들에서, 노출 중재 모듈(224)은 글로벌 모션 데이터(222)에 기초하여 노출 시간 값을 결정할 수 있다. 예를 들어, 노출 중재 모듈(224)은 글로벌 모션 데이터(222)가 임계값보다 크다고 결정할 수 있고, 임계치에 기초하여 대응하는 값을 선택할 수 있다. 하나의 예시적인 실시예에서, 노출 중재 모듈(224)은 글로벌 모션 데이터(222)(예를 들어, 글로벌 모션의 크기)가 2 이상일 때 5.0밀리초(ms)의 노출 시간을 선택할 수 있다.
일부 양태들에서, 노출 중재 모듈(224)은 로컬 모션 크기(228)에 기초하여 노출 시간 값을 결정할 수 있다. 일부 예들에서, 노출 시간 값은 로컬 모션 크기(228)와 반비례 관계에 있을 수 있다. 도 3은 노출 시간 값들과 로컬 모션 크기(228) 사이의 관계를 예시하는 그래프(300)이다. 예를 들어, 그래프(300)에 도시된 바와 같이, 노출 중재 모듈(224)은 로컬 모션 크기(228)가 2의 값을 가질 때 20 ms의 노출 시간 값을 선택할 수 있다. 그래프(300)에 도시된 다른 예에서, 노출 중재 모듈(224)은 로컬 모션 크기(228)가 20의 값을 가질 때 5 ms의 노출 시간 값을 선택할 수 있다. 그래프(300)에 도시된 노출 시간 값들과 로컬 모션 크기(228) 사이의 관계는 예시적인 목적으로 제공되며, 당업자는 본 기술에 따라 상이한 값들 및/또는 파라미터들이 구현될 수 있음을 인식할 것이다.
일부 예들에서, 노출 중재 모듈(224)은 글로벌 모션 데이터(222) 및 로컬 모션 크기(228)에 기초하여 결정되는 하나 이상의 파라미터들을 사용하여 입력 이미지(202)를 프로세싱하도록 구성될 수 있다. 일부 양태들에서, 노출 중재 모듈은 로컬 모션 크기(228) 및/또는 글로벌 모션 데이터(222)에 기초하여 선택된 하나 이상의 파라미터들을 사용하여 생성될 수 있는 출력 이미지(226)를 제공할 수 있다. 예를 들어, 출력 이미지(226)는 로컬 모션 크기(228)에 기초하여 입력 이미지(202)와 상이한 노출 시간을 갖도록 조정될 수 있다.
도 4는 이미지 프로세싱 시스템(400)의 컴포넌트들의 동작들 및 컴포넌트들 사이의 상호작용들을 예시하는 개념도이다. 일부 양태들에서, 이미지 프로세싱 시스템(400)은 글로벌 모션 제거 모듈(402) 및 모션 검출 엔진(404)을 포함할 수 있다. 일부 예들에서, 이미지 프로세싱 시스템(400)은 유효 로컬 모션을 식별하기 위해 글로벌 모션을 식별 및 제거함으로써 입력 이미지(406)를 프로세싱하도록 구성될 수 있다. 일부 예들에서, (예를 들어, 글로벌 모션을 고려한 후에 결정된) 로컬 모션은 (예를 들어, 모션 눈부심을 최소화하거나 감소시키기 위해) 입력 이미지(406)를 조정하는 데 사용될 수 있는 하나 이상의 파라미터들을 결정하는 데 사용될 수 있다.
일부 양태들에서, 글로벌 모션 제거 모듈(402)은 하나 이상의 모션 센서들(408)을 포함하거나 그에 커플링될 수 있다. 일부 예들에서, 하나 이상의 모션 센서들(408)은 자이로스코프, 가속도계, 자력계, 관성 측정 유닛(IMU), 및/또는 카메라의 움직임 또는 위치를 측정하도록 구성될 수 있는 임의의 다른 센서를 포함할 수 있다. 일부 양태들에서, 글로벌 모션 제거 모듈(402)은 입력 이미지(406)를 캡처하는 동안 카메라의 움직임과 연관된 데이터를 포함할 수 있는 (예를 들어, 모션 센서들(408)로부터의) 글로벌 모션 데이터(410)를 획득하거나 결정할 수 있다.
일부 예들에서, 글로벌 모션 제거 모듈(402)은 글로벌 모션 데이터(410)를, 입력 이미지(406)에 대응하는 하나 이상의 프레임들(예를 들어, 프레임 'n-1'(424) 및/또는 프레임 'n'(426))과 상관시킬 수 있다. 예를 들어, 자이로스코프 및/또는 가속도계 데이터(412)는 하나 이상의 시간 간격들(414)에 대응하도록 파싱될 수 있다. 일부 양태들에서, 글로벌 모션 제거 모듈(402)은 글로벌 모션 데이터(410)에 기초하여 디바이스 회전 벡터 및/또는 디바이스 병진 벡터를 계산할 수 있다. 일부 예들에서, 시간 간격들(414)은 각각의 프레임을 캡처하기 위한 노출 시간에 대응할 수 있다.
일부 양태들에서, 글로벌 모션 제거 모듈(402)은 IMU 사전-통합(pre-integration) 모듈(418)을 포함할 수 있다. 일부 예들에서, IMU 사전-통합 모듈(418)은 입력 이미지(406)에 대응하는 각각의 프레임과 연관된 글로벌 모션을 결정하는 데 사용될 수 있다. 일부 경우들에서, IMU 사전-통합 모듈(418)은 전자 이미지 안정화(EIS) 알고리즘들을 구현하여 글로벌 모션을 결정할 수 있다. 일부 양태들에서, IMU 사전-통합 모듈(418)은 자이로스코프 및/또는 가속도계 데이터(412)를 프로세싱 및 필터링하여, 하나 이상의 프레임들에 대응하는 하나 이상의 데이터 포인트들을 식별할 수 있다. 예를 들어, 그래픽 표현(416)은 (예를 들어, 샘플링 레이트에 기초한) 시간 시퀀스에서의 IMU 데이터에 대응하는 일련의 'x' 심볼들, 및 (예를 들어, IMU 사전-통합 모듈(418)에 의해 계산된 바와 같은) 평균 속력에 대응하는 단일 사전-통합 IMU 데이터 포인트를 예시한다. 일부 경우들에서, IMU 사전-통합 모듈(418)은 다음 식들 중 하나 이상을 사용하여 회전 벡터 R, 속력 v, 및/또는 위치 벡터 p를 계산함으로써 글로벌 모션을 결정할 수 있다:
일부 양태들에서, 전술한 식들의 변수들은 다음과 같이 정의된다:
일부 예들에서, IMU 사전-통합 모듈(418)의 출력은 글로벌 모션 제거 모듈(420)에 제공될 수 있다. 일부 양태들에서, 글로벌 모션 제거 모듈(420)은 프레임 'n-1'(424) 및 프레임 'n'(426)에서의 하나 이상의 객체들의 위치를 조정하는 데 사용될 수 있는 글로벌 모션 데이터(422)를 제공할 수 있다. 일부 예들에서, 글로벌 모션 데이터(422)는 로컬 모션을 검출하기 위해 프레임들을 프로세싱하기 전에 각각의 프레임(예를 들어, 프레임 'n-1'(424) 및 프레임 'n'(426))에 대한 글로벌 모션을 제거 및/또는 보상하는 데 사용될 수 있다.
일부 양태들에서, 모션 검출 모듈(404)은 이미지 기반 알고리즘(예를 들어, 광학 흐름 알고리즘)을 사용함으로써 로컬 모션을 결정할 수 있다. 예를 들어, 모션 검출 모듈(404)은 프레임 'n-1'(424) 및 프레임 'n'(426) 내의 픽셀들 중 하나 이상에 대한 움직임의 방향 및 크기를 나타내는 하나 이상의 모션 벡터들을 결정할 수 있다. 일부 예들에서, 모션 검출 엔진은 프레임들 사이에서의 객체들의 로컬 모션을 검출하고 모션 마스크(430)를 제공하도록 구성될 수 있는 모션 추정 모듈(428)을 포함할 수 있다. 일부 예들에서, 모션 마스크(430)는 도 2와 관련하여 논의된 바와 같은 모션 마스크(216)에 대응할 수 있다.
도 5는 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 예시적인 프로세스(500)를 예시하는 흐름도이다. 블록(502)에서, 프로세스(500)는 하나 이상의 이미지 프레임들의 캡처 동안 디바이스 모션을 검출하는 것을 포함한다. 일부 양태들에서, 디바이스 모션은 자이로스코프, 가속도계, 자력계, 및/또는 관성 측정 유닛(IMU)과 같은 디바이스 또는 카메라와 연관된 하나 이상의 센서들을 사용하여 검출될 수 있다. 일부 예들에서, 디바이스 모션은 이미지 또는 프레임에서 글로벌 모션을 야기할 수 있다. 예를 들어, 사용자에 의한 손 움직임 또는 지터는 정지된 객체들이 움직이고 있는 것처럼(예를 들어, 글로벌 모션) 보이게 할 수 있다. 글로벌 모션은 로컬 모션(예를 들어, 프레임들 사이에서의 객체들의 실제 움직임)을 보상하도록 의도된 알고리즘들에 부정적인 영향을 미칠 수 있다.
블록(504)에서, 프로세스(500)는 디바이스 모션으로 인한 하나 이상의 이미지 프레임들 내의 글로벌 모션을 결정하는 것을 포함한다. 일부 예들에서, 글로벌 모션은 전자 이미지 안정화(EIS) 알고리즘들을 사용하여 결정될 수 있다. 일부 양태들에서, 글로벌 모션은 특정 프레임과 연관된 시간 간격에 기초하여 결정될 수 있다. 예를 들어, 글로벌 모션은 프레임을 캡처하기 위한 노출 시간에 대응하는 시간 간격에 기초하여 결정될 수 있다. 일부 경우들에서, 글로벌 모션을 결정하는 것은 (예를 들어, 센서 데이터에 기초하여) 디바이스 회전 벡터 및/또는 디바이스 병진 벡터를 결정하는 것을 포함할 수 있다.
블록(506)에서, 프로세스(500)는 글로벌 모션 값이 임계값보다 큰지 여부를 결정하는 것을 포함한다. 일부 예들에서, 임계값은 최소 노출 시간과 연관될 수 있는 높은 레벨의 글로벌 모션에 대응할 수 있다. 글로벌 모션 값이 임계값보다 큰 경우, 프로세스(500)는 블록(508)으로 진행할 수 있다. 블록(508)에서, 프로세스(500)는 글로벌 모션을 감소시키기 위해 노출 시간에 대한 디폴트 값을 선택하는 것을 포함한다. 일부 경우들에서, 디폴트 값은 글로벌 모션 임계값에 기초하여 선택되는 최소 노출 시간에 대응할 수 있다. 일부 양태들에서, 최소 노출 시간 값은 글로벌 모션에 기초하여 선택될 수 있으며 로컬 모션에 독립적일 수 있다. 예를 들어, 글로벌 모션이 2 이상일 때 5.0밀리초(ms)의 최소 노출 시간이 선택될 수 있다.
일부 예들에서, 글로벌 모션 값이 임계값보다 크지 않은 경우, 프로세스(500)는 블록(512)으로 진행할 수 있다. 블록(512)에서, 프로세스(500)는 글로벌 모션 보상 후 하나 이상의 이미지 프레임들 내의 로컬 모션을 결정하는 것을 포함한다. 일부 양태들에서, 로컬 모션을 결정하는 것은 글로벌 모션을 제거하도록 조정된 이미지 프레임들 사이의 모션 벡터들을 결정하는 것을 포함할 수 있다. 일부 경우들에서, 모션 벡터들은 제1 이미지 프레임으로부터 제2 이미지 프레임으로의 픽셀의 움직임을 나타낼 수 있다. 일부 예들에서, 모션 벡터들의 가중치들은 가중치 테이블을 사용하여 조정될 수 있다. 예를 들어, 가중치 테이블은 특정 관심 영역 내의 객체들의 움직임에 초점을 맞추도록 구성할 수 있다.
블록(514)에서, 프로세스(500)는 로컬 모션 크기에 기초하여 노출 시간에 대한 값을 선택하는 것을 포함한다. 일부 양태들에서, 노출 시간은 로컬 모션으로 인한 모션 블러를 최소화하도록 선택될 수 있다. 일부 예들에서, 노출 시간은 로컬 모션 크기에 반비례 관계를 가질 수 있다(예를 들어, 도 3의 그래프(300) 참조).
블록(510)에서, 프로세스(500)는 글로벌 모션 및/또는 로컬 모션에 대해 조정된 출력 이미지를 제공하는 것을 포함한다. 일부 예들에서, 출력 이미지는 로컬 모션의 크기에 기초하여 선택되는 노출 시간을 사용하여 제공될 수 있다. 일부 양태들에서, 출력 이미지는 글로벌 모션의 크기에 기초하여 선택되는 노출 시간을 사용하여 제공될 수 있다. 일부 경우들에서, 출력 이미지는 글로벌 모션 및/또는 로컬 모션에 의해 야기된 모션 블러가 감소된, 개선된 이미지 품질을 가질 수 있다.
도 6은 이미지 프레임들에서의 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 예시적인 프로세스(600)를 예시하는 흐름도이다. 블록(602)에서, 프로세스(600)는, 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하는 것을 포함한다. 일부 예들에서, 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 및 관성 측정 유닛(IMU) 중 적어도 하나를 포함할 수 있다. 일부 양태들에서, 이미지 캡처 디바이스의 움직임은 복수의 이미지 프레임들 각각에 대응하는 노출 시간 동안 발생할 수 있다. 예를 들어, 글로벌 모션 제거 모듈(402)은 모션 센서들(408)로부터의 데이터를 사용하여, 프레임 'n-1'(424) 및/또는 프레임 'n'(426)의 캡처 동안 카메라의 움직임을 결정할 수 있다.
블록(604)에서, 프로세스(600)는 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하는 것을 포함한다. 일부 양태들에서, 적어도 하나의 객체의 위치를 조정하는 것은 전자 이미지 안정화(EIS) 보상을 계산하는 것을 포함한다. 예를 들어, 모션 검출 엔진(204)은 EIS 알고리즘을 구현함으로써 프레임 'n-1'(208) 및 프레임 'n'(206) 각각에서의 적어도 하나의 객체의 위치를 조정할 수 있다.
블록(606)에서, 프로세스(600)는 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하는 것을 포함한다. 일부 예들에서, 적어도 하나의 객체의 모션을 결정하는 것은 복수의 이미지 프레임들 사이의 광학 흐름을 결정하는 것을 포함한다. 일부 양태들에서, 적어도 하나의 객체의 모션을 결정하는 것은 복수의 이미지 프레임들로부터 제1 이미지 프레임과 제2 이미지 프레임 사이의 모션 마스크를 결정하는 것을 포함한다. 일부 경우들에서, 모션 마스크는 제1 이미지 프레임과 제2 이미지 프레임 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함한다.
예를 들어, 모션 검출 엔진(204)은 프레임 'n'(206) 및 프레임 'n-1'(208) 사이에서의 (예를 들어, 글로벌 모션에 대해 보상된) 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 로컬 모션을 결정할 수 있다. 일부 양태들에서, 모션 검출 엔진(204)은 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 광학 흐름을 결정할 수 있다. 일부 예들에서, 모션 검출 엔진(204) 및/또는 AEC 모션 핸들링 모듈(214)은 모션 마스크(216)를 결정할 수 있다. 일부 양태들에서, 모션 마스크(216)는 프레임 'n'(206)과 프레임 'n-1'(208) 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함할 수 있다.
블록(608)에서, 프로세스(600)는 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하는 것을 포함한다. 일부 예들에서, 적어도 하나의 이미지 캡처 파라미터는 노출 시간 및 이득 중 적어도 하나를 포함한다. 예를 들어, 노출 중재 모듈(224)은 글로벌 모션 데이터(222) 및/또는 로컬 모션 크기(228)에 기초하여 이미지 캡처 파라미터를 결정할 수 있다. 일부 양태들에서, 이미지 캡처 디바이스의 움직임이 임계값보다 크다고 결정하는 것에 응답하여 적어도 하나의 이미지 캡처 파라미터에 대해 디폴트 값이 선택될 수 있다. 예를 들어, 노출 중재 모듈(224)은 글로벌 모션 데이터(222)가 임계값 이상인 경우 디폴트 노출 시간을 선택할 수 있다.
일부 예들에서, 프로세스는 하나 이상의 모션 벡터들의 적어도 일부에 대응하는 하나 이상의 가중치 값들을 포함하는 가중치 테이블을 결정하는 것을 포함할 수 있다. 일부 양태들에서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 중앙 영역에 기초하여 선택된다. 일부 경우들에서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 관심 영역(ROI)에 기초하여 선택된다. 일부 경우들에서, 관심 영역 외부의 영역에 대응하는 하나 이상의 가중치 값들의 일부는 0으로 설정된다. 예를 들어, AEC 모션 핸들링 모듈(214)은 가중치 함수를 구현하는 데 사용될 수 있는 하나 이상의 가중치들을 포함할 수 있는 가중치 테이블(218)을 결정할 수 있다. 일부 예들에서, 가중치 테이블(218)은 하나 이상의 대응하는 가중치 벡터들에 추가적인 가중치 또는 영향을 부여하는 데 사용될 수 있다. 하나의 예시적인 예에서, AEC 모션 핸들링 모듈(214)은 프레임 'n'(206)의 중앙 영역에서의 모션에 초점을 맞추기 위해 가중치 테이블(218)에서 가중치 값들을 선택할 수 있다. 다른 예에서, AEC 모션 핸들링 모듈(214)은 다수의 객체들이 로컬 모션과 연관된다고 결정할 수 있고, AEC 모션 핸들링 모듈(214)은 객체들 중 하나와 연관된 관심 영역(ROI)에 대응하는 가중치 값들을 선택할 수 있다.
일부 예들에서, 본 명세서에 설명된 프로세스들(예를 들어, 프로세스(500), 프로세스(600), 및/또는 본 명세서에 설명된 다른 프로세스)은 컴퓨팅 디바이스 또는 장치에 의해 수행될 수 있다. 일 예에서, 프로세스(500) 및/또는 프로세스(600)는 도 1의 이미지 프로세싱 및 캡처 시스템(100)에 의해 수행될 수 있다. 다른 예에서, 프로세스(500) 및/또는 프로세스(600)은 도 7에 도시된 컴퓨팅 시스템(700)을 갖는 컴퓨팅 디바이스에 의해 수행될 수 있다. 예를 들어, 도 7에 도시된 컴퓨팅 아키텍처를 갖는 컴퓨팅 디바이스는 이미지 프로세싱 및 캡처 시스템(100)의 컴포넌트들을 포함할 수 있고 도 5 및 도 6의 동작들을 구현할 수 있다.
컴퓨팅 디바이스는 임의의 적합한 디바이스, 예컨대 모바일 디바이스(예를 들어, 모바일 폰), 데스크톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 웨어러블 디바이스(예를 들어, VR 헤드셋, AR 헤드셋, AR 안경, 네트워크 접속형 시계 또는 스마트워치, 또는 다른 웨어러블 디바이스), 서버 컴퓨터, 자율주행 차량 또는 자율주행 차량의 컴퓨팅 디바이스, 로보틱 디바이스, 텔레비전, 및/또는 프로세스(800)를 포함하는, 본 명세서에서 설명된 프로세스들을 수행하기 위한 자원 능력들을 갖는 임의의 다른 컴퓨팅 디바이스를 포함할 수 있다. 일부 경우들에서, 컴퓨팅 디바이스 또는 장치는 하나 이상의 입력 디바이스들, 하나 이상의 출력 디바이스들, 하나 이상의 프로세서들, 하나 이상의 마이크로프로세서들, 하나 이상의 마이크로컴퓨터들, 하나 이상의 카메라들, 하나 이상의 센서들, 및/또는 본 명세서에 설명된 프로세스들의 단계들을 수행하도록 구성되는 다른 컴포넌트(들)와 같은 다양한 컴포넌트들을 포함할 수 있다. 일부 예들에서, 컴퓨팅 디바이스는 디스플레이, 데이터를 통신 및/또는 수신하도록 구성된 네트워크 인터페이스, 이들의 임의의 조합, 및/또는 다른 컴포넌트(들)를 포함할 수 있다. 네트워크 인터페이스는 인터넷 프로토콜(IP) 기반 데이터 또는 다른 유형의 데이터를 통신 및/또는 수신하도록 구성될 수 있다.
컴퓨팅 디바이스의 컴포넌트들은 회로부에서 구현될 수 있다. 예를 들어, 컴포넌트들은 하나 이상의 프로그래밍가능 전자 회로들(예를 들어, 마이크로프로세서들, 그래픽 프로세싱 유닛(GPU)들, 디지털 신호 프로세서(DSP)들, 중앙 프로세싱 유닛(CPU)들 및/또는 다른 적합한 전자 회로들)을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고/거나 이들을 사용하여 구현될 수 있으며, 그리고/또는 본 명세서에서 설명되는 다양한 동작들을 수행하기 위해 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고/거나 이들을 사용하여 구현될 수 있다.
프로세스(500) 및 프로세스(600)는 논리 흐름도들로서 도시되는데, 그 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들과 관련하여, 동작들은 하나 이상의 컴퓨터 판독가능 저장 매체들 상에 저장된 컴퓨터 실행가능 명령들을 표현하며, 이러한 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 열거된 동작들을 수행한다. 대체적으로, 컴퓨터 실행가능 명령들은 특정 기능들을 수행하거나 특정 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되는 것으로 의도되지 않으며, 임의의 수의 설명되는 동작들이 임의의 순서로 그리고/또는 병렬로 조합되어 프로세스들을 구현할 수 있다.
추가적으로, 프로세스(500), 프로세스(600), 및/또는 본 명세서에 설명된 다른 프로세스는 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수 있고, 하나 이상의 프로세서들 상에서, 하드웨어에 의해, 또는 이들의 조합들로 집합적으로 실행되는 코드(예를 들어, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들)로서 구현될 수 있다. 위에서 언급된 바와 같이, 코드는 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로, 컴퓨터 판독가능 또는 머신 판독가능 저장 매체 상에 저장될 수 있다. 컴퓨터 판독가능 또는 머신 판독가능 저장 매체는 비일시적일 수 있다.
도 7은 본 기술의 특정 양태들을 구현하기 위한 시스템의 일 예를 예시한 도면이다. 특히, 도 7은 예를 들어 내부 컴퓨팅 시스템, 원격 컴퓨팅 시스템, 카메라 또는 이들의 임의의 컴포넌트를 구성하는 임의의 컴퓨팅 디바이스일 수 있는 컴퓨팅 시스템(700)의 예를 예시하고, 여기서 시스템의 컴포넌트들은 접속(705)을 사용하여 서로 통신한다. 접속(705)은 버스를 사용한 물리적 접속이거나, 또는 칩셋 아키텍처에서와 같이 프로세서(710)로의 직접 접속일 수 있다. 접속(705)은, 또한 가상 접속, 네트워크 접속 또는 논리적 접속일 수 있다.
일부 실시예들에서, 컴퓨팅 시스템(700)은 본 개시내용에서 설명된 기능들이 데이터 센터, 다중 데이터 센터들, 피어 네트워크 등 내에서 분산될 수 있는 분산 시스템이다. 일부 실시예들에서, 설명된 시스템 컴포넌트들 중 하나 이상은 컴포넌트가 설명된 기능의 일부 또는 전체를 각각 수행하는 많은 그러한 컴포넌트들을 표현한다. 일부 실시예들에서, 컴포넌트들은 물리적 디바이스 또는 가상 디바이스들일 수 있다.
예시적인 시스템(700)은 적어도 하나의 프로세싱 유닛(CPU 또는 프로세서)(710), 및 판독전용 메모리(ROM)(720) 및 랜덤 액세스 메모리(RAM)(725)와 같은 메모리 유닛(715)을 포함하는 다양한 시스템 컴포넌트들을 프로세서(710)에 커플링시키는 접속(705)을 포함한다. 컴퓨팅 시스템(700)은 프로세서(710)와 직접 접속되거나, 이에 매우 근접하거나, 또는 이의 일부로서 통합된 고속 메모리의 캐시(712)를 포함할 수 있다.
프로세서(710)는 프로세서(710)를 제어하도록 구성된 저장 디바이스(730)에 저장된 서비스들(732, 734 및 736)과 같은 임의의 범용 프로세서 및 하드웨어 서비스 또는 소프트웨어 서비스 뿐만 아니라 소프트웨어 명령들이 실제 프로세서 설계에 통합되는 특수 목적 프로세서를 포함할 수 있다. 프로세서(710)는 본질적으로 다수의 코어들 또는 프로세서들, 버스, 메모리 제어기, 캐시 등을 포함하는, 완전한 자급식(self-contained) 컴퓨팅 시스템일 수 있다. 멀티-코어 프로세서는 대칭 또는 비대칭일 수 있다.
사용자 상호작용을 가능하게 하기 위해, 컴퓨팅 시스템(700)은 음성용 마이크로폰, 제스처 또는 그래픽 입력용 터치 감지 스크린, 키보드, 마우스, 모션 입력, 음성 등과 같은 임의의 수의 입력 메커니즘들을 표현할 수 있는 입력 디바이스(745)를 포함한다. 컴퓨팅 시스템(700)은 또한 다수의 출력 메커니즘들 중 하나 이상일 수 있는 출력 디바이스(735)를 포함할 수 있다. 일부 경우들에서, 다중모드 시스템은 사용자로 하여금 컴퓨팅 시스템(700)과 통신하기 위해 다수의 유형의 입력/출력을 제공할 수 있게 할 수 있다. 컴퓨팅 시스템(700)은, 사용자 입력 및 시스템 출력을 일반적으로 통제하고 관리할 수 있는 통신 인터페이스(740)를 포함할 수 있다. 통신 인터페이스는 오디오 잭/플러그, 마이크로폰 잭/플러그, 범용 직렬 버스(USB) 포트/플러그, Apple® Lightning® 포트/플러그, 이더넷 포트/플러그, 광섬유 포트/플러그, 사유의(proprietary) 유선 포트/플러그, BLUETOOTH® 무선 신호 전송, BLUETOOTH® 저에너지(BLE) 무선 신호 전송, IBEACON® 무선 신호 전송, 무선 주파수 식별(RFID) 무선 신호 전송, 근거리 통신(NFC) 무선 신호 전송, DSRC(dedicated short range communication) 무선 신호 전송, 802.11 Wi-Fi 무선 신호 전송, WLAN(wireless local area network) 신호 전송, VLC(Visible Light Communication), WiMAX(Worldwide Interoperability for Microwave Access), 적외선(IR) 통신 무선 신호 전송, PSTN(Public Switched Telephone Network) 신호 전송, ISDN(Integrated Services Digital Network) 신호 전송, 3G/4G/5G/LTE 셀룰러 데이터 네트워크 무선 신호 전송, ad-hoc 네트워크 신호 전송, 전파 신호 전송, 마이크로파 신호 전송, 적외선 신호 전송, 가시광 신호 전송, 자외광 신호 전달, 전자기 스펙트럼을 따른 무선 신호 전송, 또는 이들의 일부 조합을 이용하는 것들을 포함하는, 유선 및/또는 무선 트랜시버를 사용한 유선 또는 무선 통신 수신 및/또는 송신을 수행하거나 또는 가능하게 할 수 있다. 통신 인터페이스(740)는 또한 하나 이상의 GNSS(Global Navigation Satellite System) 시스템과 연관된 하나 이상의 위성으로부터 하나 이상의 신호의 수신에 기초하여 컴퓨팅 시스템(700)의 위치를 결정하는 데 사용되는 하나 이상의 GNSS 수신기 또는 트랜시버를 포함할 수 있다. GNSS 시스템은 미국 기반의 GPS(Global Positioning System), 러시아 기반의 GLONASS(Global Navigation Satellite System), 중국 기반의 BDS(BeiDou Navigation Satellite System) 및 유럽 기반의 갈릴레오 GNSS를 포함하지만 이에 국한되지는 않는다. 임의의 특정 하드웨어 배열에 대해 동작하는 것에 대한 어떠한 제한도 없으며, 따라서, 여기에서의 기본 특징들은 개선된 하드웨어 또는 펌웨어 배열들이 개발됨에 따라 이들로 쉽게 대체될 수 있다.
저장 디바이스(730)는 비휘발성 및/또는 비일시적 및/또는 컴퓨터 판독가능 메모리 디바이스일 수 있고, 다음과 같은 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 하드 디스크 또는 다른 유형들의 컴퓨터 판독가능 매체들일 수 있다: 자기 카세트들, 플래시 메모리 카드들, 솔리드 스테이트 메모리 디바이스들, 디지털 다기능 디스크들, 카트리지들, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 자기 스트립/스트라이프, 임의의 다른 자기 저장 매체, 플래시 메모리, 멤리스터 메모리, 임의의 다른 솔리드-스테이트 메모리, 컴팩트 디스크 판독 전용 메모리(CD-ROM) 광 디스크, 재기록가능 컴팩트 디스크(CD) 광 디스크, 디지털 비디오 디스크(DVD) 광 디스크, 블루-레이 디스크(BDD) 광 디스크, 홀로그래픽 광 디스크, 다른 광학 매체, 보안 디지털(SD) 카드, 마이크로 보안 디지털(microSD) 카드, Memory Stick® 카드, 스마트카드 칩, EMV 칩, 가입자 아이덴티티 모듈(SIM) 카드, 미니/마이크로/나노/피코 SIM 카드, 다른 집적 회로(IC) 칩/카드, 랜덤 액세스 메모리(RAM), 정적 RAM(SRAM), 동적 RAM(DRAM), 판독 전용 메모리(ROM), 프로그래밍가능 판독 전용 메모리(PROM), 소거가능한 프로그래밍가능 판독 전용 메모리(EPROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(EEPROM), 플래시 EPROM(FLASHEPROM), 캐시 메모리(L1/L2/L3/L4/L5/L#), 저항성 랜덤 액세스 메모리(RRAM/ReRAM), 상 변화 메모리(PCM), 스핀 전달 토크 RAM(STT-RAM), 다른 메모리 칩 또는 카트리지, 및/또는 이들의 조합.
저장 디바이스(730)는, 그러한 소프트웨어를 정의하는 코드가 프로세서(710)에 의해 실행될 경우 시스템으로 하여금 기능을 수행하게 하는 소프트웨어 서비스들, 서버들, 서비스들 등을 포함할 수 있다. 일부 실시예들에서, 특정 기능을 수행하는 하드웨어 서비스는, 그 기능을 수행하기 위해, 프로세서(710), 접속(705), 출력 디바이스(735) 등과 같은 필요한 하드웨어 컴포넌트들과 관련하여 컴퓨터 판독가능 매체에 저장된 소프트웨어 컴포넌트를 포함할 수 있다.
본 명세서에 사용되는 바와 같이, 용어 "컴퓨터 판독가능 매체(computer-readable medium)"는, 휴대 또는 비휴대 저장 디바이스, 광학 저장 디바이스, 및 명령(들) 및/또는 데이터를 저장, 포함 또는 운반할 수 있는 다양한 다른 매체를 포함하지만, 이에 한정되지는 않는다. 컴퓨터 판독가능 매체는 데이터가 저장될 수 있고 무선으로 또는 유선 접속들을 통해 전파되는 반송파들 및/또는 일시적 전자 신호들을 포함하지 않는 비일시적 매체를 포함할 수 있다. 비일시적 매체의 예들은 자기 디스크 또는 테이프, CD(compact disk) 또는 DVD(digital versatile disk)와 같은 광학 저장 매체들, 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함할 수 있지만, 이것들로 제한되지는 않는다. 컴퓨터 판독가능 매체 상에는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들 또는 프로그램 명령문들의 임의의 조합을 나타낼 수 있는 코드 및/또는 머신 실행가능 명령들이 저장될 수 있다. 코드 세그먼트는 정보, 데이터, 인수(argument)들, 파라미터들, 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함한 임의의 적합한 수단을 사용하여 전달, 포워딩, 또는 송신될 수 있다.
일부 실시예들에서, 컴퓨터 판독가능 저장 디바이스들, 매체들, 및 메모리들은 비트 스트림 등을 포함하는 케이블 또는 무선 신호를 포함할 수 있다. 그러나, 언급될 때, 비일시적 컴퓨터 판독가능 저장 매체들은 에너지, 반송파 신호들, 전자기파들, 및 신호들 그 자체와 같은 매체들을 명시적으로 배제한다.
본 명세서에서 제공되는 실시예들 및 예들의 철저한 이해를 제공하기 위해, 특정 세부사항들이 위의 설명에서 제공된다. 그러나, 실시예들은 이러한 특정 세부사항들 없이 실시될 수 있다고 당업자에 의해 이해될 것이다. 설명의 명확성을 위해, 일부 경우들에서, 본 기술은 디바이스들, 디바이스 컴포넌트들, 소프트웨어로 구현되는 방법의 단계들 또는 루틴들, 또는 하드웨어와 소프트웨어의 조합들을 포함하는 기능 블록들을 포함하는 개별 기능 블록들을 포함하는 것으로 제시될 수 있다. 도면들에 도시된 그리고/또는 본 명세서에서 설명되는 것들 이외의 추가 컴포넌트들이 사용될 수 있다. 예를 들어, 불필요한 세부사항으로 실시예들을 모호하게 하지 않도록 회로들, 시스템들, 네트워크들, 프로세스들 및 다른 컴포넌트들은 블록도 형태의 컴포넌트들로서 도시될 수 있다. 다른 경우들에서, 실시예들을 모호하게 하는 것을 피하기 위해, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들이 불필요한 세부사항 없이 도시될 수 있다.
개별 실시예들은 위에서 흐름도, 순서도, 데이터 순서도, 구조도, 또는 블록도로서 도시된 프로세스 또는 방법으로서 설명될 수 있다. 흐름도가 동작들을 순차적인 프로세스로서 설명할 수 있지만, 동작들의 대부분은 병렬로 또는 동시에 수행될 수 있다. 추가로, 동작들의 순서는 재-배열될 수 있다. 프로세스는 프로세서의 동작들이 완료될 때 종료되지만 도면에 포함되지 않은 추가 단계들을 가질 수 있다. 프로세스는 방법, 함수, 프로시저(procedure), 서브루틴(subroutine), 서브프로그램(subprogram) 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 그 종료는 호출 함수 또는 메인 함수로의 함수의 복귀에 대응할 수 있다.
위에서 설명된 예들에 따른 프로세스들 및 방법들은 컴퓨터 판독가능 매체들로부터 저장되거나 아니면 컴퓨터 판독가능 매체들로부터 이용가능한 컴퓨터 실행가능 명령들을 사용하여 구현될 수 있다. 그러한 명령들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 프로세싱 디바이스로 하여금 특정 기능 또는 기능들의 그룹을 수행하게 하거나, 또는 달리 그것을 구성하는 명령들 및 데이터를 포함할 수 있다. 사용되는 컴퓨터 자원들의 부분들은 네트워크를 통해 액세스가능할 수 있다. 컴퓨터 실행가능 명령들은, 예를 들어, 어셈블리 언어, 펌웨어, 소스 코드 등과 같은 이진수들, 중간 포맷 명령들일 수 있다. 명령들, 사용되는 정보, 및/또는, 설명된 예들에 따른 방법들 동안 형성된 정보를 저장하기 위해 사용될 수 있는 컴퓨터 판독가능 매체들의 예들은 자기 또는 광학 디스크들, 플래시 메모리, 비휘발성 메모리가 제공된 USB 디바이스들, 네트워킹된 저장 디바이스들 등을 포함한다.
이들 개시내용들에 따른 프로세스들 및 방법들을 구현하는 디바이스들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어들, 또는 이들의 임의의 조합을 포함할 수 있고, 다양한 폼 팩터들 중 임의의 폼 팩터를 취할 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들(예를 들어, 컴퓨터 프로그램 제품)은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수 있다. 프로세서(들)는 필요한 작업들을 수행할 수 있다. 폼 팩터들의 통상적인 예들은 랩톱들, 스마트 폰들, 모바일 폰들, 태블릿 디바이스들 또는 다른 소형 개인용 컴퓨터들, 개인용 디지털 어시스턴트들, 랙마운트 디바이스들, 독립형 디바이스들 등을 포함한다. 본 명세서에서 설명되는 기능은 또한 주변 기기들 또는 애드인(add-in) 카드들로 구현될 수 있다. 그러한 기능은 또한 추가 예로서, 단일 디바이스에서 실행되는 상이한 프로세스들 또는 상이한 칩들 사이의 회로 기판 상에서 구현될 수 있다.
명령들, 그러한 명령들을 전달하기 위한 매체들, 명령들을 실행하기 위한 컴퓨팅 자원들, 및 그러한 컴퓨팅 자원들을 지원하기 위한 다른 구조들은 본 개시내용에서 설명되는 기능들을 제공하기 위한 예시적인 수단들이다.
위의 설명에서, 본 출원의 양태들은 본 출원의 특정 실시예들을 참조하여 설명되지만, 당업자들은 본 출원이 이에 제한되지 않음을 인식할 것이다. 따라서, 본 출원의 예시적인 실시예들이 본 명세서에서 상세히 설명되었지만, 본 발명의 개념들은 다른 방식으로 다양하게 구현 및 채용될 수 있고, 첨부된 청구항들은 종래 기술에 의해 제한된 것을 제외하면, 그러한 변형들을 포함하는 것으로 해석되어야 한다고 이해되어야 한다. 위에서 설명된 애플리케이션의 다양한 특징들 및 양태들은 개별적으로 또는 공동으로 사용될 수 있다. 추가로, 실시예들은, 본 명세서의 더 넓은 사상 및 범주를 벗어나지 않으면서, 본 명세서에서 설명되는 것들 이외의 임의의 수의 환경들 및 애플리케이션들에서 이용될 수 있다. 그에 따라, 본 명세서 및 도면들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다. 예시의 목적들로, 방법들은 특정 순서로 설명되었다. 대안적인 실시예들에서, 방법들은 설명된 것과 상이한 순서로 수행될 수 있다고 인식되어야 한다.
당업자는 본 명세서에서 사용된 미만("<") 및 초과(">") 기호들 또는 용어가 본 설명의 범위를 벗어나지 않으면서 이하("") 및 이상("≥") 기호들로 각각 대체될 수 있음을 이해할 것이다.
컴포넌트들이 특정 동작을 수행하도록 "구성된" 것으로 기술되는 경우, 그러한 구성은 예를 들어, 전자 회로 또는 다른 하드웨어를 설계하여 그 동작을 수행하는 것에 의해, 프로그래밍가능한 전자 회로(예를 들어, 마이크로프로세서 또는 다른 적절한 전자 회로)를 프로그래밍하여 그 동작을 수행하는 것에 의해 또는 이들의 임의의 조합에 의해, 달성될 수 있다.
문구 "~에 커플링된(coupled to)"은 다른 컴포넌트에 직접적으로 또는 간접적으로 물리적으로 접속된 임의의 컴포넌트, 및/또는, 다른 컴포넌트와 직접적으로 또는 간접적으로 통신하는 (예컨대, 유선 또는 무선 접속, 및/또는 다른 적합한 통신 인터페이스를 통해 다른 컴포넌트에 접속된) 임의의 컴포넌트를 지칭한다.
세트 "중 적어도 하나" 및/또는 세트 "중 하나 이상"을 인용하는 청구항 언어 또는 기타 언어는 그 세트 중 하나의 멤버 또는 그 세트 중 다수의 멤버들이 (임의의 조합으로) 청구항을 만족하는 것을 나타낸다. 예를 들어, "A 및 B 중 적어도 하나"를 인용하는 청구항 언어는 A, B, 또는 A와 B를 의미한다. 다른 예에서, "A, B 및 C 중 적어도 하나"를 인용하는 청구항 언어는 A, B, C, 또는 A와 B, 또는 A와 C, 또는 B와 C, 또는 A와 B와 C를 의미한다. 그 언어, 세트 "중 적어도 하나" 및/또는 세트 중 "하나 이상"은 세트를 그 세트에 열거된 항목들로 제한하지 않는다. 예를 들어, "A 및 B 중 적어도 하나"를 인용하는 청구항 언어는 A, B, 또는 A와 B를 의미할 수 있고, A 및 B의 세트에 열거되지 않은 항목들을 추가적으로 포함할 수 있다.
본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그것들의 기능의 관점에서 대체적으로 위에서 설명되었다. 그러한 기능이 하드웨어로 구현되는지, 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 대해 부과된 설계 제한들에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션마다 다양한 방식들로 구현할 수 있지만, 그러한 구현 결정들이 본 출원의 범주를 벗어나게 하는 것으로 해석되지는 않아야 한다.
본 명세서에서 설명되는 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 그러한 기법들은 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 적용을 포함하여 다수의 용도들을 갖는 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들 또는 집적 회로 디바이스들과 같은 다양한 디바이스들 중 임의의 디바이스에서 구현될 수 있다. 모듈들 또는 컴포넌트들로서 설명되는 임의의 특징들은 통합된 로직 디바이스로 함께 또는 개별적이지만 상호 운용가능한 로직 디바이스들로서 별개로 구현될 수 있다. 소프트웨어로 구현된다면, 이 기법들은 적어도 부분적으로는, 실행될 때 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 실현될 수 있다. 컴퓨터 판독가능 데이터 저장 매체는 패키징 재료들을 포함할 수 있는 컴퓨터 프로그램 제품의 일부를 형성할 수 있다. 컴퓨터 판독가능 매체는 메모리 또는 데이터 저장 매체들, 예컨대 RAM(random access memory), 예컨대 SDRAM(synchronous dynamic random access memory), ROM(read-only memory), NVRAM(non-volatile random access memory), EEPROM(electrically erasable programmable read-only memory), FLASH 메모리, 자기 또는 광 데이터 저장 매체들 등을 포함할 수 있다. 추가적으로 또는 대안적으로, 이 기법들은 적어도 부분적으로, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 운반 또는 전달하고 전파된 신호들 또는 파들과 같이 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 실현될 수 있다.
프로그램 코드는 프로세서에 의해 실행될 수 있으며, 이는 하나 이상의 프로세서들, 예컨대 하나 이상의 DSP들, 범용 마이크로프로세서들, ASIC들, 필드 프로그래밍가능 논리 어레이(field programmable logic array, FPGA)들, 또는 다른 등가의 집적 또는 이산 로직 회로부를 포함할 수 있다. 그러한 프로세서는 본 개시내용에서 설명되는 기법들 중 임의의 기법을 수행하도록 구성될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만; 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다. 그에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서"는 전술한 구조, 전술한 구조의 임의의 조합, 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 또는 장치 중 임의의 것을 지칭할 수도 있다. 부가적으로, 일부 양태들에 있어서, 본 명세서에서 설명된 기능은, 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에서 제공되거나, 또는 결합된 비디오 인코더-디코더(CODEC)에 통합될 수 있다.
양태 1: 적어도 하나의 메모리, 및 적어도 하나의 메모리에 커플링된 (예를 들어, 회로부로 구성된) 하나 이상의 프로세서들을 포함하는, 이미지 데이터를 프로세싱하기 위한 장치. 하나 이상의 프로세서들은: 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하고; 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하고; 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하고; 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하도록 구성된다.
양태 2: 양태 1에 있어서, 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 및 관성 측정 유닛(IMU) 중 적어도 하나를 포함하는, 장치.
양태 3: 양태 1 또는 양태 2 중 임의의 양태에 있어서, 이미지 캡처 디바이스의 움직임은 복수의 이미지 프레임들 각각에 대응하는 노출 시간 동안 발생하는, 장치.
양태 4: 양태 1 내지 양태 3 중 임의의 양태에 있어서, 프로세서는 추가로, 이미지 캡처 디바이스의 움직임이 임계값보다 크다고 결정하는 것에 응답하여, 적어도 하나의 이미지 캡처 파라미터에 대한 디폴트 값을 선택하도록 구성되는, 장치.
양태 5: 양태 1 내지 양태 4 중 임의의 양태에 있어서, 프로세서는 전자 이미지 안정화(EIS) 보상을 계산하는 것에 기초하여 적어도 하나의 객체의 위치를 조정하도록 구성되는, 장치.
양태 6: 양태 1 내지 양태 5 중 임의의 양태에 있어서, 프로세서는 복수의 이미지 프레임들 사이의 광학 흐름을 결정하는 것에 기초하여 적어도 하나의 객체의 모션을 결정하도록 구성되는, 장치.
양태 7: 양태 1 내지 양태 6 중 임의의 양태에 있어서, 프로세서는 복수의 이미지 프레임들로부터 제1 이미지 프레임과 제2 이미지 프레임 사이의 모션 마스크를 결정하는 것에 기초하여 적어도 하나의 객체의 모션을 결정하도록 구성되는, 장치.
양태 8: 양태 7에 있어서, 모션 마스크는 제1 이미지 프레임과 제2 이미지 프레임 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함하는, 장치.
양태 9: 양태 7 또는 양태 8 중 임의의 양태에 있어서, 프로세서는 추가로, 하나 이상의 모션 벡터들의 적어도 일부에 대응하는 하나 이상의 가중치 값들을 포함하는 가중치 테이블을 결정하도록 구성되는, 장치.
양태 10: 양태 9에 있어서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 중앙 영역에 기초하여 선택되는, 장치.
양태 11: 양태 9 또는 양태 10 중 임의의 양태에 있어서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 관심 영역에 기초하여 선택되는, 장치.
양태 12: 양태 11에 있어서, 관심 영역 외부의 영역에 대응하는 하나 이상의 가중치 값들의 일부는 0으로 설정되는, 장치.
양태 13: 양태 1 내지 양태 12 중 임의의 양태에 있어서, 적어도 하나의 이미지 캡처 파라미터는 노출 시간 및 이득 중 적어도 하나를 포함하는, 장치.
양태 14: 이미지 데이터를 프로세싱하는 방법으로서, 하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하는 단계; 이미지 캡처 디바이스의 움직임에 기초하여 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하는 단계; 복수의 이미지 프레임들 중에서 조정된 위치의 차이에 기초하여 적어도 하나의 객체의 모션을 결정하는 단계; 및 적어도 하나의 객체의 모션에 기초하여 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하는 단계를 포함하는, 방법.
양태 15: 양태 14에 있어서, 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 및 관성 측정 유닛(IMU) 중 적어도 하나를 포함하는, 방법.
양태 16: 양태 14 또는 양태 15 중 임의의 양태에 있어서, 이미지 캡처 디바이스의 움직임은 복수의 이미지 프레임들 각각에 대응하는 노출 시간 동안 발생하는, 방법.
양태 17: 양태 14 내지 양태 16 중 임의의 양태에 있어서, 이미지 캡처 디바이스의 움직임이 임계값보다 크다고 결정하는 것에 응답하여, 적어도 하나의 이미지 캡처 파라미터에 대한 디폴트 값을 선택하는 단계를 추가로 포함하는, 방법.
양태 18: 양태 14 내지 양태 17 중 임의의 양태에 있어서, 전자 이미지 안정화(EIS) 보상을 계산하는 것에 기초하여 적어도 하나의 객체의 위치를 조정하는 단계를 추가로 포함하는, 방법.
양태 19: 양태 14 내지 양태 18 중 임의의 양태에 있어서, 복수의 이미지 프레임들 사이의 광학 흐름을 결정하는 것에 기초하여 적어도 하나의 객체의 모션을 결정하는 단계를 추가로 포함하는, 방법.
양태 20: 양태 14 내지 양태 19 중 임의의 양태에 있어서, 복수의 이미지 프레임들로부터 제1 이미지 프레임과 제2 이미지 프레임 사이의 모션 마스크를 결정하는 것에 기초하여 적어도 하나의 객체의 모션을 결정하는 단계를 추가로 포함하는, 방법.
양태 21: 양태 20에 있어서, 모션 마스크는 제1 이미지 프레임과 제2 이미지 프레임 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함하는, 방법.
양태 22: 양태 20 또는 양태 21 중 임의의 양태에 있어서, 하나 이상의 모션 벡터들의 적어도 일부에 대응하는 하나 이상의 가중치 값들을 포함하는 가중치 테이블을 결정하는 단계를 추가로 포함하는, 방법.
양태 23: 양태 22에 있어서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 중앙 영역에 기초하여 선택되는, 방법.
양태 24: 양태 22 또는 양태 23 중 임의의 양태에 있어서, 하나 이상의 가중치 값들은 복수의 이미지 프레임들 내의 관심 영역에 기초하여 선택되는, 방법.
양태 25: 양태 24에 있어서, 관심 영역 외부의 영역에 대응하는 하나 이상의 가중치 값들의 일부는 0으로 설정되는, 방법.
양태 26: 양태 14 내지 양태 25 중 임의의 양태에 있어서, 적어도 하나의 이미지 캡처 파라미터는 노출 시간 및 이득 중 적어도 하나를 포함하는, 방법.
양태 27: 실행될 때, 하나 이상의 프로세서들로 하여금 양태 1 내지 26의 동작들 중 임의의 것을 수행하게 하는 명령들을 저장하는 컴퓨터 판독가능 저장 매체.
양태 28: 장치로서, 양태 1 내지 양태 26의 동작들 중 임의의 동작을 수행하기 위한 수단을 포함하는, 장치.

Claims (28)

  1. 이미지 데이터를 프로세싱하기 위한 방법으로서,
    하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하는 단계;
    상기 이미지 캡처 디바이스의 상기 움직임에 기초하여 상기 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하는 단계;
    상기 복수의 이미지 프레임들 중에서 조정된 상기 위치의 차이에 기초하여 상기 적어도 하나의 객체의 모션을 결정하는 단계; 및
    상기 적어도 하나의 객체의 상기 모션에 기초하여 상기 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하는 단계를 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  2. 제1항에 있어서, 상기 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 및 관성 측정 유닛(inertial measurement unit, IMU) 중 적어도 하나를 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  3. 제1항 또는 제2항에 있어서, 상기 이미지 캡처 디바이스의 상기 움직임은 상기 복수의 이미지 프레임들 각각에 대응하는 노출 시간 동안 발생하는, 이미지 데이터를 프로세싱하기 위한 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 이미지 캡처 디바이스의 상기 움직임이 임계값보다 크다고 결정하는 것에 응답하여, 상기 적어도 하나의 이미지 캡처 파라미터에 대한 디폴트 값을 선택하는 단계를 추가로 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 적어도 하나의 객체의 상기 위치를 조정하는 단계는 전자 이미지 안정화(electronic image stabilization, EIS) 보상을 계산하는 단계를 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 적어도 하나의 객체의 상기 모션을 결정하는 단계는 상기 복수의 이미지 프레임들 사이의 광학 흐름(optical flow)을 결정하는 단계를 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 적어도 하나의 객체의 상기 모션을 결정하는 단계는 상기 복수의 이미지 프레임들로부터 제1 이미지 프레임과 제2 이미지 프레임 사이의 모션 마스크를 결정하는 단계를 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  8. 제7항에 있어서, 상기 모션 마스크는 상기 제1 이미지 프레임과 상기 제2 이미지 프레임 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  9. 제8항에 있어서,
    상기 하나 이상의 모션 벡터들의 적어도 일부에 대응하는 하나 이상의 가중치 값들을 포함하는 가중치 테이블을 결정하는 단계를 추가로 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  10. 제9항에 있어서, 상기 하나 이상의 가중치 값들은 상기 복수의 이미지 프레임들 내의 중앙 영역에 기초하여 선택되는, 이미지 데이터를 프로세싱하기 위한 방법.
  11. 제9항에 있어서, 상기 하나 이상의 가중치 값들은 상기 복수의 이미지 프레임들 내의 관심 영역에 기초하여 선택되는, 이미지 데이터를 프로세싱하기 위한 방법.
  12. 제11항에 있어서, 상기 관심 영역 외부의 영역에 대응하는 상기 하나 이상의 가중치 값들의 일부는 0으로 설정되는, 이미지 데이터를 프로세싱하기 위한 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 적어도 하나의 이미지 캡처 파라미터는 노출 시간 및 이득 중 적어도 하나를 포함하는, 이미지 데이터를 프로세싱하기 위한 방법.
  14. 이미지 데이터를 프로세싱하기 위한 장치로서,
    메모리;
    프로세서를 포함하며, 상기 프로세서는,
    하나 이상의 센서들로부터의 데이터에 기초하여, 복수의 이미지 프레임들의 캡처와 연관된 이미지 캡처 디바이스의 움직임을 결정하고;
    상기 이미지 캡처 디바이스의 상기 움직임에 기초하여 상기 복수의 이미지 프레임들 각각에서의 적어도 하나의 객체의 위치를 조정하고;
    상기 복수의 이미지 프레임들 중에서 조정된 상기 위치의 차이에 기초하여 상기 적어도 하나의 객체의 모션을 결정하고;
    상기 적어도 하나의 객체의 상기 모션에 기초하여 상기 복수의 이미지 프레임들과 연관된 적어도 하나의 이미지 캡처 파라미터에 대한 값을 선택하도록 구성되는, 이미지 데이터를 프로세싱하기 위한 장치.
  15. 제14항에 있어서, 상기 하나 이상의 센서들은 자이로스코프, 가속도계, 자력계, 및 관성 측정 유닛(IMU) 중 적어도 하나를 포함하는, 이미지 데이터를 프로세싱하기 위한 장치.
  16. 제14항 또는 제15항에 있어서, 상기 이미지 캡처 디바이스의 상기 움직임은 상기 복수의 이미지 프레임들 각각에 대응하는 노출 시간 동안 발생하는, 이미지 데이터를 프로세싱하기 위한 장치.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 프로세서는 추가로,
    상기 이미지 캡처 디바이스의 상기 움직임이 임계값보다 크다고 결정하는 것에 응답하여, 상기 적어도 하나의 이미지 캡처 파라미터에 대한 디폴트 값을 선택하도록 구성되는, 이미지 데이터를 프로세싱하기 위한 장치.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서, 상기 프로세서는 전자 이미지 안정화(EIS) 보상을 계산하는 것에 기초하여 상기 적어도 하나의 객체의 상기 위치를 조정하도록 구성되는, 이미지 데이터를 프로세싱하기 위한 장치.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서, 상기 프로세서는 상기 복수의 이미지 프레임들 사이의 광학 흐름을 결정하는 것에 기초하여 상기 적어도 하나의 객체의 상기 모션을 결정하도록 구성되는, 이미지 데이터를 프로세싱하기 위한 장치.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서, 상기 프로세서는 상기 복수의 이미지 프레임들로부터 제1 이미지 프레임과 제2 이미지 프레임 사이의 모션 마스크를 결정하는 것에 기초하여 상기 적어도 하나의 객체의 상기 모션을 결정하도록 구성되는, 이미지 데이터를 프로세싱하기 위한 장치.
  21. 제20항에 있어서, 상기 모션 마스크는 상기 제1 이미지 프레임과 상기 제2 이미지 프레임 사이의 적어도 하나의 픽셀의 시프트를 나타내는 하나 이상의 모션 벡터들을 포함하는, 이미지 데이터를 프로세싱하기 위한 장치.
  22. 제21항에 있어서, 상기 프로세서는 추가로,
    상기 하나 이상의 모션 벡터들의 적어도 일부에 대응하는 하나 이상의 가중치 값들을 포함하는 가중치 테이블을 결정하도록 구성되는, 이미지 데이터를 프로세싱하기 위한 장치.
  23. 제22항에 있어서, 상기 하나 이상의 가중치 값들은 상기 복수의 이미지 프레임들 내의 중앙 영역에 기초하여 선택되는, 이미지 데이터를 프로세싱하기 위한 장치.
  24. 제22항에 있어서, 상기 하나 이상의 가중치 값들은 상기 복수의 이미지 프레임들 내의 관심 영역에 기초하여 선택되는, 이미지 데이터를 프로세싱하기 위한 장치.
  25. 제24항에 있어서, 상기 관심 영역 외부의 영역에 대응하는 상기 하나 이상의 가중치 값들의 일부는 0으로 설정되는, 이미지 데이터를 프로세싱하기 위한 장치.
  26. 제14항 내지 제25항 중 어느 한 항에 있어서, 상기 적어도 하나의 이미지 캡처 파라미터는 노출 시간 및 이득 중 적어도 하나를 포함하는, 이미지 데이터를 프로세싱하기 위한 장치.
  27. 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 제1항 내지 제26항 중 어느 한 항에 따른 동작들을 수행하게 하는, 저장된 명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  28. 제1항 내지 제26항 중 어느 한 항에 따른 동작들을 수행하기 위한 하나 이상의 수단들을 포함하는 장치.
KR1020237045324A 2021-07-07 2021-07-07 이미지 캡처 및/또는 프로세싱 동작들을 개선하기 위한 로컬 모션 검출 KR20240029000A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/104915 WO2023279275A1 (en) 2021-07-07 2021-07-07 Local motion detection for improving image capture and/or processing operations

Publications (1)

Publication Number Publication Date
KR20240029000A true KR20240029000A (ko) 2024-03-05

Family

ID=84801177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237045324A KR20240029000A (ko) 2021-07-07 2021-07-07 이미지 캡처 및/또는 프로세싱 동작들을 개선하기 위한 로컬 모션 검출

Country Status (5)

Country Link
EP (1) EP4367895A1 (ko)
KR (1) KR20240029000A (ko)
CN (1) CN117616769A (ko)
TW (1) TW202304186A (ko)
WO (1) WO2023279275A1 (ko)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840085B2 (en) * 2006-04-06 2010-11-23 Qualcomm Incorporated Electronic video image stabilization
JP5226600B2 (ja) * 2009-04-28 2013-07-03 富士フイルム株式会社 画像変形装置およびその動作制御方法
US8428390B2 (en) * 2010-06-14 2013-04-23 Microsoft Corporation Generating sharp images, panoramas, and videos from motion-blurred videos
US9811732B2 (en) * 2015-03-12 2017-11-07 Qualcomm Incorporated Systems and methods for object tracking
CN105635559B (zh) * 2015-07-17 2018-02-13 宇龙计算机通信科技(深圳)有限公司 用于终端的拍照控制方法及装置
US10491832B2 (en) * 2017-08-16 2019-11-26 Qualcomm Incorporated Image capture device with stabilized exposure or white balance
CN111435967B (zh) * 2019-01-14 2021-08-06 北京小米移动软件有限公司 拍照方法及装置

Also Published As

Publication number Publication date
TW202304186A (zh) 2023-01-16
WO2023279275A1 (en) 2023-01-12
CN117616769A (zh) 2024-02-27
EP4367895A1 (en) 2024-05-15

Similar Documents

Publication Publication Date Title
US20220138964A1 (en) Frame processing and/or capture instruction systems and techniques
WO2023049651A1 (en) Systems and methods for generating synthetic depth of field effects
WO2023279289A1 (en) Processing image data using multi-point depth sensing system information
US20230388623A1 (en) Composite image signal processor
US11283994B2 (en) Synchronization mechanism for image capture and processing systems
US20220414847A1 (en) High dynamic range image processing
US20230239590A1 (en) Sensitivity-biased pixels
WO2023279275A1 (en) Local motion detection for improving image capture and/or processing operations
US11792505B2 (en) Enhanced object detection
WO2023178588A1 (en) Capturing images using variable aperture imaging devices
US11115600B1 (en) Dynamic field of view compensation for autofocus
US20230377096A1 (en) Image signal processor
US20230319401A1 (en) Image capture using dynamic lens positions
US20240080552A1 (en) Systems and methods of imaging with multi-domain image sensor
US11982527B2 (en) Systems and methods of imaging with multi-domain image sensor
US11843871B1 (en) Smart high dynamic range image clamping
US20240144717A1 (en) Image enhancement for image regions of interest
US20240078635A1 (en) Compression of images for generating combined images
US20240089596A1 (en) Autofocusing techniques for image sensors
US20230021016A1 (en) Hybrid object detector and tracker
US20230353881A1 (en) Methods and systems for shift estimation for one or more output frames
WO2023282963A1 (en) Enhanced object detection
TW202410685A (zh) 使用可變光圈成像設備擷取影像
WO2024030691A1 (en) High dynamic range (hdr) image generation with multi-domain motion correction