(57)【要約】【課題】緩和型の画像処理回路などを、少ない回路規模のデジタル回路で実装できるデジタル情報処理回路を提供すること。【解決手段】制御クロック信号ＣＬＫがＨｉｇｈのときに電圧差（Ｉｉ−Ｏｉ）の計算を行う。次に、ＲＥＧ１およびＲＥＧ２のデータ（いずれもＮビットのデータ）の差を計算し、符号をｓｉｇｎ端子から出力し、差の絶対値をデコーダを通してＮ’ビットにしてＬＵＴ１に入力する。ＬＵＴ１の出力はＫビット（Ｋ＜Ｎ）とし、ｓｉｇｎ端子からの符号にしたがってＲＥＧ２のデータを更新する。次に、制御クロック信号ＣＬＫがＬｏｗのときは、電圧差（Ｏｊ−Ｏｉ）の計算を行う。隣接セルからの信号をＯｊとして取り込み、ＬＵＴ２Ａ〜ＬＵＴ２Ｃを所定の回数ごとに用いてＲＥＧ２の更新を行う。【選択図】      図１
2004178021.tif 000002
【特許請求の範囲】
【請求項１】
実回路として若しくは仮想的に、相互に結合した複数の処理ユニットを具備し、
前記各処理ユニットは、それぞれ独立した入力値を第１のビット精度で受け取る手段と、それぞれ独立した状態値を第２のビット精度で保持する手段と、前記状態値を更新する手段とを具備しており、
前記処理ユニット自身の状態値、前記処理ユニットに結合された処理ユニットの状態値、及び前記入力値について、第３のビット精度で所定の演算を施し、前記演算の結果に基づいて、前記処理ユニットの状態値を少なくとも１回以上更新する手段を具備し、
前記第３のビット精度が、前記第１または第２のビット精度よりも小さいことを特徴とするデジタル情報処理回路。
【請求項２】
請求項１に記載のデジタル情報処理回路において、
前記第１のビット精度と前記第３のビット精度とを等しくする手段と、
前記第２のビット精度で保持された前記処理ユニット自身の状態値の最上位ビットから第３のビット数分だけ取り出した数値と、前記処理ユニットに結合された処理ユニットの状態値の最上位ビットから前記第３のビット数分だけ取り出した数値と、前記入力値とに対して前記所定の演算を施す手段を具備したことを特徴とするデジタル情報処理回路。
【請求項３】
請求項１又は請求項２に記載のデジタル情報処理回路において、
前記処理ユニットが、画像の各画素に対応して、実回路として若しくは仮想的に配置されており、隣接する処理ユニット同士が結合されており、前記入力値が対応する画素情報（輝度値、色相値、または任意の変換値）であることを特徴とするデジタル情報処理回路。
【請求項４】
請求項１乃至請求項３のいずれかに記載のデジタル情報処理回路において、
前記所定の演算が、前記処理ユニットに接続される処理ユニットの状態値又は前記処理ユニットの入力値と、前記処理ユニットの状態値との差の非線形関数を含む関数の演算であることを特徴とするデジタル情報処理回路。
【請求項５】
請求項１乃至請求項４のいずれかに記載のデジタル情報処理回路において、
前記所定の演算において、前記更新毎に周期的に異なる関数変換を用いることを特徴とするデジタル情報処理回路。
【請求項６】
請求項１乃至請求項５のいずれかに記載のデジタル情報処理回路において、
前記所定の演算における関数変換をルックアップテーブル回路を用いて実行することを特徴とするデジタル情報処理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、相互に結合した処理ユニットが、それぞれの状態値を変化させることにより実行される情報処理をデジタル方式で実現する回路構成法に関する。
【０００２】
【従来の技術】
非特許文献１にあるように、従来よりニューラルネットワークの分野において、連想メモリや最適化問題求解に適用可能な相互結合型ネットワーク（図５）が提案されている。これらは（ニューロンと呼ばれる）処理ユニット５０１が相互に結合し、処理ユニットの状態値を更新して緩和していき、安定状態に達したときの状態を読みとることにより情報処理を実現する回路である。ただし、相互結合のための抵抗Ｒｉｊなどの接続はほんの一例であり、これに限定されないことは明らかである。
ここで、各ニューロンは、他のニューロンの出力を受け取り、それに荷重を掛けて総和をとり、その総和結果を適当な非線形関数で処理して出力する。よく用いられる非線形関数はシグモイド関数と呼ばれる飽和型の単調関数である。当該非線形関数による計算式を下に示す。
【０００３】
【数１】
2004178021.tif 000003
ここで、τ＝Ｃｒ，ＷｉｊはＲｉｊに対応する結合荷重、θｉは外部入力Ｈｉに対応する項、もしくはニューロンのしきい値である。
【０００４】
また、非特許文献２では、画像のエッジ抽出を行う抵抗ネットワークが提案されている（図６）。この回路は抵抗ネットワークの各ノード６０１が画像の各画素に対応しており、同図６０３に示すように、各ノードで画素の輝度値を光センサ６０５から受け取り、その輝度値（端子Ｑの電圧）と、各画素の輝度値を抵抗ネットワークで平滑化した値（端子Ｐの電圧）との差を取ることにより、エッジ部分のノードにのみ出力を出す回路である。
また、非特許文献３では、抵抗ヒューズと呼ばれる非線形な抵抗特性を有する素子で結合されたネットワークにより、画像のエッジを保持しながらノイズ成分を除去する回路が提案されている（図７）。
【０００５】
この回路では図７のように、ノード７０１の電圧源に各画素の輝度値が電圧（Ｉｋ）として入力され、ネットワーク全体が安定状態に落ち着いた後、各画素に対応するノードの電圧（Ｏｋ）  が出力として取り出される。各ノード間は非線形な電流−電圧特性を有する「抵抗ヒューズ」と呼ばれる素子で結合されている。
抵抗ヒューズとは、両端の電圧差が所定のしきい値以下の時は線形抵抗として機能するが、しきい値以上の時は接続が切れるような特性の素子のことである。これにより、隣接する画素の輝度値同士の差が所定の値以下の時は平滑化が行われ、ノイズが除去されるが、輝度値の差が所定の値以上の時はエッジと見なされて平滑化が行われない。こうしてエッジを保持しながらノイズを除去することが可能になる。
【０００６】
抵抗ヒューズ特性は固定的なものだけでなく、線形抵抗から抵抗ヒューズ特性に段階的に特性を変化させる「アニーリング」という技術がある。
このアニーリングを実施することにより、線形抵抗から徐々に抵抗ヒューズ特性に特性を変化させていくことにより（図８の２点鎖線→点線→波線→実線と変化させる）、隣接画素間の輝度差が所定のしきい値δよりも大きくても、それが小さな領域に局在する場合は平滑化することで、大まかな領域分割を実現することができる。図８のδは抵抗ヒューズのしきい値を表している。
【０００７】
さて、上記の回路ではいずれも状態が連続値で表現され、回路図でもアナログ回路素子を用いていることからわかるように、ＬＳＩで実現する際には、従来からＭＯＳトランジスタのアナログ的な特性を利用する、いわゆるアナログ回路で構成されることが多かった。抵抗ヒューズネットワークの例としては、非特許文献４に記載されているものがある。
アナログ回路で構成する利点は、状態更新を繰り返し安定状態に至らせる過程が、抵抗Ｒと容量Ｃ（寄生容量を含む）とで記述する時間に関する微分方程式で表されるため、安定状態に至るまでの時間がＲＣの時定数で決まる極めて短い時間（通常マイクロ秒以下）となることである。すなわち、アナログ回路で構成すると極めて高速な処理が可能となる。
【０００８】
【非特許文献１】
”Ｊ．  Ｊ．  Ｈｏｐｆｉｅｌｄ”著，  ”Ｎｅｕｒｏｎｓ  ｗｉｔｈ  Ｇｒａｄｅｄ  Ｒｅｓｐｏｎｓｅ  Ｈａｖｅ  Ｃｏｌｌｅｃｔｉｖｅ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｐｒｏｐｅｒｔｉｅｓ  Ｌｉｋｅ  Ｔｈｏｓｅ  ｏｆ  Ｔｗｏ−ｓｔａｔｅ  Ｎｅｕｒｏｎｓ”，  雑誌  ”Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｎａｔｉｏｎａｌ  Ａｃａｄｅｍｙ  ｏｆ  Ｓｃｉｅｎｃｅｓ，  ＵＳＡ”，Ｖｏｌ．８１，ｐ３０８８〜ｐ３０９２，１９８４年発行
【非特許文献２】
”Ｃ．  Ａ．  Ｍｅａｄ  ａｎｄ  Ｍ．  Ａ．  Ｍａｈｏｗａｌｄ”著，  ”Ａ  Ｓｉｌｉｃｏｎ  Ｍｏｄｅｌ  ｏｆ  Ｅａｒｌｙ  Ｖｉｓｕａｌ  Ｐｒｏｃｅｓｓｉｎｇ”，雑誌  ”ＮｅｕｒａｌＮｅｔｗｏｒｋｓ”，Ｖｏｌ．１，  ”ｐ９１〜ｐ９７”，１９８８年発行）
【非特許文献３】
”Ｊ．  Ｈａｒｒｉｓ  ａｎｄ  Ｃ．  Ｋｏｃｈ  ａｎｄ  Ｊ．  Ｌｕｏ”著，  ”Ａ  Ｔｗｏ−Ｄｉｍｅｎｓｉｏｎａｌ  Ａｎａｌｏｇ  ＶＬＳＩ  Ｃｉｒｃｕｉｔ  ｆｏｒ  Ｄｅｔｅｃｔｉｎｇ  Ｄｉｓｃｏｎｔｉｎｕｉｔｉｅｓ  ｉｎ  Ｅａｒｌｙ  Ｖｉｓｉｏｎ”  雑誌  ”Ｓｃｉｅｎｃｅ”，  Ｖｏｌ．２４８，ｐ１２０９〜ｐ１２１１，１９９０年発行
【非特許文献４】
”Ｐ．  Ｃ．  Ｙｕ  ａｎｄ  Ｓ．  Ｊ．  Ｄｅｃｋｅｒ  ａｎｄ  Ｈ．  −Ｓ．  Ｌｅｅ  ａｎｄ  Ｃ．  Ｇ．  Ｓｏｄｉｎｉ  ａｎｄＪ．  Ｌ．  Ｗｙａｔｔ，  Ｊｒ．”著，  ”ＣＭＯＳ  Ｒｅｓｉｓｔｉｖｅ  Ｆｕｓｅｓ  ｆｏｒ  Ｉｍａｇｅ  Ｓｍｏｏｔｈｉｎｇ  ａｎｄ  Ｓｅｇｍｅｎｔａｔｉｏｎ”，  雑誌  ”ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ”，  Ｖｏｌ．２７，ｐ５４５〜ｐ５５３，  １９９２年発行
【０００９】
【発明が解決しようとする課題】
しかしながら、アナログ回路は演算精度が得にくく、上記のようなフィードバック回路では発振などの問題が生じやすく、設計が難しいこと、非線形な抵抗特性を自由に実現することが難しいことなどの欠点があった。
これに対し、デジタル回路でこのような回路を実現するためには、アナログ回路のダイナミクスを離散時間モデルで計算すればよい。すなわち、各ノードに流れ込む電流の総和（ΣＩ）を計算し、微小時間Δｔに電荷として該ノードの寄生容量（Ｃ）を充電することにより、電圧変化ΔＶが起こるとして差分方程式を導き、それを計算することで可能になる。
【００１０】
これを式に表現するとΔＶ＝ΣＩΔｔ／Ｃとなる。Δｔ／Ｃは一定なので更新パラメータとする。各ノードに流れ込む電流は、抵抗ヒューズの電流−電圧特性をＩ＝Ｇ（Ｖ）とし、電圧源からの抵抗のコンダクタンスをσとすると、ΣＩ＝Σｊ  Ｇ（Ｏｊ−Ｏｉ）＋σ（Ｉｉ−Ｏｉ）となる（ただし，Σｊはｊについての和を表す）。
しかし、このような更新アルゴリズムで正確な安定状態を得るためには、更新量を小さな刻み幅で表現する必要があり、高いビット分解能を必要とする。すなわち、状態値を大きなビット数で表現する必要があり、処理ユニットの回路規模が大きくなる。その結果、演算の並列化が困難になり、演算速度が低下するという欠点があった。
【００１１】
【課題を解決するための手段】
本発明は、上記のようなネットワーク回路をデジタル回路で効率よくコンパクトに構成できる回路構成を提供する。
そのため、本発明のデジタル情報処理回路は、実回路として若しくは仮想的に、相互に結合した複数の処理ユニットを具備し、各処理ユニットは、それぞれ独立した入力値を第１のビット精度で受け取る手段と、それぞれ独立した状態値を第２のビット精度で保持する手段と、状態値を更新する手段とを具備しており、処理ユニット自身の状態値、処理ユニットに結合された処理ユニットの状態値、及び入力値について、第３のビット精度で所定の演算を施し、演算の結果に基づいて、処理ユニットの状態値を少なくとも１回以上更新する手段を具備し、第３のビット精度が、第１または第２のビット精度よりも小さいことを特徴とする。
【００１２】
上記デジタル情報処理回路は、第１のビット精度と第３のビット精度とを等しくする手段と、第２のビット精度で保持された処理ユニット自身の状態値の最上位ビットから第３のビット数分だけ取り出した数値と、処理ユニットに結合された処理ユニットの状態値の最上位ビットから前記第３のビット数分だけ取り出した数値と、入力値とに対して所定の演算を施す手段を具備することが好ましい。上記デジタル情報処理回路は、処理ユニットが、画像の各画素に対応して、実回路として若しくは仮想的に配置されており、隣接する処理ユニット同士が結合されており、入力値が対応する画素情報（輝度値、色相値、または任意の変換値）であることが好ましい。
【００１３】
上記デジタル情報処理回路において、所定の演算が、処理ユニットに接続される処理ユニットの状態値又は処理ユニットの入力値と、処理ユニットの状態値との差の非線形関数を含む関数の演算であることが好ましい。
上記デジタル情報処理回路において、所定の演算が、更新毎に周期的に異なる関数変換を用いることが好ましい。
上記デジタル情報処理回路において、所定の演算における関数変換をルックアップテーブル回路を用いて実行することが好ましい。
【００１４】
【発明の実施の形態】
以下、図１乃至図４を参照しながら、本発明の実施の形態についての説明をする。なお、図１は本発明の第１の実施の形態である抵抗ヒューズ処理のデジタル回路を表す図面、図２は本発明の第２の実施の形態である抵抗ヒューズ処理のデジタル回路を表す図面、図３は本発明の実施の形態である画素の選択方法を示す図、図４は本発明の実施の形態である抵抗ヒューズ処理のブロック図である。
【００１５】
（１−１）デジタル回路図の説明
本発明の第１の実施の形態を図１に示す。これは抵抗ヒューズネットワークを本発明によるデジタル回路で構成した例である。同図に示したのは、１画素に相当する回路である。
本デジタル回路では、画像の輝度値（入力値）をＮビットで表現し、図１のレジスタ１０３（以下、ＲＥＧ１と称す）に格納する。また、状態値をＮビットで表現し、図１のレジスタ１０１（以下、ＲＥＧ２と称す）に格納する。本実施の形態では、状態の初期値として、例えば画像の輝度値（入力値）をＲＥＧ２に格納しておく。
【００１６】
抵抗ヒューズの非線形特性を実現するために、本実施の形態ではルックアップテーブル（以下、ＬＵＴと称す）を用いる。アニーリングを実現するために、本実施の形態では３個のＬＵＴを順次切り替えて用いる。ここでは、これら３個のＬＵＴを図１の１１１ａ（以下、ＬＵＴ２Ａと称す）、１１１ｂ（以下、ＬＵＴ２Ｂと称す）、１１１ｃ（以下、ＬＵＴ２Ｃと称す）を用いて表す。
また、コンダクタンスの線形抵抗についての計算は、単純な掛け算なので乗算器を用いても良いが、本実施の形態では図１のＬＵＴ１０９（以下、ＬＵＴ１と称す）を用いる。
また、本発明の形態では、ＬＵＴ１及びＬＵＴ２Ａ〜ＬＵＴ２Ｃに信号を入力する際、デコーダ１１５及び１１７ａ〜１１７ｃを用いて、Ｎビット信号をＮ’ビット精度（Ｎ’＜＝Ｎ）に変換する。つまり、低精度にする。これにより、ＬＵＴ１及びＬＵＴ２Ａ〜ＬＵＴ２Ｃの回路規模を２の−（Ｎ−Ｎ’）乗倍だけ小さくすることができる。ＬＵＴ１及びＬＵＴ２Ａ〜ＬＵＴ２Ｃは、適当なビット精度Ｋ（Ｋ≦Ｎ）で結果を出力し、ＲＥＧ２の結果を更新する。
【００１７】
（１−２）動作原理の詳細説明
図１を参照しながら、動作原理について詳しく説明する。なお、図１のＩｉは原画像データ、Ｏｉは処理結果（状態値）データ、Ｏｊは隣接セルからの信号を表している。
【００１８】
▲１▼制御クロック信号ＣＬＫをＨｉｇｈにしたときの動作手順（手順１〜５）
手順１）まず最初に、制御クロック信号ＣＬＫＡをＨｉｇｈに、制御クロック信号ＣＬＫＢ及びＣＬＫＣをＬｏｗに設定する。これにより、スイッチ１１３ｇ及び１１３ｋが閉じ、スイッチ１１３ｈ，１１３ｉ，１１３ｌ，１１３ｍが開く。
手順２）制御クロック信号ＣＬＫがＨｉｇｈのときには、スイッチ１１３ａ，１１３ｃ，１１３ｅが閉じ、スイッチ１１３ｂ，１１３ｄ，１１３ｆが開く。
手順３）スイッチ１１３ａが閉じると、演算器１０７では電圧差（Ｉｉ−Ｏｉ）の計算を行う。そして、電圧差（Ｉｉ−Ｏｉ）の計算結果の正負にしたがって、演算器１０７のｓｉｇｎ端子から演算器１０５のｓｗ端子にビット信号を出力する。このビット信号を以下、ｓｉｇｎ信号と称す。本実施の形態では、ｓｉｇｎ信号は、電圧差（Ｉｉ−Ｏｉ）の計算結果が正（＋）のときには１、負（−）のときには０となるが、これに限定されないことは明らかである。
手順４）また、電圧差（Ｉｉ−Ｏｉ）の計算結果の絶対値は、デコーダ１１５を通してＬＵＴ１に入力される。なお、絶対値を表すデータはデコーダ１１５を通した時点で、ＮビットからＮ’ビットに変換されている。
手順５）ＬＵＴ１からの出力は、上記のｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する。具体的には、ｓｉｇｎ信号が１のときは演算器１０５のａ端子及びｂ端子から取得したデータの和（ａ＋ｂ）を計算してＲＥＧ２に渡し、ｓｉｇｎ信号が０のときは演算器１０５のａ端子及びｂ端子から取得したデータの差（ａ−ｂ）を計算してＲＥＧ２に渡す。
より詳しくは、ｓｉｇｎ信号が１のときは「ＲＥＧ２から読み出した状態値（Ｎビット）とＬＵＴ１からの出力との和を計算してＲＥＧ２に渡し」、ｓｉｇｎ信号が０のときは「ＲＥＧ２から読み出した状態値（Ｎビット）とＬＵＴ１からの出力との差を計算してＲＥＧ２に渡す」。なお、前述した通り、ＬＵＴ１からの出力はＫビットである。
【００１９】
▲２▼ＬＵＴ２Ａを用いるときの動作手順（手順６〜９）
手順６）制御クロック信号ＣＬＫがＬｏｗのときには、スイッチ１１３ｂ，１１３ｄ，１１３ｆが閉じ、スイッチ１１３ａ，１１３ｃ，１１３ｅが開く。
手順７）スイッチ１１３ｂが閉じると、演算器１０７では電圧差（Ｏｊ−Ｏｉ）の計算を行う。そして、電圧差（Ｏｊ−Ｏｉ）の計算結果の正負にしたがって、演算器１０７のｓｉｇｎ端子から演算器１０５のｓｗ端子にビット信号を出力する。このビット信号を以下、ｓｉｇｎ信号と称す。本実施の形態では、ｓｉｇｎ信号は、電圧差（Ｏｊ−Ｏｉ）の計算結果が正（＋）のときには１、負（−）のときには０となるが、これに限定されないことは明らかである。
手順８）また、電圧差（Ｏｊ−Ｏｉ）の計算結果の絶対値は、デコーダ１１７ａを通してＬＵＴ２Ａに入力される。なお、絶対値を表すデータはデコーダ１１７ａを通した時点で、ＮビットからＮ’ビットに変換されている。
手順９）ＬＵＴ２Ａからの出力は、上記のｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する。具体的には、ｓｉｇｎ信号が１のときは演算器１０５のａ端子及びｂ端子から取得したデータの和（ａ＋ｂ）を計算してＲＥＧ２に渡し、ｓｉｇｎ信号が０のときは演算器１０５のａ端子及びｂ端子から取得したデータの差（ａ−ｂ）を計算してＲＥＧ２に渡す。
より詳しくは、ｓｉｇｎ信号が１のときは「ＲＥＧ２から読み出した状態値（Ｎビット）とＬＵＴ２Ａからの出力との和を計算してＲＥＧ２に渡し」、ｓｉｇｎ信号が０のときは「ＲＥＧ２から読み出した状態値（Ｎビット）とＬＵＴ２Ａからの出力との差を計算してＲＥＧ２に渡す」。なお、前述した通り、ＬＵＴ２Ａからの出力はＫビットである。
【００２０】
▲３▼ＬＵＴ２Ｂを用いるときの動作手順（手順１０）
手順１０−１）手順１〜９の動作を所定回数繰り返した後、制御クロック信号ＣＬＫＢをＨｉｇｈに、制御クロック信号ＣＬＫＡ及びＣＬＫＣをＬｏｗに設定する。これにより、スイッチ１１３ｈ及び１１３ｌが閉じ、スイッチ１１３ｇ，１１３ｉ，１１３ｋ，１１３ｍが開く。以降は上記手順１〜９と同様の処理を行う。
手順１０−２）ここで、手順１〜９と異なる点は、手順８において電圧差（Ｏｊ−Ｏｉ）の計算結果の絶対値がデコーダ１１７ｂを通してＬＵＴ２Ｂに入力され、ＬＵＴ２Ｂからの出力が、ｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する点である。
【００２１】
▲４▼ＬＵＴ２Ｃを用いるときの動作手順（手順１１）
手順１１−１）手順１０の動作を所定回数繰り返した後、制御クロック信号ＣＬＫＣをＨｉｇｈに、制御クロック信号ＣＬＫＡ及びＣＬＫＢをＬｏｗに設定する。これにより、スイッチ１１３ｉ及び１１３ｍが閉じ、スイッチ１１３ｇ，１１３ｈ，１１３ｋ，１１３ｌが開く。以降は上記手順１〜９と同様の処理を行う。
手順１１−２）ここで、手順１〜９と異なる点は、手順８において電圧差（Ｏｊ−Ｏｉ）の計算結果の絶対値がデコーダ１１７ｃを通してＬＵＴ２Ｃに入力され、ＬＵＴ２Ｃからの出力が、ｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する点である。
【００２２】
（２）本発明の第２の実施の形態
（２−１）デジタル回路図の説明
本発明の第２の実施の形態を図２に示す。図１と同じく、抵抗ヒューズネットワークを本発明によるデジタル回路で構成した例である。同図に示したのは、１画素に相当する回路である。
本デジタル回路では、画像の輝度値（入力値）をＮビットで表現し、図２のレジスタ２０３（以下、ＲＥＧ１と称す）に格納する。また、状態値をＮ＋Ｍビットで表現し（Ｍ＞０）、図２のレジスタ２０１（以下、ＲＥＧ２と称す）に格納する。
【００２３】
本実施の形態では「状態値同士」または「状態値と入力値との間」で計算をするときには、状態値の上位Ｎビットのみを用いて、Ｎビット精度で計算する。
抵抗ヒューズの非線形特性を実現するために、本実施の形態ではルックアップテーブル（以下、ＬＵＴと称す）を用いる。アニーリングを実現するために、本実施の形態では３個のＬＵＴを順次切り替えて用いる。ここでは、これら３個のＬＵＴを図２の２１１ａ（以下、ＬＵＴ２Ａと称す）、２１１ｂ（以下、ＬＵＴ２Ｂと称す）、２１１ｃ（以下、ＬＵＴ２Ｃと称す）を用いて表す。
また、コンダクタンスの線形抵抗についての計算は、単純な掛け算なので乗算器を用いても良いが、本実施の形態では図２のＬＵＴ２０９（以下、ＬＵＴ１と称す）を用いる。なお、本発明の形態では、ＬＵＴ１及びＬＵＴ２Ａ〜ＬＵＴ２Ｃに信号を入力する際、デコーダ２１５及び２１７ａ〜２１７ｃを用いる。ＬＵＴ１及びＬＵＴ２Ａ〜ＬＵＴ２Ｃは、適当なビット精度Ｋ（Ｋ＜Ｎ＋Ｍ，  Ｋ＞Ｍ）で結果を出力し、ＲＥＧ２の結果を更新する。
【００２４】
（２−２）動作原理の詳細説明
図２を参照しながら、動作原理について詳しく説明する。なお、図２のＩｉは原画像データ、Ｏｉは処理結果データ、Ｏｊは隣接セルからの信号を表している。
▲１▼制御クロック信号ＣＬＫをＨｉｇｈにしたときの動作手順（手順１〜５）
手順１）まず最初に、制御クロック信号ＣＬＫＡをＨｉｇｈに、制御クロック信号ＣＬＫＢ及びＣＬＫＣをＬｏｗに設定する。これにより、スイッチ２１３ｇ及び２１３ｋが閉じ、スイッチ２１３ｈ，２１３ｉ，２１３ｌ，２１３ｍが開く。
手順２）制御クロック信号ＣＬＫがＨｉｇｈのときには、スイッチ２１３ａ，２１３ｃ，２１３ｅが閉じ、スイッチ２１３ｂ，２１３ｄ，２１３ｆが開く。
手順３）スイッチ２１３ａが閉じると、演算器２０７では電圧差（Ｉｉ−Ｏｉ）の計算を行う。このとき、シフトレジスタ２１９は、ＲＥＧ２からの出力を−Ｍビットシフトして演算器２０７に渡す。演算器２０７は、電圧差（Ｉｉ−Ｏｉ）の計算結果の正負にしたがって、自身のｓｉｇｎ端子から演算器２０５のｓｗ端子にビット信号を出力する。このビット信号を以下、ｓｉｇｎ信号と称す。本実施の形態では、ｓｉｇｎ信号は、電圧差（Ｉｉ−Ｏｉ）の計算結果が正（＋）のときには１、負（−）のときには０となるが、これに限定されないことは明らかである。
手順４）また、電圧差（Ｉｉ−Ｏｉ）の計算結果の絶対値は、デコーダ２１５を通してＬＵＴ１に入力される。
手順５）ＬＵＴ１からの出力は、上記のｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する。具体的には、ｓｉｇｎ信号が１のときは演算器２０５のａ端子及びｂ端子から取得したデータの和（ａ＋ｂ）を計算してＲＥＧ２に渡し、ｓｉｇｎ信号が０のときは演算器２０５のａ端子及びｂ端子から取得したデータの差（ａ−ｂ）を計算してＲＥＧ２に渡す。
より詳しくは、ｓｉｇｎ信号が１のときは「ＲＥＧ２から読み出した状態値（Ｎ＋Ｍビット）とＬＵＴ１からの出力との和を計算してＲＥＧ２に渡し」、ｓｉｇｎ信号が０のときは「ＲＥＧ２から読み出した状態値（Ｎ＋Ｍビット）とＬＵＴ１からの出力との差を計算してＲＥＧ２に渡す」。なお、前述した通り、ＬＵＴ１からの出力はＫビットである。
【００２５】
▲２▼ＬＵＴ２Ａを用いるときの動作手順（手順６〜９）
手順６）制御クロック信号ＣＬＫがＬｏｗのときには、スイッチ２１３ｂ，２１３ｄ，２１３ｆが閉じ、スイッチ２１３ａ，２１３ｃ，２１３ｅが開く。
手順７）スイッチ２１３ｂが閉じると、演算器２０７では電圧差（Ｏｊ−Ｏｉ）の計算を行う。そして、電圧差（Ｏｊ−Ｏｉ）の計算結果の正負にしたがって、演算器２０７のｓｉｇｎ端子から演算器２０５のｓｗ端子にビット信号を出力する。このビット信号を以下、ｓｉｇｎ信号と称す。本実施の形態では、ｓｉｇｎ信号は、電圧差（Ｏｊ−Ｏｉ）の計算結果が正（＋）のときには１、負（−）のときには０となるが、これに限定されないことは明らかである。
手順８）また、電圧差（Ｏｊ−Ｏｉ）の計算結果の絶対値は、デコーダ２１７ａを通してＬＵＴ２Ａに入力される。
手順９）ＬＵＴ２Ａからの出力は、上記のｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する。具体的には、ｓｉｇｎ信号が１のときは演算器２０５のａ端子及びｂ端子から取得したデータの和（ａ＋ｂ）を計算してＲＥＧ２に渡し、ｓｉｇｎ信号が０のときは演算器２０５のａ端子及びｂ端子から取得したデータの差（ａ−ｂ）を計算してＲＥＧ２に渡す。
より詳しくは、ｓｉｇｎ信号が１のときは「ＲＥＧ２から読み出した状態値（Ｎ＋Ｍビット）とＬＵＴ２Ａからの出力との和を計算してＲＥＧ２に渡し」、ｓｉｇｎ信号が０のときは「ＲＥＧ２から読み出した状態値（Ｎ＋Ｍビット）とＬＵＴ２Ａからの出力との差を計算してＲＥＧ２に渡す」。なお、前述した通り、ＬＵＴ２Ａからの出力はＫビットである。
【００２６】
▲３▼ＬＵＴ２Ｂを用いるときの動作手順（手順１０）
手順１０−１）手順１〜９の動作を所定回数繰り返した後、制御クロック信号ＣＬＫＢをＨｉｇｈに、制御クロック信号ＣＬＫＡ及びＣＬＫＣをＬｏｗに設定する。これにより、スイッチ２１３ｈ及び２１３ｌが閉じ、スイッチ２１３ｇ，２１３ｉ，２１３ｋ，２１３ｍが開く。以降は上記手順１〜９と同様の処理を行う。
手順１０−２）ここで、手順１〜９と異なる点は、手順８において電圧差（Ｏｊ−Ｏｉ）の計算結果の絶対値がデコーダ２１７ｂを通してＬＵＴ２Ｂに入力され、ＬＵＴ２Ｂからの出力が、ｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する点である。
【００２７】
▲４▼ＬＵＴ２Ｃを用いるときの動作手順（手順１１）
手順１１−１）手順１０の動作を所定回数繰り返した後、制御クロック信号ＣＬＫＣをＨｉｇｈに、制御クロック信号ＣＬＫＡ及びＣＬＫＢをＬｏｗに設定する。これにより、スイッチ２１３ｉ及び２１３ｍが閉じ、スイッチ２１３ｇ，２１３ｈ，２１３ｋ，２１３ｌが開く。以降は上記手順１〜９と同様の処理を行う。
手順１１−２）ここで、手順１〜９と異なる点は、手順８において電圧差（Ｏｊ−Ｏｉ）の計算結果の絶対値がデコーダ２１７ｃを通してＬＵＴ２Ｃに入力され、ＬＵＴ２Ｃからの出力が、ｓｉｇｎ信号にしたがってＲＥＧ２のデータを更新する点である。
以上、本実施の形態によれば、ＲＥＧ２のデータはＮ＋Ｍビットの高精度で更新されるが、更新量計算はそれよりも小さいＮビットでよいことから、更新量計算に要する回路規模を小さくすることができる。
【００２８】
（３）本発明を画像データに適用する場合の説明
第１及び第２の実施の形態に基づいて、画像データに適用する場合の処理回路全体の構成を図４に示す。また、図３に処理対象となる画素の選択方法を示す。
（３−１）図３の説明
ソースメモリ３０１には原画像データ（図１及び図２のＩｉ）、デスティネーションメモリ３０３には処理結果（図１及び図２のＯｉ）が格納される。処理開始時は、デスティネーションメモリ３０３に例えば原画像データが格納されている。矢印３１３は３×３画素ａ〜ｉ（図３の３１５）をラスタ走査する方向を示している。ソースメモリ３０１及びデスティネーションメモリ３０３の同座標のデータを矢印３１３の順に本回路に入力すると、３×３画素ａ〜ｉはレジスタ３０９に、これらと同座標のソースメモリ３０１内の原画像データがレジスタ３０５に同時に格納される。本実施の形態では、タイミング調整をレジスタ（３０５及び３０９）および１ラインメモリ３０７ａ〜３０７ｃを用いて行う。
１ラインメモリ３０７ａ〜３０７ｃとは、画像１ライン分のデータを保存するメモリ（ＦＩＦＯ）である。図３は、１ラインメモリ３０７ｃに保存されていた１ライン分の原画像データ（画素ｄ〜ｆ）をレジスタ３０５に格納し、新たに１ライン分の原画像データ（画素ｇ〜ｉ）を保存するときの状態を表している。
【００２９】
（３−２）図４の説明（第１の実施の形態）
第１の実施の形態に基づいて本発明を画像データに適用する場合を説明する。図４はレジスタ３０９に格納された処理結果データ、及びレジスタ３０５に格納された原画像データに対する抵抗ヒューズ処理のブロック図である。本実施の形態では、レジスタ３０９及び３０５に格納されたデータの画素値は毎クロック変化するため、クロック周波数を上げるために処理をパイプライン化している。なお、注目画素ｅの更新結果を得るまでのクロック数はレジスタの段数であり、６クロックである。
【００３０】
図４の演算器４０１ａ〜４０１ｉ及び４０１ｓは演算器１０７に相当する。一方、同図の４０３ｓはデコーダ１１５及びＬＵＴ１に相当する。また、同図の４０３ａ〜ｉは、デコーダ１１７ａ〜１１７ｃ及びＬＵＴ２Ａ〜ＬＵＴ２Ｃに相当する。さらに、同図の４０９ａ〜ｉ及び４０９ｓは、演算器１０５に相当する。また、４３１ａ〜４３１ｉはレジスタ３０９から出力される画素ａ〜ｉの処理結果データに相当する。
【００３１】
説明の簡単のため、注目画素ｅに対するレジスタ３０５からの出力と、処理結果データ４３１ａの処理動作について説明する。
▲１▼原画像データと注目画素の処理結果データとの差分に基づく演算処理
演算器４０１ｓでは、処理結果データ４３１ｅとレジスタ３０５からの出力との差分を計算し、計算結果の正負に応じたｓｉｇｎ信号を演算器４０９ｓに渡す。また、該計算結果の絶対値を４０３ｓに渡す。４０３ｓは該絶対値をＮビットからＮ’ビットにした後、ＬＵＴ１によって変換する。
演算器４０９ｓは演算器４０１ｓから受け取ったｓｉｇｎ信号と、４０３ｓからの出力とに基づく演算処理を行う。具体的には、４０１ｓからの出力をアドレスとして４０３ｓから更新量の絶対値を読み出し、その値を４０１ｓから受け取ったｓｉｇｎ信号（符号）を用いて符号付きの更新量に変換する。
【００３２】
▲２▼隣接画素と注目画素の処理結果データとの差分に基づく演算処理
演算器４０１ａでは、処理結果データ４３１ｅと処理結果データ４３１ａとの差分を計算し、計算結果の正負に応じたｓｉｇｎ信号を演算器４０９ａに渡す。また、該計算結果の絶対値を４０３ａに渡す。４０３ａは該絶対値をＮビットからＮ’ビットにした後、セレクタ４０７ａによって３個のＬＵＴ（ＬＵＴ２Ａ〜ＬＵＴ２Ｃ）からアニーリング過程に応じた１つを選択し、選択したＬＵＴで該絶対値（Ｎ’ビット）を変換する。これら３個のＬＵＴは、抵抗ヒューズの特性３種類に対応している。
演算器４０９ａは演算器４０１ａから受け取ったｓｉｇｎ信号と、セレクタ４０７ａからの出力とに基づく演算処理を行う。具体的には、４０１ａからの出力をアドレスとして４０７ａから更新量の絶対値を読み出し、その値を４０１ａから受け取ったｓｉｇｎ信号（符号）を用いて符号付きの更新量に変換する。以上▲２▼の処理は、他の隣接画素の処理結果データｂ〜ｉについても同様に行う。
【００３３】
▲３▼更新量の加算
加算器４１３は、４０９ｓからの出力と処理結果データ４３１ｅとを加算する。また、加算器４１９ａは、４０９ａからの出力と４０９ｂからの出力とを加算する。同様に、加算器４１９ｂは、４０９ｃからの出力と４０９ｄからの出力とを加算する。同様に、加算器４１９ｃは、４０９ｆからの出力と４０９ｇからの出力とを加算する。同様に、加算器４１９ｄは、４０９ｈからの出力と４０９ｉからの出力とを加算する。
また、加算器４２１ａは、加算器４１９ａからの出力と加算器４１９ｂからの出力とを加算する。同様に、加算器４２１ｂは、加算器４１９ｃからの出力と加算器４１９ｄからの出力とを加算する。同様に、加算器４２３は、加算器４２１ａからの出力と加算器４２１ｂからの出力とを加算する。
さらに、加算器４２５は、加算器４１３からの出力と加算器４２３からの出力とを加算する。
【００３４】
以上のようにして、各更新量を順次加算し最終的な更新結果を得る。結果はデスティネーションメモリ３０３に格納され、上記処理を画像全体に対して更新回数ほど繰り返す。なお、図４にはシフトレジスタ４１１とシフトレジスタ４２７とが記載されているが、第１の実施の形態では不要であるので、両レジスタは記載されていないものとする。
【００３５】
（３−３）図４の説明（第２の実施の形態）
第２の実施の形態に基づいて本発明を画像データに適用する場合を説明する。図４はレジスタ３０９に格納された処理結果データ、及びレジスタ３０５に格納された原画像データに対する抵抗ヒューズ処理のブロック図である。本実施の形態では、レジスタ３０９及び３０５に格納されたデータの画素値は毎クロック変化するため、クロック周波数を上げるために処理をパイプライン化している。なお、注目画素ｅの更新結果を得るまでのクロック数はレジスタの段数であり、６クロックである。
【００３６】
図４の演算器４０１ａ〜４０１ｉ及び４０１ｓは演算器２０７に相当する。一方、同図の４０３ｓはデコーダ２１５及びＬＵＴ１に相当する。また、同図の４０３ａ〜ｉは、デコーダ２１７ａ〜２１７ｃ及びＬＵＴ２Ａ〜ＬＵＴ２Ｃに相当する。さらに、同図の４０９ａ〜ｉ及び４０９ｓは、演算器２０５に相当する。また、４３１ａ〜４３１ｉはレジスタ３０９から出力される画素ａ〜ｉの処理結果データに相当する。
【００３７】
説明の簡単のため、注目画素ｅに対するレジスタ３０５からの出力と、処理結果データ４３１ａの処理動作について説明する。
▲１▼原画像データと注目画素の処理結果データとの差分に基づく演算処理
演算器４０１ｓでは、処理結果データ４３１ｅとレジスタ３０５からの出力との差分を計算し、計算結果の正負に応じたｓｉｇｎ信号を演算器４０９ｓに渡す。また、該計算結果の絶対値を４０３ｓに渡す。
演算器４０９ｓは演算器４０１ｓから受け取ったｓｉｇｎ信号と、４０３ｓからの出力とに基づく演算処理を行う。具体的には４０１ｓからの出力をアドレスとして、４０３ｓから更新量の絶対値を読み出し、それを差分の符号を用いて（ｓｉｇｎ信号に基づいて）符号付きの更新量に変換する。
以降の処理は、第１の実施の形態（３−２の▲２▼及び▲３▼の説明）とほぼ同じなので、相違点だけ説明する。その相違点とは、（ｉ）処理結果データ４３１ａ〜ｉがＮ＋Ｍビットで表現されている点、（ｉｉ）処理結果データ４３１ｅをシフトレジスタ４１１で−Ｍビットシフトしてから加算器４１３に入力する点、（ｉｉｉ）加算器４２５からの出力をシフトレジスタ４２７で＋Ｍビットシフトしてからデスティネーションメモリ３０３に格納する点である。
【００３８】
（３−４）図面の注意事項
図３及び図４の矩形の左下に＞記号のついているものは、その出力がクロックに同期していることを示し、＞記号のついていないものは、その出力がクロックに同期せず、組み合わせ回路の出力であることを示している。
図４の縦の関係において同位置にある＞記号のついた矩形（例えば、４０１ａ〜４０１ｉ及び４０１ｓ）は、同一時刻に各処理がパラレルに進行し、タイミング調整をしながら処理結果を得ることを示している。
【００３９】
（４）その他
以上、本発明の実施の形態を説明したが、上記説明では入力値として輝度値を適用したが、色相値、または任意の変換値を適用してもよい。
また、抵抗ヒューズネットワークは上記説明に限定されず、特性が線形のみの場合など、従来技術の説明中にある「画像のエッジ抽出を行う抵抗ネットワーク」で構成することも可能である。なお、抵抗ネットワークの場合はすべて線形抵抗で構成されるので、ＬＵＴを用いてもよいし、通常の乗算器を用いてもよい。また、特性の変化は３個に限定されるものではない。
さらに、フィードバック型ネットワークの例として、同様な回路構成でホップフィールドネットワークを構成することも可能である。この場合、他のニューロンからの入力を乗算器を用いて重み付けし、状態値に更新する。状態値をＬＵＴを用いて非線形変換（シグモイド関数変換など）することで出力とする。
【００４０】
【発明の効果】
このように本発明のデジタル情報処理回路によると、緩和型の画像処理回路などを少ない回路規模のデジタル回路で実装することができる。
また、デジタル方式で実装することで、従来のアナログ方式に比べて、確実に、高い制御性で処理が実行できる。
また、本発明のデジタル情報処理回路をＦＰＧＡなどに実装すれば、少量でもＬＳＩ化が可能で、かつ短時間で実現することができる。
さらに、本発明のデジタル情報処理回路は、他の画像処理回路と組み合わせることで、自由度の高い画像処理が効率的に実現できる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態であるデジタル情報処理回路の図。
【図２】本発明の第２の実施の形態であるデジタル情報処理回路の図。
【図３】本発明の実施の形態である画素の選択方法を示す図。
【図４】本発明の実施の形態である抵抗ヒューズ処理のブロック図。
【図５】相互結合型ネットワークを表した回路図。
【図６】エッジ抽出を行う抵抗ネットワークを表した回路図。
【図７】抵抗ヒューズネットワーク表した回路図。
【図８】抵抗ヒューズの電流（Ｉ）と電圧（Ｖ）の関係Ｉ＝Ｇ（Ｖ）を表す図。
【符号の説明】
１０１，１０３  レジスタ
１０５，１０７  演算器
１０９          ルックアップテーブル
１１１ａ〜ｃ    ルックアップテーブル
１１５          デコーダ
１１７ａ〜ｃ    デコーダ
２０１，２０３  レジスタ
２０５，２０７  演算器
２０９          ルックアップテーブル
２１１ａ〜ｃ    ルックアップテーブル
２１５          デコーダ
２１７ａ〜ｃ    デコーダ
【図１】
2004178021.tif 000004
【図２】
2004178021.tif 000005
【図３】
2004178021.tif 000006
【図４】
2004178021.tif 000007
【図５】
2004178021.tif 000008
【図６】
2004178021.tif 000009
【図７】
2004178021.tif 000010
【図８】
2004178021.tif 000011