相机的启动方法和装置、终端和可读存储介质与流程

文档序号:21780088发布日期:2020-08-07 19:58阅读:151来源:国知局
相机的启动方法和装置、终端和可读存储介质与流程

本申请涉及消费性电子技术领域,特别涉及一种相机的启动方法、启动装置、终端和非易失性计算机可读存储介质。



背景技术:

相机启动时,应用层会发送启动请求,硬件层接收到启动请求后,会对所有的节点进行配置,然后创建管道,在创建管道完成后才能根据配置信息进行相机的子设备的准备工作,在所有子设备均准备完成后,此时才能够进行图像的输出,相机的启动速度较慢。



技术实现要素:

本申请的实施例提供了一种相机的启动方法、启动装置、终端和非易失性计算机可读存储介质。

本申请实施方式的相机的启动方法包括在接收到所述相机的启动请求时,初始化所述相机的节点;创建管道的同时根据所述节点的配置信息配置所述配置信息对应的所述相机的子设备,所述子设备包括相机串行接口;及在所有所述子设备的初始化均完成后,通过所述相机串行接口输出图像数据。

在某些实施方式中,所述初始化所述相机的节点,包括:创建所述相机的子设备的节点;对所述子设备的节点进行初始化操作,以清除所述子设备的节点的已有配置信息;及写入所述子设备的节点的配置信息。

在某些实施方式中,所述启动方法还包括:按照所述子设备的运行顺序将所述管道中所有与所述子设备对应的句柄重新进行排序。

在某些实施方式中,所述启动方法还包括:在所有所述子设备的初始化均完成及所述管道中所有所述句柄均重新排序完成后,输出所述图像数据或停止输出所述图像数据。

在某些实施方式中,所述子设备包括图像传感器、电可擦除可编程只读存储器、驱动马达、光学防抖装置和闪光灯,所述图像传感器、所述电可擦除可编程只读存储器、所述驱动马达、所述光学防抖装置及所述闪光灯同时进行初始化。

本申请实施方式的启动装置包括配置模块、处理模块和输出模块。所述配置模块用于在接收到所述相机的启动请求时,初始化所述相机的节点;所述处理模块用于创建管道的同时根据所述节点的配置信息配置所述配置信息对应的所述相机的子设备,所述子设备包括相机串行接口;所述输出模块用于在所有所述子设备的初始化均完成后,通过所述相机串行接口输出图像数据。

本申请实施方式的终端包括处理器,所述处理器用于在接收到所述相机的启动请求时,初始化所述相机的节点;创建管道的同时根据所述节点的配置信息配置所述配置信息对应的所述相机的子设备,所述子设备包括相机串行接口;及在所有所述子设备的初始化均完成后,通过所述相机串行接口输出图像数据。

在某些实施方式中,所述处理器还用于:创建所述相机的子设备的节点;对所述子设备的节点进行初始化操作,以清除所述子设备的节点的已有配置信息;及写入所述子设备的节点的配置信息。

在某些实施方式中,所述处理器还用于:按照所述子设备的运行顺序将所述管道中所有与所述子设备对应的句柄重新进行排序。

在某些实施方式中,所述处理器还用于:在所有所述子设备的初始化均完成及所述管道中所有所述句柄均重新排序完成后,输出所述图像数据或停止输出所述图像数据。

在某些实施方式中,所述子设备包括图像传感器、电可擦除可编程只读存储器、驱动马达、光学防抖装置和闪光灯,所述图像传感器、所述电可擦除可编程只读存储器、所述驱动马达、所述光学防抖装置及所述闪光灯同时进行初始化。

本申请的一种包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述任一实施方式所述的启动方法。

本申请的相机的启动方法、启动装置、终端和非易失性计算机可读存储介质中,管道的创建和子设备的初始化并行运行,相较于管道的创建和子设备的初始化串行运行,耗时累加而言,耗时仅为耗时较长的子设备的初始化所需的时长,减少了创建管道所需的时长,从而提升了相机的启动速度。

本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请某些实施方式的启动方法的流程示意图;

图2是本申请某些实施方式的启动装置的模块示意图;

图3是本申请某些实施方式的终端结构示意图;

图4是现有的相机启动流程框架示意图;

图5是本申请某些实施方式的启动方法的相机启动流程框架示意图;

图6是本申请某些实施方式的启动方法的流程示意图;

图7是本申请某些实施方式的配置模块的模块示意图;

图8是本申请某些实施方式的启动方法的流程示意图;

图9是本申请某些实施方式的启动装置的模块示意图;和

图10是本申请某些实施方式的处理器和计算机可读存储介质的连接示意图。

具体实施方式

以下结合附图对本申请的实施方式作进一步说明。附图中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。另外,下面结合附图描述的本申请的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的限制。

请参阅图1至图3,本申请实施方式的相机30的启动方法包括以下步骤:

011:在接收到相机30的启动请求时,初始化相机30的节点;

012:创建管道的同时根据节点的配置信息配置配置信息对应的相机30的子设备,子设备包括相机串行接口;及

013:在所有子设备的初始化均完成后,通过相机串行接口输出图像数据。

在某些实施方式中,启动装置10包括配置模块11、处理模块12和输出模块13。配置模块11、处理模块12和输出模块13分别用于执行步骤011、步骤012和步骤013。即,配置模块11用于在接收到相机30的启动请求时,初始化相机30的节点;处理模块12用于创建管道的同时根据节点的配置信息配置配置信息对应的相机30的子设备;输出模块13用于在所有子设备的初始化均完成后,通过相机串行接口输出图像数据。

在某些实施方式中,终端100还包括处理器20,处理器20用于在接收到相机30的启动请求时,初始化相机30的节点;创建管道的同时根据节点的配置信息配置配置信息对应的相机30的子设备;及在所有子设备的初始化均完成后,通过相机串行接口输出图像数据。也即是说,步骤011、步骤012和步骤013可以由处理器20实现。

具体地,终端100包括壳体40和处理器20。处理器20安装在壳体40内。更具体地,终端100可以是手机、平板电脑、显示器、笔记本电脑、柜员机、闸机、智能手表、头显设备、游戏机等。本申请实施方式以终端100是手机为例进行说明,可以理解,终端100的具体形式并不限于手机。壳体40还可用于安装终端100的成像装置(即,相机30)、供电装置、通信装置等功能模块,以使壳体40为功能模块提供防尘、防摔、防水等保护。

终端100(如手机)上一般有相机应用程序,或者终端100设置有相机启动按键,通过点击相机应用程序或按压相机启动按键均可发出相机30的启动请求,处理器20在接收到相机30的启动请求后,会对相机30启动过程中的所有节点进行配置,可以理解,相机应用程序是依托终端100上相机30相关硬件实现其功能的,在启动过程中,相机应用程序会对相机30的应用层面上的节点进行配置,然后相机30根据节点的配置信息来实现自身硬件的配置。处理器20一般会根据需求对相机30的节点写入配置信息,如相机30在启动以获取预览图像时,会先获取“启动以获取预览图像”对应的初始化的配置信息,处理器20根据初始化的配置信息即可进行初始化。根据相机30的子设备的数量,处理器20会配置对应数量的节点,例如相机30的子设备包括图像传感器、电可擦除可编程只读存储器、驱动马达、光学防抖装置和闪光灯,那么就会针对每个子设备配置一个对应的节点(即,图像传感器节点、电可擦除可编程只读存储器节点、驱动马达节点、光学防抖装置节点和闪光灯节点)并写入对应的初始化的配置信息。如此,处理器20根据每个节点的初始化的配置信息,可实现对应的子设备的初始化。

在相机应用程序对相机30的应用层面上的节点配置完成后,处理器20可创建管道(pipeline)并同时根据节点的配置信息配置配置信息对应的子设备,其中,管道指的是用于实现某一相机功能的总称,比如启动以获取预览图像数据的一整套管道流程。

图4和图5分别表示现有的相机启动流程框架和本申请的相机启动流程框架。可以看出,现有的相机启动流程框架在接收到相机启动请求时,先配置数据流(congifurestream),配置数据流包括配置节点和管道创建,在配置数据流完成后,进行数据流输出,此时需要先进行子设备的初始化,在子设备的初始化完成后即可输出图像数据,现有的相机启动流程框架均为串行运行的。而本申请的管道的创建和子设备的初始化并行运行,相较于管道的创建和子设备的初始化串行运行,耗时仅为管道的创建和子设备的初始化中的较大者所需的时长,而子设备的初始化所需的时长一般大于管道的创建所需的时长,故本申请实现管道的创建和子设备的初始化共同所需的时长为子设备的初始化所需的时长,节省了管道的创建所需的时长。

且由于子设备的初始化所需的时长一般大于管道的创建所需的时长,故只需判断所有子设备均初始化完成即可判断管道的创建也完成了,在管道的创建和子设备的初始化均完成后,此时图像传感器的图像数据就可以不停的输出,如通过相机串行接口输出(cmossensorinterface,csi)输出为移动行业处理器接口(mobileindustryprocessorinterface,mipi)图像数据。处理器20根据图像数据即可在显示屏上显示预览图像。

本申请的相机30的启动方法、启动装置10和终端100中,管道的创建和子设备的初始化并行运行,相较于管道的创建和子设备的初始化串行运行,耗时累加而言,耗时仅为耗时较长的子设备的初始化所需的时长,减少了创建管道所需的时长,从而提升了相机30的启动速度。

请参阅图3、图6和图7,在某些实施方式中,步骤011包括以下步骤:

0111:创建相机30的子设备的节点;

0112:对子设备的节点进行初始化操作,以清除子设备的节点的已有配置信息;及

0113:写入子设备的节点的配置信息。

在某些实施方式中,配置模块11包括创建单元111、初始化单元112和写入单元113。创建单元111、初始化单元112和写入单元113分别用于执行步骤0111、步骤0112和步骤0113。即,创建单元111用于创建相机30的子设备的节点;初始化单元112用于对子设备的节点进行初始化操作,以清除子设备的节点的已有配置信息;写入单元113用于写入子设备的节点的配置信息。

在某些实施方式中,处理器20用于创建相机30的子设备的节点;对子设备的节点进行初始化操作;及写入子设备的节点的配置信息,以清除子设备的节点的已有配置信息。也即是说,步骤0111、步骤0112和步骤0113可以由处理器20实现。

具体地,处理器20在进行节点的配置时,首先创建与子设备的类型匹配的子设备的节点(如创建图像传感器节点、光学防抖装置节点、闪光灯节点等,下面以图像传感器节点为例为例),然后对图像传感器节点进行初始化操作,由于之前图像传感器节点可能根据不同的需求已经写入了其他配置信息,初始化操作会将图像传感器节点恢复到初始状态,清除掉子设备的节点的已有配置信息。最后,处理器20根据需求(如启动以获取预览图像的需求)将对应的配置信息写入到已经恢复初始状态的图像传感器节点对应的寄存器中。

请参阅图2、图8和图9,在某些实施方式中,启动方法还包括以下步骤:

014:按照子设备的运行顺序将管道中所有与子设备对应的句柄重新进行排序。

在某些实施方式中,启动装置10包括排序模块14。排序模块14用于执行步骤014。即,排序模块14用于按照子设备的运行顺序将管道中所有与子设备对应的句柄重新进行排序。

在某些实施方式中,处理器20还用于按照子设备的运行顺序将管道中所有与子设备对应的句柄重新进行排序。也即是说,步骤014可以由处理器20实现。

具体地,在管道创建的同时会进行子设备的初始化,每个子设备的初始化完成后会生成一个对应的句柄(handle),处理器20会根据会将初始化完成的子设备的句柄依次链接起来,然而,由于不同子设备的初始化所需时长不同,当子设备的初始化时间较短但其句柄在管道流程中的句柄的顺序却较为靠后,或者,当子设备的初始化时间较长但其句柄在管道流程中的句柄的顺序却较为靠前时,均会导致管道流程中的句柄的发生顺序错乱,使得管道流程无法正常运行以实现相机的功能。例如,图像传感器的初始化时间最长,在所有子设备同时进行初始化时,图像传感器会最后才初始化完成,但图像传感器在管道流程中的句柄的顺序却可能并不在最后,这就是会导致管道中与图像传感器对应的句柄的顺序发生错乱,为了使得管道流程正常运行,处理器20会重新将子设备的句柄按照子设备正常的运行顺序重新进行排序,使得管道流程中的句柄的顺序正常,从而保证相机30的启动及获取预览图像等功能能够正常实现。

请参阅图2、图8和图9,在某些实施方式中,启动方法还包括以下步骤:

015:在所有子设备的初始化均完成及管道中所有句柄均重新排序完成后,输出图像数据或停止输出图像数据。

在某些实施方式中,启动装置10还包括控制模块15。控制模块15用于执行步骤015。即,控制模块15用于在所有子设备的初始化均完成及管道中所有句柄均重新排序完成后,输出图像数据或停止输出图像数据。

在某些实施方式中,处理器20还用于在所有子设备的初始化均完成及管道中所有句柄均重新排序完成后,输出图像数据或停止输出图像数据。也即是说,步骤015可以由处理器20实现。

具体地,应用程序为了防止运行出现异常,一般是不允许在运行过程立刻停止运行并退出的,例如在相机30启动过程中,需要等到显示屏显示预览图像时才能操作闪退,本申请为了能够在相机30能够提前闪退并且不影响相机30的启动准备工作的运行,通过状态机检测管道中所有句柄是否重新排序完成(下称条件1),及所有子设备的初始化是否均完成(下称条件2),在上述条件1和条件2的结果均为“是”的情况下,才能保证管道流程的正常建立以及所有子设备均正常初始化,此时即使在显示屏未显示预览图像时进行闪退,也不会导致相机30的启动出现异常,而若上述条件1和条件2的结果任一个为“否”,均会导致相机30的启动出现异常甚至损坏相机30。如此,通过状态机实现状态检测,在所有子设备的初始化均完成及管道中所有句柄重新排序完成后,才执行输出图像数据或停止输出图像数据,既可以实现显示屏未显示预览图像时进行闪退,又可以保证相机30的启动不会出现异常,再次打开相机30时即可直接显示预览图像无需重新进行相机30的准备工作才能够显示预览图像。

请参阅图2,在某些实施方式中,子设备包括图像传感器、电可擦除可编程只读存储器、驱动马达、光学防抖装置和闪光灯,图像传感器、电可擦除可编程只读存储器、驱动马达、光学防抖装置及闪光灯同时进行初始化。

具体地,子设备中,图像传感器进行初始化所需的时间最长,将图像传感器和、电可擦除可编程只读存储器、驱动马达、光学防抖装置及闪光灯同时进行初始化,子设备的初始化过程中,处理器20会根据子设备的节点中的配置信息将子设备恢复到预定状态(如出厂状态或配置信息中设置的状态),保证子设备能够正常的运行。使得所有子设备全部进行初始化的耗时仅为耗时最长的子设备所需的耗时(即,图像传感器进行初始化所需的时长),从而进一步缩短了子设备初始化所需的时长,提高了相机30的启动效率。

请参阅图2和图10,本申请实施方式的一个或多个包含计算机可执行指令302的非易失性计算机可读存储介质300,当计算机可执行指令302被一个或多个处理器20执行时,使得处理器20可执行上述任一实施方式的启动方法。

例如,请结合图1和图3,当计算机可执行指令302被一个或多个处理器20执行时,使得处理器20执行以下步骤:

011:在接收到相机30的启动请求时,配置相机30的节点;

012:创建管道的同时根据节点的配置信息配置配置信息对应的相机30的子设备;及

013:在所有子设备的初始化均完成后,输出图像数据。

再例如,请结合图3和图6,当计算机可执行指令302被一个或多个处理器20执行时,处理器20还可以执行以下步骤:

0111:创建子设备的节点;

0112:对子设备的节点进行初始化操作;及

0113:写入子设备的节点的配置信息。

在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1