一种高效的影像显示方法和装置与流程

文档序号:18703502发布日期:2019-09-17 23:17阅读:206来源:国知局
一种高效的影像显示方法和装置与流程

本发明涉及影像获取显示领域,尤其涉及一种高效的影像显示方法和装置。



背景技术:

随着车载芯片原厂对此领域的大力投入,车载系统的研发周期已经大大缩短,为了顺应这种潮流,原始设计制造商推出新版本的时间点都在加快,市面上的头部厂商一年会跟进一次新的系统版本。

车载影像系统是中控的核心技术点,是产品成败的关键,一般包含启动阶段的快速倒车和系统车载影像功能两个大的方面。其中快速倒车的业内要求是整机上电2s内出图,而系统车载影像功能则是由应用启动、设置采集通路、抓取影像显示等环节构成,启动速度相对较快,但是有复杂的ui叠加要求,在画面上显示雷达信息、倒车轨迹线等辅助ui。同时系统车载影像功能里面还管理了诸如dvd、videoin、倒车等多通道切换显示功能。

当前在车载类产品的应用上,影像系统的实现方案一般为:

android或linux系统需要两套驱动来实现影像系统,系统起来前,用一套驱动实现快速加载倒车影像,系统起来后,驱动释放资源,由系统的另一套驱动接管加载实现影像系统。

缺陷:

1.有两套驱动,中间需要进行驱动切换,还需释放资源,重新分配资源,如果刚好在切换时发生倒车事件,会出现系统倒车图像出来比较慢问题。另外内核驱动代码逻辑需要同时维护两份,也会带来额外工作量。

2.系统起来后的驱动与上层交互流程遵循v4l2架构,需要经过camerahal,camerahal的代码逻辑比较复杂,运行完全部的流程后,显示出倒车图像的时间也比较慢。

3.针对不同的android系统和linux系统,每次版本升级,都需要对影像系统的代码进行大量调试后,才能实现产品化。



技术实现要素:

为此,需要提供一种高效的影像显示方法和装置,解决现有影像显示系统架构复杂的问题。

为实现上述目的,发明人提供了一种高效的影像显示方法,包括如下步骤:

内核层初始化影像获取模块;

应用层通过ioctl接口发送模块打开命令给内核层;

内核层通过ioctl接口获取到模块打开命令并打开影像获取模块;

应用层通过ioctl接口来获取内核层的影像缓存的虚拟地址;

应用层通过内存映射获取到影像缓存的内容;

应用层显示影像缓存的内容。

进一步地,所述影像获取模块连接有多个通道的影像获取设备,模块打开命令包含有通道标识,内核层在打开影像获取模块包括打开通道标识对应的影像获取设备。

进一步地,所述多通道包括有倒车视频通道、视频播放模块通道、视频输入通道、车头视频通道或者车侧视频通道。

进一步地,内核层获取到高优先级的中断信号;

内核层打开中断信号对应通道的影像获取设备;

内核层获取影像获取模块采集的数据并发送到显示模块进行显示。

进一步地,内核层获取影像获取模块采集的数据并发送到显示模块进行显示包括步骤:

内核层判断系统是否已经启动完成,系统如果启动完成则应用层通过内存映射获取到影像缓存的内容;应用层显示影像缓存的内容;

系统如果没有启动完成则获取影像获取模块采集的数据并发送到显示模块进行显示。

本发明提供一种高效的影像显示装置,包括应用层和内核层;

内核层用于初始化影像获取模块;

应用层用于通过ioctl接口发送模块打开命令给内核层;

内核层用于通过ioctl接口获取到模块打开命令并打开影像获取模块;

应用层用于通过ioctl接口来获取内核层的影像缓存的虚拟地址;

应用层用于通过内存映射获取到影像缓存的内容;

应用层用于显示影像缓存的内容。

进一步地,所述影像获取模块连接有多个通道的影像获取设备,模块打开命令包含有通道标识,内核层用于在打开影像获取模块包括用于打开通道标识对应的影像获取设备。

进一步地,所述多通道包括有倒车视频通道、视频播放模块通道、视频输入通道、车头视频通道或者车侧视频通道。

进一步地,内核层用于获取到高优先级的中断信号;

内核层用于打开中断信号对应通道的影像获取设备;

内核层用于获取影像获取模块采集的数据并发送到显示模块进行显示。

进一步地,内核层用于获取影像获取模块采集的数据并发送到显示模块进行显示包括:

内核层用于判断系统是否已经启动完成,系统如果启动完成则应用层通过内存映射获取到影像缓存的内容;应用层显示影像缓存的内容;

系统如果没有启动完成则获取影像获取模块采集的数据并发送到显示模块进行显示。

区别于现有技术,上述技术方案具有如下优点:应用层通过ioctl接口直接与内核层交互,实现对影像获取模块的控制和影像获取,避免了经过camerahal层,避免了要对不同系统版本的camerahal层进行适配,从而可以实现在不同系统版本间的快速移植,节省了研发资源投入,达到开发效率高的目的,简化了系统架构。

附图说明

图1为具体实施方式所述的方法流程图;

图2为具体实施方式所述的装置结构示意图;

图3为具体实施方式所述的应用层与内核层交互的示意图;

图4为一实施方式所述的方法流程图;

图5为本发明用于车载系统的方法流程图。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1到图5,本实施例提供一种高效的影像显示方法,如图1所示,可以应用在如图2的装置上。内核层和应用层的软件可以存储在与处理器连接的存储介质上,内核层包含有影像获取模块,影像获取模块可以连接多个影像获取设备。影像获取设备和显示模块可以与处理器连接,影像获取设备用于获取影像数据并输入给影像获取模块,影像获取模块再输入给内核,显示模块用于显示影像。本发明的方法包括如下步骤:步骤s101内核层初始化影像获取模块;正常开机后,内核层要对影像获取模块进行初始化,从而实现对影像获取设备的初始化。在应用层运行后,进入步骤s102应用层通过ioctl接口发送模块打开命令给内核层;步骤s103内核层通过ioctl接口获取到模块打开命令并打开影像获取模块;影像获取模块打开后,影像获取模块获取的影像数据就会传输到内核层中。而后步骤s104应用层通过ioctl接口来获取内核层的影像缓存的虚拟地址;步骤s105应用层通过内存映射获取到影像缓存的内容;内存映射的时候,通过虚拟地址的映射,将内核空间虚拟地址映射到应用空间虚拟地址,从而得到影像获取模块影像数据。最后步骤s106应用层显示影像缓存的内容,实现了影像的显示。

现有方案一需要针对v4l2的内存进行交互,则应用层要经过camerahal层再与内核层进行交互。本发明相对于现有方案一,本发明不经过v4l2框架,实现了一套ioctl接口及内存映射机制。开机后,应用层通过ioctl接口调用来打开影像获取模块,并通过ioctl来获取内核影像获取模块缓存的虚拟地址,通过内存映射得到用户空间的虚拟地址,从而获取到影像获取模块缓存数据,便可进行直接显示或者ui叠加后显示。这样避免了经过camerahal层,避免了要对不同系统版本的camerahal层进行适配,从而可以实现在不同系统版本间的快速移植,节省了研发资源投入,达到开发效率高的目的,简化了系统架构。

上述实施例中,ioctl是内核中设备驱动程序中对设备的i/o通道进行管理的函数。所谓对i/o通道进行管理,就是对设备的一些特性进行控制,例如摄像头的开启关闭等。为了实现应用层与内核层的ioctl接口直接交互,要进行ioctl接口的参数定义,使得应用层与内核层用唯一接口命令通讯。部分命令接口如下:vehicle_channel_set、vehicle_open、vehicle_get_data、vehicle_ioctl_close等。参数如下:structvideo_data{intchannel;intwidth;inthight;void*vir_addr;……};框架图如图3所示。应用层通过类封装参数与接口,并与内核的结构体与参数一一对应。在进行通讯的时候,应用层通过调用类方法如vehicle_channel_set,经过jni层解析后得到对应命令如vehicle_channel_set接口及结构体参数,通过ioctl将命令及结构体发送命令至内核层。内核收到vehicle_channel_set命令后,获取应用数据,解析出需要设置的信号通道,并进行通道设置操作。同理调用vehicle_open进行打开摄像头控制器,进行数据采集,轮转等。同理调用vehicle_get_data获取内核空间的影像数据的虚拟地址。应用层通过虚拟地址的映射,将内核层空间虚拟地址映射到应用空间虚拟地址,从而得到影像数据。还有应用层对数据进行显示,拍照,录像等处理操作。以及应用层调用vehicle_close操作,关闭数据采集,关闭摄像头,关闭控制器等。

在某些实施例中,对于内核来说,影像获取模块一般只有一个,但是影像获取模块可以连接有多个通道的影像获取设备,即影像获取设备有多个,则相对系统来说就有多个通道的影像获取设备。则所述影像获取模块连接有多个通道的影像获取设备,模块打开命令包含有通道标识,内核层在打开影像获取模块包括打开通道标识对应的影像获取设备,从而实现对不同通道影像获取设备的打开和影像获取,即内核将带通道标识的命令发送给影像获取模块,可以实现对不同通道影像获取设备的打开。如图4所示,当有多个影像获取设备时,内核层在影像获取模块初始化后,可以进行影像系统循环。内核层循环判断应用层要打开哪个通道的影像获取设备,而后内核层打开对应的影像获取设备,以及进行影像数据采集、内存映射,应用层的影像显示等。

影像获取设备用于获取影像并输入到系统中,可以是摄像头设备、视频播放设备或者视频输入设备等,摄像头设备可以是车载摄像头,如可以是倒车摄像头、车头摄像头或者车侧摄像头,则所述多通道包括有倒车视频通道、车头视频通道或者车侧视频通道。视频播放设备或者视频输入设备对应视频播放设备通道或者视频输入通道,视频播放设备可以是dvd设备等,视频输入设备可以是视频接口输入(videoin)设备。如图5所示,内核层会判断模块打开命令是否是倒车请求、dvd请求、videoin请求,并根据对应的请求设置打开对应通道的影像获取设备。

为了实现在应用还没有启动时的影像显示,需要内核层直接进行影像的获取和显示。具体地,内核层打开影像获取模块,内核层获取影像获取模块采集的数据并发送到显示模块进行显示,从而实现内核层的影像显示。内核层进行影像显示一般适用于优先级较高的影像显示需要,如倒车时候的倒车影像显示,可以采用设置一个高优先级的中断信号来进行触发。则内核层获取到高优先级的中断信号;内核层打开中断信号对应通道的影像获取设备;内核层获取影像获取模块采集的数据并发送到显示模块进行显示,即可以快速进行影像的显示。如图5所示,高优先级的中断信号为倒车中断。则倒车中断触发后,内核层就设置倒车通道,打开倒车摄像头,并在摄像头打开后获取影像数据并显示。这样本系统都是使用内核层进行影像的获取,应用层与内核层对影像获取模块数据的获取上采用的是一套驱动,在不同系统版本间无需多套驱动,从而避免了驱动切换,资源的释放与重新申请,提升了各个环节的效率,影像系统加载时间变快。

由于应用层可以实现更多的影像处理功能,则在应用层启动后,影像的显示还是优选由应用层显示。如图5所示,内核层获取影像获取模块采集的数据并发送到显示模块进行显示包括步骤:内核层判断系统是否已经启动完成,系统如果启动完成则应用层通过内存映射获取到影像缓存的内容;应用层显示影像缓存的内容;系统如果没有启动完成则获取影像获取模块采集的数据并发送到显示模块进行显示。这里的系统为操作系统,如安卓系统或者linux系统。本发明在系统没有启动完成,可以由内核直接进行影像显示,在系统启动完成,由应用层进行显示。从而可以实现在系统还没有启动完成时的影像显示,缩短显示等待时间。而驱动采用的是一套驱动,这样开发者使用此架构做应用的开发,便容易上手,实现相应的功能也变得简单了很多。

本发明提供一种高效的影像显示装置,如图2所示,包括应用层和内核层;内核层用于初始化影像获取模块;应用层用于通过ioctl接口发送模块打开命令给内核层;内核层用于通过ioctl接口获取到模块打开命令并打开影像获取模块;应用层用于通过ioctl接口来获取内核层的影像缓存的虚拟地址;应用层用于通过内存映射获取到影像缓存的内容;应用层用于显示影像缓存的内容。本系统的应用层通过ioctl接口直接与内核层交互,实现对影像获取模块的控制和影像获取,避免了经过camerahal层,避免了要对不同系统版本的camerahal层进行适配,从而可以实现在不同系统版本间的快速移植,节省了研发资源投入,达到开发效率高的目的,简化了系统架构。

进一步地,所述影像获取模块包含有多个通道的影像获取模块,模块打开命令包含有通道标识,内核层用于在打开影像获取模块包括用于打开通道标识对应的影像获取模块,这样本系统可以实现对不同通道影像获取模块的打开和影像获取。

在作为汽车多媒体系统,所述多通道包括有倒车视频通道、视频播放模块通道、视频输入通道、车头视频通道或者车侧视频通道。

为了实现在系统没有启动完成时的影像快速显示,内核层用于获取到高优先级的中断信号;内核层用于打开中断信号对应通道的影像获取设备;内核层用于获取影像获取模块采集的数据并发送到显示模块进行显示。

进一步地,内核层用于获取影像获取模块采集的数据并发送到显示模块进行显示包括:内核层用于判断系统是否已经启动完成,系统如果启动完成则应用层通过内存映射获取到影像缓存的内容;应用层显示影像缓存的内容;系统如果没有启动完成则获取影像获取模块采集的数据并发送到显示模块进行显示。本发明在系统没有启动完成,可以由内核直接进行影像显示,在系统启动完成,由应用层进行显示。从而可以实现在系统还没有启动完成时的影像显示,缩短显示等待时间。而驱动采用的是一套驱动,这样开发者使用此架构做应用的开发,便容易上手,实现相应的功能也变得简单了很多。

本发明还提供存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。本实施例的存储介质可以是设置在电子设备中的存储介质,电子设备可以读取存储介质的内容并实现本发明的效果。存储介质还可以是单独的存储介质,将该存储介质与电子设备连接,电子设备就可以读取存储介质里的内容并实现本发明的方法步骤。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

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