(57)【特許請求の範囲】
【請求項１】
少なくとも１つの入力ノードと１つの出力ノードとを含む３つ以上のノードと、
前記３つ以上のノード間に接続され、各ノード間の信号伝播方向が規定されている複数のパスと、
前記各パスの信号伝播時間を規定するための信号伝播時間規定手段と、
前記入力ノードに所定の入力信号を入力する入力手段と、
前記入力信号が前記パスを伝播して、前記出力ノードに到達するのに要する時間を検出する検出手段と
を有する半導体回路。
【請求項２】
前記ノードは、自己に接続されるパスを介して入力される信号が複数あるときには、自己に接続されるパスを介して入力される信号のうちで一番最初又は一番最後に到達する信号のパスを特定して記憶する記憶手段を有する請求項１記載の半導体回路。
【請求項３】
前記ノードに３つのパスを介して３つの信号が入力されるときには、該ノードの前記記憶手段は、３つのパスを介して入力される３つの信号をそれぞれ１つずつ入力する３つの３入力否定論理積回路を有し、該各否定論理積回路は、さらに他の２つの否定論理積回路の出力を入力する請求項２記載の半導体回路。
【請求項４】
前記複数のパスのうちの少なくとも１つのパスの信号伝播時間規定手段は、２つのマッチング対象信号の一致度又は類似度に応じて信号伝播時間を変化させる請求項２記載の半導体回路。
【請求項５】
前記ノードは、２次元格子状に配置される請求項４記載の半導体回路。
【請求項６】
前記検出手段は、前記検出する出力ノード到達時間に応じて２つのマッチング対象信号の一致度又は類似度を検出し、前記記憶手段に記憶されるパスを特定することにより前記一致度又は類似度に対応する最短パス又は最長パスを検出してダイナミックプログラミングマッチングを行う請求項５記載の半導体回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体回路に関し、特に信号伝播時間を検出する半導体回路に関する。
【０００２】
【従来の技術】
図２（Ａ）は、通常ベクトルマッチングアルゴリズムを示す。マッチングでは、入力パターンＩＮＰがテンプレートパターンＴＥＭに対してどの位類似しているかを検出する。例えば、入力パターンＩＮＰ及びテンプレートパターンＴＥＭは、縦軸が音声データ値であり、横軸が時間である。この通常ベクトルマッチングでは、入力パターンＩＮＰとテンプレートパターンＴＥＭとを、対応する横軸値毎に差分ＤＩＦを求める。差分ＤＩＦは、両者の差分の絶対値で表される。この差分ＤＩＦが小さいほど、入力パターンＩＮＰがテンプレートパターンＴＥＭに類似していると言える。
【０００３】
この際、入力パターンＩＮＰは、横軸に対してデータ数が多少増減することはよくあることである。すなわち、ある時間軸のデータが欠落したり、データが挿入されたりすることがある。この場合でも、人間は、入力パターンＩＮＰとテンプレートパターンＴＥＭとの全体的パターンが似ているか否かで類似度を判断している。
【０００４】
しかし、この通常ベクトルマッチングは、入力パターンＩＮＰが横軸に対してデータ数が１つでも増減すると、両者の横軸の対応関係がとれなくなり、両者の類似度が極めて小さくなってしまう。そこで、図２（Ｂ）のアルゴリズムが考えられている。
【０００５】
図２（Ｂ）は、ＤＰ（ダイナミックプログラミング）マッチングアルゴリズムを示す。ＤＰマッチングでは、入力パターンＩＮＰとテンプレートパターンＴＥＭとを比較する際に、厳密に横軸の対応関係を規定せずに比較を行う。すなわち、入力パターンＩＮＰ及びテンプレートパターンＴＥＭを横軸方向で移動可能にして、両者を比較する。これにより、両者の差分ＤＩＦは小さくなる。すなわち、図２（Ａ）の通常ベクトルマッチングでは差分ＤＩＦが大きくなる場合であっても、図２（Ｂ）のＤＰマッチングでは差分ＤＩＦが小さくなり、適正なマッチングを行うことができる。
【０００６】
【発明が解決しようとする課題】
ＤＰマッチングは、入力パターンＩＮＰ及びテンプレートＴＥＭの横軸を移動可能にして両者を比較するので、多数の比較組み合わせが存在する。その比較組み合わせのうちで最も類似している組み合わせの差分ＤＩＦを求めるものである。これを実現するには、多数の組み合わせの比較を行わなければならないため、処理時間に膨大な時間を要する。
【０００７】
本発明の目的は、高速にＤＰマッチングを行うことができる半導体回路を提供することである。
【０００８】
【課題を解決するための手段】
本発明の半導体回路は、少なくとも１つの入力ノードと１つの出力ノードとを含む３つ以上のノードと、前記３つ以上のノード間に接続され、各ノード間の信号伝播方向が規定されている複数のパスと、前記各パスの信号伝播時間を規定するための信号伝播時間規定手段と、前記入力ノードに所定の入力信号を入力する入力手段と、前記入力信号が前記パスを伝播して、前記出力ノードに到達するのに要する時間を検出する検出手段とを有する。
【０００９】
本発明によれば、各パスの信号伝播時間を規定し、入力信号がパスを伝播して出力ノードに到達する時間を検出することができる。２つのマッチング対象信号の一致度又は類似度に応じて各パスの信号伝播時間を規定すれば、出力ノード到達時間に応じて両者の一致度又は類似度を検出することができる。また、この際、信号の最短パス又は最長パスを検出すれば、その一致度又は類似度に対応する最短パス又は最長パスの比較組み合わせを検出することができる。
【００１０】
【発明の実施の形態】
図１は、本発明の実施形態によるＤＰ（ダイナミックプログラミング）マッチングを行うための最短パス検出方法を示す。入力パターンＩＮＰとテンプレートパターンＴＥＭとのＤＰマッチングを行い、両者が最も類似している比較組み合わせを最短パス１１２として検出する。入力パターンＩＮＰとテンプレートＴＥＭの比較組み合わせを、２次元格子状のパス群１１１で表現する。各格子は、入力パターンＩＮＰ内の１要素データとテンプレートパターンＴＥＭ内の１要素データとを比較するためのパスである。両者の類似度が大きいときには距離が短く、両者の類似度が小さいときには距離が長い。各格子の接続点をノードとする。スタートノード（入力ノード）ＳＴＡＲＴに入力信号を入力し、ゴールノード（出力ノード）ＧＯＡＬに出力される信号を検出する。入力信号は、複数のパスの組み合わせを経由してゴールノードＧＯＡＬに到達する。ゴールノードＧＯＡＬには、最短パス１１２を経由した信号が、一番最初に到達する。この最短パス１１２が最も類似度が大きい比較組み合わせを示す。信号が最短パス１１２を通ってゴールノードＧＯＡＬに一番最初に到達した時間が類似度を示す。伝播時間が短いほど、類似度が大きいことになる。以下、より具体的な説明を行う。
【００１１】
図３は、より具体的な最短パス検出方法を示す図である。入力パターン３０１は、例えば「ｏｔｈｅｒ」の文字列である。テンプレートパターン３０２は、例えば「ｍｏｔｈｅｒ」の文字列である。両者の文字列のマッチングを行う例を説明する。入力パターン３０１とテンプレートパターン３０２の比較組み合わせを、２次元格子状のパス群３１１で表現する。各格子は、入力パターン３０１内の１文字とテンプレートパターン３０２内の１文字とを比較するためのパスである。例えば、両者が一致しているときの距離を「０」とし、両者が一致していないときの距離を「＋１」とする。各格子には、右方向矢印の第１のパスと、下方向矢印の第２のパスと、右下方向矢印の第３のパスがある。スタートノードＳＴＡＲＴに入力信号を入力することにより、スタートノードＳＴＡＲＴから信号伝播が開始する。
【００１２】
まず、スタートノードＳＴＡＲＴの右下方向のパスについて説明する。右下方向のパスは、入力パターン３０１とテンプレートパターン３０２をそれぞれ１文字ずつずらすパスを示す。すなわち、スタートノードＳＴＡＲＴにおいて、まず入力パターン３０１の「ｏ」とテンプレートパターン３０２の「ｍ」を比較する。両者は不一致であるので、距離は「＋１」になり、右下方向のパスを通り、次の比較対象が入力パターン３０１の「ｔ」とテンプレートパターン３０２の「ｏ」になる。
【００１３】
次に、スタートノードＳＴＡＲＴの下方向のパスについて説明する。下方向のパスは、テンプレートパターン３０２をずらさずに入力パターン３０１のみを１文字ずらすパスを示す。すなわち、スタートノードＳＴＡＲＴにおいて、入力パターン３０１の「ｏ」とテンプレートパターン３０２の「ｍ」の比較を行わずに、入力パターン３０１を１文字ずらす。比較を行わないので、距離は「＋１」になり、下方向のパスを通り、次の比較対象が入力パターン３０１の「ｔ」とテンプレートパターン３０２の「ｍ」になる。すなわち、テンプレート３０２については、比較を行わずに同じ文字を次の入力パターン３０１と比較するためのギャップを設ける。このギャップを「＿」で表現すると、このパスは入力パターン３０１の「ｏｔ」とテンプレートパターン３０２の「＿ｍ」とが比較対象になる。
【００１４】
次に、スタートノードＳＴＡＲＴの右方向のパスについて説明する。右方向のパスは、入力パターン３０１をずらさずにテンプレートパターン３０２のみを１文字ずらすパスを示す。すなわち、スタートノードＳＴＡＲＴにおいて、入力パターン３０１の「ｏ」とテンプレートパターン３０２の「ｍ」の比較を行わずに、テンプレートパターン３０２を１文字ずらす。比較を行わないので、距離は「＋１」になり、右方向のパスを通り、次の比較対象が入力パターン３０１の「ｏ」とテンプレートパターン３０２の「ｏ」になる。すなわち、入力パターン３０１についてはギャップを設けるので、このパスは入力パターン３０１の「＿ｏ」とテンプレートパターン３０２の「ｍｏ」とが比較対象になる。以下、これに続く、最短パス３１２を説明する。
【００１５】
その後、入力パターン３０１の「ｏ」とテンプレートパターン３０２の「ｏ」とを比較し、両者が一致しているので、距離を「０」にして、右下方向のパスに進む。その後、同様に、入力パターン３０１の「ｔｈｅｒ」とテンプレートパターン３０２の「ｔｈｅｒ」とを順次比較し、それぞれ両者が一致しているので、距離「０」として右下方向のパスに進む。このパスが最短パス３１２として、ゴールノードＧＯＡＬに最短で到達する。最短パス３１２の合計距離は「＋１」になり、これが類似度（非類似度）に相当する。
【００１６】
ここで、縦方向のパスは、テンプレートパターン３０２のギャップに相当するので、縦方向のパスはすべて距離が「＋１」になる。また、横方向のパスは、入力パターン３０１のギャップに相当するので、横方向のパスもすべて距離が「＋１」になる。これに対し、右下方向のパスは、両者の文字が一致していれば距離が「０」になり、両者の文字が一致していなければ距離が「＋１」になる。すなわち、右下方向のパスは、両者の一致度に応じて距離が変化する。
【００１７】
図４は、上記の各格子の半導体回路構成を示す。各パスの接続点のノードには、ノード回路４０１が設けられる。ノード回路４０１は、例えば３入力３出力の論理和（ＯＲ）回路を含む。この格子回路では、上記の距離を遅延時間として表現する。下方向のパス及び右方向のパスの「＋１」の距離は、遅延回路４０２の遅延時間で表される。右下方向のパスの距離は、可変遅延回路４０３の遅延時間で表される。可変遅延回路は、両者の文字の一致度に応じて遅延時間が変わる。距離が長いほど、遅延時間が長くなる。
【００１８】
図５は、図４のノード回路４０１の構成例を示す。ノード回路４０１は、３入力ＯＲ回路５０１及び最短パス記憶回路５１０を有する。ＯＲ回路５０１は、例えば３つのパスから入力される３つの信号ＳＡ，ＳＢ，ＳＣを入力し、それらの論理和を他の３つのノードに出力する。
【００１９】
最短パス記憶回路５１０は、３つの３入力否定論理積（ＮＡＮＤ）回路５１１〜５１３及びｐチャネルＭＯＳトランジスタ５１４〜５１６を有する。ＮＡＮＤ回路５１１は、信号ＳＡを入力すると共にＮＡＮＤ回路５１２及び５１３の出力信号を入力し、それらの否定論理積を出力する。ＮＡＮＤ回路５１２は、信号ＳＢを入力すると共にＮＡＮＤ回路５１１及び５１３の出力信号を入力し、それらの否定論理積を出力する。ＮＡＮＤ回路５１３は、信号ＳＣを入力すると共にＮＡＮＤ回路５１１及び５１２の出力信号を入力し、それらの否定論理積を出力する。すなわち、各ＮＡＮＤ回路は、３つのパスを介して入力される３つの信号ＳＡ，ＳＢ，ＳＣをそれぞれ１つずつ入力すると共に、他の２つのＮＡＮＤ回路の出力を入力する。
【００２０】
最短パス記憶回路５１０は、３つの信号ＳＡ，ＳＢ，ＳＣのうちで一番速く到達する信号のパスを特定して記憶する。最短パス検出前には、スタートノードＳＴＡＲＴの入力信号はローレベルになっており、最短パス検出中は入力信号をハイレベルにする。その入力信号がローレベルのときには、信号ＳＡ，ＳＢ，ＳＣはすべてローレベルである。その結果、３つのＮＡＮＤ回路５１１〜５１３は、すべてハイレベルを出力する。
【００２１】
次に、スタートノードＳＴＡＲＴにハイレベルの入力信号が入力されると、３つの信号ＳＡ，ＳＢ，ＳＣが所定の遅延時間を持ってハイレベルになる。最短パス回路５１０は、３つの信号ＳＡ，ＳＢ，ＳＣのうちで一番最初にハイレベルになった信号のパスを記憶することができる。
【００２２】
例えば、信号ＳＡが一番最初にハイレベルになり、その他の信号ＳＢ及びＳＣが未だローレベルであるとする。その場合、ＮＡＮＤ回路５１１がローレベルを出力し、ＮＡＮＤ回路５１２及び５１３がハイレベルの出力を維持する。この後、信号ＳＢ及びＳＣがハイレベルに変化しても、最小パス記憶回路５１０は、この状態を維持して記憶し続ける。すなわち、ＮＡＮＤ回路５１１の出力がローレベルとして他のＮＡＮＤ回路５１２及び５１３に入力されるので、信号ＳＢ及びＳＣがその後にハイレベルになったとしても、ＮＡＮＤ回路５１２及び５１３はハイレベルを出力し続ける。
【００２３】
最短パス記憶回路５１０は、３つのＮＡＮＤ回路５１１〜５１３のうちのいずれか１つがローレベルを出力する。どのＮＡＮＤ回路の出力がローレベルであるのかを調べることにより、３つの信号ＳＡ，ＳＢ，ＳＣのうちのどの信号のパスが一番最初に到達したのかを知ることができる。ＮＡＮＤ回路５１１の出力がローレベルであれば信号ＳＡが一番最初に到達し、ＮＡＮＤ回路５１２の出力がローレベルであれば信号ＳＢが一番最初に到達し、ＮＡＮＤ回路５１３の出力がローレベルであれば信号ＳＣが一番最初に到達したことが分かる。この最短パス記憶回路５１０を用いることにより、図３において、ゴールノードＧＯＡＬからパスを遡ることにより、最短パス３１２を検出することができる。すなわち、最短パス記憶回路５１０に記憶されているパスをたどることにより、最短パスを知ることができる。
【００２４】
トランジスタ５１４〜５１６は、ゲートがリセット信号ＲＳに接続され、ソースが電源電位に接続され、ドレインがそれぞれＮＡＮＤ回路５１１，５１２，５１３の出力端子に接続される。最短パス検出を行う前に、スタートノードＳＴＡＲＴの入力信号をローレベルにし（信号ＳＡ，ＳＢ，ＳＣをローレベルにし）、リセット信号ＲＳをローレベルにして、トランジスタ５１４〜５１６をオンさせる。ＮＡＮＤ回路５１１〜５１３の出力は、電源電位に接続され、ハイレベルにリセットされる。最短パス検出中は、リセット信号をハイレベルにし、トランジスタ５１４〜５１６をオフさせる。なお、トランジスタ５１４〜５１６を削除し、スタートノードＳＴＡＲＴの入力信号をローレベル（信号ＳＡ，ＳＢ，ＳＣをローレベル）にすることにより、ＮＡＮＤ回路５１１〜５１３の出力をハイレベルにリセットさせるようにしてもよい。
【００２５】
なお、図５では３入力３出力のノード回路４０１の構成を説明したが、１入力又は２入力のノード回路も同様に構成することができる。
【００２６】
図６（Ａ）は、図４の可変遅延回路４０３の構成例を示す。可変遅延回路４０３は、偶数個（例えば４個）のインバータ６０１を直列に接続し、入力端子ＩＮに入力される信号を遅延させて出力端子ＯＵＴから出力させる。各インバータ６０１は、所定の遅延時間を持つ論理否定信号を出力する。スイッチ６０２は、制御信号ＣＴＬに応じて、偶数個（例えば２個）のインバータ６０１をバイパスしてショートさせる。制御信号ＣＴＬは、両者の文字が一致していればスイッチ６０２を閉じ、一致していなければスイッチ６０２を開く。すなわち、両者の文字が一致していなければ４個のインバータ６０１に相当する遅延時間を付与して出力端子ＯＵＴから信号を出力する。両者の文字が一致していれば２個のインバータ６０１に相当する遅延時間を付与して出力端子ＯＵＴから信号を出力する。
【００２７】
図６（Ｂ）は、上記の各インバータ６０１の構成例を示す。ｐチャネルＭＯＳトランジスタは、ゲートが入力端子６１１に接続され、ソースが電源電位に接続され、ドレインが出力端子６１５に接続される。ｎチャネルＭＯＳトランジスタ６１３は、ゲートが入力端子６１１に接続され、ソースがグランド電位に接続され、ドレインが出力端子６１５に接続される。容量６１４は、出力端子６１５とグランド電位との間に接続される。このインバータは、入力端子６１１に入力される信号に所定の遅延時間を付与し、その論理否定信号を出力端子６１５から出力する。
【００２８】
図６（Ｃ）は、図４の可変遅延回路４０３の他の構成例を示す。この可変遅延回路４０３は、図６（Ｂ）のインバータに対してｎチャネルＭＯＳトランジスタ６２１を追加したものである。トランジスタ６２１は、ゲートが制御端子６２２に接続され、ソースがグランド電位に接続され、ドレインがトランジスタ６１３のソースに接続される。制御端子６２２には、両者の文字の一致度に応じて大きくなる制御電圧が入力される。制御端子６２２の電圧が大きいほど、遅延時間が小さくなる。
【００２９】
なお、図４の遅延回路４０２も上記と同様に遅延時間を固定させたものとして構成することができる。
【００３０】
図７は、図４の格子回路のより具体的な構成例を示す。比較選択回路７０１は、図４のノード回路４０１に相当する。遅延回路７０２は、図４の遅延回路４０２に相当する。遅延回路７０３及びセレクタ７０４は、図４の可変遅延回路４０３に相当する。
【００３１】
各格子回路は、上記のように、例えば入力パターンの１文字とテンプレートパターンの１文字とを比較する。アルファベットの１文字は、通常、７ビット又は８ビットの文字コードで表現されるので、その文字コードを比較する。図７では、説明の簡単のため、１文字が２ビットで表現される例を説明する。
【００３２】
左上の格子回路は、入力パターンの２ビットコードＸ１，Ｘ０（例えば図３の「ｏ」）とテンプレートパターンの２ビットコードＡ１，Ａ０（例えば図３の「ｍ」）とを比較する。右上の格子回路は、入力パターンの２ビットコードＸ１，Ｘ０（例えば図３の「ｏ」）とテンプレートパターンの２ビットコードＢ１，Ｂ０（例えば図３の「ｏ」）とを比較する。左下の格子回路は、入力パターンの２ビットコードＹ１，Ｙ０（例えば図３の「ｔ」）とテンプレートパターンの２ビットコードＡ１，Ａ０（例えば図３の「ｍ」）とを比較する。右下の格子回路は、入力パターンの２ビットコードＹ１，Ｙ０（例えば図３の「ｔ」）とテンプレートパターンの２ビットコードＢ１，Ｂ０（例えば図３の「ｏ」）とを比較する。
【００３３】
次に、左上の格子回路の動作例を説明する。否定排他的論理和（ＸＮＯＲ）回路７０５は、１ビット信号Ｘ０及び１ビット信号Ａ０のＸＮＯＲを演算して出力する。ＸＮＯＲ回路７０６は、１ビット信号Ｘ１及び１ビット信号Ａ１のＸＮＯＲを演算して出力する。ＸＮＯＲ回路７０５及び７０６は、２入力信号が同じ信号であればハイレベル（論理値「１」）を出力し、異なる信号であればローレベル（論理値「０」）を出力する。論理積（ＡＮＤ）回路７０７は、ＸＮＯＲ回路７０５及び７０６の出力の論理積を演算して出力する。ＡＮＤ回路７０７は、２入力信号が共にハイレベルのときにハイレベルを出力する論理回路である。
【００３４】
セレクタ７０４は、ＡＮＤ回路７０７の出力がハイレベルであれば信号Ｓ２を右下の比較選択回路７０１に出力し、ＡＮＤ回路７０７の出力がローレベルであれば信号Ｓ１を右下の比較選択回路７０１に出力する。信号Ｓ１は、左上の比較選択回路７０１の出力信号が遅延回路７０３により遅延させられた信号である。信号Ｓ２は、左上の比較選択回路７０１の出力信号そのものである。すなわち、入力パターンの２ビットコードＸ１，Ｘ０とテンプレートパターンの２ビットコードＡ１，Ａ０とが一致していなければセレクタ７０４は遅延した信号Ｓ１を出力し、一致していればセレクタ７０４は遅延していない信号Ｓ２を出力する。
【００３５】
上記の信号Ｓ２のパスのように、ノード間を接続するパスには必ずしも遅延回路を設ける必要がなく、信号伝播時間を調整するための手段があればよい。
【００３６】
図８は、本発明の他の実施形態によるＤＰマッチングを行うための最短パス検出半導体回路を示す。デジタル−パルス変換器８０２は、入力パターンのデジタル入力を所定のパルスに変換し、格子回路網８０４の各格子にパルスを供給する。デジタル−パルス変換器８０３は、テンプレートパターンのデジタル入力を所定のパルスに変換し、格子回路網８０４の各格子にパルスを供給する。格子回路網８０４は、相関器及び最短パス検索回路を含む。最短パス検索開始信号入力回路８０１は、最短パス検索開始信号を格子回路網８０４のスタートノードに入力する。回路網８０４は、スタートノードに入力された開始信号を伝播し、ゴールノードから出力する。遅延−デジタル変換器８０５は、スタートノードに入力された開始信号とゴールノードから出力された出力信号との間の遅延時間を基に、距離デジタル値に変換する。この距離デジタル値は、入力パターン及びテンプレートパターンの非類似度に相当する。
【００３７】
図９は、図８の格子回路網８０４の具体的回路例を示す。比較選択回路９０１は、図４のノード回路４０１に相当する。遅延回路９０２は、図４の遅延回路４０２に相当する。可変遅延回路９０３は、図４の可変遅延回路４０３に相当する。左上のスタートノードの比較選択回路９０１には、検索開始信号９１１が入力される。検索開始信号９１１がローレベルからハイレベルに変化することにより、最短パスの検索が開始される。デジタル−パルス変換回路８０２及び８０３は、所定のパルスを出力する。このパルスは、多次元ベクトルデータの各ベクトル要素値によってパルス位置が決まり、それぞれのパルス幅は例えば固定値である。その詳細は、後に説明する。ＡＮＤ回路９０４は、デジタル−パルス変換回路８０２が出力する入力パターンのパルスとデジタル−パルス変換回路８０３が出力するテンプレートパターンのパルスとの論理積を演算して出力する。すなわち、ＡＮＤ回路９０４は、両者のパルスが共にハイレベルの期間だけハイレベルを出力し、それ以外はローレベルを出力する。ＡＮＤ回路９０４の出力のパルス幅が類似度（相関値）に相当する。可変遅延回路９０３は、左上の比較選択回路９０１の出力信号を遅延させて、右下の比較選択回路９０１に出力する。具体的には、可変遅延回路９０３は、ＡＮＤ回路９０４の出力のパルス幅が大きいほど、遅延時間が短い信号を出力する。
【００３８】
図１０は、図８及び図９のデジタル−パルス変換回路８０２及び８０３の構成例を示し、図１１はその回路動作を示すタイミングチャートである。リセット信号ＲＳは、リセット期間１１０１の間だけハイレベルになる。変換開始信号ＳＴは、リセット期間１１０１の後にハイレベルになり、変換開始を指示する。パルス出力信号ＯＵＴでは、変換開始信号ＳＴがハイレベル後のパルス位置１１０２でハイレベルになるパルスが発生する。そのパルスは、パルス幅１１０３を持つ。例えば、パルス位置１１０２は図２（Ｂ）の縦軸の数値により決まり、パルス幅１１０３は相関範囲を示す。詳細は、後に図１５を参照しながら説明する。
【００３９】
デジタル−遅延変換回路１００１ａ及び１００１ｂは、同じ構成を有し、リセット信号ＲＳを入力する。この回路１００１ａ及び１００１ｂの具体的構成は、後に図１２を参照しながら説明する。デジタル−遅延変換回路１００１ｂは、デジタル入力端子にパルス位置デジタル値ＰＰを入力し、出力イネーブル端子に変換開始信号ＳＴを入力する。パルス位置デジタル値ＰＰは、図１１のパルス位置１１０２に相当する。デジタル−遅延変換回路１００１ａは、デジタル入力端子にパルス幅デジタル値ＰＷを入力し、出力イネーブル端子にデジタル−遅延変換回路１００１ｂの出力を入力する。パルス幅デジタル値ＰＷは、図１１のパルス幅１１０３に相当する。インバータ１００２は、デジタル−遅延変換回路１００１ａの出力信号の論理否定信号を出力する。ＡＮＤ回路１００３は、デジタル−遅延変換回路１１０１ｂの出力信号とインバータ１００２の出力信号との論理積を演算し、パルス出力信号ＯＵＴとして出力する。
【００４０】
図１２は、図１０のデジタル−遅延変換回路１００１ａ及び１００１ｂの構成例を示す。デコーダ１２０１は、Ｎビットのデジタル入力信号に対し、２N個の出力信号を生成する。具体的には、デジタル入力値により唯一の出力がハイレベルになり、他の出力がローレベルになる。
【００４１】
３状態インバータ１２０２及び１２０３は、制御端子がローレベルの時、出力がハイインピーダンス状態となり、ハイインピーダンス状態であれば出力は直前のレベルを保持する。また、３状態インバータ１２０２及び１２０３は、制御端子がハイレベルの時、入力を論理否定して出力する。
【００４２】
インバータ１２０４は、リセット信号ＲＳの論理否定信号を出力する。ＡＮＤ回路１２０５は、インバータ１２０４の出力信号と出力イネーブル信号との論理積を演算して出力する。３状態インバータ１２０３の制御端子にはＡＮＤ回路１２０５の出力信号が供給され、３状態インバータ１２０２の制御端子にはリセット信号ＲＳが供給される。
【００４３】
デコーダ１２０１の出力は、リセット用３状態インバータ１２０２を通して、３状態インバータ１２０３の出力線に出力される。リセット信号ＲＳがハイレベルになり、デコーダ１２０１の各出力の論理否定が各３状態インバータ１２０３の各出力端子の初期値としてリセットされる。すなわち、その初期値は、唯一の出力端子がローレベルになり、残りのすべての出力端子がハイレベルにリセットされる。ＡＮＤ回路１２０６は、インバータ１２０８の最終段の出力信号と出力イネーブル信号との論理積を演算して出力端子から出力信号として出力する。
【００４４】
図１３は、図９の遅延回路９０２の構成例を示す。遅延回路９０２は、偶数段のインバータ１３０１を直列に接続することにより構成することができる。
【００４５】
図１４は、図９の可変遅延回路９０３の構成例を示し、図１５はその回路動作を示すタイミングチャートである。インバータ１４０３は、リセット信号の論理否定信号を出力する。複数のｐチャネルＭＯＳトランジスタ１４０４は、ゲートがインバータ１４０３の出力に接続され、ソースが電源電位に接続され、ドレインが３状態インバータ１４０５の各出力端子に接続される。ＡＮＤ回路９０４は、相関器に相当し、図９のＡＮＤ回路９０４に対応する。ＡＮＤ回路９０４において、一方の入力を信号Ｘとし、他方の入力を信号Ｙとして表す。論理和（ＯＲ）回路１４０１は、入力信号とＡＮＤ回路９０４の出力信号との論理和を演算して出力する。ＡＮＤ回路１４０２は、インバータ１４０３の出力信号とＯＲ回路１４０１の出力信号との論理積を演算して３状態インバータ１４０５の制御端子に出力する。ＡＮＤ回路１４０６は、入力信号とインバータ１４０８の最終段の出力信号との論理積を演算して出力する。
【００４６】
図１５において、リセット期間１５０１では、リセット信号がハイレベルになる。次に、相関演算期間１５０２では、信号Ｘ及び信号Ｙのパルスが発生する。次に、距離評価期間１５０３では、入力信号及び出力信号が生じる。出力信号は、信号Ｘ及び信号Ｙの相関度に応じて、入力信号に遅延時間が付与された信号である。
【００４７】
信号Ｘのパルスは、例えば音声データ数値が１５のパルス位置であって、パルス幅が５であるとする。信号Ｙのパルスは、例えば音声データ数値が１９のパルス位置であって、パルス幅が５であるとする。すると、信号Ｘと信号Ｙとのパルスの重なりが１になり、信号Ｘ及び信号Ｙの相関値（類似度）が１になる。例えば、信号Ｘ及び信号Ｙが共に音声データ数値が１５のパルス位置であれば、両者のパルスが重なる相関値が５になる。このように、ＡＮＤ回路（相関器）９０４が信号Ｘ及び信号Ｙの論理積を演算することにより、信号Ｘの数値と信号Ｙの数値との差分の絶対値｜Ｘ−Ｙ｜に相当する相関値（非類似度）を求めることができる。
【００４８】
リセット期間１５０１では、リセット信号がハイレベルになると、３状態インバータ１４０５の出力がハイレベルに設定される。リセット直後は、これが維持される。次に、相関演算期間１５０２では、信号Ｘ及び信号Ｘのパルスが一致している期間は３状態インバータ１４０５の制御端子にハイレベルが供給される。次に、距離評価期間１５０３では、入力信号が伝播した後は、所定の遅延時間で出力信号が出力する。信号Ｘ及び信号Ｙのパルスが一致している期間が長いほど、短い遅延時間を持つ出力信号が出力される。
【００４９】
図１６は、図８の遅延−デジタル変換器８０５の構成例を示す。インバータ１６０４は、リセット信号の論理否定信号を出力する。複数のｐチャネルＭＯＳトランジスタ１６０５は、ゲートがインバータ１６０４の出力に接続され、ソースが電源電位に接続され、ドレインが３状態インバータ１６０６の各出力端子に接続される。インバータ１６０１は、終了信号の論理否定信号を出力する。ＡＮＤ回路１６０２は、開始信号及びインバータ１６０１の出力信号の論理積を演算して出力する。ＡＮＤ回路１６０３は、インバータ１６０４の出力及びＡＮＤ回路１６０２の出力の論理積を演算し、３状態インバータ１６０６の制御端子に出力する。排他的論理和（ＸＯＲ）回路１６０７は、２つの３状態インバータ１６０６の入力端子の信号の排他的論理和を演算して出力する。ＸＯＲ回路１６０７は、２入力信号が同じときにはローレベルを出力し、異なるときにはハイレベルを出力する。エンコーダ１６０８は、ＸＯＲ回路１６０７の出力信号を基にエンコードし、距離デジタル値を出力する。
【００５０】
この遅延−デジタル変換回路は、図１２のデジタル−遅延変換回路と逆の動作原理である。まず、リセット信号をハイレベルにすることにより、遅延チェーンの３状態インバータ１６０６の各出力端子がハイレベルにリセットされる。次に、開始信号がハイレベルになった後、終了信号がハイレベルになるまでの遅延時間分だけインバータ１６０６及び１６０９のチェーンを伝播し、終了信号がハイレベルになると、伝播が止まる。その後、３状態インバータ１６０６の出力端子がローレベルになるものとハイレベルになるものとの境目をＸＯＲ回路１６０７で検出する。エンコーダ１６０８は、その位置をデジタル値に変換し、距離デジタル値として出力する。距離デジタル値は、入力パターンとテンプレートパターンとの間の非類似度に相当する。
【００５１】
上記のように、ＤＰマッチングは、図２（Ａ）のように、入力パターンＩＮＰとテンプレートＴＥＭとの類似度を求めることができる。その場合、相関器は、入力パターンＸｉとテンプレートパターンＹｉとの差分の絶対値｜Ｘｉ−Ｙｉ｜を非類似度として演算し、遅延時間を多段階で制御すればよい。例えば、両者が類似しているほど、パルス幅を大きくし、可変遅延回路を制御する。ＤＰマッチングは、文字列及び音声データの他、画像データ等の種々のマッチングを行うことができる。
【００５２】
また、最短パス検索回路網内での相関値演算の際にデジタルの論理演算により演算してもよいし、図１４の可変遅延回路の代わりに図１２のデジタル−遅延変換回路等を用いることも可能である。
【００５３】
また、回路網内に演算回路を入れずに相関値のみをメモリに記憶させ、そのメモリ内の相関値に応じて可変遅延回路を制御してもよい。その際、可変遅延回路の代わりにデジタル−遅延変換回路等を用いることも可能である。
【００５４】
また、上記では、類似度が大きい場合又は一致している場合には遅延時間を短くするようにしたが、逆に遅延時間を長くするようにしてもよい。その場合は、最短パスではなく、最長パスを検索すればよい。スタートノードに入力信号を入力した後、ゴールノードに一番最後に到達した時間を計測する。その時間が最も類似している比較組み合わせの類似度に相当する。各ノードは、一番最後に到達した信号のパスを記憶するようにすればよい。
【００５５】
以上のように、本実施形態によれば、少なくとも１つの入力ノード（スタートノード）と１つの出力ノード（ゴールノード）とを含む３つ以上のノードと、その３つ以上のノード間に接続され、各ノード間の信号伝播方向が規定されている複数のパスと、各パスの信号伝播時間を規定するための信号伝播時間規定手段とを有する。入力ノードに所定の入力信号を入力し、入力信号がパスを伝播して、出力ノードに到達するのに要する時間を検出する。その時間に応じて、２つのマッチング対象信号の一致度又は類似度を検出することができる。
【００５６】
ノードは、自己に接続されるパスを介して入力される信号が複数あるときには、自己に接続されるパスを介して入力される信号のうちで一番最初又は一番最後に到達する信号のパスを特定して記憶する。そのパスを特定することにより、上記の一致度又は類似度に対応する最短パス又は最長パスを検出することができる。
【００５７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５８】
【発明の効果】
以上説明したように、本発明によれば、各パスの信号伝播時間を規定し、入力信号がパスを伝播して出力ノードに到達する時間を検出することができる。２つのマッチング対象信号の一致度又は類似度に応じて各パスの信号伝播時間を規定すれば、出力ノード到達時間に応じて両者の一致度又は類似度を検出することができる。また、この際、信号の最短パス又は最長パスを検出すれば、その一致度又は類似度に対応する最短パス又は最長パスの比較組み合わせを検出することができる。
【図面の簡単な説明】
【図１】本発明の実施形態によるＤＰマッチングを行うための最短パス検出方法を示す図である。
【図２】図２（Ａ）は通常ベクトルマッチングアルゴリズムを示す図であり、図２（Ｂ）はＤＰマッチングアルゴリズムを示す図である。
【図３】具体的な最短パス検出方法を示す図である。
【図４】格子半導体回路構成を示す図である。
【図５】ノード回路の構成例を示す図である。
【図６】図６（Ａ）は可変遅延回路の構成例を示す図であり、図６（Ｂ）はインバータの構成例を示す図であり、図６（Ｃ）は可変遅延回路の他の構成例を示す図である。
【図７】格子回路のより具体的な構成例を示す図である。
【図８】本発明の他の実施形態によるＤＰマッチングを行うための最短パス検出半導体回路を示す図である。
【図９】格子回路網の具体的回路例を示す図である。
【図１０】デジタル−パルス変換回路の構成例を示す図である。
【図１１】図１０の回路動作を示すタイミングチャートである。
【図１２】デジタル−遅延変換回路の構成例を示す図である。
【図１３】遅延回路の構成例を示す図である。
【図１４】可変遅延回路の構成例を示す図である。
【図１５】図１４の回路動作を示すタイミングチャートである。
【図１６】遅延−デジタル変換器の構成例を示す図である。
【符号の説明】
ＩＮＰ，３０１  入力パターン
ＴＥＭ，３０２  テンプレートパターン
１１１，３１１  ２次元格子パス群
１１２，３１２  最短パス
４０１  ノード回路
４０２  遅延回路
４０３  可変遅延回路
５１０  最短パス記憶回路
７０１  比較選択回路
７０２  遅延回路
７０３  遅延回路
７０４  セレクタ
８０１  最短パス検索開始信号入力回路
８０２，８０３  デジタル−パルス変換器
８０４  回路網
８０５  遅延−デジタル変換器
【図１】
0003685786.tif 000002
【図２】
0003685786.tif 000003
【図３】
0003685786.tif 000004
【図４】
0003685786.tif 000005
【図５】
0003685786.tif 000006
【図６】
0003685786.tif 000007
【図７】
0003685786.tif 000008
【図８】
0003685786.tif 000009
【図９】
0003685786.tif 000010
【図１０】
0003685786.tif 000011
【図１１】
0003685786.tif 000012
【図１２】
0003685786.tif 000013
【図１３】
0003685786.tif 000014
【図１４】
0003685786.tif 000015
【図１５】
0003685786.tif 000016
【図１６】
0003685786.tif 000017