CN1855031A - 求定点数除法的算法在视频编码流量控制中的应用 - Google Patents

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

Info

Publication number
CN1855031A
CN1855031A CN 200510025168 CN200510025168A CN1855031A CN 1855031 A CN1855031 A CN 1855031A CN 200510025168 CN200510025168 CN 200510025168 CN 200510025168 A CN200510025168 A CN 200510025168A CN 1855031 A CN1855031 A CN 1855031A
Authority
CN
China
Prior art keywords
division
fixed
algorithm
point
video encode
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.)
Pending
Application number
CN 200510025168
Other languages
English (en)
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN 200510025168 priority Critical patent/CN1855031A/zh
Publication of CN1855031A publication Critical patent/CN1855031A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

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

Description

求定点数除法的算法在视频编码流量控制中的应用
技术领域
本发明涉及微处理芯片的定点计算技术,特别是该技术在视频编码流量控制中的应用。
背景技术
目前的定点处理器芯片采用的除法的原理是除数逐步移位并与被除数比较的过程,在每一步进行减法运算,如果能减则将位插入商中。但这样的算法的计算开销比较大,需要的时钟周期(CYCLE)数可达数百。在类似于运算速度要求高于精度的应用中,如视频编码流量控制中,这样大的CYCLE数显然会增加CPU负载和系统功耗。
普通的牛顿(NEWTON-RAPHSON)迭代法提供了一种在浮点运算中用乘,加或移位来实现除法的方法,它的基本原理是:用 X i + 1 = X i - f ( X i ) f ( X i ) ′ - - - ( 1 ) 来反复迭代求X,使得相应的f(X)逼近0。(见图1);
为了求D的倒数,我们要让f(X)=0的时候X=1/D,这样X可以无限逼近1/D。所以选 f ( Xi ) = 1 X i - D - - - ( 2 ) 代入(1)得
X i + 1 = X i + 1 / X i - D 1 / X i 2
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=[0.75,1.5],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,Qa
1.1收敛条件
从(2)和(3)得
Xi(2-DXi)>0,2-D*Xi>0=>Xi<2/D=>X0<2/D
1.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=[0.75,1.5]的误差都是在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 - 2 Bx = 0
= > x = &Agr; 2 &Bgr; - - - - - - ( 7 ) 代入(6)得
y max = A 2 B ( A - 1 ) = 2 a + 1 b * 2 S ( 2 a + 1 - 1 ) < 2 31
= > ( 2 a + 1 ) 2 - 2 a + 1 - b * 2 31 + S < 0
= > ( 2 a + 1 - 0.5 ) 2 < 0.25 + b * 2 31 + S
= > 2 a + 1 < = 2 31 + S 2 < = ( b * 2 31 + S ) 1 / 2 < ( 0.25 + b * 2 31 + S ) 1 / 2 < ( 0.25 + b * 2 31 + 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值情况下的本算法的精度
  S   8   9   10   11   12
  Maxnormalizederror   7.19e-3   3.34e-3   1.86e-3   1.87e-3   3.84e-3
  MeanNormalizederror   2.36e-3   1.03e-3   5.13e-4   5.32e-4   1.37e-3
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;
        }
步骤2:a=(29+Sd)>>1;
步骤3:X0_Qa=3<<(a-Sd-2);
步骤4:Xi+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<231
where,b∈[1,2)
b*2St-1*2*2a-Sd<2*2St-1*2*2a-Sd<231
2*2St-1*2*2a-Sd<231
St+a-Sd<30-----------------------(10)
因为a=(29+Sd)>>1,方程(10)变成:
St+((29+Sd)>>1)-Sd<30--------(11)
St + ( 29 + Sd 2 ) - Sd < 30
因为 { 15 + ( Sd > > 1 ) } < { 15.5 + ( Sd > > 1 ) } &le; { 15.5 + Sd 2 }
我们得到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;
}
步骤3:a=(29+Sd)>>1;
步骤4:X0_Qa=3<<(a-Sd-2);
步骤5:Xi+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位等处理器位数的定点计算中。
综上所述仅为本发明的较佳实施例而已,并非用来限定本发明的实施范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰,都应为本发明的技术范畴。

Claims (2)

1、一种求定点数倒数和除法的算法在视频编码流量控制中的应用,定点处理器芯片利用牛顿(NEWTON-RAPHSON)迭代法Xi+1=Xi(2-DXi)来实现其算法,特征在于:
根据除数和被除数的二进制最高有效位的大小,对除数和被除数进行移位截取,截位后的除数最高有效位Sd的大小为[8,12],截位后的被除数最高有效位St的大小为15+(Sd>>1),迭代初始值X0,Qa=C*2a-Sd,其中C=[0.75,1.5],a=(29+Sd)>>1。
2、根据权利要求1所述的求定点数倒数和除法的算法在视频编码流量控制中的应用,其特征在于:对除数和被除数进行移位截取,迭代初始值X0,Qa=C*2a-Sd,C=0.75,Sd=10,St=15+(Sd>>1),a=(29+Sd)>>1。
CN 200510025168 2005-04-18 2005-04-18 求定点数除法的算法在视频编码流量控制中的应用 Pending CN1855031A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510025168 CN1855031A (zh) 2005-04-18 2005-04-18 求定点数除法的算法在视频编码流量控制中的应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510025168 CN1855031A (zh) 2005-04-18 2005-04-18 求定点数除法的算法在视频编码流量控制中的应用

Publications (1)

Publication Number Publication Date
CN1855031A true CN1855031A (zh) 2006-11-01

Family

ID=37195228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510025168 Pending CN1855031A (zh) 2005-04-18 2005-04-18 求定点数除法的算法在视频编码流量控制中的应用

Country Status (1)

Country Link
CN (1) CN1855031A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593159A (zh) * 2012-08-14 2014-02-19 重庆重邮信科通信技术有限公司 一种高效率高精度除法实现方法及装置
CN108595146A (zh) * 2017-12-29 2018-09-28 珠海市杰理科技股份有限公司 除法运算方法、装置及设备
CN111813372A (zh) * 2020-07-10 2020-10-23 上海擎昆信息科技有限公司 一种高精度低时延实现32位整数除法的方法及装置
WO2024032027A1 (zh) * 2022-08-11 2024-02-15 Oppo广东移动通信有限公司 降低功耗的方法、处理器、电子设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593159A (zh) * 2012-08-14 2014-02-19 重庆重邮信科通信技术有限公司 一种高效率高精度除法实现方法及装置
CN108595146A (zh) * 2017-12-29 2018-09-28 珠海市杰理科技股份有限公司 除法运算方法、装置及设备
CN108595146B (zh) * 2017-12-29 2020-10-27 珠海市杰理科技股份有限公司 除法运算方法、装置及设备
CN111813372A (zh) * 2020-07-10 2020-10-23 上海擎昆信息科技有限公司 一种高精度低时延实现32位整数除法的方法及装置
WO2024032027A1 (zh) * 2022-08-11 2024-02-15 Oppo广东移动通信有限公司 降低功耗的方法、处理器、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN1928809A (zh) 用于执行浮点运算的系统、设备和方法
CN1838024A (zh) 对数处理系统和方法
CN1855031A (zh) 求定点数除法的算法在视频编码流量控制中的应用
CN1481526A (zh) 密码处理器
CN1655118A (zh) 处理器和编译器
CN106897046A (zh) 一种定点乘累加器
CN101042638A (zh) 浮点数求和的处理方法及计算机系统
CN1042270C (zh) 采用子域GF(2m/2)对GF(2m)的计算装置
CN1831753A (zh) 一种浮点乘法器及其兼容双精度和双单精度计算的方法
CN1738238A (zh) 高速可配置rsa加密算法及协处理器
CN104035750A (zh) 一种基于fpga的实时模板卷积实现方法
CN1862524A (zh) 数字信号处理器中执行多个向量稀疏卷积方法与系统
CN1773451A (zh) 任意精度运算器、任意精度运算方法和电子设备
CN1492313A (zh) 用于数字扫描变换装置的坐标转换方法及处理器
CN1014188B (zh) 二~十进制加法器电路
Barrois Methods to evaluate accuracy-energy trade-off in operator-level approximate computing
CN101060326A (zh) 加减计数电路和加减计数方法
CN1924798A (zh) 一种64比特浮点乘加器及其流水节拍划分方法
CN1265281C (zh) 浮点数的对数运算方法和装置
CN1694061A (zh) 操作数长度可伸缩的蒙哥马利模乘算法
CN1809806A (zh) 改进的归约计算
CN1258883C (zh) 将一个数的二进制表示变换成一个带符号的二进制表示的方法
CN1138717A (zh) 高速动态二进制加法器
Pai et al. Low-power constant-coefficient multiplier generator
CN1858998A (zh) 数字音频滤波器的无乘法实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication