DSP上用查表法进行折反射全景展开的Cache包围盒加速方法

文档序号:6459025阅读:234来源:国知局
专利名称:DSP上用查表法进行折反射全景展开的Cache包围盒加速方法
技术领域
本发明涉及折反射全景图像的展开方法,尤其是在数字信号处理器(Digital Signal Processor, DSP)上用查表法进行折反射全景图像展开的加速方法。
背景技术
折反射全景成像方法利用凸曲面反射镜(如抛物面、双曲面、圆锥面等)把 来自360度范围内物体的光线反射到成像传感器,得到原始的图像。与传统的光学成像方法 相比,折反射全景成像方法能反映视点周围的全方位场景,具有视场范围大、视频图像沉浸 感和立体感强等优点。因此,该方法在机器人视觉导航、全方位视频监控、三维空间漫游与 虚拟场景绘制等领域应用越来越广泛,已成为计算机视觉、机器人和虚拟现实等领域的研究 热点。张茂军等在专利号为ZL 2005 2 0050779.4的专利"二次凸曲面反射成像的实景空间构 造装置"中详细描述了获取折反射全景图像的方法及其装置,但该方法在DSP等嵌入式系统 上进行折反射全景展开的速度较慢,限制了折反射全景成像方法向便携、嵌入式应用方向的 发展。折反射全景成像装置所获取的原始全景图像存在同心圆环状变形,必须进行展开,才能 得到符合人眼视觉习惯的柱面投影图像。为了论述方便,把折反射全景成像装置获取的原始 的、存在同心圆环状变形的图像称为全向图像(Omni-directional Image);把展开后的符合人 眼视觉习惯的柱面投影图像称为全景图像(Panorama Image);把从全向图像展开为全景图 像这一过程称为折反射全景展开(Panorama Unrolling;简称为全景展开)。由于折反射全景成像方法原始获取的是全向图像,此时还没有相应的全景图像。在全景 展开前,首先建立一幅"空白"全景图像,这样,全景展开的过程实际上就是为"空白"全景图 像的每个像素点在全向图像中找到对应的像素点并进行"颜色填充"的过程。为了论述方便, 把全景展开前建立的"空白"全景图像,以及该"空白"全景图像尚未完全填充时的图像称为待 填充全景图像。熊志辉等在2007年第10期《小型微型计算机系统》上发表的"八向对称重用策略降低全 景图像查表展开法查找表空间"一文中,将国际上进行全景展开的方法归纳为三类,S卩光路 跟踪坐标映射法、同心圆环近似展开法和查表法。其中,光路跟踪坐标映射法通过跟踪并分 析光线传播轨迹来完成从全向图像到全景图像的展开,具有较高的展开精度和较小图像变形, 但运算量大;同心圆环近似展开法把展开前的全向图像看作由一系列同心圆环组成,通过"拉直,,每个同心圆环来完成从全向图像到全景图像的展开,该方法计算量相对较小,但展开后的 全景图像存在较大变形。查表法首先精确计算展开前的全向图像和展开后的全景图像之间的像素坐标映射关系, 并保存到一个査找表中,査找表和全向图像均存储在片外存储器中;然后,在进行全景展开 时,对于待填充全景图像中的每个像素点P,通过查找表找到P在全向图像中的对应像素点 Q,并把点Q的颜色值复制给点P,作为像素点P的颜色值,这样就完成了对像素点P的"颜 色填充"。最后,当待填充全景图像中的所有像素点都完成"颜色填充"后,即结束全景展开过 程,而此时待填充全景图像也相应地成为了全景图像。由于查表法进行全景展开避免了进行 复杂运算所需的时间,因此该方法既具有较高的精度,又具有较快的速度。为了使折反射全景成像方法向便携、嵌入式应用方向发展,可以在DSP等嵌入式系统上 用査表法实现全景展开。然而,DSP中高速缓存Cache的容量有限,以美国德州仪器公司 TMS320VC5501型号的DSP为例,其高速缓存Cache容量只有32KB。而在全景展开时,待 填充全景图像中的一行像素对应于全向图像中一个"圆环"上的像素,这些像素点之间不是线 性相邻的映射关系,导致DSP的高速缓存Cache中所暂存的全向图像数据经常失效,使得 DSP需要反复从速度较慢的片外存储器(例如SDRAM)中读取全向图像的数据,严重影响 了在DSP上进行全景展开的速度。技术方案本发明要解决的技术问题是在DSP上用査表法进行全景展开时全向图像数据 在高速缓存Cache中经常失效、全景展开速度较慢的问题。技术方案是把待填充全景图像和查找表分块,并确定各个待填充全景图像子块在全向图 像中的Cache包围盒。为论述方便,把待填充全景图像子块在全向图像中对应的Cache包围 盒所覆盖的图像区域称为全向图像Cache包围盒子块。全景展开时,每次处理一个待填充全 景图像子块,在高速缓存Cache中建立一个"空白的"待填充全景图像子块,并把该待填充全 景图像子块对应的查找表子块和全向图像Cache包围盒子块调入高速缓存Cache,这时,就 可以在DSP的高速缓存Cache中完成对当前待填充全景图像子块的"颜色填充",避免出现高 速缓存Cache失效的情况,在对当前的待填充全景图像子块完成"颜色填充"之后,把这个己 经完成"颜色填充"的待填充全景图像子块调出高速缓存Cache,然后进行下一个待填充全景图 像子块的处理。通过这种方法避免全向图像数据的经常失效,从而提高在DSP上用査表法进 行折反射全景图像展开的速度。本发明包括以下步骤第一步,在片外存储器中建立一个"空白"全景图像,即待填充全景图像。第二步,对待填充全景图像和查找表进行分块,得到待填充全景图像子块和查找表子块, 并确定每个待填充全景图像子块在全向图像中对应的Cache包围盒子块。DSP上的高速缓存 Cache容量有限,难以一次性容纳待填充全景图像、全向图像以及查找表的全部数据。例如, 如果全向图像的分辨率为1024x768,全景图像的分辨率为1152x256,假设全景图像和全向图 像的每个像素占用2个字节(使用YUV 4:2:2格式),那么待填充全景图像和全向图像所需 的存储空间就是2112KB;此外,全景展开所用查找表的大小也是1152x256,查找表的每项 按占用4个字节计算,那么查找表所需的存储空间就是1152KB;这样,存放待填充全景图像、 全向图像和査找表的全部数据共需要3264KB。而目前即使较先进的DSP其高速缓存Cache 容量通常也不超过1024KB,不可能一次性存放待填充全景图像、全向图像以及査找表的全部 数据。若对待填充全景图像和查找表进行分块,并根据待填充全景图像子块确定全向图像 Cache包围盒,每次只对一个待填充全景图像子块进行"颜色填充",则可满足Cache容量要求。方法是首先,将待填充全景图像划分为大小相等且互不重叠的矩形块,这些矩形块称 为待填充全景图像子块;然后,将查找表划分为大小相等且互不重叠的数据块,这些数据块 称为查找表子块,査找表划分时,确保每个待填充全景图像子块对应一个查找表子块,而且待填充全景图像子块的每个像素点P在该査找表子块中有一个元素,描述了 P在全向图像中 对应像素点尸'的坐标值;最后,在查找表中查找出每个待填充全景图像子块像素集合对应到全向图像上的像素集合c,并确定能够包围c中所有像素点的最小轴向矩形,其中轴向矩形是指四条边都与图像坐标轴平行的矩形。该最小轴向矩形的四条边围成的矩形框称为Cache 包围盒;包含在Cache包围盒中的全向图像像素点构成的集合称为Cache包围盒子块。待填充全景图像子块的大小根据以下公式确定 S + S + S < S"戸"o T " "。附"i' _ " 一 cac/je其中,^;^。表示存放一个待填充全景图像子块需要占用的字节数;《。We表示存放一个 査找表子块需要占用的字节数;S。MW.表示存放一个全向图像Cache包围盒子块需要占用的字 节数;^却j。cte表示DSP中高速缓存Cache的字节数。第三步,对于待填充全景图像中的每个没有被"颜色填充"的待填充全景图像子块,依次执行以下步骤进行全景展开步骤l,在高速缓存Cache中建立一个"空白"待填充全景图像子块,称为待填充全景图像 Cache子块,其大小与待填充全景图像子块相同;步骤2,把待填充全景图像子块对应的査找表子块调入DSP的高速缓存Cache中,并把 査找表子块存储在高速缓存Cache中的对应子块称为查找表Cache子块;步骤3,把待填充全景图像子块对应的Cache包围盒子块调入DSP的高速缓存Cache中, 并把Cache包围盒子块存储在高速缓存Cache中的对应子块称为Cache包围盒Cache子块;步骤4,按照先逐行、再逐列的方式,在DSP的高速缓存Cache中完成待填充全景图像 Cache子块的"颜色填充",具体方法是对于待填充全景图像Cache子块中的每一个像素点尸M^,通过查找表Cache子块找到 g。e/!e在Cache包围盒Cache子块上对应的像素点Oc。e/!e ,再把像素点Oeacte的颜色值复制给像素点尸o^e,作为尸o^e的颜色值,这样就完成了对像素点《aete的"颜色填充"。当待填充全景图像Cache子块中的所有像素点都被"颜色填充"后,即完成待填充全景图像 Cache子块的"颜色填充"。由于待填充全景图像Cache子块对应的查找表Cache子块和Cache 包围盒Cache子块已经存储在DSP的高速缓存Cache中,因此,在对待填充全景图像Cache子块的每个像素点S。^进行"颜色填充"时都不会出现高速缓存Cache失效的情况。步骤5,把已经完成"颜色填充"的待填充全景图像Cache子块调出DSP的高速缓存Cache, 写回到片外存储器中待填充全景图像的待填充全景图像子块上,从而完成了待填充全景图像 子块的"颜色填充"。步骤6,如果待填充全景图像中还有未进行"颜色填充"的待填充全景图像子块,则返回步 骤l,进行下一个待填充全景图像子块的"颜色填充";否则,如果待填充全景图像的所有待填 充全景图像子块都完成了"颜色填充",则全景展开过程结束,此时,待填充全景图像就是完 成展开后得到的全景图像。采用本发明可以达到以下技术效果本发明通过把待填充全景图像和査找表分块,以及确定各个待填充全景图像子块在全向 图像上的Cache包围盒的方法,避免了直接从慢速的DSP片外存储器读写全向图像数据,降 低了读写全向图像数据的高速缓存Cache失效率,提高了在DSP上用査表法进行全景展开的速度。


图1是折反射全景成像过程示意图;图2是全景展开的过程示意图;图3是用查表法进行全景展开的过程示意图;图4是本发明的总体流程图;图5是本发明第二步中的Cache包围盒示意图;图6是査找表子块、全向图像Cache包围盒子块调入DSP的高速缓存Cache以及全景图 像子块调出DSP的高速缓存Cache的过程示意图;具体实施方式
-图l是折反射全景成像的过程示意图。入射光线PA通过凸曲面反射部件1反射,反射 光线AQ经过焦点F后,在全向图像2上成像为像素点Q。全向图像2存在圆环状变形,需 要进行全景展开,才能得到符合人眼视觉习惯的全景图像。图2是全景展开的过程示意图。全景展开的目的是把全向图像2展开成全景图像4。由 于折反射全景成像方法原始获取的是全向图像2,此时还没有相应的全景图像4。在对全向图 像2进行全景展开前,首先建立一幅"空白"全景图像4,即待填充全景图像,而全景展开的过 程就是对全景图像4中每个像素点在章向图像2中找到对应像素点并进行"颜色填充"的过程。其中,对于待填充全景图像4中某个特定像素点(例如A)进行"颜色填充"的方法是首先找到该像素点尸o在全向图像2中对应的像素点Po',然后把尸o'的颜色值复制给像素点Po,这样即完成对像素点A的"颜色填充"。当把待填充全景图像4中的所有像素点都进行填充后, 待填充全景图像4即成为全景图像。在全景展开时,待填充全景图像4中的一行5上的像素点对应于全向图像2中一个"圆 环"3上的像素点,而全向图像2中的"圆环"3上的像素点不是直线相邻的,这样就导致DSP 的高速缓存Cache中所暂存的全向图像2的数据经常失效。图3是用查表法进行全景展开的过程示意图。在用査表法进行全景展开前,需要预先构 造查找表6,使得待填充全景图像4的像素点与查找表6中的元素一一对应,对于待填充全景图像4中的像素点P,在査找表6中有一个对应的元素,该元素保存有像素点P在全向图 像2上的对应像素点尸'的坐标值。在用査表法进行全景展开时,对于待填充全景图像4中的每个像素点P,首先在查找表 6中査询与像素点尸对应的元素,并读取该元素中保存的坐标值,这个坐标值即为像素点P在全向图像2上的对应像素点尸'的坐标值,然后把像素点尸'的颜色值复制给像素点i5,作为尸的颜色值。当把待填充全景图像4中的所有像素点都用査表法进行填充后,待填充全景 图像4即成为全景图像。图4是本发明的总体流程图第一步,在片外存储器中建立一个"空白"全景图像,即待填充全景图像;第二步,对待填充全景图像和査找表进行分块,得到待填充全景图像子块和査找表子块,并确定每个待填充全景图像子块在全向图像中对应的Cache包围盒子块;第三步,对于待填充全景图像中的每个没有被"颜色填充"的待填充全景图像子块,依次 执行以下步骤进行全景展开-步骤1,在高速缓存Cache中建立一个"空白"待填充全景图像子块;步骤2,把待填充全景图像子块对应的查找表子块调入DSP的高速缓存Cache中;步骤3,把待填充全景图像子块对应的Cache包围盒子块调入DSP的高速缓存Cache中;步骤4,按照先逐行、再逐列的方式,在DSP的高速缓存Cache中完成待填充全景图像 Cache子块的"颜色填充";步骤5,把己经完成"颜色填充"的待填充全景图像Cache子块调出DSP的高速缓存 Cache,写回到片外存储器中待填充全景图像的待填充全景图像子块上,从而完成了待填充全 景图像子块的"颜色填充"。步骤6,如果待填充全景图像中还有未进行"颜色填充"的待填充全景图像子块,则返回步 骤l,进行下一个待填充全景图像子块的"颜色填充";否则,如果待填充全景图像的所有待填 充全景图像子块都完成了"颜色填充",则全景展开过程结束,此时,待填充全景图像就是完 成展开后得到的全景图像。图5是本发明第二步中的Cache包围盒示意图。对于待填充全景图像4中的某个待填充 全景图像子块7,该待填充全景图像子块7中的像素点集合对应到全向图像2上的像素点集 合9。由于像素点集合9呈扇段形状,为了确保全景展开时在DSP的高速缓存Cache中能够 命中像素点集合9的全部像素点颜色数据,构造像素点集合9的Cache包围盒8,并把全向 图像2上Cache包围盒8中所包含的像素点集合称为Cache包围盒子块10。这样,当对待填 充全景图像子块7进行颜色填充时,把与待填充全景图像子块7对应的Cache包围盒子块10 调入DSP的高速缓存Cache中,从而使得读取像素点集合9中的颜色数据时每次都可以命中, 降低了高速缓存Cache的失效率。Cache包围盒8是能包围像素点集合9的最小轴向矩形构成的矩形框,该最小轴向矩形的 确定方法是,对于像素点集合9,绘制满足以下两个条件的矩形l)该矩形的两条边与全向图像2的横坐标轴义'平行,另外两条边与全向图像2的纵坐标轴y'平行;2)该矩形足够小, 同时又能包围像素点集合9中的所有像素点。该矩形即为能包围像素点集合9的最小轴向矩 形。图6是査找表子块、全向图像Cache包围盒子块调入DSP的高速缓存Cache以及全景图 像子块调出DSP的高速缓存Cache的过程示意图。全景展开前,片外存储器11中己存储有 全向图像2和查找表6。全景展开的预处理阶段,首先在片外存储器11中建立一个"空白"全景图像4 (即待填充 全景图像4);然后,对待填充全景图像4和查找表6进行分块,得到待填充全景图像子块7和查找表 子块12,并确定每个待填充全景图像子块7在全向图像2中对应的Cache包围盒子块10。完成全景展开预处理之后,全景展开过程就是对待填充全景图像4中的每个待填充全景 图像子块7进行"颜色填充"的过程。具体方法是,对于待填充全景图像4中的每一个待填充 全景图像子块7,依次进行以下处理-第一步,在DSP的高速缓存Cache 13中建立一个"空白,,的待填充全景图像子块,称为 待填充全景图像Cache子块14,其大小与待填充全景图像子块7相同;第二步,把待填充全景图像子块7对应的查找表子块12调入DSP的高速缓存Cache 13 中,并把查找表子块12存储在高速缓存Cache 13中的对应子块称为查找表Cache子块15;第三歩,把待填充全景图像子块7对应的Cache包围盒子块10调入DSP的高速缓存Cache 13中,并把Cache包围盒子块10存储在高速缓存Cache 13中的对应子块称为Cache 包围盒Cache子块16;第四步,按照先逐行、再逐列的方式,在DSP的高速缓存Cache 13中完成待填充全景图 像Cache子块14的"颜色填充"。具体方法是对于待填充全景图像Cache子块14中的每一个像素点尸c。血,通过查找表Cache子块15找到《。*在Cache包围盒Cache子块16上对应的像素点Q,&,再把像素点Qa^的颜色值复制给像素点尸c。&,作为《。^的颜色值,这样就完成了对像素点Pcac/!e的"颜色填充"。当待填充全景图像Cache子块14中的所有像素点都被"颜色填充"后,即完成待填充全景图像Cache子块14的"颜色填充"。由于待填充全景图 像Cache子块14对应的査找表Cache子块15和Cache包围盒Cache子块16已经存储在DSP的高速缓存Cache 13中,因此,在对待填充全景图像Cache子块14的每个像素点《3£^进行 "颜色填充"时都不会出现高速缓存Cache失效的情况。第五步,把已经完成"颜色填充"的待填充全景图像Cache子块14调出DSP的高速缓存 Cache 13,写回到片外存储器11中待填充全景图像4的待填充全景图像子块7上,从而完成 了待填充全景图像子块7的"颜色填充"。第六步,如果待填充全景图像4上还有未进行"颜色填充"的待填充全景图像子块,则返回 第一步,进行下一个待填充全景图像子块的"颜色填充";否则,如果待填充全景图像4的所 有待填充全景图像子块都完成了"颜色填充",则全景展开过程结束,此时,待填充全景图像4 就是完成展开后得到的全景图像。
权利要求
1.一种DSP上用查表法进行折反射全景展开的Cache包围盒加速方法,其特征在于包括以下步骤第一步,在片外存储器(11)中建立一个“空白”全景图像即待填充全景图像(4);第二步,对待填充全景图像(4)和查找表(6)进行分块,得到待填充全景图像子块(7)和查找表子块(12),并确定每个待填充全景图像子块(7)在全向图像(2)中对应的Cache包围盒子块(10),方法是首先,将待填充全景图像(4)划分为大小相等且互不重叠的矩形块,即待填充全景图像子块(7);然后,将查找表(6)划分为大小相等且互不重叠的查找表子块,每个待填充全景图像子块(7)对应一个查找表子块(12),而且待填充全景图像子块(7)的每个像素点P在该查找表子块(12)中有一个元素,描述了P在全向图像(2)中对应像素点P′的坐标值;最后,在查找表(6)中查找出每个待填充全景图像子块(7)像素集合对应到全向图像(2)上的像素集合C,并确定能够包围C中所有像素点的最小轴向矩形,该最小轴向矩形的四条边围成的矩形框称为Cache包围盒;包含在Cache包围盒中的全向图像像素点构成的集合称为Cache包围盒子块;第三步,对于待填充全景图像(4)中的每个没有被“颜色填充”的待填充全景图像子块(7),依次执行以下步骤进行全景展开步骤1,在DSP的高速缓存Cache(13)中建立一个“空白”的待填充全景图像子块,称为待填充全景图像Cache子块(14),其大小与待填充全景图像子块(7)相同;步骤2,把待填充全景图像子块(7)对应的查找表子块(12)调入DSP的高速缓存Cache(13)中,并把查找表子块(12)存储在高速缓存Cache(13)中的对应子块称为查找表Cache子块(15);步骤3,把待填充全景图像子块(7)对应的Cache包围盒子块(10)调入DSP的高速缓存Cache(13)中,并把Cache包围盒子块(10)存储在高速缓存Cache(13)中的对应子块称为Cache包围盒Cache子块(16);步骤4,按照先逐行、再逐列的方式,在DSP的高速缓存Cache(13)中完成待填充全景图像Cache子块(14)的“颜色填充”,具体方法是对于待填充全景图像Cache子块(14)中的每一个像素点Pcache,通过查找表Cache子块(15)找到Pcache在Cache包围盒Cache子块(16)上对应的像素点Qcache,再把像素点Qcache的颜色值复制给像素点Pcache,作为Pcache的颜色值;当待填充全景图像Cache子块(14)中的所有像素点都被“颜色填充”后,即完成待填充全景图像Cache子块(14)的“颜色填充”;步骤5,把已经完成“颜色填充”的待填充全景图像Cache子块(14)调出DSP的高速缓存Cache(13),写回到片外存储器(11)中待填充全景图像(4)的待填充全景图像子块(7)上,从而完成了待填充全景图像子块(7)的“颜色填充”;步骤6,如果待填充全景图像(4)上还有未进行“颜色填充”的待填充全景图像子块,则返回步骤1,进行下一个待填充全景图像子块的“颜色填充”;否则,如果待填充全景图像(4)的所有待填充全景图像子块都完成了“颜色填充”,则全景展开过程结束,此时,待填充全景图像(4)就是完成展开后得到的全景图像。
2. 如权利要求1所述的DSP上用査表法进行折反射全景展开的Cache包围盒加速 方法,其特征在于所述待填充全景图像子块(7)的大小根据以下公式确定-<formula>formula see original document page 3</formula>其中,^p。n。表示存放一个待填充全景图像子块需要占用的字节数;5^We表示存放一个查找表子块需要占用的字节数;S。^,表示存放一个全向图像Cache包围盒子块需要 占用的字节数;^^_o^e表示DSP中高速缓存Cache的字节数。
3. 如权利要求.2所述的DSP上用查表法进行折反射全景展开的Cache包围盒加速 方法,其特征在于所述最小轴向矩形的确定方法是,对于全向图像(2)上的像素点集合(9),绘制满足以下两个条件的矩形l)该矩形的两条边与全向图像(2)的横坐标轴JT'平行,另外两条边与全向图像(2)的纵坐标轴F'平行;2)该矩形足够小,同时又能包围 像素点集合(9)中的所有像素点。
全文摘要
本发明公开了一种DSP上用查表法进行折反射全景展开的Cache包围盒加速方法,目的是解决在DSP上用查表法进行全景展开时全向图像数据在高速缓存Cache中经常失效、全景展开速度较慢的问题。技术方案是先在片外存储器中建立待填充全景图像;然后对待填充全景图像和查找表进行分块,得到待填充全景图像子块和查找表子块,并确定每个待填充全景图像子块在全向图像中对应的Cache包围盒子块;最后对待填充全景图像中的每个待填充全景图像子块进行“颜色填充”。采用本发明可避免直接从慢速的DSP片外存储器读写全向图像数据,降低了读写全向图像数据的高速缓存Cache失效率,提高了在DSP上用查表法进行全景展开的速度。
文档编号G06T11/00GK101261726SQ20081003083
公开日2008年9月10日 申请日期2008年3月18日 优先权日2008年3月18日
发明者包卫东, 张茂军, 玮 徐, 乐 李, 熊志辉, 炜 王, 钢 程, 谭树人 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1