求定点数除法的算法在视频编码流量控制中的应用的制作方法

文档序号:7613124阅读:176来源:国知局
专利名称:求定点数除法的算法在视频编码流量控制中的应用的制作方法
技术领域
本发明涉及微处理芯片的定点计算技术,特别是该技术在视频编码流量控制中的应用。
背景技术
目前的定点处理器芯片采用的除法的原理是除数逐步移位并与被除数比较的过程,在每一步进行减法运算,如果能减则将位插入商中。但这样的算法的计算开销比较大,需要的时钟周期(CYCLE)数可达数百。在类似于运算速度要求高于精度的应用中,如视频编码流量控制中,这样大的CYCLE数显然会增加CPU负载和系统功耗。
普通的牛顿(NEWTON-RAPHSON)迭代法提供了一种在浮点运算中用乘,加或移位来实现除法的方法,它的基本原理是用Xi+1=Xi-f(Xi)f(Xi)′---(1)]]>来反复迭代求X,使得相应的f(X)逼近0。(见图1);为了求D的倒数,我们要让f(X)=0的时候X=1/D,这样X可以无限逼近1/D。所以选f(Xi)=1Xi-D---(2)]]>代入(1)得Xi+1=Xi+1/Xi-D1/Xi2]]>
Xi+1=Xi(2-DXi)-------------(3)但是该算法在视频编码流量控制等应用中有下面的不足a.没有考虑到如何在满足指定的计算精度要求下,最大限度地提高计算速度。
b.没有指定如何设迭代初值,而初值的设定对最后计算结果的精度和所需要的运算时钟周期数有很大的影响。
c.不能直接用于定点求倒数或除法的计算,特别是它没考虑如何防止其计算过程中的上溢。

发明内容
本发明的目的是改进求定点数除法的算法在视频编码流量控制中的应用,在满足视频压缩流量控制(或其它类似应用)的最低精度要求的情况下,最大可能地提高计算过程中除法的运算速度,从而减少每秒百万指令计算(MIPS COUNT)和系统功耗。
为解决上述技术问题,本发明是这样实现的一种求定点数倒数和除法的算法在视频编码流量控制中的应用,定点处理器芯片利用牛顿(NEWTON-RAPHSON)迭代法Xi+1=Xi(2-DXi)来实现其算法,特征在于根据除数和被除数的二进制最高有效位的大小,对除数和被除数进行移位截取,截位后的除数最高有效位Sd的大小为[8,12],截位后的被除数最高有效位St的大小为15+(Sd>>1),迭代初始值X0,Qa=C*2a-Sd,其中C=
,a=(29+Sd)>>1。
上述的求定点数倒数和除法的算法在视频编码流量控制中的应用,其特征在于对除数和被除数进行移位截取,迭代初始值X0,Qa=C*2a-Sd,C=0.75,Sd=10,St=15+(Sd>>1),a=(29+Sd)>>1。


图1是牛顿迭代法曲线图。
具体实施例方式
以下是本发明方法中求定点数除法的算法的一些设定1.设初值X0,Qa1.1收敛条件从(2)和(3)得Xi(2-DXi)>0,2-D*Xi>0=>Xi<2/D=>X0<2/D1.2X0,Qa的推导D可以表示为b*2S-1,其中S为D的最高有效位(MSB),b∈[1,2]1/D=c*2-S,当c∈(1,2)。
显然,X0应当在c*2-S附近选值,理论上来讲,对于均匀分布的输入值D,选c=1.5是最佳的。
我们用均匀分布的输入值D进行实验,实验结果表明,c=
的误差都是在e-4数量级(但超出这个范围,误差开始变大),由于c=0.75的误差略小于C=1.5的,我们取C=0.75。这样我们得到X0=3*2-S-2。在用于牛顿定点迭代之前,X0需要二进制左移a位,这样我们就得到X0,Qa的计算公式X0,Qa=3*2a-s-2。其中a的取值很关键,因为它决定了定点倒数或除法的运算结果的精度,以及在牛顿迭代过程中,中间运算结果是否会在32位处理器上溢出(overflow)。我们将在下一节中推导。
2.初值X0,Qa计算公式中a值的推导过程(3)可以表示为Xi+1,Qa=(Xi,Qa*(2*2a-b*2S-1*Xi,Qa))/2a-------(4)X1,Qa=(X0,Qa*(2*2a-b*2S-1*X0,Qa))/2a--------(5)我们选择最大的a使得y=Ax-Bx2----(6)当A=2a+1,B=b*2S-1在32位的处理器上不会溢出。
设一阶导数y’等于0可以给出y抛物线的最大值(y的二阶导数小于0,抛物线的顶点具有最大值)A-2Bx=0]]>=>x=&Agr;2&Bgr;------(7)]]>代入(6)得ymax=A2B(A-1)=2a+1b*2S(2a+1-1)<231]]>=>(2a+1)2-2a+1-b*231+S<0]]>=>(2a+1-0.5)2<0.25+b*231+S]]>=>2a+1<=231+S2<=(b*231+S)1/2<(0.25+b*231+S)1/2<(0.25+b*231+S)1/2+0.5]]>=>a+1<=(31+S)/2]]>=>a<=(29+S)/2---(8)]]>另外,为了确保Xi_Qa有足够的位数,因为Xi_Qa位数越高,牛顿迭代运算精度也越高,根据(5)式我们有
(X0_Qa*(2*2a-b*2S-1*X0_Qa))/2a>2V-1=>a>=V+S结合等式(8),V+S ≤a≤(29+S)/2显然,V+S的上限越大,V和S各自的位数也越有保证。
所以选择a=(29+S)/2.
V=(29-S)/2,可见V和S是有反比的关系,所以S值的选取必须适中才可以保证V有足够的大小。
可以看出S=10是最佳。实验结果也证明了这一点,如下表表一D取值[1、227]范围内不同s值情况下的本算法的精度

3.求倒数1/D的算法总结对任意一个定点数D,范围为[1,231-1],我们需要找1/D,Q值为Q_inv.假设D的二进制MSB位置是Sd.设dSd=0.
步骤1对D进行截位(truncate)if(Sd>10){dSd=Sd-10;Sd=10;D>>dSd;
}步骤2a=(29+Sd)>>1;步骤3X0_Qa=3<<(a-Sd-2);步骤4Xi+1,Qa=(Xi,Qa*(2<<a-D*Xi,Qa))>>a(迭代4次)步骤4的结果就是我们所要求的以定点数形式表示的1/D,其Q_inv值为dSd+a.
上述求定点倒数的基本算法思路完全可以用到定点除法中,下面将叙述定点除法的推导。
4.定点除法的推导T*X_Qa<231----------------(9)So,T*X_Qa≤b*2St-1*2*2a-Sd<231where,b∈[1,2)b*2St-1*2*2a-Sd<2*2St-1*2*2a-Sd<2312*2St-1*2*2a-Sd<231St+a-Sd<30-----------------------(10)因为a=(29+Sd)>>1,方程(10)变成St+((29+Sd)>>1)-Sd<30--------(11)St+(29+Sd2)-Sd<30]]>因为{15+(Sd>>1)}<{15.5+(Sd>>1)}≤{15.5+Sd2}]]>我们得到St≤15+(Sd>>1).
5.求定点除法(T/D)的算法总结对任意两个定点数T和D,取值范围均为[1,231-1],我们需要求T/D,Q值为Q_div.
假设D的二进制MSB位置是Sd.T的二进制MSB位置是St.先设定dSd=dSt=0.
步骤1对D进行截位if(Sd>10){dSd=Sd-10;Sd=10;D>>dSd;}步骤2对T进行截位if(St>15+(Sd>>1)){dSt=St-(15+(Sd>>1));T>>dSt;}步骤3a=(29+Sd)>>1;步骤4X0_Qa=3<<(a-Sd-2);步骤5Xi+1,Qa=(Xi,Qa*(2<<a-D*Xi,Qa))>>a(迭代4次)
步骤5的结果乘以T(步骤2得到的)就是我们所要求的以定点数形式表示的T/D,其Q值为a+dSd-dSt.
本发明的特点和改进点是a.在Newton-Raphson定点实现中,根据输入值有效位数,以及确保运算结果的最大精度和同时防止32位定点数计算过程中的上溢的前提下,来设定初值和输入值位截取的方法。
b.与现有的微处理器(如ARM9)自带的定点除法所需的CYCLE数比较,要快多达4倍(误差是e-4),从而降低了系统功耗。
本发明的算法思路完全可以用到16位,64位等处理器位数的定点计算中。
综上所述仅为本发明的较佳实施例而已,并非用来限定本发明的实施范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰,都应为本发明的技术范畴。
权利要求
1.一种求定点数倒数和除法的算法在视频编码流量控制中的应用,定点处理器芯片利用牛顿(NEWTON-RAPHSON)迭代法Xi+1=Xi(2-DXi)来实现其算法,特征在于根据除数和被除数的二进制最高有效位的大小,对除数和被除数进行移位截取,截位后的除数最高有效位Sd的大小为[8,12],截位后的被除数最高有效位St的大小为15+(Sd>>1),迭代初始值X0,Qa=C*2a-Sd,其中C=
,a=(29+Sd)>>1。
2.根据权利要求1所述的求定点数倒数和除法的算法在视频编码流量控制中的应用,其特征在于对除数和被除数进行移位截取,迭代初始值X0,Qa=C*2a-Sd,C=0.75,Sd=10,St=15+(Sd>>1),a=(29+Sd)>>1。
全文摘要
本发明涉及微处理芯片的定点计算技术,特别是该技术在视频编码流量控制中的应用。其定点处理器芯片利用牛顿(NEWTON-RAPHSON)迭代法X
文档编号H04N7/24GK1855031SQ200510025168
公开日2006年11月1日 申请日期2005年4月18日 优先权日2005年4月18日
发明者丁亚强, 林江, 林哲民, 林福辉 申请人:展讯通信(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1