嵌入式系统基于DirectDraw的图像处理

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:z178933143
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:用DirectDraw技术进行图像显示,速度快不闪烁。文中就DirectDraw的原理作了简要介绍,并给出在嵌入式导航系统中使用DirectDraw进行视频图像显示的实例。
  关键词:DirectDraw;blt;DIB;SkinControl
  中图分类号:TP317.4文献标识码:A文章编号:1009-3044(2008)24-1192-02
  Embedded System Images Display with DirectDraw
  HU Bin
  (The 38th Institute of China Electronic and Technology Corp, Hefei 230001, China)
  Abstract: Displaying computer images with DirectDraw has advantages of fast processing and no flickering. This paper introduces the brief principle of DirectDraw and presents an example using DirectDraw in an embedded system.
  Key words: DirectDraw; blt; DIB; SkinControl
  
  1 引言
  
  嵌入式设备图形界面的开发由于硬件条件的限制,对实时性的要求非常突出。如果仍然使用Windows图形设备接口(GDI)来显示图片,将大大限制图形界面的显示速度。
  目前比较流行的图形操作方式包括:GDI、OpenGL、DirectDraw三种方式,DirectDraw是DirectX基于COM接口的一个组件,它是DirectX的基石,DirectX的其它组件都是建立在它的基础之上的。DirectDraw允许直接操作显存、硬件位块转移、硬件覆盖和翻面支持。
  
  2 DirectDraw基本要素
  
  DirectDraw通过对显存中位图的直接访问,加速了对硬件和软件图形的实时处理,它提供了一种与设备无关的方法,以获得访问特定的显示设备高级特性的能力。
  2.1 设备无关位图
  在DirectX中使用设备无关位图(DIB)作为最基本的图形文件格式。DIB本质上是一个描述图像各种信息的文件,包括图像的尺寸、使用的颜色个数及颜色值,还有每个像素的颜色数据等。
  2.2 表面(Surface)
  在用DirectDraw绘图时,我们首先将图形数据放入创建的缓冲区,再进行转换、拉伸、拷贝等操作,最后显示缓冲区中的图形数据,这些缓冲区就称为表面。表面被分为主表面和离屏表面,主表面是显示内存的一部分,主表面一般情况下是存在两个表面,一个可见的,一个不可见的。不可见的表面被称为后台缓存(Back Buffering),在程序执行页面翻转(Page Flipping)的时候,后台缓存就称为了可见的表面,而原先可见的表面就称为了后台缓存。这样做是为了完成平滑、不闪烁的图像快速切换。
  另一种表面称为离屏表面(Off_screen Surface),它始终是不可见的,是用户自定义的一个可变大小的存储缓冲区,它有助于表面之间的切换。
  2.3 位块传送(bit block transfer)
  是类似CDC类(设备描述表)的BitBlt()功能的函数,典型的Blt操作是将离屏表面的内容拷贝到一个后备缓冲区,而简单的说,Blt操作就是将一个表面的内容拷贝到另一个表面中。Blt还支持透明拷贝,就是指表面中某一像素在Blt过程中不被拷贝,这中方式我们将在后面的应用中大量使用,它可以帮我们完成不规则按钮、图标的实现。
  2.4 色彩键码
  DirectDraw可以把某种颜色或某个范围的颜色指定为一个颜色值,这个颜色值是由DDCOLORKEY结构说明的,DDCOLORKEY结构说明如下:
  tpedef stuct _DDCOLORKEY {
  DWORD dwColorSpaceLowValue; //颜色范围的低端
  DWORD dwColorSpaceHighValue; //颜色范围的高端
  } DDCOLORKEY;
  当我们对表面进行拷贝时,色彩键码指定的颜色将不被拷贝。
  
  3 DirectDraw的层次结构
  
  DirectDraw提供完成以下关键任务的工具:管理多图面;直接访问显示存储器;页面翻转;后台缓冲区;调色板管理;剪裁。
  DirectDraw通过一个设备相关的抽象层来访问硬件设备,DirectDraw尽可能地利用了硬件的加速特性,如果硬件不支持某特性,DirectDraw会使用HEL将该特性进行软件仿真。其层次结构如图1所示。
  DirectDraw通过硬件抽象层(HAL)提供设备无关操作。HAL是由设备生产厂家提供的特定设备接口,DirectDraw直接对显示硬件进行操作,应用程序不直接与HAL交换数据,而是与HAL所提供的基础结构交换数据。
  当硬件设备不支持某种特性时,DirectDraw会尝试软件仿真,仿真的功能是由硬件仿真层提供的。而这两种方式对于应用程序来说都是透明的,应用程序无需关心是硬件仿真还是软件仿真。
  
  图2
  
  4 基于DirectDraw的编程实例
  
  在我们设计的车载综合信息平台上,图形化界面的操作都使用了DirectDraw来实现,对于应用程序层大量运用的按钮、列表框、菜单、编辑框、滑动条等Windows控件,如果我们只使用标准控件,那么对于应用程序的美观将大打折扣。此时,我们运用了DirectDraw来对这些控件进行封装,结合自己设计的图片完成了对控件的图形化封装,我们称之为SkinControl。在设计过程中,我们尽量保证具有图形化界面的控件与Windows标准控件具有相同或相近的接口定义,使得程序员在后面的开发中大大减少了工作。
  以SkinButton(具有图形界面的按钮控件)为例,首先定义接口设置按钮的背景图片、图标、文字等基本信息,然后在OnPaint函数中将这些用户自定义的图片利用DirectDraw方式绘制到显示表面中,以实现按钮的图形化界面。下面我们给出程序设计中DirectDraw运用的流程图如图2所示。
  实际上,不仅在控件表面的处理我们运用了DirectDraw技术,在整个程序中我们都运用了DirectDraw来绘图而放弃使用GDI绘图,因为在嵌入式设备上,图形显示的流畅度要求是非常高的,而我们使用的显卡又支持需要的特性。实践证明,使用DirectDraw实现图像显示,图像刷新速度快,画面无闪烁。
  
  5 结束语
  
  本文针对DirectDraw的特性讨论了其在嵌入式开发中的应用,面对嵌入式系统硬件环境不高,且显示要求又很高的实际情况,运用DirectDraw技术绘图是可以提高系统显示效果的有效方式。同时用DirectDraw将Windows控件进行图形化封装,不仅可以增加应用程序美观,还可以提高程序员编程效率。
  
  参考文献:
  [1] 武永康. DirectDraw原理与API参考[M].北京:清华大学出版社,2000.
其他文献
摘要:Ad Hoc网络是一种特殊的多跳移动无线网络,它不需要任何预先设置的固定设施就可组网。由于其组网方式的灵活,使得其存在着较大的安全隐患。根据Ad Hoc网络的特点,分析其面临的各种安全漏洞,并提出了几种Ad Hoc网络的安全策略。  关键词:Ad Hoc Network;自组织网络;网络安全;安全机制  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)34-160
摘要:在分析分布式体系结构及其特点的基础上,利用Delphi对CORBA技术及Web应用系统开发的支持,将CORBA技术应用于网络教学平台的开发,实现了分布式多层Web应用系统,提高系统的稳定性、延展性和执行效率,解决了大型Web应用系统中存在的负载瓶颈问题。  关键词:CORBA;Delphi;分布式Web应用系统  中图分类号:G434文献标识码:A文章编号:1009-3044(2008)36
1968年生于湖南会同。中国四川省工艺美术大师,四川省美术家协会会员,四川省中国画学会会员,成都当代工笔画研究会理事,成都市美术家协会会员,中国民间艺术家协会会员。  1992年毕业于长春大学美术系,2004年于四川省诗书画院研修班毕业,四川省诗书画院特聘美术师,北京巴蜀画院美术师,四川蜀山画院美术师,电子科技大学成都学院教授。  志龙和我同是刘朴的学生。十年前我们在四川省诗书画院研修班开学典礼上
摘要:构造函数是C#语言中一种非常重要的方法,该文简要介绍了构造函数的概念和作用,较系统地的介绍了各类构造函数在C#中的运用,以及在使用过程中需要注意的若干事项。  关键词:.NET ;C#语言;构造函数  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)27-1994-02  Analysis of Constructor Function in C#  XIA Q
摘要:对校园网内存在ARP欺骗现象,利用DHCP Option 82应用与交换机防范技术相结合,实现用户IP与MAC地址自动绑定,有效控制了校园网内部ARP欺骗。  关键词:校园网;ARP欺骗;DHCP Option 82   中图分类号:TP309文献标识码:B文章编号:1009-3044(2008)21-30422-03    The Campus Network Protection ARP
摘要:网络地址转换(NAT)与网络安全协议(IPSec)都是在因特网上得到广泛应用的优秀技术,但由于目前IPSec和NAT技术的不兼容,使得这两种优秀的技术无法同时在网络中并存。该文对IPSec和NAT协同工作的问题进行了研究,指出NAT穿越方案的适用范围,为合理构建IPSec VPN提供了指导。  关键词:IPSec;NAT;IKE;VPN;UDP封装  中图分类号:TP393文献标识码:A文章
摘 要:该文通过对Windows 2008中WDS的特性、安装以及使用等的研究,对WDS在网络中的应用进行了论述。  关键词:WDS;Windows 2008;操作系统布署  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1340-02  Making Using of Windows Deployment Services to Install Operati
摘要:介绍了SQL Server报表服务2005的特点,结合企业报表的需求,采用对RDL文件的修改和对报表服务的数据处理进行扩展的方法,给出了一个在VS环境下利用SQL Server2005中的Reporting Service 实现动态显示Web自定义报表的例子。  关键词:报表服务;SQL2005;报表参数;RDL  中图分类号:TP391文献标志码:A文章编号:1009-3044(2008)
摘要:论述了车载多媒体控制终端系统架构基于SAA7113视频采集电路和驱动程序的设计;然后在简要介绍嵌入式系统的基础上,结合LINUX自身特点,搭建了基于嵌入式LINUX和 S3C2440开发板的嵌入式开发环境;最后以车载多媒体控制终端的功能需求为出发点,结合嵌入式GUI的结构和实现原理,以Qt/Embedded为开发工具,开发出车载多媒体控制终端  关键词: S3C2440芯片;嵌入式Linux
摘要:为实现农业信息系统之间信息资源的集成和共享,给出了一种利用Web服务实现农业信息共享的开发方案。详细阐述了共享平台的整体框架结构以及Web服务封装实现方法。能有效整合农业信息网站内部的业务系统,方便快捷的实现农业信息的共享,并具有良好的可扩展性。  关键词:Web服务;信息共享;安全模型  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)12-20ppp-0c