一种实现全屏预览的方法技术

技术编号:3579819 阅读:163 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种实现全屏预览的方法,应用于支持基于Windows CE的嵌入式设备,用于图像的预览和处理。包括照相手机,PDA掌上电脑,游戏机,可视电话等带有摄像功能的设备。本发明专利技术通过直接访问显示的驱动程序得到数据,具体来说它直接访问照相机驱动程序得到数据。本发明专利技术能解决现有技术中手机预览帧率很低,拍照时间过长,CPU占用率高导致程序响应滞后的问题,使得用户使用全屏预览功能更加方便,响应更快,提高系统的反应速度。

【技术实现步骤摘要】

本专利技术应用于支持基于Windows CE的嵌入式设备,用于图像的预览和 处理。包括照相手机,PDA掌上电脑,游戏机,可视电话等带有摄像功能的 设备。
技术介绍
Windows mobile⑤是徼软推出的新一代手机搡作系统平台,这一智能手 机电话解决方案提供了丰富的多媒体功能。尤其手机上的照相机已经发展到 了百万像素的级别,几乎可以和低端的数码相机媲美。在这样的发展趋势下 手机的照相机实现与数码相机同样全屏预览的效果能给用户带来全新的数码 体验,这也是巿场发展的趋势。然而在Windows CE (Windows CE是为各种嵌入式系统和产品设计的 一种压縮的、具有高效的、可升级的操作系统)中,按照传统微软DirectShow (直接显示中间件,是微软公司提供的一套在Windows平台上进行流媒体处 理的开发包,DirectShow广泛地支持各种媒体格式,包括Asf、 Mpeg、 Avi、 Dv、 Mp3、 Wave等等,使得多媒体数据的回放变得轻而易举)的解决方案在 PXA27X(lntel处理器一种)系列嵌入式嵌入式徽处理速度基础上还很难达到 流畅清晰的效果。因此提出了非DirectShow的照相机的全屏解决方案。传统DirectShow解决的方案简介DirectShow是一个微软的中间件,它能够提供对音视频媒体的回放和捕 捉功能。DirectShow提供了 API接口函数,通过这些函数可以从流设备比如 照相机设备,直接回放录制的内容。这个中间件支持多种图像格式,支持照 相机等硬件设备,支持编码解码。因此,传统的照相机预览解决方案都是通过DirectShow实现的,无论是图像的预览,还是视频的编码解码都是这样。 在这样的模式下,要实现全屏预览和预览时半透明的菜单和图标效果只能在 通过DirectShow提供的接口扩展这些功能。如图1所示,要显示一个图像只需要增加一个用户定制的过滤器116 (User Custom Filter),来实现图像和菜单按钮的合成数据。然后再传给 DirectShow的视频显示部件110 (Video Render)去显示。在上述过程中,应用程序只能操作DirectShow提供的接口,实际的图 像处理和显示都是DirectShow实现的。应用程序无法直接操作照相机和显 示屏的驱动程序。因此,无法对摄像和显示实现优化,这样在效率上是比较 差的,尤其是随着图像分辨率的增大,性能问题则更加的突出,因此在现有 技术中就会存在预览帧率很低,拍照时间过长,CPU占用率高导致程序响应 滞后等一系列问题。
技术实现思路
针对上述缺陷,本专利技术解决的技术问题在于,提供一种实现全屏预览的 方法,能解决现有技术中预览帧率很低,拍照时间过长,CPU占用率高导 致程序响应滞后的问题,使得用户使用全屏预览功能更加方便,响应更快, 提高系统的反应速度。本专利技术是,它通过直接访问显示的驱动程序得 到数据。所述的,于它直接访问照相机驱动程序得到数据。所述的,其直接访问显示的驱动程序包括以下' 一照相机应用程序向缓冲区写入数据; 数据传到DMA; LCD控制器获得数据;将图像显示在显示屏上。所述的 冲区写入数据。所述的 冲区写入数据。所述的 区写入数据。所述的 包括以下步骤打开照相机设备;打开预览数据流传输设备和负责静态图像数据传输的设备;初始化流并传送消息句柄;分配空间并传给驱动程序;把分配的空间入队列;启动设备;等待消息队列的消息进而得到图像数据的地址; 读取图像并归还缓冲区。附图说明图1是传统的DSHOW的解决方案; 图2是非DSHOW的解决方案; 图3是从驱动程序得到数据的流程图; 图4是应用程序的操作的示意101:照相机驱动(Camera Driver);102:视频流过滤器(Video Capture Filter);103:智能分流(SmartTee);104, 105, 106:颜色空间转换器(Color Space Converter);其照相机应用程序向显示的第一层缓 其照相机应用程序向显示的第二层缓 其照相机应用程序向显示的底层缓冲 它直接访问照相机驱动程序得到数据107:缓冲过滤器(Buffer Filter);108:封装的多媒体组件(DMO Wrapper Multiplexer);109:写文件模块(File Writer);110:视频显示部件(Video Renderer);111:图像接收器(lmageSink);112: LCD显示(LCD Display);113:音频驱动(Audio Driver);114:音频过滤器(Audio Capture Filter);210:菜单图标;220:驱动程序;230:预览;240:静态图像;250: 改变大小;260:扩展接口; 270:显示驱动,其中包括显示底层(base),显 示第一层(Overlay 1),显示第二层(Overlay 2);310:打开照相机设备;320:打开两个PIN设备;330:初始化流并传 送消息句柄;340:分配空间并传给驱动程序;350:把分配的空间入队列; 360:启动PIN; 370:等待消息队列的消息,进而得到图像数据的地址;380: 读取图像并归还缓冲区;410:照相机应用程序;420:向第一层显示缓冲区或底层显示缓冲区写 入数据;430:或第二层显示缓冲区;440:直接内存访问控制其DMA; 450: LCD控制器获得数据; 460:将图像显示在显示屏上。具体实施例方式为了解决上述传统方案中存在的问题,本专利技术提出了非DirectShow的照相机全屏预览的解决方案。下面结合附图对本专利技术做一个说明。本专利技术通过直接访问照相机驱动程序,得到驱动程序送来的原始数据。基于DriectShow的驱动程序也是一个不太标准的流设备驱动程序,通过一 系列操作,就可以从照相机的驱动程序中得到图像数据和控制照相机设备。本专利技术通过直接访问显示驱动程序(绕过DirectShow),显示驱动程序属 于典型的本地驱动程序,徵软提供了接口访问显示的缓冲区和导出函数接口 以便扩展功能。本专利技术通过把要显示的数据直接压入(DirectPush)显示缓冲 区就可以显示了,从而性能得到提升。本专利技术通过对显示驱动程序进行功能扩展,即实现OverLay的驱动程序 (如图2)。 Overlay是多媒体处理器所具有的一种分层显示的功能,即不同 类型的数据可以分层显示,每层都有单独的缓冲区,需要哪层的图像只需要 改变相应层的缓冲区数据即可。多层图像的叠加是由硬件完成的,这在现有 技术中已经存在。因此经过直接访问照相机的驱动程序,直接访问显示驱动 程序,同时对显示驱动程序进行功能扩展,就完全掌握了对图像的处理控制 权,需要哪层的图像只需要改变相应层的缓冲区数据即可。通过上面方法的改进,就完全掌握了对图像的处理控制权,因此在具体 实现上就可以对一些细节的问题进行改进。如拍照处理,现有技术中传统的 方法要把数据压缩成JPEG图像,然后再显示JPEG图像,这样便经过了压 缩和解压縮的过程,效率低。在本专利技术中只需要把得到的数据改变一下尺寸 大小(Resize),数据格式不变就可以在Overlay上显示了 。如果是录像的话, 系统将从驱动得到的数本文档来自技高网
...

【技术保护点】
一种实现全屏预览的方法,其特征在于它直接访问显示的驱动程序得到数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:夏登洲
申请(专利权)人:德信无线通讯科技北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利