(57)【要約】【課題】  符号化効率を高く保ちながら、符号化による入力パターンの置換え誤りを少なくする。【解決手段】  画像符号化装置は、画像データより入力パターンを抽出するための入力パターン抽出器３０５と、抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から１つの代表パターンを抽出するための代表パターン抽出器３１１と、代表パターンの画像を圧縮するための代表パターン画像圧縮器３１８と、入力パターンの座標位置を圧縮するための入力パターン情報圧縮器３１７とを含む。【選択図】        図１
2005006353.tif 000002
【特許請求の範囲】
【請求項１】
画像データより入力パターンを抽出するための入力パターン抽出手段と、
前記入力パターン抽出手段によって抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から代表パターンを抽出するための代表パターン抽出手段と、
前記代表パターンの画像および前記入力パターンの座標位置を出力するための出力手段とを含む、画像符号化装置。
【請求項２】
画像データより入力パターンを抽出するための入力パターン抽出手段と、
前記入力パターン抽出手段によって抽出された入力パターンの各々について、当該入力パターンに類似する入力パターンに類似する入力パターンを、当該入力パターンに類似する入力パターンとするための類似拡大手段と、
前記類似拡大手段によって相互に類似すると判断された入力パターンの中から代表パターンを抽出するための代表パターン抽出手段と、
前記代表パターンの画像および前記入力パターンの座標位置を出力するための出力手段とを含む、画像符号化装置。
【請求項３】
画像データより入力パターンを抽出するステップと、
抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から代表パターンを抽出するステップと、
前記代表パターンの画像および前記入力パターンの座標位置を出力するステップとを含む、画像符号化方法。
【請求項４】
画像データより入力パターンを抽出するステップと、
抽出された入力パターン同士を比較し、入力パターンの各々について、当該入力パターンに類似する入力パターンに類似する入力パターンを、当該入力パターンに類似する入力パターンとするステップと、
相互に類似する入力パターンの中から、代表パターンを抽出するステップと、
前記代表パターンの画像および前記入力パターンの座標位置を出力するステップとを含む、画像符号化方法。
【請求項５】
請求項３または請求項４に記載の画像符号化方法で符号化されたデータより、画像を復号する画像復号方法であって、
符号化されたデータより代表パターンの画像および入力パターンの座標位置を抽出するステップと、
入力パターンの座標位置に当該入力パターンを代表する代表パターンを貼付けるステップとを含む、画像復号方法。
【請求項６】
コンピュータで実行可能な画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記画像符号化方法は、
画像データより入力パターンを抽出するステップと、
抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から代表パターンを抽出するステップと、
前記代表パターンの画像および前記入力パターンの座標位置を出力するステップとを含む、コンピュータ読取可能な記録媒体。
【請求項７】
コンピュータで実行可能な画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記画像符号化方法は、
画像データより入力パターンを抽出するステップと、
抽出された入力パターン同士を比較し、入力パターンの各々について、当該入力パターンに類似する入力パターンに類似する入力パターンを、当該入力パターンに類似する入力パターンとするステップと、
相互に類似する入力パターンの中から、代表パターンを抽出するステップと、
前記代表パターンの画像および前記入力パターンの座標位置を出力するステップとを含む、コンピュータ読取可能な記録媒体。
【請求項８】
コンピュータで実行可能な画像復号方法のプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記画像復号方法は、
請求項３または請求項４に記載の画像符号化方法で符号化されたデータより、画像を復号する画像復号方法であって、
符号化されたデータより代表パターンの画像および入力パターンの座標位置を抽出するステップと、
入力パターンの座標位置に当該入力パターンを代表する代表パターンを貼付けるステップとを含む、コンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法および画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体、ならびに画像復号方法および画像復号方法のプログラムを記録したコンピュータ読取可能な記録媒体に関する。特に、符号化効率を高く保ちながら、符号化による入力パターンの置換え誤りを少なくした画像符号化装置、画像符号化方法および画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体、ならびに画像復号方法および画像復号方法のプログラムを記録したコンピュータ読取可能な記録媒体に関する。
【背景技術】
【０００２】
従来、文書画像を符号化する代表的な方法として、文字認識技術を用いて、文字部分を文字コードとして符号化する方法と、通常の画像データを符号化するのと同様に符号化する方法とがある。
【０００３】
文字認識技術を用いる方法では、符号化後のデータ容量が小さくなるという特徴を有する。しかし、性能の向上は見られるものの、文字の認識誤りをゼロにすることはできない。このため、誤った符号化が行なわれると、復号時に、画像に含まれる文章の理解に支障をきたすことも起こり得る。
【０００４】
一方、通常の画像と同様に符号化する方法は、一般に良く知られている画像圧縮の方法をそのまま文書画像に適用するものである。この方法では、極端な画質の低下が起きない限り、文章の理解に支障をきたすようなことは起こりにくい。しかし、文字認識技術を用いる場合に比べ、符号化後のデータ容量が大きくなってしまう。
【０００５】
両者の欠点をカバーするため、相互に類似する複数のパターンを単一のパターンで代表させ、代表パターン、代表パターンの識別コードおよび代表パターンで代表されるパターンの出現位置のみを符号化する方法が以前より提案されている。この符号化方法については、「R.N.Ascher et al. "A Means for Achieving a High Degree of Compaction on Scan-Digitized Printed Text", IEEE Transactions on Computers, vol.c-23, No.11, November 1974」（非特許文献１）などに詳しく開示されている。
【０００６】
ここでいうパターンとは、文書画像の符号化においては多くの場合文字に対応している。このため、代表パターン自身の符号化データのデータ容量を別にすれば、符号化データのデータ容量は、理想的には画像中の各文字の識別コードと、それに対応する位置情報とを表わすのに必要なデータ量で済むことになる。
【０００７】
また、この方法は、パターンマッチング方式を用いた文字認識技術において、標準パターンを入力画像から抽出したものと考えることもできる。
【０００８】
この方法では、文字認識技術を用いた場合ほどは、認識誤りが問題にならない。なぜならば、この方法では、パターンが類似しているか否かを判断するだけでよく、文字認識のようにパターンが本当は「何」であるかを正確に判断する必要がないからである。また、パターンマッチング方式を用いた文字認識と比較した場合、標準パターンに相当するパターンを入力画像自身より抽出している。このため、入力画像内に特殊なフォントの文字が含まれていても、そのこと自体が符号化の障害になることはない。
【０００９】
このように代表パターン等を符号化する方法は比較的優れた性質を持つ。それにも関わらず、広範に使われていないのが現状である。
【００１０】
この原因として、符号化が難しいことが挙げられる。これは入力パターンの置換え誤り、すなわち、入力パターンを誤った代表パターンで置換えてしまう誤りを少なくするように制御することが難しいためである。
【００１１】
図４６を参照して、入力パターンの置換え誤りの一例について説明する。図４６（ａ）は、入力画像を示し、図４６（ｂ）は、入力画像を符号化し、復号化した後の画像である。図４６（ａ）の入力画像には、「ス」と「ヌ」、「沢」と「択」および「ポ」と「ボ」というそれぞれ類似した３組のパターンが存在する。このような場合には、入力パターンの置換え誤りが生じ易く、図４６（ｂ）に示すように、「ス」、「択」および「ポ」がそれぞれ本来置換えられるべきではない「ヌ」、「沢」および「ボ」を表すパターンに置換えられてしまっている。これは、入力パターンのクラスタリングが不適切なために生じる。
【００１２】
図４７〜図５２を参照して、各入力パターン（文字）を２次元平面上の点として表現する。この図は入力パターンの入力画像上での位置を示しているのではなく、入力パターンの特徴を抽出し作成された特徴ベクトルのパターン空間（特徴ベクトル空間）上での位置を模式的に示している。なお、図４７〜図５２では、特徴ベクトルを２次元平面上の点として表現しているが、特徴量が３つ以上ある場合には、パターン空間は３以上の次元数を有する。
【００１３】
図４７を参照して、２種類の文字を表わす入力パターンをそれぞれパターン１０２（「○」印）およびパターン１０４（「△」印）で表わす。
【００１４】
ここでは、代表パターンは、入力パターンから選び出される。たとえば、パターン空間内でユークリッド距離が一定の範囲内にある入力パターンが１つのクラスに分類され、そのクラスを代表する代表パターンが選び出される。たとえば、図４８を参照して、パターン１０２および１０４は３つの円１１２、１１４および１１６で表わされるクラスに分類され、３つのクラスを代表する代表パターンとして、パターン１０６、１０８および１１０がそれぞれ選び出される。なお、代表パターンの抽出方法は、ユークリッド距離に基づきクラスタリングする方法には限定されない。入力パターンの正しい置換えとは、各代表パターンがすべて同じ文字を表わす入力パターンから選び出されることを意味する。図４８は、入力パターンの正しい置換えが行なわれる理想的なクラスタリングの例を示している。
【００１５】
３つの円１１２、１１４および１１６は、それぞれパターン１０６、１０８および１１０を中心とし半径が一定の円である。円内のパターンは、符号化時に代表パターンで置換えられる。この時、同一種類の入力パターンが必ずしも１つの代表パターンで代表されるとは限らない。図４８に示すようにパターン１０２は、２つの円１１２および１１４内に含まれる。このため、パターン１０２は２つのパターン１０６および１０８で代表される。
【００１６】
円の直径、すなわち同一のクラスに属するとみなされる代表パターンと入力パターンとの間のユークリッド距離を大きくすると、図４９のように、すべての入力パターンが円１１８に含まれ、１つのクラスにクラスタリングされてしまう。このため、異なる種類のパターン１０２および１０４が同一の代表パターン１２０で代表されてしまい、図４６（ｂ）に示したような入力パターンの置換え誤りが生じてしまう。
【００１７】
上述のようにクラスタリングする際の円の直径を大きくすれば、入力パターンの置換え誤りが生じやすく、円の直径を小さくすれば、置換え誤りは生じにくくなる。このため、円の直径を小さくすれば良いように思われる。
【００１８】
しかし、図５０に示すように、円の直径を限りなく０に近づけると、置換え誤りは起こらないものの、入力パターンと代表パターンとが一対一に対応してしまう。このため、代表パターンを用いて入力パターンの符号化を行なったとしても、入力パターンそのものを符号化した場合と変わりはなく、データ量の削減にはつながらない。
【００１９】
このように、データ量の削減と入力パターンの置換え誤りの減少とはトレードオフの関係にある。
【００２０】
特開平８−３０７９４号公報（特許文献１）には、以下に説明するような入力パターンから代表パターンを抽出する方法が開示されている。すなわち、入力パターンおよび代表パターン以外に登録パターンと呼ばれるパターンが用意される。始めに入力パターンの中から登録パターンが１つ選択され、登録パターンと入力パターンとが順次照合される。登録パターンが入力パターンと類似していれば、その登録パターンと入力パターンとの平均を求めることにより求められたパターン、または予め定められた基準に基づいて登録パターンまたは入力パターンの中から選択されたパターンが新たな登録パターンとされる。登録パターンに類似する入力パターンが同じクラスにクラスタリングされる。
【００２１】
いずれの登録パターンにも類似しない入力パターンが発生した場合には、その入力パターンが新たな登録パターンとされ、同様の処理が行なわれる。このような処理が、入力パターンがいずれかのクラスにクラスタリングされるまで行なわれ、処理終了時点の登録パターンが代表パターンとされる。
【特許文献１】特開平８−３０７９４号公報
【非特許文献１】R.N.Ascher et al. "A Means for Achieving a High Degree of Compaction on Scan-Digitized Printed Text", IEEE Transactions on Computers, vol.c-23, No.11, November 1974
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかしながら、しかし、このような代表パターンの登録方法を用いたとしても、入力パターンのクラスタリング方法は、上記した方法と同様である。このため、データ量の削減と入力パターンの置換え誤りの減少とを両立させることが困難である。
【００２３】
たとえば、図５１を参照して、入力パターン２０１を登録パターンとして入力パターンの置換え誤りが生じないようにクラスタリングしようとすると、入力パターン２０２は同一のクラスに属するが、入力パターン２０３は別のクラスに属することになる。このため、代表パターンの数が増えてしまう。
【００２４】
図５２を参照して、逆に、パターン１０２を１つの代表パターンで表わそうとすると、パターン１０４の入力パターン２０４などが同一のクラスに属し、入力パターンの置換え誤りが生じてしまう。
【００２５】
また、日本語など、複数の連結成分からなる文字を多く含む言語の文書画像の処理には、特別な注意が必要となる。前掲の特開平８−３０７９４号公報では、連結成分を入力パターンとしており、入力パターンが同一の文字から取出されたものであるか、異なる文字から取出されたものであるかは考慮されていない。そのため、復号画像上で、いわゆる分離文字を構成する複数の連結成分が、符号化時に、異なる文字から取出された代表パターンで置換えられることはあり得ることである。ところが、このような代表パターンのもととなった文字の書体が異なる場合など、復号画像上では著しい違和感を引き起こすことになる。たとえば、図５３を参照して、明朝体で書かれた「体」の人偏（左側の部分）とゴシック体で書かれた「林」の旁（右側の部分）とをそれぞれ代表パターンとし、同一紙面上のゴシック体の「休」を符号化したとする。この場合、復号画像では、「休」は、偏部分が明朝体、旁部分がゴシック体の書体から取られたものとなり、違和感がはなはだしい。これを防ぐためには、従来、代表パターンが入力パターンを置換える条件を厳しくするしかなく、このことは上述のように代表パターンの数を増やし、符号化効率を低下させることになる。
【００２６】
本発明は、上述の課題を解決するためになされたもので、その目的は、符号化効率を高く保ちながら、符号化による入力パターンの置換え誤りを少なくした画像符号化装置を提供することである。
【００２７】
本発明の他の目的は、符号化効率を保ちながら、分離文字の符号化字の違和感を防止することである。
【課題を解決するための手段】
【００２８】
上記の課題を解決するために、この発明のある局面に従うと、画像符号化装置は、画像データより入力パターンを抽出するための入力パターン抽出手段と、入力パターン抽出手段によって抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から代表パターンを抽出するための代表パターン抽出手段と、代表パターンの画像および入力パターンの座標位置を出力するための出力手段とを含む。
【００２９】
上記の構成を有する画像符号化装置によると、入力パターンを部分的に比較することにより、全体的に見れば類似しているが、部分的に見れば類似していない文字を峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【００３０】
この発明の他の局面に従うと、画像符号化装置は、画像データより入力パターンを抽出するための入力パターン抽出手段と、入力パターン抽出手段によって抽出された入力パターンの各々について、当該入力パターンに類似する入力パターンに類似する入力パターンを、当該入力パターンに類似する入力パターンとするための類似拡大手段と、類似拡大手段によって相互に類似すると判断された入力パターンの中から代表パターンを抽出するための代表パターン抽出手段と、代表パターンの画像および入力パターンの座標位置を出力するための出力手段とを含む。
【００３１】
上記の構成を有する画像符号化装置によると、入力パターンの類似範囲を連鎖的に拡大することにより、入力パターンを表わす代表パターンの個数を減少させることができる。このため、符号化効率を高く保つことができる。
【００３２】
この発明の他の局面に従うと、画像符号化方法は、画像データより入力パターンを抽出するステップと、抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から代表パターンを抽出するステップと、代表パターンの画像および入力パターンの座標位置を出力するステップとを含む。
【００３３】
上記の構成を有する画像符号化方法によると、入力パターンを部分的に比較することにより、全体的に見れば類似しているが、部分的に見れば類似していない文字を峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【００３４】
この発明の他の局面に従うと、画像符号化方法は、画像データより入力パターンを抽出するステップと、抽出された入力パターン同士を比較し、入力パターンの各々について、当該入力パターンに類似する入力パターンに類似する入力パターンを、当該入力パターンに類似する入力パターンとするステップと、相互に類似する入力パターンの中から、代表パターンを抽出するステップと、代表パターンの画像および入力パターンの座標位置を出力するステップとを含む。
【００３５】
この発明の他の局面に従うと、画像復号方法は、上記の画像符号化方法で符号化されたデータより、画像を復号する。この画像復号方法は、符号化されたデータより代表パターンの画像および入力パターンの座標位置を抽出するステップと、入力パターンの座標位置に当該入力パターンを代表する代表パターンを貼付けるステップとを含む。
【００３６】
上記の構成を有する画像復号方法によると、入力パターンの座標位置に代表パターンを順次貼付けるだけで画像が作成できる。このため、高速に画像を復元することができる。
【００３７】
この発明の他の局面に従うと、記録媒体は、コンピュータで実行可能な画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体である。画像符号化方法は、画像データより入力パターンを抽出するステップと、抽出された入力パターン同士を、入力パターンを構成する部分ごとに比較し、相互に類似する入力パターンの中から代表パターンを抽出するステップと、代表パターンの画像および入力パターンの座標位置を出力するステップとを含む。
【００３８】
上記の記録媒体により、コンピュータは、入力パターンを部分的に比較することにより、全体的に見れば類似しているが、部分的に見れば類似していない文字を峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【００３９】
この発明の他の局面に従うと、記録媒体は、コンピュータで実行可能な画像符号化方法のプログラムを記録したコンピュータ読取可能な記録媒体である。画像符号化方法は、画像データより入力パターンを抽出するステップと、抽出された入力パターン同士を比較し、入力パターンの各々について、当該入力パターンに類似する入力パターンに類似する入力パターンを、当該入力パターンに類似する入力パターンとするステップと、相互に類似する入力パターンの中から、代表パターンを抽出するステップと、代表パターンの画像および入力パターンの座標位置を出力するステップとを含む。
【００４０】
この発明のさらに他の局面に従うと、記録媒体は、コンピュータで実行可能な画像復号方法のプログラムを記録したコンピュータ読取可能な記録媒体である。画像復号方法は、上記の画像符号化方法で符号化されたデータより、画像を復号する方法である。この画像復号方法は、符号化されたデータより代表パターンの画像および入力パターンの座標位置を抽出するステップと、入力パターンの座標位置に当該入力パターンを代表する代表パターンを貼付けるステップとを含む。
【００４１】
上記の記録媒体によると、コンピュータは、入力パターンの座標位置に代表パターンを順次貼付けるだけで画像が作成できる。このため、高速に画像を復元することができる。
【発明の効果】
【００４２】
入力パターンを部分的に比較することにより、全体的に見れば類似しているが、部分的に見れば類似していない文字を峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【００４３】
また、ループの個数を検出することにより、部分的に見ても類似しているが、異なる文字を正確に峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【００４４】
さらに、入力パターンの類似範囲を連鎖的に拡大することにより、入力パターンを表わす代表パターンの個数を減少させることができる。このため、符号化効率を高く保つことができる。
【００４５】
さらにまた、代表パターンとして画像データより切出された文字を使用している。このため、入力パターンを文字認識して文字のコードで代表パターンを表わす場合のように、文字認識による入力パターンの置換え誤りが発生しない。
【００４６】
画像復号時には、入力パターンの座標位置に代表パターンを順次貼付けるだけで画像が作成できる。このため、高速に画像を復元することができる。
【発明を実施するための最良の形態】
【００４７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００４８】
図１を参照して、本発明の実施の形態に係る画像符号化装置は、紙面をスキャンして画像を取込むスキャナ３０３と、スキャナ３０３に接続され、スキャナ３０３に順次紙面を自動給紙するオートフィーダ３０１と、オートフィーダ３０１に接続され、スキャナ３０３に給紙している紙面のページ数をカウントするカウンタ３０２と、スキャナ３０３に接続され、スキャナ３０３で取込まれた画像を記憶する画像データバッファ３０４とを含む。
【００４９】
画像符号化装置は、さらに、画像データバッファ３０４に接続され、各ページごとに２値化しきい値を算出する２値化しきい値算出器３０７と、２値化しきい値算出器３０７に接続され、ページごとに２値化しきい値を１次元配列として記憶する２値化しきい値バッファ３０８と、画像データバッファ３０４および２値化しきい値バッファ３０８に接続され、画像より入力パターンを抽出する入力パターン抽出器３０５とを含む。
【００５０】
画像符号化装置は、さらに、入力パターン抽出器３０５に接続され、現在処理中の画像のページ数をカウントするページカウンタ３０６と、入力パターンの画像を格納する入力パターン画像バッファ３０９と、入力パターン抽出器３０５に接続され、入力パターンの横幅および縦幅を格納する入力パターン情報バッファ３１０と、入力パターン画像バッファ３０９および入力パターン情報バッファ３１０に接続され、入力パターンを代表する代表パターンを抽出する代表パターン抽出器３１１とを含む。
【００５１】
画像符号化装置は、さらに、代表パターン抽出器３１１、入力パターン画像バッファ３０９および入力パターン情報バッファ３１０に接続され、代表パターンと入力パターンとを対応付けるための整数配列を格納する代表パターンラベルバッファ３１２と、代表パターン抽出器３１１および代表パターンラベルバッファ３１２に接続され、代表パターンの画像を格納する代表パターン画像バッファ３１３と、代表パターン抽出器３１１に接続され、代表パターンの横幅および縦幅を格納する代表パターン情報バッファ３１４とを含む。
【００５２】
画像符号化装置は、さらに、代表パターン情報バッファ３１４に接続され、代表パターンを圧縮する代表パターン情報圧縮器３１５と、代表パターン画像バッファ３１３に接続され、代表パターン画像バッファ３１３に格納された代表パターンの画像を減色する代表パターン画像減色器３１６と、入力パターン情報バッファ３１０および代表パターンラベルバッファ３１２に接続され、カウンタ３０２に格納されているページ数の情報、入力パターン情報バッファ３１０に格納された情報および代表パターンラベルバッファ３１２に格納された情報を、混合および圧縮する入力パターン情報圧縮器３１７とを含む。
【００５３】
画像符号化装置は、さらに、代表パターン情報圧縮器３１５および入力パターン情報圧縮器３１７に接続され、代表パターンの情報、代表パターンの画像および入力パターンの情報の圧縮データを１つの符号化データに連結するデータ混合器３１９と、代表パターン画像減色器３１６およびデータ混合器３１９に接続され、代表パターン画像減色器３１６に接続され、代表パターン画像減色器３１６で減色された代表パターンを圧縮する代表パターン画像圧縮器３１８と、データ混合器３１９に接続され、文書画像を符号化したデータを格納する符号化データバッファ３２０とを含む。
【００５４】
図２を参照して、入力パターン抽出器３０５は、画像データバッファ３０４に接続され、画像データバッファ３０４に格納された画像から文字要素を抽出する文字要素抽出部７０１と、文字要素抽出部７０１に接続され、文字要素抽出部７０１で抽出された文字要素を格納する文字要素バッファ７０２と、文字要素バッファ７０２に接続され、画像内の文字列の方向を判定する文字列方向判定部７０３と、文字列方向判定部７０３に接続され、文字列の方向を格納する文字列方向情報フラグ７１３とを含む。
【００５５】
入力パターン抽出器３０５は、さらに、文字要素バッファ７０２および文字列方向情報フラグ７１３に接続され、画像中より文字列を抽出する文字列抽出部７０５と、文字列抽出部７０５に接続され、抽出された文字列の番号と文字要素とが１対１に対応付けられた整数配列を記憶する文字列情報バッファ７０６と、文字要素バッファ７０２、文字列抽出部７０５および文字列情報バッファ７０６に接続され、文字列を文字の候補に分割する個別文字抽出部７０７とを含む。
【００５６】
入力パターン抽出器３０５は、さらに、個別文字抽出部７０７に接続され、文字の候補の外接矩形の座標を格納する個別文字情報バッファ７０８と、文字列の数をカウントする文字列カウンタ７０９と、文字の数をカウントする文字カウンタ７１０と、ある文字列内の文字の数をカウントする文字列内文字カウンタ７１１と、２値化しきい値バッファ３０８、個別文字抽出部７０７、文字列カウンタ７０９、文字カウンタ７１０、個別文字情報バッファ７０８、文字列内文字カウンタ７１１、２値化しきい値バッファ３０８および２値化しきい値算出器３０７に接続され、文字標準パターン７１２と文字列より抽出された文字との比較を行なう文字マッチング部７０４とを含む。
【００５７】
図３を参照して、代表パターン抽出器３１１は、入力パターンに対応する画像に含まれる輪形状をした部分（ループ）の数を検出するループ検出器１００１と、ループの数を記憶するループ数バッファ１００２と、入力パターンの数をカウントする第１カウンタ１００３と、入力パターンの数をカウントする第２カウンタ１００４と、入力パターン同士を比較するパターン比較器１００５と、ループ検出器１００１、ループ数バッファ１００２、第１カウンタ１００３、第２カウンタ１００４およびパターン比較器１００５に接続され、接続された機器を制御するコントローラ１０００とを含む。
【００５８】
図４を参照して、ループ検出器１００１は、現在処理中の入力パターンの番号を示す第１カウンタ１３０１と、入力パターンに含まれる連結成分の外接矩形を抽出する連結成分外接矩形抽出器１３０２と、連結成分の外接矩形の座標などを記憶する連結成分外接矩形情報バッファ１３０３と、連結成分の数をカウントする第２カウンタ１３０４と、第１カウンタ１３０１、連結成分外接矩形抽出器１３０２、連結成分外接矩形情報バッファ１３０３および第２カウンタ１３０４に接続され、接続された機器を制御するコントローラ１３００とを含む。
【００５９】
図５を参照して、パターン比較器１００５は、入力パターンより特徴量を抽出し、特徴ベクトルに変換するベクトル変換器１６０１と、特徴ベクトルの正規化を行なうベクトル正規化器１６０２と、特徴ベクトルの正準化を行なうベクトル正準化器１６０３と、特徴ベクトルの内積計算を行なう内積計算器１６０４と、部分ベクトルの数をカウントするカウンタ１６０５と、特徴ベクトルより部分ベクトルを作成する部分ベクトル作成器１６０６と、ベクトル変換器１６０１、ベクトル正規化器１６０２、ベクトル正準化器１６０３、内積計算器１６０４、カウンタ１６０５および部分ベクトル作成器１６０６に接続され、接続された機器を制御するコントローラ１６００とを含む。
【００６０】
画像符号化装置では、複数枚の紙面をオートフィーダ付きスキャナで入力することを想定しているが、本発明がこれに限られるものでない。
【００６１】
図６を参照して、画像符号化装置で作成された符号化データを画像に復号する画像復号装置は、符号化されたデータを格納する符号化データバッファ２２０１と、符号化データバッファ２２０１に接続され、符号化されたデータを代表パターン情報、代表パターン画像および入力パターン情報に分離するデータ分離器２２０２と、データ分離器２２０２に接続され、代表パターン情報を伸張する代表パターン情報伸長器２２０３とを含む。
【００６２】
画像復号装置は、さらに、代表パターン情報伸長器２２０３に接続され、伸張された代表パターン情報を格納する代表パターン情報バッファ２２０６と、データ分離器２２０２に接続され、代表パターン画像を伸張する代表パターン画像伸長器２２０４と、代表パターン画像伸長器２２０４に接続され、伸張された代表パターン画像を格納する代表パターン画像バッファ２２０７と、データ分離器２２０２に接続され、圧縮された入力パターン情報を格納する入力パターン圧縮情報バッファ２２０５と、画素値を変換するためのテーブルが格納されている画素値変換テーブル２２０９とを含む。
【００６３】
画像復号装置は、さらに、代表パターン画像バッファ２２０７および画素値変換テーブル２２０９に接続され、代表パターンの画素値を変換する代表パターン画素値変換器２２０８と、代表パターン情報バッファ２２０６に接続され、代表パターン情報バッファ２２０６に格納されたデータより、代表パターンの画像の代表パターン画像バッファ２２０７での記憶位置を生成する代表パターン画像オフセット生成器２２１０と、代表パターン画像オフセット生成器２２１０に接続され、代表パターンの番号とオフセット値とが対応付けられた整数配列を格納する代表パターン画像オフセットテーブル２２１１とを含む。
【００６４】
画像復号装置は、さらに、入力パターン圧縮情報バッファ２２０５に接続され、各ページデータの入力パターン圧縮情報バッファ２２０５中での位置を表わすオフセットを生成する入力パターン情報オフセット生成器２２１２と、入力パターン情報オフセット生成器２２１２に接続され、ページ番号とオフセットとが対応付けられた整数配列を記憶する入力パターン情報オフセットテーブル２２１３と、ページの数をカウントするページカウンタ２２１４と、入力パターン圧縮情報バッファ２２０５に接続され、入力パターン情報を伸張する入力パターン情報伸長器２２１７とを含む。
【００６５】
画像復号装置は、さらに、入力パターン情報伸長器２２１７に接続され、入力パターン情報を格納する入力パターン情報バッファ２２１８と、入力パターンの数をカウントする入力パターンカウンタ２２１９と、ページごとに画像を格納するページ画像バッファ２２１５と、ページ画像バッファ２２１５に接続され、ページ画像バッファ２２１５に格納される画像の画素値を初期化するページ画像バッファ初期化器２２１６とを含む。
【００６６】
画像復号装置は、さらに、ページ画像バッファ２２１５に接続され、ページ画像バッファ２２１５に格納された画像を表示する表示装置２２２１と、代表パターン画像オフセットテーブル２２１１、入力パターン情報バッファ２２１８、入力パターンカウンタ２２１９、ページ画像バッファ２２１５、代表パターン画像バッファ２２０７、代表パターン画素値変換器２２０８、画素値変換テーブル２２０９および入力パターン情報オフセットテーブル２２１３に接続され、代表パターンのサイズを入力パターンのサイズと等しくする画素密度変換器２２２０とを含む。
【００６７】
図７を参照して、画像符号化処理について詳細に説明する。以下、文書の各紙面を指し示すのに、「ページ」という表現を用いる。また、配列の要素番号またはページ数は、特に断りがない限り０から始まるものとする。さらに、ループ変数ｉ，ｊおよびｋを異なる部分の動作の説明に繰り返し用いるが、動作が異なれば、特に記述がない限り相互に無関係である。
【００６８】
オートフィーダ３０１はカウンタ３０２を０にクリアする（ステップＳ（以下、「ステップ」を省略する。）４０１）。カウンタの値をｉとすると、スキャナ３０３はｉ番目のページをスキャンして、取込まれた画像を画像データバッファ３０４に格納する（Ｓ４０２）。画像データバッファ３０４に格納されるデータの一例を図８に示す。
【００６９】
画像データバッファ３０４に格納される画像は１ピクセルが１バイトで表現された２５６階調の濃淡画像とする。オートフィーダ３０１はカウンタ３０２を１だけインクリメントする（Ｓ４０３）、カウンタ３０２の値がページ数と等しくなければ（Ｓ４０４でＮＯ）、スキャンされていないページ（ｉ番目のページ）が存在することを意味するので、Ｓ４０２以降の処理を繰り返す。
【００７０】
カウンタ３０２の値がページ数と等しくなると（Ｓ４０４でＹＥＳ）、入力パターン抽出器３０５はページカウンタ３０６を０にクリアする（Ｓ４０５）。２値化しきい値算出器３０７は、ページカウンタ３０６が指し示すページの画像を画像データバッファ３０４から取り出し、最適な２値しきい値を算出し、２値化しきい値バッファ３０８に格納する（Ｓ４０６）。２値化しきい値は、後述する入力パターンの抽出処理に用いられる。２値化しきい値算出器３０７は、各ページ画像毎に、文字領域と背景領域の間の分散（いわゆる群間分散）が最大になるように２値化しきい値を定める。群間分散を用いた２値化しきい値算出方法については、例えば、長尾「画像認識論」（コロナ社、１９８３年）４３ページに詳しく開示されている。なお、２値化しきい値の算出方法はこれに限られるものではない。２値化しきい値が入力パターンの抽出処理に必要なければ、Ｓ４０６は省略しても良い。
【００７１】
２値化しきい値バッファ３０８は、各ページに１対１対応する配列からなっており、ページごとに最適な２値化しきい値を格納している。ここでは２値化しきい値より小さな画素値を持つ画素を非背景画素、すなわち着目画素とする。２値化しきい値バッファ３０８に記憶された配列ＴＨのｉ番目の要素をＴＨ［ｉ］とすれば、ｉ番目のページに含まれる着目画素は、式（１）を満たす画素である。
０≦画素値＜ＴＨ［ｉ］…（１）
ここでは、画像データバッファ３０４に格納されている画像を２５６階調の濃淡画像としているが、それ以外の場合についての処理方法について付言しておく。入力画像がカラーの場合には、たとえば輝度成分のみについて２値化しきい値を算出する。
【００７２】
また、入力画像が２値画像の場合には、しきい値処理を行なわなくても非背景画素と背景画素の区別は自明であるから、Ｓ４０６は省略可能である。
【００７３】
入力パターン抽出器３０５は、式（１）に基づいて、ページカウンタ３０６が示すページの画像の２値化処理を行なう。その後、２値画像より入力パターンの抽出を行なう（Ｓ４０７）。ここでいう入力パターンとは、紙面内に類似したものが多数存在すると考えられる小領域を指す。
【００７４】
図９を参照して、入力画像の一部分を拡大したところ、「あかい川」と、文字ではないが文字とほぼ類似した大きさを持つ人の顔に似た図形が存在しているものとする。この部分から黒画素（文字領域画素）の連結成分を求め、入力パターンを抽出すると、図１０のようになる。すなわち、文字列「あかい川」およびそれに続く図形より、１２個の入力パターンが得られる。
【００７５】
同じ部分より文字を切出し、入力パターンを求めると図１１のようになる。すなわち、文字列「あかい川」およびそれに続く図形より５個の入力パターンが得られる。以下の説明では、図１１に示すように、文字を入力パターンとして説明するが、文字に限られるものではない。
【００７６】
入力パターン抽出器３０５はページカウンタ３０６を１つインクリメントする（Ｓ４０８）。ページカウンタ３０６の指し示す値がページ数と一致していなければ（Ｓ４０９でＮＯ）、すべてのページについて入力パターンを抽出するまでＳ４０６以降の処理を繰返す。
【００７７】
ページカウンタ３０６の指し示す値がページ数と一致していれば（Ｓ４０９でＹＥＳ）、代表パターン抽出器３１１が、入力パターン画像バッファ３０９および入力パターン情報バッファ３１０を参照して、代表パターンを抽出し、その結果を代表パターンラベルバッファ３１２および代表パターン情報バッファ３１４に格納する（Ｓ４１０）。ここでいう代表パターンとは、入力画像中の入力パターンを、大きく画質を低下させずに、置換え得るようなパターンを意味する。Ｓ４１０の処理については、後に詳細に説明する。
【００７８】
代表パターン情報圧縮器３１５は、代表パターン情報バッファ３１４に記憶された代表パターンを圧縮する（Ｓ４１２）。代表パターン画像減色器３１６は、代表パターン画像バッファ３１３に格納された代表パターンの画像を減色する（Ｓ４１３）。減色を行うのは、入力パターンの大半を占めると思われる文字パターンを再現するのに必要な階調数まで情報量を下げて、さらに圧縮率を向上させるためである。ここでは、２５６階調の代表パターンを８階調まで減色するものとする。２５６階調をほぼ等間隔に８等分し、８つの代表色０、３６、７３、１０９、１４５、１８１、２１８および２５５のどれに最も近いかを調べ、最も近い代表色が何番目に当たるかを示す数字で画素値を置換える。たとえば、画素値１２０は、代表色１０９に最も近く、また代表色１０９は、各代表色に値の小さな順に番号を付けると、代表色０を０番目として、３番目の代表色にあたる。そこで、画素値１２０は、Ｓ４１３で３に置換えられる。
【００７９】
代表パターン画像圧縮器３１８は、代表パターン画像減色器３１６で減色された代表パターンを圧縮し、データ混合器３１９に供給する（Ｓ４１４）。圧縮の方法としては、画像としての２次元構造を残したまま圧縮する方法、１次元の単なる配列として圧縮する方法に大別され、いずれの方法でも圧縮可能である。ここでは１次元の配列として圧縮を行ない、算術符号化を用いたエントロピー符号化の手法を用いる。データ圧縮の方法はこれに限られるものではない。
【００８０】
図１２を参照して、入力パターン情報圧縮器３１７は、カウンタ３０２に格納されているページ数の情報、入力パターン情報バッファ３１０に格納された情報および代表パターンラベルバッファ３１２に格納された情報を、混合および圧縮し、データ混合器３１９に供給する（Ｓ４１５）。なお、入力パターン情報圧縮器３１７は、各ページごとに入力パターン情報を作成し、各ページごとに圧縮を行なう。
【００８１】
例えば、０ページ目に含まれる入力パターンの数２１０８（ＰＣ［０］で表す）から、０ページ目の（ＰＣ［０］−１）番目の入力パターンに対応する代表パターンの番号２１０９までが１つの圧縮単位となる。圧縮後のバイト数が、０ページ目の入力パターンデータの圧縮後の容量２１０６として格納される。同様の手順が各ページごとに行われる。これは、各ページごとに圧縮することにより、ページごとの復号を可能とし、復号時に必要なメモリ容量を少なくし、ページのランダムアクセスを可能にするためである。
【００８２】
なお、ここでは各ページごとに入力パターンデータの圧縮後の容量を記憶しており、その容量に基づいて、入力パターン情報へのアクセスを行なっている。この容量とは別に、各ページごとに入力パターン情報へのオフセット（ページ数２１０５からのオフセット）を記憶するようにし、入力パターン情報へのアクセスを行なうようにしてもよい。
【００８３】
なお、入力パターン情報圧縮器３１７は、ページ数２１０５（Ｐと表す）から、Ｐ−１ページ目の入力パターンデータの圧縮後の容量２１０７までの情報は圧縮せずに、そのまま出力する。
【００８４】
入力パターン情報圧縮器３１７は、算術符号化を用いたエントロピー符号化の手法を用いてデータ圧縮を行なう。データ圧縮の方法はこれに限られるものではない。
【００８５】
データ混合器３１９は、Ｓ４１２、Ｓ４１３およびＳ４１５でそれぞれ得られた代表パターンの情報、代表パターンの画像および入力パターンの情報の圧縮データを１つの符号化データに連結して符号化データバッファ３２０に出力する（Ｓ４１６）。以上の処理により、符号化データバッファ３２０には、文書画像を符号化したデータが格納される。
【００８６】
図１３を参照して、符号化データバッファ３２０に格納されたデータは、代表パターン情報２１０１、代表パターン画像２１０２および入力パターン情報２１０３を含む。代表パターン情報２１０１、代表パターン画像２１０２および入力パターン情報２１０３をそれぞれ復号すると、それぞれ図１４、図１５および図１２に示すようなデータが得られる。
【００８７】
図１６を参照して、図７のＳ４０７の処理について詳細に説明する。本実施の形態のように文字を入力パターンとする場合には、入力パターン抽出器３０５は、文字認識技術において、紙面画像から取り出された各文字に対応する文字コードを出力する代わりに、各文字の画像を入力パターン画像バッファ３０９に格納し、入力パターンの縦幅および横幅を入力パターン情報バッファ３１０に格納するものである。
【００８８】
文字要素抽出部７０１は、画像データバッファ３０４に格納された画像、すなわち現在の処理対象となっているページの画像から文字要素を抽出し、文字要素の外接矩形に関する情報を文字要素バッファ７０２に格納する（Ｓ８０１）。文字要素とは、黒画素（文字領域画素）の連結成分を示す。文字要素バッファ７０２には、外接矩形の左上頂点のｘ座標およびｙ座標、ならびに右下頂点のｘ座標およびｙ座標が格納される。このような、画像から文字領域画素の連結成分の外接矩形を抽出する方法の一例が特開平５−８１４７４号公報に開示されている。Ｓ８０１の処理を行なう際には、２値化しきい値バッファ３０８に格納された２値化しきい値を用いて、予め画像の２値化が行なわれる。
【００８９】
文字列方向判定部７０３は、文字要素バッファ７０２を参照して、画像内の文字列の方向が縦方向であるか、横方向であるかを判定し、その判定結果を文字列方向情報フラグ７１３に格納する（Ｓ８０２）。文字要素の配置から、画像内の文字列方向を判定する方法の一例が特開平１１−７３４７５号公報に開示されている。
【００９０】
文字列抽出部７０５は、文字要素バッファ７０２および文字列方向情報フラグ７１３を参照しながら、文字列を抽出し、文字列情報バッファの内容を書きかえる（Ｓ８０３）。文字要素の配置から、文字列を抽出する方法の一例は、前掲の特開平５−８１４７４号公報に開示されている。文字列情報バッファ７０６には、文字列の番号と文字要素とが１対１に対応付けられ、整数配列として記憶されている。
【００９１】
文字マッチング部７０４は、文字列カウンタ７０９を０に初期化し（Ｓ８０４）、文字カウンタ７１０を０に初期化する（Ｓ８０５）。以下、文字列カウンタ７０９の値をｉで表し、文字カウンタ７１０の値をｊで表す。また、各文字列ごとに下記のような処理が行われる。すなわち、個別文字抽出部７０７は、ｉ番目の文字列を文字の候補領域に分割する（Ｓ８０６）。具体的には以下のように処理される。例えば、横書きの文字列「河川」を処理する場合を考える。図１７（ａ）を参照して、「河川」という文字列に対して、個別文字抽出部７０７は、同図の点線で示されるように、文字列を個別文字候補領域に分割する。これは、文字列方向と垂直な方向に、外接矩形が重なり合いを持つ文字要素（この場合は連結成分）を１つの文字要素として統合することにより行なわれる。
【００９２】
例えば、図１７（ａ）では、「河」のさんずいを構成する３つの点の外接矩形は、文字列方向と垂直な方向（この場合は上下方向）に重なっている。そのため、３つの外接矩形が個別文字抽出部７０７によって統合され、統合後の外接矩形の座標が、文字要素バッファ７０２と同じ形式で個別文字情報バッファ７０８に格納される。文字の候補領域の格納順序は、文字列方向情報フラグ７１３が横書きを示しているときには、文字列の左方から右方の順とし、縦書きを示しているときには、文字列の上方から下方の順とする。また、個別文字情報バッファ７０８には、各文字列ごとに何文字あるかに関する情報も格納される。
【００９３】
文字マッチング部７０４は、文字列内文字カウンタ７１１を０に初期化（Ｓ８０７）する。以下、文字列内文字カウンタ７１１の値をｋで表す。文字マッチング部７０４は、個別文字情報バッファ７０８および画像データバッファ３０４を参照しながら、文字列中のｋ番目の文字を、すべての文字標準パターン７１２と照合し、もっとも高い類似度をマッチングスコアとする（Ｓ８０８）。
【００９４】
なお、各認識カテゴリに対応する文字標準パターン７１２と入力パターンとの類似度は、複合類似度に基づいて計算される。このため、類似度の最大値は１となる。複合類似度については、例えば、「橋本「文字認識概論」（電気通信協会、１９８２），Ｐ３５」などに詳しく述べられている。類似度の算出に用いられる特徴量の一例としてメッシュ特徴量が用いられるが、それ以外の特徴量であってもよいのはいうまでもない。
【００９５】
マッチングスコアが所定のしきい値以上の場合には（Ｓ８０９でＮＯ）、入力パターンの抽出が成功したと判断し、文字マッチング部７０４は、ｋ番目の文字要素の座標情報を、入力パターン情報バッファ３１０に格納する（Ｓ８１２）。また、文字マッチング部７０４は、画像データバッファ３０４から、文字要素の外接矩形に基づいて、文字の画像を切出し、入力パターン画像バッファ３０９に格納する（Ｓ８１３）。
【００９６】
文字マッチング部７０４は、文字列内文字カウンタ７１１を１つインクリメントし（Ｓ８１４）、文字列の最後まで到達していれば（Ｓ８１５でＹＥＳ）、文字カウンタ７１０の値に、文字列内文字カウンタ７１１の値を加算する（Ｓ８１６）。この時点で、文字列内文字カウンタ７１１の値は、処理が終わったばかりのｉ番目の文字列から何文字取り出されたかを示している。
【００９７】
文字列カウンタ７０９が１つインクリメントされる（Ｓ８１７）。文字列カウンタ７０９の値が文字列数と異なれば（Ｓ８１８でＮＯ）、未処理の文字列が存在するため、制御がＳ８０６に戻る。
【００９８】
文字列カウンタ７０９の値が文字列数と等しければ（Ｓ８１８でＹＥＳ）、すべての文字列について処理が終了している。このため、文字カウンタ７１０の値が入力パターン情報バッファ３１０に書込まれ処理が終了する（Ｓ８１９）。
【００９９】
マッチングスコアが所定のしきい値を下回った場合には（Ｓ８０９でＹＥＳ）、以下に説明する再統合・マッチング処理が行われる（Ｓ８１０）。再統合・マッチング処理の結果、個別文字情報バッファ７０８の内容が書きかえられ（Ｓ８１１）、上述したＳ８１２以降の処理が実行される。
【０１００】
図１７を参照して、図１６のＳ８１０（再統合・マッチング処理）について説明する。図１７（ａ）は、横書きの文字列「河川」から個別文字抽出部７０７が抽出した文字候補領域を示している。文字領域候補は、破線で囲まれ、５つの文字候補領域が抽出されていることが分かる。図１７（ｂ）および図１７（ｆ）を参照して、Ｓ８０８の処理では、文字マッチング部７０４が、「河」のさんずいとカタカナの「シ」とのマッチングを行なっており、このときのマッチングスコアが０．８と求められている。０．８という数値は必ずしも高いものではない。これは、さんずいとカタカナの「シ」との間には細部において、かなりの差があるためである。
【０１０１】
Ｓ８０９で用いられるしきい値が０．８５であったとする。この場合、Ｓ８０９の条件を満たさないため（Ｓ８０９でＹＥＳ）、再統合・マッチング処理（Ｓ８１０）が実行される。すなわち、一定の文字幅の範囲内で文字候補領域の統合が順次行なわれる。統合を行なうたびに、文字マッチング部７０４は、すべての文字標準パターン７１２と文字候補領域との類似度を計算し、最もマッチングスコアが大きくなる文字候補領域を抽出する。図１７（ｂ）、図１７（ｃ）および図１７（ｄ）はそれぞれ一定の文字幅以下の文字候補領域であり、図１７（ｆ）、図１７（ｇ）および図１７（ｈ）を参照して、それぞれマッチングスコアが、０．５、０．９および０．７として求められている。３つの文字候補領域の中では、図１７（ｃ）に示す文字候補領域がもっとも高いマッチングスコアを示す。このため、図１７（ｃ）に示す文字候補領域が入力パターンとして採用される。
【０１０２】
以上説明した再統合・マッチング処理（図１６のＳ８１０）により、着目する文字列の文字数は減少する。このため、個別文字情報バッファ７０８に記憶されている、文字列の文字数や、文字の座標もそれに合わせて変更される（Ｓ８１０）。例えば、ここで用いた例では、さんずいと「可」とが統合され、「河」という文字が抽出されることにより、文字列の文字数が１つ減少する。また、個別文字情報バッファ７０８に格納されていた「可」の座標は消去され、さんずいに対応する座標は「河」の座標に書きかえられる（Ｓ８１１）。
【０１０３】
次に、図１８を参照して、代表パターンを抽出する処理（図７のＳ４１０）について詳細に説明する。
【０１０４】
コントローラ１０００は、代表パターンラベルバッファ３１２の初期化を行う（Ｓ１１０１）。代表パターンラベルバッファ３１２は、代表パターンと入力パターンとを１対１に対応付けるための整数配列である。代表パターンラベルバッファ３１２の添え字が入力パターンの番号に対応し、代表パターンラベルバッファ３１２の要素が代表パターンの番号に対応する。代表パターンラベルバッファ３１２の初期化とは、各要素にそれぞれ異なった値を代入することを意味する。以下、代表パターンラベルバッファ３１２の各要素をＬＢ［ｉ］（ｉ＝０，１，．．．）と表すものとし、ＬＢ［ｉ］＝ｉとなるように初期化を行なうものとする。
【０１０５】
ループ検出器１００１は、２値化しきい値バッファ３０８、入力パターン画像バッファ３０９および入力パターン情報バッファ３１０を参照して、入力パターンに対応する画像に含まれるループの数を検出し、ループ数バッファ１００２に格納する（Ｓ１１０２）。ループとは、輪形状をした部分のことである。ループ数バッファ１００２は、入力パターンの番号を添え字とし、ループ数を要素とする整数配列のことである。以下の説明では、ループ数バッファ１００２のｉ番目の要素をＬ［ｉ］とする。すなわち、ｉ番目の入力パターンに含まれるループ数はＬ［ｉ］で表わされる。
【０１０６】
ここでいうループの数の検出において、着目画素は入力パターン抽出器３０５と同様の基準により選ばれる。すなわち、非背景画素が着目画素とされる。図１９（ａ）はループ数が２の画像を示しており、図１９（ｂ）はループ数が１の画像を示している。Ｓ１１０２の処理については後に詳述する。
【０１０７】
コントローラ１０００は第１カウンタ１００３を０に初期化し（Ｓ１１０３）、第２カウンタ１００４に第１カウンタ１００３の値に１を加えた値を代入する（Ｓ１１０４）。以下の説明では、第１カウンタ１００３の値をｉ，第２カウンタ１００４の値をｊとする。
【０１０８】
コントローラ１０００は、ｉ番目およびｊ番目の入力パターンの大きさが類似しているか否かを判断する（Ｓ１１０５）。これは、２つの入力パターンの横幅および縦幅を取り出して比較することにより実行される。
【０１０９】
ｉ番目の入力パターンの外接矩形の左上頂点の座標を（ｓｘ０［ｉ］，ｓｙ０［ｉ］）、右下頂点の座標を（ｅｘ０［ｉ］，ｅｙ０［ｉ］）とすると、ｉ番目の入力パターンの横幅ｌｘ［ｉ］および縦幅ｌｙ［ｉ］、ならびにｊ番目の入力パターンの横幅ｌｘ［ｊ］および縦幅ｌｙ［ｊ］は以下の式（２）〜（５）によって、それぞれ表わされる。
ｌｘ［ｉ］＝ｅｘ０［ｉ］−ｓｘ０［ｉ］＋１ …（２）
ｌｙ［ｉ］＝ｅｙ０［ｉ］−ｓｙ０［ｉ］＋１ …（３）
ｌｘ［ｊ］＝ｅｘ０［ｊ］−ｓｘ０［ｊ］＋１ …（４）
ｌｙ［ｊ］＝ｅｙ０［ｊ］−ｓｙ０［ｊ］＋１ …（５）
このとき、次の式（６）および式（７）の双方が成り立てば、ｉ番目およびｊ番目の入力パターンの大きさが類似していると判断される。すなわち、横幅と縦幅との差が、横幅または縦幅そのものと比べてそれほど大きくないときに、大きさが類似していると判断される。
ａｂｓ（ｌｘ［ｉ］−ｌｘ［ｊ］）×４ ≦ｍａｘ（ｌｘ［ｉ］，ｌｘ［ｊ］） …（６）
ａｂｓ（ｌｙ［ｉ］−ｌｙ［ｊ］）×４ ≦ｍａｘ（ｌｙ［ｉ］，ｌｙ［ｊ］） …（７）
ここで、ａｂｓ（ｘ）とは、ｘの絶対値を示し、ｍａｘ（ｘ，ｙ）とは、ｘおよびｙの絶対値を示す。
【０１１０】
入力パターンの大きさが類似していれば（Ｓ１１０５でＹＥＳ）、コントローラ１０００は、ｉ番目の入力パターンに含まれるループ数Ｌ［ｉ］とｊ番目の入力パターンに含まれるループ数Ｌ［ｊ］とが等しいか否かを調べる（Ｓ１１０６）。
【０１１１】
ループ数Ｌ［ｉ］およびＬ［ｊ］が等しければ（Ｓ１１０６でＹＥＳ）、パターン比較器１００５は、ｉ番目の入力パターンとｊ番目の入力パターンとを比較する（Ｓ１１０７）。
【０１１２】
ｉ番目の入力パターンとｊ番目の入力パターンとが類似している場合には（Ｓ１１０５でＹＥＳ）、コントローラ１０００は、以下のように代表パターンラベルバッファ３１２の書換えを行なう（Ｓ１１０９）。すなわち、コントローラ１０００は、類似していると判断されたｉ番目およびｊ番目の入力パターンにそれぞれ対応する代表パターンラベルバッファ３１２の要素ＬＢ［ｉ］およびＬＢ［ｊ］に共通の値ｍｉｎ（ＬＢ［ｉ］，ＬＢ［ｊ］）を代入する。また、更新前の要素ＬＢ［ｉ］またはＬＢ［ｊ］と同じ値を有する要素についても、共通の値ｍｉｎ（ＬＢ［ｉ］，ＬＢ［ｊ］）を代入する。ここで、ｍｉｎ（ＬＢ［ｉ］，ＬＢ［ｊ］）とは、ＬＢ［ｉ］およびＬＢ［ｊ］の最小値を示す。
【０１１３】
コントローラ１０００は、第２カウンタ１００４を１つインクリメントする（Ｓ１１１０）。コントローラ１０００は、第２カウンタ１００４の値ｊが入力パターン数と等しいか否かを調べ（Ｓ１１１１）、入力パターン数と等しくなければ（Ｓ１１１１でＮＯ）、Ｓ１１０５に戻る。
【０１１４】
第２カウンタ１００４の値ｊが入力パターン数と等しければ（Ｓ１１１１でＹＥＳ）、ｉ番目の入力パターンに対する比較はすべて終了しているため、コントローラ１０００は、第１カウンタ１００３を１つインクリメントする（Ｓ１１１２）。
【０１１５】
コントローラ１０００は、第１カウンタ１００３の値ｉが入力パターン数と等しいか否かを調べ（Ｓ１１１３）、入力パターン数と等しくなければ（Ｓ１１１３でＮＯ）、ｉ番目の入力パターンに対する比較を開始するためにＳ１００４に戻る。
【０１１６】
第１カウンタ１００３の値ｉが入力パターン数と等しければ（Ｓ１１１３でＹＥＳ）、すべての入力パターンの組合わせに対する比較が終了しており、コントローラ１０００は、再び第１カウンタ１００３および第２カウンタ１００４を０に初期化する（Ｓ１１１４、Ｓ１１１５）。
【０１１７】
コントローラ１０００は、ＬＢ［ｉ］＝ｉが成り立つかどうかを判定する（Ｓ１１１６）。ＬＢ［ｉ］＝ｉであれば（Ｓ１１１６でＹＥＳ）、コントローラ１０００は、ｉ番目の入力パターンを代表パターンとするため、ｉ番目の入力パターンの画像を入力パターン画像バッファ３０９から読出し、代表パターン画像バッファ３１３に書込む（Ｓ１１１７）。また、コントローラ１０００は、ｉ番目の入力パターンの情報を入力パターン情報バッファ３１０から読出して、代表パターン情報バッファ３１４に書込む（Ｓ１１１８）。また、コントローラ１０００は、第２カウンタ１００４を１つインクリメントする（Ｓ１１１９）。
【０１１８】
ＬＢ［ｉ］＝ｉという条件を満たす場合にのみｉ番目の入力パターンを代表パターンとするのは、同じクラスタに属する入力パターンから１つだけ代表パターンを選び出すためである。その他に、入力パターンから１つだけ代表パターンを選び出す方法が存在すれば、その方法を用いてもよい。
【０１１９】
Ｓ１１１８の処理では、ｉ番目の入力パターンの横幅ｌｘ［ｉ］および縦幅ｌｙ［ｉ］が上述の式（２）および（３）に従い求められる。
【０１２０】
コントローラ１０００は、第１カウンタ１００３を１つインクリメントする（Ｓ１１２０）。コントローラ１０００は、第１カウンタ１００３の値ｉと入力パターン数とが一致しているか否かを調べ（Ｓ１１２１）、一致していなければ（Ｓ１１２１でＮＯ）、Ｓ１１１６に戻る。
【０１２１】
両者が一致していれば（Ｓ１１２１でＹＥＳ）、図１４を参照して、コントローラ１０００は、第２カウンタ１００４の値ｊを代表パターンの数２１０４として代表パターン情報バッファ３１４に書込み（Ｓ１１２２）、後述する代表パターンラベルバッファ３１２の値を詰めなおす処理を行なう（Ｓ１１２３）。
【０１２２】
図１５を参照して、代表パターン画像バッファ３１３には、代表パターンの画像データがラスタスキャンの順で書込まれている。このようなデータ構造はあくまでも一例であり、その他のデータ構造であってもよいのは言うまでもない。
【０１２３】
Ｓ１１２３の処理について説明する。代表パターンの数はｊ個ある。しかし、代表パターンラベルバッファ３１２の要素は、０から「入力パターン数−１」の範囲の値を取ることができる。このため、代表パターンラベルバッファ３１２の要素は飛び飛びの値を取る。コントローラ１０００は、代表パターンラベルバッファ３１２の要素が０からｊ−１までの範囲に収まり、かつ要素の大小関係を保つように要素の付け替えを行なう。たとえば、図２０（ａ）を参照して、要素０、２および５を有する代表パターンラベルバッファ３１２の値を詰め直すと、図２０（ｂ）のようになる。
【０１２４】
なお、代表パターンは、同じクラスタに属する複数の入力パターンから作成するようにしてもよい。たとえば、入力パターンを拡大または縮小し、サイズを等しくした上で、入力パターンの平均を取り、代表パターンを作成するようにしてもよい。ただし、一般的にはこのような合成処理は、代表パターンがぼけた画像になることが多く、必ずしも有効とは限らない。
【０１２５】
図２１〜図３６を参照して、代表パターンラベルバッファ３１２の値の変化の一例を説明する。図２１は、２種類、計１３個の入力パターンをパターン空間上に配置した図である。図中の数字はＳ１１０２直後の代表パターンラベルバッファ３１２に格納されている代表パターンラベルの値を示している。この数字は、入力パターン情報バッファ３１０に格納されている入力パターンの番号とも一致している。
【０１２６】
以下図２２から図３４は第１カウンタ１００３の値ｉが１つずつインクリメントされながら、Ｓ１１０４からＳ１１１２までの処理が実行された後の代表パターンラベルの値の変化を示している。Ｓ１１０７の処理はすべての入力パターンの組合わせに対して実行される。ここでは、２つの入力パターンが類似しているか否かをパターン空間上のユークリッド距離が一定しきい値以下であるか否かで判定すると仮定し、点線で示した円が、中心に位置するパターンに類似すると判定される距離の範囲を示す。たとえば、図２２は、ｉ＝０のときに、Ｓ１１１２の処理が終了した時点での代表パターンラベルバッファ３１２の状態を示している。０番目の入力パターン２８０１と１番目の入力パターン２８０２とは類似していると判定されたため、Ｓ１１０９の処理により代表パターンラベルバッファ３１２の値が図２２のように書換えられている。
【０１２７】
図２１で示される初期状態では、ＬＢ［０］＝０、ＬＢ［１］＝１であったが、Ｓ１１０９の処理により、ＬＢ［１］がＬＢ［０］と同じ値に書換えられている。Ｓ１１０９が実行される直前の状態で、ＬＢ［０］またはＬＢ［１］と同じ値が付された代表パターンラベルは他には存在しない。このため、その他の代表パターンラベルはそのままの値を維持する。たとえば９番目の入力パターン２８０３は、入力パターン２８０１と類似しているとは判断されないため、代表パターンラベルＬＢ［９］はこの時点では９のままである。以下、図２３から図３４はｉが１から１２まで変化していったときに、Ｓ１１１２の処理が終了した時点での代表パターンラベルバッファ３１２の値を示す。たとえば、ｉ＝１１に相当する図３３では、１１番目の入力パターン２８０４と１２番目の入力パターン２８０５とが類似していると判定される。このため、Ｓ１１１２の処理終了時点では、ＬＢ［１１］＝０、ＬＢ［１２］＝０となっている。また、７番目の入力パターン２８０６については、図に示されるように入力パターン２８０４と類似しているという判定はなされないが、それまでの処理で、ＬＢ［７］＝ＬＢ［１１］であることが示されている。このため、Ｓ１１０９の処理により、ＬＢ［７］も０に書換えられている。
【０１２８】
図３４は、ｉ＝１２に相当する図であるが、すでにＬＢ［１２］は０に書換えられており、１２番目の代表パターン２８０７と類似していると判定されている入力パターンに対応した代表パターンラベルの値はいずれも０になっている。このため、代表パターンラベルバッファ３１２の値に変化はない。
【０１２９】
Ｓ１１１４の処理が実行される時点での状態を図３５に示す。Ｓ１１２３の処理終了後の状態を図３６に示す。代表パターンラベルバッファ３１２の詰め直し処理（Ｓ１１２３）を実行することにより、代表パターンラベルの値３が１に更新される。
【０１３０】
図３７を参照して、図１８のＳ１１０２の処理について詳細に説明する。コントローラ１３００は、第１カウンタ１３０１を０に初期化する（Ｓ１４０１）。以下第１カウンタ１３０１の値をｉとする。第１カウンタ１３０１の値は、ループ検出器１００１で現在処理中の入力パターンの番号を示す。
【０１３１】
コントローラ１３００は、連結成分外接矩形抽出器１３０２を用いて、第１カウンタ１３０１が指し示す入力パターンから、背景領域の連結成分を取出す。コントローラ１３００は、連結成分ごとに外接矩形を作成し、その情報を連結成分外接矩形情報バッファ１３０３に格納する（Ｓ１４０２）。すなわち、ｉ番目の入力パターンが属するページ番号ｐ［ｉ］を入力パターン情報バッファ３１０から取り出す。これは、２値化しきい値バッファ３０８に記憶されたｐ［ｉ］ページ目の画像の２値化しきい値をＴＨ［ｐ［ｉ］］として、以下の式（８）を満たす画素を着目画素とすることで行える。これは、着目画素を非背景領域ではなく、背景領域としていることを意味する。それ以外の点では、連結成分外接矩形抽出器１３０２の動作は、上掲の特開平５−８１４７４号公報で開示されているものと同じで良い。
ＴＨ［ｐ［ｉ］］≦画素値＜２５６…（８）
連結成分外接矩形情報バッファ１３０３には、矩形数ＲＣと、各矩形の左上頂点のＸ座標およびＹ座標と、各矩形の右下頂点のＸ座標およびＹ座標とが記憶されている。以下、ｋ番目の矩形の左上頂点を（ｓｘ１［ｋ］，ｓｙ１［ｋ］）と表わし、右下頂点を（ｅｘ１［ｋ］，ｅｙ１［ｋ］）と表す。
【０１３２】
コントローラ１３００は、ループ数バッファ１００２のｉ番目の要素Ｌ［ｉ］を０に初期化し（Ｓ１４０３）、第２カウンタ１３０４を０に初期化する（Ｓ１４０４）。第２カウンタ１３０４の値をここではｊと表す。コントローラ１３００は、連結成分外接矩形情報バッファ１３０３に含まれているｊ番目の矩形が、入力パターンの端に接しているかどうかを調べる（Ｓ１４０５〜Ｓ１４０８）。すなわち、入力パターン情報バッファ３１０に格納されているｉ番目の入力パターンの外接矩形の左上頂点および右下頂点のＸＹ座標をそれぞれ（ｓｘ０［ｉ］，ｓｙ０［ｉ］）および（ｅｘ０［ｉ］，ｅｙ０［ｉ］）としたとき、式（９）〜式（１２）のいずれかが成り立つか否かを調べる。
ｓｘ１［ｊ］＝０…（９）
ｓｙ１［ｊ］＝０…（１０）
ｅｘ１［ｊ］＝ｅｘ０［ｉ］−ｓｘ０［ｉ］…（１１）
ｅｙ１［ｊ］＝ｅｙ０［ｉ］−ｓｙ０［ｉ］…（１２）
４つの条件のうちのいずれかが成り立つ場合には（Ｓ１４０５でＹＥＳ、Ｓ１４０６でＹＥＳ、Ｓ１４０７でＹＥＳまたはＳ１４０８でＹＥＳ）、コントローラ１３００は、第２カウンタ１３０４を１つインクリメントする（Ｓ１４１０）。
【０１３３】
いずれの条件も成り立たない場合には（Ｓ１４０５でＮＯ、Ｓ１４０６でＮＯ、Ｓ１４０７でＮＯおよびＳ１４０８でＮＯ）、コントローラ１３００は、ループ数バッファ１００２のｉ番目の要素Ｌ［ｉ］を１つインクリメントして（Ｓ１４０９）、Ｓ１４１０に進む。
【０１３４】
Ｓ１４１０の処理実行後に、コントローラ１３００は、第２カウンタ１３０４の値ｊが、連結成分外接矩形抽出器１３０２で取り出された矩形の数と一致するか否かを調べる（Ｓ１４１１）。一致すれば（Ｓ１４１１でＹＥＳ）、コントローラ１３００は、第１カウンタ１３０１を１つインクリメントする（Ｓ１４１２）。一致していなければ（Ｓ１４１１でＮＯ）、Ｓ１４０５に戻る。
【０１３５】
Ｓ１４１２の処理実行後に、コントローラ１３００は、第１カウンタ１３０１の値ｉが入力パターンの数と一致しているか否かを調べる（Ｓ１４１３）。第１カウンタ１３０１の値ｉが入力パターンの数と一致していれば（Ｓ１４１３でＹＥＳ）、処理を終了する。一致していなければ（Ｓ１４１３でＮＯ）、Ｓ１４０２に戻る。
【０１３６】
図３８を参照して、ループ検出器１００１の処理の一例を説明する。図３８（ａ）を入力パターンとした場合、図３８（ｂ）は非背景領域と背景領域とを逆転させて表示した図である。図３８（ｂ）で黒色で表されているのが背景領域であり、連結成分外接矩形抽出器１３０２の着目領域である。図３８（ｃ）は、図３８（ｂ）の画像より抽出される連結成分のうち、その外接矩形が入力パターンの端に接している連結成分１５０１および１５０２を示している。図３８（ｄ）は、図３８（ｂ）の画像より抽出される連結成分のうち、その外接矩形が入力パターンの端に接していない連結成分１５０３および１５０４を示している。
【０１３７】
連結成分１５０３および１５０４のようなその外接矩形が入力パターンの端に接していない連結成分の数を数えることにより、非背景領域のループ数を計算することができる。
【０１３８】
このように、非背景領域のループ数の計算が、背景領域に着目し、そこから検出された、連結成分の外接矩形で、端に達していないものだけを数えることで、従来のループを実際に検出してから、検出されたループ数を数える手法に比べて容易に行なえる。
【０１３９】
また、このような構成をとることで、検出するループの開口部のサイズや形状に条件を課す。たとえば、「一定値以下の横幅または縦幅のループ数は無視する」という処理を追加することも、ｅｘ１［ｊ］−ｓｘ１［ｊ］，ｅｙ１［ｊ］−ｓｙ１［ｊ］を計算して、条件に合わないものを無視することで容易に行なえる。他のいかなる条件も、ループの開口部の外接矩形のサイズや形状に関する条件に置換え得る限りは同様である。
【０１４０】
図３９を参照して、図１８のＳ１１０７の処理について説明する。ベクトル変換器１６０１は、比較対象の２つの入力パターンよりそれぞれ特徴抽出を行ない、特徴ベクトルを生成する（Ｓ１７０１）。特徴抽出の方法は文字認識の分野で様々な手法が提案されている。ここでは、一例として以下に説明する方法で特徴抽出を行ない、入力パターンを特徴ベクトルに変換する。
【０１４１】
図４０（ａ）を参照して、３×５画素の入力パターンを４等分する。各区画に含まれる画素を、その区画に含まれる面積比で重み付けし、重み平均を求める。重み平均の値は、図４０（ｂ）のようになり、これより４次元の特徴ベクトルが作成される。なお、実際には図４１（ａ）に示すような６４次元（８×８次元）の特徴ベクトルが算出される。
【０１４２】
ベクトル正規化器１６０２は、絶対値が１になるように、特徴ベクトルを正規化する（Ｓ１７０２）。すなわち、ベクトル正規化器１６０２は、特徴ベクトルの絶対値を求め、特徴ベクトルの各要素をその絶対値で割る。
【０１４３】
ベクトル正準化器１６０３は、特徴ベクトルの正準化を行う（Ｓ１７０３）。ここでいう正準化とは、要素がすべて同じであり、絶対値が１の特徴ベクトルをＣとし、Ｓ１７０１の処理で作成された入力パターンの特徴ベクトルをＦとするとき、これらから以下の式に基づいて特徴ベクトルＦ′を算出する処理である。
Ｆ′＝Ｆ−（Ｃ・Ｆ）Ｃ …（１３）
ただし、Ｃ・Ｆは特徴ベクトルの内積を表す。特徴ベクトルＦ′は、背景が一様な入力パターンと直交する成分を取出したものである。正準化を行なうのは以下のような理由による。文書画像などでは、白地に黒い文字が書かれているため、背景の画素値が大きな値を示す。特に、単純な文字の場合には、画像のほとんどの部分が大きな値を示し、入力パターンの種類にかかわらず、特徴ベクトルが一様濃度の入力パターンから作ったものと似たものになってしまう。これを防ぐために正準化が行なわれる。なお、正準化の一般的な理論的基礎については、例えば飯島「パターン認識理論」（森北出版、１９８９年），Ｐ９４に詳しく記載されている。
【０１４４】
内積計算器１６０４は、Ｓ１７０３の処理で得られた２つの特徴ベクトルの内積Ｓ０を計算する（Ｓ１７０４）。ここでの内積は対応する要素の積の和を、２つの特徴ベクトルの絶対値の積で割った値であり、０から１の範囲の値を取る。内積の値Ｓ０が１に近いほど、２つの特徴ベクトルは類似しており、２つの入力パターンが類似していることを示している。
【０１４５】
コントローラ１６００は、内積の値Ｓ０があらかじめ定められたしきい値ＴＨ０以上か否かを調べる（Ｓ１７０５）。内積の値Ｓ０がしきい値ＴＨ０よりも小さければ（Ｓ１７０５でＮＯ）、類似していないと判定し（Ｓ１７１０）、処理を終了する。
【０１４６】
内積の値Ｓ０がしきい値以上ＴＨ０であれば（Ｓ１７０５でＹＥＳ）、特徴ベクトルの部分（以下、「部分ベクトル」という。）同士の比較を行うために、コントローラ１６００は、カウンタ１６０５を０に初期化する（Ｓ１７０５）。以下、カウンタ１６０５の値をｋとする。
【０１４７】
部分ベクトルとは、特徴ベクトルの要素の一部を取り出して作成されたベクトルをいう。ここでは、図４１（ａ）に示すような、６４次元の特徴ベクトルから、図４１（ｂ）〜（ｊ）にそれぞれ示すような９個の１６次元ベクトルを部分ベクトルとする。図４１（ｂ）〜（ｊ）の部分ベクトルにはそれぞれ０から８までの番号をつけておく。
【０１４８】
部分ベクトル作成器１６０６は、２つの特徴ベクトルの各々について、それぞれｋ番目の部分ベクトルを生成する（Ｓ１７０６）。内積計算器１６０４は、部分ベクトル同士の内積Ｓ１［ｋ］を計算する（Ｓ１７０７）。コントローラ１６００は、内積Ｓ１［ｋ］があらかじめ定められたしきい値ＴＨ１以上か否かを調べる（Ｓ１７０９）。内積Ｓ１［ｋ］がしきい値ＴＨ１よりも小さければ（Ｓ１７０９でＮＯ）、類似していないと判定して（Ｓ１７０８）、処理を終了する。
【０１４９】
内積Ｓ１［ｋ］がしきい値ＴＨ１以上であれば（Ｓ１７０９でＹＥＳ）、コントローラ１６００は、カウンタ１６０５を１つインクリメントする（Ｓ１７０９）。カウンタ１６０５の値ｋが部分ベクトルの数と一致していなければ（Ｓ１７１２でＮＯ）、Ｓ１７０７に戻る。
【０１５０】
カウンタ１６０５の値ｋが部分ベクトルの数と一致していれば（Ｓ１７１２でＹＥＳ）、すべての部分ベクトルについて類似していると判断されたため、２つの入力パターンは類似していると判定され（Ｓ１７１３）、処理を終了する。
【０１５１】
なお、しきい値ＴＨ０としきい値ＴＨ１とは独立して定めることができる。また、９個の部分ベクトルごとに相違するしきい値を設定することも可能である。経験的には、しきい値ＴＨ０はしきい値ＴＨ１よりも大きい方が良い結果が得られることが多い。これは複数の部分ベクトル同士の比較において、すべての部分ベクトル同士の類似度が一定値以上でなければ類似しているとは判断されず、部分ベクトルの比較については厳しい条件付けがされていることによる。一例としてしきい値ＴＨ０およびＴＨ１をそれぞれ０．９および０．８とする。
【０１５２】
ここでは、２つのパターンが類似しているか否かの指標として、値が高いほど２つのパターンが類似していることを示す内積を用いたが、値が小さいほど類似していることを示す尺度として、部分ベクトル間のユークリッド距離やシティブロック距離を用いてもよい。これは、Ｓ１７０５における、特徴ベクトルの比較についても同様である。
【０１５３】
部分同士の比較を行なうのは以下のような理由による。すなわち、全体的に見れば類似しているが、部分的に見れば異なっているパターンを正しく識別するためである。図４２（ａ）および図４２（ｂ）は、そのような類似したパターンの一例を示している。このようなパターンでも、図４２（ｃ）および図４２（ｄ）のように、右上の部分だけを抽出してみると、大きく異なっていることが分かる。そこで、全ての部分ベクトルについて、２つのパターンが類似していることを要求することで、正しい識別を行うことができ、図４２（ａ）および（ｂ）のような、異なる文字を表すパターンが共通の代表パターンで置換えられてしまうのを防ぐことができる。
【０１５４】
また、代表パターンを抽出する際にループ検出を行なっているのは、部分的な比較を行なっても識別が困難な入力パターンに対して、正しい識別を行うためである。例えば、図４３（ａ）および（ｂ）のような例では、図４２に示した場合とは異なり、全体として類似しているだけでなく、もっとも違いが大きいと思われる右上の部分においても、図４３（ｃ）および（ｄ）に示すように類似している。しかし、このような場合であってもループの数は異なる。このため、図４３（ａ）および（ｂ）のように異なる文字を表すパターンが共通の代表パターンで置換えられてしまうのを防ぐことができる。
【０１５５】
図４４を参照して、符号化データの復号処理について説明する。データ分離器２２０２は、符号化データバッファ２２０１に格納された符号化されたデータを、図１３に示す代表パターン情報２１０１、代表パターン画像２１０２および入力パターン情報２１０３に分離する。データ分離器２２０２は、分離した代表パターン情報２１０１、代表パターン画像２１０２および入力パターン情報２１０３をそれぞれ代表パターン情報伸長器２２０３、代表パターン画像伸長器２２０４および入力パターン圧縮情報バッファ２２０５に送信する（Ｓ２３０１）。
【０１５６】
代表パターン情報伸長器２２０３は、代表パターン情報２１０１を伸長して、代表パターン情報バッファ２２０６に格納する。（Ｓ２３０２）。代表パターン画像伸長器２２０４は、代表パターン画像２１０２を伸長して、代表パターン画像バッファ２２０７に格納する（Ｓ２３０３）。この時点で、代表パターン情報バッファ２２０６には図１４に示すようなデータが記憶され、代表パターン画像バッファ２２０７には図１５で示すようなデータが記憶されている。
【０１５７】
代表パターン画素値変換器２２０８は、代表パターン画像バッファ２２０７に格納された代表パターンの画素値を、画素値変換テーブル２２０９を使って復元する（Ｓ２３０４）。これは符号化時に減色された画素値を符号化前の階調数の画素値に戻す処理である。図４５に、画素値変換テーブル２２０９の一例を示す。１行目が入力画素値を示し、２行目が対応する出力画素値を示す。
【０１５８】
代表パターン画像オフセット生成器２２１０は、代表パターン情報バッファ２２０６に記憶されたデータに基づいて、代表パターン画像バッファ２２０７内での各代表パターンの記憶位置を、代表パターン画像バッファ２２０７の先頭からのオフセットとして計算する。代表パターン画像オフセット生成器２２１０は、オフセットを代表パターンの番号とオフセット値とが１対１対応する整数配列である代表パターン画像オフセットテーブル２２１１に格納する（Ｓ２３０５）。代表パターン情報バッファ２２０６に格納されている各代表パターンの横幅および縦幅の積がそのまま各代表パターンの伸長後の容量を示している。このため、オフセットは簡単に計算することができる。
【０１５９】
図１２を参照して、入力パターン情報オフセット生成器２２１２は、入力パターン圧縮情報バッファ２２０５の先頭部分にあるページ数２１０５（Ｐと表す）から、Ｐ−１ページ目の入力パターンデータの圧縮後の容量２１０７までを参照して、各ページデータが入力パターン圧縮情報バッファ２２０５のどこから始まるかを計算する。入力パターン情報オフセット生成器２２１２は、計算の結果をページ番号とページデータの記憶場所とが１対１に対応する整数配列である入力パターン情報オフセットテーブル２２１３に書込む（Ｓ２３０６）。例えばｉページ目に対応する、入力パターンデータのオフセットは、０ページ目から（ｉ−１）ページ目までの入力パターンデータの圧縮後の容量の和として求められる。
【０１６０】
ページカウンタ２２１４が０に初期化される（Ｓ２３０７）。以下、ページカウンタ２２１４の値をｉとする。ページ画像バッファ初期化器２２１６は、ページ画像バッファ２２１５に記憶される画像の画素値を背景色と同一の値に初期化する（Ｓ２３０８）。ここでは、背景色の値は２５５で表わされるものとする。ここではページ画像バッファ２２１５に格納される画像の背景色は固定値としているが、背景色も符号化し、背景の画素値を可変にしてもよい。
【０１６１】
入力パターン情報伸長器２２１７は、入力パターン圧縮情報バッファ２２０５および入力パターン情報オフセットテーブル２２１３を参照して、ｉページ目に含まれる入力パターン情報を伸長して、入力パターン情報バッファ２２１８に格納する（Ｓ２３０９）。入力パターンカウンタ２２１９が０に初期化される（Ｓ２３１０）。以下、入力パターンカウンタ２２１９の値をｊで表す。
【０１６２】
画素密度変換器２２２０は、入力パターン情報バッファ２２１８に記憶されたデータより、ｉページ目のｊ番目の入力パターンの横幅および縦幅を計算する（Ｓ２３１１）。
【０１６３】
入力パターン情報バッファ２２１８および代表パターン情報バッファ２２０６に記憶されたデータから、入力パターンおよびその入力パターンを表わす代表パターンの横幅および縦幅が抽出され、横幅および縦幅がそれぞれ比較される。横幅および縦幅のいずれかまたは双方が一致しなければ（Ｓ２３１２でＮＯ）、画素密度変換器２２２０は、代表パターンの縦幅および横幅のうち一致しない方または双方を、入力パターンのそれと一致するように変換する（Ｓ２３１３）。画像サイズの変換方法としては、共一次内挿法などの方法が従来提案されている。これらの方法は公知の技術であるため、その詳細な説明はここでは繰返さない。なお、そのような方法について、高木他「画像解析ハンドブック」（東京大学出版会、１９９１年）ＰＰ．４４１〜ＰＰ．４４４に詳しく記載されている。
【０１６４】
代表パターンの横幅および縦幅を入力パターンと一致させた後（Ｓ２３１３またはＳ２３１２でＹＥＳ）、ページ画像バッファ２２１５の入力パターンが存在する位置に、代表パターンをはめ込む（Ｓ２３１４）。
【０１６５】
なお、ここではサイズが完全に一致した場合のみ、Ｓ２３１３の処理を省略しているが、さらに条件を緩めて、横幅、縦幅の違いが小さい場合はＳ２３１３を省略することで、画質にそれほど影響を与えずに高速化が可能である。
【０１６６】
入力パターンカウンタ２２１９が１つインクリメントされる（Ｓ２１１４）。入力パターンカウンタ２２１９の値ｊがｉページ目の入力パターンの数と一致しているか否かが調べられる（Ｓ２３１６）。入力パターンカウンタ２２１９の値ｊが入力パターンの数と一致していなければ（Ｓ２３１６でＹＥＳ）、残りの入力パターンについても同様の処理を繰返すため、制御はＳ２３１１に戻る。
【０１６７】
入力パターンカウンタ２２１９の値ｊが入力パターンの数と一致していれば（Ｓ２３１６でＹＥＳ）、ｉページ目に対する処理は終了したため、ページカウンタ２２１４が１つインクリメントされる（Ｓ２３１９）。
【０１６８】
ページカウンタ２２１４の値ｉがページ数と一致しているか否か調べられ（Ｓ２３１８）、ページ数と一致していなければ（Ｓ２３１８でＮＯ）、残りのページに対して処理を行なうため、制御はＳ２３０８に戻る。
【０１６９】
ページ数と一致していれば（Ｓ２３１８でＹＥＳ）、すべてのページに対して処理が終了したため、画像を出力した後（Ｓ２３１９）、処理を終了する。
【０１７０】
以上説明したように、本発明の実施の形態によれば入力パターンが特徴ベクトルとして表わされ、特徴ベクトルを構成する部分ベクトル同士が比較される。このように入力パターンを部分的に比較することにより、全体的に見れば類似しているが、部分的に見れば類似していない文字を峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【０１７１】
また、ループの個数を検出することにより、部分的に見ても類似しているが、異なる文字を正確に峻別することができる。このため、入力パターンの置換え誤りを減少させることができる。
【０１７２】
さらに、入力パターンの類似範囲を連鎖的に拡大することにより、入力パターンを表わす代表パターンの個数を減少させることができる。このため、符号化効率を高く保つことができる。
【０１７３】
さらにまた、代表パターンとして画像データより切出された文字を使用している。このため、入力パターンを文字認識して文字のコードで代表パターンを表わす場合のように、文字認識による入力パターンの置換え誤りが発生しない。
【０１７４】
また、連結成分を入力パターンとする場合のように、復号画像の違和感が発生しない。
【０１７５】
画像復号時には、入力パターンの座標位置に代表パターンを順次貼付けるだけで画像が作成できる。このため、高速に画像を復元することができる。
【０１７６】
また、入力パターンの座標位置の符号化単位が、文書のページに対応しているため、所望のページに対応する画像のみを容易に復号できる。
【０１７７】
本発明による、図形に含まれるループ数の計算方法では、非背景領域のループ数の計算が、背景領域に着目し、そこから検出された、連結成分の外接矩形で、端に達していないものだけを数えることで、従来の、ループを実際に検出してから、検出されたループ数を数える手法に比べて容易に行なえる。
【０１７８】
また、このような構成をとることで、検出するループの開口部の形状、サイズに条件を課すことも、ループの開口部の外接矩形の形状、サイズに関する条件と置換えることができる限りは容易に実現できる。
【０１７９】
上述した画像符号化装置および画像復号装置は、コンピュータとコンピュータ上で動作するプログラムで実現することが可能である。画像符号化処理のプログラムおよび画像復号処理のプログラムはＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等のコンピュータ読取可能な記録媒体により提供され、コンピュータがそのプログラムを読取って実行するようにしても良い。また、ネットワークを介して配信されたプログラムをコンピュータが受信し、受信したプログラムを実行するようにしても良い。
【０１８０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１８１】
【図１】本発明の実施の形態に係る画像符号化装置の構成を示す図である。
【図２】入力パターン抽出器３０５の構成を示すブロック図である。
【図３】代表パターン抽出器３１１の構成を示すブロック図である。
【図４】ループ検出器１００１の構成を示すブロック図である。
【図５】パターン比較器１００５の構成を示すブロック図である。
【図６】本発明の実施の形態に係る画像復号装置の構成を示すブロック図である。
【図７】画像符号化処理のフローチャートである。
【図８】画像データバッファ３０４に格納されるデータの一例を示す図である。
【図９】入力画像の一部を拡大した図である。
【図１０】入力画像から得られた入力パターンを示す図である。
【図１１】入力画像から切出された文字を示す図である。
【図１２】入力パターン情報２１０３の一例を示す図である。
【図１３】符号化データバッファ３２０に格納されたデータの一例を示す図である。
【図１４】代表パターン情報２１０１の一例を示す図である。
【図１５】代表パターン画像２１０２の一例を示す図である。
【図１６】２値画像より入力パターンを抽出する処理のフローチャートである。
【図１７】文字列より入力パターンを抽出する処理の具体例を説明するための図である。
【図１８】代表パターンを抽出する処理のフローチャートである。
【図１９】ループ数の異なる入力パターンの一例を示す図である。
【図２０】代表パターンラベルバッファ３１２の値の詰め直し処理を説明するための図である。
【図２１】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２２】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２３】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２４】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２５】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２６】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２７】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２８】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図２９】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３０】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３１】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３２】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３３】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３４】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３５】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３６】代表パターンラベルバッファ３１２の値の変化を説明するための図である。
【図３７】入力パターンに含まれるループの数を検出する処理のフローチャートである。
【図３８】ループ検出器１００１による処理の一例を説明するための図である。
【図３９】パターン比較器１００５による入力パターンの比較処理のフローチャートである。
【図４０】入力パターンより特徴量を抽出する処理を説明するための図である。
【図４１】特徴ベクトルと部分ベクトルとの関係を説明するための図である。
【図４２】部分的に異なるパターンを説明するための図である。
【図４３】ループ数が異なるパターンを説明するための図である。
【図４４】符号化データの復号処理のフローチャートである。
【図４５】画素値変換テーブル２２０９の一例を示す図である。
【図４６】入力パターンの置換え誤りの一例を説明するための図である。
【図４７】入力パターンの分布を示す図である。
【図４８】従来の入力パターンの符号化を説明するための図である。
【図４９】従来の入力パターンの符号化を説明するための図である。
【図５０】従来の入力パターンの符号化を説明するための図である。
【図５１】従来の入力パターンの符号化を説明するための図である。
【図５２】従来の入力パターンの符号化を説明するための図である。
【図５３】従来の入力パターンの符号化の問題点を説明するための図である。
【符号の説明】
【０１８２】
３０１  オートフィーダ、３０２  カウンタ、３０３  スキャナ、３０４  画像データバッファ、３０５  入力パターン抽出器、３０６  ページカウンタ、３０７  ２値化しきい値算出器、３０８  ２値化しきい値バッファ、３０９  入力パターン画像バッファ、３１０  入力パターン情報バッファ、３１１  代表パターン抽出器、３１２  代表パターンラベルバッファ、３１３  代表パターン画像バッファ、３１４  代表パターン情報バッファ、３１５  代表パターン情報圧縮器、３１６  代表パターン画像減色器、３１７  入力パターン情報圧縮器、３１８  代表パターン画像圧縮器、３１９  データ混合器、３２０  符号化データバッファ。
【図１】
2005006353.tif 000003
【図２】
2005006353.tif 000004
【図３】
2005006353.tif 000005
【図４】
2005006353.tif 000006
【図５】
2005006353.tif 000007
【図６】
2005006353.tif 000008
【図７】
2005006353.tif 000009
【図８】
2005006353.tif 000010
【図９】
2005006353.tif 000011
【図１０】
2005006353.tif 000012
【図１１】
2005006353.tif 000013
【図１２】
2005006353.tif 000014
【図１３】
2005006353.tif 000015
【図１４】
2005006353.tif 000016
【図１５】
2005006353.tif 000017
【図１６】
2005006353.tif 000018
【図１７】
2005006353.tif 000019
【図１８】
2005006353.tif 000020
【図１９】
2005006353.tif 000021
【図２０】
2005006353.tif 000022
【図２１】
2005006353.tif 000023
【図２２】
2005006353.tif 000024
【図２３】
2005006353.tif 000025
【図２４】
2005006353.tif 000026
【図２５】
2005006353.tif 000027
【図２６】
2005006353.tif 000028
【図２７】
2005006353.tif 000029
【図２８】
2005006353.tif 000030
【図２９】
2005006353.tif 000031
【図３０】
2005006353.tif 000032
【図３１】
2005006353.tif 000033
【図３２】
2005006353.tif 000034
【図３３】
2005006353.tif 000035
【図３４】
2005006353.tif 000036
【図３５】
2005006353.tif 000037
【図３６】
2005006353.tif 000038
【図３７】
2005006353.tif 000039
【図３８】
2005006353.tif 000040
【図３９】
2005006353.tif 000041
【図４０】
2005006353.tif 000042
【図４１】
2005006353.tif 000043
【図４２】
2005006353.tif 000044
【図４３】
2005006353.tif 000045
【図４４】
2005006353.tif 000046
【図４５】
2005006353.tif 000047
【図４６】
2005006353.tif 000048
【図４７】
2005006353.tif 000049
【図４８】
2005006353.tif 000050
【図４９】
2005006353.tif 000051
【図５０】
2005006353.tif 000052
【図５１】
2005006353.tif 000053
【図５２】
2005006353.tif 000054
【図５３】
2005006353.tif 000055