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

文档序号:21780096发布日期:2020-08-07 19:58阅读:123来源:国知局
数据显示方法、图像处理器、拍摄装置和电子设备与流程

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



背景技术:

手机可以提供预览功能,以使得用户可以预览拍摄的视频画面。目前业界的方案通常是将对视频中图像数据的算法处理过程做在硬件抽象层,由硬件抽象层输出经过算法处理后的图像数据,然后送到应用程序中以进行预览显示。在图像数据帧数过多的情况下,相邻帧图像数据之间的时间间隔通常浮动较大,使得经过算法处理后用于预览显示的图像数据之间的显示间隔也会存在差异,导致显示的画面时快时慢,出现视频画面不流畅的问题。



技术实现要素:

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

本申请实施方式的数据显示方法包括:算法后处理模块将算法处理后的图像数据发送至应用程序模块;所述应用程序模块通过缓存队列缓存所述图像数据;和所述应用程序模块通过显示线程以预设帧率显示所述图像数据。

本申请实施方式的图像处理器包括应用程序模块和算法后处理模块。所述算法后处理模块用于将算法处理后的图像数据发送至所述应用程序模块;所述应用程序模块用于通过缓存队列缓存所述图像数据;所述应用程序模块还用于通过显示线程以预设帧率显示所述图像数据。

本申请实施方式的拍摄装置包括图像处理器和图像传感器,所述图像传感器与所述图像处理器连接。所述图像处理器包括应用程序模块和算法后处理模块。所述算法后处理模块用于将算法处理后的图像数据发送至所述应用程序模块;所述应用程序模块用于通过缓存队列缓存所述图像数据;所述应用程序模块还用于通过显示线程以预设帧率显示所述图像数据。

本申请实施方式的电子设备包括拍摄装置和壳体,所述拍摄装置与所述壳体结合。所述拍摄装置包括图像处理器和图像传感器,所述图像传感器与所述图像处理器连接。所述图像处理器包括应用程序模块和算法后处理模块。所述算法后处理模块用于将算法处理后的图像数据发送至所述应用程序模块;所述应用程序模块用于通过缓存队列缓存所述图像数据;所述应用程序模块还用于通过显示线程以预设帧率显示所述图像数据。

本申请实施方式的数据显示方法、图像处理器、拍摄装置和电子设备将算法处理过程做在算法后处理模块,由算法后处理模块将算法处理后的图像数据发送至应用程序模块,无需在硬件抽象模块本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。此外,应用程序模块先通过缓存队列缓存图像数据,再通过显示线程以预设帧率显示图像数据,可以保证每帧图像数据都以固定的时间显示,从而保证视频画面的流畅度。

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

附图说明

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

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

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

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

图4是本申请某些实施方式的图像处理方法的流程示意图;

图5是本申请某些实施方式的图像处理方法的原理示意图;

图6至图9是本申请某些实施方式的图像处理方法的流程示意图;

图10和图11是本申请某些实施方式的电子设备的结构示意图。

具体实施方式

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

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

手机可以提供预览功能,以使得用户可以预览拍摄的视频画面。目前业界的方案通常是将对视频中图像数据的算法处理过程做在硬件抽象层,由硬件抽象层输出经过算法处理后的图像数据,然后送到应用程序中以进行预览显示。在图像数据帧数过多的情况下,相邻帧图像数据之间的时间间隔通常浮动较大,使得经过算法处理后用于预览显示的图像数据之间的显示间隔也会存在差异,导致显示的画面时快时慢,出现视频画面不流畅的问题。

基于上述原因,请参阅图1、图4和图10,本申请实施方式提供一种数据显示方法、图像处理器10、拍摄装置100和电子设备1000。

请参阅图1和图4,本申请实施方式的数据显示方法包括:

01:算法后处理模块16将算法处理后的图像数据发送至应用程序模块14;

02:应用程序模块14通过缓存队列缓存图像数据;和

03:应用程序模块14通过显示线程以预设帧率显示图像数据。

请参阅图1,本申请实施方式的图像处理器10包括应用程序模块14和算法后处理模块16。算法后处理模块16用于将算法处理后的图像数据发送至应用程序模块14;应用程序模块14用于通过缓存队列缓存图像数据;应用程序模块14还用于通过显示线程以预设帧率显示图像数据。

请参阅图1,本申请实施方式的拍摄装置100包括图像处理器10和图像传感器20,图像传感器20与图像处理器10连接。图像处理器10包括应用程序模块14和算法后处理模块16。算法后处理模块16用于将算法处理后的图像数据发送至应用程序模块14;应用程序模块14用于通过缓存队列缓存图像数据;应用程序模块14还用于通过显示线程以预设帧率显示图像数据。

请参阅图1和图10,本申请实施方式的电子设备1000包括拍摄装置100和壳体200,拍摄装置100与壳体200结合。拍摄装置100包括图像处理器10和图像传感器20,图像传感器20与图像处理器10连接。图像处理器10包括应用程序模块14和算法后处理模块16。算法后处理模块16用于将算法处理后的图像数据发送至应用程序模块14;应用程序模块14用于通过缓存队列缓存图像数据;应用程序模块14还用于通过显示线程以预设帧率显示图像数据。

本申请实施方式的数据显示方法、图像处理器10、拍摄装置100和电子设备1000将算法处理过程做在算法后处理模块16,由算法后处理模块16将算法处理后的图像数据发送至应用程序模块14,无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。此外,应用程序模块14先通过缓存队列缓存图像数据,再通过显示线程以预设帧率显示图像数据,可以保证每帧图像数据都以固定的时间显示,从而保证视频画面的流畅度。

请参阅图1,接下来介绍一下本申请实施方式的拍摄装置100的结构。拍摄装置100包括图像处理器10和图像传感器20。图像处理器10和图像传感器20连接。图像传感器20包括图像采集单元(sensor)22和raw图像数据单元(imagefront-end,ife)24,图像采集单元22用于接收光线以采集获得图像数据(raw图像),raw图像数据单元24用于将图像采集单元22采集的图像数据传输至图像处理器10,其中,raw图像数据单元24可以对图像采集单元22采集获得的raw图像进行处理并输出处理后的raw图像至图像处理器10。

图像处理器10包括硬件抽象模块12、应用程序模块(app)14和算法后处理模块(algoprocessservice,aps)16。

硬件抽象模块12用于接收raw图像、将raw图像转换为yuv图像、及传输raw图像和/或yuv图像。硬件抽象模块12可以与图像传感器20连接。具体地,硬件抽象模块12可以包括与图像传感器20连接的缓存单元(bufferqueue)122、raw转rgb处理单元(bayerprocesssegment,bps)124和与应用程序模块14连接的降噪及yuv后处理单元(imageprocessengine,ipe)126。缓存单元122用于缓存来自图像传感器20的raw图像并通过应用程序模块14传输给算法后处理模块16。raw转rgb处理单元124用于将来自缓存单元122的raw图像转换为rgb图像。降噪及yuv后处理单元126用于处理rgb图像得到yuv图像并将yuv图像通过应用程序模块14传输给算法后处理模块16。硬件抽象模块12还可传输图像数据的元数据(metadata),元数据包括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连接。应用程序模块14可以用于根据用户的输入产生控制指令并将该控制指令通过硬件抽象模块12发送给图像传感器20以对图像传感器20的工作进行相应的控制。其中,应用程序模块14可以以64比特位(bit)运行,并且算法处理中的图像处理算法的静态数据连接库(lib)可以配置为64比特位,以提高运算速度。应用程序模块14接收硬件抽象模块传输的raw图像和/或yuv图像后,将raw和/或yuv图像传输至算法后处理模块16进行算法处理。

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

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

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

图像传感器20进行一次拍摄(曝光成像)后,将图像数据(raw图像)传输给硬件抽象模块12,在算法后处理模块16接收到与图像数据对应的raw图像和/或yuv图像后,图像传感器20能够进行下一次拍摄、或图像传感器20能够关闭。由于算法处理由算法后处理模块16实现,因此在将图像数据对应的raw图像和/或yuv图像传输给算法后处理模块16后,只需要算法后处理模块16就可实现算法处理,此时图像传感器20可以不参与工作,因此,图像传感器20能够关闭或执行下一次拍摄。如此,图像传感器20的工作效率较高。

算法后处理模块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图像传输至存储器中保存或传输至应用程序模块14中以进行显示。

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

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

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

请参阅图3,在某些实施方式中,图像处理器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向应用程序模块14传输算法建议时,硬件抽象模块12先将算法建议传输至相机服务模块18,相机服务模块18对算法建议进行封装并将封装后的算法建议传输至应用程序模块14。当然,在某些实施方式中,硬件抽象模块12可将感光度信息、陀螺仪的抖动情况、ar场景检测结果等传输至相机服务模块18,相机服务模块18根据感光度信息、陀螺仪的抖动情况、ar场景检测结果等获得帧数建议和/或算法建议,再将帧数建议和/或算法建议传输至应用程序模块14。

请参阅图1和图4,本申请实施方式的数据显示方法包括:

01:算法后处理模块16将算法处理后的图像数据发送至应用程序模块14;

02:应用程序模块14通过缓存队列缓存图像数据;和

03:应用程序模块14通过显示线程以预设帧率显示图像数据。

请参阅图1,本申请实施方式的图像处理器10包括应用程序模块14和算法后处理模块16。前述实施方式中对图像处理器10的解释说明,同样适用于本申请实施方式,在此不再赘述。本申请实施方式的数据显示方法可由本申请实施方式的图像处理器10实现。例如,算法后处理模块16可用于执行01中的方法,应用程序模块14可用于执行02和03中的方法。

也即是说,算法后处理模块16可以用于将算法处理后的图像数据发送至应用程序模块14。应用程序模块14可以用于通过缓存队列缓存图像数据。应用程序模块14还可以用于通过显示线程以预设帧率显示图像数据。

本申请实施方式的数据显示方法和图像处理器10将算法处理过程做在算法后处理模块16,由算法后处理模块16将算法处理后的图像数据发送至应用程序模块14,无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。此外,应用程序模块14先通过缓存队列缓存图像数据,再通过显示线程以预设帧率显示图像数据,可以保证每帧图像数据都以固定的时间显示,从而保证视频画面的流畅度。

具体地,图像数据可以是raw图像或yuv图像。当算法后处理模块16每对一帧图像数据进行算法处理后,算法后处理模块16则将算法处理后的该帧图像数据发送至应用程序模块14,以节省时间。请结合图5,应用程序模块14中创建有缓存队列,以用于依次缓存每一帧图像数据。然后,应用程序模块14通过显示线程从缓存队列中读取图像数据,并以预设帧率显示图像数据。预设帧率可以是用户提前设置的,例如用户通过应用程序模块14输入30帧/秒的帧率或者用户通过应用程序模块14选择与30帧/秒对应的帧率模式,则应用程序模块14通过显示线程以30帧/秒的帧率显示图像数据。由于应用程序模块14的缓存队列中提前缓存有图像数据,然后显示线程再以预设帧率显示图像数据,因此可以保证每帧图像数据都以固定的时间显示,从而保证视频画面的流畅度。

请参阅图1和图6,在某些实施方式中,在应用程序模块14通过缓存队列缓存图像数据(即02)之后,数据显示方法还包括:

04:应用程序模块14在缓存队列中缓存的图像数据的帧数大于或等于预定帧时,唤醒显示线程;和

05:应用程序模块14在缓存队列中缓存的图像数据的帧数小于预定帧时,控制显示线程处于休眠状态。

请参阅图1,在某些实施方式中,在应用程序模块14通过缓存队列缓存图像数据之后,应用程序模块14可用于执行04和05中的方法。

也即是说,在应用程序模块14通过缓存队列缓存图像数据之后,应用程序模块14可以用于在缓存队列中缓存的图像数据的帧数大于或等于预定帧时,唤醒显示线程。应用程序模块14还可以用于在缓存队列中缓存的图像数据的帧数小于预定帧时,控制显示线程处于休眠状态。

例如,预定帧为2帧,应用程序模块14在缓存队列中缓存的图像数据的帧数大于或等于2帧时,唤醒显示线程;应用程序模块14在缓存队列中缓存的图像数据的帧数小于2帧时,控制显示线程处于休眠状态。由于应用程序模块14在缓存队列中缓存的图像数据的帧数大于或等于预定帧时,唤醒显示线程,因而当算法后处理模块16发送至应用程序模块14的图像数据的时间间隔浮动较大时,应用程序模块14也有预定帧的图像数据已经缓存好,可以保证每帧图像数据都以固定的时间显示,从而保证视频画面的流畅度。而当应用程序模块14在缓存队列中缓存的图像数据的帧数小于预定帧时,控制显示线程处于休眠状态,可以节省应用程序模块14和图像处理器10的功耗。

请参阅图1和图7,在某些实施方式中,在算法后处理模块16将算法处理后的图像数据发送至应用程序模块14(即01)之前,数据显示方法还包括:

06:硬件抽象模块12将图像数据和元数据发送至应用程序模块14;

07:应用程序模块14将图像数据和元数据发送至算法后处理模块16;和

08:算法后处理模块16根据元数据对图像数据进行算法处理。

请参阅图1,在某些实施方式中,图像处理器10还包括硬件抽象模块12,在算法后处理模块16将算法处理后的图像数据发送至应用程序模块14之前,硬件抽象模块12可用于执行06中的方法,应用程序模块14可用于执行07中的方法,算法后处理模块16可用于执行08中的方法。

也即是说,在算法后处理模块16将算法处理后的图像数据发送至应用程序模块14之前,硬件抽象模块12可以用于将图像数据和元数据发送至应用程序模块14。应用程序模块14可以用于将图像数据和元数据发送至算法后处理模块16。算法后处理模块16可以用于根据元数据对图像数据进行算法处理。

具体地,前述实施方式中对元数据和根据元数据对图像数据进行算法处理的解释说明,同样适用于本申请实施方式,在此不再赘述。

另外,硬件抽象模块12将图像数据和元数据发送至应用程序模块14可以是:硬件抽象模块12将图像数据和元数据一并发送至应用程序模块14;或者,硬件抽象模块12先将图像数据发送至应用程序模块14,再将元数据发送至应用程序模块14;或者,硬件抽象模块12先将元数据发送至应用程序模块14,再将图像数据发送至应用程序模块14,在此不作限制。应用程序模块14将图像数据和元数据发送至算法后处理模块16可以是:应用程序模块14将图像数据和元数据一并发送至算法后处理模块16;或者,应用程序模块14先将图像数据发送至算法后处理模块16,再将元数据发送至算法后处理模块16;或者,应用程序模块14先将元数据发送至算法后处理模块16,再将图像数据发送至算法后处理模块16,在此不作限制。

请参阅图1和图8,在某些实施方式中,图像数据包括主图像数据和副图像数据。应用程序模块14将图像数据和元数据发送至算法后处理模块16(即07),包括:

071:应用程序模块14将帧数对应的主图像数据和副图像数据,以及与主图像数据和副图像数据时间对应的元数据发送至算法后处理模块16。

请参阅图1,在某些实施方式中,图像数据包括主图像数据和副图像数据。应用程序模块14可用于执行071中的方法。

也即是说,应用程序模块14可以用于将帧数对应的主图像数据和副图像数据,以及与主图像数据和副图像数据时间对应的元数据发送至算法后处理模块16。

本申请实施方式中,应用程序模块14将图像数据和元数据一并发送至算法后处理模块16,以减少在算法后处理模块16中进行数据匹配的时间。其中,图像数据可以包括主图像数据和副图像数据,主图像数据即是主摄像头采集的图像数据,副图像数据即是副摄像头采集的图像数据。帧数对应的主图像数据和副图像数据指的是,主图像数据和副图像数据为同一帧(或同一次拍摄)的图像数据。

判断主图像数据和副图像数据是否帧数对应可以根据主图像数据的时间戳和副图像数据的时间戳。每次拍摄时,图像数据都可以标记有对应的时间戳。当主图像数据的时间戳对应的时间和副图像数据的时间戳对应的时间一致时,则确定主图像数据和副图像数据帧数对应。其中,时间一致可以是指两个时间完全相同,或者是两个时间之间的间隔小于一个较小的预定时间间隔。

判断主图像数据和副图像数据是否帧数对应还可以根据主图像数据的标识号和副图像数据的标识号。每次拍摄时,图像数据都可以标记有对应的标识号。当主图像数据的标识号和副图像数据的标识号相同时,则确定主图像数据和副图像数据帧数对应。

元数据与主图像数据和副图像数据时间对应,可以准确地得到在获取该主图像数据和副图像数据时的3a信息、图片信息、曝光参数等,以使得根据元数据对图像数据进行算法处理时,能够具有较佳的图像处理效果。

请参阅图1和图9,在某些实施方式中,在硬件抽象模块12将图像数据和元数据发送至应用程序模块14之(即06)前,数据显示方法还包括:

09:硬件抽象模块12接收图像传感器20以预定帧率输出的图像数据;

其中,预设帧率与预定帧率呈正相关。

请参阅图1,在某些实施方式中,在硬件抽象模块12将图像数据和元数据发送至应用程序模块14之前,硬件抽象模块12可用于执行09中的方法。

也即是说,硬件抽象模块12可以用于接收图像传感器20以预定帧率输出的图像数据。其中,预设帧率与预定帧率呈正相关。

具体地,当图像传感器20输出图像数据的预定帧率越大时,则应用程序模块14通过显示线程显示图像数据的预设帧率可以设置得越大,以使得预览的视频画面更新得较快,具有较好的显示效果。或者说,当应用程序模块14通过显示线程显示图像数据的预设帧率设置得越大时,图像传感器20输出图像数据的预定帧率可以设置得越大,以使得图像传感器20输出图像数据的帧率能够满足应用程序模块14通过显示线程显示图像数据的帧率的需求。

进一步地,预设帧率可以小于或等于预定帧率,以进一步确保图像传感器20输出图像数据的帧率能够满足应用程序模块14通过显示线程显示图像数据的帧率的需求。

请参阅图10和图11,本申请实施方式的电子设备1000包括上述任一实施方式的拍摄装置100和壳体200,拍摄装置100与壳体200结合。电子设备1000可以是手机、平板电脑、笔记本电脑、智能穿戴设备(如智能手表、智能手环、智能眼镜、智能头盔等)、头显设备、虚拟现实设备等等,在此不作限制。

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

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

综上,本申请实施方式的数据显示方法、图像处理器10、拍摄装置100和电子设备1000将算法处理过程做在算法后处理模块16,由算法后处理模块16将算法处理后的图像数据发送至应用程序模块14,无需在硬件抽象模块12本身的算法架构上做流程截断,只需在外部做兼容,设计难度减小。此外,应用程序模块14先通过缓存队列缓存图像数据,再通过显示线程以预设帧率显示图像数据,可以保证每帧图像数据都以固定的时间显示,从而保证视频画面的流畅度。

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

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

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

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

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

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

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

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

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