本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
如图1所示,本发明的一个实施例提供一种快速sinc插值方法,其包括:
步骤S10:构建内核函数,所述内核函数包括多个并行执行的线程块,所述线程块包括多个并行执行的线程,所述线程用于对采样点进行sinc插值计算。
在具体应用中,采样点具体是指非整数采样点,例如,0.5、1.1、2.1等均为非整数;内核函数所包括的线程的数量可以大于、等于或小于采样点的数量,当线程的数量大于或等于采样点的数量时,可以实现对所有采样点的并行插值计算,当线程的数量小于采样点的数量时,则每执行一次内核函数只能实现对与线程数量相等的采样点的并行插值计算。
在实际应用中,只要线程数量大于1均能在传统的(每次只对一个采样点进行插值计算)的方式的基础上提升插值运算速度,最理想的线程数量取值是使内核函数所包括的所有线程数量刚好等于采样点的总数。在实际运算过程中,针对不同的样本,其采样点的数量是不同的,因此,为了实现运算速度的提升,可以在每次对样本进行插值运算之前,均构建线程数量与样本所包括的采样点数量相同内核函数,或者预先构建线程数量足够多的内核函数,使其可以适应于不同样本,而不用每次都重新构建内核函数。
步骤S20:启动并执行所述内核函数,所述线程根据其所属的线程块中预存的插值核表格查表得到预设样本中的一个采样点对应的加权值。
在具体应用中,步骤S20具体是指,在启动并执行内核函数之后,针对预设样本中的每一个采样点,都采用一个线程来查找该采样点所对应的加权值;预设样本具体可以是基于微波三维成像技术得到的成像数据。
在一个实施例中,步骤S20之前包括:所述内核函数的每个所述线程块均存储一份所述插值核表格。
在具体应用中,每个所述线程块所存储的插值核表格可以是来自同一份插值核表格原始数据的拷贝数据。
步骤S30:根据所述采样点对应的加权值对所述采样点进行sinc插值计算,得到所述采样点的插值结果,在所述内核函数执行完毕后,得到所述预设样本中所有采样点的插值结果。
在具体应用中,步骤S30具体是指针对每一个采样点,都采用一个线程来根据采样点对应的加权值对采样点进行sinc插值计算;若内核函数的线程数量大于或等于预设样本的采样点数量,则执行一次内核函数即可以获得预设样本中所有采样点的插值结果。若线程数量小于采样点的数量则至少需要执行两次内核函数,具体执行次数根据实际需要进行设定,最理想状态为只执行一次内核函数。
在一个实施例中,内核函数可以只包括1个或两个线程块,一个线程块也可以只包括一个或两个线程。在实际应用中,为了达到提高插值速度的目的,线程块和线程的数量不同时为1。
本实施例通过预先设置插值核表格,降低了计算量,节省了在插值计算过程中实时计算插值核的时间,并采用多个并行线程同时从插值核表格中查找与预设样本中的每个采样点所对应的加权值,根据每个采样点所对应的加权值对每个采样点进行插值计算,可以实现对预设样本中所有采样点的同步插值计算,加快了插值处理速度。
在本发明的一个实施例中,图1所对应的实施例中的步骤S20之前还包括:
步骤S00:构建并计算得到插值核表格。
如图2所示,在本发明的一个实施例中,上述步骤S00具体包括:
步骤S01:确定插值核表格的截断样本点数N;其中,N在第一预设范围内且N为正偶数。
在具体应用中,第一预设范围和N的具体取值均可以根据实际需要进行设置。
在一个实施例中,第一预设范围为8~16。
在其他实施例中,N也可以是正奇数,本实施例中只是为了方便后续对于N相关的数值进行计算,减小数据计算量而将N设定为正偶数。
在具体应用中,步骤S01具体是确定包括多个样本值的插值核表格中需要被选取的N个样本值。
步骤S02:确定插值核表格的量化位移值1/M;其中,M≥N且M为偶数。
在具体应用中,当N为奇数时,M也为奇数。
在一个实施例中,M为大于或等于16的偶数。
步骤S03:构建由M+1行和N列浮点数组成的插值核表格;所述插值核表格的第一行元素中,位于第N/2+1列的元素为1.0,其余全为0;所述插值核表格的第M+1行元素中,位于第N/2列的元素为1.0,其余全为0。
在具体应用中,N和M也可以为奇数,当N为奇数时,所述插值核表格的第一行元素中,位于第(N+1)/2列的元素为1.0,其余全为0;所述插值核表格的第M+1行元素中,位于第(N+1)/2-1列的元素为1.0,其余全为0;或者,所述插值核表格的第一行元素中,位于第(N+1)/2+1列的元素为1.0,其余全为0;所述插值核表格的第M+1行元素中,位于第(N+1)/2列的元素为1.0,其余全为0。
步骤S04:计算位于所述插值核表格中第i行和第j列的元素的值;其中,2≤i≤M,1≤j≤N且i和j均为整数。
如图3所示,为本发明的一个实施例提供的M=16且N=8时,利用图2所对应的方法步骤得到的插值核表格的示意图。
本实施例通过预先计算得到插值核表格并将插值核表格中的元素值作为对采样点进行插值计算的加权值,可以减少在插值计算过程中实时计算加权值所耗费的时间和计算量,从而简化处理过程,提高处理速度。
如图4所示,在本发明的一个实施例中图2所对应的实施例中的步骤S04具体包括:
步骤S041:设置所述第i行的所有元素的初始值。
在一个实施例中,步骤S041具体包括:
根据公式设置所述第i行的所有元素的初始值
其中,sin c(x)=sin(πx)/(πx),表示sinc插值核函数;j=1,2,3…N。
步骤S042:计算所述第i行的所有元素的初始值之和。
在一个实施例中,步骤S042具体包括:
根据公式计算所述第i行的所有元素的初始值之和Ai。
步骤S043:根据所述所有元素的初始值之和对所述第i行的所有元素的初始值进行归一化计算,得到位于所述插值核表格中第i行和第j列的元素的值。
在一个实施例中,步骤S043具体包括:
根据公式对所述第i行的所有元素的初始值进行归一化计算,得到位于所述插值核表格中第i行和第j列的元素的值wi,j。
如图5所示,在本发明的一个实施例中,在图2或图4所对应的实施例的基础之上,图1中的步骤S30具体包括:
步骤S31:根据所述采样点的值从预设离散序列中选定相邻的N个样本值组成第一行向量。
在具体应用中,相邻的N个样本值具体是指依次相邻的N个样本值,例如,对于一个预设离散序列s[k],其中,k=1,2,3…Q且Q为大于等于N的正整数,则相邻的N个样本值具体可以是指k=1,2,3…N时、k=2,3,4…N时、…、或k=Q-N+1,Q-N+2,…Q时的连续N个样本值。
步骤S32:选定所述插值核表格中预设行的N个元素的值组成第二行向量,每个所述元素的值对应一个所述样本值。
在具体应用中,预设行可以根据实际需要选定为插值核表格中的任意行。
步骤S33:以每个所述元素的值作为其所对应的样本值的加权值对所述第一行向量进行加权计算,得到所述采样点的插值结果。
在一个实施例中,步骤S33具体包括:
根据公式计算得到所述采样点x的插值结果s′(x);
其中,表示第一行向量,表示第二行向量。
下面以一个具体实例对步骤S33的加权计算方法进行说明:
设定第一向量包括3个样本值A,B和C,设定第二向量包括3个元素,3个元素的值分别为a,b和c,则a为A的加权值,b为B的加权值,c为C的加权值,采样点的插值结果=a×A+b×B+c×C。
如图6所述,在本发明的一个实施例中,图5所对应的实施例中的步骤S31具体包括:
步骤S311:确定所述采样点的整数部分n。
在具体应用中,采样点具体是指非整数采样点,例如对于一个非整数采样点11.6,其整数部分n=11。
步骤S312:从所述预设离散序列中选定第n-N/2、n-N/2+1、……、n+N/2-2和n+N/2-1共N个相邻的样本值组成第一行向量。
在具体应用中,对于预设离散序列s[k],其中,k=1,2,3…Q且Q为大于等于N的正整数,当n=5,N=8时,第一行向量=1,2,3,4,5,6,7,8。
如图6所示,在本实施例中,图5所对应的实施例中的步骤S32具体包括:
步骤S321:确定所述采样点的小数部分x′。
在具体应用中,对于一个非整数采样点11.6,其小数部分x′=0.6。
步骤S322:将所述小数部分x′除以量化位移值1/M,并四舍五入得到所述小数部分x′的偏移量m。
在具体应用中,当x′=0.6,M=16时,得到m=0.6/(1/16)四舍五入取整=10。
步骤S323:查询所述插值核表格,选定所述表格中的预设行的N个元素的值组成第二行向量,所述预设行为第M+1-m行。
如图7所示,本发明的一个实施例提供一种快速sinc插值系统100,用于执行图1所对应的实施例中的方法步骤,其包括:
内核函数构建模块10,用于构建内核函数,所述内核函数包括多个并行执行的线程块,所述线程块包括多个并行执行的线程,所述线程用于对采样点进行sinc插值计算;
加权值查找模块20,用于启动并执行所述内核函数,所述线程根据其所属的线程块中预存的插值核表格查表得到预设样本中的一个采样点对应的加权值;
Sinc插值计算模块30,用于根据所述采样点对应的加权值对所述采样点进行sinc插值计算,得到所述采样点的插值结果,在所述内核函数执行完毕后,得到所述预设样本中所有采样点的插值结果。
在具体应用中,快速sinc插值系统100可以为图像处理卡(GPU)中的软件程序系统。
在一个实施例中,快速sinc插值系统100还包括存储模块,用于所述内核函数的每个所述线程块均存储一份所述插值核表格。
本实施例通过预先设置插值核表格,节省了在插值计算过程中实时计算插值核的时间,降低了计算量,并采用多个并行线程同时从插值核表格中查找与预设样本中的每个采样点所对应的加权值,根据每个采样点所对应的加权值对每个采样点进行插值计算,可以实现对预设样本中所有采样点的同步插值计算,加快了插值处理速度。
如图8所示,在本发明的一个实施例中,快速sinc插值系统100还包括用于执行图3所对应的实施例中的方法步骤的结构,其包括:
插值核表格计算模块00,用于构建并计算得到插值核表格;
该插值核表格计算模块00包括:
样本点确定单元01,用于确定插值核表格的截断样本点数N;其中,N在第一预设范围内且N为正偶数;
位移值确定单元02,用于确定插值核表格的量化位移值1/M;其中,M≥N且M为偶数;
表格构建单元03,用于构建由M+1行和N列浮点数组成的插值核表格;所述插值核表格的第一行元素中,位于第N/2+1列的元素为1.0,其余全为0;所述插值核表格的第M+1行元素中,位于第N/2列的元素为1.0,其余全为0;
表格计算单元04,用于计算位于所述插值核表格中第i行和第j列的元素的值;其中,2≤i≤M,1≤j≤N且i和j均为整数。
本实施例通过预先计算得到插值核表格并将插值核表格中的元素值作为对采样点进行插值计算的加权值,可以减少在插值计算过程中实时计算加权值所耗费的时间和计算量,简化处理过程,从而提高处理速度。
如图9所示,在本发明的一个实施例中,图8中的表格计算单元04包括用于执行图4所对应的实施例中的方法步骤的结构,其包括:
初始值设置子单元041,用于设置所述第i行的所有元素的初始值;
求和计算子单元042,用于计算所述第i行的所有元素的初始值之和;
元素值计算子单元043,用于根据所述所有元素的初始值之和对所述第i行的所有元素的初始值进行归一化计算,得到位于所述插值核表格中第i行和第j列的元素的值。
在一个实施例中,初始值设置子单元041具体用于:
根据公式设置所述第i行的所有元素的初始值
其中,sin c(x)=sin(πx)/(πx),表示sinc插值核函数;j=1,2,3…N。
在一个实施例中,求和计算子单元042具体用于:
根据公式计算所述第i行的所有元素的初始值之和Ai。
在一个实施例中,元素值计算子单元043具体用于:
根据公式对所述第i行的所有元素的初始值进行归一化计算,得到位于所述插值核表格中第i行和第j列的元素的值wi,j。
如图10所示,在本发明的一个实施例中,基于图8或图9所对应的实施例中的结构,图7中的Sinc插值计算模块30包括用于执行图5所对应的实施例中的方法步骤的结构,其包括:
样本值选择单元31,用于根据所述采样点的值从预设离散序列中选定相邻的N个样本值组成第一行向量;
加权值选择单元32,用于选定所述插值核表格中预设行的N个元素的值组成第二行向量,每个所述元素的值对应一个所述样本值;
加权计算单元33,用于以每个所述元素的值作为其所对应的样本值的加权值对所述第一行向量进行加权计算,得到所述采样点的插值结果。
在一个实施例中,加权计算单元33具体用于:
根据公式计算得到所述采样点x的插值结果s′(x);
其中,表示第一行向量,表示第二行向量。
如图11所示,在本发明的一个实施例中,图10中的样本值选择单元31和加权值选择单元包括用于执行图6所对应的实施例中的方法步骤的结构,其中,样本值选择单元包括:
整数确定子单元311,用于确定所述采样点的整数部分n;
样本值选择子单元312,用于从所述预设离散序列中选定第n-N/2、n-N/2+1、……、n+N/2-2和n+N/2-1共N个相邻的样本值组成第一行向量;
加权值选择单元32包括:
小数确定子单元321,用于确定所述采样点的小数部分x′;
偏移量确定子单元322,用于将所述小数部分x′除以量化位移值1/M,并四舍五入得到所述小数部分x′的偏移量m;
加权值选择子单元323,用于查询所述插值核表格,选定所述表格中的预设行的N个元素的值组成第二行向量,所述预设行为第M+1-m行。
本发明所有实施例中的模块、单元或子单元,可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application SpecificIntegrated Circuit,专用集成电路)来实现。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块或单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。