CN116744118B - 确定拍摄参数的方法和装置 - Google Patents
确定拍摄参数的方法和装置 Download PDFInfo
- Publication number
- CN116744118B CN116744118B CN202211131161.5A CN202211131161A CN116744118B CN 116744118 B CN116744118 B CN 116744118B CN 202211131161 A CN202211131161 A CN 202211131161A CN 116744118 B CN116744118 B CN 116744118B
- Authority
- CN
- China
- Prior art keywords
- target
- sensor
- exposure
- brightness
- current
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/52—Details of telephonic subscriber devices including functional features of a camera
Landscapes
- Studio Devices (AREA)
Abstract
本申请涉及终端领域,提供了一种确定拍摄参数的方法和装置,该方法包括:通过闪烁传感器获取当前亮度;通过图像传感器获取目标亮度;当所述当前亮度与所述目标亮度的差值的绝对值大于或等于阈值时,确定所述闪烁传感器的当前曝光量;根据所述当前亮度、所述目标亮度和所述当前曝光量确定目标曝光量,所述目标曝光量与所述当前曝光量正相关,并且,所述目标曝光量与所述目标亮度和所述当前亮度的比值正相关;根据所述目标曝光量从多个拍摄参数中确定目标拍摄参数,所述多个拍摄参数各自对应一个曝光量,所述目标拍摄参数为所述多个拍摄参数中曝光量与所述目标曝光量最接近的拍摄参数。该方法能够提高环境光变化频率的检测结果的准确性。
Description
技术领域
本申请涉及终端拍摄领域,具体涉及一种确定拍摄参数的方法和装置。
背景技术
很多终端设备具有拍摄功能,拍摄功能的基本原理是通过图像传感器记录进入镜头的光子,在屏幕上显示记录的结果(即,图像或视频)。在一些情况下,终端设备所处的环境存在亮暗变化的光源(如使用交流电的灯),当图像传感器的曝光时间与光源的亮度变化周期不是整数倍关系时,图像不同位置处积累的信号强度不同,导致图像上出现亮暗相间的条纹(banding)。当屏幕显示预览视频时,预览视频还会出现条纹移动现象。这种图像或者视频上出现条纹的现象被称为闪烁(flicker)。
闪烁的本质是像素曝光起始点相对交流电的相位关系在不断变化,一种消除闪烁的方法是将曝光时间设置为亮度变化周期的整数倍,这样,每行像素在曝光时间内积累的光子数相同,图像上的条纹被消除。
实施该方法的前提是获取准确的环境光变化频率,如何提高环境光变化频率的检测结果的准确性是当前需要解决的问题。
发明内容
本申请实施例提供了一种确定拍摄参数的方法和装置,能够提高环境光变化频率的检测结果的准确性。
第一方面,提供了一种确定拍摄参数的方法,所述方法包括:通过闪烁传感器获取当前亮度;通过图像传感器获取目标亮度;当所述当前亮度与所述目标亮度的差值的绝对值大于或等于阈值时,确定所述闪烁传感器的当前曝光量;根据所述当前亮度、所述目标亮度和所述当前曝光量确定目标曝光量,所述目标曝光量与所述当前曝光量正相关,并且,所述目标曝光量与所述目标亮度和所述当前亮度的比值正相关;根据所述目标曝光量从多个拍摄参数中确定目标拍摄参数,所述多个拍摄参数各自对应一个曝光量,所述目标拍摄参数为所述多个拍摄参数中曝光量与所述目标曝光量最接近的拍摄参数。
闪烁传感器用于检测环境光变化频率,图像传感器用于拍摄图像,闪烁传感器检测到的环境光变化频率可用于消除图像传感器拍摄的图像上的条纹。由于制造工艺等因素的影响,闪烁传感器的感光情况与图像传感器的感光情况可能有所差异,因此,闪烁传感器检测到的环境光变化频率与图像传感器感受到的环境光变化频率可能不同,若仅依靠闪烁传感器自身的感光情况确定环境光变化频率,则基于该环境光变化频率进行消除条纹处理可能无法消除图像上的条纹。本实施例提供的方法将闪烁传感器和图像传感器获取的亮度值进行比较,若这两个亮度值的差值的绝对值小于阈值,则认为闪烁传感器的感光情况与图像传感器的感光情况相同,不需要调节闪烁传感器的拍摄参数。若这两个亮度值的差值的绝对值大于或等于阈值,则认为闪烁传感器的感光情况与图像传感器的感光情况不同,需要调节闪烁传感器的拍摄参数,此时,可以根据目标亮度和当前亮度的比值较准当前曝光量,得到目标曝光量,并根据目标曝光量调节闪烁传感器的拍摄参数,使得闪烁传感器的感光情况接近图像传感器的感光情况,从而提高了环境光变化频率的检测结果的准确性。
可选地,所述多个拍摄参数包括M个增益和N个快门,所述M个增益与所述N个快门中的最小值组成M个拍摄参数,所述M个增益中的最大值与所述N个快门中除最小值之外的N-1个快门组成N-1个拍摄参数。
由于改变快门会重新使能闪烁传感器,导致环境光检测结果出现延迟,此外,较大的快门还会影响闪烁传感器采集到的数据的解析度,因此,当需要改变闪烁传感器的曝光量时,优先通过改变增益来改变曝光量,当增益调节至最大值后仍无法满足曝光量需求时,再调节快门。本实施例中,M个拍摄参数中的快门均为最小值,可以在满足曝光量的同时避免数据解析度下降,N-1个拍摄参数中的增益均为最大值,可以满足极暗环境下的检测需求。
可选地,所述方法还包括:当所述目标拍摄参数与上次生效的拍摄参数相同时,确定不更改所述闪烁传感器的拍摄参数;当所述目标拍摄参数与上次生效的拍摄参数不同时,指示所述闪烁传感器的驱动生效所述目标拍摄参数。
当目标拍摄参数与上次生效的拍摄参数相同时,说明拍摄参数已无法进一步调节(例如,上次生效的拍摄参数中增益和快门均已是最小值),则不再更改拍摄参数,从而可以快速通过闪烁传感器获取环境光变换频率。当目标拍摄参数与上次生效的拍摄参数不同时,说明拍摄参数还有调节空间,终端设备可以生效目标拍摄参数,提高环境光变化频率的检测结果的准确性。
可选地,所述通过闪烁传感器获取当前亮度,包括:通过所述闪烁传感器获取多个原始数据;对所述多个原始数据进行平均值计算得到所述当前亮度。
可选地,所述通过图像传感器获取目标亮度,包括:通过所述图像传感器获取亮度值Lv;对所述Lv进行线性映射得到所述目标亮度。
可选地,所述确定所述闪烁传感器的当前曝光量,包括:获取所述闪烁传感器的当前增益和当前快门;对所述当前增益和所述当前快门进行乘积运算确定所述当前曝光量。
可选地,所述目标曝光量等于所述当前曝光量乘以所述目标亮度和所述当前亮度的比值。
目标亮度与当前亮度的比值反映了图像传感器的感光情况与闪烁传感器的感光情况的差异,基于比值和当前曝光量的乘积可以确定闪烁传感器的目标曝光量,基于目标曝光量确定的目标拍摄参数能够缩小图像传感器的感光情况与闪烁传感器的感光情况的差异,提高环境光变化频率的检测结果的准确性。
可选地,所述方法还包括:当所述当前亮度与所述目标亮度的差值的绝对值小于所述阈值时,确定不更改所述闪烁传感器的拍摄参数。
本实施例提供的方法将闪烁传感器和图像传感器获取的亮度值进行比较,若这两个亮度值的差值的绝对值小于阈值,则认为闪烁传感器的感光情况与图像传感器的感光情况相同,不需要调节闪烁传感器的拍摄参数,从而可以快速通过闪烁传感器获取环境光变换频率。
第二方面,提供了一种确定拍摄参数的装置,包括用于执行第一方面中任一种方法的单元。该装置可以是终端设备,也可以是终端设备内的芯片。该装置可以包括输入单元和处理单元。
当该装置是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种方法。
当该装置是终端设备内的芯片时,该处理单元可以是芯片内部的逻辑处理单元,该输入单元可以是输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面的任一种方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被确定拍摄参数的装置运行时,使得该装置执行第一方面中的任一种方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被确定拍摄参数的装置运行时,使得该装置执行第一方面中的任一种方法。
附图说明
图1是一种环境光源的亮度变化的示意图;
图2是一种曝光示意图;
图3是一种闪烁现象的示意图;
图4是一种适用于本申请的终端设备的硬件架构的示意图;
图5是一种适用于本申请的终端设备的软件架构的示意图;
图6是本申请提供的一种拍照场景的示意图;
图7是本申请提供的拍照场景对应的数据流的示意图;
图8是一种确定拍摄参数的方法的示意图;
图9是本申请提供的一种确定拍摄参数的方法的示意图;
图10是本申请提供的AE模块调节增益和快门的信息流的示意图;
图11是本申请提供的另一种确定拍摄参数的方法的示意图;
图12和图13是本申请提供的一种生效当前的gain和shutter的方法的示意图;
图14是本申请提供的另一种确定拍摄参数的方法的示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
图1是一种环境光源的亮度变化的示意图。
图1的上半部分示出了交流电的波形,交流电的电压的方向和大小随时间周期性变化,表现出正弦波的形式。亮度当环境光源为使用交流电的灯时,灯的亮度也呈周期性变化,如图1的下半部分所示,亮度变化周期为交流电的周期的一般。例如,交流电的周期为1/60s,灯的亮度变化周期则为1/120s。
当交流电的电压为0时,灯的亮度也为0,该时刻为暗时刻。当拍摄环境存在使用交流电的灯时,终端设备在暗时刻的曝光量为0,终端设备在暗时刻之外的时刻的曝光量不为0,因此,终端设备拍摄的图像会出现条纹。
图2是一种曝光示意图。
终端设备所处的环境存在亮暗变化的光源(如使用交流电的灯),图像传感器的曝光方式是逐行曝光,当图像传感器的曝光时间与光源的亮度变化周期不是整数倍关系时,图像不同位置处积累的信号强度不同,导致图像上出现亮暗相间的条纹(banding)。当屏幕显示预览视频时,预览视频还会出现条纹移动现象。这种图像或者视频上出现条纹的现象被称为闪烁(flicker),如图3所示。
闪烁的本质是像素曝光起始点相对交流电的相位关系在不断变化,一种消除闪烁的方法是将曝光时间设置为亮度变化周期的整数倍,这样,每行像素在曝光时间内积累的光子数相同,图像上的条纹被消除。
实施该方法的前提是获取准确的环境光变化频率,如何提高环境光变化频率的检测结果的准确性是当前需要解决的问题。
首先介绍适用于本申请的终端设备的硬件架构和软件架构。
如图4所示,终端设备可以是手机、可折叠电子设备、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备或智慧城市设备。本申请实施例对该终端设备的具体类型不作特殊限制。
终端设备可以包括处理器110、外部存储器接口120、内部存储器121、通用串行总线(universal serial bus,USB)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、传感器模块180、按键190、马达191、指示器192、摄像模组193、显示屏194以及用户标识模块(subscriber identification module,SIM)卡接口195。其中传感器模块180可以包括压力传感器180A、陀螺仪传感器180B、气压传感器180C、磁传感器180D、加速度传感器180E、距离传感器180F、接近光传感器180G、指纹传感器180H、温度传感器180J、触摸传感器180K等。
需要说明的是,图4所示的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图4所示的部件更多或更少的部件,或者,终端设备可以包括图4所示的部件中某些部件的组合,或者,终端设备可以包括图4所示的部件中某些部件的子部件。图4示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括以下处理单元中的至少一个:应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、神经网络处理器(neural-network processing unit,NPU)。其中,不同的处理单元可以是独立的器件,也可以是集成的器件。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。例如,处理器110可以包括以下接口中的至少一个:内部集成电路(inter-integrated circuit,I2C)接口、内部集成电路音频(inter-integrated circuit sound,I2S)接口、脉冲编码调制(pulse codemodulation,PCM)接口、通用异步接收传输器(universal asynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobile industry processor interface,MIPI)、通用输入输出(general-purpose input/output,GPIO)接口、SIM接口、USB接口。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K、充电器、闪光灯、摄像模组193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端设备的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样、量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194和摄像模组193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI)、显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像模组193通过CSI接口通信,实现终端设备的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号接口,也可被配置为数据信号接口。在一些实施例中,GPIO接口可以用于连接处理器110与摄像模组193,显示屏194、无线通信模块160、音频模块170和传感器模块180。GPIO接口还可以被配置为I2C接口、I2S接口、UART接口或MIPI接口。
图4所示的各模块间的连接关系只是示意性说明,并不构成对终端设备的各模块间的连接关系的限定。可选地,终端设备的各模块可以采用与上述实施例中的连接方式不同的接口连接方式,或者,终端设备的各模块可以采用上述实施例中多种连接方式的组合。
USB接口130是符合USB标准规范的接口,例如可以是迷你(Mini)USB接口、微型(Micro)USB接口或C型USB(USB Type C)接口。USB接口130可以用于连接充电器为终端设备充电,也可以用于终端设备与外围设备之间传输数据,还可以用于连接耳机以通过耳机播放音频。USB接口130还可以用于连接其他装置,例如AR设备。
充电管理模块140用于从充电器接收电力。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的电流。在一些无线充电的实施例中,充电管理模块140可以通过终端设备的无线充电线圈接收电磁波(电流路径如虚线所示)。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110、内部存储器121、显示屏194、摄像模组193和无线通信模块160供电。电源管理模块141还可以用于监测电池容量、电池循环次数和电池健康状态(例如,漏电、阻抗)等参数。可选地,电源管理模块141可以设置于处理器110中,或者,电源管理模块141和充电管理模块140可以设置于同一个器件中。
终端设备的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等器件实现。
天线1和天线2用于发射和接收电磁波信号。终端设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备上的无线通信的解决方案,例如下列方案中的至少一个:第二代(2th generation,2G)移动通信解决方案、第三代(3thgeneration,3G)移动通信解决方案、第四代(4th generation,5G)移动通信解决方案、第五代(5th generation,5G)移动通信解决方案。移动通信模块150可以包括至少一个滤波器、开关、功率放大器和低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波和放大等处理,随后传送至调制解调处理器进行解调。移动通信模块150还可以放大经调制解调处理器调制后的信号,放大后的该信号经天线1转变为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(例如,扬声器170A和受话器170B)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
与移动通信模块150类似,无线通信模块160也可以提供应用在终端设备上的无线通信解决方案,例如下列方案中的至少一个:无线局域网(wireless local areanetworks,WLAN)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigationsatellite system,GNSS)、调频(frequency modulation,FM)、近场通信(near fieldcommunication,NFC)、红外(infrared,IR)。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,并将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频和放大,该信号经天线2转变为电磁波辐射出去。
在一些实施例中,终端设备的天线1和移动通信模块150耦合,终端设备的天线2和无线通信模块160耦合。
终端设备可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194可以用于显示图像或视频。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体(active-matrix organic light-emitting diode,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、迷你发光二极管(mini light-emitting diode,Mini LED)、微型发光二极管(micro light-emitting diode,Micro LED)、微型OLED(Micro OLED)或量子点发光二极管(quantum dotlight emitting diodes,QLED)。在一些实施例中,终端设备可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备可以通过摄像模组193、ISP、DSP、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
摄像模组193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管,其中,CCD和CMOS可以称为图像传感器。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的红绿蓝(red green blue,RGB),YUV等格式的图像信号。在一些实施例中,终端设备可以包括1个或N个摄像模组193,N为大于1的正整数。
摄像模组193还包括闪烁传感器,用于检测环境光的亮度变化周期,以便于终端设备基于环境光的亮度变化周期调节图像传感器的曝光时间。
ISP用于处理摄像模组193反馈的数据。例如,拍摄时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP可以对图像的噪点、亮度和色彩进行算法优化,ISP还可以优化拍摄场景的曝光和色温等参数。在一些实施例中,ISP可以设置在摄像模组193中。
DSP用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备在频点选择时,DSP用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备可以支持一种或多种视频编解码器。这样,终端设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1、MPEG2、MPEG3和MPEG4。
NPU是一种借鉴生物神经网络结构的处理器,例如借鉴人脑神经元之间传递模式对输入信息快速处理,还可以不断地自学习。通过NPU可以实现终端设备的智能认知等功能,例如:图像识别、人脸识别、语音识别和文本理解。
在一些实施例中,摄像模组193可以由彩色摄像模组和3D感测模组组成。
在一些实施例中,彩色摄像模组的摄像头的感光元件可以是CCD或CMOS光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。
在一些实施例中,3D感测模组可以是飞行时间(time of flight,TOF)3D感测模块或结构光(structured light)3D感测模块。其中,结构光3D感测是一种主动式深度感测技术,结构光3D感测模组的基本零组件可包括IR发射器、IR相机模等。结构光3D感测模组的工作原理是先对被拍摄物体发射特定图案的光斑(pattern),再接收该物体表面上的光斑图案编码(light coding),进而比对与原始投射光斑的异同,并利用三角原理计算出物体的三维坐标。该三维坐标中就包括终端设备距离被拍摄物体的距离。其中,TOF 3D感测可以是主动式深度感测技术,TOF 3D感测模组的基本组件可包括IR发射器、IR相机模等。TOF 3D感测模组的工作原理是通过红外线折返的时间去计算TOF 3D感测模组跟被拍摄物体之间的距离(即深度),以得到3D景深图。
结构光3D感测模组还可应用于人脸识别、体感游戏机、工业用机器视觉检测等领域。TOF 3D感测模组还可应用于游戏机、AR/VR等领域。
在另一些实施例中,摄像模组193还可以由两个或更多个摄像头构成。这两个或更多个摄像头可包括彩色摄像头,彩色摄像头可用于采集被拍摄物体的彩色图像数据。这两个或更多个摄像头可采用立体视觉(stereo vision)技术来采集被拍摄物体的深度数据。立体视觉技术是基于人眼视差的原理,在自然光源下,透过两个或两个以上的摄像头从不同的角度对同一物体拍摄影像,再进行三角测量法等运算来得到终端设备与被拍摄物之间的距离信息,即深度信息。
在一些实施例中,终端设备可以包括1个或多个摄像模组193。例如,终端设备可以包括1个前置摄像模组193以及1个后置摄像模组193。其中,前置摄像模组193通常可用于采集面对显示屏194的拍摄者自己的彩色图像数据以及深度数据,后置摄像模组可用于采集拍摄者所面对的拍摄对象(如人物、风景等)的彩色图像数据以及深度数据。
在一些实施例中,处理器110中的CPU、GPU或NPU可以对摄像模组193所采集的彩色图像数据和深度数据进行处理。在一些实施例中,NPU可以通过骨骼点识别技术所基于的神经网络算法,例如卷积神经网络算法来识别摄像模组193所采集的彩色图像数据,以确定被拍摄人物的骨骼点。CPU或GPU也可来运行神经网络算法以实现根据彩色图像数据确定被拍摄人物的骨骼点。在一些实施例中,CPU、GPU或NPU还可用于根据摄像模组193(可以是3D感测模组)所采集的深度数据和已识别出的骨骼点来确认被拍摄人物的身材(如身体比例、骨骼点之间的身体部位的胖瘦情况),并可以进一步确定针对该被拍摄人物的身体美化参数,最终根据该身体美化参数对被拍摄人物的拍摄图像进行处理,以使得该拍摄图像中该被拍摄人物的体型被美化。
外部存储器接口120可以用于连接外部存储卡,例如安全数码(secure digital,SD)卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐和视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能(例如,声音播放功能和图像播放功能)所需的应用程序。存储数据区可存储终端设备使用过程中所创建的数据(例如,音频数据和电话本)。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如:至少一个磁盘存储器件、闪存器件和通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令和/或存储在设置于处理器中的存储器的指令,执行终端设备的各种处理方法。
终端设备可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D以及应用处理器等实现音频功能,例如,音乐播放和录音。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也可以用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170或者音频模块170的部分功能模块可以设置于处理器110中。
扬声器170A,也称为喇叭,用于将音频电信号转换为声音信号。终端设备可以通过扬声器170A收听音乐或免提通话。
受话器170B,也称为听筒,用于将音频电信号转换成声音信号。当用户使用终端设备接听电话或语音信息时,可以通过将受话器170B靠近耳朵接听语音。
麦克风170C,也称为话筒或传声器,用于将声音信号转换为电信号。当用户拨打电话或发送语音信息时,可以通过靠近麦克风170C发声将声音信号输入麦克风170C。终端设备可以设置至少一个麦克风170C。在另一些实施例中,终端设备可以设置两个麦克风170C,以实现降噪功能。在另一些实施例中,终端设备还可以设置三个、四个或更多麦克风170C,以实现声音信号采集、降噪、识别声音来源和定向录音等功能。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,例如可以是电阻式压力传感器、电感式压力传感器或电容式压力传感器。电容式压力传感器可以是包括至少两个具有导电材料的平行板,当力作用于压力传感器180A,电极之间的电容改变,终端设备根据电容的变化确定压力的强度。当触摸操作作用于显示屏194时,终端设备根据压力传感器180A检测所述触摸操作。终端设备也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令;当触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端设备的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端设备围绕三个轴(即,x轴、y轴和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。例如,当快门被按下时,陀螺仪传感器180B检测终端设备抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备的抖动,实现防抖。陀螺仪传感器180B还可以用于导航和体感游戏等场景。
气压传感器180C用于测量气压。在一些实施例中,终端设备通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端设备可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端设备是翻盖机时,终端设备可以根据磁传感器180D检测翻盖的开合。终端设备可以根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端设备在各个方向上(一般为x轴、y轴和z轴)加速度的大小。当终端设备静止时可检测出重力的大小及方向。加速度传感器180E还可以用于识别终端设备的姿态,作为横竖屏切换和计步器等应用程序的输入参数。
距离传感器180F用于测量距离。终端设备可以通过红外或激光测量距离。在一些实施例中,例如在拍摄场景中,终端设备可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(light-emitting diode,LED)和光检测器,例如,光电二极管。LED可以是红外LED。终端设备通过LED向外发射红外光。终端设备使用光电二极管检测来自附近物体的红外反射光。当检测到反射光时,终端设备可以确定附近存在物体。当检测不到反射光时,终端设备可以确定附近没有物体。终端设备可以利用接近光传感器180G检测用户是否手持终端设备贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式或口袋模式的自动解锁与自动锁屏。
指纹传感器180H用于采集指纹。终端设备可以利用采集的指纹特性实现解锁、访问应用锁、拍摄和接听来电等功能。
温度传感器180J用于检测温度。在一些实施例中,终端设备利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端设备执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备对电池142加热,以避免低温导致终端设备异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称为触控器件。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,触摸屏也称为触控屏。触摸传感器180K用于检测作用于其上或其附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端设备的表面,并且与显示屏194设置于不同的位置。
按键190包括开机键和音量键。按键190可以是机械按键,也可以是触摸式按键。终端设备可以接收按键输入信号,实现与按键输入信号相关的功能。
马达191可以产生振动。马达191可以用于来电提示,也可以用于触摸反馈。马达191可以对作用于不同应用程序的触摸操作产生不同的振动反馈效果。对于作用于显示屏194的不同区域的触摸操作,马达191也可产生不同的振动反馈效果。不同的应用场景(例如,时间提醒、接收信息、闹钟和游戏)可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态和电量变化,也可以用于指示消息、未接来电和通知。
SIM卡接口195用于连接SIM卡。SIM卡可以插入SIM卡接口195实现与终端设备的接触,也可以从SIM卡接口195拔出实现与终端设备的分离。终端设备可以支持1个或N个SIM卡接口,N为大于1的正整数。同一个SIM卡接口195可以同时插入多张卡,所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容外部存储卡。终端设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备采用嵌入式SIM(embedded-SIM,eSIM)卡,eSIM卡可以嵌在终端设备中,不能和终端设备分离。
上文详细描述了终端设备的硬件系统,下面介绍终端设备的软件系统。软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构,本申请实施例以分层架构为例,示例性地描述终端设备的软件系统。
如图5所示,采用分层架构的软件系统分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,软件系统可以分为五层,从上至下分别为应用程序层、应用程序框架层、原生(native)层、硬件抽象层(hardware abstractlayer,HAL)以及内核层。
应用程序层可以包括一系列应用程序包。
应用程序包可以包括相机、日历、通话、地图、WLAN、音乐、短信、图库、通话、导航、蓝牙和视频等应用程序(application,APP)。
应用程序框架层为应用程序层的应用程序提供应用程序编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预定义的函数。
例如,应用程序框架层包括内容提供器、视图系统和管理器,其中,管理器可以包括活动管理器、通知管理器、窗口管理器、输入管理器和资源管理器。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、以及电话簿。
视图系统包括可视控件,例如显示文字的控件和显示图片的控件。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成,例如,包括短信通知图标的显示界面可以包括显示文字的视图以及显示图片的视图。
活动管理器可以提供活动管理服务(activity manager service,AMS),AMS可以用于系统组件(例如,活动、服务、内容提供者和广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于下载完成告知和消息提醒。通知管理器还可以管理以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知。通知管理器还可以管理以对话窗口形式出现在屏幕上的通知,例如在状态栏提示文本信息、发出提示音、电子设备振动以及指示灯闪烁。
窗口管理器提供窗口管理服务(window manager service,WMS),WMS可以用于窗口管理、窗口动画管理、surface管理以及作为输入系统的中转站。
输入管理器可以提供输入管理服务(input manager service,IMS),IMS可以用于管理系统的输入,例如,触摸屏输入、按键输入和传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件和视频文件。
native层又称为系统运行库层,包含原生C/C++库和安卓运行时(AndroidTMruntime,ART)。
原生C/C++库可以包括多个功能模块,例如:表面管理器(surface manager)、媒体框架(media framework)、3D图形处理库(例如,嵌入系统开放图形库(open graphicslibrary for embedded system,OpenGL ES))、2D图形引擎(例如,影像图形库(skiagraphics library,SGL))和C标准库(C standard library,libc)。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D图层和3D图层的融合。
媒体框架支持多种音频格式的回放和录制、多种视频格式回放和录制以及静态图像文件。媒体框架可以支持多种音视频编码格式,例如:MPEG4、H.264、动态图像专家组音频层面Ⅲ(moving picture experts group audio layerⅢ,MP3)、高级音频编码(advancedaudio coding,AAC)、自适应多速率(adaptive multi-rate,AMR)、联合图像专家组(jointphotographic experts group,JPEG)和便携式网络图形(portable network graphics,PNG)。
SGL是2D绘图的绘图引擎。
OpenGL ES可以用于实现3D图形绘图、图像渲染、合成和图层处理。
libc用于提供基本的C语言函数。
ART主要负责将源代码转换为机器码。ART还具有内存管理和垃圾回收等功能。
ART包括核心库和虚拟机。
核心库主要用于提供基本的Java类库,例如基础数据结构、数学、输入/输出(input/output,I/O)、工具、网络等库。核心库还为开发人员提供了系统API。
虚拟机可以是Dalvik虚拟机或者ART虚拟机,其中,Dalvik虚拟机采用即时(justin time,JIT)编译策略将源代码转换为机器码,ART虚拟机采用提前(ahead or time,AOT)编译策略将源代码转换为机器码。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件转换为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理、以及垃圾回收等功能。
硬件抽象层运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。硬件抽象层例如包含非摄像服务(non camera service,NCS)、自动曝光(autoexposure,AE)模块、图像传感器模块、去条纹(antibanding)模块和闪烁传感器模块。
NCS主要用于处理一些辅助图像传感器出图的器件(如,闪烁传感器和陀螺仪传感器180B)的数据。
AE模块主要用于控制闪烁传感器和图像传感器(如,摄像模组193中的CMOS)的曝光时间。
图像传感器模块主要用于处理图像传感器采集的数据,以及生效图像传感器的控制数据(如,增益和快门)。
去条纹模块主要用于消除条纹,例如,去条纹模块基于环境光亮度变化频率确定图像传感器的曝光时间。
闪烁传感器模块主要用于处理闪烁传感器采集的数据,以及生效闪烁传感器的控制数据(如,增益和快门)。
内核层是硬件和软件之间的层。内核层例如包含闪烁传感器驱动和图像传感器驱动。
图像传感器驱动主要用于处理图像传感器采集的数据,以及生效图像传感器的控制数据(如,增益和快门)。
闪烁传感器驱动主要用于处理闪烁传感器采集的数据,以及生效闪烁传感器的控制数据(如,增益和快门)。
可以理解的是,图4和图5所示的硬件结构和软件架构仅仅是对终端设备的示例性介绍,不构成对终端设备在硬件和软件上的限制,终端设备还可以具有其他类型的硬件结构和软件架构。
下面结合拍摄场景,示例性说明终端设备的软件系统以及硬件系统的工作流程。
如图6所示,当用户在显示屏194上进行触摸操作时,触摸传感器180K感知到触摸操作,将相应的硬件中断被发送至操作系统层,操作系统层将触摸操作加工成原始输入事件,该原始输入事件例如包括触摸操作的坐标和时间戳等信息。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该原始输入事件所对应的控件。当上述触摸操作为单击操作、上述控件为相机APP的控件时,上述控件调用应用程序框架层的接口,启动相机APP,进而通过调用内核层启动图像传感器驱动和闪烁传感器驱动,通过摄像模组193捕获图像或视频。
图7是拍摄场景的信息流示意图。
用户点击相机APP的图标后,相机APP生成启动摄像的控制指令,如实线箭头所示,控制指令被依次传递至闪烁传感器和图像传感器等硬件,硬件开始工作。其中,闪烁传感器采集环境光数据,并将环境光数据传递至闪烁传感器驱动。
传统的去条纹方案中,闪烁传感器驱动直接基于闪烁传感器采集环境光数据确定环境光的亮度变化周期,并将亮度变化周期传递至AE模块,由AE模块基于亮度变化周期确定图像传感器的曝光时间,环境光数据和亮度变化周期数据的传递方式如图7中的虚线所示。
图8是闪烁传感器驱动直接确定亮度变化周期的方法。
S801,确定存在闪烁传感器。
闪烁传感器驱动在执行确定亮度变化周期的的方法时首先要确定是否存在闪烁传感器,例如,闪烁传感器驱动可以调用tcs3707_probe函数确定是否终端设备存在闪烁传感器。若确定存在闪烁传感器,则闪烁传感器驱动执行下一步。
S802,为闪烁传感器添加定时器和工作队列。
这一步的目的是创建闪烁传感器的工作线程,闪烁传感器驱动可以调用tcs3707_fd_work函数为闪烁传感器添加定时器和工作队列。
S803,在工作队列中设定读数据的周期。
闪烁传感器驱动可以调用read_fd_data函数在工作队列中设定读数据的周期。
S804,读取闪烁传感器的数据,放入buf_16_bit。
buf_16_bit是一个缓冲,闪烁传感器驱动按照设定的周期读取数据放入buf_16_bit,例如,读数据的周期为22ms,则闪烁传感器驱动每22ms读取一次闪烁传感器采集的数据,每次可以读取fifo_level个数据。
S805,从buf_16_bit中的前10个数据中选出一个最大值buf_16_bit_max。
S806,确定该最大值是否满足条件1和条件2。
条件1(fd_saturation_check):buf_16_bit_max>模拟数字转换器(analog todigital converter,ADC)的输出范围的80%。
条件2(fd_insufficience_check):buf_16_bit_max<30。
当buf_16_bit_max满足条件1且不满足条件2时,执行S807;当buf_16_bit_max不满足条件1且满足条件2时,执行S808;当buf_16_bit_max不满足条件1且不满足条件2时,执行S809。
S807,调低增益(gain)。
当buf_16_bit_max满足条件1且不满足条件2时,说明闪烁传感器采集的数据的值过大,需要调低增益,以使得闪烁传感器采集的数据的值处于一个合适的区间。
S808,调高增益(gain)。
当buf_16_bit_max不满足条件1且满足条件2时,说明闪烁传感器采集的数据的值过小,需要调高增益,以使得闪烁传感器采集的数据的值处于一个合适的区间。
S809,不改变增益(gain),将buf_16_bit中的数据填充到ring_buffer中,以便于上层模块(如,闪烁传感器模块)读取闪烁传感器采集的数据。
闪烁传感器驱动执行S809之后,可以返回执行S805。
闪烁传感器驱动执行S807或S808之后,可以执行S810~S814。
S810,关闭(stream off)闪烁传感器。
S811,清理闪烁传感器的寄存器数据。
当需要改变增益时,说明闪烁传感器当前采集的数据已不符合要求,因此,需要先关闭闪烁传感器,并清理闪烁传感器的寄存器数据,待增益设置完成后再开启闪烁传感器采集数据。
S812,给闪烁传感器下发新的增益。
当闪烁传感器驱动执行了S807时,新的增益即调低后的增益;当闪烁传感器驱动执行了S808时,新的增益即调高后的增益。
S813,开启闪烁传感器。
S814,清理ring_buffer。
ring_buffer中的数据是增益改变前闪烁传感器采集的旧数据,旧数据的增益与新数据(增益改变后闪烁传感器采集的数据)的增益不同,若不清理旧数据,可能导致基于两种数据确定的环境光亮度周期出现较大的误差。
清理ring_buffer后,闪烁传感器驱动可以返回执行S805。
由图8可知,传统的去条纹方案中,闪烁传感器的增益由闪烁传感器驱动调节,闪烁传感器驱动无法得知图像传感器的感光情况,若图像传感器的感光情况与闪烁传感器的感光情况不同,即使闪烁传感器驱动将闪烁传感器的增益调节至一个合适的值,基于闪烁传感器采集的数据计算得到的环境光亮度周期与图像传感器感受到的情况也将不同。此外,图8所示的方法仅调节增益,调节效果有限,在光源不稳定、室外高亮场景或亮暗切换场景中,仅依赖闪烁传感器检测环境光的亮度周期经常出现检测数据为0或者数据波动较大的情况,从而影响条纹去除效果。
下面介绍本申请提供的确定拍摄参数的方法实施例。
如图9所示,该方法包括以下步骤。
S910,通过闪烁传感器获取当前亮度。
用户启动相机APP后,闪烁传感器开始采集数据。
例如,闪烁传感器按照预设的采样频率采集环境光的强度,每次输出256个原始数据(RawData),去条纹模块获取该256个RawData后,对该256个RawData做均值运算,得到avgRaw,avgRaw即当前亮度CurrentLuma。
S920,通过图像传感器获取目标亮度。
用户启动相机APP后,图像传感器开始采集数据。图像传感器采集到的数据为Lv,可以对Lv做线性映射(linear maping),得到目标亮度TargetLuma。
下面给出一个线性映射的例子。
AE模块获取CurrentLuma和TargetLuma后,可以执行下列步骤。
S930,当所述当前亮度与所述目标亮度的差值的绝对值大于或等于阈值时,确定所述闪烁传感器的当前曝光量。
阈值可以设置为TargetLuma*tolerance,tolerance可以取0.2。
例如,TargetLuma为300,CurrentLuma为280,abs(TargetLuma,CurrentLuma)=20,其中,abs()表示绝对值运算;TargetLuma*tolerance=60,由于20<60,可以认为闪烁传感器的感光情况与图像传感器的感光情况相差不大,这种情况下无需调节闪烁传感器的拍摄参数(如,增益和/或快门),从而可以快速通过闪烁传感器获取环境光变换频率。
又例如,TargetLuma为300,CurrentLuma为200,abs(TargetLuma,CurrentLuma)=100;TargetLuma*tolerance=60,由于100>60,可以认为闪烁传感器的感光情况与图像传感器的感光情况相差较大,这种情况下需要调节闪烁传感器的拍摄参数。
若AE模块确定调节闪烁传感器的拍摄参数,则可以计算闪烁传感器的当前曝光量。
可选地,AE模块可以获取闪烁传感器的当前增益CurGain和当前快门CurShutter,对当前增益和当前快门进行乘积运算确定当前曝光量CurExpoValue,例如,CurExpoValue=CurGain*CurShutter。
随后,AE模块执行下列步骤,计算目标曝光量。
S940,根据所述当前亮度、所述目标亮度和所述当前曝光量确定目标曝光量,所述目标曝光量与所述当前曝光量正相关,并且,所述目标曝光量与所述目标亮度和所述当前亮度的比值正相关。
例如,目标曝光量为TargetExpoValue,TargetExpoValue=CurExpoValue*(TargetLuma/CurrentLuma)。
TargetLuma与CurrentLuma的比值反映了图像传感器的感光情况与闪烁传感器的感光情况的差异,基于比值和CurExpoValue的乘积可以确定闪烁传感器的目标曝光量TargetExpoValue,基于TargetExpoValue确定的目标拍摄参数能够缩小图像传感器的感光情况与闪烁传感器的感光情况的差异,提高环境光变化频率的检测结果的准确性。
S950,根据所述目标曝光量从多个拍摄参数中确定目标拍摄参数,所述多个拍摄参数各自对应一个曝光量,所述目标拍摄参数为所述多个拍摄参数中曝光量与所述目标曝光量最接近的拍摄参数。
AE模块可以根据TargetExpoValue查询曝光表(ExposeTable),从曝光表包含的多个拍摄参数中确定与目标曝光量最接近的拍摄参数。一种可选的曝光表如表1所示。
表1
档位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
增益 | 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 512 | 512 |
快门 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 4 |
表1中的多个拍摄参数包括11个增益和3个快门,11个增益与3个快门中的最小值(1)组成11个拍摄参数(档位1~11对应的拍摄参数),10个增益中的最大值(512)与3个快门中除最小值之外的2个快门组成2个拍摄参数(档位12~13对应的拍摄参数)。不同档位的拍摄参数对应曝光量的曝光量不同,AE模块可以根据从表1中选择一个曝光量与目标曝光量最接近的拍摄参数作为目标拍摄参数。
由于改变快门会重新使能闪烁传感器,导致环境光检测结果出现延迟,此外,较大的快门还会影响闪烁传感器采集到的数据的解析度,因此,当需要改变闪烁传感器的曝光量时,优先通过改变增益来改变曝光量,当增益调节至最大值后仍无法满足曝光量需求时,再调节快门。表1中,档位1~11对应的拍摄参数中的快门均为最小值,可以在满足曝光量的同时避免数据解析度下降,档位12~13对应的拍摄参数中的增益均为最大值,可以满足极暗环境下的检测需求。
AE模块调节增益和快门的信息流如图10所示。
闪烁传感器将采集到的原始数据传递至去条纹模块,去条纹模块对原始数据做均值运算,得到的均值(avgRaw)即当前亮度CurrentLuma。去条纹模块将CurrentLuma传递至AE模块。AE模块还从图像传感器获取数据Lv,对Lv做线性映射处理得到目标亮度TargetLuma。随后,AE模块基于CurrentLuma和TargetLuma执行S930~S950,输出增益和快门,通过闪烁传感器模块将增益和快门传递至闪烁传感器驱动,由闪烁传感器驱动生效增益和快门,控制闪烁传感器按照新生效的增益和快门采集数据。
需要说明的是,若AE模块确定只需调节增益,则AE模块可以只输出增益;若AE模块确定只需调节快门,则AE模块可以只输出快门。
可选地,图9所示的方法还包括:当目标拍摄参数与上次生效的拍摄参数相同时,确定不更改闪烁传感器的拍摄参数;当目标拍摄参数与上次生效的拍摄参数不同时,指示闪烁传感器的驱动生效目标拍摄参数。
当目标拍摄参数与上次生效的拍摄参数相同时,说明拍摄参数已无法进一步调节(例如,上次生效的拍摄参数中增益和快门均已是最小值),则不再更改拍摄参数,从而可以快速通过闪烁传感器获取环境光变换频率。当目标拍摄参数与上次生效的拍摄参数不同时,说明拍摄参数还有调节空间,终端设备可以生效目标拍摄参数,提高环境光变化频率的检测结果的准确性。
图9提供的方法将闪烁传感器和图像传感器获取的亮度值进行比较,若这两个亮度值的差值的绝对值小于阈值,则认为闪烁传感器的感光情况与图像传感器的感光情况相同,不需要调节闪烁传感器的拍摄参数。若这两个亮度值的差值的绝对值大于或等于阈值,则认为闪烁传感器的感光情况与图像传感器的感光情况不同,需要调节闪烁传感器的拍摄参数,此时,可以根据目标亮度和当前亮度的比值较准当前曝光量,得到目标曝光量,并根据目标曝光量调节闪烁传感器的拍摄参数,使得闪烁传感器的感光情况接近图像传感器的感光情况,从而提高了环境光变化频率的检测结果的准确性。
下面再结合图11~图14介绍本申请提供的另外两个确定拍摄参数的方法实施例。
图11所示的方法包括以下内容。
S1101,获取当前亮度CurrentLuma。
S1102,获取目标亮度TargetLuma。
S1103,确定TargetLuma与CurrentLuma的差值的绝对值是否小于阈值。
若绝对值小于阈值,说明闪烁传感器的感光情况与图像传感器的感光情况相差不大,这种情况下无需调节闪烁传感器的拍摄参数(如,增益和/或快门),闪烁传感器可以继续采集数据,AE模块可以返回执行S1101,从而可以快速通过闪烁传感器获取环境光变换频率。
若绝对值大于或等于阈值,说明闪烁传感器的感光情况与图像传感器的感光情况相差较大,需要调节闪烁传感器的拍摄参数。
S1104,计算当前曝光量CurExpoValue。
S1105,计算目标曝光量TargetExpoValue。
S1106,根据TargetExpoValue在曝光表中查找gain和shutter。
S1107,确定当前的gain和shutter与上次生效的gain和shutter是否相同。
当前的gain和shutter即从曝光表中查找到的gain和shutter。若当前的gain和shutter与上次生效的gain和shutter相同,说明拍摄参数已无法进一步调节(例如,上次生效的拍摄参数中gain和shutter均已是最小值),则不再更改gain和shutter,从而可以快速通过闪烁传感器获取环境光变换频率。若当前的gain和shutter与上次生效的gain和shutter不同,说明拍摄参数还有调节空间,AE模块可以生效当前的gain和shutter,提高环境光变化频率的检测结果的准确性。
S1108,生效当前的gain和shutter。
下面介绍生效当前的gain和shutter的方法。
如图12所示,若需要生效当前gain,AE模块可以调用HAL的闪烁传感器模块提供的gain接口,例如,AE模块可以依次调用函数AdjustFlickerSensorGain和函数batch指示闪烁传感器模块生效当前gain。闪烁传感器模块响应于AE模块的调用,获取闪烁传感器驱动上报的flicker_gain节点(/sys/class/ap_sensor/color_sensor/flicker_gain)。
若需要生效当前gain,AE模块可以调用HAL的闪烁传感器模块提供的shutter接口,例如,AE模块可以依次调用函数AdjustFlickerSensorItime和函数batch指示闪烁传感器模块生效当前shutter。闪烁传感器模块响应于AE模块的调用,获取闪烁传感器驱动上报的flicker_itime节点(/sys/class/ap_sensor/color_sensor/flicker_itime)。
随后,闪烁传感器模块调用函数sensors_batch和函数open/write,对flicker_gain节点和flicker_itime节点进行写操作,达到控制闪烁传感器的gain和shutter的目的。
图13是闪烁传感器驱动生效的gain和shutter的方法。
闪烁传感器模块调用函数open/write对flicker_gain节点和flicker_itime节点进行写操作后,color sensor driver接口收到当前gain和当前shutter,随后,colorsensor driver接口确定终端设备采用的闪烁传感器的器件类型,选择器件类型对应的驱动。
例如,flicker传感器驱动1为ams_tcs3707驱动,对应的器件类型为ams_tcs3707,若前终端设备采用的闪烁传感器的器件类型为ams_tcs3707,则color sensor driver接口将当前gain和当前shutter传递给ams_tcs3707驱动,ams_tcs3707驱动基于调用获取当前gain和当前shutter,并将当前gain和当前shutter写入ams_tcs3707的寄存器,生效当前gain和当前shutter。
图14是本申请提供的另一个确定拍摄参数的方法实施例。
S1401,图像传感器向AE模块发送采集到的数据Lv。
图像传感器可以基于相机APP的控制采集数据,例如,用户点击了相机APP的图像,启动相机APP,相机APP可以通过图像传感器驱动控制图像传感器采集数据。
S1402,AE模块根据Lv确定TargetLuma。
AE模块可以对Lv做线性映射得到TargetLuma。
S1403,闪烁传感器向去条纹模块发送RawData。
闪烁传感器可以基于相机APP的控制采集数据,例如,用户点击了相机APP的图像,启动相机APP,相机APP可以通过闪烁传感器驱动控制闪烁传感器采集数据。
S1404,去条纹模块根据RawData确定avgRaw。
去条纹模块可以对多个RawData做均值运算得到avgRaw。
S1405,去条纹模块向AE模块发送avgRaw,avgRaw即CurrentLuma。
S1406,AE模块确定abs(TargetLuma,CurrentLuma)和阈值的大小。
AE模块获取TargetLuma和CurrentLuma后,计算这两个亮度的差值的绝对值,并判断绝对值和阈值的大小。
S1407,当abs(TargetLuma,CurrentLuma)≥阈值时,计算TargetExpoValue。
AE模块可以首先通过CurGain*CurShutter得到CurExpoValue。随后,AE模块通过CurExpoValue*(TargetLuma/CurrentLuma)得到TargetExpoValue。
S1408,AE模块根据TargetExpoValue在曝光表中查找当前的gain和shutter。
S1409,AE模块向闪烁传感器发送当前的gain和shutter。
AE模块可以通过图12和图13所示的方法向闪烁传感器发送当前的gain和shutter。
S1410,闪烁传感器根据当前的gain和shutter采集环境光数据。
S1411,闪烁传感器向去条纹模块发送环境光数据。
闪烁传感器可以先将环境光数据放入buf_16_bit,随后,闪烁传感器驱动将环境光数据从buf_16_bit填充到ring_buffer中,以便于去条纹模块获取环境光数据。
S1412,去条纹模块根据环境光数据确定环境光变化频率,并根据环境光变化频率确定图像传感器的曝光时间。
去条纹模块可以将图像传感器的曝光时间设置为环境光变化频率的整数倍。
S1413,去条纹模块将曝光时间发送给图像传感器。
S1414,图像传感器根据曝光时间采集数据,生成没有条纹的图像。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器中,经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器执行的可执行目标文件。
该计算机程序产品也可以固化在芯片中的代码。本申请对计算机程序产品的具体形式不做限定。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质可以是易失性存储器或非易失性存储器,或者,可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种确定拍摄参数的方法,其特征在于,所述方法包括:
通过闪烁传感器获取当前亮度;其中,所述闪烁传感器按照预设的采样频率采集环境光的强度,每次输出256个原始数据,去条纹模块获取所述256个原始数据后,对所述256个原始数据做均值运算,得到当前亮度;
通过图像传感器获取目标亮度;其中,用户启动相机APP后,所述图像传感器开始采集亮度值,对所述亮度值做线性映射,得到目标亮度;
当所述当前亮度与所述目标亮度的差值的绝对值大于或等于阈值时,确定所述闪烁传感器的当前曝光量;
根据所述当前亮度、所述目标亮度和所述当前曝光量确定目标曝光量,所述目标曝光量与所述当前曝光量正相关,并且,所述目标曝光量与所述目标亮度和所述当前亮度的比值正相关;
根据所述目标曝光量从多个拍摄参数中确定目标拍摄参数,所述多个拍摄参数各自对应一个曝光量,所述目标拍摄参数为所述多个拍摄参数中曝光量与所述目标曝光量最接近的拍摄参数。
2.根据权利要求1所述的方法,其特征在于,所述多个拍摄参数包括M个增益和N个快门,所述M个增益与所述N个快门中的最小值组成M个拍摄参数,所述M个增益中的最大值与所述N个快门中除最小值之外的N-1个快门组成N-1个拍摄参数。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述目标拍摄参数与上次生效的拍摄参数相同时,确定不更改所述闪烁传感器的拍摄参数;
当所述目标拍摄参数与上次生效的拍摄参数不同时,指示所述闪烁传感器的驱动生效所述目标拍摄参数。
4.根据权利要求1或2所述的方法,其特征在于,所述确定所述闪烁传感器的当前曝光量,包括:
获取所述闪烁传感器的当前增益和当前快门;
对所述当前增益和所述当前快门进行乘积运算确定所述当前曝光量。
5.根据权利要求1或2所述的方法,其特征在于,所述目标曝光量等于所述当前曝光量乘以所述目标亮度和所述当前亮度的比值。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述当前亮度与所述目标亮度的差值的绝对值小于所述阈值时,确定不更改所述闪烁传感器的拍摄参数。
7.一种确定拍摄参数的装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述装置执行权利要求1至6中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得包含所述处理器的装置执行权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211131161.5A CN116744118B (zh) | 2022-09-16 | 2022-09-16 | 确定拍摄参数的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211131161.5A CN116744118B (zh) | 2022-09-16 | 2022-09-16 | 确定拍摄参数的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116744118A CN116744118A (zh) | 2023-09-12 |
CN116744118B true CN116744118B (zh) | 2024-07-12 |
Family
ID=87908590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211131161.5A Active CN116744118B (zh) | 2022-09-16 | 2022-09-16 | 确定拍摄参数的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116744118B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596342A (zh) * | 2021-06-29 | 2021-11-02 | 影石创新科技股份有限公司 | 自动曝光方法、曝光装置、相机及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100968978B1 (ko) * | 2008-10-22 | 2010-07-14 | 삼성전기주식회사 | 자동 노출 제어 장치 및 방법 |
CN104580923A (zh) * | 2014-12-30 | 2015-04-29 | 重庆金山科技(集团)有限公司 | 电子内窥镜曝光装置及曝光方法 |
CN112153297B (zh) * | 2019-06-27 | 2022-02-18 | 浙江大华技术股份有限公司 | 曝光调整方法及装置、存储装置 |
CN113163128B (zh) * | 2021-05-08 | 2023-09-12 | 维沃移动通信(杭州)有限公司 | 图像曝光方法和电子设备 |
-
2022
- 2022-09-16 CN CN202211131161.5A patent/CN116744118B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596342A (zh) * | 2021-06-29 | 2021-11-02 | 影石创新科技股份有限公司 | 自动曝光方法、曝光装置、相机及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116744118A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
US12212884B2 (en) | Method for shooting long-exposure image and electronic device | |
CN112087649B (zh) | 一种设备搜寻方法以及电子设备 | |
CN113887264B (zh) | 扫码方法、系统及相关装置 | |
CN115529419B (zh) | 一种多人工光源下的拍摄方法及相关装置 | |
CN111741284A (zh) | 图像处理的装置和方法 | |
CN116048358B (zh) | 悬浮球的控制方法和相关装置 | |
WO2023284715A1 (zh) | 一种物体重建方法以及相关设备 | |
WO2021204103A1 (zh) | 照片预览方法、电子设备和存储介质 | |
CN118354012A (zh) | 显示同步的方法、电子设备以及可读存储介质 | |
CN116048831A (zh) | 一种目标信号处理方法和电子设备 | |
CN116051351A (zh) | 一种特效处理方法和电子设备 | |
CN116723410B (zh) | 调节帧间隔的方法和装置 | |
CN115437601B (zh) | 图像排序方法、电子设备、程序产品及介质 | |
CN116048629B (zh) | 系统服务切换方法及控制装置、电子设备和存储介质 | |
CN115460343B (zh) | 图像处理方法、设备及存储介质 | |
CN116744118B (zh) | 确定拍摄参数的方法和装置 | |
CN117234351B (zh) | 触控处理方法、终端设备以及存储介质 | |
WO2023193720A9 (zh) | 控制方法及中控设备 | |
CN116389884A (zh) | 缩略图显示方法及终端设备 | |
CN114630152A (zh) | 用于图像处理器的参数传输方法、装置及存储介质 | |
CN116684517B (zh) | 发送响应消息的方法和装置 | |
CN116233599B (zh) | 一种录像模式推荐方法和电子设备 | |
CN118450253B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Terminal Co.,Ltd. Country or region after: China Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Patentee before: Honor Device Co.,Ltd. Country or region before: China |