CN101055564A - 实现数字信号处理器非线性函数快速定点运算的方法 - Google Patents
实现数字信号处理器非线性函数快速定点运算的方法 Download PDFInfo
- Publication number
- CN101055564A CN101055564A CN 200710041400 CN200710041400A CN101055564A CN 101055564 A CN101055564 A CN 101055564A CN 200710041400 CN200710041400 CN 200710041400 CN 200710041400 A CN200710041400 A CN 200710041400A CN 101055564 A CN101055564 A CN 101055564A
- Authority
- CN
- China
- Prior art keywords
- fixed
- point
- signal processor
- digital signal
- nonlinear function
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种实现数字信号处理器非线性函数快速定点运算的方法,用于在数字信号处理器对数字音视频信号进行编码时,对包含于数字音视频信号中的非线性函数进行定点运算,其首先将非线性函数根据泰勒公式展开,根据运算精度保留前n项,得到近似麦克劳林多项式;然后将上一步所得多项式表示成秦九韶多项式快速算法形式;最后将秦九韶多项式各项利用DSP定点实现方法进行定标,定标后参与运算即得。本发明省却了非线性函数运算前后对操作数的定点、浮点间的转换,大大提高了运算效率;而且跟查表法不同,本发明不需占用很大内存,节省了硬件成本。
Description
技术领域
本发明属于数字信号处理器(DSP,Digital Signal Processor)芯片领域,尤其涉及一种在DSP编程中实现非线性函数的快速定点运算的方法。
背景技术
在音视频编解码算法实现中,DSP芯片作为运算处理手段已越来越被业界认可。在进行DSP编程的过程中,常常会涉及非线性函数的运算,比如余弦函数cos(),正弦函数sin()等等的运算。在通常的编程中,对这类函数的处理最常用到的方法有:1.调用DSP编译系统的库函数;2.查表法;3.混合法。
采用调用DSP编译库函数的方法非常方便,运算的精度也非常高。但是存在的一大缺点是库函数的输入是浮点数,库函数的输出也是浮点数,而事实上在具体的硬件设备应用时,由于功耗和成本的原因,通常设备只支持定点操作。因此在定点DSP运算中,不仅需要将前面输入的定点数转换成浮点数才能调用库函数进行运算,而且还需要将运算结果的浮点数输出转化为定点数输出。同时在库函数中,对操作数进行的是浮点运算,该方法运算量较大,很难在实时DSP中得到应用。
采用查表法来代替非线性函数的运算,需要的运算量较小,可以运用在实时DSP中,它一般通过适当降低运算精度来提高程序的运算速度。但是,采用这种方法必须根据自变量的范围和精度要求制作一张表格。如果输入的变化范围越大,精度要求越高,则所需的表格越大,导致所需要DSP的存储量也越大,这势必对DSP芯片的存储量性能提出很高的要求。
混合法是在查表的基础上采用计算的方法来提高当输入值处于表格两点之间的精度,但是该方法只适用于在变量的定义域内函数呈单调变化的情形。
发明内容
本发明的目的在于提供一种实现数字信号处理器非线性函数快速定点运算的方法,在DSP芯片中利用定点来计算得到非线性函数的值,所述方法不需要对操作数进行定点数向浮点数的转换,也不受查表法存储量需求的限制。
为了达到上述目的,本发明提供了一种实现数字信号处理器非线性函数快速定点运算的方法,用于在数字信号处理器对数字音视频信号进行编码时,对包含于数字音视频信号中的非线性函数进行定点运算,所述的方法包括以下步骤:a.将所述的非线性函数根据泰勒公式展开,根据运算精度保留前n项,得到近似麦克劳林多项式;b.将步骤a所得多项式表示成秦九韶多项式快速算法形式;c.对步骤b所得多项式进行定点运算。
进一步地,所述的非线性函数在自变量=0的领域内n+1阶可导。
进一步地,当自变量在-π到π之间时,所述非线性函数的麦克劳林多项式余项当n趋向于无穷大时极限为零。
进一步地,步骤c中,利用DSP定点实现方法为所述的秦九韶多项式各项进行定标后,再将定标后的各项代入所述的秦九韶多项式进行定点运算。
本发明的非线性函数的快速定点实现方法,相对于调用DSP编译库函数方法,所采用的计算复杂度较小;相对于查表法,本发明不需要制作表格,占用的存储空间较小;它避开了DSP编译库函数方法的计算复杂度和查表法占用存储空间的缺点,运算速度高,能满足实时DSP运算需求。
具体实施方式
本发明的非线性函数的快速定点实现方法用于在数字信号处理器对数字音视频信号进行编码时,对包含于数字音视频信号中的非线性函数进行定点运算,其通过以下具体步骤实现:
1)首先判断要计算的非线性函数f(x)在x=0处是否(n+1)阶可导,n=1,2,...;若是,则继续执行步骤2);否则结束。
3)将非线性函数f(x)展开成麦克劳林公式,并根据运算精度保留前n项:
4)将公式(1)转化为秦九韶多项式:
6)将公式(2)中的已知量f(0),f′(0),f″(0),...,f(n-1)(0),f(n)(0),x,
...,和
转换成定点后的形式F(0),F′(0),F″(0),...,F(n-1)(0),F(n)(0),X,
...,和
7)采用舍入法或者截尾法对公式(2)进行定点运算:
公式(3)中,F(X)是f(x)的定点值,INT()表示定点运算。
下面以AVS或AAC(Advanced Audio Coding)音频标准中涉及的MDCT(Modified Discrete Cosine Transform)模块中余弦函数cos(x)的定点运算为例,对本发明的实现数字信号处理器非线性函数快速定点运算的方法作进一步的详细描述。
首先,可以判断cos(x)在x=0处(n+1)阶可导,其中,n=1,2,3,...;
接着,可以判断当x在-π到π之间时,
成立;
随后,将cos(x)根据麦克劳林展开式,展开成公式(1)的形式,得到:
函数cos(x)麦克劳林展开式的余项rn(x): 其中,c位于0到x之间 (5)
利用公式(5)和运算精度要求,确定出公式(4)中n的值,即得到可接受的近似cos(x)的值,在这里我们取公式(4)扩展函数等号右边前面的6项来近似cos(x),如公式(6)所示,其运算结果的平均精度约为0.00025。
然后,将公式(6)采用秦九韶多项式快速算法的表示方式如公式(7)所示:
由于浮点x的值位于-π到π之间,采用DSP的定点实现原理,给浮点x定标的精度是小数点后面13位二进制精度,可以用Q13来表示;同理,x2定标的精度用Q11表示,cos(x)的定标精度用Q15表示。公式(7)中系数
和
都采用Q15的定标精度,转化成定点后的值为16384,2731,1092,585和364。
为描述的需要,可以定义一个表示定点X和定点Y相乘的运算函数Mul(X,Y,N),其中参数N表示向右平移的位数,函数如下所示:
WORD16 Mul(WORD16 X,WORD16 Y,WORD16N)
{
WORD16 Val; //注:WORD n表示n位有符号整数数据类型
WORD32 temp;
temp=WORD(32)X*(WORD32)Y;
If(temp>0)
Vla=(WORD16)((temp+(WORD32)(1<<(N-1)))>>N);
Else
Val=-(WORD16)((-temp+(WORD32)(1<<(N-1)))>>N);
Return Val;
}
根据以上函数,设x用定点值X表示,x2用定点值Mx表示,根据x的范围,给x定标为Q13,x2定标为Q11,则Mx=Mul(X,X,15);
将以上定义的定点值结合公式(7)即可实现公式(3)的定点运算,其中COSX表示非线性函数cos(x)采用本发明所获得的定点值,其精度是Q15,表示如下:
COSX=32767-Mul(F2,32767-Mul(F12,32767-
Mul(F30,32767-Mul(F56,32767-F90,15),15),15),12)
(8)
采用本发明相对于采用调用DSP编译库函数的方法在定点DSP中实现,由于省却了操作数的定点、浮点间的相互转换,其实现更加便捷,效率至少提高4倍;同时相对于采用查表法,本发明中方法不需要制作表格,不需要占用DSP的更多内存,对于具体硬件设备芯片内存要求较低,大大节约了成本。
Claims (4)
1、一种实现数字信号处理器非线性函数快速定点运算的方法,用于在数字信号处理器对数字音视频信号进行编码时,对包含于数字音视频信号中的非线性函数进行定点运算,其特征在于,所述的方法包括以下步骤:
a.将所述的非线性函数根据泰勒公式展开,根据运算精度保留前n项,得到近似麦克劳林多项式;
b.将步骤a所得多项式表示成秦九韶多项式快速算法形式;
c.对步骤b所得多项式进行定点运算。
2、如权利要求1所述的实现数字信号处理器非线性函数快速定点运算的方法,其特征在于:所述非线性函数在自变量等于0的领域内n+1阶可导。
3、如权利要求1所述的实现数字信号处理器非线性函数快速定点运算的方法,其特征在于:当自变量在-π到π之间时,所述非线性函数的麦克劳林多项式余项当n趋向于无穷大时极限为零。
4、如权利要求1所述的实现数字信号处理器非线性函数快速定点运算的方法,其特征在于:步骤c中,利用DSP定点实现方法为所述的秦九韶多项式各项进行定标后,再将定标后的各项代入所述的秦九韶多项式进行定点运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710041400 CN101055564A (zh) | 2007-05-29 | 2007-05-29 | 实现数字信号处理器非线性函数快速定点运算的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710041400 CN101055564A (zh) | 2007-05-29 | 2007-05-29 | 实现数字信号处理器非线性函数快速定点运算的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101055564A true CN101055564A (zh) | 2007-10-17 |
Family
ID=38795403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710041400 Pending CN101055564A (zh) | 2007-05-29 | 2007-05-29 | 实现数字信号处理器非线性函数快速定点运算的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101055564A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486866A (zh) * | 2010-12-03 | 2012-06-06 | 江南大学 | 一种基于数字信号处理器的图像灰度均值算法 |
CN104778026A (zh) * | 2015-04-28 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种带simd的高速数据格式转换部件及转换方法 |
CN107292334A (zh) * | 2017-06-08 | 2017-10-24 | 北京深瞐科技有限公司 | 图像识别方法及装置 |
-
2007
- 2007-05-29 CN CN 200710041400 patent/CN101055564A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486866A (zh) * | 2010-12-03 | 2012-06-06 | 江南大学 | 一种基于数字信号处理器的图像灰度均值算法 |
CN102486866B (zh) * | 2010-12-03 | 2014-04-16 | 江南大学 | 一种基于数字信号处理器的图像灰度均值算法 |
CN104778026A (zh) * | 2015-04-28 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种带simd的高速数据格式转换部件及转换方法 |
CN107292334A (zh) * | 2017-06-08 | 2017-10-24 | 北京深瞐科技有限公司 | 图像识别方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI587640B (zh) | 用於音訊/視訊樣本向量之錐型向量量化檢索/解檢索之方法及裝置 | |
RU2016122865A (ru) | Кодер для кодирования аудиосигнала, система передачи аудио и способ определения значений коррекции | |
JP2011507037A (ja) | 5点dct−ii、dct−iv、およびdst−ivの計算のための高速アルゴリズム、ならびにアーキテクチャ | |
US7711761B2 (en) | Method and system for digital signal processing, program product therefor | |
ES2874511T3 (es) | Búsqueda de forma de cuantificador de vector en pirámide | |
CN101055564A (zh) | 实现数字信号处理器非线性函数快速定点运算的方法 | |
CN109144473B (zh) | 一种基于冗余odds数的十进制3:2压缩器结构 | |
CN1841938A (zh) | 对音频信号进行编码的方法和设备 | |
NO341726B1 (no) | Fremgangsmåte for å skape en representasjon av et beregnet resultat, lineært avhengig av kvadratet av en verdi | |
CN114647399A (zh) | 一种低能耗高精度近似并行定宽乘法累加装置 | |
TWI524331B (zh) | 低複雜度音調適應性之音訊信號量化技術 | |
CN102812642A (zh) | 编码方法、解码方法、装置、程序及记录介质 | |
CN101266795B (zh) | 一种格矢量量化编解码的实现方法及装置 | |
Xu et al. | An optimization of CORDIC algorithm and FPGA implementation | |
KR101589709B1 (ko) | 여러 필터 뱅크 도메인 간의 변환을 위한 방법 및 장치 | |
CN101056415A (zh) | 一种乘法操作转换为加法和移位操作的方法及装置 | |
KR100721263B1 (ko) | Imdct 코프로세서 및 이를 포함한 오디오 복호기 | |
CN100570597C (zh) | 将数字信号从时间域变换到频率域及其反向变换的方法 | |
Tsai et al. | A pure-ASIC design approach for MPEG-2 AAC audio decoder | |
CN1547193A (zh) | 一种用于语音编码的固定码本快速搜索算法 | |
CN1625266A (zh) | 计算绝对差值的设备、运动估计设备和运动图像编码设备 | |
CN101626242B (zh) | 改进的霍夫曼解码方法及装置 | |
WO2007101277A1 (en) | Audio decoding techniques for mid-side stereo | |
CN101546560B (zh) | 音频编解码装置及编解码方法 | |
US20090319589A1 (en) | Using fractional exponents to reduce the computational complexity of numerical operations |
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 |