图像处理器、图像处理方法、拍摄装置和电子设备与流程

文档序号:18739098发布日期:2019-09-21 01:34阅读:208来源:国知局
图像处理器、图像处理方法、拍摄装置和电子设备与流程

本申请涉及图像处理技术领域,更具体而言,涉及一种图像处理器、图像处理方法、拍摄装置和电子设备。



背景技术:

在相关技术中,硬件抽象模块(Hardware Abstract Layer,HAL)可以对相关联的多帧数据进行处理,然而,多帧数据可能会出现错乱的问题,例如在预览时,由于数据量过大,容易导致多帧数据的接收时间不一致,从而导致数据的处理过程出现异常。



技术实现要素:

本申请实施方式提供一种图像处理器、图像处理方法、拍摄装置和电子设备。

本申请实施方式的图像处理器包括硬件抽象模块、应用程序模块和算法后处理模块。所述硬件抽象模块用于传输图像数据和与所述图像数据对应的元数据。所述应用程序模块用于与所述硬件抽象模块连接。所述算法后处理模块通过所述应用程序模块与所述硬件抽象模块连接,所述算法后处理模块内存储有至少一种图像处理算法,所述算法后处理模块用于接收所述图像数据和所述元数据、判断所述图像数据和所述元数据是否匹配、在所述图像数据和所述元数据匹配时根据所述元数据确定待执行的图像处理算法、并采用所述待执行的图像处理算法处理所述图像数据以实现拍照后处理。

本申请实施方式的图像处理方法包括:硬件抽象模块将图像数据和与所述图像数据对应的元数据传输至应用程序模块;算法后处理模块接收来自所述应用程序模块的所述图像数据和所述元数据;所述算法后处理模块判断所述图像数据和所述元数据是否匹配;所述算法后处理模块在所述图像数据和所述元数据匹配时根据所述元数据确定待执行的图像处理算法并采用所述待执行的图像处理算法处理所述图像数据以实现拍照后处理,所述算法后处理模块内存储有至少一种图像处理算法。

本申请实施方式的拍摄装置包括上述图像处理器及图像传感器,所述图像传感器与所述图像处理器连接。

本申请实施方式的电子设备包括上述拍摄装置及壳体,所述拍摄装置与所述壳体结合。

本申请实施方式的图像处理器、图像处理方法、拍摄装置和电子设备中,算法后处理模块根据图像数据和元数据是否匹配确定是否进行图像处理,从而能够避免相关联的多帧数据之间出现错乱的问题,进而能够使得图像数据的拍照后处理过程更加准确。另外,硬件抽象模块不对图像数据进行拍照后处理,对图像数据进行拍照后处理可由算法后处理模块实现,拍照后处理的图像处理算法无需在硬件抽象模块本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。

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

附图说明

本申请的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1和图2是本申请某些实施方式的拍摄装置的示意图;

图3是本申请某些实施方式的算法后处理模块的示意图;

图4是本申请某些实施方式的拍摄装置的示意图;

图5和图6是本申请某些实施方式的电子设备的结构示意图;

图7至图13是本申请某些实施方式的图像处理方法的流程示意图。

具体实施方式

下面详细描述本申请的实施方式,实施方式的示例在附图中示出,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。

下文的公开提供了许多不同的实施方式或例子用来实现本申请的实施方式的不同结构。为了简化本申请的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。

请参阅图1,拍摄装置100包括图像处理器10和图像传感器20。图像处理器10和图像传感器20连接。图像传感器20包括图像采集单元(sensor)22和RAW图像数据单元(Image Front-end,IFE)24,图像采集单元22用于接收光线以采集获得图像数据(RAW图像),RAW图像数据单元24用于将图像采集单元22采集的图像数据传输至图像处理器10,其中,RAW图像数据单元24可以对图像采集单元22采集获得的RAW图像进行处理并输出处理后的RAW图像至图像处理器10。

图像处理器10包括硬件抽象模块12、应用程序模块(APP)14和算法后处理模块(Algo process service,APS)16。

硬件抽象模块12用于传输图像数据和与图像数据对应的元数据(metadata)。应用程序模块14用于与硬件抽象模块12连接。算法后处理模块16通过应用程序模块14与硬件抽象模块12连接,算法后处理模块16内存储有至少一种图像处理算法(例如包括美颜处理算法、滤镜处理算法、旋转处理算法、水印处理算法、虚化处理算法、HDR处理算法、及多帧处理算法中的至少一种),算法后处理模块16用于接收图像数据和元数据、判断图像数据和元数据是否匹配、在图像数据和元数据匹配时根据元数据确定待执行的图像处理算法、并采用待执行的图像处理算法处理图像数据以实现拍照后处理。

算法后处理模块16根据图像数据和元数据是否匹配确定是否进行图像处理,从而能够避免相关联的多帧数据之间出现错乱的问题,进而能够使得图像数据的拍照后处理过程更加准确。其中,在图像数据和元数据不匹配时,若采用不匹配的元数据处理图像数据,容易导致对图像数据的处理不准确,因此,可以在图像数据和元数据不匹配时,重新返回至判断图像数据和元数据是否匹配的过程以等待直至图像数据和元数据匹配。

在相关技术中,对图像进行拍照后处理都是在硬件抽象模块中实现,其中,硬件抽象模块通常是由一家厂商提供,进行拍照后处理的图像处理算法则由另一家厂商提供,二者在做兼容设计时,图像处理算法要在硬件抽象模块本身的算法架构上做流程截断,二者耦合导致设计难度大。

本申请实施方式的图像处理器10中,硬件抽象模块12不对图像数据进行拍照后处理,对图像数据进行拍照后处理可由算法后处理模块16实现,从而无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。

图像数据包括RAW图像和/或YUV图像。硬件抽象模块12可用于接收RAW图像、将RAW图像转换为YUV图像、及传输RAW图像和/或YUV图像。硬件抽象模块12可以与图像传感器20连接。具体地,硬件抽象模块12可以包括与图像传感器20连接的缓存单元(buffer queue)122、RAW转RGB处理单元(Bayer Process Segment,BPS)124和与应用程序模块14连接的降噪及YUV后处理单元(Image Process Engine,IPE)126。缓存单元122用于缓存来自图像传感器20的RAW图像并通过应用程序模块14传输给算法后处理模块16。RAW转RGB处理单元124用于将来自缓存单元122的RAW图像转换为RGB图像。降噪及YUV后处理单元126用于处理RGB图像得到YUV图像并将YUV图像通过应用程序模块14传输给算法后处理模块16。

硬件抽象模块12可通过应用程序模块14将元数据传输至算法后处理模块16,元数据包括3a(自动曝光控制AE、自动聚焦控制AF、自动白平衡控制AWB)信息、图片信息(例如图像宽度、高度)、曝光参数(光圈大小、快门速度和感光度光圈值)等,可以利用元数据辅助实现对RAW图像和/或YUV图像的拍照后处理(例如包括美颜处理、滤镜处理、旋转处理、水印处理、虚化处理、HDR处理、及多帧处理中的至少一种)。在一个实施例中,元数据包括感光度(ISO)信息,根据感光度信息可以辅助调节RAW图像和/或YUV图像的亮度,从而实现与调节亮度相关的拍照后处理。

由于硬件抽象模块12不对RAW图像和/或YUV图像进行拍照后处理(例如只接收RAW图像、将RAW图像转换为YUV图像、及传输RAW图像和/或YUV图像),拍照后处理的图像处理算法无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。

在相关技术中,应用程序接口(API)将硬件抽象模块建立成管道(pipeline)的方式,由于管道的创建需要大量的时间和内存,因此在相机启动时需要将相机对应的工作模式用到的所有管道均先创建好,而为了实现各种图像处理算法,一般需要创建大量管道(例如超过三条管道),这会导致相机的启动需要耗费大量的时间,并且占用大量的内存。本申请实施方式的硬件抽象模块12不对RAW图像和/或YUV图像进行拍照后处理,因此,硬件抽象模块12只需建立少量(例如一条或两条)管道即可,无需建立大量的管道,从而能够节约内存,并且可以使得相机的启动速度变快。

应用程序模块14可以用于根据用户的输入产生控制指令并将该控制指令通过硬件抽象模块12发送给图像传感器20以对图像传感器20的工作进行相应的控制。其中,应用程序模块14可以以64比特位(bit)运行,并且拍照后处理的图像处理算法的静态数据连接库(lib)可以配置为64比特位,以提高运算速度。应用程序模块14接收硬件抽象模块传输的RAW图像和/或YUV图像后,可以对RAW和/或YUV图像进行拍照后处理,也可以将RAW和/或YUV图像传输至算法后处理模块16进行拍照后处理。当然,还可以是应用程序模块14进行一些拍照后处理(例如美颜处理、滤镜处理、旋转处理、水印处理、虚化处理等),算法后处理模块16进行另外一些拍照后处理(例如HDR处理、多帧处理等)。在本申请实施方式中,应用程序模块14将RAW和/或YUV图像传输至算法后处理模块16进行拍照后处理。

算法后处理模块16用于采用图像处理算法处理RAW图像和/或YUV图像以实现拍照后处理。由于对RAW图像和/或YUV图像进行拍照后处理可由算法后处理模块16实现,从而无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。并且由于拍照后处理由算法后处理模块16实现,因此算法后处理模块16的功能更单一、更聚焦,从而可以达到移植快,扩展新的图像处理算法简单等效果。当然,若是在应用程序模块14进行一些拍照后处理(例如美颜处理、滤镜处理、旋转处理、水印处理、虚化处理等),算法后处理模块16进行另外一些拍照后处理(例如HDR处理、多帧处理等)时,应用程序模块14内也可存储有至少一种图像处理算法(例如包括美颜处理算法、滤镜处理算法、旋转处理算法、水印处理算法、虚化处理算法、HDR处理算法、及多帧处理算法中的至少一种),应用程序模块14还用于采用图像处理算法处理RAW图像和/或YUV图像以实现拍照后处理。由于对RAW图像和/或YUV图像进行拍照后处理由应用程序模块14与算法后处理模块16实现,从而无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度同样也是大大减小。

在算法后处理模块16只处理RAW图像(例如图像处理算法针对RAW图像进行处理)时,硬件抽象模块12可以只传输RAW图像(此时可以不需要将RAW图像转换为YUV图像);在算法后处理模块16只处理YUV图像(例如图像处理算法针对YUV图像进行处理)时,硬件抽象模块12可以只传输YUV图像;在算法后处理模块16处理RAW图像和YUV图像时,硬件抽象模块12可以传输RAW图像和YUV图像。

在某些实施方式中,图像数据包括多帧,算法后处理模块16用于判断多帧图像数据和元数据是否均匹配、在多帧图像数据和元数据均匹配时根据元数据确定待执行的图像处理算法。

具体地,多帧图像数据可以是指图像数据为两帧或两帧以上,例如两帧图像数据、三帧图像数据、四帧图像数据等。本申请实施方式以两帧图像数据进行说明,三帧图像数据、四帧图像数据等多帧图像数据与两帧图像数据类似,本文不再赘述。拍摄装置100可以包括多个图像传感器20,多帧图像数据可以是来自不同的图像传感器20。如此,能够保证不同的图像传感器20的图像数据之间是相互匹配的,使得图像处理的过程更加准确。在多帧图像数据不匹配时,多帧图像数据之间的关联度低,根据这些关联度低的多帧图像数据进行图像处理容易出现图像处理不准确的问题。

在某些实施方式中,多帧图像数据包括第一场景图像数据和第二场景图像数据,算法后处理模块16用于在第一场景图像数据、第二场景图像数据和元数据均匹配时根据第一场景图像数据和第二场景图像数据获得深度图像数据、采用待执行的图像处理算法并根据深度图像数据处理第一场景图像数据和/或第二场景图像数据以实现拍照后处理。

具体地,第一场景图像数据可以是指包含场景信息的图像数据,第一场景图像数据可以是通过第一图像传感器采集获得,第一图像传感器可以为第一可见光摄像头或第一红外摄像头对应的图像传感器(对应地,第一场景图像数据为可见光图像或红外图像)。第二场景图像数据也可以是指包含场景信息的图像数据,第二场景图像数据可以是通过第二图像传感器采集获得,第二图像传感器可以为第二可见光摄像头或者第二红外摄像头对应的图像传感器(对应地,第二场景图像数据为可见光图像或红外图像)。在第一场景图像数据和第二场景图像数据匹配时,可以根据双目视觉测距原理处理第一场景图像数据和第二场景图像数据以获得深度图像数据,其中,深度图像数据可以是指包含深度信息的图像数据。在第一场景图像数据和第二场景图像数据不匹配时,根据第一场景图像数据和第二场景图像数据无法获得深度图像数据或获得的深度图像数据的误差较大,因此可以等待第一场景图像数据和第二场景图像数据匹配时再进行处理。如此,能够获得准确的深度图像数据,从而可以根据深度图像数据对第一场景图像数据和/或第二场景图像数据进行处理,例如可以进行虚化处理(将预定深度范围的场景图像进行模糊化处理)、美颜处理等。

在某些实施方式中,多帧图像数据包括场景图像数据和深度图像数据,算法后处理模块16用于在场景图像数据、深度图像数据和元数据均匹配时采用待执行的图像处理算法并根据深度图像数据处理场景图像数据以实现拍照后处理。

具体地,场景图像数据可以是指包含场景信息的图像数据,场景图像数据可以是通过可见光摄像头或红外摄像头对应的图像传感器采集获得(对应地,场景图像数据为可见光图像或红外图像)。深度图像数据可以是指包含深度信息的图像数据,深度图像数据可以通过结构光模组、TOF模组对应的传感器采集获得。在场景图像数据和深度图像数据匹配时,此时深度图像数据能够比较准确地表示场景图像数据中各个物体的深度信息,因此可以利用深度图像数据对场景深度图像数据进行准确的图像处理。在场景图像数据和深度图像数据不匹配时,此时深度图像数据可能不包含场景图像数据中各个物体的深度信息或包含的深度信息不准确,因此可以等待场景图像数据和深度图像数据匹配时再进行处理。如此,能够根据匹配的深度图像数据对场景图像数据进行准确的图像处理,例如可以进行虚化处理、美颜处理等。

在某些实施方式中,图像数据包括图像数据帧标志,元数据包括元数据帧标志,算法后处理模块16用于根据图像数据帧标志和元数据帧标志判断图像数据和元数据是否匹配、并在图像数据帧标志和元数据帧标志一致时确定图像数据和元数据匹配。

具体地,图像数据帧标志可以是指对应的图像数据的序列号和/或时间戳,例如第10帧图像数据的序列号为10、第101帧图像数据的序列号为101,2010年10月10日10时10分10秒拍摄的图像数据的时间戳为20101010101010,2012年12月12日12时12分12秒拍摄的图像数据的时间戳为20121212121212。元数据帧标志可以是指对应的元数据的序列号和/或时间戳,例如第10帧元数据的序列号为10、第101帧元数据的序列号为101,2010年10月10日10时10分10秒获取的元数据的时间戳为20101010101010,2012年12月12日12时12分12秒获取的元数据的时间戳为20121212121212。在进行预览时,由于预览的帧率要求(一般至少为30帧),传输的数据量较大,一般情况下元数据会先到,然后预览的图像数据才到,而有时因为系统负载过重或者其他情况,会导致图像数据先到,元数据后到的情况,因此,本申请通过判断图像数据帧标志和元数据帧标志是否一致来判断图像数据和元数据是否匹配,从而能够在图像数据帧标志和元数据帧标志一致时对图像数据进行处理。

请参阅图2,在某些实施方式中,算法后处理模块16包括适配层161,适配层161用于创建队列1612,队列1612用于接收图像数据和元数据,适配层161用于在图像数据帧标志和元数据帧标志一致的图像数据和元数据均进入队列1612时确定图像数据和元数据匹配。

具体地,硬件抽象模块12将图像数据和元数据传输至应用程序模块14后,应用程序模块14将图像数据和元数据传输至适配层161,适配层161创建接收图像数据和元数据的队列1612。以图像数据包括第一场景图像数据和第二场景图像数据进行说明:队列1612在先接收到第一场景图像数据时,会判断第二场景图像数据和元数据是否送达;队列1612在先接收到第二场景图像数据时,会判断第一场景图像数据和元数据是否送达;队列1612在先接收到元数据时,会判断第一场景图像数据和第二场景图像数据是否送达,在第一场景图像数据、第二场景图像数据和元数据都送达时,说明数据匹配成功,此时可以利用决策单元1614对元数据进行处理,以获得算法标志、曝光参数、3a信息等,适配层161可以通过算法后处理接口1616将图像数据和算法标志送入到算法后处理进程,从而能够对第一场景图像数据和第二场景图像数据进行处理,例如根据第一场景图像数据和第二场景图像数据计算出深度信息以得到深度图像数据,再根据深度信息进行虚化处理,经过虚化处理后的图像数据可以通过算法后处理接口1616返回到应用程序模块14以便于后续显示。决策单元1614获得的曝光参数、3a信息等可以传输至应用程序模块14中。应用程序模块14可以根据曝光参数、3a信息等进行后续的图像处理,或者将曝光参数、3a信息等作为其他用途使用,在此不做具体限定。

在某些实施方式中,算法后处理模块16用于根据元数据确定待执行的图像处理算法,可以是算法后处理模块16用于根据元数据确定算法标志(algo flag)、再根据算法标志确定待执行的图像处理算法。元数据例如包括3a信息、曝光参数、拍摄装置100的工作模式等。在一个例子中,根据元数据确定算法标志,具体可以是根据拍摄装置100的工作模式确定算法标志,例如判断图像传感器20是否开启HDR模式,若开启HDR模式,则将算法标志设置为HDR algo flag以表示图像数据对应的待执行的图像处理算法为HDR处理算法;又例如判断图像传感器20是否开启人像模式,若开启人像模式,则将算法标志设置为虚化algo flag以表示图像数据对应的待执行的图像处理算法为虚化处理算法;又例如判断图像传感器20的感光值是否大于预定感光值,若是,则将算法标志设置为多帧algo flag以表示图像数据对应的待执行的图像处理算法为多帧处理算法。如此,可以确定要对图像数据采用何种图像处理算法进行处理。在其他实施方式中,根据元数据确定算法标志也可以由硬件抽象模块12实现,硬件抽象模块12通过应用程序模块14将算法标志发送给算法后处理模块16,算法后处理模块16再根据算法标志确定待执行的图像处理算法。

在某些实施方式中,算法标志包括多个标志位,每个标志位对应一个待执行的图像处理算法,算法后处理模块16用于根据标志位的顺序依次采用对应的待执行的图像处理算法处理图像数据以实现拍照后处理。具体地,算法标志可以是一个数组,数组中的每个元素对应一个标志位,例如算法标志为[HDR algo flag,虚化algo flag],则算法后处理模块16先采用HDR处理算法处理图像数据以得到第一数据,再采用虚化处理算法处理第一数据以得到第二数据(即第二数据经过了两种图像处理算法的叠加处理)。如此,能够对图像数据进行多种图像处理算法的叠加处理。

在某些实施方式中,待处理的图像处理算法具有优先级,算法后处理模块16用于根据优先级的高低确定算法标志中标志位的顺序。例如,在多帧处理算法进行后再采用美颜处理算法,其处理效果比较好,因此,在同时存在多帧处理算法和美颜处理算法时,多帧处理算法的优先级高于美颜处理算法,算法后处理模块16可以确定算法标志为[多帧algo flag,美颜algo flag]。如此,能够确定算法标志中标志位的顺序,从而确定图像处理算法的执行顺序。

在某些实施方式中,待处理的图像处理算法不具有优先级,则算法标志中标志位的顺序可以根据自由设置,例如在同时存在HDR处理算法和虚化处理算法时,算法标志可以为[HDR algo flag,虚化algo flag],也可以为[虚化algo flag,HDR algo flag]。

在某些实施方式中,硬件抽象模块12可以根据感光度信息、陀螺仪的抖动情况、AR场景检测结果(检测场景类型,例如人物、动物、风景等)等向应用程序模块14发送帧数建议,例如,当陀螺仪检测到的抖动较大时,硬件抽象模块12向应用程序模块14发送的帧数建议可以是:建议较多帧,以更好地实现拍照后处理;当陀螺仪检测到的抖动较小时,硬件抽象模块12向应用程序模块14发送的帧数建议可以是:建议较少帧,以减少数据传输量。也即是说,硬件抽象模块12向应用程序模块14建议的帧数可以与陀螺仪检测到的抖动程度正相关。应用程序模块14根据帧数建议向硬件抽象模块12发出数据请求,硬件抽象模块12根据该数据请求传输对应的数据至应用程序模块14,应用程序模块14再将数据传输至算法后处理模块16进行拍照后处理。

图像传感器20进行一次拍摄(曝光成像)后,将拍摄数据(RAW图像)传输给硬件抽象模块12,在算法后处理模块16接收到与拍摄数据对应的图像数据(RAW图像和/或YUV图像)后,图像传感器20能够进行下一次拍摄、或图像传感器20能够关闭、或应用程序模块14能够关闭、或应用程序模块14能够退出应用界面。由于拍照后处理由算法后处理模块16实现,因此在将拍摄数据对应的RAW图像和/或YUV图像传输给算法后处理模块16后,只需要算法后处理模块16就可实现拍照后处理,此时图像传感器20和应用程序模块14可以不参与拍照后处理,因此,图像传感器20能够关闭或执行下一次拍摄,应用程序模块14能够关闭或退出应用界面。如此,拍摄装置100能够实现快拍,并且在算法后处理模块16进行拍照后处理时可以关闭应用程序模块14或退出应用程序界面,从而在电子设备上进行一些其他操作(例如与拍摄装置100无关的操作,比如浏览网页、看视频、打电话等),从而用户无需花费大量的时间等待拍照后处理的完成,便于用户使用电子设备。

算法后处理模块16可以包括编码单元162,编码单元162用于将YUV图像转换为JPG图像(或者JPEG图像等)。具体地,在算法后处理模块16处理的是YUV图像时,编码单元162可以直接对YUV图像进行编码以形成JPG图像,从而提高图像的输出速度。在算法后处理模块16处理的是RAW图像时,算法后处理模块16可以将处理实现拍照后处理的RAW图像经应用程序模块14回传至硬件抽象模块12,例如回传至RAW转RGB处理单元124,RAW转RGB处理单元124可以用于将算法后处理模块16处理实现拍照后处理并经应用程序模块14回传的RAW图像转换为RGB图像,降噪及YUV后处理单元126可以将RGB图像转换为YUV图像,该YUV图像可以再次传输至算法后处理模块16的编码单元162中以将该YUV图像转换为JPG图像。在某些实施方式中,算法后处理模块16也可以将处理实现拍照后处理的RAW图像经应用程序模块14回传至缓存单元122,回传的RAW图像经过RAW转RGB处理单元124和降噪及YUV后处理单元126形成YUV图像,再传输至编码单元162以形成JPG图像。在形成JPG图像后,算法后处理模块16可以用于将JPG图像传输至存储器中保存。

请参阅图3,算法后处理模块16包括逻辑处理调用层164、算法模块接口层166和算法处理层168。逻辑处理调用层164用于与应用程序模块14通信。算法模块接口层166用于维护算法接口。算法处理层168包括至少一种图像处理算法。算法模块接口层166用于通过算法接口对算法处理层168的图像处理算法进行注册、注销、调用和回调中的至少一种操作。

逻辑处理调用层164可以包括线程队列,算法后处理模块16接收到RAW图像和/或YUV图像的拍照后处理任务后,可以将拍照后处理任务缓存在线程队列中处理,其中,线程队列可以缓存多个拍照后处理任务,如此,可以通过逻辑处理调用层164实现快拍(即快拍机制)。另外,逻辑处理调用层164也可以接收应用程序模块14发送的初始化(init)、进程(process)等指令,并将对应的指令和数据保存到线程队列中。逻辑处理调用层164根据线程队列中的任务进行具体逻辑的调用(即具体逻辑调用组合)。逻辑处理调用层164还可以将处理获得的缩略图(thumbnail)回传给应用程序模块14进行显示(即缩略图回显)。在本申请的实施方式的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

算法模块接口层166用于调用算法接口,调用命令也可以保存到线程队列中,算法处理层168在接收到线程队列的调用命令时,即可解析调用命令的参数获得需要调用的图像处理算法。算法模块接口层166对图像处理算法进行注册时,可以在算法处理层168中新增一种图像处理算法;算法模块接口层166对图像处理算法进行注销时,可以删除算法处理层168中一种图像处理算法;算法模块接口层166对图像处理算法进行调用时,可以调用算法处理层168中一种图像处理算法;算法模块接口层166对图像处理算法进行回调时,可以将算法处理后的数据和状态回传给应用程序模块14。其中,可以采用统一接口实现图像处理算法的注册、注销、调用、回调等操作。算法处理层168中的每一种图像处理算法都是独立的,如此可以方便对图像处理算法实现注册、注销、调用、回调等操作。

请参阅图4,在某些实施方式中,图像处理器10还包括相机服务模块18。硬件抽象模块12通过相机服务模块18与应用程序模块14连接。相机服务模块18对图像数据(RAW图像和/或YUV图像)和元数据进行封装并将封装后的RAW图像和/或YUV图像、元数据传输至应用程序模块14、及将应用程序模块14回传的RAW图像传输至硬件抽象模块12。如此,通过相机服务模块18对图像进行封装,可以提高图像传输的效率,并且能够提高图像传输的安全性。在图像处理器10包括相机服务模块18时,图像处理器10中的数据(图像数据、元数据等)传输的路径可以进行适应性调整,即硬件抽象模块12和应用程序模块14之间传输的数据均需要通过相机服务模块18。例如,硬件抽象模块12向应用程序模块14传输RAW图像和/或YUV图像时,硬件抽象模块12先将RAW图像和/或YUV图像传输至相机服务模块18,相机服务模块18对RAW图像和/或YUV图像进行封装并将封装后的RAW图像和/或YUV图像传输至应用程序模块14。又例如,硬件抽象模块12向应用程序模块14传输元数据时,硬件抽象模块12先将元数据传输至相机服务模块18,相机服务模块18对元数据进行封装并将封装后的元数据传输至应用程序模块14。又例如,硬件抽象模块12向应用程序模块14传输帧数建议时,硬件抽象模块12先将帧数建议传输至相机服务模块18,相机服务模块18对帧数建议进行封装并将封装后的帧数建议传输至应用程序模块14。当然,在某些实施方式中,硬件抽象模块12可将感光度信息、陀螺仪的抖动情况、AR场景检测结果等传输至相机服务模块18,相机服务模块18根据感光度信息、陀螺仪的抖动情况、AR场景检测结果等获得帧数建议,再将帧数建议传输至应用程序模块14。

请参阅图5和图6,电子设备1000包括上述任意一种实施方式的拍摄装置100和壳体200,拍摄装置100与壳体200结合。壳体200可以作为电子设备1000的功能元件的安装载体。壳体200可以为功能元件提供防尘、防摔、防水等保护,功能元件可以是显示屏、拍摄装置100、受话器等。其中,在一个实施方式中,壳体200包括主体210和可动支架220,可动支架220在驱动装置的驱动下可以相对于主体210运动,例如可动支架220可以相对于主210体滑动,以滑入主体210(例如图5的状态)或从主体210滑出(例如图6的状态)。部分功能元件可以安装在主体210上,另一部分功能元件(例如拍摄装置100)可以安装在可动支架220上,可动支架220运动可带动该另一部分功能元件缩回主体210内或从主体210中伸出。在另一个实施方式中,壳体200上开设有采集窗口,拍摄装置100与采集窗口对准安装以使拍摄装置100能够通过采集窗口接收外界光线以形成图像。

在本申请的实施方式的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请的实施方式中的具体含义。

请参阅图1和图7,图像处理方法包括:

01:硬件抽象模块12将图像数据和与图像数据对应的元数据传输至应用程序模块14;

02:算法后处理模块16接收来自应用程序模块14的图像数据和元数据;

03:算法后处理模块16判断图像数据和元数据是否匹配;

04:算法后处理模块16在图像数据和元数据匹配时根据元数据确定待执行的图像处理算法并采用待执行的图像处理算法处理图像数据以实现拍照后处理,算法后处理模块16内存储有至少一种图像处理算法。

本申请实施方式的图像处理方法可以用于本申请实施方式的图像处理器10,或者说,本申请实施方式的图像处理方法可以由本申请实施方式的图像处理器10实现,其中,步骤01可以由硬件抽象模块12实现,步骤02、步骤03和步骤04可以由算法后处理模块16实现。

请参阅图1和图8,图像数据包括多帧,步骤03包括:

031:算法后处理模块16判断多帧图像数据和元数据是否均匹配;

步骤04包括:

041:算法后处理模块16在多帧图像数据和元数据均匹配时根据元数据确定待执行的图像处理算法并采用待执行的图像处理算法处理图像数据以实现拍照后处理。

其中,步骤031和步骤041可以由算法后处理模块16实现。

请参阅图1和图9,多帧图像数据包括第一场景图像数据和第二场景图像数据,步骤041包括:

0411:算法后处理模块16在第一场景图像数据、第二场景图像数据和元数据均匹配时根据第一场景图像数据和第二场景图像数据获得深度图像数据、采用待执行的图像处理算法并根据深度图像数据处理第一场景图像数据和/或第二场景图像数据以实现拍照后处理。

其中,步骤0411可以由算法后处理模块16实现。

请参阅图1和图10,多帧图像数据包括场景图像数据和深度图像数据,步骤041包括:

0412:算法后处理模块16在场景图像数据、深度图像数据和元数据均匹配时采用待执行的图像处理算法并根据深度图像数据处理场景图像数据以实现拍照后处理。

其中,步骤0412可以由算法后处理模块16实现。

请参阅图1和图11,图像数据包括图像数据帧标志,元数据包括元数据帧标志,步骤03包括:

032:算法后处理模块16根据图像数据帧标志和元数据帧标志判断图像数据和元数据是否匹配、并在图像数据帧标志和元数据帧标志一致时确定图像数据和元数据匹配。

其中,步骤032可以由算法后处理模块16实现。

请参阅图2和图12,算法后处理模块16包括适配层161,适配层161用于创建队列1612,队列1612用于接收图像数据和元数据,步骤03包括:

033:适配层161在图像数据帧标志和元数据帧标志一致的图像数据和元数据均进入队列1612时确定图像数据和元数据匹配。

其中,步骤033可以由适配层161实现。

请参阅图4和图13,硬件抽象模块12通过相机服务模块18与应用程序模块14连接,步骤01包括:

011:对图像数据和元数据进行封装并将封装后的图像数据和元数据传输至应用程序模块14。

其中,步骤011可以由相机服务模块18实现。

上述实施方式中对图像处理器10的解释,也适用于本申请实施方式的图像处理方法,在此不再赘述。

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

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(控制方法),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“某些实施方式”等的描述意指结合所述实施方式或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施方式中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施方式中以合适的方式结合。

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

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