CN116709021A - 变焦响应方法、电子设备及存储介质 - Google Patents

变焦响应方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116709021A
CN116709021A CN202310743330.9A CN202310743330A CN116709021A CN 116709021 A CN116709021 A CN 116709021A CN 202310743330 A CN202310743330 A CN 202310743330A CN 116709021 A CN116709021 A CN 116709021A
Authority
CN
China
Prior art keywords
zoom magnification
camera
image frame
preview image
magnification value
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.)
Granted
Application number
CN202310743330.9A
Other languages
English (en)
Other versions
CN116709021B (zh
Inventor
李越
许伦豹
张羽桐
张力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310743330.9A priority Critical patent/CN116709021B/zh
Publication of CN116709021A publication Critical patent/CN116709021A/zh
Application granted granted Critical
Publication of CN116709021B publication Critical patent/CN116709021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)

Abstract

本申请实施例提供了一种变焦响应方法、电子设备及存储介质。在该方法中,电子设备响应于用户的变焦操作,生成携带变焦倍率值的预览图像帧请求,该变焦倍率值优先生效于基于在此之前曝光而生成的预览图像帧数据上,以此缩短变焦倍率值的生效链路,减少了变焦响应延时,进而提升了用户的变焦操作体验。

Description

变焦响应方法、电子设备及存储介质
本申请是分案申请,原申请的名称是变焦响应方法、电子设备及存储介质,原申请的申请号是202310136978.X,原申请日是2023年02月13日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及智能终端技术领域,尤其涉及一种变焦响应方法、电子设备及存储介质。
背景技术
随着手机、平板电脑等智能终端的发展,拍照功能对用户而言越来越重要。以手机为例,为了使用户获得更好的拍照体验,终端上通常会设置焦段不同的多个摄像头以便拍摄不同距离的景物。
当拍摄不同距离的景物时,用户可以通过相关操作实现变焦(或称调焦),以获得清晰的图像或视频。然而,手机等智能终端的系统对用户变焦操作的响应延时可能较高,使得用户变焦操作与拍摄预览界面FOV(Field of View,视场角)发生相应变化的时间差值较长,导致用户体验不佳。
发明内容
为了解决上述技术问题,本申请实施例提供一种变焦响应方法、电子设备及存储介质。在该方法中,电子设备响应于用户的变焦操作,生成携带变焦倍率值的预览图像帧请求,该变焦倍率值优先生效于基于在此之前曝光而生成的预览图像帧数据上,以此缩短变焦倍率值的生效链路,减少了变焦响应延时,进而提升了用户的变焦操作体验。
第一方面,本申请实施例提供一种变焦响应方法。该方法应用于电子设备中,包括:
在电子设备按照生成先后顺序依次处理预览图像帧请求以生成并显示预览图像帧的过程中,响应于接收到的变焦操作,电子设备生成第一预览图像帧请求;第一预览图像帧请求包括第一变焦倍率值,用于生成第一预览图像帧;在电子设备对第二预览图像帧数据进行空间对齐处理以计算裁切数据时,根据第一变焦倍率值计算与第二预览图像帧数据对应的第一裁切数据;其中,第二预览图像帧数据是响应于第二预览图像帧请求而控制第一摄像头曝光生成的,第二预览图像帧请求的生成时间早于第一预览图像帧请求的生成时间;电子设备根据第一裁切数据对第二预览图像帧数据进行裁切处理,得到与第二预览图像帧请求对应的第二预览图像帧,并显示第二预览图像帧;其中,第二预览图像帧的视场角与第一变焦倍率值匹配。
其中,第一变焦倍率值即为需要提前生效的变焦倍率值。
这样,与第一预览图像帧请求对应的变焦倍率值提前在于第二预览图像帧请求对应的预览图像帧数据上生效,以此缩短变焦倍率值的生效链路,减少了变焦响应延时,使得用户变焦操作使相机应用预览界面调整至某一变焦倍率,和与该变焦倍率对应的预览图像在电子设备屏幕上显示的时间差值较小,进而提升了用户的变焦操作体验。
根据第一方面,与第二预览图像帧请求对应的变焦倍率为第二变焦倍率值;第二预览图像帧数据为在原始曝光图像帧数据上基于第二变焦倍率值进行初步裁切而得;电子设备根据第一变焦倍率值计算与第二预览图像帧数据对应的第一裁切数据,可以包括:如果根据第一变焦倍率值、第二变焦倍率值以及第二预览图像帧数据,确定能够基于第一变焦倍率值对第二预览图像帧数据完成目标裁切,则根据第一变焦倍率值计算与第二预览图像帧数据对应的第一裁切数据。
考虑到无论是在Zoom In场景中还是Zoom Out场景中,当用户的变焦操作会涉及镜头切换时,可能会出现由于原镜头(即镜头切换前用于图像曝光的镜头)曝光所得的预览图像帧无法满足新的变焦倍率值的情况,则电子设备首先判断是否能够基于新的变焦倍率值完成目前裁切,以确保预览图像数据处理流程的顺利执行。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:如果根据第一变焦倍率值、第二变焦倍率值以及第二预览图像帧数据,确定无法基于第一变焦倍率值对第二预览图像帧数据完成目标裁切,则电子设备获取与第二预览图像请求对应的通过第二摄像头采集的第三预览图像帧数据;电子设备根据第一变焦倍率值计算与第三预览图像帧数据对应的第二裁切数据,并根据第二裁切数据对第三预览图像帧数据进行裁切处理,得到与第二预览图像帧请求对应的第三预览图像帧,并显示第三预览图像帧。
这样,电子设备通过多个摄像头同时进行图像曝光操作,得到与同一个预览图像帧请求对应的多个预览图像帧数据,以在变焦场景涉及镜头切换时,能够将新的变焦倍率值生效于通过目标摄像头采集的预览图像帧数据上,解决了新的变焦倍率值无法提前生效的问题。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:响应于用户的变焦操作,电子设备开启第二摄像头。
这样,在电子设备预计需要将第一变焦倍率值提前生效于第二摄像头采集的图像数据上时,提前开启第二摄像头,以满足第一变焦倍率能够提前生效的条件。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备获取与第二预览图像请求对应的通过第二摄像头采集的第三预览图像帧数据,包括:如果第一变焦倍率值属于第二摄像头的变焦范围,则电子设备获取与第二预览图像帧请求对应的通过第二摄像头采集的第三预览图像帧数据。
这样,如果需要提前生效的变焦倍率值属于其他摄像头的变焦范围,则电子设备提前开启目标摄像头,并通过多个摄像头同时进行图像曝光操作,得到与同一个预览图像帧请求对应的多个预览图像帧数据,能够将新的变焦倍率值生效于通过目标摄像头采集的预览图像帧数据上,解决了新的变焦倍率值无法提前生效的问题。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备获取与第二预览图像请求对应的通过第二摄像头采集的第三预览图像帧数据,包括:如果第一变焦倍率值和第二变焦倍率值均属于第一摄像头的变焦范围,第一变焦倍率值小于第二变焦倍率值,则电子设备获取与第二预览图像帧请求对应的通过第二摄像头采集的第三预览图像帧数据;其中,第二摄像头对应的变焦倍率值小于第一摄像头对应的变焦倍率值。
这样,在Zoom out场景下,如果第一变焦倍率值和第二变焦倍率值属于同一个摄像头的变焦范围,则可以在变焦倍率值更小的目标摄像头采集的相应图像数据上提前生效第一变焦倍率值,缩短第一变焦倍率值的生效路径,降低变焦操作的响应延时。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:在未获取到与第二预览图像帧请求对应的通过第二摄像头采集的第三预览图像帧数据时,电子设备根据当前变焦倍率值计算与第二预览图像帧数据对应的第三裁切数据,并根据第三裁切数据对第二预览图像帧数据进行裁切处理,得到与第二预览图像帧请求对应的第四预览图像帧,并显示第四预览图像帧。
其中,当前变焦倍率值用于指示距离当前时间最近一次生效的变焦倍率值。在按照生成先后顺序依次处理预览图像帧请求以生成并显示预览图像帧的过程中,当前变焦倍率值随着实时更新。例如,在第一个预览图像帧请求处理完成之后,在第二个预览图像帧请求处理完成之前,当前变焦倍率值即为在与第一个预览图像帧请求对应的图像帧数据上生效的变焦倍率值。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:如果第一变焦倍率值大于第二变焦倍率值,且二者的差值大于预设阈值,则确定无法基于第一变焦倍率值对第二预览图像帧数据完成目标裁切。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:如果第一变焦倍率值小于第二变焦倍率值,且第二预览图像帧数据的预留边缘数据无法满足与第一变焦倍率值对应的图像视场角,则电子设备确定无法基于第一变焦倍率值对第二预览图像帧数据完成目标裁切。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备包括:相机服务和相机HAL;相机HAL包括接口模块、实时管线处理模块和离线管线处理模块;实时管线处理模块包括传感器节点和IFE模块,离线管线处理模块包括SAT模块和IPE模块;
其中,相机服务持续生成预览图像帧请求,并将每个预览图像帧请求发送至相机HAL;相机HAL中的接口模块接收到每个预览图像帧请求后,将每个预览图像帧请求发送至传感器节点;传感器节点依次根据每个预览图像帧请求控制摄像头进行曝光出图操作;IFE模块接收到与每个预览图像帧请求对应的原始预览图像帧数据之后,根据与预览图像帧请求对应的变焦倍率值对原始预览图像帧数据进行初步裁切后发送至SAT模块;SAT模块对接收到的预览图像帧数据进行空间对齐处理以计算裁切数据,并将裁切数据计算结果发送至IPE模块;IPE模块根据裁切数据计算结果对相应的预览图像帧数据进行目标裁切处理,得到待显示的预览图像帧数据。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:在接口模块接收到每个预览图像帧请求之后,如果预览图像帧请求包括变焦倍率值,则将变焦倍率值写入目标队列中;目标队列为先进先出队列。
其中,目标队列中用于存储需要提前生效的变焦倍率值。
这样,通过在全局维护用于存储需要提前生效的变焦倍率值的目标队列,能够解决相机HAL接收预览图像帧请求的速度与Offline Pipeline处理预览图像帧请求的速度无法逐帧同步的问题。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:SAT模块在对接收到的第五预览图像帧数据进行空间对齐处理以计算裁切数据时,如果在目标队列中读取到第三变焦倍率值,则根据第三变焦倍率值计算与第五预览图像帧数据对应的第四裁切数据;IPE模块根据第四裁切数据对第五预览图像帧数据进行目标裁切处理,得到待显示的第五预览图像帧。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:SAT模块在对接收到的第五预览图像帧数据进行空间对齐处理以计算裁切数据时,如果未在目标队列中读取到变焦倍率值,则根据当前变焦倍率值计算与第五预览图像帧数据对应的第五裁切数据;IPE模块根据第五裁切数据对第五预览图像帧数据进行目标裁切处理,得到待显示的第六预览图像帧;其中,第五预览图像帧数据为传感器节点基于第三预览图像帧请求控制第三摄像头曝光而得,当前变焦倍率值用于指示距离当前时间最近一次生效的变焦倍率值。
根据第一方面,或者以上第一方面的任意一种实现方式,第五预览图像帧数据是IFE模块在与第三预览图像帧请求对应的原始曝光图像帧数据上基于与第三预览图像帧请求对应的第四变焦倍率值进行初步裁切得到的;SAT模块如果根据第三变焦倍率值、第四变焦倍率值以及第五预览图像帧数据,确定IPE模块无法基于第三变焦倍率值对第五预览图像帧数据完成目标裁切,则SAT模块获取与第三预览图像帧请求对应的通过第四摄像头采集的第七预览图像帧数据;SAT模块根据第三变焦倍率值计算与第七预览图像帧数据对应的第六裁切数据;IPE模块根据第六裁切数据对第七预览图像帧数据进行裁切处理,得到与第三预览图像帧请求对应的待显示的第七预览图像帧。
根据第一方面,或者以上第一方面的任意一种实现方式,如果第三变焦倍率值属于第四摄像头的变焦范围,则SAT模块获取与第三预览图像帧请求对应的通过第四摄像头采集的第七预览图像帧数据。
根据第一方面,或者以上第一方面的任意一种实现方式,如果第三变焦倍率值和第四变焦倍率值均属于第三摄像头的变焦范围,第三变焦倍率值小于第四变焦倍率值,则SAT模块获取与第三预览图像帧请求对应的通过第四摄像头采集的第七预览图像帧数据;其中,第四摄像头对应的变焦倍率值小于第三摄像头对应的变焦倍率值。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备还包括多摄决策模块;该方法还包括:响应于用户的变焦操作,多摄决策模块控制电子设备提前开启第四摄像头。
根据第一方面,或者以上第一方面的任意一种实现方式,变焦操作包括:点击变焦控件的操作,滑动变焦控件的操作,双指滑动预览界面的操作。
当用户变焦操作为滑动操作(如单指滑动变焦控件或双指滑动预览界面等)时,降低系统的变焦响应时延能够有效提高用户变焦操作的跟手性;当用户变焦操作为点击操(如点击变焦控件等)时,缩短变焦倍率值的生效链路能够有效提高系统对用户变焦操作的响应速度。
第二方面,本申请实施例提供一种电子设备。该电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行第一方面以及第一方面中任意一项的变焦响应方法。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请实施例提供一种计算机可读存储介质。该计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第一方面以及第一方面中任意一项的变焦响应方法。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面或第一方面中任意一项的变焦响应方法。
第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚和该处理电路通过内部连接通路互相通信,该处理电路执行如第一方面或第一方面中任意一项的变焦响应方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1a-图1d为示例性示出的应用场景示意图;
图2为示例性示出的电子设备的硬件结构示意图;
图3为示例性示出的电子设备的软件架构示意图;
图4为示例性示出的变焦响应流程涉及的模块交互示意图;
图5为示例性示出的变焦响应延时现象;
图6为示例性示出的变焦响应方法涉及的模块交互示意图;
图7a-图7b为示例性示出的变焦倍率值优先生效的示意图;
图8为示例性示出的变焦倍率队列的示意图;
图9a-图9b为示例性示出的图像视场角范围对比示例;
图10a-图10b为示例性示出的多摄决策模块提前开启目标摄像头时的模块交互示意图;
图10c为示例性示出的多个摄像头同时开启时的图像帧数据曝光及传输示意;
图11为示例性示出的变焦倍率值生效的示意图;
图12为示例性示出的Offline Pipeline中SAT模块处理预览图像帧数据的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
随着终端技术及半导体技术的发展,为了满足用户的拍摄需求,在同一终端中设置具有不同焦段的摄像头已成为终端发展的趋势。通过将不同焦段的摄像头同时设置在同一终端中,使得终端仅通过调整变焦(zoom)倍率(或称变焦比、ZoomRatio值等),就可以调整预览界面的FOV,实现景物放大或缩小的效果。
上述终端可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mo bile personal computer,UMPC)、上网本、个人数字助理(personal digitalassistant,PDA)或专门的照相机(例如单反相机、卡片式相机)等,本申请对上述终端设备的具体类型不作任何限制。
下述以终端设备为手机为例进行相关解释说明。
图1a示例性的示出了一种应用场景。手机检测到用户作用于相机应用图标的用户操作(比如触摸/点击操作),响应于该操作,可以显示图1a中(1)所示的拍摄界面10。拍摄界面10可以是相机应用程序的默认拍照模式的用户界面,用户可以在该界面上完成拍照。相机应用程序是智能手机、平板电脑等电子设备上的一款图像拍摄的应用程序,本申请对该应用程序的名称不做限制。也就是说,用户可以通过点击相机应用图标来打开相机应用程序的拍摄界面10。可以理解的,默认拍照模式下的默认摄像头不限于为后置摄像头,手机也可以将前置摄像头设置为默认摄像头。也就是说,在开启相机应用程序之后,手机可以在预览区域102中显示前置摄像头采集的图像,可用于用户通过默认前置摄像头进行拍照。
如图1a中(1)所示,拍摄界面10可包括参数调节区域101、预览区域102、相机模式选项区域103、图库快捷控件105、摄像头翻转控件104、快门控件106、变焦控件107。其中,参数调节区域101中的各个控件用于相应的拍摄参数调整,包括但不限于:闪光灯设置控件、AI识别开关设置控件、色彩标准设置控件、以及更加详细的相机设置控件。预览区域102可用于显示预览图像,该预览图像为手机通过摄像头实时采集的图像。手机可以实时刷新预览区域102中的显示内容,以便于用户预览摄像头当前采集的图像。相机模式选项103中可以显示有一个或多个拍摄模式选项。这一个或多个拍摄模式选项可以包括但不限于:光圈模式选项、夜景模式选项、人像模式选项、拍照模式选项、录像模式选项、专业选项模式和更多选项。可以理解的,这一个或多个拍摄模式选项在界面上可以表现为文字信息,例如“光圈”、“夜景”、“人像”、“拍照”、“录像”、“专业”、“更多”,还可以表现为图标或者其他形式的交互元素(interactive element,IE),本申请对此不作限制。
继续参照图1a中(1),变焦控件107用于触发手机调节变焦倍率,从而调整拍摄预览界面102的FOV。变焦控件107上显示的“1x”表示手机当前的光学变焦倍率为1倍倍率,后续x表示变焦倍率。
在一种示例中,如图1a中(1)所示,用户点击变焦控件107,手机响应于用户对变焦控件107的点击操作,调整手机当前的变焦倍率。示例性的,用户点击变焦控件107触发手机的变焦倍率由“1x”调整为“3x”,如图1a中(2)所示,此时手机拍摄预览界面的FOV变小,拍摄预览界面中的拍摄景物变大。类似的,用户多次点击变焦控件107可以按照预设的倍率差值多次调整(增加或降低)手机当前的变焦倍率。
在另一种示例中,如图1b中(1)所示,用户滑动变焦控件107,手机响应于用户对变焦控件107的滑动操作,调整手机当前的变焦倍率,拍摄预览界面的FOV以及拍摄景物的大小随之变化。当用户滑动变焦控件107以调整手机当前变焦倍率时,变焦控件107的显示样式发生变化,以指示手机变焦倍率正在调整中,可以参照图1b中(2)所示。继续参照图1b中(2),响应于用户的滑动操作,手机当前变焦倍率108随之变化并显示于预览界面上,以使用户可以清楚获知手机当前的变焦倍率。当手机当前的变焦倍率调整至3.0x时,若用户停止对变焦控件的滑动操作并离手,则手机当前的变焦倍率被设置为3.0x,变焦控件107的显示样式还原并指示当前变焦倍率为“3x”,手机变焦倍率调整完成,此时可以参照图1a中(2)所示。在图1b所示的示例中,以用户向上滑动变焦控件107以增加变焦倍率为例,用户向下滑动变焦控件107以降低变焦倍率亦是类似,在此不再赘述。
在又一种示例中,如图1c中(1)所示,用户双指相背滑动预览界面,手机响应于用户的双指相背滑动操作,增大手机当前的变焦倍率,拍摄预览界面的FOV变小,拍摄景物变大。类似的,若用户双指相向滑动预览界面,手机响应于用户的双指相向滑动操作,降低手机当前的变焦倍率,拍摄预览界面的FOV变大,拍摄景物变小。当用户双指滑动(双指相背滑动或双指相向滑动)预览界面以调整手机当前变焦倍率时,变焦控件107的显示样式发生变化,以指示手机变焦倍率正在调整中,可以参照图1c中(2)所示。继续参照图1c中(2),响应于用户的双指滑动操作,手机当前变焦倍率109随之变化并显示于预览界面上,以使用户可以清楚获知手机当前的变焦倍率。当手机当前的变焦倍率调整至3.0x时,若用户停止双指滑动操作并离手,则手机当前的变焦倍率被设置为3.0x,变焦控件107的显示样式还原并指示当前变焦倍率为“3x”,手机变焦倍率调整完成,此时可以参照图1a中(2)所示。
然而,在例如图1a、图1b、图1c等涉及的变焦场景中,手机系统对于用户变焦操作(如点击变焦控件、滑动变焦控件、双指滑动预览界面等)的响应延时较高,具体可以表现为用户变焦操作(或称倍率调节操作)使手机调整至某一变焦倍率,和与该变焦倍率对应的预览图像在手机屏幕上显示的时间差值较大。以用户滑动变焦控件107调整手机当前的变焦倍率为例,结合图1d中(1)和图1d中(2)所示,当用户滑动变焦控件将手机的变焦倍率调整至3.0x时,预览界面上的手机当前变焦倍率108随之显示为“3.0x”,但拍摄预览界面的FOV并没有同步调整,而是在一段响应时延后与变焦倍率“3.0x”对应的预览图像才显示于手机屏幕上。在如图1d中(2)所示的示例中,手机界面上显示的手机当前变焦倍率108已调整,而拍摄预览界面的FOV并未相应调整,此时与手机预览图像对应的变焦倍率同手机界面上显示的手机当前变焦倍率108“3.0x”是不相符的。继续参照图1d中(3),当手机屏幕上显示与变焦倍率“3.0x”对应的预览图像时,由于用户持续滑动变焦控件的操作,用户设置的手机当前变焦倍率108有可能已经变成“3.2x”,此时与手机预览图像对应的变焦倍率“3.0x”同手机界面上显示的手机当前变焦倍率108“3.2x”也是不相符的。
针对用户的变焦操作,手机系统最理想的响应延时为0ms,也即随着用户的变焦操作,拍摄预览界面的FOV与手机界面上显示的手机当前变焦倍率是同步调整的。然而,受限于终端的硬件处理延时与软件架构的设计,针对用户的变焦操作,手机系统无法达到0ms的响应延时。可以理解的,针对用户的变焦操作,手机系统的响应延时越低,用户的变焦使用体验越佳。其中,在用户基于变焦操作调整手机拍摄预览界面FOV的过程中,关于第一帧预览图像和最后一帧预览图像的响应延时,对用户体验的影响最为重要。第一帧预览图像的响应延时较高,会表现为:用户的变焦操作已开始,但手机预览界面FOV并未跟随用户变焦操作实时调整;最后一帧预览图像的响应延时较高,会表现为:用户的变焦操作已停止,但手机预览界面FOV仍在变化。
随着触屏终端的普及,点击、滑动等操作成为人机交互的主要方式。在用户点击变焦控件、滑动变焦控件、双指滑动预览界面等过程中,终端拍摄预览界面FOV跟随用户操作变化的跟手性成为影响用户体验的重要指标。由此,如何降低终端对用户变焦操作的响应延时以提升用户体验是亟待解决的问题。
如图2所示为电子设备100的结构示意图。可选地,电子设备100可以为终端,也可以称为终端设备,终端可以为蜂窝电话(cellular phone)或平板电脑(pad)等具有摄像头的设备,本申请不做限定。需要说明的是,电子设备100的结构示意图可以适用于图1a~图1d中的手机。应该理解的是,图2所示的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器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可以包括压力传感器,陀螺仪传感器,加速度传感器,温度传感器,运动传感器,气压传感器,磁传感器,距离传感器,接近光传感器,指纹传感器,触摸传感器,环境光传感器,骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。景物通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。
在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。其中,摄像头包含光敏传感器、透镜以及固定光敏传感器和透镜的封装体,摄像头用于获取特定倍率范围的拍摄图像。摄像头193的焦距越小,其视场角越大,取景范围就越大,可以拍摄到更多的景物。反之,摄像头193的焦距越大,其视场角越小,取景范围就越小,可以拍摄到更少但更远的景物。以N为3为例,3个摄像头分别为广角摄像头、主摄像头及长焦摄像头,其各自的倍率范围分别为0.4-1.0、1.0-3.5、3.5-30,上述倍率范围的取值仅为示例性说明。这几种摄像头在视场角方面的表现为:广角摄像头优于主摄像头,主摄像头优于长焦摄像头。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理,例如使得电子设备100实现本申请实施例中的变焦响应方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏194。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。
陀螺仪传感器可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。
加速度传感器可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时加速度传感器可检测出重力的大小及方向。加速度传感器还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
按键190包括开机键(或称电源键),音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图3是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,硬件抽象层(hardware abstraction layer,HAL),以及内核(Kernel)层(也称驱动层)。
可以理解的,图3仅为示例,例如,在应用框架层和HAL层之间,还可以包括安卓运行时(Android runtime)和系统库(libraries)层等。其中,Android Runtime包括核心库和虚拟机,负责安卓系统的调度和管理。系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机应用、图库、具有相机功能的应用等应用程序。应用程序包还可以包括通话、日历、地图、导航、音乐、视频、短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括相机服务,该相机服务可供相机应用调用,从而实现与拍摄相关的功能。除此之外,应用程序框架层还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
其中,窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知信息被用于告知下载完成,消息提醒等。通知信息还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。通知信息例如还可以是在状态栏提示的文本信息,发出的提示音,电子设备的振动,指示灯闪烁等。
需要指出的是,相机应用也可以依据实际的业务需求调用内容提供器、资源管理器、通知管理器、窗口管理器、视图系统等,本申请实施例对此不做任何限制。
内核层是硬件和软件之间的层。内核层至少包含相机驱动。该相机驱动可用于驱动具备拍摄功能的硬件模块,如相机传感器(Camera sensor)。换句话说,上述相机驱动需负责与相机传感器进行数据交互。当然,内核层也还还可以包括显示驱动、音频驱动、传感器驱动等,本申请实施例对此不做任何限制。
另外,HAL层可以对内核层中的驱动程序进行封装,并向应用程序框架层提供调用的接口,屏蔽低层硬件的实现细节。如图3所示,上述HAL层中可以包括Camera HAL、多摄决策模块等。
Camera HAL是Camera核心软件框架,该Camera HAL中包括接口模块、传感器节点(Sensor node)和图像处理模块等。在一种实现方式中,图像处理模块可以包括图像信号处理前端(Image Singnal Processing Front End,IFE)模块、空间对齐变换(SpatialAlignment Transform,SAT)模块、图像信号处理后端(Image Singnal Processing PostEnd,IPE)模块。其中,Sensor node与IFE模块涉及的相关处理属于实时管线(RealtimePipeline)的处理,SAT模块和IPE模块涉及的相关处理属于离线管线(Offline Pipeline)的处理。
上述Sensor node、图像处理模块和接口模块是Camera HAL中图像数据和控制指令传输管道中的组件,当然,不同组件也对应有不同的功能。比如,Sensor node可以是面向相机传感器的控制节点,该Sensor node可以通过相机驱动控制相机传感器。再如,接口模块可以是面向应用框架层的软件接口,用于与应用框架层进行数据交互,当然,接口模块还可以与HAL中的其他模块(如多摄决策模块、图像处理模块、Sensor node)进行数据交互。再例如,图像处理模块可以处理相机传感器回传的原始图像数据。其中,IFE模块用于处理相机传感器采集的预览图像帧进行初步裁切处理,预留出图像边缘(margin);SAT模块用于根据变焦倍率以及SAT算法对图像数据进行空间对齐,确定出裁切数据以及扭曲(warp)数据,以使预览图像更加平滑,减少违和感;IPE模块用于根据SAT模块的计算结果对预览图像帧数据进行裁切及扭曲处理。
多摄决策模块,可以根据应用场景确定出图的相机传感器,如前置摄像头的相机传感器或后置摄像头的相机传感器,又如后置摄像头中的主摄像头的相机传感器、广角摄像头的相机传感器、长焦摄像头的相机传感器。其中,相机应用可以将用户选择的相机模式、变焦参数等信息,传递给应用框架层的相机服务,再由相机服务通过HAL层的接口模块传递给多摄决策模块。
在本申请实施例中,多摄决策模块还可以根据用户的变焦操作,预估待切换的目标摄像头,并通过相机驱动提前开启目标摄像头的相机传感器。另外,多摄决策模块还可以在开启相机传感器的多个摄像头中设置当前出图的摄像头。
这样,多摄决策模块可以根据相机模式、变焦参数等,确定出实际出图的摄像头并开启该摄像头,也可以变焦场景中预估并提前开启待切换的摄像头。
可以理解的是,图3示出的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
另外,可以理解的是,电子设备为了实现本申请实施例中的变焦响应方法,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在一种实现方式中,预览图像帧的显示可以基于google提供的Android架构与高通平台Camera HAL层的软件实现。图4示例性的示出了一种变焦操作响应方法涉及的模块交互流程。在相机应用的预览场景下,参照图4,当用户执行变焦操作时,手机的触控模块响应于用户的变焦操作生成触控报点操作发送给相机应用。相机应用接收到触控报点事件后,将与触控报点事件对应的报点坐标数据转换为变焦倍率(ZoomRatio)值发送给应用程序框架层中相机服务。相机服务将该变焦倍率值写入预览图像帧请求中并下发至HAL层中的相机HAL。其中,在相机应用的预览场景中,相机服务会持续向相机HAL发送预览图像帧请求,下述以相机服务将该变焦倍率值写入第10个预览图像帧请求(简称为预览图像帧请求10)中并下发至相机HAL。在相机HAL中,每个预览图像帧请求要先后经过RealtimePipeline和Offline Pipeline的处理。其中,Realtime Pipeline的处理包括Sensor node和IFE模块的处理,Offline Pipeline的处理包括SAT模块和IPE模块的处理。如图4所示,预览图像帧请求10被发送至Sensor node。根据预览图像帧请求10,Sensor node通过相机驱动控制相机传感器进行曝光出图操作。在相机传感器完成曝光出图操作之后,与预览图像帧请求10对应的原始图像数据通过相机驱动发送至IFE模块。IFE模块对与预览图像帧请求10对应的原始图像数据进行初步裁切处理,并将处理后的图像数据发送至SAT模块。其中,IFE模块可以根据与预览图像帧请求10对应的变焦倍率值对与预览图像帧请求10对应的原始图像数据进行初步裁切处理,保留图像边缘区域,以便于SAT模块对图像进行空间对齐处理。SAT模块根据与预览图像帧请求10对应的变焦倍率值以及相关SAT算法进行图像空间对齐处理,计算与图像数据对应的裁切数据以及扭曲数据,并将计算结果以及与预览图像帧请求10对应的图像数据发送至IPE模块。IPE模块根据SAT的计算结果对与预览图像帧请求10对应的图像数据进行再次裁切操作以及图像扭曲操作,得到与预览图像帧请求10对应的预览图像帧(简称为预览图像帧10)。进而,预览图像帧10可以经由相机服务等应用程序框架层的处理,反馈回相机应用中进行UI显示。
由此可知,在用户执行变焦操作时,相机服务下发的携带相关变焦倍率值的预览图像帧请求在相机HAL中的处理链路较长,造成了变焦操作的高响应。
另外,由于安卓架构中相机系统在应用程序框架(Framework)层与HAL层之间的轮转缓存(buffer)机制。当用户开启相机应用后,相机服务首先会连续下发多个(例如8个)预览图像帧请求至相机HAL,并在每次接收到相机HAL反馈的一个预览图像帧之后再向相机HAL发送一个预览图像帧请求。在相机HAL中,Sensor node会依次基于这多个预览图像帧请求,通过相机驱动控制相机传感器进行曝光出图操作。也就是说,关于任意一个预览图像帧请求,在其之前的所有预览图像帧请求均被Sensor node处理完成曝光出图后,Sensornode才会针对这个预览图像帧请求控制相机传感器进行曝光出图操作。
下述依旧以相机服务将基于用户变焦操作设置的变焦倍率值写入预览图像帧请求10为例,预览图像帧请求10被相机服务下发至相机HAL中。如图5中(1)所示,相机HAL中的接口模块接收到预览图像帧请求10之后,将预览图像帧请求10发送至Sensor node进行处理。假设与此同时Sensor node正在处理预览图像帧请求6以曝光预览图像帧6(本申请实施例中将处理预览图像帧请求n而获取的图像帧称之为预览图像帧n),预览图像帧请求10需要依次等待Sensor node处理完预览图像帧请求6、7、8、9后才会被Sensor node处理以曝光预览图像帧10。以帧率为30fps为例,相机传感器曝光一个图像帧的时长为30ms,则Sensornode处理预览图像帧请求6-9以曝光预览图像帧6-9的时长为4*30=120ms,也即预览图像帧请求10需要等待120ms后才会被Sensor node处理。在如图5中(1)所示的场景中,相机HAL中的接口模块接收到预览图像帧请求10时,Sensor node正在依次控制预览图像帧6-9的曝光,IFE模块正在处理预览图像帧5,SAT模块正在进行关于裁切预览图像帧4的计算,IPE模块正在完成预览图像帧3的裁切和扭曲,预览图像帧2被传输至应用程序框架层通过SurfaceFlinger合成进行UI显示。继续参照图5中(2),在相机HAL中由于预览图像帧请求2-10是依次被处理的,故预览图像帧2-10也是依次被曝光、生产、送显的。在用户执行变焦操作触发生成变焦倍率改变的预览图像帧请求10时,手机显示的是预览图像帧2,与预览图像帧请求10对应的预览图像帧10要在预览图像帧2-9之后才可显示。其中,每个预览图像帧的处理链路是相同的,可以参照图4所示。由于上述排队曝光机制,导致在相机HAL中每个预览图像帧请求的链路处理时间都比较长。进而,当用户通过变焦操作以调整变焦倍率时,与目标变焦倍率对应的预览图像帧请求的处理延时也就会较长,出现例如图1d所示的问题,导致用户的变焦跟手性体验不佳。
为了解决上述问题,本申请实施例提供了一种变焦响应方法。在该方法中,当用户通过变焦操作调整变焦倍率时,终端系统缩短变焦倍率的生效链路,由此大幅降低了对变焦倍率的响应时延,进而提高了终端系统对用户变焦操作的响应速度,提升了用户的使用体验。
下述依旧以相机服务将基于用户变焦操作设置的变焦倍率值写入预览图像帧请求10为例,预览图像帧请求10被相机服务下发至相机HAL中。在本申请实施例中,如图6所示,在相机HAL中,接口模块接收到预览图像帧请求10后,将预览图像帧请求10中携带的变焦倍率值直接转发至Offline Pipeline,以使Offline Pipeline中的相关模块可以基于预览图像帧请求10携带的最新变焦倍率进行处理。这样,由于变焦倍率值被直接转发至Offline Pipeline,变焦倍率值的生效链路跳过了Sensor node和IFE模块的处理,使得变焦响应的延时可以大幅降低。
继续参照图6所示,相机HAL中的接口模块接收到预览图像帧请求10时,假设Sensor node正在依次控制预览图像帧6-9的曝光,IFE模块正在处理预览图像帧5,SAT模块正在进行关于裁切预览图像帧4的计算,IPE模块正在完成预览图像帧3的裁切和扭曲,预览图像帧2被传输至应用程序框架层通过SurfaceFlinger合成进行UI显示。相机HAL中的接口模块接收到预览图像帧请求10之后,将预览图像帧请求10携带的变焦倍率值转发至SAT模块,以使SAT模块在较早曝光的预览图像帧数据(如图6所示为预览图像帧4的图像数据)上,根据与预览图像帧请求10对应的变焦倍率值以及相关SAT算法进行图像空间对齐处理,计算与预览图像帧4的图像数据对应的裁切数据以及扭曲数据,并将计算结果以及预览图像帧4的图像数据发送至IPE模块,通过IPE模块完成实际的裁切操作以及扭曲操作。由此,与预览图像帧请求10对应变焦倍率值,也即与预览图像帧10对应的变焦倍率值,提前至预览图像帧4上生效。以每帧图像曝光时间为30毫秒计算,此场景下变焦响应延时能够减少(10-4)*30=180毫秒。
需要指出的是,在用户执行变焦操作调整变焦倍率值的过程中(例如图1b中(2)、图1c中(2)所示的场景等),相机服务向相机HAL发送的预览图像帧请求中才会携带变焦倍率值,否则相机服务向相机HAL发送的预览图像帧请求中不会携带变焦倍率值。在相机HAL接收到相机服务下发的预览图像帧请求后,若预览图像帧请求中未携带变焦倍率值,则相机HAL可以根据默认的或与前一个预览图像帧请求对应的变焦倍率值确定与该预览图像帧请求对应的变焦倍率值。示例性的,相机应用默认的变焦倍率值为1.0,则在相机应用启动之后相机HAL将默认的变焦倍率1.0作为与接收到的首个预览图像帧请求对应的变焦倍率值。又示例性的,若相机HAL接收到的预览图像帧请求9未携带变焦倍率值,则将与预览图像帧请求8对应的变焦倍率值作为与预览图像帧请求9对应的变焦倍率值。
在如图6所示的应用场景中,预览图像帧请求4-9中未携带变焦倍率值,与预览图像帧请求4-9对应的变焦倍率值均是相机HAL根据对应的前一个预览图像帧请求(即预览图像帧请求3-8)的变焦倍率值确定的。在本申请实施例中,为了减少变焦倍率的响应延时,SAT模块对预览图像帧4的图像数据进行图像空间对齐处理时,依据的是与预览图像帧请求10携带的变焦倍率值,而非是依据相机HAL设置的与预览图像帧请求4对应的变焦倍率值。
同理,若相机HAL接收到的预览图像帧请求11中也携带变焦倍率值(如变焦倍率1),则为了减少变焦倍率的响应延时,假设SAT模块正在对预览图像帧5的图像数据进行图像空间对齐处理,则SAT模块根据与预览图像帧请求11携带的变焦倍率1对预览图像帧5的图像数据进行图像空间对齐处理,以此类推。
在一种情形下,如图7a所示,SAT模块根据与预览图像帧请求10携带的变焦倍率1对预览图像帧5的图像数据进行图像空间对齐处理,根据与预览图像帧请求11携带的变焦倍率2对预览图像帧6的图像数据进行图像空间对齐处理,根据与预览图像帧请求13携带的变焦倍率3对预览图像帧7的图像数据进行图像空间对齐处理,等等。也就是说,预览图像帧请求10携带的变焦倍率1会提前生效于预览图像帧4上,预览图像帧请求11携带的变焦倍率2会提前生效于预览图像帧5上,预览图像帧请求12携带的变焦倍率3会提前生效于预览图像帧6上,等等。在用户持续执行变焦操作的场景下,相机服务下发的预览帧请求16依旧会携带变焦倍率值(如变焦倍率7),按顺序相机HAL可以将预览图像帧请求16携带的变焦倍率7提前生效于预览图像帧10上。由此,在用户未停止变焦操作的情况下,由于用户变焦操作而设置的变焦倍率值都会提前生效于较早曝光的预览图像帧上。
在另一种情形下,如图7b所示,预览图像帧请求10携带的变焦倍率1会提前生效于预览图像帧4上,预览图像帧请求11携带的变焦倍率2会提前生效于预览图像帧5上,预览图像帧请求12携带的变焦倍率3会提前生效于预览图像帧6上,预览图像帧请求13携带的变焦倍率4会提前生效于预览图像帧7上。若用户此时已停止变焦操作,则在相机服务后续向相机HAL下发的预览图像帧请求不再携带变焦倍率值,如预览图像帧请求14、15、16等不再携带变焦倍率值。在用户停止变焦操作之后,相机HAL可以根据用户设置的变焦倍率值(也即当前最新生效的变焦倍率值),确定与后续的各预览图像帧请求(未携带变焦倍率值)对应的变焦倍率值。在如图7b所示的示例中,用户设置的变焦倍率值为变焦倍率4,故SAT模块可以将用户设置的变焦倍率4生效于后续处理的预览图像帧上,例如预览图像帧8、9、10、11、12、13、14、15等。
需要指出的是,参照图7b,以未携带变焦倍率值的预览图像帧请求8为例,在与其对应的预览图像帧8上生效的变焦倍率值为当前最新生效的变焦倍率4(即在预览图像帧7上生效的变焦倍率值);以未携带变焦倍率值的预览图像帧请求9为例,在与其对应的预览图像9上生效的变焦倍率值也为当前最新生效的变焦倍率4(即在预览图像帧8上生效的变焦倍率值)。关于未携带变焦倍率值的预览图像帧请求14-16亦是如此,不再赘述。继续以携带变焦倍率1的预览图像帧请求10为例,变焦倍率1已提前生效于预览图像帧4上,在与其对应的预览图像10上生效的变焦倍率值为当前最新生效的变焦倍率4(即在预览图像帧10上生效的变焦倍率值),关于携带变焦倍率值的预览图像帧请求11-13亦是如此,不再赘述。这样,在不存在需要优先生效的变焦倍率值的情况下,相机HAL始终将当前最新生效的变焦倍率值作用于下一帧图像上,能够防止预览界面视场角跳变,避免给用户带来不佳的视觉体验。
在一种场景下,相机HAL接收预览图像帧请求的速度与Offline Pipeline处理预览图像帧请求的速度无法保证逐帧同步。例如,相机HAL接收预览图像帧请求的速度高于Offline Pipeline处理预览图像帧请求的速度,可能导致部分预览图像帧请求携带的变焦倍率值被跳过无法生效,反之可能会导致同一个预览图像帧请求携带的变焦倍率值生效于两个以上的预览图像帧上。
为了解决相机HAL接收预览图像帧请求的速度与Offline Pipeline处理预览图像帧请求的速度无法逐帧同步的问题,相机HAL在全局维护一个变焦倍率队列,该变焦倍率队列为先进先出队列,用于存储接收到的预览图像帧请求所携带的变焦倍率值。如图8所示,相机HAL(例如接口模块)接收到一个预览图像帧请求之后,如果解析到该预览图像帧请求携带变焦倍率值,则将该变焦倍率值写入变焦倍率队列。当变焦倍率队列中存在变焦倍率值时,Offline Pipeline从变焦倍率队列中依次取出变焦倍率值使其生效。
在例如图7a所示的示例中,预览图像帧请求10-预览图像帧请求16分别携带的变焦倍率1-变焦倍率7依次被写入变焦倍率队列中。当Offline Pipeline处理预览图像帧4的图像数据时,读取到变焦倍率队列中存在变焦倍率1,则在变焦队列中取出变焦倍率1并将依据变焦倍率1处理预览图像帧4的图像数据。类似的,当Offline Pipeline处理预览图像帧5的图像数据时,读取到变焦倍率队列中存在变焦倍率2,则在变焦队列中取出变焦倍率2并将依据变焦倍率2处理预览图像帧5的图像数据,以此类推。
在例如图7b所示的示例中,预览图像帧请求10-预览图像帧请求13分别携带的变焦倍率1-变焦倍率4依次被写入变焦倍率队列中。当Offline Pipeline处理预览图像帧4的图像数据时,读取到变焦倍率队列中存在变焦倍率1,则在变焦队列中取出变焦倍率1并将依据变焦倍率1处理预览图像帧4的图像数据。以此类推,当Offline Pipeline处理预览图像帧7的图像数据时,读取到变焦倍率队列中存在变焦倍率4,则在变焦队列中取出变焦倍率4并将依据变焦倍率4处理预览图像帧7的图像数据。随之,当Offline Pipeline处理预览图像帧8的图像数据时,读取到变焦倍率队列中未存在任何变焦倍率值,而与此同时当前用户设置的(也即当前最新生效的)变焦倍率值为变焦倍率4。其中,当前最新生效的变焦倍率值,即为在前一帧预览图像数据上生效的变焦倍率值。例如,在Offline Pipeline处理预览图像帧8的图像数据时,当前最新生效的变焦倍率值即为在预览图像帧7上生效的变焦倍率值。由此,Offline Pipeline依据变焦倍率4处理预览图像帧8的图像数据。在处理预览图像帧8-15等的图像数据时,Offline Pipeline读取到变焦倍率队列中未存在任何变焦倍率值,当前最新生效的变焦倍率值均为变焦倍率4,则Offline Pipeline继续依据变焦倍率4进行图像数据处理。
在一种可能的实施方式中,相机HAL中还包括Zooming状态检测模块,用于检测电子设备当前是否处于变焦场景中。其中,若相机HAL接收到携带变焦倍率值的预览图像帧请求,则可以确定电子设备当前处于变焦场景中。
示例性的,若相机HAL连续接收到的多个预览图像帧请求中均未携带变焦倍率值,则Zooming状态检测模块可以确定电子设备当前未处于变焦场景中,否则Zooming状态检测模块认定电子设备未退出变焦场景中。
在本实施方式中,在Zooming状态检测模块确定电子设备当前处于变焦场景时,若相机HAL接收到的预览图像帧请求中未携带变焦倍率值,则相机HAL将与其上一个预览图像帧请求对应的变焦倍率值作为与该预览图像帧请求对应的变焦倍率值,并将该变焦倍率值写入变焦倍率队列中。这样,连续生效多个的变焦倍率值能够防止预览界面视场角跳变,避免给用户带来不佳的视觉体验。
当Zooming状态检测模块确定电子设备退出变焦场景时,Zooming状态检测模块可以指示将变焦倍率队列清空。这样,当用户再次执行变焦操作使电子设备进入变焦状态时,相机HAL可以再次将预览图像帧请求携带的变焦倍率值写入变焦倍率队列中优先生效,降低变焦倍率值的生效链路,降低变焦操作的响应延时。
关于用户执行变焦操作涉及的变焦场景,大致可以划分为Zoom In场景和ZoomOut场景。其中,Zoom In场景是指调整镜头焦距使景物放大,也即将景物由远推近的拍摄场景;Zoom Out场景是指调整镜头焦距使景物缩小,也即将景物由近拉远的拍摄场景。然而,无论是在Zoom In场景中还是Zoom Out场景中,手机响应于用户的变焦操作,可能需要切换用于曝光图像的摄像头,也可能不需要切换用户曝光图像的摄像头。例如,在Zoom In场景中,假设用户将变焦倍率值由1.0x调整至2.0x,则无需切换摄像头,继续采用主摄像头进行图像曝光即可。再例如,在Zoom In场景中,假设用户将变焦倍率值由1.0x调整至5.0x,则需要将用于图像曝光的摄像头由主摄像头切换至长焦摄像头。又例如,在Zoom Out场景中,假设用户将变焦倍率由2.0x调整至1.0x,则无需切换摄像头,继续采用主摄像头进行图像曝光即可。还例如,在Zoom Out场景中,假设用户将变焦倍率值由1.0x调整至0.8x,则需要将用于图像曝光的摄像头由主摄像头切换至广角摄像头。
然而,无论是在Zoom In场景中还是Zoom Out场景中,当用户的变焦操作会涉及镜头切换时,可能会出现由于原镜头(即镜头切换前用于图像曝光的镜头)曝光所得的预览图像帧无法满足新的变焦倍率值的情况。
例如,在如图6所示的示例中,SAT模块将预览图像帧请求10携带的变焦倍率值(也即新的变焦倍率值)生效于预览图像帧4的图像数据上,但曝光所得的预览图像帧4的图像数据可能无法满足基于该变焦倍率值进行裁切的情况。
一种可能的情形是由于裁切操作超出图像处理涉及的插值算法限制而导致无法完成裁切。在Zoom In场景中,当用户调节变焦倍率值较快时,若需要发生镜头切换事件(如将变焦倍率值由1.0x快速调整至40.0x,镜头由主摄像头切换为长焦摄像头),则IPE模块需要在视场角较大的原始图像中裁切出视场角较小的目标图像。假设,如图9a所示,预览图像帧4为视场角较大(假设变焦倍率值为1.0x)的原始图像帧,而与预览图像帧请求10对应的预览图像帧10(假设变焦倍率值为40.0x)为视场角较小的目标图像帧,则IPE硬件在预览图像帧4上按照变焦倍率值40.0x裁切目标图像帧会超出图像插值算法的限制,导致IPE硬件可能无法完成相应的裁切操作。
需要指出的是,在Zoom In场景中,当用户调整变焦倍率值较慢(如将变焦倍率值由1.0x调整至1.1x,甚至是将变焦倍率值由1.0x调整至10.0x)时,或者未发生镜头切换事件时,IPE模块可以在视场角相对较大的原始图像中裁切出视场角相对较小的目标图像,不存在无法完成裁切操作的问题。
另一种可能的情形是由于待裁切图像的视场角较小而无法完成裁切。在Zoom Out场景中,需要从视场角较小的原始图像中裁切出视场角较大的目标图像,尤其是在需要进行镜头切换的情况下,可能导致裁切操作无法完成。假设,如图9b所示,预览图像帧4为视场角较小(如变焦倍率值为10.0x)的原始图像帧,而与预览图像帧请求10对应的预览图像帧10(如变焦倍率值为1.0x)为视场角较大的目标图像帧,则在预览图像帧4上按照变焦倍率值1.0x裁切出目标图像帧的操作根本无法完成。
需要指出的是,在Zoom Out场景中,如果用户调整变焦倍率较慢且不涉及镜头切换,鉴于IFE模块执行裁切操作时会预留图像边缘,IPE模块也有可能在视场角相对较小的原始图像中裁切出视场角相对较大的目标图像。
为了解决上述问题,在本申请实施例中,HAL层中的多摄决策模块在用户执行变焦操作时,通过相机驱动提前开启目标摄像头,以同时通过原始摄像头和目标摄像头进行图像曝光操作,得到与同一个预览图像帧请求对应的由原始摄像头采集的,以及由目标摄像头采集的第二预览图像帧数据。这样,SAT模块在变焦倍率队列中取出一个变焦倍率值之后,如果根据该变焦倍率值以及第一预览图像帧数据无法完成裁切数据计算,或者是判断出IPE模块无法根据其计算结果完成裁切操作,则根据该变焦倍率值以及第二预览图像帧数据重新进行计算相关的裁切数据,以使IPE模块根据SAT模块的计算结果在第二预览图像帧上完成裁切操作。
在一种可能的实施方式中,当用户执行变焦操作时,多摄决策模块根据变焦倍率值预测到待切换的摄像头为目标摄像头,则通过相机驱动提前开启目标摄像头的相机传感器。示例性的,如图10a所示,当用户执行变焦操作时,相机应用将变焦倍率通过相机服务实时发送至多摄决策模块,多摄决策模块依据预设决策算法预估当前变焦场景是否需要切换实际出图的摄像头,并在预估到当前变焦场景需要将实际出图的摄像头切换至目标摄像头时,通过相机驱动提前开启目标摄像头的相机传感器。例如,若多摄决策模块依据预设决策算法预估到当前变焦场景需要将实际出图的摄像头由主摄像头切换至长焦摄像头时,则通过相机驱动提前开启广角摄像头的相机传感器。
在另一种可能的实施方式中,当用户执行变焦操作时,多摄决策模块根据变焦倍率值预测到当前变焦场景需要切换实际出图的摄像头时,则通过相机驱动提前开启除当前出图摄像头之外其余各摄像头(与当前出图摄像头的拍摄方向相同)的相机传感器。示例性的,如图10b所示,假设当前出图摄像头为主摄像头,当用户执行变焦操作时,相机应用将变焦倍率通过相机服务实时发送至多摄决策模块,多摄决策模块依据预设决策算法预估当前变焦场景是否需要切换实际出图的摄像头,则通过相机驱动提前开启除主摄像头之外其余各摄像头的相机传感器,例如提前开启长焦摄像头和广角摄像头的相机传感器。
在多个摄像头的相机传感器同时开启的情况下,相机HAL中Sensor node处理预览图像帧请求时,Sensor node会通过相机驱动控制每个摄像头的相机传感器进行曝光出图。参照图10c,在主摄像头的相机传感器和长焦摄像头的相机传感器均开启的情况下,相机HAL中Sensor node处理预览图像帧请求时,会通过相机驱动分别控制主摄像头相机传感器和长焦摄像头相机传感器进行曝光出图,以得到主摄像头相机传感器采集到的第一图像数据,以及长焦摄像头相机传感器采集到的第二图像数据。
需要指出的是,在手机的多个摄像头中,有且只有一个会被作为当前出图摄像头。在本申请实施例中,多摄决策模块可以设置以及切换当前出图摄像头。示例性的,在当前出图摄像头为主摄像头时,若多摄决策模块根据变焦倍率值预测到当前变焦场景需要切换实际出图的摄像头时,且待切换的摄像头为长焦摄像头,则多摄决策模块可以将当前出图摄像头设置为长焦摄像头。
其中,第一图像数据和第二图像数据对应于同一个预览图像帧请求,也即对应于相同的拍摄场景。在相机驱动得到第一图像数据和第二图像数据之后,会将第一图像数据和第二图像数据同时发送至IFE模块。第一图像数据和第二图像数据中,其中一组图像数据为当前出图摄像头采集的,另一组图像数据非当前出图摄像头采集的。
在IFE模块接收到第一图像数据和第二图像数据之后,对当前出图摄像头采集的图像数据进行初步裁切处理,并将裁切后的一组图像数据和未裁切的另一组数据发送至SAT模块。假设,第一图像数据为当前出图摄像头采集的图像数据,IFE模块对第一图像数据进行初步裁切处理之后,将经过裁切处理后的第一图像数据以及未经裁切处理的第二图像数据发送至SAT模块。
在一个具体示例中,如图11中(1)所示,在主摄像头和广角摄像头均开启的情况下,Sensor node在处理预览图像帧请求6时,通过相机驱动同时控制主摄像头和广角摄像头曝光出图,以分别生成第一预览图像帧6的图像数据以及第二预览图像帧6的图像数据。其中,第一预览图像帧6的图像数据是通过主摄像头曝光生成的,第二预览图像帧6的图像数据是通过广角摄像头曝光生成的。在当前出图摄像头为主摄像头的情况下,当OfflinePipeline中SAT模块处理与预览图像帧请求6对应的预览图像帧数据时,在变焦倍率队列中读取到与预览图像帧请求12对应的变焦倍率值,与预览图像帧请求12对应的变焦倍率值用于替代与预览图像帧请求6对应的变焦倍率值生效于预览图像帧6的图像数据上。SAT模块根据与预览图像帧请求12对应的变焦倍率值和第一预览图像帧6的图像数据(也即通过当前出图摄像头采集到的图像数据)判断IPE模块是否可以完成裁切操作。若是,SAT模块根据该变焦倍率值以及第一预览图像帧6的图像数据计算裁切数据和扭曲数据,并将计算结果发送给IPE模块。若否,表明与预览图像帧请求12对应的变焦倍率值无法在第一预览图像帧6的图像数据上生效,SAT模块继续判断与该变焦倍率值所对应的目标摄像头(如广角摄像头)是否开启,以及在目标摄像头已开启的情况下是否获取到目标摄像头采集的与预览图像帧请求6对应的第二预览图像帧6的图像数据。在SAT模块获取到第二预览图像帧6的图像数据之后,SAT模块即可将与预览图像帧请求12对应的变焦倍率值在第二预览图像帧6的图像数据上生效。也就是说,SAT模块根据与预览图像帧请求12对应的变焦倍率值以及第二预览图像帧6的图像数据计算裁切数据和扭曲数据,并将计算结果发送给IPE模块,以使IPE模块根据该计算结果对第二预览图像帧6的图像数据进行裁切处理。
继续参照图11中(2),当与预览图像帧请求12对应的变焦倍率值无法在第一预览图像帧6的图像数据上生效时,假设在Sensor node处理预览图像帧请求6时目标摄像头(如广角摄像头)未开启,则SAT模块就不会获取到与预览图像帧请求6对应的第二预览图像帧6的图像数据,进而与预览图像帧请求12对应的变焦倍率值就无法提前生效。此时,SAT模块将与当前最新生效的变焦倍率值在第一预览图像帧6的图像数据上生效,也即SAT模块将在预览图像帧5的图像数据上生效的变焦倍率值在第一预览图像帧6的图像数据上生效。由此,SAT模块根据在预览图像帧5的图像数据上生效的变焦倍率值,以及第一预览图像帧6的图像数据计算裁切数据和扭曲数据,并将计算结果发送给IPE模块,以使IPE模块根据该计算结果对第一预览图像帧6的图像数据进行裁切处理。
需要指出的是,相机HAL接收到某个预览图像帧请求时,如果该预览图像帧请求未携带变焦倍率值,则相机HAL接收到该预先图像帧请求时,就会将上一个预览图像帧请求对应的变焦倍率值作为与该预览图像帧请求对应的变焦倍率值。
如图12所示,Offline Pipeline中SAT模块处理预览图像帧数据的流程,具体包括:
S101,SAT模块获取到与目标预览图像帧请求对应的第一目标图像数据,目标预览图像帧请求的变焦倍率为第一变焦倍率值。
其中,目标预览图像帧请求可以是相机服务下发至相机HAL中的任意一个预览图像帧请求。如果目标预览图像帧请求被下发时本身携带有变焦倍率值,则第一变焦倍率值为目标预览图像帧请求携带的变焦倍率值;如果目标预览图像帧请求未携带变焦倍率值,则第一变焦倍率值为系统默认的变焦倍率值或当前最新生效的变焦倍率值。在目标预览图像帧请求被下发时本身未携带变焦倍率值的情况下,若目标预览图像帧请求为相机应用开启后相机服务向相机HAL下发的首个预览图像帧请求,则第一变焦倍率值为系统默认的变焦倍率值,否则第一变焦倍率值为与其上一个预览图像帧请求对应的变焦倍率值。
第一目标图像数据,指的是相机HAL中Sensor node处理目标预览图像帧请求时通过相机驱动控制当前出图摄像头的相机传感器曝光而得到的图像数据。
与此同时,若手机除了当前出图摄像头的相机传感器开启外,还有其他摄像头的相机传感器处于开启状态,如多摄决策模块根据变焦场景提前开启的目标摄像头的相机传感器也处于开启状态,则Sensor node处理目标预览图像帧请求时也会通过相机驱动控制其他摄像头的相机传感器曝光,得到与目标预览图像帧请求对应的第二目标图像数据。
S102,SAT模块读取变焦倍率队列中是否存在变焦倍率值,若是,则执行S103,若否,则执行S110。
SAT模块在基于预设的SAT算法对图像数据进行空间对齐以计算裁切数据之前,首先读取变焦倍率队列中是否存在变焦倍率值。其中,变焦倍率队列中存储是需要优先生效的变焦倍率值。SAT模块将变焦倍率队列中存储的变焦倍率值优先生效于当前处理的图像数据上,以此缩短变焦响应时间,提升用户的变焦使用体验。
S103,SAT模块在变焦倍率队列中取出一个变焦倍率值,作为第二变焦倍率值。
当变焦倍率队列中存在变焦倍率值时,SAT模块在变焦倍率队列中取出一个变焦倍率值,优先进行变焦倍率值生效处理。本实施例中,暂且将在变焦倍率队列中取出的这个变焦倍率值称之为第二变焦倍率值。
S104,SAT模块根据第一目标图像数据、第一变焦倍率值和第二变焦倍率值判断IPE模块是否可以基于第二变焦倍率值完成对第一目标图像数据的裁切操作,若是,则执行S105,若否,则执行S106。
当SAT模块在变焦倍率队列中取出一个变焦倍率值之后,需要判断IPE模块是否可以基于第二变焦倍率值和第一目标图像数据完成裁切操作。
示例性的,若第二变焦倍率值大于第一变焦倍率值,且二者的差值较大(如大于预设阈值),则相应的裁切操作可能超出图像处理涉及的图像插值算法的限制而无法实现,此时SAT模块可以判断出IPE模块无法基于第二变焦倍率值和第一目标图像数据完成裁切操作。
又示例性的,若第二变焦倍率值小于第一变焦倍率值,且第一目标图像数据的预留边缘图像数据也无法满足与第二变焦倍率值对应的图像视场角,则由于在视场角较小的图像中无法裁切出视场角较大的图像,故SAT模块可以判断出IPE模块无法基于第二变焦倍率值和第一目标图像数据完成裁切操作。
S105,SAT模块根据第二变焦倍率值和第一目标图像数据计算裁切数据,并指示IPE模块根据计算结果对第一目标图像数据进行裁切操作。
当SAT模块判断出IPE模块可以基于第二变焦倍率值和第一目标图像数据完成裁切操作时,SAT模块根据第二变焦倍率值和第一目标图像数据计算裁切数据以及扭曲数据,并指示IPE模块根据计算结果对第一目标图像数据进行裁切操作以及扭曲操作。
S106,SAT模块根据第一变焦倍率值和第二变焦倍率值判断是否已开启目标摄像头,若是,则执行S107,若否,则执行S110。
在SAT模块判断出IPE模块无法基于第二变焦倍率值和第一目标图像数据完成裁切操作时,如果第一变焦倍率值属于第一摄像头的变焦范围,第二变焦倍率值属于第二摄像头的变焦范围,则SAT模块确定与第二变焦倍率对应的第二摄像头为目标摄像头,并判断目标摄像头是否已开启。
在SAT模块判断出IPE模块无法基于第二变焦倍率值和第一目标图像数据完成裁切操作时,如果第一变焦倍率值属于第一摄像头的变焦范围,第二变焦倍率值也属于第一摄像头的变焦范围,且第二变焦倍率值小于第一变焦倍率值,则当前变焦场景为Zoom Out场景,则SAT模块确定第三摄像头为目标摄像头,并判断目标摄像头是否已开启。其中,第三摄像头(如广角摄像头)对应的变焦倍率值小于第一摄像头(如主摄像头)对应的变焦倍率值。
S107,SAT模块是否获取到目标摄像头采集的与目标预览图像帧请求对应的第二目标图像数据,若是,则执行S108,若否,则执行S110。
当第二变焦倍率值无法在第一目标图像数据上生效时,若SAT模块已获取到目标摄像头采集的与目标预览图像帧请求对应的第二目标图像数据,则SAT模块可以将第二变焦倍率值生效于第二目标图像数据上以计算相应的裁切数据。
当第二变焦倍率值无法在第一目标图像数据上生效时,若SAT模块未获取到目标摄像头采集的与目标预览图像帧请求对应的第二目标图像数据,则第二变焦倍率值无法替代当前最新生效的变焦倍率值提前生效,此时SAT模块将当前最新生效的变焦倍率值(可能为第一变焦倍率值,也可能为其它的变焦倍率值)生效于第一目标图像数据上以计算相应的裁切数据。
S108,SAT模块判断IPE模块是否可以基于第二变焦倍率值完成对第二目标图像数据的裁切操作,若是,则执行S109,若否,则执行S110。
示例性的,SAT模块判断IPE模块基于第二变焦倍率值对第二目标图像数据进行裁切操作,是否会超出图像处理涉及的图像插值算法的限制,若是,则SAT模块确定IPE模块无法基于第二变焦倍率值完成对第二目标图像数据的裁切操作,若否,则SAT模块确定IPE模块可以基于第二变焦倍率值完成对第二目标图像数据的裁切操作。
S109,SAT模块根据第二变焦倍率值和第二目标图像数据计算裁切数据,并指示IPE模块根据计算结果对第二目标图像数据进行裁切操作。
在此情形下,由于与变焦场景对应的目标摄像头的相机传感器提前被开启,故在需要提前生效的第二变焦倍率值无法生效于第一目标图像数据时,SAT模块将第二变焦倍率值生效于由目标摄像头采集到的第二目标图像数据上,以确保第二变焦倍率能够提前被生效,减少变焦操作的响应延时。
S110,SAT模块根据当前最新生效的变焦倍率值和第一目标图像数据计算裁切数据,并指示IPE模块根据计算结果对第一目标图像数据进行裁切操作。
其中,当前最新生效的变焦倍率值为:在与目标预览图像帧请求的前一个预览图像帧请求对应的图像帧数据上生效的变焦倍率值。
在一种情形下,SAT模块处理与目标预览图像帧请求的第一目标图像数据时,如果读取到变焦倍率队列中不存在变焦倍率值,则SAT模块根据当前最新生效的变焦倍率值和第一目标图像数据计算裁切数据,并指示IPE模块根据计算结果对第一目标图像数据进行裁切操作。
在一种情形下,SAT模块处理与目标预览图像帧请求的第一目标图像数据时,如果读取到变焦倍率队列中读取到第二变焦倍率值,第二变焦倍率值无法生效于第一目标图像数据上,而且目标摄像头未开启或者SAT模块未获取到目标摄像头采集的与目标预览图像帧请求对应的第二目标图像数据或者第二变焦倍率值无法生效于第二目标图像数据上,则SAT模块根据当前最新生效的变焦倍率值和第一目标图像数据计算裁切数据,并指示IPE模块根据计算结果对第一目标图像数据进行裁切操作。
在本申请实施例中,相机HAL接收到携带变焦倍率值的预览图像帧请求时,将其携带的变焦倍率值存储于变焦倍率队列中优先在Offline Pipeline中生效,打破了Android和相机HAL架构中预览图像帧请求与变焦倍率值绑定的现状,使变焦倍率值的生效链路跳过Sensor node的曝光处理以及IFE模块的处理,从而大幅度降低了系统的变焦响应时延。当用户变焦操作为滑动操作(如单指滑动变焦控件或双指滑动预览界面等)时,降低系统的变焦响应时延能够有效提高用户变焦操作的跟手性;当用户变焦操作为点击操(如点击变焦控件等)时,缩短变焦倍率值的生效链路能够有效提高系统对用户变焦操作的响应速度。
这样,在例如图1a、图1b、图1c等涉及的变焦场景中,手机系统对于用户变焦操作(如点击变焦控件、滑动变焦控件、双指滑动预览界面等)的响应延时较低,具体可以表现为用户变焦操作(或称倍率调节操作)使手机相机应用预览界面调整至某一变焦倍率,和与该变焦倍率对应的预览图像在手机屏幕上显示的时间差值较小。
除了上述提及的用户在相机应用拍照预览界面中进行变焦调节的应用场景,本申请实施例提供的技术方案也适用于用户在相机应用录像预览界面中进行变焦调节的应用场景,用户在相机应用开启录像后进行变焦调节的应用场景,以及其他涉及摄像头变焦的应用场景等。在其他涉及摄像头变焦的应用场景中,本申请实施例提供的变焦响应方法的实现方式与前文类似,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的变焦响应方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的变焦响应方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的变焦响应方法。
其中,本实施例提供的电子设备(如手机等)、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (14)

1.一种图像处理方法,其特征在于,应用于电子设备,所述方法包括:
获取第一图像数据,所述第一图像数据与第一预览图像帧请求对应,所述第一预览图像帧请求对应的变焦倍率为第一变焦倍率值;
读取第二变焦倍率值,所述第二变焦倍率值与第二预览图像帧请求对应,所述第二预览图像帧请求的生成时间晚于所述第一预览图像帧请求的生成时间;
基于所述第二变焦倍率值对所述第一图像数据进行处理。
2.根据权利要求1所述的方法,其特征在于,在所述读取第二变焦倍率值之前,所述方法还包括:
接收到变焦操作,生成所述第二预览图像帧请求。
3.根据权利要求1所述的方法,其特征在于,所述电子设备包括显示屏,所述方法还包括:
在所述显示屏的预览界面显示第一预览图像帧,所述第一预览图像帧是所述电子设备用所述第二变焦倍率值替代所述第一变焦倍率值对所述第一图像数据进行处理得到的。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定变焦倍率队列中存在变焦倍率值,在所述变焦倍率队列中确定所述第二变焦倍率值;
所述变焦倍率队列为先进先出队列。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述电子设备包括第一摄像头,所述第一图像数据由所述第一摄像头采集得到,所述基于所述第二变焦倍率值对所述第一图像数据进行处理,包括:
若所述第一图像数据符合基于所述第二变焦倍率值被处理的条件,基于所述第二变焦倍率值对所述第一图像数据进行处理。
6.根据权利要求5所述的方法,其特征在于,所述电子设备还包括第二摄像头,所述方法还包括:
若所述第一图像数据不符合基于所述第二变焦倍率值被处理的条件,判断所述第二摄像头是否采集了第二图像数据;
若所述第二摄像头采集了第二图像数据,基于所述第二变焦倍率值对所述第二图像数据进行处理。
7.根据权利要求5所述的方法,其特征在于,所述电子设备还包括第二摄像头,所述方法还包括:
若所述第二摄像头没有采集第二图像数据,基于当前变焦倍率值对所述第一图像数据进行处理;
所述当前变焦倍率值用于指示最近一次生效的变焦倍率值。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述第一图像数据符合基于所述第二变焦倍率值被处理的条件,包括:
根据所述第一变焦倍率值、所述第二变焦倍率值和所述第一图像数据,确定能够基于第二变焦倍率值对所述第一图像数据完成目标裁切。
9.根据权利要求5至8中任一项所述的方法,其特征在于,
所述第一摄像头和第二摄像头不同,所述第二摄像头为长焦摄像头或广角摄像头。
10.根据权利要求6至9中任一项所述的方法,其特征在于,
接收到所述变焦操作,启动所述第二摄像头。
11.根据所述2至10中任一项所述的方法,其特征在于,
所述变焦操作包括:点击变焦控件的操作,滑动变焦控件的操作,双指滑动预览界面的操作。
12.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-11中任一项所述的方法。
13.一种芯片系统,应用于包括显示屏的电子设备,其特征在于,所述芯片系统包括处理电路、收发管脚,当所述收发管脚和所述处理电路通过内部连接通路互相通信时,所述处理电路执行如权利要求1-11中任一项所述的方法,以控制所述接收管脚接收信号和所述发送管脚发送信号。
14.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-11中任一项所述的方法。
CN202310743330.9A 2023-02-13 2023-02-13 变焦响应方法、电子设备及存储介质 Active CN116709021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310743330.9A CN116709021B (zh) 2023-02-13 2023-02-13 变焦响应方法、电子设备及存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310743330.9A CN116709021B (zh) 2023-02-13 2023-02-13 变焦响应方法、电子设备及存储介质
CN202310136978.X 2023-02-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202310136978.X Division 2023-02-13 2023-02-13

Publications (2)

Publication Number Publication Date
CN116709021A true CN116709021A (zh) 2023-09-05
CN116709021B CN116709021B (zh) 2024-06-18

Family

ID=87846540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310743330.9A Active CN116709021B (zh) 2023-02-13 2023-02-13 变焦响应方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116709021B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117278850A (zh) * 2023-10-30 2023-12-22 荣耀终端有限公司 一种拍摄方法及电子设备
CN117560574A (zh) * 2024-01-10 2024-02-13 荣耀终端有限公司 一种拍摄方法、电子设备和可读存储介质
CN117676325A (zh) * 2023-10-27 2024-03-08 荣耀终端有限公司 多摄场景中的控制方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657780A (zh) * 2016-12-16 2017-05-10 北京小米移动软件有限公司 图像预览方法和装置
US20210067749A1 (en) * 2019-08-26 2021-03-04 Samsung Electronics Co., Ltd. System and method for content enhancement using quad color filter array sensors
CN112738401A (zh) * 2020-12-30 2021-04-30 维沃移动通信(杭州)有限公司 变焦方法、装置及电子设备
CN112866576A (zh) * 2021-01-18 2021-05-28 Oppo广东移动通信有限公司 图像预览方法、存储介质及显示设备
US20210218898A1 (en) * 2020-01-10 2021-07-15 Samsung Electronics Co., Ltd. Method of improving image quality in zoom scenario with single camera, and electronic device including the same
CN113727016A (zh) * 2021-06-15 2021-11-30 荣耀终端有限公司 一种拍摄方法及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657780A (zh) * 2016-12-16 2017-05-10 北京小米移动软件有限公司 图像预览方法和装置
US20210067749A1 (en) * 2019-08-26 2021-03-04 Samsung Electronics Co., Ltd. System and method for content enhancement using quad color filter array sensors
US20210218898A1 (en) * 2020-01-10 2021-07-15 Samsung Electronics Co., Ltd. Method of improving image quality in zoom scenario with single camera, and electronic device including the same
CN112738401A (zh) * 2020-12-30 2021-04-30 维沃移动通信(杭州)有限公司 变焦方法、装置及电子设备
CN112866576A (zh) * 2021-01-18 2021-05-28 Oppo广东移动通信有限公司 图像预览方法、存储介质及显示设备
CN113727016A (zh) * 2021-06-15 2021-11-30 荣耀终端有限公司 一种拍摄方法及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117676325A (zh) * 2023-10-27 2024-03-08 荣耀终端有限公司 多摄场景中的控制方法及相关装置
CN117278850A (zh) * 2023-10-30 2023-12-22 荣耀终端有限公司 一种拍摄方法及电子设备
CN117560574A (zh) * 2024-01-10 2024-02-13 荣耀终端有限公司 一种拍摄方法、电子设备和可读存储介质
CN117560574B (zh) * 2024-01-10 2024-06-18 荣耀终端有限公司 一种拍摄方法、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN116709021B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
CN111212235B (zh) 一种长焦拍摄的方法及电子设备
WO2021093793A1 (zh) 一种拍摄方法及电子设备
CN116709021B (zh) 变焦响应方法、电子设备及存储介质
WO2020073959A1 (zh) 图像捕捉方法及电子设备
WO2021213477A1 (zh) 多路录像的取景方法、图形用户界面及电子设备
JP7355941B2 (ja) 長焦点シナリオにおける撮影方法および端末
CN116055857B (zh) 拍照方法及电子设备
CN115484375A (zh) 拍摄方法及电子设备
CN115442509B (zh) 拍摄方法、用户界面及电子设备
CN114531539B (zh) 拍摄方法及电子设备
CN117692771A (zh) 一种对焦方法及相关装置
CN116723383B (zh) 一种拍摄方法及相关设备
CN115484387B (zh) 一种提示方法及电子设备
CN117354624B (zh) 摄像头切换方法、设备以及存储介质
CN117560574B (zh) 一种拍摄方法、电子设备和可读存储介质
CN115484393B (zh) 一种异常提示方法及电子设备
CN116723382B (zh) 一种拍摄方法及相关设备
CN115484392B (zh) 一种拍摄视频的方法及电子设备
WO2024088074A1 (zh) 拍摄月亮的方法和电子设备
CN115802145A (zh) 拍摄方法及电子设备
CN117135451A (zh) 对焦处理方法、电子设备及存储介质
CN117082339A (zh) 拍摄模式切换方法、装置、电子设备及可读存储介质
CN115484390A (zh) 一种拍摄视频的方法及电子设备
CN115484391A (zh) 一种拍摄方法及电子设备
CN118012319A (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