CN116438804A - 帧处理和/或捕获指令系统及技术 - Google Patents
帧处理和/或捕获指令系统及技术 Download PDFInfo
- Publication number
- CN116438804A CN116438804A CN202180073209.9A CN202180073209A CN116438804A CN 116438804 A CN116438804 A CN 116438804A CN 202180073209 A CN202180073209 A CN 202180073209A CN 116438804 A CN116438804 A CN 116438804A
- Authority
- CN
- China
- Prior art keywords
- frames
- motion
- frame
- exposure
- determined
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/215—Motion-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/61—Control of cameras or camera modules based on recognised objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6811—Motion detection based on the image signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6812—Motion detection based on additional sensors, e.g. acceleration sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/72—Combination of two or more compensation controls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/73—Circuitry for compensating brightness variation in the scene by influencing the exposure time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/741—Circuitry 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/743—Bracketing, i.e. taking a series of images with varying exposure conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/81—Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/95—Computational photography systems, e.g. light-field imaging systems
- H04N23/951—Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10141—Special mode during image acquisition
- G06T2207/10144—Varying exposure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20208—High dynamic range [HDR] image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
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)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (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、曝光时间、孔径(aperture)大小、光圈(f/stop)、快门速度、焦点和增益。其他相机设置可以配置照片的后处理,诸如更改对比度、亮度、饱和度、锐度、色阶、曲线或颜色。主机处理器(HP)可以被用于配置图像传感器的设置和/或图像信号处理器(ISP)的设置。图像传感器与ISP之间的设置的配置应被同步,以确保图像被正确处理。
发明内容
本文描述了用于执行图像或帧处理和/或捕获指令配置的系统和技术。根据一个说明性示例,提供了一种确定曝光持续时间和帧的数量的方法。该方法包括:获得用于一个或多个帧的运动图;基于运动图,确定与场景的一个或多个帧相关联的运动,该运动对应于场景中的一个或多个对象相对于用于捕获一个或多个帧的相机的移动;基于确定的运动,确定帧的数量以及用于捕获该数量的帧的曝光持续时间;以及发送请求以使用确定的曝光持续时间来捕获该数量的帧。
在另一示例中,提供了一种用于确定针对某数量的帧的曝光持续时间的装置,该装置包括被配置为存储至少一个帧的存储器以及耦合到存储器的一个或多个处理器(例如,被实现于电路中)。一个或多个处理器被配置为并且可以:获得用于一个或多个帧的运动图;基于运动图,确定与场景的一个或多个帧相关联的运动,该运动对应于场景中的一个或多个对象相对于用于捕获一个或多个帧的相机的移动;基于确定的运动,确定帧的数量以及用于捕获该数量的帧的曝光持续时间;以及发送请求以使用确定的曝光持续时间来捕获该数量的帧。
在另一示例中,提供了一种其上存储有指令的非暂态计算机可读介质,这些指令在由一个或多个处理器执行时使得这一个或多个处理器:获得用于一个或多个帧的运动图;基于运动图,确定与场景的一个或多个帧相关联的运动,该运动对应于场景中的一个或多个对象相对于用于捕获一个或多个帧的相机的移动;基于确定的运动,确定帧的数量以及用于捕获该数量的帧的曝光持续时间;以及发送请求以使用确定的曝光持续时间来捕获该数量的帧。
在另一示例中,提供了一种用于确定针对某数量的帧的曝光持续时间的装置。该装置包括:用于获得用于一个或多个帧的运动图的部件;用于基于运动图,确定与场景的一个或多个帧相关联的运动的部件,该运动对应于场景中的一个或多个对象相对于用于捕获一个或多个帧的相机的移动;用于基于确定的运动,确定帧的数量以及用于捕获该数量的帧的曝光持续时间的部件;以及用于发送请求以使用确定的曝光持续时间来捕获该数量的帧的部件。
在某些方面中,一个或多个帧是在接收到用于捕获该数量的帧的捕获命令之前获得的。
在某些方面中,上述方法、装置和计算机可读介质还包括:对使用确定的曝光持续时间捕获的该数量的帧执行时间混合(temporal blending)以生成时间混合帧。
在某些方面中,上述方法、装置和计算机可读介质还包括:使用基于机器学习的图像信号处理器对时间混合帧执行空间处理(spatial processing)。在某些方面中,基于机器学习的图像信号处理器使用运动图作为用于对时间混合帧执行空间处理的输入。
在某些方面中,确定的曝光持续时间基于增益。
在某些方面中,运动图包括图像,图像的每个像素包括指示以下中的至少一个的值:每个像素的运动量以及与运动量相关联的置信值。
在某些方面中,上述方法、装置和计算机可读介质还包括:基于一个或多个传感器测量确定与相机相关联的全局运动。在某些情况下,帧的数量以及用于捕获该数量的帧的曝光持续时间是基于确定的运动和全局运动而被确定的。例如,该装置的一个或多个处理器可以被配置为基于确定的运动和全局运动来确定帧的数量以及用于捕获该数量的帧的曝光持续时间。
在某些方面中,上述方法、装置和计算机可读介质还包括:基于确定的运动和全局运动来确定最终运动指示。在某些情况下,帧的数量以及用于捕获该数量的帧的曝光持续时间是基于最终运动指示而被确定的。例如,该装置的一个或多个处理器可以被配置为基于最终运动指示来确定帧的数量以及用于捕获该数量的帧的曝光持续时间。
在某些方面中,最终运动指示基于使用用于确定的运动的第一权重和用于全局运动的第二权重的、确定的运动和全局运动的加权组合。例如,为了基于确定的运动和全局运动来确定最终运动指示,一个或多个处理器可以被配置为使用用于确定的运动的第一权重以及用于全局运动的第二权重来确定确定的运动和全局运动的加权组合。
在某些方面中,上述方法、装置和计算机可读介质还包括:基于最终运动指示确定一个或多个帧中的运动量小于运动阈值;并且基于一个或多个帧中的运动量小于运动阈值,减少针对帧的数量的帧计数并增加针对确定的曝光持续时间的曝光持续时间量。
在某些方面中,上述方法、装置和计算机可读介质还包括:基于最终运动指示确定一个或多个帧中的运动量大于运动阈值;并且基于一个或多个帧中的运动量大于运动阈值,增加针对帧的数量的帧计数并减少针对确定的曝光持续时间的曝光持续时间量。
根据至少一个其他说明性示例,提供了一种对一个或多个帧执行时间混合的方法。该方法包括:获得原始帧,原始帧包括用于原始帧的每个像素的单颜色分量;将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量;至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧;以及对多个帧执行时间混合。
在另一示例中,提供了一种用于对一个或多个帧执行时间混合的装置,该装置包括被配置为存储至少一个图像的存储器以及耦合到存储器的一个或多个处理器(例如,被实现于电路中)。一个或多个处理器被配置为并且可以:获得原始帧,原始帧包括用于原始帧的每个像素的单颜色分量;将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量;至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧;以及对多个帧执行时间混合。
在另一示例中,提供了一种其上存储有指令的非暂态计算机可读介质,这些指令在由一个或多个处理器执行时使得这一个或多个处理器:获得原始帧,原始帧包括用于原始帧的每个像素的单颜色分量;将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量;至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧;以及对多个帧执行时间混合。
在另一示例中,提供了一种用于对一个或多个帧执行时间混合的装置。该装置包括:用于获得原始帧的部件,原始帧包括用于原始帧的每个像素的单颜色分量;用于将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量的部件;用于至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧的部件;以及用于对多个帧执行时间混合的部件。
在某些方面中,原始帧包括滤色器阵列(CFA)样式。
在某些方面中,第一颜色分量包括红色颜色分量,第二颜色分量包括绿色颜色分量,并且第三颜色分量包括蓝色颜色分量。
在某些方面中,第一颜色分量包括原始帧的所有红色像素,第二颜色分量包括原始帧的所有绿色像素,并且第三颜色分量包括原始帧的所有蓝色像素。
在某些方面中,生成多个帧包括:至少部分地通过将至少第一色度值添加到第一颜色分量来生成第一帧;至少部分地通过将至少第二色度值添加到第二颜色分量来生成第二帧;以及至少部分地通过将至少第三色度值添加到第三颜色分量来生成第三帧。
在某些方面中,生成第一帧包括将第一色度值和第二色度值添加到第一颜色分量。在某些方面中,生成第二帧包括将第一色度值和第二色度值添加到第二颜色分量。在某些方面中,生成第三帧包括将第一色度值和第二色度值添加到第三颜色分量。
在某些方面中,第一色度值和第二色度值是相同值。
在某些方面中,对多个帧执行时间混合包括:将多个帧中的第一帧与具有第一颜色分量的一个或多个附加帧进行时间混合;将多个帧中的第二帧与具有第二颜色分量的一个或多个附加帧进行时间混合;以及将多个帧中的第三帧与具有第三颜色分量的一个或多个附加帧进行时间混合。
在某些方面中,装置是相机、移动设备(例如,移动电话或所谓的“智能电话”或其他移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、服务器计算机、车辆或车辆的计算设备或组件,或者其他设备,是其的一部分,和/或包括其。在某些方面中,装置包括用于捕获一个或多个图像的一个或多个相机。在某些方面中,装置还包括用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在某些方面中,上述装置可以包括一个或多个传感器(例如,一个或多个惯性测量单元(IMU),诸如一个或多个陀螺测试仪、一个或多个加速度计、其任何组合、和/或其他传感器)。
本概述不意图标识所要求保护的主题的关键或必要特征,也不意图被单独用于确定所要求保护的主题的范围。通过参考本专利的整篇说明书的适当部分、任何或全部附图以及每个权利要求,本主题应该被理解。
通过参考以下说明书、权利要求以及所附附图,前述内容以及其他特征和实施例将变得更加显而易见。
附图说明
下面参考以下附图对本申请的说明性实施例进行详细描述:
图1是图示出根据某些示例的帧处理和/或捕获指令系统的示例架构的框图;
图2是图示出用于不同示例场景的各种勒克斯(lux)值的图;
图3是在超低光条件期间捕获的图像;
图4是图示出根据某些示例的帧处理和/或捕获指令系统的示例的框图;
图5是图示出根据某些示例的由图4的帧处理和/或捕获指令系统执行的不同过程的定时的示例的定时图;
图6-图11是图示出根据某些示例的图4的帧处理和/或捕获指令系统的实现的示例的图;
图12是根据某些示例的绘制运动相对于曝光持续时间(或曝光时间)和帧计数的图形;
图13是图示出根据某些示例的图像和时间滤波器指示(temporal filterindication,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是图示出用于实现本文描述的某些方面的系统的示例的图。
具体实施方式
以下提供本公开的某些方面和实施例。如对本领域技术人员将显而易见的,这些方面和实施例中的一些可以被独立地应用,而其中一些可以被组合地应用。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的全面理解。然而,将显而易见的是,各种实施例可以在没有这些具体细节的情况下被实践。附图和描述不意图是限制性的。
随后的描述仅提供示例性实施例,并且不旨在限制本公开的范围、适用性或配置。更确切地说,对示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的使能描述(enabling description)。应该理解,在功能和元件布置方面可以进行各种改变,而不背离如所附权利要求阐述的本申请的精神和范围。
相机是使用图像传感器接收光并捕获图像帧(诸如静止图像或视频帧)的设备。术语“图像”、“图像帧”和“帧”在本文中可互换使用。相机系统可以包括处理器(例如,图像信号处理器(ISP)等),处理器可以接收一个或多个图像帧并处理这一个或多个图像帧。例如,由相机传感器捕获的原始图像帧可以由ISP处理以生成最终图像。ISP的处理可以通过多个滤波器或处理块被应用于捕获的图像帧而被执行,诸如去噪或噪声过滤、边缘增强、颜色平衡、对比度、强度调整(诸如变暗或变亮)、色调调整,等等。图像处理块或模块可以包括透镜/传感器噪声校正、拜耳滤波器(Bayer filter)、去马赛克、颜色转换、图像属性的校正或增强/抑制、去噪滤波器、锐化滤波器,等等。
在许多相机系统中,主机处理器(HP)(在某些情况下也被称为应用处理器(AP))被用于利用新参数设置动态配置图像传感器。HP还被用于动态配置ISP管线的参数设置以匹配输入图像传感器帧的设置,以便图像数据被正确处理。
相机可以被配置有各种图像捕获和图像处理设置。应用不同的设置可能导致具有不同外观的帧或图像。某些相机设置是在照片的捕获之前或期间被确定和应用的,诸如ISO、曝光时间(也被称为曝光持续时间)、孔径大小、光圈、快门速度、焦点和增益。其他相机设置可以配置照片的后处理,诸如更改对比度、亮度、饱和度、锐度、色阶、曲线或颜色。
试图在光线不良的场景中(诸如夜间场景、光线不良或不足的室内场景等)捕获帧或图像时会存在挑战。例如,光线不良的场景通常是黑暗的,带有饱和的明亮区域(如果存在)。光线不良的场景的图像在本文中被称为低光图像。低光图像典型地是黑暗的、有噪声的和无颜色的。例如,低光图像典型地具有黑暗像素,带有针对场景的明亮区域的过度明亮区域。此外,低光图像中的信噪比(SNR)非常低。低光图像中的噪声是由低光条件引起的亮度和/或颜色信息的随机变化的表现。噪声的结果是低光图像看起来有颗粒感。在某些情况下,由于低SNR,必须对低光图像的信号进行放大。例如,信号放大可能引入更多噪声和不准确的白平衡。在某些情况下,可以增加相机的曝光持续时间/时间以帮助增加曝光于图像传感器的光量。然而,由于在快门操作期间更多的光照射到相机传感器,增加的曝光持续时间可能引入运动模糊伪影,从而导致模糊的图像。
系统、装置、过程(也被称为方法)和计算机可读介质(在本文中统称为“系统和技术”)在本文中被描述,以用于提供改进的图像处理技术。在某些情况下,本文描述的系统和技术可以被用于提供改进的低光帧或图像。然而,这些系统和技术也可以被应用于在其他光线条件下捕获的帧或图像。例如,如下文更详细描述的,该系统和技术可以被用于生成具有准确颜色、高纹理和低噪声的良好曝光(例如,具有低模糊的适当曝光)和清晰(例如,保留有低噪声的高纹理水平)的帧。在某些情况下,系统和技术可以控制伪影,保留捕获的帧的大部分或所有动态范围,和/或提供高质量的拍摄到拍摄(shot-to-shot)和处理时间。例如,使用本文描述的系统和技术,可以生成帧,同时保持可比较的帧质量和减少的处理时间(与其他图像捕获系统相比)。在某些示例中,系统和技术可以生成交互式预览(例如,通过在新帧被缓冲和/或处理时渐进地显示帧)。
在某些方面中,系统和技术可以利用现有硬件组件的使用,诸如多帧降噪(multi-frame noise reduction,MFNR)硬件组件、多帧高动态范围(multi-frame High DynamicRange,MFHDR)硬件组件、大规模多帧(Massive Multi-Frame,MF)硬件组件、交错HDR(sHDR)硬件组件(其可以是MFHDR的子集)、它们的任意组合,和/或其他硬件组件。在某些方面中,系统和技术可以使用更长的曝光时间和更高的增益来捕获黑暗帧。在某些示例中,系统和技术可以使用自适应动态范围控制(ADRC)和/或多帧高动态范围(MFHDR)、sHDR和/或MMF来用于高度饱和(或裁剪(clipped)或溢出(blown))的高光。ADRC可以被用于从单个图像或帧中实现高动态范围(HDR)。例如,ADRC可以使帧曝光不足以保留高光,并且随后可以应用稍后的增益来补偿阴影和中等色调。在某些方面中,对于具有高噪声和/或低纹理的帧,系统和技术可以使用MFxR、具有较长的曝光持续时间的、以及在某些情况下使用机器学习系统。术语MFxR可以指多帧降噪(MFNR)和/或多帧超分辨率(Multi-frame Super Resolution,MFSR)。同样,如本文所用,当讨论MFxR(例如,MFNR、MFSR等)时,作为MFxR的附加或替代,可以使用MMF执行相同或类似的技术。在MFNR、MFSR、MMF或其他相关技术中,可以通过混合两个或更多个帧来生成最终帧。
在某些示例中,对于具有运动模糊的帧,系统和技术可以根据与一个或多个预览帧相关联的运动信息(例如,场景中的有效运动/移动,使用传感器测量确定的图像捕获的全局运动,或其组合)来利用帧计数和曝光持续时间(和/或增益)组合动态决策。例如,使用与一个或多个预览帧相关联的运动信息,系统和技术可以确定要捕获的帧的数量(该帧稍后可以使用MFNR、MMF等来组合),以及捕获该数量的帧的曝光持续时间。在某些情况下,系统和技术(例如,低光引擎)可以从预览管线(例如,其生成预览帧)获得各种决策和统计。系统和技术可以输出用于离线管线(例如,其捕获输出帧)的捕获指令。例如,系统和技术可以计算针对运动模糊与SNR之间的最佳平衡的曝光持续时间(例如,最长单帧曝光持续时间)。在某些情况下,这种情况下的SNR变化对应于要应用的实际传感器增益,其是目标曝光除以曝光持续时间/时间的结果。在某些情况下,系统和技术可以计算多帧帧计数(上述帧的数量)以满足请求的拍摄到拍摄时间或持续时间。拍摄到拍摄时间可以指两个连续的用户发起的帧捕获之间(例如,在快门或捕获选项的激活(诸如快门/捕获按钮的选择)之间)的持续时间。请求的拍摄到拍摄持续时间可以是帧计数乘以单帧曝光持续时间(除预定义的管线延迟之外)的乘积。
在某些方面中,为了找到准确的白平衡,系统和技术可以根据较长曝光的帧(在本文中也被称为长曝光帧)计算自动白平衡(AWB)统计。长曝光帧是使用比用于捕获某些帧(例如,在不具有低光条件的场景中,诸如图2中所示的示例正常光线条件)的标准曝光时间更长的曝光时间来捕获的。在某些情况下,系统和技术可以根据较长曝光的聚合帧(例如,通过组合多个较长曝光的帧)计算AWB统计。在某些示例中,为了解决处理延迟,系统和技术可以处理短曝光帧(例如,使用标准曝光时间捕获的)同时捕获较长曝光帧(在本文中被称为长曝光帧)。在某些示例中,系统和技术可以在捕获完成后在后台继续处理短曝光帧。例如,系统和技术可以收集短曝光和/或长曝光帧的队列,并且可以在收集短和/或长曝光帧的后续集合的同时处理这些帧。在某些方面中,系统和技术可以为预览引擎提供连续“改进的”较长曝光的帧,同时仍进行捕获。预览引擎可以输出帧作为预览(例如,在快门按钮或选项被激活之前和/或在基于快门按钮或选项的捕获处理仍在被执行时)。
在某些示例中,诸如为了解决量化问题(例如,色度污迹(chroma stain)),系统和技术可以使用相机管线中的MFHDR之后的后图像处理引擎(后IPE)和/或可以使用机器学习系统。术语“色度污迹”是用于色度量化的可视化术语,并且也可以被称为“色度条带”或“色度轮廓(chroma contour)”。色度污迹可能在帧具有不足的颜色深度,并且经历平滑(例如,降噪)和增强颜色的附加过程的情况下发生。色度污迹的结果可能包括单调(接近灰色)区域上的轮廓或梯级(step)。后IPE是可以被用于进一步平滑生成的轮廓的附加的硬件图像处理引擎(IPE)实例。例如,后IPE可以位于帧处理和/或捕获指令管线的末尾(例如,当帧具有其最终色调时)。
在某些示例中,系统和技术可以基于照度(勒克斯)计量来激活或停用某些低光处理。使用照度计量,可以基于光线条件动态启用系统和技术。例如,帧处理和/或捕获指令系统的图像信号处理器(ISP)或其他处理器可以测量光量。基于光量(例如,低光、正常光、超低光等,诸如图2所示),ISP可以确定是否激活本文描述的技术中的一个或多个。
在某些示例中,长曝光帧比短曝光帧具有显着更高的光敏度。光敏度也可以被称为“曝光”、“图像曝光”或“图像灵敏度”,并且可以如下被定义:光敏度=增益*曝光时间。曝光时间也可以被称为曝光持续时间。此外,术语曝光是指曝光持续时间或曝光时间。用于捕获短曝光帧和长曝光帧的曝光尺度可能会有所不同。在某些情况下,短曝光和长曝光帧可以跨越整个可用增益范围。在某些示例中,可以使用33毫秒(ms)或16.7ms的曝光来捕获短曝光帧。在某些情况下,短曝光帧可以被用作支持标准预览的候选(例如,在设备的显示器中被预览,诸如在快门按钮或选项被激活之前和/或在基于快门按钮或选项的捕获处理仍在被执行时)。在某些情况下,用于短曝光帧的曝光时间可以非常短(例如,0.01秒),诸如以满足无闪烁条件,或者如果检测到直接、无闪烁的光源,则甚至会更短。在某些情况下,要达到用于特定帧速率(例如,由用户定义的一个)的最大光敏度,用于短曝光帧的曝光时间可以是1/frame_rate(帧_速率)秒。在某些示例中,短曝光帧的曝光可以在[0.01,0.08]秒的范围内变化。可以使用高于用于捕获短曝光帧的曝光的任何曝光来捕获长曝光帧或图像。例如,长曝光帧的曝光可以在[0.33,1]秒的范围内变化。在一个说明性示例中,例如,使用没有场景中移动的三脚架,长曝光帧的曝光持续时间可以是大约1秒。在某些情况下,用于长曝光帧的曝光可以达到更长的持续时间(例如,3秒或其他持续时间),但不比短曝光帧“更短”。
如本文所使用的,术语短、中、安全和长是指第一设置与第二设置之间的相对特性,并且不一定对应于针对特定设置的定义范围。也就是说,长曝光(或长曝光持续时间或长曝光帧或图像)仅指比第二次曝光(例如,短曝光或中等曝光)长的曝光时间。在另一示例中,短曝光(或短曝光持续时间或短曝光帧)是指比第二次曝光(例如,长曝光或中等曝光)短的曝光时间。
将参照附图描述本申请的各个方面。图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,从而调整焦点。在某些情况下,系统100中可以包括附加透镜,诸如图像传感器130的每个光电二极管上的一个或多个微透镜,每个微透镜将从透镜115接收的光在光到达光电二极管之前朝向对应的光电二极管弯曲。焦点设置可以经由对比度检测自动聚焦(CDAF)、相位检测自动聚焦(PDAF)或其某种组合而被确定。可以使用控制机构120、图像传感器130和/或图像处理器150来确定焦点设置。焦点设置可以被称为图像捕获设置和/或图像处理设置。
控制机构120中的曝光控制机构125A可以获得曝光设置。在某些情况下,曝光控制机构125A将曝光设置存储在存储器寄存器中。基于此曝光设置,曝光控制机构125A可以控制孔径的大小(例如,孔径大小或光圈)、孔径打开的时间的持续时间(例如,曝光时间或快门速度)、图像传感器130的灵敏度(例如,ISO速度或胶片速度)、图像传感器130应用的模拟增益或其任何组合。曝光设置可以被称为图像捕获设置和/或图像处理设置。
控制机构120的变焦控制机构125C可以获得变焦设置。在某些示例中,变焦控制机构125C将变焦设置存储在存储器寄存器中。基于变焦设置,变焦控制机构125C可以控制包括透镜115和一个或多个附加透镜的透镜元件的组装件(透镜组(lens assembly))的焦距。例如,变焦控制机构125C可以通过致动一个或多个马达或伺服装置以相对于彼此移动透镜中的一个或多个来控制透镜组的焦距。变焦设置可以被称为图像捕获设置和/或图像处理设置。在某些示例中,透镜组可以包括齐焦变焦透镜或变焦距变焦透镜。在某些示例中,透镜组可以包括首先接收来自场景110的光的聚焦透镜(在某些情况下可以是透镜115),随后在光到达图像传感器130之前,该光穿过聚焦透镜(例如,透镜115)与图像传感器130之间的无焦变焦系统。在某些情况下,无焦变焦系统可以包括具有相等或类似焦距(例如,在阈值差内)的两个正(例如,会聚、凸)透镜以及它们之间的负(例如,发散、凹)透镜。在某些情况下,变焦控制机构125C移动无焦变焦系统中的一个或多个透镜,诸如负透镜以及正透镜中的一者或两者。
图像传感器130包括一个或多个光电二极管阵列或其他光敏元件。每个光电二极管测量最终对应于由图像传感器130产生的图像或帧中的特定像素的光量。在某些情况下,不同的光电二极管可能被不同的滤色器覆盖,并且因此可以测量匹配覆盖光电二极管的滤波器的颜色的光。例如,拜耳滤色器包括红色滤色器、蓝色滤色器和绿色滤色器,其中基于来自以红色滤色器覆盖的至少一个光电二极管的红光数据、来自以蓝色滤色器覆盖的至少一个光电二极管的蓝光数据以及来自以绿色滤色器覆盖的至少一个光电二极管的绿光数据生成帧的每个像素。其他类型的滤色器可以使用黄色、品红色和/或青色(也被称为“翠绿色”)滤色器来作为红色、蓝色和/或绿色滤色器的替代或附加。某些图像传感器可能完全缺少滤色器,而是可以遍及像素阵列而使用不同的光电二极管(在某些情况下垂直堆叠)。遍及像素阵列的不同光电二极管可以具有不同的光谱灵敏度曲线,因此响应于不同波长的光。单色图像传感器也可能缺少滤色器,并且因此缺少颜色深度。
在某些情况下,图像传感器130可以替代地或附加地包括不透明和/或反射掩模,其阻止光在某些时间和/或从某些角度到达某些光电二极管或某些光电二极管的部分,其可以被用于相位检测自动聚焦(PDAF)。图像传感器130还可以包括模拟增益放大器以放大光电二极管输出的模拟信号,和/或模数转换器(ADC)以将光电二极管的模拟信号输出(和/或经模拟增益放大器放大)转换为数字信号。在某些情况下,关于控制机构120中的一个或多个讨论的某些组件或功能可以替代地或附加地被包括在图像传感器130中。图像传感器130可以是电荷耦合器件(CCD)传感器、电子倍增CCD(EMCCD)传感器、有源像素传感器(APS)、互补金属氧化物半导体(CMOS)、N型金属氧化物半导体(NMOS)、混合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等)、存储器、连接组件(例如,蓝牙TM、全球定位系统(GPS)等)、其任意组合、和/或其他组件。I/O端口156可以包括根据一个或多个协议或规范的任何合适的输入/输出端口或接口,诸如集成电路间2(Inter-Integrated Circuit 2,I2C)接口、集成电路间3(Inter-Integrated Circuit 3,I3C)接口、串行外围接口(SPI)接口、串行通用输入/输出(GPIO)接口、移动工业处理器接口(MIPI)(诸如MIPI CSI-2物理(PHY)层端口或接口、先进高性能总线(AHB)总线、其任意组合、和/或其他输入/输出端口。在一个说明性示例中,主机处理器152可以使用I2C端口与图像传感器130通信,并且ISP 154可以使用MIPI端口与图像传感器130通信。
主机处理器152可以对图像传感器130配置新的参数设置(例如,经由诸如I2C、I3C、SPI、GPIO和/或其他接口之类的外部控制接口)。在一个说明性示例中,主机处理器152可以基于来自过去图像或帧的曝光控制算法的内部处理结果来更新图像传感器130使用的曝光设置。
主机处理器152还可以动态配置ISP 154的内部管线或模块的参数设置。例如,主机处理器152可以将ISP 154的管线或模块配置为匹配来自图像传感器130的一个或多个输入帧的设置,使得图像或帧数据被ISP 154正确处理。ISP 154的处理(或管线)块或模块可以包括用于透镜(或传感器)噪声校正、去马赛克、颜色空间转换、颜色校正、帧属性的增强和/或抑制、去噪(例如,使用去噪滤波器)、锐化(例如,使用锐化滤波器)等等的模块。基于配置的设置,ISP 154可以执行一个或多个图像处理任务,诸如噪声校正、去马赛克、颜色空间转换、帧下采样、像素插值、自动曝光(AE)控制、自动增益控制(AGC)、CDAF、PDAF、自动白平衡(AWB)、合并帧以形成HDR帧或图像、图像识别、对象识别、特征识别、接收输入、管理输出、管理存储器、或其任意组合。
图像处理器150可以将帧和/或经处理的帧存储在随机存取存储器(RAM)140/920、只读存储器(ROM)145/925、高速缓存912、存储器单元(例如,系统存储器915)、另一存储设备930、或其某种组合中。
各种输入/输出(I/O)设备160可以连接到图像处理器150。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/O160。在某些情况下,图像捕获设备105A中所示的某些组件,诸如ISP154和/或主机处理器152,可以被包括在图像捕获设备105A中。
帧捕获和处理系统100可以包括电子设备,诸如移动或固定电话手持设备(例如,智能电话、蜂窝电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、互联网协议(IP)相机或任何其他合适的电子设备。在某些示例中,帧捕获和处理系统100可以包括用于无线通信的一个或多个无线收发器,诸如蜂窝网络通信、802.11Wi-Fi通信、无线局域网(WLAN)通信或其某种组合。在某些实现方式中,图像捕获设备105A和图像处理设备105B可以是不同的设备。例如,图像捕获设备105A可以包括相机设备并且图像处理设备105B可以包括计算设备,诸如移动手持设备、台式计算机或其他计算设备。
虽然帧捕获和处理系统100被示为包括某些组件,但普通技术人员将理解,帧捕获和处理系统100可以包括比图1中所示的组件更多的组件。帧捕获和处理系统100的组件可以包括软件、硬件或者软件和硬件的一个或多个组合。例如,在某些实现方式中,帧捕获和处理系统100的组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、GPU、DSP、CPU、和/或其他合适的电子电路),和/或可以包括计算机软件、固件或它们的任何组合和/或使用计算机软件、固件或它们的任何组合来实现,以执行本文描述的各种操作。软件和/或固件可以包括一个或多个指令,其被存储在计算机可读存储介质上并且可由实现帧捕获和处理系统100的电子设备的一个或多个处理器执行。
图2是图示出用于不同示例场景的各种勒克斯值的图。虽然图2的示例是使用勒克斯单位被示出的,但光线可以用其他单位来测量,诸如高ISO(表示传感器对光的灵敏度)。通常,勒克斯条件可以对应于低光、正常光、亮光等。图2中所示的勒克斯条件是用于区分勒克斯值的相对术语。例如,如本文所使用的,正常光范围是指比低光范围相对更高的勒克斯范围,并且超低光范围是指比范围相对更低的勒克斯范围。在某些情况下,可以基于上下文重新指派示例勒克斯值。例如,可以由相对描述符重新指派勒克斯范围,这取决于帧处理和/或捕获指令系统能力(例如,传感器像素大小和/或灵敏度等)和/或用例(例如,基于场景条件等)。
参考图2,正常光条件可以对应于50、150、300、1000、10000、30000的勒克斯值。例如,30000的勒克斯值可能出现在包括被直射阳光照亮的人行道的场景中,而1000的勒克斯值可能出现在阴天的包括人行道的场景中。低光(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并且执行与传感器130类似的操作。如图所示,零快门滞后(zero shutterlag,ZSL)缓冲器432可以被用于存储由传感器430捕获的图像或帧。在某些示例中,ZSL缓冲器432是环形缓冲器。通常,ZSL缓冲器432可以被用于存储传感器最近捕获的一个或多个帧,其可以补偿可能发生的滞后时间,直到帧处理和/或捕获指令系统400完成响应于接收到快门(或捕获)命令(例如,基于用户输入或自动接收)对帧进行编码和存储。
一旦帧处理和/或捕获指令系统400处理快门命令,帧处理和/或捕获指令系统400就可以选择缓冲的帧中的一个并且可以进一步处理所选择的帧以用于存储、显示、发送等。如图所示,ZSL帧是利用相对短的曝光捕获的,并且被称为短曝光帧434(在图4中被称为“短曝光”帧或图像)。短曝光帧434被输出到第一MFxR引擎436(例如,可以执行MFNR和/或MFSR的引擎)。第一MFxR引擎436基于短曝光帧生成混合帧438。混合帧438被输出到多帧高动态范围(MFHDR)引擎440。MFHDR引擎440可以接收以不同光敏度或曝光参数(例如,曝光时间和/或增益)捕获的相同场景的多个帧或图像作为输入,诸如使用相对短的曝光(例如,33ms)的一个或多个帧、使用相对中等曝光(例如,100ms)捕获的一个或多个帧,以及使用相对长的曝光(例如,500ms)捕获的一个或多个帧。如上所述,使用长曝光捕获的帧可以被称为长曝光帧或图像。在某些示例中,作为曝光持续时间的附加或替代,可以针对短曝光、中等曝光和长曝光帧或图像调整传感器增益。MFHDR引擎可以将多个帧或图像组合成单个更高动态范围(HDR)帧。MFHDR引擎440可以向后IPE 442输出HDR帧。在某些示例中,MFHDR引擎440可以应用色调映射来使帧的不同部分达到期望的亮度水平。在某些示例中,每个MFHDR输入是单独的MFNR输出(例如,长和短输入/输出)。后IPE 442可以对来自MFHDR引擎440的HDR帧执行附加的图像处理操作以生成最终输出帧或图像。由后IPE 442执行的附加图像处理操作可以包括例如伽玛、锐化、颜色精细触摸(color fine touches)、放大(upscale)、颗粒(grain)等。
传感器430还在PSL捕获444期间输出正快门滞后(PSL)帧或图像。如上所述,与ZSL帧相比,PSL帧是以相对较长的曝光时间(和/或对应的增益)被捕获的并且被称为长曝光帧446(在图4中被称为“长曝光”帧或图像)。来自长曝光帧446的AWB统计448被提供给第一AWB引擎450(被示为“AWB 1”)。第一AWB引擎450可以生成白平衡(WB)定标器(scaler)451,并且可以向第一MFxR引擎436和/或第二MFxR引擎452(例如,可以执行MFNR和/或MFSR的引擎)输出WB定标器451。在某些示例中,WB定标器451可以包括解决红色、绿色和蓝色增益尺度的三个系数,这些系数可以被应用于在特定观察者下实现无色(tintless)的灰色颜色。在一个说明性示例中,WB定标器451可以包括用于红色(R)的系数值1.9、用于绿色(G)的系数值1.0和用于蓝色(B)的系数值1.6。长曝光帧446也被输出到第二MFxR引擎452。在某些情况下,可以使用相同的处理技术由相同的硬件实现第一MFxR引擎436和第二MFxR引擎452,但是与第二MFxR引擎相比,在实现第一MFxR引擎时,硬件可以具有不同的调谐设置。如图4所示,第二MFxR引擎452可以在帧处理和/或捕获指令系统400或者包括帧处理和/或捕获指令系统400的设备的显示器上输出长曝光帧446作为预览帧454(例如,在接收到快门或捕获命令之前和/或在基于快门命令的捕获处理仍在被执行时被显示)。在某些示例中,第二MFxR引擎452可以基于长曝光帧446(例如,通过融合或混合长曝光帧)生成混合帧456。混合帧456被输出到MFHDR引擎440并且还被输出到可以提取AWB统计的低光(LL)引擎458。AWB统计被输出到第二AWB引擎460(被示为“AWB 2”)。在某些情况下,可以使用相同的处理技术由相同的硬件实现第一AWB引擎450和第二AWB引擎460,但是与第二AWB引擎相比,在实现第一AWB引擎时,硬件可以具有不同的调谐设置。第二AWB引擎460可以生成WB定标器461,并且可以向MFHDR引擎440输出WB定标器461。如上所述,MFHDR引擎440向后IPE 442输出组合帧(例如,HDR帧)。
如图4所示,帧处理和/或捕获指令系统可以执行低光(LL)决策462以确定帧(或图像)的数量以及用于图像/帧中的每一个的曝光时间(和/或对应增益)。下文关于图12-图17B描述了关于确定帧的数量和曝光时间(和/或增益)的进一步细节。在某些示例中,LL引擎458可以做出LL决策462。基于LL决策462,自动曝光控制(AEC)引擎464可以执行AEC以确定用于传感器430的曝光参数(例如,曝光持续时间、增益等)。例如,AEC引擎464可以基于LL决策462(向传感器430)发送要捕获的帧的数量以及用于该数量的帧的曝光时间(和/或传感器增益)的指示。
图5是图示出由帧处理和/或捕获指令系统400执行的不同过程的定时的示例的定时图500。例如,定时图图示了低光(LL)模式、快门被激活的时间(例如,被按下或以其他方式选择,对应于快门或捕获命令的接收)、拍摄到拍摄时间以及总过程时间。拍摄到拍摄时间指两个连续的用户发起的图像捕获之间(例如,在快门或捕获选项的激活,诸如快门/捕获按钮的选择之间)的持续时间。如图所示,ZSL帧502(例如,具有短AEC)是在按下快门之前被捕获的。在某些情况下,AEC是控制曝光、增益等的父算法。AEC还具有传感器接口。在某些示例中,AEC具有三个计量:短、安全、长。短导致高光被保留,安全导致平衡曝光,并且长优先考虑黑暗区域。ZSL帧502是预览图像,并且可以被用作如上所述的短曝光帧(例如,以保留高光)。相应地,可以根据短AEC计量来捕获ZSL帧502。一旦按下快门,就捕获PSL帧504,之后应用短多帧降噪(MFNR)506以及长MFNR和预览508。通过执行WB改善(refinement)510来改善(refine)白平衡(WB),随后可以应用MFHDR和后处理512。
图6-图11是图示出根据图5的定时图500的图4的帧处理和/或捕获指令系统400的实现方式的示例的图。图6图示了在图5所示的定时图500的LL模式定时期间帧处理和/或捕获指令系统400的使用。如上所述,LL模式包括短AEC和ZSL(在快门被激活之前)。在某些情况下,LL模式(短AEC设置和ZSL捕获)可以作为帧处理和/或捕获指令过程的第一步而被执行。AEC引擎464可以基于LL决策462(例如,通过LL引擎458)来设置ZSL。例如,AEC引擎464可以确定快门优先级(例如,允许使用特定快门速度(对应于曝光时间)的设置,之后AEC引擎464将计算增益以补充快门速度/曝光时间),诸如根据用户配置或自动设置(例如,在有效的ZSL范围内,诸如[1/7-1/15]秒之间),以便设置用于捕获短曝光帧434(也被称为ZSL帧或图像)的曝光(使用短AEC)。在某些情况下,快门速度可以指传感器曝光时间或有效传感器读出时间(例如,对于不包括物理快门的设备)。AEC引擎464可以从具有轻微过度曝光的AEC“短”度量中选择增益。AEC引擎464可以基于确定的AEC设置来确定帧集合。例如,可以针对增益改变确定更大的帧间隔(例如,具有相同增益的[3-8]帧的序列)。在某些情况下,帧处理和/或捕获指令系统400可以确定是否要使用MFHDR(例如,MFHDR引擎440是使用MFHDR模式还是非MFHDR模式)来处理短曝光帧434(例如,基于动态范围计算)。在某些示例中,帧处理和/或捕获指令系统400可以进一步计算用于短曝光帧434的动态范围。例如,动态范围可以根据AEC“长”与“短”的比率来确定。在一个说明性示例中,为了确定期望模式(例如,是使用MFHDR还是非MFHDR)和某些附加配置,帧处理和/或捕获指令系统400可以确定场景中动态范围的“量”,诸如通过计算来自AEC的极端计量的比率(例如,短与长计量之间)。如果帧处理和/或捕获指令系统400确定要使用MFHDR模式,则可以使用自适应动态范围控制(ADRC)来处理短曝光帧434。传感器430可以基于曝光设置来捕获短曝光帧434。短曝光帧434随后可以被存储在ZSL缓冲器432中。在某些情况下,具有相同增益的先前原始帧(或图像)可以被存储在ZSL缓冲器432中。在某些情况下,具有类似增益或类似灵敏度的先前原始帧(或图像)可以被存储在ZSL缓冲器432中。
图7图示了在图5所示的定时图500的PSL捕获定时期间帧处理和/或捕获指令系统400的使用。如上所述和如图5所示,PSL捕获可以响应于接收到快门或捕获命令而发生。在某些情况下,PSL捕获可以作为帧处理和/或捕获指令过程的第二步而被执行。对于PSL捕获,帧处理和/或捕获指令系统400可以测量场景运动或移动(例如,与正被捕获的帧的场景中的一个或多个对象的移动相对应的局部运动)。在某些示例中,LL引擎458或帧处理和/或捕获指令系统400的其他组件可以使用收集的传感器测量(例如,来自一个或多个惯性测量单元(IMU),诸如陀螺测试仪或陀螺仪、加速度计、它们的任何组合和/或其他IMU)和/或预览运动分析统计,以确定与设备或设备的相机的移动相对应的全局运动。例如,IMU提供机械地估计相机运动的手段,其可由帧处理和/或捕获指令系统400使用以确定在拍摄帧(例如,图像或图片)时存在多少抖动。例如,帧处理和/或捕获指令系统400可以相对于光学图像稳定器(OIS)而分析IMU样本(例如,陀螺测试仪或陀螺仪样本、加速度计样本等)。在某些示例中,为了确定是否使用三脚架,帧处理和/或捕获指令系统400可以利用视频分析三脚架检测机构而交叉参考(cross-reference)IMU测量。
在某些示例中,帧处理和/或捕获指令系统400可以确定与一个或多个预览帧(例如,在图5中所示的定时图500的LL模式定时期间或此后不久在传感器延迟时段捕获的ZSL帧)相关联的局部运动的量。为了确定局部运动的量,帧处理和/或捕获指令系统400可以分析时间滤波器指示(TFI),其在本文中可以被称为运动图。例如,TFI(或运动图)可以被包括为伴随每个帧(例如,伴随一个或多个预览帧中的每一个)的元数据,诸如用于第一帧的第一TFI元数据、用于第二帧的第二TFI元数据,等等。在某些情况下,TFI包括图像(被称为TFI图像或运动图图像)。在某些示例中,TFI图像可以与关联于TFI图像的帧(例如,TFI图像被包括作为元数据的帧)具有相同的分辨率(在水平方向和垂直方向具有相同数量的像素)。在某些示例中,与关联于TFI图像的帧相比,TFI图像可以具有较低的分辨率(在水平方向和/或垂直方向具有较少的像素)。例如,TFI图像的每个像素可以包括指示针对与TFI图像相关联的帧的每个对应像素的运动量的值。在某些情况下,TFI的每个像素可以包括指示与指示运动量的值相关联的置信度的置信值。在某些情况下,TFI可以表示预览期间全局运动补偿之后无法进行时间混合的图像区域,并且可以指示场景中的局部运动分量。
在某些示例中,作为TFI图像的附加或替代,可以使用半全局匹配(SGM)图像。SGM是执行全局补偿之后的残余运动向量图(指示局部2D和/或3D运动)。SGM可以被用作局部运动指示符,类似于上文关于TFI图像描述的那样。例如,可以在校正全局对齐(例如,使用OIS)之后获得SGM(例如,作为输入)。
使用来自TFI和/或SGM图像的信息,帧处理和/或捕获指令系统400可以预测帧捕获期间的局部运动。如本文更详细地描述的,全局运动(例如,基于传感器测量,诸如陀螺仪测量)和局部运动(例如,由TFI指示)的组合——被称为最终运动指示(FMI)——可以被确定。
AEC引擎464可以设置用于捕获长曝光帧的长AEC。例如,LL引擎458可以向AEC引擎464提供曝光和增益的新组合(例如,在三脚架上,单次曝光可以达到1秒)。LL引擎458还可以确定长帧的数量。在某些情况下,如本文所述,LL引擎458可以基于局部运动(例如,由TFI指示)、全局运动或FMI来确定曝光和长帧的数量。传感器430随后可以捕获PSL图像或帧(长曝光帧446)。在某些示例中,在捕获PSL帧时可以捕获附加的ZSL帧(短曝光帧)。附加的ZSL帧可以被存储在ZSL缓冲器432中。在某些情况下,第一AWB引擎450可以根据传感器430捕获的第一PSL帧计算AWB。第一AWB引擎450可以向第一MFxR引擎436和/或第二MFxR引擎452输出WB定标器451。在捕获第一PSL帧之后,帧处理和/或捕获指令系统400可以开始捕获过程的下一部分(例如,帧处理和/或捕获指令过程的第三步,诸如参考图8描述的MFNR)。
图8图示了在图5所示的定时图500的短MFNR期间帧处理和/或捕获指令系统400的使用。例如,在PSL捕获期间,第一MFxR引擎436可以对短曝光帧执行MFNR。在某些情况下,短MFNR可以作为帧处理和/或捕获指令过程的第三步而被执行。在某些示例中,第一MFxR引擎436可以使用来自帧处理和/或捕获指令过程的第二步的计算的WB(例如,来自第一PSL帧的AWB)。如上所述,帧处理和/或捕获指令系统400可以确定是否需要MFHDR模式来处理ZSL帧(例如,短曝光帧434)。如果帧处理和/或捕获指令系统400确定要使用MFHDR模式,则第一MFxR引擎436可以确定不对短曝光帧执行MFNR。
图9图示了在图5所示的定时图500的长MFNR和预览508部分期间帧处理和/或捕获指令系统400的使用。例如,第二MFxR引擎可以对长曝光帧执行MFNR,并且可以输出帧以供预览。在某些情况下,长MFNR和预览可以作为帧处理和/或捕获指令过程的第四步而被执行。为了使用MFNR处理长帧,第二MFxR引擎452可以使用来自帧处理和/或捕获指令过程的第二步的计算的WB(例如,来自第一PSL帧的AWB)。在某些示例中,如果帧处理和/或捕获指令系统400确定将使用非MFHDR模式(当不需要MFHDR时),则第二MFxR引擎452可以使用除局部色调映射(LTM)之外的全局色调映射(GTM)。在某些情况下,GTM根据像素的亮度值为每个像素应用增益。在某些情况下,LTM根据区域亮度应用不同的增益值。第二MFxR引擎452可以利用定位处理分段(Position Processing Segment,PPS)(例如,在处理管线中局部色调映射、锐化、颜色校正、放大等被执行的位置)继续处理每个聚合帧或图像。在某些情况下,聚合帧可以是多个融合帧被组合成单个图像或帧的结果(例如,基于MFNR和/或MFHDR过程的应用)。在某些示例中,除IPE_TF_FULL_OUT(MFNR NPS out)之外,第二MFxR引擎452可以针对IPE_DISP_OUT结果继续执行PPS。在某些情况下,长曝光帧446中的每一个可以具有稍强的LTM(例如,增亮效果)。如上所述,第二MFxR引擎452可以发送每个PPS结果以作为预览帧454显示。在某些情况下,在所有PSL帧(长曝光帧446)已经完成被帧处理和/或捕获指令系统400捕获之后,预览将返回到ZSL缓冲器432。
图10图示了在图5所示的定时图500的改善WB 510部分期间帧处理和/或捕获指令系统400的使用。改善WB 510可以包括对长曝光帧446的WB的改善以创建更好的AWB统计。在某些情况下,WB的改善可以作为帧处理和/或捕获指令过程的第五步而被执行。为了为长曝光帧446创建更好的AWB统计,LL引擎458可以对长MFNR结果(例如,来自MFxR引擎452的混合帧456)执行“逆ISP”以生成改进的(improved)AWB统计。例如,为了在某些情况下重新计算WB系数,帧必须是AWB兼容图像。在某些情况下,逆ISP函数可以包括对原始帧或图像执行的操作的逆转,其导致线性帧或图像(例如,线性RGB帧或图像)。所得的线性帧可以被用于重新生成关于改进的SNR帧的统计。逆ISP可以导致针对之后所有调整的更好的统计。使用用于长曝光帧的改善/改进的AWB统计,第二AWB引擎460可以计算改善的WB定标器(例如,作为WB定标器461的部分)。在某些示例中,LL引擎458可以计算改善的WB定标器。
图11图示了在图5所示的定时图500的MFHDR和后处理512部分期间帧处理和/或捕获指令系统400的使用。在某些情况下,MFHDR和后处理512可以作为帧处理和/或捕获指令过程的第六步而被执行。例如,MFHDR引擎440可以使用来自第二AWB引擎460的改善的WB定标器461(例如,在帧处理和/或捕获指令过程的第五步期间被确定)。在某些示例中,如果帧处理和/或捕获指令系统400确定要使用非MFHDR模式(不需要MFHDR),则帧处理和/或捕获指令系统400可以向后IPE输出仅PPS帧。在某些示例中,后IPE可以被用于平滑“色度污迹”。在某些示例中,后IPE包括机器学习系统(例如,一个或多个神经网络系统)。例如,基于机器学习的图像信号处理器可以被用作后IPE以进行整体的帧或图像改善。
如上所述,在某些实现方式中,帧处理和/或捕获指令系统(例如,LL引擎)可以确定场景运动(也被称为场景中运动或局部运动),诸如基于帧或图像(例如,预览或者短曝光帧或图像)正被捕获的场景中的一个或多个对象的移动。在某些情况下,如上所述,帧处理和/或捕获指令系统的LL引擎或其他组件可以使用收集的传感器测量(例如,来自惯性测量单元(IMU),诸如陀螺仪或陀螺测试仪、加速度计和/或其他IMU)和/或预览CVP运动分析统计来评估运动。在某些情况下,运动感知算法可以被用于增强本文所述的帧处理和/或捕获指令系统和过程的执行。运动感知算法可以优化噪声到运动模糊到拍摄到拍摄时间。在某些情况下,运动感知算法可以执行全局运动分析(例如,基于相机的移动)和/或局部运动分析(例如,基于场景中对象的移动)以确定运动的指示。局部运动分析可以基于时间滤波器指示(TFI)。在某些情况下,TFI可以是具有针对每个像素的像素值的图像,该像素值指示每个像素的运动量(例如,每个像素是否有运动和/或有多少运动)。在某些情况下,如上所述,TFI的每个像素可以包括指示与指示运动量的值相关联的置信度的置信值。在某些情况下,TFI也可以被称为运动图。在某些情况下,TFI可以作为产生运动向量图的本地相机流的部分而被提供,其可以由帧处理和/或捕获指令系统(例如,由LL引擎)使用。在某些情况下,TFI可以包括指示每个像素的运动量(例如,在水平方向和垂直方向上)的稀疏运动向量(例如,未失真的、未稳定的或稳定的)、具有每个像素的运动向量的密集运动图(例如,未失真的、未稳定的),和/或失真校正网格。在某些示例中,(给定TFI的)局部运动指示可以基于重影检测,诸如通过对在时间过滤过程期间检测到的重影量求平均。在某些示例中,(给定TFI的)局部运动指示可以基于残余密集运动图平均和/或显著运动向量的计数。
基于对全局运动的分析,帧处理和/或捕获指令系统可以补偿全局运动(例如,使用图像稳定技术来减少,诸如通过使用光学图像稳定器(OIS))。在某些情况下,帧处理和/或捕获指令系统可以分析由TFI指示的局部运动(作为全局运动的附加或替代),诸如以确定是否需要减少运动模糊(例如,如果局部运动高于运动阈值)。基于局部和/或全局运动分析,运动感知算法可以优化曝光参数(例如,曝光持续时间和/或增益),一个或多个3A设置,诸如自动白平衡(AWB)、自动曝光控制(AEC)和自动聚焦,和/或其他参数。运动感知算法可以被用于低光条件、超低光条件、正常光条件和/或其他光线条件。在某些情况下,如上所述,可选的机器学习系统可以被用于纹理和噪声改进。
图12是绘制运动相对于曝光时间和帧计数的图形1200的图示。图形1200的x轴绘制了运动量。线1202表示曝光,而线1204表示帧计数。图形1200中的值(或其他值)可以被用于基于由TFI指示的运动(局部运动)、全局运动、或使用全局运动和局部运动(基于TFI)确定的组合运动来确定长曝光时间和帧计数(例如,用于向MFNR、MMF等输入)。如果运动被确定为低(例如,检测到少量运动,诸如运动小于运动阈值),则帧计数将较低且曝光(例如,曝光时间、孔径等)将被增加。随着检测到更多的运动(例如,运动量大于运动阈值),对应于图形1200中从左到右的移动,可以被用于实现合适的运动模糊结果的曝光(例如,曝光时间、孔径等)被减小直到达到最小曝光限制。在某些情况下,基于所确定的运动,作为曝光(例如,曝光时间、孔径等)的附加或替代,可以调整增益。在某些情况下,最小曝光限制可以等于用于预览图像/帧的长曝光时间(例如,因为帧处理和/或捕获指令系统可能不会对小于用于短曝光/预览/显示帧的曝光的帧或图像进行曝光)。此外,随着更多的运动被确定,帧计数(对应于捕获的帧的数量增加)增加,以便补偿由于曝光减少而导致的帧亮度(这导致增益增加)。
在某些情况下,图形1200的x轴上描绘的运动可以对应于局部运动和全局运动两者(例如,局部运动和全局运动的组合)。例如,帧处理和/或捕获指令系统可以单独地计算全局运动和局部运动,并且可以将权重应用于局部运动和全局运动(例如,使用用于局部运动值的第一权重和用于全局运动值的第二权重)以生成最终运动指示。帧处理和/或捕获指令系统可以使用最终运动指示来确定减少或增加多少曝光(例如,曝光时间、孔径等)和/或增益,以及减少或增加多少帧计数(例如,用于向MFNR、MMF等输出)。
在某些示例中,帧处理和/或捕获指令系统可以确定在[0,1]范围内的全局运动(被称为全局运动指示或GMI)。在此类示例中,值0可以指示像素没有运动,并且值1可以指示像素的最大运动。帧处理和/或捕获指令系统可以确定[0,1]范围内的局部运动(被称为局部运动指示或LMI),其中值0指示没有运动,并且值1指示最大运动。在某些情况下,LMI可以通过以下来计算:在一定程度上裁剪TFI图像(例如,以减少来自全局运动的影响)、对裁剪的图求平均、对值进行归一化、以及应用指数(exponent)来反映灵敏度。[0,1]范围内的LMI权重(被称为LMI_weight)表示帧处理和/或捕获指令系统对LMI的灵敏程度。一个示例LMI权重值为值0.4。可以基于局部运动(在TFI中)和全局运动来确定最终运动指示(FMI)。在一个说明性示例中,FMI可以被确定为lin_blend(GMI,GMI*LMI,LMI_weight)^2,其中lin_blend是线性混合操作。在另一说明性示例中,FMI可以被确定为lin_blend(GMI,GMI*LMI,LMI_weight),类似于没有非线性响应(^2)的先前示例。
图13是图示出图像1302(或帧)和TFI图像1304的图。图13所示的运动是局部运动(也被称为场景中运动)。在图像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。不知道的是当捕获帧时用户将如何握持设备以及用户的定位。然而,可以假设,如果用户在刚好在选择快门或捕获选项(例如,按下快门按钮或其他选项)之前在第一点以某种方式握持设备,则用户在选择捕获选项时可能会以类似的方式握持设备。基于此类假设,LL引擎1458可以生成新命令并且可以向AEC引擎1464输出该新命令。新命令可以包括帧的数量、长曝光值(对应于用于捕获长曝光帧的曝光持续时间)和长DRC增益。帧的数量、长曝光值和长DRC增益可以基于图12所示的值或基于运动的其他类似值来确定。AEC引擎1464可以执行AEC并且可以向图像传感器(例如,传感器430)输出AEC信息以用于捕获长曝光帧。
长曝光帧可以被存储在长帧缓冲器1410(在图14A中被称为“缓冲器长”)中。长帧缓冲器1410可以包括单个缓冲器或多个长帧缓冲器。长帧缓冲器1410可以被认为是离线缓冲器,因为在预览“实时”管线期间没有捕获长曝光帧(PSL帧)。如上面关于图7所指出的,在接收到捕获命令之后,被存储在长帧缓冲器1410中的长曝光图像或帧被捕获。例如,假设LL引擎1458指令AEC引擎1464应用特定曝光持续时间、特定增益和特定数量的帧(例如,10帧),一旦接收到捕获命令(例如,基于用户选择捕获选项),图像传感器将捕获具有特定曝光和增益的特定数量的长曝光帧。
类似于上文描述的并且如图14A所示,长帧缓冲器1410中的第一帧1411(或图像)可以被输出到自动白平衡(AWB)引擎1408以用于AWB计算。在传统系统中,用于AWB计算的帧是来自预览的帧(ZSL帧)。然而,预览帧不如长帧缓冲器1410中的长曝光帧。例如,与长曝光帧相比,预览帧是使用更短的曝光时间捕获的,并且长曝光帧通过降低增益来补偿由增加的曝光引入的亮度。结果,通过将长曝光帧用于AWB计算,与AWB引擎1408将预览帧用于AWB时相比,SNR、用于AWB的统计以及输出帧或图像中的颜色更好。在某些情况下,当在低光环境中将长曝光帧用于AWB时,改进可以被增加(例如,基于更高的SNR)。使用第一长曝光帧1411,AWB引擎1408执行AWB计算并生成新的AWB控制参数1412。AWB控制参数1412随后可以被用于应用自动白平衡。如图14A所示,AWB控制参数1412被输出到第一多帧降噪(MFNR)引擎1402。
来自长帧缓冲器1410的长曝光帧和AWB控制参数1412被输出到第一MFNR引擎1402。第一MFNR引擎1402可以被用于对长曝光帧进行时间混合或过滤(以过滤时间域中的来自长曝光帧的时间噪声),但可能不执行长曝光帧的空间混合以过滤空间域中的来自长曝光帧中的空间噪声。第一MFNR引擎1402可以通过在空间上对齐一系列帧(或图像)并对帧中每个像素的值求平均来执行时间混合。第一MFNR引擎1402使用的算法评估帧之间的相对运动(因为帧是在不同时间被拍摄的)并且对齐帧使得像素可以被组合以便改进SNR。第二MFNR引擎1404对来自用于存储中曝光帧1414的一个或多个ZSL缓冲器1413的中曝光帧1414执行空间混合(或滤波)和时间混合(或滤波)。第三MFNR引擎1406对来自用于存储短曝光帧1416的一个或多个ZSL缓冲器1415的短曝光帧1416进行空间和时间过滤。第二MFNR引擎1404和第三MFNR引擎1406通过处理每个帧的像素来执行空间混合,例如通过确定每个像素的测量(例如,统计测量、像素分量值、平均或其他测量),在某些情况下相对于相邻像素来改进帧。在某些示例中,空间混合可以被用于执行边缘保留降噪(edge preserving noisereduction),并且可以使用各种算法来解决,诸如图像或帧域中的卷积核、频率(或类频率)域中的处理、小波,等等。在某些情况下,可以使用相同处理技术由相同的硬件实现第一MFNR引擎1402、第二MFNR引擎1404和第三MFNR引擎1406,但是在实现第一MFNR引擎、第二MFNR引擎和第三MFNR引擎时硬件可以具有不同的调谐设置。在某些示例中,用于存储中曝光帧1414和短曝光帧1416的缓冲器可以是相同的缓冲器或者可以是不同的缓冲器。在某些情况下,可以使用除缓冲器之外的存储机构来存储短、中和长曝光帧(例如,高速缓存存储器、RAM等)。
第一MFNR引擎1402还可以获得或接收用于被存储在长帧缓冲器1410中的长曝光帧的TFI图像(也被称为TFI图)。在某些情况下,如上所述,TFI图像可以指示哪些像素有运动以及哪些像素没有运动(或像素的运动程度)。TFI图像还可以指示像素是否应用了时间混合。例如,如果像素被TFI图像指示为具有运动,则可能未应用时间混合,因为如果应用了时间混合,则图像中可能出现重影效果。因此,指示捕获的帧中的像素具有运动的TFI图像中的像素也可以指示捕获的帧中的像素没有被应用时间混合。基于运动指示,第一MFNR引擎1402可以聚合TFI图像并且可以输出聚合TFI图像1418(在图14A中被示出为DC4 TFI聚合的)。例如,目标是反映针对每个像素时间混合了多少帧。第一阶段可以假设每个帧具有相同的噪声方差并且它们之间没有协方差。可以根据TFI图像应用方差处理和/或算术。对于每个图像或帧,结果可以被存储在聚合TFI图像1418(或TFI图)中。在所有帧被处理之后,处理的结果是针对每个像素的方差。例如,可以输出方差图(例如,由第一MFNR引擎1402)。方差图随后可以被转换为指示针对每个像素混合了多少帧的图。用于聚合TFI图像1418的图14A中的术语“DC4”指示在每个轴上按因子4缩小的图像。例如,对于完整图像大小为8000×4000的图像,则图像的DC4大小为2000×1000。如上所述,第一MFNR引擎1402还可以输出单个混合长曝光帧1420(在图14A中被示出为混合长10b)。
在某些情况下,ML ISP 1422可以使用最终ALGM图而不是针对每个帧的聚合TFI图像1418作为输入。例如,如本文所述,在将其转换为“帧混合计数”图之前,ALGM与TFI聚合图相同。ALGM可以由硬件在全分辨率帧或图像,而不是缩小的(例如,DC4)帧或图像上生成。
混合长曝光帧1420和聚合TFI图像1418被输出到基于机器学习的图像信号处理器(ISP)1422(在图14A中被示为ML ISP节点)。ML ISP 1422的示例在图15中被示出。在某些示例中,ML ISP包括一个或多个神经网络架构,作为一个说明性示例,诸如卷积神经网络(CNN)。图16是图示出ML ISP 1422的神经网络的示例的图。在一个说明性示例中,神经网络包括类UNet网络,具有3×3卷积层、参数整流线性单元(Parametric Rectified LinearUnit,PReLU)激活、用于下采样的平均池化(average pooling,AvgPool)、用于上采样的双线性上采样。在某些示例中,可以基于选择的传感器校准数据来执行神经网络的训练。在某些情况下也可以使用其他训练数据。
ML ISP 1422对长曝光帧执行空间滤波。例如,ML ISP 1422可以执行空间域边缘保留噪声滤波。ML ISP 1422可以使用输入的混合长曝光帧1420和聚合TFI图像1418来补偿降噪量,这可以均衡帧中的噪声。在一个说明性示例中,如上所述,对于给定的帧,如果帧的部分具有高于运动阈值的局部运动(如聚合TFI图像所指示),则该帧的部分将不会被应用时间混合(否则它将具有重影)。结果,由于未应用时间混合,具有局部运动的帧的部分将比帧的其他部分具有更多噪声。基于具有运动的帧的部分中的增加的噪声,ML ISP 1422可以对帧的那部分应用更多空间滤波。对于没有任何运动(或运动低于运动阈值)的帧的另一部分,第一MFNR引擎1402可以应用时间混合,从而导致帧的该部分的噪声更少。ML ISP 1422可以对几乎没有运动的帧的部分执行较少的空间滤波。ML ISP 1422还可以处理帧以平滑应用了不同级别的空间滤波的帧的不同部分之间的过渡。
ML ISP 1422可以提供比具有多个滤波器或处理块(例如,用于去噪、边缘增强、颜色平衡、对比度、强度调整、色调调整、锐化等)的传统ISP更好的结果。此外,调谐传统ISP可能具有挑战性而且耗时。基于有监督或无监督学习技术的使用,ML ISP 1422的训练可以耗时较少。可以被用于ML ISP 1422的深度神经网络的说明性示例在图24中被示出。可以被用于ML ISP 1422的卷积神经网络(CNN)的说明性示例在图25中被示出。下面关于图24和图25描述了执行机器学习训练的示例。
ML ISP 1422向多帧高动态范围(MFHDR)引擎1440输出经滤波的长曝光帧1424。如前所述,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缓冲器)分别由第二MFNR引擎1404和第三MFNR引擎1406处理,它们可以是传统ISP处理块(它们不包括ML ISP)。在使用MFHDR模式的情况下,中和短曝光帧分别由第二MFNR引擎1404和第三MFNR引擎1406处理,并且处理后的中和短曝光帧在MFHDR引擎1440内部被融合或组合。
图14B是图示出帧处理和/或捕获指令系统1405的另一示例的图。帧处理和/或捕获指令系统1405类似于图14A的帧处理和/或捕获指令系统1400,并且包括指示帧处理和/或捕获指令系统1400与帧处理和/或捕获指令系统1405之间的公共组件的相同数字。帧处理和/或捕获指令系统1400与帧处理和/或捕获指令系统1405之间的一个区别在于,混合长曝光图像1447在被ML ISP 1422处理之前被第一缩小引擎1449缩小(到更小的大小)。ALGM图1448在被ML ISP 1422处理之前也被第二缩小引擎1451缩小(到更小的大小)。虽然图14B示出了ALGM图1448,但是可以替代地使用聚合TFI图像(例如,图14A的聚合TFI图像1418)。ML ISP 1422可以处理(例如,使用空间滤波)缩小的混合长曝光图像1447和ALGM图1448,并且可以向放大引擎1452输出经滤波的长曝光帧,放大引擎1452可以输出放大的经滤波的长曝光帧1424。另一区别在于,图14B的帧处理和/或捕获指令系统1405使用利用单个短曝光1441的短曝光帧1442(例如,来自PSL),而不是使用中曝光和短曝光帧。
如上所述,图15图示了来自图14A和/或图14B的ML ISP的示例。基于上述技术,独特的输入被提供给ML ISP。例如,ML ISP可以基于来自TFI图像的运动指示以及基于先前阶段中发生的时间处理的量(如TFI图像所指示的)来执行处理(例如,空间滤波或混合)。如图15所示,对ML ISP的输入包括混合长曝光帧、聚合TFI图像、用户设置(被示为调谐配置)、帧计数、增益和白平衡。下文关于图24和图25描述关于示例神经网络(例如,其可以被用于MLISP)的进一步细节。
图17A和图17B是图示出具有用于改善帧的白平衡处理的附加处理组件1710的帧处理和/或捕获指令系统1700的图。在某些情况下,附加处理组件1710可以是AWB引擎1708的部分和/或由AWB引擎1708实现。如上所述,AWB引擎1708可以生成用于捕获的帧的AWB控制参数1712。附加处理组件1710可以被用于进一步改善由AWB引擎1708确定的AWB。例如,帧处理和/或捕获指令系统1700可以捕获20帧。时间域中的20帧关于噪声方差的改进可以具有线性影响。例如,由于某些噪声概况(noise profile),20帧可能会降低噪声方差10-20倍。AWB引擎1708可以获得二维分布中的值并且可以确定这些值之间的线性相关。减少噪声方差有效地减少了分散,提供更可靠的统计,从而做出更好的AWB决策。帧处理和/或捕获指令系统1700可以将由第一MFNR引擎1702执行的时间混合产生的帧(由于降噪而导致改进的SNR)输出回AWB引擎1708。AWB引擎1708可以重新计算AWB控制参数1712以获得更准确的AWB参数。
附加处理组件710包括逆ISP以创建可以被发送到AWB硬件引擎(在图17A中被示为“Calc AWB控制”)的特定格式的帧或图像(原始拜耳帧或图像)。例如,AWB硬件引擎可以被配置为处理具有特定格式的帧或图像。上文更详细地描述了逆ISP。使用具有特定格式的帧(例如,拜耳帧),AWB硬件引擎生成改进的AWB控制参数(被示为WBC)。使用颜色校正矩阵(CCM)引擎(在图17A中被示为“Calc CCM”)处理改进的AWB控制参数。例如,CCM引擎可以确定初始AWB控制参数与改进的AWB控制参数之间的差异或增量。CCM引擎可以使用差异来生成颜色校正矩阵(CCM)。MFHDR引擎1740可以使用CCM来生成最终输出帧或图像。
如图17A和图17B所示,帧处理和/或捕获指令系统1700的ML ISP 1722可以与图14A和/或图14B的ML ISP 1422类似地使用聚合TFI图像1718。在某些情况下,ML ISP 1722可以使用最终ALGM图而不是针对每个帧的TFI图像作为输入。例如,如上文所述,在将其转换为“帧混合计数”图之前,ALGM与TFI聚合图相同。ALGM可以由硬件在全分辨率帧或图像,而不是缩小的(例如,DC4)帧或图像上生成。第一MFNR引擎1702可以允许具有更短曝光时间的更多数量的帧,导致减少的运动模糊以及更好的纹理和噪声。第一MFNR引擎1702还可以使用修改的调谐,包括禁用噪声均衡。在某些示例中,第一MFNR引擎1702可以融合大量帧,诸如256帧,以改进最终混合帧1720中的SNR。在某些情况下,此类MFNR引擎可以被称为大规模多帧(MMF)引擎。在某些情况下,第一MFNR引擎1702之后可以是执行噪声均衡的阶段。参考图17B,如上所述,MFNR混合帧1720经历伪逆ISP,产生线性原始拜耳帧(具有RGB颜色分量)。原始拜耳帧被输出用于AWB统计再生和AWB算法,从而产生改进的WB系数(WBC)。类似于上文关于图17A所描述的,余数(remainder)WB被计算,被转换为CCM,并被发送到MFHDR引擎(包括后IPE)。
图18是图示出用于渐进地显示帧或图像(提供交互式预览)的过程的示例的图。例如,随着新帧被缓冲和/或处理,渐进地显示增强帧将是有益的,这可以允许用户看到每个帧如何对质量改进做出贡献。帧处理和/或捕获指令系统(例如,系统400、1400、1405、1700或其他系统)可以使用来自ZSL缓冲器的预览帧(例如,ZSL帧1802)并向视频运动补偿时间滤波器(MCTF)提供不同的输入。例如,当图像捕获选项被选择以及捕获或快门命令被接收时,从给定的PSL帧(例如,第二PSL帧)开始,帧处理和/或捕获指令系统可以改变时间滤波(TF)混合模式,使得先前的和当前的被切换(例如,类似于MFNR)。例如,如图18所示,与当前帧1808和先前帧1810相比,当前帧1804和先前帧1806被切换。例如,当前帧1808是从IFE输出的并且先前帧1810是从IPE输出的。一旦接收到捕获或快门命令,则从IPE输出当前帧1804并且从IFE输出先前帧1806。先前帧与当前帧之间的切换可以被执行,直到长帧捕获完成。“先前”和“当前”指的是时间滤波的输入。先前在图18中被标示为“PREV”,并且当前在图18中被标示为“CUR”。例如,TF有3个帧或图像输入:当前、current_anr和先前。当前是先前图像应被混合于其顶部并与之对齐的当前帧或图像。在所有PSL帧被收集之后,帧处理和/或捕获指令系统可以切换回MCTF混合。结果,预览显示示出随着新帧被获取而动态改进的目标帧或图像。随着图像捕获过程的进行,显示变得更加可见并且细节被恢复。
切换到PSL帧(例如,一旦接收到捕获或快门命令)的原因之一是由于PSL帧的改进的光敏度。如上所述,光敏度(或曝光、图像曝光或图像灵敏度)可以被定义为增益和曝光时间或持续时间的函数(例如,光敏度=增益*曝光时间)。例如,可以使用MCTF处理每个传入的帧,MCTF可以改进信噪比(SNR),从而在收集帧的同时改进预览帧的交互效果。预览结果还提供了“所见即所得”的准确关键性能指标(KPI)。使用此类技术,预览显示示出随着新帧被获取而动态改进的目标帧,而不会中断预览管线(例如,无需切换到不同的模式)。
图19和图20是图示出基于向原始帧或图像分量添加U和V通道的原始时间混合的示例的图。如上所述,时间滤波算法(例如,由IPE(诸如后IPE)或帧处理和/或捕获指令系统的其他组件应用)可以被用于使用顺序帧并在时间域中混合帧来改进输出帧或图像的质量,从而改进帧的SNR。现有的时间滤波算法使用YUV域中的帧,其中包括具有亮度(Y)分量和色度分量(例如,色度蓝色(Cb)和色度红色(Cr)分量)的像素。现有算法也典型地被实现于HW中。由于硬件允许若干通路(pass)并具有更高的处理能力,因此与硬件相比,在软件中执行时间滤波可能会导致更高的延迟,并且质量也可能较差。本文描述了使用现有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)、仓(Bin)校正(BinCorr)等)的硬件块。在某些情况下,操作(例如,PDPC、LSC、WBC等)中的每一个可以对应于BPS 1904硬件中的滤波器。BPS1904的输出是拜耳14图像或帧(用14比特表示)。数字信号处理器(DSP)1906将帧从14比特帧转换为10比特帧(拜耳10帧)。DSP 1906可以使用伽玛查找表(LUT)来执行转换。在某些情况下,可以使用DSP以外的处理器将帧从14比特转换为10比特。
帧处理和/或捕获指令系统可以将帧的每个颜色分量划分或分离成单独的颜色分量。每个颜色分量是该颜色分量的所有像素的帧。例如,帧的红色(R)分量1908包括来自原始帧的所有红色像素,以及是帧的宽度的一半和高度的一半的分辨率或尺寸(由于红色分量组成原始帧的一半)。绿色(G)和蓝色(B)分量具有为原始帧的宽度的四分之一和高度的四分之一的分辨率。单色(Plain)10是10比特单通道帧或图像(例如,灰度帧)。由于系统无法基于颜色通道的分离来区分不同的通道,因此可以使用单色10帧。
帧处理和/或捕获指令系统将U通道和V通道附加到R、G和B颜色分量以创建单独的标准YUV帧或图像。例如,帧处理和/或捕获指令系统可以通过添加U通道1912和V通道1914基于R颜色通道生成YUV帧1910。添加到不同颜色分量的U和V值可以包括相同的值(例如,U值为0或512,V值为0或512,其中512是UV平面的中心)。帧处理和/或捕获指令系统添加U和V通道,使得图像处于针对MFNR算法的合适格式。在某些情况下,一旦添加了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帧,并且因此处理将更高效。另一个益处是,如果执行了原始时间混合,则混合的原始帧可以被直接发送用于AWB引擎1708和/或帧处理和/或捕获指令系统1700的附加处理组件1710的AWB增强,在这种情况下不需要逆ISP。
如上所述,本文使用的术语短、中(或“中等”)、安全和长是指第一设置与第二设置之间的相对特性。这些术语不一定对应于用于特定设置的定义范围。例如,长曝光(例如,长曝光持续时间或长曝光图像或帧)仅指比第二次曝光(例如,短曝光或中等曝光)长的曝光时间。在另一示例中,短曝光(例如,短曝光持续时间或短曝光图像或帧)是指比第二次曝光(例如,长曝光或中等曝光)短的曝光时间。在又一示例中,中等曝光或中曝光(例如,中曝光持续时间或中曝光图像或帧)是指比第一次曝光(例如,短曝光)大且比第二次曝光(例如,长曝光或中等曝光)小的曝光时间。
图22是图示出使用本文描述的技术确定针对某数量的帧的曝光持续时间的过程2200的示例的流程图。在框2202处,过程2200包括获得用于一个或多个帧的运动图。这一个或多个帧可以是在接收到用于捕获某数量的帧的捕获命令之前获得的帧(被称为预览帧),诸如图14所示。在某些示例中,如上所述,预览帧可以来自ZSL缓冲器。在某些情况下,如上所述,预览帧可以是短曝光帧。
在某些示例中,可以针对一个或多个帧中的每个帧获得运动图(例如,用于第一帧的第一运动图、用于第二帧的第二运动图等)。例如,在某些方面中,运动图可以被包括为伴随每个帧的元数据。如上所述,运动图也可以被称为时间滤波器指示(TFI)。在某些情况下,运动图包括图像(例如,如上所述的TFI图像)。在某些示例中,TFI图像可以具有与一个或多个帧相同的分辨率(因此在水平和垂直方向上具有相同数量的像素)。在某些示例中,TFI图像可以具有比一个或多个帧更低的分辨率(在水平方向和/或垂直方向具有更少的像素)。例如,运动图图像的每个像素可以包括指示针对来自与运动图相关联的一个或多个帧的帧(例如,运动图被包括为元数据的帧)的每个对应像素的运动量的值。在一个说明性示例中,用于运动图(或TFI)图像的每个像素的值可以在[0,1]的范围内,其中值0指示像素没有运动,并且值1指示像素的最大运动。任何其他合适的范围或值指定可以被用于运动图(或TFI)图像。
在框2204处,过程2200包括基于运动图确定与场景的一个或多个帧相关联的运动。运动对应于场景中的一个或多个对象相对于用于捕获一个或多个帧的相机的移动。如本文所述,该运动可以被称为局部运动。在某些情况下,可以通过参考针对帧获得的运动图(例如,作为元数据)(如上所述,运动图图像)内的像素的值而针对一个或多个帧的帧的每个像素确定运动。
在某些情况下,过程2200可以包括确定与相机相关联的全局运动。例如,过程2200可以基于一个或多个传感器测量(诸如来自用于执行过程2200的设备的陀螺仪或其他惯性测量单元(IMU)(例如,加速度计等)的测量)来确定全局运动。在某些情况下,可以基于在与每个帧相关联的时间期间接收到的传感器测量为一个或多个帧中的每个帧确定全局运动。例如,来自陀螺仪的测量结果可以包括陀螺仪样本的向量,其带有在特定帧期间收集的时间戳。在此类示例中,过程2200可以基于向量确定针对特定帧的全局运动。
在某些示例中,过程2200可以包括基于确定的运动和全局运动来确定最终运动指示。例如,过程2200可以基于使用用于确定的运动的第一权重和用于全局运动的第二权重的、确定的运动和全局运动的加权组合来确定最终运动指示。在一个说明性示例中,最终运动指示可以被确定为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包括获得原始帧。原始帧包括用于原始帧的每个像素的单颜色分量。在某些方面中,原始帧包括滤色器阵列(CFA)样式,诸如图19和图20中所示的样式。
在框2304处,过程2300包括将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量。在某些情况下,第一颜色分量包括红色颜色分量,第二颜色分量包括绿色颜色分量,并且第三颜色分量包括蓝色颜色分量。在某些方面中,第一颜色分量包括原始帧的所有红色像素,第二颜色分量包括原始帧的所有绿色像素,并且第三颜色分量包括原始帧的所有蓝色像素。例如,如图19所示,原始图像(来自多个原始图像1902)被划分成红色(R)分量1908、绿色(G)分量和蓝色(B)分量。原始图像的R分量1908包括来自原始图像的所有红色像素,在这种情况下,R分量1908具有是原始图像的宽度的一半和高度的一半的分辨率。如图19所示的G分量(包括Gr和Gb)和B分量各自具有是原始图像的宽度的四分之一和高度的四分之一的分辨率。在图20所示的示例中,G分量(其组合了Gr和Gb分量)具有是原始图像宽度的一半和高度的一半的分辨率。
在框2306处,过程2300包括至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧。例如,过程2300包括:至少部分地通过将至少第一色度值添加到第一颜色分量来生成第一帧,至少部分地通过将至少第二色度值添加到第二颜色分量来生成第二帧,以及至少部分地通过将至少第三色度值添加到第三颜色分量来生成第三帧。在某些示例中,过程2300可以包括至少部分地通过将第一色度值和第二色度值添加到第一颜色分量来生成第一帧,至少部分地通过将第一色度值和第二色度值添加到第二颜色分量来生成第二帧,以及至少部分地通过将第一色度值和第二色度值添加到第三颜色分量来生成第三帧。在一个说明性示例中,参考图19,通过将用于U色度通道的值和用于V色度通道的值添加到R分量1908而将U色度通道1912和V色度通道1914添加到R分量1908,从而产生将由MFNR引擎处理以进行时间滤波的输出帧。在某些方面中,第一色度值和第二色度值是相同值。
在框2308处,过程2300包括对多个帧执行时间混合。例如,图19和/或图20中所示的MFNR引擎可以执行时间混合。在某些方面中,为了对多个帧执行时间混合,过程2300可以包括:将多个帧中的第一帧与具有第一颜色分量的一个或多个附加帧进行时间混合,将多个帧中的第二帧与具有第二颜色分量的一个或多个附加帧进行时间混合,以及将多个帧中的第三帧与具有第三颜色分量的一个或多个附加帧进行时间混合。例如,如图19所示,多个原始图像1902被处理。可以针对每个原始图像(来自多个原始图像1902)的每个颜色分量生成YUV图像,从而产生针对每个颜色分量的多个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和其他过程可以在配置有可执行指令的一个或多个计算机系统的控制下被执行,并且可以被实现为在一个或多个处理器上、通过硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式被存储在计算机可读或机器可读存储介质上。该计算机可读或机器可读存储介质可以是非暂态的。
如上所述,在某些情况下可以使用基于机器学习的图像信号处理器(例如,图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”是大于或等于一的整数。可以使隐藏层的数量包括给定应用所需的尽可能多的层。神经网络2400还包括输出层2424,其提供由隐藏层2422a、2422b到2422n执行的处理产生的输出。在一个说明性示例中,输出层2424可以提供用于输入视频帧中的对象的光流和/或权重图。在一个说明性示例中,输出层2424可以提供输入视频帧的编码版本。
神经网络2400是互连节点的多层神经网络。每个节点可以表示一条信息。与节点相关联的信息在不同层之间被共享,并且每个层在信息被处理时保留信息。在某些情况下,神经网络2400可以包括前馈网络,在这种情况下,不存在网络的输出被反馈到其自身的反馈连接。在某些情况下,神经网络2400可以包括递归神经网络,其可以具有允许在读入输入的同时跨节点携带信息的循环。
通过各层之间的节点到节点互连,节点之间可以交换信息。输入层2420的节点可以激活第一隐藏层2422a中的节点集合。例如,如图所示,输入层2420的输入节点中的每一个连接到第一隐藏层2422a的节点中的每一个。第一隐藏层2422a的节点可以通过将激活函数应用于输入节点信息来变换每个输入节点的信息。从变换导出的信息随后可以被传递到并且可以激活下一隐藏层2422b的节点,这些节点可以执行它们自己指定的功能。示例函数包括卷积、上采样、数据变换和/或任何其他合适的函数。隐藏层2422b的输出随后可以激活下一隐藏层的节点,依此类推。最后隐藏层2422n的输出可以激活输出层2424的一个或多个节点,在这些节点处输出被提供。在某些情况下,虽然神经网络2400中的节点(例如,节点2426)被示为具有多条输出线,但节点具有单个输出,并且被示为从节点输出的所有线表示相同的输出值。
在某些情况下,每个节点或节点之间的互连可以具有权重,该权重是从神经网络2400的训练导出的参数集合。一旦神经网络2400被训练,它就可以被称为经训练神经网络,其可以被用于生成2D光流、生成MS光流、生成权重图、基于2D光流对帧进行2D扭曲(wrap)、基于MS光流对帧进行MS扭曲、对数据进行编码、对数据进行解码、生成预测帧、或它们的组合。例如,节点之间的互连可以表示关于互连节点学习的一条信息。互连可以具有可以被调谐(例如,基于训练数据集)的可调谐数字权重,允许神经网络2400自适应输入并且能够随着越来越多的数据被处理而学习。
神经网络2400被预训练以使用不同的隐藏层2422a、2422b到2422n处理来自输入层2420中的数据的特征以便通过输出层2424提供输出。在神经网络2400被用于标识图像中的对象的示例中,可以使用包括图像和标签两者的训练数据来训练神经网络2400。例如,训练图像可以被输入到网络中,其中每个训练图像都有一个标签,该标签指示每个图像中的一个或多个对象的类别(基本上,向网络指示对象是什么以及它们具有什么特征)。在一个说明性示例中,训练图像可以包括数字2的图像,在这种情况下,用于图像的标签可以是[00 1 0 0 0 0 0 0 0]。
在某些情况下,神经网络2400可以使用称为反向传播的训练过程来调整节点的权重。反向传播可以包括前向传递、损失函数、反向传递和权重更新。针对一次训练迭代执行前向传递、损失函数、反向传递和参数更新。针对训练图像的每个集合,该过程可以重复一定次数的迭代,直到神经网络2400被训练得足够好,使得层的权重被准确地调谐。
对于标识图像中的对象的示例,前向传递可以包括通过神经网络2400传递训练图像。在训练神经网络2400之前,权重最初被随机化。例如,图像可以包括表示图像的像素的数字阵列。阵列中的每个数字可以包括描述阵列中该位置处的像素强度的、从0到255的值。在一个示例中,该阵列可以包括具有28行和28列像素以及3个颜色分量(诸如红色、绿色和蓝色,或者亮度和两个色度分量等)的28×28×3的数字阵列。
对于神经网络2400的第一次训练迭代,由于在初始化时随机选择权重,输出将可能包括不偏爱任何特定类别的值。例如,如果输出是具有对象包括不同类别的概率的向量,则用于每个不同类别的概率值可能相等或至少非常类似(例如,对于十个可能的类别,每个类别可能具有概率值0.1)。利用初始权重,神经网络2400无法确定低级特征,并且因此可能无法做出准确确定(例如,用于帧的特定区域的光流或权重映射的确定)。损失函数可以被用于分析输出中的误差。可以使用任何合适的损失函数定义。损失函数的一个示例包括均方误差(MSE)。MSE被定义为其计算二分之一乘以实际答案减去预测(输出)答案的平方的总和。可以将损失设置为等于E总体的值。
对于第一训练图像,损失(或误差)会较高,因为实际值将与预测输出大不相同。训练的目标是最小化损失量,使得预测输出与训练标签相同。神经网络2400可以通过确定哪些输入(权重)对网络的损失贡献最大来执行反向传递,并且可以调整权重使得损失减少并最终被最小化。
损失相对于权重的导数(被标示为dL/dW,其中W是特定层的权重)可以被计算以确定对网络损失贡献最大的权重。导数被计算之后,可以通过更新滤波器的所有权重来执行权重更新。例如,可以更新权重使得它们在梯度的相反方向上改变。权重更新可以被标示为其中w标示权重,wi标示初始权重,并且η标示学习率。学习率可以被设置为任何合适的值,其中高学习率包括较大的权重更新,并且较低的值指示较小的权重更新。
神经网络2400可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,在输入层与输出层之间具有多个隐藏层。CNN的隐藏层包括一系列卷积、非线性、池化(用于下采样)和全连接的层。神经网络2400可以包括除CNN之外的任何其他深度网络,诸如自动编码器、深度信念网络(DBN)、递归神经网络(RNN)等。
图25是根据某些示例的图示出卷积神经网络(CNN)2500的示例的框图。CNN 2500的输入层2520包括表示图像的数据,诸如由一个或多个相机210中的一个捕获的图像。例如,数据可以包括表示图像的像素的数字阵列,其中阵列中的每个数字包括描述阵列中该位置处的像素强度的、从0到255的值。使用来自上文的先前示例,该阵列可以包括具有28行和28列像素以及3个颜色分量(诸如红色、绿色和蓝色,或者亮度和两个色度分量等)的28×28×3的数字阵列。图像可以通过卷积隐藏层2522a、可选的非线性激活层、池化隐藏层2522b和全连接隐藏层2522c,以在输出层2524处得到输出。虽然每个隐藏层中仅一个在图25中被示出,但普通技术人员将理解,CNN 2500中可以包括多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层。如前所述,输出可以生成2D光流、生成MS光流、生成权重图、基于2D光流对帧进行2D扭曲、基于MS光流对帧进行MS扭曲、对数据进行编码、对数据进行解码、生成预测帧,或它们的组合。
CNN 2500的第一层是卷积隐藏层2522a。卷积隐藏层2522a分析输入层2520的图像数据。卷积隐藏层2522a的每个节点连接到被称为感受野(receptive field)的输入图像的节点(像素)区域。卷积隐藏层2522a可以被认为是一个或多个滤波器(每个滤波器对应于不同的激活或特征图),其中滤波器的每次卷积迭代是卷积隐藏层2522a的节点或神经元。例如,滤波器在每次卷积迭代时覆盖的输入图像的区域将是用于滤波器的感受野。在一个说明性示例中,如果输入图像包括28×28的阵列,并且每个滤波器(和对应的感受野)是5×5的阵列,则卷积隐藏层2522a中将有24×24个节点。节点与用于该节点的感受野之间的每个连接都会学习权重,在某些情况下,还会学习整体偏差,使得每个节点学习分析输入图像中的它的特定局部感受野。隐藏层2522a的每个节点将具有相同的权重和偏差(被称为共享权重和共享偏差)。例如,滤波器具有权重(数字)阵列和与输入相同的深度。对于视频帧示例,滤波器的深度将为3(根据输入图像的三个颜色分量)。滤波器阵列的说明性示例大小为5×5×3,对应于节点的感受野的大小。
卷积隐藏层2522a的卷积性质是由于卷积层的每个节点被应用于其对应的感受野。例如,卷积隐藏层2522a的滤波器可以在输入图像阵列的左上角开始并且可以围绕输入图像进行卷积。如上所述,滤波器的每次卷积迭代可以被认为是卷积隐藏层2522a的节点或神经元。在每次卷积迭代中,滤波器的值乘以图像的原始像素值的对应数字(例如,5×5滤波器阵列乘以输入图像阵列的左上角的5×5输入像素值阵列)。来自每个卷积迭代的乘法可以一起求和以获得该迭代或节点的总和。根据卷积隐藏层2522a中的下一节点的感受野,接下来在输入图像中的下一位置继续该过程。例如,滤波器可以按步长量(被称为步幅)移动到下一感受野。步幅可以被设置为1或其他合适的量。例如,如果步幅被设置为1,则滤波器将在每次卷积迭代时向右移动1个像素。在输入体积(volume)的每个独特位置处理滤波器产生表示用于该位置的滤波器结果的数字,从而导致针对卷积隐藏层2522a的每个节点确定总和值。
从输入层到卷积隐藏层2522a的映射被称为激活图(或特征图)。激活图包括表示输入体积的每个位置处的滤波器结果的、针对每个节点的值。激活图可以包括阵列,该阵列包括由滤波器在输入体积上的每次迭代产生的各个总和值。例如,如果5×5滤波器被应用于28×28输入图像的每个像素(步幅为1),则激活图将包括24×24阵列。卷积隐藏层2522a可以包括多个激活图以便标识图像中的多个特征。如图25所示的示例包括三个激活图。使用三个激活图,卷积隐藏层2522a可以检测三个不同种类的特征,其中每个特征都可以跨整个图像被检测。
在某些示例中,可以在卷积隐藏层2522a之后应用非线性隐藏层。非线性层可以被用于向一直在计算线性运算的系统引入非线性。非线性层的一个说明性示例是整流线性单元(ReLU)层。ReLU层可以将函数f(x)=max(0,x)应用于输入体积中的所有值,这会将所有负激活改变为0。ReLU因此可以在不影响卷积隐藏层2522a的感受野的情况下增加CNN 2500的非线性性质。
池化隐藏层2522b可以在卷积隐藏层2522a之后(并且在使用非线性隐藏层时在非线性隐藏层之后)被应用。池化隐藏层2522b被用于简化来自卷积隐藏层2522a的输出中的信息。例如,池化隐藏层2522b可以取得从卷积隐藏层2522a输出的每个激活图,并使用池化函数生成凝缩激活图(或特征图)。最大池化是由池化隐藏层执行的功能的一个示例。池化隐藏层2522a也使用其他形式的池化函数,诸如平均池化、L2范数池化或其他合适的池化函数。池化函数(例如,最大池化滤波器、L2范数滤波器或其他合适的池化滤波器)被应用于卷积隐藏层2522a中包括的每个激活图。在图25所示的示例,三个池化滤波器被用于卷积隐藏层2522a中的三个激活图。
在某些示例中,可以通过将具有某一步幅(例如,等于滤波器的尺寸,诸如步幅为2)的最大池化滤波器(例如,具有2×2的大小)应用于从卷积隐藏层2522a输出的激活图来使用最大池化。最大池化滤波器的输出包括滤波器围绕其卷积的每个子区域中的最大数字。使用2×2滤波器作为示例,池化层中的每个单元可以汇总先前层中的2×2节点的区域(其中每个节点是激活图中的值)。例如,激活图中的四个值(节点)将在滤波器的每次迭代中由2×2最大池化滤波器分析,其中来自四个值中的最大值作为“最大”值被输出。如果此类最大池化滤波器被应用于来自具有24×24节点的尺寸的卷积隐藏层2522a的激活滤波器,则来自池化隐藏层2522b的输出将是12×12节点的阵列。
在某些示例中,还可以使用L2范数池化滤波器。L2范数池化滤波器包括计算激活图的2×2区域(或其他合适区域)中的值的平方和的平方根(而不是像在最大池化中那样计算最大值),以及使用计算的值作为输出。
直观地说,池化函数(例如,最大池化、L2范数池化或其他池化函数)确定给定特征是否在图像区域中的任何位置被找到,并且丢弃确切的定位信息。这可以在不影响特征检测的结果的情况下完成,因为一旦特征被找到,特征的确切位置就没有其相对于其他特征的大致位置重要。最大池化(以及其他池化方法)的益处是存在少得多的池化特征,从而减少了CNN 2500的后面的层所需的参数数量。
网络中的连接的最终层是全连接层,它将来自池化隐藏层2522b的每个节点连接到输出层2524中的输出节点中的每一个。使用上面的示例,输入层包括对输入图像的像素强度进行编码的28×28个节点,卷积隐藏层2522a包括基于对三个激活图应用5×5局部感受野(针对滤波器)的3×24×24个隐藏特征节点,并且池化隐藏层2522b包括基于对跨三个特征图的每一个的2×2区域应用最大池化滤波器的3×12×12个隐藏特征节点的层。扩展这个示例,输出层2524可以包括十个输出节点。在此类示例中,3×12×12池化隐藏层2522b的每个节点都连接到输出层2524的每个节点。
全连接层2522c可以获得先前池化隐藏层2522b的输出(其应该表示高级特征的激活图)并确定与特定类别最相关的特征。例如,全连接层2522c层可以确定与特定类别最强相关的高级特征,并且可以包括用于高级特征的权重(节点)。可以计算全连接层2522c与池化隐藏层2522b的权重之间的乘积以获得针对不同类别的概率。例如,如果CNN 2500被用于生成光流,则激活图中将存在高值,这些高值表示从一帧到另一帧的视觉元素的运动的高级特征。
在某些示例中,来自输出层2524的输出可以包括M维向量(在前面的示例中,M=10),其中M可以包括对应于以下的数据:光流中的可能的运动向量方向、光流中的可能的运动向量幅度、权重图中的可能的权重值等。在一个说明性示例中,如果9维输出向量表示十个不同的可能值是[0 0 0.05 0.80 0.15 0 0 0 0],则该向量指示第三值有5%的概率,第四值有80%的概率,第六值有15%的概率。针对可能值的概率可以被认为是针对该值的置信水平或确定性水平(例如,对于该运动向量方向、对于该运动向量幅度、对于该权重值等)。
图26是图示出用于实现本技术的某些方面的系统的示例的图。具体地,图26图示了计算系统2600的示例,其可以是例如构成内部计算系统、远程计算系统、相机或其任何组件的任何计算设备,其中系统的组件使用连接2605相互通信。连接2605可以是使用总线的物理连接,或者到处理器2610的直接连接,诸如在芯片组架构中。连接2605也可以是虚拟连接、网络连接或逻辑连接。
在某些实施例中,计算系统2600是分布式系统,其中本公开中描述的功能可以被分布在数据中心、多个数据中心、对等网络等内。在某些实施例中,所描述的系统组件中的一个或多个表示许多此类组件,每个组件执行针对该组件描述的功能的某些或全部。在某些实施例中,组件可以是物理或虚拟设备。
示例系统2600包括至少一个处理单元(CPU或处理器)2610,以及将各种系统组件耦合到处理器2610的连接2605,这些系统组件包括系统存储器2615,诸如只读存储器(ROM)2620和随机存取存储器(RAM)2625。计算系统2600可以包括高速存储器的高速缓存2612,高速缓存2612与处理器2610直接连接、紧邻,或被集成为处理器2610的部分。
处理器2610可以包括任何通用处理器以及被配置为控制处理器2610的硬件服务或软件服务(诸如被存储在存储设备2630中的服务2632、2634和2636),以及其中软件指令被合并到实际处理器设计中的专用处理器。处理器2610可能本质上是完全独立的计算系统,包含多个核或处理器、总线、内存控制器、高速缓存等。多核处理器可以是对称的或非对称的。
为了实现用户交互,计算系统2600包括输入设备2645,其可以代表任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。计算系统2600还可以包括输出设备2635,其可以是多个输出机构中的一个或多个。在某些情况下,多模式系统可以使用户能够提供多种类型的输入/输出以与计算系统2600通信。计算系统2600可以包括通信接口2640,其通常可以支配和管理用户输入和系统输出。通信接口可以使用有线和/或无线收发器来执行或促进接收和/或发送有线或无线通信,这些收发器包括使用以下的那些:音频插孔/插头、麦克风插孔/插头、通用串行总线(USB)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、/>无线信号传输、/>低功耗(BLE)无线信号传输、/>无线信号传输、射频标识(RFID)无线信号传输、近场通信(NFC)无线信号传输、专用短程通信(DSRC)无线信号传输、802.11Wi-Fi无线信号传输、无线局域网(WLAN)信号传输、可见光通信(VLC)、全球微波接入互操作性(WiMAX)、红外(IR)通信无线信号传输、公共交换电话网络(PSTN)信号传输、综合业务数字网络(ISDN)信号传输、3G/4G/5G/LTE蜂窝数据网络无线信号传输、ad-hoc网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿电磁频谱的无线信号传输,或它们的某种组合。通信接口2640还可以包括一个或多个全球导航卫星系统(GNSS)接收器或收发器,其被用于基于从与一个或多个GNSS系统相关联的一个或多个卫星接收一个或多个信号来确定计算系统2600的位置。GNSS系统包括但不限于美国的全球定位系统(GPS)、俄罗斯的全球导航卫星系统(GLONASS)、中国的北斗导航卫星系统(BDS)和欧洲的伽利略GNSS。对任何特定硬件布置的操作没有限制,并且因此这里的基本特征可以很容易地被替换为改进的硬件或固件布置(随着它们被开发出来)。
存储设备2630可以是非易失性和/或非暂态和/或计算机可读存储器设备并且可以是硬盘或其他类型的计算机可读介质(其可以存储可由计算机访问的数据),诸如磁盒、闪存卡、固态存储器设备、数字多功能盘、卡带、软盘、柔性盘、硬盘、磁带、磁条/条带、任何其他磁性存储介质,闪存、忆阻器存储器、任何其他固态存储器,紧凑盘只读存储器(CD-ROM)光盘、可重写紧凑(CD)光盘、数字视频盘(DVD)光盘、蓝光盘(BDD)光盘、全息光盘、另一光学介质,安全数字(SD)卡、微型安全数字(microSD)卡、卡、智能卡芯片、EMV芯片、订户身份模块(SIM)卡、mini/micro/nano/pico 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)之类的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以在其上存储代码和/或机器可执行指令,这些代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。可以使用任何合适的手段来传递、转发或发送信息、自变量、参数、数据等,这些手段包括存储器共享、消息传递、令牌传递、网络发送等。
在某些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当被提及时,非暂态计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身之类的介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释清楚,在某些情况下,本技术可以被呈现为包括单独的功能块,这些功能块包括包含设备、设备组件、以软件或者硬件和软件的组合体现的方法中的步骤或例程的功能块。可以使用除了图中所示和/或本文描述的那些之外的附加组件。例如,电路、系统、网络、过程和其他组件可以以框图形式被示为组件,以免在不必要的细节上模糊实施例。在其他情况下,可以在没有不必要的细节的情况下示出众所周知的电路、过程、算法、结构和技术,以免模糊实施例。
上文可以将各个实施例描述为被描绘为流程图表、流程图、数据流图、结构图或框图的过程或方法。尽管流程图可以将操作描述为顺序过程,但许多操作可以被并行或并发地执行。另外,可以重新布置操作的次序。过程在其操作完成时被终止,但可能具有图中未包含的附加步骤。过程可以对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止可以对应于函数返回到调用函数或主函数。
可以使用被存储的或以其他方式从计算机可读介质可用的计算机可执行指令来实现根据上述示例的过程和方法。此类指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或处理设备执行某些功能或功能组的指令和数据。使用的计算机资源的部分可以通过网络访问。计算机可执行指令可以是例如二进制、中间格式指令(诸如汇编语言)、固件、源代码等。可以被用于存储指令、使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、网络存储设备、等等。
实现根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用各种形状因子中的任何一种。当被实现于软件、固件、中间件或微代码中时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。(一个或多个)处理器可以执行必要的任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其他小形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以被体现在外围设备或附加卡中。作为进一步的示例,此类功能也可以被实现于不同芯片之间的电路板上或在单个设备中执行的不同过程上。
指令、用于运送此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例手段。
在前面的描述中,参考其具体实施例描述了本申请的各方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然本文已经详细描述了本申请的说明性实施例,但是应当理解,本发明概念可以用其他方式被不同地体现和采用,并且所附权利要求旨在被解释为包括除被现有技术限制之外的此类变体。上述申请的各种特征和方面可以被单独或联合使用。此外,在不背离本说明书的更广泛的精神和范围的情况下,实施例可以在超过本文描述的环境和应用的任何数量的环境和应用中被利用,。相应地,说明书和附图应被认为是说明性而非限制性的。出于说明的目的,方法被以特定的次序被描述。应理解,在替代实施例中,方法可以以与所描述的次序不同的次序来执行。
普通技术人员中的一个将理解,本文中使用的小于(“<”)和大于(“>”)符号或术语可以相应地用小于或等于(“≤”)和大于或等于(“≥”)符号来代替,而不背离本说明书的范围。
在将组件描述为“被配置为”执行某些操作的情况下,此类配置可以例如通过设计电子电路或其它硬件以执行这些操作、通过对可编程电子电路(例如,微处理器或其它合适的电子电路)进行编程以执行这些操作或其任何组合来实现。
短语“耦合到”是指任何组件直接或间接地物理连接到另一组件,和/或任何组件与另一组件直接或间接地通信(例如,通过有线或无线连接,和/或其他合适的通信接口连接到另一组件)。
表述集合中的“至少一个”或集合中的“一个或多个”的权利要求语言或其他语言指示集合的一个成员或集合的多个成员(以任何组合)满足权利要求。例如,表述“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核结合的一个或多个微处理器、或任何其他此类配置。相应地,如本文中所使用的术语“处理器”可以指前述结构中的任一个、前述结构的任何组合、或者适于实现本文中所描述的技术的任何其它结构或装置。另外,在某些方面中,本文中所描述的功能性可以在被配置用于编码和解码的专用软件模块或硬件模块内被提供,或被并入组合视频编码器-解码器(编解码器)中。
本公开的说明性方面包括:
方面1.一种用于确定用于某数量的帧的曝光持续时间的装置。该装置包括存储器(例如,被实现于电路中)以及耦合到存储器的一个或多个处理器(例如,一个处理器或多个处理器)。一个或多个处理器被配置为:获得用于一个或多个帧的运动图;基于运动图,确定与场景的一个或多个帧相关联的运动,该运动对应于场景中的一个或多个对象相对于用于捕获一个或多个帧的相机的移动;基于确定的运动,确定帧的数量以及用于捕获该数量的帧的曝光;以及发送请求以使用确定的曝光持续时间来捕获该数量的帧。
方面2.如方面1的装置,其中一个或多个帧是在接收到用于捕获该数量的帧的捕获命令之前获得的。
方面3.如方面1或2中任一项的装置,其中一个或多个处理器被配置为:对使用确定的曝光持续时间捕获的该数量的帧执行时间混合以生成时间混合帧。
方面4.如方面3的装置,其中一个或多个处理器被配置为:使用基于机器学习的图像信号处理器对时间混合帧执行空间处理。
方面5.如方面4的装置,其中基于机器学习的图像信号处理器使用运动图作为用于对时间混合帧执行空间处理的输入。
方面6.如方面1至5中任一项的装置,其中所确定的曝光持续时间基于增益。
方面7.如方面1至6中任一项的装置,其中运动图包括图像,图像的每个像素包括指示以下中的至少一个的值:每个像素的运动量以及与该运动量相关联的置信值。
方面8.如方面1至7中任一项的装置,其中一个或多个处理器被配置为:基于一个或多个传感器测量,确定与相机相关联的全局运动;其中帧的数量以及用于捕获该数量的帧的曝光持续时间是基于确定的运动和全局运动来确定的。
方面9.如方面1至8中任一项的装置,其中,为了基于确定的运动和全局运动来确定帧的数量以及用于捕获该数量的帧的曝光持续时间,一个或多个处理器被配置为:基于确定的运动和全局运动确定最终运动指示;以及基于最终运动指示确定帧数量以及捕获该数量的帧的曝光持续时间。
方面10.如方面9的装置,其中,为了基于确定的运动和全局运动来确定最终运动指示,一个或多个处理器可以被配置为:使用用于确定的运动的第一权重以及用于全局运动的第二权重来确定确定的运动和全局运动的加权组合。
方面11.如方面9或10中任一项的装置,其中一个或多个处理器被配置为:基于最终运动指示确定一个或多个帧中的运动量小于运动阈值;以及基于一个或多个帧中的运动量小于运动阈值,减少针对帧数量的帧计数并增加针对确定的曝光持续时间的曝光量。
方面12.如方面9或10中任一项的装置,其中一个或多个处理器被配置为:基于最终运动指示确定一个或多个帧中的运动量大于运动阈值;以及基于一个或多个帧中的运动量大于运动阈值,增加针对帧数量的帧计数并减少针对确定的曝光持续时间的曝光量。
方面13.如方面1至12中任一项的装置,还包括被配置为捕获至少一个帧的相机以及被配置为显示至少一个帧的显示器中的至少一者。
方面14.一种用于对一个或多个帧执行时间混合的装置。该装置包括被配置为存储一个或多个帧的存储器(例如,被实现于电路中)以及耦合到存储器的一个或多个处理器(例如,一个处理器或多个处理器)。一个或多个处理器被配置为:获得原始帧,原始帧包括用于原始帧的每个像素的单颜色分量;将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量;至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧;以及对多个帧执行时间混合。
方面15.如方面14的装置,其中原始帧包括滤色器阵列(CFA)样式。
方面16.如方面14或15中任一项的装置,其中第一颜色分量包括红色颜色分量,其中第二颜色分量包括绿色颜色分量,并且其中第三颜色分量包括蓝色颜色分量。
方面17.如方面14至16中任一项的装置,其中第一颜色分量包括原始帧的所有红色像素,其中第二颜色分量包括原始帧的所有绿色像素,并且其中第三颜色分量包括原始帧的所有蓝色像素。
方面18.如方面14至17中任一项的装置,其中,为了生成多个帧,一个或多个处理器被配置为:至少部分地通过将至少第一色度值添加到第一颜色分量来生成第一帧;至少部分地通过将至少第二色度值添加到第二颜色分量来生成第二帧;以及至少部分地通过将至少第三色度值添加到第三颜色分量来生成第三帧。
方面19.如方面18中任一项的装置,其中:为了生成第一帧,一个或多个处理器被配置为将第一色度值和第二色度值添加到第一颜色分量;为了生成第二帧,一个或多个处理器被配置为将第一色度值和第二色度值添加到第二颜色分量;以及为了生成第三帧,一个或多个处理器被配置为将第一色度值和第二色度值添加到第三颜色分量。
方面20.如方面19的装置,其中第一色度值和第二色度值是相同值。
方面21.如方面14至20中任一项的装置,其中,为了对多个帧执行时间混合,一个或多个处理器被配置为:将多个帧中的第一帧与具有第一颜色分量的一个或多个附加帧进行时间混合;将多个帧中的第二帧与具有第二颜色分量的一个或多个附加帧进行时间混合;以及将多个帧中的第三帧与具有第三颜色分量的一个或多个附加帧进行时间混合。
方面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的方法,其中最终运动指示基于使用用于确定的运动的第一权重和用于全局运动的第二权重的、确定的运动和全局运动的加权组合。
方面36.如方面34或35中任一项的方法,还包括:基于最终运动指示确定一个或多个帧中的运动量小于运动阈值;以及基于一个或多个帧中的运动量小于运动阈值,减少针对帧的数量的帧计数并增加针对确定的曝光持续时间的曝光持续时间量。
方面37.如方面34或35中任一项的方法,还包括:基于最终运动指示确定一个或多个帧中的运动量大于运动阈值;以及基于一个或多个帧中的运动量大于运动阈值,增加针对帧的数量的帧计数并减少针对确定的曝光持续时间的曝光持续时间量。
方面38.一种对一个或多个帧执行时间混合的方法。该方法包括:获得原始帧,原始帧包括用于原始帧的每个像素的单颜色分量;将原始帧划分为第一颜色分量、第二颜色分量和第三颜色分量;至少部分地通过将至少第一色度值添加到第一颜色分量、将至少第二色度值添加到第二颜色分量以及将至少第三色度值添加到第三颜色分量来生成多个帧;以及对多个帧执行时间混合。
方面39.如方面38的方法,其中原始帧包括滤色器阵列(CFA)样式。
方面40.如方面38或39中任一项的方法,其中第一颜色分量包括红色颜色分量,其中第二颜色分量包括绿色颜色分量,并且其中第三颜色分量包括蓝色颜色分量。
方面41.如方面38至40中任一项的方法,其中第一颜色分量包括原始帧的所有红色像素,其中第二颜色分量包括原始帧的所有绿色像素,并且其中第三颜色分量包括原始帧的所有蓝色像素。
方面42.如方面38至41中任一项的方法,其中生成多个帧包括:至少部分地通过将至少第一色度值添加到第一颜色分量来生成第一帧;至少部分地通过将至少第二色度值添加到第二颜色分量来生成第二帧;以及至少部分地通过将至少第三色度值添加到第三颜色分量来生成第三帧。
方面43.如方面42中任一项的方法,其中:生成第一帧包括将第一色度值和第二色度值添加到第一颜色分量;生成第二帧包括将第一色度值和第二色度值添加到第二颜色分量;并且生成第三帧包括将第一色度值和第二色度值添加到第三颜色分量。
方面44.如方面43的方法,其中第一色度值和第二色度值是相同值。
方面45.如方面38至44中任一项的方法,其中对多个帧执行时间混合包括:将多个帧中的第一帧与具有第一颜色分量的一个或多个附加帧进行时间混合;将多个帧中的第二帧与具有第二颜色分量的一个或多个附加帧进行时间混合;以及将多个帧中的第三帧与具有第三颜色分量的一个或多个附加帧进行时间混合。
方面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所述的装置,其中,为了基于所述确定的运动和所述全局运动确定所述最终运动指示,所述一个或多个处理器被配置为:
使用用于所述确定的运动的第一权重和用于所述全局运动的第二权重来确定所述确定的运动和所述全局运动的加权组合。
11.如权利要求9所述的装置,其中,所述一个或多个处理器被配置为:
基于所述最终运动指示,确定所述一个或多个帧中的运动量小于运动阈值;以及
基于所述一个或多个帧中的所述运动量小于所述运动阈值,减少针对帧的所述数量的帧计数以及增加针对所述确定的曝光的曝光量。
12.如权利要求9所述的装置,其中,所述一个或多个处理器被配置为:
基于所述最终运动指示,确定所述一个或多个帧中的运动量大于运动阈值;以及
基于所述一个或多个帧中的所述运动量大于所述运动阈值,增加针对帧的所述数量的帧计数以及减少针对所述确定的曝光的曝光量。
13.如权利要求1所述的装置,还包括被配置为捕获至少一个帧的相机以及被配置为显示所述至少一个帧的显示器中的至少一者。
14.一种处理一个或多个帧的方法,所述方法包括:
获得用于一个或多个帧的运动图;
基于所述运动图,确定与场景的所述一个或多个帧相关联的运动,所述运动对应于所述场景中的一个或多个对象相对于用于捕获所述一个或多个帧的相机的移动;
基于确定的运动,确定帧的数量以及用于捕获所述数量的帧的曝光;以及
发送请求以使用确定的曝光持续时间来捕获所述数量的帧。
15.如权利要求14所述的方法,其中,所述一个或多个帧是在接收到用于捕获所述数量的帧的捕获命令之前获得的。
16.如权利要求14所述的方法,还包括:
对使用所述确定的曝光持续时间捕获的所述数量的帧执行时间混合以生成时间混合帧。
17.如权利要求16所述的方法,还包括:
使用基于机器学习的图像信号处理器对所述时间混合帧执行空间处理。
18.如权利要求17所述的方法,其中,所述基于机器学习的图像信号处理器使用所述运动图作为用于对所述时间混合帧执行所述空间处理的输入。
19.如权利要求14所述的方法,其中,所述确定的曝光持续时间基于增益。
20.如权利要求14所述的方法,其中,所述运动图包括图像,所述图像的每个像素包括指示以下中的至少一个的值:每个像素的运动量以及与所述运动量相关联的置信值。
21.如权利要求14所述的方法,还包括:
基于一个或多个传感器测量,确定与所述相机相关联的全局运动;
其中帧的所述数量以及用于捕获所述数量的帧的所述曝光持续时间是基于所述确定的运动和所述全局运动而被确定的。
22.如权利要求21所述的方法,还包括:
基于所述确定的运动和所述全局运动来确定最终运动指示;
其中帧的所述数量以及用于捕获所述数量的帧的所述曝光持续时间是基于所述最终运动指示而被确定的。
23.如权利要求22所述的方法,其中,所述最终运动指示基于使用用于所述确定的运动的第一权重和用于所述全局运动的第二权重的、所述确定的运动和所述全局运动的加权组合。
24.如权利要求22所述的方法,还包括:
基于所述最终运动指示,确定所述一个或多个帧中的运动量小于运动阈值;以及
基于所述一个或多个帧中的所述运动量小于所述运动阈值,减少针对帧的所述数量的帧计数以及增加针对所述确定的曝光持续时间的曝光持续时间量。
25.如权利要求22所述的方法,还包括:
基于所述最终运动指示,确定所述一个或多个帧中的运动量大于运动阈值;以及
基于所述一个或多个帧中的所述运动量大于所述运动阈值,增加针对帧的所述数量的帧计数以及减少针对所述确定的曝光持续时间的曝光持续时间量。
26.一种存储指令的计算机可读存储介质,所述指令在被一个或多个处理器执行时,使得所述一个或多个处理器:
获得用于一个或多个帧的运动图;
基于所述运动图,确定与场景的所述一个或多个帧相关联的运动,所述运动对应于所述场景中的一个或多个对象相对于用于捕获所述一个或多个帧的相机的移动;
基于确定的运动,确定帧的数量以及用于捕获所述数量的帧的曝光;以及
发送请求以使用确定的曝光持续时间来捕获所述数量的帧。
27.如权利要求26所述的计算机可读存储介质,其中,所述一个或多个帧是在接收到用于捕获所述数量的帧的捕获命令之前获得的。
28.如权利要求26所述的计算机可读存储介质,还包括指令,所述指令在被所述一个或多个处理器执行时,使得所述一个或多个处理器:
对使用所述确定的曝光持续时间捕获的所述数量的帧执行时间混合以生成时间混合帧。
29.如权利要求26所述的计算机可读存储介质,还包括指令,所述指令在被所述一个或多个处理器执行时,使得所述一个或多个处理器:
基于一个或多个传感器测量,确定与所述相机相关联的全局运动;以及
基于所述确定的运动和所述全局运动来确定最终运动指示;
其中帧的所述数量以及用于捕获所述数量的帧的所述曝光持续时间是基于所述最终运动指示而被确定的。
30.如权利要求29所述的计算机可读存储介质,还包括指令,所述指令在被所述一个或多个处理器执行时,使得所述一个或多个处理器:
基于所述最终运动指示,确定所述一个或多个帧中的运动量小于或大于运动阈值;
当所述一个或多个帧中的所述运动量小于所述运动阈值时,减少针对帧的所述数量的帧计数以及增加针对所述确定的曝光持续时间的曝光量;以及
当所述一个或多个帧中的所述运动量大于所述运动阈值时,增加针对帧的所述数量的帧计数以及减少针对所述确定的曝光持续时间的曝光量。
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 |
---|---|
CN116438804A true CN116438804A (zh) | 2023-07-14 |
Family
ID=81379094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180073209.9A Pending CN116438804A (zh) | 2020-10-30 | 2021-10-01 | 帧处理和/或捕获指令系统及技术 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20220138964A1 (zh) |
EP (1) | EP4238305A1 (zh) |
JP (1) | JP2023548748A (zh) |
KR (1) | KR20230098575A (zh) |
CN (1) | CN116438804A (zh) |
TW (1) | TW202220433A (zh) |
WO (1) | WO2022093478A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11575834B2 (en) * | 2019-12-17 | 2023-02-07 | Canon Kabushiki Kaisha | Image stabilization apparatus, method of controlling same, and storage medium |
CN111479072B (zh) * | 2020-04-14 | 2021-12-17 | 深圳市道通智能航空技术股份有限公司 | 高动态范围图像合成方法、装置、图像处理芯片及航拍相机 |
US12079673B2 (en) | 2021-02-12 | 2024-09-03 | Scandit Ag | Optical pattern decoding in a real scene using overlay functionality |
US11636683B2 (en) * | 2021-09-14 | 2023-04-25 | Black Sesame Technologies Inc. | Precise object segmentation with multi-modal input for realtime video application |
US12096129B2 (en) * | 2022-02-24 | 2024-09-17 | Qualcomm Incorporated | Multi-frame auto exposure control (AEC) |
US11863880B2 (en) | 2022-05-31 | 2024-01-02 | Microsoft Technology Licensing, Llc | Image frame selection for multi-frame fusion |
WO2023239855A1 (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 | 北京小米移动软件有限公司 | 拍摄方法、装置、介质及芯片 |
US20240185390A1 (en) * | 2022-12-05 | 2024-06-06 | Qualcomm Incorporated | Fusion of image frames for high dynamic range content |
WO2024168589A1 (en) * | 2023-02-15 | 2024-08-22 | Qualcomm Incorporated | Image sensor and image signal processor for capturing images in low light environments |
WO2024216573A1 (en) * | 2023-04-20 | 2024-10-24 | Qualcomm Incorporated | Composite image generation using motion information |
Family Cites Families (10)
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 |
JP4215266B2 (ja) * | 2006-10-30 | 2009-01-28 | パナソニック株式会社 | 画像生成装置および画像生成方法 |
US20090244301A1 (en) * | 2008-04-01 | 2009-10-01 | Border John N | Controlling multiple-image capture |
KR101642964B1 (ko) * | 2010-11-03 | 2016-07-27 | 삼성전자주식회사 | 정밀도 향상을 위한 뎁스 카메라의 노출 시간 동적 제어 방법 및 장치 |
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 |
CN113411528B (zh) * | 2019-02-28 | 2022-10-11 | 华为技术有限公司 | 一种录像帧率的控制方法、终端及存储介质 |
-
2021
- 2021-04-26 US US17/240,837 patent/US20220138964A1/en active Pending
- 2021-10-01 JP JP2023520217A patent/JP2023548748A/ja active Pending
- 2021-10-01 TW TW110136716A patent/TW202220433A/zh unknown
- 2021-10-01 WO PCT/US2021/053151 patent/WO2022093478A1/en active Application Filing
- 2021-10-01 EP EP21806512.6A patent/EP4238305A1/en active Pending
- 2021-10-01 KR KR1020237013932A patent/KR20230098575A/ko unknown
- 2021-10-01 CN CN202180073209.9A patent/CN116438804A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023548748A (ja) | 2023-11-21 |
KR20230098575A (ko) | 2023-07-04 |
WO2022093478A1 (en) | 2022-05-05 |
TW202220433A (zh) | 2022-05-16 |
US20220138964A1 (en) | 2022-05-05 |
EP4238305A1 (en) | 2023-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116438804A (zh) | 帧处理和/或捕获指令系统及技术 | |
US20220207680A1 (en) | Image Processing Method and Apparatus | |
CN115461780A (zh) | 基于机器学习的图像调整 | |
US20210390747A1 (en) | Image fusion for image capture and processing systems | |
US11895409B2 (en) | Image processing based on object categorization | |
WO2023086694A1 (en) | Image modification techniques | |
US20230388623A1 (en) | Composite image signal processor | |
US20220414847A1 (en) | High dynamic range image processing | |
US20240144717A1 (en) | Image enhancement for image regions of interest | |
US20230319401A1 (en) | Image capture using dynamic lens positions | |
US11825207B1 (en) | Methods and systems for shift estimation for one or more output frames | |
WO2023140979A1 (en) | Motion based exposure control for high dynamic range imaging | |
US20230021016A1 (en) | Hybrid object detector and tracker | |
WO2024168589A1 (en) | Image sensor and image signal processor for capturing images in low light environments | |
US20230370727A1 (en) | High dynamic range (hdr) image generation using a combined short exposure image | |
US20240209843A1 (en) | Scalable voxel block selection | |
US20230377096A1 (en) | Image signal processor | |
US20240054659A1 (en) | Object detection in dynamic lighting conditions | |
US20240078635A1 (en) | Compression of images for generating combined images | |
US20240303841A1 (en) | Monocular image depth estimation with attention | |
TW202422469A (zh) | 利用多域運動校正的高動態範圍(hdr)圖像產生 | |
TW202410685A (zh) | 使用可變光圈成像設備擷取影像 | |
WO2024186686A1 (en) | Monocular image depth estimation with attention | |
WO2023163799A1 (en) | Foveated sensing | |
CN117616769A (zh) | 用于改进图像捕获和/或处理操作的本地运动检测 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |