CN111684413B - 计算处理器和计算方法 - Google Patents
计算处理器和计算方法 Download PDFInfo
- Publication number
- CN111684413B CN111684413B CN201980005600.8A CN201980005600A CN111684413B CN 111684413 B CN111684413 B CN 111684413B CN 201980005600 A CN201980005600 A CN 201980005600A CN 111684413 B CN111684413 B CN 111684413B
- Authority
- CN
- China
- Prior art keywords
- value
- processor
- perr
- error
- err
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 79
- 230000003044 adaptive effect Effects 0.000 claims abstract description 18
- 230000006978 adaptation Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 5
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/08—Powers or roots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/10—Logarithmic or exponential functions
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)
- Complex Calculations (AREA)
- Power Sources (AREA)
- Studio Devices (AREA)
Abstract
一种用于基于指数值a由数字输入值(IN)确定数字输出值(OUT)的计算处理器,其中,该处理器包括第一计算块(CB1)、第二计算块(CB2)和最终计算块(CBF)。第一计算块(CB1)根据输入值的有效部分的最高有效位的位置来初始化中间值和误差值。第二计算块配置为重复执行:计数器值的递增;基于误差值确定幂误差值;以及如果幂误差值大于或等于误差阈值,则通过将中间值乘以自适应值来调整中间值y并将误差值设置为幂误差值除以基值;直到满足退出标准为止。如果幂误差值小于误差阈值,则将误差值设置为幂误差值。最终计算块配置为将输出值设置为中间值。
Description
本公开涉及均用于基于指数值由数字输入值确定数字输出值的一种计算处理器和一种计算方法。
背景技术
在几种应用中,特别是在传感器应用中,连续处理传感器信号是必需的。例如,一些应用或标准需要使用给定的公式处理从传感器电路中读出的传感器值,该公式可以包括xa形式的指数项,其中x是输入值,a是指数值。
这种计算通常使用常规微处理器执行,该微处理器已经实现特定标准的计算算法或已经实现具有针对每个可能输入值的预计算的值的查找表。
尽管后一种方法需要半导体芯片上的大量内存和/或面积,但是微处理器计算算法的速度可能不足和/或是任意的。
发明内容
本公开提供一种用于确定指数函数值的改进的计算构思。
改进的计算构思基于的思想是,误差因子能够被引入到以以下形式表示的指数函数中:
(1) y=xa,
其中,x表示输入值,a表示特别地固定指数值,y表示要计算的输出值。发明人已经发现,通过从误差因子或误差值的初始设置开始实现多次迭代,能够高精度地确定输出值。特别地,能够通过多次迭代限定要达到的精度。输出值由中间值确定,该中间值在初始设置之后的迭代过程中精确化。
例如,改进的构思包括第一计算块,该第一计算块用于初始化用于在第二计算块中执行迭代的值。最终计算块可以实现为由第二计算块提供的中间值确定输出值。
例如,根据改进的计算构思的用于基于指数值a由数字输入值IN确定数字输出值的计算处理器包括第一计算块、第二计算块和最终计算块。第一计算块配置为确定指示输入值IN的有效部分的最高有效位MSB的位置的位置编号n。例如,最低有效位LSB表示位置编号0,使得对于8位输入值,最高可能位置编号将是7。通常,位置编号被编号为0至m-1,其中m是输入值的字长。
第一计算块还配置为设置中间值y=ba·n,其中b为基值,设置误差值err=IN/bn以及初始化计数器值k。例如,计数器值k被初始化为k=0。
第二计算块配置为执行以下每一个,直到满足退出标准为止:将计数器值k递增1、用perr=errb确定幂误差值perr。如果幂误差值perr大于或等于误差阈值,则通过将中间值y乘以取决于计数器值k的自适应值来调整中间值。如果幂误差值perr大于或等于误差阈值,则将误差值err设置为幂误差值perr除以基值b。如果幂误差值perr小于误差阈值,则将误差值err设置为幂误差值perr。
最终计算块配置为将输出值设置为中间值y。相应地,利用第二计算块中的每次重复,基于误差值err或幂误差值perr的实际值以及计数器值k对误差值和中间值y进行精确化。因此,利用每次重复,误差值err收敛到期望的最终误差值,而中间值y收敛到该计算的精确值。
退出标准可以是达到限定的值或范围的误差值,该误差值可以在每个迭代步骤之后检查。在这种情况下,对于不同的输入值,迭代次数可以是变化的。
在一些实现方式中,退出标准可以是第二计算块的给定的迭代次数,使得对于每个输出值,执行所述迭代次数。在这种实现方式中,每个输入值IN或输出值的计算时间是恒定的。如果输入值按顺序处理,其中输入值以给定的速率提供,则这可以是有用的。
例如,第二计算块配置为将自适应值确定为ba/b^k。第二计算块可以包括由用硬件描述语言的编程产生的自适应查找表和/或固定的自适应电路,用于确定自适应值。如果使用自适应查找表实现,则该表仅需要针对从1至最大迭代次数的k的有限数量个条目。
例如,如果作为专用集成电路ASIC实现,则可以将相同的有限数量的自适应值表示为固定硬件值,该硬件值可以由用硬件描述语言,例如用已知为VHDL的超高速集成电路硬件描述语言的编程产生。
以相似的方式,在一些实现方式中,用于设置中间值y的第一计算块包括由用硬件描述语言的编程产生的中间查找表和/或固定中间电路。在使用查找表的实现方式中,条目的数量被限制为输入值的字长。相同数量的条目可以在由用硬件描述语言,例如VHDL的编程产生的硬件中表示。
尽管改进的计算构思通常适用于任何基值b,但是如果基数选择为2,则多个优点,特别是关于二进制数表示的实现方式的优点会出现。例如,在基值为2的这种实现方式中,第一计算块可以包括用于根据输入值IN设置误差值err的桶形移位器。特别地,产生的除法err=IN除以2n,即err=IN/2n能够通过n次移位操作实现。
以相似的方式,在基值为2的情况下,第二计算块可以包括用于将误差值err设置为幂误差值perr除以2的1位移位器。
同样,确定幂误差值能够通过使用2作为基值来简化。例如,第二计算块包括用于确定幂误差值perr的乘法器,特别是平方乘法器或平方器件。
在各种实现方式中,误差阈值等于基值。
在一些实现方式中,第二计算块包括用于将幂误差值perr与误差阈值进行比较的比较器。
如上所述,如果计数器值k等于或大于预定的重复值L,则可以满足退出标准。在这种实现方式中,第二计算块可以包括相应电路,特别是相似电路的L-1个实例化,该实例化用于计数器值k的递增步骤、幂误差值perr的确定以及如果幂误差值perr大于或等于误差阈值时的相应动作的每次重复。此外,第二计算块包括相应电路的另外的实例化,该实例化用于计数器值k的递增步骤、幂误差值perr的确定、以及如果幂误差值perr大于或等于误差阈值时对中间值y的调整的最终重复。对于每次重复步骤使用不同实例化的实现方式,确保对于每个输入值或输出值的计算时间保持恒定,特别地与通常变化的输入值无关。当处理具有固定数据速率的输入值序列时,这能够更加有用。
在各种实现方式中,处理器可以实现为集成电路,特别地实现为专用集成电路ASIC,没有微处理器。相应地,上述所有计算使用特定的硬件表示实现。例如,不需要软件或微处理器的编程来执行上述计算。
在实现为集成电路情况下,假设基值是被固定选择的,特别地为2。此外,对于给定的期望的应用,指数值a也可以被固定选择。然而,如上所述,取决于指数值a的值,即第一计算块中的初始中间值和第二计算块中的自适应值仍可以被编程,例如经由查找表。
在各种实现方式中,计算处理器能够在例如在有限的时间帧,即图像传感器的帧速率内提供成千上万个传感器值的图像传感器上直接实现。一般而言,这种计算处理器能够在能够用于胶卷相机或图像相机(例如4K-HD等)的图像传感器的数字数据路径中实现。
因此,根据改进的计算构思,提供一种图像传感器装置,该图像传感器装置包括:图像传感器,其用于提供来自多个图像像素的传感器值;和根据上述实施例之一的计算处理器,其用于处理传感器值,特别地以连续的方式。
根据前述实现方式之一的计算处理器能够在具有一个或更多个光学传感器,特别是如像素阵列的光学传感器阵列的成像设备中使用。这种成像设备或图像传感器装置可以进一步用于各种电子设备的相机系统中。
这种电子设备可以包括智能电话、平板计算机、便携式计算机等,但是也可以包括诸如个人计算机和/或其显示器之类的更大的设备。电子设备还包括照片或摄像机、智能手表和其它可穿戴设备。
改进的计算构思还允许在计算过程中压缩输入数据,例如通过释放或裁切一些位。例如,使用根据一些ITU建议的实现方式,可以故意丢弃两位。
改进的计算构思也能够实现或描述为用于基于指数值a由数字输入值IN确定数字输出值的计算方法。这种方法可以包括:
a)确定指示输入值IN的有效部分的最高有效位MSB的位置的位置编号n;
b)设置中间值y=ba·n,其中b为基值;
c)设置误差值err=IN/bn;
d)初始化计数器值k;
该方法还包括重复执行步骤e)、f)、g1)、g2)、g3)中的每一个,直到满足退出标准为止:
e)将计数器值k递增1;
f)用perr=errb确定幂误差值perr;
g1)如果幂误差值perr大于或等于误差阈值,则通过将中间值y乘以取决于计数器值k的自适应值来调整中间值y;
g2)如果幂误差值perr大于或等于误差阈值,则将误差值err设置为幂误差值perr除以基值b;
g3)如果幂误差值perr小于误差阈值,则将误差值err设置为幂误差值perr;
h)将输出值设置为中间值y。
如上所述,自适应值可以确定为ba/b^k。
从关于计算处理器的实施例所作的各种描述中,该计算方法的其他实现方式对于技术人员而言是显而易见的。
附图说明
下文将借助附图对改进的构思进行更详细地描述。在所有附图中,具有相同或相似功能的元件使用相同的附图标记。因此,在随后的附图中不需要对其重复描述。
在附图中:
图1示出了根据改进的计算构思的计算处理器的示例性实现方式的框图;
图2示出了第一计算块的示例性实现方式;
图3示出了第二计算块中的重复实例化的示例性实现方式;
图4示出了计算处理器的另外的实现方式的框图;以及
图5示出了根据改进的计算构思的计算方法的示例性实现方式的框图。
具体实施方式
在各种应用中,指数函数的计算是必需的。在下文中,将描述允许这种指数值的计算的计算处理器,特别地在不使用微处理器的情况下。这种计算处理器的一种可能但不限于的应用是使用光电电路中的信号进行伽玛计算(gamma calculation)。
例如,根据ITU-R BT.709-6、ITU-R BT.2020-2和ITU-R BT.2100-0、以及所有相关的计算类型的建议,计算处理器用作或用在能够计算图像像素的光电传输特性的电路。这些规范确实需要计算:
(2) OUT=1.099.IN0.45-0.099
本公开主要是关于计算这个公式的“IN0.45”部分的流水线化方式。该计算也已知为“伽玛计算”。该流水线化架构允许以串行和/或流式方式对所有像素进行计算,其中,所有计算将具有完全相同的延迟。
因此,要计算的值特别地是:
(3) y=xa,
其中,a是指数值。如上所述,对于ITU-R应用,可以将值a设置为a=0.45。然而,改进的计算构思不限于特定的指数值。
等式(3)也能够写为:
(4)
其中,b为基值。通常,b可以选择为任意值。然而,在下文中,b选择为2,鉴于例如二进制操作,这可以是有利的。因此,等式(4)可以重写为:
(5)
“误差”因子err能够引入到来自上方的公式(4)或(5)中。当我们写以下等式时,该公式仍然正确:
(6)
其中,err=1。
实际上,公式的这种形式可以从对于y我们知道是错误的值开始(实际上该值可能设置为“1”),但是以迭代的方式逐渐对该值调适。所以,逐步地,使用例如ASIC支持的计算技术,y将演变成xα,而err将从xα变为1。这些步骤能够在硬件中实现。所以:
(7)
图1示出了实现上述计算步骤的计算处理器的示例性实现方式的框图。例如,计算处理器包括第一计算块CB1,该第一计算块由输入值IN初始化中间值y和误差值err。第二计算块CB2迭代地精确化这些值,直到满足退出标准为止。最终计算块CBF由精确化的中间值y'确定输出值OUT。
下文将结合图2、图3和图4对各个计算块CB1、CB2和CBF进行更详细地描述。
图2示出了用于实现上述迭代过程的第一步骤的第一计算块CB1的示例性实现方式。
第一步使用输入值IN的有效部分的最高有效位MSB(“1”)的位置。该步骤将导致“1≤err<2”的值。让我们将这个MSB的位置称为“n”。
以“err”和“y”为起始位置,
(8)
以下计算引向“err”和“y”的新值,称为“err′”和“y′”。
(9)
(10)
(11)
(12)
(13)
(14)
应当注意的是,对于任意选择的基值b,等式(14)为:
(15)
参照等式(8),并且在x=IN的情况下,在第一步骤或第一计算块CB1之后的误差值err和中间值y通常因此能够确定为:
(16)
然后:
(17)
所以,适用的新公式变为:
(18)
参照图2,输入值IN被提供为二进制字,在该示例中为8位字。用于确定与等式(14)或(15)或(16)相对应的误差值err的除法操作可以通过移位操作器BLS实现,该移位操作器例如能够体现为桶形移位器。移位基于能够由输入值IN的实际值确定的位置编号n来进行。例如,位置编号n的确定和初始误差值的计算可以从下表1看到,该表用作8位输入字的示例。其他字长采用相同的方案。例如,所有数据格式都是无符号整数。输入值IN和误差值err中的字母符号指示任意的位值,该位值特别地对位置编号n的确定没有影响。
表1:
IN | n | err |
00000001 | 0 | 1.0000000 |
0000001x | 1 | 1.x000000 |
000001xy | 2 | 1.xy00000 |
00001xyz | 3 | 1.xvz0000 |
0001xyzk | 4 | 1.xvzk000 |
001xyzkm | 5 | 1.xvzkm00 |
01xyzkmn | 6 | 1.xvzkmn0 |
1xyzkmnp | 7 | 1.xyzkmnp |
根据等式(14)或(15)或(16)的用于中间值y的值可以使用存储用于相应计算项的二进制值的某种存储器IMEM来执行。
作为示例,这在下方的表2中示出。作为示例,最右边的列示出了初始中间值,该初始中间值在数字小数点之前具有4位,在数字小数点之后具有2位。仍然可以使用其他数字格式,这对于熟练的读者应该是显而易见的。
图2中数字小数点的位置仅用于计算目的。例如,在以后的阶段中,能够使该数字小数点移动来使结果适配所需数量的输出位,以适合所期望的应用。
表2:
n | a | a.n | 2^(a.n) | binary(4+2) |
0 | 0.45 | 0 | 1 | 0001.00 |
1 | 0.45 | 0.45 | 1.366040257 | 0001.01 |
2 | 0.45 | 0.9 | 1.866065983 | 0001.11 |
3 | 0.45 | 1.35 | 2.549121255 | 0010.10 |
4 | 0.45 | 1.8 | 3.482202253 | 0011.01 |
5 | 0.45 | 2.25 | 4.75682846 | 0100.11 |
6 | 0.45 | 2.7 | 6.498019171 | 0110.01 |
7 | 0.45 | 3.15 | 8.876555777 | 1000.11 |
从现在开始,必须执行相同或准相同的步骤的序列,直到“err=1”或直到“err”足够小为止。精确的数字能够根据具体情况进行模拟。步骤从0开始以“k”编号。
现在参照图3,示出了一个计算实例化CB2_k的示例性实现方式,该实例化执行步骤k的相应计算。
区分是基于幂误差值perr进行的,该幂误差值通常确定为perr=errb,这是对于基值为2的特定的实现方式的perr=err2。参照图3,这用乘法器MULT1实现以执行幂操作或平方操作。用比较器COMP将该操作的结果与误差阈值进行比较。在特定的实现方式中,误差阈值等于基值,该基值在特定示例中为2。
来自先前步骤k的输入的形式为:
(19)
该形式也能够写为
(20)
对于实际的步骤,k递增1。现在,为了近似值,必须区分两种情况。
情况1:err2<2:
所以,当“err2<2”时,在“k”次迭代之后,则:
对于之后步骤的新值:
(22)
(23)
或:
(24)
情况2:err2≥2:
所以,在这种情况下,在“k”次迭代之后:
(25)
(25)
(25)
(28)
(29)
(30)
或:
(31)
中间值y或y'和误差值err或err'的自适应是通过基于比较结果提供相应选择输出的各个多路复用器MP1、MP2来进行的。
例如,等式(29)中的幂误差值或平方误差值的除以二在硬件中实现时可以通过1位移位器来执行。
第二乘法器MULT2将先前的中间值y与自适应值进行的相乘,能够用从自适应存储器AMEM中检索出的自适应值来执行。自适应存储器AMEM可以是查找表,该查找表可以是第二计算块CB2的不同实例化CB2_k所共有的,其中,实际值基于计数器值k检索。在替代实现方式中,对于每个迭代阶段是固定的自适应值可以存储在由用如VHDL的硬件描述语言的编程产生的固定的自适应电路中。在计算实例化CB2_k的输出处的中间值y'表示根据等式(3)计算的输出值的实际近似值。
在硬件实现方式中,同一块可以物理使用几次,直到执行所期望的迭代次数或直到误差值足够小为止。然而,在一些实现方式中,如图3所示的实例化CB2_k的几个实例化可以与每个实例化的不同物理实现方式一起使用。
例如,图4示出了根据实现后述方法的改进的计算构思的计算处理器的示例性实现方式。
相应地,计算处理器包括第一计算块CB1,该第一计算块可以如图2所示实现,用于由输入值IN提供中间值y和误差值err的初始值,指示阶段k=0。
如结合图3所述,第二计算块CB2可以用计算实例化CB2_1、CB2_2至CB2_L的预定数量的L个实例化实现。然而,对于最后阶段CB2_L,由于仅需要中间值y'作为输出,涉及误差值err'的更新的块,特别是块OBS和MP2能够省略。
此外,最后的实例化也能够直接用作用于生成输出值OUT的最终计算块CBF。
参照图4,k=1至L的计算块实例化被提供有相应的自适应值,该自适应值对于每个阶段都是固定值。
应当注意的是,根据图4的实现方式实现了流水线化架构,该流水线化架构使得能够以串行或流式方式处理顺序输入值,其中输入与输出之间的所有计算具有相同的延迟。
如上所述,如果计算处理器用于根据等式(2)的伽玛计算,则还可以将附加的乘法器和附加的减法器容易地添加到图4的实现方式中。
此外,这种计算处理器能够在例如在有限的时间帧,即图像传感器的帧速率内提供成千上万个传感器值的图像传感器上直接实现。一般而言,这种计算处理器能够在能够用于胶卷相机或图像相机(例如4K-HD等)的图像传感器的数字数据路径中实现。
相应地,根据改进的计算构思的计算处理器允许对大量数据,即作为串行读出而提供的图像处理器的像素进行处理,使得能够非常快速地执行计算,以便不降低输出速度,并且因此不降低实现计算处理器的传感器的帧速率。
像素的串行处理受益于具有预定延迟的这种计算处理器,以便可以以能够是采样数据的传输速度的速度进行串行计算。因此,根据ITU的建议可能是必须的计算能够直接在传感器芯片上执行,并且不需要在传感器芯片外部,例如在专用的图像处理器上执行。
各种实现方式可以实现为集成电路,特别地实现为专用集成电路ASIC,使得不需要微处理器来执行相应计算。
自适应值和初始中间值的相应二进制表示能够预先被确定,并被提供硬编码,即作为硬件进入电路中。
现在参照图5,示出了根据改进的计算构思的计算方法的示例性实施例的框图。在步骤a)中,位置编号n根据输入值IN确定,特别地指示输入值IN的有效部分的MSB的位置。例如,这已经结合上方的表1进行了描述。
在步骤b)中,根据等式(16)中的计算确定用于中间值y的初始值。在基值b选择为2情况下,公式(14)也适用。
在步骤c)中,如果基值为2,则根据等式(16)或(14)设置初始误差值。
在步骤d)中,将计数器值k初始化,例如为0。
迭代和/或重复执行之后步骤e)、f)、g1)、g2)、g3)、g4)。
例如,在步骤e)中,计数器值k递增1。在步骤f)中,确定幂误差值。如果基值为2,则幂误差值为平方误差值。如果幂误差值或平方值大于误差阈值,特别地是基值b,则将中间值y1设置为先前的中间值y乘以取决于计数器值k的自适应值ADPT。例如,这结合等式(29)来描述。此外,在步骤g2)中,将新的误差值err'设置为幂误差值除以基值b。
如果幂误差值perr小于误差阈值或基值,则在步骤g3)中将新的误差值err'设置为幂误差值perr。在可选步骤g4)中,将新的中间值y'设置为旧的中间值y。步骤g4)是可选的,因为实际上不更改值y。
如果满足退出标准,则在步骤h)中将最后的中间值y'设置为输出值OUT。如果不满足,则重复先前的步骤,其中误差值err为err',中间值y为y'。
应当注意的是,通过对图5的方法的描述,仅描述了基本步骤。然而,从结合图1至4的以上详细描述中,该方法的数学和具体实现方式对于熟练的读者而言应该是显而易见的。
Claims (19)
1.一种用于基于指数值a由数字输入值IN确定数字输出值OUT的计算处理器,所述处理器包括:
-第一计算块,其配置为:
a)确定指示所述输入值IN的有效部分的最高有效位MSB的位置的位置编号n;
b)设置中间值y=ba·n,其中b为基值;
c)设置误差值err=IN/bn;以及
d)初始化计数器值k;
-第二计算块,其配置为重复执行以下步骤e)、f)、g1)、g2)和g3)
中的每一个,直到满足退出标准为止:
e)将所述计数器值k递增1;
f)用perr=errb确定幂误差值perr;
g1)如果所述幂误差值perr大于或等于误差阈值,则通过将所述中间值y乘以取决于所述计数器值k的自适应值来调整所述中间值y;
g2)如果所述幂误差值perr大于或等于所述误差阈值,则将所述误差值err设置为所述幂误差值perr除以所述基值b;
g3)如果所述幂误差值perr小于所述误差阈值,则将所述误差值err设置为所述幂误差值perr;
以及
-最终计算块,其配置为将所述输出值OUT设置为所述中间值y,其中,所述第二计算块配置为将所述自适应值确定为ba/b^k。
2.根据权利要求1所述的处理器,其中,所述第二计算块包括由用硬件描述语言的编程产生的自适应查找表和/或固定的自适应电路,用于确定所述自适应值。
3.根据权利要求1所述的处理器,其中,所述第一计算块包括由用硬件描述语言的编程产生的中间查找表和/或固定的中间电路,用于设置所述中间值y。
4.根据权利要求1所述的处理器,其中,所述第一计算块配置为将所述计数器值初始化为k=0。
5.根据权利要求1所述的处理器,其中,所述基值为2。
6.根据权利要求5所述的处理器,其中,所述第一计算块包括用于根据所述输入值IN设置所述误差值err的桶形移位器。
7.根据权利要求5所述的处理器,其中,所述第二计算块包括用于将所述误差值err设置为所述幂误差值perr除以二的1位移位器。
8.根据权利要求5所述的处理器,其中,所述第二计算块包括用于确定所述幂误差值perr的乘法器。
9.根据权利要求1所述的处理器,其中,所述误差阈值等于所述基值。
10.根据权利要求1所述的处理器,其中,所述第二计算块包括用于将所述幂误差值perr与所述误差阈值进行比较的比较器。
11.根据权利要求1所述的处理器,其中,如果所述计数器值k等于或大于预定的重复值L,则满足所述退出标准,并且其中,所述第二计算块包括:相应电路的L-1个实例化,所述实例化用于步骤e)、f)、g1)、g2)和g3)的每次重复;以及相应电路的另外的实例化,所述另外的实例化用于步骤e)、f)和g1)的最终重复。
12.根据权利要求1所述的处理器,实现为集成电路,并且没有微处理器。
13.根据权利要求8所述的处理器,其中,所述乘法器是平方乘法器或平方器件。
14.根据权利要求11所述的处理器,其中,所述相应电路是相似电路。
15.根据权利要求12所述的处理器,其中,所述集成电路为专用集成电路ASIC。
16.一种图像传感器装置,包括:图像传感器,其用于提供来自多个图像像素的传感器值;和根据权利要求1至15之一所述的处理器,其用于将所述传感器值处理为相应的数字输入值IN。
17.根据权利要求16所述的图像传感器装置,其中,所述处理器以连续的方式将所述传感器值处理为相应的数字输入值IN。
18.一种电子设备,其中,所述电子设备包括包含根据权利要求16所述的图像传感器装置的相机系统。
19.一种用于基于指数值a由数字输入值IN确定数字输出值OUT的计算方法,所述方法包括:
a)确定表示所述输入值IN的有效部分的最高有效位MSB的位置的位置编号n;
b)设置中间值y=ba·n,其中b为基值;
c)设置误差值err=IN/bn;
d)初始化计数器值k;
所述方法还包括重复执行步骤e)、f)、g1)、g2)、g3)中的每一个,直到满足退出标准为止:
e)将所述计数器值k递增1;
f)用perr=errb确定幂误差值perr;
g1)如果所述幂误差值perr大于或等于误差阈值,则通过将所述中间值y乘以取决于所述计数器值k的自适应值来调整所述中间值y;
g2)如果所述幂误差值perr大于或等于所述误差阈值,则将所述误差值err设置为所述幂误差值perr除以所述基值b;
g3)如果所述幂误差值perr小于所述误差阈值,则将所述误差值err设置为所述幂误差值perr;
h)将所述输出值OUT设置为所述中间值y;
其中,所述自适应值被确定为ba/b^k。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18154511.2A EP3522002B1 (en) | 2018-01-31 | 2018-01-31 | Calculation processor and calculation method |
EP18154511.2 | 2018-01-31 | ||
PCT/EP2019/050975 WO2019149521A1 (en) | 2018-01-31 | 2019-01-15 | Calculation processor and calculation method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684413A CN111684413A (zh) | 2020-09-18 |
CN111684413B true CN111684413B (zh) | 2024-04-23 |
Family
ID=61132217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005600.8A Active CN111684413B (zh) | 2018-01-31 | 2019-01-15 | 计算处理器和计算方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11573767B2 (zh) |
EP (1) | EP3522002B1 (zh) |
CN (1) | CN111684413B (zh) |
WO (1) | WO2019149521A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1433164A (zh) * | 2001-11-27 | 2003-07-30 | 三星电子株式会社 | 对数据进行编码和译码的方法和装置 |
DE102009024095A1 (de) * | 2008-06-13 | 2009-12-17 | Continental Teves Ag & Co. Ohg | Integrierte digitale Recheneinheit mit einem Datenbusausgang |
CN101946501A (zh) * | 2007-12-14 | 2011-01-12 | 高通股份有限公司 | 使用二进有理数的有效扩散抖动 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473373A (en) | 1994-06-07 | 1995-12-05 | Industrial Technology Research Institute | Digital gamma correction system for low, medium and high intensity video signals, with linear and non-linear correction |
US20020147753A1 (en) * | 2001-01-30 | 2002-10-10 | Cirrus Logic, Inc. | Methods and systems for raising a numerical value to a fractional power |
US7167888B2 (en) * | 2002-12-09 | 2007-01-23 | Sony Corporation | System and method for accurately calculating a mathematical power function in an electronic device |
US9141131B2 (en) * | 2011-08-26 | 2015-09-22 | Cognitive Electronics, Inc. | Methods and systems for performing exponentiation in a parallel processing environment |
-
2018
- 2018-01-31 EP EP18154511.2A patent/EP3522002B1/en active Active
-
2019
- 2019-01-15 US US16/957,979 patent/US11573767B2/en active Active
- 2019-01-15 CN CN201980005600.8A patent/CN111684413B/zh active Active
- 2019-01-15 WO PCT/EP2019/050975 patent/WO2019149521A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1433164A (zh) * | 2001-11-27 | 2003-07-30 | 三星电子株式会社 | 对数据进行编码和译码的方法和装置 |
CN101946501A (zh) * | 2007-12-14 | 2011-01-12 | 高通股份有限公司 | 使用二进有理数的有效扩散抖动 |
DE102009024095A1 (de) * | 2008-06-13 | 2009-12-17 | Continental Teves Ag & Co. Ohg | Integrierte digitale Recheneinheit mit einem Datenbusausgang |
Non-Patent Citations (1)
Title |
---|
抗攻击低功耗RSA处理器设计与实现;任燕婷;《清华大学学报(自然科学版)》;第56卷(第1期);第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
US11573767B2 (en) | 2023-02-07 |
CN111684413A (zh) | 2020-09-18 |
EP3522002B1 (en) | 2020-08-12 |
WO2019149521A1 (en) | 2019-08-08 |
US20210373853A1 (en) | 2021-12-02 |
EP3522002A1 (en) | 2019-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7348971B2 (ja) | 畳み込みニューラルネットワークハードウエア構成 | |
US11580719B2 (en) | Dynamic quantization for deep neural network inference system and method | |
US11755901B2 (en) | Dynamic quantization of neural networks | |
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
US9798520B2 (en) | Division operation apparatus and method of the same | |
CN110826685A (zh) | 神经网络卷积计算的方法和装置 | |
EP3709225A1 (en) | System and method for efficient utilization of multipliers in neural-network computations | |
CN116466910A (zh) | 一种基于浮点数的查表方法、装置、电子设备及存储介质 | |
EP0997828A2 (en) | Signal processing distributed arithmetic architecture | |
US10489114B2 (en) | Shift amount correction for multiply-add | |
CN111684413B (zh) | 计算处理器和计算方法 | |
JP2001222410A (ja) | 除算器 | |
US10963746B1 (en) | Average pooling in a neural network | |
CN111767993A (zh) | 卷积神经网络int8量化方法、系统、设备及存储介质 | |
US10846054B2 (en) | Underflow/overflow detection prior to normalization | |
CN116166217A (zh) | 执行浮点操作的系统和方法 | |
JP6253365B2 (ja) | 画像処理方法、撮像装置、画像処理装置 | |
CN114579079A (zh) | 用于常数乘法的集成电路、操作其的方法和包括其的装置 | |
US10447983B2 (en) | Reciprocal approximation circuit | |
US20210334635A1 (en) | Neural network accelerator configured to perform operation on logarithm domain | |
US20240168716A1 (en) | Image processing device including calculation processing device and calculating method of the image processing device | |
EP4361892A1 (en) | Methods and systems for performing a per channel affine transformation using a neural network accelerator | |
CN117472326A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20080091754A1 (en) | Reciprocal calculation unit and reciprocal calculation method | |
JP2024517707A (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 |