KR20230098575A - 프레임 프로세싱 및/또는 캡처 명령 시스템들 및 기법들 - Google Patents

프레임 프로세싱 및/또는 캡처 명령 시스템들 및 기법들 Download PDF

Info

Publication number
KR20230098575A
KR20230098575A KR1020237013932A KR20237013932A KR20230098575A KR 20230098575 A KR20230098575 A KR 20230098575A KR 1020237013932 A KR1020237013932 A KR 1020237013932A KR 20237013932 A KR20237013932 A KR 20237013932A KR 20230098575 A KR20230098575 A KR 20230098575A
Authority
KR
South Korea
Prior art keywords
frames
motion
frame
exposure
capture
Prior art date
Application number
KR1020237013932A
Other languages
English (en)
Inventor
마크 긴츠버그
니르 스트라우스
론 게이즈먼
에란 핀하소프
유리 돌긴
빅터 핀토
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20230098575A publication Critical patent/KR20230098575A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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/61Control of cameras or camera modules based on recognised objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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
    • 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/72Combination of two or more compensation controls
    • 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/741Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
    • 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/743Bracketing, i.e. taking a series of images with varying exposure conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/95Computational photography systems, e.g. light-field imaging systems
    • H04N23/951Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10141Special mode during image acquisition
    • G06T2207/10144Varying exposure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20208High dynamic range [HDR] image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

하나 이상의 프레임들 또는 이미지들을 프로세싱하기 위한 기법들 및 시스템들이 제공된다. 예를 들어, 하나 이상의 프레임들에 대한 노출을 결정하기 위한 프로세스는 하나 이상의 프레임들에 대한 모션 맵을 획득하는 것을 포함한다. 그 프로세스는 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하는 것을 포함한다. 모션은 하나 이상의 프레임들을 캡처하는데 사용되는 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응한다. 그 프로세스는 결정된 모션에 기초하여, 프레임들의 수 및 그 수의 프레임들을 캡처하기 위한 노출을 결정하는 것을 포함한다. 그 프로세스는 결정된 노출 지속기간을 이용하여 그 수의 프레임들을 캡처하기 위한 요청을 전송하는 것을 더 포함한다.

Description

프레임 프로세싱 및/또는 캡처 명령 시스템들 및 기법들
분야
본 출원은 프레임 프로세싱 및/또는 캡처 명령 시스템들 및 기법들에 관한 것이다.
배경
카메라들은 이미지의 외관을 변경하기 위해 다양한 이미지 캡처 및 이미지 프로세싱 설정들로 구성될 수 있다. ISO, 노출 시간, 조리개 사이즈, f/스톱, 셔터 속도, 포커스, 및 이득과 같은 일부 카메라 설정들이 사진의 캡처 전에 또는 사진의 캡처 동안에 결정되고 적용된다. 다른 카메라 설정들은 콘트라스트, 명도, 채도, 선예도, 레벨들, 곡선들, 또는 컬러들에 대한 변경들과 같은 사진의 사후-프로세싱을 구성할 수 있다. 호스트 프로세서(host processor; HP)는 이미지 센서의 설정들 및/또는 이미지 신호 프로세서(image signal processor; ISP)의 설정들을 구성하는 데 사용될 수 있다. 이미지 센서와 ISP 간의 설정들의 구성은 이미지들이 적절히 프로세싱되도록 동기화되어야 한다.
요약
이미지 또는 프레임 프로세싱 및/또는 캡처 명령 구성들을 수행하기 위한 시스템들 및 기법들이 본 명세서에서 설명된다. 하나의 예시적인 예에 따르면, 노출 지속기간(exposure duration) 및 프레임들의 수를 결정하는 방법이 제공된다. 그 방법은, 하나 이상의 프레임들에 대한 모션 맵(motion map)을 획득하는 단계; 그 모션 맵에 기초하여, 장면(scene)의 하나 이상의 프레임들과 연관된 모션을 결정하는 단계 - 모션은 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 장면에서의 하나 이상의 오브젝트(object)들의 움직임(movement)에 대응함 -; 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하는 단계; 및 결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하는 단계를 포함한다.
다른 예에서, 적어도 하나의 프레임을 저장하도록 구성된 메모리 및 (예를 들어, 회로부로 구현되고) 메모리에 커플링된 하나 이상의 프로세서들을 포함하는, 다수의 프레임들에 대한 노출 지속기간을 결정하기 위한 장치가 제공된다. 그 하나 이상의 프로세서들은, 하나 이상의 프레임들에 대한 모션 맵을 획득하고; 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하고 - 모션은 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응함 -; 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하고; 결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하도록 구성되고, 그리고 그렇게 할 수 있다.
다른 예에서, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금: 하나 이상의 프레임들에 대한 모션 맵을 획득하게 하고; 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하게 하고 - 모션은 하나 이상의 프레임들을 캡처하기 위해 사용된 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응함 -; 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하게 하고; 결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하게 하는 명령들을 저장한 비일시적 컴퓨터 판독가능 매체가 제공된다.
다른 예에서, 다수의 프레임들에 대한 노출 지속기간을 결정하기 위한 장치가 제공된다. 그 장치는, 하나 이상의 프레임들에 대한 모션 맵을 획득하기 위한 수단; 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하기 위한 수단 - 모션은 하나 이상의 프레임들을 캡처하기 위해 사용된 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응함 -; 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하기 위한 수단; 및 결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하기 위한 수단을 포함한다.
일부 양태들에서, 상기 하나 이상의 프레임들은 상기 수의 프레임들을 캡처하기 위한 캡처 명령이 수신되기 전에 획득된다.
일부 양태들에서, 상기 설명된 방법, 장치들, 및 컴퓨터 판독가능 매체는: 시간적으로 블렌딩된 프레임을 생성하기 위해, 결정된 노출 지속기간을 사용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩(temporal blending)을 수행하는 것을 더 포함한다.
일부 양태들에서, 상기 설명된 방법, 장치들, 및 컴퓨터 판독가능 매체는, 머신 러닝(machine learning) 기반 이미지 신호 프로세서를 사용하여, 시간적으로 블렌딩된 프레임에 대해 공간적 프로세싱(spatial processing)을 수행하는 것을 더 포함한다. 일부 양태들에서, 머신 러닝 기반 이미지 신호 프로세서는 모션 맵을 시간적으로 블렌딩된 프레임에 대한 공간적 프로세싱을 수행하기 위한 입력으로서 사용한다.
일부 양태들에서, 결정된 노출 지속기간은 이득(gain)에 기초한다.
일부 양태들에서, 모션 맵은 이미지를 포함하고, 그 이미지의 각각의 픽셀은 각각의 픽셀에 대한 모션의 양 및 그 모션의 양과 연관된 신뢰도(confidence) 값 중 적어도 하나를 표시하는 값을 포함한다.
일부 양태들에서, 상기 설명된 방법, 장치들, 및 컴퓨터 판독가능 매체는, 하나 이상의 센서 측정치들에 기초하여, 카메라와 연관된 글로벌 모션(global motion)을 결정하는 것을 더 포함한다. 일부 경우들에서, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간은 상기 결정된 모션 및 글로벌 모션에 기초하여 결정된다. 예를 들어, 장치의 하나 이상의 프로세서들은 결정된 모션 및 글로벌 모션에 기초하여 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하도록 구성될 수 있다.
일부 양태들에서, 상기 설명된 방법, 장치들, 및 컴퓨터 판독가능 매체는 결정된 모션 및 글로벌 모션에 기초하여 최종 모션 표시를 결정하는 것을 더 포함한다. 일부 경우들에서, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간은 최종 모션 표시에 기초하여 결정된다. 예를 들어, 장치의 하나 이상의 프로세서들은 최종 모션 표시에 기초하여 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하도록 구성될 수 있다.
일부 양태들에서, 최종 모션 표시는 결정된 모션에 대한 제 1 가중치 및 글로벌 모션에 대한 제 2 가중치를 사용하여 결정된 모션과 글로벌 모션의 가중된 조합에 기초한다. 예를 들어, 결정된 모션 및 글로벌 모션에 기초하여 최종 모션 표시를 결정하기 위해, 상기 하나 이상의 프로세서들은 결정된 모션에 대한 제 1 가중치 및 글로벌 모션에 대한 제 2 가중치를 사용하여 결정된 모션 및 글로벌 모션의 가중된 조합을 결정하도록 구성될 수 있다.
일부 양태들에서, 상기 설명된 방법, 장치들, 및 컴퓨터 판독가능 매체는, 최종 모션 표시에 기초하여, 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 미만인 것을 결정하는 것; 및 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 미만인 것에 기초하여, 프레임들의 수에 대한 프레임 카운트를 감소시키고 결정된 노출 지속기간에 대한 노출 지속기간량을 증가시키는 것을 더 포함한다.
일부 양태들에서, 상기 설명된 방법, 장치들, 및 컴퓨터 판독가능 매체는, 최종 모션 표시에 기초하여, 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 초과인 것을 결정하는 것; 및 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 초과인 것에 기초하여, 프레임들의 수에 대한 프레임 카운트를 증가시키고 결정된 노출 지속기간에 대한 노출 지속기간량을 감소시키는 것을 더 포함한다.
적어도 하나의 다른 예시적인 예에 따르면, 하나 이상의 프레임들에 대해 시간적 블렌딩을 수행하는 방법이 제공된다. 그 방법은, 원시 프레임(raw frame)을 획득하는 단계 - 상기 원시 프레임은 그 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함함 -; 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하는 단계; 적어도 부분적으로, 적어도 제 1 색차(chrominance) 값을 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산하며, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하는 단계; 및 그 복수의 프레임들에 대해 시간적 블렌딩을 수행하는 단계를 포함한다.
다른 예에서, 적어도 하나의 이미지를 저장하도록 구성된 메모리 및 (예를 들어, 회로부로 구현되고) 메모리에 커플링된 하나 이상의 프로세서들을 포함하는, 하나 이상의 프레임들에 대한 시간적 블렌딩을 수행하기 위한 장치가 제공된다. 그 하나 이상의 프로세서들은, 원시 프레임을 획득하고 - 원시 프레임은 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함함 -; 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하고; 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산하고, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하고; 그 복수의 프레임들에 대해 시간적 블렌딩을 수행하도록 구성되고 그렇게 할 수 있다.
다른 예에서, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 원시 프레임을 획득하게 하고 - 상기 원시 프레임은 상기 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함함 -; 상기 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하게 하고; 적어도 부분적으로, 적어도 제 1 색차 값을 상기 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 상기 제 2 컬러 성분에 가산하고, 적어도 제 3 색차 값을 상기 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하게 하고; 그리고 상기 복수의 프레임들에 대해 시간적 블렌딩을 수행하게 하는 명령들을 저장한 비일시적 컴퓨터 판독가능 매체가 제공된다.
다른 예에서, 하나 이상의 프레임들에 대해 시간적 블렌딩을 수행하기 위한 장치가 제공된다. 그 장치는 원시 프레임을 획득하기 위한 수단 - 원시 프레임은 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함함 -; 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하기 위한 수단; 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산하며, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하기 위한 수단; 및 복수의 프레임들에 대해 시간적 블렌딩을 수행하기 위한 수단을 포함한다.
일부 양태들에서, 원시 프레임은 컬러 필터 어레이(color filter array; CFA) 패턴을 포함한다.
일부 양태들에서, 제 1 컬러 성분은 적색 컬러 성분을 포함하고, 제 2 컬러 성분은 녹색 컬러 성분을 포함하고, 제 3 컬러 성분은 청색 컬러 성분을 포함한다.
일부 양태들에서, 제 1 컬러 성분은 원시 프레임의 모든 적색 픽셀들을 포함하고, 제 2 컬러 성분은 원시 프레임의 모든 녹색 픽셀들을 포함하고, 제 3 컬러 성분은 원시 프레임의 모든 청색 픽셀들을 포함한다.
일부 양태들에서, 복수의 프레임들을 생성하는 단계는, 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산함으로써, 제 1 프레임을 생성하는 단계; 적어도 부분적으로, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산함으로써, 제 2 프레임을 생성하는 단계; 및 적어도 부분적으로, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 제 3 프레임을 생성하는 단계를 포함한다.
일부 양태들에서, 제 1 프레임을 생성하는 단계는 제 1 색차 값 및 제 2 색차 값을 제 1 컬러 성분에 가산하는 단계를 포함한다. 일부 양태들에서, 제 2 프레임을 생성하는 단계는 제 1 색차 값 및 제 2 색차 값을 제 2 컬러 성분에 가산하는 단계를 포함한다. 일부 양태들에서, 제 3 프레임을 생성하는 단계는 제 1 색차 값 및 제 2 색차 값을 제 3 컬러 성분에 가산하는 단계를 포함한다.
일부 양태들에서, 제 1 색차 값 및 제 2 색차 값은 동일한 값이다.
일부 양태들에서, 복수의 프레임들에 대해 시간적 블렌딩을 수행하는 단계는, 복수의 프레임들 중 제 1 프레임을 제 1 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 단계; 복수의 프레임들 중 제 2 프레임을 제 2 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 단계; 및 복수의 프레임들 중 제 3 프레임을 제 3 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 단계를 포함한다.
일부 양태들에서, 장치는 카메라, 모바일 디바이스 (예를 들어, 모바일 전화 또는 소위 "스마트 폰" 또는 다른 모바일 디바이스), 웨어러블 디바이스, 확장 현실 디바이스 (예를 들어, 가상 현실 (VR) 디바이스, 증강 현실 (AR) 디바이스, 또는 혼합 현실 (MR) 디바이스), 퍼스널 컴퓨터, 랩톱 컴퓨터, 서버 컴퓨터, 비히클 또는 비히클의 컴퓨팅 디바이스 또는 컴포넌트, 또는 다른 디바이스이고/이거나, 그 일부이고/이거나, 이들을 포함한다. 일부 양태들에서, 장치는 하나 이상의 이미지들을 캡처하기 위한 카메라 또는 다중의 카메라들을 포함한다. 일부 양태들에서, 장치는 하나 이상의 이미지들, 통지들, 및/또는 다른 디스플레이가능 데이터를 디스플레이하기 위한 디스플레이를 더 포함한다. 일부 양태들에서, 위에서 설명된 장치들은 하나 이상의 센서들 (예를 들어, 하나 이상의 자이로미터들, 하나 이상의 가속도계들, 이들의 임의의 조합, 및/또는 다른 센서와 같은 하나 이상의 관성 측정 유닛들 (IMU들)) 을 포함할 수 있다.
이 요약은, 청구된 주제의 핵심적인 또는 본질적인 특징들을 식별하도록 의도되지 않았고, 별개로 청구된 요지의 범위를 결정하는데 사용되도록 의도되지도 않았다. 청구물은 본 특허의 전체 명세서, 임의의 또는 모든 도면들, 및 각각의 청구항의 적절한 부분들을 참조하여 이해되어야 한다.
전술한 내용은, 다른 특징 및 실시 양태들과 함께, 다음의 명세서, 청구항 및 첨부 도면을 참조하면 더욱 명백해질 것이다.
도면들의 간단한 설명
본 출원의 예시적 실시양태들은 다음 도면들을 참조하여 이하에서 상세히 설명된다.
도 1은 일부 예들에 따른, 프레임 프로세싱 및/또는 캡처 명령 시스템의 예시적인 아키텍처를 나타내는 블록도이다.
도 2는 상이한 예시적인 시나리오들에 대한 다양한 럭스 값들을 예시하는 다이어그램이다.
도 3은 초저조도 조건 동안 캡처된 이미지이다.
도 4는 일부 예들에 따른, 프레임 프로세싱 및/또는 캡처 명령 시스템의 예를 나타내는 블록도이다.
도 5는 일부 예들에 따른, 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템에 의해 수행되는 상이한 프로세스들의 타이밍의 예를 나타내는 타이밍도이다.
도 6 내지 도 11은 일부 예들에 따른, 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템의 구현의 예를 나타내는 다이어그램들이다.
도 12는 일부 예들에 따른, 모션 대 노출 지속기간 (또는 노출 시간) 및 프레임 카운트를 플로팅하는 그래프이다.
도 13은 일부 예들에 따른, 이미지 및 시간적 필터 표시(TFI) 이미지를 예시하는 다이어그램이다.
도 14a는 일부 예들에 따른, 프레임 프로세싱 및/또는 캡처 명령 시스템의 다른 예를 나타내는 다이어그램이다.
도 14b는 일부 예들에 따른, 프레임 프로세싱 및/또는 캡처 명령 시스템의 다른 예를 나타내는 다이어그램이다.
도 15는 일부 예들에 따른, 도 15a의 프레임 프로세싱 및/또는 캡처 명령 시스템의 머신 러닝 이미지 신호 프로세서(ML ISP)의 예를 나타내는 다이어그램이다.
도 16은 일부 예들에 따른, 도 15a 및 도 15b의 ML ISP의 신경망의 예를 나타내는 다이어그램이다.
도 17a 및 도 17b는 일부 예들에 따른, 화이트 밸런스의 정제를 위해 사용되는 추가적인 프로세싱을 갖는 도 15a의 프레임 프로세싱 및/또는 캡처 명령 시스템을 예시하는 다이어그램들이다.
도 18은 일부 예들에 따른, 이미지들을 점진적으로 디스플레이하기 위한 프로세스의 예를 나타내는 다이어그램이다.
도 19 및 도 20은 일부 예들에 따른, 색차(U 및 V) 채널들에 기초한 원시 시간적 블렌딩의 예들을 나타내는 다이어그램들이다.
도 21은 일부 예들에 따른, 원시 시간적 블렌딩으로부터 생성된 이미지 및 표준 YUV 이미지들의 사용으로부터 생성된 이미지를 포함한다.
도 22는 일부 예들에 따른, 다수의 프레임들에 대한 노출 지속기간을 결정하기 위한 프로세스의 예를 나타내는 흐름도이다.
도 23은 일부 예들에 따른, 시간적 블렌딩을 수행하기 위한 프로세스의 다른 예를 나타내는 흐름도이다.
도 24는 일부 예들에 따른, 신경망의 예를 나타내는 블록도이다.
도 25는 일부 예들에 따른 컨볼루셔널 신경망(CNN)의 예를 나타내는 블록도이다.
도 26 은 본원에 설명된 특정 양태들을 구현하기 위한 시스템의 예를 나타내는 다이어그램이다.
상세한 설명
본 개시의 특정 양태들 및 실시양태들이 이하에 제공된다. 이들 양태들 및 실시양태들의 일부가 독립적으로 적용될 수도 있고 그것들 중 일부는 본 기술분야의 숙련된 자들에게 명확하게 될 바와 같이 조합하여 적용될 수도 있다. 다음의 설명에 있어서, 설명의 목적들로, 특정 상세들이 본 출원의 실시양태들의 철저한 이해를 제공하기 위해 기술된다. 하지만, 여러 실시양태들은 이들 특정 상세들 없이 실시될 수도 있음이 명백할 것이다. 도면 및 설명은 제한하려는 것이 아니다.
다음의 설명은 단지 예시적인 실시양태들을 제공하며, 본 개시의 범위, 적용가능성 또는 구성을 제한하려도록 의도되지 않는다. 오히려, 예시적인 실시양태들의 다음의 설명은 예시적인 실시양태를 구현하기 위한 가능한 설명을 당업자에게 제공할 것이다. 첨부된 청구범위에 기재된 바와 같이 본 출원의 사상 및 범위를 벗어나지 않으면서 엘리먼트들의 기능 및 배열에 다양한 변경들이 이루어질 수도 있음이 이해되어야 한다.
카메라는 이미지 센서를 이용하여 빛을 수신하고 정지 이미지나 비디오 프레임과 같은 이미지 프레임을 캡처하는 디바이스이다. 용어 "이미지", “이미지 프레임”, 및 "프레임" 은 본 명세서에서 상호교환가능하게 사용된다. 카메라 시스템은 하나 이상의 이미지 프레임들을 수신하고 그 하나 이상의 이미지 프레임들을 프로세싱할 수 있는 프로세서들(예를 들어, 이미지 신호 프로세서(ISP) 등)을 포함할 수 있다. 예를 들어, 카메라 센서에 의해 캡처된 원시 이미지 프레임은 ISP에 의해 프로세싱되어 최종 이미지를 생성할 수 있다. ISP에 의한 프로세싱은, 특히, 디노이징 또는 노이즈 필터링, 에지 향상, 컬러 밸런싱, 콘트라스트, 강도 조정(예컨대, 다크닝 또는 라이트닝), 톤 조정과 같은, 캡처된 이미지 프레임에 적용되는 복수의 필터들 또는 프로세싱 블록들에 의해 수행될 수 있다. 이미지 프로세싱 블록들 또는 모듈들은 특히 렌즈/센서 노이즈 보정, 베이어 필터들, 디-모자이킹(de-mosaicing), 컬러 변환, 이미지 속성들의 보정 또는 향상/억제, 디노이징 필터들, 샤프닝 필터들을 포함할 수도 있다.
많은 카메라 시스템들에서, 호스트 프로세서(HP)(경우에 따라 애플리케이션 프로세서(AP)라고도 함)를 사용하여 새로운 파라미터 설정들로 이미지 센서를 동적으로 구성한다. HP는 또한, 이미지 데이터가 정확하게 프로세싱되도록 입력 이미지 센서 프레임의 설정들과 매칭하도록 ISP 파이프라인들의 파라미터 설정들을 동적으로 구성하는 데 사용된다.
카메라들은 다양한 이미지 캡처 및 이미지 프로세싱 설정들로 구성될 수 있다. 다른 설정들을 적용하면 모양새가 다른 프레임이나 이미지가 생성될 수 있다. SO, 노출 시간(노출 지속기간이라고도 함), 조리개 사이즈, f/스톱, 셔터 속도, 포커스 및 이득과 같은 일부 카메라 설정들이 사진의 캡처 전에 또는 그 동안에 결정되고 적용된다. 다른 카메라 설정들은 콘트라스트, 명도, 채도, 선예도, 레벨들, 곡선들, 또는 컬러들에 대한 변경들과 같은 사진의 사후-프로세싱(post-processing)을 구성할 수 있다.
특히 야간 장면, 조명이 불량하거나 낮은 실내 장면 등과 같이 조명이 불량한 장면들에서 프레임들이나 이미지들을 캡처하려고 시도할 때 도전이 존재한다. 예를 들어 조명이 어두운 장면들은 일반적으로 밝은 영역이 포화(있는 경우)되어 어둡다. 조명이 불량한 장면의 이미지는 본 명세서에서 저조도 이미지로 지칭된다. 저조도 이미지는 일반적으로 어둡고 노이즈가 많으며 색상이 없다. 예를 들어, 저조도 이미지들은 통상적으로 장면의 밝은 영역들에 대해 과도하게 밝은 영역들을 갖는 어두운 픽셀들을 갖는다. 또한, 저조도 이미지들에서의 신호-대-노이즈 비 (signal-to-noise ratio; SNR) 는 매우 낮다. 저조도 이미지에서의 노이즈는 저조도 조건에 의해 야기되는 밝기 및/또는 컬러 정보의 무작위 변동의 표시이다. 노이즈의 결과는 낮은 빛의 이미지가 흐릿하게 나타나는 것이다. 일부 경우들에서, 낮은 광 이미지들의 신호들은 낮은 SNR로 인해 증폭되어야 한다. 예를 들어, 신호 증폭은 더 많은 노이즈 및 부정확한 화이트 밸런스를 유발할 수 있다. 일부 경우들에서, 카메라에 대한 노출 지속기간/시간은 이미지 센서에 노출되는 광의 양을 증가시키는 것을 돕기 위해 증가될 수 있다. 그러나, 증가된 노출 지속기간은 셔터 동작 동안 카메라 센서에 더 많은 광이 부딪히기 때문에 모션 블러 아티팩트(motion blur artifact)들을 초래하여 흐릿한 이미지를 유발할 수 있다.
시스템들, 장치들, 프로세스들 (방법들이라고도 지칭됨), 및 컴퓨터 판독가능 매체들 (본 명세서에서 "시스템들 및 기법들" 로 총칭됨) 은 개선된 이미지 프로세싱 기법들을 제공하기 위해 본 명세서에서 설명된다. 일부 경우들에서, 본 명세서에 설명된 시스템들 및 기법들은 개선된 저조도 프레임들 또는 이미지들을 제공하기 위해 사용될 수 있다. 그러나, 그 시스템들 및 기법들은 또한 다른 조명 조건들에서 캡처된 프레임들 또는 이미지들에 적용될 수 있다. 예를 들어, 아래에서 더 상세히 설명되는 바와 같이, 시스템들 및 기법들은 정확한 컬러들, 높은 텍스처, 및 낮은 노이즈를 갖는 잘 노출된(예를 들어, 낮은 블러로 적절하게 노출된) 및 샤프한(예를 들어, 낮은 노이즈로 보유된 높은 텍스처 레벨을 갖는) 프레임을 생성하는 데 사용될 수 있다. 일부 경우들에서, 시스템들 및 기법들은 아티팩트들을 제어하고, 캡처된 프레임들의 다이내믹 레인지의 대부분 또는 전부를 보존하고, 그리고/또는 양호한 품질의 샷-투-샷 및 프로세싱 시간을 제공할 수 있다. 예를 들어, 본 명세서에 설명된 시스템들 및 기법들을 사용하여, 프레임들은 (다른 이미지 캡처 시스템들에 비해) 감소된 프로세싱 시간으로 비교가능한 프레임 품질을 유지하면서 생성될 수 있다. 일부 예들에서, 시스템들 및 기법들은 (예를 들어, 새로운 프레임들이 버퍼링 및/또는 프로세싱되고 있을 때 프레임들을 점진적으로 디스플레이함으로써) 인터랙티브 프리뷰를 생성할 수 있다.
일부 양태들에서, 시스템들 및 기법들은 멀티-프레임 노이즈 감소 (MFNR) 하드웨어 컴포넌트들, 멀티-프레임 하이 다이내믹 레인지 (MFHDR) 하드웨어 컴포넌트들, 대규모 멀티-프레임 (MMF) 하드웨어 컴포넌트들, 스태거드 HDR (sHDR) 하드웨어 컴포넌트들 (MFHDR 의 서브세트일 수 있음), 이들의 임의의 조합, 및/또는 다른 하드웨어 컴포넌트들과 같은 기존의 하드웨어 컴포넌트들의 사용을 레버리징할 수 있다. 일부 양태들에서, 시스템들 및 기법들은 어두운 프레임들을 캡처하기 위해 더 긴 노출 시간 및 더 높은 이득을 사용할 수 있다. 일부 예들에서, 시스템들 및 기법들은 고도로 포화된 (또는 클리핑되거나 블로운된) 하이라이트들에 대해 적응적 다이내믹 레인지 제어 (ADRC) 및/또는 멀티-프레임 하이 다이내믹 레인지 (MFHDR), sHDR, 및/또는 MMF 를 사용할 수 있다. ADRC는 단일 이미지 또는 프레임으로부터 하이 다이내믹 레인지(HDR)를 달성하기 위해 사용될 수 있다. 예를 들어, ADRC는 하이라이트를 보존하기 위해 프레임을 과소노출(underexpose)할 수 있고, 그 다음 그림자 및 중간 톤을 보상하기 위해 나중의 이득을 적용할 수 있다. 일부 양태들에서, 시스템들 및 기법들은 MFxR, 더 긴 노출 지속기간으로 더 낮은 이득을 사용할 수 있고, 일부 경우들에서 높은 노이즈 및/또는 낮은 텍스처를 갖는 프레임들에 대한 머신 러닝 시스템을 사용할 수 있다. 용어 MFxR은 다중 프레임 노이즈 감소(MFNR) 및/또는 다중 프레임 수퍼 해상도(MFSR)를 지칭할 수 있다. 또한, 본 명세서에서 사용되는 바와 같이, MFxR(예를 들어, MFNR, MFSR 등)을 논의할 때, MFxR에 추가하여 또는 대안으로서 MMF를 사용하여 동일하거나 유사한 기법들이 수행될 수 있다. MFNR, MFSR, MMF 또는 다른 관련 기법에서, 최종 프레임은 2개 이상의 프레임들을 블렌딩함으로써 생성될 수 있다.
일부 예들에서, 모션 블러를 갖는 프레임들에 대해, 시스템들 및 기법들은 하나 이상의 프리뷰 프레임들과 연관된 모션 정보 (예를 들어, 장면 내 유효 모션/움직임, 센서 측정들을 사용하여 결정된 이미지 캡처의 글로벌 모션, 또는 이들의 조합) 에 따라 프레임 카운트(frame count) 및 노출 지속기간 (및/또는 이득) 조합 동적 결정을 활용할 수 있다. 예를 들어, 하나 이상의 프리뷰 프레임들과 연관된 모션 정보를 사용하여, 시스템들 및 기법들은 캡처할 프레임들의 수(나중에 MFNR, MMF 등을 사용하여 결합될 수도 있음) 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정할 수 있다. 일부 경우들에서, 시스템들 및 기법들(예를 들어, 저조도 엔진)은 (예를 들어, 프리뷰 프레임들을 생성하는) 프리뷰 파이프라인으로부터 다양한 결정들 및 통계들을 획득할 수 있다. 시스템들 및 기법들은 (예를 들어, 출력 프레임들을 캡처하는) 오프라인 파이프라인에 대한 캡처 명령들을 출력할 수 있다. 예를 들어, 시스템들 및 기법들은 모션 블러와 SNR 사이의 최적의 균형을 위한 노출 지속기간 (예를 들어, 가장 긴 단일 프레임 노출 지속기간) 을 계산할 수 있다. 일부 경우들에서, 이 경우에 SNR 변동은 적용될 실제 센서 이득에 대응하고, 이는 노출 지속기간/시간으로 나눈 타겟 노출의 곱이다. 일부 경우들에서, 시스템들 및 기법들은 요청된 샷-투-샷(shot-to-shot) 시간 또는 지속기간을 만족시키기 위해 멀티-프레임 프레임 카운트 (위에서 언급된 프레임들의 수) 를 계산할 수 있다. 샷-투-샷 시간은 2개의 연속적인 사용자-개시 프레임 캡처들 사이의(예를 들어, 셔터/캡처 버튼의 선택과 같은 셔터 또는 캡처 옵션의 활성화 사이의) 지속기간을 지칭할 수 있다. 요청된 샷-투-샷 지속기간은 프레임 카운트에 (미리 정의된 파이프라인 레이턴시들에 추가로) 단일 프레임 노출 지속기간을 곱한 곱일 수 있다.
일부 양태들에서, 정확한 화이트 밸런스를 찾기 위해, 시스템들 및 기법들은 더 긴 노출 프레임 (본 명세서에서 긴 노출 프레임이라고도 지칭됨) 으로부터 자동 화이트 밸런스 (auto-white balance; AWB) 통계치들을 계산할 수 있다. 긴 노출 프레임은 (예를 들어, 도 2에 도시된 예시적인 정상 조명 조건들과 같은 저조도 조건들을 갖지 않는 장면들에서) 특정 프레임들을 캡처하기 위해 사용되는 표준 노출 시간보다 더 긴 노출 시간을 사용하여 캡처된다. 일부 경우들에서, 시스템들 및 기법들은 (예를 들어, 다수의 더 길게 노출된 프레임들을 조합함으로써) 더 길게 노출된 집성된 프레임으로부터 AWB 통계치들을 계산할 수 있다. 일부 예들에서, 프로세싱 레이턴시(latency)를 해결하기 위해, 시스템들 및 기법들은 더 오래 노출된 프레임들(본 명세서에서 긴 노출 프레임들로 지칭됨)을 캡처하면서 (예를 들어, 표준 노출 시간들을 사용하여 캡처된) 짧은 노출 프레임들을 프로세싱할 수 있다. 일부 예들에서, 시스템들 및 기법들은 캡처가 완료된 후에 배경 내의 짧은 노출 프레임들을 계속 프로세싱할 수 있다. 예를 들어, 시스템들 및 기법들은 짧은 노출 및/또는 긴 노출 프레임들의 큐(queue)를 모을 수 있고, 짧은 노출 및/또는 긴 노출 프레임들의 후속 세트를 모으면서 프레임들을 프로세싱할 수 있다. 일부 양태들에서, 시스템들 및 기법들은 여전히 캡처하면서 지속적으로 더 오래 노출된 프레임들을 "개선"하면서 프리뷰 엔진에 공급할 수 있다. 프리뷰 엔진은 (예를 들어, 셔터 버튼 또는 옵션이 활성화되기 전에 및/또는 셔터 버튼 또는 옵션에 기초한 캡처 프로세싱이 여전히 수행되고 있는 동안) 프레임들을 프리뷰로서 출력할 수 있다.
일부 예들에서, 양자화 문제들 (예를 들어, 크로마 얼룩들) 을 해결하기 위해, 시스템들 및 기법들은 카메라 파이프라인에서 MFHDR 뒤에 있는 포스트-이미지 프로세싱 엔진 (포스트-IPE) 을 사용할 수 있고/있거나 머신 러닝 시스템을 사용할 수 있다. 용어 "크로마 얼룩들(chroma stains)"은 크로마 양자화를 위한 시각화된 용어이고, 또한 "크로마 밴딩" 또는 "크로마 윤곽들"로 지칭될 수 있다. 크로마 얼룩들은 불충분한 컬러 심도를 갖고 평활화(smoothing)(예를 들어, 노이즈 감소) 및 컬러들을 향상시키는 추가적인 프로세스를 겪는 프레임에서 발생할 수 있다. 크로마 얼룩들의 결과는 평평한(회색 부근) 영역들의 윤곽들 또는 단차들을 포함할 수 있다. 포스트-IPE는 생성된 윤곽들을 더 평활화하기 위해 사용될 수 있는 추가적인 하드웨어 이미지 프로세싱 엔진(IPE) 인스턴스이다. 예를 들어, 포스트-IPE는 (예를 들어, 프레임이 그것의 최종 톤들을 가질 때) 프레임 프로세싱 및/또는 캡처 명령 파이프라인의 끝에 위치될 수 있다.
일부 예들에서, 시스템 및 기법들은 조도(lux) 계량에 기초하여 특정 저조도 프로세싱을 활성화 또는 비활성화할 수 있다. 조도 계량(illuminance metering)을 사용하여, 시스템들 및 기법들은 조명 조건들에 기초하여 동적으로 인에이블될 수 있다. 예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템의 이미지 신호 프로세서(ISP) 또는 다른 프로세서는 광의 양을 측정할 수 있다. 광의 양(예를 들어, 도 2에 도시된 것과 같은 낮은 광, 보통 광, 매우 낮은 광 등)에 기초하여, ISP는 본 명세서에 설명된 기법들 중 하나 이상을 활성화할지 여부를 결정할 수 있다.
일부 예들에서, 긴 노출 프레임들은 짧은 노출 프레임들보다 상당히 더 높은 광 감도를 갖는다. 광 감도는 또한 "노출", "이미지 노출", 또는 "이미지 감도"로 지칭될 수 있고, 다음과 같이 정의될 수 있다: 광 감도 = 이득 * 노출_시간. 노출 시간은 또한 노출 지속기간으로 지칭될 수 있다. 또한, 용어 노출은 노출 지속기간 또는 시간을 지칭한다. 짧고 긴 노출 프레임들을 캡처하는 데 사용되는 노출 스케일은 변할 수 있다. 짧은 노출 및 긴 노출 프레임들은 일부 경우들에서 전체 이용가능한 이득 범위에 걸쳐 있을 수 있다. 일부 예들에서, 짧은 노출 프레임은 33 밀리초 (ms) 또는 16.7ms 의 노출을 사용하여 캡처될 수 있다. 일부 경우들에서, 짧은 노출 프레임들은 표준 프리뷰 (예를 들어, 셔터 버튼 또는 옵션이 활성화되기 전 및/또는 셔터 버튼 또는 옵션에 기초한 캡처 프로세싱이 여전히 수행되고 있는 동안 등에 디바이스의 디스플레이에서 프리뷰됨) 를 지원하기 위한 후보들로서 사용될 수 있다. 일부 경우들에서, 짧은 노출 프레임에 대한 노출 시간은, 플리커 프리 조건(flicker free condition)을 만족시키기 위해서와 같이 매우 짧을 수 있거나(예를 들어, 0.01초), 또는 직접적인 플리커 프리 광원이 검출되는 경우 훨씬 더 짧을 수 있다. 일부 경우들에서, 특정 프레임 레이트 (예를 들어, 사용자에 의해 정의된 것)에 대해 최대 광 감도에 도달하기 위해, 짧은 노출 프레임에 대한 노출 시간은 1/프레임_레이트 초일 수 있다. 일부 예들에서, 짧은 노출 프레임들의 노출들은 [0.01, 0.08]초의 범위에서 변할 수 있다. 긴 노출 프레임들 또는 이미지들은 짧은 노출 프레임을 캡처하기 위해 사용된 상기 임의의 노출을 사용하여 캡처될 수 있다. 예를 들어, 긴 노출 프레임들의 노출은 [0.33, 1]초의 범위에서 변할 수 있다. 하나의 예시적인 예에서, 예를 들어 장면 내 움직임이 없는 삼각대를 사용하는 경우, 긴 노출 프레임에 대한 노출 지속기간은 대략 1초일 수 있다. 일부 경우들에서, 긴 노출 프레임들에 대해 사용되는 노출은 더 큰 지속기간들(예를 들어, 3초 또는 다른 지속기간)에 도달할 수 있지만, 짧은 노출 프레임들보다 "더 짧은" 것은 아니다.
본 명세서에서 사용되는 바와 같이, 용어들 짧은, 중간, 안전한, 및 긴은 제 1 설정과 제 2 설정 사이의 상대적인 특성화들을 지칭하고, 특정 설정에 대해 정의된 범위들에 반드시 대응하는 것은 아니다. 즉, 긴 노출(또는 긴 노출 지속기간 또는 긴 노출 프레임 또는 이미지)은 단순히 제 2 노출(예를 들어, 짧은 또는 중간 노출)보다 긴 노출 시간을 지칭한다. 다른 예에서, 짧은 노출 (또는 짧은 노출 지속기간 또는 짧은 노출 프레임) 은 제 2 노출(예를 들어, 긴 또는 중간 노출)보다 짧은 노출 시간을 지칭한다.
본 출원의 다양한 양태들이 도면들과 관련하여 설명될 것이다. 도 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)의 포커스 제어 메커니즘(125B)은 포커스 설정을 얻을 수 있다. 일부 예에서, 포커스 제어 메커니즘(125B)은 메모리 레지스터에 포커스 설정을 저장한다. 포커스 설정에 기초하여, 포커스 제어 메커니즘(125B)은 이미지 센서(130)의 포지션에 상대적으로 렌즈(115)의 포지션을 조정할 수 있다. 예를 들어, 포커스 설정에 기초하여, 포커스 제어 메커니즘 (125B) 은 모터 또는 서보를 작동시킴으로써 렌즈 (115) 를 이미지 센서 (130) 에 더 가깝게 또는 이미지 센서 (130) 로부터 더 멀리 이동시킬 수 있고, 이에 의해, 포커스를 조정할 수 있다. 일부 경우들에서, 이미지 센서 (130) 의 각각의 포토다이오드 상으로의 하나 이상의 마이크로렌즈들과 같은 추가적인 렌즈들이 시스템 (100) 에 포함될 수도 있으며, 이들 마이크로렌즈 각각은 광이 포토다이오드에 도달하기 전에 렌즈 (115) 로부터 수신된 광을 대응하는 포토다이오드를 향해 만곡시킨다. 포커스 설정은 콘트라스트 검출 오토포커스 (CDAF), 위상 검출 오토포커스 (PDAF), 또는 이들의 일부 조합을 통해 결정될 수도 있다. 포커스 설정은 제어 메커니즘 (120), 이미지 센서 (130), 및/또는 이미지 프로세서 (150) 를 사용하여 결정될 수도 있다. 포커스 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로서 지칭될 수도 있다.
제어 메커니즘(120)의 노출 제어 메커니즘(125A) 은 노출 설정을 얻을 수 있다. 일부 경우들에서, 노출 제어 메커니즘(125A)은 메모리 레지스터에 노출 설정을 저장한다. 이 노출 설정에 기초하여, 노출 제어 메커니즘(125A)은 조리개의 사이즈(예를 들어, 조리개 사이즈 또는 f/스톱), 조리개가 열려 있는 지속 시간(예를 들어, 노출 시간 또는 셔터 속도), 이미지 센서(130)의 감도(예를 들어, ISO 속도 또는 필름 속도), 이미지 센서(130)에 의해 적용된 아날로그 이득, 또는 이들의 임의의 조합을 제어할 수 있다. 노출 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로서 지칭될 수도 있다.
제어 메커니즘(120)의 줌 제어 메커니즘(125C)은 줌 설정을 획득할 수 있다. 일부 예들에서, 줌 제어 메커니즘(125C)은 메모리 레지스터에 줌 설정을 저장한다. 줌 설정에 기초하여, 줌 제어 메커니즘(125C)은 렌즈(115) 및 하나 이상의 추가 렌즈를 포함하는 렌즈 엘리먼트들의 어셈블리(렌즈 어셈블리)의 초점 길이를 제어할 수 있다. 예를 들어, 줌 제어 메커니즘 (125C) 은 렌즈들 중 하나 이상을 서로에 대해 이동시키도록 하나 이상의 모터들 또는 서보들을 작동시킴으로써 렌즈 어셈블리의 초점 거리를 제어할 수 있다. 줌 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로서 지칭될 수도 있다. 일부 예들에 있어서, 렌즈 어셈블리는 동초점 (parfocal) 줌 렌즈 또는 가변초점 (varifocal) 줌 렌즈를 포함할 수도 있다. 일부 예에서, 렌즈 어셈블리는 장면(110)으로부터 먼저 빛을 수신한 다음, 그 빛이 이미지 센서(130)에 도달하기 전에 포커싱 렌즈 (예컨대, 렌즈 (115)) 와 이미지 센서(130) 사이의 아포컬 줌 시스템 (afocal zoom system) 을 통과하는 포커싱 렌즈 (일부 경우들에서 렌즈 (115) 일 수 있음) 를 포함할 수도 있다. 아포컬 줌 시스템은 일부 경우들에서 (예를 들어, 임계값 차이 내에서) 초점 길이가 같거나 유사한 2개의 포지티브(예를 들어, 수렴, 볼록) 렌즈들을 포함할 수도 있으며, 그들 사이에는 네거티브(예를 들어, 발산, 오목) 렌즈가 있다. 일부 경우들에서, 줌 제어 메커니즘(125C)은 네거티브 렌즈 및 포지티브 렌즈들 중 하나 또는 양자 모두와 같은 아포컬 줌 시스템의 렌즈들 중 하나 이상을 이동시킨다.
이미지 센서(130)는 포토다이오드 또는 다른 감광 엘리먼트의 하나 이상의 어레이를 포함한다. 각각의 포토다이오드는 이미지 센서(130)에 의해 생성된 이미지 또는 프레임 내의 특정 픽셀에 결국 대응하는 광의 양을 측정한다. 일부 경우들에서, 상이한 포토다이오드들은 상이한 컬러 필터들에 의해 커버될 수도 있고, 따라서, 포토다이오드를 커버하는 필터의 컬러에 매칭하는 광을 측정할 수도 있다. 예를 들어, 베이어(Bayer) 컬러 필터들은 적색 컬러 필터들, 청색 컬러 필터들, 및 녹색 컬러 필터들을 포함하고, 프레임의 각각의 픽셀은 적색 컬러 필터에서 커버된 적어도 하나의 포토다이오드로부터의 적색 광 데이터, 청색 컬러 필터에서 커버된 적어도 하나의 포토다이오드로부터의 청색 광 데이터, 및 녹색 컬러 필터에서 커버된 적어도 하나의 포토다이오드로부터의 녹색 광 데이터에 기초하여 생성된다. 다른 타입들의 컬러 필터들이 적색, 청색, 및/또는 녹색 컬러 필터들 대신에 또는 그에 부가하여 옐로, 마젠타, 및/또는 시안 ("에메랄드” 로도 지칭됨) 컬러 필터들을 사용할 수도 있다. 일부 이미지 센서들은 컬러 필터가 모두 결핍되어 있을 수도 있으며 대신 (일부 경우들에서 수직으로 적층된) 픽셀 어레이 전체에 걸쳐 상이한 포토다이오드들을 사용할 수도 있다. 픽셀 어레이 전체에 걸친 서로 다른 포토다이오드는 서로 다른 스펙트럼 감도 곡선을 가질 수 있으므로 서로 다른 파장의 빛에 반응한다. 모노크롬 이미지 센서들에도 컬러 필터가 없을 수도 있으며, 따라서 컬러 심도가 없을 수도 있다.
일부 경우들에서, 이미지 센서(130)는, PDAF(phase detection autofocus)에 사용될 수도 있는, 특정 시간에 및/또는 특정 각도로부터, 특정 포토다이오드, 또는 특정 포토다이오드의 부분에 광이 도달하는 것을 차단하는 불투명 및/또는 반사 마스크들을 대안적으로 또는 추가적으로 포함할 수도 있다. 이미지 센서(130)는 또한 포토다이오드에 의해 출력된 아날로그 신호를 증폭하기 위한 아날로그 이득 증폭기 및/또는 포토다이오드의 출력된 (및/또는 아날로그 이득 증폭기에 의해 증폭된) 아날로그 신호를 디지털 신호로 변환하기 위한 아날로그-대-디지털 변환기(ADC)를 포함할 수도 있다. 일부 경우들에서, 제어 메커니즘(120) 중 하나 이상과 관련하여 논의된 특정 컴포넌트 또는 기능이 이미지 센서(130) 대신에 또는 추가적으로 포함될 수도 있다. 이미지 센서(130)는 CCD(charge-coupled device) 센서, EMCCD(electron-multiplying CCDD) 센서, APS(active-pixel sensor), CMOS(complimentary metal-oxide semiconductor), NMOS(N-type metal-oxide semiconductor), 하이브리드 CCD/CMOS 센서(예컨대, sCMOS), 또는 이들의 기타 조합일 수도 있다.
이미지 프로세서(150)는 하나 이상의 프로세서들, 이를테면 하나 이상의 이미지 신호 프로세서(ISP)(ISP(154)를 포함함), 하나 이상의 호스트 프로세서(호스트 프로세서(152)를 포함함), 및/또는 컴퓨팅 시스템(900)과 관련하여 논의된 임의의 다른 유형의 프로세서(910) 중 하나 이상을 포함할 수도 있다. 호스트 프로세서 (152) 는 디지털 신호 프로세서 (DSP) 및/또는 다른 타입의 프로세서일 수 있다. 일부 구현들에서, 이미지 프로세서 (150) 는, 호스트 프로세서 (152) 및 ISP (154) 를 포함하는 단일의 집적 회로 또는 칩 (예컨대, 시스템-온-칩 또는 SoC 로서 지칭됨) 이다. 일부 경우들에서, 칩은 또한, 하나 이상의 입력/출력 포트들 (예컨대, 입력/출력 (I/O) 포트 (156)), 중앙 프로세싱 유닛들 (CPU들), 그래픽스 프로세싱 유닛들 (GPU들), 브로드밴드 모뎀들 (예컨대, 3G, 4G 또는 LTE, 5G 등), 메모리, 접속성 컴포넌트들 (예컨대, BluetoothTM, 글로벌 포지셔닝 시스템 (GPS) 등), 이들의 임의의 조합, 및/또는 다른 컴포넌트들을 포함할 수 있다. I/O 포트들 (156) 은, I2C (Inter-Integrated Circuit 2) 인터페이스, I3C (Inter-Integrated Circuit 3) 인터페이스, SPI (Serial Peripheral Interface) 인터페이스, GPIO (serial 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) 와 통신할 수 있다.
호스트 프로세서(152)는 (예를 들어, I2C, I3C, SPI, GPIO, 및/또는 다른 인터페이스와 같은 외부 제어 인터페이스를 통해) 새로운 파라미터 설정들로 이미지 센서(130)를 구성할 수 있다. 하나의 예시적인 예에서, 호스트 프로세서(152)는 과거 이미지들 또는 프레임들로부터의 노출 제어 알고리즘의 내부 프로세싱 결과에 기초하여 이미지 센서(130)에 의해 사용되는 노출 설정들을 업데이트할 수 있다.
호스트 프로세서(152)는 또한 ISP(154)의 내부 파이프라인들 또는 모듈들의 파라미터 설정들을 동적으로 구성할 수 있다. 예를 들어, 호스트 프로세스(152)는 이미지 또는 프레임 데이터가 ISP(154)에 의해 정확하게 프로세싱되도록 이미지 센서(130)로부터의 하나 이상의 입력 프레임들의 설정들과 매칭하도록 ISP(154)의 파이프라인들 또는 모듈들을 구성할 수 있다. ISP(154)의 프로세싱(또는 파이프라인) 블록들 또는 모듈들은, 다른 것들 중에서도, 렌즈(또는 센서) 노이즈 보정, 디모자이킹, 컬러 공간 변환, 컬러 보정, 프레임 속성들의 향상 및/또는 억제, 디노이징(예를 들어, 디노이징 필터들을 사용함), 샤프닝(sharpening)(예를 들어, 샤프닝 필터들을 사용함)을 위한 모듈들을 포함할 수 있다. 구성된 설정들에 기초하여, ISP (154) 는 하나 이상의 이미지 프로세싱 태스크들, 이를테면 노이즈 보정, 디모자이킹, 컬러 공간 변환, 프레임 다운샘플링, 픽셀 보간, 자동 노출 (AE) 제어, 자동 이득 제어 (AGC), CDAF, PDAF, 자동 화이트 밸런스 (AWB), HDR 프레임 또는 이미지를 형성하기 위한 프레임들의 병합, 이미지 인식, 오브젝트 인식, 특징 인식, 입력들의 수신, 출력들 관리, 메모리 관리, 또는 이들의 임의의 조합을 수행할 수 있다.
이미지 프로세서(150)는 랜덤 액세스 메모리 (RAM) (140/920), 판독 전용 메모리 (ROM) (145/925), 캐시(912), 메모리 유닛(예를 들어, 시스템 메모리(915)), 다른 저장 디바이스(930), 또는 이들의 일부 조합에 프레임들 및/또는 프로세싱된 프레임들을 저장할 수 있다.
이미지 프로세서(150)에는 다양한 입력/출력 (I/O) 디바이스(160)가 연결될 수도 있다. I/O 디바이스들 (160) 은 디스플레이 스크린, 키보드, 키패드, 터치스크린, 트랙패드, 터치 감응형 표면, 프린터, 임의의 다른 출력 디바이스들 (935), 임의의 다른 입력 디바이스들 (945), 또는 이들의 일부 조합을 포함할 수 있다. I/O(160)는 시스템(100)과 하나 이상의 주변 장치 사이의 유선 연결을 가능하게 하는 하나 이상의 포트, 잭, 또는 다른 커넥터를 포함할 수도 있으며, 이를 통해 시스템(100)은 하나 이상의 주변 장치로부터 데이터를 수신하고 및/또는 하나 이상의 주변 장치에 데이터를 전송할 수도 있다. I/O(160)는 시스템(100)과 하나 이상의 주변 장치 사이의 무선 연결을 가능하게 하는 하나 이상의 무선 트랜시버를 포함할 수도 있으며, 이를 통해 시스템(100)은 하나 이상의 주변 장치로부터 데이터를 수신하고 및/또는 하나 이상의 주변 장치로 데이터를 전송할 수도 있다. 주변 장치는 이전에 논의된 타입의 I/O 디바이스(160) 중 임의의 것을 포함할 수도 있으며 포트, 잭, 무선 트랜시버, 또는 기타 유선 및/또는 무선 커넥터에 연결되면 그 자신이 I/O 디바이스(160)로 간주될 수도 있다.
일부 경우들에서, 프레임 캡처 및 프로세싱 시스템 (100) 은 단일 디바이스일 수도 있다. 일부 경우들에서, 프레임 캡처 및 프로세싱 시스템(100)은 이미지 캡처 디바이스(105A)(예를 들어, 카메라) 및 이미지 프로세싱 디바이스(105B)(예를 들어, 카메라에 연결된 컴퓨팅 디바이스)를 포함하는 둘 이상의 개별 디바이스들일 수도 있다. 일부 구현들에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는, 예를 들어, 하나 이상의 와이어, 케이블, 또는 다른 전기 커넥터를 통해, 및/또는 하나 이상의 무선 트랜시버를 통해 무선으로 함께 커플링될 수도 있다. 일부 구현에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는 서로로부터 연결 해제될 수도 있다.
도 1에 도시된 바와 같이, 수직 파선은 도 1의 프레임 캡처 및 프로세싱 시스템(100)을 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)를 나타내는 두 부분으로 각각 나눈다. 이미지 캡처 디바이스 (105A) 는 렌즈 (115), 제어 메커니즘들 (120), 및 이미지 센서 (130) 를 포함한다. 이미지 프로세싱 디바이스 (105B) 는 이미지 프로세서 (150) (ISP (154) 및 호스트 프로세서 (152) 를 포함), RAM (140), ROM (145), 및 I/O (160) 를 포함한다. 일부 경우들에서, ISP (154) 및/또는 호스트 프로세서 (152) 와 같이 이미지 캡처 디바이스 (105A) 에서 예시된 특정 컴포넌트들이 이미지 캡처 디바이스 (105A) 에 포함될 수도 있다.
프레임 캡처 및 프로세싱 시스템 (100) 은 이동식 또는 고정식 전화 핸드셋 (예를 들어, 스마트폰, 셀룰러 전화기 등), 데스크톱 컴퓨터, 랩톱 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋탑 박스, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔, 비디오 스트리밍 디바이스, 인터넷 프로토콜(IP) 카메라, 또는 임의의 다른 적합한 전자 디바이스와 같은 전자 디바이스를 포함할 수 있다. 일부 예에서, 프레임 캡처 및 프로세싱 시스템(100)은 셀룰러 네트워크 통신, 802.11 Wi-Fi 통신, WLAN(wireless local area network) 통신, 또는 이들의 일부 조합과 같은 무선 통신을 위한 하나 이상의 무선 트랜시버를 포함할 수 있다. 일부 구현들에서, 이미지 캡처 디바이스 (105A) 및 이미지 프로세싱 디바이스 (105B) 는 상이한 디바이스들일 수 있다. 예를 들어, 이미지 캡처 디바이스 (105A) 는 카메라 디바이스를 포함할 수 있고, 이미지 프로세싱 디바이스 (105B) 는 모바일 핸드셋, 데스크톱 컴퓨터, 또는 다른 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스를 포함할 수 있다.
프레임 캡처 및 프로세싱 시스템(100)이 특정 컴포넌트들을 포함하는 것으로 도시되지만, 당업자는 프레임 캡처 및 프로세싱 시스템(100)이 도 1에 도시된 것들보다 더 많은 컴포넌트들을 포함할 수 있다는 것을 인식할 것이다. 프레임 캡처 및 프로세싱 시스템 (100) 의 컴포넌트들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 하나 이상의 조합들을 포함할 수 있다. 예를 들어, 일부 구현들에서, 프레임 캡처 및 프로세싱 시스템 (100) 의 컴포넌트들은 본 명세서에서 설명된 다양한 동작들을 수행하기 위해, 하나 이상의 프로그래밍가능 전자 회로들 (예컨대, 마이크로프로세서들, GPU들, DSP들, CPU들, 및/또는 다른 적합한 전자 회로들) 을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고/있거나 이들을 사용하여 구현될 수 있고, 및/또는 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고/있거나 이들을 사용하여 구현될 수 있다. 소프트웨어 및/또는 펌웨어는, 컴퓨터 판독가능 저장 매체 상에 저장되고 프레임 캡처 및 프로세싱 시스템 (100) 을 구현하는 전자 디바이스의 하나 이상의 프로세서들에 의해 실행가능한 하나 이상의 명령들을 포함할 수 있다.
도 2는 상이한 예시적인 시나리오들에 대한 다양한 럭스 값들을 예시하는 다이어그램이다. 도 2의 예가 럭스 유닛들을 사용하여 도시되지만, 조명은 (광에 대한 센서의 감도를 나타내는) 높은 ISO와 같은 다른 단위들로 측정될 수 있다. 일반적으로 럭스 조건들은 다른 것들 중에서도, 낮은 광, 정상 광, 밝은 광에 대응할 수 있다. 도 2에 도시된 럭스 조건들은 럭스 값을 구별하기 위해 사용되는 상대적인 용어들이다. 예를 들어, 본 명세서에서 사용된 바와 같이, 정상 광 범위는 저조도 범위보다 상대적으로 높은 럭스 범위를 의미하고, 초저조도 범위는 범위보다 상대적으로 낮은 럭스 범위를 의미한다. 일부 경우들에서, 예시적인 럭스 값은 컨텍스트에 기초하여 재할당될 수 있다. 예를 들어, 럭스 범위들은 프레임 프로세싱 및/또는 캡처 명령 시스템 능력들(예를 들어, 센서 픽셀 사이즈 및/또는 감도 등) 및/또는 사용 사례(예를 들어, 장면 조건들 등에 기초하여)에 따라 상대적인 디스크립터들에 의해 재할당될 수 있다.
도 2를 참조하면, 정상 광 조건들은 50, 150, 300, 1,000, 10,000, 및 30,000의 럭스 값에 해당할 수 있다. 예를 들어, 직사광선에 의해 비치는 보도를 포함하는 장면에서 30,000의 럭스 값이 발생할 수도 있는 한편, 흐린 날의 보도를 포함하는 장면에서 1,000의 럭스 값이 발생할 수도 있다. 저조도(LL) 조건들은 10 및 20의 럭스 값들에 대응할 수 있다. 초저조도(ULL) 조건들은 0.1, 0.3, 0.6, 1, 및 3의 럭스 값들에 대응할 수 있다. 예시적인 럭스 값들이 다양한 조명 조건들에 대응하는 것으로서 도 2에 도시되지만, 도 2에 도시된 것들 이외의 값들은 다양한 조명 조건들에 대응할 수 있다. 도 3은 초저조도 조건(예를 들어, 3의 럭스 값) 동안 캡처된 이미지(300)(또는 프레임)이다. 도시된 바와 같이, 이미지(300)는 어둡고, 보트는 어두운 픽셀들과 램프 포스트 상의 조명에 대응하는 이미지(300)의 밝은 부분들로 묘사된다.
도 4는 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 예를 나타내는 블록도이다. 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 컴포넌트들 중 하나 이상은 도 1의 프레임 캡처 및 프로세싱 시스템(100)의 컴포넌트들과 유사하고 유사한 동작들을 수행할 수 있다. 예를 들어, 센서(430)는 프레임 캡처 및 프로세싱 시스템(100)의 센서(130)와 유사하고 유사한 동작들을 수행할 수 있다. 도시된 바와 같이, 제로 셔터 래그(zero shutter lag; ZSL) 버퍼(432)는 센서(430)에 의해 캡처된 이미지들 또는 프레임들을 저장하는데 사용될 수 있다. 일부 예들에서, ZSL 버퍼(432)는 원형 버퍼이다. 일반적으로, ZSL 버퍼(432)는 센서에 의해 최근에 캡처된 하나 이상의 프레임을 저장하는데 사용될 수 있으며, 이는 셔터(또는 캡처) 명령이 수신되는 것에 응답하여(예를 들어, 사용자 입력에 기초하여 또는 자동으로 수신되는 것에 기초하여) 프레임 프로세싱 및/또는 캡처 명령 시스템(400)이 프레임의 인코딩 및 저장을 완료할 때까지 발생할 수도 있는 지연 시간을 보상할 수 있다.
일단 프레임 프로세싱 및/또는 캡처 명령 시스템(400)이 셔터 명령을 프로세싱하면, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 버퍼링된 프레임들 중 하나를 선택할 수 있고, 저장, 디스플레이, 전송 등을 위해 선택된 프레임을 추가로 프로세싱할 수 있다. 도시된 바와 같이, ZSL 프레임들은 비교적 짧은 노출들로 캡처되고, (도 4 에서 "짧은 노출(Short Exp)"로서 지칭되는) 짧은 노출 프레임들(434)로서 지칭된다. 짧은 노출 프레임들(434)은 제 1 MFxR 엔진(436)(예를 들어, MFNR 및/또는 MFSR을 수행할 수 있는 엔진)으로 출력된다. 제 1 MFxR 엔진 (436) 은 짧은 노출 프레임들에 기초하여 블렌딩된 프레임 (438) 을 생성한다. 블렌딩된 프레임(438)은 다중 프레임 하이 다이내믹 레인지 (MFHDR) 엔진(440)으로 출력된다. MFHDR 엔진(440)은, 비교적 짧은 노출(예를 들어, 33ms)을 사용하여 캡처된 하나 이상의 프레임들, 비교적 중간 레벨 노출(예를 들어, 100ms)을 사용하여 캡처된 하나 이상의 프레임들, 및 비교적 긴 노출(예를 들어, 500ms)을 사용하여 캡처된 하나 이상의 프레임들과 같은, 상이한 광 감도들 또는 노출 파라미터들(예를 들어, 노출 시간 및/또는 이득)로 캡처된 동일한 장면의 다수의 프레임들 또는 이미지들을 입력으로서 수신할 수 있다. 긴 노출을 사용하여 캡처된 프레임들은 위에서 언급된 바와 같이 긴 노출 프레임들 또는 이미지들로 지칭될 수 있다. 일부 예들에서, 노출 지속기간에 부가하여 또는 그에 대한 대안으로서, 센서 이득은 짧은 노출, 중간 레벨 노출, 및 긴 노출 프레임들 또는 이미지들에 대해 조정될 수 있다. MFHDR 엔진은 다수의 프레임들 또는 이미지들을 단일의 하이어 다이내믹 레인지(HDR) 프레임으로 결합할 수 있다. MFHDR 엔진(440)은 HDR 프레임을 포스트-IPE(442)로 출력할 수 있다. 일부 예들에서, MFHDR 엔진 (440) 은 프레임의 상이한 부분들을 원하는 밝기 레벨로 가져오도록 톤 맵핑을 적용할 수 있다. 일부 예들에서, 각각의 MFHDR 입력은 별개의 MFNR 출력(예를 들어, 긴 및 짧은 입력들/출력들)이다. 포스트-IPE(442)는 최종 출력 프레임 또는 이미지를 생성하기 위해 MFHDR 엔진(440)으로부터의 HDR 프레임에 대해 추가적인 이미지 프로세싱 동작들을 수행할 수 있다. 포스트-IPE(442)에 의해 수행되는 추가적인 이미지 프로세싱 동작들은, 예를 들어, 다른 것들 중에서도, 감마(Gamma), 샤프닝(sharpening), 컬러 미세 터치들, 업스케일(upscale), 그레인(grain)을 포함할 수 있다.
센서(430)는 또한 PSL 캡처(444) 동안 포지티브-셔터-지연(PSL) 프레임들 또는 이미지들을 출력한다. PSL 프레임들은 ZSL 프레임들과 비교하여 상대적으로 더 긴 노출 시간들(및/또는 대응하는 이득)로 캡처되고, 위에서 언급된 바와 같이, 긴 노출 프레임들(446)(도 4에서 "긴 노출(Long Exp)" 프레임들 또는 이미지들로 지칭됨)로 지칭된다. 긴 노출 프레임들 (446) 로부터의 AWB 통계들 (448) 은 제 1 AWB 엔진 (450)("AWB 1" 로서 도시됨)에 제공된다. 제 1 AWB 엔진 (450)은 화이트 밸런스 (WB) 스케일러들 (451)을 생성할 수 있고, WB 스케일러들 (451)을 제 1 MFxR 엔진 (436) 및/또는 제 2 MFxR 엔진 (452) (예를 들어, MFNR 및/또는 MFSR을 수행할 수 있는 엔진) 에 출력할 수 있다. 일부 예들에서, WB 스케일러들 (451) 은 특정 관찰자 하에서 틴리스 그레이 컬러를 달성하기 위해 적용될 수 있는 적색, 녹색, 및 청색 이득 스케일을 어드레싱하는 3개의 계수들을 포함할 수 있다. 하나의 예시적인 예에서, WB 스케일러들 (451) 은 적색 (R)에 대해 1.9 의 계수 값, 녹색 (G)에 대해 1.0 의 계수 값, 및 청색 (B)에 대해 1.6 의 계수 값을 포함할 수 있다. 긴 노출 프레임들 (446) 은 또한 제 2 MFxR 엔진 (452)으로 출력된다. 일부 경우들에서, 제 1 MFxR 엔진 (436) 및 제 2 MFxR 엔진 (452) 은 동일한 프로세싱 기법들을 사용하여 동일한 하드웨어에 의해 구현될 수 있지만, 하드웨어는 제 2 MFxR 엔진과 비교하여 제 1 MFxR 엔진을 구현할 때 상이한 튜닝 설정들을 가질 수 있다. 도 4에 도시된 바와 같이, 제 2 MFxR 엔진 (452) 은 프레임 프로세싱 및/또는 캡처 명령 시스템 (400) 의 디스플레이 또는 프레임 프로세싱 및/또는 캡처 명령 시스템 (400) 을 포함하는 디바이스 상에서 (예를 들어, 셔터 또는 캡처 명령이 수신되기 전에 및/또는 셔터 명령에 기초한 캡처 프로세싱이 여전히 수행되고 있는 동안 디스플레이되는) 프리뷰 프레임들 (454) 로서 긴 노출 프레임들 (446) 을 출력할 수 있다. 일부 예들에서, 제 2 MFxR 엔진 (452) 은 (예를 들어, 긴 노출 프레임들을 융합 또는 블렌딩함으로써) 긴 노출 프레임들 (446)에 기초하여 블렌딩된 프레임 (456) 을 생성할 수 있다. 블렌딩된 프레임 (456) 은 MFHDR 엔진 (440)으로 출력되고, 또한, AWB 통계치들을 추출할 수 있는 저조도 (low-light; LL) 엔진 (458)으로 출력된다. AWB 통계치들은 제 2 AWB 엔진(460)("AWB 2"로 도시됨)으로 출력된다. 일부 경우들에서, 제 1 AWB 엔진 (450) 및 제 2 AWB 엔진 (460) 은 동일한 프로세싱 기법들을 사용하여 동일한 하드웨어에 의해 구현될 수 있지만, 하드웨어는 제 2 AWB 엔진과 비교하여 제 1 AWB 엔진을 구현할 때 상이한 튜닝 설정들을 가질 수 있다. 제 2 AWB 엔진(460)은 WB 스케일러들(461)을 생성하고, WB 스케일러들(461)을 MFHDR 엔진(440)에 출력할 수 있다. MFHDR 엔진 (440) 은, 상술된 바와 같이, 결합된 프레임 (예를 들어, HDR 프레임) 을 포스트-IPE (442)에 출력한다.
도 4에 도시된 바와 같이, 프레임 프로세싱 및/또는 캡처 명령 시스템은 프레임들(또는 이미지들)의 수 및 이미지들/프레임들 각각에 대한 노출 시간(및/또는 대응하는 이득)을 결정하기 위해 저조도(LL) 결정(462)을 수행할 수 있다. 프레임들의 수 및 노출 시간(및/또는 이득)을 결정하는 것에 관한 추가적인 세부사항들은 도 12 내지 도 17b와 관련하여 아래에서 설명된다. 일부 예들에서, LL 엔진(458)은 LL 결정(462)을 행할 수 있다. LL 결정 (462)에 기초하여, 자동 노출 제어 (automatic exposure control; AEC) 엔진 (464) 은 센서 (430)에 대한 노출 파라미터들 (예를 들어, 노출 지속기간, 이득 등) 을 결정하기 위해 AEC 를 수행할 수 있다. 예를 들어, AEC 엔진 (464) 은 LL 결정 (462)에 기초하여 캡처할 프레임들의 수 및 그 수의 프레임들에 대한 노출 시간 (및/또는 센서 이득) 의 표시를 (센서 (430)에) 전송할 수 있다.
도 5는 프레임 프로세싱 및/또는 캡처 명령 시스템(400)에 의해 수행되는 상이한 프로세스들의 타이밍의 예를 나타내는 타이밍도(500)이다. 예를 들어, 타이밍도는 셔터가 활성화될 때 (예를 들어, 셔터 또는 캡처 커맨드의 수신에 대응하여 눌려지거나 달리 선택될 때), 샷-투-샷 시간, 및 총 프로세스 시간을 도시한다. 샷-투-샷 시간은 2개의 연속적인 사용자 개시된 이미지 캡처들 사이의 (예를 들어, 셔터/캡처 버튼의 선택과 같은 셔터 또는 캡처 옵션의 활성화 사이의) 지속기간을 지칭한다. 도시된 바와 같이, ZSL 프레임들(502)(예를 들어, 짧은 AEC를 가짐)은 셔터가 눌러지기 전에 캡처된다. 일부 경우들에서, AEC는 노출, 이득 등을 제어하는 부모 알고리즘이다. AEC는 또한 센서 인터페이스를 갖는다. 일부 예들에서, AEC는 3개의 측정치들을 갖는다: 짧음, 안전, 김. 짧음은 밝은 영역이 보존되는 것을 초래하고, 안전은 균형 잡힌 노출을 초래하고, 김은 어두운 영역들을 우선시한다. ZSL 프레임들(502)은 프리뷰 이미지들이고, 위에서 언급된 바와 같이 (예를 들어, 하이라이트들을 보존하기 위해) 짧은 노출 프레임들로서 사용될 수 있다. 따라서, ZSL 프레임들(502)은 짧은 AEC 계량에 따라 캡처될 수 있다. 일단 셔터가 눌러지면, PSL 프레임들(504)이 캡처되고, 그 후 짧은 다중 프레임 노이즈 감소(multi-frame noise reduction; MFNR)(506) 및 긴 MFNR 및 프리뷰(508)가 적용된다. 화이트 밸런스 (white balance; WB) 는 WB 정제 (510) 를 수행함으로써 정제되고, 그 후, MFHDR 및 포스트-프로세싱 (512) 이 적용될 수 있다.
도 6 내지 도 11 은 도 5의 타이밍도(500)에 따른 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 구현의 예를 나타내는 도면들이다. 도 6은 도 5에 도시된 타이밍도(500)의 LL 모드 타이밍 동안 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 사용을 도시한다. 전술한 바와 같이, LL 모드는 (셔터가 활성화되기 전) 짧은 AEC 및 ZSL을 포함한다. 일부 경우들에서, LL 모드(짧은 AEC 설정 및 ZSL 캡처)는 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 1 단계로서 수행될 수 있다. AEC 엔진 (464) 은 (예를 들어, LL 엔진 (458)에 의해) LL 결정 (462)에 기초하여 ZSL 을 설정할 수 있다. 예를 들어, AEC 엔진 (464) 은 짧은 노출 프레임들 (434) (또한 ZSL 프레임들 또는 이미지들로 지칭됨) 을 캡처하는데 사용되는 노출을 (짧은 AEC 를 사용하여) 설정하기 위해, 예를 들어, 사용자 구성 또는 자동 설정 (예를 들어, 유효 ZSL 범위, 예컨대 [1/7 - 1/15] 초)에 따라, 셔터 우선순위 (예를 들어, 특정 셔터 속도 (노출 시간에 대응함) 가 사용되도록 허용하는 설정, 그 후 AEC 엔진 (464) 은 셔터 속도/노출 시간을 보완하기 위해 이득을 계산할 것이다) 를 결정할 수 있다. 일부 경우들에서, 셔터 속도는 (예를 들어, 물리적 셔터를 포함하지 않는 디바이스들에 대해) 센서 노출 시간 또는 유효 센서 판독 시간을 지칭할 수 있다. AEC 엔진(464)은 약간의 초과 노출을 갖는 AEC "짧은" 메트릭으로부터 이득을 선택할 수 있다. AEC 엔진 (464) 은 결정된 AEC 설정들에 기초하여 프레임 세트들을 결정할 수 있다. 예를 들어, 더 큰 프레임 간격들이 이득 변화(예를 들어, 동일한 이득을 갖는 [3 - 8] 프레임들의 시퀀스)에 대해 결정될 수 있다. 일부 경우들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 (예를 들어, 다이내믹 레인지 계산에 기초하여) 짧은 노출 프레임(434)을 프로세싱하기 위해 MFHDR이 사용될지 여부(예를 들어, MFHDR 엔진(440)에 의해 MFHDR 모드를 사용할지 또는 비-MFHDR 모드를 사용할지 여부)를 결정할 수 있다. 일부 예들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 짧은 노출 프레임들(434)에 대한 다이내믹 레인지를 추가로 계산할 수 있다. 예를 들어, 다이내믹 레인지는 AEC "김" 대 "짧음" 비율로부터 결정될 수 있다. 하나의 예시적인 예에서, 원하는 모드(예를 들어, MFHDR을 사용할지 또는 비-MFHDR을 사용할지) 및 일부 추가적인 구성들을 결정하기 위해, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은, 예컨대 (예를 들어, 짧은 측정과 긴 계량들 사이의) AEC의 극도 계량으로부터 비율을 계산함으로써, 장면에서의 다이내믹 레인지의 "양"을 결정할 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템(400)이 MFHDR 모드가 사용될 것이라고 결정하면, 짧은 노출 프레임들(434)은 적응형 다이내믹 레인지 제어(adaptive dynamic range control; ADRC)를 사용하여 프로세싱될 수 있다. 센서(430)는 노출 설정들에 기초하여 짧은 노출 프레임들(434)을 캡처할 수 있다. 짧은 노출 프레임들(434)은 그 후 ZSL 버퍼(432)에 저장될 수 있다. 일부 경우들에서, 동일한 이득을 갖는 이전 원시 프레임들(또는 이미지들)은 ZSL 버퍼(432)에 저장될 수 있다. 일부 경우들에서, 유사한 이득 또는 유사한 감도를 갖는 이전의 원시 프레임들(또는 이미지들)은 ZSL 버퍼(432)에 저장될 수 있다.
도 7은 도 5에 도시된 타이밍도(500)의 PSL 캡처 타이밍 동안 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 사용을 예시한다. 위에서 언급되고 도 5에 도시된 바와 같이, PSL 캡처는 셔터 또는 캡처 명령이 수신되는 것에 응답하여 발생할 수 있다. 일부 경우들에서, PSL 캡처는 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 2 단계로서 수행될 수 있다. PSL 캡처의 경우, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 장면 모션 또는 움직임(예를 들어, 프레임들이 캡처되고 있는 장면에서 하나 이상의 객체들의 움직임에 대응하는 로컬 모션)을 측정할 수 있다. 일부 예들에서, LL 엔진(458) 또는 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 다른 컴포넌트는 디바이스 또는 디바이스의 카메라의 움직임에 대응하는 글로벌 모션을 결정하기 위해 수집된 센서 측정들(예를 들어, 자이로미터 또는 자이로스코프, 가속도계, 이들의 임의의 조합, 및/또는 다른 IMU들과 같은 하나 이상의 관성 측정 유닛(IMU)들) 및/또는 프리뷰 모션 분석 통계들을 사용할 수 있다. 예를 들어, IMU들은 카메라 모션을 기계적으로 추정하기 위한 수단을 제공하며, 이는 프레임들(예를 들어, 이미지들 또는 픽처들)이 촬영될 때 얼마나 많은 흔들림이 존재하는지를 결정하기 위해 프레임 프로세싱 및/또는 캡처 명령 시스템(400)에 의해 사용될 수 있다. 예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 광학 이미지 안정화기(OIS)에 관하여 IMU 샘플들(예를 들어, 자이로미터 또는 자이로스코프 샘플들, 가속도계 샘플들 등)을 분석할 수 있다. 일부 예들에서, 삼각대가 사용되었는지 여부를 결정하기 위해, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 비디오 분석 삼각대 검출 메커니즘으로 IMU 측정들을 상호 참조할 수 있다.
일부 예들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 하나 이상의 프리뷰 프레임들(예를 들어, 도 5에 도시된 타이밍도(500)의 LL 모드 타이밍 동안 또는 그 직후에 센서 지연 기간 동안 캡처된 ZSL 프레임들)과 연관된 로컬 모션의 양을 결정할 수 있다. 로컬 모션의 양을 결정하기 위해, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 본 명세서에서 모션 맵들로 지칭될 수 있는 시간적 필터 표시들(TFI)을 분석할 수 있다. 예를 들어, TFI(또는 모션 맵)는 제 1 프레임에 대한 제 1 TFI 메타데이터, 제 2 프레임에 대한 제 2 TFI 메타데이터 등과 같은 각각의 프레임에 대한(예를 들어, 하나 이상의 프리뷰 프레임들 각각에 대한) 메타데이터로서 포함될 수 있다. 일부 경우들에서, TFI는 이미지(TFI 이미지 또는 모션 맵 이미지로 지칭됨)를 포함한다. 일부 예들에서, TFI 이미지는 TFI 이미지가 연관되는 프레임(예를 들어, TFI 이미지가 메타데이터로서 포함되는 프레임)과 동일한 해상도(수평 방향 및 수직 방향에서 동일한 수의 픽셀들을 가짐)를 가질 수 있다. 일부 예들에서, TFI 이미지는 TFI 이미지가 연관되는 프레임과 비교하여 더 낮은 해상도(수평 방향 및/또는 수직 방향에서 더 적은 픽셀들을 가짐)를 가질 수 있다. 예를 들어, TFI 이미지의 각각의 픽셀은 TFI 이미지와 연관된 프레임의 각각의 대응하는 픽셀에 대한 모션의 양을 나타내는 값을 포함할 수 있다. 일부 경우들에서, TFI의 각각의 픽셀은 모션의 양을 표시하는 값과 연관된 신뢰도를 표시하는 신뢰도 값을 포함할 수 있다. 일부 경우들에서, TFI는 프리뷰 동안 글로벌 모션 보상 후에 시간적으로 블렌딩될 수 없는 이미지 영역들을 표현할 수 있고, 장면에서의 로컬 모션 컴포넌트를 표시할 수도 있다.
일부 예들에서, SGM(Semi Global Match) 이미지는 TFI 이미지에 추가하여 또는 이에 대한 대안으로서 사용될 수 있다. SGM은 글로벌 보상이 수행된 후의 잔차 모션 벡터 맵(로컬 2D 및/또는 3D 모션을 나타냄)이다. SGM은 TFI 이미지들과 관련하여 전술한 것과 유사하게 로컬 모션 표시자로서 사용될 수 있다. 예를 들어, SGM은 글로벌 정렬이 (예를 들어, OIS를 사용하여) 보정된 후에 (예를 들어, 입력으로서) 획득될 수 있다.
TFI 및/또는 SGM 이미지들로부터의 정보를 사용하여, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 프레임의 캡처 동안 로컬 모션을 예측할 수 있다. 본 명세서에서 더 상세히 설명되는 바와 같이, (예를 들어, 자이로스코프 측정들과 같은 센서 측정들에 기초한) 글로벌 모션 및 최종 모션 표시(final motion indication; FMI)로 지칭되는 (예를 들어, TFI에 의해 표시되는 바와 같은) 로컬 모션의 조합이 결정될 수 있다.
AEC 엔진 (464) 은 긴 노출 프레임들을 캡처하는데 사용되는 긴 AEC 를 설정할 수 있다. 예를 들어, LL 엔진(458)은 노출 및 이득의 새로운 조합을 AEC 엔진(464)에 제공할 수 있다(예를 들어, 단일 노출은 삼각대 상에서 1초에 도달할 수 있다). LL 엔진(458)은 또한 긴 프레임들의 수를 결정할 수 있다. 일부 경우들에서, 본 명세서에 설명된 바와 같이, LL 엔진(458)은 로컬 모션(예를 들어, TFI에 의해 표시됨), 글로벌 모션 또는 FMI에 기초하여 긴 프레임들의 수 및 노출을 결정할 수 있다. 그 다음, 센서(430)는 PSL 이미지들 또는 프레임들(긴 노출 프레임들(446))을 캡처할 수 있다. 일부 예들에서, 추가적인 ZSL 프레임들 (짧은 노출 프레임들) 은 PSL 프레임들을 캡처할 때 캡처될 수도 있다. 추가적인 ZSL 프레임들은 ZSL 버퍼(432)에 저장될 수 있다. 일부 경우들에서, 제 1 AWB 엔진(450)은 센서(430)에 의해 캡처된 제 1 PSL 프레임으로부터 AWB를 계산할 수 있다. 제 1 AWB 엔진 (450) 은 WB 스케일러들 (451) 을 제 1 MFxR 엔진 (436) 및/또는 제 2 MFxR 엔진 (452)에 출력할 수 있다. 제 1 PSL 프레임이 캡처된 후, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 캡처 프로세스의 다음 부분(예를 들어, 도 8과 관련하여 설명된 MFNR과 같은 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 3 단계)을 시작할 수 있다.
도 8은 도 5에 도시된 타이밍도(500)의 짧은 MFNR 동안 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 사용을 예시한다. 예를 들어, PSL 캡처 동안, 제 1 MFxR 엔진 (436) 은 짧은 노출 프레임들에 대해 MFNR 을 수행할 수 있다. 일부 경우들에서, 짧은 MFNR은 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 3 단계로서 수행될 수 있다. 일부 예들에서, 제 1 MFxR 엔진 (436) 은 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 2 단계로부터 계산된 WB (예를 들어, 제 1 PSL 프레임으로부터의 AWB) 를 사용할 수 있다. 전술한 바와 같이, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 ZSL 프레임들(예를 들어, 짧은 노출 프레임들(434))을 프로세싱하기 위해 MFHDR 모드가 요구되는지를 결정할 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템(400)이 MFHDR 모드가 사용된다고 결정하면, 제 1 MFxR 엔진(436)은 짧은 노출 프레임들에 대해 MFNR을 수행하지 않기로 결정할 수 있다.
도 9는 도 5에 도시된 타이밍도(500)의 긴 MFNR 및 프리뷰(508) 부분 동안 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 사용을 예시한다. 예를 들어, 제 2 MFxR 엔진은 긴 노출 프레임들에 대해 MFNR을 수행할 수 있고 프리뷰를 위해 프레임들을 출력할 수 있다. 일부 경우들에서, 긴 MFNR 및 프리뷰는 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 4 단계로서 수행될 수 있다. MFNR 을 사용하여 긴 프레임들을 프로세싱하기 위해, 제 2 MFxR 엔진 (452) 은 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 2 단계로부터 계산된 WB (예를 들어, 제 1 PSL 프레임으로부터의 AWB) 를 사용할 수 있다. 일부 예들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)이 비-MFHDR 모드가 사용될 것이라고 결정하면(MFHDR이 요구되지 않을 때), 제 2 MFxR 엔진(452)은 로컬 톤 맵핑(LTM)에 더하여 글로벌 톤 맵핑(GTM)을 사용할 수 있다. 일부 경우들에서, GTM은 픽셀의 루마 값에 따라 각각의 픽셀에 대해 이득을 적용한다. 일부 경우들에서, LTM은 지역적 밝기에 따라 다른 이득값을 적용한다. 제 2 MFxR 엔진(452)은 포지션 프로세싱 세그먼트(PPS)로 각각의 집성된 프레임 또는 이미지를 계속 프로세싱할 수 있다(예를 들어, 프로세싱 파이프라인 로컬 톤 맵핑, 샤프닝, 컬러 보정, 업스케일링 등에서의 로케이션이 수행된다). 일부 경우들에서, 집성된 프레임은 (예를 들어, MFNR 및/또는 MFHDR 프로세스의 적용에 기초하여) 단일 이미지 또는 프레임으로 결합된 다수의 융합된 프레임들의 결과일 수 있다. 일부 예들에서, IPE_TF_FULL_OUT (MFNR NPS out)에 추가하여, 제 2 MFxR 엔진 (452) 은 IPE_DISP_OUT 결과에 대해 PPS 를 계속 수행할 수 있다. 일부 경우들에서, 긴 노출 프레임들(446) 각각은 약간 더 강한 LTM(예를 들어, 브라이트닝 효과)을 가질 수도 있다. 제 2 MFxR 엔진 (452) 은 상술한 바와 같이, 프리뷰 프레임 (454) 으로서 디스플레이하기 위해 각각의 PPS 결과를 전송할 수 있다. 일부 경우들에서, 프리뷰는 모든 PSL 프레임들(긴 노출 프레임들(446))이 프레임 프로세싱 및/또는 캡처 명령 시스템(400)에 의한 캡처를 완료한 후에 ZSL 버퍼(432)로 리턴할 것이다.
도 10 은 도 5에 도시된 타이밍도 (500) 의 WB 정제 (510) 부분 동안 프레임 프로세싱 및/또는 캡처 명령 시스템 (400) 의 사용을 예시한다. WB 정제 (510) 는 더 양호한 AWB 통계들을 생성하기 위해 긴 노출 프레임들 (446)에 대한 WB 의 정제(refinement)를 포함할 수 있다. 일부 경우들에서, WB의 정제는 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 5 단계로서 수행될 수 있다. 긴 노출 프레임들 (446)에 대한 더 양호한 AWB 통계들을 생성하기 위해, LL 엔진 (458) 은 개선된 AWB 통계치들을 생성하기 위해 긴 MFNR 결과 (예를 들어, MFxR 엔진 (452) 으로부터의 블렌딩된 프레임 (456))에 대해 "역 ISP" 를 수행할 수 있다. 예를 들어, 일부 경우들에서 WB 계수들을 재계산하기 위해, 프레임은 AWB 호환 가능한 이미지여야 한다. 일부 경우들에서, 역 ISP 기능은 원시 프레임 또는 이미지에 대해 수행된 동작들의 역을 포함할 수 있으며, 이는 선형 프레임 또는 이미지(예를 들어, 선형 RGB 프레임 또는 이미지)를 초래한다. 결과적인 선형 프레임은 개선된 SNR 프레임에 대한 통계를 재생성하기 위해 사용될 수 있다. 역 ISP는 그 이후의 모든 조정들에 대해 더 양호한 통계들을 초래할 수 있다. 긴 노출 프레임들에 대한 정제된/개선된 AWB 통계들을 사용하여, 제 2 AWB 엔진 (460) 은 (예를 들어, WB 스케일러들 (461) 의 일부로서) 정제된 WB 스케일러들을 계산할 수 있다. 일부 예들에서, LL 엔진(458)은 정제된 WB 스케일러들을 계산할 수 있다.
도 11은 도 5에 도시된 타이밍도(500)의 MFHDR 및 포스트-프로세싱(512) 부분 동안 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 사용을 예시한다. 일부 경우들에서, MFHDR 및 포스트-프로세싱 (512) 은 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 6 단계로서 수행될 수 있다. 예를 들어, MFHDR 엔진 (440) 은 (예를 들어, 프레임 프로세싱 및/또는 캡처 명령 프로세스의 제 5 단계 동안 결정된) 제 2 AWB 엔진 (460) 으로부터의 정제된 WB 스케일러들 (461) 을 사용할 수 있다. 일부 예들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템(400)이 비-MFHDR 모드가 사용되어야 한다고 결정하면(MFHDR이 요구되지 않음), 프레임 프로세싱 및/또는 캡처 명령 시스템(400)은 PPS 프레임들만을 포스트-IPE에 출력할 수 있다. 일부 예들에서, 포스트-IPE는 "크로마 얼룩들"을 평활화하기 위해 사용될 수 있다. 일부 예들에서, 포스트-IPE는 머신 러닝 시스템(예를 들어, 하나 이상의 신경망 시스템들)을 포함한다. 실례로, 머신 러닝 기반 이미지 신호 프로세서는 전체 프레임 또는 이미지 정제를 위한 포스트-IPE로서 사용될 수 있다.
위에서 언급된 바와 같이, 일부 구현들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템(예를 들어, LL 엔진)은 예컨대 프레임들 또는 이미지들(예를 들어, 프리뷰 또는 짧은 노출 프레임들 또는 이미지들)이 캡처되고 있는 장면에서의 하나 이상의 오브젝트들의 움직임에 기초하여 장면 모션(또한 장면 내 모션 또는 로컬 모션으로 지칭됨)을 결정할 수 있다. 일부 경우들에서, 위에서 언급된 바와 같이, 프레임 프로세싱 및/또는 캡처 명령 시스템의 LL 엔진 또는 다른 컴포넌트는 모션을 평가하기 위해 (예를 들어, 자이로스코프 또는 자이로미터와 같은 관성 측정 유닛(IMU), 가속도계, 및/또는 다른 IMU로부터의) 수집된 센서 측정들 및/또는 프리뷰 CVP 모션 분석 통계들을 사용할 수 있다. 일부 경우들에서, 모션-인식 알고리즘은 본 명세서에 설명된 프레임 프로세싱 및/또는 캡처 명령 시스템들 및 프로세스들의 실행을 향상시키기 위해 사용될 수 있다. 모션-인식 알고리즘은 노이즈를 모션 블러 내지 샷-투-샷 시간으로 최적화할 수 있다. 일부 경우들에서, 모션-인식 알고리즘은 모션의 표시를 결정하기 위해 (예를 들어, 카메라의 움직임에 기초하여) 글로벌 모션 분석 및/또는 (예를 들어, 장면에서의 객체들의 움직임에 기초하여) 로컬 모션 분석을 수행할 수 있다. 로컬 모션 분석은 시간적 필터 표시(TFI)에 기초할 수 있다. 일부 경우들에서, TFI는 각각의 픽셀에 대한 모션의 양(예를 들어, 각각의 픽셀이 모션을 갖는지 또는 모션을 갖지 않는지 여부 및/또는 그 정도)을 나타내는 각각의 픽셀에 대한 픽셀 값을 갖는 이미지일 수 있다. 일부 경우들에서, 위에서 언급된 바와 같이, TFI의 각각의 픽셀은 모션의 양을 표시하는 값과 연관된 신뢰도를 표시하는 신뢰도 값을 포함할 수 있다. TFI는 또한 일부 경우들에서 모션 맵으로 지칭될 수 있다. 일부 경우들에서, TFI는 (예를 들어, LL 엔진에 의해) 프레임 프로세싱 및/또는 캡처 명령 시스템에 사용될 수 있는 모션 벡터 맵들을 생성하는 네이티브 카메라 흐름의 일부로서 제공될 수 있다. 일부 경우들에서, TFI는 (예를 들어, 수평 방향 및 수직 방향으로의) 각각의 픽셀에 대한 모션의 양을 표시하는 희소 모션 벡터들(예를 들어, 왜곡되지 않은, 안정화되지 않은 또는 안정화된), 픽셀 당 모션 벡터들을 갖는 조밀한 모션 맵(예를 들어, 왜곡되지 않은, 안정화되지 않은), 및/또는 왜곡 보정 그리드를 포함할 수 있다. 일부 예들에서, (주어진 TFI의) 로컬 모션 표시는 예컨대, 시간적 필터링 프로세스 동안 검출된 고스트의 양을 평균함으로써 고스트 검출에 기초할 수 있다. 일부 예들에서, (주어진 TFI의) 로컬 모션 표시는 잔차 조밀 모션 맵 평균화 및/또는 중요한 모션 벡터들의 카운팅에 기초할 수 있다.
글로벌 모션의 분석에 기초하여, 프레임 프로세싱 및/또는 캡처 명령 시스템은 글로벌 모션에 대해 보상할 수 있다(예를 들어, 광학 이미지 안정화기(OIS)를 사용하는 것과 같은 이미지 안정화 기법들을 사용하여 감소됨). 일부 경우들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템은, (예를 들어, 로컬 모션이 모션 임계값을 초과하는 경우) 예를 들어, 모션 블러가 감소될 필요가 있는지 여부를 결정하기 위해, (글로벌 모션에 더하여 또는 그에 대한 대안으로서) TFI에 의해 표시된 로컬 모션을 분석할 수 있다. 로컬 및/또는 글로벌 모션 분석에 기초하여, 모션 인식 알고리즘은 노출 파라미터들(예를 들어, 노출 지속기간 및/또는 이득), 자동 화이트 밸런스(AWB), 자동 노출 제어(AEC) 및 오토포커스와 같은 하나 이상의 3A 설정들, 및/또는 다른 파라미터들을 최적화할 수 있다. 모션-인식 알고리즘은 저조도 조건들, 초저조도 조건들, 보통 광 조건들, 및/또는 다른 조명 조건들에 대해 사용될 수 있다. 일부 경우들에서, 선택적인 머신 러닝 시스템은 전술한 바와 같이 텍스처 및 노이즈 개선을 위해 사용될 수 있다.
도 12는 모션 대 노출 시간 및 프레임 카운트를 플로팅하는 그래프(1200)의 예시이다. 그래프(1200)의 x축은 모션의 양을 플로팅한다. 라인(1202)은 노출을 나타내고, 라인(1204)은 프레임 카운트를 나타낸다. 그래프 (1200)에서의 값들 (또는 다른 값들) 은 TFI에 의해 표시된 모션 (로컬 모션), 글로벌 모션, 또는 글로벌 모션 및 로컬 모션 (TFI에 기초함) 을 사용하여 결정된 조합된 모션에 기초하여 긴 노출 시간 및 프레임 카운트를 결정하는데 (예를 들어, MFNR, MMF 등에 입력하기 위해) 사용될 수 있다. 모션이 낮은 것으로 결정되면(예를 들어, 모션 임계치 미만의 모션과 같이, 소량의 모션이 검출됨), 프레임 카운트는 낮을 것이고 노출(예를 들어, 노출 시간, 조리개 등)은 증가될 것이다. 그래프(1200)에서 좌측에서 우측으로 이동하는 것에 대응하는 더 많은 모션이 검출됨에 따라(예를 들어, 모션 임계치보다 큰 모션의 양), 적절한 모션 블러 결과들을 달성하는데 사용될 수 있는 노출(예를 들어, 노출 시간, 조리개 등)은 최소 노출 한계에 도달할 때까지 감소된다. 일부 경우들에서, 결정된 모션에 기초하여, 이득은 노출(예를 들어, 노출 시간, 조리개 등)에 추가하여 또는 그에 대한 대안으로서 조정될 수 있다. 일부 경우들에서, 최소 노출 한계는 (예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템이 짧은 노출/프리뷰/디스플레이된 프레임들에 사용되는 노출보다 적은 프레임 또는 이미지를 노출하지 않을 수도 있기 때문에) 프리뷰 이미지들/프레임들에 사용되는 긴 노출 시간과 동일할 수 있다. 또한, 더 많은 모션이 결정됨에 따라, (캡처된 프레임들의 수가 증가함에 대응하는) 프레임 카운트는 감소하는 노출로 인한 프레임의 밝기를 보상하기 위해 증가된다 (이는 이득이 증가되게 한다).
일부 경우들에서, 그래프(1200)의 x-축 상에 묘사된 모션은 로컬 및 글로벌 모션 양자 모두(예를 들어, 로컬 및 글로벌 모션의 조합)에 대응할 수 있다. 예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템은 글로벌 모션 및 로컬 모션을 개별적으로 계산할 수 있고, 최종 모션 표시를 생성하기 위해 (예를 들어, 로컬 모션 값에 대한 제 1 가중치 및 글로벌 모션 값에 대한 제 2 가중치를 사용하여) 로컬 모션 및 글로벌 모션에 가중치를 적용할 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템은 노출(예를 들어, 노출 시간, 조리개 등) 및/또는 이득을 얼마나 감소시키거나 증가시킬지 및 (예를 들어, MFNR, MMF 등에 출력하기 위해) 프레임 카운트를 얼마나 감소시키거나 증가시킬지를 결정하기 위해 최종 모션 표시를 사용할 수 있다.
일부 예들에서, 프레임 프로세싱 및/또는 캡처 명령 시스템은 [0,1]의 범위에서 글로벌 모션(글로벌 모션 표시 또는 GMI로 지칭됨)을 결정할 수 있다. 이러한 예들에서, 0의 값은 픽셀에 대한 모션이 없음을 나타낼 수 있고, 1의 값은 픽셀에 대한 최대 모션을 나타낼 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템은 [0,1]의 범위에서 로컬 모션(로컬 모션 표시 또는 LMI로 지칭됨)을 결정할 수 있으며, 여기서 0의 값은 모션 없음을 나타내고 1의 값은 최대 모션을 나타낸다. 일부 경우들에서, LMI는 (예를 들어, 글로벌 모션으로부터의 영향을 감소시키기 위해) TFI 이미지를 어느 정도 크로핑하고, 크로핑된 맵을 평균화하고, 값들을 정규화하고, 감도를 반영하기 위해 지수들을 적용함으로써 계산될 수 있다. [0,1] 범위의 LMI 가중치(LMI_weight 로 지칭됨)는 프레임 프로세싱 및/또는 캡처 명령 시스템이 LMI에 얼마나 민감한지를 나타낸다. 하나의 예시적인 LMI 가중치 값은 0.4의 값이다. 최종 모션 표시(FMI)는 (TFI에서의) 로컬 모션 및 글로벌 모션에 기초하여 결정될 수 있다. 하나의 예시적인 예에서, FMI는 lin_blend(GMI, GMI*LMI, LMI_weight)^2로서 결정될 수 있으며, 여기서 lin_blend는 선형 블렌딩 연산이다. 다른 예시적인 예에서, FMI는 비선형 응답(^2)이 없는 이전 예와 유사하게 lin_blend(GMI, GMI*LMI, LMI_weight)로서 결정될 수 있다.
도 13은 이미지(1302)(또는 프레임) 및 TFI 이미지(1304)를 도시한 도면이다. 도 13에 도시된 모션은 로컬 모션(장면 내 (in-scene) 모션이라고도 함)이다. 이미지(1302)에서, 사람이 손을 흔들고 있다. TFI 이미지(1304)는 모션을 갖지 않는 이미지(1302)의 부분들에 대한 백색 픽셀들 및 모션을 갖는 이미지(1302)의 부분들에 대한 흑색 픽셀들을 포함한다. 흑색 픽셀은 움직이고 있는 사용자의 부분(오른손)과 배경의 구름 중 일부에 해당한다. 프레임 프로세싱 및/또는 캡처 명령 시스템은 TFI 이미지(1304)에 표시된 모션(또는 TFI 이미지(1304)의 로컬 모션 및 글로벌 모션에 기초하는 FMI에 의해 표시된 모션)이 모션 임계치보다 큰지 여부를 결정할 수 있다. 모션 임계치에 대한 예시적인 값은 모션에 대한 선형 감도를 나타내는 0.3이다. 예를 들어, TFI(또는 FMI)에 의해 표시된 모션이 0.4이면, 모션은 0.3의 모션 임계치보다 크다. 프레임 프로세싱 및/또는 캡처 명령 시스템이 모션이 모션 임계치보다 작다고 결정하면, 노출 시간 및 프레임들의 수는 긴 노출 프레임들 또는 이미지들을 캡처하기 위해 변경되지 않을 수도 있다. 도 12를 참조하면, 프레임 프로세싱 및/또는 캡처 명령 시스템은 모션이 모션 임계치 미만인 것으로 결정될 때 0의 모션 값을 결정할 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템이 모션이 모션 임계값보다 크다고 결정하면, 프레임 프로세싱 및/또는 캡처 명령 시스템은 노출(예를 들어, 노출 시간, 조리개 등)을 감소시키고/시키거나 프레임 카운트를 증가시킬 수 있다(따라서, 캡처되는 긴 노출 프레임들의 수를 증가시킨다). 도 12를 참조하면, 프레임 프로세싱 및/또는 캡처 명령 시스템은 모션이 모션 임계치보다 큰 것으로 결정될 때 모션의 특정 양에 기초하여 0.4의 모션 값을 결정할 수 있다.
도 14a는 프레임 프로세싱 및/또는 캡처 명령 시스템(1400)의 예를 나타내는 도면이다. 도 14의 프레임 프로세싱 및/또는 캡처 명령 시스템(1400)의 컴포넌트들 중 하나 이상은 도 1의 프레임 캡처 및 프로세싱 시스템(100) 및/또는 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템(400)의 컴포넌트들과 유사하고 유사한 동작들을 수행할 수 있다. 도 14a에 도시된 바와 같이, 저조도(LL) 엔진(1458)에 대한 입력(1401)은 (예를 들어, 자이로미터 또는 자이로스코프, 가속도계, IMU, 및/또는 다른 센서로부터의) 모션 센서 데이터, 제로 셔터 래그(ZSL) 프레임들(실시간으로 LL 엔진(1458)으로 진행할 수 있고 디스플레이되는 프리뷰/디스플레이 프레임들), ZSL 프레임들에 기초한 (예를 들어, 노출 설정들을 포함하는) AEC 결정들, 및 디스플레이 TFI 통계들을 포함할 수 있다. 일부 경우들에서, 각각의 프레임에 대한 히스토그램이 또한 LL 엔진(1458)에 제공될 수 있다. 프레임이 캡처될 때 사용자가 디바이스를 어떻게 유지할 것인지 및 사용자의 포지션은 알려져 있지 않다. 그러나, 사용자가 셔터 또는 캡처 옵션을 선택(예를 들어, 셔터 버튼 또는 다른 옵션을 누르는 것)하기 직전(예를 들어, 0.5초, 1초 전 등)의 제 1 시점에서 디바이스를 특정 방식으로 홀딩하는 경우, 사용자는 캡처 옵션을 선택할 때 유사한 방식으로 디바이스를 홀딩할 가능성이 있다고 가정될 수 있다. 이러한 가정에 기초하여, LL 엔진(1458)은 새로운 커맨드들을 생성할 수 있고, 그 새로운 커맨드들을 AEC 엔진(1464)에 출력할 수 있다. 새로운 커맨드들은 프레임들의 수, 긴 노출 값(긴 노출 프레임들을 캡처하는데 사용되는 노출 지속기간에 대응함), 및 긴 DRC 이득을 포함할 수 있다. 프레임들의 수, 긴 노출 값, 및 긴 DRC 이득은 도 12에 도시된 값들 또는 모션에 기초한 다른 유사한 값들에 기초하여 결정될 수 있다. AEC 엔진 (1464) 은 AEC 를 수행할 수 있고 긴 노출 프레임들을 캡처하기 위한 이미지 센서 (예를 들어, 센서 (430))에 AEC 정보를 출력할 수 있다.
긴 노출 프레임들은 긴 프레임 버퍼(1410)(도 14a에서 "버퍼들 김(Buffers Long)"으로 지칭됨)에 저장될 수 있다. 긴 프레임 버퍼(1410)는 단일 버퍼 또는 다수의 긴 프레임 버퍼들을 포함할 수 있다. 긴 프레임 버퍼(1410)는, 긴 노출 프레임들(PSL 프레임들)이 프리뷰 "실시간" 파이프라인 동안 캡처되지 않기 때문에 오프라인 버퍼로 간주될 수 있다. 도 7과 관련하여 위에서 언급된 바와 같이, 긴 노출 이미지들 또는 긴 프레임 버퍼(1410)에 저장되는 프레임들은 캡처 명령이 수신된 후에 캡처된다. 예를 들어, LL 엔진(1458)이 특정 노출 지속기간, 특정 이득, 및 특정 수의 프레임들(예를 들어, 10개의 프레임들)을 적용하도록 AEC 엔진(1464)에 명령한다고 가정하면, 일단 (예를 들어, 사용자가 캡처 옵션을 선택하는 것에 기초하여) 캡처 명령이 수신되면, 이미지 센서는 특정 노출 및 이득을 갖는 특정 수의 긴 노출 프레임들을 캡처할 것이다.
전술한 바와 유사하게 그리고 도 14a에 도시된 바와 같이, 롱 프레임 버퍼(1410) 중 제 1 프레임(1411)(또는 이미지)은 AWB 계산을 위해 AWB(auto white balance) 엔진(1408)으로 출력될 수 있다. 기존 시스템에서 AWB 계산에 사용되는 프레임은 프리뷰로부터의 프레임들(ZSL 프레임들)이다. 그러나, 프리뷰 프레임들은 긴 프레임 버퍼(1410)에서 긴 노출 프레임들보다 열세다. 예를 들어, 프리뷰 프레임은 긴 노출 프레임들에 비해 더 짧은 노출 시간을 이용하여 캡처되고, 긴 노출 프레임들은 이득을 낮춤으로써 증가된 노출에 의해 도입된 밝기를 보상한다. 그 결과, AWB 계산을 위해 긴 노출 프레임들을 사용함으로써, SNR, AWB에 대한 통계치들, 및 출력 프레임 또는 이미지에서의 컬러들은 프리뷰 프레임들이 AWB를 위해 AWB 엔진 (1408)에 의해 사용될 때보다 더 양호하다. 일부 경우들에서, 개선들은 저조도 환경들에서 긴 노출 프레임이 AWB를 위해 사용될 때 (예를 들어, 더 높은 SNR에 기초하여) 증가될 수 있다. AWB 엔진 (1408) 은 제 1 긴 노출 프레임 (1411) 을 사용하여, AWB 계산을 수행하고 새로운 AWB 제어 파라미터 (1412) 를 생성한다. 그 후, AWB 제어 파라미터 (1412) 는 자동 화이트 밸런스를 적용하는데 사용될 수 있다. 도 14a에 도시된 바와 같이, AWB 제어 파라미터 (1412) 는 제 1 다중-프레임 노이즈 감소 (MFNR) 엔진 (1402)으로 출력된다.
긴 프레임 버퍼(1410) 및 AWB 제어 파라미터(1412)로부터의 긴 노출 프레임들은 제 1 MFNR 엔진(1402)으로 출력된다. 제 1 MFNR 엔진(1402)은 (시간 도메인에서 긴 노출 프레임들로부터 시간적 노이즈를 필터링하기 위해) 긴 노출 프레임들을 시간적으로 블렌딩 또는 필터링하는데 사용될 수 있지만, 공간 도메인에서 긴 노출 프레임들로부터 공간적 노이즈를 필터링하기 위해 긴 노출 프레임들의 공간적 블렌딩을 수행하지 않을 수도 있다. 제 1 MFNR 엔진(1402)은 일련의 프레임들(또는 이미지들)을 공간적으로 정렬하고 프레임들 내의 각각의 픽셀의 값들을 평균함으로써 시간적 블렌딩을 수행할 수 있다. 제 1 MFNR 엔진(1402)에 의해 사용되는 알고리즘은 (프레임들이 상이한 시간들에서 취해졌기 때문에) 프레임들 사이의 상대적 모션을 평가하고, SNR을 개선하기 위해 픽셀들이 결합될 수 있도록 프레임들을 정렬한다. 제 2 MFNR 엔진(1404)은 중간 노출 프레임들(1414)을 저장하는데 사용되는 하나 이상의 ZSL 버퍼들(1413)로부터의 중간 노출 프레임들(1414)의 공간적 블렌딩(또는 필터링) 및 시간적 블렌딩(또는 필터링)을 수행한다. 제 3 MFNR 엔진(1406)은 중간 노출 프레임(1414)을 저장하는데 사용되는 하나 이상의 ZSL 버퍼들(1415)로부터 짧은 노출 프레임들(1416)의 공간적 및 시간적 필터링을 수행한다. 제 2 MFNR 엔진(1404) 및 제 3 MFNR 엔진(1406)은, 일부 경우들에서 프레임을 개선하기 위해 이웃하는 픽셀들에 대해, 각각의 프레임의 픽셀들을 프로세싱함으로써, 예를 들어, 각각의 픽셀의 측정(예를 들어, 통계적 측정, 픽셀 컴포넌트 값, 평균, 또는 다른 측정)을 결정함으로써 공간적 블렌딩을 수행한다. 일부 예들에서, 공간적 블렌딩은 에지 보존 노이즈 감소를 수행하는 데 사용될 수 있고, 특히, 이미지 또는 프레임 도메인에서의 컨볼루션 커널들, 주파수(또는 주파수-유사) 도메인에서의 프로세싱, 웨이블릿들과 같은 다양한 알고리즘들을 사용하여 어드레싱될 수 있다. 일부 경우들에서, 제 1 MFNR 엔진(1402), 제 2 MFNR 엔진(1404) 및 제 3 MFNR 엔진(1406)은 동일한 프로세싱 기법들을 사용하여 동일한 하드웨어에 의해 구현될 수 있지만, 하드웨어는 제 1 MFNR 엔진, 제 2 MFNR 엔진 및 제 3 MFNR 엔진을 구현할 때 상이한 튜닝 설정들을 가질 수 있다. 일부 예들에서, 중간 노출 프레임들(1414) 및 짧은 노출 프레임들(1416)을 저장하는 데 사용되는 버퍼들은 동일한 버퍼들일 수 있거나 상이한 버퍼들일 수 있다. 일부 경우들에서, 버퍼들 이외의 저장 메커니즘들이 짧은, 중간, 및 긴 노출 프레임들을 저장하기 위해 사용될 수 있다(예를 들어, 캐시 메모리, RAM 등).
제 1 MFNR 엔진(1402)은 또한 긴 프레임 버퍼(1410)에 저장된 긴 노출 프레임들에 대한 TFI 이미지들(TFI 맵들이라고도 지칭됨)을 획득하거나 수신할 수 있다. 일부 경우들에서, 전술된 바와 같이, TFI 이미지들은 어느 픽셀들이 모션을 갖고 어느 픽셀들이 모션을 갖지 않았는지(또는 픽셀들에 대한 모션의 정도)를 나타낼 수 있다. TFI 이미지는 또한 픽셀이 시간적 블렌딩이 적용되었는지 여부를 나타낼 수 있다. 예를 들어, 픽셀이 모션을 갖는 것으로 TFI 이미지에 의해 표시되는 경우, 시간적 블렌딩이 적용되지 않을 수도 있는데, 그 이유는, 시간적 블렌딩이 적용되는 경우, 고스팅 효과가 이미지에서 발생할 수도 있기 때문이다. 따라서, 캡처된 프레임에서의 픽셀이 모션을 갖는다는 것을 나타내는 TFI 이미지에서의 픽셀은 또한, 캡처된 프레임에서의 픽셀이 그것에 적용되는 시간적 블렌딩을 갖지 않는다는 것을 나타낼 수도 있다. 모션 표시에 기초하여, 제 1 MFNR 엔진(1402)은 TFI 이미지들을 집성할 수 있고 집성된 TFI 이미지(1418)(도 14a에 DC4 TFI 집성으로서 도시됨)를 출력할 수 있다. 예를 들어, 목표는 얼마나 많은 프레임들이 각 픽셀에 대해 시간적으로 블렌딩되었는지를 반영하는 것이다. 제 1 스테이지는 각각의 프레임이 동일한 노이즈 분산을 갖고 그들 사이에 공분산이 존재하지 않는다고 가정하는 것일 수 있다. 분산 프로세싱 및/또는 산술연산은 TFI 이미지에 따라 적용될 수 있다. 각각의 이미지 또는 프레임에 대해, 결과는 집성된 TFI 이미지(1418)(또는 TFI 맵)에 저장될 수 있다. 모든 프레임들이 프로세싱된 후, 프로세싱의 결과는 각 픽셀에 대한 분산이다. 예를 들어, 분산 맵이 (예를 들어, 제 1 MFNR 엔진(1402)에 의해) 출력될 수 있다. 분산 맵은 그 후 각각의 픽셀에 대해 얼마나 많은 프레임들이 블렌딩되는지를 나타내는 맵으로 변환될 수 있다. 집성된 TFI 이미지(1418)에 대한 도 14a에서의 용어 "DC4"는 각각의 축에서 4배만큼 다운스케일링된 이미지를 표시한다. 예를 들어, 8000x4000의 전체 이미지 사이즈를 갖는 이미지의 경우, 이미지의 DC4 사이즈는 2000x1000이다. 제 1 MFNR 엔진(1402)은 또한 전술한 바와 같이 단일의 블렌딩된 긴 노출 프레임(1420)(도 14a에서 블렌딩된 긴 노출 프레임(10b)으로 도시됨)을 출력할 수 있다.
일부 경우들에서, ML ISP(1422)는 각각의 프레임에 대한 집성된 TFI 이미지(1418) 대신에 최종 ALGM 맵을 입력으로서 사용할 수 있다. 예를 들어, ALGM은 본 명세서에 설명된 바와 같이, "프레임 블렌드 카운트(frame blend count)" 맵으로 변환하기 전에 TFI 집성된 맵과 동일하다. ALGM은 다운스케일링된(예를 들어, DC4) 프레임들 또는 이미지들 대신에 풀 해상도 프레임들 또는 이미지들에 대해 하드웨어에 의해 생성될 수 있다.
블렌딩된 긴 노출 프레임(1420) 및 집성된 TFI 이미지(1418)는 머신 러닝 기반 이미지 신호 프로세서(ISP)(1422)(도 14a에 ML ISP 노드로 도시됨)로 출력된다. ML ISP(1422)의 예가 도 15에 도시되어 있다. 일부 예들에서, ML ISP는 하나의 예시적인 예로서 컨볼루셔널 신경망(CNN)과 같은 하나 이상의 신경망 아키텍처들을 포함한다. 도 16은 ML ISP(1422)의 신경망의 일 예를 나타내는 도면이다. 하나의 예시적인 예에서, 신경망은 3x3 컨볼루셔널 계층들, PReLU(Parametric Rectified Linear Unit) 활성화들, 다운샘플링을 위한 평균 풀링(AvgPool), 및 업샘플링을 위한 바이리니어 업샘플링을 갖는 UNet-유사 네트워크를 포함한다. 일부 예들에서, 신경망의 트레이닝은 선택된 센서 교정 데이터에 기초하여 수행될 수 있다. 일부 경우들에서 다른 트레이닝 데이터가 또한 사용될 수 있다.
ML ISP(1422)는 긴 노출 프레임들에 대해 공간적 필터링을 수행한다. 예를 들어, ML ISP(1422)는 공간 도메인 에지 보존 노이즈 여과를 수행할 수 있다. ML ISP(1422)는 입력 블렌딩된 긴 노출 프레임(1420) 및 집성된 TFI 이미지(1418)를 사용하여 프레임 내의 노이즈를 등화시킬 수 있는 노이즈 감소량을 보상할 수 있다. 하나의 예시적인 예에서, 주어진 프레임에 대해, 프레임의 부분이 (집성된 TFI 이미지에 의해 표시된 바와 같이) 모션 임계치를 초과하는 로컬 모션을 가지면, 프레임의 그 부분은, 위에서 설명된 바와 같이, 그것에 적용되는 시간적 블렌딩을 갖지 않을 것이다(그렇지 않으면, 그것은 고스팅을 가질 것이다). 그 결과, 로컬 모션을 갖는 프레임의 부분은 시간적 블렌딩이 적용되지 않았기 때문에 프레임의 다른 부분들보다 더 많은 노이즈를 가질 것이다. 모션을 갖는 프레임의 부분에서의 증가된 노이즈에 기초하여, ML ISP(1422)는 프레임의 그 부분에 더 많은 공간적 필터링을 적용할 수 있다. 어떠한 모션도 갖지 않는(또는 모션이 모션 임계치 미만인) 프레임의 다른 부분에 대해, 제 1 MFNR 엔진(1402)은 시간적 블렌딩을 적용하여, 프레임의 그 부분에 대해 더 적은 노이즈를 초래할 수 있다. ML ISP(1422)는 모션이 거의 없거나 전혀 없는 프레임의 부분에 대해 더 적은 공간적 필터링을 수행할 수 있다. ML ISP(1422)는 또한 상이한 레벨들의 공간적 필터링이 적용되는 프레임의 상이한 부분들 사이의 전이를 평활화하기 위해 프레임을 프로세싱할 수 있다.
ML ISP(1422)는 (예를 들어, 다른 것들 중에서도, 디노이징, 에지 향상, 컬러 밸런싱, 콘트라스트, 강도 조정, 톤 조정, 샤프닝(sharpening)을 위해) 다수의 필터들 또는 프로세싱 블록들을 갖는 종래의 ISP보다 더 양호한 결과들을 제공할 수 있다. 또한, 전통적인 ISP들을 튜닝하는 것은 어렵고 시간 소모적일 수 있다. ML ISP(1422)의 트레이닝은 지도 또는 비지도 학습 기법들의 사용에 기초하여 덜 시간 소모적일 수 있다. ML ISP(1422)에 사용될 수 있는 딥 신경망의 예시적인 예가 도 24에 도시된다. ML ISP(1422)에 사용될 수 있는 컨볼루셔널 신경망(CNN)의 예시적인 예가 도 25에 도시된다. 머신 러닝 트레이닝을 수행하는 예들은 도 24 및 도 25와 관련하여 아래에서 설명된다.
ML ISP(1422)는 필터링된 긴 노출 프레임(1424)을 다중-프레임 MFHDR(high dynamic range) 엔진(1440)에 출력한다. MFHDR 엔진(1440)은 전술한 바와 같이 MFHDR 프로세싱을 적용한다. 전술된 바와 같이, LL 엔진 (1458) 은 MFHDR 이 사용될 것인지 (MFHDR 모드) 또는 MFHDR 이 사용되지 않을 것인지 (비-MFHDR 모드) 를 결정할 수 있다. 비-MFHDR 모드에서, HDR 기능은 단일 프레임을 사용하여 수행될 수 있다. LL 엔진(1458)이 MFHDR 모드가 사용될 것이라고 결정하는 경우, MFHDR 엔진(1440)에 대한 입력은 하나보다 많은 프레임을 사용할 것이다. 전통적인 시스템들은 교번하는 프레임들 MFHDR 을 사용하여 MFHDR 을 수행한다. 교번 프레임들 MFHDR은 짧은, 중간, 긴, 짧은, 중간, 긴, 짧은, 중간, 긴 등과 같은 프레임들의 교번 시퀀스를 사용한다. 센서는 상이한 노출 지속기간들(짧음, 중간, 김)에서 프레임들을 캡처하도록 구성된다. 그러나, 레이턴시는 (저조도 조건들 또는 다른 조건들에서) 프레임들을 캡처하는데 중요하며, 추가적인 짧은, 중간, 및 긴 프레임들(예를 들어, 4개의 프레임들, 10개의 프레임들, 20개의 프레임들, 또는 다른 수의 프레임들)을 사용하는 것은 레이턴시를 증가시킨다. 이러한 문제를 해결하기 위해, LL 엔진(1458)은 교번하는 노출들을 갖는 프레임들을 사용하는 대신에 (ZSL 버퍼로부터의) 프리뷰 프레임들을 사용한다. 프리뷰 프레임들은 셔터 명령이 수신되기 전에 ZSL 버퍼에 저장되며, 이 경우 프리뷰 프레임들은 셔터 명령이 수신된 후에 캡처될 필요가 없고 따라서 프레임 또는 이미지 캡처 프로세스의 레이턴시에 부가되지 않는다. 프리뷰 프레임들을 사용하면 (셔터 명령이 수신된 후) 오프라인 프로세싱 동안 캡처되는 프레임만 긴 노출 프레임들이다. ZSL 버퍼에 저장된 프리뷰 프레임들은 긴 프레임 버퍼들에서의 긴 노출 프레임들과 동일한 센서 구성을 갖는다. 따라서 프리뷰 및 긴 노출 프레임들에 대한 프레임 설정들은 노출을 제외하고 동일하다 (프리뷰 프레임들의 노출은 긴 노출 프레임들보다 짧음).
전술한 바와 같이, (ZSL 버퍼로부터의) 짧은 및 중간 노출 프레임들은 각각 제 2 MFNR 엔진(1404) 및 제 3 MFNR 엔진(1406)에 의해 프로세싱되며, 이는 전통적인 ISP 프로세싱 블록들(이들은 ML ISP를 포함하지 않음)일 수 있다. MFHDR 모드가 사용되는 경우, 중간 및 짧은 노출 프레임들은 각각 제 2 MFNR 엔진(1404) 및 제 3 MFNR 엔진(1406)에 의해 프로세싱되고, 프로세싱된 중간 및 짧은 노출 프레임들은 MFHDR 엔진(1440)의 내부에서 융합되거나 결합된다.
도 14b는 프레임 프로세싱 및/또는 캡처 명령 시스템(1405)의 다른 예를 도시한 도면이다. 프레임 프로세싱 및/또는 캡처 명령 시스템(1405)은 도 14a의 프레임 프로세싱 및/또는 캡처 명령 시스템(1400)과 유사하며, 프레임 프로세싱 및/또는 캡처 명령 시스템(1400)과 프레임 프로세싱 및/또는 캡처 명령 시스템(1405) 사이의 공통 컴포넌트를 나타내는 유사한 번호들을 포함한다. 프레임 프로세싱 및/또는 캡처 명령 시스템(1400)과 프레임 프로세싱 및/또는 캡처 명령 시스템(1405) 사이의 하나의 차이점은 블렌딩된 긴 노출 이미지(1447)가 ML ISP(1422)에 의해 프로세싱되기 전에 제 1 다운스케일링 엔진(1449)에 의해 (더 작은 사이즈로) 다운스케일링된다는 것이다. ALGM 맵(1448)은 또한 ML ISP(1422)에 의해 프로세싱되기 전에 제 2 다운스케일링 엔진(1451)에 의해 (더 작은 사이즈로) 다운스케일링된다. ALGM 맵(1448)이 도 14b에 도시되어 있지만, 집성된 TFI 이미지(예를 들어, 도 14a의 집성된 TFI 이미지(1418))가 대신 사용될 수 있다. ML ISP(1422)는 다운스케일링된 블렌딩된 긴 노출 이미지(1447) 및 ALGM 맵(1448)을 (예를 들어, 공간적 필터링을 사용하여) 프로세싱할 수 있고, 업스케일링된 필터링된 긴 노출 프레임(1424)을 출력할 수 있는 필터링된 긴 노출 프레임을 업스케일링 엔진(1452)에 출력할 수 있다. 다른 차이점은, 중간 노출 및 짧은 노출 프레임들을 사용하는 대신에, 도 14b의 프레임 프로세싱 및/또는 캡처 명령 시스템(1405)이 단일 짧은 노출(1441)을 사용하여 (예를 들어, PSL로부터의) 짧은 노출 프레임들(1442)을 사용한다는 것이다.
전술한 바와 같이, 도 15는 도 14a 및/또는 도 14b로부터의 ML ISP의 예를 예시한다. 고유 입력들은 전술된 기법들에 기초하여 ML ISP에 제공된다. 예를 들어, ML ISP는 TFI 이미지로부터의 모션 표시에 기초하여 그리고 (TFI 이미지에 의해 표시된 바와 같이) 이전 스테이지에서 발생한 시간적 프로세싱의 양에 기초하여 프로세싱(예를 들어, 공간적 필터링 또는 블렌딩)을 수행할 수 있다. 도 15에 도시된 바와 같이, ML ISP에 대한 입력들은 블렌딩된 긴 노출 프레임, 집성된 TFI 이미지, 사용자 설정들(튜닝 구성으로 도시됨), 프레임 카운트, 이득, 및 화이트 밸런스를 포함한다. (예를 들어, ML ISP에 사용될 수 있는) 예시적인 신경망에 관한 추가 세부 사항들은 도 24 및 도 25와 관련하여 아래에서 설명된다.
도 17a 및 도 17b는 프레임들의 화이트 밸런스 프로세싱을 정제하기 위해 사용되는 추가적인 프로세싱 컴포넌트들(1710)을 갖는 프레임 프로세싱 및/또는 캡처 명령 시스템(1700)을 예시하는 도면들이다. 일부 경우들에서, 추가적인 프로세싱 컴포넌트들 (1710) 은 AWB 엔진 (1708) 의 일부이고 및/또는 이에 의해 구현될 수 있다. 상기 언급된 바와 같이, AWB 엔진 (1708) 은 캡처된 프레임들에 대한 AWB 제어 파라미터들 (1712) 을 생성할 수 있다. 추가적인 프로세싱 컴포넌트들 (1710) 은 AWB 엔진 (1708)에 의해 결정된 AWB 를 추가로 정제(refine)하는데 사용될 수 있다. 예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템(1700)은 20개의 프레임들을 캡처할 수 있다. 시간 도메인에서의 20개의 프레임들은 노이즈 분산에서의 개선에 대해 선형 효과들을 가질 수 있다. 예를 들어, 20개의 프레임들은 특정 노이즈 프로파일들로 인해 노이즈 분산을 10-20배 감소시킬 수도 있다. AWB 엔진 (1708) 은 2D 분포에서의 값들을 획득할 수 있고 그 값들 사이의 선형 상관들을 결정할 수 있다. 노이즈 분산을 감소시키는 것은 산란을 효과적으로 감소시켜, 더 신뢰할 수 있는 통계를 제공하여, 더 나은 AWB 결정들을 초래한다. 프레임 프로세싱 및/또는 캡처 명령 시스템 (1700) 은 (노이즈 감소로 인한 개선된 SNR을 초래하는) 제 1 MFNR 엔진 (1702) 에 의해 수행된 시간적 블렌딩으로부터 발생하는 프레임을 다시 역으로 AWB 엔진 (1708)으로 출력할 수 있다. AWB 엔진 (1708) 은 더 정확한 AWB 파라미터를 획득하기 위해 AWB 제어 파라미터들 (1712) 을 재계산할 수 있다.
추가적인 프로세싱 컴포넌트들 (710) 은 AWB 하드웨어 엔진 ("AWB 제어 계산" 으로서 도 17a에 도시됨)으로 전송될 수 있는 특정 포맷의 프레임 또는 이미지 (원시 베이어 프레임 또는 이미지) 를 생성하기 위한 역 ISP 를 포함한다. 예를 들어, AWB 하드웨어 엔진은 특정 포맷을 갖는 프레임 또는 이미지를 프로세싱하도록 구성될 수도 있다. 역 ISP에 대한 보다 상세한 설명은 상술한 바와 같다. 특정 포맷을 갖는 프레임 (예를 들어, 베이어 프레임) 을 사용하여, AWB 하드웨어 엔진은 개선된 AWB 제어 파라미터 (WBC로 도시됨) 를 생성한다. 개선된 AWB 제어 파라미터는 색 보정 매트릭스(color correction matrix; CCM) 엔진("CCM 계산"으로서 도 17a에 도시됨)을 사용하여 프로세싱된다. 예를 들어, CCM 엔진은 초기 AWB 제어 파라미터와 개선된 AWB 제어 파라미터 사이의 차이 또는 델타를 결정할 수 있다. CCM 엔진은 그 차이를 사용하여 색 보정 매트릭스(CCM)를 생성할 수 있다. MFHDR 엔진(1740)은 CCM을 사용하여 최종 출력 프레임 또는 이미지를 생성할 수 있다.
프레임 프로세싱 및/또는 캡처 명령 시스템(1700)의 ML ISP(1722)는 도 17a 및 도 17b에 도시된 바와 같이, 도 14a 및/또는 도 14b의 ML ISP(1422)와 유사한 집성된 TFI 이미지(1718)를 사용할 수 있다. 일부 경우들에서, ML ISP(1722)는 각각의 프레임에 대한 TFI 이미지 대신에 최종 ALGM 맵을 입력으로서 사용할 수 있다. 예를 들어, 전술된 바와 같이, ALGM은 전술된 바와 같이, 그것을 "프레임 블렌드 카운트" 맵으로 변환하기 전의 TFI 집성된 맵과 동일하다. ALGM은 다운스케일링된(예를 들어, DC4) 프레임들 또는 이미지들 대신에 풀 해상도 프레임들 또는 이미지들에 대해 하드웨어에 의해 생성될 수 있다. 제 1 MFNR 엔진(1702)은 더 짧은 노출 시간을 갖는 더 많은 수의 프레임들을 허용할 수 있어서, 감소된 모션 블러 및 더 양호한 텍스처 및 노이즈를 야기한다. 제 1 MFNR 엔진(1702)은 또한 노이즈 등화를 디스에이블하는 것을 포함하는 수정된 튜닝을 사용할 수 있다. 일부 예들에서, 제 1 MFNR 엔진(1702)은 최종 블렌딩된 프레임(1720)에서 SNR을 개선하기 위해 256 프레임들과 같은 많은 수의 프레임들을 융합할 수 있다. 이러한 MFNR 엔진은 일부 경우들에서 MMF(Massive Multi-Frame) 엔진으로 지칭될 수 있다. 일부 경우들에서, 제 1 MFNR 엔진(1702) 다음에는 노이즈 등화를 수행하는 스테이지가 뒤따를 수 있다. 도 17b를 참조하면, MFNR 블렌딩된 프레임(1720)은 의사 역 ISP를 겪어서, 전술한 바와 같이 (RGB 컬러 성분들을 갖는) 선형 원시 베이어 프레임을 생성한다. 원시 베이어 프레임은 AWB 통계 재생성 및 AWB 알고리즘을 위해 출력되어, 개선된 WB 계수들 (WBC) 을 초래한다. 나머지 WB 가 계산되고, CCM으로 변환되고, 도 17a에 대해 전술된 것과 유사하게, (포스트-IPE를 포함하는) MFHDR 엔진으로 전송된다.
도 18은 프레임들 또는 이미지들을 점진적으로 디스플레이하는(인터랙티브 프리뷰(interactive preview)를 제공하는) 프로세스의 일례를 나타낸 도면이다. 예를 들어, 새로운 프레임들이 버퍼링 및/또는 프로세싱됨에 따라 향상된 프레임들을 점진적으로 디스플레이하는 것이 유익할 것이며, 이는 사용자가 각각의 프레임이 품질 개선에 어떻게 기여하는지를 볼 수 있게 할 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템(예를 들어, 시스템(400, 1400, 1405, 1700), 또는 다른 시스템)은 ZSL 버퍼로부터의 프리뷰 프레임들(예를 들어, ZSL 프레임들(1802))을 사용할 수 있고, 비디오 모션 보상된 시간적 필터(MCTF)에 상이한 입력들을 제공할 수 있다. 예를 들어, 이미지 캡처 옵션이 선택되고 캡처 또는 셔터 명령이 주어진 PSL 프레임(예를 들어, 제 2 PSL 프레임)으로부터 시작하여 수신될 때, 프레임 프로세싱 및/또는 캡처 명령 시스템은 (예를 들어, MFNR과 유사하게) 이전 및 현재가 스위칭되도록 시간적 필터링(TF) 블렌드 모드를 변경할 수 있다. 예를 들어, 도 18에 도시된 바와 같이, 현재 프레임(1804) 및 이전 프레임(1806)은 현재 프레임(1808) 및 이전 프레임(1810)과 비교하여 스위칭된다. 예를 들어, 현재 프레임(1808)은 IFE로부터 출력되고, 이전 프레임(1810)은 IPE로부터 출력된다. 캡처 또는 셔터 명령이 수신되면, 현재 프레임 (1804) 은 IPE 로부터 출력되고 이전 프레임 (1806) 은 IFE 로부터 출력된다. 이전 프레임과 현재 프레임 사이의 스위칭은 긴 프레임 캡처가 완료될 때까지 수행될 수 있다. "이전" 및 "현재"는 시간적 필터링에 대한 입력을 지칭한다. 도 18에서 이전(previous)은 "이전(PREV)"으로 표시되고, 도 18에서 현재(current)는 "현재(CUR)"로 표시된다. 실례로, TF는 3개의 프레임 또는 이미지 입력들: 현재(current), current_anr, 및 이전(previous)을 갖는다. 현재(current)는 이전 이미지가 그것 상부에서 블렌딩되고 그것에 정렬되어야 하는 현재 프레임 또는 이미지이다. 모든 PSL 프레임들이 수집된 후에, 프레임 프로세싱 및/또는 캡처 명령 시스템은 MCTF 블렌딩으로 다시 역으로 스위칭할 수 있다. 그 결과, 프리뷰 디스플레이는 새로운 프레임들이 획득됨에 따라 동적으로 개선되는 타겟 프레임 또는 이미지를 보여준다. 이미지 캡처 프로세스가 진행됨에 따라, 디스플레이가 더 가시화되고 디테일이 되살아난다.
(예를 들어, 일단 캡처 또는 셔터 명령이 수신되면) PSL 프레임들로 스위칭하는 한가지 이유는 PSL 프레임들의 개선된 광 감도에 기인한다. 전술한 바와 같이, 광 감도(light sensitivity) (또는 노출, 이미지 노출, 또는 이미지 감도) 는 이득(gain) 및 노출 시간(exposure time) 또는 지속 기간(예를 들어,
Figure pct00001
)의 함수로서 정의될 수 있다. 실례로, 각각의 인커밍 프레임은 신호-대-노이즈 비(SNR)를 개선할 수 있는 MCTF를 사용하여 프로세싱될 수 있으며, 이는 프레임들을 수집하는 동안 프리뷰 프레임의 상호작용 효과를 개선시킨다. 프리뷰 결과는 또한 "보이는 것은 얻는 것(what you see is what you get)"이라는 정확한 핵심 성과 지표(key performance indicator; KPI)를 제공한다. 이러한 기법을 사용하여, 프리뷰 디스플레이는 프리뷰 파이프라인에 대한 중단 없이 (예를 들어, 상이한 모드로 전환할 필요가 없음) 새로운 프레임들이 획득됨에 따라 동적으로 개선되는 타겟 프레임을 보여준다.
도 19 및 도 20 은 원시 프레임 또는 이미지 컴포넌트들에 대한 U 및 V 채널들의 추가에 기초한 원시 시간적 블렌딩의 예들을 나타내는 도면들이다. 전술한 바와 같이, 시간적 필터링 알고리즘 (예를 들어, 포스트-IPE 와 같은 IPE, 또는 프레임 프로세싱 및/또는 캡처 명령 시스템의 다른 컴포넌트에 의해 적용됨) 은 순차적 프레임들을 사용하고 시간적 도메인에서 프레임들을 블렌딩하여 프레임의 SNR 을 개선함으로써 출력 프레임 또는 이미지의 품질을 개선하는데 사용될 수 있다. 시간적 필터링을 위한 기존의 알고리즘들은 휘도 (Y) 성분 및 색차 성분들 (예를 들어, 크로마 블루 (Cb) 및 크로마 레드 (Cr) 성분들) 을 갖는 픽셀들을 포함하는 YUV 도메인에서의 프레임들을 사용한다. 기존의 알고리즘들은 또한 통상적으로 HW에서 구현된다. 소프트웨어에서 시간적 필터링을 수행하는 것은 더 높은 레이턴시를 초래할 수도 있고, 또한, 여러 개의 패스들을 허용하고 더 높은 프로세싱 능력을 갖는 하드웨어로 인해, 하드웨어에 비해 품질에서 열등할 수도 있다. 기존의 YUV 시간적 블렌딩 하드웨어 파이프라인들을 사용하는 원시 시간적 필터링 또는 블렌딩 시스템들 및 기법들이 본 명세서에 설명된다. 원시 시간적 필터링 또는 블렌딩 시스템들 및 기법들은 원시 이미지들 또는 프레임들(컬러 필터 어레이(CFA) 패턴을 가짐)을 개별 컬러 성분들(예를 들어, 적색(R), 녹색(G) 및 청색(B) 성분들)로 분할하고, 각각의 컬러 성분에 U 및 V 채널들을 추가함으로써 각각의 컬러 성분을 별개의 YUV 프레임 또는 이미지로서 처리함으로써 동작한다. U 및 V 값들은 MFNR 엔진이 프로세싱을 위해 프레임들을 획득하는 버퍼를 채우기 위해 사용되는 중복성 값들을 포함할 수 있다. 원시 프레임들을 사용하면 다양한 오프셋들, 클리핑 및 잘못된 파괴적 결정 문제들을 피하면서 더 이른 스테이지에서 블렌딩이 수행되도록 할 수 있다. 원시 프레임들을 사용하면 ML ISP가 더 많은 연산들을 처리할 수 있도록 한다. 단지 노이즈 감소 대신에, 더 많은 동작들이 거의 동일한 비용(예를 들어, 특히, 디모자이킹, WB, 톤 맵핑)으로 위임될 수 있다.
도 19에 도시된 바와 같이, 원시 프레임들(1902)은 입력으로서 제공된다. 이미지 센서(예를 들어, 이미지 센서(130 또는 430))가 원시 프레임들(1902)을 캡처하는데 사용될 수 있다. 원시 프레임들(1902)은 적색, 녹색 및 청색 컬러 성분들을 포함하는 베이어 CFA 패턴과 같은 컬러 필터 어레이(CFA) 패턴을 갖는다. 동일한 CFA 패턴은 전체 프레임에 대해 반복된다. 베이어 프로세싱 세그먼트 (BPS) (1904) 는 원시 프레임들 (1902) 을 수신한다. BPS(1904)는 특히, 위상 검출 픽셀 보정(PDPC), 렌즈 셰이딩 보정(LSC), DG, 화이트 밸런스 보정(WBC), 빈 보정(BinCorr)과 같은 다양한 이미지 프로세싱 동작들을 수행하는 하드웨어 블록이다. 일부 경우들에서, 동작들(예를 들어, PDPC, LSC, WBC 등) 각각은 BPS(1904) 하드웨어의 필터에 대응할 수 있다. BPS(1904)의 출력은 Bayer14 이미지 또는 프레임(14 비트로 표현됨)이다. 디지털 신호 프로세서(DSP)(1906)는 프레임을 14 비트 프레임으로부터 10 비트 프레임(Bayer10 프레임)으로 변환한다. DSP(1906)는 변환을 수행하기 위해 감마 룩업 테이블(LUT)을 사용할 수 있다. 일부 경우들에서, DSP 이외의 프로세서가 프레임을 14 비트에서 10 비트로 변환하는데 사용될 수 있다.
프레임 프로세싱 및/또는 캡처 명령 시스템은 프레임의 각각의 컬러 성분을 별개의 컬러 성분들로 분할하거나 분리할 수 있다. 각 컬러 성분은 그 컬러 성분의 모든 픽셀들의 프레임이다. 예를 들어, 프레임의 적색(R) 성분(1908)은 원시 프레임으로부터의 모든 적색 픽셀들, 및 (원시 프레임의 절반을 구성하는 적색 성분들로 인해) 프레임의 폭의 절반 및 높이의 절반인 해상도 또는 치수들을 포함한다. 녹색(G) 및 청색(B) 성분들은 원시 프레임의 폭의 1/4 및 높이의 1/4인 해상도를 갖는다. Plain10은 10-비트 단일 채널 프레임 또는 이미지(예를 들어, 그레이스케일 프레임)이다. plain10 프레임은 시스템이 컬러 채널들의 분리에 기초하여 상이한 채널들을 구별할 수 없기 때문에 사용될 수 있다.
프레임 프로세싱 및/또는 캡처 명령 시스템은 U 채널 및 V 채널을 R, G, 및 B 컬러 성분들에 추가하여 별개의 표준 YUV 프레임 또는 이미지들을 생성한다. 예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템은 U 채널(1912) 및 V 채널(1914)을 추가함으로써 R 컬러 채널에 기초하여 YUV 프레임(1910)을 생성할 수 있다. 상이한 컬러 성분들에 추가된 U 및 V 값들은 동일한 값들(예를 들어, U에 대해 0 또는 512의 값 및 V에 대해 0 또는 512의 값, 여기서 512는 UV 평면의 중심임)을 포함할 수 있다. 프레임 프로세싱 및/또는 캡처 명령 시스템은 이미지가 MFNR 알고리즘에 대한 적절한 포맷으로 되도록 U 및 V 채널들을 추가한다. 일부 경우들에서, 일단 U 및 V 채널들이 추가되면, 프레임 프로세싱 및/또는 캡처 명령 시스템은 프레임의 포맷을 P010 으로 변환한다. MFNR 엔진은 결과적인 YUV 프레임들에 대해 시간적 블렌딩 프로세스를 수행할 수 있다.
도 19 및 도 20에 도시된 예시적인 구성들은 녹색 채널이 어떻게 고려되는지를 제외하고는 유사하다. 도 19의 예에서, 각각의 녹색 채널(Gr 및 Gb)은 별개의 YUV 프레임으로서 프로세싱된다. 도 20의 예에서, 통합된 녹색 채널(1914)은 YUV 프레임으로서 프로세싱된다. 통합된 녹색 채널 기반 YUV 프레임은 더 많은 시간적 블렌딩을 수용하기 위해 (초해상도 프레임으로) 업스케일링될 수 있다. 도 21은 원시 시간적 블렌딩으로부터 생성된 프레임(2102) 및 표준 YUV 프레임들의 이용으로부터 생성된 프레임(2104)을 포함한다. 프레임(2102)과 프레임(2104) 사이의 비교에 의해 도시된 바와 같이, 원시 시간적 필터링 블렌드는 프레임을 열화시키지 않는다.
컬러 성분 기반 YUV 프레임들(예를 들어, YUV 프레임(1910))을 사용하는 이점은 YUV 프레임들이 전형적인 YUV 프레임들보다 작을 것이고 따라서 프로세싱이 더 효율적일 것이라는 것이다. 또 다른 이점은, 원시 시간적 블렌딩이 수행되는 경우, 블렌딩된 원시 프레임이 프레임 프로세싱 및/또는 캡처 명령 시스템 (1700) 의 AWB 엔진 (1708) 및/또는 추가적인 프로세싱 컴포넌트들 (1710)에 의한 AWB 강화를 위해 직접 전송될 수 있고, 이 경우, 역 ISP 가 필요하지 않다는 것이다.
위에서 언급된 바와 같이, 본 명세서에서 사용되는 바와 같이, 짧은, 중간(또는 "중앙"), 안전한, 및 긴 용어들은 제 1 설정과 제 2 설정 사이의 상대적 특징들을 지칭한다. 이들 용어들은 특정 설정에 대해 정의된 범위들에 반드시 대응하지는 않는다. 예를 들어, 긴 노출(예를 들어, 긴 노출 지속기간 또는 긴 노출 이미지 또는 프레임)은 단순히 제 2 노출(예를 들어, 짧은 또는 중간 노출)보다 긴 노출 시간을 지칭한다. 다른 예에서, 짧은 노출(예를 들어, 짧은 노출 지속기간 또는 짧은 노출 이미지 또는 프레임)은 제 2 노출(예를 들어, 긴 또는 중간 노출)보다 짧은 노출 시간을 지칭한다. 또 다른 예에서, 중앙-노출 또는 중간-노출(예를 들어, 중간 노출 지속기간 또는 중간 노출 이미지 또는 프레임)은 제 1 노출(예를 들어, 짧은 노출)보다 크고 제 2 노출(예를 들어, 긴 또는 중앙 노출)보다 작은 노출 시간을 지칭한다.
도 22는 본 명세서에 설명된 기법들을 사용하여 다수의 프레임들에 대한 노출 지속기간을 결정하는 프로세스(2200)의 예를 나타내는 흐름도이다. 블록(2202)에서, 프로세스(2200)는 하나 이상의 프레임들에 대한 모션 맵을 획득하는 단계를 포함한다. 하나 이상의 프레임들은 도 14에 도시된 바와 같이, 상기 수의 프레임들을 캡처하기 위한 캡처 커맨드가 수신되기 전에 획득된 프레임들(프리뷰 프레임들로 지칭됨)일 수 있다. 일부 예들에서, 프리뷰 프레임들은 위에서 언급된 바와 같이 ZSL 버퍼로부터의 것일 수 있다. 일부 경우들에서, 프리뷰 프레임들은 위에서 언급된 바와 같이 짧은 노출 프레임들일 수 있다.
일부 예들에서, 모션 맵은 하나 이상의 프레임들의 각각의 프레임에 대해 획득될 수 있다(예를 들어, 제 1 프레임에 대한 제 1 모션 맵, 제 2 프레임에 대한 제 2 모션 맵 등). 예를 들어, 일부 양태들에서, 모션 맵은 각각의 프레임과 함께 메타데이터로서 포함될 수 있다. 상술한 바와 같이, 모션 맵은 또한 시간적 필터 표시(temporal filter indication; TFI)로 지칭될 수 있다. 일부 경우들에서, 모션 맵은 이미지(예를 들어, 전술한 바와 같은 TFI 이미지)를 포함한다. 일부 예들에서, TFI 이미지는 하나 이상의 프레임들과 동일한 해상도(따라서 수평 및 수직 방향들에서 동일한 수의 픽셀들을 가짐)를 가질 수 있다. 일부 예들에서, TFI 이미지는 하나 이상의 프레임들보다 더 낮은 해상도(수평 방향 및/또는 수직 방향으로 더 적은 픽셀들을 가짐)를 가질 수 있다. 예를 들어, 모션 맵 이미지의 각각의 픽셀은 모션 맵과 연관된 하나 이상의 프레임들(예를 들어, 모션 맵이 메타데이터로서 포함되는 프레임)로부터의 프레임의 각각의 대응하는 픽셀에 대한 모션의 양을 나타내는 값을 포함할 수 있다. 하나의 예시적인 예에서, 모션 맵(또는 TFI) 이미지의 각각의 픽셀에 대한 값은 [0,1]의 범위에 있을 수 있으며, 여기서 0의 값은 픽셀에 대한 모션이 없음을 나타내고, 1의 값은 픽셀에 대한 최대 모션을 나타낸다. 임의의 다른 적절한 범위 또는 값 지정이 모션 맵(또는 TFI) 이미지에 대해 사용될 수 있다.
블록(2204)에서, 프로세스(2200)는 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하는 단계를 포함한다. 모션은 하나 이상의 프레임들을 캡처하는데 사용되는 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응한다. 그 모션은 본 명세서에 설명된 바와 같이 로컬 모션(local motion)으로 지칭될 수 있다. 일부 경우들에서, 모션은 프레임에 대해 (예를 들어, 메타데이터로서) 획득되는 모션 맵(예를 들어, 위에서 언급된 바와 같은 모션 맵 이미지) 내의 픽셀들의 값들을 참조함으로써 하나 이상의 프레임들 중 프레임의 각각의 픽셀에 대해 결정될 수 있다.
일부 경우들에서, 프로세스(2200)는 카메라와 연관된 글로벌 모션(global motion)을 결정하는 것을 포함할 수 있다. 예를 들어, 프로세스(2200)는 프로세스(2200)를 수행하는 데 사용되는 디바이스의 자이로스코프 또는 다른 관성 측정 유닛(IMU)(예를 들어, 가속도계 등)으로부터의 측정치들과 같은 하나 이상의 센서 측정치들에 기초하여 글로벌 모션을 결정할 수 있다. 일부 경우들에서, 글로벌 모션은 각각의 프레임과 연관된 시간 동안 수신된 센서 측정치들에 기초하여 하나 이상의 프레임들의 각각의 프레임에 대해 결정될 수 있다. 예를 들어, 자이로스코프로부터의 측정치들은 특정 프레임 동안 수집된 타임 스탬프들을 갖는 자이로스코프 샘플들의 벡터를 포함할 수 있다. 이러한 예에서, 프로세스(2200)는 벡터에 기초하여 특정 프레임에 대한 글로벌 모션을 결정할 수 있다.
일부 예들에서, 프로세스(2200)는 결정된 모션 및 글로벌 모션에 기초하여 최종 모션 표시를 결정하는 것을 포함할 수 있다. 예를 들어, 프로세스(2200)는 결정된 모션에 대한 제 1 가중치(weight) 및 글로벌 모션에 대한 제 2 가중치를 사용하여 결정된 모션과 글로벌 모션의 가중된 조합에 기초하여 최종 모션 표시를 결정할 수 있다. 하나의 예시적인 예에서, 최종 모션 표시는 lin_blend(GMI, GMI*LMI, LMI_weight)^2로서 결정될 수 있고, 여기서 lin_blend는 선형 블렌딩 연산이다. 다른 예시적인 예에서, FMI는 lin_blend(GMI, GMI*LMI, LMI_weight)로서 결정될 수 있다.
블록 2206에서, 프로세스 (2200) 는 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 (예를 들어, 노출 시간 또는 지속기간) 을 결정하는 것을 포함한다. 일부 예들에서, 결정된 노출 지속기간은 노출 지속기간 (또는 노출 시간) 및 이득에 기초한다. 전술한 바와 같이, 프로세스(2200)는 (예를 들어, 자이로스코프 측정치들과 같은 하나 이상의 센서 측정치들에 기초하여) 카메라와 연관된 글로벌 모션을 결정하는 것을 포함할 수 있다. 그러한 경우들에서, 블록(2206)에서, 프로세스(2200)는 결정된 모션 및 글로벌 모션에 기초하여 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하는 것을 포함할 수 있다. 위에서 추가로 언급된 바와 같이, 프로세스(2200)는 결정된 모션 및 글로벌 모션에 기초하여 최종 모션 표시를 결정하는 것을 포함할 수 있다. 그러한 경우들에서, 블록(2206)에서, 프로세스(2200)는 최종 모션 표시에 기초하여 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하는 것을 포함할 수 있다.
일부 경우들에서, 상기 수의 프레임들은 전술한 바와 같이 긴 노출 프레임들을 포함할 수 있다. 일부 예들에서, 위에서 설명된 바와 같이, 도 12의 그래프(1200)에서의 값들(또는 다른 값들)은 모션 맵(또는 TFI 이미지)에 의해 표시된 모션에 기초하여, 글로벌 모션에 기초하여, 그리고/또는 최종 모션 표시에 기초하여 긴 노출 시간(또는 지속기간) 및 프레임 카운트를 결정하는 데 사용될 수 있다. 예를 들어, 일부 예들에서, 프로세스(2200)는 결정된 모션 및/또는 글로벌 모션에 기초하여, 하나 이상의 프레임들 내의 모션의 양이 모션 임계치보다 적은 것을 결정하는 것을 포함할 수 있다. 예를 들어, 프로세스(2200)는 최종 모션 표시에 기초하여 하나 이상의 프레임들 내의 모션의 양이 모션 임계치보다 적다고 결정하는 것을 포함할 수 있다. 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 적은 것에 기초하여, 프로세스(2200)는 프레임들의 수에 대한 프레임 카운트를 감소시키는 것 및 결정된 노출 지속기간에 대한 노출 지속기간 양을 증가시키는 것을 포함할 수 있다. 일부 예들에서, 프로세스(2200)는 결정된 모션 및/또는 글로벌 모션에 기초하여, 하나 이상의 프레임들 내의 모션의 양이 모션 임계치보다 큰 것을 결정하는 것을 포함할 수 있다. 예를 들어, 프로세스(2200)는 최종 모션 표시에 기초하여 하나 이상의 프레임들 내의 모션의 양이 모션 임계치보다 크다고 결정하는 것을 포함할 수 있다. 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 큰 것에 기초하여, 프로세스(2200)는 프레임들의 수에 대한 프레임 카운트를 증가시키는 것 및 결정된 노출 지속기간에 대한 노출 지속기간 양을 감소시키는 것을 포함할 수 있다.
블록(2208)에서, 프로세스(2200)는 결정된 노출 지속기간을 사용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하는 것을 포함한다. 예를 들어, 프레임 프로세싱 및/또는 캡처 명령 시스템의 컴포넌트(예를 들어, 저조도 엔진(1458) 또는 다른 컴포넌트)는 결정된 노출 지속기간을 사용하여 상기 수의 프레임들을 캡처하기 위해 MFNR, 및 MMF, MFHDR, 이미지 센서, 이미지 신호 프로세서, 이들의 임의의 조합, 및/또는 다른 컴포넌트에 요청을 전송할 수 있다.
일부 양태들에서, 프로세스 (2200) 는 시간적으로 블렌딩된 프레임을 생성하기 위해 결정된 노출 지속기간을 사용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩을 수행하는 것을 포함한다. 일부 경우들에서, 프로세스(2200)는 (예를 들어, 도 14a, 도 14b, 도 15, 도 16, 도 17a, 도 17b, 도 19 및/또는 도 20에 도시된 것과 같은) 머신 러닝 기반 이미지 신호 프로세서를 사용하여, 시간적으로 블렌딩된 프레임에 대한 공간적 프로세싱을 수행하는 것을 포함한다. 일부 양태들에서, 상기 설명된 바와 같이, 머신 러닝 기반 이미지 신호 프로세서는 모션 맵 (예를 들어, TFI) 을 시간적으로 블렌딩된 프레임에 대해 공간적 블렌딩을 수행하기 위한 입력으로서 사용한다. 예를 들어, 도 14a에 도시된 바와 같이, ML ISP 노드(1422)는 DC4 TFI 집성된 이미지(1418)를 입력으로서 사용하여, 블렌딩된 긴 노출 이미지(1420)에서 모션이 존재하는 곳을 결정한다. 도 14b의 예는 입력으로서 ALGM 맵을 사용한다.
도 23 은 본 명세서에서 설명된 기법들을 사용하여 하나 이상의 프레임들에 대한 시간적 블렌딩을 수행하는 프로세스 (2300) 의 일 예를 나타내는 흐름도이다. 블록(2302)에서, 프로세스(2300)는 원시 프레임을 획득하는 것을 포함한다. 원시 프레임은 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함한다. 일부 양태들에서, 원시 프레임은 도 19 및 도 20에 도시된 것과 같은 컬러 필터 어레이(CFA) 패턴을 포함한다.
블록 2304에서, 프로세스 (2300) 는 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하는 것을 포함한다. 일부 경우들에서, 제 1 컬러 성분은 적색 컬러 성분을 포함하고, 제 2 컬러 성분은 녹색 컬러 성분을 포함하고, 제 3 컬러 성분은 청색 컬러 성분을 포함한다. 일부 양태들에서, 제 1 컬러 성분은 원시 프레임의 모든 적색 픽셀들을 포함하고, 제 2 컬러 성분은 원시 프레임의 모든 녹색 픽셀들을 포함하고, 제 3 컬러 성분은 원시 프레임의 모든 청색 픽셀들을 포함한다. 예를 들어, 도 19에 도시된 바와 같이, (다수의 원시 이미지들(1902)로부터의) 원시 이미지는 적색(R) 성분(1908), 녹색(G) 성분 및 청색(B) 성분으로 분할된다. 원시 이미지의 R 성분(1908)은 원시 이미지로부터의 모든 적색 픽셀들을 포함하고, 이 경우 R 성분(1908)은 원시 이미지의 폭의 절반 및 높이의 절반인 해상도를 갖는다. 도 19에 도시된 G 성분(Gr 및 Gb 포함) 및 B 성분 각각은 원시 이미지의 폭의 1/4 및 높이의 1/4인 해상도를 갖는다. 도 20에 도시된 예에서, G 컴포넌트(Gr 및 Gb 컴포넌트들을 결합함)는 원시 이미지의 폭의 절반 및 높이의 절반인 해상도를 갖는다.
블록 (2306)에서, 프로세스 (2300) 는 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산하며, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하는 것을 포함한다. 예를 들어, 프로세스(2300)는 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산함으로써 제 1 프레임을 생성하는 것, 적어도 부분적으로, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산함으로써 제 2 프레임을 생성하는 것, 및 적어도 부분적으로, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써 제 3 프레임을 생성하는 것을 포함할 수 있다. 일부 예들에서, 프로세스 (2300) 는 적어도 부분적으로 제 1 색차 값 및 제 2 색차 값을 제 1 컬러 성분에 가산함으로써 제 1 프레임을 생성하는 것, 적어도 부분적으로 제 1 색차 값 및 제 2 색차 값을 제 2 컬러 성분에 가산함으로써 제 2 프레임을 생성하는 것, 및 적어도 부분적으로 제 1 색차 값 및 제 2 색차 값을 제 3 컬러 성분에 가산함으로써 제 3 프레임을 생성하는 것을 포함할 수 있다. 하나의 예시적인 예에서, 도 19 를 참조하면, U 색차 채널 (1912) 및 V 색차 채널 (1914) 은 U 색차 채널에 대한 값 및 V 색차 채널에 대한 값을 R 컴포넌트 (1908)에 가산함으로써 R 컴포넌트 (1908)에 가산되어, 시간적 필터링을 위해 MFNR 엔진에 의해 프로세싱될 출력 프레임을 생성한다. 일부 양태들에서, 제 1 색차 값 및 제 2 색차 값은 동일한 값이다.
블록 (2308)에서, 프로세스 (2300) 는 복수의 프레임들에 대한 시간적 블렌딩을 수행하는 것을 포함한다. 예를 들어, 도 19 및/또는 도 20에 도시된 MFNR 엔진은 시간적 블렌딩을 수행할 수 있다. 일부 양태들에서, 복수의 프레임들에 대한 시간적 블렌딩을 수행하기 위해, 프로세스 (2300) 는 복수의 프레임들 중 제 1 프레임을 제 1 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 것, 복수의 프레임들 중 제 2 프레임을 제 2 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 것, 및 복수의 프레임들 중 제 3 프레임을 제 3 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 것을 포함할 수 있다. 예를 들어, 도 19에 도시된 바와 같이, 다수의 원시 이미지들(1902)이 프로세싱된다. YUV 이미지는 (다수의 원시 이미지들(1902)로부터의) 각각의 원시 이미지의 각각의 컬러 성분에 대해 생성될 수 있으며, 그 결과 각각의 컬러 성분에 대한 다수의 YUV 이미지들(예를 들어, 원시 이미지들로부터의 R 컬러 성분들을 포함하는 다수의 YUV 이미지들, 원시 이미지들로부터의 Gr 컬러 성분들을 포함하는 다수의 YUV 이미지들, 원시 이미지들로부터의 Gb 컬러 성분들을 포함하는 다수의 YUV 이미지들, 및 원시 이미지들로부터의 B 컬러 성분들을 포함하는 다수의 YUV 이미지들)이 된다. 도 19의 시스템에 의해 생성된 각각의 컬러 성분에 대한 다수의 YUV 이미지들은 시간적 블렌딩을 위해(예를 들어, MFNR에 의해) 프로세싱될 수 있다. 예를 들어, 원시 이미지들로부터의 R 컬러 성분들을 포함하는 다수의 YUV 이미지들은 MFNR에 의해 시간적으로 블렌딩될 수 있고, 원시 이미지들로부터의 Gr 컬러 성분을 포함하는 다수의 YUV 이미지들은 MFNR에 의해 시간적으로 블렌딩될 수 있고, 원시 이미지들로부터의 Gb 컬러 성분을 포함하는 다수의 YUV 이미지들은 MFNR에 의해 시간적으로 블렌딩될 수 있고, 원시 이미지들로부터의 B 컬러 성분을 포함하는 다수의 YUV 이미지들은 MFNR에 의해 시간적으로 블렌딩될 수 있다.
일부 예들에서, 여기에 설명된 프로세스들(예를 들어, 프로세스(2200), 프로세스(2300), 및/또는 여기에 설명된 다른 프로세스)은 컴퓨팅 디바이스 또는 장치에 의해 수행될 수도 있다. 일부 예들에서, 프로세스(2200) 및/또는 프로세스(2300)는 도 1의 프레임 캡처 및 프로세싱 시스템(100), 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템(400), 도 14a의 프레임 프로세싱 및/또는 캡처 명령 시스템(1400), 도 14b의 프레임 프로세싱 및/또는 캡처 명령 시스템(1405), 도 17a의 프레임 프로세싱 및/또는 캡처 명령 시스템(1700), 도 19의 시스템, 및/또는 도 20의 시스템에 의해 수행될 수 있다. 다른 예에서, 프로세스(2200) 및/또는 프로세스(2300)는 도 1의 이미지 프로세싱 디바이스(105B)에 의해 수행될 수 있다. 다른 예에서, 프로세스(2200) 및/또는 프로세스(2300)는 도 26에 도시된 컴퓨팅 시스템(2600)의 아키텍처를 갖는 컴퓨팅 디바이스 또는 시스템에 의해 수행될 수 있다. 실례로, 도 26에 도시된 컴퓨팅 시스템(2600)의 아키텍처를 갖는 컴퓨팅 디바이스는 도 1의 프레임 캡처 및 프로세싱 시스템(100), 도 4의 프레임 프로세싱 및/또는 캡처 명령 시스템(400), 도 14a의 프레임 프로세싱 및/또는 캡처 명령 시스템(1400), 도 14b의 프레임 프로세싱 및/또는 캡처 명령 시스템(1405), 도 17a의 프레임 프로세싱 및/또는 캡처 명령 시스템(1700), 도 19의 시스템, 및/또는 도 20의 시스템의 컴포넌트들을 포함할 수 있고, 도 22의 동작들 및/또는 도 23의 동작들을 구현할 수 있다.
컴퓨팅 디바이스는 모바일 디바이스(예를 들어, 모바일 폰), 데스크탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 웨어러블 디바이스(예를 들어, VR 헤드셋, AR 헤드셋, AR 안경, 네트워크 연결 시계 또는 스마트워치, 또는 다른 웨어러블 디바이스), 서버 컴퓨터, 차량의 차량 또는 컴퓨팅 디바이스, 로봇 디바이스, 텔레비전, 및/또는 프로세스(2200)를 포함하여, 본 명세서에 설명된 프로세스들을 수행하기 위한 리소스 능력들을 갖는 임의의 다른 컴퓨팅 디바이스와 같은 임의의 적합한 디바이스를 포함할 수 있다. 일부 경우들에서, 컴퓨팅 디바이스 또는 장치는 본원에 설명된 프로세스들의 단계들을 수행하도록 구성되는 하나 이상의 입력 디바이스들, 하나 이상의 출력 디바이스들, 하나 이상의 프로세서들, 하나 이상의 마이크로프로세서들, 하나 이상의 마이크로컴퓨터들, 하나 이상의 카메라들, 하나 이상의 센서들, 및/또는 다른 컴포넌트(들)과 같은 여러 컴포넌트들을 포함할 수도 있다. 일부 예들에 있어서, 컴퓨팅 디바이스는 디스플레이, 데이터를 통신 및/또는 수신하도록 구성된 네트워크 인터페이스, 이들의 임의의 조합, 및/또는 다른 컴포넌트(들)를 포함할 수도 있다. 네트워크 인터페이스는 인터넷 프로토콜 (IP) 기반 데이터 또는 다른 타입의 데이터를 통신 및/또는 수신하도록 구성될 수도 있다.
컴퓨팅 디바이스의 컴포넌트들은 회로부에서 구현될 수 있다. 예를 들어, 컴포넌트들은 본 명세서에서 설명된 다양한 동작들을 수행하기 위해, 하나 이상의 프로그래밍가능 전자 회로들 (예컨대, 마이크로프로세서들, 그래픽스 프로세싱 유닛들 (GPU들), 디지털 신호 프로세서들 (DSP들), 중앙 프로세싱 유닛들 (CPU들), 및/또는 다른 적합한 전자 회로들) 을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고/있거나 이들을 사용하여 구현될 수 있고, 및/또는 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고/있거나 이들을 사용하여 구현될 수 있다.
프로세스 (2200) 및 프로세스 (2300) 은 논리 흐름도들로서 예시되고, 그 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들의 맥락에서, 그 동작들은 하나 이상의 프로세서들에 의해 실행될 때 열거된 동작들을 수행하는, 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 실행 가능 명령들을 나타낸다. 일반적으로, 컴퓨터 실행가능 명령들은 특정의 기능들을 수행하거나 또는 특정의 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 기술되는 순서는 제한으로서 해석되도록 의도되지 않으며, 임의의 수의 기술된 동작들은 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
추가적으로, 본원에 설명된 프로세스 (2200), 프로세스 (2300) 및/또는 다른 프로세스는 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있고, 집합적으로 하나 이상의 프로세서 상에서 실행하는 코드 (예를 들어, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서, 하드웨어에 의해, 또는 이들의 조합으로 구현될 수도 있다. 상기 언급된 바와 같이, 코드는 컴퓨터 판독가능 또는 머신 판독가능 저장 매체 상에, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로 저장될 수도 있다. 컴퓨터 판독가능 또는 머신 판독가능 저장 매체는 비일시적(non-transitory)일 수도 있다.
전술한 바와 같이, 일부 경우들에서 머신 러닝 기반 이미지 신호 프로세서(예를 들어, 도 14a, 도 14b, 도 15, 도 16 및/또는 도 17a의 ML ISP)가 사용될 수 있다. ML ISP는 하나 이상의 신경망을 포함할 수 있다. 도 24는 일부 예들에 따른 신경망(2400)의 예를 나타내는 블록도이다. 도 24의 신경망(2400)은 이러한 ML ISP들을 구현하는 데 사용될 수 있다. 도 24의 신경망(2400)은 전술한 시스템들 및 기법들 중 임의의 것에 의해 수행되는 바와 같이 본 명세서에 설명된 임의의 동작들을 구현하는 데 사용될 수 있다.
입력 계층(2420)은 입력 데이터를 포함한다. 하나의 예시적인 예에서, 입력 계층(2420)은 하나 이상의 카메라에 의해 캡처된 입력 이미지의 픽셀들을 나타내는 데이터를 포함할 수 있다. 이미지는 비디오 프레임일 수도 있다. 신경망 (2400) 은 다수의 은닉 계층들 (2422a, 2422b, 내지 2422n) 을 포함한다. 은닉 계층들 (2422a, 2422b, 내지 2422n) 은 "n” 수의 은닉 계층들을 포함하며, 여기서 "n” 은 1 이상의 정수이다. 그 수의 은닉 계층들은 주어진 애플리케이션을 위해 필요한 것과 동수의 계층들을 포함하도록 만들어질 수 있다. 신경망 (2400) 은 은닉 계층들 (2422a, 2422b, 내지 2422n) 에 의해 수행된 프로세싱으로부터 비롯되는 출력을 제공하는 출력 계층 (2424) 을 더 포함한다. 하나의 예시적인 예에서, 출력 계층(2424)은 입력 비디오 프레임에서의 오브젝트에 대한 광학 흐름 및/또는 가중치 맵을 제공할 수 있다. 하나의 예시적인 예에서, 출력 계층(2424)은 입력 비디오 프레임의 인코딩된 버전을 제공할 수 있다.
신경망 (2400) 은 상호연결된 노드들의 다중-계층 신경망이다. 각 노드는 한 가지 정보를 나타낼 수 있다. 노드들과 연관된 정보는 상이한 계층들 사이에서 공유되고 각각의 계층은 정보가 프로세싱될 때 정보를 보유한다. 일부 경우들에서, 신경망 (2400) 은 피드-포워드 네트워크를 포함할 수 있으며, 이 경우 네트워크의 출력들이 그 자체로 피드백되는 피드백 연결이 없다. 일부 경우들에서, 신경망 (2400) 은 순환 신경망을 포함할 수 있으며, 이는 입력을 판독하면서 노드들에 걸쳐 정보가 반송될 수 있게 하는 루프들을 가질 수 있다.
정보는 다양한 계층들 사이에서 노드 대 노드 상호연결들을 통해 노드들 사이에서 교환될 수 있다. 입력 계층 (2420) 의 노드들은 제 1 은닉 계층 (2422a) 의 노드들의 세트를 활성화할 수 있다. 예를 들어, 나타낸 바와 같이, 입력 계층 (2420) 의 입력 노드들 각각은 제 1 은닉 계층 (2422a) 의 노드들 각각에 연결된다. 제 1 은닉 계층 (2422a) 의 노드들은 각각의 입력 노드의 정보를, 입력 노드 정보에 활성화 함수들을 적용함으로써 변환할 수 있다. 그 후, 변환으로부터 도출된 정보는 그들 자신의 지정된 함수들을 수행할 수 있는 다음 은닉 계층 (2422b) 의 노드들로 전달될 수 있고 이 노드들을 활성화할 수 있다. 예시적 함수들은 컨볼루셔널, 업샘플링, 데이터 변환, 및/또는 다른 적절한 함수들을 포함한다. 그 다음, 은닉 계층 (2422b) 의 출력이 다음 은닉 계층의 노드들을 활성화할 수 있는 등이다. 최종 은닉 계층(2422n)의 출력은, 출력이 제공되는, 출력 계층 (2424) 의 하나 이상의 노드들을 활성화할 수 있다. 일부 경우들에서, 신경망 (2400) 에서의 노드들 (예를 들어, 노드 (2426)) 이 다중 출력 라인들을 갖는 것으로 나타나 있지만, 노드가 단일 출력을 갖고 노드로부터 출력되고 있는 것으로 나타낸 모든 라인들은 동일한 출력 값을 나타낸다.
일부 경우들에서, 각각의 노드 또는 노드들 사이의 상호연결은 신경망 (2400) 의 트레이닝으로부터 도출된 파라미터들의 세트인 가중치를 가질 수 있다. 일단 신경망(2400)이 트레이닝되면, 그것은 트레이닝된 신경망으로서 지칭될 수 있으며, 이는 2D 광학 흐름을 생성하고, MS 광학 흐름을 생성하고, 가중치 맵을 생성하고, 2D 광학 흐름에 기초하여 프레임을 2D 워핑하고, MS 광학 흐름에 기초하여 프레임을 MS 워핑하고, 데이터를 인코딩하고, 데이터를 디코딩하고, 예측 프레임을 생성하거나, 또는 이들의 조합을 수행하는 데 사용될 수 있다. 예를 들어, 노드들 사이의 상호연결은 상호연결된 노드들에 관하여 학습된 한 가지 정보를 나타낼 수 있다. 상호연결은 (예를 들어, 트레이닝 데이터세트에 기초하여) 튜닝될 수 있는 튜닝가능한 수치 가중치를 가질 수 있으며, 신경망 (2400) 이 입력들에 적응적이 될 수 있게 하고 점점 더 많은 데이터가 프로세싱됨에 따라 학습하는 것을 가능하게 할 수 있게 한다.
신경망 (2400) 은 출력 계층 (2424) 을 통해 출력을 제공하기 위해서 상이한 은닉 계층들 (2422a, 2422b, 내지 2422n) 을 사용하여 입력 계층 (2420) 에서의 데이터로부터 피처들을 프로세싱하도록 사전 트레이닝된다. 신경망 (2400) 이 이미지들에서 오브젝트들을 식별하는 데 사용되는 예에서, 신경망 (2400) 은 이미지들 및 라벨들 양자 모두를 포함하는 트레이닝 데이터를 사용하여 트레이닝될 수 있다. 예를 들어, 트레이닝 이미지는 그 망에 입력될 수 있으며, 각 트레이닝 이미지에는 각 이미지에 있는 하나 이상의 오브젝트들의 클래스를 나타내는 (기본적으로, 오브젝트가 무엇이며 이들이 어떤 특징을 가지고 있는지를 망에 대해 나타내는) 라벨이 있다. 하나의 예시적인 예에서, 트레이닝 이미지는 숫자 2의 이미지를 포함할 수 있으며, 이 경우 이미지에 대한 라벨은 [0 0 1 0 0 0 0 0 0 0]일 수 있다.
일부 경우들에서, 신경망 (2400) 은 역전파 (backpropagation) 로 불리는 트레이닝 프로세스를 사용하여 노드들의 가중치들을 조정할 수 있다. 역전파는 순방향 패스, 손실 함수, 역방향 패스, 및 가중치 업데이트를 포함할 수 있다. 순방향 패스, 손실 함수, 역방향 패스, 및 파라미터 업데이트는 하나의 트레이닝 반복을 위해 수행된다. 프로세스는 계층들의 가중치가 정확하게 튜닝되도록 신경망 (2400) 이 충분히 잘 트레이닝될 때까지 트레이닝 이미지들의 각 세트에 대해 소정 수의 반복 동안 반복될 수 있다.
이미지들에서 오브젝트들을 식별하는 예의 경우, 순방향 패스는 신경망 (2400) 을 통해 트레이닝 이미지를 패스하는 것을 포함할 수 있다. 가중치들은 신경망 (2400) 이 트레이닝되기 전에 초기에 랜덤화된다. 이미지는 예를 들어 이미지의 픽셀을 나타내는 숫자의 배열을 포함할 수 있다. 어레이에서의 각 숫자는 어레이에서의 그 포지션에서 픽셀 강도를 기술하는 0에서 255 까지의 값을 포함할 수 있다. 일 예에서, 어레이는 28 개의 행 및 28 개의 열의 픽셀들과 3 개의 컬러 성분들 (예컨대, 적색, 녹색 및 청색, 또는 루마와 2 개의 크로마 성분들 등) 을 갖는 숫자들의 28 x 28 x 3 어레이를 포함할 수 있다.
신경망 (2400) 에 대한 제 1 트레이닝 반복 동안, 출력은 가중치들이 초기화에서 랜덤으로 선택되는 것으로 인해 임의의 특정 클래스에 대한 선호도를 부여하지 않는 값들을 아마 포함할 것이다. 예를 들어, 출력이 오브젝트가 상이한 클래스들을 포함할 확률들을 갖는 벡터인 경우, 상이한 클래스들 각각에 대한 확률 값은 동일하거나 적어도 매우 유사할 수도 있다 (예를 들어, 10 개의 가능한 클래스들에 대해, 각각의 클래스는 0.1 의 확률 값을 가질 수도 있다). 초기 가중치들로, 신경망(2400)은 낮은 레벨 특징들을 결정할 수 없고 따라서 (예를 들어, 광학 흐름 또는 프레임의 특정 영역에 대한 가중치 맵핑의) 정확한 결정을 할 수 없다. 손실 함수는 출력에서의 에러를 분석하는데 사용될 수 있다. 임의의 적절한 손실 함수 정의가 사용될 수 있다. 손실 함수의 하나의 예는 평균 제곱 에러 (MSE) 를 포함한다. MSE 는
Figure pct00002
로서 정의되며, 이는 1/2 곱하기 실제 응답 마이너스 예측된 (출력) 응답의 제곱의 합을 산출한다. 손실은
Figure pct00003
의 값과 동일하게 설정될 수 있다.
실제 값들이 예측된 출력과 많이 상이할 것이기 때문에, 손실 (또는 에러) 은 제 1 트레이닝 이미지들에 대해 높을 것이다. 트레이닝의 목표는 예측된 출력이 트레이닝 라벨과 동일하도록 손실량을 최소화하는 것이다. 신경망 (2400) 은 어느 입력들(가중치들)이 망의 손실에 가장 많이 기여했는지를 결정함으로써 역방향 패스를 수행할 수 있으며, 손실이 감소하고 결국 최소화되도록 가중치들을 조정할 수 있다.
가중치들에 대한 손실의 도함수(dL /dW로 표시됨, 여기서 W는 특정 계층에서의 가중치들임)는 네트워크의 손실에 가장 기여한 가중치들을 결정하기 위해 계산될 수 있다. 도함수가 계산된 후 가중치 업데이트 가 필터들의 모든 가중치들을 업데이트함으로써 수행될 수 있다. 예를 들어, 가중치들은 구배의 반대 방향으로 변화하도록 업데이트될 수 있다. 가중치 업데이트는
Figure pct00004
와 같이 표기될 수 있으며, 여기서 w 는 가중치를 나타내고, w i 는 초기 가중치를 나타내며, η 는 러닝 레이트를 나타낸다. 러닝 레이트는 임의의 적절한 값으로 설정될 수 있으며, 높은 러닝 레이트는 더 큰 가중치 업데이트들을 포함하고, 더 낮은 값은 더 작은 가중치 업데이트들을 표시한다.
신경망 (2400) 은 임의의 적절한 심층 망을 포함할 수 있다. 일 예는 입력 계층 및 출력 계층을 포함하는 컨볼루셔널 신경망 (convolutional neural network; CNN) 을 포함하고, 입력 계층과 출력 계층 사이에 다수의 은닉 계층들을 갖는다. CNN 의 은닉 계층들은 일련의 컨볼루셔널, 비선형, 풀링 (다운샘플링을 위한), 및 완전히 연결된 계층들을 포함한다. 신경망 (2400) 은 특히, 오토인코더, DBN (deep belief net), RNN (Recurrent Neural Network) 등과 같은 CNN 외의 임의의 다른 심층 망을 포함할 수 있다.
도 25는 일부 예들에 따른 컨볼루셔널 신경망(CNN)(2500)의 예를 나타내는 블록도이다. CNN(2500)의 입력 계층(2520)은 하나 이상의 카메라(210) 중 하나에 의해 캡처된 이미지와 같은 이미지를 나타내는 데이터를 포함한다. 예를 들어, 데이터는 이미지의 픽셀들을 나타내는 숫자들의 어레이를 포함할 수 있고, 어레이에 있는 각각의 숫자는 어레이에 있는 그 포지션에서의 픽셀 강도를 기술하는 0 내지 255 의 값을 포함한다. 상기로부터의 이전의 예를 사용하여, 어레이는 28 개의 행 및 28 개의 열의 픽셀들과 3 개의 컬러 성분들 (예를 들어, 적색, 녹색 및 청색, 또는 루마와 2 개의 크로마 성분들 등) 을 갖는 숫자들의 28 x 28 x 3 어레이를 포함할 수 있다. 이미지는 출력 계층 (2524) 에서 출력을 얻기 위해 컨볼루셔널 은닉 계층 (2522a), 선택적인 비선형 활성화 계층, 풀링 은닉 계층 (2522b), 및 완전히 연결된 은닉 계층들 (2522c) 을 통해 통과될 수 있다. 각각의 은닉 계층 중 하나만이 도 25에 도시되어 있지만, 당업자는 다중 컨볼루셔널 은닉 계층들, 비선형 계층들, 풀링 은닉 계층들 및/또는 완전히 연결된 계층들이 CNN(2500)에 포함될 수 있음을 이해할 것이다. 이전에 설명된 바와 같이, 출력은 2D 광학 흐름을 생성하고, MS 광학 흐름을 생성하고, 가중치 맵을 생성하고, 2D 광학 흐름에 기초하여 프레임을 2D 워핑하고, MS 광학 흐름에 기초하여 프레임을 MS 워핑하고, 데이터를 인코딩하고, 데이터를 디코딩하고, 예측 프레임을 생성하거나, 또는 이들의 조합을 수행할 수 있다.
CNN (2500) 의 제 1 계층은 컨볼루셔널 은닉 계층 (2522a) 이다. 컨볼루셔널 은닉 계층 (2522a) 은 입력 계층 (2520) 의 이미지 데이터를 분석한다. 컨볼루셔널 은닉 계층의 각각의 노드(2522a) 는 수용 필드로 불리는 입력 이미지의 노드들 (픽셀들) 의 영역에 연결된다. 컨볼루셔널 은닉 계층 (2522a) 은 하나 이상의 필터들 (각각의 필터는 상이한 활성화 또는 특징 맵에 대응함) 로서 간주될 수 있으며, 필터의 각각의 컨볼루셔널 반복은 컨볼루셔널 은닉 계층 (2522a) 의 노드 또는 뉴런이다. 예를 들어, 각각의 컨볼루셔널 반복에서 필터가 커버하는 입력 이미지의 영역은 필터에 대한 수용 필드일 것이다. 하나의 예시적인 예에서, 입력 이미지가 28×28 어레이를 포함하고, 각각의 필터 (및 대응 수용 필드) 가 5×5 어레이이면, 컨볼루셔널 은닉 계층 (2522a) 에 24×24 노드들이 있을 것이다. 노드와 그 노드에 대한 수용 필드 사이의 각각의 연결은 가중치, 그리고 일부 경우들에서는, 전체 바이어스를 학습하여 각각의 노드가 입력 이미지에서의 그 특정 로컬 수용 필드를 분석하도록 학습한다. 은닉 계층 (2522a) 의 각각의 노드는 동일한 가중치들 및 바이어스 (공유 가중치 및 공유 바이어스로 불림) 를 가질 것이다. 예를 들어, 필터는 입력과 동일한 심도 및 가중치들 (숫자들) 의 어레이를 갖는다. 필터는 (입력 이미지의 3개의 색상 성분에 따라) 비디오 프레임 예에 대해 3의 심도를 가질 것이다. 필터 어레이의 예시적인 예 사이즈는 노드의 수용 필드의 사이즈에 대응하는 5 x 5 x 3이다.
컨볼루셔널 은닉 계층 (2522a) 의 컨볼루셔널 성질은 컨볼루셔널 계층의 각각의 노드가 그의 대응하는 수용 필드에 적용되는 것에 기인한다. 예를 들어, 컨볼루셔널 은닉 계층 (2522a) 의 필터는 입력 이미지 어레이의 상부-좌측 코너에서 시작할 수 있고 입력 이미지 주위에서 컨볼브(convolve)할 수 있다. 위에 언급된 바와 같이, 필터의 각각의 컨볼루셔널 반복은 컨볼루셔널 은닉 계층 (2522a) 의 노드 또는 뉴런으로 간주될 수 있다. 각각의 컨볼루셔널 반복에서, 필터의 값들은 이미지의 대응하는 수의 원래 픽셀 값들과 승산된다 (예를 들어, 5x5 필터 어레이는 입력 이미지 어레이의 상부-좌측 코너에서 입력 픽셀 값들의 5x5 어레이로 승산된다). 각각의 컨볼루셔널 반복으로부터의 승산들은 그 반복 또는 노드에 대한 총 합산을 획득하기 위해 함께 합산될 수 있다. 다음으로 프로세스는 컨볼루셔널 은닉 계층 (2522a) 에서 다음 노드의 수용 필드에 따라 입력 이미지에서의 다음 위치에서 계속된다. 예를 들어, 필터는 스텝 양(스트라이드라고 함)만큼 다음 수용 필드로 이동될 수 있다. 스트라이드는 1 또는 다른 적절한 양으로 설정될 수 있다. 예를 들어, 스트라이드가 1 로 설정되는 경우, 필터는 각각의 컨볼루셔널 반복에서 1 픽셀만큼 우측으로 이동될 것이다. 입력 볼륨의 각 고유 위치에서 필터를 프로세싱하는 것은 그 위치에 대한 필터 결과들을 나타내는 숫자를 생성하여, 컨볼루셔널 은닉 계층 (2522a) 의 각각의 노드에 대해 결정되는 총 합산 값을 초래한다.
입력 계층으로부터 컨볼루셔널 은닉 계층 (2522a) 으로의 맵핑은 활성화 맵 (또는 특징 맵) 으로 지칭된다. 활성화 맵은 입력 볼륨의 각 위치에서의 필터 결과들을 나타내는 각각의 노드에 대한 값을 포함한다. 활성화 맵은 입력 볼륨 상에서 필터의 각 반복으로부터 초래되는 다양한 총 합산 값들을 포함하는 어레이를 포함할 수 있다. 예를 들어, 28 x 28 입력 이미지의 각각의 픽셀 (1 의 스트라이드) 에 5 x 5 필터가 적용되는 경우 활성화 맵은 24 x 24 어레이를 포함할 것이다. 컨볼루셔널 은닉 계층 (2522a) 은 이미지에서 다수의 특징들을 식별하기 위해 여러 활성화 맵들을 포함할 수 있다. 도 25에 도시된 예는 3개의 활성화 맵을 포함한다. 3개의 활성화 맵을 사용하여, 컨볼루셔널 은닉 계층(2522a)은 3개의 상이한 종류의 특징들을 검출할 수 있고, 여기서 전체 이미지에 걸쳐 각 특징이 검출 가능하다.
일부 예들에서, 비선형 은닉 계층은 컨볼루셔널 은닉 계층 (2522a) 후에 적용될 수 있다. 비선형 계층은 선형 연산들을 계산하고 있던 시스템에 비선형성을 도입하는데 사용될 수 있다. 비선형 계층의 하나의 예시적인 예는 시정된 선형 유닛 ( ReLU ) 계층이다. ReLU 계층은 함수 f(x) = max(0, x) 를 입력 볼륨에서의 모든 값들에 적용할 수 있으며, 이는 모든 음의 활성화를 0 으로 변경한다. 따라서 ReLU 는 컨볼루셔널 은닉 계층 (2522a) 의 수용 필드에 영향을 미치지 않으면서 망 (2500) 의 비선형 특성들을 증가시킬 수 있다.
풀링 은닉 계층 (2522b) 은 컨볼루셔널 은닉 계층 (2522a) 후에 (그리고 사용될 때 비선형 은닉 계층 후에) 적용될 수 있다. 풀링 은닉 계층 (2522b) 은 컨볼루션 은닉 계층 (2522a) 으로부터의 출력에서의 정보를 단순화하기 위해 사용된다. 예를 들어, 풀링 은닉 계층 (2522b) 은 컨볼루션 은닉 계층 (2522a) 으로부터 출력된 각각의 활성화 맵을 취할 수 있고, 풀링 함수를 사용하여 응축된 활성화 맵 (또는 특징 맵) 을 생성한다. 최대-풀링은 풀링 은닉 계층에 의해 수행되는 함수의 일 예이다. 산술 평균 풀링, L2-norm 풀링, 또는 다른 적절한 풀링 함수들과 같은 다른 형태들의 풀링 함수들이 풀링 은닉 계층 (2522a) 에 의해 사용될 수 있다. 풀링 함수 (예를 들어, 최대-풀링 필터, L2-norm 필터, 또는 다른 적절한 풀링 필터) 가 컨볼루셔널 은닉 계층 (2522a) 에 포함된 각각의 활성화 맵에 적용된다. 도 25 에 도시된 예에서, 3 개의 풀링 필터들이 컨볼루셔널 은닉 계층 (2522a) 에서의 3 개의 활성화 맵들에 대해 사용된다.
일부 예들에서, 최대-풀링은 스트라이드(예를 들어, 2의 스트라이드와 같은 필터의 차원과 동일)를 갖는 최대-풀링 필터(예를 들어, 2x2의 사이즈를 가짐)를 컨볼루셔널 은닉 계층(2522a)로부터 출력된 활성화 맵에 적용함으로써 사용될 수 있다. 최대 풀링 필터로부터의 출력은 필터가 주위를 컨볼브하는 모든 서브 영역에서의 최대 수를 포함한다. 예로서 2x2 필터를 사용하여, 풀링 계층에서의 각 유닛은 이전 계층에서의 2×2 노드의 영역을 요약할 수 있다 (여기서 각 노드는 활성화 맵에서의 값이다). 예를 들어, 활성화 맵에서의 4개 값(노드)은 필터의 각 반복에서 2x2 최대 풀링 필터에 의해 분석될 것이며, 여기서 4개 값들로부터의 최대값이 "최대" 값으로 출력된다. 이러한 최대 풀링 필터가 24x24 노드의 차원을 갖는 컨볼루셔널 은닉 계층(2522a)으로부터의 활성화 필터에 적용되면, 풀링 은닉 계층(2522b)으로부터의 출력은 12x12 노드의 어레이가 될 것이다.
일부 예에서, L2-norm 풀링 필터가 또한 사용될 수 있다. L2-norm 풀링 필터에는 (최대-풀링에서 행해진 바처럼 최대 값을 계산하는 대신에) 활성화 맵의 2×2 영역(또는 다른 적절한 영역)에서의 값들의 제곱의 합의 제곱 근을 계산하는 것, 및 계산된 값들을 출력으로 사용하는 것을 포함한다.
직관적으로, 풀링 함수(예컨대, 최대-풀링, L2-norm 풀링 또는 기타 풀링 함수)는 주어진 특징이 이미지 영역의 어느 곳에서나 발견되는지 여부를 결정하고, 정확한 위치 정보를 버린다. 이것은 특징 검출 결과에 영향을 주지 않고서 수행될 수 있는데, 왜냐하면, 특징이 발견되면, 특징의 정확한 위치가 다른 특징에 상대적인 그의 근사적인 위치만큼 중요하지 않기 때문이다. 최대 풀링 (및 기타 풀링 방법) 은 많은 더 적은 풀링된 특징들이 있다는 이점을 제공하므로, CNN(2500)의 이후 계층에서 필요한 파라미터들의 수를 감소시킨다.
망에서 연결들의 마지막 계층은 출력 계층(2524)에서 출력 노드들의 모든 것에 풀링 은닉 계층(2522b) 으로부터의 모든 노드를 연결하는 완전히 연결된 계층이다. 위의 예를 사용하여, 입력 계층은 입력 이미지의 픽셀 강도들을 인코딩하는 28 x 28 노드를 포함하고, 컨볼루셔널 은닉 계층(2522a)은 3개 활성화 맵에의 (필터들을 위한) 5×5 로컬 수용 필드의 적용에 기초한 3×24×24 은닉 특징 노드들을 포함하고, 풀링 은닉 계층(2522b)은 3개의 특징 맵들 각각에 걸친 2×2 영역들에의 최대 풀링 필터의 적용에 기초한 3×12×12 은닉 특징 노드들의 계층을 포함한다. 이 예를 확장하면, 출력 계층(2524)은 10개의 출력 노드를 포함할 수 있다. 이러한 예에서, 3x12x12 풀링 은닉 계층(2522b)의 모든 노드는 출력 계층(2524)의 모든 노드에 연결된다.
완전히 연결된 계층 (2522c) 은 이전 풀링 은닉 계층 (2522b) 의 출력 (하이레벨 특징들의 활성화 맵들을 나타내야 함) 을 획득할 수 있고, 특정 클래스에 가장 상관되는 특징들을 결정한다. 예를 들어, 완전히 연결된 계층 (2522c) 은 특정 클래스에 가장 강하게 상관되는 하이레벨 특징들을 결정할 수 있고, 하이레벨 특징들에 대한 가중치들(노드들)을 포함할 수 있다. 곱은 상이한 클래스들에 대한 확률들을 획득하기 위해 완전히 연결된 계층 (2522c) 과 풀링 은닉 계층 (2522b) 의 가중치들 사이에서 계산될 수 있다. 예를 들어, CNN(2500)이 광학 흐름을 생성하는 데 사용되는 경우, 한 프레임으로부터 다른 프레임으로의 시각적 요소의 모션의 하이-레벨 특징들을 나타내는 높은 값들이 활성화 맵들에 존재할 것이다.
일부 예들에서, 출력 계층(2524)으로부터의 출력은 M 차원 벡터(이전의 예에서, M = 10)를 포함할 수 있으며, 여기서 M은 광학 흐름에서 가능한 모션 벡터 방향들, 광학 흐름에서 가능한 모션 벡터 진폭들, 가중치 맵에서 가능한 가중치 값들 등에 대응하는 데이터를 포함할 수 있다. 하나의 예시적인 예에서, 9차원 출력 벡터가 10개의 상이한 가능한 값이 [0 0 0.05 0.8 0 0.15 0 0 0 0]임을 나타내는 경우, 벡터는 제 3 값의 5% 확률, 제 4 값의 80% 확률 및 제 6 값의 15% 확률이 존재함을 나타낸다. 가능한 값에 대한 확률은 그 값에 대한(예를 들어, 그 모션 벡터 방향에 대한, 그 모션 벡터 진폭에 대한, 그 가중치 값에 대한, 등) 신뢰도 레벨 또는 확실성 레벨로 간주될 수 있다.
도 26 은 본 기술의 특정 양태들을 구현하기 위한 시스템의 예를 나타내는 도면이다. 특히, 도 26은 예를 들어 내부 컴퓨팅 시스템, 원격 컴퓨팅 시스템, 카메라 또는 이들의 임의의 컴포넌트를 구성하는 임의의 컴퓨팅 디바이스일 수 있는 컴퓨팅 시스템(2600)의 예를 예시하고, 여기서 시스템의 컴포넌트들은 연결(2605)을 사용하여 서로 통신한다. 연결(2605)은 버스를 사용한 물리적 연결이거나, 또는 칩셋 아키텍처에서와 같이 프로세서(2610)로의 직접 연결일 수 있다. 연결(2605)은 가상 연결, 네트워크 연결 또는 논리적 연결일 수도 있다.
일부 실시양태들에서, 컴퓨팅 시스템(2600)은 본 개시물에서 설명된 기능들이 데이터 센터, 다중 데이터 센터, 피어 네트워크 등 내에서 분산될 수 있는 분산 시스템이다. 일부 실시양태들에서, 설명된 시스템 컴포넌트들 중 하나 이상은 컴포넌트가 설명된 기능의 일부 또는 전체를 각각 수행하는 다수의 그러한 컴포넌트들을 나타낸다. 일부 실시양태들에서, 컴포넌트들은 물리적 또는 가상 디바이스들일 수 있다.
예시적인 시스템(2600)은 적어도 하나의 프로세싱 유닛(CPU 또는 프로세서)(2610) 및, 시스템 메모리(2615), 예컨대 판독 전용 메모리(ROM)(2620) 및 랜덤 액세스 메모리(RAM)(2625)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(2610)에 커플링하는 연결(2605)을 포함한다. 컴퓨팅 시스템 (2600) 은, 프로세서 (2610) 와 직접 연결되거나 그에 매우 근접하거나 또는 그의 부분으로서 통합된 고속 메모리의 캐시 (2612) 를 포함할 수 있다.
프로세서 (2610) 는, 임의의 범용 프로세서 및 프로세서 (2610) 를 제어하도록 구성된, 스토리지 디바이스(2630) 에 저장된, 서비스들 (2632, 2634, 및 2636) 과 같은, 하드웨어 서비스 또는 소프트웨어 서비스뿐만 아니라, 소프트웨어 명령들이 실제의 프로세서 설계에 통합되는 특수 목적 프로세서를 포함할 수 있다. 프로세서 (2610) 는 본질적으로 다중 코어들 또는 프로세서들, 버스, 메모리 제어기, 캐시 등을 포함하는 완전히 독립형 컴퓨팅 시스템일 수도 있다. 다중 코어 프로세서는 대칭 또는 비대칭일 수도 있다.
사용자 상호작용을 가능하게 하기 위해, 컴퓨팅 시스템(2600)은 음성용 마이크, 제스처 또는 그래픽 입력용 터치 감지 스크린, 키보드, 마우스, 모션 입력, 음성 등과 같은 임의의 다수의 입력 메커니즘을 나타낼 수 있는 입력 디바이스 (2645) 를 포함한다. 컴퓨팅 시스템(2600)은 또한 다수의 출력 메커니즘 중 하나 이상일 수 있는 출력 디바이스(2635)를 포함할 수 있다. 일부 사례들에서, 멀티모달 시스템들은 사용자가 컴퓨팅 시스템 (2600) 과 통신하기 위해 다중의 타입들의 입력/출력을 제공하는 것을 가능하게 할 수 있다. 컴퓨팅 시스템 (2640) 은 일반적으로 사용자 입력 및 시스템 출력을 지배하고 관리할 수 있는 통신 인터페이스(4740)를 포함할 수 있다. 통신 인터페이스는, 오디오 잭/플러그, 마이크로폰 잭/플러그, 범용 직렬 버스 (USB) 포트/플러그, Apple® Lightning® 포트/플러그, 이더넷 포트/플러그, 광섬유 포트/플러그, 독점적 유선 포트/플러그, BLUETOOTH® 무선 신호 전송, BLUETOOTH® 저에너지 (BLE) 무선 신호 전송, IBEACON® 무선 신호 전송, 무선 주파수 식별 (RFID) 무선 신호 전송, 근접장 통신 (NFC) 무선 신호 전송, 전용 단거리 통신 (DSRC) 무선 신호 전송, 802.11 Wi-Fi 무선 신호 전송, 무선 로컬 영역 네트워크 (WLAN) 신호 전송, 가시광 통신 (VLC), WiMAX (Worldwide Interoperability for Microwave Access), 적외선 (IR) 통신 무선 신호 전송, 공중 교환 전화 네트워크 (PSTN) 신호 전송, 통합 서비스 디지털 네트워크 (ISDN) 신호 전송, 3G/4G/5G/LTE 셀룰러 데이터 네트워크 무선 신호 전송, 애드혹 네트워크 신호 전송, 라디오파 신호 전송, 마이크로파 신호 전송, 적외선 신호 전송, 가시광 신호 전송, 자외선 광 신호 전송, 전자기 스펙트럼을 따른 무선 신호 전송, 또는 이들의 일부 조합을 이용하는 것들을 포함하는, 유선 및/또는 무선 트랜시버들을 사용하여 유선 또는 무선 통신들의 수신 및/또는 송신을 수행하거나 용이하게 할 수도 있다. 통신 인터페이스 (2640) 는 또한, 하나 이상의 GNSS(Global Navigation Satellite System) 시스템들과 연관된 하나 이상의 위성들로부터의 하나 이상의 신호들의 수신에 기초하여 컴퓨팅 시스템 (2600) 의 위치를 결정하는데 사용되는 하나 이상의 GNSS 수신기들 또는 트랜시버들을 포함할 수도 있다. GNSS 시스템들은 미국 기반 글로벌 포지셔닝 시스템 (GPS), 러시아 기반 글로벌 내비게이션 위성 시스템 (GLONASS), 중국 기반 베이더우 내비게이션 위성 시스템 (BDS) 및 유럽 기반 Galileo GNSS 를 포함하지만 이에 한정되지 않는다. 임의의 특정 하드웨어 배열에 대해 동작하는 것에 제한이 없으며, 따라서, 여기에서의 기본 특징들은 이들이 개발됨에 따라 개선된 하드웨어 또는 펌웨어 배열들로 쉽게 대체될 수도 있다.
저장 디바이스(2630)는 비휘발성 및/또는 비일시적 및/또는 컴퓨터 판독 가능 메모리 디바이스일 수 있고 하드 디스크 또는 자기 카세트, 플래시 메모리 카드, 솔리드 스테이트 메모리 디바이스, 디지털 다목적 디스크, 카트리지, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 자기 스트립/스트라이프, 기타 자기 저장 매체, 플래시 메모리, 멤리스터 메모리, 기타 솔리드 스테이트 메모리, 콤팩트 디스크 읽기 전용 메모리(CD-ROM) 광 디스크, 재기록 가능한 콤팩트 디스크(CD) 광 디스크, 디지털 비디오 디스크(DVD) 광 디스크, 블루레이 디스크(BDD) 광 디스크 , 홀로그램 광디스크, 다른 광매체, SD(Secure Digital) 카드, microSD(Micro Secure Digital) 카드, Memory Stick® 카드, 스마트카드 칩, EMV 칩, SIM(Subscriber Identity Module) 카드, 미니/마이크로/나노/피코 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), 다른 메모리 칩 또는 카트리지, 및/또는 이들의 조합과 같은 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 타입의 컴퓨터 판독 가능 매체일 수 있다.
저장 디바이스(2630)는 소프트웨어 서비스, 서버, 서비스 등을 포함할 수 있으며, 그러한 소프트웨어를 정의하는 코드가 프로세서(2610)에 의해 실행될 때 그것은 시스템이 기능을 수행하게 한다. 일부 실시양태들에서, 특정 기능을 수행하는 하드웨어 서비스는, 기능을 수행하기 위해 프로세서 (2610), 연결 (2605), 출력 디바이스 (2635) 등과 같은 필요한 하드웨어 컴포넌트들과 관련하여 컴퓨터 판독가능 매체에 저장된 소프트웨어 컴포넌트를 포함할 수 있다.
본 명세서에서 사용된 바와 같이, 용어 "컴퓨터 판독가능 매체" 는, 휴대 또는 비휴대 저장 디바이스, 광학 저장 디바이스, 및 명령(들) 및/또는 데이터를 저장, 포함 또는 운반할 수 있는 다양한 다른 매체를 포함하지만, 이에 한정되지는 않는다. 컴퓨터 판독가능 매체는 데이터가 저장될 수 있고 반송파 및/또는 무선 또는 유선 연결을 통해 전파되는 일시적인 전자 신호를 포함하지 않는 비일시적인 매체를 포함할 수도 있다. 비일시적인 매체의 예들은 자기 디스크 또는 테이프, 콤팩트 디스크 (CD) 또는 디지털 다용도 디스크 (DVD) 와 같은 광학 저장 매체, 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함하나, 이에 한정되는 것은 아니다. 컴퓨터 판독가능 매체는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신 실행가능 명령들을 저장할 수도 있다. 코드 세그먼트는, 정보, 데이터, 인수들 (arguments), 파라미터들, 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등을 포함한 임의의 적합한 수단을 사용하여 전달, 포워딩, 또는 전송될 수도 있다.
일부 실시양태들에서, 컴퓨터 판독가능 저장 디바이스들, 매체들, 및 메모리들은 비트 스트림 등을 포함하는 무선 신호 또는 케이블을 포함할 수 있다. 하지만, 언급될 때, 비일시적 컴퓨터 판독가능 저장 매체들은 에너지, 캐리어 신호들, 전자기 파들, 및 신호들 그 자체와 같은 매체들을 명시적으로 배제한다.
구체적 상세들은 본원에 제공된 실형태들 및 예들의 철저한 이해를 제공하기 위하여 상기 설명에서 제공되었다. 하지만, 실시양태들은 이들 특정 상세들 없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 설명의 명확성을 위해, 일부 경우들에서, 본 기술은 디바이스들, 디바이스 컴포넌트들, 소프트웨어에서 포함된 방법에서의 단계들 또는 루틴들, 또는 하드웨어 및 소프트웨어의 조합들을 포함하는 기능적 블록들을 포함하는 개별 기능적 블록들을 포함하는 것으로서 제시될 수도 있다. 도면들에서 도시되고/거나 본원에 기술된 것들 이외의 추가적인 컴포넌트들이 사용될 수도 있다. 예를 들어, 회로들, 시스템들, 네트워크들, 프로세스들, 및 다른 컴포넌트들은 그 실시형태들을 불필요한 상세로 불명료하게 하지 않기 위해 블록도 형태의 컴포넌트들로서 도시될 수도 있다. 다른 예들에서, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은, 실시양태들을 불명료하게 하는 것을 회피하기 위해 불필요한 상세 없이 도시될 수도 있다.
개별 실시양태들은 흐름도, 플로우차트, 데이터 흐름도, 구조도, 또는 블록도로서 도시되는 프로세스 또는 방법으로서 위에서 설명될 수도 있다. 흐름도가 동작들을 순차적 프로세스로서 설명할 수도 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 부가적으로, 동작들의 순서는 재배열될 수도 있다. 프로세스는 그것의 동작들이 완료될 때 종료되지만, 도면에 포함되지 않은 추가 단계들을 가질 수 있을 것이다. 프로세스는 방법, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 경우, 그 종료는 그 함수의 호출 함수 또는 메인 함수로의 복귀에 대응할 수도 있다.
상술된 예들에 따른 프로세스들 및 방법들은 컴퓨터 판독가능 매체들에 저장되거나 그 외에 컴퓨터 판독가능 매체들로부터 이용가능한 컴퓨터 실행가능 명령들을 이용하여 구현될 수 있다. 이러한 명령들은, 예를 들어, 범용 컴퓨터, 특수 목적 컴ㅍ터, 또는 프로세싱 디바이스가 특정 기능 또는 기능들의 그룹을 수행하게 하거나 그 외에 수행하도록 구성하는 명령들 및 데이터를 포함할 수 있다. 사용되는 컴퓨터 리소스들의 부분들은 네트워크를 통해 액세스가능할 수 있다. 컴퓨터 실행가능 명령들은, 예를 들어, 어셈블리 언어, 펌웨어, 소스 코드 등과 같은 이진수들, 중간 포맷 명령들일 수도 있다. 명령들, 사용되는 정보, 및/또는, 설명된 예들에 따른 방법들 동안 형성된 정보를 저장하기 위해 사용될 수도 있는 컴퓨터 판독가능 매체들의 예들은 자기 또는 광학 디스크들, 플래시 메모리, 비휘발성 메모리가 제공된 USB 디바이스들, 네트워킹된 저장 디바이스들 등을 포함한다.
이들 개시물들에 따른 프로세스들 및 방법들을 구현하는 디바이스들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어, 또는 이들의 임의의 조합을 포함할 수 있고, 다양한 폼 팩터들 중 임의이 것을 취할 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현될 경우, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들 (예를 들어, 컴퓨터 프로그램 제품) 은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수도 있다. 프로세서(들)는 필요한 태스크들을 수행할 수도 있다. 폼 팩터들의 통상적인 예들은 랩톱들, 스마트 폰들, 모바일 폰들, 태블릿 디바이스들 또는 다른 소형 퍼스널 컴퓨터들, 퍼스널 디지털 어시스턴트들, 랙마운트 디바이스들, 독립형 디바이스들 등을 포함한다. 본원에 기술된 기능성은 또한, 주변장치들 또는 추가 카드들에서 구현될 수 있다. 이러한 기능성은 또한, 추가적인 예에 의해, 단일 디바이스에서 실행되는 상이한 프로세스들 또는 상이한 칩들 중에서 회로 기판 상에서 구현될 수 있다.
명령들, 이러한 명령들을 운반하기 위한 매체들, 그것들을 실행하기 위한 컴퓨팅 리소스들, 및 이러한 컴퓨팅 리소스들을 지원하기 위한 다른 구조들은 본 개시에서 설명될 기능들을 제공하기 위한 예시적인 수단들이다.
전술한 설명에서, 본 출원의 양태들은 그것들의 특정 실시양태들을 참조하여 설명되었지만, 당업자는 본원이 이에 제한되지 않는다는 것을 인식할 것이다. 따라서, 본원의 예시적 실시 형태들이 본원에서 상세하게 설명되었지만, 본 발명의 개념은 이와 달리 다양하게 구체화되고 채용될 수도 있으며, 첨부된 청구 범위는 선행 기술에 의해 제한되는 것을 제외하고는 그러한 변형을 포함하는 것으로 해석되도록 의도된다 전술한 애플리케이션의 다양한 피처들 및 양태들은 개별적으로 또는 공동으로 사용될 수도 있다. 또한, 실시양태들은 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않으면서 본 명세서에 기재된 것 이외의 임의의 수의 환경들 및 애플리케이션들에서 이용될 수 있다. 이에 따라, 명세서 및 도면들은 한정적 의미보다는 예시적 의미로 간주되어야 한다. 예시의 목적 상, 방법들은 특정 순서로 기술되었다. 대안적인 실시양태들에서, 상기 방법들은 설명된 것과 다른 순서로 수행될 수도 있다는 것을 이해해야 한다.
당업자는 본 명세서에서 사용된 미만 ("<") 및 초과 (">") 기호들 또는 용어가 본 개시의 범위로부터 일탈함 없이, 각각 이하 ("≤") 및 이상 ("≥") 기호들로 대체될 수 있다는 것을 알 것이다.
컴포넌트들이 특정 동작을 수행”하도록 구성된” 것으로 기술되는 경우, 그러한 구성은 예를 들어, 전자 회로 또는 다른 하드웨어를 동작을 수행하도록 설계함으로써, 프로그래밍 가능한 전자 회로 (예를 들어, 마이크로 프로세서 또는 다른 적절한 전자 회로 ) 를 동작을 수행하도록 프로그래밍함으로써, 또는 이들의 임의의 조합으로써 달성될 수 있다.
문구 “~ 에 커플링된 (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 의 세트에 열거되지 않은 항목들을 추가적으로 포함할 수 있다.
본 명세서에 개시된 실시양태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 분명히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능성의 관점에서 상기에서 설명되었다. 그러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자는 설명된 기능성을 각각의 특정 애플리케이션에 대하여 다양한 방식들로 구현할 수도 있지만, 그러한 구현의 결정들이 본 출원의 범위로부터의 일탈을 야기하는 것으로서 해석되지는 않아야 한다.
본원에 기술된 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 그러한 기법들은 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 애플리케이션을 포함하여 다중의 이용들을 갖는 집적 회로 디바이스들과 같은 임의의 다양한 디바이스들에서 구현될 수도 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 피처들은 집적된 로직 디바이스에서 함께 또는 별개지만 상호운용가능한 로직 디바이스들로서 별도로 구현될 수도 있다. 소프트웨어에서 구현되면, 그 기법들은, 실행될 경우 상기 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 데이터 저장 매체는 컴퓨터 프로그램 제품의 부분을 형성할 수도 있으며, 이는 패키징 재료들을 포함할 수도 있다. 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체들 등과 같은 메모리 또는 데이터 저장 매체들을 포함할 수도 있다. 그 기법들은, 부가적으로 또는 대안적으로, 전파된 신호들 또는 파들과 같이, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 수록하거나 통신하고 그리고 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는, 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 그러한 프로세서는 본 개시에서 설명된 기법들 중 임의의 기법을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 전술한 구조, 전술한 구조의 임의의 조합, 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 또는 장치 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에 있어서, 본 명세서에서 설명된 기능은, 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에서 제공되거나, 또는 결합된 비디오 인코더-디코더 (CODEC) 에 통합될 수도 있다.
본 개시의 예시적 양태들은 다음을 포함한다:
양태 1. 다수의 프레임들에 대한 노출 지속기간을 결정하기 위한 장치. 그 장치는 메모리 (예를 들어, 회로부에서 구현됨) 및 메모리에 커플링된 하나 이상의 프로세서들 (예를 들어, 하나의 프로세서 또는 다수의 프로세서들) 을 포함한다. 그 하나 이상의 프로세서들은, 하나 이상의 프레임들에 대한 모션 맵을 획득하고; 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하고 - 모션은 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응함 -; 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출을 결정하고; 결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하도록 구성된다.
양태 2. 양태 1 의 장치에 있어서, 상기 하나 이상의 프레임들은 상기 상기 수의 프레임들을 캡처하기 위한 캡처 명령이 수신되기 전에 획득되는, 장치.
양태 3. 양태 1 또는 양태 2 중 어느 하나의 장치에 있어서, 상기 하나 이상의 프로세서들은, 상기 결정된 노출 지속기간을 사용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩을 수행하여 시간적으로 블렌딩된 프레임을 생성하도록 구성되는, 장치.
양태 4. 양태 3 의 장치에 있어서, 상기 하나 이상의 프로세서들은, 머신 러닝 기반 이미지 신호 프로세서를 사용하여, 상기 시간적으로 블렌딩된 프레임에 대해 공간적 프로세싱을 수행하도록 구성되는, 장치.
양태 5. 양태 4 의 장치에 있어서, 상기 머신 러닝 기반 이미지 신호 프로세서는 상기 모션 맵을 상기 시간적으로 블렌딩된 프레임에 대한 상기 공간적 프로세싱을 수행하기 위한 입력으로 사용하는, 장치.
양태 6. 양태 1 내지 양태 5 중 어느 하나의 장치에 있어서, 상기 결정된 노출 지속기간은 이득에 기초하는, 장치.
양태 7. 양태 1 내지 양태 6 중 어느 하나의 장치에 있어서, 상기 모션 맵은 이미지를 포함하고, 상기 이미지의 각각의 픽셀은 각각의 픽셀에 대한 모션의 양 및 상기 모션의 양과 연관된 신뢰도 값 중 적어도 하나를 표시하는 값을 포함하는, 장치.
양태 8. 양태 1 내지 양태 7 중 어느 하나의 장치에 있어서, 상기 하나 이상의 프로세서들은, 하나 이상의 센서 측정치들에 기초하여, 상기 카메라와 연관된 글로벌 모션을 결정하도록 구성되고; 상기 프레임들의 수 및 상기 상기 수의 프레임들을 캡처하기 위한 노출 지속기간은 상기 결정된 모션 및 상기 글로벌 모션에 기초하여 결정되는, 장치.
양태 9. 양태 1 내지 양태 8 중 어느 하나의 장치에 있어서, 결정된 모션 및 글로벌 모션에 기초하여 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하기 위해, 상기 하나 이상의 프로세서들은, 결정된 모션 및 글로벌 모션에 기초하여 최종 모션 표시를 결정하고; 최종 모션 표시에 기초하여 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하도록 구성되는, 장치.
양태 10. 양태 9 의 장치에 있어서, 상기 결정된 모션 및 상기 글로벌 모션에 기초하여 상기 최종 모션 표시를 결정하기 위해, 상기 하나 이상의 프로세서들은, 상기 결정된 모션에 대한 제 1 가중치 및 상기 글로벌 모션에 대한 제 2 가중치를 사용하여 상기 결정된 모션 및 상기 글로벌 모션의 가중된 조합을 결정하도록 구성되는, 장치.
양태 11. 양태 9 또는 양태 10 중 어느 하나의 장치에 있어서, 상기 하나 이상의 프로세서들은, 상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 미만인 것을 결정하고; 그리고 상기 하나 이상의 프레임들에서의 모션의 양이 상기 모션 임계치 미만인 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 감소시키고 상기 결정된 노출 지속기간 동안 노출량을 증가시키도록 구성되는, 장치.
양태 12. 양태 9 또는 양태 10 중 어느 하나의 장치에 있어서, 상기 하나 이상의 프로세서들은, 상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 큰 것을 결정하고; 그리고 상기 하나 이상의 프레임들에서의 모션의 양이 상기 모션 임계치보다 큰 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 증가시키고 그리고 결정된 노출 지속기간 동안 노출량을 감소시키도록 구성되는, 장치.
양태 13. 양태 1 내지 양태 12 중 어느 하나의 장치에 있어서, 적어도 하나의 프레임을 캡처하도록 구성된 카메라 및 상기 적어도 하나의 프레임을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 더 포함하는, 장치.
양태 14. 하나 이상의 프레임들에 대한 시간적 블렌딩을 수행하기 위한 장치. 그 장치는 하나 이상의 프레임들을 저장하도록 구성된 메모리 (예를 들어, 회로부에서 구현됨) 및 메모리에 커플링된 하나 이상의 프로세서들 (예를 들어, 하나의 프로세서 또는 다중 프로세서들) 을 포함한다. 그 하나 이상의 프로세서들은, 원시 프레임을 획득하고 - 원시 프레임은 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함함 -; 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하고; 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산하고, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하고; 그 복수의 프레임들에 대해 시간적 블렌딩을 수행하도록 구성된다.
양태 15. 양태 14 의 장치에 있어서, 상기 원시 프레임은 컬러 필터 어레이(CFA) 패턴을 포함하는, 장치.
양태 16. 양태 14 또는 양태 15 중 어느 하나의 장치에 있어서, 상기 제 1 컬러 성분은 적색 컬러 성분을 포함하고, 상기 제 2 컬러 성분은 녹색 컬러 성분을 포함하고, 상기 제 3 컬러 성분은 청색 컬러 성분을 포함하는, 장치.
양태 17. 양태 14 내지 양태 16 중 어느 하나의 장치에 있어서, 상기 제 1 컬러 성분은 상기 원시 프레임의 모든 적색 픽셀들을 포함하고, 상기 제 2 컬러 성분은 상기 원시 프레임의 모든 녹색 픽셀들을 포함하고, 상기 제 3 컬러 성분은 상기 원시 프레임의 모든 청색 픽셀들을 포함하는, 장치.
양태 18. 양태들 14 내지 양태 17 중 어느 하나의 장치에 있어서, 상기 복수의 프레임들을 생성하기 위해, 상기 하나 이상의 프로세서들은, 적어도 부분적으로, 적어도 상기 제 1 색차 값을 상기 제 1 컬러 성분에 가산함으로써 제 1 프레임을 생성하고; 적어도 부분적으로, 적어도 상기 제 2 색차 값을 상기 제 2 컬러 성분에 가산함으로써 제 2 프레임을 생성하고; 적어도 부분적으로, 적어도 상기 제 3 색차 값을 상기 제 3 컬러 성분에 가산함으로써 제 3 프레임을 생성하도록 구성되는, 장치.
양태 19. 양태 18 중 어느 하나의 장치에 있어서, 상기 제 1 프레임을 생성하기 위해, 상기 하나 이상의 프로세서들은 상기 제 1 컬러 성분에 제 1 색차 값 및 제 2 색차 값을 추가하도록 구성되고; 상기 제 2 프레임을 생성하기 위해, 상기 하나 이상의 프로세서들은 상기 제 2 컬러 성분에 상기 제 1 색차 값 및 상기 제 2 색차 값을 추가하도록 구성되고; 그리고 상기 제 3 프레임을 생성하기 위해, 상기 하나 이상의 프로세서들은 상기 제 3 컬러 성분에 상기 제 1 색차 값 및 상기 제 2 색차 값을 추가하도록 구성되는, 장치.
양태 20. 양태 19 의 장치에 있어서, 상기 제 1 색차 값과 상기 제 2 색차 값은 동일한 값인, 장치.
양태 21. 양태들 14 내지 양태 20 중 어느 하나의 장치에 있어서, 상기 복수의 프레임들에 대한 상기 시간적 블렌딩을 수행하기 위해, 상기 하나 이상의 프로세서들은, 상기 복수의 프레임들 중 제 1 프레임을 상기 제 1 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하고; 상기 복수의 프레임들 중 제 2 프레임을 상기 제 2 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하고; 그리고 상기 복수의 프레임들 중 제 3 프레임을 상기 제 3 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하도록 구성되는, 장치.
양태 22. 양태 14 내지 양태 21 중 어느 하나의 장치에 있어서, 상기 장치는 모바일 디바이스인, 장치.
양태 23. 양태 14 내지 양태 22 중 어느 하나의 장치에 있어서, 하나 이상의 프레임들을 캡처하도록 구성된 카메라를 더 포함하는, 장치.
양태 24. 양태 14 내지 양태 23 중 어느 하나의 장치에 있어서, 하나 이상의 프레임들을 디스플레이하도록 구성된 디스플레이를 더 포함하는, 장치.
양태 25. 양태 1 내지 양태 13 중 어느 하나의 장치 및 양태 14 내지 양태 24 중 어느 하나의 장치를 포함하는 장치.
양태 26. 다수의 프레임들에 대한 노출 지속기간을 결정하는 방법. 그 방법은, 하나 이상의 프레임들에 대한 모션 맵을 획득하는 단계; 그 모션 맵에 기초하여, 장면의 하나 이상의 프레임들과 연관된 모션을 결정하는 단계 - 모션은 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 장면에서의 하나 이상의 오브젝트들의 움직임에 대응함 -; 결정된 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출을 결정하는 단계; 및 결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하는 단계를 포함한다.
양태 27. 양태 26 의 방법에 있어서, 상기 하나 이상의 프레임들은 상기 상기 수의 프레임들을 캡처하기 위한 캡처 명령이 수신되기 전에 획득되는, 방법.
양태 28. 양태 26 또는 양태 27 중 어느 하나의 방법에 있어서, 결정된 노출 지속기간을 사용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩을 수행하여 시간적으로 블렌딩된 프레임을 생성하는 단계를 더 포함하는, 방법.
양태 29. 양태 28 의 방법에 있어서, 머신 러닝 기반 이미지 신호 프로세서를 사용하여, 시간적으로 블렌딩된 프레임에 대해 공간적 프로세싱을 수행하는 단계를 더 포함하는, 방법.
양태 30. 양태 29 의 방법에 있어서, 상기 머신 러닝 기반 이미지 신호 프로세서는 상기 모션 맵을 상기 시간적으로 블렌딩된 프레임에 대한 상기 공간적 프로세싱을 수행하기 위한 입력으로서 사용하는, 방법.
양태 31. 양태 26 내지 양태 30 중 어느 하나의 방법에 있어서, 상기 결정된 노출 지속기간은 이득에 기초하는, 방법.
양태 32. 양태 26 내지 양태 31 중 어느 하나의 방법에 있어서, 상기 모션 맵은 이미지를 포함하고, 상기 이미지의 각각의 픽셀은 각각의 픽셀에 대한 모션량 및 상기 모션량과 연관된 신뢰도 값 중 적어도 하나를 표시하는 값을 포함하는, 방법.
양태 33. 양태 26 내지 양태 32 중 어느 하나의 방법에 있어서, 하나 이상의 센서 측정치들에 기초하여, 카메라와 연관된 글로벌 모션을 결정하는 단계를 더 포함하고; 상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간은 결정된 모션 및 글로벌 모션에 기초하여 결정되는, 방법.
양태 34. 양태 26 내지 양태 33 중 어느 하나의 방법에 있어서, 결정된 모션 및 글로벌 모션에 기초하여 최종 모션 표시를 결정하는 단계를 더 포함하고; 여기서 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간은 최종 모션 표시에 기초하여 결정되는, 방법.
양태 35. 양태 34 의 방법에 있어서, 상기 최종 모션 표시는 상기 결정된 모션에 대한 제 1 가중치 및 상기 글로벌 모션에 대한 제 2 가중치를 사용하여 상기 결정된 모션과 상기 글로벌 모션의 가중된 조합에 기초하는, 방법.
양태 36. 양태 34 또는 양태 35 중 어느 하나의 방법에 있어서, 상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 미만인 것을 결정하는 단계; 및 상기 하나 이상의 프레임들에서의 모션의 양이 상기 모션 임계치 미만인 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 감소시키고 상기 결정된 노출 지속기간에 대한 노출 지속기간량을 증가시키는 단계를 더 포함하는, 방법.
양태 37. 양태 34 또는 양태 35 중 어느 하나의 방법에 있어서, 상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 큰 것을 결정하는 단계; 및 상기 하나 이상의 프레임들에서의 모션의 양이 상기 모션 임계치보다 큰 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 증가시키고 상기 결정된 노출 지속기간에 대한 노출 지속기간량을 감소시키는 단계를 더 포함하는, 방법.
양태 38. 하나 이상의 프레임들에 대해 시간적 블렌딩을 수행하는 방법. 그 방법은, 원시 프레임을 획득하는 단계 - 상기 원시 프레임은 그 원시 프레임의 각각의 픽셀에 대한 단일 컬러 성분을 포함함 -; 원시 프레임을 제 1 컬러 성분, 제 2 컬러 성분, 및 제 3 컬러 성분으로 분할하는 단계; 적어도 부분적으로, 적어도 제 1 색차 값을 제 1 컬러 성분에 가산하고, 적어도 제 2 색차 값을 제 2 컬러 성분에 가산하며, 적어도 제 3 색차 값을 제 3 컬러 성분에 가산함으로써, 복수의 프레임들을 생성하는 단계; 및 그 복수의 프레임들에 대해 시간적 블렌딩을 수행하는 단계를 포함한다.
양태 39. 양태 38 의 방법에 있어서, 상기 원시 프레임은 컬러 필터 어레이(CFA) 패턴을 포함하는, 방법.
양태 40. 양태 38 또는 양태 39 중 어느 하나의 방법에 있어서, 상기 제 1 컬러 성분은 적색 컬러 성분을 포함하고, 상기 제 2 컬러 성분은 녹색 컬러 성분을 포함하고, 상기 제 3 컬러 성분은 청색 컬러 성분을 포함하는, 방법.
양태 41. 양태 38 내지 양태 40 중 어느 하나의 방법에 있어서, 상기 제 1 컬러 성분은 상기 원시 프레임의 모든 적색 픽셀들을 포함하고, 상기 제 2 컬러 성분은 상기 원시 프레임의 모든 녹색 픽셀들을 포함하고, 상기 제 3 컬러 성분은 상기 원시 프레임의 모든 청색 픽셀들을 포함하는, 방법.
양태 42. 양태 38 내지 양태 41 중 어느 하나의 방법에 있어서, 상기 복수의 프레임을 생성하는 단계는, 적어도 부분적으로, 적어도 상기 제 1 색차 값을 상기 제 1 컬러 성분에 가산함으로써 제 1 프레임을 생성하는 단계; 적어도 부분적으로, 적어도 상기 제 2 색차 값을 상기 제 2 컬러 성분에 가산함으로써 제 2 프레임을 생성하는 단계; 및 적어도 부분적으로, 적어도 상기 제 3 색차 값을 상기 제 3 컬러 성분에 가산함으로써 제 3 프레임을 생성하는 단계를 포함하는, 방법.
양태 43. 양태 42 의 어느 하나의 방법에 있어서, 상기 제 1 프레임을 생성하는 단계는, 상기 제 1 컬러 성분에 제 1 색차 값 및 제 2 색차 값을 가산하는 단계를 포함하고; 상기 제 2 프레임을 생성하는 단계는, 상기 제 2 컬러 성분에 상기 제 1 색차 값 및 상기 제 2 색차 값을 가산하는 단계를 포함하고; 그리고 상기 제 3 프레임을 생성하는 단계는, 상기 제 3 컬러 성분에 상기 제 1 색차 값 및 상기 제 2 색차 값을 가산하는 단계를 포함하는, 방법.
양태 44. 양태 43 의 방법에 있어서, 상기 제 1 색차 값과 상기 제 2 색차 값은 동일한 값인, 방법.
양태 45. 양태 38 내지 양태 44 중 어느 하나의 방법에 있어서, 상기 복수의 프레임들에 대해 시간적 블렌딩을 수행하는 단계는, 상기 복수의 프레임들 중 제 1 프레임을 상기 제 1 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 단계; 상기 복수의 프레임들 중 제 2 프레임을 상기 제 2 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 단계; 및 상기 복수의 프레임들 중 제 3 프레임을 상기 제 3 컬러 성분을 갖는 하나 이상의 추가적인 프레임들과 시간적으로 블렌딩하는 단계를 포함하는, 방법.
양태 46. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 양태 26 내지 양태 37 중 어느 것에 따른 동작들을 수행하게 하는, 컴퓨터 판독가능 저장 매체.
양태 47. 양태 26 내지 양태 37 중 어느 것에 따른 동작들을 수행하기 위한 수단을 포함하는 장치.
양태 48. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 양태 38 내지 양태 45 중 어느 것에 따른 동작들을 수행하게 하는, 컴퓨터 판독가능 저장 매체.
양태 49. 양태 38 내지 양태 45 중 어느 것에 따른 동작들을 수행하기 위한 수단을 포함하는 장치.
양태 50. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 양태 26 내지 양태 35 중 어느 것에 따른 동작들 및 양태 36 내지 양태 43 중 어느 것에 따른 동작들을 수행하게 하는, 컴퓨터 판독가능 저장 매체.
양태 51. 양태 26 내지 양태 37 중 어느 하나의 양태의 동작들 및 양태 38 내지 양태 45 중 어느 하나의 양태의 동작들을 포함하는 방법.
양태 52. 양태 26 내지 양태 37 중 어느 것에 따른 동작들 및 양태 38 내지 양태 45 의 동작들 중 어느 것을 수행하기 위한 수단을 포함하는 장치.

Claims (30)

  1. 하나 이상의 프레임들을 프로세싱하기 위한 장치로서,
    메모리; 및
    상기 메모리에 커플링된 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은:
    하나 이상의 프레임들에 대한 모션 맵을 획득하고;
    상기 모션 맵에 기초하여, 장면의 상기 하나 이상의 프레임들과 연관된 모션을 결정하는 것으로서, 상기 모션은 상기 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 상기 장면에서의 하나 이상의 오브젝트들의 움직임에 대응하는, 상기 모션을 결정하는 것을 행하며;
    결정된 상기 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출을 결정하고; 그리고
    결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하도록
    구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  2. 제 1 항에 있어서,
    상기 하나 이상의 프레임들은, 상기 수의 프레임들을 캡처하기 위한 캡처 명령이 수신되기 전에 획득되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  3. 제 1 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 결정된 노출 지속기간을 이용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩을 수행하여 시간적으로 블렌딩된 프레임을 생성하도록 구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  4. 제 3 항에 있어서,
    상기 하나 이상의 프로세서들은,
    머신 러닝 기반의 이미지 신호 프로세서를 사용하여, 상기 시간적으로 블렌딩된 프레임에 대한 공간적 프로세싱을 수행하도록 구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  5. 제 4 항에 있어서,
    상기 머신 러닝 기반의 이미지 신호 프로세서는 상기 모션 맵을 상기 시간적으로 블렌딩된 프레임에 대해 공간적 블렌딩을 수행하기 위한 입력으로 사용하는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  6. 제 1 항에 있어서,
    상기 결정된 노출 지속기간은 이득에 기초하는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  7. 제 1 항에 있어서,
    상기 모션 맵은 이미지를 포함하고, 상기 이미지의 각각의 픽셀은 각각의 픽셀에 대한 모션의 양 및 상기 모션의 양과 연관된 신뢰도 값 중 적어도 하나를 표시하는 값을 포함하는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  8. 제 1 항에 있어서,
    상기 하나 이상의 프로세서들은,
    하나 이상의 센서 측정치들에 기초하여, 상기 카메라와 연관된 글로벌 모션을 결정하도록 구성되고,
    상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 상기 노출 지속기간은 상기 결정된 모션 및 상기 글로벌 모션에 기초하여 결정되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  9. 제 8 항에 있어서,
    상기 결정된 모션 및 상기 글로벌 모션에 기초하여 상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출 지속기간을 결정하기 위해, 상기 하나 이상의 프로세서들은:
    상기 결정된 모션 및 상기 글로벌 모션에 기초하여 최종 모션 표시를 결정하고; 그리고
    상기 최종 모션 표시에 기초하여 상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 상기 노출 지속기간을 결정하도록
    구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  10. 제 9 항에 있어서,
    상기 결정된 모션 및 상기 글로벌 모션에 기초하여 상기 최종 모션 표시를 결정하기 위해, 상기 하나 이상의 프로세서들은,
    상기 결정된 모션에 대한 제 1 가중치 및 상기 글로벌 모션에 대한 제 2 가중치를 사용하여, 상기 결정된 모션과 상기 글로벌 모션의 가중된 조합을 결정하도록 구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  11. 제 9 항에 있어서,
    상기 하나 이상의 프로세서들은:
    상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 적다고 결정하고; 그리고
    상기 하나 이상의 프레임들에서의 상기 모션의 양이 상기 모션 임계치보다 적은 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 감소시키고 결정된 상기 노출에 대한 노출량을 증가시키도록
    구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  12. 제 1 항에 있어서,
    상기 하나 이상의 프로세서들은:
    최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 크다고 결정하고; 그리고
    상기 하나 이상의 프레임들에서의 상기 모션의 양이 상기 모션 임계치보다 큰 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 증가시키고 결정된 상기 노출에 대한 노출량을 감소시키도록
    구성되는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  13. 제 1 항에 있어서,
    적어도 하나의 프레임을 캡처하도록 구성된 카메라 및 상기 적어도 하나의 프레임을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 더 포함하는, 하나 이상의 프레임들을 프로세싱하기 위한 장치.
  14. 하나 이상의 프레임들을 프로세싱하는 방법으로서,
    하나 이상의 프레임들에 대한 모션 맵을 획득하는 단계;
    상기 모션 맵에 기초하여, 장면의 상기 하나 이상의 프레임들과 연관된 모션을 결정하는 단계로서, 상기 모션은 상기 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 상기 장면에서의 하나 이상의 오브젝트들의 움직임에 대응하는, 상기 모션을 결정하는 단계;
    결정된 상기 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출을 결정하는 단계; 및
    결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하는 단계를 포함하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  15. 제 14 항에 있어서,
    상기 하나 이상의 프레임들은, 상기 수의 프레임들을 캡처하기 위한 캡처 명령이 수신되기 전에 획득되는, 하나 이상의 프레임들을 프로세싱하는 방법.
  16. 제 14 항에 있어서,
    상기 결정된 노출 지속기간을 이용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩을 수행하여 시간적으로 블렌딩된 프레임을 생성하는 단계를 더 포함하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  17. 제 16 항에 있어서,
    머신 러닝 기반의 이미지 신호 프로세서를 사용하여, 상기 시간적으로 블렌딩된 프레임에 대한 공간적 프로세싱을 수행하는 단계를 더 포함하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  18. 제 17 항에 있어서,
    상기 머신 러닝 기반의 이미지 신호 프로세서는 상기 모션 맵을 상기 시간적으로 블렌딩된 프레임에 대해 상기 공간적 프로세싱을 수행하기 위한 입력으로 사용하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  19. 제 14 항에 있어서,
    상기 결정된 노출 지속기간은 이득에 기초하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  20. 제 14 항에 있어서,
    상기 모션 맵은 이미지를 포함하고, 상기 이미지의 각각의 픽셀은 각각의 픽셀에 대한 모션의 양 및 상기 모션의 양과 연관된 신뢰도 값 중 적어도 하나를 표시하는 값을 포함하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  21. 제 14 항에 있어서,
    하나 이상의 센서 측정치들에 기초하여, 상기 카메라와 연관된 글로벌 모션을 결정하는 단계를 더 포함하고,
    상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 상기 노출 지속기간은 상기 결정된 모션 및 상기 글로벌 모션에 기초하여 결정되는, 하나 이상의 프레임들을 프로세싱하는 방법.
  22. 제 21 항에 있어서,
    상기 결정된 모션 및 상기 글로벌 모션에 기초하여 최종 모션 표시를 결정하는 단계를 더 포함하고,
    상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 상기 노출 지속기간은 최종 모션 표시에 기초하여 결정되는, 하나 이상의 프레임들을 프로세싱하는 방법.
  23. 제 22 항에 있어서,
    상기 최종 모션 표시는 상기 결정된 모션에 대한 제 1 가중치 및 상기 글로벌 모션에 대한 제 2 가중치를 사용하여 상기 결정된 모션과 상기 글로벌 모션의 가중된 조합에 기초하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  24. 제 22 항에 있어서,
    상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 적다고 결정하는 단계; 및
    상기 하나 이상의 프레임들에서의 상기 모션의 양이 상기 모션 임계치보다 적은 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 감소시키고 결정된 상기 노출 지속기간에 대한 노출 지속기간 양을 증가시키는 단계를 더 포함하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  25. 제 22 항에 있어서,
    상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치보다 크다고 결정하는 단계; 및
    상기 하나 이상의 프레임들에서의 상기 모션의 양이 상기 모션 임계치보다 큰 것에 기초하여, 상기 프레임들의 수에 대한 프레임 카운트를 증가시키고 결정된 상기 노출 지속기간에 대한 노출 지속기간 양을 감소시키는 단계를 더 포함하는, 하나 이상의 프레임들을 프로세싱하는 방법.
  26. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    하나 이상의 프레임들에 대한 모션 맵을 획득하게 하고;
    상기 모션 맵에 기초하여, 장면의 상기 하나 이상의 프레임들과 연관된 모션을 결정하는 것으로서, 상기 모션은 상기 하나 이상의 프레임들을 캡처하기 위해 사용되는 카메라에 대한 상기 장면에서의 하나 이상의 오브젝트들의 움직임에 대응하는, 상기 모션을 결정하는 것을 행하게 하며;
    결정된 상기 모션에 기초하여, 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 노출을 결정하게 하고; 그리고
    결정된 노출 지속기간을 이용하여 상기 수의 프레임들을 캡처하기 위한 요청을 전송하게 하는, 컴퓨터 판독가능 저장 매체.
  27. 제 26 항에 있어서,
    상기 하나 이상의 프레임들은, 상기 수의 프레임들을 캡처하기 위한 캡처 명령이 수신되기 전에 획득되는, 컴퓨터 판독가능 저장 매체.
  28. 제 26 항에 있어서,
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    상기 결정된 노출 지속기간을 이용하여 캡처된 상기 수의 프레임들에 대해 시간적 블렌딩을 수행하여 시간적으로 블렌딩된 프레임을 생성하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  29. 제 26 항에 있어서,
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    하나 이상의 센서 측정치들에 기초하여, 상기 카메라와 연관된 글로벌 모션을 결정하게 하고; 그리고
    상기 결정된 모션 및 상기 글로벌 모션에 기초하여 최종 모션 표시를 결정하게 하는
    명령들을 더 포함하고,
    상기 프레임들의 수 및 상기 수의 프레임들을 캡처하기 위한 상기 노출 지속기간은 최종 모션 표시에 기초하여 결정되는, 컴퓨터 판독가능 저장 매체.
  30. 제 29 항에 있어서,
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    상기 최종 모션 표시에 기초하여, 상기 하나 이상의 프레임들에서의 모션의 양이 모션 임계치 미만인지 또는 초과인지 여부를 결정하게 하고;
    상기 하나 이상의 프레임들에서의 상기 모션의 양이 상기 모션 임계치보다 적을 때, 상기 프레임들의 수에 대한 프레임 카운트를 감소시키게 하고, 상기 결정된 노출 지속기간 동안 노출량을 증가시키게 하며;
    상기 하나 이상의 프레임들에서의 상기 모션의 양이 상기 모션 임계치보다 클 때, 상기 프레임들의 수에 대한 프레임 카운트를 증가시키게 하고, 상기 결정된 노출 지속기간 동안 노출량을 감소시키게 하는
    명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020237013932A 2020-10-30 2021-10-01 프레임 프로세싱 및/또는 캡처 명령 시스템들 및 기법들 KR20230098575A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063108221P 2020-10-30 2020-10-30
US63/108,221 2020-10-30
US17/240,837 2021-04-26
US17/240,837 US20220138964A1 (en) 2020-10-30 2021-04-26 Frame processing and/or capture instruction systems and techniques
PCT/US2021/053151 WO2022093478A1 (en) 2020-10-30 2021-10-01 Frame processing and/or capture instruction systems and techniques

Publications (1)

Publication Number Publication Date
KR20230098575A true KR20230098575A (ko) 2023-07-04

Family

ID=81379094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237013932A KR20230098575A (ko) 2020-10-30 2021-10-01 프레임 프로세싱 및/또는 캡처 명령 시스템들 및 기법들

Country Status (7)

Country Link
US (1) US20220138964A1 (ko)
EP (1) EP4238305A1 (ko)
JP (1) JP2023548748A (ko)
KR (1) KR20230098575A (ko)
CN (1) CN116438804A (ko)
TW (1) TW202220433A (ko)
WO (1) WO2022093478A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636683B2 (en) * 2021-09-14 2023-04-25 Black Sesame Technologies Inc. Precise object segmentation with multi-modal input for realtime video application
US11863880B2 (en) 2022-05-31 2024-01-02 Microsoft Technology Licensing, Llc Image frame selection for multi-frame fusion
US20230401401A1 (en) * 2022-06-08 2023-12-14 Scandit Ag Optical pattern decoding in a real scene using overlay functionality
CN117412177A (zh) * 2022-07-04 2024-01-16 北京小米移动软件有限公司 拍摄方法、装置、介质及芯片

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546026B2 (en) * 2005-10-25 2009-06-09 Zoran Corporation Camera exposure optimization techniques that take camera and scene motion into account
US7697836B2 (en) * 2006-10-25 2010-04-13 Zoran Corporation Control of artificial lighting of a scene to reduce effects of motion in the scene on an image being acquired
WO2008053765A1 (ja) * 2006-10-30 2008-05-08 Panasonic Corporation 画像生成装置および画像生成方法
US20090244301A1 (en) * 2008-04-01 2009-10-01 Border John N Controlling multiple-image capture
EP2608529B1 (en) * 2011-12-22 2015-06-03 Axis AB Camera and method for optimizing the exposure of an image frame in a sequence of image frames capturing a scene based on level of motion in the scene
KR20180027047A (ko) * 2016-09-05 2018-03-14 엘지전자 주식회사 Hdr 영상 촬영 장치 및 그 제어 방법
WO2019082831A1 (ja) * 2017-10-27 2019-05-02 キヤノン株式会社 撮像装置、撮像装置の制御方法、および、プログラム
US11107205B2 (en) * 2019-02-18 2021-08-31 Samsung Electronics Co., Ltd. Techniques for convolutional neural network-based multi-exposure fusion of multiple image frames and for deblurring multiple image frames
CN113411529A (zh) * 2019-02-28 2021-09-17 华为技术有限公司 一种录像帧率的控制方法及相关装置

Also Published As

Publication number Publication date
WO2022093478A1 (en) 2022-05-05
TW202220433A (zh) 2022-05-16
US20220138964A1 (en) 2022-05-05
JP2023548748A (ja) 2023-11-21
CN116438804A (zh) 2023-07-14
EP4238305A1 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
US20220138964A1 (en) Frame processing and/or capture instruction systems and techniques
US20210390747A1 (en) Image fusion for image capture and processing systems
US11895409B2 (en) Image processing based on object categorization
CN115550570A (zh) 图像处理方法与电子设备
TW202303522A (zh) 使用多點深度感測系統資訊處理圖像資料
US20230388623A1 (en) Composite image signal processor
US20220414847A1 (en) High dynamic range image processing
CN115170554A (zh) 图像检测方法和电子设备
KR20240031246A (ko) 다수의 관심 영역들을 갖는 장면들에서 선택적으로 증가하는 피사계 심도
US20230239590A1 (en) Sensitivity-biased pixels
CN115988311A (zh) 图像处理方法与电子设备
US20230319401A1 (en) Image capture using dynamic lens positions
US20230370727A1 (en) High dynamic range (hdr) image generation using a combined short exposure image
US20240078635A1 (en) Compression of images for generating combined images
WO2023178588A1 (en) Capturing images using variable aperture imaging devices
US20240144717A1 (en) Image enhancement for image regions of interest
US20240054659A1 (en) Object detection in dynamic lighting conditions
US20230377096A1 (en) Image signal processor
WO2023279275A1 (en) Local motion detection for improving image capture and/or processing operations
US11825207B1 (en) Methods and systems for shift estimation for one or more output frames
US20230021016A1 (en) Hybrid object detector and tracker
WO2023140979A1 (en) Motion based exposure control for high dynamic range imaging
TW202410685A (zh) 使用可變光圈成像設備擷取影像
WO2024030691A1 (en) High dynamic range (hdr) image generation with multi-domain motion correction
WO2023163799A1 (en) Foveated sensing