(57)【要約】ルックアップテーブルの各アドレスに、入力データを複数分割したブロックを対応させ、ブロックを出力データの変化に応じて複数の区間に分割したとき、区間の境を示す位置情報と各区間での出力データを各ブロックに対応するアドレスに格納することで、ルックアップテーブルに必要なメモリ容量を削減することができる。  また、出力データの変化する様子に合わせてブロックを決定することでより一層のメモリ容量を削減できる。  また、各区間での出力データのうちいずれかを代表情報とし、残りを相対情報としたとき、相対情報と代表情報の差分が相対情報に必要なビット数より少なくて済む場合、更にメモリ容量を削減することができる。
2005013105.tif 000002
【特許請求の範囲】
【請求項１】
入力された第一データに対応する第二データを出力するルックアップテーブルであって、
予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて第一の所定数分のビットを代表アドレスとし、前記第一データのそれぞれにおいて前記代表アドレスに使用されていないビットのうち第二の所定数分のビットを相対アドレスとし、前記代表アドレスにより前記複数の第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割しておき、
前記代表アドレスにより特定される番地にそれぞれ、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせが格納され、前記入力された第一データの前記代表アドレスにより指定される番地が参照され、対応する前記組み合わせを出力する対応情報格納部と、
前記対応情報格納部に接続され、前記入力された第一データの前記相対アドレスと前記組み合わせに含まれる前記相対アドレスとを比較し、前記入力された第一データが含まれる区間を特定する相対アドレス比較部と、
前記対応情報格納部及び前記相対アドレス比較部に接続され、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する情報選択部とを有することを特徴とするルックアップテーブル。
【請求項２】
入力された第一データに対応する第二データを出力するルックアップテーブルであって、
予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて１が格納されたビットのうち最上位のビット位置に応じて代表アドレスを対応させ、前記第一データのそれぞれにおいて前記最上位のビット位置より下位のビットのうち所定数分のビットを相対アドレスとし、前記代表アドレスにより前記第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割しておき、
前記代表アドレスにより特定される番地にそれぞれ、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせが格納され、前記入力された第一データの前記代表アドレスにより指定される番地が参照され、対応する前記組み合わせを出力する対応情報格納部と、
前記対応情報格納部に接続され、前記入力された第一データの前記相対アドレスと前記組み合わせに含まれる前記相対アドレスとを比較し、前記入力された第一データが含まれる区間を特定する相対アドレス比較部と、
前記対応情報格納部及び前記相対アドレス比較部に接続され、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する情報選択部とを有することを特徴とするルックアップテーブル。
【請求項３】
請求の範囲１あるいは２において、
前記対応情報格納部は、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納する代わりに、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データから選択された代表情報と、前記区間毎の第二データと前記代表情報との差分である修飾情報と、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納し、
前記情報選択部は、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する代わりに、前記組み合わせに含まれる前記修飾情報のうち、前記入力された第一データが含まれる区間に対応する前記修飾情報を選択し、前記選択された修飾情報に前記代表情報を加算したデータを第二データとして出力することを特徴とするルックアップテーブル。
【請求項４】
請求の範囲１あるいは２において、
更に、前記情報選択部に接続された記憶手段を有し、
前記対応情報格納部は、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納する代わりに、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データから選択された代表情報と、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納し、
前記記憶手段は、前記第一データが含まれる区間に応じて前記代表情報に加算する値を修飾情報として格納し、
前記情報選択部は、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する代わりに、前記入力された第一データが含まれる区間に応じて前記記憶手段に格納された修飾情報を選択し、前記選択された修飾情報に前記代表情報を加算したデータを第二データとして出力することを特徴とするルックアップテーブル。
【請求項５】
請求の範囲１乃至４のいずれかにおいて、
前記対応情報格納部は複数存在し、
前記入力された第一データにおいて前記代表アドレスと前記相対アドレスに使用されていないビットのうち第三の所定数分のビットをテーブル選択アドレスとし、
前記テーブル選択アドレスに基づいて前記複数の対応情報格納部から選択された対応情報格納部が使用されることを特徴とするルックアップテーブル。
【請求項６】
入力された第一データに対応する第二データを取得するデータ取得方法であって、
予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて第一の所定数分のビットを代表アドレスとし、前記第一データのそれぞれにおいて前記代表アドレスに使用されていないビットのうち第二の所定数分のビットを相対アドレスとし、前記代表アドレスにより前記複数の第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割し、前記区間毎の前記第二データを前記複数のブロックにそれぞれ対応付けておき、
前記入力された第一データの前記代表アドレスを用いて、前記複数のブロックのうち該入力された第一データが含まれるブロックを特定し、
前記入力された第一データの前記相対アドレスを用いて、前記特定されたブロックに含まれる前記区間のうち、前記入力された第一データが含まれる区間を特定し、
前記特定された区間に対応付けられた前記第二データを取得することを特徴とするデータ取得方法。
【請求項７】
入力された第一データに対応する第二データを取得するデータ取得方法であって、
予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて１が格納されたビットのうち最上位のビット位置に応じて代表アドレスを対応させ、前記第一データのそれぞれにおいて前記最上位のビット位置より下位のビットのうち所定数分のビットを相対アドレスとし、前記代表アドレスにより前記第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割し、前記区間毎の前記第二データを前記複数のブロックにそれぞれ対応付けておき、
前記入力された第一データの前記代表アドレスを用いて、前記複数のブロックのうち該入力された第一データが含まれるブロックを特定し、
前記入力された第一データの前記相対アドレスを用いて、前記特定されたブロックに含まれる前記区間のうち、前記入力された第一データが含まれる区間を特定し、
前記特定された区間に対応付けられた前記第二データを取得することを特徴とするデータ取得方法。
【請求項８】
請求の範囲６あるいは７において、
前記区間毎の前記第二データを前記複数のブロックにそれぞれ対応付けておく代わりに、前記区間毎の前記第二データから選択された代表情報と、前記区間毎の第二データと前記代表情報との差分である修飾情報を前記複数のブロックにそれぞれ対応付けておき、
前記特定された区間に対応付けられた前記第二データを取得する代わりに、前記特定された区間に対応する前記修飾情報を選択し、前記選択された修飾情報に前記代表情報を加算したデータを前記第二データとして取得することを特徴とするデータ取得方法。
【発明の詳細な説明】
【技術分野】  本発明は、入力データに対応する出力データを取得するために参照されるルックアップテーブル及びデータ取得方法に関する。
【背景技術】  一般に情報処理装置において、入力データに対応する出力データを求める演算処理を高速化するため、各アドレスに入力データに対応する演算結果（出力データ）を記憶させたメモリ等の対応情報格納部を含むルックアップテーブルを用いることがある。入力データに対応するアドレスを参照し、アドレスに格納された出力データを取得することで、入力データに対応する出力データを、実際に演算するより高速に取得することができる。
図１は、ルックアップテーブルが使用されるシステムの一例である。移動体通信システムにおけるＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ：符号分割多重接続）方式や次世代移動通信システムにおけるＯＦＤＭ（Ｏｒｔｈｏｇｏｎａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ：直交周波数分割多重）方式などにおける受信信号復調時の様子を示している。信号復調時には受信信号の周波数成分を抽出するために、フーリエ変換や高速フーリエ変換が行われ、これらの変換を高速化するために正弦（サイン）や余弦（コサイン）の値を高速に取得する必要がある。
図１では、アンテナ１で受信した信号をＡ／Ｄ（アナログ／デジタル）変換装置２にて変換した後、フーリエ変換装置３にて周波数成分を取り出すための処理を行うとき、角度情報を入力し、その角度情報に対応する正弦（サイン）や余弦（コサイン）の値を出力データとして求める際にルックアップテーブル４に備えられた対応情報格納部５が参照される。
図２は、従来のルックアップテーブルを説明する図である。入力データの角度情報に対応する三角関数値が予め出力データとして各アドレスに格納されている。図２では、例として５ビットの入力データ（００１０１）がルックアップテーブル４に入力され、アドレス（００１０１）が対応情報格納部５にて参照された結果、出力データ（＋０．０１０）が得られる。
図２に示されるように、１つの入力データに対し１つのアドレスを対応させ、そのアドレスに対し１つの出力データを対応させた従来のルックアップテーブルでは、入力データに対応するアドレスが増えれば増えるほど、ルックアップテーブルに必要なメモリ容量が大きくなる。また、アドレスに使用するビット数が大きくなればなるほど、ルックアップテーブルに必要なメモリ容量が大きくなる。そこで、ルックアップテーブルに必要なメモリ容量を削減する方法がいくつか提案されている（特許文献１、２、３参照）。
特許文献１には、入力されるディジタルデータの全ビットを用いてルックアップテーブルを参照する代わりに、入力されるディジタルデータを上位ビットと下位ビットに分け、上位ビットをルックアップテーブルの参照に使用し、下位ビットを補間計算に使用するエンコーダの内挿回路が開示されている。特許文献１によれば、下位ビットをルックアップテーブルの参照に使用しない分、ルックアップテーブルに必要なメモリ容量を従前に比べ減少させることはできる。
しかしながら、アドレスのビット数を削減し、アドレス数を削減することでルックアップテーブルに必要なメモリ容量を削減しても、１つのアドレスに１つの出力データのみが対応するルックアップテーブルであることに変わりはなく、そもそも上位ビット数が大きいと、結局ルックアップテーブルに必要なメモリ容量が大きくなり、従来の方法によるメモリ容量の削減には改善の余地が残されていた。特許文献２、３においても同様に、１つのアドレスに１つの出力データのみが対応することに変わりはなく、特許文献１と同じ課題を有していた。
【特許文献１】特開平１０−３００５１７号公報
【特許文献２】特開平５−１８３４４３号公報
【特許文献３】特開２０００−３４１５４６号公報
【発明の開示】
そこで本発明の目的は、入力データに対応する出力データを取得するために、入力データに対応するアドレスを参照し、そのアドレスに単に出力データを対応させるルックアップテーブルを改善し、必要なメモリ容量を一層削減させたルックアップテーブルおよびデータ取得方法を提供することにある。
上記目的は、入力された第一データに対応する第二データを出力するルックアップテーブルであって、予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて第一の所定数分のビットを代表アドレスとし、前記第一データのそれぞれにおいて前記代表アドレスに使用されていないビットのうち第二の所定数分のビットを相対アドレスとし、前記代表アドレスにより前記複数の第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割しておき、前記代表アドレスにより特定される番地にそれぞれ、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせが格納され、前記入力された第一データの前記代表アドレスにより指定される番地が参照され、対応する前記組み合わせを出力する対応情報格納部と、前記対応情報格納部に接続され、前記入力された第一データの前記相対アドレスと前記組み合わせに含まれる前記相対アドレスとを比較し、前記入力された第一データが含まれる区間を特定する相対アドレス比較部と、前記対応情報格納部及び前記相対アドレス比較部に接続され、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する情報選択部とを有することを特徴とする請求の範囲第１項に記載のルックアップテーブルを提供することにより達成される。
また上記目的は、入力された第一データに対応する第二データを出力するルックアップテーブルであって、予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて１が格納されたビットのうち最上位のビット位置に応じて代表アドレスを対応させ、前記第一データのそれぞれにおいて前記最上位のビット位置より下位のビットのうち所定数分のビットを相対アドレスとし、前記代表アドレスにより前記第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割しておき、前記代表アドレスにより特定される番地にそれぞれ、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせが格納され、前記入力された第一データの前記代表アドレスにより指定される番地が参照され、対応する前記組み合わせを出力する対応情報格納部と、前記対応情報格納部に接続され、前記入力された第一データの前記相対アドレスと前記組み合わせに含まれる前記相対アドレスとを比較し、前記入力された第一データが含まれる区間を特定する相対アドレス比較部と、前記対応情報格納部及び前記相対アドレス比較部に接続され、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する情報選択部とを有することを特徴とする請求の範囲第２項に記載のルックアップテーブルを提供することにより達成される。
また上記目的は、請求の範囲第１項あるいは第２項において、前記対応情報格納部は、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納する代わりに、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データから選択された代表情報と、前記区間毎の第二データと前記代表情報との差分である修飾情報と、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納し、前記情報選択部は、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する代わりに、前記組み合わせに含まれる前記修飾情報のうち、前記入力された第一データが含まれる区間に対応する前記修飾情報を選択し、前記選択された修飾情報に前記代表情報を加算したデータを第二データとして出力することを特徴とする請求の範囲第３項に記載のルックアップテーブルを提供することにより達成される。
また上記目的は、請求の範囲第１項あるいは第２項において、更に、前記情報選択部に接続された記憶手段を有し、前記対応情報格納部は、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データと、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納する代わりに、前記複数のブロックのうち該代表アドレスに対応するブロックにおける前記区間毎の前記第二データから選択された代表情報と、前記区間の境の位置を特定する前記相対アドレスとの組み合わせを格納し、前記記憶手段は、前記第一データが含まれる区間に応じて前記代表情報に加算する値を修飾情報として格納し、前記情報選択部は、前記組み合わせに含まれる前記区間毎の前記第二データのうち、前記入力された第一データが含まれる区間に対応する前記第二データを出力する代わりに、前記入力された第一データが含まれる区間に応じて前記記憶手段に格納された修飾情報を選択し、前記選択された修飾情報に前記代表情報を加算したデータを第二データとして出力することを特徴とする請求の範囲第４項に記載のルックアップテーブルを提供することにより達成される。
また上記目的は、請求の範囲第１項乃至第４項のいずれかにおいて、前記対応情報格納部は複数存在し、前記入力された第一データにおいて前記代表アドレスと前記相対アドレスに使用されていないビットのうち第三の所定数分のビットをテーブル選択アドレスとし、前記テーブル選択アドレスに基づいて前記複数の対応情報格納部から選択された対応情報格納部が使用されることを特徴とする請求の範囲第５項に記載のルックアップテーブルを提供することにより達成される。
また上記目的は、入力された第一データに対応する第二データを取得するデータ取得方法であって、予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて第一の所定数分のビットを代表アドレスとし、前記第一データのそれぞれにおいて前記代表アドレスに使用されていないビットのうち第二の所定数分のビットを相対アドレスとし、前記代表アドレスにより前記複数の第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割し、前記区間毎の前記第二データを前記複数のブロックにそれぞれ対応付けておき、前記入力された第一データの前記代表アドレスを用いて、前記複数のブロックのうち該入力された第一データが含まれるブロックを特定し、前記入力された第一データの前記相対アドレスを用いて、前記特定されたブロックに含まれる前記区間のうち、前記入力された第一データが含まれる区間を特定し、前記特定された区間に対応付けられた前記第二データを取得することを特徴とする請求の範囲第６項に記載のデータ取得方法を提供することにより達成される。
また上記目的は、入力された第一データに対応する第二データを取得するデータ取得方法であって、予め、複数の第一データと該複数の第一データにそれぞれ対応する複数の第二データを用意し、前記第一データのそれぞれにおいて１が格納されたビットのうち最上位のビット位置に応じて代表アドレスを対応させ、前記第一データのそれぞれにおいて前記最上位のビット位置より下位のビットのうち所定数分のビットを相対アドレスとし、前記代表アドレスにより前記第一データを分類して複数のブロックとし、前記複数のブロックにそれぞれ前記代表アドレスを対応させ、前記複数のブロックにそれぞれ含まれる前記第一データに対応する前記第二データが連続して同じ値を取る範囲を一区間として、前記複数のブロックをそれぞれ少なくとも１つの前記区間に分割し、前記区間毎の前記第二データを前記複数のブロックにそれぞれ対応付けておき、前記入力された第一データの前記代表アドレスを用いて、前記複数のブロックのうち該入力された第一データが含まれるブロックを特定し、前記入力された第一データの前記相対アドレスを用いて、前記特定されたブロックに含まれる前記区間のうち、前記入力された第一データが含まれる区間を特定し、前記特定された区間に対応付けられた前記第二データを取得することを特徴とする請求の範囲第７項に記載のデータ取得方法を提供することにより達成される。
また上記目的は、請求の範囲第６項あるいは第７項において、前記区間毎の前記第二データを前記複数のブロックにそれぞれ対応付けておく代わりに、前記区間毎の前記第二データから選択された代表情報と、前記区間毎の第二データと前記代表情報との差分である修飾情報を前記複数のブロックにそれぞれ対応付けておき、前記特定された区間に対応付けられた前記第二データを取得する代わりに、前記特定された区間に対応する前記修飾情報を選択し、前記選択された修飾情報に前記代表情報を加算したデータを前記第二データとして取得することを特徴とする請求の範囲第８項に記載のデータ取得方法を提供することにより達成される。
【図面の簡単な説明】  図１は、ルックアップテーブルが使用されるシステムの一例である。
図２は、従来のルックアップテーブルを説明する図である。
図３は、本発明の実施形態の概要を説明する図である。
図４は、本発明の実施形態におけるデータの格納形式を説明する図である。
図５は、本発明の実施形態において使用する正弦関数を示す図である。
図６は、本発明の実施形態において使用する正弦関数の数値表である。
図７は、本発明の第一の実施形態を説明する図である。
図８は、本発明の第二の実施形態を説明する図である。
図９は、本発明の第二の実施形態の変形例を説明する図である。
図１０は、本発明の第三の実施形態を説明する図である。
図１１は、本発明の第三の実施形態の変形例を説明する図である。
図１２は、本発明の第四の実施形態を説明する図である。
図１３は、本発明の第四の実施形態の変形例を説明する図である。
図１４は、本発明の第五の実施形態を説明する図である。
【発明を実施するための最良の形態】  以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態に限定されるものではない。
図３は、本発明のルックアップテーブルの実施形態の概要を説明するための図である。図３は、入力データと出力データの関係を説明するものであり、ある関数を階段関数で近似する様子を示している。ルックアップテーブルを参照した結果、入力データに対応する出力データ（ここでは階段関数値）が、ある関数の（近似）値として得られる。
従来は、各入力データに対応する出力データが各アドレスに格納されており、メモリ容量を無駄に消費していた。そこで、本発明の実施形態においては、入力データを複数のブロックに分割し、さらにブロック内で同じ出力データを取る範囲を１区間として、各ブロックを複数の区間に分割する。
ブロックの大きさに制限はなく、ブロックに含まれる区間の数も異なる。例えば、ブロックＡは３区間に分割され、ブロックＢは１区間しか含まず、ブロックＣは２区間に分割される。
そして、図４Ａに示されるようにルックアップテーブルに備えられた対応情報格納部のアドレスに各ブロックを対応させ、各アドレスには、対応するブロックに関する情報が格納される。対応情報格納部は、ＲＯＭやＲＡＭ等の記憶手段であり、番地を指定することにより対応する番地に格納された情報が参照される。ブロックに関する情報として、対応するブロック内に存在する区間を特定する情報とその区間での出力データを格納する。区間を特定する情報には、例えば、出力データが変化する位置、言い換えると各区間の境となる境界位置が使用される。
図３のブロックＣを例に取ると、ブロックＣは入力データＲ１で区間１と区間２に分割され、区間１では対応する出力データがＱ０、区間２では対応する出力データがＱ１であるので、図４Ｂに示されるように、ブロックＣに関する情報として、ａビットのＱ０、ｂビットのＲ１、ａビットのＱ１が含まれる（Ｂ−１）。ａ、ｂは自然数、Ｑ０、Ｑ１、Ｒ１は順不同である。また、ブロックが３以上の区間に分割される場合は、区間の数に応じて格納される情報も増える（Ｂ−２）。この場合も格納される情報は順不同である。なお、図４Ｂで使用される各区間の境となる境界位置（Ｒｘ）は、具体的にはブロック内における相対的な位置として特定する位置情報や、境界位置を入力データで絶対的な位置として特定する位置情報である。
上述のルックアップテーブルを用いることで、従来例と比較して、各アドレスに必要なビット数は大きくなるが、アドレスの数が、入力データ数（従来例）からブロック数（本実施形態）にまで減少するため、全体としてメモリ容量を一層削減することができるものである。
以下にルックアップテーブルの実施形態をより具体的に説明する。図５は、本発明の実施形態において使用する正弦関数の数値表であり、これは、図６の正弦関数において０度から３６０度までの間を１２８等分した場合の正弦関数値を９０度付近まで記述したものである。
簡単化のために本実施形態では、アドレスを５ビットで表現可能な３２個の入力データに限定する。また、出力データ５２を５ビット（符号１ビット＋整数部１ビット＋小数部３ビット）で表している。符号ビットの０は正符号を、１は負符号を表すとする。
図５において入力データ５１に対応する出力データ５２が、１０進値の列に格納されている。例えば、角度が０度（入力データが０）のとき正弦値は０．０００、角度が４５度（入力データが１６）のとき正弦値は０．７０７、角度が９０度（入力データが５２）のとき正弦値は１．０００である。
入力データ５１、出力データ５２の１０進値の横の列には、各数値に対応する２進値が並べられている。２進値の小数点第ｎ位（ｎは自然数）は、２の（−ｎ）乗に対応している。
２進値で表された出力データを見ると、１０進値から２進値への変換により複数の入力データ５１に対して同じ値が格納されることがわかる。また、９０度付近で正弦関数値の変化がゆるやかになるため、角度が９０度に近づくにつれ、同じ値が格納される範囲が広くなる。更に、２進値の変化を見ると角度が９０度に近づくにつれ、値が階段状に０．００１ずつ増加していることがわかる。
続いて、入力データ５１の分割法の例をいくつか挙げる。図５の８分割の列５３は、０度から９０度の間の３２個の入力データを４つ毎に８ブロックに分割した場合の図である。各ブロックに含まれる入力データは上位３ビットが共通する。例えば、１番目のブロックでは、上位３ビットが０００で共通する。言い換えると、８分割の各ブロックは、上位３ビットにより入力データを分類してできるブロックである。
各ブロックは更に出力データの変化に応じて複数の区間に分割される。例えば、１番目のブロックでは、先頭アドレス（０００００）に対する出力データ＋０．０００がアドレス０００１０で＋０．００１に変化する。従って、１番目のブロックはアドレス０００１０で２つの区間に分割される。５番目のブロックでは、先頭アドレス（１００００）に対する出力データ＋０．１１０はブロック内で変化せず、区間数は１である。
また、各ブロックに含まれる入力データは４つであるので、２ビットのアドレス（００、０１、１０、１１）を対応させると、ブロック内において出力データが変化する位置をこの２ビットのアドレスで特定することができる。ブロック内での位置を特定するためのアドレスを相対アドレスと呼ぶことにする。つまり、１番目のブロックでは、ブロックが相対アドレス１０で２つの区間に分割されると言い換えることもできる。なお、カッコ内の数字は、各ブロックの先頭アドレスでの出力データとの差分を表す。
８分割の場合、各ブロックにおいてアドレスの上位３ビットが共通するので、アドレスの上位３ビットを用いてブロックを特定することが可能である。また、２ビットの相対アドレスはアドレスの下位２ビットに一致する。つまり、８分割の場合、アドレスの上位３ビットからブロックが特定され、特定されたブロック内での位置が下位２ビット（相対アドレス）から特定され、入力データに対応する出力データを取得できる。
図５の４分割の列５４は、３２個のアドレスを８つ毎に４ブロックに分割した場合の図である。４分割の場合は、各ブロックのアドレスの上位２ビットが共通する。言い換えると、４分割の各ブロックは、上位２ビットによりアドレスを分類してできるブロックである。例えば、１番目のブロックのアドレスは、上位２ビットが００で共通する。なおカッコ内の数字は、各ブロックの先頭アドレスでの出力データと各出力データとの差分である。
また、各ブロックの先頭から３ビットの相対アドレスを対応させると、アドレスの下位３ビットに一致する。つまり、従って、４分割の場合も８分割の場合同様、アドレスの上位２ビットからブロックが特定され、特定されたブロック内での位置が下位３ビット（相対アドレス）から特定される。
図５の６分割の列５５は、３２個のアドレスを６つのブロックに分割した場合の図である。８分割、４分割の場合と異なり、等間隔に分割したものではない。カッコ内の数字は、各ブロックの先頭アドレスでの出力データとの差分である。
各ブロックのアドレスは、上位ビットから見て最初にどのビットに１が格納されるかにより、ｘは０か１を取る任意のビットとすると、０００００（１を含まない）、００００１（５ビット目が１）、０００１ｘ（４ビット目が１）、００１ｘｘ（３ビット目が１）、０１ｘｘｘ（２ビット目が１）、１ｘｘｘｘ（１ビット目が１）と分類される。言い換えると、６分割の各ブロックは、上記分類法によってアドレスを分類してできるブロックである。
６分割の場合も、上記分類によって、アドレス（入力データ）に対応するブロックを特定することが可能である。また各ブロックの先頭から、上記ｘの数に応じて最大４ビットの相対アドレスを対応させれば、ブロック内での位置を特定することができる。
上記のように入力データを複数のブロックに分割した場合、入力データ（アドレス）が属するブロックと、その入力データが含まれるそのブロック内の区間を特定することにより、その区間に対応する出力データを特定することが可能である。
続いて、上記のように分割されたブロックに関する情報を各アドレスに格納することにより、ルックアップテーブルに必要なメモリ容量が従来に比べ削減される様子と、従来と同じ精度で入力データに対応する出力データが得られる様子を説明する。
図７は、本発明の第一の実施形態を説明するルックアップテーブル４の構成図である。第一の実施形態は、図５の８分割に対応する。まず、図７のルックアップテーブル４に入力された入力データは、上位３ビットと下位２ビットに分けられる。そして、上位３ビットにより対応情報格納部５が参照される。
図７の対応情報格納部５には、代表アドレス毎に、代表情報、変化点相対アドレス、相対情報がそれぞれ格納される。代表アドレスはブロックを特定するためのアドレスである。代表アドレスにより、入力データの上位３ビットが代表アドレスに等しいブロックが特定される。
代表情報は、ブロックに含まれる入力データに対応する出力データから任意に選択された出力データであり、ここでは、そのブロックの先頭アドレス（相対アドレスが００）での出力データである。変化点相対アドレスは、そのブロックにおいて出力データが変化する位置を示す相対アドレスが格納される。相対情報は、ブロックに含まれる出力データのうち代表情報以外のものすべてである。
例えば、代表アドレス０００には、０００００１０００００１が格納される。先頭５ビット（０００００）は代表情報（＋０．０００）、次の２ビット（１０）が変化点相対アドレス（１０）、最後の５ビット（００００１）が相対情報（＋０．００１）を意味する。従って、代表アドレス０００に対応するブロックでは、相対アドレスが００あるいは０１においては、出力データが＋０．０００であり、変化点相対アドレス（１０）以上である相対アドレス１０あるいは１１においては、出力データが＋０．００１であることを意味する。これは、図５の８分割の列５３における１番目のブロックに対応する。また、代表アドレス１００の変化点相対アドレスが００とは、そのブロックにおいて出力データが代表情報のまま変化しないことを意味する。これは、図５の８分割の列５３における５番目のブロックに対応する。
上位３ビットにより対応情報格納部５が参照されると参照結果として、対応する代表アドレスに格納されていた情報が得られる。入力データの相対アドレスとこの参照結果に含まれる変化点相対アドレスは相対アドレス比較部４１に入力され、相対アドレス比較部４１は、入力データの相対アドレスと変化点相対アドレスを、２進数値として比較し結果を情報選択部４２に入力する。
相対アドレス比較部４１での比較により、相対アドレスが変化点相対アドレス以上かが判定される。これは、相対アドレスがどの区間にあるか判定していることになる。例えば、代表アドレス０００に対応するブロックでは、相対アドレス１０を境に２つの区間に分割され、前半の区間では出力データが代表情報（＋０．０００）、後半の区間では出力データが相対情報（＋０．００１）となり、相対アドレスを変化点相対アドレスと比較することで、どの区間に属するかがわかる。情報選択部４２は、入力された比較結果に応じて、相対アドレスが変化点相対アドレスを下回れば代表情報を、以上であれば相対情報を出力データとして選択し、出力する。
例として入力データ００１０１が与えられるとする。図５を見ると対応する出力データは＋０．０１０である。入力データの代表アドレス（上位３ビット）は００１であり、相対アドレス（下位２ビット）は０１である。
まず代表アドレス（００１）により対応情報格納部が参照され、テーブル参照結果として代表情報（＋０．０１０）、変化点相対アドレス（１１）、相対情報（＋０．０１１）が得られる。次に、相対アドレス比較部にて、相対アドレス（０１）と変化点相対アドレス（１１）が比較され、比較の結果（０１＜１１）、入力データの相対アドレスは変化点相対アドレスを下回ることがわかる。そこで、情報選択部４２は、代表情報（＋０．０１０）を選択しこれを出力する。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第一の実施形態によれば、３ビット（８個）の各代表アドレスに５ビットの代表情報、２ビットの相対アドレス、５ビットの相対情報を対応させ、８＊（５＋２＋５）＝９６ビットのメモリ容量で済む。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
図８は、本発明の第二の実施形態を説明するルックアップテーブル４の構成図である。第二の実施形態は、図５の８分割においてカッコ内の数字を使用することに対応する。つまり、第一の実施形態では、対応情報格納部の各アドレスに相対情報を格納したが、第二の実施形態では、各出力データと代表情報との差分を格納するものである。
図８のルックアップテーブル４に入力された入力データは、上位３ビットと下位２ビットに分けられる。そして、上位３ビットにより対応情報格納部が参照される。
図８の対応情報格納部５には、代表アドレス毎に、代表情報、変化点相対アドレス、修飾情報がそれぞれ格納される。第一の実施形態と同じく、代表アドレスはブロックを特定するためのアドレスであり、各ブロックはアドレスの上位３ビットが共通するように分割されている。代表情報、変化点相対アドレスは、第一の実施形態と同じであり説明は略す。修飾情報は、各出力データと代表情報との差分である。
例えば、代表アドレス０００に対応するブロックでは、相対アドレスが００あるいは０１においては、出力データが＋０．０００であり、変化点相対アドレス（１０）以上である相対アドレス１０あるいは１１においては、代表情報＋０．０００に修飾情報＋０．００１を加えた＋０．００１が出力データであることを意味する。
上位３ビットにより対応情報格納部５が参照されると参照結果として、対応する代表アドレスに格納されていた情報が得られる。入力データの相対アドレスと対応情報格納部の参照結果に含まれる変化点相対アドレスは相対アドレス比較部４１に入力され、相対アドレス比較部４１は、入力データの相対アドレスと変化点相対アドレスを、２進数値として比較し結果を情報選択・加算部４３に入力する。情報選択・加算部４３は、入力された比較結果に応じて、相対アドレスが変化点相対アドレスを下回れば修飾情報として０（差分０を意味し、何も足さない）を、以上であれば修飾情報として＋０．００１を選択し、代表情報に修飾情報を加算した値を出力データとして出力する。
例として入力データ００１０１が与えられるとする。入力データの代表アドレス（上位３ビット）は００１であり、相対アドレス（下位２ビット）は０１である。まず代表アドレス（００１）により対応情報格納部が参照され、テーブル参照結果として代表情報（＋０．０１０）、変化点相対アドレス（１１）、修飾情報（＋０．００１）が得られる。次に、相対アドレス比較部４１にて、相対アドレス（０１）と変化点相対アドレス（１１）が比較され、比較の結果（０１＜１１）、入力データの相対アドレスは変化点相対アドレスを下回ることがわかる。そこで、情報選択・加算部４３は、代表情報（＋０．０１０）をそのまま出力する。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第二の実施形態によれば、３ビット（８個）の各代表アドレスに５ビットの代表情報、２ビットの相対アドレス、５ビットの修飾情報を対応させ、８＊（５＋２＋５）＝９６ビットのメモリ容量で済む。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
なお、第二の実施形態で使用したルックアップテーブルの例では、修飾情報が代表情報と同じビット数であるため第一の実施形態の効果と差が無いが、差分である修飾情報のビット数が、代表情報のビット数より少なくなる場合は、第二の実施形態の適用により更にメモリ容量を削減することが可能である。
図８の修飾情報を見ると、本実施形態に使用する図５の正弦関数では、各ブロックにおける差分がすべて＋０．００１と同一なので、対応情報格納部に修飾情報を格納する必要もなく更にメモリ容量を削減することができる。図６にてその様子を説明する。
図９は、本発明の第二の実施形態の変形例を説明するルックアップテーブルの構成図である。第二の実施形態の変形例であるため図９において第二の実施形態と共通する箇所は説明を略す。
図９のルックアップテーブル４に入力された入力データは、上位３ビットと下位２ビットに分けられる。そして、上位３ビットにより対応情報格納部が参照される。図９の対応情報格納部には、第二の実施形態（図８）の対応情報格納部５に格納される情報のうち、代表情報と変化点相対アドレスだけが格納される。
入力データの相対アドレスと対応情報格納部の参照結果に含まれる変化点相対アドレスは相対アドレス比較部４１に入力され、相対アドレス比較部４１は、入力データの相対アドレスと変化点相対アドレスを、２進数値として比較し結果を情報選択部４２に入力する。
情報選択部４２は、図示しないレジスタを有し、そのレジスタに修飾情報（＋０．００１）を格納しており、入力された比較結果に応じて、相対アドレスが変化点相対アドレス以上の場合のみ修飾情報（＋０．００１）を加算部４４に入力する。加算部４４は、対応情報格納部の参照結果に含まれる代表情報と選択結果を加算し、出力データとして出力する。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第二の実施形態の変形例によれば、３ビット（８個）の各代表アドレスに５ビットの代表情報、２ビットの相対アドレスを対応させ、８＊（５＋２）＝５６ビットのメモリ容量で済む。これは第二の実施形態（９６ビット）と比較しても更なるメモリ容量の削減となっている。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
なお図９においては、第二の実施形態の情報選択・加算部４３を情報選択部４２、加算部４４に分けているが、１つのユニットで行うこともできる。逆に言えば、図８の情報選択・加算部４３を図９のように２つのユニットに分けることも可能である。
図１０は、本発明の第三の実施形態を説明するルックアップテーブルの構成図である。第三の実施形態は、図５の４分割に対応するものである。
４分割の場合、入力データの上位２ビットによりブロックを特定することが可能であり、まず、図１０のルックアップテーブル４に入力された入力データは、上位２ビットと下位３ビットに分けられる。そして、上位２ビットにより対応情報格納部５が参照される。
図１０の対応情報格納部には、代表アドレスに対応するブロック毎に、代表情報、変化点相対アドレス、修飾情報がそれぞれ格納される。第一、第二の実施形態の８分割と異なり、４分割の場合、複数の区間に分割されるブロックが存在する。
代表情報、変化点相対アドレス、修飾情報は、第二の実施形態と同じであり説明は略す。ブロックによっては複数の変化点が存在し、変化点の最大数に合わせて３つの相対アドレス（Ｒ１、Ｒ２、Ｒ３）と、３つの修飾情報（Ｑ１、Ｑ２、Ｑ３）が格納できる。
例えば、代表アドレス００には２９（５＋３＊３＋５＊３）ビットである００００００１０１００１１１００００１０００１００００１１が格納される。先頭５ビット（０００００）は代表情報（＋０．０００）、次の３ビット（０１０）が第一の変化点相対アドレスＲ１、次の３ビット（１００）が第二の変化点相対アドレス、次の３ビットが第三の変化点相対アドレス（１１１）、次の５ビット（００００１）が第一の修飾情報（＋０．００１）、次の５ビットが第二の修飾情報（＋０．０１０）、最後の５ビットが第三の修飾情報（＋０．０１１）である。
代表アドレス００に対応するブロックには、変化点が３箇所あり、４区間に分割される。第一の区間（相対アドレス＜Ｒ１）では、出力データが＋０．０００（代表情報）であり、第二の区間（Ｒ１≦相対アドレス＜Ｒ２）では、出力データが＋０．００１（代表情報＋１番目の修飾情報Ｑ１（＋０．００１））であり、第三の区間（Ｒ２≦相対アドレス＜Ｒ３）では、出力データが＋０．０１０（代表情報＋２番目の修飾情報Ｑ２（＋０．０１０））であり、第四の区間（Ｒ３≦相対アドレス）では、出力データが＋０．０１１（代表情報＋３番目の修飾情報Ｑ３（＋０．０１１））であることを意味する。これは、図５の４分割の列５４における１番目のブロックに対応する。
また、代表アドレス１０に対応するブロックでは、変化点が１個しかなく、２区間に分割される。つまり、相対アドレスがＲ１を下回る箇所においては、出力データが＋０．１１０（代表情報）であり、Ｒ１以上の箇所であれば、出力データが＋０．１１１（代表情報＋Ｑ１）であることを意味する。また、変化点相対アドレスが０００とは、そのブロックにおいて出力データがそれ以上変化しないことを意味する。このブロックは、図５の８分割における３番目のブロックに対応する。
上位２ビットにより対応情報格納部５が参照されると参照結果として、対応する代表アドレスに格納されていた情報が得られる。入力データの相対アドレスと対応情報格納部の参照結果に含まれる変化点相対アドレスは相対アドレス比較部４１に入力され、相対アドレス比較部４１は、相対アドレスがどの区間に含まれるかを判定し、結果を情報選択部４２に入力する。より具体的な例としては、相対アドレスと各変化点相対アドレスを２進数値として比較して、相対アドレスが変化点相対アドレス以上を判定された回数を情報選択部４２に入力する。
情報選択部４２は、相対アドレスが含まれる区間に応じて対応する修飾情報を選択する。より具体的な例としては、入力された回数に応じて、０回であれば＋０を、１回であればＱ１（＋０．００１）を、２回であればＱ２（＋０．０１０）を、３回であればＱ３（＋０．０１１）を選択し、加算部４４に入力する。加算部４４は、対応情報格納部の参照結果に含まれる代表情報と選択結果を加算し、出力データとして出力する。
例として入力データ００１０１が与えられるとする。代表アドレス（上位２ビット）は００であり、相対アドレス（下位３ビット）は１０１である。まず代表アドレス（００）により対応情報格納部が参照され、テーブル参照結果として代表情報（＋０．０００）、変化点相対アドレスとして、Ｒ１（０１０）、Ｒ２（１００）、Ｒ３（１１１）、相対情報としてＱ１（＋０．００１）、Ｑ２（＋０．０１０）、Ｑ３（＋０．０１１）が得られる。次に、相対アドレス比較部４１にて、相対アドレス（１０１）と３つの変化点相対アドレスが比較され、比較の結果（Ｒ２＜１０１＜Ｒ３）、入力データの相対アドレスが変化点相対アドレス以上となる回数は２回であることがわかる。そこで、情報選択部４２は、Ｑ２（＋０．０１０）を選択し、加算部４４にて代表情報（＋０．０００）に加算された結果（＋０．０１０）が出力される。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第三の実施形態によれば、２ビット（４個）の各代表アドレスに対し、５ビットの代表情報、３ビットの相対アドレスが３個、５ビットの修飾情報が３個含まれる組を対応させ、４＊（５＋３＊３＋５＊３）＝１１６ビットのメモリ容量で済む。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
なお、第三の実施形態においては、対応情報格納部５に格納されるデータとして修飾情報を用いたが、第一の実施形態と同様に相対情報を用いることも可能である。その場合、例えば、情報選択部４２にて、入力データの相対アドレスが変化点相対アドレス以上となる回数に応じて対応する相対情報が選択されるようにすればよい。
図１０の修飾情報を見ると、本実施形態に使用する図５の正弦関数では、すべての変化点において０．００１ずつ値が増加することがわかる。このため、対応情報格納部５に修飾情報を格納する必要もなく、入力データの属する区間に応じて、適宜修飾情報に該当する数を加算すれば済み、更にメモリ容量を削減することができる。図１１にてその様子を説明する。
図１１は、本発明の第三の実施形態の変形例を説明するルックアップテーブルの構成図である。第三の実施形態の変形例であるため図１１において第三の実施形態（図１０）と共通する箇所は説明を略す。
図１１のルックアップテーブル４に入力された入力データは、上位２ビットの代表アドレスと下位３ビットの相対アドレスに分けられる。そして、代表アドレスにより対応情報格納部５が参照される。図１１の対応情報格納部５には、代表情報と変化点相対アドレスだけが格納される。
上位２ビットにより対応情報格納部５が参照されると参照結果として、対応する代表アドレスに格納されていた情報が得られる。入力データの相対アドレスと対応情報格納部５の参照結果に含まれる変化点相対アドレスは相対アドレス比較部４１に入力され、相対アドレス比較部４１は、相対アドレスがどの区間に含まれるかを判定し、結果を情報選択部４２に入力する。
情報選択部４２は、相対アドレスが含まれる区間に応じて対応する修飾情報を選択する。情報選択部４２は、図示しないレジスタを有し、そのレジスタに区間毎の修飾情報（Ｑ１、Ｑ２、Ｑ３）に対応する情報を格納しており、図７で説明した第一の区間であれば＋０を、第二の区間であれば＋０．００１を、第三の区間であれば＋０．０１０を、第四の区間であれば＋０．０１１を選択し、加算部４４に入力する。加算部４４は、対応情報格納部５の参照結果に含まれる代表情報と選択結果を加算し、出力データとして出力する。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第三の実施形態の変形例によれば、２ビット（４個）の各代表アドレスに５ビットの代表情報、３ビットの相対アドレスが３個含まれる組を対応させ、４＊（５＋３＊３）＝５６ビットのメモリ容量で済む。これは第三の実施形態（１１６ビット）と比較しても更なるメモリ容量の削減となっている。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
以上の第三の実施形態（変形例を含む）までの対応情報格納部５に見られる、０が括弧で囲まれた箇所は実は意味の無い情報である。例えば、第一の実施形態の図７の代表アドレス１００に対応するブロックでは、代表情報（＋０．１１０）のまま変化しないのであるから、入力データがこのブロックに属すると判明した時点で出力データが決定される。
つまり、この場合代表情報だけが意味を持つデータである。しかし、図７の他のブロック同様、代表アドレス１００でも１２ビット（代表情報５ビット＋２ビットの０＋５ビットの０）が消費され、無駄なメモリ容量を消費していた。
これは、第三の実施形態までは出力データの変化とは関係なくブロック分割したためである。出力データの変化が少ない範囲では、ブロックに多くの入力データが含まれるようにし、出力データの変化が多い範囲では、各ブロックに含まれる変化点の数が均等になるようにすると、更にメモリ容量を削減できる。そこで出力データの変化に合わせて、ブロックの分割を変える場合を第四の実施形態として説明する。
図１２は、本発明の第四の実施形態を説明するルックアップテーブルの構成図である。第四の実施形態は、第二の実施形態の変形例（図９）と第三の実施形態の変形例（図１１）を組み合わせたものであり、前半は４つおきにアドレス分割し、後半は８つおきにアドレスを分割するものである。そのため、対応情報格納部５を２つ有し、５ビットのアドレスをテーブル選択用の１ビットと４ビットの代表・相対アドレスに分け、対応情報格納部５によって代表アドレスと相対アドレスの分け方を変える。
図１２のルックアップテーブルに入力された入力データは、上位１ビットのテーブル選択アドレスと下位４ビットの代表・相対アドレスに分けられる。テーブル選択アドレスは、後に２つある対応情報格納部５を選択するのに使用され、代表・相対アドレスは、第一の対応情報格納部５Ａに入力される。そこで、上位２ビットの第一の代表アドレスと下位２ビットの第一の相対アドレスに分けられる。そして第一の代表アドレスにより第一の対応情報格納部５Ａが参照される。
図１２の第一の対応情報格納部５Ａには、第二の実施形態の変形例（図９）の前半４つ（代表アドレス０００から０１１まで）に対応する代表情報と変化点相対アドレスが格納される。
例えば、代表アドレス００に対応するブロックでは、相対アドレスが００あるいは０１においては、出力データが＋０．０００であり、変化点相対アドレス（１０）以上である相対アドレス１０あるいは１１においては、後述する第一の情報選択部４２Ａにて＋０．００１が選択され最終的に加算部４４にて代表情報に加算され、＋０．００１が出力されることになる。
第一の相対アドレスと対応情報格納部５Ａの参照結果に含まれる変化点相対アドレスは第一の相対アドレス比較部４１Ａに入力され、相対アドレスが変化点相対アドレス以上かを判定する。そこで相対アドレス比較部４１Ａは、入力データの相対アドレスと変化点相対アドレスを、２進値として比較し結果を情報選択部４２Ａに入力する。情報選択部４２Ａは、図示しないレジスタを有し、そのレジスタに修飾情報（＋０．００１）を格納しており、入力された比較結果に応じて、相対アドレスが変化点相対アドレスを下回れば＋０を、以上であれば修飾情報（＋０．００１）を修飾情報用のテーブル選択部４６に入力する。
一方、代表・相対アドレスは、第二の対応情報格納部５Ｂにも入力される。そこで、上位１ビットの第二の代表アドレスと下位３ビットの第二の相対アドレスに分けられる。そして第二の代表アドレスにより第二の対応情報格納部５Ｂが参照される。
図１２の第二の対応情報格納部５Ｂには、第三の実施形態の変形例（図１１）の後半２つ（代表アドレス１０から１１まで）に対応する代表情報と変化点相対アドレスが格納される。なお、変化点は１つしかないので、図１２の対応情報格納部５にはＲ２、Ｒ３は必要ない。
例えば、代表アドレス０に対応するブロックでは、相対アドレスが変化点相対アドレス（１００）を下回る箇所においては、出力データが＋０．１１０（代表情報）であり、１００以上の箇所であれば、後述する第二の情報選択部４２Ｂにて＋０．００１が選択され最終的に加算部４４にて代表情報に加算され、＋０．１１１が出力されることになる。
第二の相対アドレスと対応情報格納部５Ｂの参照結果に含まれる変化点相対アドレスは第二の相対アドレス比較部４１Ｂに入力され、第二の相対アドレスが変化点相対アドレス以上かを判定する。そこで相対アドレス比較部４１Ｂは、入力データの相対アドレスと変化点相対アドレスを、２進値として比較し結果を第二の情報選択部４２Ｂに入力する。第二の情報選択部４２は、図示しないレジスタを有し、そのレジスタに修飾情報（＋０．００１）を格納しており、入力された比較結果に応じて、第二の相対アドレスが変化点相対アドレスを下回れば＋０を、以上であれば修飾情報（＋０．００１）を修飾情報用のテーブル選択部４６に入力する。
テーブル選択アドレスは、まず代表情報用のテーブル選択部４５に入力される。代表情報用のテーブル選択部４５には、第一および第二の対応情報格納部５を参照した結果に含まれる代表情報がそれぞれ入力され、入力されたテーブル選択アドレスが０であれば、第一の対応情報格納部５Ａの代表情報を、それ以外では第二の対応情報格納部５Ｂの代表情報を加算部４４に入力する。
テーブル選択アドレスは、次に修飾情報用のテーブル選択部４６に入力される。そして、先ほどと同様に、入力されたテーブル選択アドレスが０であれば、第一の対応情報格納部５Ａの修飾情報を、それ以外では第二の対応情報格納部５Ｂの修飾情報を加算部４４に入力する。加算部４４は、入力された代表情報と修飾情報を加算し、出力データとして出力する。
例として入力データ００１０１が与えられるとする。第一の対応情報格納部５Ａにおいては、代表アドレスは０１であり、相対アドレスは０１である。まず代表アドレス（０１）により対応情報格納部５が参照され、テーブル参照結果として代表情報（＋０．０１０）、変化点相対アドレスとして、１１が得られる。次に、第一の相対アドレス比較部４１Ａにて、相対アドレス（０１）と変化点相対アドレス（１１）が比較され、比較の結果（０１＜１１）、第一の情報選択部４２Ａは、＋０を選択し、修飾情報用のテーブル選択部４６に入力する。一方、第二の対応情報格納部５Ｂにおいては、代表アドレスは０であり、相対アドレスは１０１である。まず代表アドレス（０）により対応情報格納部５Ｂが参照され、テーブル参照結果として代表情報（＋０．１１０）、変化点相対アドレスとして、１００が得られる。次に、第二の相対アドレス比較部４１Ｂにて、相対アドレス（１０１）と変化点相対アドレス（１００）が比較され、比較の結果（１０１＞１００）、第二の情報選択部４２Ｂは、＋０．００１を選択し、修飾情報用のテーブル選択部４６に入力する。そして、テーブル選択アドレスが０であることから、代表情報用のテーブル選択部４５において第一の対応情報格納部５Ａの代表情報（＋０．０１０）が、修飾情報用のテーブル選択部４６において第一の対応情報格納部５Ａの修飾情報（＋０）が選択され、加算部４４で加算された結果（＋０．０１０）が出力される。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第四の実施形態によれば、２ビット（４個）の各代表アドレスに対し、５ビットの代表情報、２ビットの相対アドレスを対応させる第一の対応情報格納部５で、４＊（５＋２）＝２８ビット、そして１ビット（２個）の各代表アドレスに対し、５ビットの代表情報、３ビットの相対アドレスを対応させる第二の対応情報格納部５で、２＊（５＋３）＝１６ビット、２つの対応情報格納部５合わせて４４ビットのメモリ容量で済む。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
次に第四の実施形態の変形例として、変化点相対アドレスが複数格納される情報格納部を有するルックアップテーブルについて説明する。第四の実施形態においては、前半は４つおきにアドレス分割し、後半は８つおきにアドレスを分割し、２つの対応情報格納部５を用意したが、本変形例においては、前半も後半も８つおきにアドレスを分割する。
図１３は、本発明の第四の実施形態の変形例を説明するルックアップテーブルの構成図である。第四の実施形態は、前半も後半も８つおきにアドレスを分割するが、後半は変化点の個数が減少するためルックアップテーブルに必要なメモリ容量を削減することができるものである。そのため、対応情報格納部５を２つ有し、５ビットのアドレスをテーブル選択用の１ビットと１ビットの代表アドレス、３ビットの相対アドレスに分ける。
そして代表アドレスにより第一の対応情報格納部５Ａが参照される。図１３の第一の対応情報格納部５Ａには、第三の実施形態の変形例（図１１）の前半２つ（代表アドレス００から０１まで）に対応する代表情報と変化点相対アドレスが格納される。
相対アドレスと対応情報格納部５Ａの参照結果に含まれる変化点相対アドレスは第一の相対アドレス比較部４１Ａに入力され、相対アドレス比較部４１Ａは、相対アドレスがどの区間に含まれるかを判定し、結果を情報選択部４２Ａに入力する。より具体的な例としては、相対アドレスと各変化点相対アドレスを２進値として比較して、相対アドレスが変化点相対アドレス以上を判定された回数を情報選択部４２Ａに入力する。情報選択部４２Ａは、図示しないレジスタを有し、入力された回数に応じて、０回であれば＋０を、１回であれば＋０．００１を、２回であれば＋０．０１０を、３回であれば＋０．０１１を選択し、修飾情報用のテーブル選択部４６に入力する。
一方、代表アドレスにより第二の対応情報格納部５Ｂも参照される。図１３の第二の対応情報格納部５Ｂには、第三の実施形態の変形例（図１１）の後半２つ（代表アドレス１０から１１まで）に対応する代表情報と変化点相対アドレスが格納される。なお、変化点は１つしかないので、図１３の対応情報格納部５ＢにはＲ２、Ｒ３は必要ない。
相対アドレスと対応情報格納部５Ｂの参照結果に含まれる変化点相対アドレスは第二の相対アドレス比較部４１Ｂに入力され、相対アドレスが変化点相対アドレス以上かが判定される。そこで相対アドレス比較部４１Ｂは、入力データの相対アドレスと変化点相対アドレスを、２進値として比較し結果を第二の情報選択部４２Ｂに入力する。第二の情報選択部４２Ｂは、図示しないレジスタを有し、そのレジスタに修飾情報（＋０．００１）を格納しており、入力された比較結果に応じて、第二の相対アドレスが変化点相対アドレスを下回れば＋０を、以上であれば修飾情報（＋０．００１）を修飾情報用のテーブル選択部４６に入力する。
テーブル選択アドレスは、まず代表情報用のテーブル選択部４５に入力される。代表情報用のテーブル選択部４５には、第一および第二の対応情報格納部５を参照した結果に含まれる代表情報がそれぞれ入力され、入力されたテーブル選択アドレスが０であれば、第一の対応情報格納部５Ａの代表情報を、それ以外では第二の対応情報格納部５Ｂの代表情報を加算部４４に入力する。
テーブル選択アドレスは、次に修飾情報用のテーブル選択部４６に入力される。そして、先ほどと同様に、入力されたテーブル選択アドレスが０であれば、第一の対応情報格納部５Ａの修飾情報を、それ以外では第二の対応情報格納部５Ｂの修飾情報を加算部４４に入力する。加算部４４は、入力された代表情報と修飾情報を加算し、出力データとして出力する。
例として入力データ００１０１が与えられるとする。第一の対応情報格納部５Ａにおいては、代表アドレスは０であり、相対アドレスは１０１である。まず代表アドレス（０）により対応情報格納部５Ａが参照され、テーブル参照結果として代表情報（＋０．０００）、変化点相対アドレスとして、Ｒ１（０１０）、Ｒ２（１００）、Ｒ３（１１１）が得られる。次に、第一の相対アドレス比較部４１Ａにて、相対アドレス（１０１）と３つの変化点相対アドレスが比較され、比較の結果（Ｒ２＜１０１＜Ｒ３）、入力データの相対アドレスが変化点相対アドレス以上となる回数は２回であることがわかる。そこで、第一の情報選択部４２Ａは、＋０．０１０を選択し、修飾情報用のテーブル選択部４６に入力する。
一方、第二の対応情報格納部５Ｂにおいては、代表アドレス（０）により対応情報格納部５Ｂが参照され、テーブル参照結果として代表情報（＋０．１１０）、変化点相対アドレスとして、１００が得られる。次に、第二の相対アドレス比較部４１Ｂにて、相対アドレス（１０１）と変化点相対アドレス（１００）が比較され、比較の結果（１０１＞１００）、第二の情報選択部４２Ｂは、＋０．００１を選択し、修飾情報用のテーブル選択部４６に入力する。そして、テーブル選択アドレスが０であることから、代表情報用のテーブル選択部４５において第一の対応情報格納部５Ａの代表情報（＋０．０１０）が、修飾情報用のテーブル選択部４６において第一の対応情報格納部５Ａの修飾情報（＋０）が選択され、加算部４４で加算された結果（＋０．０１０）が出力される。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第四の実施形態の変形例によれば、１ビット（２個）の各代表アドレスに対し、５ビットの代表情報、３ビットの相対アドレスを３個含む組に対応させた第一の対応情報格納部５で、２＊（５＋３＊３）＝２８ビット、そして１ビット（２個）の各代表アドレスに対し、５ビットの代表情報、３ビットの相対アドレスを対応させる第二の対応情報格納部５で、２＊（５＋３）＝１６ビット、２つの対応情報格納部５合わせて４４ビットのメモリ容量で済む。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
図１４は、本発明の第五の実施形態を説明するルックアップテーブルの構成図である。第五の実施形態は、アドレスに１が格納される最上位ビットに応じて出力データを分類するもので、これは図５の６分割に対応するものである。
図１４のルックアップテーブル４に入力された入力データは、アドレス生成部４７に入力される。アドレス生成部４７は、アドレスを０００００（１を含まない）、００００１（５ビット目が１）、０００１ｘ（４ビット目が１）、００１ｘｘ（３ビット目が１）、０１ｘｘｘ（２ビット目が１）、１ｘｘｘｘ（１ビット目が１）の６種類に分類し、それぞれ０００から１０１までの代表アドレスに対応させ、１が格納される最上位ビットより下位のビット（上記ｘの部分）を相対アドレスとして生成する。そして、生成された代表アドレスにより対応情報格納部５が参照される。
図１４の対応情報格納部５には、代表アドレスに対応するブロック毎に、代表情報、複数の変化点相対アドレスがそれぞれ格納される。第三の実施形態の変形例（図１１）と同じくすべての変化点で変化の度合いが＋０．００１なので相対情報、修飾情報が省略されている。変化点相対アドレスは、相対アドレスの最長ビットに合わせて４ビット確保される。
例えば、代表アドレス０１１に対応するブロックでは、相対アドレスが００、０１、１０においては、出力データが＋０．０１０であり、相対アドレス１１においては、出力データが＋０．０１１であることを意味する。これは、図５の６分割における４番目のブロックに対応する。
アドレス生成部４７により生成された代表アドレスにより対応情報格納部５が参照されると参照結果として、対応する代表アドレスに格納されていた情報が得られる。入力データの相対アドレスと対応情報格納部５の参照結果に含まれる変化点相対アドレスは相対アドレス比較部４１に入力され、相対アドレスが変化点Ｒ１、Ｒ２のどの間に位置するかが判定される。そこで相対アドレス比較部４１は、相対アドレスと各変化点相対アドレスを２進値として比較して、相対アドレスが変化点相対アドレス以上を判定された回数を情報選択部４２に入力する。なお、テーブル参照結果に含まれる変化点相対アドレスが００００である場合、相対アドレス比較部４１は０回を情報選択部４２に入力する。情報選択部４２は、図示しないレジスタを有し、入力された回数に応じて、０回であれば＋０を、１回であれば０．００１を、２回であれば＋０．０１０を、３回であれば＋０．０１１を選択し、加算部４４に入力する。加算部４４は、対応情報格納部５の参照結果に含まれる代表情報と選択結果を加算し、出力データとして出力する。
例として入力データ００１０１が与えられるとする。アドレスに１が格納された最上位ビットは３番目のビットであり、００１ｘｘに該当する。そこでアドレス生成部は、代表アドレスとして０１１を、相対アドレスとして上記ｘｘにあたる０１を生成する。まず代表アドレス（０１１）により対応情報格納部５が参照され、テーブル参照結果として代表情報（＋０．０１０）、変化点相対アドレス（００１１）が得られる。次に、相対アドレス比較部４１にて、相対アドレス（０１）と変化点相対アドレス（００１１）が比較され、比較の結果（０１＜００１１）、入力データの相対アドレスが変化点相対アドレス以上となる回数は０回であることがわかる。そこで、情報選択部４２は、（＋０．０００）を選択し、加算部４４にて代表情報（＋０．０１０）に加算された結果（＋０．０１０）が出力される。
従来は図２のように、５ビット（３２個）の各アドレスに５ビットの出力データを対応させていたので、３２＊５＝１６０ビットのメモリ容量を必要していたが、第五の実施形態によれば、６個の各代表アドレスに対し、５ビットの代表情報、４ビットの相対アドレスが２個含まれる組を対応させ、６＊（５＋４＊２）＝７８ビットのメモリ容量で済む。こうして必要なメモリ容量を従来より削減したルックアップテーブルを用いて、図５と同じ出力データを得ることができる。
以上本発明の実施形態をまとめると、対応情報格納部５の各アドレスに、入力データを複数に分割したブロックを対応させ、ブロックを出力データの変化に応じて複数の区間に分割したとき、区間の境を示す位置情報と各区間での出力データを各ブロックに対応するアドレスに格納することで、ルックアップテーブルに必要なメモリ容量を削減することができる。
好ましくは、ブロック内が最大２区間となるようにブロックを分割する。また、入力データを変化させると対応する出力データが大きく変化する場合、ブロックに含まれる入力データを少なくし、入力データを変化させても対応する出力データがほとんど変化しない場合は、ブロックに含まれる出力データを多くするというように、出力データの変化する様子に合わせてブロックを決定することでより一層のメモリ容量を削減できる。また、出力データの差分が一定であれば、更にメモリ容量を削減することができる。また、各区間での出力データのうちいずれかを代表情報とし、残りを相対情報としたとき、相対情報と代表情報の差分が相対情報に必要なビット数より少なくて済む場合更にメモリ容量を削減することができる。
さらに、上記の対応情報格納部５を含むルックアップテーブルに入力データを与えたとき、入力データの属するブロックと区間を特定することにより、その区間での出力データが、その入力データに対応する出力データとして得られる。この出力データは、従来のルックアップテーブルを用いたときと同じ出力データである。従って従来例の精度を落とすことなく、メモリ容量を削減することが可能である。
【産業上の利用の可能性】
本発明のルックアップテーブルは、必要なメモリ容量を削減することで、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等に内蔵できるようになる。また、ＬＳＩへの内蔵により構成の異なるメモリを利用することができ、更に合計のメモリ容量を削減できる。出力データが周期的に変化する場合、複数の入力データに対して同じ値を出力する場合、あるいは出力データの変化の度合いが区間により異なる場合等に本発明の適用が有効である。例えば、入力データに対応する関数値を求める場合であり、特に正弦関数、余弦関数や他の周期関数等に適用すると効果的である。具体的には、信号処理の分野におけるフーリエ変換、高速フーリエ変換等への適用がある。
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図１】
2005013105.tif 000003
【図２】
2005013105.tif 000004
【図３】
2005013105.tif 000005
【図４】
2005013105.tif 000006
【図５】
2005013105.tif 000007
【図６】
2005013105.tif 000008
【図７】
2005013105.tif 000009
【図８】
2005013105.tif 000010
【図９】
2005013105.tif 000011
【図１０】
2005013105.tif 000012
【図１１】
2005013105.tif 000013
【図１２】
2005013105.tif 000014
【図１３】
2005013105.tif 000015
【図１４】
2005013105.tif 000016
【国際調査報告】
2005013105.tif 000017
2005013105.tif 000018
2005013105.tif 000019
2005013105.tif 000020