三角函数计算方法、装置、设备及存储介质制造方法及图纸

技术编号:36540633 阅读:11 留言:0更新日期:2023-02-01 16:38
本申请涉及图形处理单元技术领域,公开了一种三角函数计算方法、装置、设备及存储介质,所述三角函数计算方法包括基于预设查找表,将待离散函数转化为离散的函数查找表;基于三角和差公式的非线性插值法,将离散的函数查找表重建为目标函数;通过将函数查找表分解为奇数查找表和偶数查找表,并基于目标函数的周期性,将[

【技术实现步骤摘要】
三角函数计算方法、装置、设备及存储介质


[0001]本申请涉及图形处理单元
,尤其涉及一种三角函数计算方法、装置、设备及存储介质。

技术介绍

[0002]SIN,COS函数在通用处理器设计中通常使用多项式展开的方法由浮点数处理器FPU(Floating Point Unit,浮点处理单元)实现。但在多数FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),ASIC(Application Specific Integrated Circuit,专用集成电路)及MCU(Micro Controller Unit,微控制单元)上因缺少FPU,通常使用近似计算的方法计算SIN,COS函数。通用的近似计算方法有CORDIC(Coordinate Rotation Digital Computer,坐标旋转数字计算方法)算法或查表近似方法,但CORDIC方法和查找表近似方法的存在计算精度上限,在一些对数值计算的误差精度要求较高的领域无法满足使用要求。
[0003]常见的CPU中使用的COS函数的计算方法为基于多项式的展开逼近,需要调用FPU处理浮点数计算。在嵌入式系统和常见的FPGA/ASIC硬件系统中,通常使用基于CORDIC算法的实现方法或者基于查表的方法。通用的基于CORDIC算法的方法或者基于查找表的方法的计算精度并不高,在数值计算精度要求很高的场景下难以满足要求,因而导致图像处理过程中,逻辑电路的吞吐率低,精度较为低下。因此,如何提高图形处理单元
中三角函数计算精度成为亟待解决的技术问题。

技术实现思路

[0004]本申请提供了一种三角函数计算方法、装置、设备及存储介质,以图形处理单元
中三角函数计算精度。
[0005]第一方面,本申请提供了一种三角函数计算方法,所述三角函数计算方法包括:基于预设查找表,将待离散函数转化为离散的函数查找表;基于三角和差公式的非线性插值法,将所述离散的函数查找表重建为目标函数;通过将所述函数查找表分解为奇数查找表和偶数查找表,并基于所述目标函数的周期性、所述奇数查找表和所述偶数查找表,将[

π,π]周期内的所述目标函数映射到[0,π/2]周期内,以简化函数计算。
[0006]进一步地,待离散函数为三角函数,所述基于预设查找表,将待离散函数转化为离散的函数查找表,包括:
[0007]将在所述三角函数的一个弧度周期内的值均匀的映射到弧度查找表;
[0008]将在所述三角函数的一个角度周期内的值均匀的映射到角度查找表;
[0009]将在所述三角函数的一个标量周期内的值均匀的映射到标量查找表。
[0010]进一步地,目标函数为三角函数,基于三角和差公式的非线性插值法,将所述离散的函数查找表重建为目标函数,包括:
[0011]在所述三角函数的角度不属于所述角度查找表的索引值时,通过Ceil和Floor位
置,对应查找在所述角度查找表中的值,并通过所述基于三角和差公式的非线性插值法,加权计算出角度近似值。
[0012]进一步地,通过将所述函数查找表分解为奇数查找表和偶数查找表,并基于所述目标函数的周期性、所述奇数查找表和所述偶数查找表,将[

π,π]周期内的所述目标函数映射到[0,π/2]周期内,以简化函数计算之后,包括:
[0013]基于所述三角函数中的Sin函数和Cos函数的周期特性,将所述Sin函数和所述Cos函数在[0,π/2]周期内相互转化;
[0014]在定点数系统中使用浮点数计算方法,计算转化后的所述三角函数。
[0015]进一步地,在定点数系统中使用浮点数计算方法,计算转化后的所述三角函数,包括:
[0016]通过所述浮点数计算方法,将转化后的三角函数分解为指数部分和余数部分;
[0017]将所述指数部分进行归一化运算,并按照定点数的方式对归一化运算后的所述指数部分进行加减乘除运算。
[0018]进一步地,基于所述三角函数中的Sin函数和Cos函数的周期特性,将所述Sin函数和所述Cos函数在[0,π/2]周期内相互转化之后,包括:
[0019]基于所述三角函数的所述周期特性,将在[

π,π]周期内的所述三角函数变换至[0,π/2]周期中;
[0020]将所述Sin函数的输入角度增加π/2或所述Cos函数的输入角度减少π/2,以使所述三角函数[0,π/2]周期内共用设计电路。
[0021]进一步地,三角函数计算方法还包括:
[0022]在所述函数查找表中存储浮点数据类型的值,以避免浮点数定点化的量化误差导致的误差传播。
[0023]第二方面,本申请还提供了一种三角函数计算精度提高装置,所述三角函数计算精度提高装置包括:
[0024]函数查找表获取模块,用于基于预设查找表,将待离散函数转化为离散的函数查找表;
[0025]目标函数重建模块,用于基于三角和差公式的非线性插值法,将所述离散的函数查找表重建为目标函数;
[0026]函数映射模块,用于通过将所述函数查找表分解为奇数查找表和偶数查找表,并基于所述目标函数的周期性、所述奇数查找表和所述偶数查找表,将[

π,π]周期内的所述目标函数映射到[0,π/2]周期内,以简化函数计算。
[0027]第三方面,本申请还提供了一种设备,所述设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的三角函数计算方法。
[0028]第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的三角函数计算方法。
[0029]本申请公开了一种三角函数计算方法、装置、设备及存储介质,所述三角函数计算方法包括基于预设查找表,将待离散函数转化为离散的函数查找表;基于三角和差公式的
非线性插值法,将所述离散的函数查找表重建为目标函数;通过将所述函数查找表分解为奇数查找表和偶数查找表,并基于所述目标函数的周期性、所述奇数查找表和所述偶数查找表,将[

π,π]周期内的所述目标函数映射到[0,π/2]周期内,以简化函数计算。本申请通过三角函数的连续与离散相互变换,将三角函数的周期缩减至[0,π/2],并通过将函数查找表分解,使在一个周期内可以获取两个相邻的三角函数值,并使三角函数同步使用电路设计,提高逻辑电路的吞吐率,进而提高三角函数计算精度。
附图说明
[0030]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1是本申请的第一实施例提供的一种三本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三角函数计算方法,其特征在于,所述三角函数计算方法包括:基于预设查找表,将待离散函数转化为离散的函数查找表;基于三角和差公式的非线性插值法,将所述离散的函数查找表重建为目标函数;通过将所述函数查找表分解为奇数查找表和偶数查找表,并基于所述目标函数的周期性、所述奇数查找表和所述偶数查找表,将[

π,π]周期内的所述目标函数映射到[0,π/2]周期内,以简化函数计算。2.根据权利要求1所述的三角函数计算方法,其特征在于,所述待离散函数为三角函数,所述基于预设查找表,将待离散函数转化为离散的函数查找表,包括:将在所述三角函数的一个弧度周期内的值均匀的映射到弧度查找表;将在所述三角函数的一个角度周期内的值均匀的映射到角度查找表;将在所述三角函数的一个标量周期内的值均匀的映射到标量查找表。3.根据权利要求2所述的三角函数计算方法,其特征在于,所述目标函数为三角函数,所述基于三角和差公式的非线性插值法,将所述离散的函数查找表重建为目标函数,包括:在所述三角函数的角度不属于所述角度查找表的索引值时,通过Ceil和Floor位置,对应查找在所述角度查找表中的值,并通过所述基于三角和差公式的非线性插值法,加权计算出角度近似值。4.根据权利要求1所述的三角函数计算方法,其特征在于,所述通过将所述函数查找表分解为奇数查找表和偶数查找表,并基于所述目标函数的周期性、所述奇数查找表和所述偶数查找表,将[

π,π]周期内的所述目标函数映射到[0,π/2]周期内,以简化函数计算之后,包括:基于所述三角函数中的Sin函数和Cos函数的周期特性,将所述Sin函数和所述Cos函数在[0,π/2]周期内相互转化;在定点数系统中使用浮点数计算方法,计算转化后的所述三角函数。5.根据权利要求4所述的三角函数计算方法,其特征在于,所述在定点数系统中使用浮点数计算方法,计算转化后的所述三角函数,包括:通过...

【专利技术属性】
技术研发人员:邹天玱涂承杰
申请(专利权)人:深圳元象信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1