(57)【要約】【課題】未知文字と辞書文字とのマッチングを並列処理により行う場合に、ＬＳＩの回路を小規模化してコストを低減可能な文字認識におけるマッチング装置を提供する。【解決手段】マッチング装置１７は、ＲＡＭ３と、ＲＯＭ４と、ＬＳＩ５とを有する。ＬＳＩ５は、ＣＰＵ５０と、書換え可能な回路が構成される回路部５１とを有する。回路部５１には、未知文字の特徴量データ及び辞書文字の特徴量データを用いて未知文字と辞書文字との間の距離を計算する複数の距離計算回路と、最も値が小さいＰ個の距離及び当該距離に対応する文字コードを選出する選出回路とを含む第１回路が構成された後、値の小さい順に距離と、当該距離に対応する文字コードとを出力する順列回路を含む第２回路が構成される。【選択図】        図１
2009070226.tif 000002
【特許請求の範囲】
【請求項１】
文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、
前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データと当該第２文字の文字コードとを含む辞書データとを各々複数記憶する第１記憶手段と、
書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、
前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備え、
前記第１回路は、
前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、
前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記文字コードが入力される文字コードメモリと、
前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個の前記辞書データに含まれる前記第２特徴量データが入力される第２メモリと、
１つの前記第１メモリに入力された前記第１特徴量データと、前記第２メモリに入力された前記第２特徴量データとが入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、
１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応する文字コードが前記文字コードメモリから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第１文字コードとを選出する手段であり、各々並列動作可能なＫ個の選出手段と、
１つの前記選出手段が選出したＰ個の前記第１距離及び前記第１文字コードが各々入力され、これらを保持するＫ個の第３メモリとを有し、
前記第２回路は、
Ｋ個の前記第３メモリと、
１つの前記第３メモリに保持されたＬ個の前記第１距離及び前記第１文字コードが入力され、値の小さい順に前記第１距離と、当該第１距離に対応する第１文字コードとを出力する手段であり、各々並列動作可能なＫ個の順列手段とを有し、
前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有するＫ個の各前記第３メモリにＰ個の前記第１距離及び前記第１文字コードが各々入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、Ｋ個の各前記第３メモリにＰ個の前記第１距離及び前記第１文字コードを各々保持させたまま、前記回路部に構成する回路を前記第２回路に書き換える
ことを特徴とするマッチング装置。
【請求項２】
文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、
前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データと当該第２文字の文字コードとを含む辞書データとを各々複数記憶する第１記憶手段と、
書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、
前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備え、
前記第１回路は、
前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、
前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記文字コードが入力される文字コードメモリと、
前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個の前記辞書データに含まれる前記第２特徴量データが入力される第２メモリと、
１つの前記第１メモリに入力された前記第１特徴量データと、前記第２メモリに入力された前記第２特徴量データとが入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、
１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応する文字コードが前記文字コードメモリから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第１文字コードとを選出する手段であり、各々並列動作可能なＫ個の選出手段と、
Ｋ個の前記選出手段が各々選出したＰ個の前記第１距離及び前記第１文字コードが順に入力され、Ｐ個の前記第１距離及び前記第１文字コードをＫ組保持する第３メモリとを有し、
前記第２回路は、
前記第３メモリと、
前記第３メモリに保持されたＰ個の前記第１距離及び前記第１文字コードがＫ組入力され、１組毎に、値の小さい順に前記第１距離と当該第１距離に対応する第１文字コードとを出力する順列手段とを有し、
前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有する前記第３メモリにＰ個の前記第１距離及び前記第１文字コードがＫ組入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、前記第３メモリにＰ個の前記第１距離及び前記第１文字コードをＫ組保持させたまま、前記回路部に構成する回路を前記第２回路に書き換える
ことを特徴とするマッチング装置。
【請求項３】
文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、
前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データを含み、通し番号が対応付けられた辞書データを各々複数記憶する第１記憶手段と、
書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、
前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備え、
前記第１回路は、
前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、
前記記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記第２特徴量データが、当該辞書データに対応付けられた前記通し番号の順に入力される第２メモリと、
１つの前記第１メモリに入力された前記第１特徴量データが入力され、前記第２メモリに入力された前記第２特徴量データが前記通し番号の順に入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、
前記距離計算手段に入力された前記第２特徴量データに対する第１通し番号を計数するカウンタと、
１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応して計数された前記第１通し番号が前記カウンタから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第２通し番号とを選出する手段であり、各々並列動作可能なＫ個の選出手段と、
１つの前記選出手段が選出したＰ個の前記第１距離及び前記第２通し番号が各々入力され、これらを保持するＫ個の第３メモリとを有し、
前記第２回路は、
Ｋ個の前記第３メモリと、
１つの前記第３メモリに保持されたＰ個の前記第１距離及び前記第２通し番号が入力され、値の小さい順に前記第１距離と当該第１距離に対応する第２通し番号とを出力する手段であり、各々並列動作可能なＫ個の順列手段とを有し、
前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有するＫ個の各前記第３メモリにＰ個の前記第１距離及び前記第２通し番号が各々入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、Ｋ個の各前記第３メモリにＰ個の前記第１距離及び前記第２通し番号を各々保持させたまま、前記回路部に構成する回路を前記第２回路に書き換える
ことを特徴とするマッチング装置。
【請求項４】
文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、
前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データを含み、通し番号が対応付けられた辞書データを各々複数記憶する第１記憶手段と、
書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、
前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備え、
前記第１回路は、
前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、
前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記第２特徴量データが、当該辞書データに対応付けられた前記通し番号の順に入力される第２メモリと、
１つの前記第１メモリに入力された前記第１特徴量データが入力され、前記第２メモリに入力された前記第２特徴量データが前記通し番号の順に入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、
前記距離計算手段に入力された前記第２特徴量データに対する第１通し番号を計数するカウンタと、
１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応して計数された前記第１通し番号が前記カウンタから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第２通し番号とを選出する手段であり、各々並列動作可能なＫ個の選出手段と、
Ｋ個の前記選出手段が各々選出したＰ個の前記第１距離及び前記第２通し番号が順に入力され、Ｐ個の前記第１距離及び前記第２通し番号をＫ組保持する第３メモリとを有し、
前記第２回路は、
前記第３メモリと、
前記第３メモリに保持されたＰ個の前記第１距離及び前記第２通し番号がＫ組入力され、値の小さい順に前記第１距離と当該第１距離に対応する第２通し番号とを出力する順列手段とを有し、
前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有する前記第３メモリにＰ個の前記第１距離及び前記第２通し番号がＫ組入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、前記第３メモリにＰ個の前記第１距離及び前記第２通し番号をＫ組保持させたまま、前記回路部に構成する回路を前記第２回路に書き換える
ことを特徴とするマッチング装置。
【請求項５】
前記選出手段は、
１つの前記第１距離を各々保持するＰ個の距離レジスタと、
１つの前記第１距離に対応する前記第１文字コードを各々保持するＰ個の文字コードレジスタと、
Ｐ個の前記距離レジスタのうち２個の距離レジスタに各々保持された第１距離が入力され、当該２つの第１距離の大小を比較する(Ｐ−１)個の第１比較手段と、前記第１比較手段の各比較結果に基づいて、Ｐ個の前記距離レジスタに各々保持された前記距離の最大値を検出する最大値検出手段と、
前記選出手段に新たに入力された第２距離と、前記最大値検出手段が検出した前記最大値とを比較する第２比較手段と、
前記第２比較手段が比較した結果、前記第２距離が前記最大値よりも小さい時は、前記最大値が保持された第１距離レジスタに前記第２距離を入力して、当該第１距離レジスタに保持される第１距離の値を前記第２距離の値に書き換え、前記最大値に対応する前記文字コードを保持する第１文字コードレジスタに前記第２距離に対応する第３文字コードを入力して、当該第１文字コードレジスタに保持される第１文字コードの値を前記第２文字コードの値に書き換える書き換え制御手段とを有する
ことを特徴とする請求項１乃至請求項４のいずれか一項に記載のマッチング装置。
【請求項６】
前記順列手段は、
前記選出手段が選出したＰ個の前記第１距離のうち２個の前記第１距離が各々入力される手段であり、Ｐ個のうち２個の前記第１距離の組合せの全てに対応するＰ×(Ｐ−１)÷２個の第３比較手段と、
前記第３比較手段の比較結果に基づいて、Ｐ個の前記第１距離に対して値の小ささの順位を決定し、決定した順位を出力する順位決定手段と、
Ｐ個の前記第１距離と、当該Ｐ個の前記第１距離に各々対応して前記順位決定手段が出力した前記順位とが入力され、各順位に対応する各前記第１距離を当該順位の値の小さい順に出力する第１出力手段と、
Ｐ個の前記第１距離に各々対応するＰ個の前記第１文字コードと、Ｐ個の前記第１距離に各々対応して前記順位決定手段が出力した前記順位とが入力され、各第１文字コードを各々対応する前記第１距離の順位の値の小さい順に出力する第２出力手段とを有する
ことを特徴とする請求項１乃至請求項５のいずれか一項に記載のマッチング装置。
【請求項７】
前記制御手段は、前記順列手段が出力した前記第１距離及び前記第１文字コードを認識候補データとして前記第１記憶手段に記憶させる
ことを特徴とする請求項１又は請求項２に記載のマッチング装置。
【請求項８】
前記制御手段は、前記順列手段が出力した前記第１距離及び前記第２通し番号を認識候補データとして前記第１記憶手段に記憶させる
ことを特徴とする請求項３又は請求項４に記載のマッチング装置。
【請求項９】
前記第１記憶手段及び前記第２記憶手段のうち少なくとも一方は、ＲＡＭ（Random Access Memory）である
ことを特徴とする請求項１乃至請求項８のいずれか一項に記載のマッチング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｔｅｒ  Ｒｅａｄｅｒ）などの文字認識装置において用いられるマッチング装置に関する。
【背景技術】
【０００２】
従来より、ＯＣＲなどの文字認識装置では、光学的に読み取った１つの文字（未知文字）と、辞書データに登録された文字(辞書文字)の全てとを１文字毎にマッチングして類似度の高い文字を探すことにより、未知文字の認識を行っている（例えば、特許文献１〜２参照）。このマッチングの処理は、一般的にＬＳＩ（Large Scale Integration）を用いて行われる。このマッチングの処理を高速化するために、辞書データを複数のメモリに分割して記憶し、ＬＳＩでは分散処理を行っていた。近年では、半導体技術の進歩により、メモリのアクセス速度が高速化し、ＬＳＩに内蔵できる回路規模が大きくなったため、並列処理により複数の未知文字のマッチングをより高速に行うことができるマッチング装置を有する文字認識装置が開発されている（例えば、特許文献３参照）。
【０００３】
【特許文献１】特開平９−１７９９３５号公報
【特許文献２】特開平３−１１６３９３号公報
【特許文献３】特開平５−１２８３１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献３の技術では、並列処理によりマッチングをより高速に行うことができても、ＬＳＩに内蔵される回路規模が大きいと、コストがかかるなどの問題がある。このため、文字認識の際のマッチングを並列処理により行うマッチング装置において、ＬＳＩの回路を小規模化することが望まれていた。
【０００５】
本発明は、上記に鑑みてなされたものであって、文字認識の際に未知文字と辞書文字とのマッチングを並列処理により行う場合に、ＬＳＩの回路を小規模化してコストを低減可能なマッチング装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データと当該第２文字の文字コードとを含む辞書データとを各々複数記憶する第１記憶手段と、書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備える。前記第１回路は、前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記文字コードが入力される文字コードメモリと、前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個の前記辞書データに含まれる前記第２特徴量データが入力される第２メモリと、１つの前記第１メモリに入力された前記第１特徴量データと、前記第２メモリに入力された前記第２特徴量データとが入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応する文字コードが前記文字コードメモリから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第１文字コードとを選出する手段であり、各々並列動作可能なＫ個の選出手段と、１つの前記選出手段が選出したＰ個の前記第１距離及び前記第１文字コードが各々入力され、これらを保持するＫ個の第３メモリとを有する。前記第２回路は、Ｋ個の前記第３メモリと、１つの前記第３メモリに保持されたＬ個の前記第１距離及び前記第１文字コードが入力され、値の小さい順に前記第１距離と、当該第１距離に対応する第１文字コードとを出力する手段であり、各々並列動作可能なＫ個の順列手段とを有し、前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有するＫ個の各前記第３メモリにＰ個の前記第１距離及び前記第１文字コードが各々入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、Ｋ個の各前記第３メモリにＰ個の前記第１距離及び前記第１文字コードを各々保持させたまま、前記回路部に構成する回路を前記第２回路に書き換えることを特徴とする。
【０００７】
また、請求項２にかかる発明は、文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データと当該第２文字の文字コードとを含む辞書データとを各々複数記憶する第１記憶手段と、書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備える。前記第１回路は、前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記文字コードが入力される文字コードメモリと、前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個の前記辞書データに含まれる前記第２特徴量データが入力される第２メモリと、１つの前記第１メモリに入力された前記第１特徴量データと、前記第２メモリに入力された前記第２特徴量データとが入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応する文字コードが前記文字コードメモリから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第１文字コードとを選出する手段であり、各々並列動作可能なＫ個の選出手段と、Ｋ個の前記選出手段が各々選出したＰ個の前記第１距離及び前記第１文字コードが順に入力され、Ｐ個の前記第１距離及び前記第１文字コードをＫ組保持する第３メモリとを有する。前記第２回路は、前記第３メモリと、前記第３メモリに保持されたＰ個の前記第１距離及び前記第１文字コードがＫ組入力され、１組毎に、値の小さい順に前記第１距離と当該第１距離に対応する第１文字コードとを出力する順列手段とを有する。前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有する前記第３メモリにＰ個の前記第１距離及び前記第１文字コードがＫ組入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、前記第３メモリにＰ個の前記第１距離及び前記第１文字コードをＫ組保持させたまま、前記回路部に構成する回路を前記第２回路に書き換えることを特徴とする。
【０００８】
また、請求項３にかかる発明は、文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データを含み、通し番号が対応付けられた辞書データを各々複数記憶する第１記憶手段と、書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備える。前記第１回路は、前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、前記記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記第２特徴量データが、当該辞書データに対応付けられた前記通し番号の順に入力される第２メモリと、１つの前記第１メモリに入力された前記第１特徴量データが入力され、前記第２メモリに入力された前記第２特徴量データが前記通し番号の順に入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、前記距離計算手段に入力された前記第２特徴量データに対する第１通し番号を計数するカウンタと、１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応して計数された前記第１通し番号が前記カウンタから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第２通し番号とを選出する手段であり、各々並列動作可能なＫ個の選出手段と、１つの前記選出手段が選出したＰ個の前記第１距離及び前記第２通し番号が各々入力され、これらを保持するＫ個の第３メモリとを有する。前記第２回路は、Ｋ個の前記第３メモリと、１つの前記第３メモリに保持されたＰ個の前記第１距離及び前記第２通し番号が入力され、値の小さい順に前記第１距離と当該第１距離に対応する第２通し番号とを出力する手段であり、各々並列動作可能なＫ個の順列手段とを有する。前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有するＫ個の各前記第３メモリにＰ個の前記第１距離及び前記第２通し番号が各々入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、Ｋ個の各前記第３メモリにＰ個の前記第１距離及び前記第２通し番号を各々保持させたまま、前記回路部に構成する回路を前記第２回路に書き換えることを特徴とする。
【０００９】
また、請求項４にかかる発明は、文字認識の際に、認識対象の第１文字の特徴量と、辞書に予め登録された複数の第２文字の特徴量とを用いて、複数の前記第２文字のうち前記第１文字に類似する第２文字を認識候補としてＰ個（Ｐ：２以上の整数）選出するマッチング装置であって、前記第１文字の特徴量を示す第１特徴量データと、前記第２文字の特徴量を示す第２特徴量データを含み、通し番号が対応付けられた辞書データを各々複数記憶する第１記憶手段と、書き換え可能に回路が構成される回路部であって、第１回路が構成された後、第２回路が構成される回路部と、前記回路部に構成する回路の書き換えを制御する制御手段とを有する半導体デバイスと、前記第１回路を前記回路部に構成するための第１回路構成データと、前記第１回路を前記回路部に構成するための第２回路構成データとを記憶する第２記憶手段とを備える。前記第１回路は、前記第１記憶手段に記憶された複数の前記第１特徴量データのうちＫ個（Ｋ：２以上の整数）の前記第１特徴量データが各々入力されるＫ個の第１メモリと、前記第１記憶手段に記憶された複数の前記辞書データのうちＬ個（Ｌ：２以上の整数）の前記辞書データに含まれる前記第２特徴量データが、当該辞書データに対応付けられた前記通し番号の順に入力される第２メモリと、１つの前記第１メモリに入力された前記第１特徴量データが入力され、前記第２メモリに入力された前記第２特徴量データが前記通し番号の順に入力され、前記第１特徴量データと前記第２特徴量データとを用いて、１つの前記第２文字毎に、前記第１文字と各前記第２文字との間の各距離を各々計算する手段であり、各々並列動作可能なＫ個の距離計算手段と、前記距離計算手段に入力された前記第２特徴量データに対する第１通し番号を計数するカウンタと、１つの前記距離計算手段が複数の前記距離の計算に各々用いた前記第２特徴量データに対応して計数された前記第１通し番号が前記カウンタから入力され、前記１つの前記距離計算手段が計算した複数の前記距離が入力され、当該距離のうち、最も値が小さいＰ個の第１距離と、当該各第１距離に対応する第２通し番号とを選出する手段であり、各々並列動作可能なＫ個の選出手段と、Ｋ個の前記選出手段が各々選出したＰ個の前記第１距離及び前記第２通し番号が順に入力され、Ｐ個の前記第１距離及び前記第２通し番号をＫ組保持する第３メモリとを有する。前記第２回路は、前記第３メモリと、前記第３メモリに保持されたＰ個の前記第１距離及び前記第２通し番号がＫ組入力され、値の小さい順に前記第１距離と当該第１距離に対応する第２通し番号とを出力する順列手段とを有し、前記制御手段は、前記第２記憶手段に記憶された前記第１回路構成データを読み出して、前記第１回路を前記回路部に構成した後、前記第１回路の有する前記第３メモリにＰ個の前記第１距離及び前記第２通し番号がＫ組入力された場合、前記第２記憶手段に記憶された前記第２回路構成データを読み出して、前記第３メモリにＰ個の前記第１距離及び前記第２通し番号をＫ組保持させたまま、前記回路部に構成する回路を前記第２回路に書き換えることを特徴とする。
【００１０】
また、請求項５にかかる発明は、請求項１乃至請求項４のいずれか一項に記載のマッチング装置であって、前記選出手段は、１つの前記第１距離を各々保持するＰ個の距離レジスタと、１つの前記第１距離に対応する前記第１文字コードを各々保持するＰ個の文字コードレジスタと、Ｐ個の前記距離レジスタのうち２個の距離レジスタに各々保持された第１距離が入力され、当該２つの第１距離の大小を比較する(Ｐ−１)個の第１比較手段と、前記第１比較手段の各比較結果に基づいて、Ｐ個の前記距離レジスタに各々保持された前記距離の最大値を検出する最大値検出手段と、前記選出手段に新たに入力された第２距離と、前記最大値検出手段が検出した前記最大値とを比較する第２比較手段と、前記第２比較手段が比較した結果、前記第２距離が前記最大値よりも小さい時は、前記最大値が保持された第１距離レジスタに前記第２距離を入力して、当該第１距離レジスタに保持される第１距離の値を前記第２距離の値に書き換え、前記最大値に対応する前記文字コードを保持する第１文字コードレジスタに前記第２距離に対応する第３文字コードを入力して、当該第１文字コードレジスタに保持される第１文字コードの値を前記第２文字コードの値に書き換える書き換え制御手段とを有することを特徴とする。
【００１１】
また、請求項６にかかる発明は、請求項１乃至請求項５のいずれか一項に記載のマッチング装置であって、前記順列手段は、前記選出手段が選出したＰ個の前記第１距離のうち２個の前記第１距離が各々入力される手段であり、Ｐ個のうち２個の前記第１距離の組合せの全てに対応するＰ×(Ｐ−１)÷２個の第３比較手段と、前記第３比較手段の比較結果に基づいて、Ｐ個の前記第１距離に対して値の小ささの順位を決定し、決定した順位を出力する順位決定手段と、Ｐ個の前記第１距離と、当該Ｐ個の前記第１距離に各々対応して前記順位決定手段が出力した前記順位とが入力され、各順位に対応する各前記第１距離を当該順位の値の小さい順に出力する第１出力手段と、Ｐ個の前記第１距離に各々対応するＰ個の前記第１文字コードと、Ｐ個の前記第１距離に各々対応して前記順位決定手段が出力した前記順位とが入力され、各第１文字コードを各々対応する前記第１距離の順位の値の小さい順に出力する第２出力手段とを有することを特徴とする。
【００１２】
また、請求項７にかかる発明は、請求項１又は請求項２に記載のマッチング装置であって、前記制御手段は、前記順列手段が出力した前記第１距離及び前記第１文字コードを認識候補データとして前記第１記憶手段に記憶させることを特徴とする。
【００１３】
また、請求項８にかかる発明は、請求項３又は請求項４に記載のマッチング装置であって、前記制御手段は、前記順列手段が出力した前記第１距離及び前記第２通し番号を認識候補データとして前記第１記憶手段に記憶させることを特徴とする。
【００１４】
また、請求項９にかかる発明は、請求項１乃至請求項８のいずれか一項に記載のマッチング装置であって、前記第１記憶手段及び前記第２記憶手段のうち少なくとも一方は、ＲＡＭ（Random Access Memory）であることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、文字認識の際に未知文字と辞書文字とのマッチングを並列処理により行う場合に、ＬＳＩの回路を小規模化してコストを低減することができる。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかるマッチング装置の最良な実施の形態を詳細に説明する。
【００１７】
[第１の実施の形態]
（１）構成
まず、本実施の形態にかかるマッチング装置を有する文字認識装置について説明する。図１は、文字認識装置の構成例示する図である。同図において、文字認識装置１は、ＣＰＵ１０と、ＲＡＭ（Random Access Memory）１１と、ＲＯＭ（Read Only Memory）１２と、ハードディスク装置１３と、スキャナ１４と、操作装置１５と、ディスプレイ１６と、マッチング装置１７とを有し、これらはバス１８を介して接続される。スキャナ１４は、光学的に画像を読み取り、画像データに変換する。操作装置１５は、ユーザからの操作入力を受け付ける。ディスプレイ１６は、文字認識処理の結果などを表示する。ＣＰＵ１０は、ＲＯＭ１２やハードディスク装置１３に記憶された各種プログラムを実行することにより、装置全体を制御する。ＲＯＭ１２やハードディスク装置１３は、各種プログラムや各種データを記憶する。ＲＡＭ１１は、ＣＰＵ１０が各種プログラムを実行する際に各種プログラムや各種データを一時的に記憶する。このような構成の文字認識装置１が行う文字認識処理は、例えば、(a)スキャナ１６で読み取った画像の縦横方向を判別する処理、(b)１文字分の画像を抽出する処理、(c)文字の特徴量を抽出する処理、(d)マッチング処理及び(e)マッチング処理の結果得られた複数の認識候補からの１つの候補を決定する処理を含む。これらの処理のうち(a)〜(c)の処理をＣＰＵ１０が行った後、(d)のマッチング処理をマッチング装置１７が行い、このマッチング処理の結果をＣＰＵ１０が取得して(e)の処理を行う。
【００１８】
ここで、マッチング処理を行うマッチング装置１７の構成について詳細に説明する。図２は、マッチング装置１７の構成を例示する図である。マッチング装置１７は、ＬＳＩ５と、ＲＡＭ３と、ＲＯＭ４とを有する。ＲＯＭ４は、ＬＳＩ５において用いられるプログラムデータを記憶する。ＲＡＭ３は、辞書データと、未知文字データと、マッチング処理の結果得られる認識候補データとを記憶する。これらのデータの詳細については後述する。
【００１９】
ＬＳＩ５は、回路書き換え可能な半導体デバイスであり、例えば、ダイナミック・リコンフィギャラブル（動的再構成可能）技術により実現されるＤＡＰＤＮＡ-２（登録商標）を用いて構成される。このＤＡＰＤＮＡ-２の構成は、例えば、参考文献（Design Wave Magazine 2004年  ８月号  P.30-35 第２章  DAPDNAのデバイス・アーキテクチャ  CQ出版社）に記載されている。このようなＬＳＩ５は、図２に示されるように、DAP（Digital Application Processor）と呼ばれるＣＰＵ５０と、DNA（Distributed Network Architecture）と呼ばれ、書き換え可能な回路が構成される回路部５１と、インターフェース５２〜５４とがデータバス５５に接続されて構成される。インターフェース５２は、バス１８とＣＰＵ５０とのデータ通信を制御する。インターフェース５３は、ＲＡＭ３とＣＰＵ５０とのデータ通信を制御する。ＣＰＵ５０は、データバス５５及びインターフェース５３を介して、ＲＡＭ３に記憶された辞書データや未知文字データを読み出したり、マッチング処理の結果得られる認識候補データをＲＡＭ３に書き込んだりする。インターフェース５４は、ＲＯＭ４とＣＰＵ５０とのデータ通信を制御する。ＣＰＵ５０は、ＲＯＭ４に記憶されたプログラムデータをデータバス５５及びインターフェース５４を介して読み出す。プログラムデータには、ＣＰＵ５０が実行するためのプログラムと、１つの回路構成を定義するコンフィグレーションデータとが含まれる。ＣＰＵ５０は、ＲＯＭ５３に記憶されたプログラムデータに含まれるプログラムを実行することにより、主にシーケンシャルな処理を行うRISC（Reduced Instruction Set Computer）として機能する。
【００２０】
回路部５１は、２次元アレイ構造をなしており、主に大規模なデータ処理や演算処理を行う。ＣＰＵ５０が、回路部５１の回路構成の切り替えを動的に行う。回路部５１で構成される回路は、コンフィグレーションデータにより定義される。具体的には、コンフィグレーションデータにより、２次元アレイ状に並んだ演算器の接続と、各演算器の動作とが設定される。コンフィグレーションデータは、その使用時にＣＰＵ５０によりＲＯＭ４からＲＡＭ３に読み出される。回路部５１は図示しないコンフィグレーションメモリを有し、コンフィグレーションメモリは、３個のバックグラウンド・バンクと実行用バンクとからなる。ＲＡＭ３に読み出されたコンフィグレーションデータは、いずれのバンクへも転送できる。コンフィグレーションデータが実行用バンクに転送されると、回路部５１に回路が構成される。即ち、バックグラウンド・バンクから実行用バンクへコンフィグレーションデータを転送することで、回路部５１の回路構成を変更できる。つまり回路を書き換えることができる。バックグラウンド・バンクから実行用バンクへのコンフィグレーションデータの転送は１クロックで行うことができる。また、回路部５１は、ＲＡＭ（図示せず）を内蔵する演算器を有し、これを内部メモリとして使用することができる。この内部メモリに記憶されたデータは回路を書き換えても保持される。回路部５１に構成される具体的な回路構成については後述する。
【００２１】
次に、文字認識装置１で行われる文字認識処理におけるマッチング処理の概要について説明する。図３は文字認識におけるマッチング処理の概要を示す図である。文字認識におけるマッチング処理は、スキャナによりその画像が読み取られた１つの未知文字の特徴量と辞書に登録された文字(辞書文字)の特徴量とを用いて、辞書文字の１文字毎に未知文字との間の距離を計算し、未知文字の認識候補として距離の小さい辞書文字を複数個選出する処理である。辞書文字には１文字毎にその特徴量を示す特徴量データと文字コードとが予め対応付けられおり、これが上述の辞書データに相当する。また、各辞書データには、同図に示されるように、通し番号（「１」、「２」…、「Ｎ」）が対応付けられている。未知文字にもその特徴量を示す特徴量データが対応付けられており、これが上述の未知文字データに相当する。そして、各文字に対応付けられた特徴量データを用いて辞書文字と未知文字との間の距離が計算される。そして認識候補として選出された辞書文字の文字コードと、当該辞書文字と未知文字との間の距離とが認識候補データとして出力される。
【００２２】
図４は、辞書文字と未知文字との間の距離の計算方法を示す図である。１文字の特徴量を示す特徴量データは、Ｍ個(Ｍは２以上の整数)の値からなるＭ次元のベクトルデータである。辞書の１文字の特徴量データと未知文字の１文字の特徴量データとの同一次元毎の値の差を計算し、その差の絶対値又は２乗を計算する。これを全次元分加算した値が辞書文字の１文字と未知文字の１文字との間の距離である。未知文字の１文字に対して、辞書に登録されている全ての文字（例えば、日本語の活字であれば約４０００文字）との間の各距離を計算するには、辞書文字１文字に対して、Ｍ回の減算と、Ｍ回の絶対値の計算又はＭ回の２乗の計算と、Ｍ回の累積加算とを行い、更にこの一連の処理を、辞書に登録されている文字の数分（例えば、４０００回）繰返す。このように、文字認識におけるマッチング処理は非常に多くの回数の演算を行う。
【００２３】
図５〜６は、ＬＳＩ５の有する回路部（ＤＮＡ）５１に書き込まれる回路構成を例示する図である。各図に示される回路１００〜１０１が所定のタイミングで回路部５１に書き込まれて構成されることにより、Ｋ個（Ｋは２以上の整数）の未知文字に対するマッチング処理を並列して同時に行うことができる。尚、各図においては、図２で示したＬＳＩ５の有する他の構成要素の図示は省略している。図５において、回路１００は、文字コードメモリ１０９と、メモリ１１０と、Ｋ個のメモリ１１１−１〜１１１−Ｋと、Ｋ個の距離計算回路１１２−１〜１１２−Ｋと、Ｋ個の選出回路１１３−１〜１１３−Ｋと、Ｋ個のメモリ入力回路１１４−１〜１１４−Ｋと、Ｋ個のメモリ１１５−１〜１１５−Ｋとを有する。文字コードメモリ１０９には、ＲＡＭ３に記憶された辞書データに含まれる文字コードが入力される。ここでは、ＲＡＭ３に記憶された全ての辞書文字に対する辞書データのうち、Ｌ個（Ｌは２以上の整数）の辞書文字に対する辞書データに含まれる文字コードが入力される。メモリ１１０には、ＲＡＭ３に記憶された辞書データに含まれる特徴量データが入力される。ここでは、Ｌ個の辞書文字に対する辞書データに含まれる特徴量データが入力される。そして、メモリ１１０は、１つの辞書文字に対する特徴量データをＫ個の距離計算回路１１２−１〜１１２−Ｋに各々出力する。メモリ１１１−ｉ（ｉ＝１〜Ｋ）には、未知文字ｉに対する未知文字データとしてＲＡＭ３に記憶された特徴量データが１文字毎に入力される。各メモリ１１１−ｉは、未知文字に対する特徴量データを距離計算回路１１２−ｉに各々出力する。
【００２４】
距離計算回路１１２−ｉには、メモリ１１０から出力された１つの辞書文字に対する特徴量データと、メモリ１１１−ｉから出力された１つの未知文字に対する特徴量データが入力され、これらを用いて当該未知文字特徴量間の距離を計算する。選出回路１１３−ｉは、距離計算回路１１２−ｉで計算された距離のうち、最も値が小さいＰ個（Ｐは２以上の整数：例えば１０個とする）の距離と、当該距離の計算にその特徴量データが用いられた辞書データに含まれる文字コードを選出する。メモリ入力回路１１４−ｉは、選出回路１１３−ｉで選出された１０個の距離及び文字コードを保持する。各メモリ入力回路１１４−ｉは、選出回路１１３−ｉで選出された順不同の１０個の距離と、それに対応する１０個の文字コードとを認識候補データとしてメモリ１１５−ｉに順不同のまま入力する。
【００２５】
図６において、回路１０１は、回路１００に後続する回路であり、Ｋ個のメモリ１１５−１〜１１５−Ｋと、Ｋ個のメモリ出力回路１１６−１〜１１６−Ｋと、Ｋ個の順列回路１１７−１〜１１７−Ｋと、データセレクタ１１８とを有する。メモリ１１５−ｉは、上述の回路１００におけるメモリ１１５−ｉであり、回路１００において入力された認識候補データを保持する。メモリ出力回路１１６−ｉは、メモリ１１５−ｉに保持された認識候補データを順列回路１１７−ｉへ出力する。順列回路１１７−ｉは、メモリ出力回路１１６−ｉから認識候補データとして出力された１０個の距離及び文字コードを用いて順序付けを行い、値の小さい順に距離と当該距離に対応する文字コードとを認証候補データとして出力する。データセレクタ１１８は、順列回路１１７−ｉから出力される認証候補データを順番に出力する。これにより、順不同の認識候補データを距離の値の小さい順に出力できる。ＣＰＵ５０は、データセレクタ１１８が出力した認証候補データをデータバス５５及び図２のインターフェース５３を介してＲＡＭ３に書き込む。以上のような回路構成により、Ｋ個の未知文字に対するマッチング処理が並行して行われ、この結果、各未知文字に対して１０個ずつの認識候補データがＲＡＭ３に記憶される。
【００２６】
次に、回路１００〜１０１に含まれる各回路の構成について説明する。図７は、距離計算回路１１２の構成の一例を示す図である。尚、距離計算回路１１２−１〜１１２−Ｋの構成は全て同じであるため、これらを区別する必要がない場合には、単に距離計算回路１１２と記載する。距離計算回路１１２は、減算器１１２０と２乗回路１１２１と累積加算器１１２２とが従属接続されたパイプライン回路により構成される。減算器１１２０は２つの入力端子を有し、この入力端子に１文字の辞書文字に対する特徴量データと、１文字の未知文字に対する特徴量データとが各々同時に入力されると、その差分を出力する。２乗回路１１２１は、減算器１１２０で出力された差分を２乗して出力する。累積加算器１１２２は、２乗回路１１２１で出力されたＭ個分の２乗値を加算し、１文字の辞書文字と、１文字の未知文字との間の距離を出力する。減算器１１２０の２つ入力端子からＭ個分の特徴量データが入力し終わると、距離計算回路１１２は、所定の内部遅延後に、距離を出力する。
【００２７】
図８は、距離計算回路１１２の構成の他の例を示す図である。これは、上述の図７における２乗回路１１２１を絶対値回路１１２３に置き換えた例である。絶対値回路１１２３は、入力値が負である場合は符号を正に変えて出力する。例えば、絶対値回路１１２３は、入力値が「−５」の時は「＋５」を出力する。その他の構成は上述の図７の例と同様である。
【００２８】
図９は、選出回路１１３のブロック構成を示す図である。尚、選出回路１１３−１〜１１３−Ｋの構成は全て同じであるため、これらを区別する必要がない場合には、単に選出回路１１３と記載する。選出回路１１３には、距離計算回路１１２が出力する距離と、文字コードメモリ１０９が出力する文字コードとが入力される。選出回路１１３は、距離レジスタ１１３０−１〜１１３０−１０と、文字コードレジスタ１１３５−１〜１１３５−１０と、最大値検出回路１１３１と、比較器１１３２と、レジスタ書換え制御回路１１３４とを有する。距離レジスタ１１３０−１〜１１３０−１０は、１０個の距離のうち１つの距離を各々保持する。文字コードレジスタ１１３５−１〜１１３５−１０は、距離レジスタ１１３０−１〜１１３０−１０に保持される各距離に対応する１０個の文字コードのうち１つの文字コードを各々保持する。最大値検出回路１１３１は、１０個の距離のうちの最大値（現状の第１０位の距離）と、その距離を保持する距離レジスタのレジスタ番号とを出力する。尚、ここでは、説明の便宜上、距離レジスタ１１３０−１〜１１３０−１０のレジスタ番号は各々「１」〜「１０」であるものとする。同様に、文字コードレジスタ１１３５−１〜１１３５−１０のレジスタ番号は各々「１」〜「１０」であるものとする。
【００２９】
比較器１１３２は、最大値検出回路１１３１が出力する最大値（現状の第１０位の距離）と、距離レジスタ１１３０−１〜１１３０−１０のいずれかから新たに入力された距離との大小を比較し、新たに入力された距離が最大値よりも小さいか否か、即ち、１０位以内に入るか否かを示す信号を出力する。レジスタ書換え制御回路１１３４は、最大値検出回路１１３１で出力された第１０位の距離を保持する距離レジスタのレジスタ番号が入力されると、第１０位の距離を保持する距離レジスタのレジスタ番号を書き換える信号と、当該距離に対応する文字コードレジスタのレジスタ番号を書換える信号とを出力する。認識候補である１０個の距離とそれに対応する文字コードとは距離レジスタ及び文字コードレジスタに各々保持され、全値が同時に出力し、最大値検出回路１１３１は距離の最大値、つまり現状の第１０位の距離と、当該距離を保持する距離レジスタのレジスタ番号とを常に出力する。この１０個の距離レジスタ１１３０−１〜１１３０−１０には順不同で距離が保持される。つまり、距離レジスタ１１３０−１〜１１３０−１０には、値の小さい順に距離が保持されるわけではない。距離を小さい順に並べ替える処理は、順列回路１１７−ｉで行われる。この順列回路１１７−ｉの構成の詳細については後述する。
【００３０】
図１０〜１１は、最大値検出回路１１３１のブロック構成を示す図である。最大値検出回路１１３１は、図１０に示される比較器１１３１０−１〜１１３１０−９と、図１１に示される論理回路１１３１１とを有する。比較器１１３１０−１〜１１３１０−５は、距離レジスタ１１３０−１〜１１３０−１０うち２個の距離レジスタに各々保持された距離の大小を比較して、大きい方の距離を出力する。比較器１１３１０−６〜１１３１０−９は、比較器１１３１０−１〜１１３１０−５のうち、２個の比較器が出力した大きい方の距離の大小を比較して、大きい方の距離を出力する。このように競技のトーナメントのような比較方式により、最大値検出回路１１３１は距離の最大値を出力する。尚、比較器１１３１０−１〜１１３１０−９は、比較結果を示す１ビットのデータ信号を出力する。
【００３１】
論理回路１１３１１は、比較器１１３１０−１〜１１３１０−９から出力された比較結果を示すデータ信号が入力されると、距離の最大値を保持する距離レジスタのレジスタ番号を信号線１１３１２−１〜１１３１２−１０により各々出力する。各比較器１１３１０−１〜１１３１０−９の比較結果は、以下の通りである。
【００３２】
比較器１１３１０−１の比較結果は、距離レジスタ１１３０−１に保持される距離が、距離レジスタ１１３０−２に保持される距離より大きい場合、「１」であり、そうでない場合、「０」である。尚、距離レジスタ１１３０−１に保持される距離と、距離レジスタ１１３０−２に保持される距離とが同じである場合は、比較器１１３１０−１の比較結果は「０」であり、距離レジスタ１１３０−１に保持される距離が、距離レジスタ１１３０−２に保持される距離より小さい場合と同じ結果になる。このため、図１０に示される比較器１１３１０−１では、距離レジスタ１１３０−２に保持される距離の方が大きいものとして検出される。
【００３３】
比較器１１３１０−２の比較結果は、距離レジスタ１１３０−３に保持される距離が、距離レジスタ１１３０−４に保持される距離より大きい場合、「１」であり、そうでない場合、「０」である。比較器１１３１０−３の比較結果は、距離レジスタ１１３０−５に保持される距離が、距離レジスタ１１３０−６に保持される距離より大きい場合、「１」であり、そうでない場合、「０」である。比較器１１３１０−４の比較結果は、距離レジスタ１１３０−７に保持される距離が、距離レジスタ１１３０−８に保持される距離より大きい場合、「１」であり、そうでない場合、「０」である。比較器１１３１０−５の比較結果は、距離レジスタ１１３０−９に保持される距離が、距離レジスタ１１３０−１０に保持される距離より大きい場合、「１」であり、そうでない場合、「０」である。
【００３４】
比較器１１３１０−６の比較結果は、比較器１１３１０−１の比較結果が、比較器１１３１０−２の比較結果より大きい場合、「１」であり、そうでない場合、「０」である。比較器１１３１０−７の比較結果は、比較器１１３１０−３の比較結果が、比較器１１３１０−４の比較結果より大きい場合、「１」であり、そうでない場合、「０」である。比較器１１３１０−８の比較結果は、比較器１１３１０−７の比較結果が、比較器１１３１０−５の比較結果より大きい場合、「１」であり、そうでない場合、「０」である。比較器１１３１０−９の比較結果は、比較器１１３１０−６の比較結果が、比較器１１３１０−８の比較結果より大きい場合、「１」であり、そうでない場合、「０」である。
【００３５】
これら９つの比較結果の「１」と「０」との値の組み合わせから、距離の最大値を保持する距離レジスタのレジスタ番号を決定することができる。上述の信号線１１３１２−１〜１１３１２−１０は、レジスタ番号「１」〜「１０」に各々対応しており、決定したレジスタ番号をこれに対応する信号線を介してイネーブル信号により出力する。例えば、決定されたレジスタ番号が「５」ならば、信号線１１３１２−５を介してイネーブル信号「１」を出力し、他の９本の信号線１１３１２−１〜１１３１２−４，１１３１２−６〜１１３１２−１０からはイネーブル信号「０」を各々出力する。即ち、イネーブル信号「１」が出力される信号線に対応するレジスタ番号が、上述の第１０位の距離を保持する距離レジスタのレジスタ番号になる。
【００３６】
尚、論理回路１１３１１の代わりに各イネーブル信号の値を保持するテーブルをＲＯＭ４に作成するようにしても良い。
【００３７】
図９に戻り、比較器１１３２は、距離計算回路１１２から選出回路１１３に入力された距離と、最大値検出回路１１３１で出力された距離の最大値とを比較し、前者の方が小さいか否か、即ち、選出回路１１３に入力された距離は１０位以内に入るか否かを示す信号を出力する。レジスタ書き換え制御回路１１３４は、比較器１１３２から出力された信号が、選出回路１１３に入力された距離は１０位以内に入ることを示す場合、最大値検出回路１１３１から出力されたレジスタ番号に対応する距離レジスタに保持されている距離の値を、選出回路１１３に入力された距離の値に書き換える。即ち、第１０位の距離を保持する距離レジスタの距離が、選出回路１１３に入力された距離に書き換えられ、これが新たな１０位の距離となる。また、レジスタ書き換え制御回路１１３４は、最大値検出回路１１３１から出力されたレジスタ番号に対応する文字コードレジスタの値を、選出回路１１３に入力された文字コードに書き換える。即ち、第１０位の距離の計算の基である辞書文字に対応する文字コードが、新たに１０位となった距離の計算の基である辞書文字に対応する文字コードに書き換えられる。尚、選出回路１１３に入力された距離が、最大値検出回路１１３１で出力された距離の最大値より大きい場合、即ち、比較器１１３２から出力された信号が、選出回路１１３に入力された距離は１０位以内に入ることを示さない場合、当該距離は１１位以下であるということなので、レジスタ書き換え制御回路１１３４は、距離レジスタ及び文字コードレジスタの書換えを行わない。なお、距離レジスタ１１３０−１〜１１３０−１０の初期値には、距離の値としてとり得る最大値を設定しておく。
【００３８】
ＲＡＭ３にその辞書データが記憶された全ての辞書文字ついて、未知文字との間の距離と距離の計算に用いた辞書文字に対応する文字コードとが選出回路１１３に入力し終わると、選出回路１１３は、１文字の未知文字に対する認識候補データとして、最小値の１０個の距離と、各距離に対応する文字コードとを１０個の距離レジスタ１１３０−１〜１１３０−１０と１０個の文字コードレジスタ１１３５−１〜１１３５−１０とに各々順不同で保持し、１０個の距離と当該各距離に対応する１０個の文字コードとを並列に出力する。
【００３９】
図５に戻り、メモリ入力回路１１４−ｉは、選出回路１１３−ｉで出力された１０個の距離と各距離に対応する文字コードとを保持する。各メモリ入力回路１１４−ｉは、選出回路１１３−ｉが出力した順不同の１０個の距離と、各距離に対応する１０個の文字コードとを認識候補データとしてメモリ１１４５−ｉに入力する。各メモリ１１４５−１〜１１４５−Ｋに入力される距離及び文字コードは、順不同のままである。これらの認識候補データは、メモリ出力回路１１６−ｉにより、メモリ１１５−ｉから順列回路１１７−ｉへ出力される。
【００４０】
図６に示した順列回路１１７−iは、メモリ出力回路１１６−iから認識候補データとして出力された１０個の距離を小さい順に並び替えて出力し、各距離に対応する文字コードも距離の小さい順に出力する。図１２は、順列回路１１７のブロック構成を示す図である。尚、順列回路１１７−１〜１１７−Ｋの構成は全て同じであるため、これらを区別する必要がない場合には、単に順列回路１１７と記載する。順列回路１１７は、比較回路１１７０と、順列判定回路１１７１と、データセレクタ１１７２と、データセレクタ１１７３とを有する。比較回路１１７０は、メモリ出力回路１１６から出力された１０個の距離（距離１〜１０）と、各距離に対応する１０個の文字コード（文字コード１〜１０）とが入力されると、距離１〜１０の大小関係を検出するための比較結果（比較結果１〜４５）を示す信号を出力する。順列判定回路１１７１は、比較回路１１７０から出力された比較結果を示す信号が入力されると、距離１〜１０の小ささの順位を判定し、各距離の順位を示すデータセレクタ切換え信号を出力する。データセレクタ１１７２は、順列判定回路１１７１で出力されたデータセレクタ切換え信号によって、距離１〜１０を小さい順に出力する。データセレクタ１１７３は、順列判定回路１１７１で出力されたデータセレクタ切換え信号によって、文字コード１〜１０を距離の小さい順に対応して出力する。
【００４１】
図１３は、順列回路１１７の有する比較回路１１７０のブロック構成を示す図である。比較回路１１７０は、距離１〜１０の大小関係を検出するため、１０個の距離から２個を取り出す全組合せの数（４５個）の比較器１１７００−１〜１１７００−４５とを有する。各比較器１１７００−１〜１１７００−４５は、第１入力端子と、第２入力端子との２つの入力端子を有し、第１入力端子に入力された距離と、第２入力端子に入力された距離との大小関係を比較し、前者が後者以下であれば、比較結果「１」を出力し、前者が後者より大きければ、比較結果「０」を出力する。このような比較器１１７００−１〜１１７００−４５を、１０個の距離の全組合せの大小関係を検出できるように配線する。即ち、ここでは、このように競技の総当たり戦のような構成で比較器１１７００−１〜１１７００−４５を配置することで、１０個の距離の順位を決定する。尚、第１入力端子に入力された距離と、第２入力端子に入力された距離とが同じである場合は、前者が後者よりも小さい場合と同じ比較結果になるため、図１３の配線では第１入力端子に入力された距離の方が小さいとして上の順位にする。
【００４２】
図１４は、順列回路１１７の有する順列判定回路１１７１のブロック構成を示す図である。順列判定回路１１７１は、順位決定回路１１７１０と、データセレクタ制御回路１１７１１とを有する。順位決定回路１１７１０は、４５個の比較器１１７００−１〜１１７００−４５の各比較結果から、距離１〜１０の小さい順の順位を決定する。データセレクタ制御回路１１７１１は、順位決定回路１１７１０が順位を決定した距離を小さい順に出力する。
【００４３】
図１５は、順位決定回路１１７１０へ比較器１１７００−１〜１１７００−４５から入力される各比較結果と、当該比較結果に基づいて決定される各距離の順位との対応関係を表形式で示した図である。同図では、総当たり戦の対戦成績表のように、各比較器１１７００−１〜１１７００−４５の比較結果（１ビットのデータ信号）を示している。尚、同図において、比較器１１７００−１〜１１７００−４５の符号の上にバーが示されているものは、その比較器１１７００−１〜１１７００−４５の比較結果の否定値を示すものであり、例えば、比較器１１７００−１〜１１７００−４５の比較結果が「１」を示す場合、符号「１１７００−１」〜「１１７００−４５」の上にバーが示されているものは、「０」を示し、比較器１１７００−１〜１１７００−４５の比較結果が「０」を示す場合、符号「１１７００−１」〜「１１７００−４５」の上にバーが示されているものは、「１」を示す。そして、同図における各行Ｇ１〜Ｇ１０は、距離１〜１０の各距離に対応しており、対応する１つの距離と、他の距離との大小関係の比較結果を示している。各比較結果は、９ビットのデータ信号で表される。例えば、行Ｇ１に示されるように、距離１と、距離２〜１０との各比較結果は、比較器１１７００−１〜１１７００−９から各々出力される９ビットのデータ信号で表される。行Ｇ２に示されるように、距離２と、距離１及び距離３〜１０との各比較結果は、比較器１１７００−１から出力される比較結果の否定値と、比較器１１７００−１０〜１１７００−１７から各々出力される比較結果との９ビットのデータ信号で表される。
【００４４】
即ち、この各距離に対する９ビットのデータ信号により、各距離と他の距離との大小関係が明らかになる。例えば、４５個の全ての比較器１１７００−１〜１１７００−４５から出力される比較結果が「１」である場合、距離１に対する９ビットのデータ信号は「１１１１１１１１１」となり、距離１は他の距離２〜１０以下であることを示す。距離２に対する９ビットのデータ信号は「０１１１１１１１１」となり、距離２は距離１より大きいが、距離３から１０以下であることを示す。距離３に対する９ビットのデータ信号は「００１１１１１１１」となり、距離３は距離１〜２の値より大きいが、距離４から１０以下であることを示す。距離１０に対する９ビットのデータ信号は「０００００００００」となり、距離１０は他の全ての距離１〜９の値より大きいことを示す。つまり、９ビットの信号の内でその値が「１」の個数（「１」を示すビットの数）が多いもの程、その距離の順位が上であることが示される。「１」の個数が９個、即ち、９ビットのデータ信号が全て「１」であれば、その距離の順位は１位であり、１０個の距離のうち最小値である。「１」の個数が８個であれば、その距離の順位は２位である。「１」の個数が０個であれば、その距離の順位は１０位であり、１０個の距離のうち最大値である。このように、９ビットのとり得るデータ信号の全てのパターンに対して、「１」の個数（ビット数）を数えることにより、その距離が何位であるかを決定できる。尚、順位は第１位〜第１０位であるので４ビットで表すことができる。このように９ビットの入力値に対して順位を示す４ビットの出力値を対応させることは、論理回路（図示せず）により実現される。又は、論理回路の代わりにＲＯＭ４に記憶されるテーブルにより実現するようにしても良い。
【００４５】
図１６は、図１４に示した順列判定回路１１７１の有する順位決定回路１１７１０のブロック構成の一例を示す図である。順位決定回路１１７１０は、否定回路１１７１００と、結線１１７１０１と、論理回路１１７１０３−１〜１１７１０３−１０とを有する。順位決定回路１１７１０では、比較器１１７００−１〜１１７００−４５からの各比較結果の４５ビットのデータ信号が入力されると、否定回路１１７１００から各比較結果の否定値を出力し、各比較結果及び各比較結果の否定値の合計９０ビットのデータ信号を、結線１１７１０１において、図１４に示した対応関係に従って距離１〜１０に各々対応する９ビット毎のデータ信号に分け、１０組の信号線１１７１０２−１〜１１７１０２−１０に分ける。例えば、上述したように比較器１１７００−１〜１１７００−９からの各比較結果を示すものを距離１に対応する１組の９ビットのデータ信号として信号線１１７１０２−１に出力する。また、比較器１１７００−１からの比較結果の否定値と、比較器１１７００−１０〜１１７００−１７からの比較結果とを示すものを距離２に対応する１組の９ビットのデータ信号として信号線１１７１０２−２に出力する。また、比較器１１７００−９、１１７００−１７、１１７００−２４、１１７００−３０、１１７００−３５、１１７００−３９、１１７００−４２、１１７００−４４、１１７００−４５からの各比較結果の否定値の示すものを距離１０に対応する１組の９ビットのデータ信号として信号線１１７１０２−１０に出力する。各距離１〜１０に対応する１０組の９ビットのデータ信号が各々対応する論理回路１１７１０３−１〜１１７１０３−１０に入力されると、各論理回路１１７１０３−１〜１１７１０３−１０は、各距離の順位を示す上述の４ビットの出力値を出力する。
【００４６】
尚、論理回路１１７１０３−１〜１１７１０３−１０の機能を、ＲＯＭ４に記憶されるテーブルにより実現するようにしても良い。
【００４７】
図１７は、図１４に示した順列判定回路１１７１の有する順位決定回路１１７１０のブロック構成の他の例を示す図である。図１６の例では１０個の論理回路１１７１０３−１〜１１７１０３−１０は全て同じものであるため、これを１個にした場合の構成を図１７では示している。順位決定回路１１７１０は、否定回路１１７１００と、結線１１７１０１と、データセレクタ１１７１０５と、論理回路１１７１０３と、レジスタ１１７１０４−１〜１１７１０４−１０とを有する。比較器１１７００−１〜１１７００−４５の各比較結果の４５ビットのデータ信号が入力され、距離１〜１０に対応する９ビット毎のデータ信号に分けて、１０組の信号線１１７１０２−１〜１１７１０２−１０に分けるまでは、図１６の例と同じである。１０組の信号線１１７１０２−１〜１１７１０２−１０から出力された９ビットのデータ信号がデータセレクタ１１７１０５に入力されると、データセレクタ１１７１０５は、これを１組ずつ順番に論理回路１１７１０３に出力する。論理回路１１７１０３は、距離１〜１０に対応する１０組の９ビットのデータ信号が１組ずつ順に入力されると、その距離の順位を示す上述の４ビットの出力値を１０個のレジスタ１１７１０４−１〜１１７１０４−１０のうちの１つに書込む。つまり、ここでは、データセレクタ１１７１０５で論理回路１１７１０３に出力するデータ信号を切り換え、９ビットの各データ信号によって決定される順位を論理回路１１７１０３により１つずつレジスタ１１７１０４−１〜１１７１０４−１０に書込んで、距離１〜１０の順位を１０個のレジスタ１１７１０４−１〜１１７１０４−１０に保持する。このような構成によれば、図１６の構成に比べて、論理回路１１７１０３の数を少なくすることがため、回路規模を小さくすることができる。尚、論理回路１１７１０３の機能を、ＲＯＭ４に記憶されるテーブルにより実現するようにしても良い。
【００４８】
以上のような構成により、選出回路１１３で出力された順不同の１０個の距離の順位が決定されて出力される。
【００４９】
図１８は、順列判定回路１１７１の有するデータセレクタ制御回路１１７１１のブロック構成を例示する図である。データセレクタ制御回路１１７１１は、カウンタ１１７１１０と、一致検出回路１１７１１１−１〜１１７１１１−１０とを有し、順位決定回路１１７１０で出力された各距離の順位が入力されると各距離を小さい順に出力し、各距離に対応した文字コードを各距離の順位の順に出力する。各一致検出回路１１７１１１−１〜１１７１１１−１０は、第１入力端子と、第２入力端子との２つの入力端子を有する。各一致検出回路１１７１１１−１〜１１７１１１−１０の第１入力端子には、距離１〜１０の順位が各々入力され、第２入力端子には、カウンタ１１７１１０から出力される値が各々入力される。カウンタ１１７１１０は、「１」から「１０」の値を連続して出力する。各一致検出回路１１７１１１−１〜１１７１１１−１０は、２つの入力端子に入力された２つの入力値が一致した場合、１ビットのデータ信号「１」を出力し、そうでない場合、１ビットのデータ信号「０」を出力する。即ち、各一致検出回路１１７１１１−１〜１１７１１１−１０が出力する１ビットのデータ信号は、カウンタ１１７１１０から出力された値と順位の値とが一致した時のみ「１」となる。これにより、各一致検出回路１１７１１１−１〜１１７１１１−１０の出力する１ビットのデータ信号は、カウンタ１１７１１０から連続して出力される「１」〜「１０」の値に対し、順位の値に従って１回だけ「１」になり、その他の場合は「０」になる。この各一致検出回路１１７１１１−１〜１１７１１１−１０から出力された１ビットのデータ信号を各距離の出力イネーブル信号とし、各一致検出回路１１７１１１−１〜１１７１１１−１０は各出力イネーブル信号を、距離１〜１０を順位の順に出力するデータセレクタ切換え信号として出力する。
【００５０】
そして、各一致検出回路１１７１１１−１〜１１７１１１−１０は各データセレクタ切換え信号を、図１２に示した順列回路１１７の有するデータセレクタ１１７２及びデータセレクタ１１７３に入力させる。データセレクタ１１７２は、各データセレクタ切換え信号に従って、距離１〜１０を小さい順に出力する。データセレクタ１１７３は、各データセレクタ切換え信号に従って、対応する距離の小さい順に文字コード１〜１０を出力する。
【００５１】
（２）動作
次に、文字認識装置１の行うマッチング処理の手順について説明する。図１９は、マッチング処理の手順を示すフローチャートである。ここでは、辞書に登録された全ての辞書文字に対する辞書データと、処理対象の複数の未知文字に対する未知文字データとがＲＡＭ３に予め記憶されているものとする。文字認識装置１のＬＳＩ５のＣＰＵ５０は、図５に示した回路１００を回路部５１に構成する（ステップＳ１）。回路１００を回路部５１に構成する手順の詳細については後述する。次いで、ＣＰＵ５０は、Ｋ個の未知文字に対する未知文字データ（特徴量データ）をデータバス５５及びインターフェース５３を介してＲＡＭ３から回路部５１に転送し、メモリ１１１−１〜１１１−Ｋに１文字分ずつ入力する（ステップＳ２）。つまり、メモリ１１１−ｉには、ｉ番目の未知文字の１文字分の特徴量データが入力される。次にＣＰＵ５０は、ＲＡＭ３に記憶された辞書データのうちＬ個の辞書文字に対する辞書データに含まれる文字コード及び特徴量データを回路部５１に転送し、文字コードを文字コードメモリ１０９に入力し、特徴量データをメモリ１１０に入力する（ステップＳ３）。メモリ１１０は１個の辞書文字に対する特徴量データを出力し、メモリ１１１−１〜１１１−Ｋは、入力された１個の未知文字に対する特徴量データを同時に各々出力する（ステップＳ４）。メモリ１１０から出力された辞書文字に対する特徴量データと、メモリ１１１−ｉから出力された未知文字に対する特徴量データとは、距離計算回路１１２−ｉに入力される。
【００５２】
次いで、ＣＰＵ５０は、１文字分全ての特徴量データ、つまりＭ次元の全ての次元のデータを出力し終えたか否かを判断する（ステップＳ５）。当該判断結果が否定的である場合、ステップ４に戻る。ステップＳ５の判断結果が肯定的である場合、即ち、１文字分全ての特徴量データとしてＭ次元の全ての次元のデータを出力し終えた場合、距離計算回路１１２−１〜１１２-Ｋは、１個の未知文字と１個の辞書文字との間の各距離を各々出力する。この結果、Ｋ個の未知文字と１個の辞書文字との間の各距離が出力される。また、この時に、文字コードメモリ１０９は、この辞書文字に対する文字コードを出力する。選出回路１１３−ｉには、文字コードメモリ１０９が出力した文字コードと距離計算回路１１２−ｉが出力した距離が入力される。そして、選出回路１１３−ｉでは、入力された距離が最小値の１０個に該当するか否かが判断され、最小値の１０個の距離と当該各距離に対応する文字コードとが保持される。
【００５３】
次に、ＣＰＵ５０は、メモリ１１０に入力された辞書データを全て出力し終えたか否かを判断する（ステップＳ６）。当該判断結果が否定的である場合、ステップ４に戻る。このように、ステップＳ２〜Ｓ５の処理を繰り返し行うことにより、メモリ１１０に入力された複数文字分の辞書文字に対する辞書データに含まれる特徴量データと、メモリ１１１−１〜１１１−iに入力された未知文字の特徴量データとを用いた距離が計算される。そして、ステップＳ６の判断結果が肯定的となった場合、即ち、メモリ１１０に入力された辞書データを全て出力し終えた場合、次いで、ＣＰＵ５０は、ＲＡＭ３に記憶された辞書データの入力が全て終了したかを判断する（ステップＳ７）。当該判断結果が否定的である場合、ステップＳ３に戻り、ＲＡＭ３に記憶された辞書データのうちメモリ１１０にまだ入力していない辞書データに含まれる文字コード及び特徴量データを、文字コードメモリ１０９及びメモリ１１０に各々入力する。ＲＡＭ３に記憶された辞書データの入力が全て終了した場合、ステップＳ７の判断結果が肯定的となり、この場合、選出回路１１３−１〜１１３-Ｋには、Ｋ個の各未知文字に対する１０個の最小値の距離及び当該各距離に対応する文字コードとが認識候補データとして各々保持されている。これらは、メモリ入力回路１１４−１〜１１４−Ｋを介してメモリ１１５−１〜１１５−Ｋに入力される。
【００５４】
その後、ＣＰＵ５０は、メモリ１１５−１〜１１５−Ｋに上述の認識候補データを保持させたまま、図６に示した回路１０１を回路部５１に構成する（ステップＳ８）。つまり、ＣＰＵ５０は、回路部５１に構成する回路を、回路１００から回路１０１に書換える。そして、メモリ１１５−ｉに保持された認識候補データは、メモリ出力回路１１６−iを介して順列回路１１７−iに入力される。各順列回路１１７−１〜１１７−Ｋでは、距離の小さい順に順位が決定される。データセレクタ１１８では、認識候補データとして、１０個の距離が小さい順に出力されると共に、対応する距離の小さい順に文字コードが出力される。ＬＳＩ５のＣＰＵ５０は、出力された認識候補データをデータバス５５及びインターフェース５３を介してＲＡＭ３に書き込む（ステップＳ９）。このようにして、メモリ１１１−１〜１１１−Ｋに入力されたＫ個の未知文字に対するマッチング処理が並列処理されて、各未知文字に対する１０個の認識候補データが求められると、Ｋ個の未知文字に対するマッチング処理は終了する。次に、ＣＰＵ５０は、ＲＡＭ３に記憶された全ての未知文字に対する未知文字データの入力が終了したか否かを判断する（ステップＳ１０）。当該判断結果が否定的である場合、ステップ１に戻り、以降、新たなＫ個の未知文字に対して上述と同様のマッチング処理を行う。そして、ＲＡＭ３に記憶された未知文字に対する未知文字データの入力が全て終了すると、ステップＳ１０の判断結果が肯定的となり、マッチング処理は終了する。この場合、ＲＡＭ３には、全ての各未知文字に対する認識候補データとして、値の小さい順にソートされた１０個の各距離と当該各距離に対応する文字コードとが各々保持されている。
【００５５】
この結果、図１に示したＣＰＵ１０は、ＲＡＭ３に保持された認識候補データをインターフェース５２〜５３を介して適宜読み出して、上述の(e)の処理を行うことができる。
【００５６】
ここで、ＬＳＩ５のＣＰＵ５０が回路部５１に構成する回路を書換える処理の手順について説明する。図２０は、ＬＳＩ５のＣＰＵ５０が回路部５１に構成する回路を書換える処理の手順を示すフローチャートである。ＬＳＩ５に電源が投入されると、ＣＰＵ５０は、データバス５５及びインターフェース５４を介してＲＯＭ４からプログラムデータを読み出す（ステップＳ２０）。次に、ＣＰＵ５０は、読み出したプログラムデータをデータバス５５及びインターフェース５３を介してＲＡＭ３に書き込む（ステップＳ２１）。そして、ＣＰＵ５０は、ＲＡＭ３に書き込んだプログラムデータに含まれるコンフィグレーションデータ（回路データ）を読み出し（ステップＳ２２）、当該回路データを用いて回路部５１に回路を構成する（ステップＳ２３）。上述の図１９のステップＳ１では、ＣＰＵ５０は、回路１００を回路部５１に構成する。
【００５７】
そして、ＣＰＵ５０は、回路部５１に対して起動信号を出力し、回路を動作させる（ステップＳ２４）。そして、回路部５１での回路動作が終了すると、回路部５１からＣＰＵ５０に対して終了割込み信号が入力される。ＣＰＵ５０は、終了割り込み信号の入力を待機し（ステップＳ２５）、終了割込み信号が入力されたら、次に書換えるべき回路があるか否かを判断する（ステップＳ２６）。次に書換える回路がある場合（ステップＳ２６：ＹＥＳ）は、ステップＳ２２に進む。例えば、上述の図１９のステップＳ８では、ＣＰＵ５０は、回路部５１に構成する回路を、回路１００から回路１０１に書き換える。次に書換える回路がない場合（ステップＳ２６：ＮＯ）には、処理を終了する。
【００５８】
以上のようにして、マッチング処理を行うための回路を回路１００及び回路１０１の２つに分けて、これを上述したタイミングでＬＳＩ５の回路部５１に構成し、マッチング処理を行う。このため、回路１００及び回路１０１の一連の回路を１つの回路としてＬＳＩ５に構成するよりも、回路規模を大幅に小さくすることができ、コストを低減することができる。また、部品点数や配線量も少なくすることができる。
【００５９】
また、１つの回路１００において複数個の距離計算回路と複数個の選出回路とを各々並列に動作させ、もう１つの回路１０１において複数個の順列回路を並列に動作させることにより、複数個の未知文字に対するマッチング処理を並列に行うことができる。このため、文字認識処理全体を高速に行うことができる。
【００６０】
また、複数個の辞書データを一度にＲＡＭ３からＬＳＩ５に読み出すと共に、複数個の未知文字データをＲＡＭ３からＬＳＩ５に読み出すので、ＲＡＭ３へのアクセス回数を減らすことができ、処理時間を短縮することができる。
【００６１】
また、上述のマッチング処理においては、選出処理と順列処理とに分けて、未知文字との類似度が高い順に複数の認識候補データをソートする処理、つまり、辞書文字と未知文字との間の距離が小さい順に認識候補データをソートする処理を実行している。選出処理では、１個の辞書文字と未知文字との間の距離の計算を行う度に認識候補データを順不同で保持する。そして、全ての各辞書文字と複数個の各未知文字との間の各距離の計算が終了した後で、認識候補データを距離が小さい順にソートする処理を順列処理として行う。つまり、順列処理を行うタイミングは、１個の辞書文字と未知文字との間の距離を計算する度ではなく、全ての各辞書文字と複数個の各未知文字との間の各距離の計算が終了した後であるので、順列処理を高速化することができる。順列処理を行う順列回路１１７では、図１２〜図１８で説明したように、比較器を総当たり戦構成で配置して、１０個の距離の大小関係を検出して順位を決定している。このようにハードウェアにより順列処理の実行する場合、ＣＰＵがソフトウェアを実行することにより順列処理を実行する場合のようにループ処理が無く、順列処理を高速化することができる。
【００６２】
一方、選出処理を行う選出回路１１３は、図９から図１１で説明したように、比較器をトーナメント構成で配置して、距離の最大値（現状の第１０位の距離）とその距離を保持する距離レジスタのレジスタ番号とを検出し、新たに入力された距離が１０位以内に入るか否かを判断して、第１０位の距離を保持する距離レジスタの距離の値を書き換えるだけで、順不同で距離を保持している。このようにハードウェアにより選出処理の実行する場合、ＣＰＵがソフトウェアを実行することにより選出処理を実行する場合のようにループ処理が無く、また、選出回路１１３では、距離計算回路１１２からの出力により適切なタイミングで選出処理が行われるため、選出処理を高速化することができる。
【００６３】
（３）変形例
上述の実施形態においては、回路１０１は、順列回路１１７をＫ個有したが、順列回路を１個のみ有するように構成しても良い。図２１は、順列回路１１７を１個のみ有する回路１０１´の構成を例示する図である。回路１０１´は、メモリ１１５−１〜１１５−Ｋと、メモリ出力回路１１６−１〜１１６−Ｋと、データセレクタ１１８´と、順列回路１１７とを有する。メモリ１１５−１〜１１５−Ｋ及びメモリ出力回路１１６−１〜１１６−Ｋの構成は上述と略同様である。データセレクタ１１８´は、メモリ出力回路１１６−１〜１１６−Ｋから認識候補データとして出力された順不同の１０個の距離と、当該各距離に対応する１０個の文字コードとが入力されると、１個の距離及び当該距離に対応する文字コードの組を１組ずつ順不同に順列回路１１７に出力する。順列回路１１７の構成は、上述と略同様である。
【００６４】
このような回路構成においては、ＬＳＩ５のＣＰＵ５０は、上述の図１９のステップＳ８では、回路１０１ではなく、図２１に示される回路１０１´を回路部５１に構成する。そして、メモリ１１５−ｉに保持された認識候補データは、メモリ出力回路１１６−iを介して順列回路１１７に入力され、順列回路１１７では、距離の小さい順に順位が決定され、距離の小さい順に認識候補データが出力される。ステップＳ９では、ＬＳＩ５のＣＰＵ５０は、順列回路１１７から出力された認識候補データをデータバス５５及びインターフェース５３を介してＲＡＭ３に書き込む。その他の処理の手順は上述の実施の形態と同様である。
【００６５】
順列回路は比較器を多く使い、回路規模が大きいので、以上のような構成により順列回路を１個にすることで、ＬＳＩ５の回路規模をより小さくすることができる。
【００６６】
また、回路１００の後続の回路として、回路１０１又は回路１０１´のいずれかを用いることができることにより、ＬＳＩ５における回路をより柔軟に構成することが可能になる。更に、回路１０１を構成するためのコンフィグレーションデータ及び回路１０１´を構成するためのコンフィグレーションデータの両方を１つ又は複数の各プログラムデータに含ませてＲＯＭ４に記憶させておき、回路１００の後続の回路としていずれか一方のコンフィグレーションデータを所定の選択条件により選択して用いるようにしても良い。このような構成によれば、処理効率や処理時間や回路規模などの兼ね合いに応じて回路１０１又は回路１０１´を選択して動作させることができ、文字認識処理全体の実行をより効果的に実現させることができる。
【００６７】
[第２の実施の形態]
次に、マッチング装置の第２の実施の形態について説明する。なお、上述の第１の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００６８】
（１）構成
図２２〜２３は、本実施の形態にかかるＬＳＩ５の有する回路部５１に構成される回路構成を例示する図である。本実施の形態においては、上述の第１の実施の形態における回路１００の代わりに、図２２に示される回路１０２が回路部５１に構成され、回路１０１の代わりに、図２３に示される回路１０３が回路部５１に構成される。回路１０２は、文字コードメモリ１０９と、メモリ１１０と、Ｋ個のメモリ１１１−１〜１１１−Ｋと、Ｋ個の距離計算回路１１２−１〜１１２−Ｋと、Ｋ個の選出回路１１３−１〜１１３−Ｋと、データセレクタ１１８"と、メモリ１１５とを有する。上述の回路１００は、Ｋ個のメモリ入力回路１１４−１〜１１４−Ｋと、認識候補データを保持するメモリとしてメモリ１１５をＫ個有したが、本実施の形態における回路１０２は、メモリ入力回路１１４−１〜１１４−Ｋがなく、認識候補データを保持するメモリとしてメモリ１１５を１個のみ有する。文字コードメモリ１０９と、メモリ１１０と、Ｋ個のメモリ１１１−１〜１１１−Ｋと、Ｋ個の距離計算回路１１２−１〜１１２−Ｋと、Ｋ個の選出回路１１３−１〜１１３−Ｋとの構成は上述の第１の実施の形態と同様である。データセレクタ１１８"は、選出回路１１３−１〜１１３−Ｋで選出された１０個の距離及び当該各距離に対応する文字コードを認識候補データとして順不同にメモリ１１５に出力する。
【００６９】
一方、図２３の回路１０３は、回路１０２に後続する回路であり、メモリ１１５と、メモリ出力回路１１６と、順列回路１１７とを有する。上述の回路１０１は、Ｋ個のメモリ１１５−１〜１１５−Ｋに応じて、メモリ出力回路１１６をＫ個有し、順列回路１１７をＫ個有したが、本実施の形態における回路１０３は、メモリ１１５、メモリ出力回路１１６及び順列回路１１７を各々１個のみ有する。メモリ１１５、メモリ出力回路１１６及び順列回路１１７の各構成は、上述の第１の実施の形態と同様である。
【００７０】
（２）動作
次に、本実施の形態における文字認識装置１の行うマッチング処理の手順について説明する。当該マッチング処理の手順を示すフローチャートは、上述の１８に示したもの略同様であるため、その図示を省略する。上述の第１の実施の形態と異なる部分について説明する。ステップＳ１では、ＬＳＩ５のＣＰＵ５０は、図２２に示した回路１０２を回路部５１に構成する。ステップＳ２〜Ｓ７は上述の第１の実施の形態と同様である。ステップＳ７の判断結果が肯定的となった場合、選出回路１１３−１〜１１３-Ｋには、Ｋ個の各未知文字に対する１０個の最小値の距離及び当該各距離に対応する文字コードとが認識候補データとして各々保持されている。これらは、データセレクタ１１８"を介してメモリ１１５に入力される。
【００７１】
その後、ステップＳ８では、ＣＰＵ５０は、メモリ１１５に上述の認識候補データを保持させたまま、図２３に示した回路１０３を回路部５１に構成する。そして、メモリ１１５に保持された認識候補データは、メモリ出力回路１１６を介して順列回路１１７に入力される。順列回路１１７では、距離の小さい順に順位が決定され、距離の小さい順に認識候補データが出力される。ステップＳ９では、ＬＳＩ５のＣＰＵ５０は、順列回路１１７から出力された認識候補データをデータバス５５及びインターフェース５３を介してＲＡＭ３に書き込む。以降は上述の第１の実施の形態と同様である。
【００７２】
以上のような構成によれば、上述の第１の実施の形態と比較して、Ｋ個のメモリ入力回路１１４−１〜１１４−Ｋが不要であると共に、メモリ１１５、メモリ出力回路１１６及び順列回路１１７の個数を低減することができる。この結果、ＬＳＩ５のメモリ資源を大幅に節約することができると共に、回路規模をより小さくすることができる。また、部品点数や配線量もより少なくすることができ、コストをより低減することができる。
【００７３】
[第３の実施の形態]
次に、文字認識装置の第３の実施の形態について説明する。なお、上述の第１の実施の形態又は第２の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００７４】
（１）構成
上述の第１の実施の形態においては、各辞書文字に対する辞書データは、辞書文字に対する文字コードを含むように構成した。しかし、本実施の形態においては、辞書データは文字コードを含まず、マッチング処理では、文字コードの代わりに、図２に示したように、各辞書データに対応付けられている通し番号を用いる。例えば、文字認識装置１のハードディスク装置１３に、この通し番号と文字コードとの対応関係を示すデータを保持する。これにより、ＣＰＵ１０は、通し番号から文字コードを認識することができる。
【００７５】
図２４は、本実施の形態にかかるＬＳＩ５の回路部５１に構成される回路構成を例示する図である。本実施の形態においては、上述の第１の実施の形態における回路１００の代わりに、図２４に示される回路１０４が回路部５１に構成される。上述の第１の実施の形態における回路１００と異なる点は、回路１０４が文字コードメモリ１０９の代わりに、カウンタ１３０を有する点である。メモリ１１０には、ＲＡＭ３に記憶された辞書データに含まれる特徴量データが、当該辞書データに対応付けられた通し番号の順に入力される。メモリ１１０は、通し番号の順に特徴量データを出力する。カウンタ１３０は、メモリ１１０から特徴量データが１文字毎に出力される度にカウンタ値を増加させて出力する。このカウンタ値が通し番号に相当することになる。そして、選出回路１１３−ｉでは、カウンタ１３０から出力された通し番号を、上述の第１の実施の形態の文字コードと同様に用いて、１０個の距離及び当該各距離に対応する通し番号を認識候補データとして順不同にメモリ入力回路１１４−ｉに出力する。
【００７６】
（２）動作
次に、本実施の形態における文字認識装置１の行うマッチング処理の手順について説明する。図２５は、本実施の形態における文字認識装置１の行うマッチング処理の手順を示すフローチャートである。上述の第１の実施の形態と異なる部分について説明する。
【００７７】
ステップＳ１´では、ＬＳＩ５のＣＰＵ５０は、図２４に示した回路１０４を回路部５１に構成する。ステップＳ２は上述の第１の実施の形態と同様である。ステップＳ３´では、ＣＰＵ５０は、ＲＡＭ３に記憶された辞書データのうちＬ個の辞書文字に対する辞書データに含まれる特徴量データを回路部５１（回路１０４）に転送し、特徴量データを、当該辞書データに対応付けられた通し番号の順にメモリ１１０に入力する。ステップＳ４では、メモリ１１０は１個の辞書文字に対する特徴量データを通し番号の順に出力し、メモリ１１１−１〜１１１−Ｋは、入力された１個の未知文字に対する特徴量データを同時に各々出力する。
【００７８】
ステップＳ５は上述の第１の実施の形態と同様である。ステップＳ５の判断結果が肯定的である場合、上述の第１の実施の形態と同様にして距離計算回路１１２−１〜１１２-Ｋは、１個の未知文字と１個の辞書文字との間の各距離を各々出力する。この時に、カウンタ１３０は、メモリ１１０から出力された１個の辞書文字に対する特徴量データのカウンタ値（通し番号）を増加させて出力する。この通し番号は、選出回路１１３−１〜１１３−Ｋに各々入力される。選出回路１１３−ｉでは、入力された距離が最小値の１０個に該当するか否かが判断され、最小値の１０個の距離と当該各距離に対応する通し番号とが保持される。以降、ステップＳ６〜Ｓ１０では、上述の第１の実施の形態における文字コードの代わりに通し番号が用いられて処理が行われる。この結果、ＲＡＭ３には、全ての各未知文字に対する認識候補データとして、１０個の距離と当該距離に対応する通し番号とが各々保持される。
【００７９】
以上のような構成によれば、マッチング処理に用いる辞書データに文字コードを含ませずに済むので、辞書データのデータ量を削減できる。このため、辞書データを記憶するＲＡＭ３のメモリ消費量を低減することができる。また、文字コードをＲＡＭ３からＬＳＩ５へ転送する必要がないので、ＬＳＩ５へのデータ転送時間を短縮することができる。また、ＬＳＩ５に構成される回路１０４においては、文字コードメモリ１０９の代わりにカウンタ１３０を備えればよいので、ＬＳＩ５におけるメモリ資源を節約することができると共に、回路規模をより小さくすることができる。
【００８０】
（３）変形例
上述の第２の実施形態においても、本実施の形態と同様にして、文字コードの代わりに、各辞書文字に対する特徴量データの通し番号を用いるように構成しても良い。図２６は、本変形例にかかるＬＳＩ５の有する回路部５１に構成される回路構成を例示する図である。本実施の形態においては、上述の第２の実施の形態における回路１０２の代わりに、図２６に示される回路１０５が回路部５１に構成される。回路１０５は、文字コードメモリ１０９の代わりに、カウンタ１３０を有する。
【００８１】
このような構成におけるマッチング処理の手順を示すフローチャートは、上述の図２５に示したものと略同様であるため、その図示を省略する。上述の各実施の形態の形態と異なる部分について説明する。ステップＳ１´では、ＬＳＩ５のＣＰＵ５０は、図２６に示した回路１０５を回路部５１に構成する。ステップＳ２は上述の各実施の形態と同様である。ステップＳ３´は、上述の第３の実施の形態と同様である。ステップＳ４〜Ｓ５は上述の第１の実施の形態と同様である。ステップＳ５〜Ｓ７は、上述の各実施の形態と同様である。ステップＳ８では、上述の第２の実施の形態と同様にして、ＣＰＵ５０は、メモリ１１５に認識候補データを保持させたまま、図２３に示した回路１０３を回路部５１に構成する。ステップＳ９〜Ｓ１０も上述の第２の実施の形態と同様である。この結果、ＲＡＭ３には、全ての各未知文字に対する認識候補データとして、１０個の距離と当該距離に対応する通し番号とが各々保持される。
【００８２】
以上のような構成によれば、上述の第１の実施の形態及び第２の実施の形態と比較して、ＲＡＭ３のメモリ消費量を低減することができ、更に、回路規模をより小さくすることができる。また、ＬＳＩ５へのデータ転送時間を短縮することができる。
【００８３】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００８４】
上述の各実施の形態においては、未知文字に対する認識候補データの数（Ｐ個）を１０個としているが、この数に限定されない。
【００８５】
また、上述の第１の実施の形態及び第２の実施の形態においては、文字コードメモリ１０９及びメモリ１１０には、ＲＡＭ３に記憶された全ての辞書文字に対する辞書データのうち、Ｌ個の辞書文字に対する辞書データに含まれる文字コード及び特徴量データが各々入力されるものとしたが、ＲＡＭ３に記憶された全ての辞書文字に対する辞書データ含まれる文字コード及び特徴量データが各々入力されるようにしても良い。
【図面の簡単な説明】
【００８６】
【図１】第１の実施の形態にかかる文字認識装置の構成を例示する図である。
【図２】同実施の形態にかかるマッチング装置１７の構成を例示する図である。
【図３】文字認識処理におけるマッチング処理の概要を示す図である。
【図４】辞書文字と未知文字との間の距離の計算方法を示す図である。
【図５】ＬＳＩ５の有する回路部５１に書き込まれる回路構成を例示する図である。
【図６】ＬＳＩ５の有する回路部５１に書き込まれる回路構成を例示する図である。
【図７】距離計算回路１１２の構成の一例を示す図である。
【図８】距離計算回路１１２の構成の他の例を示す図である。
【図９】選出回路１１３のブロック構成を示す図である。
【図１０】最大値検出回路１１３１のブロック構成を示す図である。
【図１１】最大値検出回路１１３１のブロック構成を示す図である。
【図１２】順列回路１１７のブロック構成を示す図である。
【図１３】順列回路１１７の有する比較回路１１７０のブロック構成を示す図である。
【図１４】順列回路１１７の有する順列判定回路１１７１のブロック構成を示す図である。
【図１５】順位決定回路１１７１０へ比較器１１７００−１〜１１７００−４５から入力される各比較結果と、当該比較結果に基づいて決定される各距離の順位との対応関係を表形式で示した図である。
【図１６】図１４に示した順列判定回路１１７１の有する順位決定回路１１７１０のブロック構成の一例を示す図である。
【図１７】図１４に示した順列判定回路１１７１の有する順位決定回路１１７１０のブロック構成の他の例を示す図である。
【図１８】順列判定回路１１７１の有するデータセレクタ制御回路１１７１１のブロック構成を例示する図である。
【図１９】文字認識処理におけるマッチング処理の手順を示すフローチャートである。
【図２０】ＬＳＩ５のＣＰＵ５０が回路部５１に構成する回路を書換える処理の手順を示すフローチャートである。
【図２１】変形例にかかる順列回路１１７を１個のみ有する回路１０１´の構成を例示する図である。
【図２２】第２の実施の形態にかかるＬＳＩ５の有する回路部５１に構成される回路構成を例示する図である。
【図２３】ＬＳＩ５の有する回路部５１に構成される回路構成を例示する図である。
【図２４】第３の実施の形態にかかるＬＳＩ５の回路部５１に構成される回路構成を例示する図である。
【図２５】文字認識装置１の行うマッチング処理の手順を示すフローチャートである。
【図２６】変形例にかかるＬＳＩ５の有する回路部５１に構成される回路構成を例示する図である。
【符号の説明】
【００８７】
１  文字認識装置
３  ＲＡＭ（第１記憶手段、第２記憶手段）
４  ＲＯＭ（第２記憶手段）
５  ＬＳＩ（半導体デバイス）
６  バス
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  ハードディスク装置
１４  スキャナ
１５  操作装置
１６  ディスプレイ
１７  マッチング装置
１８  バス
５０  ＣＰＵ（制御手段）
５１  回路部
５２  インターフェース
５３  インターフェース
５４  インターフェース
５５  データバス
１００〜１０５  回路
１０９  文字コードメモリ
１１０  メモリ（第２メモリ）
１１１  メモリ（第１メモリ）
１１２  距離計算回路（距離計算手段）
１１３  選出回路（選出手段）
１１４  メモリ入力回路
１１５  メモリ（第３メモリ）
１１６  メモリ出力回路
１１７  順列回路（順列手段）
１１８  データセレクタ
１３０  カウンタ
１１２０  減算器
１１２１  ２乗回路
１１２２  累積加算器
１１２３  絶対値回路
１１３０  距離レジスタ
１１３１  最大値検出回路（最大値検出手段）
１１３２  比較器（第２比較手段）
１１３４  レジスタ書き換え制御回路（書き換え制御手段）
１１３５  文字コードレジスタ
１１４５  メモリ
１１７０  比較回路
１１７１  順列判定回路（順位決定手段）
１１７２  データセレクタ（第１出力手段）
１１７３  データセレクタ（第２出力手段）
１１３１０  比較器
１１３１１  論理回路
１１３１２  信号線
１１７００  比較器（第３比較手段）
１１７１０  順位決定回路（順位決定手段）
１１７１１  データセレクタ制御回路
１１７１００  否定回路
１１７１０１  結線
１１７１０２  信号線
１１７１０３  論理回路
１１７１０４  レジスタ
１１７１０５  データセレクタ
１１７１１０  カウンタ
１１７１１１  一致検出回路
【図１】
2009070226.tif 000003
【図２】
2009070226.tif 000004
【図３】
2009070226.tif 000005
【図４】
2009070226.tif 000006
【図５】
2009070226.tif 000007
【図６】
2009070226.tif 000008
【図７】
2009070226.tif 000009
【図８】
2009070226.tif 000010
【図９】
2009070226.tif 000011
【図１０】
2009070226.tif 000012
【図１１】
2009070226.tif 000013
【図１２】
2009070226.tif 000014
【図１３】
2009070226.tif 000015
【図１４】
2009070226.tif 000016
【図１５】
2009070226.tif 000017
【図１６】
2009070226.tif 000018
【図１７】
2009070226.tif 000019
【図１８】
2009070226.tif 000020
【図１９】
2009070226.tif 000021
【図２０】
2009070226.tif 000022
【図２１】
2009070226.tif 000023
【図２２】
2009070226.tif 000024
【図２３】
2009070226.tif 000025
【図２４】
2009070226.tif 000026
【図２５】
2009070226.tif 000027
【図２６】
2009070226.tif 000028