




已阅读5页,还剩50页未读, 继续免费阅读
(信号与信息处理专业论文)基于图形处理器的实时图象目标检测算法实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 图形处理器( g p u ) 的飞速发展和革新成为计算机硬件发展的一大亮点,其主 要应用领域为3 d 图形的几何变换和光照特效的实时运算。当前的g p u 具有一定的 并行性和可编程性,并且在运行速度上相对c p u 具有一定的优势,因此在通用计 算领域的应用有着巨大的潜力。本文主要关注利用g p u 实现具有较高实时性要求 的目标检测处理算法。传统的实时图象检测与跟踪处理平台一般采用编写c p u 程 序的纯软件方法或基于d s p + f p g a 的硬件途径来构建。然而,前者程序效率不高, 在如目标检测这样的图象处理算法中很难达到实时的要求;后者在开发难度、开 发成本和系统灵活性上也受到较大的限制。因此,本文利用g p u 的优越性能,对 其在目标检测算法中的应用进行研究,使基于g p u 的图象处理平台成为一种经济 高效的可能方案。 本文介绍了g p u 的一些技术特点,分析和总结了用其实现数字图像检测处理 算法的一些基本软件途径,并在基于g p u 的处理模式和实现实时目标检测与跟踪 算法上作了探索性研究,并且取得了一定的成果。主要内容如下 ( 1 ) 研究了怎样利用o p e n g l 对g p u 进行控制,并且对其工作流程进行高效 的管理。 ( 2 ) 在了解g p u 硬件特性和编程语言c g 语言的基础上,对如何提高g p u 程序的运行效率进行了探索。在此基础上,结合o p e n g l 扩展阐述了实现实时图 象处理的一般软件框架模型。 ( 3 ) 针对具体的算法( 预处理、模板匹配、h o u g h 变换、光流计算、角点检 测) ,设计了其相应的g p u 软件实现。并且,在运行耗时的测试中,相对c p u 表 现出较大的速度优势,基本实现了以上算法的实时运行。 关键词:图形处理器,目标检测, 实时性 a b s t r a c t a b s t r a c t g r a p h i cp r o c e s su n i t ( g p u ) i so n eo ft h em o s tr e m a r k a b l ec o m p u t e rh a r d w a r e b e c a u s eo fi t sr a p i dd e v e l o p m e n ta n dr e n o v a t i o n i t sm a i na p p l i c a t i o ni s3 dg r a p h i c g e o m e t r yt r a n s f o r ma n dl i g h tc o m p u t a t i o ni nr e a lt i m e c u r r e n t l y , i th a ss o m ef e a t u r e s l i k ep a r a l l e l i s ma n d p r o g r a m m a b i l i t y i t sc o m p u t a t i o ns p e e di sf a s t e rt h a nc p u ,s o i th a s ag r e a tp o t e n t i a lt od og e n e r a l p r o p o s ec o m p u t a t i o ns u c ha sd i g i t a li m a g e p r o c e s s t h i s p a p e rm a i n l yp a ya t t e n t i o nt ot a r g e t t r a c ka l g o r i t h mi nr e a lt i m e p e o p l eh a v ed e v e l o p e d t r a d i t i o n a li m a g ep r o c e s ss y s t e mw i t hs o f t w a r ea p p r o a c hb a s e do nc p uo rh a r d w a r e a p p r o a c hb a s e do i ld s p + f p g a h o w e v e r , b o t ho ft h e mh a v eb u g s ,t h ef i r s ti sl o w e f f i c i e n c ya n d c a nh a r d l yb ea c h i e v e di nr e a lt i m e ,t h el a t t e ri sl i m i t e di nt h e d e v e l o p m e n td i f f i c u l t y ,c o s ta n ds y s t e ma g i l i t y t h e r e f o r e ,t h i sp a p e rm a k eu s eo ft h e g p ut or e a l i z et h et a r g e t t r a c ka l g o r i t h m t h i sw o r km a k et h eg p u i m a g ep r o c e s s i n gt o b ee c o n o m i ca n de f f i c i e n t 。 i nt h i s p a p e r , ii n t r o d u c es o m et e c h n i c a lf e a t u r eo fg p u ,t h e na n a l y z ea n d s u m m a r i z es o m eb a s i c w a yt o r e a l i z et h e d i g i t a li m a g ep r o c e s sa l g o r i t h m f u r t h e r m o r e ,id os o m ec r e a t i v ea n de x p l o r er e s e a r c h ,t h em a i nc o n t e n ti sl i s t e db e l l o w : ( 1 ) d os o m er e s e a r c hi nh o wt om a k eu s eo fo p e n g lt oc o n t r o lt h eg p u ,a n d m a n a g et h ew o r kf l o we f f i c i e n t l y ( 2 ) l e a r ng p u h a r d w a r ef e a t u r ea n dc gl a n g u a g et od e v e l o pt h ew a yh o wt os p e e d u pt h eg p up r o g r a m m i n g t h e n ,d e v e l o pt h er e a lt i m ei m a g ep r o c e s s i n gs o f t w a r e f r a m e w o r kb a s e do l lg p uw i t ho p e n g le x t ( 3 ) r e a l i z es o m ea l g o r i t h ml i k ep r e p r o c e s s i n g ,s a m p l em a t c h ,h o u g ht r a n s f o r m , o p t i cf l o wc o m p u t a t i o n ,c o r n e rd e t e c tb a s e do ng p u i t sr u n n i n gt i m ei sl e s st h a nc p u a n di tc a nb ea c h i e v e dr e a lt i m ec o m p u t a t i o ni ns o m e w a y k e y w o r d s :g r a p h i cp r o c e s su n i t ,t a r g e t t r a c k , r e a lt i m e i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:日期:钞易年r 月2 7 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名:l 里妞 导师签名:i 鲶:丛垒二 日期:0 帅么年,月筇日 第一章引言 第一章引言 当今的图形处理器( g p u ) 在计算机硬件系统内扮演了越来越重要的角色。 虚拟现实技术的发展和计算机游戏的普及在很大程度上依靠了g p u 强大的运算 能力所提供的实时性保证。止h j l - ,可编程性更是让人们看到g p u 的应用前景蕴涵 巨大的潜力。图形处理器厂商分别推出了针对自己产品的硬件编程语言( 着色语 言) ,让顶点片段的可编程能力更加灵活,其针对像素的运算特点使利用g p u 来 进行通用计算成为可能。 g p u 的高性能让不少研究者看到了其在通用计算领域的应用前景,进而提出 g p g p u ( g e n e r a lp r o g r a m i n gg p u ,通用可编程g p u ) 的概念。利用g p u 来进行通用计算的领域包括利用g p u 来实现矢量、矩阵的基本代数运算及在此基 础上的一些相对复杂的应用问题的求解。当前对g p g p u 领域的研究集中在某特 定算法的实现和性能评估,例如: m o r e l a n d 等人 1 在g p u 上成功实现了f f t 算法,并且通过灵活组织索引避 免运算结果的重新排序,进一步提高了算法效率,同时与基于c p u 的f f t w 库的 运算速度进行了对比。最终的对比结果g p u 表现出微弱的劣势,但是却展示了 g p u 的应用前景。 k f a t a h a l i a n 等人对g p u 的矩阵乘法 2 效率做了一系列的研究,提出了针 对g p u 的矩阵乘法模式。t o m o v 等人 3 将g p u 用于对两个基于概率的物理模型 ( i s i n g 和p e r c o l a t i o n ) 的仿真,通过合理构造算法,运算速度达到c p u 的2 6 倍。 t o m p s o n 等人 4 自创了一种用于在g p u 上进行矢量运算的体系结构,并在 通过算术运算、矩阵乘法来检验处理速度,其实验表明g p u 在速度h 大幅度领先 于c p u 。 在图象的目标检测算法的应用中,高速图象采集设备得到了广泛的应用。为 了使单帧的处理速度跟上图象采集设备的帧速,对处理平台的运算速度有较高的 要求,而一般的纯c p u 软件编程难以实现,因此传统的开发都采用设计专用并行 处理硬件平台的方式,如d s p + f p g a 的开发模式。这样的开发模式虽然可以达到 较高的运算速度,但却存在开发难度大、开发周期长、开发成本高等缺点,往往 电子科技大学硕士学位论文 满足不了实际工程中对实时图像处理中各种目标、多种算法的处理需求。对于实 时图像的目标检测算法,由于其自身的运算过程( 如各种变换和滤波运算) 也由 通用计算在这一特定领域的应用构成,因此可考虑利用g p u 的独特体系结构实现 实时图像处理。相对于c p u 、d s p 和a s i c 等传统的图像处理平台,基于g p u 的图像处理系统具有处理速度快,具有一定并行度,开发难度小,性价比较高的 特点。g p u 的主要厂商n v i d i a 也于最近不断推出针对于利用g p u 进行视频与图 像处理应用的o p e n g l 扩展机制,推动了g p u 在通用图象与视频处理领域的发展。 随着技术的发展,具有可编程g p u 的显 将会逐步成为普通计算机的标准酉e 置,其 性能和可编程度也会逐步提高。因此,对g p u 这种廉价而高效的并行处理器在通 用计算领域的进行研究具有重要意义。 本文对g p u 在实时图象处理方面的应用进行了一些探索性的工作,在研究中 结合自己的分析和对前人工作的了解,总结了一系列提高g p u 运行效率的方案, 以最大限度地开发g p u 的强大潜力,并在此基础上提出基于g p u 的图象处理软 件框架,实现了部分实时图象目标检测算法。 本文主要内容包括以下几个方面: 一、阐述g p u 软硬件特性,并总结了提高g p u 运行效率的方案; 二、对利用o p e n g l 及其扩展机制实现实时g p u 图象处理程序框架作了详细 阐述; 三、利用g p u 图象处理平台实现了部分实时图象检测处理算法( 滤波、相关 匹配、角点检测等) ,并针对不同的算法设计了相应的优化数据结构和软件结构, 在处理速度上与c p u 进行对比,测试了实时图象处理平台的性能。 2 第二章g p u 实时渲染与通用计算 第二章6 p u 实时渲染和通用计算 2 1 g p u 的硬件特i 生 图形处理器( g p u ) 是电脑显卡的核心芯片 5 】,由一定数量的并行流水单元 构成,采用了单指令多数据流( s i m d ) 结构。由于3 d 图形领域需要许多复杂的 数值运算,推动了g p u 成为运算能力强大的一种协处理器,在晶体管的规模、并 行度和存储器带宽等指标上相对普通c p u 有较大的优势,且已经支持1 6 位甚至 3 2 位的单通道浮点数输出。在短短的几年中,g p u 已经经历了4 代发展。目前的 第四代图形处理器以n v i d i a 的g e f o r c e6 8 0 0u l t r a 和a t i 的r a d e o nx 8 0 0 x t 为代 表 6 1 1 7 1 。在硬件指标上,g e f o r c e6 8 0 0u l t r a 为o 1 3 微米制造工艺,2 5 6 位架构, 晶体管规模达到2 2 2 亿,远超过了p e n t i u m4 e 的1 亿2 5 0 0 万晶体管规模。在硬 件性能上,g p u 具有以下几大优势: 1 ) 提供廉价的并行方案:这一功能主要是通过多个渲染管道和r g b a 四个颜色 通道的同时计算来体现的,另外在一个时钟周期内可以同时获取2 个甚至更多副 纹理。顶点程序的多个渲染管道意味着一个时钟周期可以并行处理多个顶点,对 于像素程序同样如此。相对于并行机来说,g p u 提供的并行性虽然相对弱,但它 在十分廉价的基础上为很多应用提供了一个很好的并行方案,尤其是对于图形计 算本身的应用来说。g e f o r c e6 8 0 0 u l t r a 有6 组顶点流水线和1 6 组像素流水线,在 具体实现时,还可利用r g b a 四个通道的同时计算来提高并行度。且随着p c 卜 e x p r e s s 的推出以及随之而来的s l i 技术,单机上多显卡的并行处理已成为现 实。 2 1 高密集度的运算:图形卡内部的内存接口位宽大于c p u 上的位宽,这样整个 计算的带宽大大提高,g p u 相对于c p u 来说,更适应传输大块的数据 9 】。g e f o r c e 6 8 0 0 u l t r a 拥有2 5 6 位的d d r 显存,高于目前c p u 上的3 2 位和6 4 位位宽。作为 处理器缓存,5 1 2 m 的显存容量也远远大于c p u 上的6 4 k 一级缓存。 电子科技大学硕士学位论文 3 、g p u 与显存之间的带宽达到了1 6 g b s ,和c p u 之问的a g p 总线带宽为 2 1 g b s 1 0 】 图2 - 1g p u 的总线带宽 实时绘制语言( h l s l 、c g 等) 的出现,使g p u 在通用计算领域的应用开始 普及,虽然g p u 生产厂商并未完全公开芯片硬件结构,但通过实时绘制语言已经 能够很好地利用g p u 的潜在运算能力。 和通用的c p u 不一样,g p u 着重对矢量运算和其并行性进行了特别的优化, 以适应对像素矩阵的大规模重复运算。因此,在g p u 上实现实时图象算法,并非 像基于c p u 的处理程序那样直接,而是要对算法程序重新设计以适应g p u 的 s i m d 结构,并最大限度地利用其并行、高速性,以保证处理速度的实时性。 5 )当今图形硬件设计上最明显的趋势是在图形处理器内提供更多的可编程性。 可编程顶点处理器对图元输入的顶点进行一定几何变换和光照计算,可编程片段 处理器对要输出的每一个像素进行处理。顶点和片段处理器都按照事先编写的一 段指令代码进行高速和并行的处理,并将处理结果存入高速显存。 2 26 p u 的应用领域 早期的g p u 只是简单地根据中央处理器运行的结果更新单独的像素,并负责 像素在屏幕的显示。随着技术的进步,目前的第四代g p u 成为市场的主流,其特 征是多个可编程顶点处理单元和像素处理单元构成的并行流水线,在3 d 图形的 应用中扮演重要角色。在3 d 图形中,复杂几何体往往是由成千上万顶点构成, 4 第二章g p u 实时渲染与通用计算 在计算机图形运算中,看似简单的顶点几何变换( 旋转、缩放、平移) 全部是由 大量的变换矩阵与顶点的位置矢量进行代数运算的结果。大量的矩阵运算和操作 是目前通用c p u 难以负担的。同时,为了模拟真实世界的光照效果,大量的逐像 素光照计算( p h o n e 着色) 也会极大的增加处理器的运算负担。而g p u 却拥有针 对这样两种类型操作的专用硬件处理单元,解决了性能与速度兼得的问题,将中 央处理器从大量的图形运算中解脱出来,造就了画质精良且速度流畅的3 d 图形 动面。 图2 - 2g p u ( p h o n e 着色) 得到光滑的球体表面光照效果 图形运算的本质是若干代数运算的组合,由于当今g p u 的顶点处理单元和像 素处理单元都是可编程的,因此针对不同的问题,可以通过编程的方法为输入顶 点和像素指定不同的代数运算。g p u 的数据输入输出有如下的函数关系: y = ,忙,岛,日:,以) 其中x 为输入变量,以为参数( 变参数或固定参数) ,y 为输出变量, 在以下的章节中,将会对这种函数关系进行进一步的阐述。 这样的结构使得利用g p u 进行通用运算成为可能。前人已经做了大量工作, 在滤波变换、矩阵运算、积分方程、消减运算等应用领域利用了g p u 进行运算加 电子科技大学硕士学位论文 速 1 1 。 0 0 0 诲01 c o o 2 巷o m a r i xs i z e 图2 - 3c p u 与g f u 进行矩阵乘法运算的速度对比 图2 3 为文献 1 2 忡针对g p u 的程序特点构造输入数据结构,并利用g p u 进行 矩阵运算加速与c p u 的矩阵运算进行对比的结果。可见随着矩阵规模的增加,利 用g p u 进行矩阵运算相h :c p u 有更大的优势。 在实际的目标检测实时图象处理应用中,算法有一定的综合性和复杂性,针 对不同的成像环境和应用领域,以多种算法的组合构成整个处理流程。在保证一 定精度的条件下,要实现较高的处理速度和灵活的算法组合,利用g p u 是一种可 能的解决方案。下图展示了利用g p u 对图象进行3 m 3 的边缘滤波,原图为图2 2 图2 4 对图2 - 2 进行的g p u 边缘检测 第二章g p u 实时渲染与通用计算 本文主要针对以各种滤波、变换和匹配算法构成的目标检测图象处理,整个 处理过程由一些算法模块按照一般的目标检测算法流程构成,而算法模块采用 g p u 程序实现。 除了以上介绍的应用之外,g p u 在视频编解码的处理中也开始发挥重要作 用,最新的g p u 都自带了硬件的视频处理器,然而在此领域的应用并非本文的研 究范围,在此不再详述。 2 3g p u 的工作流水线及编程 2 3 1 可编程流水线的操作 随着技术的发展,g p u 的并行流水线提供了越来越强大和灵活的可编程性。 下图显示了一个可编程图形处理器的流水线 5 】: 图2 - 5g p u 的可编程流水处理线 由这种流水线构成的g p u 的工作集中于可编程顶点处理器和可编程片段处 理器进行,顶点和片段处理器都可以执行相似的数学操作,如向量的加、乘、乘 加、内积、最小值和最大值等。除此之外,片段处理器还支持纹理操作。 顶点处理器和片段处理器主要用来进行实时的3 d 图形计算,例如3 d 图形中 常用多面体来近似地表达一个球体,为了提高运行速度,多面体的镶嵌数量必须 控制在一定的数量范围之内,这样模拟的球体并不是完全精确的,在进行传统的 光照计算后,球体表面的反光效果在多面体的各几何平面交界处会出现过渡不够 自然的问题。在可编程g p u 应用以后,多采用逐像素的光照渲染计算方法( p h o n e 7 电子科技大学硕士学位论文 着色) ,得到平滑的反光效果,以下便是g p u 中进行p h o n e 着色的流水线过程: ( 1 ) 向顶点处理器输入多面体的几何顶点数据v ,v 中的各分量分别表示各顶点 的坐标、纹理查找坐标、法向量等,得到输出v = f ( v 1 ,y 为进行几何变换 后顶点的实际坐标、纹理查找坐标和法向量。 ( 2 ) 多面体表面的所有像素的矿值由各顶点的顶点处理器输出的各顶点矿值硬 件插值自动生成,形成变化连续平滑的法向量和纹理坐标等 ( 3 ) 各像素的y 作为像素处理器的输入数据,光照方程参数和纹理由外部程序 指定,根据各像素不同的法向量和纹理坐标值可计算出该像素最后输出的 颜色值,颜色由以下几项相加得到: 放射光: p m i s s i v e = k e ,( 2 1 ) 其中:k e 为材质的放射光颜色。 环境反射光: a m b i e n t = k a 4g l o b a l a m b i e n t ( 2 - 2 ) 其中:k a 是材质的环境反射系数; g l o b a l a b i e n t 是入射环境光的颜色; 漫反射光: d i f f u s e = k d4 垤h t c o l o r 。 z “f 心。j ( 2 - 3 ) 其中:k d 是材质的漫反射系数; l i g h t c o l o r 是入射漫反射光的颜色; n 是规一化的表面法向量; l 是规一化的指向光源的向量: 镜面反射: s p e c u l a r = k s l i g h t c o l o r 如c i n g ( m a x ( i - 1 ) ,0 ) “” ( 2 4 ) 其中:k s 是材质的镜面反射系数; l i g h t c o l o r 是入射光的颜色; n 是规一化的表面法向量; l 是规一化的指向光源的向量; h 是v 和l 的中间向量的规一化向量; f a c i n g 是1 如果n l 大于0 ,否则为o ; s h i n i e s s 是光泽指数; 第二章g p u 实时渲染与通用计算 输出颜色: o c o b r = e m i s s i v e + a m b i e n t + d i f f u s e + s p e c u l a r( 2 - 5 ) 输出的颜色值进入帧缓存,屏幕上便显示出如图2 2 那样平滑的光照效果, 并且可以保证运行的实时性。 上述顶点处理器和片段处理器中的操作可通过编程实现,本文采用n v i d i a 公司新近推出的c g 语言来进行对g p u 的编程。由以上的g p u 流水线光照处理过 程可看出,针对不同问题编写不同的顶点和片段处理程序,相当于白定义处理函 数“) ,很多具体问题的求解都可以利用g p u 运算功能来实现,在诸如图象处理 这种通用计算中,各种算子和参数都可以代入到g p u 的各寄存器中然后执行以上 的三个步骤,对每一个像素进行类似于p h o n e 着色的计算过程。 2 3 2 硬件渲染和c g 语言 上- - 4 , 节中提到的g p u 流水工作线,在3 d 中也被称为渲染过程。可编程的 渲染过程需要开发者掌握一种硬件渲染语言。早期使用汇编指令对图形硬件进行 编程,其指令受硬件限制,开发难度也较大。高级着色语言的出现大大弥补了这 一不足,c g 语言即是其中的代表。c g 语言由n v i d i a 和m i c r o s o f l 合作开发,独 立于任何的三维编程结构( d 3 d 和o p e n g l ) 。 c g 的出现意味着向开发者提供了一种方法用来编写能够同时工作在主要的 三维编程接口和所选择的任何操作系统上的程序。无论选择w i n d o w s ,l i n u x ,m a c o s x ,游戏控制台或嵌入式的三维硬件作为平台,c g 都能很好的工作。且因为c g 语言与c 语言有相似语法特征,因此可大大降低对g p u 程序的开发难度,使得在 通用计算中的g p u 应用更为实用。 c g 程序在顶点处理器和像素处理器中有相似的编程规则,每一个单独的c g 程序都较为短小,有如下的程序结构 m a i n ( i n p u t d a t ai n , o u t p u t d a t ao u t , u n i f o r mi n p u t p a r a m e t e r ) o u t p u t d a t a 一+ 电子科技大学硕士学位论文 , u i n f o r m 类型的参数由应用程序指定一次,对于不同的顶点或像素运算具有相 同的值。 由于受硬件限制,不同的g p u 对编译以后c g 程序的指令个数、最大纹理数, 循环次数等有一定的限制。在g f o r c e 6 8 0 0 中,允许无限个数的指令,最多8 个纹理输入,3 2 * 3 2 次循环,4 个最大输出目标。指令条数的增加、纹理查找次 数的增加、复杂函数多次使用,会急剧影响g p u 的运行速度。因此,怎样编写尽 量短小的c g 程序完成复杂的处理内容也成为本文的一个难点,在2 4 节中会有详 细阐述。 在应用程序运行时,通过c g 运行库对c g 程序进行动态编译,并下载到g p u 中,在调用3 da p i 的绘制命令时便会由g p u 自动执行,下图显示了c z 程序的 运行模式 图2 - 6c g 程序的运行模式 由图2 - 6 可以看出,对c g 程序的编译执行等是通过核心c g 运行库来控制的, 而诸如o p e n g l 或d x 3 d 这种更接近底层的3 d a p i 函数库成为应用程序与g p u 硬件的接口。通过更深入的研究发现,3 da p i 函数库在基于g p u 的处理程序中 扮演了极其重要的角色,整个软件架构的形成与对g p u 的控制都是通过3 da p i 实现的。第三章将会对g p u 应用中的3 da p i 技术作进一步阐述。 2 4 提高g p u 的运行效率 由于g p u 的设计初衷只是进行3 d 图形处理,因此在类似图象处理这样的通 第二章g p u 实时渲染与通用计算 用计算中,可以充分利用3 d 图形计算方法的一些特点和g p u 程序结构的特点, 以提高运行效率: 通过事前对输入纹理进行编码,可以实现查找表功能,提高数据访问速度和 一些复杂函数的执行速度。g p u 中纹理值通过查找纹理坐标来确定,目前最多支 持3 维的纹理输入,因此可以表示以下3 种类型的函数: y = f ( x ) ;y = f ( x l ,x 2 ) ;y = f ( x l ,x 2 ,x 3 ) ( 2 - 6 ) 对于纹理对象,g p u 支持的标准大小为2 “。2 “像素的图象,这种纹理格式 被表示为g l _ t e x t u r e2 d ,也是运行速度最快的纹理方式。然而在通用计算和 图象处理中,有很多非2 ”2 n 像素大小纹理的数据应用,为了简化数据构造,可 以使用g l 指定任意大小纹理。在对速度要求比较,“格的应用_texture r e c t 中,还是应尽量构造使用g lt e x t u r e2 d 类型的纹理。 在g p u 中,图象以纹理的方式进行存储。纹理具有r g b a 四个颜色通道, 并且通过查找纹理坐标确定输出像素的颜色值。充分利用纹理的r g b a 四个通 道,还可以对多个输入数据捆绑至一个纹理,以减少纹理查找的次数,提高运行 效率。图象检测的应用中,多帧累加可采用此方式进行,将多帧数据压缩到个 纹理中的不同颜色通道,可减少纹理查找次数和数据传输的负担。此外,下文的 滤波算法中,对某一点其他领域值的提取,也可以利用将同一帧图象进行n 个像 素错位以后的4 幅新图存储至r g b a 纹理中,以便在一次纹理查找过程后可得到 4 个领域值,这样可在一定程度上提高g p u 的并行性和运行速度。 固+ 匿+ 圜+ 匿一画 图2 7 利用r b g a 通道存储数据 由于g p u 主要用作于3 d 图形处理,对向量和矩阵的数学操作直接受到硬件 的支持,因此在图像处理程序中,应充分利用c g 语言内建的向量和矩阵数据类 型及相关的标准库函数,提高程序运行速度。c g 内建的矩阵类型支持维数小于等 于4 * 4 的矩阵或向量数据,通过m u l ( m ,n ) 函数完成两个矩阵的乘法。 而对于向量的运算,将各向量直接用一般的运算符进行运算,比对向量的各 分量分别计算速度高出许多【1 7 】: 电子科技大学硕士学位论文 f l o a t 4p f i n a l = p l n i t i a l + v l n i t i a l8t :( 2 - 7 ) 这种简洁的方法能比分别计算每个分量的速度快4 倍: ppff。”in4a。1y2=pp觑lnjii打。ali警vlni“。al羔y t p f i n a l z = p l n i t i a l z v l n i t i a l t 量;)。2-8pfinalw=pinitia w lv l n i t i a lwt , _ y + 4 ; +z 8 ;f () + 8 ; j 而对于大于4 * 4 的矩阵运算,如m 。,n 4 ,可以将矩阵分解分解为2 ;2 大小 的子矩阵块,将每个子矩阵的各元素分别存储于一个f l o a t 4 型的数据类型中。 如矩阵m ,可用f l o a t 4 a n 2 ,n 2 来存储, 其中: a i ,j x y z w = 【m 2 i ,2 儿m 2 i + 1 ,2 儿m 2 i ,2 j + l 】,m 2 i + 1 ,2 ,+ 1 】 ( 2 9 ) 对于c = a * b 的矩阵乘法 构造f l o a t 4c n 2 ,n 2 , f o r ( k = o j k n 2 ;k + + ) ( c i ,j 】x y z w + = a 【i ,k 】x x z z b 【k ,j 】x y x y + a 【i ,k 】y y w w * b k ,j 】z w z w ; ) 这样,就充分利用了g p u 的内建数据类型进行快速运算。 在g p u 程序中,使用i f 语句来选择满足条件的像素并不能带来速度上的提升, 相反条件选择语句和分支语句会带来更大的运算代价。因此,避免使用i f 语句, 而采用一种称之为e a r l y z 【1 8 】的方法,对满足条件的图象区域和不满足条件的图 象区域标注不同的深度值,在下一步处理中用深度值居于两者之间的不透明纯黑 色图象覆盖整幅原图象。g p u 中,只有深度最小的点才会被显示出来,这样使得 第二章g p u 实时渲染与通用计算 不满足条件的图象区域被黑色像素遮掩,而满足条件的图象区域却不会受到影响, 使只有符合较大灰度条件的区域才可以被用于光流迭代,而其它区域则不进行这 样的运算。e a r l y z 的原理就是给图象加上一层蒙板,被蒙板遮掩的区域便不会进 行下一步的处理了。 凰 图2 - 8e a r l y z 方法的原理图 进行e a r l y z 操作的步骤如下: ( 1 ) 开启深度测试,将深度缓存( z b u f f e r ) 值设置为1 ,然后将深度操作 函数设置为g ll e s s 方式,以便深度小于1 的像素值通过深度测试。 ( 2 ) 对整幅图进行深度值为0 的渲染。在此过程中,使用d i s c a r d 指令取消 对满足某条件的像素的深度值写入,以使此像素在下一次渲染过程中 会被操作。 ( 3 ) 再次开启深度测试,并且设置为l e s s 方式。对图象进行深度值介于 0 和1 之间的渲染过程。在上一过程中被写入了深度值0 的像素操作会 被剔除掉,不被执行,而未被写入深度值的像素其深度值为1 ,在这一 步的操作会被执行。 在图像处理中,一般的图象都为矩形,然而在绘制的时候,采用矩形绘制却 不能充分利用g p u 的硬件特点,而三角型的绘制会比较- 陕 1 9 1 1 2 0 1 : 矩形绘裁代码: i , 坐王型楚盔堂亟主堂焦堡塞 g l b e g i n ( g lq u a d s ) ; g l v e r t e x 2 f ( 1 e f t ,b o t t o m ) ; g l v e r t e x 2 f ( r i g h t ,b o t t o m ) ; g l v e r t e x 2 f ( r i g h t ,t o p ) ; g l v e r t e x 2 f ( 1 e f t ,t o p ) ; g l e n d 0 ; 三角型中绘翩矩形的代码 g i v i e w p o r t ( 0 ,0 ,w i d t h ,h e i g h t ) 出b e g i n ( g l _ _ t r i a n g l e ) ; g l v e r l e x 2 f ( 0 ,o ) ; g l v e r t e x 2 f ( w i d t h4 2 ,b o t t o m ) ; g l v e r t e x 2 f ( 0 ,h e i g h t + 2 ) ; g l e n d o ; 实验表明,虽然上面的两种方法都是渲染一个矩形,然而第二种方法在速度 上有明显的优势。 目前的c g 语言支持各种数据类型,包括1 6 位和3 2 位精度的浮点数。但是 要获得最优的性能,需要使用适合特殊计算的最小的数据类型。在精度要求不高 的时候,采用f i x e d 类型的数据类型非常有用,f i x e d 的范围为2 到+ 2 ,提供了 第二章g p u 实时渲染与通用计算 1 2 位固定点的精度,实验发现,使用f i x e d 进行计算在速度上经常比使用h a l f 和 f l o a t 类型的速度快上几倍。 减少批处理的使用次数。“批处理”是指将几何图集合到一起,使得一个a p i 调用就能绘制出许多三角形,而不需要每个三角形都调用一次a p i ( 在最坏的情 况下) 。每次调用a p i 时驱动程序都会占用资源,减少这种消耗的最佳办法就是 尽可能少地调用a p i 。换句话说,就是每次绘制数干个三角形以减少总的绘制调 用次数。减少批处理的次数,增大批处理的规模是提高性能的好办法。随着图形 :笛片的处理能力越来越强大,要达到最佳的渲染速率,有效的批处理变得更加重 要。 使用代数计算来减少运算量:g p u 开始正常工作以后,应对计算方法进行检 验,看能否使用数学工具来减少运算量。 来说这种可能性更大。例如: 普通的球面帖图投射常常表示为 p = s q r t ( r 。2 + r y 2 + :+ 1 ) 2 ) 特别是对于被多个渲染器共享的库函数 ( 2 1 0 ) 这可以展开为: p = s q r t ( r x 2 + r y 2 + r z 2 + 2 r :+ 1 ) ( 2 1 1 ) 如果投射矢量已经过归一化,那么,前3 项之和一定为1 0 。因此这一表达式可 重新分解为: p = s q r t ( 2 + ( r :+ 1 ) ) = 1 4 1 4 + s q r t ( r :+ 1 ) ( 2 1 2 ) 这样可以节省运行时间。 v 晰( n i n i ) d o t ( i il i ) 这样的运算,这需要两个费时的倒数平方根( r s q ) 计 算。作一些简单的代数计算后结果是: ( n i n i ) d o t ( l i l l ) = 心d o tl ) ( i n l + l l i ) = d o tl ) ( s q r t ( ( nd o tn ) 8 ( l d o tl ) ) = ( nd o tl ) + r s q ( ( n d o tn ) + ( l d o tl ) ) ( 2 1 3 ) 电子科技大学硕士学位论文 这只需要一次费时的倒数平方根计算。 对于片段程序中基于复杂纹理坐标的纹理查找,对纹理坐标的计算应避免在片 段处理中进行,而将其放入顶点处理器中。原因是顶点处理器只是对数量相对较 少的顶点进行纹理坐标计算,而其它像素的纹理坐标则会由硬件插值自动完成, 由于充分利用了硬件特性,因此大幅度提高了运行效率。片段程序中允许输入最 多8 个纹理坐标集,t e x c o o r d 0 - - - - t e x c o o r d 7 ,若首先选用低位的纹理坐标 集( t e x c o o r d 0 集) ,性能将会有明显提升。先使用t e x c o o r d o ,再使用 t e x c 0 0 r d l 、t e x c o o r d 2 ,以此类推。 合并恒定常量( u n i f o r mc o n s t a n t ) 表达式。很多应用中在像素着色器中计算 含有动态常量的表达式。如果表达式中使用了不止一个恒定常量( 或一个恒定常 量和一个内联常量) ,通常能够将这些常量合并在一起以提高性能。例如: h a l f 4m a i n ( f l o a t 2d i f f u s e :t e x c o o r d 0 , u n i f o r ms a m p l e r 2 dd i f f u s e t e x , u n i f o r mh a l f 4g _ o v e r b r i g h t c o l o r ) r e t u mt e x 2 d ( d i f f u s e t e x ,d i f f u s e ) + g _ o v e r b r i g h t c o l o r42 0 ) g _ o v e r b r i g h t c o l o r 可以在c p u 上预先乘以2 0 ,这就不用每一个像素都进行 乘法运算,因为每一帧可能有数以百万计的像素。 除此之外,在g p u 中进行分支判断处理,多寄存器的使用,多纹理坐标的查 找操作,对g p u 的运行速度都会有较大的影响,因此在g p u 的编程时应综合考 虑以上各因素,最大限度发挥g p u 的潜力。 在c 譬程序中,各种输入数据均由c p u 程序所指定。图像数据保存在纹理类 型的数据中,最多允许1 6 个纹理同时输入,通过由顶点处理器所产生的纹理坐标 对其进行查找和取数。 对于处理的结果,g p u 通过r g b a 值和深度值将其输出至帧缓存,最多可 第二章g p u 实时渲染与通用计算 同时输出到4 个帧缓存目标中。其输出只能为【o ,1 】之间的浮点数,对于处理过 程中出现的 一1 ,1 】之间的数,可以通过如下处理将其限制到【o ,1 区间: u n s i g n e d = 0 5 s i g n e d + 0 5 ( 2 1 4 ) 电子科技大学硕士学位论文 第三章0 p e n g l 及其扩展机制下的图象处理框架 3 1 基于g p u 的实时图象处理平台 传统的图象处理平台一般是由纯c p u 软件构成的处理平台或针对某具体的 应用而开发的基于d s p + f p g a 、a s i c 器件的硬件平台。基于c p u 的纯软件处理 平台开发相对简单,但是由于c p u 和电脑硬件结构的限制,很难做到处理的实时 性。而基于d s p + f p g a 、a s i c 器件的硬件平台,虽然在速度上可以做到实时性, 然而却具有开发难度大、成本高的缺点。而可编程g p u 其内部的顶点处理器和片 段处理器在c g 程序的控制下,可对流入的数据流实时地实现各种算法处理;如果 对输入输出数据流经过适当的重组,则g p u 就是一个高速的实时图像并行处理 器,这种基于g p u 的并行处理方案有可移植性强,算法灵活多变,可适应各种不 同目标的优点,它的处理能力可随着g p u 的升级换代而不断增强。 在基于g p u 的实时图象处理平台中,g p u 程序是平台的计算核心,然而对 g p u 的高效控制、存储器的合理分配、计算核心的组合与衔接等都依靠外部c p u 程序中的3 d 应用程序接口( 3 da p i ) 来实现,因此开发者可集中精力于软件的开 发,通过优化程序结构,达到远远超过c p u 的运行速度,使之一种经济高效的实 时处理方案。 在基于g p u 的实时图象处理平台中,3 da p i 扮演了极其重要的角色,如何 充分利用3 da p i 来构建和优化实时图象检测处理程序成文本文的一个重点和难 点,本章将会对此进行详细阐述。 3 23 da p l 的选择
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年拍卖师专业题集:拍卖会现场互动与观众引导技巧试题
- 2025年初中学业水平考试地理模拟试题(自然地理思维拓展训练)
- 广州华夏职业学院《医学影像学专业导论》2023-2024学年第二学期期末试卷
- 2025年钢增强塑料复合管合作协议书
- 初中国家安全课课件
- 2025年修理与维护服务合作协议书
- 2025年基础地质勘查服务项目发展计划
- 2025年计算机二级考试内容细分试题及答案
- 2025年税务师考试自我评估与反思试题及答案
- 第1课 祖国颂歌-红旗颂(管弦乐)(教学设计)-2024-2025学年沪教版(2024)初中音乐七年级上册
- 振动理论习题答案
- 创新学习方法助力2024年ESG考试的试题及答案
- 2024年商务礼仪师实务考题及试题及答案
- 2025年辽宁省抚顺市新抚区中考二模英语试题(原卷版+解析版)
- GB/T 10810.1-2025眼镜镜片第1部分:单焦和多焦
- 精装工程师转正述职报告
- 统编版小学语文四年级下册第13课《猫》精美课件
- 新媒体环境下新闻虚拟主播对受众认知影响及发展路径研究
- 2025年宁波职业技术学院单招职业倾向性测试题库及答案(历年真题)
- 山东省威海市2024届高三下学期二模试题 数学 含解析
- 农大3号鸡饲养管理手册-
评论
0/150
提交评论