(57)【要約】【課題】高速で且つ誤差の少ない除算器及び前記除算器を用いた高速で且つ画像レベルの変化の小さい画像処理装置を提供する【解決手段】前記Ｎ、Ｍ及び加算するか減算するかの選択をテーブルデータに基づいて決定した上で、被除数をＮビットシフタ１によってＮビットシフトし、またＭビットシフタ２によってＭビットシフトし、Ｎビットシフトした結果にＭビットシフトした結果を加算した値か被除数がＮビットシフトされた結果からＭビットシフトされた結果を減算した値か前記決定に基づき選択して商として出力する。【選択図】      図１
2007148941.tif 000002
【特許請求の範囲】
【請求項１】
被除数をＮビットシフトしてＮビットシフトした結果を得る第一のビットシフト手段と、
被除数をＭビットシフトしてＭビットシフトした結果を得る第二のビットシフト手段と、
前記Ｎビットシフトした結果とＭビットシフトした結果を加算するか減算するかを選択する選択手段とを備え、
前記選択手段によって選択した結果に応じて加算または減算を行うことにより商を求めることを特徴とする除算器。
（Ｎ及びＭは、除数に応じて決定される値であり、自然数である。）
【請求項２】
前記Ｎ、Ｍ及び加算するか減算するかの選択をテーブルデータに基づいて決定することを特徴とする請求項１記載の除算器。
【請求項３】
除数を下記（１）式又は（２）式で表すことができるようなＮ及びＭを決定し、
数式（１）を利用してＮ及びＭを決定した場合には前記選択手段は加算を選択し、数式（２）を利用してＮ及びＭを決定した場合には前記選択手段は減算を選択するように作られたテーブルデータを用いることを特徴とする請求項２記載の除算器。
除数＝２Ｍ／（２（Ｍ−Ｎ）＋１）  ・・・（１）
除数＝２Ｍ／（２（Ｍ−Ｎ）−１）  ・・・（２）
【請求項４】
除数Ｊが
（２／３）×２Ｎ≦Ｊ＜２Ｎ
であり、且つ
１≦Ｍ−Ｎ
である場合は前記（１）式を用いてＮ、Ｍを決定し、
除数Ｊが
２Ｎ≦Ｊ＜（４／３）×２Ｎ
であり、且つ
２＜Ｍ−Ｎ
である場合は前記（２）式を用いてＮ、Ｍを決定することにより、最小数のＮ、Ｍ及び加算か減算かの選択の組み合わせで、最大数の除数を表現することができるテーブルデータを用いることを特徴とする請求項３記載の除算器。
【請求項５】
処理前の画像にフィルタカーネルを掛け合わせ、行列演算を行い、もとの画像レベルと画像レベルが変化しないようにフィルタカーネルの総和値で割るコンボリューション演算を用いる画像処理装置において、
フィルタカーネルの総和値で割る除算の手段に請求項１〜４いずれかに記載の除算器を用いることを特徴とする画像処理装置。
【請求項６】
総和値を請求項２、３又は４記載のテーブルの除数に存在している数値になるように設計したフィルタカーネル。
【請求項７】
請求項６記載のフィルタカーネルを用いることを特徴とする請求項５記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、除算器および除算器を用いた画像形成装置に関するものであり、特に画像処理におけるコンボリューション演算に適用して好適なものである。
【背景技術】
【０００２】
デジタル画像に対してぼかし、エッジ強調、反転等の画像処理をする際に行うデジタルフィルタ処理は、デジタル画像を構成する最小単位であるピクセルとその周辺のピクセルからなるピクセル群に対し、必要な画像処理に応じて設計されたコンボリューションカーネルを掛け合わせ、行列演算を行う処理と、もとの画像輝度レベルとフィルタ処理後の画像輝度レベルが変化しないようにカーネルの総和値で割り、算出された値を処理後の値とする処理と、前記演算をスキャンさせて全てのピクセルに対して行う処理とから成る。
【０００３】
前記デジタルフィルタ処理は、数１で表す数式で表すことができ、数１中のＡは元の画像のピクセル群、Ｈはコンボリューションカーネル、Ｂは画像処理後のピクセル群を表している。
【数１】
2007148941.tif 000003
【０００４】
前記演算を実現するためには、カーネルの総和値で割るという除算の工程が必要であり、そのための除算器が必要となる。
除算器で用いられる除算方法としては、例えば除数をＢ、被除数をＡとし、除算結果をＹとしてＡ／Ｂを算出する場合、被除数Ａから除数Ｂを引き、その余りＣをレジスタに格納して再度余りＣから除数Ｂを引く動作を余りＣが除数Ｂより小さな値になるまで繰り返す、という商が整数にならない場合に、その整数部分を改めて商と定め、商と除数との積を被除数から引いたもののことを剰余と定めている除算の性質そのものを利用した方法があり、具体的には、図８で示した構成の除算器がある。初期状態ではマルチプレクサ３１は被除数３２側を選択している。またカウンター３３は０で初期化されている。１クロック送ると第１ＤＥＦ３４がその時のデータ（被除数値）をラッチし出力する。また第２ＤＥＦ３５はマルチプレクサ３１の選択を減算器３６側に切り替え、減算器３６の出力を第１ＤＥＦ３４とコンパレータ３７に送出する。第１ＤＥＦ３４の入力には減算器３６の結果がフィードバックされるので次のクロックで再びラッチされその出力から除数を減算することになる。一方このクロックはカウンター３３にカウントされていく。さてクロック送信により減算は繰り返され、結果がマイナスになったところでコンパレータ３７がＨからＬになりＡＮＤでゲートされカウンター３３の値は保持される。上記コンパレータ３７の出力がＬになったときにカウンター値を読むことで商が導出される。
【０００５】
また、別の除算方法としては、除数を２のＮ乗（Ｎは自然数）で近似した時の被除数のＮビットシフト結果に基づいて除算結果を算出するという２のＮ乗（Ｎは自然数）は右にＮビットシフトすれば商が求まるというバイナリーデータの性質を利用した方法があり、具体的には、図９で示した構成の除算器がある。除数を２のＮ乗（Ｎは自然数）で近似し、Ｎビットシフタ４１によってＮビットシフトすることにより商を求めることができる。
【０００６】
さらに別の除算方法としては、除数を２のＮ乗（Ｎは自然数）で近似した時の被除数のＮビットシフト結果を被除数の２Ｎビットシフトした結果に基づいて補正することによって商を求める方法が特許文献１に開示されている。
【０００７】
【特許文献１】特開２００３−３１６５６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前記除数Ｂを繰り返し引く方法は、被除数Ａが除数Ｂと比べて大きくなればなるほど除数サイクル数が大きくなるとともに、被除数Ａと除数Ｂによっては除数サイクル数が安定して得られず、安定して高速な演算を行うことができないため、特にリアルタイムな画像処理を必要とされるアプリケーションに適用することは困難である。
また、前記除数を２のＮ乗（Ｎは自然数）で近似してＮビットシフトする方法は、高速な演算は可能であるものの、除数を２のＮ乗（Ｎは自然数）に近似することにより実際の商と誤差が生じるという問題があり、誤差を生じさせないためには除数を２のＮ乗（Ｎは自然数）にあわせる必要があり、画像処理のコンボリューション演算に用いる場合にはカーネルの設計に制約が生じるという問題があった。
さらに、前記特許文献１に開示されている方法は、除数を２のＮ乗（Ｎは自然数）で近似してＮビットシフトした値を２Ｎビットシフトした値で補正するため、前記単純にＮビットシフトするだけの方法よりも実際の商との誤差は小さくなるものの、やはり除数を２のＮ乗に近似させてＮを決定した上でＮと２Ｎを使用するため補正を行う方法の柔軟性に乏しく、また補正式を作成する際にも近似式を用いているため、やはり実際の商と誤差が生じるという問題があった。
【０００９】
従って、本発明はかかる従来技術の問題に鑑み、高速で且つ誤差の少ない除算器及び前記除算器を用いた高速で且つ画像レベルの変化の小さい画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため本発明においては、
被除数をＮビットシフトしてＮビットシフトした結果を得る第一のビットシフト手段と、被除数をＭビットシフトしてＭビットシフトした結果を得る第二のビットシフト手段と、前記Ｎビットシフトした結果とＭビットシフトした結果を加算するか減算するかを選択する選択手段とを備え、前記選択手段によって選択した結果に応じて加算または減算を行うことにより商を求めることを特徴とする。ここで、Ｎ及びＭは、除数に応じて決定される値であり、自然数である（以降もＮ及びＭは自然数を表すものとする）。
このことにより、Ｎビットシフト、Ｍビットシフト及び前記結果を加算か減算かすることを組み合わせることにより、高速で且つ小さい誤差で除算を行うことができる。
【００１１】
さらに、前記Ｎ、Ｍ及び加算するか減算するかの選択をテーブルデータに基づいて決定することによって、Ｎ、Ｍ及び加算するか減算するかをより迅速に決定することができ、さらなる高速化をすることができる。
【００１２】
また、除数を下記（１）式又は（２）式で表すことができるようなＮ及びＭを決定し、数式（１）を利用してＮ及びＭを決定した場合には前記選択手段は加算を選択し、数式（２）を利用してＮ及びＭを決定した場合には前記選択手段は減算を選択するように作られたテーブルデータを用いることを特徴とすることによって、Ｎ、Ｍ及び加算するか減算するかの選択の組み合わせでより多くの除数を表現することのできるテーブルデータを作成することができるため、より小さい誤差の除算結果を得ることができる。
除数＝２Ｍ／（２（Ｍ−Ｎ）＋１）  ・・・（１）
除数＝２Ｍ／（２（Ｍ−Ｎ）−１）  ・・・（２）
【００１３】
ここで、除数Ｊが（２／３）×２Ｎ≦Ｊ＜２Ｎであり、且つ１≦Ｍ−Ｎである場合は前記（１）式を用いてＮ、Ｍを決定し、除数Ｊが２Ｎ≦Ｊ＜（４／３）×２Ｎであり、且つ２＜Ｍ−Ｎである場合は前記（２）式を用いてＮ、Ｍを決定することにより、必要な除数範囲を網羅する最小の大きさのテーブルを作成することができる。つまり、最小数のＮ、Ｍ及び加算か減算かの選択の組み合わせで、最大数の除数を表現することができるテーブルデータを利用することができるようになるため、さらなる高速化が可能となる。
【００１４】
また、処理前の画像にフィルタカーネルを掛け合わせ、行列演算を行い、もとの画像レベルと画像レベルが変化しないようにフィルタカーネルの総和値で割るコンボリューション演算を用いる画像処理装置において、フィルタカーネルの総和値で割る除算の手段に前記の除算器を用いることを特徴とする。このことにより、本発明における画像処理装置は、除算を高速で行うことができるため、リアルタイムな画像処理を必要とされるアプリケーションにも適用することができ、且つ除算における誤差が小さいために画像レベルの変化の小さい画像処理を行うことができる。
【００１５】
さらに、総和値をテーブルの除数に存在している数値になるようにフィルタカーネルを設計し、このフィルタカーネルを前記画像処理装置に用いることによって、除算の際の誤差がなくなるため、画像レベルの変化のない画像処理を行うことができる。
【発明の効果】
【００１６】
本発明によれば、ビットシフトを利用することによって計算を高速化することができ、さらに２種類のビットシフトの結果を加算または減算するという手法を行うことによって誤差の小さい除算結果を得ることができる。
従って、本発明により、高速で且つ誤差の小さい除算器及び前記除算器を用いた高速で且つ画像レベルの変化の小さい画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の好適な実施例を例示的に詳しく説明する。但しこの実施例に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、この発明の範囲をそれに限定する趣旨ではなく、単なる説明例に過ぎない。
【実施例１】
【００１８】
図１は、被除数をＮビットシフトするＮビットシフタと、被除数をＭビットシフトするＭビットシフタと、前記ＮビットシフタとＭビットシフタの結果を加算するか減算するかを選択する選択フラグとを備えた除算器である。
除算を行うに際して除数Ｊが決定されると、除数に応じてＮビットシフタ１の値Ｎ、Ｍビットシフタ２の値Ｍ及び加算するか減算するかを選択する選択フラグ３の値Ｓ（加算の場合は１、減算の場合は０）がそれぞれセットされる。被除数はＮビットシフタ１によってＮビットシフトされ、またＭビットシフタ２によってＭビットシフトされる。そして、被除数がＮビットシフトされた結果にＭビットシフトされた結果を加算した値が２入力マルチプレクサ４の一方４ａに入力され、被除数がＮビットシフトされた結果からＭビットシフトされた結果を減算した値が２入力マルチプレクサの他方４ｂに入力される。マルチプレクサ４では、選択フラグ３の値Ｓが１の場合は前記加算した値を、選択フラグＳの値が０の場合は前記減算した値を選択して商として出力する。
このような除算器を用いることにより、高速で且つ誤差の少ない除算を行うことができる。
ここで、除数に応じてセットされるＮビットシフタ１の値Ｎ、Ｍビットシフタ２の値Ｍ及び加算するか減算するかを選択する選択フラグＳの値は、例えば後述するようなテーブルデータを使用してもいいし、除数に応じてＮ、Ｍ、Ｓを自動的に決定する計算プログラムを使用してもよく、除数に応じてＮ、Ｍ、Ｓの値が決定できる方法であれば何でもよい。
【実施例２】
【００１９】
図２は、被除数をＮビットシフトするＮビットシフタと、被除数をＭビットシフトするＭビットシフタと、前記ＮビットシフタとＭビットシフタの結果を加算するか減算するかを選択する選択フラグと、テーブルデータ参照器を備えた除算器である。
除数Ｊがテーブルデータ参照器１５に入力されると、テーブルデータ参照器１５はあらかじめ用意しておいたテーブルデータと除数Ｊを比較し、Ｎビットシフタ１１の値Ｎ、Ｍビットシフタ１２の値Ｍ及び加算するか減算するかを選択する選択フラグ１３の値Ｓ（加算の場合は１、減算の場合は０）を決定する。前記決定されたＮ、Ｍ、Ｓを利用して、被除数はＮビットシフタ１１によってＮビットシフトされ、またＭビットシフタ１２によってＭビットシフトされる。そして、被除数がＮビットシフトされた結果にＭビットシフトされた結果を加算した値が２入力マルチプレクサ１４の一方１４ａに入力され、被除数がＮビットシフトされた結果からＭビットシフトされた結果を減算した値が２入力マルチプレクサの他方１４ｂに入力される。マルチプレクサ１４では、選択フラグ１３の値Ｓが１の場合は前記加算した値を、選択フラグＳの値が０の場合は前記減算した値を選択して商として出力する。
このように除算を行うことにより実施例１と同じく高速で且つ誤差の少ない除算を行うことができる。
【００２０】
前記テーブルデータ参照器１５が参照するテーブルデータには図３に示すテーブルデータを利用した。図３（Ａ）はテーブルデータ参照器１５が参照するテーブルデータ、図３（Ｂ）はテーブルデータをグラフ化した図である。テーブルデータは除数の小さい順番に番号を付けた。図３（Ａ）は番号毎の除数、Ｎ、Ｍ、Ｓをテーブルデータ化している。例えば番号１では除数が４３、Ｎ＝６、Ｍ＝７、Ｓ＝１であることを意味している。また、図３（Ｂ）は縦軸は除数、横軸はテーブルデータの番号を表している。
ここで、除数Ｊがテーブルデータ参照器１５にセットされると、参照器内では除数Ｊとテーブルデータ内の除数とをテーブルデータの番号の小さい除数から順に比較していく。テーブルデータ内の除数≧ＪとなるテーブルデータのＮ、Ｍ、Ｓを除数ＪにおけるＮ、Ｍ、Ｓと決定する。例えば除数Ｊが１００であるときは、図３（Ａ）のテーブルデータにおける番号１５において１０２＞Ｊ（＝１００）となるため、テーブルデータの番号１５を参照し、Ｎ＝７、Ｍ＝９、Ｓ＝１と決定することができる。
また、図３（Ｂ）のグラフから非常に細かい除数の間隔でテーブルデータが作成されていることもわかる。
【００２１】
また、図３（Ａ）に示したテーブルデータは以下の方法で作成した。
まず、Ｓ＝１のときの除数ＪとＭ、Ｎを下記（１）式によって決定し、図４にＮをＮ＝６、７、８及び９で固定したときの（１）式で求めた除数ＪとＭの関係のグラフを示した。縦軸は除数Ｊ、横軸はＭを表している。グラフから各固定したＮの値において、Ｍの値が小さいときはＭの値が大きくなると除数も大きくなるが、Ｍの値が１０〜１５を越えて大きくなるとＭの値を大きくしても除数はほとんど変わらないことがわかる。さらに、Ｎの値が大きく、Ｍの値が小さい領域においては、Ｍの値を１変化させるだけでも除数が大きく変化してしまう領域も存在することもわかる。
除数Ｊ＝２Ｍ／（２（Ｍ−Ｎ）＋１）  ・・・（１）
【００２２】
次に、Ｓ＝０のときの除数ＪとＭ、Ｎを下記（２）式によって決定し、図５にＮをＮ＝６、７、８及び９で固定したときの（２）式で求めた除数ＪとＭの関係のグラフを示した。縦軸は除数Ｊ、横軸はＭを表している。グラフから各固定したＮの値において、Ｍの値が小さいときはＭの値が大きくなると除数は小さくなるが、Ｍの値が１０〜１５を越えて大きくなるとＭの値を大きくしても除数はほとんど変わらないことがわかる。さらに、Ｎの値が大きく、Ｍの値が小さい領域においては、Ｍの値を１変化させるだけでも除数が大きく変化してしまう領域も存在することもわかる。
除数＝２Ｍ／（２（Ｍ−Ｎ）−１）  ・・・（２）
【００２３】
前記（１）式を用いる方法と前記（２）式を用いる方法のいずれの方法でもテーブルデータを作成することは可能であるが、前記の通り（１）式、（２）式いずれの方法もＭの値を変えても除数がほとんど変わらない領域が存在してしまいテーブルデータが必要以上に大きくなるということから除算の高速化について、Ｍの値を１変化させるだけでも除数が大きく変化してしまう領域が存在することから除算の誤差を小さくするということについて、さらによいテーブルデータを作成するため、前記（１）式を用いる方法と前記（２）を組み合わせた。
【００２４】
図６は図４と図５を重ね合わせたグラフであり、図７は図６においてテーブルデータに使用する線を強調したグラフである。図６、図７いずれも縦軸は除数Ｊ、横軸はＭの値を表している。
図６から、Ｍの値を変えても除数がほとんど変わらない領域２１は、同じＮの値における加算（（１）式を利用）ラインと減算（（２）式を利用）ラインではほとんど一致しており、加算ラインは領域２１へ除数の小さいほうから、減算ラインは領域２１へ除数の大きいほうから近づく。
また、加算ラインと減算ラインそれぞれの前記Ｍの値を１変化させるだけでも除数が大きく変化してしまう領域は、Ｎ＝Ｎａにおける加算ラインとＮａ−１における減算ラインが交差する点２２が存在することがわかる。
【００２５】
そこで、除数を徐々に大きくする場合を考えると、使用するラインを領域２１近傍ではＮの値を変えずに加算ラインから減算ラインへ切り替え、交差する点２２ではＮの値を１だけ大きくした上で減算ラインから加算ラインに切り替えることによってテーブルデータを必要以上に大きくすることなく、またＭの変化に対する除数の変化を最少に抑えることができるため、最良のテーブルデータを作成することができる。このように切り替えた場合、使用するラインは図７で強調した線２３となる。
言い換えると、除数が領域２１以下であり且つ交差する点２２よりも大きい場合は加算ラインを使用し、除数が交差する点２２以下であり且つ領域２１よりも大きい場合は減算ラインを使用することによって、最良のテーブルデータを作成することができる。
このことをさらに言い換えると、以下のようになる。
除数Ｊが
（２／３）×２Ｎ≦Ｊ＜２Ｎであり、且つ１≦Ｍ−Ｎ      ・・・（３）
である場合は前記（１）式を用いてＮ、Ｍを決定し、
除数Ｊが
２Ｎ≦Ｊ＜（４／３）×２Ｎであり、且つ２＜Ｍ−Ｎ      ・・・（４）
である場合は前記（２）式を用いてＮ、Ｍを決定することにより最良のテーブルデータを作成することができる。
ここで、（３）式及び（４）式は例えばＮ＝７のケースであれば、（３）式は図６における除数が８５付近の交差する点２２から除数が１２８付近の領域２１まではＮ＝７（（１）式使用）のグラフ上であることを、（４）式は除数１２８付近の領域２１から除数１７１付近の交差する点２２まではＮ＝７（（２）式使用）のグラフ上であることを意味し、図７をよくあらわしているといえる。
【００２６】
なお、この条件は以下のようにして求めた。
まず加算ラインを使用する範囲を求める。図６及び図７から明らかであるようにＮ＝Ｎａにおける加算ラインは、Ｍを小さくしていくとＮ＝Ｎａ−１における減算ラインと交点２２で交わり、Ｍを大きくしていくとＮ＝Ｎａにおける減算ラインと領域２１で近づく。Ｎ＝Ｎａにおける加算ラインを使用する範囲は該交点２２以上であり、且つ該領域２１より小さいことが必要である。
まず、Ｎ＝Ｎａにおける加算ラインが該交点２２以上である条件を求める。Ｎ＝Ｎａにおける加算ライン及びＮ＝Ｎａ−１における減算ラインはそれぞれ（５）式、（６）式で表すことができるため、Ｎ＝Ｎａにおける加算ラインが該交点２２以上である条件は数２で導くことができる。
２Ｍ／（２（Ｍ−Ｎ）＋１）  ・・・（５）
２Ｍ／（２（Ｍ−Ｎ＋１）−１）  ・・・（６）
【数２】
2007148941.tif 000004
次にＮ＝Ｎａにおける加算ラインが領域２１より小さい条件を求める。前記の通り、同じＮの値における加算ラインと減算ラインではほとんど一致しており、Ｎが大きくなればなるほど近づく。従って、Ｎ＝Ｎａにおける加算ラインが近づく該領域２１は数３で求まる。
【数３】
2007148941.tif 000005
以上より加算ラインを使用する範囲が求まる。
【００２７】
次に、減算ラインを使用する範囲を求める。図６及び図７から明らかであるようにＮ＝Ｎａにおける減算ラインは、Ｍを小さくしていくとＮ＝Ｎａ＋１における加算ラインと交点２２で交わり、Ｍを大きくしていくとＮ＝Ｎａにおける加算ラインと領域２１で近づく。Ｎ＝Ｎａにおける減算ラインを使用する範囲は該領域２１以上であり、且つ該交点２２より小さいことが必要である。
まず、Ｎ＝Ｎａにおける減算ラインが該交点２２より小さい条件を求める。Ｎ＝Ｎａにおける減算ライン及びＮ＝Ｎａ＋１における加算ラインはそれぞれ（７）式、（８）式で表すことができるため、Ｎ＝Ｎａにおける加算ラインが該交点２２より小さい条件は数４で導くことができる。
２Ｍ／（２（Ｍ−Ｎ）−１）  ・・・（７）
２Ｍ／（２（Ｍ−Ｎ−１）＋１）  ・・・（８）
【数４】
2007148941.tif 000006
次にＮ＝Ｎａにおける加算ラインが領域２１以上である条件を求める。前記の通り、同じＮの値における加算ラインと減算ラインではほとんど一致しており、Ｎが大きくなればなるほど近づく。従って、Ｎ＝Ｎａにおける加算ラインが近づく該領域２１は数５で求まる。
【数５】
2007148941.tif 000007
以上より減算ラインを使用する範囲が求まる。
【００２８】
従って、例えば２の６乗である６４と２の７乗である１２８の間の数が除数である場合、図２に示した除数を２のＮ乗に近似する方法では６４か１２８に近似するため、大きな誤差がでることがあったが、本発明の除算器を用いると６４、１２８の他に６５、６６、６８、７３、８５、１０２、１１４の７つの新たに近似することができる数字が増え、誤差を小さくすることができる。
【実施例３】
【００２９】
また、本発明の実施例２の除算器を画像処理装置において処理前の画像にフィルタカーネルを掛け合わせ、行列演算を行い、もとの画像レベルと画像レベルが変化しないようにフィルタカーネルの総和値で割るコンボリューション演算の手段に用いた。この画像処理装置は、除算を高速で行うことができるため、リアルタイムな画像処理を必要とされるアプリケーションにも適用することができ、且つ除算における誤差が小さいために画像レベルの変化の小さい画像処理を行うことができた。
また、本発明の除算器を画像処理装置に用いた場合、前記のように例えば６４と１２８の間であれば近似することができる数字が増えるために従来と比べると誤差は小さくなるが、やはり誤差は生じる。しかし、この誤差はコンボリューション演算の最後の除算に用いる場合においては、商の誤差自体は発生するものの、被除数の値によらず本発明の除算器で得られる商と真の商の誤差は一定の非となるので生成される画像事態のレベル（明るさ）が若干変わるものの、画像自体が歪むことはなく、許容できる範囲の誤差である。
【００３０】
さらに、総和値をテーブルの除数に存在している数値になるようにフィルタカーネルを設計し、このフィルタカーネルを前記画像処理装置に用いた。除算の際の誤差がなくなるため、前記許容範囲の誤差の画像レベルの変化もなくなった。
また、例えば総和値が６４と１２８の間のフィルタカーネルを設計する際、従来であれば６４か１２８に合わせるしかなかったが、本発明を用いることにより前記のようにさらに７箇所の設定できる範囲が増加し、フィルタカーネルの設計の制約が緩和され、従ってより多彩なフィルタカーネルを設計することができ、ひいてはより多彩な画像処理をできる画像処理装置ができた。
【産業上の利用可能性】
【００３１】
高速で且つ誤差の少ない除算器を用いることにより、高速で且つ画像レベルの変化の小さい画像処理装置を提供することができる。また、フィルタカーネルの設計の制約が緩和されるため、より多彩な画像処理を行うことのできる画像処理装置を提供することができる。
【図面の簡単な説明】
【００３２】
【図１】被除数をＮビットシフトするＮビットシフタと、被除数をＭビットシフトするＭビットシフタと、前記ＮビットシフタとＭビットシフタの結果を加算するか減算するかを選択する選択フラグとを備えた除算器である。
【図２】被除数をＮビットシフトするＮビットシフタと、被除数をＭビットシフトするＭビットシフタと、前記ＮビットシフタとＭビットシフタの結果を加算するか減算するかを選択する選択フラグと、テーブルデータ参照器を備えた除算器である。
【図３】図３（Ａ）はテーブルデータ参照器が参照するテーブルデータ、図３（Ｂ）はテーブルデータをグラフ化した図である。
【図４】ＮをＮ＝６、７、８及び９で固定したときの（１）式で求めた除数ＪとＭの関係のグラフである。
【図５】ＮをＮ＝６、７、８及び９で固定したときの（２）式で求めた除数ＪとＭの関係のグラフである。
【図６】図４と図５を重ね合わせたグラフである。
【図７】図６においてテーブルデータに使用する線を強調したグラフである。
【図８】除数をＢ、被除数をＡとし、除算結果をＹとしてＡ／Ｂを算出する場合、被除数Ａから除数Ｂを引き、その余りＣをレジスタに格納して再度余りＣから除数Ｂを引く動作を余りＣが除数Ｂより小さな値になるまで繰り返す方法を利用する除算器である。
【図９】除数を２のＮ乗（Ｎは自然数）で近似した時の被除数のＮビットシフト結果に基づいて除算結果を算出する除算器である。
【符号の説明】
【００３３】
１、１１    Ｎビットシフタ
２、１２    Ｍビットシフタ
３、１２    選択フラグ
４、１４    ２入力マルチプレクサ
１５    テーブルデータ参照器
【図１】
2007148941.tif 000008
【図２】
2007148941.tif 000009
【図３】
2007148941.tif 000010
【図４】
2007148941.tif 000011
【図５】
2007148941.tif 000012
【図６】
2007148941.tif 000013
【図７】
2007148941.tif 000014
【図８】
2007148941.tif 000015
【図９】
2007148941.tif 000016