一种基于PCM压缩编码的数据处理方法及数据处理装置与流程

文档序号:19901218发布日期:2020-02-11 13:54阅读:405来源:国知局
一种基于PCM压缩编码的数据处理方法及数据处理装置与流程

本发明属于数据处理领域,尤其涉及一种基于pcm压缩编码的数据处理方法及数据处理装置。



背景技术:

传统的除法实现算法可以分为两种:循环移位相减法,除数取倒数相乘法。

循环移位相减法主要利用循环移位相减的方式来模拟手算过程将除法转换成一系列减法。除数取倒相乘法则是一种借助乘法器来快速实现除法的方法,但是作为一种拟合算法,其对除数的分段拟合的实现方式会影响除法实现所需要的周期数和精度,往往分段数越小则所需运算周期数越少但除法精度越低,分段数越大则除法精度越高但所需周期数越大。

但两种算法都存在一定问题,循环移位相减法如果采用基本的减法操作实现需要较多的周期数,或者需要专门设计高基srt算法电路来实现硬件加速。而除数取倒数相乘法在于用多项式拟合逼近倒数运算的过程中,不同的输入区间的拟合精度区别较大,根据输入进行分段的操作较为复杂,往往导致需进行多次的比较操作来完成分段区间的判断。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于pcm压缩编码的数据处理方法。

本发明所采取的技术方案是:一种基于pcm压缩编码的数据处理方法包括:

s1、对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1和r2;

s2、根据pcm编码规则对r2进行压缩编码,得到编码值s1,并根据s1设置移位值s2;

s3、利用编码值s1查询查找表,得到p1和p2;

s4、根据r1、p1和p2通过乘累加运算得到y;

s5、对y进行位移处理,左移32位得到y2,对y2右移s2位得到y3;

s6、输入被除数z,与y3通过乘法运算得到结果。进一步地,所述对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1和r2具体为:令r1=x;判断r1是否小于4096,若是则r2=r1,若否则r2=4095。

进一步地,所述pcm编码规则为a律编码或μ律编码。

进一步地,利用编码值s1查询查找表,得到p1和p2;查找表中p1,p2值为提前计算得到的常数值,具体计算方法为:

根据pcm压缩编码的分段区间,利用多项式拟合分段对1/x进行曲线拟合,得到拟合参数p1和p2,将参数p1和p2进行右移s2后存储在查找表中,供查表使用;

其中,,a、b为设置好的常数值,s1即查找表的索引值。

进一步地,利用多项式拟合分段对1/x进行曲线拟合的拟合公式为:

进一步地,根据r1、p1和p2通过乘累加运算得到y,所述计算公式为

进一步地,输入被除数z,与y3通过乘法运算得到结果具体为:,其中高32位为商的整数部分,低32位为商的小数部分。

本发明还提供了一种基于pcm压缩编码的数据处理装置,包括:饱和运算单元,pcm压缩编码器,存储器,乘累加器,移位器以及乘法器,其中,除数x输入所述饱和运算单元和所述乘累加器,所述饱和运算单元的输出与所述pcm压缩编码器的输入连接,所述pcm压缩编码器的输出分别连接所述存储器的输入,所述存储器的输出与所述乘累加器的另一个输入连接,所述乘累加器的输出与移位器的输入连接,所述移位器的输出与所述乘法器的输入连接,所述乘法器的另一个输入用于输入被除数z,其中,

所述饱和运算单元,用于对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1和r2;

所述pcm压缩编码器,用于根据pcm编码规则对r2进行压缩编码,输出编码值s1,并根据s1运算得到移位值s2;所述存储器,存储有查找表,用于利用编码值s1查询查找表,输出p1和p2;

所述乘累加器,用于根据r1、p1和p2通过乘累加运算输出y;

所述移位器,用于对y进行位移处理,左移32位得到y2,对y2右移s2位输出y3;

所述乘法器,用于接收输入的被除数z,与y3通过乘法运算得到结果。

进一步地,所述对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1和r2具体为:令r1=x;判断r1是否小于4096,若是则r2=r1,若否则r2=4095。

进一步地,所述pcm编码规则为a律编码或μ律编码。

进一步地,还包括移位加法器,用于利用编码值s1计算得到s2,其中,,a、b为设置好的常数值,s1即查找表的索引值。

进一步地,利用编码值s1查表,得到p1、p2具体为:

根据pcm压缩编码的分段区间,利用多项式拟合分段对1/x进行曲线拟合,得到拟合参数p1和p2,将参数p1和p2进行左移s2后存储在查找表中,供查表使用。

进一步地,利用多项式拟合分段对1/x进行曲线拟合的拟合公式为:

进一步地,根据r1、p1和p2通过乘累加运算得到y,所述计算公式为

进一步地,输入被除数z,与y3通过乘法运算得到结果具体为:,其中高32位为商的整数部分,低32位为商的小数部分。

由于采用上述技术方案,本发明所产生的有益效果在于:

本申请的技术方案利用pcm压缩编码能够对输入数实现快速的非均匀分段压缩,而且根据pcm压缩编码值进行移位压缩处理,以此减少线性拟合参数量化引入的误差,通过pcm压缩编码、查表、乘累加运算、移位处理实现了快速和准确的数据处理。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明实施例基于pcm压缩编码的数据处理方法的流程示意图;

图2是本发明实施例基于pcm压缩编码的数据处理装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明:

如图1所示,本发明提供一种基于pcm压缩编码的数据处理方法,包括:

s1、对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1和r2;

s2、根据pcm编码规则对r2进行压缩编码,得到编码值s1,并根据s1设置移位值s2;

s3、利用编码值s1查询查找表,得到p1和p2;

s4、根据r1、p1和p2通过乘累加运算得到y;

s5、对y进行位移处理,左移32位得到y2,对y2右移s2位得到y3;

s6、输入被除数z,与y3通过乘法运算得到结果。

输入数据通常为13位、14位或16位的二进制数据,在本实施方式中,输入数据为16位的二进制数据。

在上述技术方案的基础上,进一步地,所述对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1和r2,具体为:令r1=x;判断r1是否小于4096,若是则r2=r1,若否则r2=4095。在本实施方式中,使用饱和运算是为了确保输入值满足pcm压缩编码的输入范围。

在本实施方式中,对16位输入数据x[15:0]求饱和处理,令r1=x,当r1<4095时,r2=r1,否则r2=4095,以此得到r2供后续进行pcm压缩编码。同时保留原始数据r1作为后续乘累加运算输入。

在上述技术方案的基础上,进一步地,所述pcm编码规则为a律编码或μ律编码。

在本实施方式中,μ律编码是将13位数据转化为8位数据,a律编码是将14位数据转化为8位数据,在我国通常选用a律编码。a律编码如表1所示,μ律编码如表2所示。表1和表2左侧为输入数,右侧为输入数对应的指针值,即编码值s1。

表1a律编码

表2μ律编码

根据表1所示a律编码,对r2进行pcm压缩编码,得到编码值s1[7:0],并设置移位值s2。在本实施方式中,s2的存在是为了处理拟合参数p1,p2的定点化而设计的,s2的选取以将p1,p2值进行向左移位(s2即为移位值)后得到的量化值有效位宽最大为准(这样可以提高最终的运算精度),可以设置为常数值。

在其他实施方式中,也可以由s1进行简单的运算,如,其中a,b为常数得到,后一种方法会比直接取常数值能得到更高的精度。

在上述技术方案的基础上,进一步地,利用编码值s1查表,得到p1和p2具体为:

根据pcm压缩编码的分段区间,利用多项式拟合分段对1/x进行曲线拟合,得到拟合参数p1和p2,将参数p1和p2存储在查找表中;

利用编码值s1查询查找表,得到编码值s1对应的p1和p2。在上述技术方案的基础上,进一步地,利用多项式拟合分段对1/x进行曲线拟合的拟合公式为:

在本实施方式中,根据pcm压缩编码的分段区间,利用多项式拟合分段对1/x进行曲线拟合,得到拟合参数p1[31:0],p2[31:0]。

在本实施方式中,对p1和p2左移s2是为了得到合适位宽的量化值。

在其他的实施方式中,当需要更高的运算精度时,可采用更高次的多项式拟合,例如拟合公式为:。不过拟合方式并不限于多项式拟合。

在上述技术方案的基础上,进一步地,根据r1、p1和p2通过乘累加运算得到y,所述计算公式为,得到y[63:0]。

在上述技术方案的基础上,进一步地,输入被除数z,与y3通过乘法运算得到结果具体为:acc=z×y3,其中高32位为商的整数部分,低32位为商的小数部分。

如图2所示,本发明还提供一种基于pcm压缩编码的数据处理装置,包括:饱和运算单元,pcm压缩编码器,存储器,乘累加器,移位器以及乘法器,其中,除数x输入所述饱和运算单元和所述乘累加器,所述饱和运算单元的输出与所述pcm压缩编码器的输入连接,所述pcm压缩编码器的输出分别连接所述存储器的输入,所述存储器的输出与所述乘累加器的另一个输入连接,所述乘累加器的输出与移位器的输入连接,所述移位器的输出与所述乘法器的输入连接,所述乘法器的另一个输入用于输入被除数z,其中,

所述饱和运算单元,用于对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1、r2;

所述pcm压缩编码器,用于根据二进制编码规则对r2进行pcm压缩编码,输出编码值s1,并根据s1运算得到移位值s2;

所述存储器,存储有查找表,用于利用编码值s1查询查找表,输出p1和p2;

所述乘累加器,用于根据r1、p1和p2通过乘累加运算输出y;

所述移位器,用于对y进行位移处理,左移32位得到y2,对y2右移s2位输出y3;

所述乘法器,用于接收输入的被除数z,与y3通过乘法运算得到结果。

在上述技术方案的基础上,进一步地,所述对输入的除数x进行饱和运算,得到满足pcm压缩编码输入范围的r1、r2具体为:令r1=x;判断r1是否小于4096,若是则r2=r1,若否则r2=4095。

在上述技术方案的基础上,进一步地,所述pcm编码规则为a律编码或μ律编码。

在上述技术方案的基础上,进一步地,所述数据处理装置还包括移位加法器,用于利用编码值s1计算得到s2,其中,,a、b为设置好的常数值,s1即查找表的索引值。

在上述技术方案的基础上,进一步地,利用编码值s1查询查找表,得到p1和p2具体为:

根据pcm压缩编码的分段区间,利用多项式拟合分段对1/x进行曲线拟合,得到拟合参数p1和p2,将参数p1和p2经过一定处理后(左移s2),存储在查找表中,供查表使用;

利用编码值s1查询查找表,得到编码值s1对应的p1和p2。

在上述技术方案的基础上,进一步地,利用多项式拟合分段对1/x进行曲线拟合的拟合公式为:1/x=p1×x+p2。

在上述技术方案的基础上,进一步地,根据r1、p1和p2通过乘累加运算得到y,所述计算公式为

在上述技术方案的基础上,进一步地,输入被除数z,与y3通过乘法运算得到结果具体为:acc=z×y3,其中高32位为商的整数部分,低32位为商的小数部分。

实施例一:

输入数x=16’b0000_0000_0100_1010,对x进行pcm压缩后得到值为s1=8’b00100010,此数即为其所落在的表项指针,可以利用s1进行寻址查表。

参数拟合过程:

该表项中p1,p2的拟合方法:对应的原始输入数据所在区间为:16’b0000_0000_0100_10xx,该区间包含四个点数:

16’b0000_0000_0100_1000,

16’b0000_0000_0100_1001,

16’b0000_0000_0100_1010,

16’b0000_0000_0100_1011。

利用该4个点数,以及相应的1/x值进行线性拟合,即可求得该区间对应的(p1,p2)拟合值。求得的p1和p2值是多位小数,为了减少定点数误差,可以利用s1的值对p1,p2进行合理倍数的放大(左移)后再取整的操作来进行定点化处理,后续进行乘法操作后再相应的对结果进行右移处理。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1