(57)【要約】  【課題】  明示的な言語スイッチが存在しない場合に入力された画像データストリームの言語フォーマットを正確に認識する方法及びコンピュータプログラムを提供する。  【解決手段】  スニファ・プロセスは入力ストリームの最初のサンプルを解析し、コールバック関数として実装される言語認識装置セットを順序付けすることにより言語フォーマットを決定する。順序付けは動的な経験則に基づくアプローチを使用し、言語認識装置を試行する順序を選択する。各言語認識装置は対応するサンプル・サイズを有する。順序付けされた各言語認識装置について、スニファ・プロセスは対応するサンプル・サイズを予め読取り、バイト・サンプルを使用して対応するコールバック関数を呼び出す。順序付けは、言語認識装置が言語フォーマットの認識を認知するまで、またはすべて選択されるまで継続する。【選択図】      図７
2006048649.tif 000002
【特許請求の範囲】
【請求項１】
画像を形成する言語を切り替える言語スイッチが存在しない場合に入力された画像データストリームの言語フォーマットを正確に認識するための方法であって、
前記言語フォーマットを決定するためにスニファ・プロセスを実行して入力された画像データストリームの最初のサンプルを解析し、
前記スニファ・プロセスは、
一又は複数の言語認識装置を動的に順序付けし、
一又は複数の言語認識装置の最初の言語認識装置で用いるサンプルのサイズを予め読み取り、
前記最初のサンプルを使用して前記最初の言語認識装置で用いるコールバック関数を呼び出し、
前記最初の言語認識装置が前記言語フォーマットを認識するか否かを判断し、
前記スニファ・プロセスの実行中に前記言語フォーマットが認識された場合、前記入力された画像データストリームをレンダリングすることを特徴とする方法。
【請求項２】
前記一又は複数の言語認識装置を動的に順序付けする場合、前記一又は複数の言語認識装置の順序を経験則に基づいて選択することを特徴とする請求項１記載の方法。
【請求項３】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択する場合、前記言語フォーマットが認識されたことのある回数の累計値を記憶することを特徴とする請求項２記載の方法。
【請求項４】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択する場合、言語フォーマットの認識の頻度に基づいて予め特定された優先順序とすることを特徴とする請求項２記載の方法。
【請求項５】
前記優先順序は、
（ｉ）前回の前記言語フォーマットの認識時、又は
（ｉｉ）前記言語フォーマットが認識された回数
のいずれかに基づいて特定されていることを特徴とする請求項４記載の方法。
【請求項６】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択する場合、
まずランダムな順で順序付けし、
言語フォーマットの認識の頻度に基づいて予め確立された優先順序で順序付けし、
二以上の言語認識装置の回数の累計値が同一である場合、同一である前記二以上の言語認識装置をランダムな順に順序付けすることを特徴とする請求項２記載の方法。
【請求項７】
前記言語フォーマットが認識された場合、選択に用いる経験則を更新することを特徴とする請求項２記載の方法。
【請求項８】
前記一又は複数の言語認識装置のうち一の言語認識装置により前記言語フォーマットが認識された場合、前記画像データストリームを初期化し、前記一の言語認識装置へバインドすることを特徴とする請求項１記載の方法。
【請求項９】
前記コールバック関数を呼び出す場合、前記最初のサンプルを引数として使用して前記コールバック関数を呼び出すことを特徴とする請求項１記載の方法。
【請求項１０】
前記最初の言語認識装置が前記言語フォーマットを認識しない場合、
前記スニファ・プロセスは、
前記一又は複数の言語認識装置の次の言語認識装置で用いるサンプルのサイズを予め読み取り、
前記最初のサンプルを使用して前記次の言語認識装置で用いるコールバック関数を呼び出し、
前記次の言語認識装置が前記言語フォーマットを認識するか否かを判断することを特徴とする請求項１記載の方法。
【請求項１１】
前記入力された画像データストリームをレンダリングする場合、画像データストリームは、画像デバイスによってレンダリングされ、
該画像デバイスは、
（ｉ）プリンタ、
（ｉｉ）多機能周辺装置、
（ｉｉｉ）スキャナ、
（ｉｖ）ファクシミリ装置、
（ｖ）電子ホワイトボード、
（ｖｉ）ディスプレイ・モニタ、
（ｖｉｉ）タブレットＰＣ、
（ｖｉｉｉ）ドキュメント・サーバ、
（ｉｘ）コピー機、
（ｘ）医療画像解析デバイス、
（ｘｉ）地質学的画像解析デバイス、
（ｘｉｉ）オーディオ／ビジュアル・デバイス、
（ｘｉｉｉ）自然言語デバイス
のいずれか１つを備えることを特徴とする請求項１記載の方法。
【請求項１２】
画像を形成する言語を切り替える言語スイッチが存在しない場合に入力された画像データストリームの言語フォーマットを正確に認識するための方法であって、
画像データストリームを受信し、
一又は複数の言語認識装置を動的に順序付けし、
一又は複数の言語認識装置の最初の言語認識装置で用いるサンプルのサイズを予め読み取り、
最初のサンプルを使用して前記最初の言語認識装置で用いるコールバック関数を呼び出し、
前記最初の言語認識装置が前記言語フォーマットを認識するか否かを判断し、
前記言語フォーマットが認識されると判断した場合、前記入力された画像データストリームをレンダリングすることを特徴とする方法。
【請求項１３】
前記最初の言語認識装置が前記言語フォーマットを認識しない場合、
前記一又は複数の言語認識装置の次の言語認識装置で用いるサンプルのサイズを予め読み取り、
前記最初のサンプルを使用して前記次の言語認識装置で用いるコールバック関数を呼び出し、
前記次の言語認識装置が前記言語フォーマットを認識するか否かを判断し、
前記言語フォーマットが認識されたと判断した場合、前記入力された画像データストリームをレンダリングすることを特徴とする請求項１２記載の方法。
【請求項１４】
前記一又は複数の言語認識装置を動的に順序付けする場合、前記一又は複数の言語認識装置の順序を経験則に基づいて選択することを特徴とする請求項１２記載の方法。
【請求項１５】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択する場合、前記言語フォーマットが認識されたことのある回数の累計値を記憶することを特徴とする請求項１４記載の方法。
【請求項１６】
前記順序は、
（ｉ）前回の前記言語フォーマットの認識時、又は
（ｉｉ）前記言語フォーマットが認識された回数
のいずれかに基づいて特定されていることを特徴とする請求項１５記載の方法。
【請求項１７】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択する場合、
まずランダムな順で順序付けし、
言語フォーマットの認識の頻度に基づいて予め特定された優先順序で順序付けし、
二以上の言語認識装置の前記言語フォーマットが認識されたことのある回数の累計値が同一である場合、同一である前記二以上の言語認識装置をランダムな順序で順序付けし、
前記言語フォーマットが認識された場合、経験則を更新することを特徴とする請求項１５記載の方法。
【請求項１８】
前記一又は複数の言語認識装置のうち一の言語認識装置により前記言語フォーマットが認識された場合、前記画像データストリームを初期化し、前記一の言語認識装置へバインドすることを特徴とする請求項１２記載の方法。
【請求項１９】
画像を形成する言語を切り替える言語スイッチが存在しない場合に入力された画像データストリームの言語フォーマットを正確に認識する方法を具現化するコンピュータで実行することが可能なコンピュータプログラムであって、
前記コンピュータに、
画像データストリームを受信するステップ、
一又は複数の言語認識装置を動的に順序付けするステップ、
一又は複数の言語認識装置の最初の言語認識装置で用いるサンプルのサイズを予め読み取るステップ、
最初のサンプルを使用して前記最初の言語認識装置で用いるコールバック関数を呼び出すステップ、
前記最初の言語認識装置が前記言語フォーマットを認識するか否かを判断するステップ、及び
該ステップで前記言語フォーマットが認識されたと判断した場合、前記入力された画像データストリームをレンダリングするステップ
を実行させることを特徴とするコンピュータプログラム。
【請求項２０】
前記コンピュータに、
前記最初の言語認識装置が前記言語フォーマットを認識しないと判断した場合、前記一又は複数の言語認識装置の次の言語認識装置で用いるサンプルのサイズを予め読み取るステップ、
前記最初のサンプルにより前記次の言語認識装置で用いるコールバック関数を呼び出すステップ、
前記次の言語認識装置が前記言語フォーマットを認識するか否かを判断するステップ、及び
該ステップで前記言語フォーマットが認識されたと判断した場合、前記入力された画像データストリームをレンダリングするステップ
を実行させることを特徴とする請求項１９記載のコンピュータプログラム。
【請求項２１】
前記一又は複数の言語認識装置を動的に順序付けするステップは、前記一又は複数の言語認識装置の順序を経験則に基づいて選択するステップとして機能することを特徴とする請求項１９記載のコンピュータプログラム。
【請求項２２】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択するステップは、前記言語フォーマットが認識されたことのある回数の累計値を記憶するステップとして機能することを特徴とする請求項２１記載のコンピュータプログラム。
【請求項２３】
前記順序は、
（ｉ）前回の前記言語フォーマットの認識時、又は
（ｉｉ）前記言語フォーマットが認識された回数、
のいずれかに基づいて特定することを特徴とする請求項２２記載のコンピュータプログラム。
【請求項２４】
前記一又は複数の言語認識装置の順序を経験則に基づいて選択するステップは、
ランダムな順で順序付けするステップ、
言語フォーマットの認識の頻度に基づいて予め特定された優先順序で順序付けするステップ、
二以上の言語認識装置の前記言語フォーマットが認識されたことのある回数の累計値が同一である場合、同一である前記二以上の言語認識装置をランダムな順序で順序付けするステップ、及び
前記言語フォーマットが認識された場合、経験則を更新するステップ
として機能することを特徴とする請求項２１記載のコンピュータプログラム。
【請求項２５】
前記コンピュータに、
前記一又は複数の言語認識装置のうち一の言語認識手段により前記言語フォーマットが認識された場合、前記画像データ・ストリームを初期化し、前記一の言語認識装置へバインドするステップ
を実行させることを特徴とする請求項２０記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のレンダリングに関する。特に本発明は、言語を切り替える言語スイッチが存在しない場合に入力された画像データストリームの言語フォーマットを正確に認識することにより言語を切り替えることができる自動言語切り替えを提供する方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
現在、デバイスの印刷エンジン特有のラスタ・データ等の単一の言語フォーマットのみをサポートする画像デバイス及び多くのラスタ専用デバイスが市販されている。このようなデバイスの場合、画像データは事前のチェックなしに印刷データインタプリタにより印刷される。入力が正しい言語フォーマットであれば、全ての入力が認識され、ジョブが出力される。正しい言語フォーマットでなく入力の一部または全てが認識されなければ、ジョブは出力されない。図１は、単一言語サポート式のプリンタ技術を示す。
【０００３】
多言語サポート式の画像デバイス技術は、画像データに先行した明示的な言語スイッチを要求する。多言語サポート式の画像デバイス技術において、何らかのコマンド又はデータが、後続の画像データの言語フォーマットを指定する周知の、または予め決められたフォーマットで画像デバイスに読み取られる。例えば、プリンタジョブ言語（ＰＪＬ）のコマンド＠ＰＪＬ  ＥＮＴＥＲ  ＬＡＮＧＵＡＧＥ＝＜ｌａｎｇｕａｇｅ＞をサポートすることによって明示的な言語切り替えをサポートする画像デバイスが存在する。指定された言語がデバイスによってサポートされていれば、画像データは対応するインタプリタのベースにされる。サポートされていなければ、入力は拒絶され、ジョブは出力されない。図２は、多言語サポート式プリンタ技術を示す。
【０００４】
明示的な言語スイッチの使用は、異種類の画像データ生成装置が画像ジョブを構築する単一の仕様に適合しない可能性があるが、そうでなければそのデバイスと互換性のある画像データを発生する様々な入力環境に限定される。例えば、画像デバイスの製造者は明示的な切り替え仕様を有する一環境のためのデバイス・ドライバを供給する可能性があるが、そのデバイスは、明示的な言語スイッチを使用せずに画像データを発生する可能性のある別の環境において使用することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
米国特許第５，９６０，１１３号には、以下の技術が開示されている。すなわち、入力ストリームの最初のバイト・サンプルが予め読み取られ、言語認識プロセスへ送られる。サポートされる各言語について、バイト・サンプル内の特殊なサインを探す等の言語別認識テストを備えている。本技術は各言語別認識テストを、言語フォーマットが認識されるまで予め決められた順序で適用する。こうして言語が認識された場合、入力ストリームは対応する言語インタプリタで処理される。
【０００６】
上述した技術は、言語認識装置の適用順序が予め決められていることから必ずしも言語認識において効率的でない可能性がある点において、未だ限定的要素を有する。例えば、ある環境においてはデバイスへの入力の大部分は言語Ａである可能性があるが、これをテストする関連の言語認識装置は最後である可能性がある。従って、このような環境では、リソースはまず認識されようもない言語のために消費される。図３は、このタイプの技術を示す。
【０００７】
米国特許第５，４６７，４３２号には、別の技術が開示されている。この技術では、入力ストリームの最初のバイト・サンプルが予め読み取られる。読み取られたバイト・サンプルは、言語認識装置グループ（例えば、サポートされる言語毎に１つ）と比較される。各言語認識装置は、示唆的ではあるがその言語の一部であることを必ずしも確定しないモード決定コードを探す。各モード決定コードについて、言語のインジケータである尤度の確率が割り当てられる。プロセスは、サンプル内で発見された全ての決定コードの確率を言語別に合計して完了する。次にプロセスは、確率合計が最高であった言語を選択する。
【０００８】
この技術では、正しい言語を推定するだけであり、間違った言語を選択しがちである点でやはり限定的である。第２に、本技術の性能は、選択が実行されるまでに全ての言語を試験しなければならない点で非効率的である。図４は、このタイプの技術を示す。
【０００９】
このように、現時点で言語切り替えを提供するために使用される技術は存在するが、依然として課題がある。従って、現行技術を他の技術で補強する、または置換することは技術を向上させることになると思われる。
【００１０】
本発明は、画像のレンダリング処理に関する。特に本発明は、言語スイッチが存在しない場合であっても、入力された画像データストリームの言語フォーマットを正確に認識することができる自動言語切り替えを提供する方法及びコンピュータシステムプロダクトに関する。
【課題を解決するための手段】
【００１１】
多言語サポート式の言語デバイスが、言語フォーマットの表示のない画像データを受信した場合、画像デバイスは画像データをサンプリングして言語フォーマットを決定する。本発明は、明示的な言語スイッチ（例えば、自動言語切り替え）のない場合に画像データストリームの言語フォーマット（例えばＰＤＬ、他の言語等）を正確に認識するための効率的な方法が使用される画像レンダリングシステムで実行される。
【００１２】
少なくとも幾つかの実施態様においては、画像デバイスが入力画像データストリーム（例えば印刷ジョブ）を受信した場合、スニファ・プロセスが開始される。スニファ・プロセスは、入力ストリームの最初のサンプルを解析して言語フォーマット（例えばＰＤＬまたは他の言語）を決定する。スニファは、コールバック関数として実装された言語認識装置セットを列挙することによってこれを行なう。各言語認識装置は、個々に関連づけられたサンプルのサイズを有する。スニファ・プロセスは、順序付けされた各言語認識装置で用いるサンプルのサイズを予め読み取り、このバイト・サンプルで対応するコールバック関数を呼び出す。順序付けは、言語認識装置が言語フォーマットの認識を認知するまで、または言語認識装置セットの全ての言語認識装置が選択されるまで継続する。
【００１３】
順序付けは、動的な経験則に基づいたアプローチを使用し、言語認識装置を試す順序を選択する。経験則に基づいたアプローチは、言語が認識された回数の累計値を記憶することを含む。言語が認識された場合、対応する言語認識装置の回数の累計値が増分される。まず（例えば、最初のパワーアップ）、言語認識装置はランダムな順序に順序付けされる。少なくとも１回の言語認識に成功した場合、言語認識装置は言語が認識された回数の累計値に従って優先順に順序付けされる（例えば、言語認識回数が増加した装置は高位に移動する）。二以上の言語認識装置が同じ累計値を有する場合には、同じグループ内の優先順序はやはりランダムである。
【００１４】
したがって、言語が認識されるまでに適用される言語認識装置の平均数が減ることから、デバイスは、そのデバイスが作動している特定環境に関してさらに効率的になる。
【００１５】
本発明のこれらの、及び他の特徴及び優位点は、以下の説明及び添付の請求の範囲において記載され、またはより完全に明白となるであろう。上記特徴及び優位点は、添付の請求の範囲において特に指摘されている装置及び組合わせによって実現されかつ達成されることが可能である。さらに、本発明の特徴及び優位点は本発明の実施によって習得されることが可能であり、または以下に記載する説明から明白となるであろう。
【発明を実施するための最良の形態】
【００１６】
本発明の上記の方法及び他の特徴及び優位点を達成する目的で、添付の図面に示すその特定の実施形態を参照して本発明をより特定的に説明する。図面は本発明の単なる典型的な実施形態を描いたものであり、故に本発明の範囲を限定するものとされるべきではない、という理解の下で、添付の図面を使用して本発明をさらに特定的に、かつ詳細に説明する。
【００１７】
本発明は、画像のレンダリングに関する。特に本発明は、言語スイッチが存在しない場合であっても、入力された画像データストリームの言語フォーマットを正確に認識する方法及びコンピュータプログラムに関する。
【００１８】
多言語サポート式の言語デバイスが、言語フォーマットの表示のない画像データを受信した場合、画像デバイスは画像データをサンプリングして言語フォーマットを決定する。このプロセスは一般に、自動言語切り替えと称される。本発明の実施形態は、明示的な言語スイッチ（例えば、自動言語切り替え）のない場合に画像データストリームの言語フォーマット（例えばＰＤＬまたは他の言語）を正確に認識するための効率的な方法が使用される画像レンダリングシステムにつき開示する。
【００１９】
本発明の下記の開示は、「例示的な動作環境」及び「言語フォーマット認識の供給」という２つの小見出しに分類される。上記小見出しの使用は読者への便宜でしかなく、如何なる意味においても限定的であると解釈されるべきではない。
【００２０】
（例示的動作環）
図５及び対応する検討は、本発明が実装される可能性のある適切な動作環境を概説すべく意図されたものである。当業者には、本発明が一又は複数のコンピューティングデバイスにより、かつネットワーク化された構成を含む様々なシステム構成で実施される可能性のあることが認識されるであろう。
【００２１】
本発明の実施形態は、一又は複数のコンピュータ読取り可能な記録媒体を包含し、各記録媒体は媒体上にデータまたはデータを操作するためのコンピュータ実行可能な命令を含む、または含むように構成される。コンピュータで実行可能な命令は、データ構造、オブジェクト、プログラム、ルーチン、またはプロセシング・システムによってアクセスされることが可能な、様々な異なる機能を実行する能力のある汎用コンピュータに関連づけられるもの、または限定数の機能を実行する能力のある専用コンピュータに関連づけられるもの等の他のプログラム・モジュールを含む。コンピュータで実行可能な命令は、プロセシング・システムに特定機能または機能グループを実行させるものであり、本明細書に開示した方法ステップを実装するためのプログラム・コード手段の例である。さらに、実行可能な命令の特殊シーケンスは、このようなステップの実装に使用される可能性のある対応する行為の例を供給する。コンピュータ読取り可能な記録媒体の例は、ランダム−アクセス・メモリ（「ＲＡＭ」）、読取り専用メモリ（「ＲＯＭ」）、プログラム可能読取り専用メモリ（「ＰＲＯＭ」）、消去可能なプログラム可能読取り専用メモリ（「ＥＰＲＯＭ」）、電気的に消去可能なプログラム可能読取り専用メモリ（「ＥＥＰＲＯＭ」）、コンパクトディスク読取り専用メモリ（「ＣＤ−ＲＯＭ」）、またはプロセシング・システムによってアクセスされることが可能なデータまたは実行可能命令を供給する能力のある他の任意のデバイスまたはコンポーネントを含む。
【００２２】
図５を参照すると、本発明を実装するための代表的なシステムは、汎用または専用コンピュータである可能性のあるコンピュータ・デバイス１０を含む。例えばコンピュータ・デバイス１０は、パーソナル・コンピュータ、ノートブック・コンピュータ、パーソナル・デジタル・アシスタント（「ＰＤＡ」）または他のハンドヘルド・デバイス、ワークステーション、ミニコンピュータ、メインフレーム、スーパーコンピュータ、マルチプロセッサ・システム、ネットワーク・コンピュータ、プロセッサ・ベースのコンシューマ電子デバイスまたはこれらに類似するものである可能性がある。
【００２３】
コンピュータ・デバイス１０は、その様々なコンポーネントを接続するように構成されることが可能であってデータを二以上のコンポーネント間で交換できるようにするシステム・バス１２を含む。システム・バス１２は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バスまたは任意の様々なバス・アーキテクチャを使用するローカル・バスを含む様々なバス構造体のうちの１つを含むことが可能である。システム・バス１２によって接続される典型的なコンポーネントには、処理システム１４とメモリ１６とが含まれる。他のコンポーネントには、１つまたは複数の大容量記憶デバイス・インタフェース１８、入力インタフェース２０、出力インタフェース２２及び／またはネットワーク・インタフェース２４が含まれる可能性があり、以下、その各々について論じる。
【００２４】
処理システム１４は、セントラル・プロセッサ等の一または複数のプロセッサと、特殊な機能またはタスクを実行するように設計された任意選択である一または複数の他のプロセッサとを含む。メモリ１６、磁気ハードディスク、リムーバブル磁気ディスク、磁気カセット、光ディスク等のコンピュータ読取り可能な媒体上へ供給される命令、または同じくコンピュータ読取り可能な媒体であると捉えることもできる通信接続部からの命令を実行するのは、典型的には処理システム１４である。
【００２５】
メモリ１６は、媒体上にデータまたはデータを操作するための命令を含む、または含むように構成される可能性がありかつ処理システム１４によりシステム・バス１２を介してアクセスされることが可能である１つまたは複数のコンピュータ読取り可能な媒体を含む。メモリ１６は、例えば情報を永久的に格納するために使用されるＲＯＭ２８及び／または情報を一時的に格納するために使用されるＲＡＭ３０を含むことが可能である。ＲＯＭ２８は、コンピュータ・デバイス１０の起動の間等に通信を確立させるために使用される１つまたは複数のルーチンを有するベーシック入出力システム（「ＢＩＯＳ」）を含むことが可能である。ＲＡＭ３０は、一または複数のオペレーティング・システム等の一または複数のプログラム・モジュール、アプリケーション・プログラム及び／またはプログラム・データを含むことが可能である。
【００２６】
一または複数の大容量記憶デバイス・インタフェース１８は、一または複数の大容量記憶デバイス２６をシステム・バス１２へ接続するために使用されることが可能である。大容量記憶デバイス２６はコンピュータ・デバイス１０へ組み込まれる、またはその周辺機器であることが可能であり、コンピュータ・デバイス１０が大量のデータを保持することを許容する。任意選択として、大容量記憶デバイス２６の一または複数は、コンピュータ・デバイス１０からの取り外しが可能である。大容量記憶デバイスの例としては、ハードディスク・ドライブ、磁気ディスク・ドライブ、テープ・ドライブ及び光ディスク・ドライブが含まれる。大容量記憶デバイス２６は、磁気ハードディスク、リムーバブル磁気ディスク、磁気カセット、光ディスクまたは別のコンピュータ読取り可能な媒体からの読取り及び／またはこれらへの書込みを行うことが可能である。大容量記憶デバイス２６及びその対応するコンピュータ読取り可能な媒体は、オペレーティング・システム等の一または複数のプログラム・モジュール、一または複数のアプリケーション・プログラム、他のプログラム・モジュールまたはプログラム・データを含む可能性のあるデータ及び／または実行可能な命令の不揮発性記憶を供給する。このような実行可能な命令は、本明細書に開示した方法ステップを実装するためのプログラム・コード手段の例である。
【００２７】
一または複数の入力インタフェース２０は、ユーザが一または複数の対応する入力デバイス３２を介してデータ及び／または命令をコンピュータ・デバイス１０へ入力できるように使用されることが可能である。このような入力デバイスの例としては、キーボード及び、マウス、トラックボール、ライトペン、スタイラス、または他のポインティング・デバイス、マイクロホン、ジョイスティック、ゲームパッド、サテライト・ディッシュ、スキャナ、カムコーダ、デジタル・カメラ及びこれらに類似するもの等の代替入力デバイスが含まれる。同様に、入力デバイス３２をシステム・バス１２へ接続するために使用されることが可能である入力インタフェース２０の例としては、シリアルポート、パラレルポート、ゲームポート、ユニバーサル・シリアルバス（「ＵＳＢ」）、ファイヤワイヤ（ＩＥＥＥ１３９４）または別のインタフェースが含まれる。
【００２８】
一または複数の出力インタフェース２２は、一または複数の出力デバイス３４をシステム・バス１２へ接続するために使用されることが可能である。出力デバイスの例には、モニタまたはディスプレイ・スクリーン、スピーカ、プリンタ及びこれらに類似するものが含まれる。特定の出力デバイス３４は、コンピュータ・デバイス１０へ統合される場合もあれば、その周辺機器である場合もある。出力インタフェースの例には、ビデオ・アダプタ、オーディオ・アダプタ、パラレルポート及びこれらに類似するものが含まれる。
【００２９】
一または複数のネットワーク・インタフェース２４は、コンピュータ・デバイス１０がコンピュータ・デバイス３６として示した一または複数の他のローカルまたはリモート・コンピュータ・デバイスとの間で有線及び／または無線リンクを含む可能性のあるネットワーク３８を介して情報を交換できるようにする。ネットワーク・インタフェースの例には、ローカル・エリア・ネットワーク（「ＬＡＮ」）またはモデムへ接続するためのネットワーク・アダプタ、無線リンクまたはインターネット等の広域ネットワーク（「ＷＡＮ」）へ接続するための他のアダプタが含まれる。ネットワーク・インタフェース２４は、コンピュータ・デバイス１０へ組み込まれる場合もあれば、その周辺機器である場合もある。ネットワーク化されたシステムにおいては、アクセス可能なプログラム・モジュールまたはその一部はリモートメモリ記憶デバイス内に格納されることが可能である。さらにネットワーク化されたシステムでは、コンピュータ・デバイス１０は、機能またはタスクが複数のネットワーク化されたコンピュータ・システムによって実行される分散コンピューティング環境に参画することが可能である。
【００３０】
したがって、当業者には本発明の実施形態が多くのタイプのシステム構成を有する様々な異なる環境において実施される可能性のあることが認識されるであろうが、図６は、本発明に関連して使用される可能性のある代表的なネットワーク化された構成を提示している。図６は、クライアント１名、３つの画像デバイス及びネットワークに接続される任意選択のプリント・サーバ１つを含む実施形態を示しているが、代替実施形態は、２名以上のクライアント、２つ以下の画像デバイス、４つ以上の画像デバイス、サーバなし、及び／またはネットワークに接続される２つ以上のサーバを含む。さらに本発明の他の実施形態は、一または複数のコンピュータ・デバイスが画像化ジョブをレンダリングするための複数の画像デバイスへ接続されるローカルな、ネットワーク化された、またはピア・ツー・ピアの画像化環境を含む。実施形態によっては、無線ネットワーク環境を含むものがあり、またはネットワークがインターネット等の広域ネットワークである環境を含むものがある。
【００３１】
図６の代表的なシステムは、ネットワーク５６を通じて複数の画像デバイス５０乃至５４へ接続される、クライアント４０として示したコンピュータ・デバイスを含む。図６における画像デバイス５０乃至５４は、画像化ジョブのレンダリングに使用される可能性のある任意タイプの画像デバイスであることが可能である。例としては、プリンタ、マルチファンクショナル・ペリフェラル（「ＭＦＰ」）、スキャナ、ファクシミリ・デバイス、電子ホワイトボード、ディスプレイ・モニタ、タブレットＰＣ、ドキュメント・サーバ、他が含まれる。画像デバイス５０乃至５４はネットワーク５６へ接続されているが、本発明の実施形態は、コンピュータ・デバイスへ局部的に接続される画像デバイス、ピア・ツー・ピア画像化環境で構成される画像デバイスまたは無線ネットワーク環境で構成される画像デバイスの使用を含む。
【００３２】
図示した実施形態では、クライアント４０はソフトウェア・アプリケーション４２、１つまたは複数のプリント・ドライバ４４、ポート・マネージャ４６、スプーラ４８及びプリント・プロセッサ４９を含む。任意選択として、例えば１つまたは複数のプリント・キュー６２、一または複数のプリンタ・ドライバ６４、ポート・マネージャ６６、スプーラ６８及びプリント・プロセッサ６９を有するサーバ６０が含まれる。
【００３３】
従って、図示した本発明の実施形態及び他の実施形態によれば、入力画像データ・ストリームの言語フォーマットは明示的な言語スイッチが存在しない場合でも認識される。
【００３４】
（言語フォーマット認識の提供）
多言語サポート式の言語デバイスが言語フォーマットの明示的表示のない画像データを受信した場合、画像デバイスは画像データをサンプリングして言語フォーマットを決定する。本発明の実施形態は、明示的な言語スイッチ（例えば、自動言語切り替え）のない場合に画像データ・ストリームの言語フォーマット（例えばＰＤＬまたは他の言語）を正確に認識するための効率的な方法が使用される画像レンダリング・システムを開示する。
【００３５】
次に図７を参照すると、本発明による代表的な実施形態を示すフローチャートが提示されている。図７では、ステップ７０において画像デバイスが入力画像データ・ストリーム（例えば印刷ジョブ）を受信した場合、スニファ・プロセスが開始される。スニファ・プロセスは入力ストリームの最初のサンプルを解析し、コールバック関数として実装された言語認識装置セットの最初の順序付け（ステップ７２）によって言語フォーマット（例えばＰＤＬまたは他の言語）を決定する。
【００３６】
少なくとも幾つかの実施形態では、順序付けは、動的な経験則に基づいたアプローチを使用して言語認識装置を試す順序を選択する。例えば、ある実施形態における経験則に基づいたアプローチは、言語が認識された回数の累計値を記憶することを含む。言語が認識された場合、対応する言語認識装置の回数の累計値が増分される。まず（例えば、最初のパワーアップ）、言語認識装置はランダムな順序で順序付けされる。少なくとも１回の言語認識に成功した場合、言語認識装置は言語が認識された回数に従って優先順に順位付けされる（例えば、言語認識回数が増加した言語認識装置の順序が高位に移動する）。二以上の言語認識装置が同じ累計値を有する場合には、同じ計数グループ内の優先順序はやはりランダムである。したがって、言語が認識されるまでに適用される言語認識装置の平均数が減ることから、デバイスは、そのデバイスが作動している特定環境に関してさらに効率的になる。
【００３７】
別の実施形態では、デバイスは環境因子に従って適用される別個の経験則セットを保持する。このような環境因子の例には、デバイスのロケーション（例えばデバイスが移動する）、ユーザ（例えば部門）の局所性（例えばＩＰアドレス）またはユーザ自身（例えばユーザ履歴に固有のもの）が含まれる。
【００３８】
再度図７を参照すると、各言語認識装置は対応するサンプル・サイズを有する。順序付けされた各言語認識装置について、スニファ・プロセスはステップ７４で対応するサンプル・サイズを予め読み取り、またはポークし、ステップ７６でバイト・サンプルにより対応するコールバック関数を呼び出す。次に判定ブロック７８において、言語認識装置が言語フォーマットを認識したか否かに関する判定が下される。判定ブロック７８において言語認識装置が言語フォーマットを認識したと判定された場合、制御プロセスは順序付けプロセスを終了し、ステップ８０で選択経験則を更新し、ステップ８２で対応する言語インタプリタを開始またはロードし、ステップ８４でバイト・ストリームを対応する言語インタプリタへバインドしかつステップ８６でジョブをレンダリングする。
【００３９】
判定ブロック７８に戻って参照した場合に、言語認識装置が言語フォーマットを認識しなかったと判定したときは、実行は判定ブロック８８へ進み、そのセット内により多くの言語認識装置が存在する、または利用可能であるか否かを判定する。判定ブロック８８において別の言語認識装置が存在する、または利用可能であると判定した場合、実行はステップ７２へ戻って別の言語認識装置の順序付けを行ない、ステップ７４で対応するサンプル・サイズを予め読み取り、またはポークし、ステップ７６でバイト・サンプルにより対応するコールバック関数を呼び出す。
【００４０】
或いは、判定ブロック８８においてそのセット内に別の言語認識装置は存在しないと判定したときは、実行はステップ９０へ進み、ユーザへの通知が行われる。従って図７に示すように、順序付けは、言語認識装置が言語フォーマットの認識を認知するまで、または言語認識装置セット内の全ての言語認識装置で判定が完了するまで続く。
【００４１】
次に図８を参照すると、次に選択する言語認識装置の動的な判定を提供するための代表的な実施形態が示されている。図８におけるスニファは、制御プロセス／コンポーネントと、言語認識装置セレクタ・コンポーネントと、言語認識装置と、選択経験則とを備える。
【００４２】
制御プロセスはスニファへのエントリ・ポイントであり、他のサブプロセスを開始し、結果を基礎として制御決定を下す。画像データ・バイト・ストリーム（図８では「印刷ジョブ」として示されている）を受信した場合、制御プロセスは、言語が認識されるまで、または全ての言語認識装置で言語判定するまで順序付けを行う。順序付けは、言語認識装置セレクタによって処理される。
【００４３】
言語認識装置セレクタは、選択経験則（例えば過去の整合累計値）を使用して認識装置の順序を選択する。言語認識装置が選択される度に、プロセスは、認識装置及び認識装置の対応するバイト・サイズ・サンプルのロケーション（例えば関数コールバック・アドレス）の制御プロセスへ戻る。
【００４４】
制御プロセスは次に、特定のバイト・サンプル・サイズに関してバイト・ストリームを予め読み取り、またはポークし、バイト・サンプルを引数としてコールバック関数を呼び出す。言語認識装置は次に、言語が認識されたか否か（例えばブールの戻り結果）を返す。
【００４５】
言語認識装置が首尾良く作動すると、制御プロセスは順序付けプロセスを終了し、選択経験則を更新し、バイト・ストリームを開始してこれを対応する言語インタプリタへバインドする。
【００４６】
次に図９を参照すると、現行選択されている言語認識装置によってサンプル・サイズを動的に決定するための代表的な事前読取り機能が示されている。図９では、制御プロセスは、制御プロセスが言語認識装置を順序付けする度にその言語認識装置に対応するバイト・サンプル・サイズを事前読取りサブプロセスへ送る。事前読取りサブプロセスは、そのバイト・サンプル・サイズについてバイト・ストリームをポークする（例えば、データを消費せず、バイト・ストリーム・オフセットは進行しない）。
【００４７】
本実施形態では、サブプロセスはキャッシュを使用してパフォーマンスを向上させる。キャッシュは、バイト・サンプルを格納するために使用される。キャッシュは最初は空であり、最初のポークのコピーがキャッシュに格納される。後続のポークに際して、サンプル・サイズがキャッシュ・サイズより小さい、またはこれに等しければ、そのバイト・サンプルがキャッシュから検索される。そうでなければ、バイト・サンプルがバイト・ストリームから予め読み取られ、キャッシュは新しい（例えばより大きい）バイト・サンプルで更新される。
【００４８】
次に図１０を参照すると、動的に選択された言語認識装置をこれが認識されるまで、または全ての言語確認が終わるまで順次テストするための代表的な実施形態が示されている。図１０における制御プロセスは、選択された言語認識装置を、対応するコールバック関数を呼び出しかつ引数としてバイト・サンプルを送ることによって開始する。言語認識装置が首尾良く作動しなければ、制御プロセスは、言語認識装置選択プロセスを呼び出して次の言語認識装置を順序付けすることにより、さらに言語認識装置が存在するかどうかを決定する。言語認識装置が整合することなく判定が終了した場合、ジョブは出力されない。
【００４９】
言語認識装置は、バイト・サンプル内における言語の存在または不在を決定するために、言語固有の特殊なサイン（例えばマジックナンバ）を探す、等の任意の方法を使用することが可能である。以下、例として、下記の言語の初めに表出する一意のバイト・シーケンスを示す。
言語          バイト・シーケンス
ＰＪＬ        ＠ＰＪＬ
ＰＳ          ％！ＰＳ
ＰＤＦ        ％ＰＤＦ
ＴＩＦＦ      ＩＩ＊＜ＮＵＬ＞またはＭＭ＜ＮＵＬ＞＊
【００５０】
個々の言語認識装置に使用される方法は認識装置毎に相違する可能性があり、スニファ・プロセス自体はこれに気づかない。
【００５１】
図１１を参照すると、言語インタプリタを開始しかつ認識後に経験則を更新するための代表的な実施形態が示されている。図１１において、言語認識装置が列挙される順序は、その対応する言語フォーマットの認識を首尾良く行うために、各言語認識装置の過去の履歴の経験則計数を基礎として動的に決定される。プロセスは、整合が首尾良く行われる度の増分等の任意の経験則計数方法を使用することが可能である。
【００５２】
言語認識装置は次に、その経験則計数に従って動的に分類され、最高値から最低値まで順序付けされる。同じグループ内に複数の言語認識装置が存在する場合、グループ内の順序はランダムに選択される。
【００５３】
実施形態によっては、言語を順次テストする順序が上流のプロセスによって予め決められないものがある。代わりにこれは、マッチングを行う同じプロセスによって動的に決定される。例示としては、本決定はランダムであるか、過去の履歴を基礎とするか、これらの双方である。
【００５４】
言語が認識されると、制御プロセスは対応する言語インタプリタをロードし、バイト・ストリーム（即ちプリント・データ）をこのロードされた言語インタプリタへバインドする。また制御プロセスは、選択経験則を対応する言語認識装置の優先選択を増進させるように更新する。
【００５５】
本発明による方法及びプロセスは、ページ記述言語（ＰＤＬ）を有する印刷ジョブのレンダリングに関連して特に有効であることが証明されているが、当業者には、本方法及びプロセスが様々な異なるアプリケーションに、かつ様々な異なるタイプの言語に関連して使用され得ることが認識されるであろう。例えば本発明による方法及びプロセスは、その入力の全体または一部をファックス、スキャン、コピー、文書管理プロセス、他等の電子フォーマット（例えばソフトコピー）で取り込む画像デバイスによって全体または一部が処理される、または非電子フォーマット（例えばハードコピー）を入力プロセス（例えば、スキャンからＯＣＲへ）の一部として電子フォーマットに変換する、かつ入力された、または変換された言語フォーマットはレンダリング言語ではなく自然言語（例えば英語）または翻訳されるべきものである任意の画像化オペレーションを包含する。
【００５６】
本発明の少なくとも幾つかの実施形態は、Ｘ線、ＭＲＩ、ソナー及び他の入力を取り込む医療及び／または地質学的画像解析デバイスを包含する。さらなる実施形態は、入力がオーディオ／ビジュアル・フォーマットであるＡＶデバイスを包含する。さらに幾つかの実施形態は、入力が音声及び／または書き込まれたワードを含む自然言語デバイスを包含する。
【００５７】
従って本明細書において論じたように、本発明の実施形態は画像のレンダリングに関する。特に本発明は、明白な言語スイッチが存在しない場合に入力された画像データストリームの言語フォーマットを正確に認識するためのシステムと方法に関する。本発明は、その精神または本質的な特徴を逸脱することなく他の特定的な形式で具現されることも可能である。説明した実施形態はあらゆる点で例示としてのみ考慮されるべきものであり、限定的なものではない。従って本発明の範囲は、上述の明細書本文ではなく添付の請求の範囲によって指示される。請求の範囲に対応する意味及び範囲内にある変更は全て、請求の範囲内に含まれるものとする。
【図面の簡単な説明】
【００５８】
【図１】先行技術による単一言語サポート式プリンタ技術である。
【図２】先行技術による多言語サポート式プリンタ技術である。
【図３】先行技術による自動言語切り替え技術である。
【図４】先行技術による別の自動言語切り替え技術である。
【図５】本発明に関連して使用するための適切な動作環境を供給する代表的なシステムを示す。
【図６】本発明の一実施形態に関連するネットワーク化された代表的システム構成を示す。
【図７】本発明による代表的な実施形態を示すフローチャートである。
【図８】次に選択する言語認識装置を動的に決定するための代表的な実施形態を示す。
【図９】現行選択されている言語認識装置によってサンプル・サイズを動的に決定するための代表的な実施形態を示す。
【図１０】動的に選択された言語認識装置を順次テストするための代表的な実施形態を示す。
【図１１】言語インタプリタを開始し、認識後は経験則を更新するための代表的な実施形態を示す。
【符号の説明】
【００５９】
１０、３６  コンピュータ・デバイス
１２  システム・バス
１４  処理システム
１６  メモリ
１８  大容量記憶デバイス・インタフェース
２０  入力インタフェース
２２  出力インタフェース
２４  ネットワーク・インタフェース
２６  大容量記憶デバイス
２８  ＲＯＭ
３０  ＲＡＭ
３２  入力デバイス
３４  出力デバイス
【図１】
2006048649.tif 000003
【図２】
2006048649.tif 000004
【図３】
2006048649.tif 000005
【図４】
2006048649.tif 000006
【図５】
2006048649.tif 000007
【図６】
2006048649.tif 000008
【図７】
2006048649.tif 000009
【図８】
2006048649.tif 000010
【図９】
2006048649.tif 000011
【図１０】
2006048649.tif 000012
【図１１】
2006048649.tif 000013