登录
首页 » Others » PCI EXPRESS体系结构导读 PDF

PCI EXPRESS体系结构导读 PDF

于 2020-12-12 发布
0 1096
下载积分: 1 下载次数: 4

代码说明:

PCI+EXPRESS体系结构导读,王齐,我下载合为一本,希望对你有帮助。PCI Express体系结构导读王齐编著★机械工业出版社本书讲述了与Pc及 PCI Express总线相关的最为基础的内容,并介绍了一些必要的、与PCI总线相关的处理器体系结构知识,这也是本书的重点所在。深入理解处理器体系结构是理解PCI与 PCI Express总线的重要基础。读者通过对本书的学习,可超越PCI与 PCI Express总线自身的内容,理解在一个通用处理器系统中局部总线的设计思路与实现方法,从而理解其他处理器系统使用的局部总线。本书适用于希望多了解一些硬件的软件工程师,以及希望多了解一些软件的硬件工程师,也可供电子工程和计算机类的研究生自学参考。图书在版编目(CIP)数据PCI Express体系结构导读/王齐编著.一北京:机械工业出版社,2010.3lBN978-7-111-29822-9.①P…Ⅱ.①王…Ⅲ.愚线一结构Ⅳ.①TP35中国版本图书馆CIP数据核字(2010)第028735号机械工业出版社(北京市百万庄大街2号邮政编码1007)责任编辑:车忱责任印制:洪汉军三河市宏达印刷有限公司印刷2010年3月第1版·第1次印刷l84mmx260mm·28.5印张·704T子0O0I-3500册标准书号:ISRN9787-1129829定价;5500元凡购本书,如有缺页、倒页、脱页,由本社发行部调换电话服务网络服务社服务中心:(010)8861066销售一部:(00)6326294门户网:址:/wmok.m销售二部:(010)88379649教材网:htp:∥www.amped.com读者服务部:(O10)6899821封面无防伪标均为盗版序PCI Express总线是新一代的O局部总线标准,是取代PCI总线的革命性总线架构PCI总线曾经是PC体系结构发展史上的一个里程碑,但是随着技术的不断发展,新涌现出的一些外部设备对传输速度和带宽有更高的要求,如千兆和万兆以太网、4Gb/8Gb的 FiberChannel和高速显示设备等。同时有些外部设备对总线的服务质量还有更严格的要求。PCI总线在设计之初并没有考虑这些因素,因此并不能完全满足这些外部设备的需要。PCI Express总线正是在这种背景下应运而生的。在2001年的春季英特尔开发者论坛上,英特尔公布了取代PCI总线的第三代L0技术,当时被称为“3GIO”。经 PCI-SIG审核,于202年7月正式公布了第一版规范,并更名为 PCI Express。从2004年开始, PCI Express总线逐渐全面取代PCI和ACP总线,成为新的局部总线工业标准。与PCI总线的共享并行架构不同, PCI Express总线使用高速串行传送方式,能够支持更高的频率,连接的设备不再像PCI总线那样共享总线带宽。除此之外 PCI Express总线还引人了一些新特性,如流量控制机制、服务质量管理、热插拔支持、数据完整性和新型错误处理机制等。而且 PCI Expres总线在系统软件级与PCI总线保持兼容,最大程度上降低了系统软件从原有的PCI总线体系结构移植到 PCI Expres总线体系结构的难度。目前关于 PCI Express总线规范的文献和书籍已有多种,但多集中在介绍规范本身。对于广大的开发者来说,能够从处理器系统的角度了解 PCI Express总线功能,无疑更有实用价值。无论是系统外部设备的开发、驱动程序的编写,还是其他系统软件的开发,处理器系统始终处于核心位置。本书正是从处理器系统的视角来讲述 PCI Express总线的体系结构,较为细致地介绍了如何使用FPGA实现一个基于PCle总线的外部设备,以及基于Linx系统的 PCI/PCI Express总线驱动程序和设备驱动程序。本书对于 PCI Express总线相关的软硬件开发人员具有很高的参考价值。PCI Express总线规范仍在不断发展。总的来说, PCI Express总线规范提出的最新技术概念往往在英特尔的x86处理器系统和外部设备中最先出现。本书的作者王齐先生,目前工作于英特尔开源技术研究中心,对处理器体系结构和Lmx系统核心技术均有深入研究,相信本书的读者能够从他的经验分享中获益。杨继国英特尔开源技术中心Ⅲ前言PCⅠI与 PCI Express(PCle)总线在处理器系统中得到了大规模应用。 PCISIG也制定了系列PCI与 PCI Express总线相关的规范,这些规范所涉及的内容庞杂广泛。对于已经理解了PCI与 PCI Express总线的工程师,这些规范便于他们进一步获得必要的细节知识。对于刚刚接触PCI与 PCI Express总线的工程师,这些规范性的文档并不适合阅读。在阅读这些规范时,工程师还需要具备一些与体系结构相关的基础知识,这恰是规范并不涉及的内容。对于多数工程师,规范文档适于查阅,而不便于学习。本书将以处理器体系结构为主线介绍 PCI Express总线的组成,以便读者进一步理解PcIExpress总线协议。本书并不是关于PCI和 PCI Express总线的百科全书,因为读者完全可以通过阅读PCI和 PCI Express总线规范获得细节信息。本书侧重的是PCI和 PCI Express总线中与处理器体系结构相关的内容。本书不会对PCI总线的相关规范进行简单重复,部分内容并不在PCI总线规范定义的范围内,例如HOST主桥和RC。PCI总线规范并没有规定处理器厂商如何实现HOST主桥和RC,不同的处理器厂商实现的HOST主桥和RC有较大差异,而这些内容正是本书所讨论的重点。此外本书还讲述了一些在PCI总线规范中提及,但是容易被忽略的一些重要概念。本书共由三篇组成。第Ⅰ篇(第1~3章)介绍PCI总线的基础知识。第Ⅱ篇(第413章)介绍 PCI Express总线的相关概念。第Ⅱ篇的內容以第Ⅰ篇为基础。从系统软件的角度来看, PCI Express总线向前兼容PCI总线,理解 PCI Express总线必须建立在深刻理解PCI总线的基础之上。读者需要按照顺序阅读这两篇。第1章主要说明PCl总线涉及的一些基本知识。有些知识稍显过时,但是在PC总线中出现的一些数据传送方式,如 Posted、Nn- Posted和 Split数据传送方式,依然非常重要,也是读者需要掌握的。第2章重点介绍PCI桥。PCI桥是PCI及 PCI Express体系结构的精华所在,本章还使用了一定篇幅介绍了非透明桥。非透明桥不是PCI总线定义的标准桥片,但是在处理器系统之间的互联中得到了广泛的应用。第3章详细阐述PCI总线的数据传送方式,与 Cache相关的内容和预读机制是本章的重点。目前pC与 PCI Express对预读机制的支持并不理想。但是在可以预见的将来, PCI EXpres总线将充分使用智能预读机制进一步提高总线的利用率。第4章是 PCI Express篇的综述。第5章以 Intel的笔记本平台 Montevina为例说明RC的各个组成模块。实际上RC这个概念,只有在x86处理器平台中才真正存在。其他处理器系统中,并不存在严格意义上的RC。第6、7章分别介绍 PCI Express总线的事务层、数据链路层和物理层。物理层是PCIExpress总线的真正核心,也是中国工程师最没有机会接触的内容。这也是我们这一代工程师的遗憾与无奈。第8章简要说明了 PCI Express总线的链路训练与电源管理。第9章主要讨论的是通用流量控制的管理方法与策略。 PCI Express总线的流量控制机Ⅳ制仍需完善,其中不等长的报文长度也是限制 PCI Express总线流量控制进一步提高的重要因素。第10章重点介绍MS和MSI-X中断机制。MS中断机制在PCI总线中率先提出,但是在PCⅠ Express总线中也得到大规模普及。目前x86架构多使用MSIX中断机制,而在许多嵌入式处理器中仍然使用MSI中断机制。第11章的篇幅很短,重点介绍PCI和 PCI Express总线中的序。有志于学习处理器体系结构的工程师务必掌握这部分内容。在处理器体系结构中有关 Cache和数据传送序的内容非常复杂,掌握这些内容也是系统工程师进阶所必须的。第12章讲述了笔者的一个实际设计—Capc卡,简单介绍了 Linux设备驱动程序的实现过程,并对 PCI Express总线的延时与带宽进行了简要分析。第13章介绍PCI总线与虚拟化相关的一些内容。虚拟化技术已崭露头角,与虚拟化相关的一系列内容将对处理器体系结构产生深远的影响。目前虚拟化技术已经在x86和 PowerPC处理器中得到了广泛的应用第Ⅲ篇以Linx系统为实例说明PCI总线在处理器系统中的使用方法,也许有许多读者对这一篇有着浓厚的兴趣。Iinx无疑是一个非常优秀的操作系统。但是需要提醒系统工程师,lix系统仅是一个完全开源的操作系统。对于有志于学习处理器体系结构的工程师,学习 Linux系统是必要的,但是仅靠学习 Linux系统并不足够。通常说来,理解处理器体系结构至少需要了解两三种处理器,并了解它们在不同处理器上的实现。尺有所短,寸有所长。不同的处理器和操作系统所应用的领域并不完全相同。也是因为这个原因,本书以 PowerPC和x86处理器为基础对PCI和 PCI Express总线进行说明。本书在写作过程中得到了我的同事和在处理器及操作系统行业奋战多年的朋友们的帮助。在Linx系统中许多与处理器和PCI总线相关的模块,都有着他们的辛勤付出。刘建国和郭超宏先生审阅了本书的第Ⅰ篇。马明辉先生审阅了本书的第Ⅱ篇。张巍、余珂与刘劲松先生审阅了第13章。吴晓川、王勇、丁建峰、李力与吴强先生共同审阅了全书。本书第12章中出现的 Capric和 Cornus卡由郭冠军和高健协助完成。看着他们通过对PCI Express总线理解的逐渐深入,最终设计出一个具有较高性能的 Cornus卡,备感欣慰。此外杨强浩先生也参与了 Capric和 Cornus卡的原始设计与方案制定,在此对他及他的团队在这个过程中给予的帮助表示感谢,我们也一道通过这两块卡的制作进一步领略了 PCI EX-press总线的技术之美。个优秀的协议,从制定到广大技术人员理解其精妙之处,再到协议应用到一个个优秀产品中,需要更多的人参与、投人、实践,这也是编写此书最大的动力源泉。本书的完成与我的妻子范淑琴的激励直接相关, Capricornus也是她的星座。还需要感谢本书的编辑车忱与策划时静,正是他们的努力使得本书提前问世。对本书尚留疑问的读者,可通过我的邮箱sailing.w@gmail.com与我联系。最后希望这本书对您有所帮助。作者目录序前言第丨篇PC|体系结构概述第1章PC|总线的基本知识3第2章PC|总线的桥与配置……281.1PCI总线的组成结构………52.1存储器域与PCI总线域…281.1.1HOsT主桥2.1.ICPU域、DRAM域与存储器域…291.1.2PCI总线…………72.1.2PCI总线域…301.1.3PCI设备…………1.3处理器域1.1.4HOST处理器82.2HOST主桥…………321.1.5PCI总线的负载…2.2.1PCI设备配置空间的访间机制……331.2PCI总线的信号定义曹重量自道2.2.2存储器域地址空间到PCI总线1.2.I地址和数据信号中看语面“,·域地址空间的转换1.2.2接口控制信号……02.2.3PCI总线域地址空间到存储器123仲裁信号……………12域地址空间的转换…………371.2.4中断请求等其他信号····:122.2.4x86处理器的HOST主桥………401.3PCI总线的存储器读写总线事务…132.3PCI桥与PCI设备的配置空间…421.3.1PCI总线事务的时序…142.3.1PI桥………………………421.3.2 Posted和Non- Posted传送方式………52.3.2 PCI Agent设备的配置空间………441.3.3HOST处理器访问PCI设备162.3.3PCI桥的配置空间501.3.4PCI设备读写主存储器……82.4PCI总线的配置…………531.3.5 Delayed传送方式……24.1Type01h和 Type 00h配置请求1.4PCI总线的中断机制…22.42PCI总线配置请求的转换原则…551.4.1中断信号与中断控制器的连接2.4.3PCI总线树Bus号的初始化…关系………………………………212.4.4PCI总线 Device号的分配……591.4.2中断信号与PCI总线的连接2.5非透明PCI桥关系……2225.1 Intel21555中的配置寄存器…621.4.3中断请求的同步………………23252通过非透明桥片进行数据传递…631.5PCI-X总线简介…吾量由……252.6小结651.5.1 Split总线事务…25第3章PC总线的数据交换甲·看当血61.5.2总线传送协议………263.1PCI设备BAR空间的初始化……6653基于数据块的突发传送…3.1.1存储器地址与PCI总线地址1.6小结27的转换3.1.2PCI设备BAR寄存器和PCI桥空间进行DMA读写……………8Base、 Limit寄存器的初始化3.3.4PCI设备进行DMA写时发生3.2PCI设备的数据传递69Cache命中………………………823.2.1PCI设备的正向译码与负向3.3.5DMA写时发生 Cache命中译码………………………………69的优化………85322处理器到PC设备的数据传送…713.4预读机制……863.2.3PCI设备的DMA操作……………723.4.1指令预读3.24PCI桥的 Combining、 Merging34.2数据预读···89和 Collapsing中··自串暮暮福品品画733.4.3软件预读…93.3与 Cache相关的PCI总线事务…74344硬件预读……933.3.1 Cache一致性的基本概念…3.4.5PCI总线的预读机制…………943.3.2PCI设备对不可 Cache的存储器3.5小结··即自甲要普有当布普面首由a…98空间进行DMA读写3.3.3PCI设备对可 Cache的存储器第‖篇Pc| Express体系结构概述第4章PCe总线概述5.1.1 EPBAR寄存器……1444.1PCIe总线的基础知识…………lO51.2 MCHBAR寄存器………………1444.1.1端到端的数据传递……………0n5.I.3其他寄存器…………l444.1.2PCle总线使用的信号…1035.2 Montevina平台的存储器空间的4.1.3Pcle总线的层次结构…07组成结构………………,1454.1.4Pcle链路的扩展…I085.2.1 Legacy地址空间…………l474.1.5PCIe设备的初始化…………Il052.2DRAM域474.2PCe体系结构的组成部件……25.2.3存储器域…144.2.1基于PC架构的处理器系统…25.3存储器域的PCI总线地址4.2.2RC的组成结构………………1l7间……………………………504.2.3 Switch解着喜+「中··鲁曲曲「85.3.1PCI设备使用的地址空间………1504.24VC和端口仲裁……1205.3.2FCIe总线的配置空间………………5l425 PCle-to-PCLPCI-X桥片………1225.4小结·::···中.d;=·".:7544.3PCIe设备的扩展配置空间…123第6章PCe总线的事务层…7554.3.1 Power Management Capability6.1TLP的格式155结构l246.1.1通用TP头的Fmt字段和Ty4.3.2 PCI Express Capability结构127字段………………………1564.3.3 PCI Express Extended Capabilities6.1.2TC字段…………………………l58结构…………………l36.1.3Amr字段……………………………1594.4小结l396.1.4通用TLP头中的其他字段160第5章 Montevina的MCH和|CH…1406.2TLP的路由……1615.1PCI总线0的Deve0设备……,1416.2.1基于地址的路由Ⅶ6.2.2基于ID的路由8.1.3 Receiver detect识别逻辑2176.2.3隐式路由……暴音前自mm1668.2 LTSSM状态机…2I86.3存储器、LO和配置读写8.2.1 Detect状态…………220请求TIP……………….1678.22 Polling状态…………………22l6.3.1存储器读写请求TLP…………1688.2.3 Configuration状态………2236.3.2完成报文……………………1728.2.4 Recovery状态22863.3配置读写请求mP……………1741748.2.5 LTSSM的其他状态……2316.34消息请求报文………………758.3PCle总线的 ASPM……………2326.3.5PCIe总线的原子操作……1778.3.1与电源管理相关的链路状态…23263.6 TLP Processing Hint∴……………i788.3.2D0状态…………………………2336.4TLP中与数据负载相关的8.3.3I0状态………………234参数………………………1818.3.4Ll状态…2356.4.1 Max_Payload_Size参数………·l88.3.5L2状态…2366.4.2 Max_ Read_ Request_Siz参数…l828.4 PCI PM机制……4日#······世23764.3RCB参数……………………838.4.1PCle设备的 D-State…………2376.5小结8.4.2D- State的状态迁移238第7章PCe总线的数据链路层与8.5小结………………………………240物理层·普自·自:.吾.“:a日平;.千画185第9章流量控制··自自·着暮;品吾.“中24l7.l数据链路层的组成结构………1859I流量控制的基本原理………2427.1.1数据链路层的状态…………1869.1.1Rate- Based流量控制………………2437.L.2事务层如何处理DL_Down和9.1.2 Credit- Based流量控制244状态1899.2 Credit- Based机制使用的算法…2467.1.3DILP的格式……………8992.1N23算法和N123+算法2497,2ACK/NAK协议………………1919.2.2N23算法……25072.I发送端如何使用ACK/NAK9.2.3流量控制机制的缓冲管理……252协议1929.3PCle总线的流量控制2547.2.2接收端如何使用ACK/NAK9.3.lPCe总线流量控制的缓存协议…………………………l95管理25572.3数据链路层发送报文的顺序……19993.2 Current节点的 Credit…2577.3物理层简介…9.3.3VC的初始化……………2597.3.,1PCle链路的差分信号…………20093.4PCIe设备如何使用FCP…26l7.3.2物理层的组成结构…………2049.4小结………………,2627.3.38/10b编码与解码…………206第10章MS和MS|X中断机制2637.4小结………………21010.1 MSI MSI-X Capability结构…263第8章PCe总线的链路训练与电源10.1.1 MSI Capability结构………264管理……………………………2l10.1.2MsL- X Capability结构………2668. 1 PCle链路训练简介……2/10.2 PowerPC处理器如何处理8.1.1链路训练使用的字符序列……213MSI中断请求……………2688.1.2 Electrical Idle状态-u+aiua,21610.2.1MSI中断机制使用的寄存器270Ⅷ

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 接口文档标准模板-含Word和excel两种
    接口文档标准的模板,包含Word和excel两种模板。满足各种语言接口需要。
    2019-10-16下载
    积分:1
  • 控制系统仿真与计算机辅助设计
    薛定宇《控制系统仿真与计算机辅助设计,内有相应的控制系统MATLAB代码和描述
    2020-12-08下载
    积分:1
  • HT-001 RN8209电表套件(STM32带电能),2017.12.04
    HT-001 RN8209电表套件(STM32带电能),带全部的电路原理图,源代码和相关文档说明。
    2020-12-08下载
    积分:1
  • web--文档管理系统
    可以按照各类条件进行检索文档,采用三层结构进行开发,编辑器采用的是fckeditor后台报告:站点设置、系统探针、文档管理、用户管理
    2020-12-01下载
    积分:1
  • BA无标度网络,WS小世界,随机图matlab实现
    BA无标度网络,WS小世界,随机图matlab实现
    2020-06-27下载
    积分:1
  • opencv2.4.9源码分析——SIFT
    详细介绍SIFT算法,opencv的SIFT源码分析,以及应用实例SIFT算法进行了改进,通过对两个相邻高斯尺度空间的图像相减,得到个DoG(高斯差分,Difference of gaussians)的响应值图像Dx,y,σ)来近似LoGD(x,y, o)=(G(x,y, ko)-G(x,y,o)O1(x,y)=L(x,y, ko)-L(x,y,a(5)其中,k为两个相邻尺度空间倍数的常数。可以证明DoG是对LoG的近似表示,并且用DoG代替LoG并不影响对图像斑点位賀的检测。而且用DoG近似LoG可以实现下列好处:第一是LoG需要使用两个方向的高斯二阶微分卷积核,而DoG直接使用晑斯卷积核,省去了卷积核生成的运算量;第二是DoG保留了个高斯尺度空间的图像,因此在生成某一空间尺度的特征时,可以直接使用公式1(或公式3)产生的尺度空间图像,而无需重新再次生成该尺度的图像:第三是DoG具有与LoG相同的性质,即稳定性好、抗干扰能力强。为了在连续的尺度下检测图像的特征点,需要建立DoG金宇塔,而DoG金宁塔的建立又离不开髙斯金字塔的建立,如下图所小,左侧为高斯金字塔,右侧为DoG金字塔:(nextoctave)Scale(firstoctave)Difference ofaussianGaussian(DOG)图1高斯金字塔和DoG金字塔高斯金字塔共分O组( Octave),每组又分S层( Layer)。组内各层图像的分辨率是相同的,即长和宽相同,但尺度逐渐增加,即越往塔顶图像越模糊。而下·组的图像是由上组图像按照隔点降采样得到的,即图像的长和宽分别减半。高斯金字塔的组数O是由输入图像的分辨牽得到的,因为要进行隔点降采样,所以在执行降釆样生成高斯金字塔时,一直到不能降采样为止,但图像太小又亳无意义,因此具体的公式为:0=| log2 min(x,y)-2」(6)其中,X和Y分别为输入图像的长和宽,L」衣示向下取整。金字塔的层数S为:(7)LoWe建议s为3。需要注意的是,除了公式7中的第一个字母是大写的S外,后面出现的都是小写的s髙斯金字塔的创建是这样的:设输入图像的尺度为0.5,由该图像得到高斯金字塔的第0组的第0层图像,它的尺度为m,我们称m为基准层尺度,再由第0层得到第1层,它的尺度为ko,第2层的尺度为k2o,以此类推。这里的k为:(8)我们以s=3为例,第0组的6(s+3=6)幅图像的尺度分别为:0,ko0,k2∞,k3o0,k∞o,k5o(9)写成更一般的公式为:d=or∈[0,,s+2](10)第0组构建完成后,再构建第1组。第1组的第0层图像是由第0组的倒数第3层图像经过隔点采样得到的。由公式10可以得到,第0组的倒数第3层图像的尺度为k∞o,k的值代入公式8,得到了该层图像的尺度正好为2∞,因此第1组的第0层图像的尺度仍然是2∞。但由于第1组图像是由第0组图像经隔点降采样得到的,因此相对于第1组图像的分辨率来说,第θ层图像的尺度为ω,即尺度为2σ是相对于输入图像的分辨率来说的,而尺度为∞是相对丁该组图像的分辨率来说的。这也就是为什么我们称0为基准层尺度的原因(它是每组图像的基准层尺度)。第1组其他层图像的生成与第0组的相同。因此可以看出,第1组各层图像的尺度相对于该组分辨率来说仍然满足公式10。这样做的好处就是编程的效率会提高,并且也保证∫高斯金字塔尺度空间的连续性。而之所以会出现这样的结果,是因为在参数选择上同吋满足公式7、公式8以及对上·组倒数第3层图像降釆样这三个条件的原因。那么第1组各层图像相对」输入图像来说,它们的尺度为:=2k00r∈[0,,S-2该公式与公式10相比较可以看出,第1组各层图像的尺度比第0组相对应层图像的尺度人了一倍。高斯金字塔的其他组的构建以此类推,不再赘述。下面给出相对于输入图像的各层图像的尺度公式:o,)=2k∞O∈[0,O-1l,r∈[0,,+2(12)其中,O表示组的坐标,r表示层的坐标,a为基准层尺度。k用公式8代入,得:2O∈[0,…0-1],r∈[0,…,s+2](13)在高斯金字塔中,第0组第∂层的图像是输入图像经髙斯模糊后的结果,模糊后的图像的高频部分必然会减少,因比为了最大程度的保留原图的信息量,LoWe建议在创建尺度空间前首先对输入图像的长宽扩展一倍,这样就形成了高斯金字塔的第-1组。设输入图像的尺度为0.5,那么相对于输入图像,分辨率护人一倍后的尺度应为1,由该图像依次进行高斯平滑处理得到第-1组的各个层的尺度图像,方法与其他组的一样。由于增加」第-1组,因此公式13重新写为(0∈[-1,0,…,0-1],r∈[0,…,s+2](14)DoG金字塔是由高斯金字塔得到的,即高斯金宁塔组内相邻两层图像相减得到DoG金字塔。如髙斯金字塔的第0组的筼0层和第1层相减得到DoG金字塔的第0组的箅0层图像,高斯金字塔的第0组的第1层和第2层相减得到υσG金字塔的第θ组的第1层图像以此类推。需要注意的是,高斯金字塔的组内相邻两层相减,而两组间的各层是不能相减的因此高斯金字塔每组有s+3层图像,而DoG金宁塔每组则有s+2层图像。极值点的搜索是在DoG金字塔内进行的,这些极值点就是候选的特征点。在搜索之前,我们需要在DoG金字塔内剔除那些像素值过小的点,因为这些像素具有较低的对比度,它们肯定不是稳定的特征点。极值点的搜索不仅需要在它所在尺度空间图像的邻域内进行,还需要在它的相邻尺度空间图像内进行,如图2所示。每个像素在它的尺度图像中一共有8个相邻点,而在它的下一个相邻尺度图像和上个相邻尺度图像还各有9个相鸰点(图2中绿色标注的像素),也就是说,该点是在3×3×3的立方体内被包围着,因此该点在DoG金字塔内一共有26个相邻点需要比较,来判断其是否为极大值或极小值。这里所说的相邻尺度图像指的是在同个组内,因此在DoG金字塔内,每一个组的第0层和最后一层各只有一个相邻尺度图像,所以在搜索极值点时无需在这两层尺度图像内进行,从而使极值点的搜索就只在每组的中间s层尺度图像内进行。搜索的过程是这样的:从每组的第1层开始,以第1层为当前层,对第1层的DoG图像中的每个点取·个3×3×3的立方体,立方体上下层分别为第0层和第2层。这样,搜索得到的极值点既有位置坐标(该点所在图像的空间坐标),又有尺度空间坐标(该点所在层的尺度)。当第1层搜索完成后,再以第2层为当前层,其过程与第1层的搜索类似,以此类推。Scale图2DoG中极值点的搜索2、特征点的定位通过上一步,我们得到了极值点,但这些极值点还仅仅是候选的特征点,因为它们还存在一些不确定的因素。首先是极值点的搜索是在离散空间内进行的,并且这些离散空间还是经过不断的降采样得到的。如果把采样点拟合成由面后我们会发现,原先的极值点并不是真正的极值点,也就是离散空间的极值点并不是连续空间的极值点。在这里,我们是需要精确定位特征点的位置和尺度的,也就是要达到亚像素精度,因此必须进行拟合处。我们使用泰勒级数展开式作为拟合函数。如上所述,极值点是·个三维矢量,即它包括极值点所在的尺度,以及它的尺度图像坐标,即=(x,y,o),因此我们需要三维函数的泰勒级数展开式,设我们在=(x0,y,)处进行泰勒级数展开,则它的矩阵形式为:602f02f02fdxax day dao02f02f02faxdy ayay ayaallly-yol2f02f02fOrdo aydo dodo(15)公式15为舍去高阶项的形式,而它的矢量表示形式为f(X)=f(X0)+o¥(X-x0)+7(x-x0)a F(X-Xo(16)在这里表示离散空间卜的插值中心(在离散空问内也就是采样点)坐标,表示拟合后连续空间下的插值点坐标,设ⅹ=Ⅹ-Xn,则X表示相对于插值中心,插值后的偏移量。因此公式16绎过变量变换后,又可写成:f(x)=f(X0)+yX+XTⅩX20X2(17)对上式求导,得af (x a02f0ox ox+2 ax2+axa80f.02fXaxaX2(18)让公式17的导数为0,即公式18为0,就可得到极值点下的相对于插值中心的偏移量:aX2 ax(19)把公式19得到的极值点带入公式17中,就得到了该极值点下的极值Tf(X)=f(X0)+af02f10f)a2f/02f-1of2 8X2 0X/0X28X2dXf(X0)+H打×1ora2Ta2f-ra2fa2f-1 af2 dx dx2dx2dx2 dXa f02f-10f∫(X0)+dF×f7a22 ax ax2 axaflf(Xo)+xx+2 0X(-X)18Ff(X0)+2 aX(20)对于公式19所求得的偏移量如果大」0.5(只要x、y和σ任意一个量大于0.5),则表明插值点已偏移到了它的临近的插值中心,所以必须改变当前的位置,使其为它所偏移到的插值中心处,然后在新的位置上重新进行泰勒级数插值拟合,直到偏移量小于0.5为止(x、y和σ都小于0.5),这是一个迭代的工程。当然,为了避免无限次的迭代,我们还需要设置个最人迭代次数,在达到了迭代次数但仍然没有满足偏移量小于0.5的情况下,该极值点就要被剔除掉。另外,如果由公式20所得到的极值f(X过小,即f(X1,则Tr(H)2(a+β)2(+β)2(y+1)2Det(h)2(25)上式的结果只与两个特征值的比例有关,而与具体的特征值无关。我们知道,当某个像系的矩阵的两个特征值相差越大,即γ很大,则该像素越有可能是边缘。对于公式25,当两个特征值相等时,等式的值最小,随着γ的增加,等式的值也增加。所以,要想检查主曲率的比值是否小于某一阈值y,只要检査下式是否成立即可:Tr(H)(y+1)Det(h)(26)对于不满足上式的极值点就不是特征点,因此应该把它们剔除掉。Lowe给出γ为10在上面的运算中,需要用到有限差分法求偏导,在这里我们给出具体的公式。为方便起见我们以图像为例只给出二元函数的实例。与二元函数类似,三元函数的偏导可以很容易的得到设f(i,是ν轴为i、x轴为j的图像像素值,则在(j点处的一阶、二阶及二阶混合偏导af f(i, j+1)-f(i, j0ff(i+1,j)-f(-1,ax2h2h(27)ff(+1)+f(-1)-2f(,j)a2ff(+1,j+f(-1,j)-2f(i,j)hh(28)2ff(-1,j-1)+f(i+1,j+1)-f(i-1,+1)-f(i+1,-1)dx d(29)由丁在图像中,相邻像素之问的间隔都是1,所以这里的h3、方向角度的确定经过上面两个步骤,一幅图像的特征点就可以完全找到,而且这些特征点是具有尺度不变性。但为了实现旋转不变性,还需要为特征点分配一个方向角度,也就是需要根据检测到的特征点所在的高斯尺度图像的局部结构求得一个方向基准。该高斯尺度图像的尺度a是已知的,并且该尺度是相对于高斯金字塔所在组的基准层的尺度,也就是公式10所表示的尺度。而所谓局部结构指的是在高斯尺度图像中以特征点为中心,以r为半径的区域内计算所有像素梯度的幅角和幅值,半径r为(30)其中a就是上面提到的相对于所在组的基准层的高斯尺度图像的尺度。像素梯度的幅值和幅角的计算公式为:m(xy)=√(x+1,y)-L(x-1,y)2+(L(x,y+1),L(x,y-1)2(31)L(x,y+1)-L(x,y-1)o(x, y)=arctanL(x+1,y)-L(x-1,y)(32)因为在以〃为半径的区域内的像素梯度幅值对圆心处的特征点的贡献是不同的,因此还需要对幅值进行加权处理,这里采用的是高斯加权,该高斯函数的方差Cm为:Om=1.50(33)其中,公式中的σ也就是公式30中的σ在完成特征点邻域范围内的梯度计算后,还要应用梯度方向直方图来统计邻域內内像素的梯度方向所对应的幅值大小。具体的做法是,把360°分为36个柱,则每10°为一个柱,即0°~9为第1柱,10°~19为第2柱,以此类推。在以r为半径的区域内,把那些梯度方向在0~9°范围内的像索找出来,把它们的加权后的梯度嘔值相加在一起,作为第1柱的柱高;求第2柱以及其他柱的高度的方法相同,不再赘述。为了防止某个梯度方向角度因受到噪声的干扰而突变,我们还需要对梯度方向直方图进行平滑处理。 Opencv2.4.9所使用的平滑公式为:H()~h(-2)+h(+2)4×(h(-1)+h(+1)),6×h()i=0...15161616(34)其中h和H分别表示平滑前和平滑后的直方图。由于角度是循环的,即0°=360°,如果出现h(),j超出了(0,…,15)的范围,那么可以通过圆周循环的方法找到它所对应的、在0°~360°之间的值,如h(-1)-h(15)这样,直方图的主峰值,即最高的那个柱体所代表的方向就是该特征点处邻域范围内图像棁度的主方向,也就是该特征点的上方向。由于柱体所代表的角度只是一个范围,如第1柱的角度为0~9°,因此还需要对离散的梯度方向直方图进行插值拟合处理,以得到更精确的方向角度值。例如我们凵经得到了第i柱所代表的方向为特征点的主方向,则拟合公式为:H(i-1)-H(i+1)B=i+=0,…152×(H(-1)+H(i+1)-2×H()(35)O=360-10xB(36)其中,H为由公式34得到的直方图,角度6的单位是度。同样的,公式35和公式36也存在着公式34所遇到的角度问题,处理的方法同样还是利用角度的圆周循环。每个特征点除了必须分配一个主方向外,还可能有一个或更多个辅方冋同,增加辅方向的目的是为了增强图像匹配的鲁棒性。辅方向的定义是,当存在另个柱体高度大于主方向柱体高度的80%时,则该柱体所代表的方向角度就是该特征点的辅方向。在第2步中,我们实现∫用两个信息量来表小一个特征点,即位置和尺度。那么经过上面的计算,我们对特征点的表示形式又增加了个信息量一一方向,即(x,y,o,6)。如果某个特征点还有一个辅方向,则这个特征点就要用两个值来表示——(x,y,,B1)和(x,y,,02),其中O1表示主方向,O2表示辅方向,而其他的变量x,y,不变。4、特征点描述符生成
    2020-06-25下载
    积分:1
  • 驾驶证数字、字母字体.ttf
    仿驾驶证数字字母
    2021-05-07下载
    积分:1
  • 面阵相控阵天线方向图仿真
    对面阵的相控阵天线的方向图进行了MATLAB仿真,并附有天线建模与公式推导。
    2020-12-04下载
    积分:1
  • 马尔科夫蒙特卡罗MCMC方法
    详细的介绍了马尔科夫蒙特卡罗(MCMC)的各种算法,包含gibbs算法,内有实例和基本的源代码,易于理解。非常值得一看。
    2020-12-03下载
    积分:1
  • 最优化计算方法常用序汇
    一维最优化部分-- 0.618法二 分数法三 二次插值法四 三次插值法无约束最优化部分五 共轭梯度法六 DFP变尺度法(用导数)七 DFP变尺度法(用差分代替导数)八 阻尼最小二乘法九 鲍威尔法十 模式搜索法十—, 单纯形法约束最优化部分十二 混合罚函数法(SUMT调用DFP法)十三 混合罚函数法(SUMT调用鲍威尔法)十四 综合约束函数双下降法(SCDD法)十五 可变容差法十六 复合形法十七 网格法(连续变量,等间距)十八 随机试验法十九 解线性规划的单纯形法
    2020-11-04下载
    积分:1
  • 696518资源总数
  • 106215会员总数
  • 5今日下载