(57)【要約】【課題】  レーザプリンタやコンピュータモニタ等のラスタディスプレイ装置上に画像を表示する改良した装置及び方法を提供する。【解決手段】  本発明によれば、データ構造から派生されるラスタ画像を発生するシステム（１０）が提供され、該システムは、データ処理装置と、該データ処理装置に対して入力ビットマップに関し認識処理を実行し入力ビットマップ内における識別可能なオブジェクトを検知する認識器と、識別可能なオブジェクト及び識別不可能なオブジェクトに対応するコード化データ及び入力ビットマップを包含するハイブリッドデータ構造を発生するメカニズムと、ハイブリッドデータ構造内の入力ビットマップから派生される視覚的に知覚可能なラスタ画像を発生することの可能な出力装置とを有することを特徴としている。【選択図】      図１
2007042126.tif 000002
【特許請求の範囲】
【請求項１】
画像表示装置において、
スキャンしたビットマップから派生したハイブリッドデータ構造を格納するメモリであって、該ハイブリッドデータ構造は識別可能なオブジェクト又はテキストに対応するコード化データである第１部分と各々が識別可能なオブジェクト又はテキストに対応している該スキャンしたビットマップから抽出した個別的ビットマップである第２部分との二つの部分を有しており、該コード化データが識別可能なオブジェクト又はテキストを正確に再生するのに十分ではない場合には、該コード化データの代わりに該対応する個別的ビットマップを使用することが可能であり、それにより該ハイブリッドデータ構造は該スキャンしたビットマップ全体を格納することの必要性無しに該コード化データ又は該対応する個別的ビットマップのいずれかを使用して該識別可能なオブジェクト又はテキストを再生するために十分であるメモリ、
該コード化データ及び該個別的ビットマップの結合を使用して表示用の画像をレンダリングさせるディスプレイマネージャ、
を有している画像表示装置。
【請求項２】
請求項１において、該識別可能なオブジェクト又はテキストが、単位として、ブロブ、文字、単語、テキストライン、テキストブロック、頁、及び文書を包含するグループから選択した少なくとも一つの項目である画像表示装置。
【請求項３】
請求項２において、複数個の識別可能なオブジェクトの各々が信頼性レベルを持っており、前記信頼性レベルが所定のスレッシュホールドレベルよりも一層高い場合には、その識別可能なオブジェクトがコード化される画像表示装置。
【請求項４】
請求項１乃至３の内のいずれか１項において、第１表示モードと第２表示モードとを有しており、該第１表示モードに設定された場合には、該ディスプレイマネージャが該コード化データをレンダリングさせること無しに表示用に個別的ビットマップを使用し、一方、該第２表示モードに設定された場合には、該ディスプレイマネージャが該コード化データをレンダリングさせて該コード化データに対応するレンダリングされたビットマップを発生させる画像表示装置。
【請求項５】
請求項１乃至４の内のいずれか１項において、該コード化データに対してフォント属性が設定されており、且つ該コード化データがレンダリングされる場合に、該フォント属性に基づいてレンダリングが行われる画像表示装置。
【請求項６】
請求項５において、該フォント属性がタイプフェースを包含している画像表示装置。
【請求項７】
請求項１において、該コード化データが所定の信頼性レベルよりも低い場合に、対応するコード化データの代わりに該個別的ビットマップのデータが該ディスプレイマネージャにより使用される画像表示装置。
【請求項８】
オブジェクト又はテキストを再生するために使用されるハイブリッドデータ構造を発生する方法において、
識別可能なオブジェクト又はテキストを包含するビットマップに関して認識処理を実施し、それにより識別可能なオブジェクト又はテキストを認識することを試み、
該識別可能なオブジェクト又はテキストをコード化データとして表し、
識別可能なオブジェクト又はテキストに対応するコード化データである第１部分と識別可能なオブジェクト又はテキストに対するコード化データがそのオブジェクト又はテキストを正確に再生するのに十分ではない場合に該コード化データの代わりに対応する個別的ビットマップを使用することが可能であるように各々が識別可能なオブジェクト又はテキストに対応する個別的ビットマップである第２部分との二つの部分を持っているハイブリッドデータ構造であって、ビットマップ全体を格納することの必要性無しに該コード化データ又は該個別的ビットマップのいずれかを使用して全ての識別可能なオブジェクト又はテキストを再生させるのに十分であるハイブリッドデータ構造を発生し且つ格納する、
上記各ステップを有している方法。
【請求項９】
請求項８において、該ハイブリッドデータ構造が電子文書を定める方法。
【請求項１０】
請求項８において、該コード化データが所定の信頼性レベルよりも低い場合に、対応するコード化データの代わりに該個別的ビットマップのデータを使用して該識別可能なオブジェクト又はテキストを表す方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大略、デジタル的に格納及び／又は処理された画像を表示する技術に関するものであって、更に詳細には、例えばレーザプリンタやコンピュータモニタ等のラスタ表示装置上に画像を表示する方法及び装置に関するものである。
【背景技術】
【０００２】
デジタル画像は効率的に格納し、編集し、印刷し、再生し、且つその他の方法で走査することが可能である。従って、例えば用紙上の画像をデジタイゼーションとして知られるプロセスによってその画像のデジタル表示へ変換することが望ましいことが多々ある。画像のデジタル表示は原始的なもの即ち非コード化、即ちコード化していないもの（例えば、画像要素即ち「ピクセル（画素）」のアレイ）とすることが可能であり、又原始的表示を発生させることの可能なより高いレベルの記述的コード化情報（例えば、ＡＳＣＩＩ文字コード）を有することが可能である。一般的に、ハイレベルのコード化デジタル表示は原始的な非コード化表示よりも一層コンパクトである。
【０００３】
光学文字認識（ＯＣＲ）は、デジタイゼーション即ちデジタル化及びビットマップ表示におけるテキストをＡＳＣＩＩ文字コード等のハイレベルコード化表示へ変換する方法を包含している。ＯＣＲデジタル化においては、例えば用紙等の印刷表面上のテキスト文字が典型的に光学スキャナによって走査され、その際に画像のピクセル（画素）のビットマップが形成される。ピクセル即ち画素は画像の基本的な画像要素であって、且つビットマップはその画像の各ピクセルに関する情報を包含するデータ構造である。ビットマップは、それがオン／オフ情報以上のものを包含する場合には、しばしば、「ピクセルマップ」と呼称される。
【０００４】
他のタイプのプロセサも実世界の画像をデジタル化することが可能である。例えばデジタルカメラ等の装置を使用して、捕獲した画像に対応するビットマップを直接的に形成することが可能である。コンピュータシステムは該ビットマップから画像を形成し且つそれをコンピュータディスプレイ上に表示するか又はそのビットマップを印刷すべくプリンタへ送給することが可能である。ビットマップ発生器は、他のタイプの画像関連入力を処理し且つ表示することの可能なビットマップへ変換するために使用することが可能である。入力するファクシミリ（ファックス）データは処理し、認識し、印刷等を行なうことの可能な低分解能ビットマップを有している。
【０００５】
ビットマップをコンピュータへ入力すると、該コンピュータはそのビットマップに関して認識処理を行ない、従って例えばテキストの文字又はその他の語句単位等の該入力ビットマップの各部分又はオブジェクトを認識し且つ所望のフォーマットのコードへ変換させる。次いで、そのように認識された文字又はその他のオブジェクトを表示し、編集し、又はコンピュータ上で稼動中のアプリケーションソフトウエアプログラムを使用してコード化データからその他の態様で処理することが可能である。
【０００６】
認識されたコード化オブジェクトを表示する幾つかの態様が存在している。レーザプリンタ又はコンピュータモニタ等のラスタ出力装置は、典型的に、プリンタ又はディスプレイスクリーン上で表示するためのピクセルマップ内へ挿入することの可能なコード化オブジェクトのビットマップを必要とする。ラスタ出力装置は、該ピクセルマップから行及び列の形態に配列されたピクセルのアレイを表示することによって画像を形成する。コード化オブジェクトのビットマップは、そのコードに対しメモリ内に格納されている出力ビットマップを検索することによって与えることが可能であり、その場合に各可能なコードは関連する格納されているビットマップを有している。例えば、フォントの形態で文字を表わすコードの場合には、１つのビットマップをそのフォントにおいて且つ必要とされる場合のあるそのフォントの各寸法に対して各文字と関連付けることが可能である。文字コード及びフォント寸法はビットマップへアクセスするために使用される。別のより効率的な方法は、各文字コードと関連する「文字アウトライン」を使用し且つ文字アウトライン及び寸法等のその他の文字情報から文字のビットマップをレンダリング（演出）させることである。文字アウトラインからビットマップをレンダリング即ち演出させるために一般的に使用される言語はカリフォルニア、マウンテンビューのアドビシステムズ、インコーポレイテッドによるポストスクリプト（ＰｏｓｔＳｃｒｉｐｔ）言語である。文字アウトラインは、例えばアドビシステムズ、インコーポレイテッドによるタイプ１（Ｔｙｐｅ  １）フォーマット等のスタンダードなフォーマットで記述することが可能である。
【０００７】
ＯＣＲプロセスはコンピュータシステムへ供給されるデジタル化された画像の精度によって制限されている。デジタル化装置（例えばスキャナ）はそれが発生するビットマップへノイズを付加したり歪みを発生させる場合がある。更に、ＯＣＲ処理はビットマップ画像を完全に認識するものではなく、特に、ビットマップ画像が低分解能のものであったり、又は低品質のものである場合にはそのことが言える。例えば、認識器が不明確な文字、互いに近付き過ぎている文字、又はそれに対して情報を有することのないフォントからなる文字等を誤って読取る場合がある。
【０００８】
不完全な認識は、認識された文字の編集を行なう場合及び画像を印刷又は表示する場合に問題を発生させる場合がある。誤って認識した画像は誤って表示される場合があり、且つ全く認識されなかった画像は全く表示されない場合があり、又は何等かの誤った画像として表示される場合がある。このことはＯＣＲ処理の価値を低減させる。何故ならば、認識された文書がかなりの編集作業を必要とする場合があるからである。
【０００９】
【特許文献１】欧州特許出願公開０５６４２０１Ａ２号公報
【特許文献２】欧州特許出願公開００２４５２４Ａ１号公報
【特許文献３】欧州特許出願公開０５３９１０６Ａ２号公報
【特許文献４】米国特許第４９８５８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上述した如き従来技術の欠点を解消しレーザプリンタやコンピュータモニタ等のラスタ表示装置上に画像を表示することの可能な改良した装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、コード化オブジェクト及び非コード化オブジェクトを記述するデータ構造を発生する方法及び装置を提供している。本発明は光学スキャナ又はその他のビットマップ発生器によって与えられるビットマップからテキスト又はその他のオブジェクトを認識するために適用可能である。認識器によって認識されるオブジェクト及び認識されないオブジェクトはデータ構造内に格納される。見かけ上完全に認識された文書は、データ構造内のコード化オブジェクトと関連する元のビットマップを表示することによって与えられる。
【００１２】
本発明装置は、データ処理装置及びビットマップ内のオブジェクトを検知するために入力ビットマップに関して認識処理を行なう認識器を包含する画像生成システムを有している。認識器は識別可能なオブジェクト及び識別不可能なオブジェクトに対し該オブジェクトからコード化部分を生成する。本システムは、識別可能なオブジェクトに対応するコード化部分及び識別可能なオブジェクトに対応する入力ビットマップの部分に対するリンクを包含するデータ構造を生成する。識別不可能なオブジェクトのコード化部分、及び対応するビットマップ部分に対するリンクも、好適には、そのデータ構造内に包含される。プリンタ、プロッタ又はコンピュータディスプレイ等の出力装置が、該入力ビットマップから派生された視覚的に知覚可能な画像を発生する。該画像はそれらの元のビットマップ形態で識別可能なオブジェクト及び識別不可能なオブジェクトを描写しており、従って認識誤りによって発生される不正確な画像が表示されることはない。入力ビットマップをデータ処理装置へ供給するために、光学スキャナ、デジタルカメラ、ビットマップ発生器等の入力装置を包含させることが可能である。
【００１３】
認識器が検知可能なビットマップのオブジェクトは、好適には、文字や単語等の語句単位を包含している。識別不可能なオブジェクトは、好適には、認識スレッシュホールド信頼性レベルに到達しない認識されなかった単語に対応している。本システムは、好適には、入力ビットマップに対し幾何学的な補正を行ない、その場合に、ビットマップの歪みマップを形成し且つ歪みマップ及びビットマップからのレイアウト補正変換を形成する。
【００１４】
本発明は、更に、画像のビットマップからデータ構造を生成する方法を包含している。本方法は、デジタルプロセサ上で実現され、画像のビットマップを包含する信号を入力し且つ該ビットマップを語句単位の階層構造へ区画化する。少なくとも１つのコード化オブジェクトが所定の階層レベルの各語句単位へ割当てられ、その場合に各コード化オブジェクトは関連する信頼性レベルを有している。最後に、コード化オブジェクト及びコード化オブジェクトをそれに対応する語句単位へリンクさせるリンクデータがデータ構造内に格納される。コード化オブジェクトがスレッシュホールド信頼性レベルよりも高い信頼性レベルを有する場合には、そのコード化オブジェクトは識別可能なものであると考えられる。語句単位に対するコード化オブジェクトがスレッシュホールド信頼性レベルよりも高い信頼性レベルを有するものでない場合には、その語句単位は識別不可能なものであると考えられ且つ最も高い信頼性レベルを有するその語句単位に対するコード化オブジェクトとして格納される。所定の階層レベルは、好適には、文字階層レベル及び単語階層レベルを包含している。
【００１５】
本発明の更に別の側面においては、データ構造を生成し且つ走査するシステムが、入力ビットマップ内の語句単位を検知するデータ処理装置において動作する認識器を有している。解析器がデータ処理装置のメモリ内にデータ構造を形成し且つ格納する。そのデータ構造は、入力ビットマップ内の語句単位に対応するコード化した識別可能なオブジェクト及びコード化した識別不可能なオブジェクトを包含している。表示装置がデータ構造の少なくとも一部の画像を、入力ビットマップを表示することによってスクリーン等の表示装置上に発生させ且つ表示させる。データ処理装置上において構成された表示マネジャがスクリーン上の画像を走査する。この表示マネジャはデータ構造、従って画像を編集することを可能とするエディタ（編集器）を包含している。このエディタはコード化データをレンダリングさせた画像として表示し、且つ識別不可能なオブジェクトを識別可能なオブジェクトへ変化させるために使用することが可能である。表示マネジャは、更に、好適には、サーチする単語又は句に対して正確に近似的に一致するものを見つけだすためにデータ構造のコード化オブジェクトをサーチするファインダ即ち探索器を包含している。一致したコード化オブジェクトに対応する語句単位は、好適には、それが現在表示されている場合にはハイライトさせる。
【００１６】
本発明の更に別の側面においては、データ装置上において画像を生成する方法がビットマップ内のオブジェクトを検知するために入力ビットマップに関する認識処理を行なう。データ構造が形成されて、オブジェクトの各々に対応するコード化部分及びコード化部分の各々に対応する例えば単語ビットマップ等の非コード化部分を包含する。次いで、データ構造から視覚的に知覚可能な画像が発生される。この画像はデータ構造の非コード化部分から派生される。オブジェクトの各々は、好適には、関連する信頼性レベルを有しており、且つ識別不可能なオブジェクトはスレッシュホールド信頼性レベルよりも低い信頼性レベルを有する認識されなかった単語に対応している。スレッシュホールド信頼性レベルより低い信頼性レベルを有するオブジェクトは前記非コード化部分として表示される。好適には、前記画像発生ステップ期間中に、オブジェクトの全ての信頼性レベルがスレッシュホールド信頼性レベルより低くなるようにスレッシュホールド信頼性レベルを上昇させ、その結果全てのオブジェクトに対する非コード化部分のみが表示されることとなる。好適には、入力した単語又は句に対してデータ構造をサーチするステップ及びデータ構造のコード化部分を編集するステップも包含される。
【００１７】
本発明の利点は、デジタル化した画像内のオブジェクトが、認識された画像としてではなくそれらの元のビットマップ形態で表示される。従って、誤って認識された画像から表示エラーが発生する可能性はない。ユーザはソース即ち元の画像と同一の画像を表示する。本発明の別の利点は、データ構造が、ユーザによってサーチし、編集し、且つその他の態様で走査することの可能なコード化データを包含していることである。
【発明を実施するための最良の形態】
【００１８】
本発明は幾つかの異なるタイプのフォント、文字寸法、フォーマット変形例、及び認識困難な文字を包含する走査したテキストの頁を表示するのに特に適している。然しながら、本発明は、更に、例えばグラフィックな建築図、地図、技術的イラスト等のその他のタイプの画像表示にも適したものである。
【００１９】
本明細書においては、画像及びそれに関連した構造に関して多数の用語を使用する。「ピクセル（画素）」は画像の単一の画像要素のことである。複数個のピクセルが集まって画像を形成する。「ビットマップ」とはピクセルを表わすデータ構造内のデジタルメモリ内に格納されるビットのことである。本明細書においては、「ビットマップ」は各ピクセルがオンか又はオフのいずれかである黒白ピクセルを出力するためのデータ構造、及び例えばカラー又は中間調ピクセルの場合の各ピクセルに対してより大きくの情報を有する「ピクセルマップ」の両方のことを意味する。「分解能」は表示されるか又は印刷された画像のピクセルの寸法、形状及び離隔のことを意味する。例えば、非常に小さく密接したピクセルからなる表示されたビットマップは、広く分散し大きなピクセルを有する表示されたビットマップよりもより高い分解能を有している。「レンダリング（演出）」とは、例えば文字アウトライン等の画像記述からビットマップを形成することを意味している。「ラスタ」とは行及び列の形態で配列したピクセルのアレイを表示することによって画像を形成する出力装置上のピクセルの配列のことを意味する。ラスタ出力装置としては、レーザプリンタ、コンピュータディスプレイ、ビデオディスプレイ、ＬＣＤディスプレイ等がある。「コード化」データ又は部分とは、例えばビットマップ形態における生のデータよりも演算装置においてより容易に処理可能であり且つより簡潔であるように設計された「コード」によって表現されるものである。「非コード化」データ又は部分とは例えばビットマップのデータ等のコードによって表現されることのないデータのことである。例えば、小文字「ａ」は例えばＡＳＣＩＩコードにおける番号９７のコード化データとして表現することが可能であり、又ディスプレイスクリーン又はプリンタ等の出力装置上に「ａ」の外観を形成するために使用することの可能な非コード化グラフィック又は画像データとして表現することが可能である。フォントは、通常、コード化データを非コード化データと関連付ける１つ又はそれ以上の関連した「コード」を有している。
【００２０】
図１において、ラスタ画像を生成するためのコンピュータシステム１０は、入力装置１２と、デジタルコンピュータ１４と、ディスプレイスクリーン１６と、プリンタ１８と、キーボード２０と、フロッピィディスクドライブ２２と、ハードディスクドライブ２４とを有している。入力装置１２は、ビットマップ画像をデジタルコンピュータ１４へ入力するために使用される。図示した実施例においては、入力装置１２は、光学スキャナ２６、デジタルカメラ２８及び／又はビットマップ発生器３０を包含している。光学スキャナ２６は、画像を走査し走査した画像からビットマップを発生する装置である。このようなスキャナは、典型的には、例えば用紙３２等の用紙上に形成された画像をデジタルコンピュータ１４へ入力することの可能なビットマップ形態へデジタル化するために使用される。そのようにして発生されたビットマップは、通常、走査された用紙からの文字及び単語等のテキスト的なオブジェクトを包含している。本発明と共に使用するのに適した光学スキャナとしては、カリフォルニア州パルアルトのヒューレットパッカード社によって製造されているＳｃａｎＪｅｔ  IIｃｘがある。デジタルカメラ２８は該カメラによって捕獲される画像のビットマップを形成する。例えば、ユーザがカメラ２８である情景の「スナップショット」を撮ると、該カメラはその情景をデジタル化し且つデジタルデータをビットマップとしてデジタルコンピュータ１４へ出力する。デジタルカメラは当業者にとって公知である。ビットマップ発生器３０はビットマップを発生しそのビットマップをデジタルコンピュータ１４へ出力する任意の装置とすることが可能である。例えば、別のコンピュータシステムがネットワークデータライン又はモデム（不図示）を使用して電話線を介してデジタルコンピュータ１４へビットマップを供給することが可能であり、又ビットマップはデジタルコンピュータのファクシミリ（ファックス）カードによって受信することが可能である。更に、ユーザはコンピュータ上でビットマップを発生させることが可能であり且つそのビットマップをフロッピィディスク２２によるか又はその他の記憶媒体によってシステム１０へ送給することが可能である。デジタルカメラ２８及びビットマップ発生器３０によって発生されたビットマップは、光学スキャナ２６によって発生されたビットマップと同様に、テキストオブジェクト又はその他のオブジェクトを包含することが可能である。これらのオブジェクトは本発明において使用する認識器によって識別可能な場合も識別可能でない場合もある（以下に説明）。
【００２１】
デジタルコンピュータ１４は１つ又はそれ以上の入力装置１２から入力ビットマップを受取り、且つその入力ビットマップを表示し、変換し及び／又は走査することが可能である。図示した実施例においては、コンピュータ１４は入力ビットマップ内のテキスト文字又はその他のタイプのオブジェクトを認識するための認識器を実現することも可能である。一度認識されると、文字又はその他の識別可能なオブジェクトは例えばＡＳＣＩＩ等の標準的フォーマットでコード（コードデータ）として格納することが可能である。これらのコード化オブジェクトはそのコードのフォーマットを受付けるアプリケーションプログラムによって表示し且つ走査することが可能である。次いで、ユーザはディスプレイスクリーン１６上でフォーマット化したオブジェクトを観察することが可能であり、且つ、所望により、それらを編集することが可能である。デジタルコンピュータ１０はパソコン（例えば、ＩＢＭ−ＰＣ  ＡＴコンパチパソコン）、ワークステーション（例えばＳＵＮ又はヒューレットパッカードワークステーション）等とすることが可能である。
【００２２】
出力装置上に画像を表示するために、コンピュータは１つ又はそれ以上のタイプの手順を実施することが可能である。例えば、コンピュータ１４はビットマップデータの画像を表示するために入力ビットマップデータを直接ディスプレイスクリーン１６又はプリンタ１８へ転送することが可能である（又は、ビットマップデータをメモリキャッシュへ供給することが可能である）。該コンピュータは、更に、コード化オブジェクトを画像記述へ変換することが可能である。例えば、認識されたテキスト文字に対するコードを画像記述と関連付けることが可能であり、そのことは認識された文字のビットマップの幾つかのコピーよりも使用するメモリ空間はより少ない。公知の画像記述言語はカリフォルニア州マウンテンビューのアドビシステムズ、インコーポレイテッドによるポストスクリプト（ＰｏｓｔＳｃｒｉｐｔ）言語である。例えば、画像記述は、文字の形状を記述する格納されている文字アウトラインを参照することが可能であり且つその他のレンダリング情報を包含している。公知の文字アウトラインフォーマットはアドビシステムズ、インコーポレイテッドによるＴｙｐｅ  １フォーマットである。文字アウトラインを使用する場合には、コンピュータ１４は各文字に対するビットマップをレンダリングさせ且つそのビットマップを表示のために出力装置に対してアクセス可能な格納区域へ送給することが可能である。他の実施例においては、例えばプリンタ等の出力装置が文字アウトラインからビットマップをレンダリングすることの可能なマイクロプロセサ又は同様のコントローラを包含することが可能である。
【００２３】
デジタルコンピュータ１４は、更に、入力ビットマップ又は入力ビットマップの画像記述を修正するために使用することも可能である。ユーザがビットマップのある部分を変化させることを希望する場合には、デジタルコンピュータ１４がこれらの変化を実行し且つ変化した画像を出力装置の１つへ供給する。
【００２４】
ディスプレイスクリーン１６は入力ビットマップの画像及び／又は入力ビットマップから派生された画像（即ち、レンダリングされた画像）を表示する。図示した実施例においては、ディスプレイスクリーン１６はピクセルの行及び列の形態でビットマップのビットに対応してスクリーン上に画像を表示するラスタ装置である。即ち、ビットマップをディスプレイスクリーン１６へ入力させ且つビットマップのビットをピクセルとして表示させることが可能である。入力ビットマップは第一実施例においてはディスプレイスクリーン上に直接的に表示される。別の実施例においては、又はコード化データを編集している場合には、コンピュータ１４は最初に画像記述をビットマップへレンダリングさせ且つ表示されるべきこれらのビットマップをディスプレイスクリーン１６へ送給することが可能である。例えばＣＲＴ、ＬＣＤディスプレイ等のラスタディスプレイスクリーンが本発明に適している。
【００２５】
プリンタ装置１８は入力ビットマップの画像及び／又は入力ビットマップから派生された画像を用紙又は同様の表面上に与える。プリンタ１８はレーザプリンタとすることが可能であり、それは、ディスプレイスクリーン１６と同じく、ビットマップから派生されたピクセルを表示するラスタ装置である。プリンタ装置１８はコード化及び非コード化データから派生された画像をプリントすることが可能である。例えばプロッタ、タイプセッタ等のその他の装置をプリンタ装置１８として使用することが可能である。
【００２６】
キーボード２０はコマンド及びその他の命令をデジタルコンピュータ１４へ入力するためにユーザによって使用される。ディスプレイスクリーン１６上に表示されるか又はデジタルコンピュータ１４へアクセス可能な画像は、キーボード２０によって入力された命令によってユーザにより編集し、サーチし又はその他の走査を行なうことが可能である。
【００２７】
フロッピィディスクドライブ２２及びハードディスクドライブ２４は、入力ビットマップ、画像記述、文字アウトライン及びレンダリングさせたビットマップを格納するために使用することが可能である。フロッピィディスクドライブ２２は、このようなデータをその他のコンピュータシステム１０へ搬送することを容易とし且つハードディスクドライブ２４は大量の格納空間を必要とする傾向のある例えばビットマップ等の大量の格納されているデータへの高速のアクセスを行なうことを可能とする。その他のタイプの格納装置を使用することも可能である。
【００２８】
図２は図１に示したようなデジタルコンピュータ１４及び関連する入力及び出力装置のブロック図である。デジタルコンピュータ１４は、好適には、マイクロプロセサ３６と、メモリバス３８と、ランダムアクセスメモリ（ＲＡＭ）４０と、リードオンリメモリ（ＲＯＭ）４２と、ペリフェラルバス４４と、キーボードコントローラ４６とを包含している。
【００２９】
マイクロプロセサ３６はデジタルコンピュータ１４の動作を制御する汎用デジタルプロセサである。メモリから検索した命令を使用して、マイクロプロセサ３６は入力装置１２からの入力ビットマップデータの受領を制御し、任意の入力ビットマップの認識及び画像記述への変換を制御し、且つ任意の文字アウトラインの表示のための出力ビットマップへのレンダリングを制御し、出力ビットマップ及び／又は画像記述の例えばディスプレイスクリーン１６及びプリンタ１８等の出力装置への転送を制御し、且つこれらの出力装置の制御を行なう。例えば、マイクロプロセサ３６は入力装置１２から入力ビットマップを受取ることが可能である。これらの入力ビットマップは、例えば、用紙３２上の文字を表わすことが可能である。その入力ビットマップは部分に分割させ且つ認識器によって文字として認識することが可能であり、その時点において、それらは例えばＡＳＣＩＩ又はポストスクリプト等のフォーマットで文字コード又はその他の語句単位として格納することが可能である。認識することの不可能な入力ビットマップのオブジェクト（「識別不可能なオブジェクト」）も（認識されなかった）コード化データとして格納される。このことについては後に詳細に説明する。別の実施例においては、識別不可能なオブジェクトは、識別可能なオブジェクトに対するコードを格納するのと同一のデータ構造内に、コード化データ及び関連する非コード化ビットマップとして格納することが可能である。このプロセスについては図４を参照して詳細に説明する。
【００３０】
メモリバス３８はＲＡＭ４０及びＲＯＭ４２へアクセスするためにマイクロプロセサ３６によって使用される。ＲＡＭ４０は、マイクロプロセサ３６によって汎用格納区域として及びスクラッチパッドメモリとして使用され、且つ入力ビットマップ及びレンダリングさせたビットマップを格納するために使用することも可能である。ＲＯＭ４２は、マイクロプロセサ３６が実行する命令及び特定のフォーマットでビットマップの画像を表示するために使用される画像記述及び文字アウトラインを格納するために使用することが可能である。例えば、文字を表わす入力ビットマップの部分はＡＳＣＩＩ文字コード又は画像記述として認識し且つ記述することが可能である。文字と関連する文字アウトラインは、それらの文字のビットマップが出力装置によってレンダリングされた画像として表示されるべくレンダリングされる場合にＲＯＭ４２から検索することが可能である。一方、ＲＯＭ４２は、コンピュータ１４内に設ける代わりに、例えばプリンタ１８等の出力装置内に設けることも可能である。
【００３１】
ペリフェラルバス４４は、デジタルコンピュータ１４によって使用される入力、出力及び格納装置へアクセスするために使用される。図示した実施例においては、これらの装置は、フロッピィディスクドライブ２２、ハードディスクドライブ２４、光学スキャナ２６、カメラ２８、ビットマップ発生器３０、ディスプレイスクリーン１６、プリンタ装置１８を包含している。キーボードコントローラ４６は、キーボード２０から入力を受取り且つ各押下げたキーに対するデコードされた記号をバス４７を介してマイクロプロセサ３６へ送給するために使用される。
【００３２】
図３はハイブリッドデータ構造から発生された本発明の表示されたラスタ画像５０の一例を示した模式的説明図である。図５及び７を参照してより詳細に説明する如く、入力ビットマップのオブジェクト即ち「語句単位」は認識器により区画化され且つ解析される。認識器はオブジェクトの意味又は同一性の一つ又はそれ以上の推定又は仮定（「ラベル」）の各々に対して信頼性レベルを割当てる。この場合に、あるオブジェクトに対する少なくとも一つのラベルが認識信頼性スレッシュホールドよりも高い信頼性レベルを有する場合には、そのオブジェクトは「識別可能」又は「認識済」と考えられる。一方、認識信頼性スレッシュホールドより高いラベルを有するものではない場合には、そのオブジェクトは「識別不可能」又は「認識不良」と考えられる。従って、「認識不可能」ということは、本システムがそのオブジェクトの意味に関する仮定を有するものではないということを必ずしも意味するものではなく、このような仮定が存在する場合にそれが信頼性スレッシュホールドレベルよりも高い信頼性レベルを有するものではないことを意味するものである。
【００３３】
第一実施例においては、ラスタ画像５０が入力ビットマップにおいて認識されたオブジェクトの信頼性レベルに拘らず、非コード化（即ち、ビットマップ）画像として表示されている。元の生の処理されていないビットマップ、又はその部分は、出力装置上に直接的に表示させることが可能であり、又は、各個別的な単語ビットマップはそれの対応する認識された単語の代わりに表示させることが可能である。このことは、例えばＯＣＲ装置を使用して得られた元の画像の分解能及び忠実性の全てを伴って正確な外観を有する画像とさせることを可能としている。表示された画像５０は認識に依存するものではなく、そのことは、誤って認識されたオブジェクト又は認識に起因するその他の不正確性が表示される可能性がないという利点を有している。単語及び／又はビットマップのその他のオブジェクトは尚且つ解析され、且つ対応するコード化データがバックグラウンドにおいて形成されて、以下に説明する如く、オブジェクトのサーチ及び編集を行なうことを可能としている。
【００３４】
第二実施例においては、図３に示した如く、ラスタ画像５０の認識されたオブジェクトをコード化データからレンダリングさせ且つ表示させることが可能である。文字５２及び単語５４は文字コードからレンダリングさせたラスタ画像である。これらの文字及び単語は、元の入力ビットマップ形態におけるよりもより容易に格納し且つ処理することの可能な関連した寸法及びタイプフェースを有する例えばＡＳＣＩＩ又はポストスクリプト等の特別の形態で格納されていた識別可能なコード化オブジェクトである。図３に示した如く、プリンタ１８上で用紙上にプリントした場合に、各識別可能な文字と関連する文字アウトラインはプリンタ１８によってコード化ラスタ画像として表示されるビットマップへレンダリングされる。
【００３５】
非コード化ラスタ画像５６は文字５２及び単語５４とは異なっている。非コード化画像５６はマイクロプロセサ３６上で構成される認識器によって認識されなかった元の入力ビットマップの部分から派生されている。図示例においては、画像５６のオブジェクトに対する認識の信頼性レベルはそのオブジェクトを識別可能なオブジェクトとして類分けすることが可能な程度に充分に高いものではなく、従って、それらは識別不可能なオブジェクトである。非コード化画像５６は認識されず格納されている（例えば、ＡＳＣＩＩ）文字コード及び文字アウトラインから派生されたものではないので、それらは非コード化データから派生される。画像５６は入力装置１２からデジタルコンピュータ１４によって受領された入力ビットマップから直接的に派生された画像としてプリンタ１８上に表示される。従って、非コード化画像５６は元の入力ビットマップ画像と同程度に正確であり且つ認識されることなしに表示させることが可能である。例えば、ライン５７はグラフィック画像であるから文字又は単語として認識することは不可能である。これらのラインを記述する元のビットマップ部分の非コード化データからの画像の表示はこれらのラインを正確に描写することを可能とする。好適には、識別不可能なオブジェクトがハイブリッドデータ構造における（信頼性の低い）コード化データとして存在することであり、それらが単に表示されないものである。この場合に、「コード化画像」はコード化データから派生され、レンダリングされ且つ表示され、且つ「非コード化画像」は非コード化データを使用して派生され且つ表示される。
【００３６】
図４は入力ビットマップからのコード化及び非コード化データから派生されたハイブリッドデータ構造及びラスタ画像を生成する本発明方法を示したフローチャート６０である。本発明プロセスの基本は、ハイブリッドデータ構造を生成し且つ格納することであり、ハイブリッドデータ構造の表示、編集及びサーチを行なうプロセスはその他のプロセス内に包含させるか又はその他のプロセスから与えることが可能である。
【００３７】
本プロセスはステップ６２において開始し、且つ、ステップ６４において、１つ又はそれ以上の入力装置１２から生の入力ビットマップが検索される。上述した如く、その生のビットマップは、例えばテキスト文字及び単語又はその他の形状等の１つ又はそれ以上のオブジェクトを具有している。この生のビットマップは本発明の適宜のステップにおいて格納され且つマイクロプロセサ３６へ与えられる。次のステップ６６において、マイクロプロセサ３６はこの生のビットマップを識別可能なオブジェクトと識別不可能なオブジェクトからなるハイブリッドデータ構造内へ変換させる。例えば単語及び文字等の識別可能なオブジェクトは以下に説明する如くマイクロプロセサ上に構成された認識器によって認識されるべきことが可能なビットマップの部分から派生される。識別不可能なオブジェクトは、認識器によって認識されることの不可能な入力ビットマップの部分から派生されたオブジェクトである。第一実施例において、ハイブリッドデータ構造は、更に、データ構造内のオブジェクトを生のビットマップの一部又は位置と関係付ける「リンク」をも包含している。このようなリンクは、以下に説明する如く、座標、ポインタ等を包含することが可能である。データ構造はコード化部分及び非コード化部分の両方がデータ構造によって参照されるという意味において「ハイブリッド」データ構造である。本プロセスは、オプションによってステップ６６が完了した後に終了することが可能であり、そうでなければ、本プロセスはステップ６８へ継続して行なわれる。
【００３８】
別の実施例においては、ハイブリッドデータ構造は識別可能なオブジェクトに対するコード化部分のみを有する場合がある。例えば、認識器は、入力ビットマップの全ての識別不可能なオブジェクトに対して「ヌル（ｎｕｌｌ）」記号（又は、認識不可能であることを表わすその他の表示）であるコード化データを出力することが可能である。従って、マイクロプロセサはハイブリッドデータ構造において識別可能なオブジェクトに対してコード化データを有するに過ぎず、ハイブリッドデータ構造におけるヌル記号（又は、それと関連するヌル記号を有するコード済データ）を包含するものではない。
【００３９】
次のステップ６８において、マイクロプロセサは後処理が存在するか否かを判別する。ステップ６６において形成されたハイブリッドデータ構造をユーザが表示するか又は走査することを所望する場合には、後処理が発生する。この後処理は、もっと後で及び／又は別のコンピュータシステムで処理することが可能である（即ち、ハイブリッドデータ構造は一つのコンピュータで形成し且つ別のコンピュータに表示させるか走査させることが可能である）。後処理がない場合には、本プロセスはステップ７０で示した如く完了し、即ち本プロセスはハイブリッドデータ構造の形成と共に完了する。後処理が存在する場合には、マイクロプロセサは、ユーザがハイブリッドデータ構造を表示し、ハイブリッドデータ構造を表示するか、ハイブリッドデータ構造をサーチするか、又はハイブリッドデータ構造を編集することを所望するか否かを判別する。
【００４０】
ユーザが表示を見ることを所望する場合には、ステップ７２を実行し、その場合にマイクロプロセサ上で構成される表示マネジャがハイブリッドデータ構造の表示を制御する。ハイブリッドデータ構造は、例えば、ディスプレイスクリーン１６上又はプリンタ１８により用紙上に元のビットマップとして、即ち非コード化ラスタ画像として表示される。一方、表示されたハイブリッドデータ構造は識別可能なオブジェクトのコードから新たにレンダリングされたラスタ画像及び識別不可能なオブジェクトの元の非コード化ラスタ画像を包含している。適宜の表示マネジャ７２としてはアドビシステムズ、インコーポレイテッドから入手可能なアクロバット（Ａｃｒｏｂａｔ）ソフトウエアがある。第二実施例を使用する場合には、図３に示した如く、識別不可能なオブジェクトの画像を、識別可能なオブジェクトの表示されたラスタ画像と整合し且つ実質的に一様な全体的な画像を形成するようにディスプレイ上に位置決めさせる。ハイブリッドデータ構造を表示するプロセスについては図１０を参照して詳細に説明する。ハイブリッドデータ構造が表示されると、本処理はステップ６８へ復帰する。
【００４１】
ユーザがハイブリッドデータ構造をサーチすることを所望する場合には、ステップ７４が実行される。ステップ７４において、マイクロプロセサはステップ７２に関して詳細に説明したようにハイブリッドデータ構造を表示し且つユーザが例えば単語又は句等の特定のサーチ基準を特定することを可能とさせる。次いで、マイクロプロセサはそのように特定された基準に関してハイブリッドデータ構造のサーチを行なう。本発明のサーチ方法については図１１を参照して詳細に説明する。データ構造はサーチプロセス期間中に表示させるか又は編集することが可能である。ユーザがサーチを完了すると、本プロセスはステップ６８へ復帰する。
【００４２】
ユーザがハイブリッドデータ構造を編集することを希望する場合には、ステップ７６が実行される。ハイブリッドデータ構造は、好適には、ステップ７２において生のビットマップではなくレンダリングされたコード化画像を使用してディスプレイスクリーン上に表示される。更に、表示マネジャが、文字又は単語置換及び誤って認識された単語及び文字の編集等を包含する多数のオプションを提供するユーザに対しての編集インターフェースを提供する。この編集プロセスについては図１２を参照して更に詳細に説明する。ユーザが編集を終了すると、本プロセスはステップ６８へ復帰する。
【００４３】
図５は、図４に示した如く、生の入力ビットマップをハイブリッドデータ構造へ変換する状態を示したフローチャート６６である。このプロセスはステップ８０において開始する。ステップ８２において、マイクロプロセサがビットマップを語句単位の階層へ区画化することによって入力ビットマップをセグメント化させる。「語句単位」とは文字、単語、テキストライン、テキストブロック等の単位乃至はオブジェクトに対応するビットマップ又は画像の部分のことを意味している。このプロセスは、例えば、テキストの頁を走査した光学スキャナによって発生されるビットマップ等のテキストの単語及び文字を包含する入力ビットマップへ直接適用することが可能である。然しながら、「語句単位」という用語は、更に、例えば通常の形状や、アイコンや、シンボルや、ライン等のグラフィックなオブジェクトのことも意味することが可能である。
【００４４】
図５ａは入力ビットマップをセグメント化するためにこの実施例によって使用されるヒエラルキ即ち階層９０を示した模式図である。この階層は本実施例においては７つのレベル９２から構成されており、第一レベルは通常最も小さな面積を有する語句単位を包含しており、かつ第七レベルは通常最も大きな面積を有する語句単位を包含している。図５ａに示した如く、１番目から７番目の階層レベルは「ブロブ（ｂｌｏｂ）」、文字、単語、テキストライン、テキスト（又はグラフィック）ブロック、頁、文書である。「ブロブ」とは例えば「ｉ」文字のドット等のように単一の文字の一部を構成する連続的なマーク（インク又は例えばトナー、光ピクセル等のその他の表示された画像構成部分として発生するもの）のことを意味している。グラフィックブロックは、頁上の他のグラフィック部分から別個の単位を形成するその頁上のグラフィック画像の任意の部分とすることが可能である。例えば、余白空間によって取囲まれている１個のアイコン又は形状は１つのグラフィックブロックとして考えることが可能である。
【００４５】
図５ｂは図５ａの階層の語句単位の一例を示している。文字９４はこの階層におけるレベルIIである。単語９６はレベルIIIであり、テキストライン９８はレベルIVである。テキストブロック１００はレベルＶであり、且つ頁１０２はレベルVIである。最後に、図示例においては２つの頁からなる文書１０４はレベルVIIである。
【００４６】
図５ｃは図５の階層の「ブロブ」レベル及び文字レベルを示した模式図である。１個の文字９４は１個又はそれ以上の「ブロブ」１０６を有することが可能である。例えば、文字「ｕ」は１個のブロブを有するに過ぎず、それが文字全体である。一方、文字「ｉ」は２個のブロブ１０６を有している。即ち、「ｉ」のドットとその下側部分である。
【００４７】
図５に戻って説明すると、図５ａに示した階層の各レベルの各語句単位をセグメント化し且つマイクロプロセサによって識別する。好適には、セグメント化した語句ユニットの座標及び語句ユニットを取囲むボックス（図９を参照して説明する）がこの時点において格納される。ビットマップがステップ８２において語句ユニットの階層へ区画化されると、好適にステップ８４が実行され、その場合に入力ビットマップの各頁の幾何学的補正が決定される。このステップにおいて、入力ビットマップの何れかの語句単位がビットマップ座標基準系に関して配向状態が誤っている場合には、補正用変換が形成される。ステップ８４については図６を参照して詳細に説明する。
【００４８】
次のステップ８６において、１つ又はそれ以上のラベルを有するラベルリストが１つ又はそれ以上の予め定められた階層レベルに構成されている各語句単位に対して認識器によって割当てられる。該リスト内の各レベルに対して信頼性レベルが割当てられ、それは該ラベルが語句単位を正しく表わすということを認識器がどれほど「信頼性」を有しているかの表示を与える。別の実施例においては、ある語句単位に対しての信頼性レベルが認識スレッシュホールドよりも低いものである場合に、その語句単位の元のビットマップ部分を検索するために所定の階層レベルにおける各語句単位に対して充分なる情報も割当てられている。これらのプロセスについては図７を参照して詳細に説明する。スレッシュホールドレベルより高い信頼性を有する１つ又はそれ以上のラベルを有する語句単位は「識別可能なオブジェクト」であり、スレッシュホールド値を超える信頼性レベルを持ったラベルを有することのない語句単位は「識別不可能なオブジェクト」である。識別可能なオブジェクトと識別不可能なオブジェクトの両方がステップ８６においてハイブリッドデータ構造内に配置される。ステップ８６を実行した後に、本プロセスはステップ８８に示した如く完了する。
【００４９】
図６は、図５に示した如く、頁の幾何学的補正を決定するステップ８４を示したフローチャートである。プロセス８４はステップ１１０において開始し、且つステップ１１２において、その頁のレイアウト特性が測定される。このステップにおいて、補正が必要であるかを判別するために一般的な測定が行なわれるに過ぎない。例えば、出力ビットマップ座標系に関して入力ビットマップを回転する測定を行なうことが可能である。出力ビットマップ座標系はプリンタ１８等の出力装置へ送給される出力ビットマップに対する基準配向状態を表わすことが可能である。ビットマップ座標ラインの角度に関するテキストラインの角度を測定することが可能である。又、ビットマップ座標系に関してテキストラインの曲率を測定することが可能である。テキストラインと座標格子線との間の距離をテキストラインの長さに沿って測定し、その距離が変化するか否かを判別することが可能である。ビットマップ全体の回転及びテキストラインの曲率の両方をこのステップにおいてチェックする。何故ならば、それらは１頁のテキスト又はその他の画像を光学スキャナ２６によって走査した場合に発生する一般的な整合上の問題だからである。
【００５０】
ステップ１１４において、マイクロプロセサはビットマップレイアウトが何等かの歪みを有するか否かを判別する。ステップ１１２においてとられる測定値を検査し且つスレッシュホールド値と比較して一般的な歪みの検知を行なう。例えば、ビットマップの回転はビットマップ座標系に関してのテキストベースラインの角度測定を比較することによって検知することが可能である。該角度がスレッシュホールド値、例えば１°より低い場合には、何等歪みは存在しない。テキストラインの曲率即ち曲がりは各テキストラインとビットマップ座標系の格子線との間の距離を検査することによって検知することが可能である。この距離がスレッシュホールド範囲、例えば１／１６インチを超えて変化するものではない場合には、歪みは存在しない。入力ビットマップが歪みを有するものではないことが判別されると、本プロセスはステップ１１６において示したように完了する。
【００５１】
入力ビットマップが歪みを有するものであると判別されると、ステップ１１８が実行され、該ビットマップから歪みマップが形成される。ビットマップ座標に関して直線的なオブジェクトの逸れを測定することによって歪みマップが形成される。直線的オブジェクトはテキストベースライン（即ち、テキストのラインにおけるディセンダを有することのない文字の底端部が整合されるライン）及びほぼ水平な又はほぼ垂直なグラフィックライン等のオブジェクトを包含する。この歪みマップは選択された直線的なオブジェクトの座標（例えば、ラインの端点）においてのｘ及びｙ変位のリストによって表現される。
【００５２】
ステップ１２０において、レイアウト補正変換が形成される。この変換は、測定された歪みが減少されるか又は除去されるようにマイクロプロセサがどのようにビットマップを調整するかを特定する。この補正用変換は、歪みマップの多項近似として表示することが可能である。補正変換を計算する方法は当業者にとって公知である。例えば、Ｗｉｌｌｉａｍ  ｅｔ  ａｌ．著「Ｃにおける数値的手ほどき−科学的計算技術（Ｎｕｍｅｒｉｃａｌ  Ｒｅｃｉｐｅｓ  ｉｎ  Ｃ  −Ｔｈｅ  Ａｒｔ  ｏｆ    Ｓｃｉｅｎｔｉｆｉｃ  Ｃｏｍｐｕｔｉｎｇ）」、第１４章、ケンブリッジユニバーシティプレス、１９８８、の文献は最小二乗近似として知られるこのような方法の１つを記載している。この補正変換は、図１０に関して詳細に説明する如く、画像として出力ビットマップを表示する前に使用される。このプロセスは、次いで、ステップ１１６において終了する。
【００５３】
図７は、所定の階層レベルにおいて各語句単位へラベルリストを割当て、且つ、別の実施例においては、ある語句単位に対する信頼性レベルがスレッシュホールドより低い場合にその語句単位の元のビットマップ部分を検索するために充分なる情報を割当てるステップ８６を例示したフローチャートである。本明細書においては、「ラベルリスト」は、１つ又はそれ以上のコード化ラベル及び各ラベルに対する信頼性ラベルを包含している。従って、認識器によって発生されるラベルが１つだけであったとしても、そのラベルは尚且つ「リスト」内にあると考えることが可能である。図７の図示例においては、割当てられたラベルリストである所定の階層レベルは「文字」階層レベル（図５ａにおけるレベルII）及び「単語」階層レベル（図５ａにおけるレベルIII）である。従って、図示例は１頁のテキストを記述する入力ビットマップに対して最も適用可能である。別の実施例においては、異なる階層ラベルを使用することが可能である。又、異なる数の階層レベルを使用することが可能であり、例えば、単に１つのレベル、文字、を認識することが可能である。然しながら、文字を認識する場合には、接続された文字を包含する別の階層レベルも認識し、例えば２つのオーバーラップした文字等の不明確な文字画像の組合わせを分析することが可能である。
【００５４】
このプロセスはステップ１２４において開始する。ステップ１２６において、文字カウンタ変数「Ｃ」が１へ初期化され、且つＣが図５のステップ８２において入力ビットマップにおいてセグメント化された文字数であるＮＣＨＡＲと比較される。「Ｃ」がＮＣＨＡＲよりも小さい場合には、ステップ１２８が実行され、その場合にＣＨＡＲ（Ｃ）に関して認識が実行されてリスト内の各構成要素文字に対する信頼性レベルを有する構成要素文字リスト（即ち、文字ラベルリスト）を発生する。このステップにおいては、生のビットマップにおけるセグメント化された文字の全てが信頼性レベルを有する構成要素文字リストが割当てられる。
【００５５】
セグメント化したビットマップからの文字の認識は、好適には、多数の異なる分解能のうちの１つのビットマップを解析することの可能なマイクロプロセサ３６（又は別の接続されたマイクロプロセサ）によって実現される認識ソフトウエアによって実行される。このような認識器は当業者にとって公知である。本発明に使用するのに適した認識器はカリフォルニア州サンタクララのオクロン（Ｏｃｒｏｎ）インコーポレイテッドによって販売されているＲｅｃｏｒｅ（商標）である。典型的に、認識器は、各々がビットマップ文字を表わすことの可能な多数の異なる仮定又は可能性を出力する。認識器は、これらの可能性（又は「ラベル」）の各々に対して信頼性レベルを割当て、それはそのラベルが文字の同一性に対して認識器がどれほど近いと考えるかを表わしている。この実施例においては、文字ラベルは実際には「形状コード」である。形状コードは文字の実際の同一性を示すものではないが、その文字の一般的な形状を表わすものである。例えば、形状コード「Ｏ」は大文字「Ｏ」、小文字「ｏ」、又は零（「０」）を表わすことが可能である。認識器はセグメント化されたビットマップ文字を１つ又はそれ以上の形状コードラベルとして認識し、その各ラベルは関連する信頼性レベルを有している。本実施例の信頼性レベルは別々の数値であるが、信頼性レベルはその他のインジケータとして実現することが可能である。例えば、認識器によって発生されるラベルが１つだけである場合には、信頼性レベルはラベル自身とすることが可能であり、又は、ラベルが発生されない場合には、信頼性レベルはヌル記号とすることが可能である。
【００５６】
図７ａは、認識されたビットマップ文字に対する形状コードと関連する信頼性レベルの例を示したテーブル１４６である。例えば、ビットマップ文字「Ｏ」は図７のステップ１２８においてセグメント化され且つＣＨＡＲ（Ｃ）として認識器へ送給されている。認識器はそのビットマップ文字を解析し且つ例えば図７ａに示したようなラベルリストを出力する。形状コードは文字ラベル１４８でありそれは認識された文字の形状を表わす。各形状コードに対して、信頼性レベル１５０が関連しており、それはビットマップ文字がどの程度認識器の解析におけるラベルと近接しているかを表わす。図７ａの例においては、文字ラベル「Ｏ」は９５％において最大の信頼性レベルを有している。文字ラベル「Ｃ」及び「Ｑ」はより低い信頼性レベルを有している。暗示された文字１５２は文字ラベル１４８によって表現された可能な文字である。文字ラベル「Ｃ」は２つの可能な文字「Ｃ」及び「ｃ」を表わすことが可能である。文字ラベル「Ｑ」は単に１つの可能な文字「Ｑ」を表わすに過ぎない。
【００５７】
図７に戻ると、生のビットマップにおける全ての文字が解析器によって解析されるまで、ステップ１２６及び１２８が各セグメント化された文字に対して実行される。次いで、本プロセスはステップ１３０へ進行し、そこで単語カウンタ変数「Ｗ」が１へセットされ且つＷが、図５のステップ８２において生のビットマップにおいてセグメント化された単語数であるＮＷＯＲＤＳと比較される。「Ｗ」がＮＷＯＲＤＳよりも小さい場合には、ステップ１３２が実行され、その場合に単語認識器が構成要素文字リスト及びその他の手順を使用してＷＯＲＤ（Ｗ）（即ち、セグメント化された単語ビットマップ）に関して認識を実行し、各コード化ラベルに対して信頼性レベルを有する単語リスト（ラベルリスト）を発生する。入力ビットマップのセグメント化した単語の全ては、信頼性レベルの値に拘らず、信頼性レベルを有するラベルリストが割当てられる。
【００５８】
単語認識は、典型的に、構成要素文字ラベルによって決定される可能な文字シーケンス（即ち、コード化単語ラベル）を発生し且つこのような各シーケンスに対して信頼性レベルを割当てる。単語ラベル信頼性レベルを決定する１つの態様は３ステッププロセスによるものである。第一に、構成要素文字の信頼性レベルが、文字の局所的な頁幾何学的形状との適合性にしたがって調節される。局所的頁幾何学的形状は、例えば、ベースラインと相対的な文字位置、周りのテキストの中間高さ文字の上端に基づいたｘ高さライン、及び周りのテキストのより高い文字の上端に基づいた大文字高さライン等を包含する。第二に、構成用要素文字の調節された信頼性レベルを結合して（例えば、信頼性レベルが可能性として与えられる場合に乗算を介して）、予備的な単語ラベル信頼性レベルを発生する。最後に、単語ラベルが種々の予め定義された語句構成と適合する程度にしたがって予備的単語ラベル信頼性レベルが調節される。予め定められた語句構成は、語彙（単語リスト）、一般的な文字パターン（例えば、電話番号又は日付）、及び文字サブシーケンス可能性（例えば、バイグラム、トリグラム、及びｎグラム、即ち２つ、３つ又はｎ個の文字の結合）等を包含する。この方法及びその他の方法によって単語ラベル及び単語ラベル信頼性レベルを発生することの可能な単語認識器は当業者にとって公知である。例えば、上述したオクロンインコーポレイテッドによって販売されている認識器Ｒｅｃｏｒｅは、本発明の文字及び単語認識の両方にとって適したものである。
【００５９】
図７ｂは単語ビットマップ「Ｏｐｅｎ」に対しての単語ラベル１６６と関連する信頼性レベル１６８とを包含する単語ラベルリスト１７０の一例を示している。完全なるリスト（不図示）は、４つの構成要素文字（「Ｏ」、「ｐ」、「ｅ」、「ｎ」）の形状コードラベルによって暗示される文字の各組合わせに対してコード化単語ラベルエントリを包含している。図７ａは全部で６つの可能な文字（全ての暗示された文字を包含する）に対して最初の文字（「Ｏ」）に対する３つの認識された文字ラベル及び暗示された文字を示している。単語「Ｏｐｅｎ」における４つの文字の各々に対して６個の可能な文字が存在したとすると、ラベルリスト１７０においては６4即ち１２９６個の文字シーケンスが存在することとなる。リスト１７０における７番目のエントリ（即ち、「Ｏｐｅｎ」）が図示したラベルのうちで最も高い信頼性レベルを有している。
【００６０】
図７を参照すると、次のステップ１３４において、ＷＯＲＤ（Ｗ）に対する多数のラベルエントリ及びそれらの関連する信頼性レベルがハイブリッドデータ構造内に格納される。本実施例においては、所定の「格納スレッシュホールド」を超えた信頼性レベルを有する全ての単語ラベルがハイブリッドデータ構造内に格納される。従って、図７ｂの例においては、格納スレッシュホールドレベルが５０以上であった場合には、図示したラベルリスト１７０から４つのラベルがハイブリッドデータ構造内に格納されることとなる。その他の実施例においては、ＷＯＲＤ（Ｗ）に対する異なる量の単語ラベルをハイブリッドデータ構造内に格納させることが可能である。例えば、単に１つのラベルのみを格納することを許容するフォーマットで格納される場合には（図１１に関して説明する）、最大の信頼性レベルを有する単語ラベルがハイブリッドデータ構造内に格納される。一方、認識スレッシュホールドより大きな信頼性レベルを有するラベルのみをハイブリッドデータ構造内に格納させることが可能である。格納されたラベルの最も高い信頼性レベル及び認識スレッシュホールドに依存して、ハイブリッドデータ構造内の幾つかの単語は識別可能なオブジェクトであると考えられ、且つ幾つかのものは識別不可能なオブジェクトであると考えられる。このハイブリッドデータ構造はメモリ内に格納するか、ディスク上にファイルとして格納するか、その他の態様で格納することが可能である。好適には、単語ラベルは、例えばＡＳＣＩＩ、ポストスクリプト等のスタンダードなフォーマットでコード化データとして格納される。
【００６１】
ステップ１３６において、ＷＯＲＤ（Ｗ）に対応する語句単位の座標が格納される。これらの座標は頁のレイアウトに関してＷＯＲＤ（Ｗ）に対応する生のビットマップの語句単位（単語ビットマップ）を参照するものである。例えば、その単語ビットマップを取囲む取囲みボックスの反対側の点（又は全ての４つの点）に対して水平及び垂直の座標を格納することが可能である。取囲みボックスは図９を参照して詳細に説明する。これらの座標はＷＯＲＤ（Ｗ）の関連するラベルエントリと共にハイブリッドデータ構造内に格納することが可能である。マイクロプロセサはこれらの座標を使用してＷＯＲＤ（Ｗ）に対応する生のビットマップの語句単位を見つけだし且つこの語句単位の寸法を知得することが可能である。これらの座標は「リンク」と考えることが可能である。何故ならば、それらはコード化単語を生のビットマップのそれの対応する部分とリンク即ち連結させるからである。その他のタイプのリンク、例えばポインタ等を使用することも可能である。例えば、図１１を参照して説明するように、サーチ単語と一致した単語ビットマップをハイライトさせるためにこれらのリンクが有用な場合がある。これらの座標は、図１２ａの編集用ウインドウにおいて編集中の単語に対応する単語ビットマップを表示するために使用することも可能である。これらの座標は、更に、図１０を参照して説明するように、認識スレッシュホールド信頼性レベルを１００％を超えて上昇させることにより全ての個々の生の単語ビットマップを表示させる本発明の実施例においても有用である。認識されなかった（即ち識別不可能な）単語のみが対応する生のビットマップを表示させる別の実施例においては、ある単語が認識不可能であると考えられる場合に、その単語の非コード化ビットマップを頁上のその正確な位置に表示させるためにＷＯＲＤ（Ｗ）の座標を使用することが可能である。
【００６２】
次に、オプションとしてのステップ１３８を実行する。第一実施例においては、単語が認識されるか又は認識されないかに拘らず生のビットマップ全体を表示する（生のビットマップは図４に関して格納されている）。従って、個々の単語ビットマップを格納することは必要ではなく、且つステップ１３８は必要ではない。然しながら、別の実施例においては、ここで単語ビットマップを格納することが可能である。例えば、全ての単語が関連する単語ビットマップを表示させる実施例においては、マイクロプロセサはステップ１３８においてＷＯＲＤ（Ｗ）に対するビットマップを自動的に格納することが可能である。同様に、認識されなかったワードのみに対する単語ビットマップが表示される実施例においては、マイクロプロセサは、ＷＯＲＤ（Ｗ）に対するトップの単語ラベルエントリの信頼性レベルが認識スレッシュホールド信頼性レベルよりも低い場合にはステップ１３８においてＷＯＲＤ（Ｗ）の個々の非コード化ビットマップを格納することが可能である（これは図７に示したステップ１３８である）。「トップ」の単語ラベルエントリはラベルリストにおいて最も高い信頼性レベルを有するラベルである。従って図７ｂの例においては、ラベル「Ｏｐｅｎ」がトップのラベルエントリである。本実施例においては、認識スレッシュホールド信頼性レベルはユーザが選択可能なものであり、且つデフォルトのスレッシュホールド値は９０である。トップの単語ラベル「Ｏｐｅｎ」の信頼性レベルはこの認識スレッシュホールドよりも高く、従ってＷＯＲＤ（Ｗ）は単語「Ｏｐｅｎ」として認識されたものと考えられ且つ識別可能なオブジェクトである。識別可能なオブジェクトの入力単語ビットマップはこのような実施例においては格納されることはない。一方、識別可能なオブジェクト入力ビットマップは後のプロセスのために格納することが可能であり、第一実施例においては、元の生のビットマップ及びその部分は、例えば、編集の目的のために使用することが可能である（例えば、生のビットマップ全体がメモリ又は格納装置上に格納される）。トップのラベルの信頼性レベルがスレッシュホールド値より低い場合には、ＷＯＲＤ（Ｗ）は「認識されないもの」（識別不可能なオブジェクト）と考えられ、且つＷＯＲＤ（Ｗ）の非コード化単語ビットマップがステップ１３８において格納される。
【００６３】
非コード化データ（単語ビットマップ）は識別可能なオブジェクト及び識別不可能なオブジェクトのハイブリッドデータ構造内に直接的に格納することが可能である。一方、非コード化データは別個のファイル又はその他の格納区域内に格納することが可能であり、且つ非コード化データの格納位置はハイブリッドデータ構造内に格納することが可能である。このことは、ハイブリッドデータ構造が表示されるか又は走査される場合には、非コード化データを容易にアクセスすることを可能とする。
【００６４】
ステップ１３８が実行されると、本プロセスはステップ１３０へ復帰し、別のセグメント化したＷＯＲＤ（Ｗ）を処理する。入力した生のビットマップのセグメント化した単語の全てを認識するか又はステップ１３０乃至１３８においてビットマップとして格納した場合には、本プロセスは、好適には、ステップ１４０を実行し、その場合に生のビットマップ全体のフォント属性が認識される。各認識された（識別された）単語はタイプフェースが割当てられ、それは表示された場合に認識された単語の文字がどのように表われるかを決定する。このステップについては図８を参照して詳細に説明する。第一実施例においては、全てのコード化単語がそれらの信頼性レベルに拘らず非コード化ビットマップ形態で表示され、従ってフォント属性を必要とすることはない。然しながら、フォント属性はステップ１４０において認識され、従って、図１２を参照して説明するように、コード化単語をレンダリングさせ編集用ウインドウ内に表示させることが可能である。
【００６５】
ステップ１４１は、各識別された単語に対してフォント属性が割当てられた後に、識別された単語に対する寸法調節用変換を計算するために実行される。第一実施例においては、このことはコード化単語が図１２ａにおける如く正確にレンダリングされ且つ編集用ウインドウ内において観察することが可能であるように達成される。ステップ１４１において、ステップ１４０において割当てられた適宜のタイプフェース及び寸法を使用して、各識別された単語がメモリ内においてレンダリングされる。レンダリングされた単語の寸法がその単語の元のビットマップの寸法と比較される。寸法差が所定の公差内のものでない場合には、スケール調節が計算され且つハイブリッドデータ構造内の識別された単語と共に格納される。このプロセスについては図９を参照して更に詳細に説明する。次いで、本プロセスはステップ１４２において示した如く終了する。
【００６６】
図８は図７のステップ１４０を例示したフローチャートであり、この場合に、生の入力ビットマップのフォント属性が認識される。本プロセスはステップ２１０において開始し、且つステップ２１２において、頁カウンタ変数「Ｐ」が１へ初期化され、且つＰが、生のビットマップにおける頁総数であるＮＰＡＧＥＳ（図５のセグメント化ステップ８２から既知である）と比較される。ＰがＮＰＡＧＥＳ以下である場合には、ステップ２１４が実行され、その場合に文字カウンタ変数「Ｃ」は１へセットされ且つＣが、生のビットマップの現在検査された頁上の認識された文字の総数であるＴＯＴＣＨＡＲと比較される。本明細書において説明される如く、「認識された」文字とは、文字認識スレッシュホールドを超えた信頼性レベルを有する文字ラベルである。この文字認識スレッシュホールドは、好適には、高いレベルにセットされる。何故ならば、フォント認識のためには正確に認識された文字のみを使用すべきだからである（スレッシュホールドを超える信頼性レベルを有する文字が充分ではない場合には、充分な文字が得られるまでスレッシュホールドを低下させることが可能である）。Ｃ≦ＴＯＴＣＨＡＲである場合には、ステップ２１６が実行され、その場合に、マイクロプロセサは、認識された文字ラベルであるＣＨＡＲ（Ｃ）が選択された文字タイプであるか否かをチェックする。選択された文字タイプは、フォント特徴のために測定されるべき例えば「ａ」、「ｇ」、等のある文字である。選択される文字の順番は、所定の順番付けした文字リストから決定することが可能である。順番付けしたリストは、フォント特徴のために容易に測定される文字がリストのトップに位置されるように設計することが可能である。同一のフォントを有する充分な文字が測定される場合には、そのフォントを決定することが可能であり且つ順番付けしたリストの底部近くの文字は測定する必要がない。ＣＨＡＲ（Ｃ）が選択した文字タイプでない場合には、本プロセスはステップ２１４においてＣをインクリメントし、且つステップ２１６において新たな文字ラベルが選択したタイプであるか否かをチェックする。ＣＨＡＲ（Ｃ）が選択したタイプである場合には、ステップ２１８を実行する。ステップ２１８において、ＣＨＡＲ（Ｃ）に対応する生のビットマップの部分に対して多数のフォント特徴を測定する。
【００６７】
図８ａは、生の入力ビットマップの文字２３６を示した模式図である。ステム幅２３８等のフォント関連特徴は、どのフォントタイプにその文字が属するかを決定するために種々の箇所において測定することが可能である。例えば文字高さ及び幅２４０、ｘ高さ、光学密度、イタリック角度、セリフタイプ等のその他の特性を測定することも可能である。これらの測定のうちの幾つかは文字のタイプにとって特定的なものである。例えば、「ｔ」はあるステム区域の測定を必要とする場合があるが、一方「ａ」文字はその文字の取囲んだ部分に沿って異なる測定を必要とする場合がある。しばしば、走査エラー又は入力ビットマップを形成するプロセスにおいて伝播するその他のエラーのために、不規則部分２４２が存在する。然しながら、同一のタイプの幾つかの文字を測定する場合には、これらの不規則部分は平均化されて取除かれる。
【００６８】
再度図８を参照して説明すると、ステップ２１８の後に、マイクロプロセサはステップ２１４へ復帰し、Ｃをインクリメントし且つ生のビットマップにおける次の文字に対してのフォント特徴を測定する。認識した文字に対応するビットマップ部分の全てを測定すると、本プロセスはステップ２２０へ移行し、そこにおいて頁Ｐ上の文字をフォント「クラスタ」へ区画化する。図８ｂは１つのタイプの文字（例えば、「ｔ」）に対して測定したフォント属性の複数個のグループ乃至はクラスタからなるグラフ２４４を示している。軸２４５は「特徴軸」であって、それらはある文字タイプの全ての文字に対して測定した共通的な特徴（寸法、厚さ等）を表わしている。例えば、二次元グラフ２４４は、一方の軸が文字の高さ寸法を表わしており、且つ他方の軸がその文字の幅寸法を表わしている。これらは測定及び比較することの可能な多数の可能な特徴のうちの２つであるに過ぎず、その他の特徴（ステム幅、イタリック角度等）を比較することも可能である。データ点２４６はグラフ２４４上で特定の測定値を有する文字を表わしている。同様の測定値を有する文字はクラスタ２４７内にグループ化されている。例えば、クラスタＣ１は高さ及び幅（及び図示していないその他の特徴）において互いに非常に近接している多数の測定した「ｔ」文字を表わしている。従って、それらは同一のフォントタイプを有する蓋然性が高く一体的にクラスタ即ち集合化されている。同様に、クラスタＣ２は同様の測定値を有しているがクラスタＣ１とは異なる測定値を有する「ｔ」文字を表わしており、それらは単一のフォントタイプを表わすものとしてグループ化されている。
【００６９】
図８に戻って説明すると、ステップ２２０においてクラスタが構成されると、ステップ２２６が実行され、その場合に、現在の頁上の文字が前に見つからなかった新たなフォントタイプに対して検査される。ここで、「フォントタイプ」とはある単語が属する特定のタイプフェース（現在のところ割当てられていない）のことを意味しており、且つフォントタイプ番号は特定のフォントタイプを意味する。ステップ２１４乃至２２０において上述した如く文字を測定し且つそれらの測定値を既に見つかったフォントタイプに対して採取した測定値と比較することによって新たなフォントタイプが見つけ出される。新たな測定値が既に採取した測定値と均等である場合には、そのフォントタイプは新しいものではなく、従って本プロセスはステップ２３０へ移行する。新たな測定値が既に採取した測定値と異なる場合には、新たなフォントタイプが見つかっており、従って本プロセスはステップ２２８へ移行する。ステップ２２８において、ステップ２２０又はステップ２２６において構成された測定値の各クラスタに対してフォントタイプ番号が形成される。次いで、本プロセスはステップ２３０へ移行する。
【００７０】
ステップ２３０において、頁上の各認識された単語ラベルに対して１つのフォントタイプが割当てられる。別の実施例においては、文字ラベルに対してフォントタイプを割当てることが可能である。各フォントタイプは、文字の測定値から派生したフォントタイプ番号に対応する。単語の文字を検査し且つどのクラスタがこれらの文字のうちの１つ又はそれ以上のものを包含するかを決定することによってフォントタイプが単語ラベルに割当てられる。その単語の高い信頼性（認識済）文字のみが検査される。従って、図７ｂの例においては、認識された単語「Ｏｐｅｎ」はその単語の認識された文字の１つ又はそれ以上、例えば「Ｏ」を検査し且つその文字がどのクラスタに含まれるかを決定することによってフォントタイプ番号が割当てられる。次いで、そのクラスタに対するフォンタタイプ番号がその単語に対して割当てられる。単語内において高い信頼性の文字が存在しない場合には、隣接する単語のフォントタイプをその単語に対して割当てることが可能である。
【００７１】
ステップ２３２において、形成された各フォントタイプ番号はタイプフェースのライブラリからのタイプフェースへ割当てられる。本実施例においては、幾つかのタイプフェースがメモリ内又はディスク上に格納されている。これらのタイプフェースはスタンダードなタイプフェースであって、例えば、Ｔｉｍｅｓ、Ｈｅｌｖｅｔｉｃａ及びアドビシステムズ、インコーポレイテッドから入手することの可能なその他のタイプフェースである。フォントタイプ（クラスタ）の測定値をスタンダードのタイプフェースを記述する既知の測定値及び特性と比較することによって各フォントタイプ番号がタイプフェースへ割当てられる。フォントタイプの平均化した測定値に対して最も近い測定値を有するスタンダードなタイプフェースにフォントタイプ番号が割当てられる。ハイブリッドデータ構造の現在の頁上の全ての認識された単語を使用可能なスタンダードのタイプフェースと関連付けることが可能となるまで同様の態様で各フォントタイプ番号に対してタイプフェースを割当てる。次いで、本プロセスはステップ２１０に復帰し、そこで、頁変数「Ｐ」をインクリメントし、且つ次の頁に関して同様にフォントを測定し且つ割当てを行なう。全ての頁について検査が行なわれると、本プロセスはステップ２３４で示した如く終了する。
【００７２】
各識別された単語に対してタイプフェース及びその他のフォント属性を格納する場合に、異なる方法を使用することが可能である。識別された単語がハイブリッドデータ構造においてＡＳＣＩＩ文字コードとして格納される場合には、タイプフェース及びフォント記述はＡＳＣＩＩ文字と共に「フォントタグ」として格納することが可能である。フォントタグと共に文字コードを格納することは当業者にとって公知である。識別された単語が例えばポストスクリプト等の一層フォントに傾倒したコード言語で格納される場合には、その単語に対するタイプフェース及びその他のフォント属性は当業者にとって公知の如く、その言語の規則内で特定し且つ格納することが可能である。
【００７３】
図９は図７のステップ１４１を例示したフローチャートであり、その場合には、寸法調節変換が識別された単語に対して計算される。このプロセスはステップ１７４において開始する。ステップ１７５において、その単語に対する元の非コード化ビットマップの取囲みボックスの高さ（ｈ1）及び幅（ｗ1）が決定される。ビットマップの取囲みボックスはそのビットマップを完全に取囲む最も小さな矩形（ベースラインと整合されている）である。全てのセグメント化した語句単位に対する取囲みボックスの座標は、最初に入力ビットマップをセグメント化した時（図５のステップ８２）に格納した格納区域から入手することが可能である。ステップ１７６において、単語のトップの信頼性レベルを使用してメモリ内のビットマップをその単語に割当てられたタイプフェース及び寸法でレンダリングし、次いでレンダリングしたビットマップの取囲みボックスの高さ（ｈ2）及び幅（ｗ2）が決定される。
【００７４】
図９ａは元の非コード化単語ビットマップ１９２と、ラベルリスト１７０におけるトップレベルから派生したレンダリングしたビットマップ１９４とを示した模式図である。元のビットマップの取囲みボックス１９６及びレンダリングしたビットマップの取囲みボックス１９８も図示してある。これらの取囲みボックスは模式的に２００で示したように比較され、その場合に高さｈ1及び幅ｗ1は元のビットマップの取囲みボックスに対する寸法であり、且つ高さｈ2及び幅ｗ2はレンダリングしたビットマップの取囲みボックスに対する寸法である。
【００７５】
図９に戻って説明すると、ステップ１７８において、元のビットマップの取囲みボックスの幅ｗ1とレンダリングしたビットマップの取囲みボックスの幅ｗ2との間の相対的な誤差が「Ｅw」として計算される。同様に、元のビットマップとレンダリングしたビットマップとの取囲みボックスの高さｈ1とｈ2との間の相対的な誤差が「Ｅh」として計算される。
【００７６】
ステップ１８０及び１８２は、ランダリングしたビットマップの取囲みボックスの寸法が許容可能な範囲内に入るか否かをチェックする。相対的な誤差が大きすぎる場合には、その単語の元のビットマップ１９２が使用される。これらのステップは図９ｂのグラフ２０２において要約してある。Ｅwの絶対値が幅（Ｔw1）に対する第一スレッシュホールド値よりも小さく、且つＥhの絶対値が高さ（Ｔh1）に対する第一スレッシュホールド値よりも小さい場合には、相対的誤差が適度に小さく且つ更なる処理は必要ではない（図９ｂにおいて、Ｔw1及びＴh1はＴ1として示してあり、且つＥw及びＥhはＥとして示してある）。本実施例においては、Ｔw1及びＴh1に対して使用される値は夫々０．０５及び０．０５である。次いで、本プロセスはステップ１８６に示したように終了する。｜Ｅh｜及び｜Ｅw｜のいずれか一方又は両方がステップ１８０においてそれらの対応するＴ1値よりも大きい場合には、本プロセスはステップ１８２へ移行する。ステップ１８２において、Ｅwの絶対値が幅（Ｔw2）に対する第二スレッシュホールド値よりも大きいか、又はＥhの絶対値が高さ（Ｔh2）に対する第二絶対値よりも大きい場合には、レンダリングしたビットマップの寸法が調節すべき元のビットマップと余りにも異なるものであると考えられ、且つプロセスはステップ１８４へ移行する（図９ｂにおいて、Ｔw2及びＴh2はＴ2として示してある）。本実施例においては、Ｔw2及びＴh2に対して使用される値は夫々０．２０及び０．２０である。ステップ１８４において、ＷＯＲＤ（Ｗ）の最も上側のラベルに対する信頼性レベルはスレッシュホールド信頼性レベルよりも低いレベルにセットされ、且つＷＯＲＤ（Ｗ）の非コード化ビットマップはハイブリッドデータ構造内に格納される。従って、ＷＯＲＤ（Ｗ）は識別可能なオブジェクトの代わりに識別不可能なオブジェクトとなり、即ちＷＯＲＤ（Ｗ）に対する非コード化ビットマップは関連するラベルリスト内のトップレベルを表示する代わりに表示されるべきである。何故ならばＷＯＲＤ（Ｗ）は許容範囲外の寸法だからである。次いで、本プロセスはステップ１８６において終了する。ステップ１８４は生のビットマップ全体が表示される第一実施例においては実行されることはない。
【００７７】
ステップ１８２において｜Ｅh｜及び｜Ｅw｜の両方がそれらの対応するＴ2値よりも小さい場合には、本プロセスはステップ１８８へ移行する。ステップ１８８において、Ｅw及びＥhが両方とも０よりも小さい場合には、レンダリングしたビットマップは元のビットマップよりもわずかに小さく且つ寸法調節は必要ではない。Ｅw又はＥhのいずれかが正である場合には、ステップ１９０が実行され、その場合に水平方向及び垂直方向のスケールファクタ即ち拡縮ファクタがＷＯＲＤ（Ｗ）に対して計算され且つ格納される。ＷＯＲＤ（Ｗ）がレンダリングされ且つ表示（例えば編集用ウインドウ内において）されるべき場合には、これらのスケールファクタがレンダリングされた単語ラベルをその元のビットマップ画像の対応する寸法へ調節する。スケールファクタを格納することは寸法を調節したビットマップを格納することよりも必要とされる面積は著しく少ない。次いで、本プロセスはステップ１８６で示したように終了する。
【００７８】
別の実施例においては、階層におけるその他の語句単位（テキストライン、テキストブロック、頁等）をレンダリングさせ且つ上述した如く元のビットマップの対応する部分と比較することが可能である。これらの語句単位に対してこの時点においてスケールファクタを計算し且つ格納することが可能である。
【００７９】
図１０は図４のステップ７２を例示したフローチャートであり、その場合に、識別可能なオブジェクト及び識別不可能なオブジェクトのハイブリッドデータ構造が表示される。図１０の表示プロセスは、ハイブリッドデータ構造を表示するためだけのものであり、ユーザがデータ構造を編集することを希望する場合には、好適には図１２の編集プロセスが使用される。この表示プロセスはステップ２５０において開始する。ステップ２５１において、現在の「モード」が決定される。例えば、第一実施例においては、信頼性レベルに拘らず、文書内の表示される全ての単語に対して生のビットマップ全体（又はその一部）を表示することが可能である。この実施例は、又、ユーザによって選択することの可能なモードとして実施することも可能である。従って、ユーザは更に別のモードを選択することが可能であり、その場合には、認識された単語がレンダリングされ且つ表示され且つ認識されなかった単語は生のビットマップのそれらの対応する夫々の部分として表示される。
【００８０】
完全なる生のビットマップ表示モード乃至は実施例が選択されているか又は使用中である場合には、ステップ２５３が実行され、その場合に、図５のレイアウト補正変換が格納されている生のビットマップに対して適用され変換された生のビットマップを発生する。従って、生のビットマップは幾何学的歪みに対して補正されている。次のステップ２５５において、変換された生のビットマップの選択された頁が検索され且つ例えばディスプレイスクリーン又はプリンタ装置等の出力装置上で表示される。元の生のビットマップ及び変換された生のビットマップは、好適には、ビットマップの頁を検索し且つ表示することが可能であるようにメモリ内又は異なる格納装置によって格納される。ステップ２５５において、出力装置上に頁全体が表示されているものと仮定している。頁の一部のみ又は１頁を超えて出力ディスプレイ装置上に表示されるべき場合には、元のビットマップの適宜の部分又は多数の頁が表示される。更に、一度に１頁以上のビットマップを検索することが可能であり、一方検索した頁の一部のみを表示することが可能である。「選択した」頁とは、ユーザが表示すべく選択した頁のことである。選択した頁は、更に、文書を最初に格納装置からロードした時のその文書の最初の頁等のデフォルト頁とすることも可能である。次いで、本プロセスはステップ２６４で示したように終了される。ユーザが生のビットマップの異なる頁を選択する場合には、その選択した頁に対してステップ２５５が再度実行される。
【００８１】
一方、ステップ２５３及び２５５の完全なる頁の表示は以下に説明するようにステップ２５２及び２５４乃至２６２を使用して均等的に実行することが可能である。このような実施例においては、ステップ２５４のスレッシュホールド信頼性レベルは１００％よりも高い値（例えば、１０１％）に一時的にセットすることが可能であり（即ち、表示プロセスに対してのみセットする）、従ってその場合にはハイブリッドデータ構造内の単語のいずれもがスレッシュホールド信頼性レベルよりも高い信頼性レベルを有することはない。このことは、１つの単語に対するビットマップが表示されるステップ２６２がハイブリッドデータ構造内の全ての単語に対して実行することを可能とし、従ってそれらの単語の全ビットマップ表示を与える。
【００８２】
ステップ２５１において完全なるビットマップ表示が選択されなかった場合には、ユーザは認識したコード化データのレンダリング及び表示を行ない且つ個々の単語ビットマップの表示を行なう別の実施例を希望する。ステップ２５２において、単語カウンタ変数「Ｗ」は１へ初期化され、且つＷは、ハイブリッドデータ構造（ハイブリッドデータ構造全体が表示されるべき場合）内の単語数（識別可能なもの及び識別不可能なものの両方）であるＮＷＯＲＤＳと比較される。ハイブリッドデータ構造の一部のみを表示する場合には、ＮＷＯＲＤＳは表示された部分における単語数とすることが可能である。ＷがＮＷＯＲＤＳよりも小さい場合には、ステップ２５４が実行され、その場合に、ＣＰＵはＷＯＲＤ（Ｗ）に対する信頼性レベルがスレッシュホールド信頼性レベルよりも大きいか否かをチェックする。大きい場合には、ＷＯＲＤ（Ｗ）は識別可能な単語であり、且つステップ２５６が実行される。ステップ２５６において、ＷＯＲＤ（Ｗ）のコード化トップラベルがレンダリングされ且つＷＯＲＤ（Ｗ）に対する適宜のスケールファクタで且つ割当てられたタイプフェースにしたがってＷＯＲＤ（Ｗ）の座標によって特定される位置において表示される。本実施例においては、マイクロプロセサ、又はレンダリングチップ等の関連したプロセサが、ＷＯＲＤ（Ｗ）の文字に対応する文字アウトラインを、その単語に対して割当てられているタイプフェース及びその単語の既知の特性にしたがって表示するためのビットマップへレンダリングされる。ＷＯＲＤ（Ｗ）がレンダリングされ且つ表示されると、本プロセスはステップ２５２へ復帰し、そこでＷがインクリメントされ且つ次の単語が処理される。
【００８３】
ＷＯＲＤ（Ｗ）に対する信頼性レベルがステップ２５４におけるスレッシュホールド信頼性値よりも大きくない場合には、ＷＯＲＤ（Ｗ）は識別可能な（認識された）オブジェクトではなく、それは識別不可能な（認識されなかった）オブジェクトである。次いで、ステップ２６０が実行され、その場合にレイアウト補正変換が、認識されなかった単語（又はその他のオブジェクト）と関連している格納されている非コード化ビットマップに対して適用され、変換されたビットマップを発生する。従って、この変換されたビットマップは幾何学的歪みに対して補正されている。ステップ２６２において、マイクロプロセサはこの変換されたビットマップをＷＯＲＤ（Ｗ）の座標において非コード化ラスタ画像として表示する。非コード化画像は、ディスプレイスクリーン１６、プリンタ１８又はその他の出力装置上に表示することが可能であり、そのビットマップは、更に、与えられた出力装置の分解能に対して適宜スケーリングすることが可能である。次いで、本プロセスはステップ２５２へ復帰し、カウンタＷをインクリメントし且つハイブリッドデータ構造における次の単語を表示する。ハイブリッドデータ構造（又はハイブリッドデータ構造の指定部分）における全てのオブジェクトがコード化画像又は非コード化画像のいずれかとして表示されると、本プロセスはステップ２６４に示した如く終了する。
【００８４】
図１１は図４のステップ７４を例示したフローチャートであり、その場合に、ハイブリッドデータ構造のサーチが行なわれる。本プロセスはステップ２７０で開始し、且つステップ２７２において、サーチ基準として使用されるべき１つの単語（又は複数個の単語、即ち句）が獲得される。このサーチ単語は、典型的に、キーボード２０からユーザによってエンターされるか、又はそれはファイル、別のコンピュータ、入力装置等からローディングすることが可能である。他の実施例においてはサーチ基準としてその他のオブジェクトを使用することも可能である。ステップ２７４において、変数ＨＩＴが０へ初期化される。変数ＨＩＴは、ハイブリッドデータ構造においてサーチ単語のインスタンスが幾つ見つかったかを表わす。ステップ２７６において、単語カウンタ変数「Ｗ」が１へ初期化され且つハイブリッドデータ構造における単語数ＮＷＯＲＤと比較される。ＷがＮＷＯＲＤよりも小さい場合には、ステップ２７８が実行され、その場合に、マイクロプロセサは、サーチ単語がＷＯＲＤ（Ｗ）に対するトップラベルエントリ（最も高い信頼性レベルを有するラベル）とほぼ等しいか否かをチェックする。従って、本実施例においては、例え認識されなかった単語が図７及び１０において説明した認識スレッシュホールドレベルよりも高い信頼性レベルを有するものではないとしても、認識されなかった単語（又はその他の識別不可能なオブジェクト）でさえもサーチ単語と比較される。その他の実施例においては、ラベルリスト１７０内のその他のラベルをサーチしてそのサーチ単語と一致するものを見つけ出すことが可能である。尚、「ほぼ等しい」という用語は、サーチ単語がＷＯＲＤ（Ｗ）から僅かに異なる場合を意味しており、例えば認識されなかった単語がサーチ単語と比較して例えば１つ又は２つの文字が異なっているが尚且つサーチの目的のためには均等である場合等である。単語がほぼ等しい場合のその他の例としては、例えば、大文字又は小文字を有する単語、例えば「−ｉｎｇ」等の異なるサフィックスを有する単語、１つの単語の複数形式と単数形式等がある。  サーチ単語がほぼ等しくない場合には、本プロセスはステップ２７６へ復帰し、Ｗをインクリメントし且つ次のＷＯＲＤ（Ｗ）を検査する。サーチ単語がＷＯＲＤ（Ｗ）と一致（ほぼ等しい）場合には、ステップ２８０が実行され、その場合に変数ＨＩＴがインクリメントされる。ステップ２８２において変数ＨＩＴＡＲＲＡＹ（ＨＩＴ）が単語カウンタ変数Ｗの値及びＷＯＲＤ（Ｗ）の座標と等しく設定され、従って見つけ出された単語を必要に応じて表示するか又は処理することが可能である。例えば、データ構造は、好適には、図１０のステップ２５５に示した如く、完全なる生のビットマップとして表示される。データ構造は、上述した如く、サーチ単語に対してサーチすることが可能である。コード化単語（ＷＯＲＤ（Ｗ））がサーチ単語と一致する場合には、そのコード化単語に対応するビットマップ単語を、それが現在表示中である場合には、スクリーン上でハイライトさせることが可能である。ＷＯＲＤ（Ｗ）の座標を使用して表示中の単語ビットマップをハイライトさせる。一致したコード化単語を、図１２を参照���て説明したエデイタ内において表示又はハイライトさせることも可能である。次いで、本プロセスはステップ２７６へ復帰し、Ｗをインクリメントし且つ次のＷＯＲＤ（Ｗ）を検査することが可能である。文書内の全ての単語をサーチすると、本プロセスはステップ２８４で示したように終了する。
【００８５】
別の実施例においては、上述したサーチプロセスを自分自身のサーチ機能を有しており且つ当業者に公知の別のアプリケーションプログラムにおいて実現することも可能である。例えば、アドビシステムズ、インコーポレイテッドによるアクロバット（Ａｃｒｏｂａｔ）は、多様なフォーマット及びオブジェクトタイプを有する電子文書をユーザがサーチすることを可能とする。
【００８６】
別の実施例においては、格納されているハイブリッドデータ構造を文書格納のために既に存在している「スタンダード」なフォーマットと順応させるべく適合させることが可能である。例えば、アクロバットはポータブルドキュメントフォーマット（ＰＤＦ）を有している。認識された単語ラベルをコード化テキストとして（例えば、ポストスクリプトで）及び認識されなかった単語ラベルを非コード化ビットマップ及びサーチを可能とするための「不可視的」なテキストとして格納することによって、ハイブリッドデータ構造をこのフォーマットで格納することが可能である。即ち、認識されなかった単語オブジェクト（即ち、最も高い信頼性を有するリストにおける単語ラベル）を表示することが可能であるが、「不可視的」なものとして表われるようにバックグラウンドと同じカラーを有しており、且つ非コード化ビットマップをその認識されなかった単語の上に表示させることを可能とする。これらの不可視的な単語オブジェクトは尚且つサーチ単語と比較し且つエラー許容性サーチメカニズムによって位置決めされ及び／又は所望により（後述するように）編集することが可能である。
【００８７】
図１２は図４のステップ７６を例示したフローチャートであり、その場合に、ハイブリッドデータ構造が編集されて該構造内の識別不可能なオブジェクトの数を減少させる。この方法は、ラベルの信頼性レベルに拘らずに常にコード化単語ラベルを表示し且つ非コード化ビットマップを表示することのないエディタテキストウインドウ（図１２ａに示してある）で実行することが可能である。表示された単語は、各単語ラベルの信頼性レベルのユーザが制御した表示スレッシュホールド信頼性レベルとの関係にしたがってハイライトされる。表示スレッシュホールドレベルは、ハイブリッドデータ構造の信頼性スレッシュホールドを変化させた場合にユーザがその結果をプレビューすることを可能とする。それは、更に、あり得るエラー補正のための検査を必要とする単語数をユーザが最適化することを可能とする。
【００８８】
本プロセスはステップ２８８において開始する。ステップ２９０において、表示スレッシュホールド値がユーザによってセットされる。ステップ２９２において、選択された頁が、好適には、ディスプレイスクリーン上に表示される。ハイブリッドデータ構造のコード化データが本プロセスにおいてレンダリングされ且つ表示され、生のビットマップは表示されない。ユーザは、どの頁又は頁の部分を見たいかを選択する。ユーザは、このことを、例えば図１２ａに関して後述するインターフェース等のインターフェースを使用して特定することが可能である。ステップ２９４において、マイクロプロセサが表示スレッシュホールドレベルよりも低い信頼性レベルを有するトップラベルエントリを有する表示された単語をハイライトする。ハイライトするということは、単語を反転ビデオ（例えば、色付き又はシェード付きのバックグラウンド上に白の文字）で表示するか、又は別個の又は異なるカラー、フォント等でその単語を表示することを意味することが可能である。従って、ユーザはどの単語が表示スレッシュホールドレベルより低い信頼性レベルを有するかを一目で識別することが可能である。最適な表示スレッシュホールド値においては、ハイライトされた単語の殆どが認識エラーを有しており且つハイライトされなかった単語の全てが正確に認識されている。好適には、ユーザは表示スレッシュホールドレベルを所望のレベルへ変化することが可能である。
【００８９】
ステップ２９６において、ユーザは編集することを希望する単語を選択する。このことは、例えばキーボード、マウス、スタイラス等を使用することによって幾つかの態様で行なうことが可能である。ステップ２９８において、プロセサがその単語に対応する元のビットマップ部分及び元のビットマップの周りの区域の一部を、好適には、別のウインドウ内に表示する。更に、ハイブリッドデータ構造内に格納されていた選択した単語と関連したラベルエントリの全て又は幾つかの「ポップアップメニュー」が別個のウインドウ（又は異なるウインドウ）内に表示される。従って、ユーザは単語に対して認識器によってなされた格納されている推定をみることが可能である。ステップ３００において、ユーザは選択されている単語のトップラベルエントリを編集して誤って認識された単語を補正する。ユーザは単に正しい単語をタイプ入力することが可能であり、そのことは、しばしば、その単語の表示された元のビットマップ画像を見ることによって推測することが可能である。ユーザは、又、ラベルエントリの表示されたリスト内のその他のラベルエントリのうちの１つを選択して、その選択したレベルエントリでトップラベルエントリと置換させることが可能である。ユーザが単語を変化させた後に、その単語に対するトップラベルエントリが自動的に１００％の信頼性レベルが割当てられる。その単語が編集されると、マイクロプロセサは、ユーザがステップ３０２において編集を終了したか否かをチェックする。終了していない場合には、本プロセスはステップ２９２へ復帰し、ハイブリッドデータ構造の選択された部分を表示する。ユーザが終了した場合には、本プロセスはステップ３０４において表示したように完了する。
【００９０】
図１２ａは本実施例の編集用インターフェース３１０を示したスクリーンディスプレイの模式図である。このインターフェースは表示、編集、サーチ機能を制御する表示マネジャによって表示される。編集用ウインドウ３１２は、ユーザが見るためにハイブリッドデータ構造のコード化データの頁又は頁の一部を表示するために使用される。テキスト３１４はハイブリッドデータ構造の全ての単語をそれらの単語ラベル（コード化）形態で包含している。単語３１６は表示スレッシュホールドレベルより低い信頼性レベルを有しており従ってそれらがエラーを有する場合があることを表示するためにハイライトされている。単語３１８は信頼性の低い単語としてハイライトされると共に現在ユーザによって選択されている単語としてハイライトされている（単語３１６及び３１８は異なるカラー、パターン等で表示することが可能である）。入力した生のビットマップにおける単語３１８の近くからの関連した元の画像３２０がウインドウ３２２内に表示されている。本実施例においては、選択された単語３１８に対する全ての格納されているラベルエントリを包含する表示されたラベルリスト３２４がウインドウ３２６内に示されている。別の実施例においては、ユーザはリスト３２４内に格納されているラベルのうち幾つを表示するかを選択することが可能である（ハイブリッドデータ構造内に１つを超えた数のラベルが格納されている場合）。リスト３２４内の各ラベルエントリに対する信頼性レベルをユーザが所望する場合には表示することも可能である。
【００９１】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ限定されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【００９２】
【図１】本発明に基づいてハイブリッドデータ構造を形成し且つ画像を表示するコンピュータシステムを示したブロック図。
【図２】図１のデジタルコンピュータを示したブロック図。
【図３】本発明によって発生される表示画像の一例を示した説明図。
【図４】本発明に基づいてハイブリッドデータ構造及びラスタ画像を与える方法を示したフローチャート図。
【図５】ビットマップを図４のハイブリッドデータ構造へ変換するステップを示したフローチャート図。
【図５ａ】本発明において使用される語句単位の階層を示した説明図。
【図５ｂ】図５ａの階層の語句単位を示した説明図。
【図５ｃ】図５ａの階層の低いレベルを示した説明図。
【図６】図５の幾何学的形状補正ステップを示したフローチャート図。
【図７】ラベルリスト及び信頼性レベルを語句単位へ割当てるための図５のステップを示したフローチャート図。
【図７ａ】文字に割当てられた文字ラベル及び信頼性レベルを示した説明図。
【図７ｂ】単語ラベルリストを示した説明図。
【図８】図７のフォント属性認識ステップを示したフローチャート図。
【図８ａ】識別された文字に関してとられたフォント特徴測定値を示した説明図。
【図８ｂ】測定したフォント属性にしたがって文字を異なるタイプへ区画化する状態を示した説明図。
【図９】識別された単語の寸法調節を計算するための図７のステップを示したフローチャート図。
【図９ａ】コード化単語に対する取囲みボックス及び非コード化ビットマップデータから派生されたビットマップ取囲みボックスの寸法を示した説明図。
【図９ｂ】識別された単語が調節されるべきか否かを判別する場合に使用されるスレッシュホールドを示した説明図。
【図１０】図４のハイブリッドデータ構造表示ステップを示したフローチャート図。
【図１１】図４のハイブリッドデータ構造サーチステップを示したフローチャート図。
【図１２】図４のハイブリッドデータ構造編集ステップを示したフローチャート図。
【図１２ａ】ハイブリッドデータ構造の編集状態を示したエディタ及びディスプレイスクリーンの一部を示した説明図。
【符号の説明】
【００９３】
１０  コンピュータシステム
１２  入力装置
１４  デジタルコンピュータ
１６  ディスプレイスクリーン
１８  プリンタ
２０  キーボード
２２  フロッピィディスクドライブ
２４  ハードディスクドライブ
２６  光学スキャナ
２８  デジタルカメラ
３０  ビットマップ発生器
３２  用紙
３６  マイクロプロセサ
３８  メモリバス
４０  ランダムアクセスメモリ（ＲＡＭ）
４２  リードオンリメモリ（ＲＯＭ）
４４  ペリフェラルバス
４６  キーボードコントローラ
【図１】
2007042126.tif 000003
【図２】
2007042126.tif 000004
【図３】
2007042126.tif 000005
【図４】
2007042126.tif 000006
【図５】
2007042126.tif 000007
【図５ａ】
2007042126.tif 000008
【図５ｂ】
2007042126.tif 000009
【図５ｃ】
2007042126.tif 000010
【図６】
2007042126.tif 000011
【図７】
2007042126.tif 000012
【図７ａ】
2007042126.tif 000013
【図７ｂ】
2007042126.tif 000014
【図８】
2007042126.tif 000015
【図８ａ】
2007042126.tif 000016
【図８ｂ】
2007042126.tif 000017
【図９】
2007042126.tif 000018
【図９ａ】
2007042126.tif 000019
【図９ｂ】
2007042126.tif 000020
【図１０】
2007042126.tif 000021
【図１１】
2007042126.tif 000022
【図１２】
2007042126.tif 000023
【図１２ａ】
2007042126.tif 000024