CN101639768A - 用于算术处理的装置、方法和程序 - Google Patents
用于算术处理的装置、方法和程序 Download PDFInfo
- Publication number
- CN101639768A CN101639768A CN200910159027A CN200910159027A CN101639768A CN 101639768 A CN101639768 A CN 101639768A CN 200910159027 A CN200910159027 A CN 200910159027A CN 200910159027 A CN200910159027 A CN 200910159027A CN 101639768 A CN101639768 A CN 101639768A
- Authority
- CN
- China
- Prior art keywords
- value
- power
- arithmetic
- logarithm
- integer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了用于算术处理的装置、方法和程序。尾数/指数分割器将输入值X=(1+X1/223)x(2^X2)分割为尾数X1和指数X2。插值处理器利用尾数X1来参考尾数/指数分割器并且通过插值处理确定幂值(log2(1+X1/223))。对数计算器根据指数X2和来自插值处理器的幂值来确定对数值Z=log2XY=Y(X2+log2(1+X1/223))。整数/分数分割器将对数值Z分割为整数Zint和分数Zamari。插值处理器响应于分数Zamari而参考分数幂次表存储单元并且通过插值处理确定幂值(2^Zamari)。幂计算器确定XY=2^Z=(2^Zamari)x(2^Zint),从而得到输入值X的Y次幂。
Description
技术领域
本发明涉及用于算术处理的装置、方法和计算机程序,并且具体而言涉及用于精确执行幂计算(power calculation)的装置、方法和计算机程序。
背景技术
运动图像专家组(MPEG)音频标准是一种已知的定义对音频信号编码的方法的标准。MPEG标准定义了多种编码方法。MPEG-2音频标准高级音频编码(AAC)被标准化为国际标准化组织/国际电工委员会(ISO/IEC)13818-7。
MPEG-4音频标准AAC编码方法被标准化为扩展ISO/IEC 14496-3。在下面的讨论中,MPEG-2音频标准AAC和MPEG-4音频标准AAC被总称为AAC标准。
图1图示了遵从AAC标准的现有技术中的编码器。
该编码器包括语音接收和听力模型存储装置11、增益控制器12、谱处理器13、量化器/编码单元14和复用器15。
输入到编码器的音频信号被提供到语音接收和听力模型存储装置11和增益控制器12两者。语音接收和听力模型存储装置11将输入信号组织为沿时间轴的块,根据人类听力特性按每个所分割的频带分析成块的音频信号,然后计算每个分割频带的可允许误差强度。
仅用于可变采样率(SSR)分布特性的增益控制器12将所提供的音频信号分割为四个均等间隔的频带,并且调节除了最低频带以外的其他频带的增益。
谱处理器13将经增益控制器12进行增益调节的音频信号转换为谱数据。谱处理器13还响应于从语音接收和听力模型存储装置11提供来的可允许误差强度而控制其每个元素,从而对谱数据执行预定处理。
谱处理器13包括经修正离散余弦变换(MDCT)单元21、时间噪声整形(TNS)处理单元22、强度耦合器23、预测器24和中间/两侧(M/S)立体声单元25。
MDCT单元21将从增益控制器12提供来的时域中的音频信号转换为频域中的谱数据。TNS处理单元22对MDCT单元21已将音频信号转换成的谱数据进行处理。TNS处理单元22因此调节量化噪声的时间形状。强度耦合器23对经TNS处理单元22处理的音频信号执行联合立体声编码处理。
预测器24对经强度耦合器23联合立体声编码的音频信号和由量化器27提供的音频信号执行预测编码处理。预测器24然后将所得到的音频信号提供到M/S立体声单元25。M/S立体声单元25对来自预测器24的音频信号进行联合立体声编码,并将所得到的音频信号提供到量化器/编码单元14。
量化器/编码单元14将来自M/S立体声单元25的音频信号转换为代码序列,然后将该代码序列提供到复用器15。量化器/编码单元14包括归一化系数单元26、量化器27和Huffman(哈夫曼)编码器28。
归一化系数单元26随后将来自M/S立体声单元25的音频信号提供到量化器27。归一化系数单元26还响应于来自M/S立体声单元25的音频信号而计算用于量化音频信号的归一化系数,然后将归一化系数提供到量化器27和Huffman编码器28中的每一个。例如,归一化系数单元26利用来自语音接收和听力模型存储装置11的可允许误差强度来计算量化步进参数,作为针对每个分割频带的归一化系数。
量化器27利用来自归一化系数单元26的归一化系数对来自归一化系数单元26的音频信号进行非线性量化。量化器27将所得到的音频信号(量化值)提供到Huffman编码器28和预测器24中的每一个。根据预定的Huffman代码表,Huffman编码器28向来自归一化系数单元26的归一化系数和来自量化器27的量化值中的每一个赋予Huffman代码,从而对归一化系数和量化值进行Huffman编码。经Huffman编码的归一化系数和量化值因此被提供到复用器15。
复用器15对从Huffman编码器28提供来的Huffman代码和在对由增益控制器12以及MDCT单元21至归一化系数单元26提供的音频信号的编码过程中生成的多种信息进行复用。复用器15因此生成并输出经编码音频信号的比特流。
量化器27通过响应于输入值AX(作为来自归一化系数单元26的音频信号的值)和量化步进参数q(作为来自归一化系数单元26的归一化系数)计算下面的等式(1)来对音频信号执行非线性量化处理。更具体而言,根据等式(1)由音频信号的输入值AX来确定量化值RZ:
其中(int)(A)表示通过对分数部分进行舍入来得到浮点数A的整数部分的操作。在下面的讨论中也是如此。
在AAC标准的编码中,量化值RZ被定义为14比特。反转操作表明在量化之前的值AY=AX/2q/4具有范围0≤AY<8191.5943(4/3)。量化值RZ是落入范围0≤RZ≤8191内的整数。量化步进参数q被确定为使得量化值RZ落入该范围内。
在音频信号的量化期间,量化器27对所有输入值AX的量化值RZ进行去量化,并且确定每个量化误差是否落入预定范围内。例如,根据下面的等式(2)执行去量化,并且因此获得去量化值W:
W=(RZ)4/3…(2)
量化误差是通过确定去量化值W和输入值AX之间的差异来确定的。因此确定该差异是否落入预定范围内。
公开了高效获得对等式(1)中3/4次幂的幂操作或者对等式(2)中4/3次幂的幂操作的结果的方法(日本未实审专利申请公布No.2001-5643)。根据该公开,作为浮点数的输入值X被分割为指数和尾数,并且确定针对算术值P的以2为底的对数值Z,其中算术值P是通过计算输入值X的Y次幂而获得的。然后,对数值Z被表达回使用2的幂的寻找算术值P。因此获得了输入值X的幂操作结果。
根据该公开,如下所述地执行幂操作。如果底是Napier常数或者2的倍数,则执行特定处理。下面描述除了针对这种底的特定处理以外的一般处理。
令P表示作为计算输入值Z的Y次幂的幂操作结果的算术值P,则下面的等式(3)成立:
P=XY …(3)
输入值X被分割为作为浮点数的尾数部分的尾数X1和作为浮点数的指数部分的指数X2,并且随后考虑计算输入值X的Y次幂的幂操作。
首先描述浮点数。指示单精度浮点类型数的浮点类型数据(基于电气和电子工程师协会(IEEE)754标准)被构造为32位比特序列,如图2所示。
从第零比特(作为浮点数的数据的最低有效位)到第22比特的23比特部分是作为浮点数的尾数部分的尾数X1。从第23比特到第30比特的8比特部分是浮点数的指数部分的指数X2。作为第31比特的最高有效位是符号位S。
如果尾数部分为正,则符号位S为“0”,而如果尾数部分为负,则符号位S为“1”。指数部分的比特结构是“指数+偏置”。作为指数部分的指数X2是实际指数值和偏置的总和。根据IEEE754标准,127被用作单精度偏置。如果指数值为“0”,则指数X2为“127”(=0+127)。指数部分具有127的比特结构,即0x7f。这里,0x意思是“7f”’是十六进制数。
0或255的指数部分具有特定含义,但是其讨论在这里被省略。
如果浮点类型数据的输入值X以数值形式表示,则输入值X被表示为下面的等式(4):
其中“.X1”表示具有小数点的尾数部分(前提是小数点被放置在尾数X1的高位之前)。另外在等式(4)中,“B”表示偏置分量,“S”表示符号位。
根据日本未实审专利申请公布No.2001-5643,作为浮点数的输入值X在幂操作之前被分割为尾数X1和指数X2。
令X1表示输入值X的尾数部分的尾数,X2表示输入值X的指数部分的指数,并且输入值X由等式(5)表示:
如果对等式(3)的两侧计算以2为底的对数,则等式(6)成立:
Z=log2P=Y{X2+log2(1+X1/223)} …(6)
令Zint表示对数值Z的整数部分,Zamari表示对数值Z的分数部分,并且算术值P由下面的等式(7)表示:
等式(7)中的整数Zint和分数Zamari是由等式(6)确定的。根据等式(6)和(7),从而确定了通过计算输入值X的Y次幂而得到的算术值P。
通过以这种方式执行幂操作而对音频信号进行量化的量化装置51在图3中示出。
量化装置51对应于图1中所示的量化器27。量化装置51接收量化之前的值AY(作为输入值X)和等式(1)中的幂指数Y=3/4。
尾数/指数分割器61将所提供的输入值X分割为尾数X1和指数X2,并且随后将尾数X1和指数X2提供到对数计算器62。对数计算器62接收幂指数Y。对数计算器62随后响应于从尾数/指数分割器61提供来的尾数X1和指数X2以及所提供的幂指数Y而计算等式(6),从而确定对数值Z。在该操作中,对数计算器62利用由尾数X1确定的索引index1来从对数尾数表存储单元63获取作为输入值X的尾数部分的对数值“log2(1+X1/223)”,并且替换等式(6)中的对数值log2(1+X1/223)。索引index1被用于将对数值标识为输入值X用于尾数X1的尾数部分。
对数尾数表存储单元63存储对数尾数表,该表针对尾数X1列出了输入值X的尾数部分的对数值。整数/分数分割器64将来自对数计算器62的对数值Z分割为整数Zint和分数Zamari。
幂计算器65利用来自整数/分数分割器64的Zint和分数Zamari来计算上述等式(7),从而获取作为浮点类型数据的算术值P。在该操作中,幂计算器65利用由分数Zamari确定的索引index2来获取以2为底、幂指数为分数Zamari的幂值2^Zamari,并且替换等式(7)中的幂值2^Zamari。索引index2被用于将幂值标识为2相对于分数Zamari的幂。
符号“^”表示幂值2^Zamari中的幂操作,在下面的讨论中也是如此。换句话说,2^Zamari意思是2的Zamari次幂。
分数幂次表存储单元66存储分数幂次表,该表列出了以2为底、相对于值Zamari的幂值。整数转换器67提取出一个数的整数部分,该数是通过向由幂计算器65确定的算术值P添加预定常数值α而得到的。整数转换器67输出作为输入值X的量化值RZ的所提取整数部分。在这种情况下,常数α在等式(1)中是“-0.0946+0.5”。
下面参考图4中所示的流程图讨论量化装置51的量化处理。
在步骤S11中,对数尾数表存储单元63和分数幂次表存储单元66分别生成对数尾数表和分数幂次表。
对数尾数表存储单元63生成由等式(8)所表示的输入值X的尾数部分的对数值logtable[i]所组成的对数尾数表,其中对数尾数表的表大小为2N=SIZE:
logtable[i]=log2(1+i/SIZE),i=0,...,SIZE-1…(8)
其中表大小SIZE是由N比特数据表示的数的计数。对数值logtable[i]是针对表大小SIZE的计数准备的。对数值logtable[i]的变量“i”指示由尾数X1确定的索引index1的值,并且为i=0,...,(SIZE-1)。
在2N=SIZE表示分数幂次表的表大小的情况下,分数幂次表存储单元66生成由幂值twotable[i]所组成的分数幂次表,该幂值twotable[i]以2为底、分数Zamari作为幂指数,如等式(9)所示:
twotable[i]=2(i/SIZE),i=0,...,SIZE-1…(9)
其中幂值twotable[i]的变量“i”指示由分数Zamari确定的索引index2的值,并且为i=0,...,(SIZE-1)。
在步骤S12中,尾数/指数分割器61确定所提供的输入值X的尾数X1和指数X2。
在步骤S13中,对数计算器62利用来自尾数/指数分割器61的尾数X1和指数X2来计算等式(6),从而确定对数值Z。
更具体而言,对数计算器62利用尾数X1来计算等式(10),从而确定从尾数X1的第22比特起的高N比特的值作为索引index1。利用索引index1,对数计算器62还根据下面的等式(11)来确定对数值logtable[index1]作为输入值X的尾数部分:
index1=X1>>(23-N)…(10)
log2(1+X1/223)=logtable[index1]…(11)
在等式(10)中,“>>”表示右移操作。由于尾数X1为32比特,因此如果尾数X1被右移(23-N)比特,则可以提取尾数X1的高N比特的值。
对数计算器62从对数尾数表存储单元63获取对数值logtable[index1]。对数值logtable[index1]具有作为变量i的索引index1,其中从尾数X1提取的高N比特的值为索引index1。所获取的对数值logtable[index1]是输入值X的尾数部分的对数值(log2(1+X1/223))。
对数计算器62将来自尾数/指数分割器61的指数X2、所提供的幂指数Y和所确定的算术值代入等式(6)中,从而确定对数值Z。
在步骤S14中,整数/分数分割器64将来自对数计算器62的对数值Z分割为整数Zint和分数Zamari。更具体而言,整数/分数分割器64计算下面的等式(12)和(13),从而确定整数Zint和分数Zamari:
Zamari=(int)((Z-(int)Z)×223)…(13)
如果在等式(12)中对数值Z等于或大于零,则提取对数值Z的整数部分并视为整数Zint。如果对数值Z小于零,则提取对数值Z的整数部分,并且从所提取的整数部分中减去1。所得到的值被视为整数Zint。
在等式(13)中,通过从对数值Z中减去对数值Z的整数部分而得到的值(差异)被乘以223。所得乘积的整数部分为分数Zamari。换句话说,通过确定对数值Z和对数值Z的整数部分之间的差异来计算对数值Z的分数部分。将该分数部分乘以223,并且因此提取所得乘积的整数部分。对数值Z的分数部分因此被转换为小数点被放置在第23比特的固定点数。
在步骤S15中,幂计算器65基于来自整数/分数分割器64的整数Zint和分数Zamari来确定算术值P。
更具体而言,通过计算等式(14)和(15),幂计算器65确定索引index2,然后根据等式(16)确定使用索引index2、以2为底的幂值(2^Zamari):
index2’=Zamari>>(23-N) …(14)
index2=index2’ & (SIZE-1) …(15)
等式(14)中的符号“>>”表示右移操作,并且等式(15)中的符号“ & ”表示AND(与)门操作。
幂计算器65通过将分数Zamari右移(23-N)比特来由分数Zamari的第(23-N)比特提取出分数Zamari的高位比特的值作为索引index2’。分数Zamari是固定点数,其小数点根据等式(13)在第23比特处。如果分数Zamari被右移(23-N)比特,则提取出从分数Zamari的分数部分的第(23-N)比特起的高位比特的值。
幂计算器65通过对这样计算的索引index2’和(SIZE-1)进行AND门操作来确定N比特的索引index2,并利用索引index2作为其变量i从分数幂次表存储单元66中取得幂值twotable[index2]。这样取得的幂值twotable[index2]是以2为底的幂值2^Zint。
幂计算器65利用来自整数/分数分割器64的整数Zint来计算等式(17),从而确定以2为底、整数Zint为幂指数的幂值2^Zint:
其中符号“<<”表示左移操作。更具体而言,幂计算器65向整数Zint添加偏置分量“127”以将幂值(2^Zint)转换为在IEEE754标准中定义的浮点格式的数据,然后将该总和左移23比特。左移操作被执行23比特是因为浮点数的指数部分是浮点数据的第30比特到第23比特的一部分。
这样获得了幂值(2^Zamari)和幂值(2^Zint)。幂计算器65计算等式(18)来确定算术值P。
在步骤S16中,整数转换器67利用由幂计算器65确定的算术值P来确定输入值X的量化值RZ并输出该量化值RZ。因此量化处理结束。
更具体而言,整数转换器67基于算术值P和预定常数α来计算等式(19),从而确定量化值RZ。
RZ=(int)(P+α) …(19)
量化装置51以这种方式计算了输入值X的幂值和量化值RZ。
发明内容
上述技术存在难以以精确方式、用少量存储器来执行幂计算的问题。
例如,利用一组L单位数据可以计算下面的等式(20),每组包括由量化装置51计算的幂值的算术值P和利用数学库计算的幂值Q以计算在幂计算精度的评价中的相对误差均值T:
其中Pi表示由量化装置51计算的算术值P的第i个样本,并且Qi表示与通过数学库确定的Pi相对应的数。
本发明的发明人利用L=8192来计算等式(20)以评价量化装置51对算术值P的计算精度。在表大小2N中的N为8(即,SIZE=256)的情况下,相对误差均值为T=5.45×10-3,这意味着所得到的精度水平并不很高。在表大小2N中的N为16(即,SIZE=65536)的情况下,相对误差均值为T=5.10×10-6,这意味着所得到的精度水平高于N=8的情况。
为了增大幂计算的精度,对数尾数表和分数幂次表中每一个的表大小必须增大。存储这些表的存储器容量变得不足。如果每个表的大小减小,则幂计算的精度水平降低。
当根据等式(1)来对音频信号进行量化时,算术值P是通过幂计算来确定的。常数α被添加到算术值P,接着进行整数化操作。幂值的整数的确定并不是一项容易的操作。
因此希望以简单且精确的方式、利用少量的存储器来执行幂计算。还希望很容易地确定幂值的整数。
根据本发明的一个实施例,提供了一种用于确定算术值P的算术处理装置,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数,该算术处理装置包括:尾数/指数分割装置,用于将浮点类型数据的输入值X分割为尾数X1和指数X2,尾数X1是表示浮点数的输入值X的尾数的尾数部分,指数X2是表示浮点数的输入值X的指数的指数部分;第一记录装置,用于记录针对所述尾数X1确定的、所述输入值X的尾数的以所述常数M为底的对数值;插值装置,用于对响应于尾数X1而从第一记录装置取得的多个对数值执行插值处理以确定尾数的最终对数值;对数计算装置,用于基于变量Y、指数X2和由插值装置确定的尾数的对数值来计算以常数M为底的算术值P的对数值Z;以及幂计算装置,用于通过计算常数M的Z次幂来计算算术值P,其中作为指数的Z是算术值P的对数值Z。
该算术处理装置还可包括整数/分数分割装置,用于将算术值P的对数值Z分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari;以及第二记录装置,用于记录通过计算所述常数M的Zamari次幂而确定的所述常数M的幂值,其中作为指数的Zamari是所述分数部分。幂计算装置基于整数Zint和响应于分数Zamari而从第二记录装置取得的常数M的幂值来计算算术值P。
插值装置可以对通过响应于分数Zamari而从第二记录装置取得的多个幂值执行插值处理来确定常数M的最终幂值,并且幂计算装置可以基于由插值装置确定的常数M的幂值和整数Zint来计算算术值P。
根据本发明的一个实施例,提供了一种用于使得算术处理装置确定算术值P的程序和方法之一,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数,该程序和方法包括以下步骤:将浮点类型数据的输入值X分割为尾数X1和指数X2,尾数X1是表示浮点数的输入值X的尾数的尾数部分,指数X2是表示浮点数的输入值X的指数的指数部分;对针对尾数X1确定的、以常数M为底的输入值X的尾数的多个对数值执行插值处理以确定尾数的最终对数值;基于变量Y、指数X2和在插值处理中确定的尾数的对数值来计算以常数M为底的算术值P的对数值Z;以及通过计算常数M的Z次幂来计算算术值P,其中作为指数的Z是对数值Z。
该算术处理装置确定算术值P,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数。浮点类型数据的输入值X被分割为尾数X1和指数X2,尾数X1是表示浮点数的输入值X的尾数的尾数部分,指数X2是表示浮点数的输入值X的指数的指数部分。对针对尾数X1确定的、以常数M为底的输入值X的尾数的多个对数值执行插值处理以确定尾数的最终对数值。基于变量Y、指数X2和在插值处理中确定的尾数的对数值来计算以常数M为底的算术值P的对数值Z。通过计算常数M的Z次幂来计算算术值P,其中作为指数的Z是算术值P的对数值Z。
根据本发明的一个实施例,提供了一种用于确定算术值P的算术处理装置,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数,该算术处理装置包括:对数计算装置,用于基于输入值X和变量Y来计算以常数M为底的算术值P的对数值Z;整数/分数分割装置,用于将算术值P的对数值Z分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari;第一记录装置,用于记录常数M的Zamari次幂的幂值,其中作为指数的Zamari是分数Zamari;插值装置,用于对响应于分数Zamari而从第一记录装置取得的多个对数值执行插值处理以确定常数M的最终幂值;以及幂计算装置,用于基于由插值装置确定的常数M的幂值和整数Zint、通过计算常数M的Z次幂来计算算术值P,其中作为指数的Z是对数值Z。
该算术处理装置还可包括尾数/指数分割装置,用于将浮点类型数据的输入值X分割为尾数X1和指数X2,尾数X1是表示浮点数的输入值X的尾数的尾数部分,指数X2是表示浮点数的输入值X的指数的指数部分。对数计算装置基于尾数X1、指数X2和变量Y来计算算术值P的对数值Z。
该算术处理装置还可包括第二记录装置,用于记录针对尾数X1确定的、输入值X的尾数的以常数M为底的对数值。对数计算装置基于变量Y、指数X2和响应于尾数X1而从第二记录装置取得的尾数的对数值来计算算术值P的对数值Z。
根据本发明的一个实施例,提供了一种用于使得算术处理装置确定算术值P的程序和方法之一,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数,该程序和方法包括以下步骤:基于输入值X和变量Y来计算以常数M为底的算术值P的对数值Z;将算术值P的对数值Z分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari;对通过计算常数M的Zamari次幂而计算出的常数M的多个幂值执行插值处理,以确定常数M的最终幂值,其中作为指数的Zamari是分数Zamari;以及基于在插值处理中确定的常数M的幂值和整数Zint、通过计算常数M的Z次幂来计算算术值P,其中作为指数的Z是对数值Z。
该算术处理装置确定算术值P,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数。基于输入值X和变量Y来计算以常数M为底的算术值P的对数值Z。算术值P的对数值Z被分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari。通过对常数M的分数Zamari次幂的多个幂值执行插值处理来确定常数M的最终幂值。基于在插值处理中确定的常数M的幂值和整数Zint、通过计算常数M的Z次幂来计算算术值P,其中作为指数的Z是算术值P的对数值Z。
根据本发明的一个实施例,提供了一种用于确定算术值P的整数的算术处理装置,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数,该算术处理装置包括:对数计算装置,用于基于输入值X和变量Y来计算以常数M为底的算术值P的对数值Z;整数/分数分割装置,用于将算术值P的对数值Z分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari;以及幂整数转换装置,用于通过对指示常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是分数Zamari,并且所述比特数是通过从固定点数据中从固定点数据的最低有效位到固定点数据的小数点位置的比特数减去所述整数Zint而获得的。
该算术处理装置还可包括记录装置,用于记录通过计算常数M的Zamari次幂而确定的常数M的幂值,其中作为指数的Zamari是分数Zamari。幂整数转换装置基于整数Zint和响应于分数Zamari而从记录装置取得的常数M的幂值来确定算术值P的整数。
该算术处理装置还可包括插值装置,用于对响应于分数Zamari而从记录装置取得的多个幂值执行插值处理以确定常数M的最终幂值。幂整数转换装置基于由插值装置确定的常数M的幂值和整数Zint来确定算术值P的整数。
根据本发明的一个实施例,提供了一种用于使得算术处理装置确定算术值P的整数的程序和方法之一,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数,该程序和方法包括以下步骤:基于输入值X和变量Y来计算以常数M为底的算术值P的对数值Z;将算术值P的对数值Z分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari;以及通过对指示所述常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是所述分数Zamari,并且所述比特数是通过从所述固定点数据中从所述固定点数据的最低有效位到所述固定点数据的小数点位置的比特数减去所述整数Zint而获得的。
算术处理装置确定算术值P的整数,算术值P是输入值X的Y次幂,其中变量Y为指数,并且输入值X由以M为底的系统表示,M是预定常数。基于输入值X和变量Y来确定以常数M为底的算术值P的对数值Z。算术值P的对数值Z被分割为作为对数值Z的整数部分的整数Zint和作为对数值Z的分数部分的分数Zamari。通过对指示所述常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是所述分数Zamari,并且所述比特数是通过从所述固定点数据中从所述固定点数据的最低有效位到所述固定点数据的小数点位置的比特数减去所述整数Zint而获得的。
根据本发明的实施例,利用少量的存储器很容易地执行了高精度的幂计算。
根据本发明的实施例,很容易地计算了幂值的整数。
附图说明
图1图示了现有技术的编码装置的结构;
图2图示了指示单精度浮点数的浮点类型数据结构;
图3图示了现有技术的量化装置;
图4是图示现有技术的量化装置的量化处理的流程图;
图5图示了根据本发明一个实施例的算术处理装置;
图6是图示幂计算处理的流程图;
图7图示了用于获得幂值的浮点类型数据的一部分;
图8图示了线性插值处理;
图9图示了二次插值处理;
图10图示了相对误差均值;
图11图示了相对误差均值;
图12图示了另一种算术处理装置;
图13是图示幂计算处理的流程图;
图14图示了对数计算处理器;
图15是图示对数计算处理器的对数计算处理的流程图;
图16图示了另一种对数计算处理器;
图17是图示对数计算处理器的对数计算处理的流程图;
图18图示了另一种对数计算处理器;
图19图示了对数计算处理器的对数计算处理;
图20是图示幂计算处理器的流程图;
图21是图示幂计算处理器的幂计算处理的流程图;
图22图示了幂计算处理器;
图23是图示幂计算处理器的幂计算处理的流程图;
图24图示了幂计算处理器;
图25是图示幂计算处理器的幂计算处理的流程图;
图26图示了算术处理装置;
图27是图示算术处理装置的幂计算处理的流程图;
图28图示了算术处理装置;
图29是图示算术处理装置的幂计算处理的流程图;
图30图示了绝对误差均值;
图31图示了算术处理装置;
图32是图示算术处理装置的幂计算处理的流程图;
图33图示了算术处理装置;
图34是图示算术处理装置的幂计算处理的流程图;
图35图示了算术处理装置;
图36是图示算术处理装置的幂计算处理的流程图;以及
图37图示了计算机的结构。
具体实施方式
下面参考附图描述本发明的实施例。
第一实施例
下面描述由本发明第一实施例的算术处理装置执行的算术处理方法。
本发明第一实施例的算术处理装置根据IEEE754标准将所提供的输入值X分割为尾数X1和指数X2,然后确定输入值X的Y次幂。更具体而言,该算术处理装置计算上述等式(6)和(7),然后确定算术值P,算术值P是输入值X的Y次幂。
尾数X1是表示输入值X的尾数的尾数部分,指数X2是表示输入值X的指数的指数部分。另外,当输入值X由如等式(5)所示的浮点数表示时,输入值X的尾数是尾数部分(1+X1/223)。
当确定了算术值P时,算术处理装置利用对数尾数表通过插值处理获得对数值(log2(1+X1/223)),以作为输入值X的尾数部分。对数尾数表包含指示对于尾数X1输入值X的尾数部分的对数值的表值。整数Zint和分数Zamari现在分别表示等式(6)中对数值Z的整数部分和分数部分。算术处理装置利用分数幂次表通过插值处理获得幂值2^Zamari。分数幂次表列出了指示对于分数Zamari以2为底的幂值的表值。
图5图示了本发明第一实施例的算术处理装置91。
算术处理装置91包括尾数/指数分割器101、对数尾数表存储单元102、分数幂次表存储单元103、插值处理器104、对数计算器105、整数/分数分割器106、幂计算器107和整数转换器108。在算术处理装置91中,尾数/指数分割器101接收输入值X,对数计算器105接收幂指数Y。
尾数/指数分割器101根据IEEE754标准将所提供的输入值X分割为尾数X1和指数X2,将尾数X1提供到插值处理器104,并将指数X2提供到对数计算器105。
对数尾数表存储单元102存储对数尾数表。分数幂次表存储单元103存储分数幂次表。插值处理器104从对数尾数表存储单元102的对数尾数表中取得由来自尾数/指数分割器101的尾数X1所标识的表值,并对该表值执行插值处理。插值处理器104随后将所得到的输入值X的尾数部分的对数值提供到对数计算器105。
插值处理器104从分数幂次表存储单元103的分数幂次表中取得由来自整数/分数分割器106的分数Zamari所标识的表值,对该表值执行插值处理并将所得到的幂值提供到幂计算器107。
对数计算器105基于来自尾数/指数分割器101的指数X2、所提供的幂指数Y和来自插值处理器104的对数值来计算以2为底的算术值P的对数值Z。对数计算器105随后将对数值Z提供到整数/分数分割器106。整数/分数分割器106将来自对数计算器105的对数值Z分割为整数Zint和分数Zamari,将整数Zint提供到幂计算器107,并将分数Zamari提供到插值处理器104。
幂计算器107基于来自整数/分数分割器106的整数Zint和来自插值处理器104的幂值来计算算术值P。幂计算器107随后将算术值P提供到整数转换器108。整数转换器108提取出通过向来自幂计算器107的算术值P添加预定常数α而获得的值的整数部分,并输出所提取的整数部分。
例如,如果在等式(1)中输入值X为(AX/2q/4),幂指数Y为3/4,并且常数α为“-0.0946+0.5”,则算术处理装置91对应于图1中所示的量化器27。在这种情况下,算术处理装置91对作为输入音频信号的输入值X进行非线性量化。
如果输入值X=0.0,则浮点数是特殊的。算术值P被确定为P=0.0Y=0。
下面参考图6中所示的流程图来描述算术处理装置91的幂计算处理。
在步骤S41中,对数尾数表存储单元102生成对数尾数表。例如,如果插值处理器104执行二次插值作为插值处理,则对数尾数表存储单元102将对数尾数表中的表大小设置为2N+2=SIZE+2。对数尾数表存储单元102生成具有在下面的等式(21)中表达的表值logtable[i]的对数尾数表:
logtable[i]=log2(1+i/SIZE),i=0,...,SIZE+1 …(21)
表值logtable[i]的变量i是由尾数X1确定的,并且指示用于标识表值logtable[i]的索引index1的值。变量i为i=0,...,(SIZE+1)。这样就准备了等于表大小的数目(SIZE+2)的数的表值logtable[i]。
例如,如果索引index1是尾数X1的若干高位比特的值,则等式(21)中的“log2(1+i/SIZE)”是作为输入值X的尾数部分的对数值(log2(1+X1/223))的近似值,该对数值对于尾数X1以2为底。
对数尾数表存储单元102确定响应于(SIZE+2)的单位的变量i的表值logtable[i],从而生成并存储对数尾数表,该对数尾数表将每个变量i映射到相应表值logtable[i]。
如果插值处理器104执行线性插值作为插值处理,则对数尾数表中的表大小为2N+1=SIZE+1。因此获得了由等式(21)中的表值logtable[i]组成的对数尾数表。
在步骤S42中,分数幂次表存储单元103生成分数幂次表。如果插值处理器104执行二次插值作为插值处理,则分数幂次表存储单元103将分数幂次表的表大小设置为2N+2=SIZE+2。分数幂次表存储单元103生成由在下面的等式(22)中表达的表值twotable[i]组成的分数幂次表:
twotable[i]=2(i/SIZE),i=0,...,SIZE+1 …(22)
表值twotable[i]的变量i是由分数Zamari确定的,并且指示用于标识表值twotable[i]的索引index2的值。变量i为i=0,...,(SIZE+1)。准备了等于表大小(SIZE+2)的数的表值twotable[i]。
例如,如果索引index2是分数Zamari的若干高位比特的值,则等式(22)中的2(i/SIZE)是以2为底、分数Zamari为幂指数的幂值2^Zamari的近似值。
分数幂次表存储单元103针对(SIZE+2)的单位中的每个变量i确定表值twotable[i],并且生成并存储分数幂次表,该表将每个变量i映射到相应表值twotable[i]。
如果插值处理器104执行线性插值作为插值处理,则分数幂次表中的表大小为2N+1=SIZE+1。因此生成了由等式(22)中的表值twotable[i]组成的分数幂次表。
如果生成对数尾数表和分数幂次表的处理在输入值X的幂计算之前被执行一次,则这就足够了。一旦生成了对数尾数表和分数幂次表,当执行输入值X的幂计算时,就可使用所生成的对数尾数表和分数幂次表。
在步骤S43中,尾数/指数分割器101确定所提供的输入值X的尾数X1和指数X2,将所确定的尾数X1提供到插值处理器104,并将所确定的指数X2提供到对数计算器105。
根据IEEE754标准的浮点数(即,指示等式(5)中的尾数X1和指数X2的整数类型数据)的尾数部分和指数部分是输入值X的尾数X1和指数X2的数据。换句话说,图2中所示浮点类型数据中从第零比特到第22比特的部分是尾数X1,并且通过从第30比特到第23比特的部分中减去偏置值而获得的值是指数X2。
在步骤S44中,插值处理器104利用来自尾数/指数分割器101的尾数X1执行插值处理,从而确定内插值(log2(1+X1/223)),作为在等式(6)中指示的输入值X的尾数部分的对数值。插值处理器104因此将内插值(log2(1+X1/223))提供到对数计算器105。
更具体而言,插值处理器104计算等式(23),从而确定从第22比特起的尾数X1的高N比特作为索引index1:
index1=X1>>(23-N) …(23)
在等式(23)中,符号“>>”表示右移操作。例如,如图2所示,尾数X1为23比特值。如果尾数X1被右移(23-N)比特,则可以提取尾数X1的高N比特的值。
插值处理器104计算等式(24),从而确定尾数X1中从第(22-N)比特到第零比特的部分的低位比特值Xh1。
Xh1=X1 & (223-N-1) …(24)
其中符号“ & ”表示AND门操作,在下面的讨论中也是如此。等式(24)表明尾数X1中从第(22-N)比特到第零比特的部分来自于作为二进制数据的尾数X1与(223-N-1)的AND门操作。在(223-N-1)中,低位的第(23-N)比特的值为“1”,其他比特为“0”。AND门操作因此仅提取尾数X1的低位第(23-N)比特的值。
如图7所示,算术处理装置91基于在尾数部分(尾数X1)的浮点数数据的第22比特到第零比特中的从第22比特起的高N比特来生成索引index1。由所生成的索引index1标识的表值被从对数尾数表中取得,作为对于尾数X1指示输入值X的尾数部分的对数值。
由于该表值是基于尾数X1的高N比特获得的对数值的近似值,因此该近似值包含一个误差。插值处理器104因此利用从尾数X1的第22比特起的高N比特来获得表值,并对剩余的(23-N)比特(即,尾数X1中从第(22-N)比特到第零比特)执行插值处理,以获得最终的对数值。在不增大对数尾数表的表大小的情况下,增大了幂计算处理的精度。
如图7所示,通过从浮点数数据的第30比特到第23比特的8比特部分中提取偏置值而得到的值被提取作为指数X2的整数类型数据。
返回对图6中所示的流程图的讨论,确定了索引index1和低位值Xh1。插值处理器104向应于由索引index1和低位值Xh1标识的对数尾数表的表值来执行插值处理。
如果执行线性插值作为插值处理,则插值处理器104计算下面的等式(25)和(26)以确定对数值的表值V10和V11,以作为输入值X的尾数部分:
V10=logtable[index1] …(25)
V11=logtable[index1+1] …(26)
插值处理器104随后从对数尾数表存储单元102的对数尾数表中取得对数值logtable[index1]作为表值V10,其中变量i为索引index1。类似地,插值处理器104从对数尾数表存储单元102的对数尾数表中取得对数值logtable[index1+1]作为表值V11,其中变量i为索引index1+1。
插值处理器104通过利用低位值Xh1、表值V10和表值V11计算等式(27)来执行插值处理。插值处理器104因此确定了以2为底的输入值X的尾数部分的对数值的内插值(log2(1+X1/223)):
log2(1+X1/223)=a×xin+V10 …(27)
其中“a”和变量“xin”分别由等式(28)和(29)表示:
a=V11-V10 …(28)
xin=Xh1/223-N …(29)
如果执行线性插值作为插值处理,则对数值相对于索引的梯度“a”是利用表值V10作为原点来确定的,如图8所示。以xin作为索引index1的对数值因此被插值。参考图8,纵坐标表示对数值,横坐标表示索引index1的值。
如果执行二次插值作为插值处理,则插值处理器104计算下面的等式(30)以及等式(25)和(26)。插值处理器104因此确定了输入值X的尾数部分的对数值的表值V10至Vi2:
V12=logtable[index1+2] …(30)
更具体而言,插值处理器104从对数尾数表存储单元102的对数尾数表中取得表值V12以及表值V10和V11。这里,变量i为索引index1+2的对数值logtable[index1+2]被取得作为表值V12。
插值处理器104通过利用低位值Xh1、表值V10至表值V12计算等式(31)来执行二次插值。插值处理器104因此确定了以2为底的对数值的内插值(log2(1+X1/223))作为输入值X的尾数部分:
log2(1+X1/223)=a×xin×xin+b×xin+V10 …(31)
其中“a”、“b”和“xin”分别由等式(32)、(33)和(34)表示:
a=0.5(V12-V10)-(V11-V10) …(32)
b=(V11-V10)-a …(33)
xin=Xh1/223-N …(34)
当执行二次插值作为插值处理时,要乘以xin(作为由低位值Xh1确定的索引)的平方的系数“a”和要乘以xin的系数“b”是如图9所示确定的,其中表值V10用作原点。具有以xin的值作为索引index1的对数值因此被确定为经插值的对数值。参考图9,纵坐标表示对数值,横坐标表示索引值。
如果不执行插值处理,则插值处理器104将根据等式(25)确定的表值V10设置为对数值的内插值(log2(1+X1/223)),作为输入值X的尾数部分。
这样确定的对数值的内插值(log2(1+X1/223))是输入值X的尾数部分的最终对数值(log2(1+X1/223)),并且随后被从插值处理器104提供到对数计算器105。
在步骤S45中,对数计算器105基于来自尾数/指数分割器101的指数X2、来自插值处理器104的对数值(log2(1+X1/223))和所提供的幂指数Y来计算等式(6),从而确定对数值Z。因此确定了以2为底的算术值P的对数值Z。对数计算器105将计算出的对数值Z提供到整数/分数分割器106。对数值Z是浮点数类型的二进制数据。
在步骤S46中,整数/分数分割器106确定来自对数计算器105的对数值Z的整数Zint和分数Zamari。整数/分数分割器106随后将整数Zint提供到幂计算器107,并将分数Zamari提供到插值处理器104。
更具体而言,整数/分数分割器106根据下面的等式(35)来利用对数值Z确定整数Zint:
如果对数值Z等于或大于零,则对数值Z的整数部分被提取并被视为整数Zint。如果对数值Z小于零,则对数值Z的整数部分被提取。通过从整数部分中减去1而获得的值被视为整数Zint。
整数/分数分割器106还根据下面的等式(36)来利用对数值Z确定分数Zamari:
Zamari=(int)((Z-(int)Z)×223) …(36)
在等式(36)中,通过从对数值Z中减去对数值Z的整数部分而获得的值(差异)被乘以223,并且所得乘积的整数部分变为分数Zamari。换句话说,确定对数值Z和对数值Z的整数部分之间的差产生了对数值Z的分数部分的值。所得到的分数部分被乘以223,并且从所得乘积中提取出整数部分。这样,对数值Z的分数部分被转换为小数点被放置在第23比特的固定点数,即,固定点类型数据。
在步骤S47中,插值处理器104基于来自整数/分数分割器106的分数Zamari执行插值处理,从而确定2的分数Zamari(作为幂指数)次幂的幂值的内插值。
更具体而言,插值处理器104计算等式(37)和(38),从而提取固定点分数Zamari中超过第22比特的高N比特的值作为索引index2:
index2’=Zamari>>(23-N) …(37)
index2=index2’ & (SIZE-1) …(38)
在等式(37)中,符号“>>”表示右移操作,并且符号“ & ”表示AND门操作。
插值处理器104通过将分数Zamari右移(23-N)比特来提取分数Zamari中超过第(23-N)比特的高位比特的值作为索引index2’。等式(36)的计算表明分数Zamari是小数点在第23比特处的固定点数。如果分数Zamari被右移(23-N)比特,则分数Zamari中超过第(23-N)比特的分数部分的高位比特的值被提取。插值处理器104对这样获得的索引index2’和(SIZE-1)执行AND门操作,从而确定N比特索引index2。
而且,插值处理器104计算下面的等式(39),从而确定低位值Xh2,低位值Xh2是从第(22-N)比特到第零比特的部分的值:
Xh2=Zamari & (223-N-1) …(39)
在等式(39)中,与等式(24)中一样,对二进制数据分数Zamari和(223-N-1)执行AND门操作,从而提取分数Zamari中从第(22-N)比特到第零比特的部分。
当确定了索引index2和低位值Xh2时,插值处理器104对由索引index2和低位值Xh2标识的分数幂次表的表值执行插值处理。
如果执行线性插值作为插值处理,则插值处理器104计算等式(40)和(41),从而确定2的分数Zamari(作为幂指数)次幂的幂值的表值V20和V21:
V20=twotable[index2] …(40)
V21=twotable[index2+1] …(41)
更具体而言,插值处理器104从分数幂次表存储单元103的分数幂次表中取得以索引index2和index2+1作为变量i的表值twotable[index2]和twotable[index2+1]作为表值V20和V21。因此从分数幂次表中取得了索引index2的两个接近表值V20和V21。
由等式(38)表示的AND门操作和等式(35)中从负对数值Z的整数减去1的减法操作等同于以下操作。更具体而言,由等式(38)和(35)表示的操作等同于这样一种操作,其中,如果对数值Z=(整数Zint+分数Zamari)中的分数Zamari为负,则从对数值Z的整数Zint中减去1,并向对数值Z的分数Zamari添加1。
该操作减少了当从分数幂次表中取得由索引index2标识的表值(幂值)时所使用的条件分叉的数目。因此更快地获得了表值。
日本未实审专利申请公布No.2004-172700公开了一种减少表查找中的条件分叉的技术。根据该公开,当计算2的幂时,使用了一种表,其幂指数被分割为分数和整数。如果幂指数为负,则向分数添加1,并且从整数中减去1。
这样确定了低位值Xh2、表值V20和表值V21。插值处理器104通过基于低位值Xh2、表值V20和表值V21计算等式(42)来执行插值处理。插值处理器104因此确定了2的分数Zamari(作为幂指数)次幂的内插值(2^Aamari):
其中“a”和变量“xin”分别由等式(43)和(44)表示:
a=V21-V20 …(43)
xin=Xh2/223-N …(44)
如果执行线性插值作为插值处理,则幂值的梯度“a”是以与图8中所示相同的方式、利用表值V20作为原点参考索引确定的。以xin作为索引index2的值的幂值因此被确定为插值幂值。
如果执行二次插值作为插值处理,则插值处理器104计算下面的等式(45)以及等式(40)和(41)。插值处理器104因此确定了2的分数Zamari(作为幂指数)次幂的幂值的表值V20至表值V22:
V22=twotable[index2+2] …(45)
与表值V20和表值V21一同,插值处理器104从分数幂次表存储单元103的分数幂次表中取得以索引index2+2作为变量i的表值twotable[index2+2]以作为表值V22。
插值处理器104通过利用低位值Xh2、表值V20至表值V22计算等式(46)来执行二次插值。插值处理器104因此确定了2的分数Zamari(作为幂指数)次幂的幂值的内插值(2^Aamari):
其中“a”、“b”和“xin”分别由等式(47)-(49)表示:
a=0.5(V22-V20)-(V21-V20) …(47)
b=(V21-V20)-a …(48)
xin=Xh2/223-N …(49)
当执行二次插值作为插值处理时,要乘以值win(由低位值Xh2确定)的平方的系数“a”和要乘以值win的系数“b”是以与图9中所示相同的方式、利用表值V20作为原点来确定的。以xin作为索引index2的幂值因此被确定为内插值。
如果不执行插值处理,则插值处理器104将通过等式(40)获得的表值V20设置为内插值(2^Aamari),该内插值(2^Aamari)是2的分数Zamari(作为幂指数)次幂的幂值。
这样确定为幂值的内插值(2^Aamari)被从插值处理器104提供到幂计算器107,作为2的分数Zamari(作为幂指数)次幂的最终幂值。
在步骤S48中,幂计算器107基于来自插值处理器104的幂值(2^Aamari)和来自整数/分数分割器106的整数Zint来计算算术值P。
更具体而言,幂计算器107利用整数Zint计算等式(50),从而确定2的整数Zint(作为幂指数)次幂的幂值的幂值(2^Zint):
在等式(50)中,符号“<<”表示左移操作。更具体而言,幂计算器107向整数Zint添加偏置分量“127”,然后将该总和左移23比特,以使得幂值(2^Zint)成为由IEEE754标准定义的浮点类型格式的数据。
执行左移操作是因为浮点数的指数部分是浮点类型数据中从第30比特到第23比特的部分。因此得到了以“Zint+127”作为指数部分的浮点类型数据。
获得了幂值(2^Zamari)和幂值(2^Zint)。幂计算器107将这些幂值代入等式(51)中,从而计算算术值P。所得到的算术值P随后被提供到整数转换器108。所得到的算术值P是浮点类型数据:
在步骤S49中,整数转换器108对算术值P进行整数化并且输出经整数化的算术值P。幂计算处理因此结束。
更具体而言,整数转换器108计算等式(52),从而确定通过向算术值P添加常数α而得到的值的整数部分。作为经整数化的算术值P的所得值随后被提供作为输出值:
输出值=(int)(P+α)...(52)
算术处理装置91基于来自对数尾数表和分数幂次表的表值来执行插值处理,然后根据通过插值处理获得的对数值和幂值确定算术值P。
通过插值处理进行的算术值P的确定很容易地增大了幂计算的精度,而不会增大对数尾数表和分数幂次表的表大小。减少了存储用于幂计算的表的存储器的存储器容量,并且很容易地增大了幂计算的精度。
本发明的发明人根据通过计算等式(20)确定的相对误差均值T评价了算术处理装置91的幂计算的精度。图10列出了评价结果。
图10列出了对数尾数表和分数幂次表的经插值和未经插值的值的相对误差均值T,其中对数尾数表和分数幂次表中每一个的表大小N为8(即,SIZE=256)并且L=8192条数据。
标签“幂(无插值)”指示在不插值的情况下分数幂次表中的值被用于计算算术值P。标签“幂(线性插值)”指示分数幂次表中的值被线性插值并且被用于计算算术值P。标签“幂(二次插值)”指示分数幂次表中的值被二次插值并且被用于计算算术值P。
类似地,“对数(无插值)”指示在不插值的情况下对数尾数表中的值被用于计算算术值P。标签“对数(线性插值)”指示对数尾数表中的值被线性插值并被用于计算算术值P。标签“对数(二次插值)”指示对数尾数表中的值被二次插值并被用于计算算术值P。
图10表明,对对数尾数表中的值和分数幂次表中的值中的至少一个执行的插值处理增大了幂值(更详细地说,幂值的整数)的计算精度。例如,如果对对数尾数表中的值和分数幂次表中的值两者都执行线性插值,则相对误差均值T为T=1.71×10-6。如果对对数尾数表中的值和分数幂次表中的值两者都执行二次插值,则相对误差均值T为T=1.99×10-7。
对这两种表值执行线性插值和二次插值之一的精度提供了与现有技术的量化装置51相比明显增大的精度,现有技术的量化装置51提供了在N=16(即,表大小=65536)情况下的相对误差均值T=5.10×10-6。更具体而言,即使利用较小的表大小,也可得到较高的计算精度。
图11列出了当在N=1,...,8(即,对数尾数表和分数幂次表中每一个的表大小为SIZE=2,...,256)的情况下对数尾数表的值和分数幂次表的值不被插值时、被线性插值时和被二次插值时所获得的相对误差均值T。
如图11所示,“表大小”栏指示表大小的SIZE数目。标签“无插值”、“线性插值”和“二次插值”分别指示对数尾数表中的值和分数幂次表中的值不被插值、对数尾数表中的值和分数幂次表中的值被线性插值、以及对数尾数表中的值和分数幂次表中的值被二次插值。
参考图11,在表大小为“8”的情况下执行的线性插值和在表大小为“4”的情况下执行的二次插值导致了近似于与在表大小为“256”的情况下执行的无插值相同的精度水平。
更具体而言,如果在表大小为“256”的情况下不执行插值,则相对误差均值T为T=5.44×10-3。如果在表大小为“8”的情况下执行线性插值,则相对误差均值为T=1.74×10-3。如果在表大小为“4”的情况下执行二次插值,则相对误差均值T为T=1.70×10-3。算术处理装置91可以通过利用很小的表大小(表计数)执行插值处理来执行高精度幂计算处理。
在以上讨论中,对数尾数表的表大小等于分数幂次表的表大小。表大小可以取决于幂计算的精度水平而不同。如果表大小被修改,则在由插值处理器104执行的插值处理中的比特位置(即,低位值Xh1和低位值Xh2之一的大小)可以响应于表大小被修改。
在以上讨论中,插值处理是对对数尾数表中的值和分数幂次表中的值两者执行的。插值处理可以对表之一执行,这取决于插值处理的处理量和插值处理的精度水平。对不同的表可以执行不同的插值处理。插值处理并不限于线性插值和二次插值。可以执行立方插值或更高多项式插值,或者样条插值。
在以上讨论中,输入值X是以二进制表示的,并且算术值P被确定为一对以2为底的对数和2的幂。如果输入值X由以M为底的数表示,则算术值P被确定为一对以M为底的对数(对数值Z)和M的幂。在这种情况下,对数值Z=logMP并且算术值P=(M^Zint)×(M^Zamari)。
第二实施例
图12是根据本发明第二实施例的算术处理装置131的框图。与图5中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
算术处理装置131包括对数计算处理器141、幂计算处理器142和整数转换器108。在算术处理装置131中,对数计算处理器141接收输入值X和幂指数Y。
对数计算处理器141利用输入值X和幂指数Y来计算对数值Z,并将对数值Z提供到幂计算处理器142。幂计算处理器142根据来自对数计算处理器141的对数值Z计算算术值P,然后将算术值P提供到整数转换器108。
下面参考图13中所示的流程图来描述算术处理装置131的幂计算处理。
在步骤S71中,对数计算处理器141执行对数计算处理以计算对数值Z,并将对数值Z提供到幂计算处理器142。通过对数计算处理(后面将详细描述),等式(6)被计算以确定对数值Z。
在步骤S72中,幂计算处理器142执行算术值计算处理,从而确定算术值P。幂计算处理器142随后将算术值P提供到整数转换器108。通过后面将详细讨论的算术值计算处理,等式(7)被计算以确定算术值P。
步骤S73完成了幂计算处理。步骤S73中的操作等同于图6的步骤S49中的操作,并且其讨论在这里被省略。
可设想执行对数计算处理的对数计算处理器141的若干种实现方式。
例如,对数计算处理器141根据等式(6)来计算对数值Z。对数值Z中输入值X的尾数部分(1+X1/223)所取的值的范围为1.0≤(1+X1/223)<2.0。等式(6)的对数计算的底为“2”。用于计算等式(6)中的算术值(log2(1+X1/223))的处理量并不是很大。
如果对数计算处理器141由执行底为2的对数计算的算术设备构造而成,则对数计算处理器141可以高速计算对数值Z。使用专用算术设备来计算等式(6)中的算术值(log2(1+X1/223))允许对数计算处理器141在结构上比使用通用算术设备时的结构更简单。
在这种情况下,对数计算处理器141具有图14中所示的结构。在图14中,与图5中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
图14中所示的对数计算处理器141包括尾数/指数分割器101和对数计算器171。在对数计算处理器141中,尾数/指数分割器101接收输入值X,对数计算器171接收幂指数Y。
对数计算器171包括用于对数计算的算术设备。对数计算器171中的算术设备响应于所提供的幂指数Y以及来自尾数/指数分割器101的尾数X1和指数X2而确定对数值Z。对数计算器171随后将对数值Z提供到图12中所示的幂计算处理器142。
参考图15的流程图来描述与图13所示的步骤S71中的操作相对应的对数计算处理。步骤S91中的操作等同于图6的步骤S43中的操作,并且其讨论在这里被省略。
在步骤S92中,对数计算器171响应于所提供的幂指数Y以及来自尾数/指数分割器101的尾数X1和指数X2而利用其算术设备计算等式(6)。对数计算器171因此确定了对数值Z。
更具体而言,利用内部算术设备,对数计算器171由来自尾数/指数分割器101的尾数X1计算对数值log2(1+X1/223),作为输入值X的以2为底的尾数部分。尾数X1是小数点在第23比特处的整数类型数据。尾数X1因此被转换为浮点类型数据,然后经历对数计算。
对数计算器171将所确定的对数值、所提供的幂指数Y和来自尾数/指数分割器101的指数X2代入等式(6)中,从而确定对数值Z。所得到的对数值Z随后被提供到幂计算处理器142。当对数值Z被提供到幂计算处理器142时,对数计算处理结束。处理随后进行到图13中的步骤S72。
对数计算处理器141以这种方式利用算术设备计算对数值Z。该布置消除了对数尾数表,从而允许对数计算处理器141微型化。
图14图示了对数计算处理器141使用算术设备的计算处理。对数尾数表可以被用于确定对数值Z。在这种情况下,对数计算处理器141被构造为如图16所示。在图16中,与图5中相同的元件被用相同的标号指代,并且其讨论被适当地省略。
图16中所示的对数计算处理器141包括尾数/指数分割器101、对数尾数表存储单元102和对数计算器201。在对数计算处理器141中,尾数/指数分割器101接收输入值X,对数计算器201接收幂指数Y。
对数计算器201根据所提供的幂指数Y以及来自尾数/指数分割器101的尾数X1和指数X2,通过参考对数尾数表存储单元102的对数尾数表来计算对数值Z。对数计算器201随后将所得到的对数值Z提供到图12中所示的幂计算处理器142。
下面参考图17的流程图来描述与在图13的步骤S71中执行的操作相对应的对数计算处理。
在步骤S121和S122中执行的操作分别等同于在图6所示的步骤S41和S43中执行的操作,并且其讨论在这里被省略。
然而,在步骤S121中,对数尾数表存储单元102将对数尾数表的表大小设置为2N=SIZE,并且生成由等式(21)所表示的表值logtable[i]组成的对数尾数表。这里,变量i=0 ,...,(SIZE-1)。
对数尾数表被生成,并且输入值X的尾数X1和指数X2被确定。在步骤S123中,对数计算器201根据来自尾数/指数分割器101的尾数X1,利用对数尾数表存储单元102的对数尾数表来计算对数值(log2(1+X1/223))作为输入值X的尾数部分。
更具体而言,对数计算器201利用尾数X1来计算等式(23),从而确定尾数X1中从第22比特起的高N比特的值作为索引index1。利用索引index1,对数计算器201根据等式(53)来计算输入值X的尾数部分的对数值:
log2(1+X1/223)=logtable[index1] …(53)
更具体而言,对数计算器201将从尾数X1提取的高N比特的值当作索引index1,并且从对数尾数表存储单元102的对数尾数表中取得变量i为索引index1的表值logtable[i]。所取得的表值logtable[index1]是输入值X的尾数部分的对数值(log2(1+X1/223))。
在步骤S124中,对数计算器201将来自尾数/指数分割器101的指数X2、所提供的幂指数Y和计算出的对数值(log2(1+X1/223))代入等式(6)中,从而计算对数值Z。计算出的对数值Z随后被提供到幂计算处理器142。对数值Z的确定完成了对数计算处理。处理进行到图13中的步骤S72。
对数计算处理器141以这种方式利用对数尾数表来计算对数值Z。
可选地,可以对从对数尾数表获得的表值执行插值处理,以减少对数尾数表的表大小。在这种情况下,对数计算处理器141被构造为如图18所示。在图18中,与图5中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
图18中所示的对数计算处理器141包括尾数/指数分割器101、对数尾数表存储单元102、插值处理器104和对数计算器231。在对数计算处理器141中,尾数/指数分割器101接收输入值X,对数计算器231接收幂指数Y。
尾数/指数分割器101确定输入值X的尾数X1和指数X2,将尾数X1提供到插值处理器104,并将指数X2提供到对数计算器231。插值处理器104利用来自尾数/指数分割器101的尾数X1对对数尾数表存储单元102的对数尾数表执行插值处理,从而确定输入值X的尾数部分的对数值。所得到的对数值被提供到对数计算器231。
对数计算器231利用来自尾数/指数分割器101的指数X2、所提供的幂指数Y和来自插值处理器104的对数值来计算对数值Z。所得到的对数值Z随后被提供到图12中所示的幂计算处理器142。
下面参考图19的流程图来描述与在图13的步骤S71中执行的操作相对应的对数计算处理。
步骤S151-S153分别等同于图6中所示的步骤S41、S43和S44,并且其讨论在这里被省略。
对数尾数表存储单元102生成由等式(21)表示的对数尾数表。尾数/指数分割器101确定输入值X的尾数X1和指数X2。尾数X1被提供到插值处理器104,而指数X2被提供到对数计算器231。
插值处理器104根据等式(23)和(24)来确定索引index1和低位值Xh1。索引index1被用于从对数尾数表中取得表值。插值处理器104基于低位值Xh1和表值来执行诸如线性插值或二次插值之类的插值处理。插值处理器104确定输入值X的尾数部分的对数值(log2(1+X1/223))。这样确定的内插值被从插值处理器104提供到对数计算器231,作为输入值X的尾数部分的最终对数值。
要生成的对数尾数表的表大小是通过插值处理器104执行的插值处理确定的。例如,如果执行二次插值作为插值处理,则表大小为2N+2=SIZE+2。
在步骤S154中,对数计算器231基于来自尾数/指数分割器101的指数X2、所提供的幂指数Y和来自插值处理器104的对数值(log2(1+X1/223))来计算等式(6)。对数计算器231因此确定了对数值Z。当由对数计算器231确定的对数值被提供到幂计算处理器142时,对数计算处理完成。处理进行到图13中所示的步骤S72。
对数计算处理器141以这种方式利用从对数尾数表取得的表值来执行插值处理,并且根据通过插值处理获取的对数值来确定对数值Z。
与在对数计算处理器141中一样,可设想图12所示的算术处理装置131中的幂计算处理器142的若干种布置。
例如,幂计算处理器142通过计算等式(7)来确定算术值P。等式(7)中幂值2^Zamari的分数Zamari的范围为0≤Zamari<1.0。用于幂值2^Zamari的计算的处理量并不是很大。
如果幂计算处理器142由执行2的幂计算的算术设备构造而成,则幂计算处理器142可以高速计算算术值P。使用专用算术设备来计算幂值2^Zamari允许幂计算处理器142在结构上比使用通用算术设备时的结构更简单。
在这种情况下,幂计算处理器142可以具有图20中所示的结构。
图20中所示的幂计算处理器142包括整数/分数分割器261和幂计算器262。在幂计算处理器142中,整数/分数分割器261从对数计算处理器141接收对数值Z。
整数/分数分割器261确定从对数计算处理器141提供来的对数值Z的整数Zint和分数Zamari,然后将所得到的整数Zint和分数Zamari提供到幂计算器262。利用来自整数/分数分割器261的整数Zint和分数Zamari,幂计算器262计算算术值P,然后将所得到的算术值P提供到图12中所示的整数转换器108。
下面参考图21的流程图来描述与在图13的步骤S72中执行的操作相对应的算术值计算处理。
在步骤S181中,整数/分数分割器261基于从对数计算处理器141提供来的对数值Z来计算下面的等式(54)和(55),从而确定整数Zint和分数Zamari:
Zint=(int)Z …(54)
Zamari=Z-(int)Z …(55)
更具体而言,整数/分数分割器261提取出对数值Z的整数部分作为整数Zint,并将通过从对数值Z中减去对数值Z的整数部分而获得的值设置为分数Zamari。这样确定的整数Zint和分数Zamari被从整数/分数分割器261提供到幂计算器262。
在步骤S182中,幂计算器262使用内部算术设备,从而基于从整数/分数分割器261提供来的分数Zamari来计算以分数Zamari作为幂指数的幂值(2^Zamari)。
在步骤S183中,幂计算器262根据来自整数/分数分割器261的整数Zint和计算出的幂值(2^Zamari)来计算算术值P。计算出的算术值P被提供到整数转换器108。
通过将来自整数/分数分割器261的整数Zint代入等式(50)中,幂计算器262计算以整数Zint作为幂指数的幂值(2^Zint)。幂计算器262随后将所得到的幂值(2^Zint)和幂值(2^Zamari)代入等式(51)中以确定算术值P。这里的算术值P是浮点类型数据。这样确定的算术值P被提供到整数转换器108。算术值计算处理完成。处理进行到图13中的步骤S73。
幂计算处理器142利用内部算术设备来确定算术值P。由于不需要分数幂次表,因此幂计算处理器142被微型化。
参考图20,幂计算处理器142在算术计算中采用算术设备。可选地,分数幂次表可以被用于确定算术值P。在这种情况下,幂计算处理器142被构造为如图22所示。在图22中,与图5中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
图22中所示的幂计算处理器142包括整数/分数分割器106、分数幂次表存储单元103和幂计算器301。在幂计算处理器142中,整数/分数分割器106从对数计算处理器141接收对数值Z。
整数/分数分割器106获取从对数计算处理器141提供来的对数值Z的整数Zint和分数Zamari,然后将整数Zint和分数Zamari提供到幂计算器301。幂计算器301利用来自整数/分数分割器106的整数Zint和分数Zamari、通过参考分数幂次表存储单元103的分数幂次表来计算算术值P。计算出的算术值P被提供到图12中所示的整数转换器108。
下面参考图23的流程图来描述与在图13的步骤S72中执行的操作相对应的算术值计算处理。
步骤S211和S212分别等同于图6中所示的步骤S42和S46,并且其讨论被省略。
然而,在步骤S211中,分数幂次表存储单元103生成由等式(22)所表示的表值twotable[i]组成的分数幂次表,其中分数幂次表的表大小为2N=SIZE。这里,变量i为i=0,...,(SIZE-1)。生成分数幂次表,并且根据等式(35)和(36)来计算整数Zint和分数Zamari。处理从步骤S212进行到步骤S213。
在步骤S213中,幂计算器301根据来自整数/分数分割器106的分数Zamari,利用分数幂次表存储单元103的分数幂次表来计算以分数Zamari为幂指数的幂值(2^Zamari)。
更具体而言,幂计算器301利用分数Zamari来计算等式(37)和(38),从而确定分数Zamari中从第22比特起的高N比特的值作为索引index2。幂计算器301还响应于索引index2根据等式(56)来计算幂值(2^Zamari):
更具体而言,幂计算器301将从分数Zamari提取的高N比特的值设置为索引index2,并且从分数幂次表存储单元103的分数幂次表中取得变量i为索引index2的表值twotable[index2]。所取得的表值twotable[index2]是幂值(2^Zamari)。
在步骤S214中,幂计算器301根据来自整数/分数分割器106的整数Zint和所确定的幂值(2^Zamari)来确定算术值P。
通过响应于来自整数/分数分割器106的整数Zint计算等式(50),幂计算器301计算出幂值(2^Zint)。幂计算器301还通过将所得到的幂值(2^Zamari)和幂值(2^Zint)代入等式(51)中来计算算术值P。计算出的算术值P被提供到整数转换器108。当确定了算术值P时,算术值计算处理完成。处理进行到图13中的步骤S73。
幂计算处理器142以这种方式利用分数幂次表来确定算术值P。
为了减少分数幂次表的表大小,可以对从分数幂次表取得的表值执行插值处理。在这种情况下,幂计算处理器142被构造为如图24所示。在图24中,与图5中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
图24中所示的幂计算处理器142包括分数幂次表存储单元103、插值处理器104、整数/分数分割器106和幂计算器107。在幂计算处理器142中,整数/分数分割器106从对数计算处理器141接收对数值Z。
整数/分数分割器106确定从对数计算处理器141提供来的对数值Z的整数Zint和分数Zamari,并将分数Zamari提供到插值处理器104,将整数Zint提供到幂计算器107。幂计算器107根据来自整数/分数分割器106的整数Zint和来自插值处理器104的幂值(2^Zamari)来计算算术值P。计算出的算术值P随后被提供到图12中所示的整数转换器108。
下面参考图25中所示的流程图来描述与在图13的步骤S72中执行的操作相对应的算术值计算处理。
步骤S241至S243分别等同于图6中所示的步骤S42、S46和S47,并且其讨论在这里被省略。
分数幂次表存储单元103生成由等式(22)表示的分数幂次表。整数/分数分割器106根据来自对数计算处理器141的对数值Z来计算等式(35)和(36)。整数/分数分割器106因此确定了整数Zint和分数Zamari。整数Zint被从整数/分数分割器106提供到幂计算器107。分数Zamari被从整数/分数分割器106提供到插值处理器104。
插值处理器104响应于分数Zamari而计算等式(37)至(39),从而确定索引index2和低位值Xh2。插值处理器104响应于索引index2而从分数幂次表中取得表值。插值处理器104随后对低位值Xh2和表值执行诸如线性插值或二次插值之类的插值处理,从而确定2的分数Zamari(作为幂指数)次幂的内插值(2^Zamari)。计算出的内插值(2^Zamari)被从插值处理器104提供到幂计算器107作为最终的幂值(2^Zamari)。
在步骤S244中,幂计算器107根据来自整数/分数分割器106的整数Zint和来自插值处理器104的幂值(2^Zamari)来计算算术值P。
更具体而言,幂计算器107响应于来自整数/分数分割器106的整数Zint来计算等式(50),从而确定幂值(2^Zint)。幂计算器107还将来自插值处理器104的幂值(2^Zamari)和幂值(2^Zint)代入等式(51)中,从而确定算术值P。算术值P随后被提供到整数转换器108。当确定了算术值P时,算术值计算处理结束。处理进行到如图13所示的步骤S73。
幂计算处理器142利用从分数幂次表中取得的表值来执行插值处理,并且响应于通过插值处理获得的幂值来确定算术值P。
第三实施例
在以上讨论中,在常数α被添加到算术值P之后,算术值P被整数化。如等式(1)所表示的,幂指数Y的值在与音频信号的量化有关的许多标准中是确定的。通过简单操作(向输入值X添加α1/Y,而不是向算术值P添加α),获得了算术值的整数部分。
更具体而言,令X’表示前面讨论的输入值X,并且α1/Y和X’的总和被用在幂计算处理中,作为新的输入值X=X’+α1/Y。例如,在由等式(1)所表示的音频信号的量化的情况下,输入值X为X=X’+α4/3。
如果输入值X是变量X’和常数α的1/Y次幂的总和,则算术处理装置331被构造为如图26所示。在图26中,与图5中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
算术处理装置331包括尾数/指数分割器101、对数尾数表存储单元341、分数幂次表存储单元342、对数计算器343、整数/分数分割器344和幂整数转换器345。
在算术处理装置331中,尾数/指数分割器101接收输入值X=X’+α1/Y,对数计算器343接收幂指数Y。更具体而言,在算术处理装置331中,尾数/指数分割器101接收输入值X,输入值X是输入值X’和常数α1/Y的总和。
对数尾数表存储单元341和分数幂次表存储单元342分别存储对数尾数表和分数幂次表,并且分别将由索引index1和索引index2标识的表值提供到对数计算器343和幂整数转换器345。
对数计算器343响应于从尾数/指数分割器101提供来的输入值X的尾数X1和指数X2而根据等式(6)计算对数值Z。计算出的对数值Z随后被提供到整数/分数分割器344。在这种情况下,对数计算器343从对数尾数表存储单元341取得由根据尾数X1的索引index1标识的表值作为输入值X的尾数部分的对数值(log2(1+X1/223))。
整数/分数分割器344将来自对数计算器343的对数值Z分割为整数Zint和分数Zamari,并将整数Zint和分数Zamari提供到幂整数转换器345。幂整数转换器345参考分数幂次表存储单元342的分数幂次表,响应于来自整数/分数分割器344的整数Zint和分数Zamari而确定算术值(P+α)的整数部分,并且输出算术值(P+α)的整数部分。算术值(P+α)是算术值P=X’Y和常数α的总和,即,算术值(P+α)=XY,并且用作整数化的目标。
下面参考图27中所示的流程图来描述算术处理装置331的幂计算处理。
在步骤S271中,对数尾数表存储单元341生成对数尾数表。更具体而言,对数尾数表存储单元341生成由表值logtable[i]组成的对数尾数表。作为输入值X的尾数部分的对数值的表值logtable[i]具有以2为底、对于尾数X1的值,其由下面的等式(57)表示:
logtable[i]=log2(1+i/SIZE),i=0,...,SIZE-1 …(57)
其中表值logtable[i]的变量i指示由尾数X1确定的索引index1的值,并且为i=0,...,(SIZE-1)。对数尾数表存储单元341响应于SIZE的单位的每个变量i确定表值logtable[i],并且生成并存储将值i映射到表值logtable[i]的对数尾数表。
在步骤S272中,分数幂次表存储单元342生成分数幂次表。分数幂次表存储单元342生成由等式(58)所表示的表值twotable[i]组成的分数幂次表,其中分数幂次表的表大小为2N=SIZE:
twotable[i]=(int)(2(i/SIZE)×223),i=0,...,SIZE-1
…(58)
其中表值twotable[i]的变量i指示由分数Zamari确定的并且用于标识表值twotable[i]的索引index2的值,并且变量i为i=0,...,(SIZE-1)。
如果索引index2是分数Zamari的若干高位比特的值,则等式(58)中的2(i/SIZE)是幂值2^Zamari的近似值,幂值2^Zamari是2的分数Zamari(作为幂指数)次幂。在等式(58)中,近似值2(i/SIZE)被乘以223以进行整数化。近似值2(i/SIZE)因此是小数点在第23比特处的固定点数(固定点类型二进制数据)。
分数幂次表存储单元342响应于SIZE的单位的每个变量i而确定表值twotable[i],并且生成并存储将每个变量i映射到相应表值twotable[i]的分数幂次表。
如果生成对数尾数表和分数幂次表的处理在输入值X的幂计算之前被执行一次,则这就足够了。一旦生成了对数尾数表和分数幂次表,当执行输入值X的幂计算时,就可使用所生成的对数尾数表和分数幂次表。
在步骤S273中,尾数/指数分割器101确定所提供的输入值X的尾数X1和指数X2,并将所确定的尾数X1和指数X2提供到对数计算器343。
在步骤S274中,对数计算器343响应于来自尾数/指数分割器101的尾数X1和指数X2而根据等式(6)确定以2为底的算术值(P+α)的对数值Z。算术值(P+α)随后被提供到整数/分数分割器344。在这种情况下,等式(6)中的算术值P是算术值(P+α)。
对数计算器343利用尾数X1来计算等式(23),确定尾数X1中从第22比特起的高N比特的值作为索引index1,并且因此响应于索引index1而根据等式(53)计算输入值X的尾数部分的对数值。
更具体而言,对数计算器343将从尾数X1提取的高N比特的值设置为索引index1,并且从对数尾数表存储单元341的对数尾数表中取得变量i为索引index1的表值logtable[index1]。所取得的表值logtable[index1]用作输入值X的尾数部分的对数值(log2(1+X1/223))。
对数计算器343还根据所提供的幂指数Y、来自尾数/指数分割器101的指数X2和所取得的对数值(log2(1+X1/223))来计算对数值Z=Y(X2+log2(1+X1/223))。
在步骤S275中,整数/分数分割器344确定从对数计算器343提供来的对数值Z的整数Zint和分数Zamari,然后将整数Zint和分数Zamari提供到幂整数转换器345。
更具体而言,整数/分数分割器344通过利用对数值Z计算等式(59)来确定对数值Z的整数Zint:
如果对数值Z等于或大于零,则对数值Z的整数部分被提取并被当作整数Zint。如果对数值Z小于零,则负值“-2”用作整数Zint。
整数/分数分割器344响应于对数值Z而根据等式(60)确定分数
Zamari:
Zamari=(int)((Z-(int)Z)×223) …(60)
其中分数Zamari是通过将223乘以下述一个值而获得的值的整数部分,所述值是通过从对数值Z中减去对数值Z的整数部分而得到的(即,对数值Z和对数值Z的整数部分之间的差)。更具体而言,对数值Z的整数部分的值是通过计算对数值Z和对数值Z的整数部分之间的差来确定的。该差随后被乘以223,并且所得乘积的整数部分被提取。对数值Z的整数部分因此被转换为小数点在第23比特处的固定点数(固定点类型二进制数据)。
在步骤S276中,幂整数转换器345基于来自整数/分数分割器344的整数Zint和分数Zamari来确定算术值(P+α)的整数部分。
更具体而言,幂整数转换器345利用分数Zamari来计算等式(37)和(38),从而确定分数Zamari中超过第22比特的高N比特的值作为索引index2。而且,幂整数转换器345响应于索引index2而根据等式(56)确定幂值(2^Zamari)。
更具体而言,幂整数转换器345将从分数Zamari提取的高N比特的值设置为索引index2,并且从分数幂次表存储单元342的对数尾数表中取得变量i为索引index2的表值twotable[index2]。所取得的表值twotable[index2]用作幂值(2^Zamari)。
幂整数转换器345基于计算出的幂值(2^Zamari)和来自整数/分数分割器344的整数Zint来计算下面的等式(61),从而确定算术值(P+α)的整数部分:
其中符号“>>”表示右移操作。幂整数转换器345将幂值(2^Zamari)右移(23-Zint)比特,从而确定算术值(P+α)的整数部分的值(int)(P+α)。
执行(23-Zint)比特的右移操作是因为以下原因。通过表查找确定的幂值(2^Zamari)是小数点在第23比特处的固定点类型数据。幂值(2^Zamari)的小数点被向低位比特一侧移动Zint(左移操作),以在不使用底的情况下用标准分数表示表达算术值(P+α)。
幂值(2^Zamari)移动(23-Zint)的右移操作产生了算术值(P+α)的整数部分的值。
如果对数值Z为负,则算术值(P+α)为0≤P+α<1,并且算术值(P+α)的整数部分变为零。
右移操作的执行是为了提取算术值(P+α)的整数部分。考虑到幂值(2^Zamari)的最大值为2,则整数Zint大于-2。在等式(59)的针对整数Zint的计算中,如果对数值Z小于零(负),则整数Zint=-2。
当以这种方式确定了算术值(P+α)的整数部分时,幂整数转换器345输出算术值(P+α)的整数部分,即,经整数化的算术值(P+α),并且幂计算处理结束。
算术处理装置331因此确定了在值X’和α1/Y的总和为新的输入值X的情况下算术值(P+α)的整数部分。
通过确定在值X’和α1/Y的总和为新的输入值X的情况下算术值(P+α)的整数部分,更简单和容易地确定了算术值(P+α)的整数部分的值。所描述的处理使得不必在确定算术值P之后确定算术值(P+α)的整数部分。算术值(P+α)的整数部分由幂值(2^Zamari)和整数Zint直接确定。以这种方式,与图5中所示的整数转换器108相对应的处理块不再必要,并且算术处理装置331得以微型化。
在以上讨论中,对数尾数表和分数幂次表具有相同的表大小。表大小可以取决于用于幂计算的精度水平而不同。算术值(P+α)的整数部分在用M为底的数表示输入值X的情况下可由以M为底的对数值(Z)和M的幂确定。
第四实施例
第三实施例的算术处理装置331并不对对数尾数表和分数幂次表执行插值处理。表大小必须被增大以增大幂计算的精度,即,算术值的整数部分的计算精度。
更具体而言,算术处理装置331计算由L个数据集组成的以下等式(62)。每个数据集包括利用对数尾数表和分数幂次表计算的算术值(P+α)的整数部分R以及通过数学库的计算获得的算术值(P+α)的整数部分Q。通过计算等式(62),算术处理装置331确定绝对误差均值U以评价整数部分R的计算精度:
其中Ri表示由算术处理装置331计算的整数部分R的L个整数样本的第i个样本,并且Qi表示通过与Ri相对应的数学库确定的整数部分的值。
本发明的发明人在L=8192的情况下评价整数部分R的计算精度。在表大小N为8(即,SIZE=256)的情况下,绝对误差均值为U=1.78×10- 1,这意味着所得到的精度水平并不很高。在表大小N为16(即,SIZE=65536)的情况下,绝对误差均值为U=1.56×10-2,这意味着所得到的精度水平高于N=8的情况。
对绝对误差均值U的评价表明,对数尾数表和分数幂次表中每一个的表大小必须被增大,以增大由算术处理装置331计算的算术值(P+α)的整数部分的精度。
在输入值X=X’+α1/Y时对对数尾数表和分数幂次表的值执行的插值处理不仅以简单的方式整数化了算术值,还增大了整数值的计算精度。
具有这种结构的算术处理装置371在图28示出。如图28所示,与图5和26所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
算术处理装置371包括尾数/指数分割器101、对数尾数表存储单元102、插值处理器104、对数计算器105、分数幂次表存储单元342、整数/分数分割器381和幂整数转换器382。
在算术处理装置371中,尾数/指数分割器101接收输入值X=X’+α1/Y,对数计算器105接收幂指数Y。
整数/分数分割器381确定从对数计算器105提供来的对数值Z的整数Zint和分数Zamari,并将整数Zint提供到幂整数转换器382,将分数Zamari提供到插值处理器104。
幂整数转换器382基于从插值处理器104提供来的2的分数Zamari次幂的幂值和从整数/分数分割器381提供来的整数Zint来确定并输出算术值(P+α)的整数部分。算术值(P+α)是算术值P=X’Y和常数α的总和,即,算术值(P+α)=XY。
下面参考图29所示的流程图描述算术处理装置371的幂计算处理。
步骤S301等同于图6中所示的步骤S41,并且其详细讨论在这里被省略。对数尾数表存储单元102生成由等式(2)所表示的表值logtable[i]组成的对数尾数表。
在步骤S302中,分数幂次表存储单元342生成分数幂次表。如果插值处理器104执行二次插值作为插值处理,则分数幂次表存储单元342将分数幂次表的表大小设置为2N+2=SIZE+2。分数幂次表存储单元342生成由等式(58)所表示的表值twotable[i]组成的分数幂次表,其中变量i为i=0,...,(SIZE+1)。
分数幂次表存储单元342针对(SIZE+2)的单位的每个变量i确定表值twotable[i],并且生成并存储将每个变量i映射到表值twotable[i]的分数幂次表。
如果插值处理器104执行线性插值作为插值处理,则分数幂次表的表大小为2N+1=(SIZE+1)。生成了由等式(58)所表示的表值twotable[i]组成的对数尾数表。
步骤S303和S304分别等同于图6中所示的步骤S43和S44,并且其详细讨论在这里被省略。
由尾数/指数分割器101确定的输入值X的尾数X1和指数X2分别被提供到插值处理器104和对数计算器105。插值处理器104响应于尾数X1而根据等式(23)和(24)确定索引index1和低位值Xh1。索引index1被用于从对数尾数表存储单元102的对数尾数表中取得表值。
插值处理器104基于低位值Xh1和表值来执行诸如线性插值或二次插值之类的插值处理。因此确定了输入值X的尾数部分的内插值(log2(1+X1/223))。这样确定的内插值被从插值处理器104提供到对数计算器105,作为输入值X的尾数部分的最终对数值。
在步骤S305中,对数计算器105基于来自尾数/指数分割器101的指数X2、所提供的幂指数Y和来自插值处理器104的对数值来计算等式(6)。对数计算器105因此确定了以2为底的算术值(P+α)的对数值Z,然后将对数值Z提供到整数/分数分割器381。等式(6)中的算术值P是算术值(P+α)。
在步骤S306中,整数/分数分割器381响应于来自对数计算器105的对数值Z而根据等式(59)和(60)确定整数Zint和分数Zamari。整数/分数分割器381将计算出的整数Zint提供到幂整数转换器382,并将分数Zamari提供到插值处理器104。
当插值处理器104被提供以分数Zamari时,在步骤S307中执行插值处理以确定内插值,即,2的分数Zamari(作为幂指数)次幂的幂值。步骤S307等同于图6中所示的步骤S47,并且其讨论在这里被省略。
插值处理器104响应于分数Zamari而计算等式(37)至(39),从而确定索引index2和低位值Xh2。响应于索引index2,插值处理器104从分数幂次表存储单元342的分数幂次表中取得表值。插值处理器104利用低位值Xh2和表值来执行诸如线性插值或二次插值之类的插值处理,从而确定内插值(2^Zamari),即,2的分数Zamari(作为幂指数)次幂的幂值。计算出的内插值作为最终的幂值(2^Zamari)被从插值处理器104提供到幂整数转换器382。
在步骤S308中,幂整数转换器382响应于来自整数/分数分割器381的整数Zint和来自插值处理器104的幂值(2^Zamari)来计算等式(61),从而确定算术值(P+α)的整数部分。
当确定了算术值(P+α)的整数部分时,幂整数转换器382输出算术值(P+α)的整数部分,即,经整数化的算术值(P+α)。幂计算处理因此结束。
对对数尾数表的值和分数幂次表的值执行的插值处理很容易地增大了计算算术值(P+α)的整数部分的计算精度而不会增大这些表的表大小。
更具体而言,本发明的发明人根据由计算等式(62)得到的绝对误差均值U来评价由算术处理装置371计算的算术值(P+α)的整数部分R的计算精度。图30图示了评价结果。
图30列出了在对数尾数表和分数幂次表中的每一个的表大小N为8(即,SIZE=256)的情况下,对数尾数表和分数幂次表的经插值和未经插值的值的绝对误差均值U。
标签“幂(无插值)”指示在不插值的情况下分数幂次表中的值被用于计算整数部分R。标签“幂(线性插值)”指示分数幂次表中的值被线性插值并且被用于计算整数部分R。标签“幂(二次插值)”指示分数幂次表中的值被二次插值并且被用于计算整数部分R。
类似地,“对数(无插值)”指示在不插值的情况下对数尾数表中的值被用于计算整数部分R。标签“对数(线性插值)”指示对数尾数表中的值被线性插值并被用于计算整数部分R。标签“对数(二次插值)”指示对数尾数表中的值被二次插值并被用于计算整数部分R。
图30示出了对对数尾数表和分数幂次表中的至少一个执行的插值处理增大了幂值(更详细地说,幂值的整数)的计算精度。例如,如果对对数尾数表中的值和分数幂次表中的值两者都执行线性插值,则绝对误差均值U为U=8.06×10-3。如果对对数尾数表中的值和分数幂次表中的值两者都执行二次插值,则绝对误差均值U为U=2.44×10-3。
对两个表值都执行线性插值和二次插值之一时的绝对误差均值U小于在N=16(即,表大小=65536)时现有技术中的量化装置51的绝对误差均值。因此增大了计算精度。更具体而言,即使利用较小的表大小,也可实现高计算精度。
算术处理装置371对对数尾数表中的值和分数幂次表中的值两者都执行插值处理。取决于插值处理的处理量和计算精度,可以对对数尾数表中的值和分数幂次表中的值之一执行插值处理。可以对不同表的值执行不同的插值处理。
第五实施例
图31是根据本发明第五实施例的算术处理装置411的框图。在图31中,与图12中所示相同的元件被用相同的标号指代,并且其讨论被适当地省略。
算术处理装置411包括对数计算处理器141、整数/分数分割器421和幂整数转换器422。在算术处理装置411中,对数计算处理器141接收输入值X=X’+α1/Y和幂指数Y。
等同于图12中所示的对数计算处理器141,对数计算处理器141可以被构造为如图14、16和18之一中所示。对数计算处理器141将由输入值X确定的对数值Z提供到整数/分数分割器421。
整数/分数分割器421确定来自对数计算处理器141的对数值Z的整数Zint和分数Zamari,然后将整数Zint和分数Zamari提供到幂整数转换器422。幂整数转换器422利用来自整数/分数分割器421的整数Zint和分数Zamari执行移位操作,从而确定并输出算术值(P+α)的整数部分。这里的算术值(P+α)是算术值P=X’Y和常数α的总和,即,算术值(P+α)=XY。
下面参考图32所示的流程图描述算术处理装置411的幂计算处理。步骤S331等同于图13中所示的步骤S71,并且其讨论在这里被省略。
在步骤S332中,整数/分数分割器421响应于来自对数计算处理器141的对数值Z而根据等式(59)和(60)确定对数值Z的整数Zint和分数Zamari。通过由等式(60)表示的计算,分数Zamari变为小数点被放置在第23比特处的固定点数。整数/分数分割器421随后将所确定的整数Zint和分数Zamari提供到幂整数转换器422。
在步骤S333中,幂整数转换器422基于来自整数/分数分割器421的整数Zint和分数Zamari来确定算术值(P+α)的整数部分。
例如,幂整数转换器422中的算术设备响应于从整数/分数分割器421提供来的分数Zamari来确定以分数Zamari作为幂指数的幂值(2^Zamari)。
分数Zamari所取的范围是0≤Zamari<1.0,并且幂值具有底2。以高速执行底2的幂计算的算术设备可以被用于确定幂值(2^Zamari)。使用这种算术设备而不是通用的算术设备,幂整数转换器422可以被简单构造并且微型化。
当确定了幂值(2^Zamari)时,幂整数转换器422响应于幂值(2^Zamari)和来自整数/分数分割器421的整数Zint来计算等式(63),从而确定算术值(P+α)的整数部分:
其中符号“>>”表示右移操作。幂整数转换器422通过确定将幂值(2^Zamari)乘以223而得到的值的整数部分,来将幂值(2^Zamari)转换为小数点在第23比特处的固定点数。幂整数转换器422将固定点数(int)((2^Zamari)×223)右移(23-Zint)比特,从而确定算术值(P+α)的整数部分的值(int)(P+α)。
与等式(61)中一样,执行(23-Zint)比特的右移操作是因为以下原因。幂值(int)((2^Zamari)×223)是小数点在第23比特处的固定点类型数据。如果幂值(int)((2^Zamari)×223)的小数点被向低位比特一侧移动(23-Zint)比特,则提取出算术值(P+α)的整数部分。
幂整数转换器422确定并输出算术值(P+α)的整数部分。幂计算处理因此结束。
由于要处理的数是二进制的,因此算术处理装置411通过确定以2为底的对数值和以2为底的幂值来确定算术值(P+α)的整数部分。如果输入值X由以M为底的数表示,则算术值(P+α)的整数部分是利用一对以M为底的对数(对数值Z)和M的幂来确定的。
算术处理装置411中的幂整数转换器422的算术设备执行2的幂的幂计算。幂值可以利用分数幂次表来确定。
具有这种结构的算术处理装置451如图33所示。如图33所示,与图26和31所示相同的元件用相同的标号指代,并且其讨论被适当地省略。
算术处理装置451包括分数幂次表存储单元342、对数计算处理器141、整数/分数分割器421和幂整数转换器345。在算术处理装置451中,对数计算处理器141接收输入值X=X’+α1/Y和幂指数Y。
幂整数转换器345利用来自整数/分数分割器421的整数Zint和分数Zamari,同时参考分数幂次表存储单元342的分数幂次表,来经由移位操作确定算术值(P+α)的整数部分。幂整数转换器345随后输出算术值(P+α)的整数部分。这里的算术值(P+α)的整数部分是算术值P=X’Y和常数α的总和,即,算术值(P+α)=XY。
下面参考图34的流程图来描述算术处理装置451的幂计算处理。
在步骤S361中,分数幂次表存储单元342生成分数幂次表。在分数幂次表的表大小为2N=SIZE的情况下,生成了由等式(58)所表示的表值twotable[i]组成的分数幂次表。
表示由分数Zamari确定的索引index2的值的变量i为i=0,...,(SIZE-1)。在等式(58)中,近似值2(i/SIZE)被乘以223以进行整数化,并且因此变为固定点值。更具体而言,表值twotable[i]是小数点在第23比特处的固定点数。
在生成分数幂次表之后,执行步骤S362和S363。步骤S362和S363分别等同于图32中所示的步骤S331和S332,并且其讨论在这里被省略。
对数计算处理器141根据输入值X=X’+α1/Y和幂指数Y来确定对数值Z,并将对数值Z提供到整数/分数分割器421。整数/分数分割器421根据等式(59)和(60)来确定对数值Z的整数Zint和分数Zamari,然后将整数Zint和分数Zamari提供到幂整数转换器345。
在步骤S364中,幂整数转换器345利用来自整数/分数分割器421的整数Zint和分数Zamari来确定算术值(P+α)的整数部分,然后输出算术值(P+α)的整数部分。幂计算处理因此结束。这里的算术值(P+α)是算术值P=X’Y和常数α的总和,即,算术值(P+α)=XY。
幂整数转换器345响应于分数Zamari来计算等式(37)和(38),从而确定分数Zamari中从第22比特起的高N比特的值作为索引index2。幂整数转换器345利用索引index2来计算等式(56),从而确定幂值(2^Zamari)。
更具体而言,幂整数转换器345从分数幂次表存储单元342的分数幂次表中取得变量i为索引index2的表值twotable[index2]作为幂值(2^Zamari)。
此外,幂整数转换器345基于所确定的幂值(2^Zamari)和来自整数/分数分割器421的整数Zint来计算等式(61),从而确定算术值(P+α)的整数部分。
算术处理装置451利用分数幂次表来确定幂值(2^Zamari)。算术处理装置451因此在不使用算术设备的情况下确定了幂值(2^Zamari),这与图31中所示的幂整数转换器422不同。
算术处理装置451可以响应于以M为底的输入值X,基于以M为底的对数值和M的幂来确定算术值(P+α)的整数部分。
在以上讨论中,算术处理装置451利用分数幂次表来执行2的幂的幂计算处理。除了分数幂次表的表值以外,还可用插值处理来确定幂值。
具有这种结构的算术处理装置481如图35所示。在图35中,与图31和28中所示相同的元件用相同的标号指代,并且其讨论被适当地省略。
算术处理装置481包括分数幂次表存储单元491、对数计算处理器141、整数/分数分割器421、插值处理器104和幂整数转换器382。在算术处理装置481中,对数计算处理器141接收输入值X=X’+α1/Y和幂指数Y。
存储分数幂次表的分数幂次表存储单元491向插值处理器104提供由根据对数值Z的分数Zamari确定的索引index2标识的表值。该表值在存储在分数幂次表存储单元491上的分数幂次表中是固定点类型。
利用根据从整数/分数分割器421提供来的分数Zamari确定的索引index2,插值处理器104从分数幂次表存储单元491取得接近索引index2的表值。插值处理器104还对所获取的表值执行插值处理,从而确定2的分数Zamari(作为幂指数)次幂的幂值。
幂整数转换器382基于来自插值处理器104的幂值和来自整数/分数分割器421的整数Zint来确定算术值(P+α)的整数部分,然后输出算术值(P+α)的整数部分。
下面参考图36所示的流程图描述算术处理装置481的幂计算处理。
在步骤S391中,分数幂次表存储单元491生成分数幂次表。如果插值处理器104执行二次插值作为插值处理,则分数幂次表存储单元491将分数幂次表的表大小设置为2N+2=SIZE+2。分数幂次表存储单元491生成由下面的等式(64)所表示的表值twotable[i]组成的分数幂次表:
twotable[i]=(int)(2(i/SIZE)×223),i=0,...,SIZE+1
…(64)
表值twotable[i]的变量i指示由分数Zamari确定的用于标识表值twotable[i]的索引index2的值,其中变量i为i=0,...,(SIZE+1)。准备了数目等于表大小数目(SIZE+2)的表值twotable[i]。
如果索引index2是分数Zamari中若干高位比特的值,则等式(64)中的2(i/SIZE)是以2为底、以分数Zamari为幂指数的幂值2^Zamari的近似值。在等式(64)中,近似值2(i/SIZE)被乘以223以进行整数化。近似值2(i/SIZE)因此是小数点在第23比特的固定点数(固定点类型二进制数据)。
分数幂次表存储单元491响应于SIZE的单位的每个变量i来确定表值twotable[i],并且生成并存储将每个变量i映射到相应表值twotable[i]的分数幂次表。
如果插值处理器104执行线性插值作为插值处理,则分数幂次表的表大小为2N+1=SIZE+1。因此生成了由等式(64)所表示的表值twotable[i]组成的分数幂次表。
如果生成分数幂次表的处理在计算算术值(P+α)的整数部分之前被执行一次,则这就足够了。一旦生成了分数幂次表,当计算整数部分时,就可使用所生成的分数幂次表。
在生成分数幂次表之后,执行步骤S392和S393。步骤S392和S393分别等同于图32中所示的步骤S331和S332,并且其讨论在这里被省略。
对数计算处理器141根据输入值X=X’+α1/Y和常数α来确定对数值Z。对数值Z随后被提供到整数/分数分割器421。整数/分数分割器421根据等式(59)和(60)来确定对数值Z的整数Zint和分数Zamari。整数Zint被从整数/分数分割器421提供到幂整数转换器382。分数Zamari被从整数/分数分割器421提供到插值处理器104。
在步骤S394中,插值处理器104对来自整数/分数分割器421的分数Zamari执行插值处理,从而确定2的分数Zamari(作为幂指数)次幂的幂值的内插值。
更具体而言,插值处理器104计算等式(37)和(38),从而确定索引index2。而且,插值处理器104计算等式(39),从而确定低位值Xh2作为分数Zamari中从第(22-N)比特到第零比特的部分的值。
当以这种方式确定了索引index2和低位值Xh2时,插值处理器104还对由索引index2标识的分数幂次表存储单元491的分数幂次表中的表值和低位值Xh2执行插值处理。
如果执行线性插值作为插值处理,则插值处理器104通过计算等式(40)和(41)来确定表值V20和表值V21。更具体而言,插值处理器104从分数幂次表存储单元491取得表值V20和表值V21。插值处理器104响应于所取得的表值和低位值Xh2而通过计算等式(42)至(44)来执行插值处理,从而确定幂值的内插值(2^Zamari)。
如果执行二次插值作为插值处理,则插值处理器104计算等式(40)、(41)和(45),从而确定表值V20至表值V22。插值处理器104因此响应于所确定的表值和低位值Xh2而通过计算等式(46)至(49)来执行二次插值。因此得到幂值的内插值(2^Zamari)。
如果不执行插值,则插值处理器104将通过等式(40)获得的表值V20设置为幂值的内插值(2^Zamari)。
幂值的内插值(2^Zamari)用作最终的幂值(2^Zamari),并且被从插值处理器104提供到幂整数转换器382。
在步骤S395中,幂整数转换器382响应于来自插值处理器104的幂值和来自整数/分数分割器421的整数Zint而确定算术值(P+α)的整数部分。幂整数转换器382因此输出算术值(P+α)的整数部分。幂计算处理因此结束。
幂整数转换器382响应于来自插值处理器104的幂值(2^Zamari)和来自整数/分数分割器421的整数Zint而计算等式(61),从而确定算术值(P+α)的整数部分。
算术处理装置481可以响应于以M为底的输入值X,基于以M为底的对数值和M的幂来确定算术值(P+α)的整数部分。插值处理器104的插值处理并不限于线性插值和二次插值。可以执行立方插值或更高多项式插值,或者样条插值。
在输入值X=X’+α1/Y时,图31所示的算术处理装置411、图33所示的算术处理装置451和图35所示的算术处理装置481中的每一个确定算术值(P+α)的整数部分。算术值(P+α)的整数部分很容易高速确定。
更具体而言,并不是在确定算术值P之后确定算术值(P+α)的整数部分,而是直接由幂值(2^Zamari)和整数Zint来确定算术值(P+α)的整数部分。与图5中所示的整数转换器108相对应的处理块不再需要,并且算术处理装置得以微型化。
算术处理装置411、算术处理装置451和算术处理装置481中每一个中的对数计算处理器141可以具有图14、16和18中所示结构中的任何一种(考虑到计算精度和处理量)。每个算术处理装置可以具有满足预期计算精度的最少数目的结构元件。
绝对误差均值U如图30所示被列出,它与图5的对数尾数表存储单元102、图33的分数幂次表存储单元342和图35的分数幂次表存储单元491中的每一个中的表值是经插值的还是未经插值的有关。插值处理增大了算术值(P+α)的整数部分的计算精度。
以上处理步骤序列可以利用硬件或软件执行。如果处理步骤序列利用软件执行,则形成软件的程序可被从程序存储介质安装到特定硬件中包含的计算机,或者安装到利用其上安装的多种程序执行多种功能的通用个人计算机。
图37是图示根据程序执行上述多种处理步骤的计算机的硬件结构的框图。
在计算机中,中央处理单元(CPU)601、只读存储器(ROM)602和随机访问存储器(RAM)603经由总线604互连。
输入-输出接口605连接到总线604。输入-输出接口605还连接到包括键盘、鼠标、麦克风等的输入单元606,包括显示器、扬声器等的输出单元607,包括硬盘、非易失性存储器等的记录单元608,包括网络接口等的通信单元609,以及驱动可移除介质611的驱动器610,可移除介质611包括磁盘、光盘、磁光盘、半导体存储器等。
计算机中的CPU 601经由输入-输出接口605和总线604将记录在记录单元608上的程序记载到RAM 603上,并且执行该程序。因此执行上述处理步骤序列。
由计算机(CPU 601)执行的程序被记录在作为封装介质的可移除介质611上,包括磁盘(柔性盘)、光盘(包括致密盘只读存储器(CD-ROM)、数字多功能盘(DVD)等等)、磁光(MO)盘和半导体存储器。该程序可以经由无线或有线传输介质提供,这些传输介质例如是局域网(LAN)、因特网或数字卫星广播。
通过将可移除介质611加载到驱动器610上,可以经由输入-输出接口605将程序安装到记录单元608上。程序可以被通信单元609通过无线或有线传输介质接收,然后安装到记录单元608上。程序可以被预先安装到ROM 602和记录单元608之一上。
计算机的程序可以按说明书中所描述的处理步骤的顺序执行,或者可以并行执行或者按进行调用的任意定时执行。
本申请包含与2008年7月29日向日本专利局提交的日本在先专利申请JP 2008-194690有关的主题,该申请的全部内容通过引用结合于此。
本领域技术人员应当理解,可以根据设计要求和其它因素进行各种修改、组合、子组合和变更,只要它们在权利要求或其等同物的范围之内。
Claims (18)
1.一种用于确定算术值P的算术处理装置,所述算术值P是输入值X的Y次幂,其中变量Y为指数,所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
尾数/指数分割装置,用于将浮点类型数据的输入值X分割为尾数X1和指数X2,所述尾数X1是表示浮点数的所述输入值X的尾数的尾数部分,所述指数X2是表示浮点数的所述输入值X的指数的指数部分;
第一记录装置,用于记录针对所述尾数X1确定的、所述输入值X的尾数的以所述常数M为底的对数值;
插值装置,用于对响应于所述尾数X1而从所述第一记录装置取得的多个对数值执行插值处理以确定所述尾数的最终对数值;
对数计算装置,用于基于所述变量Y、所述指数X2和由所述插值装置确定的尾数的对数值,来计算算术值P的以所述常数M为底的对数值Z;以及
幂计算装置,用于通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z。
2.如权利要求1所述的算术处理装置,还包括:
整数/分数分割装置,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;以及
第二记录装置,用于记录通过计算所述常数M的Zamari次幂而确定的所述常数M的幂值,其中作为指数的Zamari是所述分数部分,
其中所述幂计算装置基于所述整数Zint和响应于所述分数Zamari而从所述第二记录装置取得的所述常数M的幂值来计算所述算术值P。
3.如权利要求2所述的算术处理装置,其中所述插值装置通过对响应于所述分数Zamari而从所述第二记录装置取得的多个幂值执行插值处理来确定所述常数M的最终幂值,并且
其中所述幂计算装置基于由所述插值装置确定的常数M的幂值和所述整数Zint来计算所述算术值P。
4.一种用于确定算术值P的算术处理装置的算术处理方法,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
尾数/指数分割装置,用于将浮点类型数据的输入值X分割为尾数X1和指数X2,所述尾数X1是表示浮点数的所述输入值X的尾数的尾数部分,所述指数X2是表示浮点数的所述输入值X的指数的指数部分;
记录装置,用于记录针对所述尾数X1确定的、所述输入值X的尾数的以所述常数M为底的对数值;
插值装置,用于对响应于所述尾数X1而从所述记录装置取得的多个对数值执行插值处理以确定所述尾数的最终对数值;
对数计算装置,用于基于所述变量Y、所述指数X2和由所述插值装置确定的尾数的对数值来计算算术值P的以所述常数M为底的对数值Z;以及
幂计算装置,用于通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z,
所述算术处理方法包括以下步骤:
将所述输入值X分割为所述尾数X1和所述指数X2;
对所述多个对数值执行插值处理以确定所述尾数的最终对数值;
计算所述对数值Z;以及
通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述对数值Z。
5.一种用于使得算术处理装置确定算术值P的程序,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述程序包括以下步骤:
将浮点类型数据的输入值X分割为尾数X1和指数X2,所述尾数X1是表示浮点数的所述输入值X的尾数的尾数部分,所述指数X2是表示浮点数的所述输入值X的指数的指数部分;
对针对所述尾数X1确定的、所述输入值X的尾数的多个以所述常数M为底的对数值执行插值处理以确定所述尾数的最终对数值;
基于所述变量Y、所述指数X2和在插值处理中确定的尾数的对数值来计算算术值P的以所述常数M为底的对数值Z;以及
通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z。
6.一种用于确定算术值P的算术处理装置,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
对数计算装置,用于基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
整数/分数分割装置,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;
第一记录装置,用于记录所述常数M的Zamari次幂的幂值,其中作为指数的Zamari是所述分数Zamari;
插值装置,用于对响应于所述分数Zamari而从所述第一记录装置取得的多个对数值执行插值处理以确定所述常数M的最终幂值;以及
幂计算装置,用于基于由所述插值装置确定的常数M的幂值和所述整数Zint,通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z。
7.如权利要求6所述的算术处理装置,还包括:
尾数/指数分割装置,用于将浮点类型数据的输入值X分割为尾数X1和指数X2,所述尾数X1是表示浮点数的所述输入值X的尾数的尾数部分,所述指数X2是表示浮点数的所述输入值X的指数的指数部分,
其中所述对数计算装置基于所述尾数X1、所述指数X2和所述变量Y来计算所述算术值P的对数值Z。
8.如权利要求7所述的算术处理装置,还包括:
第二记录装置,用于记录针对所述尾数X1确定的、所述输入值X的尾数的以所述常数M为底的对数值,
其中所述对数计算装置基于所述变量Y、所述指数X2和响应于所述尾数X1而从所述第二记录装置取得的尾数的对数值,来计算所述算术值P的对数值Z。
9.一种用于确定算术值P的算术处理装置的算术处理方法,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
对数计算装置,用于基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
整数/分数分割装置,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;
记录装置,用于记录所述常数M的Zamari次幂的幂值,其中作为指数的Zamari是所述分数Zamari;
插值装置,用于对响应于所述分数Zamari而从所述记录装置取得的多个对数值执行插值处理以确定所述常数M的最终幂值;以及
幂计算装置,用于基于由所述插值装置确定的常数M的幂值和所述整数Zint,通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z,
所述算术处理方法包括以下步骤:
基于所述输入值X和所述变量Y来计算所述对数值Z;
将所述对数值分割为所述整数Zint和所述分数Zamari;
对所述多个对数值执行插值处理以确定所述常数M的最终幂值;
计算所述对数值Z;以及
基于常数M的幂值和所述整数Zint,通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述对数值Z。
10.一种用于使得算术处理装置确定算术值P的程序,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述程序包括以下步骤:
基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;
对通过计算所述常数M的Zamari次幂而计算出的所述常数M的多个幂值执行插值处理,以确定所述常数M的最终幂值,其中作为指数的Zamari是所述分数Zamari;以及
基于在插值处理中确定的常数M的幂值和所述整数Zint,通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z。
11.一种用于确定算术值P的整数的算术处理装置,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
对数计算装置,用于基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
整数/分数分割装置,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;以及
幂整数转换装置,用于通过对指示所述常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是所述分数Zamari,并且所述比特数是通过从所述固定点数据中从所述固定点数据的最低有效位到所述固定点数据的小数点位置的比特数减去所述整数Zint而获得的。
12.如权利要求11所述的算术处理装置,还包括记录装置,用于记录通过计算所述常数M的Zamari次幂而确定的所述常数M的幂值,并且作为指数的Zamari是所述分数Zamari,
其中所述幂整数转换装置基于所述整数Zint和响应于所述分数Zamari而从所述记录装置取得的所述常数M的幂值来确定所述算术值P的整数。
13.如权利要求12所述的算术处理装置,还包括插值装置,用于对响应于所述分数Zamari而从所述记录装置取得的多个幂值执行插值处理以确定所述常数M的最终幂值,
其中所述幂整数转换装置基于由所述插值装置确定的所述常数M的幂值和所述整数Zint来确定所述算术值P的整数。
14.一种用于确定算术值P的整数的算术处理装置的算术处理方法,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
对数计算装置,用于基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
整数/分数分割装置,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;以及
幂整数转换装置,用于通过对指示所述常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是所述分数Zamari,并且所述比特数是通过从所述固定点数据中从所述固定点数据的最低有效位到所述固定点数据的小数点位置的比特数减去所述整数Zint而获得的,
所述算术处理方法包括以下步骤:
基于所述输入值X和所述变量Y来计算所述对数值Z;
将所述对数值Z分割为所述整数Zint和所述分数Zamari;以及
执行所述右移操作以确定所述算术值P的整数。
15.一种用于使得算术处理装置确定算术值P的整数的计算机程序,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述计算机程序包括以下步骤:
基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;以及
通过对指示所述常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是所述分数Zamari,并且所述比特数是通过从所述固定点数据中从所述固定点数据的最低有效位到所述固定点数据的小数点位置的比特数减去所述整数Zint而获得的。
16.一种用于确定算术值P的算术处理装置,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
尾数/指数分割单元,用于将浮点类型数据的输入值X分割为尾数X1和指数X2,所述尾数X1是表示浮点数的所述输入值X的尾数的尾数部分,所述指数X2是表示浮点数的所述输入值X的指数的指数部分;
第一记录单元,用于记录针对所述尾数X1确定的、所述输入值X的尾数的以所述常数M为底的对数值;
插值单元,用于对响应于所述尾数X1而从所述第一记录单元取得的多个对数值执行插值处理以确定所述尾数的最终对数值;
对数计算单元,用于基于所述变量Y、所述指数X2和由所述插值单元确定的尾数的对数值来计算算术值P的以所述常数M为底的对数值Z;以及
幂计算单元,用于通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z。
17.一种用于确定算术值P的算术处理装置,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
对数计算单元,用于基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
整数/分数分割单元,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;
第一记录单元,用于记录所述常数M的Zamari次幂的幂值,其中作为指数的Zamari是所述分数Zamari;
插值单元,用于对响应于所述分数Zamari而从所述第一记录单元取得的多个对数值执行插值处理以确定所述常数M的最终幂值;以及
幂计算单元,用于基于由所述插值单元确定的常数M的幂值和所述整数Zint,通过计算所述常数M的Z次幂来计算所述算术值P,其中作为指数的Z是所述算术值P的对数值Z。
18.一种用于确定算术值P的整数的算术处理装置,所述算术值P是输入值X的Y次幂,其中变量Y为指数,并且所述输入值X由以M为底的系统表示,M是预定常数,所述算术处理装置包括:
对数计算单元,用于基于所述输入值X和所述变量Y来计算所述算术值P的以所述常数M为底的对数值Z;
整数/分数分割单元,用于将所述算术值P的对数值Z分割为作为所述对数值Z的整数部分的整数Zint和作为所述对数值Z的分数部分的分数Zamari;以及
幂整数转换单元,用于通过对指示所述常数M的Zamari次幂的幂值的固定点数据执行右移一比特数的操作来确定所述算术值P的整数,其中作为指数的Zamari是所述分数Zamari,并且所述比特数是通过从所述固定点数据中从所述固定点数据的最低有效位到所述固定点数据的小数点位置的比特数减去所述整数Zint而获得的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-194690 | 2008-07-29 | ||
JP2008194690A JP4529098B2 (ja) | 2008-07-29 | 2008-07-29 | 演算処理装置および方法、並びにプログラム |
JP2008194690 | 2008-07-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101639768A true CN101639768A (zh) | 2010-02-03 |
CN101639768B CN101639768B (zh) | 2012-07-04 |
Family
ID=41609420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101590274A Expired - Fee Related CN101639768B (zh) | 2008-07-29 | 2009-07-29 | 用于算术处理的装置、方法和程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8631061B2 (zh) |
JP (1) | JP4529098B2 (zh) |
CN (1) | CN101639768B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436365A (zh) * | 2010-12-20 | 2012-05-02 | 中国电子科技集团公司第四十一研究所 | 一种高速线性频谱数据转换为对数数据的方法及装置 |
CN106851512A (zh) * | 2010-10-14 | 2017-06-13 | 索诺瓦公司 | 调整听力设备的方法及根据所述方法可操作的听力设备 |
CN110036384A (zh) * | 2017-09-29 | 2019-07-19 | 索尼公司 | 信息处理设备和信息处理方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102079188B1 (ko) * | 2012-05-09 | 2020-02-19 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 발광 장치 및 전자 기기 |
US10303439B2 (en) * | 2016-04-26 | 2019-05-28 | International Business Machines Corporation | Logarithm and power (exponentiation) computations using modern computer architectures |
US10217963B2 (en) * | 2016-09-06 | 2019-02-26 | Samsung Display Co., Ltd. | Display device and manufacturing method thereof |
US20180217814A1 (en) * | 2017-02-02 | 2018-08-02 | Vivante Corporation | Systems And Methods For Computing Mathematical Functions |
CN109521994B (zh) * | 2017-09-19 | 2020-11-10 | 华为技术有限公司 | 乘法硬件电路、片上系统及电子设备 |
EP3651077B1 (en) * | 2018-02-13 | 2021-10-27 | Shanghai Cambricon Information Technology Co., Ltd | Computation device and method |
KR20210004306A (ko) * | 2019-07-04 | 2021-01-13 | 삼성전자주식회사 | 뉴럴 네트워크 장치 및 뉴럴 네트워크의 파라미터 양자화 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE9002558D0 (sv) * | 1990-08-02 | 1990-08-02 | Carlstedt Elektronik Ab | Processor |
JPH09292977A (ja) * | 1996-04-26 | 1997-11-11 | Hitachi Ltd | 対数関数の近似値生成回路 |
US6182100B1 (en) * | 1998-06-30 | 2001-01-30 | International Business Machines Corporation | Method and system for performing a logarithmic estimation within a data processing system |
JP4274633B2 (ja) | 1999-06-23 | 2009-06-10 | 株式会社ルネサステクノロジ | 累乗演算装置 |
US7171435B2 (en) * | 2002-05-17 | 2007-01-30 | Texas Instruments Incorporated | Circuits, systems, and methods implementing approximations for logarithm, inverse logarithm, and reciprocal |
US7143126B2 (en) * | 2003-06-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for implementing power of two floating point estimation |
US20070038693A1 (en) * | 2005-08-10 | 2007-02-15 | Christian Jacobi | Method and Processor for Performing a Floating-Point Instruction Within a Processor |
US8629927B2 (en) * | 2008-04-09 | 2014-01-14 | Gentex Corporation | Imaging device |
-
2008
- 2008-07-29 JP JP2008194690A patent/JP4529098B2/ja not_active Expired - Fee Related
-
2009
- 2009-07-28 US US12/510,674 patent/US8631061B2/en not_active Expired - Fee Related
- 2009-07-29 CN CN2009101590274A patent/CN101639768B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106851512A (zh) * | 2010-10-14 | 2017-06-13 | 索诺瓦公司 | 调整听力设备的方法及根据所述方法可操作的听力设备 |
CN106851512B (zh) * | 2010-10-14 | 2020-11-10 | 索诺瓦公司 | 调整听力设备的方法及根据所述方法可操作的听力设备 |
CN102436365A (zh) * | 2010-12-20 | 2012-05-02 | 中国电子科技集团公司第四十一研究所 | 一种高速线性频谱数据转换为对数数据的方法及装置 |
CN102436365B (zh) * | 2010-12-20 | 2014-04-09 | 中国电子科技集团公司第四十一研究所 | 一种频谱分析仪中线性频谱数据转换为对数数据的方法及装置 |
CN110036384A (zh) * | 2017-09-29 | 2019-07-19 | 索尼公司 | 信息处理设备和信息处理方法 |
CN110036384B (zh) * | 2017-09-29 | 2021-01-05 | 索尼公司 | 信息处理设备和信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4529098B2 (ja) | 2010-08-25 |
US8631061B2 (en) | 2014-01-14 |
JP2010033318A (ja) | 2010-02-12 |
US20100030833A1 (en) | 2010-02-04 |
CN101639768B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101639768B (zh) | 用于算术处理的装置、方法和程序 | |
US7660720B2 (en) | Lossless audio coding/decoding method and apparatus | |
CN101027717B (zh) | 无损多通道音频编解码器 | |
JP5705273B2 (ja) | オーディオ情報生成方法 | |
TWI397903B (zh) | 編碼音訊之節約音量測量技術 | |
CN100589181C (zh) | 用于编码和低复杂性代码转换的频谱分量转换 | |
CN102270452B (zh) | 近透明或透明的多声道编码器/解码器方案 | |
CN1938758B (zh) | 确定估计值的方法和装置 | |
EP1569203A2 (en) | Lossless audio decoding/encoding method and apparatus | |
RU2595544C2 (ru) | Устройство и способ кодирования, устройство и способ декодирования и программа | |
CN101632118A (zh) | 包括信息比特流转换的用于对具有各种声道的多对象音频信号进行编码和解码的设备和方法 | |
JP5926377B2 (ja) | サンプルレートスケーラブル可逆オーディオコーディング | |
CN1822508B (zh) | 对数字信号进行编码和解码的方法和设备 | |
US20110206223A1 (en) | Apparatus for Binaural Audio Coding | |
CA2365529A1 (en) | Matrix improvements to lossless encoding and decoding | |
US6304890B1 (en) | Exponential calculation device and decoding device | |
TWI450267B (zh) | 編碼時域音訊訊號之方法及電子裝置以及產生頻帶之頻率係數的比例因子之方法 | |
CN102138177A (zh) | 多通道音频数据的重构 | |
CN105679325A (zh) | 解码设备、解码方法以及音频处理设备 | |
CN102855876A (zh) | 音频编码器、音频编码方法和程序 | |
CN101685436B (zh) | 音频信号处理装置与方法 | |
CN101667170A (zh) | 计算、量化、音频编码的装置和方法及程序 | |
EP2405424B1 (en) | Stereo coding method, device and encoder | |
CN102063905A (zh) | 一种用于音频解码的盲噪声填充方法及其装置 | |
KR20060100221A (ko) | 가상음원위치정보를 이용한 멀티채널 오디오 신호의 압축및 복원 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120704 Termination date: 20150729 |
|
EXPY | Termination of patent right or utility model |