CN117668305A - 一种查找表实现装置及方法 - Google Patents

一种查找表实现装置及方法 Download PDF

Info

Publication number
CN117668305A
CN117668305A CN202311567743.2A CN202311567743A CN117668305A CN 117668305 A CN117668305 A CN 117668305A CN 202311567743 A CN202311567743 A CN 202311567743A CN 117668305 A CN117668305 A CN 117668305A
Authority
CN
China
Prior art keywords
input value
calculated
source image
interpolation
value
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.)
Pending
Application number
CN202311567743.2A
Other languages
English (en)
Inventor
刘海威
严寒
梁喆
刘建伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aixin Yuanzhi Semiconductor Ningbo Co ltd
Original Assignee
Aixin Yuanzhi Semiconductor Ningbo Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aixin Yuanzhi Semiconductor Ningbo Co ltd filed Critical Aixin Yuanzhi Semiconductor Ningbo Co ltd
Priority to CN202311567743.2A priority Critical patent/CN117668305A/zh
Publication of CN117668305A publication Critical patent/CN117668305A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)

Abstract

本申请实施例提供一种查找表实现装置及方法,该装置中的重映射模块包括:源图像地址产生单元、插值系数生成单元和插值计算单元。其中,源图像地址产生单元存储查找表的映射关系,该映射关系用于指示与至少两个第一输入值分别对应的第一输出值;插值系数生成单元根据第一输入值和第一输出值,确定待查询输入值的第一权重系数;插值计算单元根据第一输入值、第一输出值和第一权重系数,通过线性插值方法计算待查询输入值对应的目标输出值。本申请的方案无需构建大量数组,因此可解决数组实现查找表的方式中存在的存储需求较高的问题,该装置复用已有的重映射模块实现查找表,无需额外配置进行线性插值计算的器件,因此能够减少硬件资源的消耗。

Description

一种查找表实现装置及方法
技术领域
本申请涉及数据处理领域,尤其涉及一种查找表实现装置及方法。
背景技术
查找表(Lookup Table,查找表)是一种数据结构,用于存储输入值和相应输出值之间的映射关系。在计算机科学和工程中,查找表通常用于加速数据处理和计算操作,以及实现数据转换和映射等功能。
目前通常通过以下两种方式实现查找表,一种方式是通过数组的方式实现,该方式中,具有映射关系的输入值和输出值构成相应的数组,当需要确定某一待查询输入值相对应的输出值时,可查看相应的数组;另一种方式通过线性插值方式实现,该方式中,可预先存储多个输入值和输出值之间的映射关系,当需要确定某一待查询输入值相对应的输出值时,可通过预先存储的映射关系进行线性插值计算。
但是,通过数组实现查找表,需要存储待查询输入值与其对应的输出值之间数组,当待查询输入值的数据量较大时,需要构建大量数组,导致对存储的需求较高;通过线性插值方式实现查找表,则需要额外设置线性插值计算的器件,导致需要消耗较多的硬件资源。
发明内容
为了解决现有通过数组实现查找表的技术中,存在的对存储的需求较高问题,以及解决现有通过线性插值方式实现查找表的技术中,需要额外设置线性插值计算的器件,导致需要消耗较多的硬件资源的问题,本申请实施例提供一种查找表实现装置及方法。
第一方面,本申请实施例提供一种查找表实现装置,包括重映射remap模块,所述remap模块包括:
源图像地址产生单元、插值系数生成单元和插值计算单元;
所述源图像地址产生单元用于存储查找表的映射关系,所述映射关系用于指示与至少两个第一输入值分别相对应的第一输出值;
所述插值系数生成单元用于根据所述第一输入值和所述第一输出值,确定待查询输入值的第一权重系数;
所述插值计算单元用于根据所述第一输入值、所述第一输出值和所述第一权重系数,通过线性插值方法计算所述待查询输入值对应的目标输出值。
在一种可行的设计中,所述第一输入值的维度包括一维和二维中的至少一种。
在一种可行的设计中,所述remap模块与函数实现模块相连接,并获取所述函数实现模块传输的所述待查询输入值;
所述函数实现模块通过所述待查询输入值以及所述目标输出值,实现函数处理。
在一种可行的设计中,所述函数实现模块用于实现以下函数中的至少一种:激活函数和归一化指数函数。
在一种可行的设计中,若所述第一输入值的维度为一维,并且所述第一输入值包括至少三个,所述插值系数生成单元根据所述待查询输入值,确定所述第一输入值中的第一计算输入值和第二计算输入值,所述第一计算输入值小于或等于所述待查询输入值,所述第二计算输入值大于或等于所述待查询输入值;
所述插值系数生成单元根据所述第一计算输入值、所述第二计算输入值、所述第一计算输入值相对应的第一计算输出值和所述第二计算输入值相对应的第二计算输出值,确定所述第一权重系数。
在一种可行的设计中,所述插值系数生成单元根据以下公式确定所述第一权重系数:
K=(y2-y1)/(x2-x1);
其中,K为所述第一权重系数,x1为所述第一计算输入值,x2为所述第二计算输入值,y1为所述第一计算输出值,y2为所述第二计算输出值。
在一种可行的设计中,若所述第一输入值的维度为二维,并且所述第一输入值包括至少五个,所述插值系数生成单元根据所述待查询输入值,确定第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值,所述第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值与所述待查询输入值最接近;
所述插值系数生成单元根据所述第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值,确定所述第一权重系数。
在一种可行的设计中,所述插值系数生成单元根据以下公式确定所述第一权重系数:
dx=(x-x3)/(x4-x3);
dy=(y-y3)/(y4-y3);
其中,dx和dy为所述第一权重系数,(x3,y3)为所述第三计算输入值,(x3,y4)为所述第四计算输入值,(x4,y3)为所述第五计算输入值,(x4,y4)为所述第六计算输入值。
在一种可行的设计中,所述remap模块还包括:源图像读取单元和目标图像写出单元;
所述源图像地址产生单元还用于,生成源图像的地址,以及存储所述源图像的地址与目标图像的地址之间的映射关系,所述源图像的地址包括所述源图像中的各个像素对应的索引,所述目标图像的地址包括所述目标图像中的各个像素对应的索引;
所述插值系数生成单元还用于,根据所述源图像与目标图像之间的所述映射关系,确定所述目标图像和所述源图像的第二权重系数;
所述源图像读取单元用于,根据所述源图像地址产生单元生成的所述源图像地址,读取所述源图像中的像素;
所述插值计算单元还用于,根据所述插值系数生成单元确定的第二权重系数,以及所述源图像读取单元读取的所述源图像中的像素,确定所述目标图像中的像素;
所述目标图像写出单元用于根据所述插值计算单元确定的所述目标图像中的像素,写出所述目标图像。
第二方面,本申请实施例提供一种查找表实现方法,应用于映射remap模块,所述remap模块包括:源图像地址产生单元、插值系数生成单元和插值计算单元,所述方法包括:
所述源图像地址产生单元存储查找表的映射关系,所述映射关系用于指示与至少两个第一输入值分别相对应的第一输出值;
所述插值系数生成单元根据所述第一输入值和所述第一输出值,确定待查询输入值的第一权重系数;
所述插值计算单元根据所述第一输入值、所述第一输出值和所述第一权重系数,通过线性插值方法计算所述待查询输入值对应的目标输出值。
与现有技术中通过数组实现查找表的方案相比,由于本申请提供的装置无需构建大量数组,因此可解决存储需求较高的问题。另外,该装置通过复用已有的remap模块实现查找表,无需额外配置进行线性插值计算的器件,因此能够减少硬件资源的消耗。
进一步的,该装置中的remap模块在实现查找表时,不会受到数组中输入值和输出值的精度和数据范围的限制,因此还能够解决现有通过数组实现查找表的方式中,所存在的只能满足较低精度的需求的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种双线性插值的示例图;
图2为一种remap模块的结构示意图;
图3为一种源图像地址产生单元的结构示意图;
图4为本申请实施例提供的一种查找表实现装置中的remap模块的结构示意图;
图5为一种sigmoid函数的函数曲线示意图;
图6为一种sigmoid函数的线段表示示意图;
图7为本申请实施例提供的一种查找表实现方法的工作流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需说明,在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施方式的限制。
在本申请中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
为便于对申请的技术方案进行,以下首先在对本申请所涉及到的一些概念进行说明。
查找表(Lookup Table,LUT)是一种数据结构,用于存储输入值和相应输出值之间的映射关系。在计算机科学和工程中,查找表通常用于加速数据处理和计算操作,以及实现数据转换和映射等功能。
查找表的基本原理是将输入值映射到一个已知的输出值,有些场景下,需要确定某一个待查询输入值对应的输入值,则可基于该查找表以及该待查询输入值,确定相应的输出值。
目前通常通过以下两种方式实现查找表,一种方式是通过数组的方式实现,该方式中,具有映射关系的输入值和输出值构成相应的数组,这种情况下,当需要确定某一待查询输入值相对应的输出值时,可查看该待查询输入值对应的数组,然后基于该数组确定相应的输出值。
但是,通过数组实现查找表,需要存储待查询输入值与其对应的输出值的数组,当待查询输入值的数据量较大时,需要构建大量数组,导致对存储的需求较高,会占用较多的内存空间,空间复杂度较高。因此,该方式仅适用于一些简单的查找表,例如颜色查找表等。
另外,构建的数组中所包括的输入值和输出值的精度和数据范围都是有限的,这也导致通过数组实现查找表的方式只能满足较低精度的需求。例如,如果数组中输入值为1.1、1.2和1.3,当需要查询1.15这一输入值对应的输出值时,在查询数组时,往往会将与1.15较接近的输入值1.2所对应的输出值,作为输入值1.15的输出值,精度较低。
另一种实现查找表的方式为线性插值方式,该方式中,可预先存储多个输入值和输出值之间的映射关系,当需要确定某一待查询输入值相对应的输出值时,可通过预先存储的映射关系进行线性插值计算,通过线性插值计算的结果确定与该待查询输入值具有映射关系的输出值。与通过数组实现查找表的方式相比,该方式由于可通过线性插值计算的方式实现查找表,无需存储数组,因此对存储的需求较低,并且能够满足更高精度的需求。
在芯片设计时,利用线性插值方法实现查找表一般采用以下步骤:
步骤一、确定输入值的范围和插值间隔,在卷积运算中,输入值通常为卷积层的输入数据、权重和偏置项。
步骤二、根据输入值的范围和插值间隔,计算与输入值具有映射关系的输出值。
步骤三、将输入值以及计算得到的相应的输出值存储在查找表中。
步骤四、当需要确定与待查询输入值具有映射关系的输出值时,通过该查找表进行线性插值计算,以确定该输出值。其中,与某一输入值具有映射关系的输出值,也可称为该输入值对应的输出值。
设定待查询输入值为x,查找表中存储的与x最接近的两个输入值分别为x1和x2,并且在查找表中,与x1具有映射关系的输出值为y1,与x2具有映射关系的输出值为y2,并且x1<=x<=x2,则在进行线性插值计算时,可采用以下的技术步骤:
步骤一、获取待查询输入值x后,查找该查找表中的输入值x1和x2。
步骤二、基于查找表,确定输入值x1和x2分别对应的输出值y1和y2。
步骤三、按照以下公式,计算线性插值的结果:y=(y2-y1)*(x-x1)/(x2-x1)+y1。
其中,y即为与待查询输入值x具有映射关系的输出值。
通过上述方式,可通过线性插值方式实现查找表。
但是,通过线性插值方式实现查找表,则需要额外设置线性插值计算的器件,导致需要消耗较多的硬件资源。
为了解决上述技术问题,本申请实施例提供一种查找表实现装置及方法。其中,该装置应用于重映射remap模块。
remap通常指的是一种图像处理操作,该操作用于将输入图像中的像素映射到输出图像中的新位置和新像素值。在神经网络中,remap操作通常用于实现空间变换,例如图像旋转、缩放和仿射变换等。一种常见的实现remap的方案是双线性插值法,利用双线性插值实现remap一般需要以下几个步骤:
步骤一、确定源图像图像和目标图像之间的几何变换关系,例如缩放、旋转、平移等变换关系,该源图像即为输入图像,该目标图像即为输出图像。
步骤二、根据上述几何变换关系,对于目标图像中的每个像素,计算出它在源图像中对应的坐标,以得到相应的映射矩阵。
步骤三、对于目标图像中的每个像素,根据坐标映射矩阵计算其在源图像中的位置,并使用双线性插值方法,在源图像中找到该位置相应的像素值,用于填充目标图像中的像素值。
步骤四、将填充好的目标图像输出,完成remap操作。
为了明确现有技术中,进行双线性插值的方法,以下公开一个现有技术的示例以及该示例对应的图1。参见图1,假设目标图像中某一像素的坐标为(x0,y0),该像素可称为待估点,在源图像中与该待估点具有映射关系的四个像素分别为(x01,y01,f(x01,y01))、(x01,y02,f(x01,y02))、(x02,y01,f(x02,y01))和(x02,y02,f(x02,y02)),其中x0,x01,x02为横坐标值,y0,y01,y02为纵坐标值,f(x0,y0)为坐标点(x0,y0)的像素的像素值,x01≤x0≤x02,y01≤y0≤y02。
在进行双线性插值的过程中,首先计算出计算出待估点在横坐标轴和纵坐标轴上的权重系数,分别为dx0和dy0。其中,权重系数的计算可以使用以下公式:
dx0= (x0-x01) / (x02-x01) 公式(1)
dy0= (y0-y01) / (y02-y01) 公式(2)
然后,根据权重系数和源图像中与待估点具有映射关系的四个像素的函数值,计算出待估点的函数值f(x0,y0),该计算可通过以下计算公式实现:
f(x0,y0)=(1-dx0)*(1-dy0)*f(x01,y01)+dx0*(1-dy0)*f(x02,y01)+(1-dx0)*dy0*f(x01,y02)+dx0*dy0*f(x02,y02)公式(3)
上述公式中,公式右侧由四项组成,第一项表示源图像左上角的像素对待估点的贡献,第二项表示源图像右上角的像素对待估点的贡献,第三项表示源图像左下角的像素对待估点的贡献,第四项表示源图像右下角的像素对待估点的贡献。这些项的系数分别为(1-dx0)*(1-dy0)、dx0*(1-dy0)、(1-dx0)*dy0和dx0*dy0。
根据上述计算公式得到待估点的函数值f(x0,y0),则完成双线性插值的过程。
remap模块即为能够进行上述的remap操作的模块,一些需要进行图像处理的装置中,往往安装有remap模块。例如,在NPU设计中,往往需要进行图像处理,而remap属于图像处理任务中的一种基础功能,因此,remap模块在NPU芯片中属于标配。当然,部分其他需要进行图像处理的芯片或器件中也配置有remap模块。
其中,参见图2所示的结构示意图,目前的remap模块包括:源图像地址产生单元、源图像读取单元、插值系数生成单元、插值计算单元和目标图像写出单元。
该源图像地址产生单元用于生成源图像的地址。该源图像的地址包括所述源图像中的各个像素对应的索引,示例性的,该索引可以为编号的形式,这种情况下,该源图像的地址可包括源图像中的各个像素的像素坐标与编号之间的对应关系。
源图像地址的产生一般由源图像和目标图像之间的几何变换关系决定(例如缩放、旋转、平移等变换关系),可以按照某些约定的规则生成。由于该地址产生的规则是固定的,因此源图像的像素和目标图像的像素之间的映射关系也是确定的。
源图像地址产生单元的结构可如图3所示,参见图3,该源图像地址产生单元包括地址解码器和LUT存储单元,输入数据包括源图像和目标图像,输出数据包括该源图像的地址,地址解码器可根据输入数据生成源图像的地址,另外,该LUT存储单元可存储源图像的地址和目标图像的地址之间的映射关系。这种情况下,该映射关系可通过查询LUT存储单元的方式确定。向LUT存储单元输入待估点的坐标,即可得到该预估点相应的源图像的地址。
源图像地址产生单元可将源图像的地址传输至源图像读取单元。源图像读取单元获取源图像地址后,读取待处理的源图像像素,该源图像像素为源图像中与预估点具有映射关系的像素。根据硬件资源规模,可以一次读取一个或多个像素。
插值系数生成单元获取源图像地址和目标图像地址后,根据插值公式(1)(2)生成权重系数,然后插值计算单元再根据公式(3)计算得到函数值f(x0,y0),即目标图像中预估点这一像素的像素值,再由目标图像写出单元根据插值计算单元确定的目标图像中的像素,写出目标图像。
根据上述介绍可知,在部分芯片中包含remap模块,在本申请实施例中,复用芯片中的remap模块,以实现查找表。
由于本申请实施例提供的方案中,通过remap模块实现查找表,而该remap模块支持线性插值算法,因此无需构建大量数组,可解决现有技术中,通过数组实现查找表所具有的存储需求较高的问题。并且,该方案复用了已有的remap模块实现查找表,无需额外配置进行线性插值计算的器件,因此能够减少硬件资源的消耗。
进一步的,由于本申请实施例通过复用remap模块实现查找表,而remap模块可进行线性插值,因此还能够解决现有通过数组实现查找表的方式中,所存在的只能满足较低精度的需求的问题。
为了明确本申请实施例的方案,以下对本申请实施例的方案进行介绍。
本申请实施例提供一种查找表实现装置,该装置包括remap模块,该装置可包括NPU芯片或其他内置有remap模块的器件,本申请实施例对此不做限定。另外,在本申请的实施例中,A与B相对应指的是A与B之间存在映射关系。
参见图4所示的结构示意图,该remap模块包括:源图像地址产生单元、插值系数生成单元和插值计算单元。
其中,所述源图像地址产生单元用于存储查找表的映射关系,所述映射关系用于指示与至少两个第一输入值分别相对应的第一输出值;
所述插值系数生成单元用于根据所述第一输入值和所述第一输出值,确定待查询输入值的第一权重系数;
所述插值计算单元用于根据所述第一输入值、所述第一输出值和所述第一权重系数,通过线性插值方法计算所述待查询输入值对应的目标输出值。
也就是说,在本申请实施例提供的装置中,源图像地址产生单元中存储有映射关系,该映射关系包括至少两个第一输入值与其对应的第一输出值之间的对应关系,插值系数生成单元可根据第一输入值和所述第一输出值,确定待查询输入值的第一权重系数,而插值计算单元用于根据所述第一输入值、所述第一输出值和所述第一权重系数,计算所述待查询输入值对应的目标输出值,即通过该装置,可确定与待查询输入值具有映射关系的目标输出值,实现查找表。
与现有技术中通过数组实现查找表的方案相比,由于本申请提供的装置无需构建大量数组,因此可解决存储需求较高的问题。另外,该装置通过复用已有的remap模块实现查找表,无需额外配置进行线性插值计算的器件,因此能够减少硬件资源的消耗。
进一步的,该装置中的remap模块在实现查找表时,不会受到数组中输入值和输出值的精度和数据范围的限制,因此还能够解决现有通过数组实现查找表的方式中,所存在的只能满足较低精度的需求的问题。
进一步的,在本申请实施例中,第一输入值的维度包括一维和二维中的至少一种,以满足不同需求。当然,第一输入值还可包括其他维度,本申请实施例对此不作限定。
其中,如果第一输入值的维度包括一维,则插值计算单元采用的线性插值方法包括单线性插值方法;如果第一输入值的维度包括二维,则插值计算单元采用的线性插值方法包括双线性插值方法。
例如,第一输入值的维度包括一维,在图4中,第一输入值x10对应第一输出值f(x10),第一输入值x20对应第一输出值f(x20),源图像地址产生单元中存储的映射关系包括x10与f(x10)之间的映射关系,以及包括x20与f(x20)之间的映射关系。这种情况下,插值系数生成单元确定的第一权重系数可为(f(x20)-f(x10))/(x20-x10)。这种情况下,插值计算单元可计算得到待查询输入值x对应的目标输出值f(x)。
在一种可行的设计中,该remap模块与函数实现模块相连接,并获取所述函数实现模块传输的待查询输入值;该函数实现模块通过待查询输入值以及目标输出值,实现函数处理。
有些函数在实现过程中,会涉及到基于输入值确定对应的输出值的操作,这些函数适合通过查找表实现。在本申请实施例中,remap模块可与函数实现模块相连接,获取该函数实现模块传输的待查询输入值,并向其反馈相应的目标输出值。
示例性的,该函数实现模块用于实现以下函数中的至少一种:激活函数和归一化指数(softmax)函数。其中,该激活函数可包括sigmoid函数、tanh函数和relu函数等。
以sigmoid函数为例,sigmoid函数的计算公式为:sigmoid(x)=1/(1+exp(-x))。其中,x表示输入值,exp表示自然指数函数,sigmoid(x)为输出值。其函数曲线如图5所示。
在NPU中,如果按照公式计算实现sigmoid函数,计算十分复杂,会耗费大量计算资源。在可承受的精度损失下,可以将sigmoid曲线近似为N个线性的线段表示,如图6所示,再利用线性插值的方法进行查表计算。Sigmoid曲线在横轴和纵轴都被分为M个线段,其横轴坐标分别为(x0,x1,…,xM),对应的纵轴坐标分别为(y0,y1,…,yM),其中每一段都为线性线段。
设输入值x满足xN≤x≤xN+1,则f(x)=(yN+1-yN)*(x-xN)/(xN+1-xN)+yN。为实现查表操作,可以将xN与yN的映射关系存储到源图像地址产生单元(例如存储到源图像地址产生单元的LUT存储单元)中,然后通过本申请实施例提供的查找表实现装置计算得到所需结果f(x),其中,x可看作待查询输入值,f(x)可看作目标输出值。
在一种可行的设计中,若第一输入值的维度为一维,并且第一输入值包括至少三个,插值系数生成单元根据所述待查询输入值,确定第一输入值中的第一计算输入值和第二计算输入值,所述第一计算输入值小于或等于所述待查询输入值,所述第二计算输入值大于或等于所述待查询输入值;
所述插值系数生成单元根据所述第一计算输入值、所述第二计算输入值、所述第一计算输入值相对应的第一计算输出值和所述第二计算输入值相对应的第二计算输出值,确定所述第一权重系数。
例如,在上述示例中,x为待查询输入值,并且xN≤x≤xN+1,则可将xN作为第一计算输入值,xN+1作为第二计算输入值。这种情况下,第一计算输入值和第二计算输入值位于待查询输入值的两边,有助于提高确定目标输出值的准确度。
进一步的,所述第一计算输入值和所述第二计算输入值可比其他第一输入值更接近待查询输入值,这种情况下,能够进一步提高确定目标输出值的准确度。
另外,在这一设计中,插值系数生成单元根据以下公式确定所述第一权重系数:
K=(y2-y1)/(x2-x1);
其中,K为所述第一权重系数,x1为所述第一计算输入值,x2为所述第二计算输入值,y1为所述第一计算输出值,y2为所述第二计算输出值。
进一步的,在获取第一权重系数后,插值计算单元可通过以下公式确定目标输出值:
y=K*(x-x1)+y1=(y2-y1)*(x-x1)/(x2-x1)+y1。
其中,x为待查询输入值,y为目标输出值。
在另一种可行的设计中,若所述第一输入值的维度为二维,并且所述第一输入值包括至少五个,所述插值系数生成单元根据所述待查询输入值,确定第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值,所述第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值与所述待查询输入值最接近;
所述插值系数生成单元根据所述第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值,确定所述第一权重系数。
在这一设计中,所述插值系数生成单元根据以下公式确定所述第一权重系数:
dx=(x-x3)/(x4-x3);x1:x3;x2:x4;y1:y3;y2:y4
dy=(y-y3)/(y4-y3);
其中,dx和dy为所述第一权重系数,(x3,y3)为所述第三计算输入值,(x3,y4)为所述第四计算输入值,(x4,y3)为所述第五计算输入值,(x4,y4)为所述第六计算输入值。
另外,在这一设计中,在确定第一权重系数后,可将其带入公式(3),以便计算得到目标输出值。
进一步的,在本申请实施例提供的装置中,remap模块还可执行图像处理的操作。这种情况下,该remap模块还包括:源图像读取单元和目标图像写出单元。
其中,该源图像地址产生单元还用于生成源图像的地址。该源图像的地址包括所述源图像中的各个像素对应的索引,如果该索引为编号的形式,则该源图像的地址可包括源图像中的各个像素的像素坐标与编号之间的对应关系。
另外,该源图像地址产生单元还用于存储所述源图像的地址与目标图像的地址之间的映射关系,所述目标图像的地址包括所述目标图像中的各个像素对应的索引,如果该该索引为编号的形式,则该目标图像的地址可包括目标图像中的各个像素的像素坐标与编号之间的对应关系。
如果源图像地址产生单元的结构如图3所示,则该映射关系可存储至LUT存储单元。
该插值系数生成单元还用于,根据所述源图像与目标图像之间的所述映射关系,确定所述目标图像和所述源图像的第二权重系数,并将该第二权重系数传输至插值计算单元。
其中,该第二权重系数可按照公式(1)(2)确定。
另外,源图像地址产生单元可将源图像的地址传输至源图像读取单元。相应的,源图像读取单元用于,根据所述源图像地址产生单元生成的所述源图像地址,读取所述源图像中的像素,以确定读取的像素的像素值。根据硬件资源规模,可以一次读取一个或多个像素。
该插值计算单元还用于,,根据所述插值系数生成单元确定的第二权重系数,以及所述源图像读取单元读取的所述源图像中的像素,确定所述目标图像中的像素。其中,插值计算单元可根据公式(3)计算得到目标图像中的像素值,从而确定目标图像中的像素。
所述目标图像写出单元用于根据所述插值计算单元确定的所述目标图像中的像素,写出所述目标图像。
也就是说,在本申请实施例提供的方案中,remap模块不仅可以实现查找表,还可以执行图像处理的操作,因此,在实现查找表时,本申请只需复用remap模块即可,无需额外配置进行线性插值计算的器件,从而能够减少硬件资源的消耗。
相应的,本申请实施例提供一种查找表实现方法,该方法应用于映射remap模块,所述remap模块包括:源图像地址产生单元、插值系数生成单元和插值计算单元。
参见图7所示的工作流程示意图,该查找表实现方法包括以下步骤:
步骤S11、所述源图像地址产生单元存储查找表的映射关系,所述映射关系用于指示与至少两个第一输入值分别相对应的第一输出值;
步骤S12、所述插值系数生成单元根据所述第一输入值和所述第一输出值,确定待查询输入值的第一权重系数;
步骤S13、所述插值计算单元根据所述第一输入值、所述第一输出值和所述第一权重系数,通过线性插值方法计算所述待查询输入值对应的目标输出值。
与现有技术中通过数组实现查找表的方案相比,由于本申请提供的方法无需构建大量数组,因此可解决存储需求较高的问题。进一步的,remap模块在实现查找表时,不会受到数组中输入值和输出值的精度和数据范围的限制,因此该方法还能够解决现有通过数组实现查找表的方式中,所存在的只能满足较低精度的需求的问题。
另外,该方法通过复用已有的remap模块实现查找表,无需额外配置进行线性插值计算的器件,因此能够减少硬件资源的消耗。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于随机存取存储器(random accessmemory,RAM)、闪存、只读存储器(read-only memory,ROM)、可擦式可编程只读存储器(erasable programmable read-only memory,EPROM)、寄存器、硬盘、可移动磁盘、便携式紧凑盘只读存储器(compact disc read-only memory,CD-ROM)或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端(user equipment,UE)中。可选地,处理器和存储媒介也可以设置于UE中的不同的部件中。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本说明书的各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (10)

1.一种查找表实现装置,其特征在于,包括重映射remap模块,所述remap模块包括:
源图像地址产生单元、插值系数生成单元和插值计算单元;
所述源图像地址产生单元用于存储查找表的映射关系,所述映射关系用于指示与至少两个第一输入值分别相对应的第一输出值;
所述插值系数生成单元用于根据所述第一输入值和所述第一输出值,确定待查询输入值的第一权重系数;
所述插值计算单元用于根据所述第一输入值、所述第一输出值和所述第一权重系数,通过线性插值方法计算所述待查询输入值对应的目标输出值。
2.根据权利要求1所述的装置,其特征在于,
所述第一输入值的维度包括一维和二维中的至少一种。
3.根据权利要求1所述的装置,其特征在于,
所述remap模块与函数实现模块相连接,并获取所述函数实现模块传输的所述待查询输入值;
所述函数实现模块通过所述待查询输入值以及所述目标输出值,实现函数处理。
4.根据权利要求1所述的装置,其特征在于,
所述函数实现模块用于实现以下函数中的至少一种:激活函数和归一化指数函数。
5.根据权利要求2所述的装置,其特征在于,若所述第一输入值的维度为一维,并且所述第一输入值包括至少三个,所述插值系数生成单元根据所述待查询输入值,确定所述第一输入值中的第一计算输入值和第二计算输入值,所述第一计算输入值小于或等于所述待查询输入值,所述第二计算输入值大于或等于所述待查询输入值;
所述插值系数生成单元根据所述第一计算输入值、所述第二计算输入值、所述第一计算输入值相对应的第一计算输出值和所述第二计算输入值相对应的第二计算输出值,确定所述第一权重系数。
6.根据权利要求5所述的装置,其特征在于,所述插值系数生成单元根据以下公式确定所述第一权重系数:
K=(y2-y1)/(x2-x1);
其中,K为所述第一权重系数,x1为所述第一计算输入值,x2为所述第二计算输入值,y1为所述第一计算输出值,y2为所述第二计算输出值。
7.根据权利要求2所述的装置,其特征在于,若所述第一输入值的维度为二维,并且所述第一输入值包括至少五个,所述插值系数生成单元根据所述待查询输入值,确定第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值,所述第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值与所述待查询输入值最接近;
所述插值系数生成单元根据所述第三计算输入值、第四计算输入值、第五计算输入值和第六计算输入值,确定所述第一权重系数。
8.根据权利要求7所述的装置,其特征在于,所述插值系数生成单元根据以下公式确定所述第一权重系数:
dx=(x-x3)/(x4-x3);
dy=(y-y3)/(y4-y3);
其中,dx和dy为所述第一权重系数,(x3,y3)为所述第三计算输入值,(x3,y4)为所述第四计算输入值,(x4,y3)为所述第五计算输入值,(x4,y4)为所述第六计算输入值。
9.根据权利要求1所述的装置,其特征在于,所述remap模块还包括:源图像读取单元和目标图像写出单元;
所述源图像地址产生单元还用于,生成源图像的地址,以及存储所述源图像的地址与目标图像的地址之间的映射关系,所述源图像的地址包括所述源图像中的各个像素对应的索引,所述目标图像的地址包括所述目标图像中的各个像素对应的索引;
所述插值系数生成单元还用于,根据所述源图像与目标图像之间的所述映射关系,确定所述目标图像和所述源图像的第二权重系数;
所述源图像读取单元用于,根据所述源图像地址产生单元生成的所述源图像地址,读取所述源图像中的像素;
所述插值计算单元还用于,根据所述插值系数生成单元确定的第二权重系数,以及所述源图像读取单元读取的所述源图像中的像素,确定所述目标图像中的像素;
所述目标图像写出单元用于根据所述插值计算单元确定的所述目标图像中的像素,写出所述目标图像。
10.一种查找表实现方法,其特征在于,应用于映射remap模块,所述remap模块包括:源图像地址产生单元、插值系数生成单元和插值计算单元,所述方法包括:
所述源图像地址产生单元存储查找表的映射关系,所述映射关系用于指示与至少两个第一输入值分别相对应的第一输出值;
所述插值系数生成单元根据所述第一输入值和所述第一输出值,确定待查询输入值的第一权重系数;
所述插值计算单元根据所述第一输入值、所述第一输出值和所述第一权重系数,通过线性插值方法计算所述待查询输入值对应的目标输出值。
CN202311567743.2A 2023-11-22 2023-11-22 一种查找表实现装置及方法 Pending CN117668305A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311567743.2A CN117668305A (zh) 2023-11-22 2023-11-22 一种查找表实现装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311567743.2A CN117668305A (zh) 2023-11-22 2023-11-22 一种查找表实现装置及方法

Publications (1)

Publication Number Publication Date
CN117668305A true CN117668305A (zh) 2024-03-08

Family

ID=90074442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311567743.2A Pending CN117668305A (zh) 2023-11-22 2023-11-22 一种查找表实现装置及方法

Country Status (1)

Country Link
CN (1) CN117668305A (zh)

Similar Documents

Publication Publication Date Title
US9390007B2 (en) Method and apparatus for performing adaptive memory bank addressing
US5606650A (en) Method and apparatus for storage and retrieval of a texture map in a graphics display system
US6940514B1 (en) Parallel initialization path for rasterization engine
EP1566773A1 (en) Alpha blending based on a look-up table
KR102533624B1 (ko) 표시 장치의 감마 보정 장치, 표시 장치의 감마 보정 방법, 및 표시 장치
US5930407A (en) System and method for efficiently generating cubic coefficients in a computer graphics system
JP2007065039A (ja) 画像処理装置
JPS61136177A (ja) 像データを計算する為に使う装置
CN117668305A (zh) 一种查找表实现装置及方法
JPH0310380A (ja) 画像変換回路
JP5248482B2 (ja) プログラマブルデータ処理回路
JPH05216982A (ja) デジタルカラー画像表示装置及びカラー量子化方法
JP3903557B2 (ja) データ変換装置および画像生成装置
US7042452B1 (en) Triangle coverage estimation and edge-correct tessellation
JP4796148B2 (ja) テーブルルックアップ乗算器
Oh et al. FPGA-based fast image warping with data-parallelization schemes
JP2014192541A (ja) 色変換装置、色変換方法、及び電子機器
JPH11224332A (ja) アフィン変換のための加算的補間システムおよび方法
US20040240755A1 (en) Method and apparatus data re-arrangement
JP3055024B2 (ja) 画像デ―タの転送装置
JPS586977B2 (ja) アドレス指定回路
JP4661112B2 (ja) 画像情報処理装置及び画像情報処理方法
JP2002354276A (ja) 色変換方法および色変換装置
JPH057816Y2 (zh)
JPS6125192B2 (zh)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Country or region after: China

Address after: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Ningbo City, Zhejiang Province, 315201

Applicant after: Aixin Yuanzhi Semiconductor Co.,Ltd.

Address before: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Zhenhai District, Ningbo City, Zhejiang Province, 315201

Applicant before: Aixin Yuanzhi Semiconductor (Ningbo) Co.,Ltd.

Country or region before: China

CB02 Change of applicant information