首页> 中国专利> DSP上用查表法进行折反射全景展开的Cache包围盒加速方法

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

摘要

本发明公开了一种DSP上用查表法进行折反射全景展开的Cache包围盒加速方法,目的是解决在DSP上用查表法进行全景展开时全向图像数据在高速缓存Cache中经常失效、全景展开速度较慢的问题。技术方案是先在片外存储器中建立待填充全景图像;然后对待填充全景图像和查找表进行分块,得到待填充全景图像子块和查找表子块,并确定每个待填充全景图像子块在全向图像中对应的Cache包围盒子块;最后对待填充全景图像中的每个待填充全景图像子块进行“颜色填充”。采用本发明可避免直接从慢速的DSP片外存储器读写全向图像数据,降低了读写全向图像数据的高速缓存Cache失效率,提高了在DSP上用查表法进行全景展开的速度。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-10-28

    专利权的转移 IPC(主分类):G06T1/00 登记生效日:20150921 变更前: 变更后: 申请日:20080318

    专利申请权、专利权的转移

  • 2015-04-15

    专利权的转移 IPC(主分类):G06T1/00 变更前: 变更后: 登记生效日:20150326 申请日:20080318

    专利申请权、专利权的转移

  • 2014-01-15

    专利权的转移 IPC(主分类):G06T1/00 变更前: 变更后: 登记生效日:20131224 申请日:20080318

    专利申请权、专利权的转移

  • 2013-04-03

    专利权的转移 IPC(主分类):G06T1/00 变更前: 变更后: 登记生效日:20130314 申请日:20080318

    专利申请权、专利权的转移

  • 2009-12-09

    授权

    授权

  • 2008-10-29

    实质审查的生效

    实质审查的生效

  • 2008-09-10

    公开

    公开

查看全部

说明书

技术领域:

本发明涉及折反射全景图像的展开方法,尤其是在数字信号处理器(Digital Signal Processor,DSP)上用查表法进行折反射全景图像展开的加速方法。

背景技术:

折反射全景成像方法利用凸曲面反射镜(如抛物面、双曲面、圆锥面等)把 来自360度范围内物体的光线反射到成像传感器,得到原始的图像。与传统的光学成像方法 相比,折反射全景成像方法能反映视点周围的全方位场景,具有视场范围大、视频图像沉浸 感和立体感强等优点。因此,该方法在机器人视觉导航、全方位视频监控、三维空间漫游与 虚拟场景绘制等领域应用越来越广泛,已成为计算机视觉、机器人和虚拟现实等领域的研究 热点。张茂军等在专利号为ZL 200520050779.4的专利“二次凸曲面反射成像的实景空间构 造装置”中详细描述了获取折反射全景图像的方法及其装置,但该方法在DSP等嵌入式系统 上进行折反射全景展开的速度较慢,限制了折反射全景成像方法向便携、嵌入式应用方向的 发展。

折反射全景成像装置所获取的原始全景图像存在同心圆环状变形,必须进行展开,才能 得到符合人眼视觉习惯的柱面投影图像。为了论述方便,把折反射全景成像装置获取的原始 的、存在同心圆环状变形的图像称为全向图像(Omni-directional Image);把展开后的符合人 眼视觉习惯的柱面投影图像称为全景图像(Panorama Image);把从全向图像展开为全景图 像这一过程称为折反射全景展开(Panorama Unrolling;简称为全景展开)。

由于折反射全景成像方法原始获取的是全向图像,此时还没有相应的全景图像。在全景 展开前,首先建立一幅“空白”全景图像,这样,全景展开的过程实际上就是为“空白”全景图 像的每个像素点在全向图像中找到对应的像素点并进行“颜色填充”的过程。为了论述方便, 把全景展开前建立的“空白”全景图像,以及该“空白”全景图像尚未完全填充时的图像称为待 填充全景图像。

熊志辉等在2007年第10期《小型微型计算机系统》上发表的“八向对称重用策略降低全 景图像查表展开法查找表空间”一文中,将国际上进行全景展开的方法归纳为三类,即:光路 跟踪坐标映射法、同心圆环近似展开法和查表法。其中,光路跟踪坐标映射法通过跟踪并分 析光线传播轨迹来完成从全向图像到全景图像的展开,具有较高的展开精度和较小图像变形, 但运算量大;同心圆环近似展开法把展开前的全向图像看作由一系列同心圆环组成,通过“拉 直”每个同心圆环来完成从全向图像到全景图像的展开,该方法计算量相对较小,但展开后的 全景图像存在较大变形。

查表法首先精确计算展开前的全向图像和展开后的全景图像之间的像素坐标映射关系, 并保存到一个查找表中,查找表和全向图像均存储在片外存储器中;然后,在进行全景展开 时,对于待填充全景图像中的每个像素点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容量有限,难以一次性容纳待填充全景图像、全向图像以及查找表的全部数据。例如, 如果全向图像的分辨率为1024×768,全景图像的分辨率为1152×256,假设全景图像和全向图 像的每个像素占用2个字节(使用YUV 4:2:2格式),那么待填充全景图像和全向图像所需 的存储空间就是2112KB;此外,全景展开所用查找表的大小也是1152×256,查找表的每项 按占用4个字节计算,那么查找表所需的存储空间就是1152KB;这样,存放待填充全景图像、 全向图像和查找表的全部数据共需要3264KB。而目前即使较先进的DSP其高速缓存Cache 容量通常也不超过1024KB,不可能一次性存放待填充全景图像、全向图像以及查找表的全部 数据。若对待填充全景图像和查找表进行分块,并根据待填充全景图像子块确定全向图像 Cache包围盒,每次只对一个待填充全景图像子块进行“颜色填充”,则可满足Cache容量要求。

方法是:首先,将待填充全景图像划分为大小相等且互不重叠的矩形块,这些矩形块称 为待填充全景图像子块;然后,将查找表划分为大小相等且互不重叠的数据块,这些数据块 称为查找表子块,查找表划分时,确保每个待填充全景图像子块对应一个查找表子块,而且 待填充全景图像子块的每个像素点P在该查找表子块中有一个元素,描述了P在全向图像中 对应像素点P′的坐标值;最后,在查找表中查找出每个待填充全景图像子块像素集合对应到 全向图像上的像素集合C,并确定能够包围C中所有像素点的最小轴向矩形,其中轴向矩形 是指四条边都与图像坐标轴平行的矩形。该最小轴向矩形的四条边围成的矩形框称为Cache 包围盒;包含在Cache包围盒中的全向图像像素点构成的集合称为Cache包围盒子块。

待填充全景图像子块的大小根据以下公式确定:

Spano+Stable+Somni≤Sdsp_cache

其中,Spano表示存放一个待填充全景图像子块需要占用的字节数;Stable表示存放一个 查找表子块需要占用的字节数;Somni表示存放一个全向图像Cache包围盒子块需要占用的字 节数;Sdsp_cache表示DSP中高速缓存Cache的字节数。

第三步,对于待填充全景图像中的每个没有被“颜色填充”的待填充全景图像子块,依次 执行以下步骤进行全景展开:

步骤1,在高速缓存Cache中建立一个“空白”待填充全景图像子块,称为待填充全景图像 Cache子块,其大小与待填充全景图像子块相同;

步骤2,把待填充全景图像子块对应的查找表子块调入DSP的高速缓存Cache中,并把 查找表子块存储在高速缓存Cache中的对应子块称为查找表Cache子块;

步骤3,把待填充全景图像子块对应的Cache包围盒子块调入DSP的高速缓存Cache中, 并把Cache包围盒子块存储在高速缓存Cache中的对应子块称为Cache包围盒Cache子块;

步骤4,按照先逐行、再逐列的方式,在DSP的高速缓存Cache中完成待填充全景图像 Cache子块的“颜色填充”,具体方法是:

对于待填充全景图像Cache子块中的每一个像素点Pcache,通过查找表Cache子块找到 Pcache在Cache包围盒Cache子块上对应的像素点Qcache,再把像素点Qcache的颜色值复制 给像素点Pcache,作为Pcache的颜色值,这样就完成了对像素点Pcache的“颜色填充”。

当待填充全景图像Cache子块中的所有像素点都被“颜色填充”后,即完成待填充全景图像 Cache子块的“颜色填充”。由于待填充全景图像Cache子块对应的查找表Cache子块和Cache 包围盒Cache子块已经存储在DSP的高速缓存Cache中,因此,在对待填充全景图像Cache 子块的每个像素点Pcache进行“颜色填充”时都不会出现高速缓存Cache失效的情况。

步骤5,把已经完成“颜色填充”的待填充全景图像Cache子块调出DSP的高速缓存Cache, 写回到片外存储器中待填充全景图像的待填充全景图像子块上,从而完成了待填充全景图像 子块的“颜色填充”。

步骤6,如果待填充全景图像中还有未进行“颜色填充”的待填充全景图像子块,则返回步 骤1,进行下一个待填充全景图像子块的“颜色填充”;否则,如果待填充全景图像的所有待填 充全景图像子块都完成了“颜色填充”,则全景展开过程结束,此时,待填充全景图像就是完 成展开后得到的全景图像。

采用本发明可以达到以下技术效果:

本发明通过把待填充全景图像和查找表分块,以及确定各个待填充全景图像子块在全向 图像上的Cache包围盒的方法,避免了直接从慢速的DSP片外存储器读写全向图像数据,降 低了读写全向图像数据的高速缓存Cache失效率,提高了在DSP上用查表法进行全景展开的 速度。

附图说明:

图1是折反射全景成像过程示意图;

图2是全景展开的过程示意图;

图3是用查表法进行全景展开的过程示意图;

图4是本发明的总体流程图;

图5是本发明第二步中的Cache包围盒示意图;

图6是查找表子块、全向图像Cache包围盒子块调入DSP的高速缓存Cache以及全景图 像子块调出DSP的高速缓存Cache的过程示意图;

具体实施方式:

图1是折反射全景成像的过程示意图。入射光线PA通过凸曲面反射部件1反射,反射 光线AQ经过焦点F后,在全向图像2上成像为像素点Q。全向图像2存在圆环状变形,需 要进行全景展开,才能得到符合人眼视觉习惯的全景图像。

图2是全景展开的过程示意图。全景展开的目的是把全向图像2展开成全景图像4。由 于折反射全景成像方法原始获取的是全向图像2,此时还没有相应的全景图像4。在对全向图 像2进行全景展开前,首先建立一幅“空白”全景图像4,即待填充全景图像,而全景展开的过 程就是对全景图像4中每个像素点在全向图像2中找到对应像素点并进行“颜色填充”的过程。 其中,对于待填充全景图像4中某个特定像素点(例如P0)进行“颜色填充”的方法是:首先 找到该像素点P0在全向图像2中对应的像素点P′0,然后把P′0的颜色值复制给像素点P0,这 样即完成对像素点P0的“颜色填充”。当把待填充全景图像4中的所有像素点都进行填充后, 待填充全景图像4即成为全景图像。

在全景展开时,待填充全景图像4中的一行5上的像素点对应于全向图像2中一个“圆 环”3上的像素点,而全向图像2中的“圆环”3上的像素点不是直线相邻的,这样就导致DSP 的高速缓存Cache中所暂存的全向图像2的数据经常失效。

图3是用查表法进行全景展开的过程示意图。在用查表法进行全景展开前,需要预先构 造查找表6,使得待填充全景图像4的像素点与查找表6中的元素一一对应,对于待填充全 景图像4中的像素点P,在查找表6中有一个对应的元素,该元素保存有像素点P在全向图 像2上的对应像素点P′的坐标值。

在用查表法进行全景展开时,对于待填充全景图像4中的每个像素点P,首先在查找表 6中查询与像素点P对应的元素,并读取该元素中保存的坐标值,这个坐标值即为像素点P 在全向图像2上的对应像素点P′的坐标值,然后把像素点P′的颜色值复制给像素点P,作 为P的颜色值。当把待填充全景图像4中的所有像素点都用查表法进行填充后,待填充全景 图像4即成为全景图像。

图4是本发明的总体流程图:

第一步,在片外存储器中建立一个“空白”全景图像,即待填充全景图像;

第二步,对待填充全景图像和查找表进行分块,得到待填充全景图像子块和查找表子块, 并确定每个待填充全景图像子块在全向图像中对应的Cache包围盒子块;

第三步,对于待填充全景图像中的每个没有被“颜色填充”的待填充全景图像子块,依次 执行以下步骤进行全景展开:

步骤1,在高速缓存Cache中建立一个“空白”待填充全景图像子块;

步骤2,把待填充全景图像子块对应的查找表子块调入DSP的高速缓存Cache中;

步骤3,把待填充全景图像子块对应的Cache包围盒子块调入DSP的高速缓存Cache中;

步骤4,按照先逐行、再逐列的方式,在DSP的高速缓存Cache中完成待填充全景图像 Cache子块的“颜色填充”;

步骤5,把已经完成“颜色填充”的待填充全景图像Cache子块调出DSP的高速缓存 Cache,写回到片外存储器中待填充全景图像的待填充全景图像子块上,从而完成了待填充全 景图像子块的“颜色填充”。

步骤6,如果待填充全景图像中还有未进行“颜色填充”的待填充全景图像子块,则返回步 骤1,进行下一个待填充全景图像子块的“颜色填充”;否则,如果待填充全景图像的所有待填 充全景图像子块都完成了“颜色填充”,则全景展开过程结束,此时,待填充全景图像就是完 成展开后得到的全景图像。

图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,绘制满足以下两个条件的矩形:1)该矩形的两条边与全向图 像2的横坐标轴X′平行,另外两条边与全向图像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中的每一 个像素点Pcache,通过查找表Cache子块15找到Pcache在Cache包围盒Cache子块16上对应 的像素点Qcache,再把像素点Qcache的颜色值复制给像素点Pcache,作为Pcache的颜色值,这 样就完成了对像素点Pcache的“颜色填充”。当待填充全景图像Cache子块14中的所有像素点 都被“颜色填充”后,即完成待填充全景图像Cache子块14的“颜色填充”。由于待填充全景图 像Cache子块14对应的查找表Cache子块15和Cache包围盒Cache子块16已经存储在DSP 的高速缓存Cache 13中,因此,在对待填充全景图像Cache子块14的每个像素点Pcache进行 “颜色填充”时都不会出现高速缓存Cache失效的情况。

第五步,把已经完成“颜色填充”的待填充全景图像Cache子块14调出DSP的高速缓存 Cache 13,写回到片外存储器11中待填充全景图像4的待填充全景图像子块7上,从而完成 了待填充全景图像子块7的“颜色填充”。

第六步,如果待填充全景图像4上还有未进行“颜色填充”的待填充全景图像子块,则返回 第一步,进行下一个待填充全景图像子块的“颜色填充”;否则,如果待填充全景图像4的所 有待填充全景图像子块都完成了“颜色填充”,则全景展开过程结束,此时,待填充全景图像4 就是完成展开后得到的全景图像。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号