本发明涉及一种基于一维查找表的实现数据实时映射的系统及方法,属于数据处理技术领域。
背景技术:
三维查找表可以实现一切三维空间中的线性或者非线性映射处理,由于其高度的灵活性与高精度多功能的特点,在高端图像处理硬件中得到了广泛的应用。然而在实际应用中,尤其在实时处理装置中,受制于硬件复杂度,在三维查找表中为输入空间中的每一点存储映射值通常是做不到的。
技术实现要素:
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种基于一维查找表的实现数据实时映射的系统及方法,克服三维查找表在硬件实现上的困难。
为解决上述技术问题,本发明提供一种基于一维查找表的实现数据实时映射的系统,包括:立方晶胞定位模块,局部坐标生成模块,四面体顶点生成模块,三维至一维地址映射模块,一维查找表模块,四面体内插模块;
所述立方晶胞定位模块,用于接收输入点的三维坐标,利用三维坐标输入点所在的立方晶胞, 确定输入点的原点坐标,以及该立方晶胞的8个顶点的坐标;
所述局部坐标生成模块,用于接收输入点的三维坐标,并从立方晶胞定位模块确定的原点坐标,计算所述的输入点与原点在三个维度上的距离,将输入点的三维坐标转换至该局部坐标上的局部坐标;
所述四面体顶点生成模块,根据定位的立方晶胞的原点坐标和局部坐标生成模块生成的输入点的局部坐标,在三个维度上的大小关系,确定四个顶点的局部坐标及全局坐标;所述四个顶点是指立方晶胞被剖分为六个等体积的四面体的四个顶点;
所述三维至一维地址映射模块,将四面体顶点生成模块所获得的四面体的四个顶点的全局坐标,按照指定的映射方式将四个顶点的全局三维坐标映射到一个一维地址上;
所述一维查找表模块,根据三维至一维地址映射模块输出的一维地址,从内部存储空间内取出这一地址所指定位置的数据;
所述四面体内插模块,根据接收到的局部坐标生成模块生成的输入点的局部坐标,计算接收输入点对应四面体四个顶点的权重,并利用该权重与一维查找表输出的数据计算出内插值。
前述的确定输入点的原点坐标,以及该立方晶胞的8个顶点的坐标是指根据输入点的三维坐标的高3位定位输入点所在立方晶胞的位置即输入点的原点坐标,进而根据原点坐标确定该立方晶胞的8个顶点的坐标。
前述的根据输入点的三维坐标的低5位定位输入点所在立方晶胞内四面体的位置即局域坐标中原点坐标以及四个顶点的坐标。
前述的映射方式指的是三维坐标转换成一维地址的方式,根据一维查找表制作的方式来决定映射关系。
前述的计算接收输入点对应四面体四个顶点的权重的方法为:输入点将四面体分成四个四面体,输入点对某一顶点的权重即为输入点与其余三个顶点构成的四面体与四个顶点构成的四面体的体积比。
基于一维查找表的实现数据实时映射的方法,包括以下步骤:
1)立方晶胞定位模块根据接收到的输入点的三维坐标定位输入点的原点坐标以及输入点所在立方晶胞的8个顶点的坐标;
2)局部坐标生成模块根据输入点的三维坐标和立方晶胞定位模块定位的原点坐标,计算输入点与原点在三个维度上的距离,将输入点的三维坐标转换至该局部坐标上的局部坐标;
3)四面体顶点生成模块,根据定位的立方晶胞的原点坐标和接收输入点的局部坐标,在三个维度上的大小关系,确定四个顶点的局部坐标及全局坐标;
4)三维至一维地址映射模块,将所述四面体顶点生成模块所获得的四面体的四个顶点的全局坐标,按照指定的映射方式将四个顶点的全局三维坐标映射到一个一维地址上;
5)一维查找表模块,一维查找表模块根据三维至一维地址映射模块输出的一维地址,从内部存储空间内取出这一地址所指定位置的数据;
6)四面体内插值模块,根据接收输入点的局部坐标,计算接收输入点对应四面体四个顶点的权重,并利用该权重与一维查找表输出的数据计算出内插值。
本发明所达到的有益效果:
本发明的系统硬件的复杂性降低,同时降低了功耗;只需一个一维查找表就可以实现四面体四个顶点的映射;实现方式简便,成本低廉,应用范围较为广泛。
附图说明
图1是本发明基于一维查找表实现数据实时映射的系统框图;
图2是一种实施例中立方晶胞的定位示意图;
图3是一种实施例中根据输入点坐标计算输入点所在立方晶胞中的四面体的顶点坐标的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,本发明提供一种基于一维查找表的实现数据实时映射的系统,包括:立方晶胞定位模块,局部坐标生成模块,四面体顶点生成模块,三维至一维地址映射模块,一维查找表模块,四面体内插模块。其中,立方晶胞定位模块,用于接收输入点的三维坐标,利用三维坐标输入点所在的立方晶胞, 根据输入点的三维坐标x、y、z的高3位可以定位输入点所在立方晶胞的位置即输入点的原点坐标,以及该立方晶胞的8个顶点的坐标。
局部坐标生成模块,用于接收输入点的三维坐标,并从立方晶胞定位模块确定的原点坐标,计算所述的输入点与原点在三个维度上的距离,将所述的输入点的三维坐标转换至该局部坐标上的局部坐标。
每个立方晶胞可以被剖分为六个等体积的四面体。根据x、y、z的低5位可以定位输入点所在立方晶胞内四面体的位置即原点坐标以及四个顶点的坐标即输入点的局部坐标。四面体顶点生成模块,根据定位的立方晶胞的原点坐标和局部坐标生成模块生成的输入点的局部坐标,在三个维度上的大小关系,确定四个顶点的局部坐标及全局坐标;
三维至一维地址映射模块,将四面体顶点生成模块所获得的四面体的四个顶点的全局坐标,按照指定的映射方式将四个顶点的全局三维坐标映射到一个一维地址上;映射方式指的是三维坐标(x,y,z)转换成一维地址的方式,根据一维查找表制作的方式来决定映射关系,例如制作一维查找表时按x[7:5]_y[7:5]_z[7:5]排序,则地址映射方式为x[7:5]*64 +y[7:5]*8+z[7:5]。
一维查找表模块,根据三维至一维地址映射模块输出的一维地址,从内部存储空间内取出这一地址所指定位置的数据。
四面体内插模块,根据接收到的局部坐标生成模块生成的输入点的局部坐标,计算接收输入点对应四面体四个顶点的权重,并利用该权重与一维查找表输出的数据计算出内插值。
如图3所示,P点将四面体ACDG分成四个四面体PACD,PACG,PADG和PCDG,P点对A点的权重即VPCDG/VACDG ,其中,VPCDG代表四面体PCDG的体积,VACDG代表四面体ACDG的体积。
本发明还提供基于一维查找表的实现数据实时映射的方法,该方法包括以下步骤:
1)立方晶胞定位模块根据接收到的输入点的三维坐标定位输入点所在立方晶胞的8个顶点的坐标;
2)局部坐标生成模块根据输入点的三维坐标和立方晶胞定位模块定位的原点坐标,计算所述的输入点与原点在三个维度上的距离,将所述的输入点的三维坐标转换至该局部坐标上的局部坐标;
3)四面体顶点生成模块,根据定位的立方晶胞的原点坐标和接收输入点的局部坐标,在三个维度上的大小关系,确定四个顶点的局部坐标及全局坐标;
4)三维至一维地址映射模块,将所述四面体顶点生成模块所获得的四面体的四个顶点的全局坐标,按照指定的映射方式将四个顶点的全局三维坐标映射到一个一维地址上;
5)一维查找表模块,一维查找表模块根据三维至一维地址映射模块输出的一维地址,从内部存储空间内取出这一地址所指定位置的数据;
6)四面体内插值模块,根据接收输入点的局部坐标,计算接收输入点对应四面体四个顶点的权重,并利用该权重与一维查找表输出的数据计算出内插值。
实施例
例如将RGB映射到LAB色域。对输入空间等间隔均匀采样,将采样点对应的映射值按一定规律排列成一个一维查找表。将输入空间等分为512个立方晶胞,立方晶胞的空间格点间距为32,一共采样729个点。输入点P的三维坐标为(x,y,z)。根据x、y、z的高3位可以定位P点所在立方晶胞的位置,及该立方晶胞的8个顶点的坐标,如图2所示。每个立方晶胞可以被剖分为六个等体积的四面体。根据x、y、z的低5位可以定位P点所在立方晶胞内四面体的位置及四个顶点的坐标,如图3所示。在局部坐标系中,根据输入点在局部坐标系中的坐标与四个顶点坐标计算P点对于四个顶点的插值权重,该权重与一维查找表输出的数据计算出内插值。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。