(57)【要約】  【課題】入力データが１クロック毎に変化する場合であっても、その回路規模や消費電力の増加を極力削減することができる線形補間回路を提供する。  【解決手段】線形補間処理を行う時同時に必要となる複数の出力代表データがそれぞれ別々のグループとなるように、全ての出力代表データが複数のグループに分割され、それぞれのグループに含まれる出力代表データがそれぞれのルックアップテーブルに記憶されている。このルックアップテーブルから出力される、入力データに対応する複数の出力代表データに基づいて線形補間処理を行い、入力データに対応する出力データを算出する。【選択図】図１
2005063089.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対応する複数の出力データの代表値に基づいて線形補間処理を行い、前記入力データに対応する出力データを算出する線形補間回路であって、
前記入力データが入力され、それぞれ前記入力データに対応する複数の出力データの代表値を指定するためのアドレスを生成する複数のアドレス生成部と、それぞれ対応する前記アドレス生成部から入力されるアドレスに対応するワードに記憶されている出力データの代表値を出力する複数のルックアップテーブルと、それぞれ対応する前記ルックアップテーブルから入力される出力データの代表値を保持する複数のデータ保持部と、前記複数のデータ保持部から出力される出力データの代表値を所定の順序に配列し直して出力するデータ選択部と、前記データ選択部から入力される複数の出力データの代表値に基づいて線形補間処理を行い、前記入力データに対応する出力データを出力する線形補間部とを備え、
前記線形補間処理を行う時同時に必要となる複数の出力データの代表値がそれぞれ別々のグループとなるように、全ての出力データの代表値が複数のグループに分割され、それぞれの前記グループに含まれる出力データの代表値がそれぞれの前記ルックアップテーブルに記憶されていることを特徴とする線形補間回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データに対応する複数の出力データの代表値（以下、出力代表データという）に基づいて線形補間処理を行い、入力データに対応する出力データを算出する線形補間回路に関するものである。
【背景技術】
【０００２】
図３は、従来の線形補間回路の一例の構成概略図である。同図に示す線形補間回路３０は、０〜２５５までの２５６個の入力データについて、それぞれの入力データに対応する２つの出力代表データに基づいて線形補間処理を行い、入力データに対応する出力データを算出するものであり、２つのアドレス生成部Ａ１、Ａ２と、セレクタＳＥＬ１と、ルックアップテーブルＬＵＴと、セレクタＳＥＬ２と、２つのデータ保持部Ｄ１、Ｄ２と、線形補間部１４とを備えている。
【０００３】
ここで、ルックアップテーブルＬＵＴのサイズは１７ワード（１７Ｗ）であり、それぞれのワード０〜１６はアドレス０〜１６によって指定される。また、ルックアップテーブルＬＵＴのワード０には、出力代表データ、すなわち入力データの代表値（以下、入力代表データという）に対応する出力データとして、入力データが０の場合の出力データが記憶され、以下、１６個の入力データ毎に、ワード１には入力データが１６の場合の出力データ、ワード２には入力データが３２の場合の出力データ、…、ワード１６には入力データが２５６（または２５５）の場合の出力データが記憶されている。
【０００４】
例えば、入力データが２０の場合に、この入力データに対応する出力データを算出する場合を例に挙げて線形補間回路３０の動作を説明する。
【０００５】
入力データとして２０が入力されると、アドレス生成部Ａ１、Ａ２により、入力データ２０の前後の値を持つ入力代表データ１６、３２に対応する出力代表データが記憶されているルックアップテーブルＬＵＴのワード１、２を指定するためのアドレス１、２がそれぞれ生成される。
【０００６】
続いて、まず、アドレス生成部Ａ１によって生成されたアドレス１がセレクタＳＥＬ１を介してルックアップテーブルＬＵＴに入力される。これにより、ルックアップテーブルＬＵＴからは、アドレス１によって指定されるワード１に記憶されている出力代表データ（すなわち、入力代表データ１６に対応する出力データ）が出力され、セレクタＳＥＬ２を介してデータ保持部Ｄ１に保持される。
【０００７】
続いて、アドレス生成部Ａ２によって生成されたアドレス２がセレクタＳＥＬ１を介してルックアップテーブルＬＵＴに入力される。これにより、ルックアップテーブルＬＵＴからは、アドレス２によって指定されるワード２に記憶されている出力代表データ（すなわち、入力代表データ３２に対応する出力データ）が出力され、セレクタＳＥＬ２を介してデータ保持部Ｄ２に保持される。
【０００８】
その後、線形補間部１４において、データ保持部Ｄ１、Ｄ２から入力される、入力代表データ１６、３２に対応する出力代表データに基づいて、例えば演算式（Ｄ１＋Ｄ２）×（２０−１６）／１６により一次線形補間処理が行われ、入力データ２０に対応する出力データが算出される。なお、上記演算式において、Ｄ１、Ｄ２は、それぞれデータ保持部Ｄ１、Ｄ２から線形補間部１４に入力される、入力代表データ１６、３２に対応する出力代表データの値である。
【０００９】
上記のように、線形補間回路３０では、アドレス生成部Ａ１、Ａ２によって生成されるアドレス１、２が時分割で使用されるため、入力データが線形補間中に変化しないことが前提となっている。しかし、ルックアップテーブルＬＵＴは一般的にＲＯＭ（リードオンリーメモリ）で構成されるため、入力データが１クロック毎に変化する場合、ルックアップテーブルＬＵＴへのアクセスは１クロックに一度となり、線形補間回路３０の場合、１クロックでは、線形補間処理に必要な２つの出力代表データを取得することができないという問題がある。
【００１０】
これに対し、例えば特許文献１の演算装置のように、入力データが変化するクロックの２倍の周波数を持つ内部クロックで線形補間回路３０を動作させることにより、上記問題を解決することができる。
【００１１】
特許文献１の演算装置は、補間処理を行うための微分係数と近似値とが互いに異なったアドレスに格納されたルックアップテーブル用メモリと、このルックアップテーブル用メモリから微分係数と近似値を読み出して補間処理を行う半導体集積回路装置とからなる演算装置において、半導体集積回路装置の内部に、１回の補間処理の期間内でルックアップテーブル用メモリに対する読み出しアドレスを順次切り替えて微分係数と近似値を時分割的に読み出すためのアドレス制御手段を設けたものである。
【００１２】
しかし、この手法では、高速動作が要求される場合、クロックの２倍の周波数を持つ内部クロックで線形補間回路３０を動作させるのは、クロックの周波数が高くなるに従って困難になるという問題点がある。
【００１３】
また、例えばルックアップテーブルＬＵＴとしてデュアルポートメモリを使用すれば、１クロックで２つのデータを同時にアクセスすることが可能であるため、１クロックで線形補間処理に必要な２つの出力代表データを取得することができる。
【００１４】
しかし、デュアルポートメモリは、一般にシングルポートメモリの１．５〜２倍の物理サイズがあるので面積的なデメリットは避けられないという問題点がある。また、多次元の線形補間処理を行う場合、４ポートや８ポート等のメモリが必要になるが、デュアルポートメモリ以上の多ポートメモリは一般には存在しないし、仮に存在しているとしても、同様に面積的なデメリットがあるという問題点がある。
【００１５】
この他、従来の線形補間回路では、以下の２つの対応策も考えられている。（１）図４に示すように、線形補間処理を行わず、ルックアップテーブルＬＵＴから出力される出力代表データをそのまま使用する。（２）図５に示すように、精度を保つために、全く同じ出力代表データが記憶された複数（ｎ個）のルックアップテーブルＬＵＴを使用して線形補間処理を行う。なお、全く同じ出力代表データが記憶された複数のルックアップテーブルＬＵＴを使用する場合、セレクタＳＥＬ１、ＳＥＬ２は不要である。
【００１６】
（１）の対応策において、ルックアップテーブルＬＵＴのサイズを変えない場合、例えば１７ワードのルックアップテーブルＬＵＴのワード０には、出力代表データとして、入力データが０〜７の場合の出力データが記憶され、以下、１６個の入力データ毎に、ワード１には入力データが８〜２４の場合の出力データ、ワード２には入力データが２５〜４０の場合の出力データ、…、ワード１６には入力データが２４８以上の場合の出力データが記憶される。なお、各ワードに記憶される出力代表データの割り当てには他の割り当て方法もある。
【００１７】
しかし、この手法では、線形補間処理が行われないため、線形補間処理を行う場合と比べて、入力データに対応する出力データの精度が落ちるという問題がある。
【００１８】
これに対し、精度を保つためにルックアップテーブルＬＵＴのサイズを大きくする場合もある。例えば、１２８ワード（１２８Ｗ）のルックアップテーブルＬＵＴを使用する場合、そのワード０には、出力代表データとして、入力データが０〜１の場合の出力データが記憶され、以下、２個の入力データ毎に、ワード１には入力データが２〜３の場合の出力データ、ワード２には入力データが４〜５の場合の出力データ、…、ワード１２７には入力データが２５４〜２５５の場合の出力データが記憶される。なお、各ワードに記憶される出力代表データの割り当てには他の割り当て方法もある。
【００１９】
しかし、この手法では、ルックアップテーブルＬＵＴのサイズが大きくなるため、回路規模が大きくなり、その分消費電力も増大するという問題点がある。
【００２０】
一方、（２）の対応策において、例えば２つのルックアップテーブルＬＵＴを使用した場合、図６に示すように、全く同じ出力代表データが記憶された２つのルックアップテーブルＬＵＴ１、ＬＵＴ２が使用される。この場合、セレクタＳＥＬ１、ＳＥＬ２は不要となり、アドレス生成部Ａ１、Ａ２によって生成されるアドレスは、それぞれ対応するルックアップテーブルＬＵＴ１、ＬＵＴ２に直接入力され、それぞれのルックアップテーブルＬＵＴ１、ＬＵＴ２から出力される出力代表データは、それぞれ対応するデータ保持部Ｄ１、Ｄ２に保持される。
【００２１】
しかし、この手法においても、同一内容のルックアップテーブルＬＵＴを複数使用するため、回路規模が大きくなり、その消費電力も増大するという問題点がある。また、多次元の線形補間処理を行う場合には、さらにルックアップテーブルＬＵＴの個数が４個、８個、１６個、…  というように増加する。
【００２２】
【特許文献１】特開平６−１７５８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
本発明の目的は、前記従来技術に基づく問題点を解消し、入力データが１クロック毎に変化する場合であっても、その回路規模や消費電力の増加を極力削減することができる線形補間回路を提供することにある。
【課題を解決するための手段】
【００２４】
上記目的を達成するために、本発明は、入力データに対応する複数の出力データの代表値に基づいて線形補間処理を行い、前記入力データに対応する出力データを算出する線形補間回路であって、
前記入力データが入力され、それぞれ前記入力データに対応する複数の出力データの代表値を指定するためのアドレスを生成する複数のアドレス生成部と、それぞれ対応する前記アドレス生成部から入力されるアドレスに対応するワードに記憶されている出力データの代表値を出力する複数のルックアップテーブルと、それぞれ対応する前記ルックアップテーブルから入力される出力データの代表値を保持する複数のデータ保持部と、前記複数のデータ保持部から出力される出力データの代表値を所定の順序に配列し直して出力するデータ選択部と、前記データ選択部から入力される複数の出力データの代表値に基づいて線形補間処理を行い、前記入力データに対応する出力データを出力する線形補間部とを備え、
前記線形補間処理を行う時同時に必要となる複数の出力データの代表値がそれぞれ別々のグループとなるように、全ての出力データの代表値が複数のグループに分割され、それぞれの前記グループに含まれる出力データの代表値がそれぞれの前記ルックアップテーブルに記憶されていることを特徴とする線形補間回路を提供するものである。
【発明の効果】
【００２５】
本発明の線形補間回路では、ルックアップテーブルが複数に分割され、線形補間処理する時同時に必要となる複数の出力代表データがそれぞれ異なるルックアップテーブルに記憶されているため、入力データが１クロック毎に変化する場合であっても、線形補間処理する時同時に必要となる複数の出力代表データを１クロックで同時に得ることができる。ここで、本発明の線形補間回路で使用される全てのルックアップテーブルが必要とするワード数は従来の線形補間回路で使用されるルックアップテーブルの場合と同じなので、本発明の線形補間回路によれば、その回路規模および消費電力の増加を極力削減することができる。
【発明を実施するための最良の形態】
【００２６】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の線形補間回路を詳細に説明する。
【００２７】
図１は、本発明の線形補間回路の構成概略図である。同図に示す線形補間回路１０は、入力データに対応するｎ個（ｎは２以上の整数）の出力代表データに基づいて線形補間処理を行い、入力データに対応する出力データを算出するものであり、ｎ個のアドレス生成部Ａ１、Ａ２、…、Ａｎと、ｎ個のルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）と、ｎ個のデータ保持部ＮＤ１、ＮＤ２、…、ＮＤｎと、データ選択部１２と、線形補間部１４とを備えている。
【００２８】
入力データは、ｎ個のアドレス生成部Ａ１、Ａ２、…、Ａｎに入力される。アドレス生成部Ａ１、Ａ２、…、Ａｎは、それぞれの入力データに対応するｎ個の出力代表データを指定するための、ルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）のアドレスを生成する。アドレス生成部Ａ１、Ａ２、…、Ａｎによって生成されるアドレスは、それぞれ対応するルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）に入力される。
【００２９】
線形補間処理を行う時同時に必要となるｎ個の出力代表データがそれぞれ別々のグループとなるように、従来１つのルックアップテーブルＬＵＴに記憶されていた全ての出力代表データがｎ個のグループに分割され、それぞれのグループに含まれる出力代表データがそれぞれのルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）にあらかじめ記憶されている。ルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）からは、それぞれアドレス生成部Ａ１、Ａ２、…、Ａｎから入力されるアドレスによって指定されるワードに記憶されている出力代表データが出力され、それぞれ対応するデータ保持部ＮＤ１、ＮＤ２、…、ＮＤｎに入力される。
【００３０】
データ保持部ＮＤ１、ＮＤ２、…、ＮＤｎは、それぞれのルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）から入力される出力代表データを保持する。データ保持部ＮＤ１、ＮＤ２、…、ＮＤｎから出力される出力代表データは全てデータ選択部１２に入力される。
【００３１】
線形補間回路１０では、ルックアップテーブルがｎ個に分割されているため、その分割の仕方によっては、それぞれのルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）から出力される出力代表データの値の大小関係が前後する場合がある。データ選択部１２は、データ保持部ＮＤ１、ＮＤ２、…、ＮＤｎから出力される出力代表データを所定の順序、すなわち線形補間部１４が期待する順序（出力代表データの値の昇順または降順）に配列し直して出力する。データ選択部１２から出力されるｎ個の出力代表データＤ１、Ｄ２、…、Ｄｎは線形補間部１４に入力される。
【００３２】
線形補間部１４は、データ選択部１２から入力されるｎ個の出力代表データＤ１、Ｄ２、…、Ｄｎに基づいて線形補間処理を行う。その結果、線形補間部１４からは、入力データに対応する出力データが出力される。
【００３３】
この線形補間回路１０では、ルックアップテーブルＬＵＴが複数に分割され、線形補間処理する時同時に必要となる複数の出力代表データがそれぞれ異なるルックアップテーブルに記憶されているため、入力データが１クロック毎に変化する場合であっても、線形補間処理する時同時に必要となる複数の出力代表データを１クロックで同時に得ることができる。また、全てのルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）、…、ＬＵＴ（Ｐｎ）で必要となるワード数は、従来の線形補間回路３０で使用されるルックアップテーブルＬＵＴの場合と同じなので、その回路規模および消費電力の増加を極力削減することができる。
【００３４】
なお、ルックアップテーブルＬＵＴの分割数は２以上であり、線形補間処理を行う場合に同時に必要とする出力代表データの個数に応じて適宜設定すればよい。例えば、１次元線形補間処理の場合に使用する出力代表データの個数は２個に限定されず、２個以上何個使用してもよい。また、１次元の線形補間処理だけでなく、２次元以上の多次元の線形補間処理の場合も同様である。アドレス生成部Ａおよびデータ保持部ＮＤは、ルックアップテーブルの分割数と同数のものが必要となる。
【００３５】
以下、ルックアップテーブルを２つに分割した場合を例に挙げて説明する。
【００３６】
図２は、図１に示す線形補間回路１０において、ルックアップテーブルを２分割とした場合の構成概略図である。同図に示す線形補間回路２０は、図３に示す従来の線形補間回路３０に本発明を適用し、０〜２５５までの２５６個の入力データについて、それぞれの入力データに対応する２つの出力代表データに基づいて線形補間処理を行い、入力データに対応する出力データを算出するものである。なお、線形補間回路２０の各構成要素は、図１に示す線形補間回路１０の各構成要素と同じものであるから、ここでは同一の構成要素に同一の符号を付して、その説明は省略する。
【００３７】
下記表１は、図２に示す本実施形態の線形補間回路２０のルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）および図３に示す従来の線形補間回路３０のルックアップテーブルＬＵＴにおけるアドレスの対応関係を表す表である。
【００３８】
【表１】
2005063089.tif 000003
【００３９】
図２に示す線形補間回路２０において、ルックアップテーブルＬＵＴ（Ｐ１）には、上記表１に示すように、図３に示す従来の線形補間回路３０で使用されているルックアップテーブルＬＵＴの偶数アドレス０、２、４、…、１６のワードに記憶されている９ワード分の出力代表データが、それぞれアドレス０〜８によって指定されるワード０〜８に記憶されている。
【００４０】
また、ルックアップテーブルＬＵＴ（Ｐ２）には、上記表１に示すように、図３に示す従来の線形補間回路３０で使用されているルックアップテーブルＬＵＴの奇数アドレス１、３、５、…、１５のワードに記憶されている８ワード分の出力代表データが、それぞれアドレス０〜７によって指定されるワード０〜７に記憶されている。
【００４１】
すなわち、ルックアップテーブルＬＵＴ（Ｐ１）のアドレス０には、入力代表データに対応する出力代表データとして、入力データが０の場合の出力データが記憶され、以下、３２個の入力データ毎に、ワード１には入力データが３２の場合の出力データ、ワード２には入力データが６４の場合の出力データ、…、ワード８には入力データが２５６（または２５５）の場合の出力データが記憶されている。
【００４２】
また、ルックアップテーブルＬＵＴ（Ｐ２）のアドレス０には、入力代表データに対応する出力代表データとして、入力データが１６の場合の出力データが記憶され、以下、３２個の入力データ毎に、ワード１には入力データが４８の場合の出力データ、ワード２には入力データが８０の場合の出力データ、…、ワード７には入力データが２４０の場合の出力データが記憶されている。
【００４３】
同様に、入力データ２０に対応する出力データを算出する場合を例に挙げて線形補間回路２０の動作を説明する。
【００４４】
入力データとして２０が入力されると、アドレス生成部Ａ１、Ａ２により、入力データ２０の前後の値を持つ入力代表データ１６、３２に対応する出力データが記憶されているルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）のワード１、０を指定するためのアドレス１、０がそれぞれ生成される。
【００４５】
続いて、アドレス生成部Ａ１、Ａ２によって生成されたアドレス１、０がそれぞれのルックアップテーブルＬＵＴ（Ｐ１）、ＬＵＴ（Ｐ２）に入力される。これにより、ルックアップテーブルＬＵＴ（Ｐ１）からは、そのアドレス１によって指定されるワード１に記憶されている入力代表データ３２に対応する出力データが出力され、データ保持部ＮＤ１に保持される。また、ルックアップテーブルＬＵＴ（Ｐ２）からは、そのアドレス０によって指定されるワード０に記憶されている入力代表データ１６に対応する出力データが出力され、データ保持部ＮＤ２に保持される。
【００４６】
線形補間部１４は、図３に示す線形補間部１４と同じものであり、出力代表データが昇順（Ｄ１＜Ｄ２）で入力されることを期待している。これに応じて、データ選択部１２からは、データ保持部ＮＤ１から入力された入力代表データ３２に対応する出力データがＤ２として出力され、かつデータ保持部ＮＤ２から入力された入力代表データ１６に対応する出力データがＤ１として出力される。
【００４７】
その後、線形補間部１４において、データ選択部１２から入力された入力代表データ１６、３２に対応する出力データＤ１、Ｄ２に基づいて、例えば演算式（Ｄ１＋Ｄ２）×（２０−１６）／１６により一次線形補間処理が行われ、その結果、入力データ２０に対応する出力データが算出される。
【００４８】
本発明は、基本的に以上のようなものである。
以上、本発明の線形補間回路について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【図面の簡単な説明】
【００４９】
【図１】本発明の線形補間回路の構成概略図である。
【図２】図１に示す線形補間回路において、ルックアップテーブルを２分割とした場合の構成概略図である。
【図３】従来の線形補間回路の一例の構成概略図である。
【図４】従来の線形補間回路の別の例の構成概略図である。
【図５】従来の線形補間回路のさらに別の例の構成概略図である。
【図６】図５に示す線形補間回路において、ルックアップテーブルを２つとした場合の構成概略図である。
【符号の説明】
【００５０】
１０、２０、３０  線形補間回路
１２  データ選択部
１４  線形補間部
Ａ  アドレス生成部
ＳＥＬ  セレクタ
ＬＵＴ  ルックアップテーブル
ＮＤ、Ｄ  データ保持部
【図１】
2005063089.tif 000004
【図２】
2005063089.tif 000005
【図３】
2005063089.tif 000006
【図４】
2005063089.tif 000007
【図５】
2005063089.tif 000008
【図６】
2005063089.tif 000009