(57)【要約】【課題】  小型かつ高速な除算器を実現すること。【解決手段】  除算器１は、被除数Ｘを除数Ｋで除算する演算を、除数Ｋに応じた近似に基づいて、被除数Ｘを２のべき乗（２Ｎ）倍した所定要素の加算として処理する（（８）式参照）。また、このとき行われる近似は、除数Ｋとして入力される可能性がある限定された所定値に対応するものであり、加算される各要素における整数部分については十分な精度を有するものである。したがって、ビットシフトおよび加算のみによって除算を行うことができるため、小型かつ高速な除算器を実現することが可能となる。【選択図】  図３
2005128618.tif 000002
【特許請求の範囲】
【請求項１】
被除数Ｘを除数Ｋで除算した結果を算出する除算器であって、
２Ｌ／Ｋ（Ｌは整数）の整数部分を加算要素２Ｎ（Ｎは正の整数）の和によって近似した近似値Ｍに基づいて、Ｘ×（Ｍ／２Ｌ）なる演算を行うことにより除算結果を算出することを特徴とする除算器。
【請求項２】
前記除数Ｋによって定まるＮまでの各整数について、被除数ＸのＭ／２Ｎビットシフト値それぞれを出力するビットシフト値出力手段と、
前記除数Ｋに対応して、所定の前記Ｍ／２Ｎビットシフト値を選択する選択手段と、
前記選択手段によって選択された前記Ｍ／２Ｎビットシフト値それぞれを加算する加算手段と、
を含むことを特徴とする請求項１記載の除算器。
【請求項３】
前記選択手段は、複数の前記除数Ｋについて、前記被除数ＸのＭ／２Ｎビットシフト値それぞれのいずれを選択するかを示す選択情報を記憶しており、該選択情報に基づいて、入力された除数Ｋに対応する前記Ｍ／２Ｎビットシフト値それぞれを選択することを特徴とする請求項２記載の除算器。
【請求項４】
請求項１から３のいずれか１項に記載の除算器を備え、
映像の画素値を積算して得られる積算値を前記被除数Ｘ、該積算値に関わる画素数を前記除数Ｋとして除算を行うことにより輝度を算出し、該輝度に基づいて、前記映像の露出制御を行うことを特徴とする露出制御装置。
【請求項５】
被除数Ｘを除数Ｋで除算した結果を算出するための除算方法であって、
２Ｌ／Ｋ（Ｌは整数）の整数部分を加算要素２Ｎ（Ｎは正の整数）の和によって近似した近似値Ｍに基づいて、Ｘ×（Ｍ／２Ｌ）なる演算を行うことにより除算結果を算出することを特徴とする除算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、除算演算を行うための除算回路、露出制御装置および除算方法に関する。
【背景技術】
【０００２】
従来、情報処理装置において除算演算を行うために、除算器が用いられている。
このような除算器では、除数をＢ、被除数をＡとし、除算結果ＹとしてＡ／Ｂを算出する場合、被除数Ａから除数Ｂを引き、その余りＣをレジスタに格納し、再度余りＣから除数Ｂを引くという動作を繰り返すことが通常行われている。
【０００３】
図８は、従来の除算器の概略構成を示すブロック図である。
図８において、被除数Ａはシフタ２０１に入力され、除数Ｂは減算器２０３および除算制御器２０５に入力される。そして、予め設定された演算精度のビット数Ｄに応じて、被除数Ａがシフタ２０１にてビットシフトされる。
また、マルチプレクサ２０２にて、シフタ２０１によりシフトされた被除数Ａが選択され、この選択された被除数Ａが減算器２０３に入力される。
【０００４】
そして、減算器２０３にて、被除数Ａから除数Ｂが減算され、余りＣがレジスタ２０４および除算制御器２０５に出力される。
そして、除算制御器２０５は、最初の除算サイクルが終了すると、余りＣを格納させるための制御信号ＣＳをレジスタ２０４に出力し、レジスタ２０４は制御信号ＣＳを除算制御器２０５から受け取ると、余りＣを格納する。
【０００５】
そして、除算制御器２０５は、次サイクル以降、マルチプレクサ２０２からの減算器２０３への出力を、シフタ２０１側からレジスタ２０４に切り替えることにより、マルチプレクサ２０２を介してレジスタ２０４に格納されている余りＣを減算器２０３に入力させる。
そして、余りＣが減算器２０３に入力されると、減算器２０３にて、余りＣから除数Ｂが減算され、その時の余りＣがレジスタ２０４および除算制御器２０５に出力される。
以上の動作を繰り返し、余りＣが除数Ｂよりも小さくなると、除算制御器２０５は計算を終了し、演算精度に応じて除算結果Ｙを算出し、外部に出力する。
なお、このような除算方法は、周知のものであり、例えば、特開２００２−１７５１７８号公報等に記載されている。
【特許文献１】特開２００２−１７５１７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の除算器では、被除数Ａおよび除数Ｂによっては、除算計算のサイクル数が異なるとともに、１００〜１０００サイクル以上要することがあり、高速な除算動作の妨げになると言う問題があった。また、このような除算器と、複数のコンパレータおよび乗算器とを併用することによって、演算を高速化することも考えられるが、システムの複雑化を招くと共に、回路規模が増大するという問題があった。
本発明の課題は、小型かつ高速な除算器を実現することである。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明は、
被除数Ｘを除数Ｋで除算した結果を算出する除算器であって、２Ｌ／Ｋ（Ｌは整数）の整数部分を加算要素２Ｎ（Ｎは正の整数）の和によって近似した近似値Ｍに基づいて、Ｘ×（Ｍ／２Ｌ）なる演算を行うことにより除算結果を算出することを特徴としている。
ここで、２Ｌ乗は除算の精度を規定する値であり、要求に応じて、任意に設定することが可能である。
【０００８】
このような構成により、ビットシフトおよび加算のみによって除算を行うことができるため、小型かつ高速な除算器を実現することが可能となる。
また、近似値Ｍは、除数Ｋに応じて用意されるものであるため、除算結果として、十分な精度を確保することが可能である。
また、前記除数Ｋによって定まるＮまでの各整数について、被除数ＸのＭ／２Ｎビットシフト値それぞれを出力するビットシフト値出力手段（例えば、図６のシフタ２１およびその出力をビットシフトする配線処理部分）と、前記除数Ｋに対応して、所定の前記Ｍ／２Ｎビットシフト値を選択する選択手段（例えば、図４の制御部１０および図６のＭＵＸ２２ａ〜２２ｉ）と、前記選択手段によって選択された前記Ｍ／２Ｎビットシフト値それぞれを加算する加算手段（例えば、図６の加算器２３ａ〜２３ｈ）とを含むことを特徴としている。
【０００９】
このような構成により、ビットシフト値出力手段の出力を、選択手段によって適切に選択した上で、加算手段によって加算することができるため、異なる除数Ｋによる除算に対応することが可能となる。
また、前記選択手段は、複数の前記除数Ｋについて、前記被除数ＸのＭ／２Ｎビットシフト値それぞれのいずれを選択するかを示す選択情報（例えば、図５のＬＵＴ）を記憶しており、該選択情報に基づいて、入力された除数Ｋに対応する前記Ｍ／２Ｎビットシフト値それぞれを選択することを特徴としている。
【００１０】
このような構成により、除数Ｋと、選択するべきＭ／２Ｎビットシフト値とを容易に対応付けることができるため、入力される可能性がある除数Ｋの値あるいは除数Ｋの個数が変更された場合にも、変更後の除数Ｋに容易に対応することが可能となる。
また、本発明は、
上記除算器のいずれかを備え、映像の画素値を積算して得られる積算値を前記被除数Ｘ、該積算値に関わる画素数を前記除数Ｋとして除算を行うことにより輝度を算出し、該輝度に基づいて、前記映像の露出制御を行うことを特徴とする露出制御装置である。
【００１１】
即ち、輝度レベルの算出においては、多数の画素について積算された輝度値を、その多数の画素数で除算する処理が繰り返されることから、本発明に係る除算器の高速である特長がさらに有効なものとなる。また、本発明に係る除算器は、小型であることから、製造コストが低く、低消費電力なものとなり、露出制御にさらに適するものとなっている。
また、本発明は、
被除数Ｘを除数Ｋで除算した結果を算出するための除算方法であって、２Ｌ／Ｋ（Ｌは整数）の整数部分を加算要素２Ｎ（Ｎは正の整数）の和によって近似した近似値Ｍに基づいて、Ｘ×（Ｍ／２Ｌ）なる演算を行うことにより除算結果を算出することを特徴としている。
本方法により、小型かつ高速な除算器を実現することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図を参照して本発明に係る除算器の実施の形態を説明する。
初めに、本発明における除算方法について説明する。
本発明においては、撮像装置における露出制御のための輝度値の平均化処理等、除数がある程度固定されている場合を想定している。例えば、ＱＶＧＡ（Quarter Video Graphics Array）、ＣＩＦ（Common Intermediate Format）、ＶＧＡ（VideoGraphics Array）、ＳＶＧＡ（Super Video Graphics Array）、ＸＧＡ（eXtended Graphics Array）、ＳＸＧＡ（）SupereXtended Graphics Array）のサイズの画像において、輝度の平均値（各画素の輝度の積算値／総画素数）を算出する場合には、それぞれの画像において処理単位となるブロックの画素数が決まっていることから、除数が固定値となる。
【００１３】
このような場合に、任意の除数で除算可能な汎用の除算器を用いるとすれば、冗長な回路構成となることから、機能を最適化し、回路規模の縮小および高速化を図ることとする。
即ち、本発明における除算方法においては、入力Ｘ（整数）を除数Ｋ（整数）で除算し、小数部を含む出力Ｙを得ることを目的とする。即ち、
Ｙ＝Ｘ×（１／Ｋ）                                                        （１）
ここで、（１）式を以下の（２）、（３）式のように表現する。
Ｙ≒Ｘ×（Ｍ／２２０）                                                    （２）
１／Ｋ≒Ｍ／２２０                                                        （３）
ここで、Ｍは整数であり、２２０は、除算における精度を規定する値である。
【００１４】
すると、（３）式より、
Ｍ＝ｉｎｔ（２２０／Ｋ＋０．５）                                          （４）
ここで、“ｉｎｔ”は、括弧内の引数の整数部のみを出力する関数を表している。また、“０．５”を加えることにより、（４）式は、四捨五入を意味するものとなる。
次に、上述の整数Ｍの意味を説明する。
【００１５】
なお、説明のために、以下ではＫ＝３０７２（ＱＶＧＡの総画素数）であるものとする。このとき、（１）式は、
Ｙ＝Ｘ×（１／３０７２）                                                  （５）
となり、（４）式によれば、Ｍ＝３４１となる。その結果、（２）式は、次式のように表される。
Ｙ≒Ｘ×（３４１／２２０）                                                （６）
さらに、（５）式は、次式のように表現できる。
Ｙ≒Ｙ’＝Ｘ×（（２５６＋６４＋１６＋４＋１）／２２０）                  （７）
即ち、
Ｙ’＝Ｘ×（１／２１２＋１／２１４＋１／２１６＋１／２１８＋１／２２０）        （８）
この（７）式あるいは（８）式は、係数が２のべき乗で表されていることから、デジタル回路を構成することが容易なものである。
【００１６】
即ち、Ｘ／２Ｎ（Ｎは自然数）の演算は、ビットシフトすることによって実行できるため、（７）式あるいは（８）式を実行する場合、入力Ｘをそれぞれ２０ビット、１８ビット、１６ビット、１４ビット、１２ビット分シフトした値を算出し、その算出結果を加算することによって出力Ｙ’（除算結果）を得ることができる。
したがって、（１）式を（７）式あるいは（８）式のような演算に変換することにより、除算処理をシフタおよび加算器によって実現することが可能となる。
【００１７】
上述の方法に従うと、例えば、前述の各画像形式の場合、“Ｍ”の値は予め把握することができる。
図１は、本実施の形態における各画像形式における除数Ｋを示す図である。
図１において、各形式の画像は、総画素数、処理単位となるブロックのサイズおよびブロックの総画素数が規定されている。なお、本実施の形態では、図２のように、１枚の画像を均等のサイズに２５（５×５）分割したが、ブロックサイズは均等である必要はなく、ブロック総画素数が予め規定されればよい。
【００１８】
図３は、これら各画像形式の場合の除数Ｋ、２２０／Ｋ、Ｍ、値Ｍを２のべき乗で表した値をそれぞれ示す図である。
図３においては、各画像形式の除数Ｋに対応して、２のべき乗表現されたＸの係数が固定値として規定されている。
したがって、２のべき乗の各項に対応するビット分、入力Ｘをビットシフトするシフタによって入力Ｘを所定ビットシフトした値を算出しておき、それらのうち、各画像形式に対応する値を選択して加算することにより、出力Ｙが得られることとなる。
【００１９】
以下、本方法を適用した除算器について説明する。
まず、構成を説明する。
図４は、本実施の形態に係る除算器１の機能構成を示す図である。
図４において、除算器１は、制御部１０と、演算部２０とを含んで構成される。
制御部１０は、除数Ｋとして入力される可能性のある図３の各除数Ｋの値と、２のべき乗表現されたＸの係数とが対応づけられているルックアップテーブル（ＬＵＴ）を記憶している。このＬＵＴは、より具体的には画像形式（除数Ｋ）を与えるコードと、Ｘの係数とが対応付けられたものである。そして、制御部１０は、除数Ｋを与えるコードが入力されると、それに対応する２のべき乗の要素（Ｘ／２Ｎ）に応じて、選択信号SEL-MUX0〜8を演算部２０に出力する。具体的には、入力Ｘが所定ビットシフトされた値それぞれを選択するか否かを示す選択信号SEL-MUX0〜8を演算部２０に出力する。（図６の演算部２０の説明を参照）。
【００２０】
演算部２０は、入力Ｘを所定ビットずつシフトした値を算出し、制御部１０から入力される選択信号によって、それらの値を選択して加算することにより、出力Ｙを算出する。なお、ここでは、入力Ｘは符号なしの２６ビットの整数値であることとする。
図５は、制御部１０が記憶しているＬＵＴの内容を示す図である。
図５において、ＬＵＴには、図６の演算部２０の説明における０〜８ビット左シフトした出力それぞれを選択するか否かが、各画像形式について記憶されており、“０”は選択しないことを示し、“１”は選択することを示している。
【００２１】
図６は、演算部２０の回路構成例を示す図である。
図６において、演算部２０は、シフタ２１と、マルチプレクサ（ＭＵＸ）２２ａ〜２２ｉと、加算器２３ａ〜２３ｈとを含んで構成される。
図６において、シフタ２１は、入力Ｘを２０ビット右シフトして、ＭＵＸ２２ａ〜２２ｊに出力する。なお、入力Ｘを２０ビット右シフトする処理は、式（７）の１／２２０の演算処理に相当する。
【００２２】
各マルチプレクサには、シフタ２１の出力が配線処理によって所定ビットシフトされた値として入力される。この処理は、例えば、式（７）の（２５６＋６４＋１６＋４＋１）の各加算要素に対応した乗算処理に相当する。具体的には、ＭＵＸ２２ａには、シフタ２１の出力が８ビット左シフトされた状態で入力され、同様に、ＭＵＸ２２ｂ〜２２ｉには、シフタ２１の出力がそれぞれ７〜０ビットシフトされた状態で入力される。
【００２３】
ＭＵＸ２２ａ〜２２ｉには、上述のように、シフタ２１の出力が配線処理によって所定ビット左シフトされた値が入力され、各ＭＵＸ２２ａ〜２２ｉは、制御部１０から入力される選択信号SEL-MUX0〜8によって、ビットシフトされたシフタ２１の出力あるいは“０”のいずれかを選択して出力する。
加算器２３ａ〜２３ｈは、それぞれに入力された値を加算して出力する。そして、加算器２３ａ〜２３ｈが順次加算を行うことにより、最終的に、加算器２３ｈによって出力Ｙ（商）が出力されることとなる。この加算処理は、式（７）の（２５６＋６４＋１６＋４＋１）の処理に相当する。
【００２４】
なお、図６においては、シフタ２１によって２０ビット右シフトした値を、さらに配線処理によって所定ビット左シフトする構成を示したが、これらのビットシフトをまとめたビットシフト結果を、配線処理によってＭＵＸ２１ａ〜２１ｉに入力することとしても良い。
図７は、図６におけるビットシフトをまとめた場合の演算部２０の回路構成例を示す図である。
【００２５】
図７においては、ビットシフトをまとめた結果、シフタ２１が不要な構成となっている。
また、演算部２０を図７の回路構成とした場合にも、制御部１０がＭＵＸ２２ａ〜２２ｉを選択するパターンには影響がないため、除数Ｋに応じて、上述の選択信号SEL-MUX0〜8と同様の選択信号を入力すれば良い。
【００２６】
次に、動作を説明する。
図１において、除算器１には、除数Ｋを与えるコードと被除数Ｘとが入力され、除数Ｋを与えるコードは制御部１０に、被除数Ｘは演算部２０に渡される。
制御部１０では、除数Ｋを与えるコードが入力されると、ＬＵＴを参照することにより、ＭＵＸ２２ａ〜２２ｉそれぞれの入力（左シフトされたシフタ２１の出力あるいは“０”）のいずれかを選択するための選択信号SEL-MUX0〜8をＭＵＸ２２ａ〜２２ｉに出力する。
【００２７】
また、演算部２０では、入力された除数Ｘをシフタ２１が２０ビット右シフトし、その出力が、配線処理による左シフトを経て、各ＭＵＸ２２ａ〜２２ｉに入力される。
すると、各ＭＵＸ２２ａ〜２２ｉは、それぞれに入力されている選択信号SEL-MUX0〜8に応じて、左シフトされたシフタ２１の出力あるいは“０”のいずれかを選択して出力する。
【００２８】
例えば、ＱＶＧＡの画像であれば、図５より、ＭＵＸ２２ａ，２２ｃ，２２ｅ，２２ｇ，２２ｉには、左シフトされたシフタ２１の出力を選択させる選択信号が入力され、それ以外のマルチプレクサには、“０”を選択させる選択信号が入力される。
そして、各ＭＵＸ２２ａ〜２２ｉの出力が、加算器２３ａ〜２２ｈによって順次加算されていき、加算器２３ｈの出力が、被除数Ｘを除数Ｋで除算した商として出力される。
【００２９】
以上のように、本実施の形態に係る除算器１は、被除数Ｘを除数Ｋで除算する演算を、除数Ｋに応じた近似に基づいて、被除数Ｘを２のべき乗（２Ｎ）倍した所定要素の加算として処理する（（８）式参照）。また、このとき行われる近似は、除数Ｋとして入力される可能性がある限定された所定値に対応するものであり、加算される各要素における整数部分については十分な精度を有するものである。
【００３０】
したがって、ビットシフトおよび加算のみによって除算を行うことができるため、小型かつ高速な除算器を実現することが可能となる。
また、除数Ｋとして入力される可能性がある値あるいは個数が仮に変更された場合であっても、ＬＵＴの内容を変更することのみで対応できるため、汎用性を確保することも可能となる。
【００３１】
また、本実施の形態に係る除算器１を電子カメラ等の露出制御に用いる場合、輝度レベルの算出においては、多数の画素について積算された輝度値を、その多数の画素数で除算する処理が繰り返されることから、高速である特長がさらに有効なものとなる。また、本発明に係る除算器１は、小型であることから、製造コストが低く、低消費電力なものとなり、電子カメラ等の露出制御にさらに適するものとなっている。
【００３２】
なお、本実施の形態においては、入力Ｘが符号なしの２６ビットの整数であり、それをシフタによって２０ビット右シフトし、さらに、最大で８ビット左シフトされることから、（２６−２０）＋８＝１４ビットの整数部となる。ただし、後段の加算処理のために、１ビット符号ビットを付加して、最終的には１５ビットの整数部となる。この場合、２０ビットシフトにより発生する２０ビットの小数部と合わせて、３５ビットのダイナミックレンジを有する演算を行うものとなる。
【００３３】
一方、より低い演算精度で足りる場合には、例えば、整数部を符号なしの１５ビット、小数部を固定小数点の４ビットの合計１９ビットのダイナミックレンジとすることが可能となり、このような場合には、加算器２３ａ〜２３ｈの入力ダイナミックレンジを変更することで対応可能である。
また、本実施の形態においては、（４）式に示すように、“Ｍ”を算出する際に小数点以下を四捨五入するものとして説明したが、小数点以下を切り捨てたり、切り上げたりすることによっても、ほぼ同様の演算精度を確保することが可能である。
【図面の簡単な説明】
【００３４】
【図１】各画像形式における除数Ｋを示す図である。
【図２】実施形態において規定した除数の背景となる画像の領域分割を示す図である。
【図３】各画像形式の場合の除数Ｋ、２２０／Ｋ、Ｍ、値Ｍを２のべき乗で表した値をそれぞれ示す図である。
【図４】本実施の形態に係る除算器１の機能構成を示す図である。
【図５】制御部１０が記憶しているＬＵＴの内容を示す図である。
【図６】演算部２０の回路構成例を示す図である。
【図７】図６におけるビットシフトをまとめた場合の演算部２０の回路構成例を示す図である。
【図８】従来の除算器の概略構成を示すブロック図である。
【符号の説明】
【００３５】
１  除算器、１０  制御部、２０  演算部、２１，２０１  シフタ、２２ａ〜２２ｉ，２０２  マルチプレクサ（ＭＵＸ）、２３ａ〜２３ｈ  加算器、２０３  減算器、２０４  レジスタ、２０５  除算制御器
【図１】
2005128618.tif 000003
【図２】
2005128618.tif 000004
【図３】
2005128618.tif 000005
【図４】
2005128618.tif 000006
【図５】
2005128618.tif 000007
【図６】
2005128618.tif 000008
【図７】
2005128618.tif 000009
【図８】
2005128618.tif 000010