CN108228136A - 基于优化查找表法的对数函数计算的方法及装置 - Google Patents

基于优化查找表法的对数函数计算的方法及装置 Download PDF

Info

Publication number
CN108228136A
CN108228136A CN201711291989.6A CN201711291989A CN108228136A CN 108228136 A CN108228136 A CN 108228136A CN 201711291989 A CN201711291989 A CN 201711291989A CN 108228136 A CN108228136 A CN 108228136A
Authority
CN
China
Prior art keywords
data
bit
logarithmic function
shift
look
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.)
Granted
Application number
CN201711291989.6A
Other languages
English (en)
Other versions
CN108228136B (zh
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.)
Shanghai IC R&D Center Co Ltd
Chengdu Image Design Technology Co Ltd
Original Assignee
Shanghai Integrated Circuit Research and Development Center Co Ltd
Chengdu Image Design Technology 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 Shanghai Integrated Circuit Research and Development Center Co Ltd, Chengdu Image Design Technology Co Ltd filed Critical Shanghai Integrated Circuit Research and Development Center Co Ltd
Priority to CN201711291989.6A priority Critical patent/CN108228136B/zh
Publication of CN108228136A publication Critical patent/CN108228136A/zh
Application granted granted Critical
Publication of CN108228136B publication Critical patent/CN108228136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

本发明提供一种基于优化查找表法的对数函数计算的方法及装置,方法包括:接收输入数据,若符合预定定义域则将输入数据转化为M位二进制数据;将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据,总移位位数的二进制式位宽为m,其中,n、m为整数,2m‑1<M≤2m;将总移位位数的二进制式拼接到输出结果的高m位上表征整数部分,根据查找表将n位数据扩展至N位拼接到输出结果的低N位上表征小数部分,结合所述整数部分和所述小数部分获得输出结果共m+N位,其中,N为正整数;使乘数与查找表输出相乘获得计算结果。本发明提供的装置及方法优化对数函数的计算。

Description

基于优化查找表法的对数函数计算的方法及装置
技术领域
本发明涉及数字集成电路领域,尤其涉及一种基于优化查找表法的对数函数计算的方法及装置。
背景技术
当前,基于熵值的自动曝光技术,能够自动寻找关注区域,进而自动调整各分区的权值,使得确定的曝光时间和增益更加合理。
但如公式(1)所示,其为对一个区域内图像熵值E的计算公式。pi为不同灰度级出现的概率。基于熵值的自动曝光计算,不可避免的涉及对指数函数的计算。但对于数字电路,加、减或移位操作相对简单,乘法、指数或对数运算,对应电路的复杂度将直线上升。因此,考虑综合考虑成本、时间,基于熵值的自动曝光技术设计中,在保证计算的精度情况下,对数函数的简约设计必不可少。
现有的对于对数函数的对应数字电路设计方案,主要分为四类:
1)基于查找表的指数函数计算方法,该方法的计算精度受查找表的大小直接控制,且随计算范围和计算精度的提升,查找表的大小成指数上升。
2)基于查找表的多项式逼近方法,该方法在运算过程中,需要较大的参数存储空间;需要较为复杂的乘法电路;同时,随着精度的提高和计算范围的拓宽,参数和乘法电路的复杂度成指数上升。
3)基于泰勒级数展开的指数函数计算方法,在一定的范围内,能够获得较高的计算精度,但随着计算范围的拓宽,与多项式逼近法相似,所需的参数存储空间和乘法电路的复杂度指数上升。
4)CORDIC(Coordinate Rotation Digital Computer,坐标旋转数字计算方法)算法,能够综合计算精度和电路复杂度的矛盾,但CORDIC算法系统设计复杂度较高,设计周期较长。对精度要求并不高的基于熵值的自动曝光计算,使用CORDIC算法显然并非完全合适。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种基于优化查找表法的对数函数计算的方法及装置,以优化查找表法的对数函数计算。
根据本发明的一个方面,提供一种基于优化查找表法的对数函数计算的方法,包括:接收输入数据,判断所述输入数据是否符合预定定义域,若符合则将输入数据转化为M位二进制数据,其中,M为正整数;将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据,总移位位数的二进制式位宽为m,其中,n、m为整数,2m-1<M≤2m;将总移位位数的二进制式拼接到输出结果的高m位上表征整数部分,根据查找表将n位数据扩展至N位拼接到输出结果的低N位上表征小数部分,结合所述整数部分和所述小数部分获得输出结果共m+N位,其中,N为正整数;根据不同底数的对数函数确定乘数,使所确定的乘数与所述查找表输出相乘,以获得计算结果。
可选地,所述将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据的步骤包括:以q位为单位,将M位二进制数据右移,将q位移出的数据中的高n位作为n位第一传输数据存入第一寄存器中,直到M位二进制数据中除了最低q位外,其余所有位数皆为0,将最低q位数据作为q位第二传输数据,并通过移位计数器获取累计的第一移位位数的二进制式,其中,q为正整数,所述第一寄存器的位宽大于等于n;将第二传输数据右移第二移位位数使得最高位位移至第0位,移出的数据自高位存入所述第一寄存器中以刷新所述第一寄存器中的数据,将刷新后的所述第一寄存器的数据作为所述n位数据,将第二移位位数的二进制式与第一移位位数的二进制式相加作为所述总移位位数的二进制式,其中,所述第一移位位数和第二移位位数的二进制式位宽为m,所述移位计数器的位宽大于等于m。
可选地,q为8。
可选地,所述乘数为loga2的定点化值,a为所要计算的对数函数的底数。
可选地,所述定点化值的量化位宽为s,所述乘数为loga2乘以2的s次方,其中,s为正整数,s越大所述定点化值精度越高。
可选地,当所要计算的对数函数的底数为2时,所述乘数为1。
可选地,查找表的大小为2n
可选地,所述方法用于基于熵值的自动曝光算法。
根据本发明的又一方面,还提供一种基于优化查找表法的对数函数计算的装置,包括:数据判断及转化模块,用于接收输入数据,判断所述输入数据是否符合预定定义域,若符合则将输入数据转化为M位二进制数据,其中,M为正整数;移位模块,用于将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据,总移位位数的二进制式位宽为m,其中,n、m为整数,2m-1<M≤2m;查找表和数据拼接电路模块,用于将总移位位数的二进制式拼接到输出结果的高m位上表征整数部分,根据查找表将n位数据扩展至N位拼接到输出结果的低N位上表征小数部分,结合所述整数部分和所述小数部分获得输出结果共m+N位,其中,N为正整数;系数相乘模块,用于根据不同底数的对数函数确定乘数,使所确定的乘数与所述查找表输出相乘,以获得计算结果。
可选地,所述移位模块包括:移位电路模块,用于以q位为单位,将M位二进制数据右移,将q位移出的数据中的高n位作为n位第一传输数据存入第一寄存器中,直到M位二进制数据中除了最低q位外,其余所有位数皆为0,将最低q位数据作为q位第二传输数据,并通过移位计数器获取累计的第一移位位数的二进制式,其中,q为正整数,所述第一寄存器的位宽大于等于n;余位数据移位和移位累加电路模块,用于将第二传输数据右移第二移位位数使得最高位位移至第0位,移出的数据自高位存入所述第一寄存器中以刷新所述第一寄存器中的数据,将刷新后的所述第一寄存器的数据作为所述n位数据,将第二移位位数的二进制式与第一移位位数的二进制式相加并作为所述总移位位数的二进制式,其中,所述第一移位位数和第二移位位数的二进制式位宽为m,所述移位计数器的位宽大于等于m。
可选地,还包括:状态机模块,控制数据判断及转化模块、移位模块、查找表和数据拼接电路模块及系数相乘模块。
可选地,当所要计算的对数函数的底数为2时,所述系数相乘模块不工作。
可选地,所述系数相乘模块利用流水线技术进行乘法计算。
本发明考虑到数字电路的特殊性,所有数据都是二进制表示,对于任意底数对数函数可转化为底数为2的指数函数,如公式(2)。进一步的,对于计算区域即公式(3),都能够对其进行分割为为公式(4)所示。
y=logax=loga2·log2x (2)
1≤x<∞ (3)
2k≤x<2k+1,k=0,1,2... (4)
根据公式(2)、(3)、(4),可得公式(5)。
y=logax=loga2·(log2x′+k),1≤x′<2 (5)
即,对于计算区域(3)任意数值任意底数a的对数函数运算,都能回归为求解区间[1,2),底数为2的对数函数运算,并在此基础上进行一定程度的扩展和偏移,然后乘以系数loga2,最终得出结果。
相比现有技术,本发明通过将预定定义域设置为x>=1的整数,且对于x的对数计算回归为在区间[1,2)上的查表并添加相应偏差的方案,
其优势在于:
1)保留查找表法易于实现的特点,提升了查找表法用于计算对数函数的计算域。由于对对数函数在整个计算域进行了分段,打断了查找表大小与计算区域之间的联系,相同的查找表能够在在保证量化精度的同时,在每一个分段中使用,这大大缩小了查找表,使得查找表法的计算区域得到有效扩展。
2)对于不同精度,不同范围的对数函数运算,存在较好的扩展性。对于任意精度要求的对数运算,增加用于量化每个分段的位数,即可实现量化精度的提升,逻辑简单且易于实现。
3)适应于高速电路的要求。由于采用查找表逻辑,寻址数据拼接逻辑简单。最后一步的系数调整,虽然需要引入乘法,但可以使用流水线(pipeline)技术加以解决。同时由于通常计算使用的底数相对确定,可以通过固化的计算电路进一步加速计算。因此该电路结构能够在极高的时钟下运行。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的基于优化查找表法的对数函数计算的方法的流程图。
图2示出了根据本发明实施例的基于优化查找表法的对数函数计算的装置的示意图。
图3示出了根据图2中状态机的计算状态转移图。
图4示出了根据本发明具体实施例的基于优化查找表法的对数函数计算的装置的示意图。
图5示出了根据本发明具体实施例的基于优化查找表法的对数函数计算过程的数据变化示意图。
图6示出了根据本发明具体实施例的查找表低位输入至低位输出的定点化对应关系。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本发明的目的在于克服现有基于查找表的对数函数计算电路中,查找表大小与计算精度和计算范围的矛盾。通过对整个计算范围中进行分段的方法,使得同一个查找表作用于不同的分段,以此保证计算区域扩展也不会影响查找表的大小。只需提高一个查找表的大小,就能提高整个计算域的计算精度,从而降低电路设计难度,提升计算速度。
下面将说明本发明的原理。由于数字电路的特殊性,所有数据都是二进制表示,因此分段的标准也是2的幂次,这样有助于对电路复杂度进行缩减。对于任意底数对数函数可转化为底数为2的指数函数,如公式(2)。进一步的,对于计算区域即公式(3),都能够对其进行分割为为公式(4)所示。
y=logax=loga2·log2x (2)
1≤x<∞ (3)
2k≤x<2k+1,k=0,1,2... (4)
根据公式(2)、(3)、(4),可得公式(5)。
y=logax=loga2·(log2x′+k),1≤x′<2 (5)
即,对于计算区域(3)任意数值任意底数a的对数函数运算,都能回归为求解区间[1,2),底数为2的对数函数运算,并在此基础上进行一定程度的扩展和偏移,然后乘以系数loga2,最终得出结果。
本发明将预定定义域设置为x>=1的整数,且对于x的对数计算回归为在区间[1,2)上的查表并添加相应偏差的方案。计算基本流程如图1所示。
图1示出了根据本发明实施例的基于优化查找表法的对数函数计算的方法的流程图。图1共示出7个步骤:
步骤S101:接收到数据和计算开始请求,判断输入数据是否满足预定定义域的要求。
若步骤S101判断输入数据满足预定定义域的要求,则可拉起反馈信号,作为交互,使得外部不再发出数据请求,并继续执行步骤S102。
若步骤S101判断输入数据不满足预定定义域的要求,则可无视计算请求,继续接收新的数据和数据请求。
步骤S102:将输入数据转换为M位二进制数据。
步骤S103:对转化完毕的数据除了最低q位(例如8bit)的数据进行比较。
若除了最低q位外所有bit为都为0,则跳转到步骤S105。
若除了最低q位外存在不为0的bit位,则执行步骤S104,以q位为单位的进行数据移位,将移出的数据位中的高n位存入第一寄存器(位宽大于等于n)中,并于移位计数器(位宽大于等于m)中累计第一移位位数。其中,2m-1<M≤2m,m为第一移位位数的位宽。
步骤S105,将最低q位数据中的数据进行比较,确定最高为1的bit位,将最低q位数据右移第二移位位数(即将最高为1的bit位右移至0bit位)。具体而言,将移出的数据移入第一寄存器中,保留在第一寄存器中的n位数据,作为下一步查找表的输入备用。将步骤S105中的第二移位位数累计至步骤S103的移位计数器的第一移位位数中作为总移位位数。第二移位位数和总移位位数的二进制式位宽都为m。移位和累加计算完毕后,跳转到S106。
上述步骤S103至步骤S105实际上,实现了将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数(二进制式位宽为m)及该M位二进制数据中该最高位右相邻的n位数据。
步骤S106:将第一寄存器的n位数据输入到查找表中,得到一个N位的输出值,将移位计数器中的总移位位数与N位输出值进行拼接,即得到输入数值对应底数为2的对数函数结果。若只需求得各输入值的比例关系,或所需求解的对数函数底数就是2,则输出结果即可。若需要求解准确的数值,且底数不为2,跳转到步骤S107。其中,n的大小决定查找表的大小2n,N的大小决定量化的精度,进一步的决定最后输出数据的bit位。
步骤S107:将S106中计算出的底数为2的对数函数结果乘以系数loga2的定点化值,即可求得最终的结果。系数loga2的定点化值可根据项目需求而定。其中,系数loga2的量化位宽为s(即系数loga2的定点化值为loga2与2的s次方的乘积),与总移位位数的二进制式位宽m和查找表量化位宽N共同决定输出结果的大小。当计算底数为2的对数函数时,步骤S106输出的即为计算结果,其总位宽为m+N。
根据上述步骤,本发明可仅采用两个寄存器即可完成输入数据的移位和移位数的计数。
图2示出了根据本发明实施例的基于优化查找表法的对数函数计算的装置的示意图。图2所示的装置优选地由电路结构来实现。在一些变化例中,图2所示的装置可由软件方式、软硬结合的方式来实现,本发明并非以此为限。图2共示出了6个模块,其中:
数据判断和转化模块202用于完成数据是否在预定定义域(例如,预定定义域为大于等于1的整数)内的判断。数据判断和转化模块202通过信号chang_en受状态机模块201控制。若数据判断和转化模块202判断的数据在预定定义域内,则通过信号check_res返回状态机模块201,直接影响整体的工作状态。
移位模块用于将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数(二进制式位宽为m)及该M位二进制数据中该最高位右相邻的n位数据,其中,n、m为整数。移位模块可以包括移位电路模块203和余位数据移位和移位累加电路模块204。
移位电路模块203例如可以是8bit移位电路模块。移位电路模块203受状态机模块201控制,用于进行每次8bit的移位,同时完成对移位位数的累计和是否需要继续移位的判定。由于对于不同的输入数据,是否需要进行8bit移位或者需要进行8bit移位的次数各不相同,移位电路模块203通过信号sh_finish对状态机模块201进行反馈,完成对不同数据的控制。该模块可能对数据重复进行移位,并对移位位数进行累加获得total_sh。
余位数据移位和移位累加电路模块204受状态机模块201控制,用于完成低8bit内的数据位移。同时将移位位数记录并累加入total_sh中,获得最终输出总的位移量sh_bits和查找表的输入值lok_tab。
查找表和数据拼接电路模块205受状态机模块201控制。通过查找表完成对应数据的译码输出,结合数据移位位数,进行数据拼接。最终输出底数为2的对数函数的输出结果。
系数相乘电路206受状态机控制。系数相乘电路206例如为系数loga2相乘电路206。当求解对数函数底数为2时,可省略该模块,或者只进行延迟输出而不进行计算。当求解其余底数的对数函数时,利用该模块进行乘数(即系数loga2的定点化值)与查找表输出数据的相乘计算。系数loga2的量化精度决定最后输出的数据位宽、乘法器的级数和整体延迟(delay)时间。具体而言,data_ready信号作为状态机模块201能够接受新的data_valid的指示信号的同时,也标定look_o的数据有效情况。因此保证信号look_o和信号data_ready同步。系数相乘电路受信号data_ready控制。在一些实施例中,可以使用流水线(pipeline)技术加以解决。此外,由于通常计算使用的底数相对确定,可以通过固化的计算电路进一步加速计算。因此该电路结构能够在极高的时钟下运行。
状态机模块201用于完成对上述各模块的控制,在完成对数据判断和转化模块202、移位电路模块203的两个模块的控制中,存在交互。接收到信号data_valid后开始工作,完成计算或将数据送入系数乘法电路时,data_ready信号使能,标定能够接收新的命令和数据有效。具体跳转情况如图3所示。
图3示出了根据图2中状态机的计算状态转移图。
在对应step0的步骤中,S_CHECK在数据判断和转化模块202执行数据判断和转换,若数据符合预定定义域,则根据输入数据除了最低p位的值判断到step1执行移位S_SHIFT_8或到step2执行余位数据移位S_SHIFT_BIT。其中,step1的步骤可循环执行直到数据除了最低p位,其他位数皆为0。step2的步骤之后执行step3的步骤,根据S_SHIFT_BIT的输出在S_LOOK执行查表。若要计算的对数函数的底数为2则Step4的步骤空转;若要计算的对数函数的底数不为2则在step4的步骤中,将S_LOOK的输出与loga2的定点化值相乘。
下面结合图4至图6描述本发明的一个具体实施例。图4示出了根据本发明具体实施例的基于优化查找表法的对数函数计算的装置的示意图。图5示出了根据本发明具体实施例的基于优化查找表法的对数函数计算过程的数据变化示意图。图6示出了根据本发明具体实施例的查找表低位输入至低位输出的定点化对应关系。
如图4所示。以一个32bit的十六进制数据0218_9F99为例,进行底数为e的对数函数运算。查找表量化位宽为10bit。系数的量化精度为10bit。即,M=32,m=5,N=10,s=10。图5为32bit的十六进制数据0218_9F99计算过程和对应结果,图中虚线分割数据的整数和小数部分,左侧表征整数,右侧表征小数。
具体而言,当图4中信号data_ready为0时,表征系统已经准备完毕。外部输入工作请求信号data_valid=1,同时输入对应数据data_in=32’b0000_0010_0001_1000_1001_1111_1001_1001。数据到达数据判断和转化模块,由于data_in显然大于1,32bit的十六进制数据0218_9F99对应二进制数据为0000_0010_0001_1000_1001_1111_1001_1001。
Step0:通过数据判断和转化模块202,对data_in进行判断,如果大于等于1,不做任何变化直接输出;如果等于0,直接判定无法进行运算。输出数据data_c=0000_0010_0001_1000_1001_1111_1001_1001(32位二进制数据)。
Step1:输入数据在8bit移位电路模块203中每个时钟信号进行以8bit为单位的右移,直到除最低8bit外所有bit位都为0为止。由于对于不同输入数据,需要移动的次数各不相同,因此在step1中数据将会进行反复运算,不断进行移位。移出的数据将会存入4位第一寄存器中作为第一传输数据sh_look。如图5所示,在经过3次8bit移位后,只剩下最低8bit的数据不为0,将其作为8位的第二传输数据sh_left,并输出。Sh_look的值为4位二进制数据0001。移位寄存器中存储的移位位数total_sh=11000(5位二进制数据)。
Step2:余位数据移位和移位累加电路模块204输入为total_sh,sh_left,sh_look,对sh_left对应的数据进行计算并移位,使sh_left中数据的最高位移至第0bit位。移动的位数与total_sh相加,并存入sh_bits中输出。sh_left移出的数据,移入第一寄存器中,并将保留在第一寄存器中的数据作为第三传输数据lok_tab(即n位数据)。如下图5所示,移位寄存器中的总移位位数为sh_bits=11001(5位二进制数据),查找表输入值lok_tab=0000(4位二进制数据)。
Step3:在查找表和数据拼接电路模块205进行查找表和数据拼接。Sh_bits不做运算,直接拼接到查找表输出的高bit位上,作为整数部分。查找表的输出作为低bit位,表征数据的小数部分。与图6所示的查找表中,查找对应低4bit位的,10bit位的输出。查找表和数据拼接电路模块205输出数据为look_o=110_0100_0000_0000(15位二进制数据)。其中低10bit为查找表输出结果,表征小数部分。高5bit为移位输出,表征整数部分。
Step4:在系数loga2相乘模块206对于不同底数的对数函数进行转化。在本实施例中,a为e,乘数为ln2=0.6931的12bit定点化值。定点化的精度与最后结果的数据精度直接相关。得到27bit的数据输出finish_o,其中高5bit表征整数部分,余下bit位表征小数部分。
输入数据0218_9F99(32位16进制数据)直接进行对数运算结果为:17.3757。
经过如图4至图6提供的底数为e的运算方法和电路结构后得到4547FC00(27位16进制数据),对应数据为17.3279。
两者误差较小。同时若要进一步增加精度,只需扩大查找表的大小和定点化精度,扩大系数loga2的定点化位宽(即定点化值的量化位宽)即可。如果仅仅计算底数为2的对数函数,将获得更高的精确度。
以上仅仅是示意性地描述本发明的一个或多个实施例,在不违背本发明构思的前提下,不同的变化例都在本发明的保护范围之内。
相比现有技术,本发明的优势在于:
1)保留查找表法易于实现的特点,提升了查找表法用于计算对数函数的计算域。由于对对数函数在整个计算域进行了分段,打断了查找表大小与计算区域之间的联系,相同的查找表能够在在保证量化精度的同时,在每一个分段中使用,这大大缩小了查找表,使得查找表法的计算区域得到有效扩展;
2)对于不同精度,不同范围的对数函数运算,存在较好的扩展性。对于任意精度要求的对数运算,增加用于量化每个分段的位数,即可实现量化精度的提升,逻辑简单且易于实现;
3)适应于高速电路的要求。由于采用查找表逻辑,寻址数据拼接逻辑简单。最后一步的系数调整,虽然需要引入乘法,但可以使用流水线(pipeline)技术加以解决。同时由于通常计算使用的底数相对确定,可以通过固化的计算电路进一步加速计算。因此该电路结构能够在极高的时钟下运行。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (13)

1.一种基于优化查找表法的对数函数计算的方法,其特征在于,包括:
接收输入数据,判断所述输入数据是否符合预定定义域,若符合则将输入数据转化为M位二进制数据,其中,M为正整数;
将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据,总移位位数的二进制式位宽为m,其中,n、m为整数,2m-1<M≤2m
将总移位位数的二进制式拼接到输出结果的高m位上表征整数部分,根据查找表将n位数据扩展至N位拼接到输出结果的低N位上表征小数部分,结合所述整数部分和所述小数部分获得输出结果共m+N位,其中,N为正整数;
根据不同底数的对数函数确定乘数,使所确定的乘数与所述查找表输出相乘,以获得计算结果。
2.如权利要求1所述的基于优化查找表法的对数函数计算的方法,其特征在于,所述将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据的步骤包括:
以q位为单位,将M位二进制数据右移,将q位移出的数据中的高n位作为n位第一传输数据存入第一寄存器中,直到M位二进制数据中除了最低q位外,其余所有位数皆为0,将最低q位数据作为q位第二传输数据,并通过移位计数器获取累计的第一移位位数的二进制式,其中,q为正整数,所述第一寄存器的位宽大于等于n;
将第二传输数据右移第二移位位数使得最高位位移至第0位,移出的数据自高位存入所述第一寄存器中以刷新所述第一寄存器中的数据,将刷新后的所述第一寄存器的数据作为所述n位数据,将第二移位位数的二进制式与第一移位位数的二进制式相加作为所述总移位位数的二进制式,其中,所述第一移位位数和第二移位位数的二进制式位宽为m,所述移位计数器的位宽大于等于m。
3.如权利要求2所述的基于优化查找表法的对数函数计算的方法,其特征在于,q为8。
4.如权利要求1至3任一项所述的基于优化查找表法的对数函数计算的方法,其特征在于,所述乘数为loga2的定点化值,a为所要计算的对数函数的底数。
5.如权利要求4所述的基于优化查找表法的对数函数计算的方法,其特征在于,所述定点化值的量化位宽为s,所述乘数为loga2乘以2的s次方,其中,s为正整数,s越大所述定点化值精度越高。
6.如权利要求4所述的基于优化查找表法的对数函数计算的方法,其特征在于,当所要计算的对数函数的底数为2时,所述乘数为1。
7.如权利要求1至3任一项所述的基于优化查找表法的对数函数计算的方法,其特征在于,查找表的大小为2n
8.如权利要求1至3任一项所述的基于优化查找表法的对数函数计算的方法,其特征在于,所述方法用于基于熵值的自动曝光算法。
9.一种基于优化查找表法的对数函数计算的装置,其特征在于,包括:
数据判断及转化模块,用于接收输入数据,判断所述输入数据是否符合预定定义域,若符合则将输入数据转化为M位二进制数据,其中,M为正整数;
移位模块,用于将M位二进制数据右移,直至该M位二进制数据最高位位移至第0位,获得总移位位数及该M位二进制数据中该最高位右相邻的n位数据,总移位位数的二进制式位宽为m,其中,n、m为整数,2m-1<M≤2m
查找表和数据拼接电路模块,用于将总移位位数的二进制式拼接到输出结果的高m位上表征整数部分,根据查找表将n位数据扩展至N位拼接到输出结果的低N位上表征小数部分,结合所述整数部分和所述小数部分获得输出结果共m+N位,其中,N为正整数;
系数相乘模块,用于根据不同底数的对数函数确定乘数,使所确定的乘数与所述查找表输出相乘,以获得计算结果。
10.如权利要求9所述的基于优化查找表法的对数函数计算的装置,其特征在于,所述移位模块包括:
移位电路模块,用于以q位为单位,将M位二进制数据右移,将q位移出的数据中的高n位作为n位第一传输数据存入第一寄存器中,直到M位二进制数据中除了最低q位外,其余所有位数皆为0,将最低q位数据作为q位第二传输数据,并通过移位计数器获取累计的第一移位位数的二进制式,其中,q为正整数,所述第一寄存器的位宽大于等于n;
余位数据移位和移位累加电路模块,用于将第二传输数据右移第二移位位数使得最高位位移至第0位,移出的数据自高位存入所述第一寄存器中以刷新所述第一寄存器中的数据,将刷新后的所述第一寄存器的数据作为所述n位数据,将第二移位位数的二进制式与第一移位位数的二进制式相加并作为所述总移位位数的二进制式,其中,所述第一移位位数和第二移位位数的二进制式位宽为m,所述移位计数器的位宽大于等于m。
11.如权利要求9或10所述的基于优化查找表法的对数函数计算的装置,其特征在于,还包括:
状态机模块,控制数据判断及转化模块、移位模块、查找表和数据拼接电路模块及系数相乘模块。
12.如权利要求9或10所述的基于优化查找表法的对数函数计算的装置,其特征在于,当所要计算的对数函数的底数为2时,所述系数相乘模块不工作。
13.如权利要求9或10所述的基于优化查找表法的对数函数计算的装置,其特征在于,所述系数相乘模块利用流水线技术进行乘法计算。
CN201711291989.6A 2017-12-08 2017-12-08 基于优化查找表法的对数函数计算的方法及装置 Active CN108228136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711291989.6A CN108228136B (zh) 2017-12-08 2017-12-08 基于优化查找表法的对数函数计算的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711291989.6A CN108228136B (zh) 2017-12-08 2017-12-08 基于优化查找表法的对数函数计算的方法及装置

Publications (2)

Publication Number Publication Date
CN108228136A true CN108228136A (zh) 2018-06-29
CN108228136B CN108228136B (zh) 2021-06-15

Family

ID=62654026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711291989.6A Active CN108228136B (zh) 2017-12-08 2017-12-08 基于优化查找表法的对数函数计算的方法及装置

Country Status (1)

Country Link
CN (1) CN108228136B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445748A (zh) * 2018-09-28 2019-03-08 北京空间飞行器总体设计部 一种快速求取中值方法及系统
CN110084362A (zh) * 2019-03-08 2019-08-02 中国科学院计算技术研究所 一种面向神经网络的对数量化装置及方法
CN111385578A (zh) * 2018-12-28 2020-07-07 北京图森智途科技有限公司 一种应用于fpga的数据解压缩方法、成像设备和汽车
CN111581594A (zh) * 2020-04-28 2020-08-25 广州英诺维科技有限公司 一种超声增益计算快速求解方法和系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095496A1 (en) * 2004-11-01 2006-05-04 Luke Fay Power of two multiplication engine
CN1838024A (zh) * 2005-09-09 2006-09-27 威盛电子股份有限公司 对数处理系统和方法
CN1945488A (zh) * 2006-11-07 2007-04-11 北京中星微电子有限公司 一种求定点数字信号常用函数值的方法及装置
CN101620453A (zh) * 2008-07-02 2010-01-06 昂纳信息技术(深圳)有限公司 一种快速高精度对数转换装置和方法
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN103945226A (zh) * 2014-03-06 2014-07-23 京东方科技集团股份有限公司 一种视频解码的方法及其装置
US20150113027A1 (en) * 2013-10-22 2015-04-23 National Tsing Hua University Method for determining a logarithmic functional unit
US9170776B2 (en) * 2009-01-30 2015-10-27 Intel Corporation Digital signal processor having instruction set with a logarithm function using reduced look-up table
US9207910B2 (en) * 2009-01-30 2015-12-08 Intel Corporation Digital signal processor having instruction set with an xK function using reduced look-up table

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095496A1 (en) * 2004-11-01 2006-05-04 Luke Fay Power of two multiplication engine
CN1838024A (zh) * 2005-09-09 2006-09-27 威盛电子股份有限公司 对数处理系统和方法
CN1945488A (zh) * 2006-11-07 2007-04-11 北京中星微电子有限公司 一种求定点数字信号常用函数值的方法及装置
CN101620453A (zh) * 2008-07-02 2010-01-06 昂纳信息技术(深圳)有限公司 一种快速高精度对数转换装置和方法
US9170776B2 (en) * 2009-01-30 2015-10-27 Intel Corporation Digital signal processor having instruction set with a logarithm function using reduced look-up table
US9207910B2 (en) * 2009-01-30 2015-12-08 Intel Corporation Digital signal processor having instruction set with an xK function using reduced look-up table
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
US20150113027A1 (en) * 2013-10-22 2015-04-23 National Tsing Hua University Method for determining a logarithmic functional unit
CN103945226A (zh) * 2014-03-06 2014-07-23 京东方科技集团股份有限公司 一种视频解码的方法及其装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445748A (zh) * 2018-09-28 2019-03-08 北京空间飞行器总体设计部 一种快速求取中值方法及系统
CN111385578A (zh) * 2018-12-28 2020-07-07 北京图森智途科技有限公司 一种应用于fpga的数据解压缩方法、成像设备和汽车
CN110084362A (zh) * 2019-03-08 2019-08-02 中国科学院计算技术研究所 一种面向神经网络的对数量化装置及方法
CN111581594A (zh) * 2020-04-28 2020-08-25 广州英诺维科技有限公司 一种超声增益计算快速求解方法和系统
CN111581594B (zh) * 2020-04-28 2023-05-09 中诺微泰医疗科技(苏州)有限公司 一种超声增益计算快速求解方法和系统

Also Published As

Publication number Publication date
CN108228136B (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN108228136A (zh) 基于优化查找表法的对数函数计算的方法及装置
CN112085189B (zh) 一种神经网络的量化参数确定方法及相关产品
EP3674883B1 (en) Multiplication circuit, system on chip, and electronic device
TWI698759B (zh) 曲線函數裝置及其操作方法
CN103959192A (zh) 用于估算超越函数的数学电路
US20190146756A1 (en) Segment divider, segment division operation method, and electronic device
JP2003513582A (ja) バイナリインクリメンタを有するグレイコードカウンタとそれを動作させる方法
WO2021057085A1 (zh) 一种基于混合精度存储的深度神经网络加速器
US12008467B2 (en) Asymmetric quantization for compression and for acceleration of inference for neural networks
KR100398859B1 (ko) 데이터 연산 처리 장치
CN108109166B (zh) 用于自动曝光中图像熵值的计算方法及装置
CN102566965B (zh) 一种误差平坦的浮点数对数运算装置
WO2022001722A1 (zh) 一种用于计算正弦或余弦函数的实现方法及装置
CN116932202B (zh) 一种访存方法、处理器、电子设备及可读存储介质
CN115146769A (zh) 一种基于范围可寻址查找表计算tanh函数的数字电路模块
CN115483934A (zh) 用于多方安全计算的数据转换方法和装置
CN111984057B (zh) 基于gpu的数字nco高精度并行实现方法
CN1936830A (zh) 小数取幂的数字实现
CN111580867B (zh) 一种用于fft运算的块浮点处理方法及装置
CN116909946B (zh) 一种访存方法、装置、电子设备及可读存储介质
CN108174114A (zh) 熵值计算装置及熵值计算方法
CN220208247U (zh) 除法运算电路
CN113721885B (zh) 一种基于cordic算法的除法器
US20050125479A1 (en) Hardware for performing an arithmetic function
JP7206531B2 (ja) メモリデバイスおよびその動作方法

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
GR01 Patent grant
GR01 Patent grant