(微电子学与固体电子学专业论文)面向图像处理的可配置处理器设计与实现.pdf_第1页
(微电子学与固体电子学专业论文)面向图像处理的可配置处理器设计与实现.pdf_第2页
(微电子学与固体电子学专业论文)面向图像处理的可配置处理器设计与实现.pdf_第3页
(微电子学与固体电子学专业论文)面向图像处理的可配置处理器设计与实现.pdf_第4页
(微电子学与固体电子学专业论文)面向图像处理的可配置处理器设计与实现.pdf_第5页
已阅读5页,还剩83页未读 继续免费阅读

(微电子学与固体电子学专业论文)面向图像处理的可配置处理器设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 可配置处理器可以针对具体应用做出配置,得到不同运算性能的硬件电路, 并且具有可编程性,在s o c 设计中,用可配置处理器完成数据密集型的运算任 务时,比通用微处理器具有更强的计算能力,比a s l c ( a p p l i c a t i o ns p e c i f i c i n t e g r a t e dc i r c u i t ) 具有更大的灵活性,可加快开发周期。本论文设计了一个面向 图像处理的可配置处理器模板- t 幸c o r e ,该处理器是根据传输触发架构( n a , 1 r a n s p o r t t r i g g e r e da r c h i t e c t u r e ) 设计。使用时,根据特定图像处理的应用,配 置相关参数就可生成一款具体的t 半c o r e 处理器硬件电路。 本论文对图像处理中几种基本的算法进行了分析,包括图像增强常用的卷积 滤波和中值滤波算法,图像压缩常用的离散余弦变换,以及图像的缩放算法,并 总结出这些算法的特点,为t 幸c o r e 处理器功能单元的定制提供依据。本论文对 t 枣c o r e 处理器的设计进行了详细说明,包括t 牛c o r e 内部结构、指令格式与流水 线、数据通路的构成、各个功能单元的设计、立即数存放机制,以及t 宰c o r e 内 部资源的编址等。功能单元作为t 幸c o r e 处理中的核心运算组件,直接影响着处 理器计算性能,其结构根据图像处理算法的特点来设计,如带排序功能的加减法 功能单元、浮点乘累加功能单元、带二维寻址功能的存储器访问功能单元以及无 延时跳转控制功能单元,都将提升图像处理程序运行的速度。 硬件验证时,本论文采用c 奎c o r ec 310 作为主处理器,t 宰c o r e 作为从处理器 搭建了一个硬件s o c 验证平台,系统工作主频为3 0 m h z ,图像处理的结果最终 显示在q v g a 屏幕上,结果说明t 事c o r e 能正确地完成图像处理的功能。并将 t 宰c o r e 可配置处理器与通用型微处理器c 母c o r ec 310 和a r m 9 2 6 e j 进行速度对 比,结果说明在完成同等计算量的任务时,t 奎c o r e 执行速度比通用微处理器要 高出很多。 关键词:可配置处理器图像处理传输触发架构s o c a bs t r a c t c o n n g u r a b l ep r o c e s s o ri sas p e c i a lp r o c e s s o r ,w h i c hw i l lb ei m p l e m e n t e di n h a r d w a r ec i r c u i tb yt h ec o n f i g u r a t i o na c c o r d i n gt ot h ea p p l i c a t i o n t h ec o m p u t i n g p e r f 0 r m a n c eo fc o n 6 9 u r a b l ep r o c e s s o ri sb e t t e ft h a ng e n e r a l - p u 叩o s ep r o c e s s o r a n d c o n 行g u r a b l ep r o c e s s o ri sm o r en e x i b l et h a na s i c ( a p p l i c a t i o ns p e c i f l ci n t e g r a t e d c i r c u i t ) b e c a u s eo f 砥p r o 鲈a m m a b i l i t y i nt h i st h e s i s ,at e m p l a t eo fc o n f i g u r a b l e p r o c e s s o rn a m e dt 枣c o r ei sd e s i g n e d f o ri m a g ep r o c e s s i n g t 木c o r ep r o c e s s o ri s d e s i g n e db a s e do nt r a n s p o r r t “g g e r e da r c h i t e c t u r e as p e c i f i cp r o c e s s o rw i l lb e i m p l e m e n t e db yt h ec o n f i g u r a t i o na c c o r d i n g t ot h ea p p “c a t i o no f i m a g ep r o c e s s i n g t h i st h e s i sa n a l y z e ss e v e r a la l g o r i t h m so fi m a g ep r o c e s s i n 昏i n c l u d i n gi m a g e c o n v o l u t i o n6 l t e r i n m e d i a n6 l t e r i n g ,d i s c r e t ec o s i n et r a n s f 0 彻( d c t ) ,a n di m a g e s c a “n g d e t a i l so fd e s i g no ft 木c o r ep r o c e s s o ra r ei l l u s t r a t e di nt h i st h e s i s ,i n c l u d i n g t h ea r c h i t e c t u r eo ft h ep r o c e s s o r ,i n s t f l l c t i o nf o m l a t 锄dp i p e l i n e ,d a t ap a t h ,f u n c t i o n u n i t s ( f u ) ,i m m e d i a t ed a t a ,觚da d d r e s s i n go fi n t e m a lr e s o u r c e s f u n c t i o nu n i t sa r e t h em o s ti m p o r t a n tc o m p u t i n gc o m p o n e n t so ft 幸c o r ep r o c e s s o r ,w h i c hi n f l u e n c et h e p e 怕m n a n c eo ft h ep r o c e s s o ra1 0 t t h ec i r c u i tc o n s t r i j c t i o no ff u n c t i o nu n i ti s c u s t o m i z e da c c o r d i n gt ot h ea l g o r i t h m so fi m a g ep m c e s s i n g s e v e r a lf u n c t i o nu n i t s a r ec u s t o m 泣e di nt 1 1 i st h e s i s ,s u c ha sa d d i t i o n 锄ds u b t r a c t i o nf uw i t hs o r t i n g m n c t i o n ,m u l t i p l y - a c c 啪u l a t ef uo ff l o a t i n gp o i n to p e r a t i o n ,l o a d - s t o r ef uw i t h 细o d i m e n s i o na c c e s s i n go fd a t am e m o r y ,j u m pc o n t r o lf uw i t h o u td e l a y w h e ni m a g e p r o c e s s i n gp r o g r a m sa r er u f u l i n g ,n l es p e e dw i l lb ei n c r e a s e db yu s i n gt h ec u s t o m i z e d 矗j n c t i o nu n i t s i nt h eh a r d w a r ev e 尚c a t 帆as o cp l a 怕订ni sb u i l t ,w h i c hw o r k su n d e rt h e f r e q u e n c yo f3 0 m h z i nt h i ss o cp l a t f o 咖,c 枣c o r ec 3 1oi su s e da l st h em a i n p r o c e s s o ra n dt 宰c o r ea st h ec o p r o c e s s o r t h ei m a g em e rp r o c e s s i n gb yt 木c o r ei s d i s p l a y e do nt h eq v g as c r e e n ,a n dt h er e s u l ts h o w st h a tt 木c o r ec a ne x e c u t et h e i m a g ep r o c e s s i n gp r o g r a mc o r r e c t i y t h es a m ei m a g ep r o c e s s i n gp r o g r a m sa r ea l s o m na tg e n e r a l - p u 巾o s em i c r o p r o c e s s o r sc 乖c o r ec 310a n da r m 9 2 6 e j ,a n dt h er e s u l t s h o w st h a tt 木c o r ei sf a s t e rt h a ng e n e r a 】一p u 巾o s em i c r o p r o c e s s o r sw h e ne x e c u t i n gt h e s a m ec o m p u t i n gp r o g r a m k e yw o r d s : c o n f i g u r a b l ep r o c e s s o li m a g ep r o c e s s i n g ,t t a ,s o c 第一章绪论 1 1 课题研究背景与意义 第一章绪论 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应 用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统【l 】。随 着计算机技术和微电子技术的发展,嵌入式系统在人们的生活中应用越来越广 泛,尤其在消费电子领域,被广泛应用于便携式或移动式产品中,如移动电话、 m p 3 、m p 4 、数码相机、数字电视的机顶盒等电子产品f 2 1 。过去,产品设计者通 过将各种功能的芯片组合到p c b 板上来构成系统,随着i c 设计水平与工艺设备 生产能力的提高、各种专用i p ( i n t e l l e c t u a lp r o p e r 眵) 核的不断丰富,以及电子 设计自动化( e d a ,e l e c t r o n i cd e s i g na u t o m a t i o n ) 工具的迅速发展,一个嵌入式 系统的主要功能已经可以综合到一块芯片中,也就是s o c ( s y s t e mo n c h i p ) ,这 样系统的物理尺寸可以做得更小,能量的效率更高,制造成本也更低,大的p c b 系统逐渐被s o c 所取代1 3 】【4 】。 现在的s o c 中,要在芯片上整体实现c p u 、d s p 、数字电路、模拟电路、存 储器及片上可编程逻辑等多种电路,综合实现图像处理、语音处理、通信协议、 数据处理等功能。s o c 本质上是一种复杂的i c 设计5 1 。典型的s o c 组成中, 有一个主处理器,为了完成庞大的计算任务,一个主处理器往往不能够满足实时 性要求,因而还会采用硬件加速的i p 核协助主处理器更快地完成任务。传统s o c 设计中,这些硬件加速i p 由专用集成电路( a s i c ,a p p i i c a t i o n s p e c i f i ci n t e g r a t e d c j r c u i t ) 实现,它们负责完成s o c 系统任务中数据密集型耗时计算。这种传统的 s o c 设计方法也称为基于a s i c 的s o c 设计。然而,随着嵌入式系统复杂性不断 增加,s o c 的运算任务更加庞大,a s i c 设计就更加复杂,大大影响了系统的开 发周期。另外,由于a s l c 是专用型的硬件电路,其灵活性低,一旦用户对系统 要求发生变化,可能导致整个a s i c 硬件重新设计,增加了开发的风斟3 1 。为了 增加系统的灵活性,加快开发速度,s o c 需要具有充分的可编程性,例如用内嵌 的f p g a ( f i e l dp r o g r a m m a b l eg a t ea r r a y s ) 或通用型微处理器( 如d s p ) 来实 现硬件加速部分。除了有一个主处理器外,还有一个或多个运算性能比较强大的 从处理器,数据密集运算部分交由从处理器来完成。例如t i 公司的o m a p 和 d a n c i 架构,都采用双核系统:一个通用微处理器a r m 作为主处理器,个 t i 公司的通用d s p 作为从处理器,运算性能强大,并且两个处理器都可以编程, 第一章绪论 因而灵活性高。这种d s p 从处理器也是通用型处理器,其架构相对来说很固定, 例如数据的位宽、内部总线的数量等参数都是固定的,不能针对特定的应用任务 而变化,因而处理效率存在限制,也难免在硬件上存在浪费。用内嵌的f p g a 来 做硬件加速时,芯片面积往往比较大,成本也偏高【3 1 。为了适应复杂s o c 设计发 展需要,提高s o c 运算性能的同时增加灵活性,让硬件加速部分具备可编程性, 同时能控制好硬件开销,一种新型的微处理器:可配置可扩展的微处理器应运而 生【6 h j ,这是可以根据特定应用进行裁减、定制的专用指令集处理器( a s i p a p p l i c a t i o n - s p e c i f i cl n s t r u c t i o n s e tp r o c e s s o r ) 。这种可配置的专用处理器作为s o c 的功能块,具有以下特征【3 】: 在执行一个特定应用的子系统任务时,可针对应用而除去那些通用处理 器中的冗余逻辑,增加特殊的功能单元,在高效完成任务的同时可以做 得更小,有效降低成本。 这种处理器有其自身的指令集,可以进行软件编程,因而灵活性强,可 针对应用的变化而通过编程来适应。 多个可配置处理器结合可以解决更大规模的问题,例如一个复杂的s o c 如图l - 1 所示,它不仅包含一个普通的c p u 、存储器和i o 子系统,还 包括信号、媒体、协议、安全和其他若干应用的一系列专用子系统,传 统的设计一般用d s p 或a s i c 来实现,而可配置处理器可以组合起来完 成这一系列的任务。 存储器c f i i ji o 信号处协议处 音频 理d s p理a s i c d s p 应用加速加密图像处 器a s i c a s l c理a s l c 曰围曰 啼l 圉国圉 圉圉圈 图l 1s o c 设计的转变 采用这种可配置处理器后,s o c 将具有更广泛的编程性,当应用发生变化时 只需要重新编写程序,而不需要或仅需少量改变硬件架构即可适应快速变化的应 用和市场的需求,大大缩短了设计周期、降低了设计风险。 2 第一章绪论 1 2 可配置处理器的发展现状 可配置处理器的研究已经有十多年,取得了丰硕的研究成果,而且已经应用 在商业市场上,目前主要有三家公司提供商业化的可配置处理器:美国的 t e n s i l i c a 公司和a r ci n t e m a t i o n a l 公司以及荷兰的s i l i c o nh i v e 公司。 x t e n s a 可配置处理器从1 9 9 9 年被成功开发以来,一直是t e n s i l i c a 的主打产 品并逐渐升级,包括x t e n s a7 、x t e n s al x l x 2 、d i 锄o n d 、x t e n s ad s p 等,其采 用可裁减扩充指令集的参数可配置的r l s c 体系结构,是一种应用已经很成熟的 可配置可扩展处理器l j - 1 1 5 j 。t e n s i l i c a 还提供了非常完善的开发设计工具,例如 x t e n s ax p l o r e r 可完成对c 代码的编译与调试,x p r e sc o m p i l e r 可通过对c 代 码的编译生成x t e n s a 处理器的定制,t i ec o m p i l e r 可根据应用需要对x t c n s ac p u 架构进行配置和扩展i l 引。 a r c 的典型处理器产品有a r c6 0 0 和a r c 7 0 0 ,可根据目标应用对处理器 进行定制,采用刚s c 体系结构,指令宽度可以配置为1 6 位或3 2 位,其运算性 能高、面积小且功耗低,在音视频、数码相机、网络等产品中应用广泛【l 。7 1 。 s i l i c o nh i v e 公司的可配置处理器主要用于多媒体处型1 8 】【1 9 】,是根据m o v e 架构设计的。m o v e 架构由t a b a k 和l i p o v s k i 提出,是一种只有一条m o v e 指 令的处理器架构【2 0 】【2 1 】。荷兰d e l r 大学的h e n kc o r i ) 0 m a l 教授在此基础上又提出 了传输触发结构( t 1 a ,t r a n s p o r t t n g g e r e da r c h i t e c t u r e ) 【2 2 1 ,并根据兀a 架构开发 了一款处理器m o v e 3 2 n t ,以及一套辅助开发工具m o v ef m m e w o r k l 2 3 j 。基于 t t a 架构的可配置处理器可以针对特定的应用环境,结合具体嵌入式应用算法 的特点,定制总线条数、数据宽度、功能单元、设计高效的数据通路,最大限度 实现数据并行化处理,实现性能、功耗、灵活性的折衷。在国内外高校中,对 r r a 架构可配置处理器的研究取得了一定的研究成果,在”r a 架构上实现了加 解密和一些信号处理算法等应用【2 4 h 2 引。 1 3 本论文组织结构 本论文共分五章,结构如下: 第一章,介绍本论文的课题研究背景与意义,以及可配置处理器的发展现状。 第二章,首先介绍了传输触发架构可配置处理器的特点,并与通用处理器比 较。然后分析图像处理领域几种基本算法,包括图像增强常用的卷积滤波和中值 滤波算法,图像压缩与传输常用的离散余弦变换,以及图像缩放算法。并找出这 几种算法的特点,为面向图像处理应用的可配置处理器设计提供依据。 第一章绪论 第三章,详细阐述面向图像处理的可配置处理器t 木c o r e 的设计思路与技术 细节,包括t 幸c o r e 处理器的总体架构、数据通路、立即数存放机制等内容,并 详细阐述了该处理器中各个功能单元的设计。 第四章,对第三章设计的t 宰c o r e 处理器进行验证与硬件实现,包括软件的 仿真验证与硬件s o c 平台上的验证,最后对第二章介绍的几种图像处理算法在 r c o r e 的s o c 硬件平台上实现。 第五章,对本论文进行总结,并对课题的继续深入研究提出几个发展方向。 4 第二章图像处理基本算法及其对可配置处理器的要求 第二章图像处理基本算法及其对可配置处理器的要求 数字图像处理的主要研究目的,一个是为了便于人们分析而对图像信息进行 改进,二是为使机器自动理解而对图像数据进行存储、传输及显示。图像处理常 用的基本算法有:图像增强用到的各种滤波算法,如平滑滤波、锐化滤波等;图 像压缩传输常用的离散余弦变换算法;图像显示用到的缩放算法等等。本章首先 介绍传输触发架构处理器的特点,然后介绍几种基本的图像处理算法:空间域卷 积滤波、中值滤波、离散余弦变换和图像缩放算法,最后总结出这几种算法的特 点,根据这些特点对基于传输触发架构的可配置处理器功能单元的定制提供依 据,并对图像处理的硬件平台提出要求,包括主处理器的选择以及对q v g a 等 外设的要求。 2 1 传输触发架构可配置处理器 2 1 1 传统处理器架构 早期的处理器一般采用复杂指令集( c l s c ,c o m p l e xi n s t r l i c t i o ns e tc o m p u t e r ) , 其设计的理念在于:尽量用最少的指令来完成一项计算任务,对于各式各样的操 作,c i s c 都希望能有与之对应的指令,因而c i s c 指令集设计复杂,数量庞大。 用c i s c 指令来完成计算任务时,约有2 0 的指令在程序中出现概率为8 0 ,剩 下的8 0 的指令在程序中出现概率仅为2 0 ,这就是著名的二八原则。根据这 一原则,精简指令集处理器( r i s c ,r e d u c e di n s 劬c t i o ns e tc o m p u t e r ) 被提出, 融s c 处理器只设计常用的基本指令,c i s c 所包括的复杂指令的功能则用那些基 本指令组合来实现,这样一来,完成同样的计算任务,砌s c 处理器的指令数要 比c i s c 指令数要多,但刚s c 由于指令简单,硬件设计精简,可以更大限度地 降低功耗、减少电路面积,这在对功耗成本苛刻的嵌入式系统中非常关键。现代 用于嵌入式领域的微处理器基本都采用砌s c 指令集,例如现在广泛使用的 a r m 、p o w e r p c 、m i p s 等。 在r i s c 处理器中,为减少对存储器的访问,经常设置大量的通用寄存器, 运算操作的中间结果可放在通用寄存器中而不必每次都存放到存储器中。例如要 实现d = ( a + b ) 宰c ,a 放在通用寄存器r 1 中,b 放在r 2 中,c 放在l 妈中,计算结 第二章图像处理基本算法及其对可配置处理器的要求 果d 放在r 4 中,指令写法如下: a d dr 1 ,l 也: m u l tr 1 ,i 妈: m o v e r 4 ,r l : 其中加法结果也存放到通用寄存器r l ,然后r l 再与r 3 进行乘法操作,每个操 作的结果都写回到通用寄存器中。 砌s c 处理器的一般指令格式如图2 1 所示。 图2 1 传统刚s c 处理器指令格式 操作码o p 规定本条指令所采取的操作类型,例如加法a d d 和乘法m u l t 都对应着不同的操作码o p ,地址码a 1 ,a 2 ,a 3 用于指定源操作数和目的操作 数,对于( a ) 中二地址指令,运算结果一般写回到a 1 当中;而对于三地址指 令,运算结果一般写回到a 3 当中,a r m 指令集采用的就是三地址指令【2 9 】。 存储系统的架构也是处理器结构中的重要内容,对于不同的处理器,存储的 结构与机制可能不能。根据程序存储器和数据存储器是否共享可分为冯诺伊曼 结构和哈佛结构。对于冯诺伊曼结构,由于程序与数据可以共享存储器,因而 提高了存储器的利用效率,但由于同一时刻只能访问一次存储器,因而这种结构 不能同时取出程序和数据,限制了系统的速度。哈佛结构正好相反,将程序存储 器与数据存储器分开,因而可以同时取出程序中的指令和数据存储器中的数据, 提高了系统的速度。常见的微处理器系统中,a r m 7 、m i p s 、c 木c o r e 采用的是 冯诺伊曼存储结构,a r m 9 以及t l 的d s p 采用的是哈佛结构。 2 1 2 传输触发架构处理器 传统的处理器是以一个个操作来触发运算的处理器,传输触发架构( t t a , 6 第二章图像处理基本算法及其对可配置处理器的要求 1 、r a n s p o r t 嘣g g e r e da r c h i t e c t u r e ) 处理器则不同,它是以数据的传输来触发运算 的处理器。t t a 架构处理器中,运算的任务下放到各个功能单元( f u ,f u n c t i o n u n i t ) ,每个功能单元有三类寄存器,即o p e r a n d 寄存器、确g g e r 寄存器和r e s u l t 寄存器,如图2 2 所示。 一 。功能单元b b 图2 - 2 功能单元组成 其中o p e r a n d 寄存器作为运算操作数,t r i g g e r 寄存器也是运算的操作数,但给 t r i g g e r 寄存器传输数据时,该功能单元的运算才被触发,经过约定的时钟周期 后,运算得到最终结果并存于r e s u l t 寄存器。这个约定的时钟周期数由功能单元 的硬件电路决定,也即t r i g g e r 寄存器到r e s u l t 寄存器之间电路路径的长度,称 为l a t e n c y 。单独给o p e r a l l d 寄存器传输数据时,运算不会被触发,r e s u l t 寄存 器中的值也不会被改变,给t r i g g e r 寄存器传输数据时,只有经过l a t e n c y 个时 钟周期之后r e s u l t 才会得到此次运算的结果,在此之前,r c s u l t 会维持上一次触 发运算得到的结果。 ”队架构处理器内部多条总线并行执行指令,是指令级并行( i l p , i n s 仃u c t i o n l e v e lp a r a l l e l i s m ) 的处理器| 3 0 】。例如内部有2 条总线的处理器,要完 成运算f = ( a + b ) ( c + d ) ,其中a 、b 、c 、d 可以来自于其他操作的功能单元r e s u l t 寄存器,也可以是通用寄存器刚或者立即数。f 可以存放到通用寄存器,也可以 继续传输到其他功能单元的o p e r a n d 寄存器或t r i g g e r 寄存器。要完成上面的运 算,需要用到两个功能单元,即加法功能单元a d d s u b ,以及乘法功能单元m u l , 假设这两个功能单元的l a t e n c v 都为1 个时钟周期。功能单元名称后加“o ”表 示其o p e r a n d 寄存器,同样“j ”表示其而g g e r 寄存器,“- r ”则表示其r e s u l t 寄存器。上面运算的程序如下: 1 a a d d s u b - o ,b - a d d s u b j ; 2 c a d d s u b - o ,d a d d s u b t ; 3 a d d s u b - r - m u l - _ o , n o p ; 4 a d d s u b j 乇- m u i j , n o p ; 5 n o p ,n o p : 6 m 1 i ,r f ,n o p ; 程序中用符号“ 来表示一次数据的传输,n o p 代表空操作。由于处理器内 第二章图像处理基本算法及其对可配置处理器的要求 部有2 条总线,因而程序每行都有两条指令同时运行。程序第l 行触发了( a + b ) 的操作,由于加法功能单元l a t e n c y 为l ,那么要在第3 行才能取出其结果 a d d s u br ,即触发操作后到取出结果在代码上体现为相隔l a t e n c y 行。同样第 2 行触发了( c + d ) 的运算,需要在第4 行才能取出结果,因而并不会在第3 行 冲掉( a + b ) 的结果,这里连续两行代码触发加法运算,相当于流水的过程,不 会发生冲突。在第3 行和第4 行处,加法的结果直接传送给了乘法功能单元m u l 的o p e r a n d 寄存器和t r i g g e r 寄存器,而没有中间写入到通用寄存器,相当于砌s c 处理器内部数据旁路,增加了数据传输效率。 t t a 架构处理的每条指令都是一次数据的传输,相当于传统处理器中的 m o v e 指令,既然只有一条m o v e 指令,那么t t a 架构处理器的指令格式中将 没有操作码o p 部分,其一般指令格式如图2 3 所示。 图2 3t r a 架构处理器指令格式 在基本指令格式中,只需要给出s o u r c e 部分和d e s t i n a t i o n 部分,分别代表 源操作数和目的操作数,s o u r c e 可以功能单元r e s u l t 寄存器编号,通用寄存器编 号或者立即数,d e s t i n a t i o n 可以是功能单元o p e r a n d 寄存器编号,t r i g g e r 寄存器 编号或者通用寄存器编号。带g u a r d 位的指令格式用g u a r d 位来判断条件以决定 此语句是否执行,如果不执行则插入n o p 空指令代替。t t a 架构处理器指令设 计简单,属于r l s c 类型。 t t a 架构的处理器存储系统采用的是哈佛结构,程序存储器与数据存储器分 开,并且访问数据存储器由专门的功能单元l o a ds t o r e 来管理,需要用到数据 存储器中的数据时,只需要和l o a ds t o r e 功能单元交互,方法和普通功能单元 数据的交互一样,通过内部数据通路交互,而不需要直接访问数据存储器,如图 2 4 所示。 第二章图像处理基本算法及其对可配置处理器的要求 图2 - 4 兀a 架构处理器存储系统 程序存储器一般只有一个,而数据存储器可以有多个,每个l o a d j t o r e 功能 单元管理一个数据存储器的访问,如此一来,有多个l o a ds t o r e 功能单元就可 同时访问多个数据存储器,因而能增大系统的数据吞吐量。 2 1 3 传输触发架构处理器的可配置性 传输触发架构处理器非常灵活,可以针对不同的应用做不同的配置。可配置 的参数一般有: 总线的条数 数据的位宽 指令格式中s o u r c e 和d e s t i n a t i o n 部分的位宽 功能单元种类与数量 数据存储器数量与各自的深度 指令存储器深度 通用寄存器数目 在并行程度很高的任务中配置多条总线以提高并行度,从而加快执行速度; 根据应用要求配置不同的数据位宽,如在音频编解码系统中常用2 4 b i t 宽,在加 解密应用中数据可用8 b i t 宽度等等;根据不同的算法制作不同功能的功能单元以 加速实现算法;增加l o a d s t o r e 功能单元和数据存储器的数量以增大数据吞吐 量;配置合适的通用寄存器数量以减少对数据存储器的访问等等。 9 第二章图像处理基本算法及其对可配置处理器的要求 在所有可配置的参数中,功能单元的可配置性最灵活,针对不同的应用,整 套功能单元都需要定制以提高运算效率。因而面向特定应用的t t a 架构处理器 设计,主要工作也在于各个专用功能单元的设计。 由于嵌入式系统对处理器功耗和成本要求苛刻,配置各个参数时,一方面要 达到较高的处理性能以完成运算任务,一方面要兼顾功耗和成本,在能完成任务 的基础上尽量减少硬件开销、减小电路面积,如缩减功能单元个数,减少通用寄 存器数目等等。因而配置t t a 架构处理器的各个参数时,需要综合考虑,兼顾 运行效率与电路面积,来配置一款性能满足要求、成本与功耗最低的处理器。 2 2 图像处理基本算法 2 2 1 卷积滤波 2 2 1 1 卷积滤波基本算法 滤波有频域滤波和时域滤波两种方式,频域滤波一般通过对图像信号做傅立 叶变换转到频域下进行处理,时域滤波则直接对图像的像素灰度值进行运算操 作,通过卷积运算来实现。 图2 5 卷积滤波过程 _ f 对图像的时域卷积运算是一个加权求和的过程【3 1 1 ,运算时确定模板的大小, 在与模板大小一致的图像区域中,每个像素的值分别与模板矩阵的每个元素对应 相乘,所有乘积之和再作为该图像区域中心像素的新值,如图2 5 所示。在待处 理的图像中,逐点地移动模板,可完成对整幅图像的处理。模板也称为掩膜、窗 1 0 第二章图像处理基本算法及其对可配置处理器的要求 口、核或滤波器,它由一组系数值组成,即滤波的系数值,其大小可以根据需要 来做调整,如3 木3 模板、5 幸5 模板等,常用的是3 木3 模板,图中示意的也是3 枣3 模板的卷积过程。设模板大小为3 宰3 ,其系数矩阵为 1w ( 一1 ,一1 ) w ( 一1 ,o ) 以一l ,1 ) l 矿= 1w ( o ,一1 )w ( o ,o )w ( o ,1 )i ( 2 1 ) 1w ( 1 ,一1 ) w ( 1 ,o )w ( 1 ,1 ) l 设图像坐标( x ,y ) 对应的像素灰度值为f ( x ,y ) ,经过卷积运算后,( x ,y ) 坐标点的值 11 变为: g ( x ,y ) = w ( f ,抄厂( x + f ,y + ) ( 2 - 2 ) ,= 一1j = 一l 设原图像高度为h ,宽度为w ,那么要完成整幅图像的卷积滤波处理,需要对 x = 0 ,1 ,2 ,h 1 和y = 0 ,l ,2 ,w 1 依次用上面公式,以得到一幅完整的滤波后的 图像。然而,当x = o ,x = h 1 或者y = 0 ,y = 、- 1 时,运算中将用到f ( 一1 ,- 1 ) 等超出 图像范围的值,这时( x ,y ) 也就是原图像的边界点,模板与图像区域不能匹配, 仍用上面的公式进行卷积运算时将出错。所以,对图像的边界点求新的值时,需 要有特殊的处理方法。方法一:忽略边界像素,即处理后的图像将丢掉这些像素, 这样一来,滤波后的图像将少掉一圈。方法二:保留原边界像素,即简单复制边 界像素到处理后的图像,不对边界点进行处理。方法三:先将原图像扩大一圈, 复制一遍边界点,扩大的一圈相当于f ( 1 ,y ) 或f ( x ,1 ) 等超出公式范围的点,因而 可以继续利用公式计算得到新的边界点。如图2 6 ( a ) 所示。方法四:与方法三 类似,只不过采用镜面映射的方式,将边界处内侧的点对称复制到边界外扩大一 圈的点,如图2 6 ( b ) 所示。 刊 登1 f lf 1q f 3| 3f 4 佑 f 5f 6 2f 1霞 f 4| 3搿 佑俗衔 ( a ) 复制边界点方式( b ) 镜面对称方式 图2 6 卷积滤波边界处理 2 2 1 2 卷积滤波应用 卷积滤波很为广泛,式( 3 1 ) 模板系数不一样,滤波效果也不一样,因而常 第二章图像处理基本算法及其对可配置处理器的要求 根据应用的场合来配置该系数。平滑滤波( 也称均值滤波) 是卷积滤波的一种典 型应用,它用于图像的模糊处理和去噪,一般用在图像预处理阶段,例如提取大 目标图像之前先去除一些琐碎的细节或曲线的缝隙。平滑滤波实际上是一种低通 滤波器,常用的平滑滤波模板有如图2 7 所示。 r 1 l ! l11 9 b l ( a ) ! n : 1 0 【1 l 1 j ( b ) 图2 7 平滑滤波模板 1 2 ( c ) 图像锐化是图像增强的一种方式,也可以用卷积滤波实现,常用的锐化模板 如图2 8 ( a ) 和( b ) 所示,而( c ) 和( d ) 为图像的边缘检测模板。 0 5 0 ( a ) 2 2 2 中值滤波 图2 8 图像锐化和边缘检测模板 一1 8 1 ( d ) 2 2 2 1 中值滤波基本算法 中值滤波法是一种非线性空间滤波平滑技术,它将每一像素点的灰度值设置 为该点某邻域窗口内的所有像素点灰度值的中值。中值滤波法是消除椒盐噪声非 常有效的方法【3 1 1 。中值滤波过程中,主要的算法是排序。若a 1 ,a 2 ,a 3 , a n 为一组序列,n 一般为奇数,先将该序列按从小到大的顺序排列为b l ,b 2 , b 3 ,b n ,则该序列的中值即为序号排在中间的元素的值:m = m e d i a n 们_ 1 ( a 1 ,a 2 ,a 3 ,a n ) = b 。对于二维图像某像素点( x ,y ) 的中值滤波,先要确定 z 邻域范围,即邻域窗口的大小,然后对邻域窗口中的像素灰度值进行排序,中值 即为排序后中间序号的灰度值,用该值取代原像素点( x ,y ) 的值。邻域窗口一般 为奇数方形窗口,如3 幸3 窗口、5 木5 窗口等。图像中值滤波过程如图2 9 所示: 要求得a 2 2 坐标点的新像素灰度值,先将它本身及邻域3 书3 窗口的9 个值取出, 排序后得到序列b 1 ,b 2 ,b 9 ,中值即为b 5 ,取代原像素灰度值a 2 2 ,即得到中 一 一 一 。l 1j 1 0 1 一 一 0 4 0 d 1 o 1 一 一 。lrj 一 一 一 1 9 1 1 9 1 第二章图像处理基本算法及其对可配置处理器的要求 值滤波结果,对图像逐个点做类似处理即完成整幅图片的中值滤波。 , y ,。 a 1 1 l a l 2a 1 3a 2 ia 2 2a :3 i a 3 1a 3 2a 3 3 l a 1 1a 1 2a 1 3 -i 排序 a 2 1a 2 2a 2 3 k b 5 q 、 夕 ,r 人 a 3 1 a 3 2a 3 3b lb 2b 3b 4b 5b 6b 7b 8b 9 一, 取出沁蛰原像素值一 。 图2 9 中值滤波过程 2 2 2 2 排序算法选取 中值滤波过程中,算法核心在于排序。排序算法有很多种实现方法,下面讨 论五种常用的排序方法的运行速度,以便选择一种更高效的算法来实现中值滤 波,这五种排序方法为直接插入排序、二分插入排序、简单选择排序、冒泡排序、 快速排序。从理论上讲,前四种排序法算法复杂度都为o ( n 2 ) ,快速排序法算法 复杂度为o ( n 事l 0 9 2 n ) ,比前面冒泡排序法等要低,因而排序更快。然而实际编写 程序后运行时,要考虑代码的复杂度,如条件判断,函数跳转等耗费的时间。用 这五种排序算法分别对9 个数、2 5 个数、4 9 个数、2 0 0 个数和10 0 0 个数进行排 序,在c 枣c o r ec 3 1 0 开发板上统计各种情况所需要的时间,即时钟周期数( c y c l e 数) ,统计结果如表2 1 所示。 表2 1 不同排序方法c y c l e 数统计 排序方法 排序数据量 直接插入排序二分插入排序简单选择排序冒泡排序快速排序 9 个数 8 0 31 3 7 01 3 7 711 8 l1 8 1 4 2 5 个数4 4 4 66 4 7l9 4 2 98 3 9 86 9 0 5 4 9 个数 1 5 9 3 01 8 9 5 93 4 8 4 83 1 7 7 11 3 8 3 4 2 0 0 个数 2 3 5 4 4 42 0 3 1 9 45 6 4 2 6 95 1 9 9 1 06 8 7 2 6 1 0 0 0 个数 5 8 3 6 71 l4 1 3 9 9 5 81 4 01 4 8 8 31 2 8 6 0 3 2 54 3 0 4 4 4 从表3 1 可以看出,数据量很大时( 大于4 9 个数) ,快速排序方法最快,和 其理论算法复杂度相符合。然而,如果数据量较小时( 小于2 5 个数) ,由于快速 排序使用递归调用,需要较多额外的时间来处理函数跳转,其运算速度反而是最 第二章图像处理基本算法及其对可配置处理器的要求 慢的。冒泡排序法虽然比直接插入排序法要慢些,但其程序结构最简洁规整,可 以通过定制简单的功能单元来加速,而直接插入排序程序中数据依赖性更大,并 且需要做更多的判断,不利于并行处理,也就不适合多总线可配置处理器来处理, 因而在图像中值滤波算法中,最终采用冒泡排序算法来实现。 2 2 2 3 自适应中值滤波 前面讨论的中值滤波算法对每一个像素点都会用邻域排序后的中值来替换, 即使不是噪声点也同样处理,这就可能会改变正确的像素点( 非噪声点) 的灰度 值,这就导致将正确的像素点“误杀 ,使图像更模糊。另外邻域选取的范围, 即窗口的大小会影响滤波的效果。窗口越大,对椒盐噪声滤除越多,但也使图像 更模糊。如果能判断出哪些点是噪声点,只对噪声点进行处理,而不对正确的点 进行处理,或者通过使用能够根据被滤波区域的图像特性自适应地选择滤波器, 如不同窗口大小的滤波器,去噪声后的图像效果更佳。 i a l 。 a 2aa 4 , a 3 i 图2 - 1 0 噪声点判断 噪声点的判断如图2 1 0 所示,对于中心点a ,先计算其上下左右四个点的最 大值a m a x = m a ) 【( a l ,a 2 ,a 3 ,a 4 ) 和最小值a m i n = m i n ( a 1 ,a 2 ,a 3 ,a 4 ) ,如果a 的值 比a m a x 大很多或者比a m i n 小很多,那么可以认为a 点为噪声点。假定一个阈 值t h ,如果a a m a x t h 或者a m i n a t h 则认为该点为噪声点,需要对其进行 中值滤波处理,反之则认为a 点是正确点,保持原值而不对其进行处理。实验 中,阈值t h 取为3 0 左右时,处理效果很好。这种算法是一种较为保守的中值 滤波算法,对于正确的像素点不做处理,滤波后的图像不会变模糊。 2 2 3 离散余弦变换 图像信号在空间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论