CN102231202B - 面向向量处理器的sad向量化实现方法 - Google Patents
面向向量处理器的sad向量化实现方法 Download PDFInfo
- Publication number
- CN102231202B CN102231202B CN 201110213343 CN201110213343A CN102231202B CN 102231202 B CN102231202 B CN 102231202B CN 201110213343 CN201110213343 CN 201110213343 CN 201110213343 A CN201110213343 A CN 201110213343A CN 102231202 B CN102231202 B CN 102231202B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- template
- vector
- absolute value
- sigma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种面向向量处理器的SAD向量化实现方法,包括以下步骤:设实时图A,其大小为MxN,模板图为B,其大小为mxn,且M>m,N>n;遍历实时图A并存取实时图A中的两个头部间隔4个元素且向量长度为4*p的子图Auv和A(u+4)v,通过混洗操作得到4个相邻子图A(u+k)v(k=0,1,2,3);从模板图B中中取1个向量长度为4*p的子图;分别计算出A(u+k)v(k=0,1,2,3)与模板图B的SAD系数值ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3);令u=u+4,重复上述步骤直至遍历完实时图A,可以计算得到实时图A与模板图B的所有SAD系数值。
Description
技术领域
本发明涉及向量处理器以及图像处理领域,尤其涉及一种SAD向量化的实现方法。
背景技术
图像处理领域中图像匹配处理应用需许多高密度计算应用,如基于模板的图像匹配往往需要计算差的绝对值和(Sum of Absolute Difference,SAD)等,这类高密集运算任务需要将模板图与实时图中的每一个按像素遍历的子图逐个进行匹配计算,计算量非常大,单芯片难以满足应用需求,基于多核处理器尤其是其中的向量处理器能够大幅度提高图像匹配的速度。向量处理器一般由多个处理单元(PE)组成,通常支持基于向量的数据加载和存储。每个PE包含独立的多个功能部件,一般包括移位部件、ALU部件、乘法部件等。向量处理器通常支持SIMD(单指令/多数据)操作,即在同一条向量指令的控制下,所有PE同时对各自的局部寄存器进行相同操作,用以开发应用程序的数据级并行性。
基于模板的图像匹配中需要计算差的绝对值和,一般设实时图A,其大小为MxN,模板图为B,其大小为mxn,(M>m,N>n)。实时图中以(u,v)为左上角点的与模板图同大小的子图为Auv,子图Auv与模板图B的差的绝对值和SAD系数值可用下式表示:
其中(Auv)ij表示子图Auv中坐标(i,j)处的像素值,Bij表示模板图B中坐标(i,j)处的像素值。
上面计算得到的SAD系数值ρ(u,v)用于表示子图Auv与模板图B的相似度。为了计算最佳匹配位置,需要遍历实时图中的所有子图,并逐一计算子图与模板图的SAD系数值,求取SAD系数值的最小值。共需要计算(M m)*(N n)次SAD系数值,并且每次SAD系数值的计算涉及m*n个元素数据的求差、求绝对值以及绝对值累加,计算量非常大,单核处理器难以满足性能需求,通常基于多核处理器或多个单核芯片采用并行的方法来提高处理速度。由于图像数据通常采用8位像素值,遍历实时图需要按像素偏移读取图像数据,而一般的处理器不支持跨字边界读取数据,一般采用打包/解包方法来解决子图的遍历。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,本发明提供一种原理简单、操作方便、能够高效计算、能充分挖掘向量处理器的多级并行性以发挥向量处理器的并行计算性能、缩短运算时间的面向向量处理器的SAD向量化实现方法。
为解决上述技术问题,本发明采用以下技术方案:
一种面向向量处理器的SAD向量化实现方法,包括以下步骤:
(1)设实时图A,其大小为MxN,模板图为B,其大小为mxn,且M>m,N>n;向量处理器包括P个处理单元;
(2)向量处理器遍历实时图A并存取实时图A中的两个头部间隔4个元素且向量长度为4*p的子图Auv和A(u+4)v,通过混洗操作得到4个头部间隔1个元素且长度为4*p的相邻子图A(u+k)v(k=0,1,2,3);
(3)从模板图B中取1个向量长度为4*p的子图;该子图坐标与子图A(u+k)v(k=0,1,2,3)的坐标位置对应;
(4)分别计算出4个子图A(u+k)v(k=0,1,2,3)与模板图B的SAD系数值ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3);
(5)令u=u+4,重复上述步骤(2)到步骤(5)直至遍历完实时图A,可以计算得到实时图A与模板图B的所有SAD系数值。
作为本发明的进一步改进:
所述的步骤(4)中ρ(u,v)的计算公式为:
其中aiv=(Auv)iv,(Auv)i(v+1),(Auv)i(v+2),(Auv)i(v+3)为子图Auv中4个8位像素值构成的32位定点向量;biv=(Biv,Bi(v+1),Bi(v+2),Bi(v+3))为模板图B中4个8位像素值构成的32位定点向量,ev=(1,1,1,1)为4个单位像素值构成的32位定点向量,为两个向量的点积;L是循环计数,L=mn/4p;
分别令u=u+k,(k=0,1,2,3),代入上式中,可分别计算得到ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3)。
③为基于SIMD的点积操作对步骤②的绝对值结果在处理单元内求和;
与现有技术相比,本发明的优点在于:
本发明的面向向量处理器的SAD向量化实现方法,实现简单、成本低廉且操作方便,利用向量处理器可以通过混洗网络使得PE间能够快速交换数据,方便地实现按像素遍历实时图的所有子图,并且能够充分利用向量处理器的SIMD操作开发SAD计算的数据并行性,每次模板图遍历过程能同时计算出4个SAD系数值,能充分挖掘向量处理器的多级并行性,发挥向量处理器的所有处理单元的并行计算性能,缩短基于SAD的图像匹配算法的运算时间,可靠性好并能降低硬件计算功耗。
附图说明
图1是本发明的总流程示意图;
图2是本发明的具体实施例中的子图p1和p2通过混洗操作得到4个相邻子图的示意图;
具体实施方式
以下将结合说明书附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明的面向向量处理器的SAD向量化实现方法,包括以下步骤:
1、设实时图A,其大小为MxN,模板图为B,其大小为mxn,且M>m,N>n;向量处理器包括P个处理单元。
2、向量处理器遍历实时图A并存取实时图A中的两个头部间隔4个元素且向量长度为4*p的子图Auv和A(u+4)v,通过混洗操作得到4个头部间隔1个元素且长度为4*p的相邻子图A(u+k)v(k=0,1,2,3)。
如图2所示,以处理单元PE数量等于2为例说明如何将头部间隔4个元素的子图通过混洗操作得到4个头部间隔1个元素的相邻子图。处理器从实时图A中取两个头部间隔4个元素的相邻子图p1,p2,其长度是向量处理器的PE数量的4倍,即子图p1,p2的元素个数都是8。经过混洗操作后得到4个头部间隔1个元素的相邻子图v0,v1,v2和v3。
3、从模板图B中取1个向量长度为4*p的子图;该子图坐标与子图A(u+k)v(k=0,1,2,3)的坐标位置对应。
4、分别计算出4个子图A(u+k)v(k=0,1,2,3)与模板图B的SAD系数值ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3);
ρ(u,v)的计算公式为:
其中aiv=(Auv)iv,(Auv)i(v+1),(Auv)i(v+2),(Auv)i(v+3)为子图Auv中4个8位像素值构成的32位定点向量;biv=(Biv,Bi(v+1),Bi(v+2),Bi(v+3))为模板图B中4个8位像素值构成的32位定点向量,ev=(1,1,1,1)为4个单位像素值构成的32位定点向量,为两个向量的点积;L是循环计数,L=mn/4p;
分别令u=u+k,(k=0,1,2,3),代入上式中,可分别计算得到ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3)。ρ(u,v)的计算公式中的是计算aiv,biv两个向量的差的绝对值的和。如图2、图3所示,图2中向量处理器的处理单元PE数量为p,实时图A的向量元素为(a0,a1,a2,a3),…,(ai,ai+1,ai+2,ai+3),模板图B的向量元素为(b0,b1,b2,b3),…,(bi,bi+1,bi+2,bi+3)。其差的绝对值的和计算包括以下4个步骤:
①为基于SIMD的减法操作求aiv,biv两个向量的差;如图3所示,该步骤得到减法结果向量,减法结果向量的元素为:(a0-b0,a1-b1,a2-b2,a3-b3),…,(ai-bi,ai+1-bi+1,ai+2-bi+2,ai+3-bi+3)。
②为基于SIMD的求绝对值操作对步骤①的减法结果分别求绝对值;如图3所示,该步骤得到的绝对值结果向量的元素为:(|a0-b0|,|a1-b1|,|a2-b2|,|a3-b3|),…,(|ai-bi|,|ai+1-bi+1|,|ai+2-bi+2|,|ai+3-bi+3|)。
③为基于SIMD的点积操作对步骤②的绝对值结果在处理单元内求和;如图3所示,用元素值全为1的向量与上述结果向量做点积操作,得到PE内绝对值和结果向量的元素为:(|a0-b0|+|a1-b1|+|a2-b2|+|a3-b3|),…,(|ai-bi|+|ai+1-bi+1|+|ai+2-bi+2|+|ai+3-bi+3|)。
④为基于向量处理器的定点归约求和操作计算aiv,biv两个向量的差的绝对值的和;如图3所示,该步骤的求和结果为:|a0-b0|+|a1-b1|+|a2-b2|+|a3-b3|+…+|ai-bi|+|ai+1-bi+1|+|ai+2-bi+2|+|ai+3-bi+3|。
5、令u=u+4,重复上述步骤(2)到步骤(5)直至遍历完实时图A,可以计算得到实时图A与模板图B的所有SAD系数值。
综上所述,通过本发明的方法,可高效的支持SAD系数值向量化计算,能够充分发挥向量处理器的全部PE的并行计算能力,并且充分挖掘了向量处理器的基于SIMD的数据并行性,有效提高了SAD系数值计算在向量处理器中的执行效率,每次模板图遍历过程能同时计算4个SAD值,能缩短基于SAD的图像匹配算法的运算时间。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (1)
1.一种面向向量处理器的SAD向量化实现方法,其特征在于包括以下步骤:
(1)设实时图A,其大小为MxN,模板图为B,其大小为mxn,且M>m,N>n;向量处理器包括p个处理单元;
(2)向量处理器遍历实时图A并存取实时图A中的两个头部间隔4个元素且从子图中取向量长度为4*p的向量Auv和A(u+4)v,通过混洗操作得到4个头部间隔1个元素且长度为4*p的相邻子图A(u+k)v(k=0,1,2,3);所述元素为图像中的一个像素数据,所述向量是由多个相邻元素组成,所述向量长度是相邻元素的个数;
(3)从模板图B中取1个向量长度为4*p的子图;该子图坐标与子图A(u+k)v(k=0,1,2,3)的坐标位置对应;
(4)分别计算出4个子图A(u+k)v(k=0,1,2,3)与模板图B的差的绝对值和系数值ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3);
(5)令u=u+4,重复上述步骤(2)到步骤(5)直至遍历完实时图A,可以计算得到实时图A与模板图B的所有差的绝对值和系数值;
所述的步骤(4)中ρ(u,v)的计算公式为:
其中alw=((Auv)lw,(Auv)l(w+1),(Auv)l(w+2),(Auv)l(w+3))为子图Auv中4个8位像素值构成的32位定点向量,即alw是由子图Auv中(l,w),(l,w+1),(l,w+2),(l,w+3)4个相邻8位元素组成的向量;blw=(Blw,Bl(w+1),Bl(w+2),Bl(w+3))为模板图B中4个8位像素值构成的32位定点向量,ew=(1,1,1,1)为4个单位像素值构成的32位定点向量;L是循环计数,L=mn/4p;l、w、j、s均为元素在子图中的坐标值;
分别令u=u+k,(k=0,1,2,3),代入上式中,可分别计算得到ρ(u,v),ρ(u,v+1),ρ(u,v+2),ρ(u,v+3);
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110213343 CN102231202B (zh) | 2011-07-28 | 2011-07-28 | 面向向量处理器的sad向量化实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110213343 CN102231202B (zh) | 2011-07-28 | 2011-07-28 | 面向向量处理器的sad向量化实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102231202A CN102231202A (zh) | 2011-11-02 |
CN102231202B true CN102231202B (zh) | 2013-03-27 |
Family
ID=44843764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110213343 Active CN102231202B (zh) | 2011-07-28 | 2011-07-28 | 面向向量处理器的sad向量化实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102231202B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279327B (zh) * | 2013-04-28 | 2015-11-25 | 中国人民解放军信息工程大学 | 面向异构simd扩展部件的自动向量化方法 |
CN105828071B (zh) * | 2016-03-31 | 2019-05-24 | 中国人民解放军国防科学技术大学 | 面向向量处理器的去块滤波向量化实现方法 |
CN112445485B (zh) * | 2019-08-28 | 2022-11-15 | 无锡江南计算技术研究所 | 基于编译实现的可扩展向量掩码功能的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1750659A (zh) * | 2004-09-14 | 2006-03-22 | 华为技术有限公司 | 插值图像内存组织、分数像素生成及预测误差指标计算方法 |
CN101227616A (zh) * | 2007-01-15 | 2008-07-23 | 上海赛唯伦科技有限公司 | H.263/avc整象素向量搜索算法 |
EP2112602A2 (en) * | 2008-04-25 | 2009-10-28 | Intel Corporation | Device, system, and method for solving systems of linear equations using parallel processing |
-
2011
- 2011-07-28 CN CN 201110213343 patent/CN102231202B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1750659A (zh) * | 2004-09-14 | 2006-03-22 | 华为技术有限公司 | 插值图像内存组织、分数像素生成及预测误差指标计算方法 |
CN101227616A (zh) * | 2007-01-15 | 2008-07-23 | 上海赛唯伦科技有限公司 | H.263/avc整象素向量搜索算法 |
EP2112602A2 (en) * | 2008-04-25 | 2009-10-28 | Intel Corporation | Device, system, and method for solving systems of linear equations using parallel processing |
Non-Patent Citations (1)
Title |
---|
黎仁国.基于图像复杂度SAD计算的H.264全搜索快速算法.《绵阳师范学院学报》.2009,第28卷(第11期),第88-90页. * |
Also Published As
Publication number | Publication date |
---|---|
CN102231202A (zh) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10531030B2 (en) | Block operations for an image processor having a two-dimensional execution lane array and a two-dimensional shift register | |
US9978116B2 (en) | Core processes for block operations on an image processor having a two-dimensional execution lane array and a two-dimensional shift register | |
CN102509071B (zh) | 光流计算系统和方法 | |
CN103106183A (zh) | 基于mapreduce的大规模稀疏矩阵乘法运算的方法 | |
CN110574007B (zh) | 执行双输入值绝对值和求和操作的电路 | |
CN102411773B (zh) | 面向向量处理器的去均值归一化积相关系数的向量化实现方法 | |
Liu et al. | Automatic motion capture data denoising via filtered subspace clustering and low rank matrix approximation | |
CN102231202B (zh) | 面向向量处理器的sad向量化实现方法 | |
EP3338249B1 (en) | Video image alignment for video stabilization | |
CN103413273A (zh) | 一种基于gpu加速实现图像复原处理方法 | |
Wang et al. | Residual feature pyramid networks for salient object detection | |
WO2021211678A1 (en) | System and method to improve efficiency in multiplication ladder-based cryptographic operations | |
Han et al. | TSR-VFD: Generating temporal super-resolution for unsteady vector field data | |
Chen et al. | Costformer: Cost transformer for cost aggregation in multi-view stereo | |
Palaniappan et al. | Parallel flux tensor analysis for efficient moving object detection | |
Gao et al. | A mixture of nuclear norm and matrix factorization for tensor completion | |
CN102970545A (zh) | 一种基于二维离散小波变换算法的静态图像压缩方法 | |
Zhu et al. | Comparison of dense stereo using CUDA | |
CN102012802A (zh) | 面向向量处理器数据交换的方法及装置 | |
Tomasi et al. | A novel architecture for a massively parallel low level vision processing engine on chip | |
KR101460699B1 (ko) | 고성능 스테레오 정합 연산을 위한 병렬 스테레오 정합 연산 장치 | |
Barina et al. | Accelerating discrete wavelet transforms on parallel architectures | |
CN104751428A (zh) | 一种基于OpenCL架构的Wallis影像增强方法 | |
Horng et al. | Optimal speed-up algorithms for template matching on SIMD hypercube multiprocessors with restricted local memory | |
Hosseini et al. | Real-time parallel implementation of SSD stereo vision algorithm on CSX SIMD architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |