(57)【要約】【課題】文字認識を高速に行うＳＩＭＤ型プロセッサ、文字認識装置、文字認識システム、文字認識方法、プログラム及び記録媒体を提供する。【解決手段】同一処理を並行して実行できる複数の内部プロセッサと、内部プロセッサとデータ転送を行うグローバルプロセッサを備えるＳＩＭＤ型プロセッサが、各内部プロセッサの内蔵メモリに記憶されている辞書データに登録されている文字の特徴量毎に未知文字の特徴量データとの特徴量間距離を算出し、算出された特徴量間距離のうち、最小値１を選出し、各内部プロセッサが選出した複数の最小値１から最小値２を選出し、最小値２と、最小値２を保持していた内部プロセッサの識別番号と、該内部プロセッサで最小値１になった特徴量間距離を示す通し番号とを出力し、さらに最小値２を最大値に置き換え、再び、最小値１と最小値２を選出すなわち次に小さい特徴量間距離の選出を所定の回数行うことを特徴とする。【選択図】図７
2010211402.tif 000002
【特許請求の範囲】
【請求項１】
同一処理を並行して実行できる複数の内部プロセッサを備えるＳＩＭＤ型プロセッサであって、
前記複数の内部プロセッサとデータ転送を行うグローバルプロセッサを備え、
前記内部プロセッサが有する内蔵メモリには、文字の特徴量が登録された辞書データが分割して記憶され、
前記グローバルプロセッサは、入力された未知文字の特徴量データを、各内部プロセッサに転送し、
各内部プロセッサは、前記内蔵メモリに記憶されている前記辞書データに登録されている文字の特徴量毎に、前記転送された未知文字の特徴量データと比較し、特徴量間の距離を算出して前記内蔵メモリに記憶し、前記内蔵メモリに記憶された特徴量間の距離のうち、最小値１を選出し、
前記グローバルプロセッサは、各内部プロセッサが選出した複数の最小値１から最小値２を選出し、前記選出された最小値２と、前記最小値２を保持していた内部プロセッサの識別番号と、該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号とを出力し、
さらに前記グローバルプロセッサは、前記最小値２を保持していた内部プロセッサの内蔵メモリに記憶された、前記最小値２に対応する特徴量間の距離を、その値が取りえる最大値に置き換え、再び、最小値１と最小値２を選出すなわち次に小さい特徴量間の距離の選出を所定の回数行うことを特徴とするＳＩＭＤ型プロセッサ。
【請求項２】
請求項１記載のＳＩＭＤ型プロセッサと、
文字の特徴量が登録された辞書データを記憶する記憶手段と、
文字データから抽出された特徴量すなわち未知文字の特徴量データに基づいて前記ＳＩＭＤ型プロセッサから出力された最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号と、前記辞書データとを参照し、前記未知文字の認識結果を選出するマッチング手段と、
を備えることを特徴とする文字認識装置。
【請求項３】
前記ＳＩＭＤ型プロセッサに接続された外部メモリをさらに備え、
前記外部メモリは、前記辞書データ及び前記未知文字の特徴量を記憶し、
前記外部メモリが記憶する辞書データ及び前記未知文字の特徴量に基づき、前記ＳＩＭＤ型プロセッサが出力した最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号が、前記外部メモリに一旦入力された後に、一括して前記マッチング手段に送られることを特徴とする請求項２記載の文字認識装置。
【請求項４】
前記外部メモリは、さらに、前記ＳＩＭＤ型プロセッサで実行するプログラムを記憶し、
前記外部メモリが記憶するプログラムを前記ＳＩＭＤ型プロセッサに送って実行させ、さらに前記外部メモリから入力された辞書データ及び前記未知文字の特徴量に基づき、前記ＳＩＭＤ型プロセッサが出力した最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号が、前記外部メモリに一旦入力された後に、一括して前記マッチング手段に送られることを特徴とする請求項３記載の文字認識装置。
【請求項５】
請求項２から４のいずれか１項に記載の文字認識装置であって、更にネットワークインターフェースを備えた文字認識装置と、前記文字認識装置で実行されるプログラムと前記辞書データを保存するサーバーとが、ネットワークを介して接続され、
前記文字認識装置は、前記サーバーからネットワーク経由で前記プログラムと前記辞書データを受信することを特徴とする文字認識システム。
【請求項６】
請求項１記載のＳＩＭＤ型プロセッサと、文字の特徴量が登録された辞書データを記憶する記憶部と、を備える文字認識装置の文字認識方法であって、
文字データから抽出された特徴量すなわち未知文字の特徴量データに基づいて前記ＳＩＭＤ型プロセッサから出力された最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号と、前記辞書データとを参照し、前記未知文字の認識結果を選出するステップを備えることを特徴とする文字認識方法。
【請求項７】
請求項１記載のＳＩＭＤ型プロセッサと、文字の特徴量が登録された辞書データを記憶する記憶部と、を備える文字認識装置の文字認識プログラムであって、
文字データから抽出された特徴量すなわち未知文字の特徴量データに基づいて前記ＳＩＭＤ型プロセッサから出力された最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号と、前記辞書データとを参照し、前記未知文字の認識結果を選出する処理をコンピュータに実行させることを特徴とする文字認識プログラム。
【請求項８】
請求項７記載の文字認識プログラムの処理を記録するコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ型プロセッサ、文字認識装置、文字認識システム、文字認識方法、プログラム及び記録媒体に関し、特に文字認識においてより高速に処理するＳＩＭＤ型プロセッサ、文字認識装置、文字認識システム、文字認識方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
手書き、または印刷した文字を光学的に読み取るＯＣＲ（Optical Character Reader）は、標準パターンと入力パターンを比較して、最も似ている標準パターンを選択して認識結果とする文字認識用マッチング装置である。標準パターンと入力パターンを比較して、最も似ている標準パターンを選択する技術に関して、以下の技術が提案されている。
【０００３】
特許文献１には、ＳＩＭＤ(Single Instruction stream-Multiple Data stream)型並列プロセッサ内の各プロセッサエレメント（ＰＥ）のメモリに辞書パターンを１パターンずつ展開し、認識対象の入力パターンを各ＰＥのメモリに展開し、各ＰＥで辞書パターンと入力パターンのマッチング度を求め、コントロールプロセッサは全てのＰＥのマッチング度を集めて最もマッチした辞書パターンに対応した文字を認識結果とするパターン認識方法及びパターン認識装置が記載されている。
【０００４】
特許文献２には、中央処理部（ＣＰＵ：Central Processing Unit）と並列処理部（ＳＩＭＤ）とを用いて、大量の生物学的な配列情報データベースから問い合わせ配列に最も近い配列情報を検索する生物学的な配列情報の検索装置、検索方法および検索プログラムが記載されている。まず、並列処理部で問い合わせ配列とデータベースとの間で配列マッチングを行い、１次候補配列を抽出する。次に、中央処理部で１次候補配列と問い合わせ配列との間で配列マッチングを行い、２次候補配列を抽出する。
【０００５】
特許文献３には、グローバルプロセッサと複数のプロセッサエレメント（ＰＥ）を備えたＳＩＭＤ型プロセッサにおいて、ＰＥの演算結果を隣接するＰＥに転送して、各ＰＥのレジスタの値の総和値又は最大値若しくは最小値を求めるＳＩＭＤ型マイクロプロセッサが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記のような技術には、以下の問題点がある。
【０００７】
特許文献１記載のパターン認識方法及びパターン認識装置は、１個のＰＥに辞書パターンを１パターンずつ展開しているため、辞書パターン数分のＰＥが必要になり、回路規模が大きくなる。或いは、辞書パターン数よりも少ない個数のＰＥで処理すると、辞書パターンを分割して複数回処理する必要があり、処理速度が低下する。また、全ＰＥのマッチング度を集めてからマッチング度の最大値を求めているため、マッチング度のデータ転送に時間がかかり、処理速度が遅い。
【０００８】
特許文献２記載の検索装置、検索方法および検索プログラムは、１次候補配列は並列処理部で抽出しているので高速であるが、２次候補配列を中央処理部で抽出しているため、逐次比較処理を行うことになり、処理速度が遅い。
【０００９】
特許文献３記載のＳＩＭＤ型マイクロプロセッサは、ＳＩＭＤ型プロセッサの各ＰＥのレジスタの値の総和値又は最大値若しくは最小値を高速に求められるが、システムとして実現するための制御手段の開示が無い。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、文字認識用マッチングにおいて高速処理を可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係るＳＩＭＤ型プロセッサは、同一処理を並行して実行できる複数の内部プロセッサを備えるＳＩＭＤ型プロセッサであって、前記複数の内部プロセッサとデータ転送を行うグローバルプロセッサを備え、前記内部プロセッサが有する内蔵メモリには、文字の特徴量が登録された辞書データが分割して記憶され、前記グローバルプロセッサは、入力された未知文字の特徴量データを、各内部プロセッサに転送し、各内部プロセッサは、前記内蔵メモリに記憶されている前記辞書データに登録されている文字の特徴量毎に、前記転送された未知文字の特徴量データと比較し、特徴量間の距離を算出して前記内蔵メモリに記憶し、前記内蔵メモリに記憶された特徴量間の距離のうち、最小値１を選出し、前記グローバルプロセッサは、各内部プロセッサが選出した複数の最小値１から最小値２を選出し、前記選出された最小値２と、前記最小値２を保持していた内部プロセッサの識別番号と、該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号とを出力し、さらに前記グローバルプロセッサは、前記最小値２を保持していた内部プロセッサの内蔵メモリに記憶された、前記最小値２に対応する特徴量間の距離を、その値が取りえる最大値に置き換え、再び、最小値１と最小値２を選出すなわち次に小さい特徴量間の距離の選出を所定の回数行うことを特徴とする。
【００１２】
本発明に係る文字認識装置は、上記本発明に係るＳＩＭＤ型プロセッサと、文字の特徴量が登録された辞書データを記憶する記憶手段と、文字データから抽出された特徴量すなわち未知文字の特徴量データに基づいて前記ＳＩＭＤ型プロセッサから出力された最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号と、前記辞書データとを参照し、前記未知文字の認識結果を選出するマッチング手段と、を備えることを特徴とする。
【００１３】
本発明に係る文字認識システムは、上記本発明に係る文字認識装置であって、更にネットワークインターフェースを備えた文字認識装置と、前記文字認識装置で実行されるプログラムと前記辞書データを保存するサーバーとが、ネットワークを介して接続され、前記文字認識装置は、前記サーバーからネットワーク経由で前記プログラムと前記辞書データを受信することを特徴とする。
【００１４】
本発明に係る文字認識方法は、上記本発明に係るＳＩＭＤ型プロセッサと、文字の特徴量が登録された辞書データを記憶する記憶部と、を備える文字認識装置の文字認識方法であって、文字データから抽出された特徴量すなわち未知文字の特徴量データに基づいて前記ＳＩＭＤ型プロセッサから出力された最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号と、前記辞書データとを参照し、前記未知文字の認識結果を選出するステップを備えることを特徴とする。
【００１５】
本発明に係る文字認識プログラムは、上記本発明に係るＳＩＭＤ型プロセッサと、文字の特徴量が登録された辞書データを記憶する記憶部と、を備える文字認識装置の文字認識プログラムであって、文字データから抽出された特徴量すなわち未知文字の特徴量データに基づいて前記ＳＩＭＤ型プロセッサから出力された最小値２、前記最小値２を保持していた内部プロセッサの識別番号、及び該内部プロセッサで最小値１になった特徴量間の距離を示す通し番号と、前記辞書データとを参照し、前記未知文字の認識結果を選出する処理をコンピュータに実行させることを特徴とする。
【００１６】
本発明に係る記録媒体は、上記本発明に係る文字認識プログラムの処理を記録するコンピュータ読取り可能な記録媒体である。
【発明の効果】
【００１７】
本発明によれば、文字認識用マッチングにおいて高速処理が可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る文字認識装置のブロック構成図である。
【図２】本発明の実施形態に係るマッチング部６の構成例を示す図である。
【図３】本発明の実施形態に係るＳＩＭＤ型プロセッサ６３の内部構成の概要を示す図である。
【図４】本発明の実施形態に係るマッチング処理の概要を示す図である。
【図５】本発明の実施形態に係る辞書の１文字と未知文字の１文字の特徴量データ間の距離の計算方法を示す図である。
【図６】本発明の実施形態に係るＳＩＭＤ型プロセッサ６３を使用して行うマッチング処理を説明するための図である。
【図７】本発明の実施形態に係るＳＩＭＤ型プロセッサ６３で行うマッチング処理を示すフローチャートである。
【図８】本発明の他の実施形態に係るマッチング部の構成を示す図である。
【図９】本発明の他の実施形態に係るマッチング部の構成を示す図である。
【図１０】本発明の他の実施形態に係る文字認識装置１０とサーバー１１から構成される文字認識システムの全体構成図である。
【発明を実施するための形態】
【００１９】
以下に、本発明の実施形態について図面を用いて詳細に説明する。なお、以下に述べる実施形態は、本発明の好適な実施形態であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【００２０】
〔構成〕
図１は、本発明の実施形態に係る文字認識装置のブロック構成図である。文字認識装置は、中央処理手段であるＣＰＵ１と、揮発性の記憶手段であるメモリ２と、不揮発性の記憶手段であるハードディスクドライブ（ＨＤＤ）３と、原稿を光学的に読取る読取り手段であるスキャナ５と、出力情報を用紙に印刷等行う出力手段である出力部８と、未知文字の認識結果の選出すなわち認識用のマッチングを行うマッチング部６と、本装置をユーザが操作するためのユーザーインターフェース部７と、がデータバス４で接続され、構成されている。
【００２１】
本実施形態に係る文字認識装置は、まず、文字認識をしたい原稿をスキャナ５で読取り、原稿の画像データから文字を抽出し、その特徴量（未知文字の特徴量）を抽出する。ＨＤＤ３には、予め、文字の特徴量が登録された辞書データが保存されている。辞書データと未知文字の特徴量がマッチング部６に入力され、マッチング部６は、未知文字の認識候補を複数個、辞書データから選出する。さらに、マッチング部６は、選出された複数個の認識候補から、前後の文字や文章として妥当性の高い認識候補を文字の認識結果として選出する。選出された文字の認識結果が、出力部８から用紙等に印刷出力される。
【００２２】
図２は、マッチング部６の構成例を示す図である。バスインターフェース６１と、制御回路（１）６２と、ＳＩＭＤ型プロセッサ６３と、から構成される。
【００２３】
バスインターフェース６１は、データバス４経由でデータ（プログラムデータも含む）の送受信を制御する。制御回路（１）６２は、バスインターフェース６１とＳＩＭＤ型プロセッサ６３との間のデータ入出力とＳＩＭＤ型プロセッサで実行するプログラムの入力や起動を制御する。ＳＩＭＤ型プロセッサ６３は、辞書データと未知文字の特徴量を入力し、未知文字の認識候補を複数個、辞書データから選出するマッチング処理を行う。
【００２４】
図３は、ＳＩＭＤ型プロセッサ６３の内部構成の概要を示す図である。主に、内蔵メモリ６３３を持つ複数の内部プロセッサ６３２（１）〜６３２（Ｋ）（Ｋ：２以上の整数）と、各内部プロセッサとデータ転送をするグローバルプロセッサ６３５と、から構成される。更に、ＳＩＭＤ型プロセッサ６３で実行するプログラムを記憶するプログラムメモリ６３６と、データを記憶するデータメモリ６３７と、ＳＩＭＤ型プロセッサ６３で実行するプログラムを入力するためのホストインターフェース６３８と、ＳＩＭＤ型プロセッサへのデータの入出力を行うデータインターフェース６３１を有する。
【００２５】
入力データは、各内部プロセッサ（１）〜（Ｋ）に入力でき、内部プロセッサ（１）〜（Ｋ）からグローバルプロセッサ６３５にデータを送信できる。更にグローバルプロセッサ６３５はデータメモリ６３７にデータを書き込んだり読み出したりできる。逆に、データメモリ６３７上のデータをグローバルプロセッサ６３５が読み出して、各内部プロセッサ（１）〜（Ｋ）に送信し、各内部プロセッサ（１）〜（Ｋ）からデータインターフェース６３１を介してデータを出力できる。各内部プロセッサ（１）〜（Ｋ）は、入力したデータを内蔵メモリに書き込んだり、読み出したりでき、内蔵している演算器や複数個のレジスタを使用してプログラムに従ってデータ処理を行える。
【００２６】
ＳＩＭＤ型プロセッサ６３であるので、１つのプログラムで、全内部プロセッサが同一処理を並行して実行できる。また、特許文献３（特開2002-229962号公報）に詳細に記載されているように、各内部プロセッサ（１）〜（Ｋ）が独立した演算を行うだけでなく、内部プロセッサの演算結果を隣接する内部プロセッサに転送する機能を有し、各内部プロセッサで保持している値の総和値又は最大値又は最小値を求める事もできる。
【００２７】
〔マッチング処理〕
図４にマッチング処理の概要を示す。マッチング処理は、１つの未知文字と辞書に登録された多くの文字とで、文字毎の特徴量間の距離を算出し、最も距離の小さい辞書文字を、未知文字の認識候補として複数個選出する処理である。辞書には特徴量データと文字コードとが対応付けられている。特徴量データの通し番号（１〜Ｎ：Ｎは整数）と文字コードとは対応付けられているため、マッチング処理では特徴量データの通し番号だけを扱えば良い。
【００２８】
図５に、辞書の１文字と未知文字の１文字の特徴量データ間の距離の計算方法を示す。１文字の特徴量データは、M個（Mは２以上の整数）のデータからなるM次元のベクトルデータである。辞書の１文字と未知文字の１文字の特徴量データの同一次元毎のデータの差を計算し、その絶対値又は２乗を算出する。これを全次元分加算した値が辞書の１文字と未知文字の１文字との特徴量の距離である。
【００２９】
未知文字の１文字に対して、辞書に登録されている全文字（例えば、日本語の活字であれば約４０００文字）との距離を計算するには、辞書の１文字に対して、M回の減算と、M回の絶対値又は２乗計算と、M回の加算（累積加算）を行い、更にこれを辞書に登録されている全文字数分だけ繰返す。このように、マッチング処理の距離計算は非常に多くの回数の演算を行う。
【００３０】
このようにして計算された辞書に登録されている全文字数分の距離データ（日本語の活字であれば約４０００個の距離データ）から、最小値を複数個（例えば小さい順に１０個）選出する。その距離データと、辞書データの通し番号がマッチング処理の出力データである。
【００３１】
図６は、ＳＩＭＤ型プロセッサ６３を使用して行うマッチング処理を説明するための図である。まず、内部プロセッサ６３２（１）〜（Ｋ）の内蔵メモリ６３３（１）〜（Ｋ）に辞書データを分割して記憶する。辞書に登録された文字数をＮとすると、１個の内部プロセッサの内蔵メモリには、Ｎ÷Ｋ＝Ｐ文字の辞書データ（辞書文字の特徴量データ）を記憶する。Ｎ÷Ｋが割り切れない場合は、ダミーの辞書データを追加して、全内部プロセッサの内蔵メモリに同一文字数の辞書データを記憶する。以後、この文字数をＰ文字とする。
【００３２】
図６に示すように、各内部プロセッサの内蔵メモリにＰ文字分の辞書文字の特徴量データ１〜Ｐを記憶する。図６では、１文字の辞書文字の特徴量データを１つの四角形で表しているが、実際にはM個のデータを記憶している。そして、未知文字の特徴量データをデータメモリ６３７に記憶する。これも、１文字の特徴量データはM個のデータである。複数文字の未知文字の特徴量データをデータメモリ６３７に記憶する。
【００３３】
次に、グローバルプロセッサ６３５が、未知文字の特徴量データをデータメモリ６３７から読み出して内部プロセッサ６３２（１）〜（Ｋ）のレジスタに転送する。その後、各内部プロセッサは、レジスタ６３４上の未知文字の特徴量データと、内蔵メモリ６３３上の辞書文字の特徴量データとの距離を計算して、内蔵メモリ６３３に記憶する。この結果、各内部プロセッサの内蔵メモリ６３３には、Ｐ個の距離データが記憶されている。
【００３４】
この後、これらの距離データ（Ｐ個×Ｋ個＝Ｎ個）から最小値を複数個選出する。ここで、ダミーの辞書データを追加した場合は、そのダミーの辞書データを使用して計算した距離データを、その値が取りえる最大値に書換えておく。例えば、距離データが２４ビットの符号なしデータであれば、その最大値は１６進表示でＦＦＦＦＦＦであるから、この値に書換える。これは、ダミーの辞書データの文字（距離と通し番号）が認識候補として選出されるのを防ぐためである。
【００３５】
まず、各内部プロセッサ６３２の内蔵メモリ６３３上のＰ個の距離データから最小値（以後、これを最小値１と呼ぶ。）を選出する。これは、全プロセッサが同時に並行処理を行って選出する。そして、その最小値１になった距離の通し番号（１〜Ｐのいずれかの値）と、内部プロセッサの番号（１〜Ｋのいずれかの値）を各内部プロセッサ６３２のレジスタ６３４に保持する。
【００３６】
次に、各内部プロセッサ６３２のレジスタ６３４に保持された最小値１から最小値（以後、これを最小値２と呼ぶ。）を選出する。この時に、前述の特許文献３（特開2002-229962号公報）に詳細に記載されているように、内部プロセッサの演算結果を隣接する内部プロセッサに転送する機能を使用して、各内部プロセッサで保持している値の最小値を求める。同じ値の最小値１が複数個ある場合もあるので、内部プロセッサの番号の小さい方の最小値１を最小値２としても良い。こうして選出された最小値２をグローバルプロセッサ６３５がデータメモリ６３７に書き込む。そして、その内部プロセッサ番号と、その内部プロセッサでの距離の通し番号もデータメモリ６３７に書き込む。
【００３７】
内部プロセッサ番号とその内部プロセッサでの距離の通し番号から、辞書データの通し番号は算出できるため、別途、グローバルプロセッサ６３５で計算しても良いし、図１に示した文字認識装置のＣＰＵ１で算出しても良い。
【００３８】
次に、選出した最小値２に対応する内部プロセッサ６３２の内蔵メモリ６３３上の距離データを、その値のとりえる最大値に書換える。その後、次に小さい距離データの選出を今までの処理の繰返しで処理する。これを選出する候補数の回数だけ繰返す。このようにして、１文字の未知文字のマッチング処理を行い、更にこれを繰返して複数文字のマッチング処理を行う。
【００３９】
図７は、ＳＩＭＤ型プロセッサ６３で行うマッチング処理を示すフローチャートである。まず、ステップＳ１で、辞書文字の特徴量データを各内蔵メモリ６３２１〜６３４１に分割して入力する。
【００４０】
次にステップＳ２で、グローバルプロセッサ６３５が、未知文字の特徴量データを各内部プロセッサ（１）〜（Ｋ）に転送する。
【００４１】
その後、ステップＳ３で、各内部プロセッサ６３２が、内蔵メモリ６３３の辞書文字と未知文字との特徴量間の距離を計算して内蔵メモリ６３３に記憶する。
【００４２】
そして、ステップＳ４で、各内部プロセッサ６３２が、内蔵メモリ内の距離の最小値１を選出する。
【００４３】
その後、ステップＳ５で、各内部プロセッサが選出した最小値１から最小値２を選出し、その最小値２と内部プロセッサの番号と、その内部プロセッサでの最小値１の通し番号とをグローバルプロセッサ６３５に転送する。
【００４４】
そして、ステップＳ６で、グローバルプロセッサ６３５が、最小値２と、内部プロセッサの番号と、その内部プロセッサでの最小値１の通し番号とをデータメモリ６３７に記憶する。
【００４５】
その後、ステップＳ７で、選出した最小値２に対応する内蔵メモリ内の距離を、その値が取りえる最大値に置き換える。
【００４６】
そして、ステップＳ８で、最小値２を所定の個数（選出する候補数）だけ選出したか否かを判断する。ＹＥＳであれば、ステップＳ９に進む。ＮＯであれば、ステップＳ４に戻り、再び最小値１と最小値２を選出する。
【００４７】
ステップＳ９では、所定の文字数の未知文字を処理したか否かを判断し、ＹＥＳであれば、終了する。ＮＯであれば、ステップＳ２に戻り、再び次の未知文字のマッチング処理を行う。
【００４８】
以上説明したように、ＳＩＭＤ型プロセッサ６３でマッチング処理を行うことで、距離計算と最小値１の選出を並列処理で高速に行うことができ、更に最小値２もＳＩＭＤ型プロセッサ６３で選出することで、ＣＰＵで最小値を選出するよりも高速に処理することができる。
【００４９】
〔文字認識装置の動作処理〕
次に、上述したＳＩＭＤ型プロセッサ６３を利用するマッチング部６を備える文字認識装置（図１参照）の具体的な動作処理について説明する。
【００５０】
まず、読取手段であるスキャナ５が出力する原稿の画像データを入力して文字を抽出し、その特徴量（未知文字の特徴量）を出力するプログラム（ａ）と、文字の特徴量が登録された辞書データと、上述したマッチング処理を実行するＳＩＭＤ型プロセッサ６３用のプログラム（ｂ）と、ＳＩＭＤ型プロセッサ６３が出力する最小値２と、最小値２を保持していた内部プロセッサの番号と、その内部プロセッサで最小値１になった距離の通し番号とを入力して、文字の認識結果を出力するプログラム（ｃ）とを、ハードディスクドライブ３に保存する。
【００５１】
次に、中央処理装置であるＣＰＵ１が、メモリ２を使用してプログラム（ａ）を実行して、メモリ２に未知文字の特徴量を出力する。
【００５２】
その後、プログラム（ｂ）をＳＩＭＤ型プロセッサ６３に入力してプログラム（ｂ）を起動し、辞書データと未知文字の特徴量をＳＩＭＤ型プロセッサ６３に入力する。そして、ＳＩＭＤ型プロセッサ６３が出力する最小値２と、最小値２を保持していた内部プロセッサの番号と、その内部プロセッサで最小値１になった距離の通し番号とをメモリ２に出力する。
【００５３】
その後、プログラム（ｃ）を実行して、メモリ上の最小値２と、最小値２を保持していた内部プロセッサの番号と、その内部プロセッサで最小値１になった距離の通し番号とを入力して、文字の認識結果をメモリ２に出力する。最後に、メモリ２上の文字の認識結果を出力部８で出力（例えば印刷）する。
【００５４】
以上の手順により、ＳＩＭＤ型プロセッサ６３を利用したマッチング部６を備える文字認識装置によって、マッチング処理を高速化できる。
【００５５】
〔他の実施形態〕
図８に、本発明の他の実施形態に係るマッチング部の構成を示す。本実施形態（実施形態２）に係るマッチング部は、バスインターフェース６１と、ＳＩＭＤ型プロセッサ６３と、制御回路（２）６５と、外部メモリ６６と、から構成される。
【００５６】
バスインターフェース６１は、データバス４経由でデータ（プログラムデータも含む）の送受信を制御する。外部メモリ６６は、ＳＩＭＤ型プロセッサ６３の入力データと出力データを記憶する。制御回路２は、バスインターフェース６１と外部メモリ６６とＳＩＭＤ型プロセッサ６３との間のデータ入出力とＳＩＭＤ型プロセッサ６３で実行するプログラムの入力や起動を制御する。ＳＩＭＤ型プロセッサ６３は、辞書データと未知文字の特徴量を入力し、未知文字の認識候補を複数個、辞書データから選出するマッチング処理を行う。
【００５７】
以下に、本実施形態に係るマッチング部でのデータの入出力とプログラムの入力と起動の手順を説明する。
【００５８】
まず、データバス４からの入力データである辞書データと未知文字データを、バスインターフェース６１を介して、制御回路（２）６５によって外部メモリ６６に記憶する。
【００５９】
次に、ＳＩＭＤ型プロセッサ６３で実行するプログラム（プログラム（ｂ））をバスインターフェース６１を介して、制御回路（２）６５によってＳＩＭＤ型プロセッサ６３に入力し起動する。
【００６０】
その後、制御回路（２）６５によって外部メモリ６６上の辞書データと未知文字データをＳＩＭＤ型プロセッサ６３に入力する。そして、ＳＩＭＤ型プロセッサ６３の出力データ（最小距離選出結果）を制御回路（２）６５によって外部メモリ６６に記憶する。
【００６１】
外部メモリ６６上の出力データを制御回路（２）６５によって、バスインターフェース６１を介してデータバス４に出力する。
【００６２】
ここで、データバス４上のデータ転送はできるだけ大量のデータを一括して連続転送すると、高速な転送ができる。従って、以上説明したように、ＣＰＵ１とＳＩＭＤ型プロセッサ６３との間のデータ転送を外部メモリ６６を介して一括して処理しているため、更に高速処理が可能となる。
【００６３】
図９に、本発明の他の実施形態に係るマッチング部の構成を示す。本実施形態（実施形態３）に係るマッチング部は、バスインターフェース６１と、ＳＩＭＤ型プロセッサ６３と、外部メモリ６６と、制御回路（３）６７と、から構成される。
【００６４】
バスインターフェース６１は、データバス４経由でデータ（プログラムデータも含む）の送受信を制御する。外部メモリ６６は、ＳＩＭＤ型プロセッサ６３の入出力データとプログラムを記憶する。制御回路（３）６７は、バスインターフェース６１と外部メモリ６６とＳＩＭＤ型プロセッサ６３との間のデータ入出力とＳＩＭＤ型プロセッサ６３で実行するプログラムの入力や起動を制御する。ＳＩＭＤ型プロセッサ６３は、辞書データと未知文字の特徴量を入力し、未知文字の認識候補を複数個、辞書データから選出するマッチング処理を行う。
【００６５】
以下に、本実施形態に係るマッチング部でのデータの入出力とプログラムの入力と起動の手順を説明する。まず、データバス４からの入力データである辞書データと未知文字データとＳＩＭＤ型プロセッサ６３で実行するプログラム（プログラム（ｂ））を、バスインターフェース６１を介して、制御回路（３）６７によって外部メモリ６６に記憶する。
【００６６】
次に、制御回路（３）６７によって、外部メモリ６６上のプログラム（ｂ）をＳＩＭＤ型プロセッサ６３に入力し起動する。その後、制御回路（３）６７によって外部メモリ６６上の辞書データと未知文字データをＳＩＭＤ型プロセッサ６３に入力する。そして、ＳＩＭＤ型プロセッサ６３の出力データ（最小距離選出結果）を制御回路（３）６７によって外部メモリ６６に記憶する。そして、外部メモリ６６上の出力データを制御回路（３）６７によって、バスインターフェース６１を介してデータバス４に出力する。
【００６７】
以上説明したように、ＣＰＵ１とＳＩＭＤ型プロセッサ６３との間のデータ転送とプログラムの転送とを外部メモリ６６を介して一括して処理しているため、更に高速処理が可能となる。
【００６８】
図１０に、本発明の他の実施形態に係る文字認識装置１０とサーバー１１から構成される文字認識システムの全体構成図を示す。本実施形態（実施形態４）に係る文字認識装置１０は、図１に示す文字認識装置に対して、更にネットワークインターフェース９を備え、ネットワーク１２によってサーバー１１と接続していることを特徴とする。
【００６９】
サーバー１１は、プログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データとを保存する。本実施形態に係る文字認識装置１０は、サーバー１１からネットワーク１２経由でプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データとを受信し、ハードディスクドライブ３に保存する。その後は、上記図１に示す文字認識装置と同様に、文字認識を行う。
【００７０】
文字認識のソフトウェア（プログラムと辞書データ）の更新があった場合、サーバー１１上のプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データとは、更新して保存される。そして、ハードディスクドライブ３上のプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データと、サーバー１１上のプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データとのバージョンを比較して、ハードディスクドライブ３上のプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データのバージョンが、サーバー１１上のプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データとのバージョンより古い場合、本実施形態に係る文字認識装置は、ネットワーク１２経由でサーバー１１から新しいバージョンのプログラム（ａ）とプログラム（ｂ）とプログラム（ｃ）と辞書データを取得する。
【００７１】
上記、サーバー１１上のプログラム等とのバージョン比較処理を、例えば、文字認識装置の起動時や、一定期間毎に実行する。これにより、文字認識のソフトウェアの更新を自動化できる。
【００７２】
なお、上述した各実施形態は、本発明の好適な実施形態であり、上記各実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
【００７３】
例えば、上述した実施形態における制御動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【００７４】
なお、ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００７５】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭ（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＭＯ（Magneto optical）ディスク，ＤＶＤ（Digital Versatile Disc）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。
【００７６】
このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。
【００７７】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送したりし、コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【００７８】
また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【００７９】
また、上記実施形態で説明したシステムは、複数の装置の論理的集合構成にしたり、各装置の機能を混在させたりするように構築することも可能である。
【符号の説明】
【００８０】
１    ＣＰＵ
２    メモリ
３    ハードディスクドライブ
４    データバス
５    スキャナ
６    マッチング部
７    ユーザーインターフェース
８    出力部
９    ネットワークインターフェース
１０    文字認識装置
１１    サーバー
１２    ネットワーク
６１    バスインターフェース
６２    制御回路（１）
６３    ＳＩＭＤ型プロセッサ
６５    制御回路（２）
６６    外部メモリ
６７    制御回路（３）
６３１    データインターフェース
６３２    内部プロセッサ
６３３    内蔵メモリ
６３４    レジスタ
６３５    グローバルプロセッサ
６３６    プログラムメモリ
６３７    データメモリ
６３８    ホストインターフェース
【先行技術文献】
【特許文献】
【００８１】
【特許文献１】特開２００１−１２６０３０号公報
【特許文献２】特開２００７−２５７０２０号公報
【特許文献３】特開２００２−２２９９６２号公報
【図１】
2010211402.tif 000003
【図２】
2010211402.tif 000004
【図３】
2010211402.tif 000005
【図４】
2010211402.tif 000006
【図５】
2010211402.tif 000007
【図６】
2010211402.tif 000008
【図７】
2010211402.tif 000009
【図８】
2010211402.tif 000010
【図９】
2010211402.tif 000011
【図１０】
2010211402.tif 000012