(57)【要約】  【課題】簡易な構成、手順で高精度の対数値を高速に演算することができる対数演算装置とその方法、プログラムならびにカメラ装置を提供する。  【解決手段】入力データＸにおいて非ゼロの最も重みの大きい桁ｓ０が第１の桁検出部１０において検出され、この桁ｓ０の重みに応じた基準値ＢＡＳＥが基準値取得部３０において取得される。また、入力データＸの各桁のうち、桁ｓ０の次に重みの大きい非ゼロの桁ｓ１が第２の桁検出部２０において検出され、仮数値取得部４０では、桁ｓ０から桁ｓ１までの桁範囲における入力データＸのデータパターンに応じた仮数値ＴＥＭＰ１が取得される。そして、取得された基数値ＢＡＳＥおよび仮数値ＴＥＭＰ１が加算部９０において加算され、対数変換値Ｇが得られる。【選択図】      図１
2005196574.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ進法（Ｎは１より大きい整数を示す）で表現された入力データにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１の桁検出手段と、
上記第１の桁検出手段において検出される桁の重みに応じた第１の対数値を取得する第１の対数値取得手段と、
上記入力データにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１の桁検出手段において検出される桁から、重みの大きい順に所定数の桁を検出する第２の桁検出手段と、
上記第１の桁検出手段において検出される桁から、上記第２の桁検出手段において検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた第２の対数値を取得する第２の対数値取得手段と、
上記第１の対数値および上記第２の対数値を加算する加算手段と、
を有する対数演算装置。
【請求項２】
上記第２の対数値取得手段は、上記第２の桁検出手段において検出される上記所定数の桁の最下位より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、上記第１の桁検出手段において検出される桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第２の対数値を取得する、
請求項１に記載の対数演算装置。
【請求項３】
上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第３の対数値を取得する第３の対数値取得手段と、
上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第４の対数値取得手段と、
を有し、
上記加算手段は、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する、
請求項１に記載の対数演算装置。
【請求項４】
上記入力データに含まれ得る上記データパターンの情報と、該データパターンに対応する上記第２の対数値とを関連付けて記憶する第１のデータテーブルを有し、
上記第２の対数値取得手段は、上記第１のデータテーブルを参照して上記第２の対数値を取得する、
請求項１に記載の対数演算装置。
【請求項５】
上記入力データに含まれ得る上記データパターンの情報と、該データパターンに対応する上記第３の対数値とを関連付けて記憶する第２のデータテーブルを有し、
上記第３の対数値取得手段は、上記第２のデータテーブルを参照して上記第３の対数値を取得する、
請求項３に記載の対数演算装置。
【請求項６】
Ｎ進法（Ｎは１より大きい整数を示す）で表現された入力データにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１の工程と、
上記第１の工程において検出される桁の重みに応じた第１の対数値を取得する第２の工程と、
上記入力データにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１の工程において検出される桁から、重みの大きい順に所定数の桁を検出する第３の工程と、
上記第１の工程において検出される桁から、上記第３の工程において検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた第２の対数値を取得する第４の工程と、
上記第１の対数値および上記第２の対数値を加算する第５の工程と、
を有する対数演算方法。
【請求項７】
上記第３の工程において検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第３の対数値を取得する第６の工程と、
上記第３の工程において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第７の工程と、
を有し、
上記第５の工程においては、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する、
請求項６に記載の対数演算方法。
【請求項８】
Ｎ進法（Ｎは１より大きい整数を示す）で表現された入力データにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１のステップと、
上記第１のステップにおいて検出される桁の重みに応じた第１の対数値を取得する第２のステップと、
上記入力データにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１のステップにおいて検出される桁から、重みの大きい順に所定数の桁を検出する第３のステップと、
上記第１のステップにおいて検出される桁から、上記第３のステップにおいて検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた第２の対数値を取得する第４のステップと、
上記第１の対数値および上記第２の対数値を加算する第５のステップと、
を有する処理をコンピュータに実行させるプログラム。
【請求項９】
上記第３のステップにおいて検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第３の対数値を取得する第６のステップと、
上記第３のステップにおいて検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第７のステップと、
を有し、
上記第５のステップにおいては、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する、
請求項８に記載のプログラム。
【請求項１０】
入力される第１の制御信号に応じて露光時間を制御する撮像手段と、
上記撮像手段において生成される撮像信号を、入力される第２の制御信号に応じたゲインで増幅する増幅手段と、
上記増幅手段において増幅された撮像信号に基づいて算出される撮像画像の光量と目標の光量との比の対数値に応じて上記第１の制御信号および上記第２の制御信号を生成する制御信号生成手段と、
を有し、
上記制御信号生成手段は、
Ｎ進法（Ｎは１より大きい整数を示す）で表現された上記比のデータにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１の桁検出手段と、
上記第１の桁検出手段において検出される桁の重みに応じた第１の対数値を取得する第１の対数値取得手段と、
上記比のデータにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１の桁検出手段において検出される桁から、重みの大きい順に所定数の桁を検出する第２の桁検出手段と、
上記第１の桁検出手段において検出される桁から、上記第２の桁検出手段において検出される所定数の桁のうちの最下位桁までの桁範囲における上記比のデータのデータパターンに応じた第２の対数値を取得する第２の対数値取得手段と、
上記第１の対数値および上記第２の対数値を加算する加算手段と、を含む、
カメラ装置。
【請求項１１】
上記制御信号生成手段は、
上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記比のデータの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記比のデータの対数値との差に応じた第３の対数値を取得する第３の対数値取得手段と、
上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第４の対数値取得手段と、
を有し、
上記加算手段は、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する、
請求項１０に記載のカメラ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は対数演算装置とその方法、対数演算をコンピュータにおいて実行させるためのプログラム、ならびに、対数演算装置を有するカメラ装置に関するものである。
【背景技術】
【０００２】
例えばカメラ装置における露光やオーディオ装置の出力ゲインなどをデジタル制御する場合、目標量に対して制御対象量が大きく変動するため、両者の誤差を対数値に変換して処理することが多い。
【０００３】
対数値の演算には、従来、折れ線近似法やテイラー展開法に基づくアルゴリズムが用いられている。
【０００４】
折れ線近似法によるアルゴリズムは、例えば特許文献１に記載されるように、対数関数の変域を複数の区間に区分して、各区間を直線関数で近似するものである。すなわち、入力データの上位ビットに基づいて、入力データが含まれる区間を特定し、その区間について予め記憶装置に記憶されている直線関数の切片や傾き等の情報に基づいて、入力データの対数の近似値を算出する。
【０００５】
また、テイラー展開法によるアルゴリズムは、対数関数をテイラー展開法に基づいて多項式に展開し、乗算や加算の反復によって入力データの対数の近似値を算出するものである。
【特許文献１】特開昭６１−２８３９６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、折れ線近似法によるアルゴリズムは一般に精度が低いという不利益があり、実用的には例えば０．５ｄＢ程度の誤差を生じる。この精度を高めようとすると、直線関数の区間をより狭くする必要があるため、記憶装置に格納すべきデータ量が非常に多くなってしまう。
【０００７】
また、テイラー展開法によるアルゴリズムは乗算や加算を多数回反復して演算結果を得るため、処理の負荷が非常に重く、演算に要する時間が長いという不利益がある。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その第１の目的は、簡易な構成、手順でありながら、精度の高い対数値を高速に演算することができる対数演算装置とその方法、プログラムを提供することにある。また、第２の目的は、そのような対数演算装置を設けることにより、簡易な構成でありながら高い精度で高速に露光時間の制御や撮像信号のゲイン制御を行うことができるカメラ装置を提供することにある。
【課題を解決するための手段】
【０００９】
第１の発明の対数演算装置は、Ｎ進法（Ｎは１より大きい整数を示す）で表現された入力データにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１の桁検出手段と、上記第１の桁検出手段において検出される桁の重みに応じた第１の対数値を取得する第１の対数値取得手段と、上記入力データにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１の桁検出手段において検出される桁から、重みの大きい順に所定数の桁を検出する第２の桁検出手段と、上記第１の桁検出手段において検出される桁から、上記第２の桁検出手段において検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた第２の対数値を取得する第２の対数値取得手段と、上記第１の対数値および上記第２の対数値を加算する加算手段とを有する。
【００１０】
上記第１の発明によれば、Ｎ進法で表現された上記入力データの各桁の中で、１から（Ｎ−１）までの値を有する最も重みの大きい桁が上記第１の桁検出手段において検出される。この検出された桁の重みに応じた対数値が、上記第１の対数値として上記第１の対数値取得手段により取得される。
また、上記入力データの各桁のうち１から（Ｎ−１）までの値を有する桁であって、上記第１の桁検出手段で検出される桁から重みの大きい順に所定数の桁が上記第２の桁検出手段において検出される。上記第２の対数値取得手段においては、上記第１の桁検出手段で検出される桁から、上記第２の桁検出手段で検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた対数値が、上記第２の対数値として取得される。上記第２の対数値は、例えば、上記第２の桁検出手段において検出される上記所定数の桁の最下位より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、上記第１の桁検出手段において検出される桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた値を有する。
そして、取得された上記第１の対数値および上記第２の対数値が上記加算手段において加算され、この加算結果に応じて上記入力データの対数の近似値が得られる。
したがって、簡易な構成でありながら、加算や乗算を反復する等の複雑な処理を行うことなく高速に上記入力データの対数値が得られる。
【００１１】
また、上記第１の発明は、上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第３の対数値を取得する第３の対数値取得手段と、上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第４の対数値取得手段とを有することが望ましい。
この場合、上記加算手段は、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する。
【００１２】
上記の構成によると、上記第２の桁検出手段で検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた対数値が、上記第３の対数値として上記第３の対数値取得手段により取得される。
また、上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた対数値が、上記第４の対数値として上記第４の対数値取得手段により取得される。
そして、取得された上記第１の対数値、上記第２の対数値および上記第４の対数値が上記加算手段において加算され、この加算結果に応じて上記入力データの対数の近似値が得られる。
したがって、簡易な構成でありながら、複雑な処理を行うことなく高速に、精度の高い対数値が得られる。
【００１３】
更に、上記第１の発明は、上記入力データに含まれ得る上記データパターンの情報と、該データパターンに対応する上記第２の対数値とを関連付けて記憶する第１のデータテーブルを有しても良く、上記第２の対数値取得手段は、この第１のデータテーブルを参照して上記第２の対数値を取得しても良い。
また、上記入力データに含まれ得る上記データパターンの情報と、該データパターンに対応する上記第３の対数値とを関連付けて記憶する第２のデータテーブルを有しても良く、上記第３の対数値取得手段は、この第２のデータテーブルを参照して上記第３の対数値を取得しても良い。
【００１４】
第２の発明の対数演算方法は、Ｎ進法（Ｎは１より大きい整数を示す）で表現された入力データにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１の工程と、上記第１の工程において検出される桁の重みに応じた第１の対数値を取得する第２の工程と、上記入力データにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１の工程において検出される桁から、重みの大きい順に所定数の桁を検出する第３の工程と、上記第１の工程において検出される桁から、上記第３の工程において検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた第２の対数値を取得する第４の工程と、上記第１の対数値および上記第２の対数値を加算する第５の工程とを有する。
好適には、上記第３の工程において検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第３の対数値を取得する第６の工程と、上記第３の工程において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第７の工程とを有し、上記第５の工程においては、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する。
【００１５】
第３の発明のプログラムは、Ｎ進法（Ｎは１より大きい整数を示す）で表現された入力データにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１のステップと、上記第１のステップにおいて検出される桁の重みに応じた第１の対数値を取得する第２のステップと、上記入力データにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１のステップにおいて検出される桁から、重みの大きい順に所定数の桁を検出する第３のステップと、上記第１のステップにおいて検出される桁から、上記第３のステップにおいて検出される所定数の桁のうちの最下位桁までの桁範囲における上記入力データのデータパターンに応じた第２の対数値を取得する第４のステップと、上記第１の対数値および上記第２の対数値を加算する第５のステップとを有する処理をコンピュータに実行させる。
好適には、上記第３のステップにおいて検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記入力データの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記入力データの対数値との差に応じた第３の対数値を取得する第６のステップと、上記第３のステップにおいて検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第７のステップとを有し、上記第５のステップにおいては、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する。
【００１６】
第４の発明のカメラ装置は、入力される第１の制御信号に応じて露光時間を制御する撮像手段と、上記撮像手段において生成される撮像信号を、入力される第２の制御信号に応じたゲインで増幅する増幅手段と、上記増幅手段において増幅された撮像信号に基づいて算出される撮像画像の光量と目標の光量との比の対数値に応じて上記第１の制御信号および上記第２の制御信号を生成する制御信号生成手段とを有し、上記制御信号生成手段は、Ｎ進法（Ｎは１より大きい整数を示す）で表現された上記比のデータにおいて、１から（Ｎ−１）までの値を有する最も重みの大きい桁を検出する第１の桁検出手段と、上記第１の桁検出手段において検出される桁の重みに応じた第１の対数値を取得する第１の対数値取得手段と、上記比のデータにおいて１から（Ｎ−１）までの値を有する桁であって、上記第１の桁検出手段において検出される桁から、重みの大きい順に所定数の桁を検出する第２の桁検出手段と、上記第１の桁検出手段において検出される桁から、上記第２の桁検出手段において検出される所定数の桁のうちの最下位桁までの桁範囲における上記比のデータのデータパターンに応じた第２の対数値を取得する第２の対数値取得手段と、上記第１の対数値および上記第２の対数値を加算する加算手段とを含む。
好適には、上記制御信号生成手段は、上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値が全て０であると仮定した場合の上記比のデータの対数値と、該最下位桁に隣接する下位桁が所定の値であるとともに該隣接する下位桁より更に下位の桁の値が全て０であると仮定した場合の上記比のデータの対数値との差に応じた第３の対数値を取得する第３の対数値取得手段と、上記第２の桁検出手段において検出される上記最下位桁より下位の桁の値と、該下位の桁の重みが該最下位桁に隣接する下位桁の重みに対して有する比率と、上記第３の対数値との積に応じた第４の対数値を取得する第４の対数値取得手段とを有し、上記加算手段は、上記第１の対数値、上記第２の対数値および上記第４の対数値を加算する。
【発明の効果】
【００１７】
本発明によれば、簡易な構成でありながら、精度の高い対数値を高速に演算することができる対数演算装置とその方法、プログラムを提供することができる。また、簡易な構成でありながら高い精度で高速に露光時間の制御や撮像信号のゲイン制御を行うことができるカメラ装置を提供することができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態について述べる前に、本発明において利用される対数の性質と近似法の概要について説明する。
【００１９】
Ｎ進法（Ｎは１より大きい整数を示す）で表現された異なる数が互いに等しい数字の並び（データパターン）を持っている場合、この数を真数として底がＮの対数を求めると、その対数の仮数は互いに等しくなる性質がある。
例えば、等しいデータパターンを持つ１０進数（１．２３），（１２．３），（１２３）をそれぞれ真数として底が１０の対数を求めると、以下に示すように、その仮数は何れも（０．０８９９）になる。
【００２０】
【数１】
2005196574.tif 000003
【００２１】
同様に、等しいビットパターンを持つ２進数（０１０１）B，（１０１０）B，（１０１００）Bをそれぞれ真数として底が２の対数を求めると、以下に示すように、その仮数は何れも（０．３２１９）になる。
【００２２】
【数２】
2005196574.tif 000004
【００２３】
後述する本発明の実施形態では、このような対数の自己相似性（フラクタル性）を利用して、入力データのデータパターンに応じた対数値を求めている。
【００２４】
また、本実施形態では、データパターンに応じて求めた上述の対数値の誤差を補正するために、以下に述べる近似に基づいて端数値を算出している。
【００２５】
数ＸをＬ桁のＮ進法で表現すると、次式のようになる。
【００２６】
【数３】
2005196574.tif 000005
【００２７】
ただし、式（１）における記号‘ｂ（ｐ）’は第ｐ桁の値を示しており、０から（Ｎ−１）までの何れかの整数である。
この値ｂ（ｐ）が１から（Ｎ−１）までの値、すなわち非ゼロの値となる桁ｐを、上位から順に第ｓ０桁，第ｓ１桁，第ｓ２桁，…とすると、数Ｘは次式のように表される。
【００２８】
【数４】
2005196574.tif 000006
【００２９】
ただし、式（２）における項Ｔ１，Ｔ２，Ｔ３はそれぞれ次式で表される。
【００３０】
【数５】
2005196574.tif 000007
【００３１】
式（５）に示す項Ｔ３は、更に次式のように変形できる。
【００３２】
【数６】
2005196574.tif 000008
【００３３】
ただし、式（６）における係数θおよび指数ｒ２，ｒ３，…は次式で表される。
【００３４】
【数７】
2005196574.tif 000009
【００３５】
ここで、式（６）における右辺第２項が１より十分小さいものとすると、項Ｔ３を真数とした底ａの対数ｌｏｇaＴ３は次式のように近似することができる。
【００３６】
【数８】
2005196574.tif 000010
【００３７】
式（９）において、記号‘ｌｎ ａ’は数ａの自然対数を示す。
また、係数θが１より十分小さいものとすると、（１＋θ）を真数とした底ａの対数ｌｏｇa（１＋θ）は次式のように近似することができる。
【００３８】
【数９】
2005196574.tif 000011
【００３９】
式（９）へ式（１０）を代入すると、次式が成立する。
【００４０】
【数１０】
2005196574.tif 000012
【００４１】
一方、式（７）を用いると、対数ｌｏｇa（１＋θ）は次式のように表すことができる。
【００４２】
【数１１】
2005196574.tif 000013
【００４３】
式（１２）の数Ｘ１は、式（１）に示す数Ｘにおいて第ｓ１桁より下位の桁（すなわち第（ｓ１−１）桁〜第０桁）の値が全て０と仮定した場合の数である。また、式（１２）の数Ｘ２は、数Ｘにおいて第（ｓ１−１）桁の値が１であるとともにこれより下位の桁（すなわち第（ｓ２−１）桁〜第０桁）の値が全て０と仮定した場合の数である。
以上の結果をまとめると、数Ｘを真数とした底ａの対数ｌｏｇaＸは次式のように近似することが可能である。
【００４４】
【数１２】
2005196574.tif 000014
【００４５】
式（１３）の第１項は、数Ｘの全Ｌ桁の中より、１から（Ｎ−１）までの値（すなわち非ゼロの値）を有する最も重みの大きい桁（第ｓ０桁）を検出し、その検出結果に基づいて求めることが可能である。特に、底ａがＮと等しい場合、第１項は‘ｓ０’と等しくなる。
【００４６】
式（１３）の第２項は、数Ｘの全Ｌ桁の中より、最も重みの大きい非ゼロの桁（第ｓ０桁）とその次に重みの大きい非ゼロの桁（第ｓ１桁）を検出し、その検出結果に基づいて（例えば予め用意したデータテーブルを参照する等により）求めることが可能である。すなわち、第２項は、数Ｘにおける非ゼロの上位２桁のデータパターンに応じて求めることが可能である。
【００４７】
一方、式（１３）の第３項は、上述した第１項および第２項の対数値の誤差を補正するために加算される端数値の項である。
【００４８】
この第３項を構成する２つの積項のうち、左側の積項（ｌｏｇaＸ2−ｌｏｇaＸ1）については、上述の第２項と同様に、数Ｘにおける非ゼロの上位２桁のデータパターンに応じて、データテーブルの参照等により求めることが可能である。
【００４９】
第３項における右側の積項については、第ｓ１桁より下位の非ゼロの桁（ｓ２，ｓ３，…）を更に検出し、この検出結果に乗算や加算等の簡易な演算を施すことによって求めることができる。
すなわち、この積項中における係数（１／Ｎr2），（１／Ｎr3），…は、第ｓ２桁，第ｓ３桁，…の重みＮs2，Ｎs3，…と、第（ｓ１−１）桁の重みＮs1-1との比率である。この比率を、それぞれの桁の値ｂ（ｓ２），ｂ（ｓ３），…に乗じて積算することにより、この積項を求めることができる。
【００５０】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る対数演算装置の構成の一例を示すブロック図である。
【００５１】
本実施形態に係る対数演算装置は、入力される数値データＸの対数変換値Ｇを算出するものである。
アンプのゲイン等を制御する場合においては、一般にデジベル単位の対数変換値が用いられる。デジベル単位の場合、数値データＸに対する対数変換値は常用対数を２０倍（２０ｌｏｇ10Ｘ）して求められるが、本実施形態では、コンピュータ上での計算が容易な次式の対数変換値Ｇを算出するものとする。
【００５２】
【数１３】
2005196574.tif 000015
【００５３】
なお、本実施形態においては、一例として、全ての演算を整数で行うものとする。すなわち、演算の過程で生じる小数部は切り捨てるものとする。
【００５４】
また、以降の説明において、入力データＸは２進数で表現されているものとし、その最下位桁から順に第０桁，第１桁，…，第ｐ桁，…と表記する。
【００５５】
更に、入力データＸの各桁のうち値が１の桁を、重みが大きい順に第ｓ０桁，第ｓ１桁，第ｓ２桁，…と表記する。
例えば、１６桁の２進数
（０００１０１１０１１００００００）B
の場合、図２に示すように、ｓ０＝１２，ｓ１＝１０，ｓ２＝９，ｓ３＝７，ｓ４＝６である。
【００５６】
図１に示す対数演算装置は、第１の桁検出部１０と、第２の桁検出部２０と、基準値取得部３０と、仮数値取得部４０と、第１のデータテーブル５０と、端数基準値取得部６０と、第２のデータテーブル７０と、端数値取得部８０と、加算部９０とを有する。
第１の桁検出部１０は、本発明の第１の桁検出手段の一実施形態である。
第２の桁検出部２０は、本発明の第２の桁検出手段の一実施形態である。
基数値取得部３０は、本発明の第１の対数値取得手段の一実施形態である。
仮数値取得部４０は、本発明の第２の対数値取得手段の一実施形態である。
第１のデータテーブル５０は、本発明の第１のデータテーブルの一実施形態である。
端数基準値取得部６０は、本発明の第３の対数値取得手段の一実施形態である。
第２のデータテーブル７０は、本発明の第２のデータテーブルの一実施形態である。
端数値取得部８０は、本発明の第４の対数値取得手段の一実施形態である。
加算部９０は、本発明の加算手段の一実施形態である。
【００５７】
第１の桁検出部１０は、入力データＸの各桁のうち、値が１の最も重みの大きい桁ｓ０を検出する。
例えば、入力データＸの最上位ビットから順に値が１のビットデータとの論理積を演算し、その演算結果が１となる桁を検出する。
【００５８】
基数値取得部３０は、第１の桁検出部１０において検出される第ｓ０桁の重み２s0に応じた対数値ＢＡＳＥを取得する。
対数値ＢＡＳＥは、次式で表される。
【００５９】
【数１４】
2005196574.tif 000016
【００６０】
この対数値ＢＡＳＥは、式（１３）における第１項に対応する対数値であり、以降の説明ではこれを基数値ＢＡＳＥと呼ぶことにする。
第１の桁検出部１０において桁ｓ０が検出されると、基数値取得部３０はこの式（１５）に基づいて基数値ＢＡＳＥを算出する。
【００６１】
第２の桁検出部２０は、入力データＸにおいて値が１の桁であって、第１の桁検出部１０において検出される桁ｓ０の次に重みの大きい桁ｓ１を検出する。
例えば、第１の桁検出部１０において検出される桁ｓ０の下位桁から順に値が１のビットデータとの論理積を演算し、その演算結果が１となる最初の桁を検出する。
【００６２】
仮数値取得部４０は、第１の桁検出部１０において検出される桁ｓ０から第２の桁検出部２０において検出される桁ｓ１までの桁範囲における入力データＸのビットパターンに応じた対数値ＴＥＭＰ１を取得する。
対数値ＴＥＭＰ１は、次式で表される。
【００６３】
【数１５】
2005196574.tif 000017
【００６４】
この対数値ＴＥＭＰ１は、式（１３）における第２項に対応する対数値であり、以降の説明ではこれを仮数値ＴＥＭＰ１と呼ぶことにする。
【００６５】
式（１６）から分かるように、仮数値ＴＥＭＰ１は、桁ｓ１より下位の桁の値が全て０であると仮定した場合の入力データ（２s0＋２s1）の対数値と、桁ｓ０より下位の桁の値が全て０であると仮定した場合の入力データ（２s0）の対数値との差に応じた値を有している。
すなわち、仮数値ＴＥＭＰ１は、非ゼロの上位２ビット（ｓ０，ｓ１）のビットパターンに対応する値を有する。
仮数値取得部４０は、第１の桁検出部１０および第２の桁検出部２０において桁ｓ０，ｓ１が検出されると、この桁ｓ０，ｓ１に対応する仮数値ＴＥＭＰ１を次に述べる第１のデータテーブル５０から読み出す。
【００６６】
第１のデータテーブル５０は、入力データＸに含まれ得る非ゼロの上位２ビット（ｓ０，ｓ１）のビットパターンの情報と、このビットパターンに対応する仮数値ＴＥＭＰ１とを関連付けて記憶する。
例えば、図３に示すように、桁ｓ０と桁ｓ１との差（ｓ０−ｓ１）と仮数値ＴＥＭＰ１とを関連付けて記憶する。なお、差（ｓ０−ｓ１）が１１以上になると、式（１６）で算出される仮数値は１より小さくなるため、この場合、仮数値ＴＥＭＰ１は０として処理される。
【００６７】
端数基準値取得部６０は、第２の桁検出部２０において検出される桁ｓ１より下位の桁の値が全て０であると仮定した場合の入力データ（２s0＋２s1）の対数値と、この桁ｓ１に隣接する下位桁（ｓ１−１）の値が１であるとともに、この下位桁（ｓ１−１）より更に下位の桁の値が全て０であると仮定した場合の入力データ（２s0＋２s1＋２s1-1）の対数値との差に応じた対数値ＴＥＭＰ３を取得する。
対数値ＴＥＭＰ２は、次式のように表される。
【００６８】
【数１６】
2005196574.tif 000018
【００６９】
この対数値ＴＥＭＰ２は、式（１３）における第３項の左側の積項（式（１２）の項）に対応する対数値であり、以降の説明ではこれを端数基準値ＴＥＭＰ２と呼ぶことにする。
【００７０】
式（１７）から分かるように、端数基準値ＴＥＭＰ２は、非ゼロの上位２ビット（ｓ０，ｓ１）のビットパターンに対応する値を有する。
端数基準値取得部６０は、第１の桁検出部１０および第２の桁検出部２０において桁ｓ０，ｓ１が検出されると、この桁ｓ０，ｓ１に対応する端数基準値ＴＥＭＰ２を次に述べる第２のデータテーブル７０から読み出す。
【００７１】
第２のデータテーブル７０は、入力データＸに含まれ得る非ゼロの上位２ビット（ｓ０，ｓ１）のビットパターンの情報と、このビットパターンに対応する端数基準値ＴＥＭＰ２とを関連付けて記憶する。
例えば、図４に示すように、桁ｓ０と桁ｓ１との差（ｓ０−ｓ１）と端数基準値ＴＥＭＰ２とを関連付けて記憶する。なお、差（ｓ０−ｓ１）が９以上になると、式（１７）で算出される端数基準値は１より小さくなるため、この場合、端数基準値ＴＥＭＰ２は０として処理される。
【００７２】
端数値取得部８０は、第２の桁検出部２０において検出される桁ｓ１より下位の桁（ｓ１−１，…，０）の値と、該下位の桁の重みが桁（ｓ１−１）の重み（２s1-1）に対して有する比率と、端数基準値ＴＥＭＰ２との積に応じた対数値ＴＥＭＰ３を取得する。
第ｍ桁（ｍは、（ｓ１−１）から０までの整数を示す）に対応する対数値ＴＥＭＰ３（ｍ）は次式のように表される。
【００７３】
【数１７】
2005196574.tif 000019
【００７４】
ただし、式（１８）において、記号‘ｂ（ｍ）’は第ｍ桁の値（整数０または１）を示す。
第２の桁検出部２０において桁ｓ１が検出され、端数基準値部６０において端数基準値ＴＥＭＰ２が取得されると、端数値取得部８０は、式（１８）に基づいて、第（ｓ１−１）桁，…，第０桁に対応する対数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）をそれぞれ算出する。
【００７５】
対数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）を積算した値は、式（１３）の第３項に対応する。以降の説明では、これらの対数値を端数値と呼ぶことにする。
【００７６】
加算部９０は、基数値ＢＡＳＥ、仮数値ＴＥＭＰ１、および端数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）を加算し、この加算結果を入力データＸの対数変換値Ｇとして出力する。
対数変換値Ｇは、次式のように表される。
【００７７】
【数１８】
2005196574.tif 000020
【００７８】
ここで、上述した構成を有する図１に示す対数演算装置の動作について、図５および図６のフローチャートを参照して説明する。
【００７９】
ステップＳＴ１：
第１の桁検出部１０において、入力データＸの各桁の中から値が１の最も重みの大きい桁ｓ０が検出される。基準値取得部３０では、この検出された桁ｓ０の重み（２s0）に応じた基数値ＢＡＳＥが算出される。
【００８０】
ステップＳＴ２：
桁ｓ０が検出されると、第２の桁検出部２０において、この桁ｓ０の次に重みの大きい値が１の桁ｓ１が検出される。仮数値取得部４０では、第１のデータテーブル５０を参照することにより、桁ｓ０から桁ｓ１までの入力データＸのビットパターンに応じた仮数値ＴＥＭＰ１が取得される。
【００８１】
ステップＳＴ３：
桁ｓ０，ｓ１が検出されると、端数基準値取得部６０において、第２のデータテーブル７０を参照することにより、桁ｓ０から桁ｓ１までの入力データＸのビットパターンに応じた端数基準値ＴＥＭＰ２が取得される（ステップＳＴ５）。端数値取得部８０では、取得された端数基準値ＴＥＭＰ２を利用して、桁ｓ１より下位の各桁における端数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）がそれぞれ算出される（ステップＳＴ６）。
【００８２】
ステップＳＴ４：
ステップＳＴ１〜ＳＴ３において取得された基数値ＢＡＳＥ、仮数値ＴＥＭＰ１、端数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）が加算部９０において加算され、対数変換値Ｇが得られる。
【００８３】
以下では、具体的な入力データＸに対する解を求める。入力データＸとして、次の値を入力する。
Ｘ＝（０００１ ０１１０ １１００ ００００）B＝５８２４
【００８４】
ステップＳＴ１：
値が１の最上位桁は第１２桁であるため、ｓ０＝１２である。
したがって、式（１５）より基数値ＢＡＳＥ＝１０２４×１２＝１２２８８となる。
【００８５】
ステップＳＴ２：
第１２桁の次に重みの大きい桁は第１０桁であるため、ｓ１＝１０である。
図３を参照すると、ｓ０＝１２，ｓ１＝１０の場合、すなわちｓ０−ｓ１＝２の場合に、仮数値ＴＥＭＰ１＝３２９となる。
【００８６】
ステップＳＴ３：
図４を参照すると、ｓ０−ｓ１＝２の場合に、端数基準値ＴＥＭＰ２＝１４０となる。
第ｓ１桁（＝第１０桁）より下位の桁（第９桁〜第０桁）の中で値が１の桁は第９桁、第７桁、第６桁の３つである。この３つの桁に対応する端数値ＴＥＭＰ３（９），ＴＥＭＰ３（７），ＴＥＭＰ３（６）は、式（１８）より、それぞれ次のようになる。
ＴＥＭＰ３（９）＝ＴＥＭＰ２／２s1-1-9＝１４０／１＝１４０；  
ＴＥＭＰ３（７）＝ＴＥＭＰ２／２s1-1-7＝１４０／２2＝３５；  
ＴＥＭＰ３（６）＝ＴＥＭＰ２／２s1-1-6＝１４０／２3＝１７；  
【００８７】
ステップＳＴ４：
上記ステップで求めた基数値ＢＡＳＥ、仮数値ＴＥＭＰ１、端数値ＴＥＭＰ３（９），ＴＥＭＰ３（７），ＴＥＭＰ３（６）を加算すると、対数変換値Ｇは次のようになる。
Ｇ＝１２８０９＋３２９＋１４０＋３５＋１７＝１２８０９：
真値ｌｏｇ2５８２４＝１２８０８であるため、計算誤差はデジベル換算で＋０．００８ｄＢである。
【００８８】
図７は、上述した対数演算装置において算出される対数変換値Ｇと真値との誤差を示す図である。図７において、横軸は真値を示し、縦軸は対数変換値Ｇと真値との誤差（単位：デジベル）を示す。
このように、本実施形態に係る対数演算装置では、０．０５ｄＢ程度の誤差で対数変換値Ｇが得られる。この誤差は、０．５ｄＢ程度の誤差を持つ折れ線近似アルゴリズムと比較して非常に小さい。
【００８９】
以上説明したように、本実施形態に係る対数演算装置によれば、入力データＸの各桁の中で、値が１の最も重みの大きい桁ｓ０が第１の桁検出部１０において検出される。この検出された桁ｓ０の重みに応じた対数値が、基数値ＢＡＳＥとして基数値取得部３０により取得される。また、入力データＸの各桁のうち、第１の桁検出部１０で検出される桁ｓ０の次に重みの大きい桁ｓ１が第２の桁検出部２０において検出される。仮数値取得部４０においては、桁ｓ０から桁ｓ１までの桁範囲における入力データＸのデータパターンに応じた対数値が、仮数値ＴＥＭＰ１として取得される。仮数値ＴＥＭＰ１は、桁ｓ１より下位の桁の値が全て０であると仮定した場合の入力データの対数値と、桁ｓ０より下位の桁の値が全て０であると仮定した場合の入力データの対数値との差に応じた値を有する。そして、取得された基数値ＢＡＳＥおよび仮数値ＴＥＭＰ１が加算部９０において加算され、対数変換値Ｇが得られる。
したがって、図３に示すようにデータ数の少ないテーブルを設けた簡易な構成でありながら、加算や乗算を反復する等の複雑な処理を行うことなく高速に入力データＸの対数値を得ることができる。
【００９０】
更に、本実施形態に係る対数演算装置によれば、第２の桁検出部２０で検出される桁ｓ１より下位の桁の値が全て０であると仮定した場合の入力データの対数値と、桁ｓ１に隣接する下位桁（ｓ１−１）の値が１であるとともに、この下位桁（ｓ１−１）より更に下位の桁の値が全て０であると仮定した場合の入力データＸの対数値との差に応じた対数値が、端数基準値ＴＥＭＰ２として端数基準値取得部６０において取得される。また、第２の桁検出部２０において検出される桁ｓ１より下位の桁の値と、この下位の桁の重みが桁（ｓ１−１）の重みに対して有する比率と、端数基準値ＴＥＭＰ２との積に応じた対数値が、端数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）として端数値取得部８０により取得される。そして、取得された端数値ＴＥＭＰ３（ｓ１−１），…，ＴＥＭＰ３（０）が、基数値ＢＡＳＥ、仮数値ＴＥＭＰ１とともに加算部９０において加算され、対数変換値Ｇが得られる。
したがって、図４に示すようにデータ数の少ないテーブルを設けた簡易な構成でありながら、複雑な処理を行うことなく高速に、精度の高い対数値が得られる。
【００９１】
また、底の変換公式
ｌｏｇ10Ｘ＝（ｌｏｇ2Ｘ）／（ｌｏｇ2１０）
を用いれば、得られた対数変換値Ｇを容易に常用対数へ変換することも可能である。
【００９２】
＜第２の実施形態＞
次に、本発明の第２の実施形態について述べる。
第２の実施形態は、上述した第１の実施形態を、プログラムに基づいて処理を実行するＤＳＰ等のプロセッサにより実現したものである。
【００９３】
図８は、本発明の第２の実施形態に係る対数演算装置の構成の一例を示すブロック図である。
図８に例示する対数演算装置は、プログラムに基づいて処理を実行するプロセッサ１１０と、このプログラムを格納するＲＯＭ１２０と、プロセッサ１１０の処理過程において用いられる変数データやプログラム本体を一時的に記憶するＲＡＭ１３０とを有する。なお、ＲＯＭ１２０は、プロセッサ１１０のプログラムに加えて、図３や図４に示すデータテーブルも格納する。
【００９４】
図９および図１０は、プロセッサ１１０によって実行されるプログラムの処理の流れの一例を図解したフローチャートである。
以下、このフローチャートを参照して、本実施形態に係る対数演算装置の動作を説明する。
【００９５】
まず、ステップＳＴ１００において、各変数に初期値が代入される。
変数ｐｏｓには、１６ビットの入力データｘの各ビット値を調べるために用いる変数であり、初期値として１６進数（８０００）Hが代入される。これを２進数で表現すると（１０００ ００００ ００００ ００００）Bとなる。
変数ｎには、初期状態において入力データｘのビット長が代入される。本例においてはｎ＝１６である。
変数ｉは、上述した桁ｓ０と桁ｓ１との差（ｓ０−ｓ１）を格納するための変数であり、初期値は０である。
【００９６】
初期値の代入後、ステップＳＴ１１０〜ステップＳＴ１１４において、入力データｘにおける値が１の最上位桁、すなわち桁ｓ０の検出が行われる。
まず、変数ｎが０より大きいか否か判定される（ステップＳＴ１１０）。変数ｎが０より大きい場合、変数ｎより１が減算された後（ステップＳＴ１１２）、入力データｘと変数ｐｏｓの同一ビット同士の論理積が演算される（ステップＳＴ１１３）。この演算結果が０の場合、変数ｎは右にビットシフトされ（ステップＳＴ１１４）、ステップＳＴ１１０〜ＳＴ１１３の処理が再び実行される。すなわち、変数ｐｏｓの値‘１’のビットを最上位桁（第１５桁）より下位へ向かって順にシフトさせながら、入力データｘと変数ｐｏｓとのビット論理積が実行される。
この演算結果が１になると、入力データｘにおいて変数ｎで示される桁の値が１であることが検出される。この場合の桁ｎが、上述した桁ｓ０である。
【００９７】
なお、上述したループ処理の結果、ステップＳＴ１１０において変数ｎが０より小さくなる場合は、入力データｘに値が１含まれない（すなわちｘ＝０）ため、対数演算結果Ｇには所定のエラー値Ｅｒｒが代入される（ステップＳＴ１１１）。
【００９８】
ステップＳＴ１１３の演算結果が１になり、桁ｓ０が検出されると、ステップＳＴ１１５において式（１５）の演算が実行され、変数Ｂａｓｅに演算結果の基数値が代入される。
【００９９】
次に、ステップＳＴ１２０〜ＳＴ１２５において、桁ｓ０の次に重みの大きい値が１の桁、すなわち桁ｓ１の検出が行われる。
まず、変数ｐｏｓが右へビットシフトされた後（ステップＳＴ１２０）、変数ｎが０より大きいか否か判定される（ステップＳＴ１２１）。変数ｎが０より大きい場合、変数ｎより１が減算された後（ステップＳＴ１２３）、入力データｘと変数ｐｏｓのビット論理積が演算される（ステップＳＴ１２４）。この演算結果が０の場合、変数ｎは右にビットシフトされるとともに、変数ｉに１が加算された後（ステップＳＴ１２５）、ステップＳＴ１２１〜ＳＴ１２４の処理が再び実行される。すなわち、変数ｐｏｓの値‘１’のビットを桁ｓ０より下位へ向かって順にシフトさせながら、入力データｘと変数ｐｏｓとのビット論理積が実行される。また、このビットシフトに伴って変数ｉが１ずつインクリメントされことにより、桁ｓ０と桁ｎとの差に応じた値が変数ｉに順次に格納される。
ステップＳＴ１２４の演算結果が１になると、入力データｘにおいて変数ｎで示される桁の値が１であることが検出される。この場合の桁ｎが、上述した桁ｓ１である。また、このとき変数ｉには、桁ｓ０と桁ｓ１との差（ｓ０−ｓ１）が格納されている。
【０１００】
なお、上述したループ処理の結果、ステップＳＴ１２０において変数ｎが０より小さくなる場合は、桁ｓ０の次に値が１のビットが含まれないため、対数演算結果Ｇには変数Ｂａｓｅに格納された基数値が代入される（ステップＳＴ１２２）。すなわちこの場合、対数演算結果Ｇは基数値と等しくなる。
【０１０１】
ステップＳＴ１２４の演算結果が１になり、桁ｓ１が検出されると、ステップＳＴ１２６において、仮数値のデータテーブル（ＴｅｍｐＴｂｌ１）より変数ｉの値に対応した仮数値が読み出され、変数Ｔｅｍｐ１に代入される。
またステップＳＴ１２７において、端数基準値のデータテーブル（ＴｅｍｐＴｂｌ２）より変数ｉの値に対応した端数基準値が読み出され、変数Ｔｅｍｐ２に代入される。
【０１０２】
次に、ステップＳＴ１３０〜ＳＴ１３５において、桁ｓ１より更に下位に存在する値‘１’の桁が順次に検出され、その端数値が積算される。
まず、変数ｎが０より大きいか否か判定される（ステップＳＴ１３０）。変数ｎが０より大きい場合は、変数ｎより１が減算された後（ステップＳＴ１３１）、入力データｘと変数ｐｏｓとのビット論理積が演算される（ステップＳＴ１３２）。
この演算結果が０の場合、変数ｎは右にビットシフトされるとともに（ステップＳＴ１３３）、変数Ｔｅｍｐ２に格納された端数基準値の値が２分の１にされ（ステップＳＴ１３４）、ステップＳＴ１３０〜ＳＴ１３２の処理が再び実行される。すなわち、変数ｐｏｓの１のビットを桁ｓ１より下位へ向かって順にシフトさせながら、入力データｘと変数ｐｏｓとのビット論理積が実行される。また、このビットシフトに伴って変数Ｔｅｍｐ２に格納された端数基準値の値が２分の１にされることにより、式（１８）に示す端数値がそれぞれの桁について算出され、変数Ｔｅｍｐ２に格納される。
ステップＳＴ１３２の演算結果が１になると、入力データｘにおいて変数ｎで示される桁の値が１であることが検出される。この場合、変数Ｔｅｍｐ２に格納される桁ｎの端数値が、変数Ｚに加算される（ステップＳＴ１３５）。そして、ステップＳＴ１３０〜ＳＴ１３２の処理が再び実行される。
したがって、変数Ｚには、非ゼロの桁の端数値を積算した値が格納される。
【０１０３】
ステップＳＴ１３０において変数ｎが０より小さいと判定された場合は、ステップＳＴ１４０において変数Ｂａｓｅ、Ｔｅｍｐ１，Ｚの加算が行われ、その結果が変数Ｇに代入されて、処理が終了する。この変数Ｇに格納されるデータが、入力データｘの対数変換値である。
【０１０４】
以上説明したように、本実施形態に係る対数変換装置によれば、入力データｘのビット長に相当する回数のビットシフト演算を行いながら基数値、仮数値、端数値を取得することができるため、テイラー展開法による対数演算アルゴリズムに比べて処理ステップが格段に少なくて済む。
したがって、簡易な処理で高速に、精度の高い対数演算結果を得ることができる。また、処理を高速化できることから、従来に比べて低速なプロセッサを用いても、十分高速に演算結果を得ることができる。
しかも、図３および図４に示すように演算に必要とする定数データが少ないため、ＲＯＭ１２０の記憶容量を小さくすることが可能になり、装置の小型化や低消費電力化、コストの削減を図ることができる。
【０１０５】
＜第３の実施形態＞
次に、本発明の第３の実施形態について述べる。
第３の実施形態は、上述した実施形態をカメラ装置に適用したものである。
【０１０６】
図１１は、本発明の第３の実施形態に係るカメラ装置の構成の一例を図解したブロック図である。
図１１に例示するカメラ装置は、光学系２００と、撮像部２１０と、増幅部２２０と、アナログ−デジタル変換器２３０と、信号処理部２４０と、制御信号生成部２５０とを有する。
撮像部２１０は、本発明の撮像手段の一実施形態である。
増幅部２２０は、本発明の増幅手段の一実施形態である。
制御信号生成部２５０は、本発明の制御信号生成手段の一実施形態である。
【０１０７】
光学系２００は、被写体からの光を入射して、撮像部２１０の受光面に導く。
【０１０８】
撮像部２１０は、光学系２００を介して入射した被写体の光を電気信号に変換し、撮像信号として出力する。また、入力される制御信号Ｓ３に応じて、入射光を電気信号に変換する際の露光時間を制御する。
【０１０９】
増幅部２２０は、撮像部２１０より入力した撮像信号を、制御信号Ｓ２に応じたゲインで増幅する。
【０１１０】
アナログ−デジタル変換器２３０は、増幅部２２０より入力したアナログの撮像信号をデジタルの撮像データに変換する。
【０１１１】
信号処理部２４０は、アナログ−デジタル変換器２３０より入力した撮像データに検波やフィルタ処理などの所定の信号処理を施し、所定フォーマットの撮像画像データを生成するとともに、撮像画像の光量に関する信号Ｓ１を生成する。
【０１１２】
制御信号生成部２５０は、信号処理部２４０より入力される撮像画像の光量信号Ｓ１と目標の光量Ｓｒｅｆとの比（Ｓ１／Ｓｒｅｆ）の対数値に応じて、制御信号Ｓ１およびＳ２を生成する。
例えば、この比（Ｓ１／Ｓｒｅｆ）を入力データＸとして上述した対数変換値Ｇを算出し、この値に応じて制御信号Ｓ１およびＳ２を生成する。
【０１１３】
図１２は、制御信号生成部２５０の構成の一例を示すブロック図である。
図１２に例示する制御信号生成部２５０は、エラー量算出部３００と、加算部３１０と、フィルタ３２０と、制御光量算出部３３０と、位相補償部３４０と、制御量算出部３５０とを有する。
【０１１４】
エラー量算出部３００は、光量信号Ｓ１と目標光量Ｓｒｅｆとの比（Ｓ１／Ｓｒｅｆ）の対数値を算出し、この算出結果に応じたエラー量を出力する。エラー量算出部３００には、上述した図１や図８に示す対数演算装置が含まれる。
【０１１５】
加算部３１０は、位相補償部３４０の出力信号とエラー量算出部３００の出力信号とを加算する。
フィルタ部３２０は、加算部３１０より入力した信号に所定のフィルタ処理を行う。
制御光量算出部３３０は、フィルタ部３２０より入力した信号に基づいて、撮像画像の制御光量を決定する。
位相補償部３４０は、制御光量算出部３３０において決定された制御光量に所定の位相補償用の係数を乗じて、加算部３１０に帰還する。
【０１１６】
加算部３１０、フィルタ部３２０、制御光量算出部３３０、位相補償部３４０はフィードバック系を構成しており、エラー量算出部３００において算出されるエラー量に応じて撮像画像の制御光量を調節する。
【０１１７】
制御量算出部３５０は、制御光量算出部３３０において算出される制御光量に基づいて、露光時間の制御信号Ｓ２およびゲインの制御信号Ｓ３を算出する。
【０１１８】
上述した構成を有するカメラ装置によると、光学系２００を介して撮像部２１０に入射される被写体からの光は、撮像部２１０において制御部Ｓ３に応じた露光時間で電気信号に変換され、撮像信号として増幅部２２０に入力される。撮像信号は、増幅部２２０において制御信号Ｓ２に応じたゲインで増幅された後、アナログ−デジタル変換器２３０においてデジタルの撮像データに変換され、信号処理部２４０において所定の信号処理を施される。
【０１１９】
信号処理部２４０の処理結果として撮像画像の光量Ｓ１が算出されると、この算出された光量Ｓ１と目標の光量Ｓｒｅｆとの比（Ｓ１／Ｓｒｅｆ）を対数に変換する演算がエラー量算出部３００において実行され、この演算結果に応じてエラー量が算出される。このエラー量が加算部３１０に入力されると、加算部３１０、フィルタ部３２０、制御光量算出部３３０および位相補償部３４０で構成されるフィードバック系によりエラー量に応じた制御光量が算出され、該制御光量に応じて、露光時間の制御信号Ｓ２およびゲインの制御信号Ｓ３が制御量算出部３５０により算出される。
これにより、撮像された画像の光量が目標の光量に対して有する誤差に応じて、撮像部２１０における露光時間や増幅部２２０におけるゲインが調節される。
【０１２０】
上述したカメラ装置によれば、エラー量の算出に第１の実施形態、第２の実施形態として述べた対数演算装置が用いられることから、エラー量算出部３００の構成を簡易なものにしつつ、高い精度で高速に露光時間の制御や撮像信号のゲイン制御を行うことができる。
【０１２１】
以上、本発明の幾つかの実施形態について述べたが、本発明はこれに限定されるものではなく、種々の改変が可能である。
例えば、上述した実施形態では、２進数の入力データを対数に変換する例が示されているが、本発明はこれに限定されるものではない。すなわち、式（１３）の近似が２以上の任意の整数Ｎについて成立することからも分かるように、１０進数や１６進数など、任意の位取り記法で表現された入力データについても、２進数の場合と同様に処理して対数値を得ることが可能である。
【０１２２】
図１３は、上述の実施形態と同様なアルゴリズムにより、３進法の入力データについて底を３とした対数変換値を算出した際の真値との誤差を示す図である。図１３において、横軸は真値を示し、縦軸は対数変換値と真値との誤差（単位：デジベル）を示す。
このように、３進法の入力データについても、２進数の場合と同様な０．０５ｄＢ程度の非常に小さい誤差で対数変換値を得ることができる。
【０１２３】
また、上述した実施形態では底が２の対数を演算する例が示されているが、本発明はこれに限定されない。式（１３）の近似が任意の正数ａについて成立することからも分かるように、任意の底の対数値を求めることが可能である。
【０１２４】
また、上述の実施形態では、入力データＸにおける非ゼロの上位２桁のビットパターンに応じた仮数値ＴＥＭＰ１を取得しているが、これを拡張して、３桁以上のビットパターンに応じた仮数値ＴＥＭＰ１Ａを取得しても良い。
【０１２５】
この場合、第２の桁検出部においては、第１の桁検出部において検出される桁ｓ０から、重みの大きい順にｋ個（ｋ≧２）の非ゼロの桁ｓ１，ｓ２，…，ｓｋが検出される。
仮数値検出部においては、第１の桁検出部において検出される桁ｓ０から、第２の桁検出手段において検出されるｋ個の桁のうちの最下位桁ｓｋまでの桁範囲における入力データのデータパターンに応じた対数値が、仮数値ＴＥＭＰ１Ａとして取得される。
この仮数値ＴＥＭＰ１Ａは、桁ｓｋより下位の桁の値が全て０であると仮定した場合の入力データの対数値と、桁ｓ０より下位の桁の値が全て０であると仮定した場合の入力データの対数値との差に応じた値であり、次式で表される。
【０１２６】
【数１９】
2005196574.tif 000021
【０１２７】
端数基準値取得部においては、桁ｓｋより下位の桁の値が全て０であると仮定した場合の入力データの対数値と、この桁ｓｋに隣接する下位桁（ｓｋ−１）の値が‘１’であるとともに桁（ｓｋ−１）より更に下位の桁の値が全て０であると仮定した場合の入力データの対数値との差に応じた対数値として、次式に示す端数基準値ＴＥＭＰ２Ａが取得される。
【０１２８】
【数２０】
2005196574.tif 000022
【０１２９】
端数値取得部においては、桁ｓｋより下位の桁の値と、この下位の桁の重みが桁（ｓｋ−１）の重みに対して有する比率と、端数基準値との積に応じた端数値が取得される。
第ｍ桁（ここで、ｍは（ｓｋ−１）から０までの整数を示す）のＴＥＭＰ３Ａ（ｍ）は次式のように表される。
【０１３０】
【数２１】
2005196574.tif 000023
【０１３１】
このような構成を有する場合、ビットパターンの桁数が増えるためにデータテーブルの規模が大きくなってしまうものの、式（６）のθに相当する数値が小さくなるため、近似の精度を更に高めることが可能である。
【０１３２】
また、上述した実施形態では、整数演算により解を求める例が示されているが、これに限らず、固定小数点演算や浮動小数点演算により解を求めても良い。
【０１３３】
また、本発明に係る対数演算装置は、その構成の全てをハードウェアによって実現しても良いし、少なくとも一部の構成をコンピュータとソフトウェアによって実現しても良い。
【図面の簡単な説明】
【０１３４】
【図１】本発明の第１の実施形態に係る対数演算装置の構成の一例を示すブロック図である。
【図２】記号ｓ０，ｓ１，…の意味を説明するための図である。
【図３】第１のデータテーブルに格納されるデータの具体例を示す図である。
【図４】第２のデータテーブルに格納されるデータの具体例を示す図である。
【図５】図１に示す対数演算装置の動作を説明するためのフローチャートである。
【図６】端数値取得処理における処理の流れを説明するためのフローチャートである。
【図７】本実施形態に係る対数演算装置において算出される対数変換値と真値との誤差を示す第１の図である。
【図８】本発明の第２の実施形態に係る対数演算装置の構成の一例を示すブロック図である。
【図９】図８に示す対数演算装置の動作を説明するための第１のフローチャートである。
【図１０】図８に示す対数演算装置の動作を説明するための第２のフローチャートである。
【図１１】本発明の第３の実施形態に係るカメラ装置の構成の一例を図解したブロック図である。
【図１２】制御信号生成部の構成の一例を示すブロック図である。
【図１３】本実施形態に係る対数演算装置において算出される対数変換値と真値との誤差を示す第２の図である。
【符号の説明】
【０１３５】
１０…第１の桁検出部、２０…第２の桁検出部、３０…基準値取得部、４０…仮数値取得部４０、５０…第１のデータテーブル、６０…端数基準値取得部、７０…第２のデータテーブル、８０…端数値取得部、９０…加算部、１１０…プロセッサ、１２０…ＲＯＭ、１３０…ＲＡＭ１３０、２００…光学系、２１０…撮像部、２２０…増幅部、２３０…アナログ−デジタル変換器、２４０…信号処理部、２５０…制御信号生成部、３００…エラー量算出部、３１０…加算部、３２０…フィルタ、３３０…制御光量算出部、３４０…位相補償部、３５０…制御量算出部
【図１】
2005196574.tif 000024
【図２】
2005196574.tif 000025
【図３】
2005196574.tif 000026
【図４】
2005196574.tif 000027
【図５】
2005196574.tif 000028
【図６】
2005196574.tif 000029
【図７】
2005196574.tif 000030
【図８】
2005196574.tif 000031
【図９】
2005196574.tif 000032
【図１０】
2005196574.tif 000033
【図１１】
2005196574.tif 000034
【図１２】
2005196574.tif 000035
【図１３】
2005196574.tif 000036