(57)【特許請求の範囲】
【請求項１】
２つの補間対象値ＡおよびＢと、補間割合α（但し、０≦α≦１）と、に基づいて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる式で示される線形補間値Ｃを求める演算を行う線形補間演算器であって、
最上位ビット側から順に、ａｎ−１，ａｎ−２，…，ａ１，ａ０なるビットを有する合計ｎビットのデジタルデータとして補間対象値Ａを入力する第１の補間対象値入力手段と、
最上位ビット側から順に、ｂｎ−１，ｂｎ−２，…，ｂ１，ｂ０なるビットを有する合計ｎビットのデジタルデータとして補間対象値Ｂを入力する第２の補間対象値入力手段と、
最上位ビット側から順に、ｄｎ−１，ｄｎ−２，…，ｄ１，ｄ０なるビットを有する合計ｎビットのデジタルデータとして、前記補間割合αとの間に「α＝Ｄ／（２ｎ−１）」なる関係をもつ補間割合決定値Ｄを入力する補間割合決定値入力手段と、
演算式  Ｃ＝（Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＋ｅｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ａｉ２ｉ＋（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ｂｉ２ｉ  （但し、ｅｉはｄｉの論理反転ビット）に基づく演算を行うことにより、最上位ビット側から順に、整数部を構成するｃ2ｎ−１，ｃ2ｎ−２，…，ｃｎ＋１，ｃｎなる合計ｎビットと、小数部を構成するｃｎ−１，ｃｎ−２，…，ｃ１，ｃ０なる合計ｎビットと、によって構成される合計２ｎビットのデジタルデータを生成する演算手段と、
「最上位ビット側から順に前記各ビットｃ2ｎ−1，ｃ2ｎ−２，ｃ2ｎ−３，…，ｃ１，ｃ０を羅列してなる合計２ｎビットのデジタルデータ」もしくは「当該２ｎビットのデジタルデータのうち必要な有効桁数に相当するデジタルデータ」を、線形補間値Ｃを示すデジタルデータとして出力する演算値出力手段と、
を備え、
前記演算手段が、
補間割合決定値Ｄを示すデジタルデータの所定のビットの論理値に基づいて、ビットａｉもしくはｂｉ（但し、ｉ＝０，１，２，…，（ｎ−１））のいずれかを選択して出力するセレクタと、
ビットａｉもしくはｂｉ（但し、ｉ＝０，１，２，…，（ｎ−１））、前記セレクタの出力値、もしくは他のカウンタの出力値を入力し、入力した値の加算結果を出力するカウンタと、
によって構成されていることを特徴とする線形補間演算器。
【請求項２】
請求項１に記載の線形補間演算器において、
演算手段が、線形補間値Ｃの２（ｎ−ｉ−２）の桁の値を示すビットｃ２ｎ−ｉ−２（但し、ｉ＝０，１，２，…，２（ｎ−１））を演算するために、各桁の係数および下位桁からの繰り上がりを示すキャリーをすべて加算し、和を当該ビットｃ２ｎ−ｉ−２の値として出力し、繰り上がりをキャリーとして上位桁へと出力する（２ｎ−１）個の演算部を有し、ビットｃ２ｎ−２の演算を行う演算部からのキャリーを、ビットｃ２ｎ−１の値として出力することを特徴とする線形補間演算器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、線形補間演算器に関し、特に、高い精度をもった線形補間値を演算することが可能な簡潔なハードウエア回路の実現技術に関する。
【背景技術】
【０００２】
２つの値の中間的な値を補間によって求める方法として、線形補間は最も代表的な方法である。最近では、特に、画像処理の手法として、この線形補間が盛んに利用されている。たとえば、一般に「αブレンド」と呼ばれている画像合成の手法は、画像Ａと画像Ｂとを、α：（１−α）の比率（但し、０≦α≦１）で合成する手法であり、画像Ａの画素値と画像Ｂの画素値との中間的な値を線形補間して求める処理が行われる。また、任意の倍率で画像の拡大や縮小を行う場合にも、線形補間が利用されている。
【０００３】
線形補間の基本原理は、２つの補間対象値ＡおよびＢと、補間割合αに基づいて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる式（＊は乗算を示す記号である）で示される線形補間値Ｃを求める演算を行うことにある。この式に基づく演算をデジタル演算器を用いて実行する場合、Ａ，Ｂ，Ｃ，αはいずれもデジタルデータとして取り扱われ、有限の桁をもったビット列として定義される。下記の特許文献１，２には、このような「αブレンド」の演算を行う演算器が開示されている。
【特許文献１】米国特許第５５１７４３７号公報
【特許文献２】特開平７−２００８６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来から提案されている線形補間演算器では、演算の精度と回路の簡潔性とを同時に満足することが困難であり、いずれかを犠牲にせざるを得ない。たとえば、前掲の特許文献１に開示されている線形補間演算器では、回路構成は比較的簡潔になるが、演算結果として近似値が得られることになり、また、α＝１の場合の演算結果を得ることができない。このため、α＝１の場合の演算結果までも正しく得ることができるようにするためには、補間割合αの入力値が１であるか否かを監視するための比較器を設け、α＝１であった場合には、入力値Ｂをそのまま出力するような余分な回路を設ける必要があり、回路構成は複雑にならざるを得ない。
【０００５】
一方、前掲の特許文献２に開示されている線形補間演算器では、精度の高い演算結果を得ることができるが、そのために除算を行う構成となっており、回路構成は複雑にならざるを得ない。
【０００６】
近年では、画像を何枚も合成するような処理が行われることも少なくない。このため、常に精度の高い演算結果が得られる線形補間演算器が望まれている。一方で、回路の小型化および低コスト化の要求もあり、できるだけ簡潔な回路構成をもった線形補間演算器が望まれている。
【０００７】
そこで本発明は、２つの補間対象値についての線形補間値を高い精度で求めることができ、しかも簡潔な回路構成をもった線形補間演算器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
(1)   本発明の第１の態様は、２つの補間対象値ＡおよびＢと、補間割合α（但し、０≦α≦１）と、に基づいて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる式で示される線形補間値Ｃを求める演算を行う線形補間演算器において、
最上位ビット側から順に、ａｎ−１，ａｎ−２，…，ａ１，ａ０なるビットを有する合計ｎビットのデジタルデータとして補間対象値Ａを入力する第１の補間対象値入力手段と、
最上位ビット側から順に、ｂｎ−１，ｂｎ−２，…，ｂ１，ｂ０なるビットを有する合計ｎビットのデジタルデータとして補間対象値Ｂを入力する第２の補間対象値入力手段と、
最上位ビット側から順に、ｄｎ−１，ｄｎ−２，…，ｄ１，ｄ０なるビットを有する合計ｎビットのデジタルデータとして、補間割合αとの間に「α＝Ｄ／（２ｎ−１）」なる関係をもつ補間割合決定値Ｄを入力する補間割合決定値入力手段と、
演算式  Ｃ＝（Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＋ｅｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ａｉ２ｉ＋（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ｂｉ２ｉ  （但し、ｅｉはｄｉの論理反転ビット）に基づく演算を行うことにより、最上位ビット側から順に、整数部を構成するｃ2ｎ−１，ｃ2ｎ−２，…，ｃｎ＋１，ｃｎなる合計ｎビットと、小数部を構成するｃｎ−１，ｃｎ−２，…，ｃ１，ｃ０なる合計ｎビットと、によって構成される合計２ｎビットのデジタルデータを生成する演算手段と、
「最上位ビット側から順に各ビットｃ2ｎ−1，ｃ2ｎ−２，ｃ2ｎ−３，…，ｃ１，ｃ０を羅列してなる合計２ｎビットのデジタルデータ」もしくは「当該２ｎビットのデジタルデータのうち必要な有効桁数に相当するデジタルデータ」を、線形補間値Ｃを示すデジタルデータとして出力する演算値出力手段と、
を設け、
演算手段を、
補間割合決定値Ｄを示すデジタルデータの所定のビットの論理値に基づいて、ビットａｉもしくはｂｉ（但し、ｉ＝０，１，２，…，（ｎ−１））のいずれかを選択して出力するセレクタと、
ビットａｉもしくはｂｉ（但し、ｉ＝０，１，２，…，（ｎ−１））、セレクタの出力値、もしくは他のカウンタの出力値を入力し、入力した値の加算結果を出力するカウンタと、
によって構成したものである。
【００１０】
(2)   本発明の第２の態様は、上述の第１の態様に係る線形補間演算器において、
演算手段を、
線形補間値Ｃの２（ｎ−ｉ−２）の桁の値を示すビットｃ２ｎ−ｉ−２（但し、ｉ＝０，１，２，…，２（ｎ−１））を演算するために、各桁の係数および下位桁からの繰り上がりを示すキャリーをすべて加算し、和を当該ビットｃ２ｎ−ｉ−２の値として出力し、繰り上がりをキャリーとして上位桁へと出力する（２ｎ−１）個の演算部によって構成し、ビットｃ２ｎ−２の演算を行う演算部からのキャリーを、ビットｃ２ｎ−１の値として出力するようにしたものである。
【発明の効果】
【００１５】
本発明に係る線形補間演算器は、除算を加算に置き換えることにより得られる特有の演算式に対応した回路構成を有するため、簡潔な回路構成でありながら、高い精度をもった線形補間値を得ることが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を図示する実施形態に基づいて説明する。
【００１７】
＜＜＜  §１．線形補間の基本概念  ＞＞＞
はじめに、一般的な線形補間の基本概念を簡単に説明しておく。図１は、線形補間演算の基本概念を示すグラフである。図示の例は、ｘ軸上に区間０〜１が設定されており、その両端点においてのみ関数ｆ（ｘ）の値が定義されている場合に、区間０〜１内の任意の位置αにおける関数値を線形補間により求める方法を示している。具体的には、ｆ（０）＝Ａ、ｆ（１）＝Ｂである場合に、０≦α≦１の範囲内にある任意のαについての関数値ｆ（α）＝Ｃの値を、数値Ａ，Ｂを用いた補間演算により求めることになる。
【００１８】
線形補間では、図示のとおり、点Ａと点Ｂとの間に直線を定義し、この直線上にある点Ｃの縦座標値として、Ｃの値を求めることになる。ここで、任意の点αの位置を、「区間０〜１を『α：（１−α）』の比で分割する位置」と定義し、αを補間割合と呼ぶことにすると、求める線形補間値Ｃは、２つの補間対象値Ａ，Ｂと補間割合αとを用いて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる基本式で表わされる演算により求めることができる（＊は乗算を示す記号である）。
【００１９】
たとえば、Ａ＝１０，Ｂ＝２０，α＝０．４という具体的な数値が与えられた場合、上記基本式に基づいて、Ｃ＝（１−０．４）＊１０＋（０．４＊２０）なる演算を行うことにより、Ｃ＝１４という補間値が求まることになる。このような補間演算は、一般に「αブレンド」と呼ばれている。
【００２０】
以上、数学的な基本概念を説明したが、実際には、このような線形補間演算を行う演算器を電子回路で構成する場合、個々の値を有限長のビット列からなるデジタルデータとして取り扱う必要がある。そのために、演算の精度と回路の簡潔性とを同時に満足することが困難になるという問題があることは既に述べたとおりである。
【００２１】
補間割合αは、０≦α≦１の範囲内の数なので、たとえば、ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０なる８ビットのビット列で示されるデジタル値Ｄを用いて、α＝０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０のような形で定義したとしよう（ここで、ｄ７，ｄ６，…は、１または０をとる１ビットのデータである）。同様に、補間対象値Ａを「ａ７ａ６ａ５ａ４ａ３ａ２ａ１ａ０」なる８ビットのビット列で表わし、補間対象値Ｂを「ｂ７ｂ６ｂ５ｂ４ｂ３ｂ２ｂ１ｂ０」なる８ビットのビット列で表わせば、上述した基本式Ｃ＝（１−α）＊Ａ＋α＊Ｂに基づく演算は、基本的にビット同士の加算の繰り返しによって行うことができ、比較的単純な回路で演算器を構成することができる。
【００２２】
しかしながら、α＝０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０のような形で定義した補間割合αは、数学的には正確な値にはなっていない。すなわち、デジタル値Ｄが最小値の０をとる場合は、各ビットがすべて０になるので、α＝０．００００００００になり、数学的に０になる。ところが、デジタル値Ｄが最大値の２５５をとる場合は、各ビットがすべて１になるので、α＝０．１１１１１１１１になり、これは十進表現した場合、約０．９９６１といった値になる。結局、補間割合αを、α＝０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０のような形で定義すれば、演算器の構成は単純になるが、０≦α≦約０．９９６１という範囲のαしか定義することができず、α＝１についての演算を行うことはできない。
【００２３】
このような問題に対処するため、補間割合αの入力値が１であるか否かを監視するための比較器を設け、α＝１であった場合には、入力値Ｂをそのまま出力する機能をもった演算器も利用されているが、比較器などの余分な回路を設ける必要があり、回路構成は複雑にならざるを得ない。また、あくまでも０≦α≦約０．９９６１という範囲内での補間になるため、得られた補間値は誤差を含むことになる。
【００２４】
そこで、より正確な補間を行うために、α＝Ｄ／２５５なる形で、補間割合αを定義する方法が提案されている。このような定義を行えば、デジタル値Ｄが最小値の０をとる場合は、α＝０／２５５＝０になり、デジタル値Ｄが最大値の２５５をとる場合は、α＝２５５／２５５＝１になる。したがって、０≦α≦１という範囲のαを定義することができ、α＝１の場合にも対応できるとともに、正確な補間値を得ることが可能になる。
【００２５】
しかしながら、α＝Ｄ／２５５なる形で補間割合αを定義するため、上述した基本式Ｃ＝（１−α）＊Ａ＋α＊Ｂに基づく演算は、Ｃ＝（１−（Ｄ／２５５））＊Ａ＋（Ｄ／２５５）＊Ｂという形になり、除算を含む複雑な形になってしまう。このような除算を含む式を実行するための演算器は、その回路構成が複雑にならざるを得ない。本発明の目的は、正確な演算が可能であり、しかも簡潔な回路構成で実現できる線形補間演算器を提供することにある。
【００２６】
＜＜＜  §２．本発明のユニークな着眼点  ＞＞＞
ここでは、便宜上、２つの補間対象値ＡおよびＢが８ビットのデジタルデータとして与えられ、補間割合αを決定するためのデジタル値Ｄ（以下、本願では、このデジタル値Ｄを「補間割合決定値」と呼ぶ）が８ビットのデジタルデータとして与えられ、これらのデジタルデータを用いて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる基本式に基づく演算を実行した結果、１６ビットのデジタルデータとして表現された線形補間値Ｃが求められる場合を例にとって説明する。ここで、線形補間値Ｃを構成する１６ビットのデータのうち、上位８ビットは整数部、下位８ビットは小数部になる。
【００２７】
図２は、このようにして、補間対象値Ａ，Ｂ、補間割合決定値Ｄ、線形補間値Ｃを定義するための式を示している。
この図２には、まず、（式１）として、
Ａ＝Σｉ＝０〜７ａｉ２ｉ
＝ａ０２０＋ａ１２１＋……＋ａ７２７
なる式が示されている（なお、本願特許請求の範囲および明細書本文では、電子出願の制約上、総和を示す算術演算子Σの下に記載すべきパラメータＸおよびΣの上に記載すべきパラメータＹを、ΣＸ〜Ｙのような下付き添字として記載することにする）。この（式１）におけるａ０，ａ１，…，ａ７は、数値Ａを８ビットからなる二進数として表現した場合の各ビット（０または１）であり、ａ０が最下位ビット（１番右側のビット）、ａ７が最上位ビット（１番左側のビット）である。
【００２８】
同様に、（式２）には、
Ｂ＝Σｉ＝０〜７ｂｉ２ｉ
＝ｂ０２０＋ｂ１２１＋……＋ｂ７２７
なる式が示されているが、この式におけるｂ０，ｂ１，…，ｂ７は、数値Ｂを８ビットからなる二進数として表現した場合の各ビットであり、ｂ０が最下位ビット、ｂ７が最上位ビットである。
【００２９】
また、（式３）には、
Ｄ＝Σｉ＝０〜７ｄｉ２ｉ
＝ｄ０２０＋ｄ１２１＋……＋ｄ７２７
なる式が示されているが、この式におけるｄ０，ｄ１，…，ｄ７は、数値Ｄを８ビットからなる二進数として表現した場合の各ビットであり、ｄ０が最下位ビット、ｄ７が最上位ビットである。
【００３０】
一方、（式４）には、
Ｃ＝Σｉ＝０〜１５ｃｉ２（ｉ−８）
＝ｃ０２−８＋ｃ１２−７＋……＋ｃ７２−１
＋ｃ８２０＋ｃ９２１＋……＋ｃ１５２７
なる式が示されているが、この式におけるｃ０，ｃ１，…，ｃ１５は、数値Ｃを１６ビットからなる二進数として表現した場合の各ビットであり、ｃ０が最下位ビット、ｃ１５が最上位ビットである。
【００３１】
数値Ａ，Ｂ，Ｄを、それぞれ８ビットのデジタルデータとして定義しているのに対して、数値Ｃを、その２倍の１６ビットのデジタルデータとして定義しているのは、数値Ｃが、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる基本式に基づく演算により得られる線形補間値であるためである。すなわち、上記基本式は、８ビットの精度で表わされる数値同士の乗算項を含んでいるため、その積は、１６ビットの数値として得られることになる。このため、最終的な演算結果としての数値Ｃを、１６ビットの数値として定義してある。ここで、この数値Ｃを構成する１６ビットのうち、下位８ビットに相当するｃ０〜ｃ７は小数部となり、上位８ビットに相当するｃ８〜ｃ１５は整数部となる。もっとも、実用上は、この１６ビットの数値Ｃのうち、所定の有効桁数（通常は、整数部の８桁）だけが、最終的な線形補間値Ｃとして出力されることになる。
【００３２】
最後の（式５）は、補間割合αと補間割合決定値Ｄとの関係を示す式である。すなわち、両者間には、「α＝（１／（２８−１））＊Ｄ＝（１／２５５）＊Ｄ」なる関係が成り立つ。数値Ｄは、８ビットのデジタルデータであるから、０〜２５５の範囲内の整数をとることになり、この数値Ｄを用いて、（式５）により数値αを定義すれば、０〜１の範囲内の値αを定義することができる。
【００３３】
図３は、図２に示す補間対象値Ａ，Ｂ、補間割合決定値Ｄ、線形補間値Ｃ、を二進数のビット列として表わした状態を示す図である。図２の各式にしたがって数値Ａ，Ｂ，Ｄ，Ｃをそれぞれ定義すれば、これらの各数値は、図３に示すようなビット列として表現されることになる。上述したとおり、数値Ａ，Ｂ，Ｄはそれぞれ８ビットのデータであるのに対し、数値Ｃは１６ビットのデータになり、上位８ビットｃ１５〜ｃ８が整数部、下位８ビットｃ７〜ｃ０が小数部となり、ビットｃ８とｃ７の間に小数点が位置することになる。
【００３４】
結局、これから設計しようとする線形補間演算器は、図３に示すような８ビットのデジタルデータとして与えられた補間対象値Ａ，Ｂと、補間割合決定値Ｄとに基づいて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる基本式に基づく演算を行い、１６ビットのデジタルデータとして線形補間値Ｃを算出する機能をもった演算器ということになる。
【００３５】
ここで問題となるのは、（式５）の演算式である。α＝（１／２５５）＊Ｄなる形で補間割合αを定義すると、０≦α≦１という必要な全範囲のαを定義することができるので、α＝１の場合にも対応でき、正確な補間値を得ることが可能になる。しかしながら、（Ｄ／２５５）という除算を行う必要があり、その回路構成は複雑にならざるを得ない。本発明の特徴は、この問題を、次のようなユニークな着眼点に基づいて解決した点にある。
【００３６】
まず、１／２５５なる値を二進数にしてみると、図４の（式６）に示すように、循環小数「０．０００００００１０００００００１０００００００１０００…」という形（７つの「０」を並べた後に「１」を並べる繰り返し）で表現されることがわかる。一方、補間割合αは、この循環小数に８ビットのデジタルデータＤ（ビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」で示される二進値）を乗算したものである。ところが、上記循環小数には、８桁ごとに「１」が現れるだけであり、この「１」とビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」との積は、ビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」それ自身ということになるので、結局、（１／２５５）＊Ｄなる積は、図４の（式７）に示すようなビット列で表現されることになる。すなわち、補間割合αは、小数点以下にビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」を繰り返し配置した二進の小数値として表現されることになる。
【００３７】
Ｄが最小値０の場合、ビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」は、「００００００００」になるので、αは小数点以下無限桁までビット「０」が続く二進数ということになり、これは０に等しい。一方、Ｄが最大値２５５の場合、ビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」は、「１１１１１１１１」になるので、αは小数点以下無限桁までビット「１」が続く二進数ということになり、これは数学的には１に限りなく等しい値である。
【００３８】
しかしながら、現実の演算器では、αの値を定義するのに、小数点以下無限桁まで演算を行うことはできないので、所定の桁でまるめる必要がある。そこで、図５の上段に示すように、補間割合αの値の小数点以下第９桁（２−９の桁）を０捨１入してまるめることにし、最終的に、小数点以下第８桁（２−８の桁）までの有効桁を有する近似値α′を求めることにする。ここで、近似値α′がどのようなビット列で表現されることになるかを、２−９の桁を「０捨」することになる場合と、「１入」することになる場合とに分けて考えてみよう。
【００３９】
まず、２−９の桁を「０捨」することになる場合を考える。図５の上段に示されているとおり、２−９の桁のビットはビット「ｄ７」であるから、この桁を「０捨」する場合というのは、「ｄ７＝０」の場合ということになる。この場合、２−９の桁は「０捨」されるので、図５の中段に示されているように、近似値α′は、「０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」という小数点以下第８桁（２−８の桁）までの有効桁を有する二進数ということになる。
【００４０】
次に、２−９の桁を「１入」することになる場合を考える。この場合は、ビット「ｄ７」の桁を「１入」することになるので、「ｄ７＝１」の場合ということになる。したがって、図５の下段に示されているように、近似値α′は、「０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」に、「０．０００００００１」という二進数を加算することによって得られる小数点以下第８桁（２−８の桁）までの有効桁を有する二進数ということになる。ここで、加算される「０．０００００００１」という値は、「１入」される２−９の桁から２−８の桁への繰り上がりである。
【００４１】
上記２通りの場合を考慮すると、結局、小数点以下第８桁（２−８の桁）までの有効桁を有する近似値α′は、図６の（式８）に示すとおり、
α′＝０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０
＋  ０．０００００００ｄ７
という式で表わすことができる。ビットｄ７が０の場合は、上式の「０．０００００００ｄ７」の部分は０になるから、上式は、結局、α′＝０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０となり、図５の中段の式のとおりである。一方、ビットｄ７が１の場合は、上式の「０．０００００００ｄ７」の部分は「０．０００００００１」になるから、上式は、結局、α′＝０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０＋０．０００００００１となり、図５の下段の式のとおりである。このように、（式８）による近似値α′の定義式は、図５に示す２とおりの場合の近似値α′の定義と等価である。
【００４２】
ところで、「０．ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」なる二進表現の小数値は、Σｊ＝０〜７ｄｊ２（ｊ−８）という式で表現することができ、「０．０００００００ｄ７」なる二進表現の小数値は、ｄ７２−８と表現することができるので、結局、（式８）によって示される近似値α′は、（式９）に示すとおり、
α′＝Σｊ＝０〜７ｄｊ２（ｊ−８）＋ｄ７２−８
という式で定義できる。
【００４３】
結局、８ビットのデジタルデータＤ（ビット列「ｄ７ｄ６ｄ５ｄ４ｄ３ｄ２ｄ１ｄ０」）を用いて、図２の（式５）によって
α＝（１／２５５）＊Ｄ
なる形で補間割合αを定義した場合、これをこのまま素直に演算すると、除算を行う必要が生じ、演算器として、除算回路を用意する必要が生じるが、補間割合αの近似値α′を、（式９）に示すとおり、
α′＝Σｊ＝０〜７ｄｊ２（ｊ−８）＋ｄ７２−８
という形式で定義して用いることにすれば、単なる加算によって近似値α′を求めることができるので、演算器として、加算回路を用意しておけば足りることになる。これが、本発明の最も重要な着眼点である。
【００４４】
したがって、本発明における線形補間は、補間割合決定値Ｄに基づいて決定される近似値α′を用いて、図７の上段に（式１０）として示されている式「Ｃ＝（１−α′）＊Ａ＋α′＊Ｂ」に基づく演算によって実施すればよい。
【００４５】
＜＜＜  §３．より効率的な演算器を構成するための式の変形  ＞＞＞
さて、図７の上段に示されている「（式１０）  Ｃ＝（１−α′）＊Ａ＋α′＊Ｂ」において、α′の部分に図６の（式９）を代入し、Ａの部分に図２の（式１）を代入し、Ｂの部分に図２の（式２）を代入すれば、図７の中段および下段に示されているように、「Ｃ＝［１−（Σｊ＝０〜７ｄｊ２（ｊ−８）＋ｄ７２−８）］＊Σｉ＝０〜７ａｉ２ｉ＋（Σｊ＝０〜７ｄｊ２（ｊ−８）＋ｄ７２−８）］＊Σｉ＝０〜７ｂｉ２ｉ」なる式が得られる。この式には、除算は含まれていないので、この式に基づいて演算器を構成すれば、少なくとも除算回路を設ける必要はない。
【００４６】
しかしながら、本願発明者は、上記（式１０）を更に適切な形に変形すれば、より効率的な演算器を設計できるようになるのではないかと考えた。そこで、補間演算器としての具体的な回路構成を念頭において、この（式１０）をどのような形に変形すれば、効率的な演算器を構成できるかを検討し、試行錯誤を行った結果、次に述べるような変形を行うことにより、極めて効率的な演算器を構成できることに想到した。
【００４７】
まず、図８の（式１１）を考える。この（式１１）自体は、数学的に古くから知られている公式である。たとえば、ｎ＝８の場合、（式１１）は（式１２）のようになる。この（式１２）を実際に展開して示すと、次のようになる。「２−８＋２−７＋２−６＋２−５＋２−４＋２−３＋２−２＋２−１＋２−８＝１／２５６＋１／１２８＋１／６４＋１／３２＋１／１６＋１／８＋１／４＋１／２＋１／２５６＝１」もちろん、この（式１１）は、任意のｎについて成立する公式である。
【００４８】
続いて、図７の（式１０）の中段に示されている［１−（Σｊ＝０〜７ｄｊ２（ｊ−８）＋ｄ７２−８）］の部分について、図９の（式１３）に示すような変形を考えよう。まず、（式１３）の１行目に記載されている「１」の部分を、図８の（式１２）の左辺に置き換えると、（式１３）の２行目が得られる。この２行目の式における第１項と第３項とをまとめ、第２項と第４項とをまとめると、３行目の式が得られる。
【００４９】
ところで、ｄｊは、補間割合決定値Ｄの各ビットであるから、実際の値としては、０または１のいずれかをとる。したがって、ｅｊ＝（１−ｄｊ）とおいた場合、ｅｊはｄｊの論理反転ビットということになる（ｄｊ＝１の場合、ｅｊ＝０となり、ｄｊ＝０の場合、ｅｊ＝１となる）。したがって、（式１３）の３行目の式は、ｄｊの論理反転ビットをｅｊと書くことにより、４行目の式のように変形されることになる。
【００５０】
さて、ここで、図７の（式１０）の中段に示す［１−（Σｊ＝０〜７ｄｊ２（ｊ−８）＋ｄ７２−８）］の部分を、図９の４行目に示す「Σｊ＝０〜７ｅｊ２（ｊ−８）＋ｅ７２−８」に置き換えてみると、図１０の上半分に示す（式１４）が得られる。この式を展開すると、図１０の下半分に示すように、丸数字１〜４で示す４つの項の和の形になる。具体的には、求める線形補間値Ｃは、次の４項の和を計算することにより求められる。
【００５１】
第１項：Σｊ＝０〜７ｅｊ２（ｊ−８）＊Σｉ＝０〜７ａｉ２ｉ
第２項：ｅ７２−８＊Σｉ＝０〜７ａｉ２ｉ
第３項：Σｊ＝０〜７ｄｊ２（ｊ−８）＊Σｉ＝０〜７ｂｉ２ｉ
第４項：ｄ７２−８＊Σｉ＝０〜７ｂｉ２ｉ
この（式１４）は、図７に（式１０）として示されている線形補間の基本式と等価であるが、この（式１４）の形は、補間演算器を設計する上で、極めて都合が良い形になっている。
【００５２】
＜＜＜  §４．本発明に係る演算式の特徴  ＞＞＞
図１０に示す（式１４）の第１の特徴は、もともと図２の（式５）に示されているように、「α＝（１／２５５）＊Ｄ」という式を用いて、線形割合決定値Ｄと線形割合αとの関係を定義しているので、０≦α≦１という範囲のαを定義することができ、α＝１の場合にも対応できるとともに（厳密に言えば、α＝１ではなく、§２で述べたとおり、１に限りなく等しいαを定義できる）、正確な補間値を得ることが可能になるという点である。しかも、§２で述べたユニークな着眼点に基づいて、近似値α′を用いた式を定義したため、除算を含まない演算式になっている。
【００５３】
図１０に示す（式１４）の第２の特徴は、式の形式上、ｄｊとｅｊとが相補的に組み込まれているという点である。たとえば、第１項には「Σｊ＝０〜７ｅｊ２（ｊ−８）」なる形の式が含まれており、第３項には「Σｊ＝０〜７ｄｊ２（ｊ−８）」なる形の式が含まれている。また、第２項には「ｅ７２−８」なる形の式が含まれており、第４項には「ｄ７２−８」なる形の式が含まれている。
【００５４】
前述したとおり、ｅｊはｄｊの論理反転ビットであるから、ｄｊが１であればｅｊは必ず０であり、ｄｊが０であればｅｊは必ず１である、という関係にある。したがって、上記各式の個々の項を演算するにあたって、ｄｊ＝１の場合は、ｅｊが含まれている項は必ず０になるので、ｄｊが含まれている項のみを演算すれば足り、ｄｊ＝０の場合は、ｄｊが含まれている項は必ず０になるので、ｅｊが含まれている項のみを演算すれば足りる。これにより、演算回路を単純化した効率的な演算が可能になる。
【００５５】
図１１は、図１０の（式１４）を構成する各項の係数を、各桁ごとに整理して示すテーブルである。このテーブルの横方向に並んだ列は、それぞれ２７，２６，２５，……，２−６，２−７，２−８という位取りに対応しており、ビットｃ１５，ｃ１４，ｃ１３，……，ｃ２，ｃ１，ｃ０は、演算によって求められる補間値Ｃの各ビットを示している。上述したとおり、ビットｃ８とビットｃ７との間に小数点が位置し、補間値Ｃを構成する１６ビットのデータのうち、上位の８ビット「ｃ１５ｃ１４……ｃ９ｃ８」は整数部、下位の８ビット「ｃ７ｃ６……ｃ１ｃ０」は小数部である。
【００５６】
この図１１のテーブルの各行の右脇に記載した「丸数字」および「ｊ」の値は、図１０の式の丸数字の項および当該項中のｊの値に対応している。たとえば、図１１のテーブルの第１行目の右脇には、「丸数字１」および「ｊ＝７」なる記載がなされているが、これは、このテーブルの第１行目に並んだ係数が、図１０に「丸数字１」と記述された第１項の式「Σｊ＝０〜７ｅｊ２（ｊ−８）＊Σｉ＝０〜７ａｉ２ｉ」について、「ｊ＝７」とした場合の係数に対応することを示している。実際に「ｊ＝７」にすると、「Σｊ＝０〜７ｅｊ２（ｊ−８）」の部分は「ｅ７２−１」になり、これと「Σｉ＝０〜７ａｉ２ｉ」との積によって得られる各桁の係数が、図１１のテーブルの第１行目に並んでいることになる。たとえば、ｉ＝０の場合、「ｅ７２−１」＊「ａ０２０」＝「ａ０ｅ７２−１」なる積が得られるが、図１１のテーブルの第１行目の右端（２−１の桁）に記載されている係数「ａ０ｅ７」は、この積の係数を示すものである。
【００５７】
結局、図１０の（式１４）は、多数の積和演算として実行可能であり、各桁ごとの係数は、図１１のテーブルのいずれかの箇所に記載されたものになる。この図１１のテーブルに記載されている係数ａ０，ａ１，ａ２，…，ｂ０，ｂ１，ｂ２…は、補間対象値Ａ，Ｂを構成するいずれかのビットであり、係数ｄ０，ｄ１，ｄ２，…は、補間割合決定値Ｄを構成するいずれかのビットである。また、係数ｅ０，ｅ１，ｅ２，…は、それぞれ係数ｄ０，ｄ１，ｄ２，…の論理反転ビットである。
【００５８】
ここで都合がよいことは、同じ桁の係数の中には、一対の相補的な係数が多く含まれていることである。たとえば、２−８の桁には、ａ０ｅ０、ｂ０ｄ０、ａ０ｅ７、ｂ０ｄ７という係数が記載されており、ビットｃ０は、これら４つの係数を加算することにより求めることができる。ところが、ｅｊはｄｊの論理反転ビットであるから、ａ０ｅ０とｂ０ｄ０とは一対の相補的な係数を構成しており、必ず、いずれか一方は０になる。たとえば、ｅ０＝１の場合、ｄ０＝０であるから、ａ０ｅ０＝ａ０、ｂ０ｄ０＝０になり、ａ０ｅ０＋ｂ０ｄ０＝ａ０となる。逆に、ｅ０＝０の場合、ｄ０＝１であるから、ａ０ｅ０＝０、ｂ０ｄ０＝ｂ０になり、ａ０ｅ０＋ｂ０ｄ０＝ｂ０となる。結局、「ａ０ｅ０＋ｂ０ｄ０」なる演算結果は、ｄ０＝０の場合はａ０になり、ｄ０＝１の場合はｂ０になる。したがって、「ａ０ｅ０＋ｂ０ｄ０」なる演算を行う演算器の代わりに、ｄ０の値に基づいて、入力値ａ０かｂ０か、いずれか一方を選択するセレクタによって、「ａ０ｅ０＋ｂ０ｄ０」なる演算の役割を担わせることが可能になる。
【００５９】
２−８の桁における「ａ０ｅ７＋ｂ０ｄ７」という演算も全く同様であり、ｄ７の値に基づいて、入力値ａ０かｂ０か、いずれか一方を選択するセレクタによって、「ａ０ｅ７＋ｂ０ｄ７」なる演算の役割を担わせることが可能になる。以上、２−８の桁を例示したが、このような相補的な係数は、各桁の随所に見られる。したがって、個々の桁ごとの加算を行う演算回路の構成は、非常に単純化される。
【００６０】
このように、図１０に示す（式１４）で定義される乗算および加算を行うことにより線形補間値Ｃが得られるように演算器を構成すれば、正確な補間値を得る演算が可能になり、しかも演算回路の構成は非常に単純化されることになる。
【００６１】
＜＜＜  §５．一般式への拡張  ＞＞＞
これまで述べた§２〜§４では、理解を容易にするため、２つの補間対象値ＡおよびＢが８ビットのデジタルデータとして与えられ、補間割合αを決定するための補間割合決定値Ｄが８ビットのデジタルデータとして与えられ、これらのデジタルデータを用いて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる基本式に基づく演算を実行した結果、１６ビットのデジタルデータとして表現された線形補間値Ｃが求められる具体的な場合を例にとって説明したが、もちろん、本発明は、このような例に限定されるものではない。
【００６２】
ここでは、本発明を一般論へと拡張し、値Ａ，Ｂ，Ｄをｎビットのデジタルデータとして与えたときに、２ｎビットのデジタルデータとして補間値Ｃを得る場合の式を示す。なお、これまで述べてきた式との対比を明確にするために、以下の説明で新たに出てくる式には、既出の対応する式の番号にｎを付して示すことにする。
【００６３】
たとえば、図１２に示す（式１ｎ）は、図２に示す（式１）を一般式へと拡張したものに対応する。すなわち、ｎビットのデジタルデータとして与えられる補間対象値Ａは、（式１ｎ）として示されているように、
Ａ＝Σｉ＝０〜ｎ−１ａｉ２ｉ
＝ａ０２０＋ａ１２１＋……＋ａｎ−１２（ｎ−１）
なる式で定義される。同様に、ｎビットのデジタルデータとして与えられる補間対象値Ｂは、（式２ｎ）として示されているように、
Ｂ＝Σｉ＝０〜ｎ−１ｂｉ２ｉ
＝ｂ０２０＋ｂ１２１＋……＋ｂｎ−１２（ｎ−１）
なる式で定義され、ｎビットのデジタルデータとして与えられる補間割合決定値Ｄは、（式３ｎ）として示されているように、
Ｄ＝Σｉ＝０〜ｎ−１ｄｉ２ｉ
＝ｄ０２０＋ｄ１２１＋……＋ｄｎ−１２（ｎ−１）
なる式で定義される。
【００６４】
一方、２ｎビットのデジタルデータとして求められる線形補間値Ｃは、（式４ｎ）として示されているように、
Ｃ＝Σｉ＝０〜２ｎ−１ｃｉ２（ｉ−ｎ）
＝ｃ０２−ｎ＋ｃ１２−（ｎ−１）＋……＋ｃｎ−１２−１
＋ｃｎ２０＋ｃｎ＋１２１＋……＋ｃ２ｎ−１２（ｎ−１）
なる式で定義される。この２ｎビットからなる補間値Ｃのうち、下位のｎビットｃ０〜ｃｎ−１は小数部を示し、上位のｎビットｃｎ〜ｃ２ｎ−１は整数部を示す。もっとも、実用上は、この２ｎビットの数値Ｃのうち、所定の有効桁数（通常は、整数部のｎ桁）だけを、最終的な線形補間値Ｃとして出力すれば十分である。
【００６５】
また、補間割合αと補間割合決定値Ｄとの関係は、（式５ｎ）として示されているように、
α＝（１／（２ｎ−１））＊Ｄ
という式で定義できる。Ｄがｎビットのデジタルデータとして与えられた場合、Ｄの最小値は０、最大値は「２ｎ−１」ということになるので、（式５ｎ）を用いれば、αを、０≦α≦１の範囲内の数値として定義することができる。
【００６６】
結局、図２に示した（式１）〜（式５）は、図１２に示した（式１ｎ）〜（式５ｎ）において、ｎ＝８に設定した式ということになる。図１３は、図１２に示す補間対象値Ａ，Ｂ、補間割合決定値Ｄ、線形補間値Ｃ、を二進数のビット列として表わした状態を示す図である。図１２の各式にしたがって数値Ａ，Ｂ，Ｄ，Ｃをそれぞれ定義すれば、これらの各数値は、図１３に示すようなビット列として表現されることになる。上述したとおり、数値Ａ，Ｂ，Ｄはそれぞれｎビットのデータであるのに対し、数値Ｃは２ｎビットのデータになり、上位ｎビットｃ２ｎ−１〜ｃｎが整数部、下位ｎビットｃｎ−１〜ｃ０が小数部となり、ビットｃｎとｃｎ−１の間に小数点が位置することになる。
【００６７】
結局、本発明に係る線形補間演算器は、図１３に示すようなｎビットのデジタルデータとして与えられた補間対象値Ａ，Ｂと、補間割合決定値Ｄとに基づいて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる基本式に基づく演算を行い、２ｎビットのデジタルデータとして線形補間値Ｃを算出する機能をもった演算器ということになる。
【００６８】
ここで問題となるのは、（式５ｎ）の演算式における除算である。既に述べたとおり、α＝（１／（２ｎ−１））＊Ｄなる形で補間割合αを定義すると、０≦α≦１という必要な全範囲のαを定義することができるので、α＝１の場合にも対応でき、正確な補間値を得ることが可能になる。しかしながら、（１／（２ｎ−１））という除算を行う必要があり、その回路構成は複雑にならざるを得ない。この問題を解決するために、§２で述べたユニークな着眼点を利用する。
【００６９】
まず、（１／（２ｎ−１））なる値を二進数にしてみると、図１４の（式６ｎ）に示すような循環小数（ｎ−１個の「０」を並べた後に「１」を並べる繰り返し）で表現されることがわかる。一方、補間割合αは、この循環小数にｎビットのデジタルデータＤ（ビット列「ｄｎ−１ｄｎ−２……ｄ０」で示される二進値）を乗算したものである。ところが、上記循環小数には、ｎ桁ごとに「１」が現れるだけであり、この「１」とビット列「ｄｎ−１ｄｎ−２……ｄ０」との積は、ビット列「ｄｎ−１ｄｎ−２……ｄ０」それ自身ということになるので、結局、（１／（２ｎ−１））＊Ｄなる積は、図１４の（式７ｎ）に示すようなビット列で表現されることになる。すなわち、補間割合αは、小数点以下にビット列「ｄｎ−１ｄｎ−２……ｄ０」を繰り返し配置した二進の小数値として表現されることになる。
【００７０】
Ｄが最小値０の場合、ビット列「ｄｎ−１ｄｎ−２……ｄ０」は、「００……０」になるので、αは小数点以下無限桁までビット「０」が続く二進数ということになり、これは０に等しい。一方、Ｄが最大値（２ｎ−１）の場合、ビット列「ｄｎ−１ｄｎ−２……ｄ０」は、は、「１１……１」になるので、αは小数点以下無限桁までビット「１」が続く二進数ということになり、これは数学的には１に限りなく等しい値である。
【００７１】
ここで、図１５の上段に示すように、補間割合αの値の小数点以下第（ｎ＋１）桁（２−（ｎ＋１）の桁）を０捨１入してまるめることにし、最終的に、小数点以下第ｎ桁（２−ｎの桁）までの有効桁を有する近似値α′を求めることにする。まず、図１５の中段に示すように、「ｄｎ−１＝０」の場合は、２−（ｎ＋１）の桁は「０捨」されることになるので、近似値α′は、「０．ｄｎ−１ｄｎ−２……ｄ０」という小数点以下第ｎ桁（２−ｎの桁）までの有効桁を有する二進数ということになる。一方、「ｄｎ−１＝１」の場合は、図１５の下段に示すように、２−（ｎ＋１）の桁は「１入」されることになるので、近似値α′は、「０．ｄｎ−１ｄｎ−２……ｄ０」に、「０．０００…００１」という二進数を加算することによって得られる小数点以下第ｎ桁（２−ｎの桁）までの有効桁を有する二進数ということになる。ここで、加算される「０．０００…００１」という値は、小数点以下第ｎ桁目のみが「１」である二進の小数であり、「１入」される２−（ｎ＋１）の桁から２−ｎの桁への繰り上がりである。
【００７２】
上記２通りの場合を考慮すると、結局、小数点以下第ｎ桁（２−ｎの桁）までの有効桁を有する近似値α′は、図１６の（式８ｎ）に示すとおり、
α′＝０．ｄｎ−１ｄｎ−２ｄｎ−３……ｄ０
＋  ０．０００……ｄｎ−１
という式で表わすことができる。ここで、２行目の項における「ｄｎ−１」は、小数点以下第ｎ桁目のビットである。ビット「ｄｎ−１」が０の場合は、上式の「０．０００……ｄｎ−１」の部分は０になるから、上式は、結局、α′＝０．ｄｎ−１ｄｎ−２ｄｎ−３……ｄ０となり、図１５の中段の式のとおりである。一方、ビット「ｄｎ−１」が１の場合は、上式の「０．０００……ｄｎ−１」の部分は「０．０００……１（最後の１は、小数点以下第ｎ桁目）」になるから、上式は、結局、α′＝０．ｄｎ−１ｄｎ−２ｄｎ−３……ｄ０＋０．０００……１となり、図１５の下段の式のとおりである。このように、（式８ｎ）による近似値α′の定義式は、図１５に示す２とおりの場合の近似値α′の定義と等価である。
【００７３】
ところで、「０．ｄｎ−１ｄｎ−２ｄｎ−３……ｄ０」なる二進表現の小数値は、Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）という式で表現することができ、「０．０００……ｄｎ−１」なる二進表現の小数値は、ｄｎ−１２−ｎと表現することができるので、結局、図１６の（式８ｎ）によって示される近似値α′は、（式９ｎ）に示すとおり、
α′＝Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ
という式で定義できる。
【００７４】
このように、ｎビットのデジタルデータＤ（ビット列「ｄｎ−１ｄｎ−２ｄｎ−３……ｄ０」）を用いて、図１２の（式５ｎ）によって
α＝（１／（２ｎ−１））＊Ｄ
なる形で補間割合αを定義した場合でも、補間割合αの近似値α′を、（式９ｎ）に示すとおり、
α′＝Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ
という形式で定義して用いることにすれば、除算は不要になり、単なる加算によって近似値α′を求めることができる。
【００７５】
結局、補間値Ｃは、図１７の（式１０ｎ）に基づいて、「Ｃ＝（１−α′）＊Ａ＋α′＊Ｂ」なる演算によって求めるべき値であるが、この式において、α′の部分に図１６の（式９ｎ）を代入し、Ａの部分に図１２の（式１ｎ）を代入し、Ｂの部分に図１２の（式２ｎ）を代入すれば、図１７の中段および下段に示されているように、「Ｃ＝［１−（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）］＊Σｉ＝０〜ｎ−１ａｉ２ｉ＋（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）］＊Σｉ＝０〜ｎ−１ｂｉ２ｉ」なる式が得られる。この式には、除算は含まれていないので、この式に基づいて演算器を構成すれば、少なくとも除算回路を設ける必要はない。ただ、本発明では、より効率的な演算器を設計できるようにするため、この（式１０ｎ）について、更に次のような変形を行う。
【００７６】
まず、図１８の（式１３ｎ）に示すように、（式１０ｎ）における［１−（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）］の部分を、
Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＋ｅｎ−１２−ｎ
のような形に変形する。ここで、ｅｊ＝（１−ｄｊ）であり、ｅｊはｄｊの論理反転ビットになる（ｄｊ＝１の場合、ｅｊ＝０となり、ｄｊ＝０の場合、ｅｊ＝１となる）。この（式１３ｎ）の２行目の形は、図８の（式１１）の左辺を、（式１３ｎ）の１行目に記載されている「１」の部分に代入して整理することにより導かれるものであり、そのプロセスは、図９に示す（式１３）の変形プロセスと全く同様である。
【００７７】
そこで、図１７の（式１０ｎ）の中段に示す［１−（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）］の部分を、図１８の２行目に示す「Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＋ｅｎ−１２−ｎ」に置き換えてみると、図１９の上半分に示す（式１４ｎ）が得られる。この式を展開すると、図１９の下半分に示すように、丸数字１〜４で示す４つの項の和の形になる。具体的には、求める線形補間値Ｃは、次の４項の和を計算することにより求められる。
【００７８】
第１項：Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＊Σｉ＝０〜ｎ−１ａｉ２ｉ
第２項：ｅｎ−１２−ｎ＊Σｉ＝０〜ｎ−１ａｉ２ｉ
第３項：Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＊Σｉ＝０〜ｎ−１ｂｉ２ｉ
第４項：ｄｎ−１２−ｎ＊Σｉ＝０〜ｎ−１ｂｉ２ｉ
この（式１４ｎ）は、図１７に（式１０ｎ）として示されている線形補間の基本式と等価である。この（式１４ｎ）において、ｎ＝８とした式が、図１０に示す（式１４）であり、既に§４で述べたとおり、補間演算器を設計する上で、極めて都合が良い形になっている。
【００７９】
すなわち、この（式１４ｎ）は、もともと図１２の（式５ｎ）に示されているように、「α＝（１／（２ｎ−１））＊Ｄ」という式を用いて、線形割合決定値Ｄと線形割合αとの関係を定義しているので、０≦α≦１という範囲のαを定義することができ、α＝１の場合にも対応できるとともに（厳密に言えば、α＝１ではなく、§２で述べたとおり、１に限りなく等しいαを定義できる）、正確な補間値を得ることが可能になるという特徴を有している。しかも、§２で述べたユニークな着眼点に基づいて、近似値α′を用いた式を定義したため、除算を含まない演算式になっており、かつ、式の形式上、ｄｊとｅｊとが相補的に組み込まれているため、一部の演算を単なるセレクタなどによって実現することができ、演算回路を単純化した効率的な演算が可能になる。
【００８０】
結局、本発明の特徴は、２つの補間対象値ＡおよびＢと、補間割合α（但し、０≦α≦１）と、に基づいて、Ｃ＝（１−α）＊Ａ＋α＊Ｂなる式で示される線形補間値Ｃを求める演算を行う線形補間演算器を、図１９の（式１４ｎ）に示す演算式、すなわち、Ｃ＝（Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＋ｅｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ａｉ２ｉ＋（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ｂｉ２ｉ  なる演算式（但し、ｅｉはｄｉの論理反転ビット）で定義される乗算および加算を行うことにより線形補間値Ｃが得られるように演算器を構成する点にある。
【００８１】
このとき、この演算器に与えるべき補間対象値Ａは、最上位ビット側から順に、ａｎ−１，ａｎ−２，…，ａ１，ａ０なるビットを有する合計ｎビットのデジタルデータとして定義し、補間対象値Ｂは、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，…，ｂ１，ｂ０なるビットを有する合計ｎビットのデジタルデータとして定義し、補間割合決定値Ｄは、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，…，ｄ１，ｄ０なるビットを有する合計ｎビットのデジタルデータとして定義し、補間割合決定値Ｄと補間割合αとの間に「α＝Ｄ／（２ｎ−１）」なる関係を定義しておくようにする。この演算の結果、最上位ビット側から順に、ｃ2ｎ−１，ｃ2ｎ−２，…，ｃ１，ｃ０なるビットを有する合計２ｎビットのデジタルデータを生成することができるので、当該２ｎビットのデジタルデータ、もしくは、当該２ｎビットのデジタルデータのうち必要な有効桁数に相当するデジタルデータを、線形補間値Ｃを示すデジタルデータとして出力すればよい。
【００８２】
このように、線形補間演算器を、図１９の（式１４ｎ）に示す演算式に基づいて設計すれば、２つの補間対象値についての線形補間値を高い精度で求めることができ、しかも簡潔な回路構成をもった線形補間演算器を実現できる。
【００８３】
＜＜＜  §６．本発明に係る線形補間演算器の具体的な構成例  ＞＞＞
続いて、図１９に示す本発明に係る演算式（式１４ｎ）に基づく補間演算を実行する機能を有する具体的な線形補間演算器の構成例を述べる。ただ、ｎの数が大きな場合の演算器の具体的構成例は、回路図が複雑になり、紙面上の制約から図示が困難になるので、ここでは、ｎ＝４に設定した場合の比較的小規模な演算器の構成例を示すことにする。この演算器は、４ビットのデジタルデータとして与えられる入力値Ａ，Ｂ，Ｄに基づいて、８ビットのデジタルデータとしての補間値Ｃを出力する機能を有している。
【００８４】
図２０に示す（式１５）は、図１９の（式１４ｎ）において、ｎ＝４という設定を行った場合の演算式である。既に述べたとおり、この演算式は、図２０の下半分に示すとおり、丸数字１〜４で示す４つの項の和の形になる。すなわち、求める線形補間値Ｃは、次の４項の和を計算することにより求められる。
【００８５】
第１項：Σｊ＝０〜３ｅｊ２（ｊ−４）＊Σｉ＝０〜３ａｉ２ｉ
第２項：ｅ３２−４＊Σｉ＝０〜３ａｉ２ｉ
第３項：Σｊ＝０〜３ｄｊ２（ｊ−４）＊Σｉ＝０〜３ｂｉ２ｉ
第４項：ｄ３２−４＊Σｉ＝０〜３ｂｉ２ｉ
【００８６】
図２１は、図２０の（式１５）を構成する各項の係数を、各桁ごとに整理して示すテーブルであり、その基本構成は、図１１に示すテーブル（ｎ＝８の場合のテーブル）と同様である。すなわち、この図２１のテーブルの横方向に並んだ列は、それぞれ２３，２２，２１，２０，２−１，２−２，２−３，２−４という位取りに対応しており、ビットｃ７，ｃ６，ｃ５，ｃ４，ｃ３，ｃ２，ｃ１，ｃ０は、演算によって求められる補間値Ｃの各ビットを示している。この場合、ビットｃ４とビットｃ３との間に小数点が位置し、補間値Ｃを構成する８ビットのデータのうち、上位の４ビット「ｃ７，ｃ６，ｃ５，ｃ４」は整数部、下位の４ビット「ｃ３，ｃ２，ｃ１，ｃ０」は小数部である。
【００８７】
この図２１のテーブルの各行の右脇に記載した「丸数字」および「ｊ」の値は、図２０の式の丸数字の項および当該項中のｊの値に対応している。たとえば、図１１のテーブルの第１行目の右脇には、「丸数字１」および「ｊ＝３」なる記載がなされているが、これは、このテーブルの第１行目に並んだ係数が、図２０に「丸数字１」と記述された第１項の式「Σｊ＝０〜３ｅｊ２（ｊ−４）＊Σｉ＝０〜３ａｉ２ｉ」について、「ｊ＝３」とした場合の係数に対応することを示している。実際に「ｊ＝３」にすると、「Σｊ＝０〜３ｅｊ２（ｊ−４）」の部分は「ｅ３２−１」になり、これと「Σｉ＝０〜３ａｉ２ｉ」との積によって得られる各桁の係数が、図２１のテーブルの第１行目に並んでいることになる。たとえば、ｉ＝０の場合、「ｅ３２−１」＊「ａ０２０」＝「ａ０ｅ３２−１」なる積が得られるが、図２１のテーブルの第１行目の右端（２−１の桁）に記載されている係数「ａ０ｅ３」は、この積の係数を示すものである。
【００８８】
このように、図２０の（式１５）は、多数の積和演算として実行可能であり、各桁ごとの係数は、図２１のテーブルのいずれかの箇所に記載されたものになる。しかも、同じ桁の係数の中には、一対の相補的な係数（いずれか一方が必ず０になる２つの係数）が多く含まれている。たとえば、係数「ａ０ｅ０」と「ｂ０ｄ０」とは、ｅ０かｄ０の一方が必ず０になるので、互いに相補的な係数となっており、「ａ０ｅ０＋ｂ０ｄ０」なる演算結果は、「ａ０」か「ｂ０」かのいずれかになる。そこで、ｄ０の値に基づいて、入力値ａ０かｂ０か、いずれか一方を選択するセレクタによって、「ａ０ｅ０＋ｂ０ｄ０」なる演算の役割を担わせることが可能になる点は、既に述べたとおりである。
【００８９】
結局、図２０の（式１５）に基づく演算を行う演算器は、セレクタとカウンタとの組合わせによって構成することができる。セレクタとしては、補間割合決定値Ｄを示すデジタルデータの所定のビットの論理値に基づいて、ビットａｉもしくはｂｉ（但し、ｉ＝０，１，２，…，（ｎ−１）：この例ではｎ＝４）のいずれかを選択して出力する機能をもった装置を用いればよく、カウンタとしては、ビットａｉもしくはｂｉ（但し、ｉ＝０，１，２，…，（ｎ−１）：この例ではｎ＝４）、セレクタの出力値、もしくは他のカウンタの出力値を入力し、入力した値の加算結果を出力する機能をもった装置を用いればよい。
【００９０】
図２２は、上述のような機能をもったセレクタおよびカウンタの具体例を示す図であり、これらのセレクタやカウンタは、後述する具体的な線形補間演算器の基本構成要素として利用されている。
【００９１】
まず、図２２(a) に示すセレクタ１００は、２つの入力値Ｘ，Ｙ（いずれも１ビットの値）のうち、いずれか一方を選択値Ｓとして出力する機能をもった構成要素である。いずれの入力値を選択するかは、１ビットの制御値Ｄの論理状態によって定まる。すなわち、制御値Ｄ＝０のときは、入力値Ｘが選択され（Ｓ＝Ｘになる）、制御値Ｄ＝１のときは、入力値Ｙが選択される（Ｓ＝Ｙになる）。
【００９２】
次に、図２２(b) に示す２−２カウンタ２００は、２つの入力値Ｘ，Ｙ（いずれも１ビットの値）についての加算演算を行い、演算結果の２０の桁の値を和Ｓとして出力し、演算結果の２１の桁の値をキャリーＣ（上位桁への繰り上がり）として出力する機能をもった構成要素である。和ＳおよびキャリーＣは、いずれも１ビットのデータになる。
【００９３】
また、図２２(c) に示す３−２カウンタ３００は、３つの入力値Ｘ，Ｙ，Ｚ（いずれも１ビットの値）についての加算演算を行い、演算結果の２０の桁の値を和Ｓとして出力し、演算結果の２１の桁の値をキャリーＣ（上位桁への繰り上がり）として出力する機能をもった構成要素である。やはり和ＳおよびキャリーＣは、いずれも１ビットのデータになる。
【００９４】
図２３〜図２５は、図２２に示すセレクタ１００，２−２カウンタ２００，３−２カウンタ３００を組み合わせることにより構成した線形補間演算器を示す回路図である。図示の便宜上、３つの図面に分けて示してあるが、この３つの図面に描かれた回路全体によって、１台の線形補間演算器が構成されることになる。図において、１００番台の符号が記されている構成要素１０１〜１２０は、図２２(a) に示すセレクタ１００と同等の要素であり、２００番台の符号が記されている構成要素２０１〜２０４は、図２２(b) に示す２−２カウンタ２００と同等の要素であり、３００番台の符号が記されている構成要素３０１〜３１２は、図２２(c) に示す３−２カウンタ３００と同等の要素である。
【００９５】
なお、説明の便宜上、各セレクタから出力される選択値は、当該セレクタの符号の頭にＳをつけた符号で示すことにし、各カウンタから出力される和もしくはキャリーには、当該カウンタの符号の頭にＳもしくはＣをつけた符号で示すことにする。たとえば、図２３の右側に示されているＳ１０１は、セレクタ１０１から出力される選択値であり、Ｓ２０１は、カウンタ２０１から出力される和であり、Ｃ２０１は、カウンタ２０１から出力されるキャリー（上位桁へ加算されることになる）である。
【００９６】
この図２３〜図２５に示されている線形補間演算器は、図２０の（式１５）に示されている演算式（ｎ＝４の場合の演算式）に基づいて、補間値Ｃを求める演算を行うものであり、その構成は、図２１のテーブルに対応したものとなっている。すなわち、図２３に示すビットｃ０演算部，ビットｃ１演算部，ビットｃ２演算部、図２４に示すビットｃ３演算部，ビットｃ４演算部、図２５に示すビットｃ５演算部，ビットｃ６演算部，ビットｃ７演算部は、それぞれ図２１のテーブルにおけるビットｃ０〜ｃ７を求める演算を行う構成要素である。もっとも、ビットｃ７演算部は、ビットｃ６演算部からのキャリーＣ３１２をそのまま出力するだけの機能しかもたない。
【００９７】
また、図２３〜図２５に示されている値ａ０，ａ１，ａ２，ａ３は、補間対象値Ａの各ビットであり、値ｂ０，ｂ１，ｂ２，ｂ３は、補間対象値Ｂの各ビットであり、値ｄ０，ｄ１，ｄ２，ｄ３は、補間割合決定値Ｄの各ビットである。そして、各ビット演算部の下部に描かれている出力値Ｓ０〜Ｓ７は、図２１のテーブルにおけるビットｃ０〜ｃ７の値に対応する。
【００９８】
たとえば、図２３に示すビットｃ０演算部の構成に着目すると、図２１のテーブルにおけるビットｃ０を求める演算を行うための構成になっていることが理解できるであろう。セレクタ１０１は、制御値ｄ３に基づいて、２つの入力値ａ０，ｂ０のいずれか一方を選択し、選択した入力値を選択値Ｓ１０１として出力する機能を果たすが、これは、図２１のテーブルにおけるビットｃ０の桁に示されている係数「ａ０ｅ３」と「ｂ０ｄ３」との加算に相当する処理である。既に述べたとおり、「ａ０ｅ３」と「ｂ０ｄ３」とは、相補的な関係にあり、ｄ３＝１の場合は、ａ０ｅ３＝０、ｂ０ｄ３＝ｂ０となり、ｄ３＝０の場合は、ａ０ｅ３＝ａ０、ｂ０ｄ３＝０となるので、結局、セレクタ１０１により、ｄ３＝１の場合は、Ｓ１０１＝ｂ０を選択値として出力し、ｄ３＝０の場合は、Ｓ１０１＝ａ０を選択値として出力すれば、係数「ａ０ｅ３」と「ｂ０ｄ３」との加算に相当する処理に代えることができる。
【００９９】
同様に、セレクタ１０２は、制御値ｄ０に基づいて、２つの入力値ａ０，ｂ０のいずれか一方を選択し、選択した入力値を選択値Ｓ１０２として出力する機能を果たすが、これは、図２１のテーブルにおけるビットｃ０の桁に示されている係数「ａ０ｅ０」と「ｂ０ｄ０」との加算に相当する処理である。セレクタ１０２により、ｄ０＝１の場合は、Ｓ１０２＝ｂ０を選択値として出力し、ｄ０＝０の場合は、Ｓ１０２＝ａ０を選択値として出力すれば、係数「ａ０ｅ０」と「ｂ０ｄ０」との加算に相当する処理に代えることができる。最後に、カウンタ２０１により、選択値Ｓ１０１と選択値Ｓ１０２との加算を行えば、結果的に、図２１のテーブルにおけるビットｃ０を求める演算が実行されたことになる。
【０１００】
このとき、ビットｃ１の桁への繰り上がりがあれば、キャリーＣ２０１＝１なる値が、ビットｃ１演算部へと伝達されることになる。もちろん、繰り上がりがなければ、キャリーＣ２０１＝０なる値が、ビットｃ１演算部へと伝達される。他の桁についての演算も、これと同様である。なお、２３の桁については、実際の演算は行われず、２２の桁からのキャリーがそのまま２３の桁の値として出力されるだけである。したがって、図２５の左端に示されているとおり、ビットｃ７演算部には実体的な回路は用意されておらず、実体的な回路をもった演算部は、ビット演算部ｃ６〜ｃ０の７組ということになる。
【０１０１】
結局、図２３〜図２５に示されている回路は、線形補間値Ｃの２（２−ｉ）の桁の値を示すビットｃ６−ｉ（但し、ｉ＝０，１，２，３，４，５，６）を演算するために、各桁の係数および下位桁からの繰り上がりを示すキャリーをすべて加算し、和を当該ビットｃ６−ｉの値として出力し、繰り上がりをキャリーとして上位桁へと出力する７個の演算部を有し、ビットｃ６の演算を行う演算部からのキャリーを、ビットｃ７の値として出力する回路ということになる。
【０１０２】
これを、ｎを用いた一般論にまで拡張すれば、本発明に係る線形補間演算器は、線形補間値Ｃの２（ｎ−ｉ−２）の桁の値を示すビットｃ２ｎ−ｉ−２（但し、ｉ＝０，１，２，…，２（ｎ−１））を演算するために、各桁の係数および下位桁からの繰り上がりを示すキャリーをすべて加算し、和を当該ビットｃ２ｎ−ｉ−２の値として出力し、繰り上がりをキャリーとして上位桁へと出力する（２ｎ−１）個の演算部を有し、ビットｃ２ｎ−２の演算を行う演算部からのキャリーを、ビットｃ２ｎ−１の値として出力する機能を有していることになる。
【０１０３】
以上、本発明に係る線形補間演算器の主要部の構成例を、図２３〜図２５の回路図を参照して説明したが、実際には、この主要部にデジタルデータＡ，Ｂ，Ｄを入力するための構成要素と、この主要部からデジタルデータＣを出力するための構成要素とを付加する必要がある。図２６は、このような入出力のための構成要素を付加することにより得られる本発明に係る線形補間演算器の全体構成を示すブロック図である。
【０１０４】
図示のとおり、この線形補間演算器は、ｎビットのデジタルデータＡを入力するための第１の補間対象値入力手段１０と、ｎビットのデジタルデータＢを入力するための第２の補間対象値入力手段２０と、ｎビットのデジタルデータＤを入力するための補間割合決定値入力手段３０と、演算手段４０と、演算値出力手段５０とによって構成されている。
【０１０５】
第１の補間対象値入力手段１０は、最上位ビット側から順に、ａｎ−１，ａｎ−２，…，ａ１，ａ０なるビットを有する合計ｎビットのデジタルデータとして補間対象値Ａを入力する手段であり、第２の補間対象値入力手段２０は、最上位ビット側から順に、ｂｎ−１，ｂｎ−２，…，ｂ１，ｂ０なるビットを有する合計ｎビットのデジタルデータとして補間対象値Ｂを入力する手段であり、補間割合決定値入力手段３０は、最上位ビット側から順に、ｄｎ−１，ｄｎ−２，…，ｄ１，ｄ０なるビットを有する合計ｎビットのデジタルデータとして、補間割合αとの間に「α＝Ｄ／（２ｎ−１）」なる関係をもつ補間割合決定値Ｄを入力する手段である。
【０１０６】
一方、演算手段４０は、演算式  Ｃ＝（Σｊ＝０〜ｎ−１ｅｊ２（ｊ−ｎ）＋ｅｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ａｉ２ｉ＋（Σｊ＝０〜ｎ−１ｄｊ２（ｊ−ｎ）＋ｄｎ−１２−ｎ）＊Σｉ＝０〜ｎ−１ｂｉ２ｉ  （但し、ｅｉはｄｉの論理反転ビット）に基づく演算を行うことにより、最上位ビット側から順に、整数部を構成するｃ2ｎ−１，ｃ2ｎ−２，…，ｃｎ＋１，ｃｎなる合計ｎビットと、小数部を構成するｃｎ−１，ｃｎ−２，…，ｃ１，ｃ０なる合計ｎビットと、によって構成される合計２ｎビットのデジタルデータを生成する手段である。
【０１０７】
そして、演算値出力手段５０は、「最上位ビット側から順に各ビットｃ2ｎ−1，ｃ2ｎ−２，ｃ2ｎ−３，…，ｃ１，ｃ０を羅列してなる合計２ｎビットのデジタルデータ」もしくは「当該２ｎビットのデジタルデータのうち必要な有効桁数に相当するデジタルデータ」を、線形補間値Ｃを示すデジタルデータとして出力する手段である。
【図面の簡単な説明】
【０１０８】
【図１】線形補間演算の基本概念を示すグラフである。
【図２】補間対象値Ａ，Ｂおよび補間割合決定値Ｄを８ビットのデジタルデータとして定義した式を示す図である。
【図３】図２に示す補間対象値Ａ，Ｂ、補間割合決定値Ｄ、線形補間値Ｃを二進数のビット列として表わした状態を示す図である。
【図４】８ビットのデジタルデータからなる補間割合決定値Ｄと補間割合αとの関係式を示す図である。
【図５】図４の関係式に基づいて補間割合αの近似値α′を定義する方法を示す図である。
【図６】図４の関係式に基づいて補間割合αの近似値α′を定義する式を示す図である。
【図７】補間対象値Ａ，Ｂおよび補間割合決定値Ｄに８ビットのデジタルデータを用いた場合の線形補間演算の基本式を示す図である。
【図８】図７に示す基本式の変形に利用する論理式を示す図である。
【図９】図７に示す基本式の（１−α′）の部分の変形プロセスを示す図である。
【図１０】図７に示す基本式の（１−α′）の部分を図９に示す式に置き換えることにより得られる本発明の特徴式を示す図である。
【図１１】図１０に示す式を構成する各項の係数を、各桁ごとに整理して示すテーブルである。
【図１２】補間対象値Ａ，Ｂおよび補間割合決定値Ｄをｎビットのデジタルデータとして定義した一般式を示す図である。
【図１３】図１２に示す補間対象値Ａ，Ｂ、線形補間値Ｃ、補間割合決定値Ｄを二進数のビット列として表わした状態を示す図である。
【図１４】ｎビットのデジタルデータからなる補間割合決定値Ｄと補間割合αとの関係式を示す図である。
【図１５】図１４の関係式に基づいて補間割合αの近似値α′を定義する方法を示す図である。
【図１６】図１４の関係式に基づいて補間割合αの近似値α′を定義する式を示す図である。
【図１７】補間対象値Ａ，Ｂおよび補間割合決定値Ｄにｎビットのデジタルデータを用いた場合の線形補間演算の基本式を示す図である。
【図１８】図１７に示す基本式の（１−α′）の部分の変形プロセスを示す図である。
【図１９】図１７に示す基本式の（１−α′）の部分を図１８に示す式に置き換えることにより得られる本発明の特徴式を示す図である。
【図２０】図１９に示す特徴式に、ｎ＝４を代入して得られる式である。
【図２１】図２０に示す式を構成する各項の係数を、各桁ごとに整理して示すテーブルである。
【図２２】本発明の一実施形態に係る線形補間演算器の基本構成要素を示す図である。
【図２３】本発明の一実施形態に係る線形補間演算器の第１の部分を示す回路図である。
【図２４】本発明の一実施形態に係る線形補間演算器の第２の部分を示す回路図である。
【図２５】本発明の一実施形態に係る線形補間演算器の第３の部分を示す回路図である。
【図２６】本発明に係る線形補間演算器の全体構成を示すブロック図である。
【符号の説明】
【０１０９】
１０：第１の補間対象値入力手段
２０：第２の補間対象値入力手段
３０：補間割合決定値入力手段
４０：演算手段
５０：演算値出力手段
１００〜１２０：セレクタ
２００〜２０４：２−２カウンタ
３００〜３１２：３−２カウンタ
【図１】
0004490380.tif 000002
【図２】
0004490380.tif 000003
【図３】
0004490380.tif 000004
【図４】
0004490380.tif 000005
【図５】
0004490380.tif 000006
【図６】
0004490380.tif 000007
【図７】
0004490380.tif 000008
【図８】
0004490380.tif 000009
【図９】
0004490380.tif 000010
【図１０】
0004490380.tif 000011
【図１１】
0004490380.tif 000012
【図１２】
0004490380.tif 000013
【図１３】
0004490380.tif 000014
【図１４】
0004490380.tif 000015
【図１５】
0004490380.tif 000016
【図１６】
0004490380.tif 000017
【図１７】
0004490380.tif 000018
【図１８】
0004490380.tif 000019
【図１９】
0004490380.tif 000020
【図２０】
0004490380.tif 000021
【図２１】
0004490380.tif 000022
【図２２】
0004490380.tif 000023
【図２３】
0004490380.tif 000024
【図２４】
0004490380.tif 000025
【図２５】
0004490380.tif 000026
【図２６】
0004490380.tif 000027