(57)【要約】【課題】より簡単かつ精度よくべき乗の演算を行う。【解決手段】仮数／指数分離部１０１は、入力値Ｘ＝（１＋Ｘ1／２23）×（２＾Ｘ2）を浮動小数点数の仮数部の仮数Ｘ1と、指数部の指数Ｘ2とに分離する。整数／小数分離部１０２は、指数Ｘ2とべき指数Ｙとの積（Ｘ2×Ｙ）＝Ｘint×Ｘamariを、整数Ｘintと小数Ｘamariとに分離する。べき乗演算部１０５は、仮数Ｘ1、整数Ｘint、および小数Ｘamariから、演算値Ｐ＝ＸY＝（１＋Ｘ1／２23）Y×（２＾Ｘamari）×（２＾Ｘint）を求める。その際、べき乗演算部１０５は、入力値Ｘの仮数のべき乗値（１＋Ｘ1／２23）Yと、入力値Ｘの底のべき乗値（２＾Ｘamari）とを、仮数Ｘ1および小数Ｘamariを用いてテーブルから取得する。本発明は、量子化装置に適用することができる。【選択図】図５
2010032762.tif 000002
【特許請求の範囲】
【請求項１】
定数Ｙをべき指数とした、所定の入力値Ｘのべき乗の演算を行う演算処理装置であって、
浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘを分離する仮数／指数分離手段と、
前記指数Ｘ2と前記定数Ｙとの積を、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離する整数／小数分離手段と、
前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値を記録する第１の記録手段と、
前記小数Ｘamariに対して定まる、前記小数Ｘamariをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値を記録する第２の記録手段と、
前記仮数Ｘ1を用いて前記第１の記録手段から取得した前記仮数の前記べき乗値、前記小数Ｘamariを用いて前記第２の記録手段から取得した前記底の前記べき乗値、および前記整数Ｘintから、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算するべき乗演算手段と
を備える演算処理装置。
【請求項２】
前記仮数Ｘ1を用いて前記第１の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記仮数の前記べき乗値を求める補間手段をさらに備え、
前記べき乗演算手段は、前記底の前記べき乗値、および前記整数Ｘint、および前記補間手段により求められた前記仮数の前記べき乗値から、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算する
請求項１に記載の演算処理装置。
【請求項３】
前記小数Ｘamariを用いて前記第２の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記底の前記べき乗値を求める補間手段をさらに備え、
前記べき乗演算手段は、前記仮数の前記べき乗値、および前記整数Ｘint、および前記補間手段により求められた前記底の前記べき乗値から、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算する
請求項１に記載の演算処理装置。
【請求項４】
定数Ｙをべき指数とした、所定の入力値Ｘのべき乗の演算を行う演算処理装置であり、
浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘを分離する仮数／指数分離手段と、
前記指数Ｘ2と前記定数Ｙとの積を、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離する整数／小数分離手段と、
前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値を記録する第１の記録手段と、
前記小数Ｘamariに対して定まる、前記小数Ｘamariをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値を記録する第２の記録手段と、
前記仮数Ｘ1を用いて前記第１の記録手段から取得した前記仮数の前記べき乗値、前記小数Ｘamariを用いて前記第２の記録手段から取得した前記底の前記べき乗値、および前記整数Ｘintから、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算するべき乗演算手段と
を備える演算処理装置の演算処理方法であって、
前記仮数／指数分離手段が前記入力値Ｘを前記仮数Ｘ1と前記指数Ｘ2とに分離し、
前記整数／小数分離手段が前記指数Ｘ2と前記定数Ｙとの前記積を、前記整数Ｘintと前記小数Ｘamariとに分離し、
前記べき乗演算手段が前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算する
ステップを含む演算処理方法。
【請求項５】
定数Ｙをべき指数とした、所定の入力値Ｘのべき乗の演算を行う演算処理装置に、
浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘを分離し、
前記指数Ｘ2と前記定数Ｙとの積を、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離し、
前記仮数Ｘ1を用いて取得した、前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値、前記小数Ｘamariを用いて取得した、前記小数Ｘamariに対して定まる、前記入力値Ｘを浮動小数点数で表現したときの底の前記小数Ｘamariをべき指数とするべき乗値、および前記整数Ｘintから、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算する
ステップを含む処理を実行させるプログラム。
【請求項６】
定数Ｙをべき指数とした、所定の入力値Ｘのべき乗値の整数を求める演算処理装置であって、
浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘを分離する仮数／指数分離手段と、
前記指数Ｘ2と前記定数Ｙとの積を、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離する整数／小数分離手段と、
前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値と、前記小数Ｘamariをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値との積を示す固定小数点化されたデータに対して、前記固定小数点化されたデータの最下位ビットから小数点位置までのビット数から、前記整数Ｘintを減算して得られる数を示すビット数分だけ右シフト演算を行って、前記入力値Ｘのべき乗値の前記整数を求めるべき乗整数変換手段と
を備える演算処理装置。
【請求項７】
前記仮数Ｘ1に対して定まる、前記入力値Ｘの前記仮数の前記べき乗値を記録する第１の記録手段と、
前記小数Ｘamariに対して定まる、前記底の前記べき乗値を記録する第２の記録手段と
をさらに備え、
前記べき乗整数変換手段は、前記仮数Ｘ1を用いて前記第１の記録手段から取得された前記仮数の前記べき乗値、および前記小数Ｘamariを用いて前記第２の記録手段から取得された前記底の前記べき乗値を用いて、前記入力値Ｘのべき乗値の前記整数を求める
請求項６に記載の演算処理装置。
【請求項８】
前記仮数Ｘ1を用いて前記第１の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記仮数の前記べき乗値を求める補間手段をさらに備え、
前記べき乗整数変換手段は、前記補間手段により求められた前記仮数の前記べき乗値を用いて、前記入力値Ｘのべき乗値の前記整数を求める
請求項７に記載の演算処理装置。
【請求項９】
前記小数Ｘamariを用いて前記第２の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記底の前記べき乗値を求める補間手段をさらに備え、
前記べき乗整数変換手段は、前記補間手段により求められた前記底の前記べき乗値を用いて、前記入力値Ｘのべき乗値の前記整数を求める
請求項７に記載の演算処理装置。
【請求項１０】
定数Ｙをべき指数とした、所定の入力値Ｘのべき乗値の整数を求める演算処理装置であり、
浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘを分離する仮数／指数分離手段と、
前記指数Ｘ2と前記定数Ｙとの積を、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離する整数／小数分離手段と、
前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値と、前記小数Ｘamariをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値との積を示す固定小数点化されたデータに対して、前記固定小数点化されたデータの最下位ビットから小数点位置までのビット数から、前記整数Ｘintを減算して得られる数を示すビット数分だけ右シフト演算を行って、前記入力値Ｘのべき乗値の前記整数を求めるべき乗整数変換手段と
を備える演算処理装置の演算処理方法であって、
前記仮数／指数分離手段が前記入力値Ｘを前記仮数Ｘ1と前記指数Ｘ2とに分離し、
前記整数／小数分離手段が前記指数Ｘ2と前記定数Ｙとの前記積を前記整数Ｘintと前記小数Ｘamariとに分離し、
前記べき乗整数変換手段が前記入力値Ｘのべき乗値の前記整数を求める
ステップを含む演算処理方法。
【請求項１１】
定数Ｙをべき指数とした、所定の入力値Ｘのべき乗値の整数を求める演算処理装置に、
浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘを分離し、
前記指数Ｘ2と前記定数Ｙとの積を、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離し、
前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値と、前記小数Ｘamariをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値との積を示す固定小数点化されたデータに対して、前記固定小数点化されたデータの最下位ビットから小数点位置までのビット数から、前記整数Ｘintを減算して得られる数を示すビット数分だけ右シフト演算を行って、前記入力値Ｘのべき乗値の前記整数を求める
ステップを含む処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は演算処理装置および方法、並びにプログラムに関し、特に、より精度よくべき乗の演算を行うことができるようにした演算処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
オーディオ信号を符号化する方法として、MPEG（Moving Picture Expert Group）オーディオ規格が知られている。MPEG オーディオ規格には複数の符号化方式があるが、ISO/IEC（International Organization for Standardization/International Electrotechnical Commission） 13818-7にてMPEG-2オーディオ規格AAC（Advanced Audio Coding）という符号化方式が標準化されている。
【０００３】
また、さらに拡張されたISO/IEC 14496-3にて、MPEG-4オーディオ規格AACという符号化方式が標準化されている。なお、以下では、MPEG-2オーディオ規格AAC、およびMPEG-4オーディオ規格AACを合わせてAAC規格と呼ぶこととする。
【０００４】
図１に、AAC規格に準拠した従来の符号化装置の構成を示す。
【０００５】
符号化装置は、聴覚心理モデル保持部１１、ゲイン制御部１２、スペクトル処理部１３、量子化／符号化部１４、およびマルチプレクサ部１５から構成される。
【０００６】
符号化装置に入力されたオーディオ信号は、聴覚心理モデル保持部１１およびゲイン制御部１２に供給される。聴覚心理モデル保持部１１は、供給されたオーディオ信号を時間軸に沿ってブロック化し、ブロック化されたオーディオ信号を分割帯域ごとに人間の聴覚特性に従って分析して、各分割帯域の許容誤差強度を算出する。
【０００７】
ゲイン制御部１２は、SSR（Scalable Sampling Rate）プロファイルのみに使用され、供給されたオーディオ信号を４つの等間隔の周波数帯域に分割し、最低域以外の帯域について利得調整を行う。
【０００８】
スペクトル処理部１３は、ゲイン制御部１２において利得調整されたオーディオ信号を周波数領域のスペクトルデータに変換する。また、スペクトル処理部１３は、聴覚心理モデル保持部１１から供給された許容誤差強度に基づいて、スペクトル処理部１３の各部を制御し、スペクトルデータに所定の処理を施す。
【０００９】
スペクトル処理部１３は、MDCT（Modified Discrete Cosine Transform）部２１、TNS（Temporal Noise Shaping）処理部２２、インテンシティ／カップリング部２３、予測部２４、およびM/S（Middle/Side Stereo）ステレオ部２５を備えている。
【００１０】
MDCT部２１は、ゲイン制御部１２から供給された時間領域のオーディオ信号を周波数領域のスペクトルデータに変換する。TNS処理部２２は、MDCT部２１によりスペクトルデータとされたオーディオ信号を加工して量子化雑音の時間的な形状を調整する。インテンシティ／カップリング部２３は、TNS処理部２２により加工されたオーディオ信号に対してステレオ相関符号化処理を施す。
【００１１】
予測部２４は、インテンシティ／カップリング部２３においてステレオ相関符号化されたオーディオ信号と、量子化部２７から供給されるオーディオ信号とを用いて予測符号化を行い、その結果得られたオーディオ信号をM/Sステレオ部２５に供給する。M/Sステレオ部２５は、予測部２４からのオーディオ信号をステレオ相関符号化し、量子化／符号化部１４に供給する。
【００１２】
量子化／符号化部１４は、M/Sステレオ部２５からのオーディオ信号を符号列に変換し、マルチプレクサ部１５に供給する。量子化／符号化部１４は、正規化係数部２６、量子化部２７、およびハフマン符号化部２８を備えている。
【００１３】
正規化係数部２６は、M/Sステレオ部２５からのオーディオ信号を量子化部２７に供給するとともに、そのオーディオ信号に基づいて、オーディオ信号の量子化に用いる正規化係数を算出し、量子化部２７およびハフマン符号化部２８に供給する。例えば、聴覚心理モデル保持部１１からの許容誤差強度が用いられて、分割帯域ごとの正規化係数として、量子化ステップパラメータが算出される。
【００１４】
量子化部２７は、正規化係数部２６からの正規化係数を用いて、正規化係数部２６から供給されたオーディオ信号を非線形量子化し、その結果得られたオーディオ信号（量子化値）をハフマン符号化部２８および予測部２４に供給する。ハフマン符号化部２８は、予め定められたハフマン符号表に基づいて、正規化係数部２６からの正規化係数と、量子化部２７からの量子化値とに、それぞれハフマン符号を与えることで正規化係数および量子化値をハフマン符号化し、マルチプレクサ部１５に供給する。
【００１５】
マルチプレクサ部１５は、ゲイン制御部１２およびMDCT部２１乃至正規化係数部２６から供給された、オーディオ信号の符号化の過程で生成された各種の情報と、ハフマン符号化部２８からのハフマン符号とを多重化して、符号化されたオーディオ信号のビットストリームを生成して出力する。
【００１６】
また、量子化部２７におけるオーディオ信号の非線形量子化は、正規化係数部２６からのオーディオ信号の値を入力値ＡＸとし、正規化係数部２６からの正規化係数としての量子化ステップパラメータをｑとすると、次式（１）を計算することにより行われる。すなわち、式（１）が計算されて、オーディオ信号の入力値ＡＸから量子化値Ｚが求められる。
【００１７】
【数１】
2010032762.tif 000003
【００１８】
なお、式（１）において、（ｉｎｔ）（Ａ）は、浮動小数点数Ａの小数部分を切り捨てて整数部分を得る演算を示す。
【００１９】
AAC規格の符号化においては、量子化値Ｚは１４ビットと規定されているため、量子化前の値ＡＹ＝ＡＸ／２q/4は、逆算すると、０≦ＡＹ＜8191.5943(4/3)の範囲の値とされる。したがって、量子化値Ｚは、０≦Ｚ≦8191の範囲の整数となり、量子化値Ｚがこの範囲内の値となるように、量子化ステップパラメータｑが定められる。
【００２０】
また、オーディオ信号の量子化時において、量子化部２７は、全ての入力値ＡＸに対する量子化値Ｚを逆量子化し、量子化誤差が所定の範囲内に収まっているか否かを確認する。例えば、次式（２）の演算により逆量子化が行われ、逆量子化値Ｗが得られる。
【００２１】
【数２】
2010032762.tif 000004
【００２２】
さらに、量子化誤差は、逆量子化値Ｗと入力値ＡＸとの差分を求めることで得られ、その差分が所定の範囲内の値となっているか否かの判定が行われる。
【００２３】
ところで、従来、上述した式（１）における４分の３乗や、式（２）における３分の４乗などのべき乗の演算結果を効率よく得る方法が提案されている（例えば、特許文献１参照）。特許文献１には、定数である、べき指数をＹ＝Ａ／Ｂ（但し、Ａ＝３，Ｂ＝４）として、任意の変数ＸのＹ乗の演算を、テーブルを用いて行うことが開示されている。すなわち、特許文献１の番号６３の段落には「小数部ｕに関しては仮数部をＲＯＭのテーブル検索により求めるようにして」と記載されており、ｕ個のテーブルが用いられて変数Ｘのべき乗が求められる。
【００２４】
具体的には、特許文献１では、以下に説明する手順でべき乗の演算が行われる。
【００２５】
まず、変数ＸのＹ乗の演算結果として得られる演算値をＰとすると、次式（３）の関係が成立する。
【００２６】
【数３】
2010032762.tif 000005
【００２７】
次に、入力された変数Ｘが、式（４）に示すように、Ｃ言語の関数frexpおよびldexpの仕様に基づく仮数Ｘ1と指数Ｘ2とに分離される。ここで、仮数Ｘ1の取り得る値の範囲は0.5以上1.0未満とされる。
【００２８】
【数４】
2010032762.tif 000006
【００２９】
この式（４）を式（３）に代入すれば、次式（５）が得られる。
【００３０】
【数５】
2010032762.tif 000007
【００３１】
さらに、式（５）におけるＸ2×Ａ／Ｂの整数部分をＸintとし、小数部分をＸamariとすると、式（５）は、式（６）で表され、整数部分Ｘintおよび小数部分Ｘamariは、それぞれ式（７）および式（８）で表される。
【００３２】
【数６】
2010032762.tif 000008
【００３３】
【数７】
2010032762.tif 000009
【００３４】
【数８】
2010032762.tif 000010
【００３５】
なお、式（７）における（ｉｎｔ）（Ａ）は、浮動小数点数Ａの小数部分を切り捨てて整数部分を得る演算を示している（以下の説明においても同様であるとする）。また、式（８）において、％はモジュロを意味し、（Ｘ2×（Ｂ−Ａ））をＢで割った余りを求める処理を示している。
【００３６】
さらに、仮数Ｘ1および小数部分Ｘamariから、式（６）における（Ｘ1＾（Ａ／Ｂ））×（２＾Ｘamari）を得るテーブルと、仮数Ｘ1が0.5以上1.0未満となるように指数Ｘ2を調整するテーブルを用意し、それらのテーブルを利用して式（６）の演算を行うことで、変数ＸのＹ乗の演算結果として演算値Ｐが得られる。なお、「＾」はべき乗を表しており、例えば、「２＾Ｘamari」は、２のＸamari乗を示している。「＾」についても、以下の説明において同様であるとする。
【００３７】
以上のようにしてべき乗の演算を行い、オーディオ信号を量子化する量子化装置は、図２に示す構成とされる。
【００３８】
量子化装置５１は、図１の量子化部２７に対応し、量子化装置５１には、式（１）における量子化前の値ＡＹが変数Ｘとして供給されるとともに、べき指数Ｙが供給される。
【００３９】
仮数／指数分離部６１は、供給された変数Ｘを仮数Ｘ1と指数Ｘ2とに分離し、指数Ｘ2を整数／小数分離部６２に供給し、仮数Ｘ1をべき乗演算部６３に供給する。整数／小数分離部６２は、仮数／指数分離部６１からの指数Ｘ2と、供給されたべき指数Ｙとの積の整数部分Ｘintおよび小数部分Ｘamariを求めてべき乗演算部６３に供給する。
【００４０】
べき乗テーブル保持部６４は、仮数Ｘ1および小数部分Ｘamariから、求めようとする演算値Ｐを浮動小数点表現したときの仮数Ｐamariを得るためのべき乗テーブルを保持している。また、指数調整テーブル保持部６５は、整数部分Ｘintおよび小数部分Ｘamariから、演算値Ｐを浮動小数点表現したときの指数Ｐintの調整値を得るための調整テーブルを保持している。
【００４１】
べき乗演算部６３は、仮数／指数分離部６１からの仮数Ｘ1と、整数／小数分離部６２からの整数部分Ｘintおよび小数部分Ｘamariとを用いて、演算値Ｐの仮数Ｐamariおよび指数Ｐintを求めることで、変数ＸのＹ乗の演算を行う。このとき、べき乗演算部６３は、べき乗テーブル保持部６４のべき乗テーブルと、指数調整テーブル保持部６５の指数調整テーブルとを利用して、仮数Ｐamariおよび調整値を得る。また、指数Ｐintは、整数部分Ｘintおよび調整値から求められる。
【００４２】
整数変換部６６は、べき乗演算部６３により求められた演算値Ｐに所定の定数αが加算されて得られる数の整数部分を抽出し、抽出した整数部分を、入力された変数Ｘの量子化値Ｚとして出力する。この場合、定数αは、式（１）の「-0.0946＋0.5」とされる。
【００４３】
次に、図３のフローチャートを参照して、量子化装置５１による量子化処理について説明する。
【００４４】
ステップＳ１１において、べき乗テーブル保持部６４および指数調整テーブル保持部６５は、べき乗テーブルおよび指数調整テーブルを生成する。
【００４５】
すなわち、べき乗テーブル保持部６４は、テーブルサイズを２N＝SIZEとすると、次式（９）に示される仮数Ｐamariの値frc[i][j]からなるべき乗テーブルを生成する。
【００４６】
【数９】
2010032762.tif 000011
【００４７】
なお、式（９）において、仮数Ｐamariの値frc[i][j]の変数ｉは、仮数Ｘ1から求まるインデックスindex1の値を示しており、変数ｉ＝０，・・・，（SIZE−１）とされる。また、frc[i][j]の変数ｊは、小数部分Ｘamariの値を示しており、変数ｊ＝１，・・・，（Ｂ−１）である。この変数ｊにおける「Ｂ」は、べき指数Ｙ＝Ａ／ＢにおけるＢである。
【００４８】
さらに、式（９）におけるfrctmpは、式（１０）により求まる値である。
【００４９】
【数１０】
2010032762.tif 000012
【００５０】
なお、式（１０）における値frc[i][0]は、式（１１）により求まる値である。
【００５１】
【数１１】
2010032762.tif 000013
【００５２】
ここで、式（１０）および式（１１）における「Ａ」および「Ｂ」も、べき指数Ｙ＝Ａ／ＢにおけるＡおよびＢである。
【００５３】
このように、べき乗テーブル保持部６４は、インデックスindex1および小数部分Ｘamariにより定まる仮数Ｐamariの各値frc[i][j]からなるべき乗テーブルを生成し、保持する。
【００５４】
また、指数調整テーブル保持部６５は、テーブルサイズを２N＝SIZEとして、次式（１２）に示される指数Ｐintの調整値exp[i][j]からなる指数調整テーブルを生成する。
【００５５】
【数１２】
2010032762.tif 000014
【００５６】
ここで、調整値exp[i][j]の変数ｉおよびｊは、frc[i][j]における変数ｉおよびｊと同じであり、式（１２）におけるfrctmpは、上述した式（１０）により求まる。また、調整値exp[i][0]は０とされる。
【００５７】
指数調整テーブル保持部６５は、インデックスindex1および小数部分Ｘamariにより定まる各調整値exp[i][j]からなる指数調整テーブルを生成し、保持する。
【００５８】
なお、以上において説明した仮数Ｐamariの値frc[i][j]と、調整値exp[i][j]とは、べき指数Ｙ＝Ａ／Ｂ＝３／４を想定したときの値であり、べき指数Ｙの分子「Ａ」および分母「Ｂ」を任意の値とするには、０．５≦frc[i][j]＜１．０となるように、frc[i][j]および調整値exp[i][j]を求める必要がある。
【００５９】
べき乗テーブルおよび指数調整テーブルが生成されると、ステップＳ１２において、仮数／指数分離部６１は、Ｃ言語の関数frexpを用いて、供給された変数Ｘの仮数Ｘ1および指数Ｘ2を求める。ここで、仮数Ｘ1は、0.5以上1.0未満の値とされる。
【００６０】
仮数／指数分離部６１は、求めた仮数Ｘ1をべき乗演算部６３に供給し、指数Ｘ2を整数／小数分離部６２に供給する。
【００６１】
ステップＳ１３において、整数／小数分離部６２は、仮数／指数分離部６１からの指数Ｘ2と、供給されたべき指数Ｙとを用いて式（７）および式（８）の計算を行い、指数Ｘ2とべき指数Ｙ＝Ａ／Ｂの積の整数部分Ｘintおよび小数部分Ｘamariを求める。
【００６２】
ステップＳ１４において、べき乗演算部６３は、仮数／指数分離部６１からの仮数Ｘ1と、整数／小数分離部６２からの整数部分Ｘintおよび小数部分Ｘamariとを用いて、変数ＸをＹ乗して得られる演算値Ｐを求める。
【００６３】
すなわち、べき乗演算部６３は、次式（１３）を計算することで、べき乗テーブルおよび指数調整テーブルから、所望のfrc[i][j]およびexp[i][j]の値を引くために用いられるインデックスindex1を求める。
【００６４】
【数１３】
2010032762.tif 000015
【００６５】
そして、べき乗演算部６３は、求めたインデックスindex1と、整数／小数分離部６２からの小数部分Ｘamariとを用いて、式（１４）に示される演算値Ｐの仮数Ｐamariを求める。
【００６６】
【数１４】
2010032762.tif 000016
【００６７】
すなわち、べき乗演算部６３は、べき乗テーブル保持部６４のべき乗テーブルから、frc[index1][Ｘamari]を取得して、このfrc[index1][Ｘamari]の値を仮数Ｐamariとする。
【００６８】
また、べき乗演算部６３は、指数調整テーブル保持部６５の指数調整テーブルから、インデックスindex1および小数部分Ｘamariから特定される調整値exp[index1][Ｘamari]を取得する。さらに、べき乗演算部６３は、取得した調整値exp[index1][Ｘamari]と、整数／小数分離部６２からの整数部分Ｘintを用いて次式（１５）を計算し、演算値Ｐの指数Ｐintを求める。
【００６９】
【数１５】
2010032762.tif 000017
【００７０】
べき乗演算部６３は、演算値Ｐの仮数Ｐamariおよび指数Ｐintを求めると、Ｃ言語の関数ldexpを用いて仮数Ｐamariおよび指数Ｐintを合成し、浮動小数点数のべき乗の演算結果である演算値Ｐを求めて整数変換部６６に供給する。
【００７１】
ステップＳ１５において、整数変換部６６は、べき乗演算部６３からの演算値Ｐを用いて、変数Ｘの量子化値Ｚを求めて出力し、量子化処理は終了する。
【００７２】
すなわち、整数変換部６６は演算値Ｐと、予め定められた定数αとから次式（１６）を計算し、量子化値Ｚを求める。
【００７３】
【数１６】
2010032762.tif 000018
【００７４】
以上のようにして、量子化装置５１は、入力された変数Ｘのべき乗を計算し、量子化値Ｚを求める。
【００７５】
【特許文献１】特開２００２−３４４３１６号公報
【発明の開示】
【発明が解決しようとする課題】
【００７６】
しかしながら、上述した技術では、少ないメモリ量で、べき乗の演算を簡単に精度よく行なうことは困難であった。
【００７７】
例えば、特許文献１に記載の技術では、べき指数Ｙ＝Ａ／Ｂの分子Ａおよび分母Ｂを個々に用いた演算が行われるため、特許文献１に記載の技術は、べき指数Ｙが分数で表現される場合にしか、べき乗の演算に適用することができない。
【００７８】
また、変数ｉ，ｊに対する仮数Ｐamariの値frc[i][j]の個数、つまりべき乗テーブルの数がSIZE×Ｂ個必要となり、さらに変数Ｘを関数frexpおよびldexpの仕様に合わせるための指数の調整値の個数、つまり指数調整テーブルの数がSIZE×Ｂ個必要となる。したがって、べき指数Ｙの分母Ｂの値によっては、べき乗テーブルや指数調整テーブルを記録しておくために膨大なメモリ量が必要となってしまう。
【００７９】
さらに、べき乗テーブルや指数調整テーブルを用いずに、直接、べき乗の演算をしようとしても、変数Ｘの仮数および指数は、Ｃ言語の関数frexpおよびldexpの仕様に基づいたものであるため、浮動小数点数の仮数および指数とは異なる。したがって、量子化装置５１の一部を浮動小数点数の演算を行う演算器に置き換えることも容易ではない。
【００８０】
さらに、また、べき乗の演算の精度を上げようとすると、べき乗テーブルおよび指数調整テーブルのサイズを増やす必要があり、逆にそれらのテーブルのサイズを小さくすると、べき乗の演算精度が低下してしまう。
【００８１】
具体的には、量子化装置５１により算出されたべき乗の演算値Ｐと、数学ライブラリを用いて算出したべき乗値ＱとからなるＬ個のデータのセットを用いて、次式（１７）を計算し、相対誤差平均Ｔを求めて演算精度を評価することを考える。
【００８２】
【数１７】
2010032762.tif 000019
【００８３】
なお、式（１７）において、Ｐiは、量子化装置５１により算出されたべき乗値Ｐ（演算値Ｐ）のｉ番目のサンプルを示しており、Ｑiは、数学ライブラリにより求められたＱに対応する数を示している。
【００８４】
本出願人がべき指数Ｙ＝３／４とし、Ｌ＝８１９２として式（１７）を計算し、量子化装置５１によるべき乗値Ｐ（演算値Ｐ）の演算精度の評価を行ったところ、テーブルサイズ２NにおけるＮが８であるとき、すなわちSIZE＝256のとき、相対誤差平均Ｔ＝8.25×10-4となり、それほど高い精度は得られなかった。また、テーブルサイズ２NにおけるＮが１６であるとき、すなわちSIZE＝65536のとき、相対誤差平均Ｔ＝2.56×10-8となり、Ｎ＝８の場合よりも高い精度が得られた。
【００８５】
しかしながら、べき乗の演算値Ｐの演算精度を高くするために、べき乗テーブルおよび指数調整テーブルのテーブルサイズをSIZE＝65536とすると、それらのテーブルが合計524288（＝65536×4×2）個も必要となり、テーブルを記録するためのメモリ容量が逼迫してしまう。
【００８６】
さらに、例えば式（１）に示したように、オーディオ信号の量子化を行う場合などには、べき乗演算により演算値Ｐを求め、さらに定数αを加算してから整数化を行わなければならず、簡単にべき乗の整数を求めることができなかった。
【００８７】
本発明は、このような状況に鑑みてなされたものであり、少ないメモリ量で、より簡単かつ精度よくべき乗の演算を行うことができるようにするものである。また、本発明は、より簡単にべき乗の整数を求めることができるようにするものである。
【課題を解決するための手段】
【００８８】
本発明の第１の側面の演算処理装置は、定数Ｙをべき指数とした、所定の入力値Ｘのべき乗の演算を行う演算処理装置であって、浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ１と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ２とに、前記入力値Ｘを分離する仮数／指数分離手段と、前記指数Ｘ２と前記定数Ｙとの積を、前記積の整数部分である整数Ｘｉｎｔと、前記積の小数部分である小数Ｘａｍａｒｉとに分離する整数／小数分離手段と、前記仮数Ｘ１に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値を記録する第１の記録手段と、前記小数Ｘａｍａｒｉに対して定まる、前記小数Ｘａｍａｒｉをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値を記録する第２の記録手段と、前記仮数Ｘ１を用いて前記第１の記録手段から取得した前記仮数の前記べき乗値、前記小数Ｘａｍａｒｉを用いて前記第２の記録手段から取得した前記底の前記べき乗値、および前記整数Ｘｉｎｔから、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算するべき乗演算手段とを備える。
【００８９】
演算処理装置には、前記仮数Ｘ１を用いて前記第１の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記仮数の前記べき乗値を求める補間手段をさらに設け、前記べき乗演算手段には、前記底の前記べき乗値、および前記整数Ｘｉｎｔ、および前記補間手段により求められた前記仮数の前記べき乗値から、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算させることができる。
【００９０】
演算処理装置には、前記小数Ｘａｍａｒｉを用いて前記第２の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記底の前記べき乗値を求める補間手段をさらに設け、前記べき乗演算手段には、前記仮数の前記べき乗値、および前記整数Ｘｉｎｔ、および前記補間手段により求められた前記底の前記べき乗値から、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算させることができる。
【００９１】
本発明の第１の側面の演算処理方法またはプログラムは、定数Ｙをべき指数とした、所定の入力値Ｘのべき乗の演算を行う場合に、浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ１と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ２とに、前記入力値Ｘを分離し、前記指数Ｘ２と前記定数Ｙとの積を、前記積の整数部分である整数Ｘｉｎｔと、前記積の小数部分である小数Ｘａｍａｒｉとに分離し、前記仮数Ｘ１を用いて取得した、前記仮数Ｘ１に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値、前記小数Ｘａｍａｒｉを用いて取得した、前記小数Ｘａｍａｒｉに対して定まる、前記入力値Ｘを浮動小数点数で表現したときの底の前記小数Ｘａｍａｒｉをべき指数とするべき乗値、および前記整数Ｘｉｎｔから、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗を演算するステップを含む。
【００９２】
本発明の第１の側面においては、定数Ｙをべき指数とした、所定の入力値Ｘのべき乗の演算を行う場合に、浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ1と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ2とに、前記入力値Ｘが分離され、前記指数Ｘ2と前記定数Ｙとの積が、前記積の整数部分である整数Ｘintと、前記積の小数部分である小数Ｘamariとに分離され、前記仮数Ｘ1に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値が記録され、前記小数Ｘamariに対して定まる、前記小数Ｘamariをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値が記録され、前記仮数Ｘ1が用いられて取得された前記仮数の前記べき乗値、前記小数Ｘamariが用いられて取得された前記底の前記べき乗値、および前記整数Ｘintから、前記定数Ｙをべき指数とした、前記入力値Ｘのべき乗が演算される。
【００９３】
本発明の第２の側面の演算処理装置は、定数Ｙをべき指数とした、所定の入力値Ｘのべき乗値の整数を求める演算処理装置であって、浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ１と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ２とに、前記入力値Ｘを分離する仮数／指数分離手段と、前記指数Ｘ２と前記定数Ｙとの積を、前記積の整数部分である整数Ｘｉｎｔと、前記積の小数部分である小数Ｘａｍａｒｉとに分離する整数／小数分離手段と、前記仮数Ｘ１に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値と、前記小数Ｘａｍａｒｉをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値との積を示す固定小数点化されたデータに対して、前記固定小数点化されたデータの最下位ビットから小数点位置までのビット数から、前記整数Ｘｉｎｔを減算して得られる数を示すビット数分だけ右シフト演算を行って、前記入力値Ｘのべき乗値の前記整数を求めるべき乗整数変換手段とを備える。
【００９４】
演算処理装置には、前記仮数Ｘ１に対して定まる、前記入力値Ｘの前記仮数の前記べき乗値を記録する第１の記録手段と、前記小数Ｘａｍａｒｉに対して定まる、前記底の前記べき乗値を記録する第２の記録手段とをさらに設け、前記べき乗整数変換手段には、前記仮数Ｘ１を用いて前記第１の記録手段から取得された前記仮数の前記べき乗値、および前記小数Ｘａｍａｒｉを用いて前記第２の記録手段から取得された前記底の前記べき乗値を用いて、前記入力値Ｘのべき乗値の前記整数を求めさせることができる。
【００９５】
演算処理装置には、前記仮数Ｘ１を用いて前記第１の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記仮数の前記べき乗値を求める補間手段をさらに設け、前記べき乗整数変換手段には、前記補間手段により求められた前記仮数の前記べき乗値を用いて、前記入力値Ｘのべき乗値の前記整数を求めさせることができる。
【００９６】
演算処理装置には、前記小数Ｘａｍａｒｉを用いて前記第２の記録手段から取得した、複数の前記べき乗値を用いて補間処理を行い、最終的な前記底の前記べき乗値を求める補間手段をさらに設け、前記べき乗整数変換手段には、前記補間手段により求められた前記底の前記べき乗値を用いて、前記入力値Ｘのべき乗値の前記整数を求めさせることができる。
【００９７】
本発明の第２の側面の演算処理方法またはプログラムは、定数Ｙをべき指数とした、所定の入力値Ｘのべき乗値の整数を求める場合に、浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ１と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ２とに、前記入力値Ｘを分離し、前記指数Ｘ２と前記定数Ｙとの積を、前記積の整数部分である整数Ｘｉｎｔと、前記積の小数部分である小数Ｘａｍａｒｉとに分離し、前記仮数Ｘ１に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値と、前記小数Ｘａｍａｒｉをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値との積を示す固定小数点化されたデータに対して、前記固定小数点化されたデータの最下位ビットから小数点位置までのビット数から、前記整数Ｘｉｎｔを減算して得られる数を示すビット数分だけ右シフト演算を行って、前記入力値Ｘのべき乗値の前記整数を求めるステップを含む。
【００９８】
本発明の第２の側面においては、定数Ｙをべき指数とした、所定の入力値Ｘのべき乗値の整数を求める場合に、浮動小数点型のデータにおける、前記入力値Ｘを浮動小数点数で表現したときの仮数を表す仮数部である仮数Ｘ１と、前記入力値Ｘを浮動小数点数で表現したときの指数を表す指数部である指数Ｘ２とに、前記入力値Ｘが分離され、前記指数Ｘ２と前記定数Ｙとの積が、前記積の整数部分である整数Ｘｉｎｔと、前記積の小数部分である小数Ｘａｍａｒｉとに分離され、前記仮数Ｘ１に対して定まる、前記定数Ｙをべき指数とする前記入力値Ｘの前記仮数のべき乗値と、前記小数Ｘａｍａｒｉをべき指数とする、前記入力値Ｘを浮動小数点数で表現したときの底のべき乗値との積を示す固定小数点化されたデータに対して、前記固定小数点化されたデータの最下位ビットから小数点位置までのビット数から、前記整数Ｘｉｎｔを減算して得られる数を示すビット数分だけ右シフト演算が行われて、前記入力値Ｘのべき乗値の前記整数が求められる。
【発明の効果】
【００９９】
本発明の第１の側面によれば、べき乗の演算を行うことができる。特に、本発明の第１の側面によれば、少ないメモリ量で、より簡単かつ精度よくべき乗の演算を行うことができる。
【０１００】
また、本発明の第２の側面によれば、べき乗の整数を求める演算を行うことができる。特に、本発明の第２の側面によれば、より簡単かつ精度よくべき乗の整数を求める演算を行うことができる。
【発明を実施するための最良の形態】
【０１０１】
以下、図面を参照して、本発明を適用した実施の形態について説明する。
【０１０２】
［第１の実施の形態］
まず、本発明を適用した演算処理装置により行われる処理の概要を説明する。
【０１０３】
本発明を適用した演算処理装置は、入力値ＸのＹ乗を求める演算を行う。このとき、演算処理装置は、定数であるべき指数Ｙが例えばＹ＝3.141592のような浮動小数点数など、どのような値であっても、べき乗の演算を行うことができるように、IEEE（Institute for Electrical and Electronics Engineering）754に基づく浮動小数点数の仮数と指数を利用して演算を行う。
【０１０４】
例えば、IEEE754の規格に基づく単精度浮動小数点数を示す浮動小数点型のデータは、図４に示すように、３２ビットのビット列で構成される。すなわち、浮動小数点数のデータの最下位ビットである０ビット目から２２ビット目までの部分は、浮動小数点数の仮数を表す仮数部である仮数Ｘ1とされ、２３ビット目から３０ビット目までは、浮動小数点数の指数を表す指数部である指数Ｘ2とされ、最上位の３１ビット目は符号ビットＳとされる。
【０１０５】
ここで、符号ビットＳは、仮数部が正である場合には「０」とされ、仮数部が負の場合には「１」とされる。また、指数部のビット構成は「指数＋バイアス」となる。したがって、指数部の指数Ｘ2は、実際の指数値にバイアスが加算された値である。例えば、IEEE754の規格では、単精度のバイアスとして１２７が用いられているため、指数値が「０」であるときは、指数Ｘ2の値は「１２７」（＝０＋１２７）となり、指数部は１２７のビット構成（０ｘ７ｆ）となる（「０ｘ」は「７ｆ」が１６進数であることを示す）。
【０１０６】
なお、指数部が０と２５５の場合は、特別な意味があるが、その説明は省略する。
【０１０７】
このように浮動小数点型のデータにより表される入力値Ｘを数値表現形式で表すと、入力値Ｘは次式（１８）に示すように表される。
【０１０８】
【数１８】
2010032762.tif 000020
【０１０９】
なお、式（１８）において、「．Ｘ1」は、仮数Ｘ1の上位ビットの前に小数点が位置するものとして仮数部を小数点表現していることを示す。また、式（１８）における「Ｂ」はバイアス成分を示しており、「Ｓ」は符号ビットを示している。
【０１１０】
演算処理装置は、以上のような浮動小数点数である入力値Ｘを仮数Ｘ1と指数Ｘ2とに分離してべき乗の演算を行う。入力値ＸをIEEE754に基づく浮動小数点数で表すと、入力値Ｘは式（１９）に示すように表される。
【０１１１】
【数１９】
2010032762.tif 000021
【０１１２】
式（１９）において、（１＋Ｘ1／２23）は、入力値Ｘを浮動小数点数で表現したときの仮数であり、この仮数におけるＸ1は、浮動小数点型のデータにおける、入力値Ｘの仮数を表す仮数部（仮数Ｘ1）である。また、式（１９）において、Ｘ2は、浮動小数点型のデータにおける、入力値Ｘの指数を表す指数部（指数Ｘ2）である。さらに、式（１９）では、浮動小数点数で表現された入力値Ｘの基数（底）は２とされている。
【０１１３】
いま、入力値ＸのＹ乗を計算することを考えると、このべき乗の計算により得られる演算値Ｐ＝ＸYは、次式（２０）により表される。
【０１１４】
【数２０】
2010032762.tif 000022
【０１１５】
また、式（２０）における「Ｘ2×Ｙ」の整数部分を整数Ｘintとし、小数部分を小数Ｘamariとすると、演算値Ｐ、整数Ｘint、および小数Ｘamariは、それぞれ式（２１）乃至式（２３）で表される。
【０１１６】
【数２１】
2010032762.tif 000023
【０１１７】
【数２２】
2010032762.tif 000024
【０１１８】
【数２３】
2010032762.tif 000025
【０１１９】
なお、式（２２）における（ｉｎｔ）（Ａ）は、浮動小数点数Ａの小数部分を切り捨てて整数部分を得る演算を示しており、以下の説明において同じであるとする。
【０１２０】
演算処理装置は、式（２１）の各項の値を求めることで、最終的に入力値Ｘをべき指数Ｙでべき乗した演算値Ｐを求める。なお、入力値Ｘ＝0.0である場合は、浮動小数点数として特殊な場合であるので、演算値Ｐ＝0.0Y＝0として別途求まるものとする。
【０１２１】
次に、図５に本発明を適用した演算処理装置の一実施の形態の構成例を示す。
【０１２２】
演算処理装置９１は、仮数／指数分離部１０１、整数／小数分離部１０２、仮数のべき乗テーブル保持部１０３、小数のべき乗テーブル保持部１０４、べき乗演算部１０５、および整数変換部１０６から構成される。演算処理装置９１では、仮数／指数分離部１０１に入力値Ｘが供給され、整数／小数分離部１０２に、定数であるべき指数Ｙが供給される。
【０１２３】
仮数／指数分離部１０１は、供給された入力値Ｘを、IEEE754に基づく浮動小数点数の仮数Ｘ1および指数Ｘ2に分離し、仮数Ｘ1をべき乗演算部１０５に供給するとともに、指数Ｘ2を整数／小数分離部１０２に供給する。整数／小数分離部１０２は、仮数／指数分離部１０１からの指数Ｘ2と、供給されたべき指数Ｙとの積の整数Ｘintおよび小数Ｘamariを求め、べき乗演算部１０５に供給する。
【０１２４】
仮数のべき乗テーブル保持部１０３は、仮数Ｘ1の値により定まる、入力値Ｘの仮数部分のべき乗の値が含まれる仮数のべき乗テーブルを保持している。すなわち、仮数のべき乗テーブルには、仮数Ｘ1から求められ、入力値Ｘの仮数部分のべき乗の値を特定するために用いられるインデックスindex1と、そのインデックスindex1に対応付けられた入力値Ｘの仮数部分のべき乗の値とのセットが複数含まれている。ここで、入力値Ｘの仮数部分とは、式（１９）における（１＋Ｘ1／２23）であり、べき乗のべき指数は、べき指数Ｙとされる。
【０１２５】
小数のべき乗テーブル保持部１０４は、小数Ｘamariの値により定まり、小数Ｘamariをべき指数とする、入力値Ｘを浮動小数点数で表現したときの基数（底）のべき乗の値が含まれる小数のべき乗テーブルを保持している。すなわち、小数のべき乗テーブルには、小数Ｘamariから求められ、入力値Ｘの基数のべき乗の値を特定するために用いられるインデックスindex2と、そのインデックスindex2に対応付けられた入力値Ｘの基数のべき乗の値とのセットが複数含まれている。
【０１２６】
べき乗演算部１０５は、仮数のべき乗テーブル保持部１０３の仮数のべき乗テーブル、および小数のべき乗テーブル保持部１０４の小数のべき乗テーブルを参照して、仮数／指数分離部１０１からの仮数Ｘ1と、整数／小数分離部１０２からの整数Ｘintおよび小数Ｘamariとから演算値Ｐを求める。べき乗演算部１０５は求めた演算値Ｐを整数変換部１０６に供給する。整数変換部１０６は、べき乗演算部１０５からの演算値Ｐに定数αが加算されて得られる数の整数部分を求め、出力する。
【０１２７】
このように演算処理装置９１は、入力値Ｘに対してべき指数Ｙのべき乗演算を行い、その結果得られる演算値Ｐ＝ＸYに予め定められた定数αを加算して得られる数の整数部分を求めて出力する。したがって、例えば、入力値Ｘが式（１）における（ＡＸ／２q/4）であり、べき指数Ｙが３／４であり、定数αが「-0.0946＋0.5」である場合には、演算処理装置９１は、図１の量子化部２７に対応する装置となる。すなわち、そのような場合、演算処理装置９１は、入力されたオーディオ信号としての入力値Ｘを非線形量子化する量子化装置となる。
【０１２８】
次に、図６のフローチャートを参照して、演算処理装置９１によるべき乗演算処理について説明する。
【０１２９】
ステップＳ４１において、仮数のべき乗テーブル保持部１０３は、仮数のべき乗テーブルを生成する。すなわち、仮数のべき乗テーブル保持部１０３は、仮数のべき乗テーブルのテーブルサイズを２N＝SIZEとすると、次式（２４）に示される、入力値Ｘの仮数部分をＹ乗して得られる浮動小数点型のデータのべき乗値frctable[i]からなる仮数のべき乗テーブルを生成する。
【０１３０】
【数２４】
2010032762.tif 000026
【０１３１】
ここで、テーブルサイズSIZEは、Ｎビットのデータで表すことのできる数の個数であり、このテーブルサイズSIZEの個数だけべき乗値frctable[i]が用意されることになる。また、べき乗値frctable[i]の変数ｉは、仮数Ｘ1から求まるインデックスindex1の値を示しており、変数ｉ＝０，・・・，（SIZE−１）とされる。
【０１３２】
インデックスindex1を仮数Ｘ1の上位何ビットかの値とすれば、式（２４）における（１＋ｉ／SIZE）Yは、仮数Ｘ1の値に対する、入力値Ｘの仮数部分をＹ乗して得られる値（１＋Ｘ1／２23）Yの近似値となる。
【０１３３】
仮数のべき乗テーブル保持部１０３は、（SIZE）個の各変数の値ｉのそれぞれに対する、べき乗値frctable[i]のそれぞれを求めると、それらの値ｉとべき乗値frctable[i]とを対応付けて仮数のべき乗テーブルを生成し、保持する。
【０１３４】
ステップＳ４２において、小数のべき乗テーブル保持部１０４は、小数のべき乗テーブルを生成する。すなわち、小数のべき乗テーブル保持部１０４は、小数のべき乗テーブルのテーブルサイズを２N＝SIZEとすると、次式（２５）に示される入力値Ｘ（演算値Ｐ）の基数である２をＸamari乗して得られる浮動小数点型のデータのべき乗値twotable[i]からなる小数のべき乗テーブルを生成する。
【０１３５】
【数２５】
2010032762.tif 000027
【０１３６】
ここで、べき乗値twotable[i]の変数ｉは、小数Ｘamariから求まるインデックスindex2の値を示しており、変数ｉ＝０，・・・，（SIZE−１）とされる。
【０１３７】
インデックスindex2を、小数Ｘamariの上位何ビットかの値とすれば、式（２５）における２(i/SIZE)は、小数Ｘamariの値に対する、入力値Ｘの基数「２」のＸamari乗の値２＾Ｘamariの近似値となる。
【０１３８】
小数のべき乗テーブル保持部１０４は、（SIZE）個の各変数の値ｉのそれぞれに対する、べき乗値twotable[i]のそれぞれを求めると、それらの値ｉとべき乗値twotable[i]とを対応付けて小数のべき乗テーブルを生成し、保持する。
【０１３９】
なお、仮数のべき乗テーブルおよび小数のべき乗テーブルを生成する処理は、入力値Ｘのべき乗演算前に１度行っておけばよい。つまり、１度これらのテーブルを生成しておけば、その後、入力値Ｘのべき乗演算を行うときは、既に生成されて保持されている仮数のべき乗テーブルおよび小数のべき乗テーブルを用いればよい。
【０１４０】
ステップＳ４３において、仮数／指数分離部１０１は、供給された入力値Ｘの仮数Ｘ1および指数Ｘ2を求め、仮数Ｘ1をべき乗演算部１０５に供給するとともに、指数Ｘ2を整数／小数分離部１０２に供給する。
【０１４１】
ここで、例えば、入力値Ｘが図４に示した浮動小数点型のデータとされる場合、入力値Ｘのデータの下位２３ビットの部分が、仮数Ｘ1のデータとされ、入力値Ｘのデータの３０ビット目から２３ビット目までの８ビットの部分からバイアス値を引き算した値が、指数Ｘ2のデータとされる。つまり、仮数Ｘ1および指数Ｘ2は、浮動小数点数の仮数部および指数部を表す整数型のデータとされる。
【０１４２】
ステップＳ４４において、整数／小数分離部１０２は、仮数／指数分離部１０１からの指数Ｘ2と、供給されたべき指数Ｙとの積の整数Ｘintおよび小数Ｘamariを求め、べき乗演算部１０５に供給する。
【０１４３】
具体的には、整数／小数分離部１０２は、指数Ｘ2と、べき指数Ｙとの積（Ｘ2×Ｙ）を求め、その積を用いて次式（２６）により整数Ｘintを求める。
【０１４４】
【数２６】
2010032762.tif 000028
【０１４５】
すなわち、積（Ｘ2×Ｙ）が０以上である場合には、その積の整数部分が抽出されて整数Ｘintとされ、積（Ｘ2×Ｙ）が０未満である場合には、その積の整数部分が抽出され、その整数部分からさらに１が減算された値が整数Ｘintとされる。この整数Ｘintのデータは、整数型のデータとされる。
【０１４６】
また、整数／小数分離部１０２は、積（Ｘ2×Ｙ）を用いて、次式（２７）により小数Ｘamariを求める。
【０１４７】
【数２７】
2010032762.tif 000029
【０１４８】
式（２７）では、積（Ｘ2×Ｙ）から、その積の整数部分が減算されて得られる値（差分）に、さらに２23が乗算された値の整数部分が小数Ｘamariとされる。つまり、積（Ｘ2×Ｙ）と積の整数部分との差分を求めることで、積（Ｘ2×Ｙ）の小数部分の値が求まる。そして、その小数部分の値に２23を乗算して、その結果得られる値の整数部分を抽出することで、積（Ｘ2×Ｙ）の小数部分が、小数点が２３ビット目に位置する固定小数点数のデータに変換される。
【０１４９】
ステップＳ４５において、べき乗演算部１０５は、仮数／指数分離部１０１から供給された仮数Ｘ1を用いて、べき指数Ｙに対する入力値Ｘの仮数部分のべき乗の値（１＋Ｘ1／２23）Yを求める。
【０１５０】
すなわち、べき乗演算部１０５は、次式（２８）を計算することにより、仮数Ｘ1の２２ビット目から上位Ｎビットの値をインデックスindex1として求め、そのインデックスindex1を用いて式（２９）により、入力値Ｘの仮数部分のべき乗の値を求める。
【０１５１】
【数２８】
2010032762.tif 000030
【０１５２】
【数２９】
2010032762.tif 000031
【０１５３】
なお、式（２８）において「＞＞」は右シフトを示している。図４に示したように、仮数Ｘ1は２３ビットの値であるので、仮数Ｘ1を（２３−Ｎ）ビットだけ右シフトすれば、仮数Ｘ1の上位Ｎビットの値を取り出すことができる。
【０１５４】
べき乗演算部１０５は、仮数Ｘ1から抽出した上位Ｎビットの値をインデックスindex1とし、そのインデックスindex1を変数ｉの値としたべき乗値frctable[index1]を、仮数のべき乗テーブル保持部１０３の仮数のべき乗テーブルから取得する。そして、この取得されたべき乗値frctable[index1]が、入力値Ｘの仮数部分のべき乗の値（１＋Ｘ1／２23）Yとされる。
【０１５５】
ステップＳ４６において、べき乗演算部１０５は、整数／小数分離部１０２から供給された小数Ｘamariを用いて、小数Ｘamariをべき指数とする、入力値Ｘの基数である２のべき乗を求める。
【０１５６】
すなわち、べき乗演算部１０５は、次式（３０）および式（３１）を計算することで、インデックスindex2を求め、そのインデックスindex2を用いて式（３２）より、入力値Ｘの基数のべき乗の値を求める。
【０１５７】
【数３０】
2010032762.tif 000032
【０１５８】
【数３１】
2010032762.tif 000033
【０１５９】
【数３２】
2010032762.tif 000034
【０１６０】
なお、式（３０）において「＞＞」は右シフトを示しており、式（３１）において「＆」は論理積演算を示している。
【０１６１】
すなわち、べき乗演算部１０５は、小数Ｘamariを（２３−Ｎ）ビットだけ右シフトすることにより、小数Ｘamariの（２３−Ｎ）ビット目から上位ビットの値を取り出してindex2’とする。ここで、小数Ｘamariは式（２７）の計算により、小数点位置が２３ビット目にある固定小数点数とされているので、小数Ｘamariを（２３−Ｎ）ビットだけ右シフトすると、小数Ｘamariの小数部分の（２３−Ｎ）ビット目から上位ビットの値が抽出される。
【０１６２】
また、べき乗演算部１０５は、このようにして得られたindex2’と、（SIZE−１）との論理積演算をすることでＮビットのインデックスindex2を求め、そのインデックスindex2を変数ｉの値としたべき乗値twotable[index2]を、小数のべき乗テーブル保持部１０４の小数のべき乗テーブルから取得する。そして、この取得されたべき乗値twotable[index2]が、基数である２のべき乗値（２＾（Ｘamari））とされる。
【０１６３】
ここで、式（３１）の論理積演算と、式（２６）の積（Ｘ2×Ｙ）が負である場合における、積（Ｘ2×Ｙ）の整数からの１の減算とを行うことは、次の演算を行うことと等価である。すなわち、式（３１）および式（２６）の演算は、積（Ｘ2×Ｙ）＝（Ｘint×Ｘamari）における小数Ｘamariが負であるときに、積の整数Ｘintから１を減算し、積の小数Ｘamariに１を加算することと等価である。
【０１６４】
このような演算を行うと、インデックスindex2を用いて、小数のべき乗テーブルからインデックスindex2により特定されるべき乗値を取得する際に、必要となる条件分岐の数を減らすことができ、より迅速にべき乗値を得ることができるようになる。
【０１６５】
なお、２のべき乗演算を、テーブルを用いてべき指数の小数と整数とに分けて行う場合に、べき指数が負であるときに小数に１を加算し、整数から１を減算することで、テーブル引きの条件分岐数を削減する技術は、特開２００４−１７２７００に記載されている。
【０１６６】
以上のようにして、べき乗の値（１＋Ｘ1／２23）Yと、べき乗の値（２＾（Ｘamari））とがテーブル引きにより求められる。
【０１６７】
ステップＳ４７において、べき乗演算部１０５は、べき乗の値（１＋Ｘ1／２23）Y、およびべき乗の値（２＾（Ｘamari））と、整数／小数分離部１０２からの整数Ｘintとを用いて演算値Ｐを求める。
【０１６８】
すなわち、べき乗演算部１０５は、次式（３３）を計算することで、演算値Ｐを得る。
【０１６９】
【数３３】
2010032762.tif 000035
【０１７０】
ここで、式（３３）において、「（１＋Ｘ1／２23）Y」および「２＾Ｘamari」は既に求められているので、整数Ｘintをべき指数とする、入力値Ｘの基数である２のべき乗の値「２＾Ｘint」を求めればよいことになる。
【０１７１】
そこで、べき乗演算部１０５は、式（３４）を計算することで、べき乗の値「２＾Ｘint」を求める。
【０１７２】
【数３４】
2010032762.tif 000036
【０１７３】
なお、式（３４）において、「＜＜」は左シフトを示している。すなわち、べき乗演算部１０５は、求めようとするべき乗の値「２＾Ｘint」、つまり演算値Ｐを、IEEE754に基づく浮動小数点型のフォーマットのデータとするために、整数Ｘintにバイアス成分「１２７」を加算し、２３ビットだけ左シフトする。
【０１７４】
左シフト演算が行われるのは、図４に示したように、浮動小数点数の指数部が、データにおける３０ビット目から２３ビット目までの部分となるからである。これにより、指数部が「Ｘint＋１２７」である浮動小数点型のデータが得られる。なお、べき乗値（１＋Ｘ1／２23）Yおよびべき乗値（２＾Ｘamari）も、予めまたは演算により浮動小数点型のデータとされるようになされる。
【０１７５】
さらに、べき乗演算部１０５は、「（１＋Ｘ1／２23）Y」、「２＾Ｘamari」、および「２＾Ｘint」を上述した式（３３）に代入することで、演算値Ｐを示す浮動小数点型のデータを得る。このようにして求められた演算値Ｐは、べき乗演算部１０５から整数変換部１０６に供給される。
【０１７６】
ステップＳ４８において、整数変換部１０６は、べき乗演算部１０５から供給された演算値Ｐを整数化して出力し、べき乗演算処理は終了する。
【０１７７】
すなわち、整数変換部１０６は、次式（３５）を計算することにより、演算値Ｐに定数αが加算されて得られる数の整数部分を求め、求められた値を、整数化された演算値Ｐである出力値として出力する。
【０１７８】
【数３５】
2010032762.tif 000037
【０１７９】
以上のようにして、演算処理装置９１は、入力値Ｘを浮動小数点数の仮数Ｘ1および指数Ｘ2に分離し、仮数Ｘ1と、指数Ｘ2およびべき指数Ｙから得られる小数Ｘamariおよび整数Ｘintとを用いて、入力値Ｘのべき乗を演算する。
【０１８０】
このように、入力値Ｘから得られる仮数Ｘ1と、小数Ｘamariおよび整数Ｘintとを用いて、入力値Ｘのべき乗を演算することで、任意の入力値Ｘに対して、より簡単かつ精度よくべき乗の演算を行うことができる。
【０１８１】
すなわち、このようにしてべき乗の演算を行うことにより、べき指数が分数表現されたものに限らず、Ｙ＝3.141592のような浮動小数点数である場合であっても、簡単な処理で迅速にべき乗の演算を行うことができる。また、浮動小数点数の仮数Ｘ1および指数Ｘ2を用いた演算を行うため、上述した式（１２）に示される、従来の指数調整テーブルを用いた煩雑な処理が必要なくなる。
【０１８２】
さらに、（SIZE）個の仮数のべき乗テーブルと、（SIZE）個の小数のべき乗テーブルとを用いて、つまり合計（SIZE×２）個のテーブルを用いるだけで、べき乗の演算を簡単かつ迅速に行うことができる。特に、従来の特許文献１の例と比較すると、テーブル数を１／Ｂにするこができ、テーブルを記録しておくメモリのメモリ容量を大幅に削減することができる。
【０１８３】
なお、以上においては、仮数のべき乗テーブルと小数のべき乗テーブルのテーブルサイズが同じである例について説明したが、それらのテーブルサイズは、必要な精度に応じて異なる大きさとされてもよい。
【０１８４】
また、浮動小数点数の形式（フォーマット）は、単精度浮動小数点の形式に限らず、倍精度浮動小数点の形式などであってもよい。
【０１８５】
［第２の実施の形態］
ところで、本出願人が、べき指数Ｙ＝3.141592とし、Ｌ＝8192個のデータを用いて、上述した式（１７）を計算して求まる相対誤差平均Ｔにより、演算処理装置９１のべき乗の演算精度の評価を行ったところ、Ｎ＝８のとき、つまりテーブルサイズSIZE＝２５６のとき、Ｔ＝6.0×10-3であった。また、Ｎ＝１６のとき、つまりテーブルサイズSIZE＝65536のとき、Ｔ＝3.85×10-6であった。
【０１８６】
この評価結果から、演算処理装置９１では、仮数のべき乗テーブルおよび小数のべき乗テーブルを記録させておくメモリ容量は少なくて済むが、べき乗演算の精度をより高くしようとすると、やはりテーブルサイズを増やす必要があることが分かる。
【０１８７】
そこで、演算処理装置において、仮数のべき乗テーブルおよび小数のべき乗テーブルの値（べき乗の値）に対して補間処理を行うことで、テーブルサイズを増やさずにべき乗演算の精度を向上させることができるようにする。
【０１８８】
具体的には、例えば、図７に示すように、演算処理装置９１は、浮動小数点数のデータの２２ビット目から０ビット目までの仮数部のうち、２２ビット目から上位Ｎビットの部分を用いてべき乗の値を得ていた。つまり、上位Ｎビットの部分を用いた近似により、べき乗の値を得ていたので、この近似には誤差が含まれる。
【０１８９】
そこで、２２ビット目から上位Ｎビットの部分を用いてべき乗の値を得て、さらに残りの（２３−Ｎ）ビットの部分、つまり（２２−Ｎ）ビット目から０ビット目までの部分を、べき乗の値の補間処理に用いることで、べき乗演算の精度を向上させる。
【０１９０】
そのような場合、演算処理装置は、図８に示すように構成される。なお、図８において、図５における場合と対応する部分には、同一の符号を付してあり、その説明は省略する。
【０１９１】
演算処理装置１３１は、仮数／指数分離部１０１、整数／小数分離部１０２、仮数のべき乗テーブル保持部１０３、小数のべき乗テーブル保持部１０４、べき乗演算部１０５、整数変換部１０６、および補間処理部１４１から構成される。すなわち、演算処理装置１３１には、演算処理装置９１に、さらに補間処理部１４１が設けられている。
【０１９２】
補間処理部１４１は、仮数／指数分離部１０１からの仮数Ｘ1を用いてインデックスindex1を求め、仮数のべき乗テーブル保持部１０３の仮数のべき乗テーブルから、インデックスindex1の近傍の複数のテーブル値（べき乗値）を取得する。また、補間処理部１４１は、仮数のべき乗テーブルから取得したテーブル値を用いて補間処理を行い、これにより求められた入力値Ｘの仮数部分のべき乗の値である補間値（１＋Ｘ1／２23）Yを、補間処理により得られた最終的な入力値Ｘの仮数部分のべき乗の値として、べき乗演算部１０５に供給する。
【０１９３】
補間処理部１４１は、整数／小数分離部１０２からの小数Ｘamariを用いてインデックスindex2を求め、小数のべき乗テーブル保持部１０４の小数のべき乗テーブルから、インデックスindex2の近傍の複数のテーブル値（べき乗値）を取得する。また、補間処理部１４１は、小数のべき乗テーブルから取得したテーブル値を用いて補間処理を行い、これにより求められた入力値Ｘの基数のべき乗の値である補間値（２＾Ｘamari）を、補間処理により得られた最終的な基数のべき乗値としてべき乗演算部１０５に供給する。
【０１９４】
次に、図９のフローチャートを参照して、演算処理装置１３１によるべき乗演算処理について説明する。
【０１９５】
なお、ステップＳ７１の処理乃至ステップＳ７４の処理は、図６のステップＳ４１の処理乃至ステップＳ４４の処理と同様であるため、その説明は省略する。
【０１９６】
但し、仮数のべき乗テーブルおよび小数のべき乗テーブルのテーブルサイズは、補間処理部１４１により補間処理として線形補間が行われる場合には２N＋１＝SIZE＋１とされ、補間処理として２次の多項式補間が行われる場合には２N＋２＝SIZE＋２とされる。
【０１９７】
例えば、補間処理として２次の多項式補間が行われる場合、式（２４）および式（２５）に示した仮数のべき乗テーブルおよび小数のべき乗テーブルが生成され、変数ｉ＝０，・・・，SIZE＋１とされる。
【０１９８】
また、仮数／指数分離部１０１により求められた仮数Ｘ1は補間処理部１４１に供給される。さらに、整数／小数分離部１０２により求められた小数Ｘamariは補間処理部１４１に供給され、整数Ｘintはべき乗演算部１０５に供給される。
【０１９９】
ステップＳ７５において、補間処理部１４１は、仮数／指数分離部１０１からの仮数Ｘ1を用いて補間処理を行って、入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yを求め、べき乗演算部１０５に供給する。
【０２００】
すなわち、補間処理部１４１は、上述した式（２８）を計算することにより、仮数Ｘ1の２２ビット目から上位Ｎビットをインデックスindex1として求める。
【０２０１】
また、補間処理部１４１は、次式（３６）を計算することにより、仮数Ｘ1の（２２−Ｎ）ビット目から０ビット目までの部分の値である下位値Ｘh1を求める。
【０２０２】
【数３６】
2010032762.tif 000038
【０２０３】
なお、式（３６）において、「＆」は論理積演算を示しており、以下の説明において同じであるとする。式（３６）では、仮数Ｘ1と（２23-N−１）との論理積演算を行うことにより、仮数Ｘ1の（２２−Ｎ）ビット目から０ビット目までの部分が抽出される。すなわち、（２23-N−１）は、下位（２３−Ｎ）ビットの値だけが「１」となり、他のビットの値は「０」となる値であるので、論理積演算により、仮数Ｘ1の下位（２３−Ｎ）ビットの値だけが抽出される。
【０２０４】
さらに、補間処理部１４１は、式（３７）乃至式（３９）により、入力値Ｘの仮数部分のべき乗の値のテーブル値Ｖ10乃至テーブル値Ｖ12を求める。
【０２０５】
【数３７】
2010032762.tif 000039
【０２０６】
【数３８】
2010032762.tif 000040
【０２０７】
【数３９】
2010032762.tif 000041
【０２０８】
すなわち、補間処理部１４１は、インデックスindex1を変数ｉの値としたべき乗値frctable[index1]をテーブル値Ｖ10として、仮数のべき乗テーブル保持部１０３の仮数のべき乗テーブルから取得する。同様に、補間処理部１４１は、インデックスindex1＋1およびインデックスindex1＋2を変数ｉの値としたべき乗値frctable[index1＋1]およびべき乗値frctable[index1＋2]をテーブル値Ｖ11およびテーブル値Ｖ12として、仮数のべき乗テーブルから取得する。
【０２０９】
そして、補間処理部１４１は、下位値Ｘh1と、テーブル値Ｖ10乃至テーブル値Ｖ12とを用いて補間処理を行い、入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yを求める。
【０２１０】
例えば、補間処理部１４１は、補間処理として線形補間を行う場合、式（４０）を計算することにより、補間値Ｈ＝（１＋Ｘ1／２23）Yを求める。
【０２１１】
【数４０】
2010032762.tif 000042
【０２１２】
なお、式（４０）における「ａ」および「xin」は、それぞれ式（４１）および式（４２）により求められる。
【０２１３】
【数４１】
2010032762.tif 000043
【０２１４】
【数４２】
2010032762.tif 000044
【０２１５】
すなわち、補間処理として線形補間が行われる場合、図１０に示すように、テーブル値Ｖ10を原点とみなして、インデックスに対するべき乗値の傾きａが求められ、インデックス（index1）の値がxinであるときのべき乗値が補間値Ｈとして求められる。なお、図１０において、縦軸はべき乗値を示しており、横軸はインデックスindex1の値を示している。
【０２１６】
また、例えば、補間処理部１４１は、補間処理として２次の多項式補間を行う場合、式（４３）を計算することにより、補間値Ｈ＝（１＋Ｘ1／２23）Yを求める。
【０２１７】
【数４３】
2010032762.tif 000045
【０２１８】
なお、式（４３）における「ａ」、「ｂ」、および「xin」は、それぞれ式（４４）乃至式（４６）により求められる。
【０２１９】
【数４４】
2010032762.tif 000046
【０２２０】
【数４５】
2010032762.tif 000047
【０２２１】
【数４６】
2010032762.tif 000048
【０２２２】
すなわち、補間処理として２次の多項式補間が行われる場合、図１１に示すように、テーブル値Ｖ10を原点とみなして、下位値Ｘh1から求まるインデックスの値xinの２乗の値に乗算される係数ａと、値xinに乗算される係数ｂとが求められ、インデックス（index1）の値がxinであるときのべき乗値が補間値Ｈとして求められる。なお、図１１において、縦軸はべき乗値を示しており、横軸はインデックスindex1の値を示している。
【０２２３】
なお、補間処理部１４１は、補間処理を行わない場合には、テーブル値Ｖ10を、入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yとする。
【０２２４】
図９のフローチャートの説明に戻り、最終的な入力値Ｘの仮数部分のべき乗の値としての補間値（１＋Ｘ1／２23）Yが求められると、処理はステップＳ７５からステップＳ７６へと進む。
【０２２５】
ステップＳ７６において、補間処理部１４１は、整数／小数分離部１０２からの小数Ｘamariを用いて補間処理を行って、入力値Ｘの基数のべき乗の値の補間値（２＾Ｘamari）を求め、べき乗演算部１０５に供給する。
【０２２６】
すなわち、補間処理部１４１は、上述した式（３０）および式（３１）を計算することにより、固定小数点化された小数Ｘamariの２２ビット目から上位Ｎビットの値をindex2として取り出す。
【０２２７】
また、補間処理部１４１は、次式（４７）を計算することにより、小数Ｘamariの（２２−Ｎ）ビット目から０ビット目までの部分の値である下位値Ｘh2を求める。
【０２２８】
【数４７】
2010032762.tif 000049
【０２２９】
式（４７）では、式（３６）における場合と同様に、小数Ｘamariと（２23-N−１）との論理積演算を行うことにより、小数Ｘamariの（２２−Ｎ）ビット目から０ビット目までの部分が抽出される。
【０２３０】
さらに、補間処理部１４１は、式（４８）乃至式（５０）により、入力値Ｘの基数のべき乗の値のテーブル値Ｖ20乃至テーブル値Ｖ22を求める。
【０２３１】
【数４８】
2010032762.tif 000050
【０２３２】
【数４９】
2010032762.tif 000051
【０２３３】
【数５０】
2010032762.tif 000052
【０２３４】
すなわち、補間処理部１４１は、インデックスindex2を変数ｉの値とした入力値Ｘの基数のべき乗の値twotable[index2]をテーブル値Ｖ20として、小数のべき乗テーブル保持部１０４の小数のべき乗テーブルから取得する。
【０２３５】
同様に、補間処理部１４１は、インデックスindex2＋1およびインデックスindex2＋2を変数ｉの値としたべき乗値twotable[index2＋1]およびべき乗値twotable[index2＋2]をテーブル値Ｖ21およびテーブル値Ｖ22として、小数のべき乗テーブルから取得する。
【０２３６】
そして、補間処理部１４１は、下位値Ｘh2と、テーブル値Ｖ20乃至テーブル値Ｖ22とを用いて補間処理を行い、入力値Ｘの基数のべき乗の値の補間値（２＾Ｘamari）を求める。
【０２３７】
例えば、補間処理部１４１は、補間処理として線形補間を行う場合、式（４０）乃至式（４２）を計算することにより、補間値Ｈ＝（２＾Ｘamari）を求める。なお、この場合、式（４０）乃至式（４２）における下位値Ｘh1、テーブル値Ｖ10、およびテーブル値Ｖ11は、下位値Ｘh2、テーブル値Ｖ20、およびテーブル値Ｖ21とされる（置き換えられる）。
【０２３８】
また、例えば、補間処理部１４１は、補間処理として２次の多項式補間を行う場合、式（４３）乃至式（４６）を計算することにより、補間値Ｈ＝（２＾Ｘamari）を求める。なお、この場合、式（４３）乃至式（４６）における下位値Ｘh1、テーブル値Ｖ10、テーブル値Ｖ11、およびテーブル値Ｖ12は、下位値Ｘh2、テーブル値Ｖ20、テーブル値Ｖ21、およびテーブル値Ｖ22、とされる（置き換えられる）。
【０２３９】
なお、補間処理部１４１は、補間処理を行わない場合には、テーブル値Ｖ20を、入力値Ｘの基数のべき乗の値の補間値（２＾Ｘamari）とする。
【０２４０】
ステップＳ７７において、べき乗演算部１０５は、整数／小数分離部１０２からの整数Ｘintと、補間処理部１４１からの補間値（１＋Ｘ1／２23）Yおよび補間値（２＾Ｘamari）とから、上述した式（３３）および式（３４）を計算することにより演算値Ｐを求める。
【０２４１】
その後、ステップＳ７８の処理が行われて、べき乗演算処理は終了するが、ステップＳ７８の処理は、図６のステップＳ４８の処理と同様であるため、その説明は省略する。
【０２４２】
このようにして、演算処理装置１３１は、仮数のべき乗テーブルから取得したテーブル値を用いて補間処理を行い、最終的な入力値Ｘの仮数部分のべき乗の値を求めるとともに、小数のべき乗テーブルから取得したテーブル値を用いて補間処理を行い、最終的な入力値Ｘの基数のべき乗の値を求める。そして、演算処理装置１３１は、求めたそれらのべき乗の値を用いて演算値Ｐを求め、整数化する。
【０２４３】
このように、補間処理を行って、入力値Ｘの仮数部分のべき乗の値と、入力値Ｘの基数のべき乗の値とを求めることにより、仮数のべき乗テーブルおよび小数のべき乗テーブルのテーブルサイズを増やさずにべき乗演算の精度を向上させることができる。
【０２４４】
具体的には、本出願人は、べき指数Ｙ＝3.141592とし、Ｌ＝8192個のデータを用いて、上述した式（１７）を計算して求まる相対誤差平均Ｔにより、演算処理装置１３１のべき乗の演算精度の評価を行った。Ｎ＝８のとき、つまりテーブルサイズSIZE＝２５６のとき、仮数のべき乗テーブルの値、および小数のべき乗テーブルの値に、それぞれ補間処理を加えた場合と、加えない場合との組み合わせについて、図１２に示す評価結果が得られた。
【０２４５】
図１２には、補間処理を加えた場合と、加えない場合との各組み合わせについての相対誤差平均Ｔの値が示されている。すなわち、文字「小数：補間なし」は、小数のべき乗テーブルの値を補間処理せずに演算値Ｐの算出に用いたことを示しており、文字「小数：線形補間」および「小数：２次補間」は、小数のべき乗テーブルの値に線形補間および２次の多項式補間を行って演算値Ｐの算出に用いたことを示している。
【０２４６】
同様に、文字「仮数：補間なし」は、仮数のべき乗テーブルの値を補間処理せずに演算値Ｐの算出に用いたことを示しており、文字「仮数：線形補間」および「仮数：２次補間」は、仮数のべき乗テーブルの値に線形補間および２次の多項式補間を行って演算値Ｐの算出に用いたことを示している。
【０２４７】
図１２では、仮数のべき乗テーブルの値、または小数のべき乗テーブルの値の少なくとも何れか一方に補間処理を施すことで、べき乗の演算精度が改善されることが分かる。例えば、仮数のべき乗テーブルの値および小数のべき乗テーブルの値の両方に線形補間を施すとＴ＝5.31×10-6となり、仮数のべき乗テーブルの値および小数のべき乗テーブルの値の両方に２次の多項式補間を施すとＴ＝3.93×10-8となっている。
【０２４８】
このように、両方のテーブル値に２次の多項式補間を施したときの相対誤差平均の値は、従来の量子化装置５１において、Ｎ＝１６のとき、つまりテーブルサイズSIZE＝65536としたときのテーブルを用いた整数部分の演算精度と同等以上の精度である。
【０２４９】
また、Ｎ＝１，・・・，８の場合、つまりテーブルサイズSIZE＝２，・・・，２５６の場合、仮数のべき乗テーブルの値、および小数のべき乗テーブルの値の両方の値に、補間処理を施さないとき、線形補間を施したとき、および２次の多項式補間を施したときのそれぞれの相対誤差平均Ｔとして、図１３に示される結果が得られた。
【０２５０】
なお、図中、「テーブルサイズ」の欄は、テーブルサイズSIZEの数（個数）を示しており、文字「補間なし」、文字「線形補間」、および「２次補間」のそれぞれは、仮数のべき乗テーブルの値、および小数のべき乗テーブルの値に、補間処理を施さない場合、線形補間を施す場合、および２次の多項式補間を施す場合のそれぞれを示している。
【０２５１】
図１３では、テーブルサイズが「１６」で線形補間を行う場合と、テーブルサイズが「４」で２次の多項式補間を行う場合とで、「補間なし」のテーブルサイズが「２５６」のときの精度と同等の精度が実現されていることが分かる。
【０２５２】
すなわち、テーブルサイズが「２５６」で補間処理を行わない場合、相対誤差平均Ｔ＝6.00×10-3である。また、テーブルサイズが「１６」で線形補間を行う場合、相対誤差平均Ｔ＝1.37×10-3であり、テーブルサイズが「４」で２次の多項式補間を行う場合、相対誤差平均Ｔ＝2.52×10-3である。このように、演算処理装置１３１では、補間処理を行うことで、より少ないテーブルサイズ（テーブル数）で、より高い精度のべき乗の演算を行うことができる。
【０２５３】
なお、以上においては、仮数のべき乗テーブルと小数のべき乗テーブルのテーブルサイズが同じである例について説明したが、それらのテーブルサイズは、べき乗演算の必要な精度に応じて異なる大きさとされてもよい。テーブルサイズが変更される場合、そのサイズに合わせて補間処理部１４１により行われる補間処理時のビット位置、つまり下位値Ｘh1または下位値Ｘh2の大きさも変更される。
【０２５４】
また、仮数のべき乗テーブルの値と、小数のべき乗テーブルの値との両方に補間処理を施すと説明したが、補間処理の処理量と必要となる演算精度に応じて、どちらか一方の値に補間処理が施されるようにしてもよいし、それぞれ異なる補間処理が施されるようにしてもよい。さらに、補間処理として、線形補間や２次の多項式補間に限らず、３次以上の多項式補間やスプライン補間が施されるようにしてもよい。
【０２５５】
［第３の実施の形態］
ところで、以上においては、べき乗演算により得られた演算値Ｐを整数化する場合に、演算値Ｐに定数αを加算してから整数化が行われると説明した。例えば、式（１）に示したように、オーディオ信号の量子化などの多くの規格等においては、べき指数Ｙの値が決められていることが多いので、定数αを演算値Ｐに加算するのではなく、予め入力値Ｘにα1/Yを加算しておくとことで、簡単な演算で演算値の整数部分を得ることができるようになる。
【０２５６】
すなわち、これまでの入力値をＸ’（以上において説明した入力値Ｘ）とすると、Ｘ’にα1/Yが加算された値を新たな入力値Ｘ＝Ｘ’＋α1/Yとしてべき乗演算に用いる。例えば、式（１）に示したオーディオ信号の量子化の場合には、入力値Ｘ＝Ｘ’＋α4/3とされる。
【０２５７】
このように、定数αの１／Ｙ乗の値が変数Ｘ’に加算されて入力値Ｘとされる場合、演算処理装置は、図１４に示すように構成される。なお、図１４において、図５における場合と対応する部分には同一の符号を付してあり、その説明は適宜、省略する。
【０２５８】
演算処理装置１７１は、仮数／指数分離部１０１、整数／小数分離部１０２、仮数のべき乗テーブル保持部１８１、小数のべき乗テーブル保持部１８２、およびべき乗整数変換部１８３から構成される。
【０２５９】
この演算処理装置１７１では、仮数／指数分離部１０１に入力値Ｘ＝Ｘ’＋α1/Yが供給され、整数／小数分離部１０２にべき指数Ｙが供給される。すなわち、演算処理装置１７１は、変数Ｘ’に定数α1/Yを加算して入力値Ｘとし、その入力値Ｘを仮数／指数分離部１０１に供給する。
【０２６０】
仮数のべき乗テーブル保持部１８１は、仮数Ｘ1の値により定まる、入力値Ｘの仮数部分のべき乗の値が含まれる仮数のべき乗テーブルを保持している。なお、仮数のべき乗テーブルにおける、入力値Ｘの仮数部分のべき乗の値は、小数点位置が２３ビット目にある固定小数点数とされている。
【０２６１】
小数のべき乗テーブル保持部１８２は、小数Ｘamariの値により定まり、小数Ｘamariをべき指数とする入力値Ｘ（演算値（Ｐ＋α））の基数（底）のべき乗の値が含まれる小数のべき乗テーブルを保持している。
【０２６２】
なお、小数のべき乗テーブルにおける、入力値Ｘの基数のべき乗の値は、小数点位置が２３ビット目にある固定小数点数とされている。
【０２６３】
べき乗整数変換部１８３は、仮数のべき乗テーブル保持部１８１の仮数のべき乗テーブル、および小数のべき乗テーブル保持部１８２の小数のべき乗テーブルを参照して、仮数／指数分離部１０１からの仮数Ｘ1と、整数／小数分離部１０２からの整数Ｘintおよび小数Ｘamariとから演算値（Ｐ＋α）の整数部分を求め、出力する。ここで、演算値（Ｐ＋α）は、演算値Ｐ＝Ｘ’Yに定数αが加算された値である。
【０２６４】
次に、図１５のフローチャートを参照して、演算処理装置１７１によるべき乗演算処理について説明する。
【０２６５】
ステップＳ１１１において、仮数のべき乗テーブル保持部１８１は、仮数のべき乗テーブルを生成する。すなわち、仮数のべき乗テーブル保持部１８１は、仮数のべき乗テーブルのテーブルサイズを２N＝SIZEとすると、次式（５１）に示される、入力値Ｘの仮数部分をＹ乗して得られるべき乗値frctable[i]からなる仮数のべき乗テーブルを生成する。
【０２６６】
【数５１】
2010032762.tif 000053
【０２６７】
ここで、テーブルサイズSIZEは、Ｎビットのデータで表すことのできる数の個数であり、このテーブルサイズSIZEの個数だけべき乗値frctable[i]が用意されることになる。また、べき乗値frctable[i]の変数ｉは、仮数Ｘ1から求まるインデックスindex1の値を示しており、変数ｉ＝０，・・・，（SIZE−１）とされる。
【０２６８】
例えば、インデックスindex1を仮数Ｘ1の上位何ビットかの値とすれば、式（５１）における（１＋ｉ／SIZE）Yは、仮数Ｘ1の値に対する、入力値Ｘの仮数部分をＹ乗して得られる値（１＋Ｘ1／２23）Yの近似値となる。さらに、式（５１）では、近似値（１＋ｉ／SIZE）Yに２23が乗算されて整数化され（ｉｎｔ（Ａ）の演算）、近似値が固定小数点化されている。つまり、べき乗値frctable[i]は、小数点位置が２３ビット目にある固定小数点数とされる。
【０２６９】
仮数のべき乗テーブル保持部１８１は、（SIZE）個の各変数の値ｉのそれぞれに対する、べき乗値frctable[i]のそれぞれを求めると、それらの値ｉとべき乗値frctable[i]とを対応付けて仮数のべき乗テーブルを生成し、保持する。
【０２７０】
ステップＳ１１２において、小数のべき乗テーブル保持部１８２は、小数のべき乗テーブルを生成する。すなわち、小数のべき乗テーブル保持部１８２は、小数のべき乗テーブルのテーブルサイズを２N＝SIZEとすると、次式（５２）に示される入力値Ｘの基数である２をＸamari乗して得られるべき乗値twotable[i]からなる小数のべき乗テーブルを生成する。
【０２７１】
【数５２】
2010032762.tif 000054
【０２７２】
ここで、べき乗値twotable[i]の変数ｉは、小数Ｘamariから求まるインデックスindex2の値を示しており、変数ｉ＝０，・・・，（SIZE−１）とされる。
【０２７３】
インデックスindex2を、小数Ｘamariの上位何ビットかの値とすれば、式（５２）における２(i/SIZE)は、小数Ｘamariの値に対する、入力値Ｘの基数「２」のＸamari乗の値２＾Ｘamariの近似値となる。さらに、式（５２）では、近似値２(i/SIZE)に２23が乗算されて整数化され、近似値が固定小数点化されている。つまり、べき乗値twotable[i]は、小数点位置が２３ビット目にある固定小数点数とされる。
【０２７４】
小数のべき乗テーブル保持部１８２は、（SIZE）個の各変数の値ｉのそれぞれに対する、べき乗値twotable[i]のそれぞれを求めると、それらの値ｉとべき乗値twotable[i]とを対応付けて小数のべき乗テーブルを生成し、保持する。
【０２７５】
なお、仮数のべき乗テーブルおよび小数のべき乗テーブルを生成する処理は、入力値Ｘのべき乗演算前に１度行っておけばよい。つまり、１度これらのテーブルを生成しておけば、その後、入力値Ｘのべき乗演算を行うときは、既に生成されて保持されている仮数のべき乗テーブルおよび小数のべき乗テーブルを用いればよい。
【０２７６】
このようにして、仮数のべき乗テーブルおよび小数のべき乗テーブルが生成されると、その後、ステップＳ１１３およびステップＳ１１４の処理が行われるが、これらの処理は、図６のステップＳ４３およびステップＳ４４の処理と同様であるので、その説明は省略する。なお、仮数／指数分離部１０１により求められた、入力値Ｘ＝Ｘ’＋α1/Yの仮数Ｘ1はべき乗整数変換部１８３に供給され、入力値Ｘ＝Ｘ’＋α1/Yの指数Ｘ2は整数／小数分離部１０２に供給される。
【０２７７】
また、整数／小数分離部１０２が式（２６）および式（２７）を計算することにより求められた、指数Ｘ2とべき指数Ｙとの積の整数Ｘintおよび小数Ｘamariは、べき乗整数変換部１８３に供給される。
【０２７８】
ステップＳ１１５において、べき乗整数変換部１８３は、仮数／指数分離部１０１から供給された仮数Ｘ1を用いて、べき指数Ｙに対する入力値Ｘの仮数部分のべき乗の値（１＋Ｘ1／２23）Yを求める。
【０２７９】
具体的には、べき乗整数変換部１８３は、式（２８）を計算することによりインデックスindex1を求め、そのインデックスindex1を用いて式（２９）より、入力値Ｘの仮数部分のべき乗の値を求める。すなわち、べき乗整数変換部１８３は、インデックスindex1を変数ｉの値としたべき乗値frctable[index1]を、仮数のべき乗テーブル保持部１８１の仮数のべき乗テーブルから取得する。そして、この取得されたべき乗値frctable[index1]が、入力値Ｘの仮数部分のべき乗の値（１＋Ｘ1／２23）Yとされる。
【０２８０】
ステップＳ１１６において、べき乗整数変換部１８３は、整数／小数分離部１０２から供給された小数Ｘamariを用いて、小数Ｘamariをべき指数とする、入力値Ｘの基数である２のべき乗を求める。
【０２８１】
具体的には、べき乗整数変換部１８３は、次式（３０）および式（３１）を計算することで、インデックスindex2を求め、そのインデックスindex2を用いて式（３２）より、入力値Ｘの基数のべき乗の値を求める。すなわち、べき乗整数変換部１８３は、インデックスindex2を変数ｉの値としたべき乗値twotable[index2]を、小数のべき乗テーブル保持部１８２の小数のべき乗テーブルから取得する。そして、この取得されたべき乗値twotable[index2]が、基数である２のべき乗値（２＾（Ｘamari））とされる。
【０２８２】
ステップＳ１１７において、べき乗整数変換部１８３は、べき乗の値（１＋Ｘ1／２23）Y、およびべき乗の値（２＾（Ｘamari））と、整数／小数分離部１０２からの整数Ｘintとを用いて演算値（Ｐ＋α）の整数部分を求め、求められた値を、整数化された演算値（Ｐ＋α）である出力値として出力する。
【０２８３】
すなわち、べき乗整数変換部１８３は、次式（５３）を計算することで、演算値（Ｐ＋α）の整数部分を得る。
【０２８４】
【数５３】
2010032762.tif 000055
【０２８５】
ここで、式（５３）において、「＞＞」は右シフトを示している。べき乗整数変換部１８３は、整数Ｘintが０以上である場合、「（１＋Ｘ1／２23）Y×２＾Ｘamari」を（４６−Ｘint）ビットだけ右シフトさせて、演算値（Ｐ＋α）の整数部分の値（ｉｎｔ）（Ｐ＋α）を得る。また、べき乗整数変換部１８３は、整数Ｘintが０未満である場合、値「０」を演算値（Ｐ＋α）の整数部分の値（ｉｎｔ）（Ｐ＋α）とする。
【０２８６】
なお、整数Ｘintが０以上である場合に、（４６−Ｘint）ビットの右シフトを行うのは、次のような理由からである。すなわち、テーブル引きにより求められたべき乗値（１＋Ｘ1／２23）Y、およびべき乗値２＾Ｘamariは、小数点位置が２３ビット目の位置にあるため、それらのべき乗値の積の値の小数点位置は、４６ビット目となる。
【０２８７】
また、演算値（Ｐ＋α）を、基数を用いずに（通常の小数で）表現するには、べき乗値（１＋Ｘ1／２23）Yと、べき乗値２＾Ｘamariとの積の値の小数点位置を、整数Ｘintだけ下位ビット側に移動（左シフト演算）させればよい。
【０２８８】
したがって、整数Ｘintが０以上である場合、べき乗値（１＋Ｘ1／２23）Yと、べき乗値２＾Ｘamariとの積の値を（４６−Ｘint）ビットだけ右シフトすれば、演算値（Ｐ＋α）の整数部分の値が得られる。また、整数Ｘintが負（０未満）である場合には、演算値（Ｐ＋α）は、１未満の値となるので、演算値（Ｐ＋α）の整数部分は０とされる。
【０２８９】
このようにして、演算値（Ｐ＋α）の整数部分が求められると、べき乗整数変換部１８３は、演算値（Ｐ＋α）の整数部分、つまり整数化された演算値（Ｐ＋α）を出力し、べき乗演算処理は終了する。
【０２９０】
以上のようにして、演算処理装置１７１は、値Ｘ’に定数α1/Yが加算された値を新たな入力値Ｘとし、テーブルを利用して得られたべき乗値の積と、整数Ｘintとからシフト演算を利用して、演算値（Ｐ＋α）の整数部分を求める。
【０２９１】
これより、より簡単かつ迅速に演算値（Ｐ＋α）の整数部分の値を求めることができる。すなわち、一旦、演算値Ｐを求めてから、さらに演算値（Ｐ＋α）の整数部分を求める必要がなく、仮数のべき乗テーブルおよび小数のべき乗テーブルを参照して、仮数Ｘ1と、小数Ｘamariおよび整数Ｘintとから、シフト演算により直接、演算値（Ｐ＋α）の整数部分を求めることができる。したがって、図５の整数変換部１０６に相当する処理ブロックが不要となり、演算処理装置１７１の小型化も図ることができる。
【０２９２】
なお、以上においては、仮数のべき乗テーブルと小数のべき乗テーブルのテーブルサイズが同じである例について説明したが、それらのテーブルサイズは、べき乗演算の必要な精度に応じて異なる大きさとされてもよい。
【０２９３】
［第４の実施の形態］
ところで、以上において説明した例では、入力値Ｘの仮数部分（１＋Ｘ1／２23）は、1.0≦（１＋Ｘ1／２23）＜2.0であり、小数Ｘamariは、0.0≦Ｘamari＜1.0であり、べき指数Ｙは定数であった。
【０２９４】
したがって、入力値Ｘから、演算値Ｐ（または演算値（Ｐ＋α））の整数部分を求めるために、べき乗の演算を仮数のべき乗テーブルや小数のべき乗テーブルを用いずに、べき乗演算装置により直接演算しても、それほど処理量は多くならない。つまり、べき乗演算装置の小型化が期待できる。そこで、浮動小数点数の演算を行う、べき乗演算装置を利用して、入力値Ｘから演算値（Ｐ＋α）の整数部分を求めるようにしてもよい。
【０２９５】
そのような場合、演算処理装置は、例えば図１６に示すように構成される。なお、図１６において、図５における場合と対応する部分には、同一の符号を付してあり、その説明は適宜、省略する。
【０２９６】
演算処理装置２１１は、仮数／指数分離部１０１、整数／小数分離部１０２、およびべき乗整数変換部２２１から構成される。また、演算処理装置２１１では、仮数／指数分離部１０１に入力値Ｘ＝Ｘ’＋α1/Yが供給され、整数／小数分離部１０２およびべき乗整数変換部２２１にべき指数Ｙが供給される。なお、入力値Ｘは、上述した第３の実施の形態と同様であり、入力値Ｘ＝Ｘ’＋α1/Yである。
【０２９７】
べき乗整数変換部２２１は、例えば、浮動小数点数の演算を行う、べき乗演算装置などから構成され、仮数／指数分離部１０１からの仮数Ｘ1、整数／小数分離部１０２からの整数Ｘintおよび小数Ｘamari、並びに供給されたべき指数Ｙを用いて、演算値（Ｐ＋α）の整数部分を求め、出力する。
【０２９８】
次に、図１７のフローチャートを参照して、演算処理装置２１１によるべき乗演算処理について説明する。
【０２９９】
なお、ステップＳ１４１およびステップＳ１４２の処理は、図６のステップＳ４３およびステップＳ４４の処理と同様であるので、その説明は省略する。なお、仮数／指数分離部１０１により求められた、入力値Ｘの仮数Ｘ1はべき乗整数変換部２２１に供給され、指数Ｘ2は整数／小数分離部１０２に供給される。
【０３００】
また、整数／小数分離部１０２が式（２６）および式（２７）を計算することにより求められた、指数Ｘ2とべき指数Ｙとの積の整数Ｘintおよび小数Ｘamariは、べき乗整数変換部２２１に供給される。
【０３０１】
ステップＳ１４３において、べき乗整数変換部２２１は、供給されたべき指数Ｙと、仮数／指数分離部１０１から供給された仮数Ｘ1とを用いて、べき乗整数変換部２２１に内蔵されているべき乗演算装置により、べき指数Ｙに対する入力値Ｘの仮数部分のべき乗の値（１＋Ｘ1／２23）Yを求める。
【０３０２】
ステップＳ１４４において、べき乗整数変換部２２１は、整数／小数分離部１０２から供給された小数Ｘamariを用いて、べき乗整数変換部２２１に内蔵されているべき乗演算装置により、小数Ｘamariをべき指数とする、入力値Ｘの基数である２のべき乗を求める。これにより、２のべき乗値（２＾（Ｘamari））が求められる。
【０３０３】
ステップＳ１４５において、べき乗整数変換部２２１は、求めたべき乗の値（１＋Ｘ1／２23）Y、およびべき乗値（２＾（Ｘamari））と、整数／小数分離部１０２からの整数Ｘintとを用いて、上述した式（５３）から、演算値（Ｐ＋α）の整数部分を求める。そして、べき乗整数変換部２２１は、求められた演算値（Ｐ＋α）の整数部分を出力値として出力し、べき乗演算処理は終了する。
【０３０４】
このようにして、演算処理装置２１１は、べき乗演算装置を利用して、直接べき乗の演算を行い、入力値Ｘから演算値（Ｐ＋α）の整数部分を求める。このように、処理量の少ないべき乗の演算を、べき乗演算装置により行うことで、演算処理装置２１１の小型化を図ることができる。
【０３０５】
［第５の実施の形態］
ところで、上述した第３の実施の形態の演算処理装置１７１では、仮数のべき乗テーブルや小数のべき乗テーブルの値の補間処理が行われないため、べき乗の演算精度、つまり演算値の整数部分の演算精度を向上させるには、それらのテーブルのサイズを大きくする必要がある。
【０３０６】
具体的に、演算処理装置１７１により算出された演算値（Ｐ＋α）の整数部分Ｒと、数学ライブラリを用いた計算により得られた演算値（Ｐ＋α）の整数部分ＱとからなるＬ個のデータのセットを用いて、次式（５４）を計算し、絶対誤差平均Ｕを求めて整数部分Ｒの算出精度を評価することを考える。
【０３０７】
【数５４】
2010032762.tif 000056
【０３０８】
なお、式（５４）において、Ｒiは、演算処理装置１７１により算出された整数部分ＲのＬ個の整数部分（サンプル）のうちのｉ番目のサンプルを示しており、Ｑiは、数学ライブラリにより求められた、Ｒiに対応する整数部分を示している。
【０３０９】
例えば、べき指数Ｙ＝3.141592とし、Ｌ＝8192として整数部分Ｒの算出精度の評価を行ったところ、テーブルサイズ２NにおけるＮが８であるとき、すなわちSIZE＝256のとき、絶対誤差平均Ｕ＝2.09×101となり、それほど高い精度は得られなかった。また、テーブルサイズ２NにおけるＮが１６であるとき、すなわちSIZE＝65536のとき、絶対誤差平均Ｕ＝1.15×10-2となり、Ｎ＝８の場合よりも高い精度が得られた。
【０３１０】
このような絶対誤差平均Ｕによる評価の結果からも分かるように、演算処理装置１７１においては、整数部分の演算精度を向上させるには、仮数のべき乗テーブルや小数のべき乗テーブルのサイズを大きくする必要がある。
【０３１１】
そこで、入力値Ｘ＝Ｘ’＋α1/Yとし、仮数のべき乗テーブルおよび小数のべき乗テーブルの値の補間処理を行うようにすることで、より簡単に演算値の整数化を行うとともに、整数化の演算精度を向上させる。
【０３１２】
そのような場合、演算処理装置は、例えば図１８に示すように構成される。なお、図１８において、図５、または図８における場合と対応する部分には、同一の符号を付してあり、その説明は適宜、省略する。
【０３１３】
演算処理装置２５１は、仮数／指数分離部１０１、整数／小数分離部１０２、補間処理部１４１、仮数のべき乗テーブル保持部２６１、小数のべき乗テーブル保持部２６２、およびべき乗整数変換部２６３から構成される。
【０３１４】
仮数のべき乗テーブル保持部２６１は、仮数Ｘ1の値により定まる、入力値Ｘの仮数部分のべき乗の値であるテーブル値が含まれる仮数のべき乗テーブルを保持している。なお、仮数のべき乗テーブルにおける、テーブル値は、小数点位置が２３ビット目にある固定小数点数とされている。
【０３１５】
小数のべき乗テーブル保持部２６２は、小数Ｘamariをべき指数とし、小数Ｘamariの値により定まる、入力値Ｘの基数（底）のべき乗の値であるテーブル値が含まれる小数のべき乗テーブルを保持している。なお、小数のべき乗テーブルにおける、テーブル値は、小数点位置が２３ビット目にある固定小数点数とされている。
【０３１６】
また、仮数のべき乗テーブル保持部２６１のべき乗の値（テーブル値）、および小数のべき乗テーブル保持部２６２のべき乗の値（テーブル値）は、補間処理部１４１に供給される。さらに、補間処理部１４１において、仮数のべき乗テーブル保持部２６１および小数のべき乗テーブル保持部２６２からのテーブル値を用いた補間処理により、入力値Ｘの仮数部分のべき乗の値である補間値（１＋Ｘ1／２23）Y、および入力値Ｘの基数のべき乗の値である補間値（２＾Ｘamari）が得られる。これらの補間値は、補間処理部１４１からべき乗整数変換部２６３に供給される。
【０３１７】
べき乗整数変換部２６３は、補間処理部１４１からの補間値と、整数／小数分離部１０２からの整数Ｘintとを用いて、演算値（Ｐ＋α）の整数部分を求め、出力する。
【０３１８】
次に、図１９のフローチャートを参照して、演算処理装置２５１によるべき乗演算処理について説明する。
【０３１９】
ステップＳ１７１において、仮数のべき乗テーブル保持部２６１は、仮数のべき乗テーブルを生成する。例えば、補間処理部１４１により補間処理として２次の多項式補間が行われる場合、仮数のべき乗テーブル保持部２６１は、仮数のべき乗テーブルのテーブルサイズを２N＋２＝SIZE＋２とする。そして、仮数のべき乗テーブル保持部２６１は、次式（５５）に示されるテーブル値frctable[i]からなる仮数のべき乗テーブルを生成する。
【０３２０】
【数５５】
2010032762.tif 000057
【０３２１】
ここで、テーブル値frctable[i]の変数ｉは、仮数Ｘ1から求まるインデックスindex1の値を示しており、変数ｉ＝０，・・・，（SIZE＋１）とされる。
【０３２２】
例えば、インデックスindex1を仮数Ｘ1の上位何ビットかの値とすれば、式（５５）における（１＋ｉ／SIZE）Yは、仮数Ｘ1の値に対する、入力値Ｘの仮数部分をＹ乗して得られる値（１＋Ｘ1／２23）Yの近似値となる。さらに、式（５５）では、近似値（１＋ｉ／SIZE）Yに２23が乗算されて整数化され、近似値が固定小数点化されている。つまり、テーブル値frctable[i]は、小数点位置が２３ビット目にある固定小数点数とされる。
【０３２３】
仮数のべき乗テーブル保持部２６１は、（SIZE＋２）個の各変数の値ｉのそれぞれに対する、テーブル値frctable[i]のそれぞれを求めると、それらの値ｉとテーブル値frctable[i]とを対応付けて仮数のべき乗テーブルを生成し、保持する。
【０３２４】
なお、補間処理として、補間処理部１４１により線形補間が行われる場合には、仮数のべき乗テーブルのテーブルサイズは２N＋１＝SIZE＋１とされ、式（５５）のテーブル値frctable[i]からなる仮数のべき乗テーブルが生成される。
【０３２５】
ステップＳ１７２において、小数のべき乗テーブル保持部２６２は、小数のべき乗テーブルを生成する。例えば、補間処理部１４１により補間処理として２次の多項式補間が行われる場合、小数のべき乗テーブル保持部２６２は、小数のべき乗テーブルのテーブルサイズを２N＋２＝SIZE＋２とする。そして、小数のべき乗テーブル保持部２６２は、次式（５６）に示されるテーブル値twotable[i]からなる小数のべき乗テーブルを生成する。
【０３２６】
【数５６】
2010032762.tif 000058
【０３２７】
ここで、テーブル値twotable[i]の変数ｉは、小数Ｘamariから求まるインデックスindex2の値を示しており、変数ｉ＝０，・・・，（SIZE＋１）とされる。
【０３２８】
インデックスindex2を、小数Ｘamariの上位何ビットかの値とすれば、式（５６）における２(i/SIZE)は、小数Ｘamariの値に対する、入力値Ｘの基数「２」のＸamari乗の値２＾Ｘamariの近似値となる。さらに、式（５６）では、近似値２(i/SIZE)に２23が乗算されて整数化され、近似値が固定小数点化されている。つまり、テーブル値twotable[i]は、小数点位置が２３ビット目にある固定小数点数とされる。
【０３２９】
小数のべき乗テーブル保持部２６２は、（SIZE＋２）個の各変数の値ｉのそれぞれに対するテーブル値twotable[i]のそれぞれを求めると、それらの値ｉとテーブル値twotable[i]とを対応付けて小数のべき乗テーブルを生成し、保持する。
【０３３０】
なお、補間処理として、補間処理部１４１により線形補間が行われる場合には、小数のべき乗テーブルのテーブルサイズは２N＋１＝SIZE＋１とされ、式（５６）のテーブル値twotable[i]からなる小数のべき乗テーブルが生成される。
【０３３１】
また、仮数のべき乗テーブルおよび小数のべき乗テーブルを生成する処理は、入力値Ｘのべき乗演算前に１度行っておけばよい。つまり、１度これらのテーブルを生成しておけば、その後、入力値Ｘのべき乗演算を行うときは、既に生成されて保持されている仮数のべき乗テーブルおよび小数のべき乗テーブルを用いればよい。
【０３３２】
このようにして、仮数のべき乗テーブルおよび小数のべき乗テーブルが生成されると、その後、ステップＳ１７３およびステップＳ１７４の処理が行われるが、これらの処理は、図６のステップＳ４３およびステップＳ４４の処理と同様であるので、その説明は省略する。なお、仮数／指数分離部１０１により求められた、入力値Ｘの仮数Ｘ1は補間処理部１４１に供給され、指数Ｘ2は整数／小数分離部１０２に供給される。
【０３３３】
また、整数／小数分離部１０２が式（２６）および式（２７）を計算することにより求められた、指数Ｘ2とべき指数Ｙとの積の整数Ｘintおよび小数Ｘamariは、べき乗整数変換部２６３および補間処理部１４１に供給される。
【０３３４】
ステップＳ１７５において、補間処理部１４１は、仮数／指数分離部１０１からの仮数Ｘ1を用いて補間処理を行って、入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yを求め、べき乗整数変換部２６３に供給する。
【０３３５】
すなわち、補間処理部１４１は、上述した式（２８）を計算することにより、仮数Ｘ1の２２ビット目から上位Ｎビットをインデックスindex1として求める。
【０３３６】
また、補間処理部１４１は、上述した式（３６）を計算することにより、仮数Ｘ1の（２２−Ｎ）ビット目から０ビット目までの部分の値である下位値Ｘh1を求める。
【０３３７】
さらに、補間処理部１４１は、式（３７）乃至式（３９）により、入力値Ｘの仮数部分のべき乗の値のテーブル値Ｖ10乃至テーブル値Ｖ12を求める。
【０３３８】
すなわち、補間処理部１４１は、インデックスindex1を変数ｉの値としたテーブル値frctable[index1]をテーブル値Ｖ10として、仮数のべき乗テーブル保持部２６１の仮数のべき乗テーブルから取得する。同様に、補間処理部１４１は、インデックスindex1＋1およびインデックスindex1＋2を変数ｉの値としたテーブル値frctable[index1＋1]およびテーブル値frctable[index1＋2]をテーブル値Ｖ11およびテーブル値Ｖ12として、仮数のべき乗テーブルから取得する。
【０３３９】
そして、補間処理部１４１は、下位値Ｘh1と、テーブル値Ｖ10乃至テーブル値Ｖ12とを用いて補間処理を行い、入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yを求める。
【０３４０】
例えば、補間処理部１４１は、補間処理として線形補間を行う場合、式（４０）乃至式（４２）を計算することにより、補間値Ｈ＝（１＋Ｘ1／２23）Yを求める。また、例えば、補間処理部１４１は、補間処理として２次の多項式補間を行う場合、式（４３）乃至式（４６）を計算することにより、補間値Ｈ＝（１＋Ｘ1／２23）Yを求める。
【０３４１】
なお、補間処理部１４１は、補間処理を行わない場合には、テーブル値Ｖ10を、入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yとする。
【０３４２】
入力値Ｘの仮数部分のべき乗の値の補間値（１＋Ｘ1／２23）Yが求められると、処理はステップＳ１７５からステップＳ１７６へと進む。
【０３４３】
ステップＳ１７６において、補間処理部１４１は、整数／小数分離部１０２からの小数Ｘamariを用いて補間処理を行って、入力値Ｘの基数のべき乗の値の補間値（２＾Ｘamari）を求め、べき乗整数変換部２６３に供給する。
【０３４４】
すなわち、補間処理部１４１は、上述した式（３０）および式（３１）を計算することにより、固定小数点化された小数Ｘamariの２２ビット目から上位Ｎビットの値をindex2として取り出す。また、補間処理部１４１は、式（４７）を計算することにより、小数Ｘamariの（２２−Ｎ）ビット目から０ビット目までの部分の値である下位値Ｘh2を求める。
【０３４５】
さらに、補間処理部１４１は、式（４８）乃至式（５０）により、入力値Ｘの基数のべき乗の値のテーブル値Ｖ20乃至テーブル値Ｖ22を求める。
【０３４６】
すなわち、補間処理部１４１は、インデックスindex2を変数ｉの値とした入力値Ｘの基数のべき乗の値、つまりテーブル値twotable[index2]をテーブル値Ｖ20として、小数のべき乗テーブル保持部２６２の小数のべき乗テーブルから取得する。
【０３４７】
同様に、補間処理部１４１は、インデックスindex2＋1およびインデックスindex2＋2を変数ｉの値としたテーブル値twotable[index2＋1]およびテーブル値twotable[index2＋2]をテーブル値Ｖ21およびテーブル値Ｖ22として、小数のべき乗テーブルから取得する。
【０３４８】
そして、補間処理部１４１は、下位値Ｘh2と、テーブル値Ｖ20乃至テーブル値Ｖ22とを用いて補間処理を行い、入力値Ｘの基数のべき乗の値の補間値（２＾Ｘamari）を求める。
【０３４９】
例えば、補間処理部１４１は、補間処理として線形補間を行う場合、式（４０）乃至式（４２）を計算することにより、補間値Ｈ＝（２＾Ｘamari）を求める。なお、この場合、式（４０）乃至式（４２）における下位値Ｘh1、テーブル値Ｖ10、およびテーブル値Ｖ11は、下位値Ｘh2、テーブル値Ｖ20、およびテーブル値Ｖ21とされる。
【０３５０】
また、例えば、補間処理部１４１は、補間処理として２次の多項式補間を行う場合、式（４３）乃至式（４６）を計算することにより、補間値Ｈ＝（２＾Ｘamari）を求める。なお、この場合、式（４３）乃至式（４６）における下位値Ｘh1、テーブル値Ｖ10、テーブル値Ｖ11、およびテーブル値Ｖ12は、下位値Ｘh2、テーブル値Ｖ20、テーブル値Ｖ21、およびテーブル値Ｖ22、とされる。
【０３５１】
なお、補間処理部１４１は、補間処理を行わない場合には、テーブル値Ｖ20を、入力値Ｘの基数のべき乗の値の補間値（２＾Ｘamari）とする。
【０３５２】
ステップＳ１７７において、べき乗整数変換部２６３は、補間処理部１４１からの補間値（１＋Ｘ1／２23）Yおよび補間値（２＾Ｘamari）と、整数／小数分離部１０２からの整数Ｘintとを用いて、式（５３）を計算し、演算値（Ｐ＋α）の整数部分を求める。そして、べき乗整数変換部２６３は、求められた整数部分を出力値として出力し、べき乗演算処理は終了する。
【０３５３】
以上のようにして、演算処理装置２５１は、補間処理を行って得られた補間値を用いて、演算値（Ｐ＋α）の整数部分を求める。このように、補間処理を行って、入力値Ｘの仮数部分のべき乗の値の補間値と、入力値Ｘの基数のべき乗の補間値とを求めることにより、仮数のべき乗テーブルおよび小数のべき乗テーブルのテーブルサイズを増やさずに演算値（Ｐ＋α）の整数部分を求める演算の精度を向上させることができる。
【０３５４】
具体的には、本出願人は、上述した式（５４）を計算して求まる絶対誤差平均Ｕにより、演算処理装置２５１の整数部分の演算精度の評価を行った。Ｎ＝８のとき、つまりSIZE＝２５６のとき、仮数のべき乗テーブルの値（テーブル値）、および小数のべき乗テーブルの値（テーブル値）に、それぞれ補間処理を加えた場合と、加えない場合との組み合わせについて、図２０に示す評価結果が得られた。
【０３５５】
図２０は、補間処理を加えた場合と、加えない場合との各組み合わせについての絶対誤差平均Ｕの値が示されている。すなわち、文字「小数：補間なし」は、小数のべき乗テーブルの値を補間処理せずに演算値（Ｐ＋α）の整数部分の算出に用いたことを示しており、文字「小数：線形補間」および「小数：２次補間」は、小数のべき乗テーブルの値に線形補間および２次の多項式補間を行って演算値（Ｐ＋α）の整数部分の算出に用いたことを示している。
【０３５６】
同様に、文字「仮数：補間なし」は、仮数のべき乗テーブルの値を補間処理せずに演算値（Ｐ＋α）の整数部分の算出に用いたことを示しており、文字「仮数：線形補間」および「仮数：２次補間」は、仮数のべき乗テーブルの値に線形補間および２次の多項式補間を行って演算値（Ｐ＋α）の整数部分の算出に用いたことを示している。
【０３５７】
図２０では、仮数のべき乗テーブルの値、または小数のべき乗テーブルの値の少なくとも何れか一方に補間処理を施すことで、整数部分の演算精度が改善されることが分かる。例えば、仮数のべき乗テーブルの値および小数のべき乗テーブルの値の両方に線形補間を施すとＵ＝1.71×10-2となり、仮数のべき乗テーブルの値および小数のべき乗テーブルの値の両方に２次の多項式補間を施すとＵ＝2.44×10-4となっている。
【０３５８】
このように、両方のテーブル値に２次の多項式補間を施したときの絶対誤差平均の値は、従来の量子化装置５１において、Ｎ＝１６のとき、つまりSIZE＝65536としたときのテーブルを用いた整数部分の演算精度と同等以上の精度である。
【０３５９】
なお、以上においては、仮数のべき乗テーブルと小数のべき乗テーブルのテーブルサイズが同じである例について説明したが、それらのテーブルサイズは、べき乗演算の必要な精度に応じて異なる大きさとされてもよい。テーブルサイズが変更される場合、そのサイズに合わせて補間処理部１４１により行われる補間処理時のビット位置、つまり下位値Ｘh1または下位値Ｘh2の大きさも変更される。
【０３６０】
また、仮数のべき乗テーブルの値と、小数のべき乗テーブルの値との両方に補間処理を施すと説明したが、補間処理の処理量と必要となる演算精度に応じて、どちらか一方の値に補間処理が施されるようにしてもよいし、それぞれ異なる補間処理が施されるようにしてもよい。さらに、補間処理として、線形補間および２次の多項式補間に限らず、３次以上の多項式補間やスプライン補間が施されるようにしてもよい。
【０３６１】
さらに、以上においては、浮動小数点数としての入力値Ｘの基数が「２」である場合について説明したが、この基数は、２に限らず任意の値とすることができる。
【０３６２】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０３６３】
図２１は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０３６４】
コンピュータにおいて、CPU（Central Processing Unit）５０１，ROM（Read Only Memory）５０２，RAM（Random Access Memory）５０３は、バス５０４により相互に接続されている。
【０３６５】
バス５０４には、さらに、入出力インターフェース５０５が接続されている。入出力インターフェース５０５には、キーボード、マウス、マイクロホンなどよりなる入力部５０６、ディスプレイ、スピーカなどよりなる出力部５０７、ハードディスクや不揮発性のメモリなどよりなる記録部５０８、ネットワークインターフェースなどよりなる通信部５０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５１１を駆動するドライブ５１０が接続されている。
【０３６６】
以上のように構成されるコンピュータでは、CPU５０１が、例えば、記録部５０８に記録されているプログラムを、入出力インターフェース５０５及びバス５０４を介して、RAM５０３にロードして実行することにより、上述した一連の処理が行われる。
【０３６７】
コンピュータ（CPU５０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア５１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０３６８】
そして、プログラムは、リムーバブルメディア５１１をドライブ５１０に装着することにより、入出力インターフェース５０５を介して、記録部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記録部５０８にインストールすることができる。その他、プログラムは、ROM５０２や記録部５０８に、あらかじめインストールしておくことができる。
【０３６９】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３７０】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３７１】
【図１】従来の符号化装置の構成を示す図である。
【図２】従来の量子化装置の構成を示す図である。
【図３】従来の量子化装置による量子化処理を説明するフローチャートである。
【図４】単精度浮動小数点数を示す浮動小数点型のデータの構成を示す図である。
【図５】本発明を適用した演算処理装置の一実施の形態の構成例を示す図である。
【図６】べき乗演算処理を説明するフローチャートである。
【図７】浮動小数点型のデータにおいて、べき乗値を得るために用いられる部分を説明する図である。
【図８】演算処理装置の他の構成例を示す図である。
【図９】べき乗演算処理を説明するフローチャートである。
【図１０】線形補間を説明する図である。
【図１１】２次の多項式補間を説明する図である。
【図１２】相対誤差平均を示す図である。
【図１３】相対誤差平均を示す図である。
【図１４】演算処理装置の他の構成例を示す図である。
【図１５】べき乗演算処理を説明するフローチャートである。
【図１６】演算処理装置の他の構成例を示す図である。
【図１７】べき乗演算処理を説明するフローチャートである。
【図１８】演算処理装置の他の構成例を示す図である。
【図１９】べき乗演算処理を説明するフローチャートである。
【図２０】絶対値誤差平均を示す図である。
【図２１】コンピュータの構成例を示す図である。
【符号の説明】
【０３７２】
９１  演算処理装置，  １０１  仮数／指数分離部，  １０２  整数／小数分離部，  １０３  仮数のべき乗テーブル保持部，  １０４  小数のべき乗テーブル保持部，  １０５  べき乗演算部，  １０６  整数変換部，  １３１  演算処理装置，  １４１  補間処理部，  １７１  演算処理装置，  １８１  仮数のべき乗テーブル保持部，  １８２  小数のべき乗テーブル保持部，  １８３  べき乗整数変換部，  ２１１  演算処理装置，  ２２１  べき乗整数変換部，  ２５１  演算処理装置，  ２６１  仮数のべき乗テーブル保持部，  ２６２  小数のべき乗テーブル保持部，  ２６３  べき乗整数変換部
【図１】
2010032762.tif 000059
【図２】
2010032762.tif 000060
【図３】
2010032762.tif 000061
【図４】
2010032762.tif 000062
【図５】
2010032762.tif 000063
【図６】
2010032762.tif 000064
【図７】
2010032762.tif 000065
【図８】
2010032762.tif 000066
【図９】
2010032762.tif 000067
【図１０】
2010032762.tif 000068
【図１１】
2010032762.tif 000069
【図１２】
2010032762.tif 000070
【図１３】
2010032762.tif 000071
【図１４】
2010032762.tif 000072
【図１５】
2010032762.tif 000073
【図１６】
2010032762.tif 000074
【図１７】
2010032762.tif 000075
【図１８】
2010032762.tif 000076
【図１９】
2010032762.tif 000077
【図２０】
2010032762.tif 000078
【図２１】
2010032762.tif 000079