(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイスであって、
１以上のプロセッサと、
実行可能な命令を格納するメモリであって、前記命令を実行する工程は、
前記１以上のプロセッサにより、２次元画像をレンダリングするための１以上のオブジェクトを含むオーダーに対するオブジェクトのデータを処理するための第１ステージを実行する工程であって、前記各オブジェクトは、前記２次元画像の画像データを含み、前記第１ステージは、
複数の中間変数を決定する工程と、
前記オブジェクトに対して、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、
前記各所定の状態に対して、前記１以上のプロセッサに関連付けられている１以上の装置から装置状態を監視するための装置の第１サブセットを決定する工程と、
前記各所定の状態に対して、前記１以上のプロセッサに関連付けられている前記１以上の装置から制御するための装置の第２サブセットを決定する工程と、
を備える工程と、
前記１以上のプロセッサにより、前記オブジェクトのデータを処理するための第２ステージを実行する工程であって、前記第２ステージは、
前記状態遷移リストに基づき現在の所定の状態を決定する工程と、
前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、
前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、
前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、
前記状態遷移リストに基づき次の所定の状態を決定する工程と、
前記現在の所定の状態の前記所定のアクションの実行完了後に前記次の所定の状態に進む工程と、
を備える工程と、
を備える方法を前記１以上のプロセッサに実行させるメモリと、
を備えるデバイス。
【請求項２】
請求項１に記載のコンピューティング・デバイスであって、さらに、
前記第１ステージに対し、
前記各所定の状態に対する前記装置の第１サブセットの状態マスクを生成する工程と、  前記第２ステージに対し、
さらに、前記現在の所定の状態に対する前記状態マスクに基づき前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、
を備えるデバイス。
【請求項３】
請求項２に記載のコンピューティング・デバイスであって、さらに、
前記第１ステージに対し、
前記１以上のプロセッサにより、前記各所定の状態に対する前記装置の第１サブセットの極性を受信する工程と、
前記第２ステージに対し、
さらに、前記状態マスクおよび前記現在の所定の状態に対する前記受信された極性に基づき前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、
を備えるデバイス。
【請求項４】
請求項２又は３に記載のコンピューティング・デバイスであって、さらに、
前記第１ステージに対し、
前記各所定の状態に対して前記装置の第２サブセットの制御マスクを生成する工程と、  前記第２ステージに対し、
前記現在の所定の状態に対する前記制御マスクに基づき前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、
を備えるデバイス。
【請求項５】
請求項２乃至４のいずれか１項に記載のコンピューティング・デバイスであって、さらに、
前記１以上のプロセッサにより、前記第２ステージを実行する工程であって、前記第２ステージは、さらに、
前記状態遷移リストに基づき最終的な所定の状態を決定する工程と、
少なくとも前記状態遷移リスト、前記最終的な所定の状態に対する前記状態マスク、および前記最終的な所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記最終的な所定の状態の所定のアクションを実行する工程と、
を備える工程と、
前記オーダーに対する前記オブジェクトのデータを処理するための前記第１ステージおよび前記第２ステージの実行完了後に、
前記１以上のプロセッサにより、前記オーダーに対する第２オブジェクトのデータを処理するための前記第１ステージを実行する工程と、
前記１以上のプロセッサにより、前記オーダーに対する前記第２オブジェクトのデータを処理するための前記第２ステージを実行する工程と、
により、前記オーダーの前記第２オブジェクトを処理する工程と、
を備えるデバイス。
【請求項６】
請求項１乃至５のいずれか１項に記載のデバイスであって、
前記各オブジェクトは、複数のラインを含み、前記現在の所定の状態の前記所定のアクションは、少なくとも前記複数のラインの１つのラインに対するデバイス。
【請求項７】
請求項１乃至６のいずれか１項に記載のデバイスであって、
前記オブジェクトは台形であるデバイス。
【請求項８】
方法であって、
マイクロコントローラにより、２次元画像をレンダリングするための１以上のオブジェクトを含むオーダーに対するオブジェクトのデータを処理するための第１ステージを実行する工程であって、前記各オブジェクトは、２次元画像の画像データを含み、前記第１ステージは、
複数の中間変数を決定する工程と、
前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、
前記各所定の状態に対し、前記マイクロコントローラに関連付けられている１以上の装置から、装置状態を監視するための装置の第１サブセットを決定する工程と、
前記各所定の状態に対し、前記マイクロコントローラに関連付けられている前記１以上の装置から、制御するための装置の第２サブセットを決定する工程と、
を備える工程と、
前記マイクロコントローラにより、前記オブジェクトのデータを処理するための第２ステージを実行する工程であって、前記第２ステージは、
前記状態遷移リストに基づき現在の所定の状態を決定する工程と、
前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、
前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、    前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記現在の所定の状態の前記所定のアクションを実行する工程と、
前記状態遷移リストに基づき次の所定の状態を決定する工程と、
前記現在の所定の状態の前記所定のアクションの実行完了後、前記次の所定の状態に進む工程と、
を備える工程と、
を備える方法。
【請求項９】
コンピュータプログラムであって、
マイクロコントローラの１以上のプロセッサにより、２次元画像をレンダリングするための１以上のオブジェクトを含むオーダーに対するオブジェクトのデータを処理するための第１ステージを実行する工程であって、前記各オブジェクトは、前記２次元画像の画像データを含み、前記第１ステージは、
複数の中間変数を決定する工程と、
前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、
前記各所定の状態に対し、前記１以上のプロセッサに関連付けられている１以上の装置から装置状態を監視するための装置の第１サブセットを決定する工程と、
前記各所定の状態に対し、前記１以上のプロセッサに関連付けられている前記１以上の装置から制御するための装置の第２サブセットを決定する工程と、
を備える工程と、
前記１以上のプロセッサにより、前記オブジェクトのデータを処理するための第２ステージを実行する工程であって、前記第２ステージは、
前記状態遷移リストに基づき現在の所定の状態を決定する工程と、
前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、
前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、    前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、
前記状態遷移リストに基づき次の所定の状態を決定する工程と、
前記現在の所定の状態の前記所定のアクションの実行完了後に、前記次の所定の状態に進む工程と、
を備える工程と、
を備える方法を前記マイクロコントローラの前記１以上のプロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイム・ステートマシンの性能向上のための技術に関する。
【背景技術】
【０００２】
近年、コンピュータ、デスクトップ、ラップトップ、サーバ、プリンタ、スキャナ、コピー機、ファクス、多機能印刷デバイス、および／または他のコンピューティング・デバイスを含む、様々なコンピューティング・デバイスへの需要が高まっている。これらの様々なコンピューティング・デバイスに対し、多様なハードウェアが、コンピューティング・デバイスにより利用され、タスクを実行できる。コンピューティング・デバイス・ハードウェアの１つのタイプがマイクロコントローラである。マイクロコントローラには、コンピューティング・デバイスに対するタスクを実行するため、プロセッサ、メモリ、および入出力部を含めてもよい。アプリケーションによっては、マイクロコントローラは、コンピューティング・デバイスでタスクを実行するための、低コストで、柔軟性があり、高性能なオプションであってよい。
【発明の概要】
【０００３】
第１の態様における、方法であって、マイクロコントローラにより、２次元画像をレンダリングするための１以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第１ステージを実行する工程であって、前記各オブジェクトは、２次元画像の画像データを含み、前記第１ステージは、複数の中間変数を決定する工程と、前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、前記各所定の状態に対し、前記マイクロコントローラに関連付けられている１以上の装置から、装置状態を監視するための装置の第１サブセットを決定する工程と、前記各所定の状態に対し、前記マイクロコントローラに関連付けられている前記１以上の装置から、制御するための装置の第２サブセットを決定する工程と、を備える工程と、前記マイクロコントローラにより、前記オブジェクトのデータを処理するための第２ステージを実行する工程であって、前記第２ステージは、前記状態遷移リストに基づき現在の所定の状態を決定する工程と、前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記現在の所定の状態の前記所定のアクションを実行する工程と、前記状態遷移リストに基づき次の所定の状態を決定する工程と、前記現在の所定の状態の前記所定のアクションの実行完了後、前記次の所定の状態に進む工程と、を備える工程と、を備える方法。
【０００４】
第２の態様における、コンピュータプログラムであって、マイクロコントローラの１以上のプロセッサにより、２次元画像をレンダリングするための１以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第１ステージを実行する工程であって、前記各オブジェクトは、前記２次元画像の画像データを含み、前記第１ステージは、複数の中間変数を決定する工程と、前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、前記各所定の状態に対し、前記１以上のプロセッサに関連付けられている１以上の装置から装置状態を監視するための装置の第１のサブセットを決定する工程と、前記各所定の状態に対し、前記１以上のプロセッサに関連付けられている前記１以上の装置から制御するための装置の第２サブセットを決定する工程と、を備える工程と、前記１以上のプロセッサにより、前記オブジェクトのデータを処理するための第２ステージを実行する工程であって、前記第２ステージは、前記状態遷移リストに基づき現在の所定の状態を決定する工程と、前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、前記状態遷移リストに基づき次の所定の状態を決定する工程と、前記現在の所定の状態の前記所定のアクションの実行完了後に、前記次の所定の状態に進む工程と、を備える工程と、を備える方法を前記マイクロコントローラの前記１以上のプロセッサに実行させるプログラム。
【０００５】
第３の態様における、コンピューティング・デバイスであって、１以上のプロセッサと、実行可能な命令を格納するメモリであって、前記命令を実行する工程は、前記１以上のプロセッサにより、２次元画像をレンダリングするための１以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するために第１ステージを実行する工程であって、前記各オブジェクトは、前記２次元画像の画像データを含み、前記第１ステージは、複数の中間変数を決定する工程と、前記オブジェクトに対して、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、前記各所定の状態に対して、前記１以上のプロセッサに関連付けられている１以上の装置から装置状態を監視するための装置の第１サブセットを決定する工程と、前記各所定の状態に対して、前記１以上のプロセッサに関連付けられている前記１以上の装置から制御するための装置の第２サブセットを決定する工程と、を備える工程と、前記１以上のプロセッサにより、前記オブジェクトのデータを処理するための第２ステージを実行する工程であって、前記第２ステージは、前記状態遷移リストに基づき現在の所定の状態を決定する工程と、前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態を決定する工程と、前記現在の所定の状態に対する前記装置の第２サブセットに出力を送信する工程と、前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第１サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、前記状態遷移リストに基づき次の所定の状態を決定する工程と、前記現在の所定の状態の前記所定のアクションの実行完了後に前記次の所定の状態に進む工程と、を備える工程と、を備える方法を前記１以上のプロセッサに実行させるメモリと、を備えるデバイス。
【０００６】
これらは、他の態様、代替、および利点と同様に、添付図面を適宜参照しながら以下の詳細な説明を読むことにより当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【０００７】
【図１Ａ】例示の状態遷移図を示す。
【図１Ｂ】状態アクション判定の一例をフローチャートにて示す。
【図１Ｃ】例示の状態遷移図を示す。
【図２】コンピューティング・デバイスの一例をブロック図にて示す。
【図３】例示のステートマシン実行の一例をフローチャートにて示す。
【図４】例示のステートマシン実行の一例をブロック図にて示す。
【図５】装置状態出力ベクトルの決定の一例をブロック図にて示す。
【図６Ａ】例示のステートマシンを実行するステップをフローチャートにて示す。
【図６Ｂ】例示のステートマシンを実行するステップをフローチャートにて示す。
【図６Ｃ】例示のステートマシンを実行するステップをフローチャートにて示す。
【発明を実施するための形態】
【０００８】
以下、本明細書の一部を構成する添付図面を参照して、詳細な説明を行う。しかしながら、本明細書中に記載されている配置は、例としてのみ記載されていることは理解されるべきである。このように、当業者であれば、他の配置および構成要素（例えば、機械、インターフェース、機能、機能の順序、など）が代わりにまたは加えて利用可能なことは、十分理解するだろう。さらに、本明細書中に記載されている構成要素の多くは、個別または分散された構成要素として、または他の構成要素と一緒に、および任意の適切な組み合わせおよび位置で実行されてもよい機能エンティティである。１以上のエンティティにより実行されるような本明細書中に記載されている様々な機能は、ハードウェア、ファームウェア、またはソフトウェア論理により実行されてもよい。例えば、本明細書中に記載されている様々な機能は、任意の適切なプログラミング言語で記述されてメモリに格納された命令を実行するプロセッサにより実行されてもよい。
【０００９】
本記述において、少なくとも２つの言葉が記述されたリストで接続詞「または」を使用するのは、リスト化された言葉の何れかまたはリスト化された言葉の任意の組み合わせを示すためである。「第１」、「第２」、「第３」などの序数の使用は、これらの構成要素の特定の順序を示すというよりは、それぞれの構成要素を区別するためである。
［１．概要］
【００１０】
印刷デバイスは、様々なタイプのハードウェアに依存し、文書を印刷する処理に関連しているタスクを実行する。ハードウェアの１つタイプには、特定用途向け集積回路（ＡＳＩＣ）が含まれる。ＡＳＩＣは特定のタスクを実行するように構成できる。ＡＳＩＣの１つのメリットは、ＡＳＩＣが多数のタスクを並行に実行できることである。例えば、ＡＳＩＣは、数千の静的変数を並行して評価することができる。その結果、ＡＳＩＣの計算能力により、印刷デバイスおよび他の関連装置は、優れた性能を発揮することができる。
【００１１】
しかしながら、ＡＳＩＣの欠点は、柔軟性に欠けることである。特に、ＡＳＩＣの機能性は、一旦構成されると、修正ができない。その結果、様々なタスクを実行するためにＡＳＩＣの構成を修正する必要がある場合、ＡＳＩＣを置き換える必要があるかもしれない。ＡＳＩＣの置き換えは、高価な、および／または時間のかかる可能性がある。ＡＳＩＣを再構成する必要がある理由には、プロトコル変更、機能性の向上、欠陥の補正、設計の修正、または他の理由が含まれる。
【００１２】
印刷する文書処理タスクを実行するために印刷デバイスが利用可能な代替タイプのハードウェアは、マイクロコントローラである。マイクロコントローラは、タスクを実行するように構成可能な低コストのハードウェア装置である。マイクロコントローラには、プロセッサ、メモリ、および入出力装置を含めてもよい。マイクロコントローラは、メモリに格納されたソフトウェア命令を実行するためにプロセッサを使用することにより構成された特定のタスクを完了させる。
【００１３】
マイクロコントローラの１つのメリットは、柔軟性である。特に、マイクロコントローラが様々なタスクを実行するためにマイクロコントローラの構成を修正する必要がある場合、構成は、マイクロコントローラに格納されたソフトウェアを修正することにより変更できる。例えば、マイクロコントローラをプロトコル変更、ソフトウェアのバグ補正、機能性の向上、設計の修正、またはある他の理由のために再構成する必要がある場合、マイクロコントローラを再構成可能な１つの方法は、マイクロコントローラにアップデートされたソフトウェアをダウンロードおよび／または格納することである。ハードウェアは、置き換える必要がないかもしれない。結果として、マイクロコントローラの構成変更は、安価になるかもしれない。このように、マイクロコントローラは、印刷デバイスにとって柔軟なハードウェア実装である。
【００１４】
マイクロコントローラの１つの欠点は、性能である。特に、マイクロコントローラによるタスクの実行は、本来順次的である。一方、ＡＳＩＣは、多数のタスクを並行して実行できる。その結果、リアルタイムで実行予定の多数のタスクを要求する操作にとって、ＡＳＩＣは、マイクロコントローラより著しく速くタスクを実行するかもしれない。それは、ＡＳＩＣがタスクを並行に実行できるのに対して、マイクロコントローラはタスクを直列に実行するためである。
【００１５】
本開示のシステムおよび方法は、マイクロコントローラによるタスクのリアルタイム性能を向上させる。具体的には、マイクロコントローラは、タスクをリアルタイムで実行するために２段階ソリューションを実行する。厳密に言えば、マイクロコントローラは、構成ステージを実行後、リアルタイムでランタイムステージを実行する。構成ステージはアプリケーションのリアルタイム実行より先に完了するため（例えば、ランタイムステージ）、マイクロコントローラのリアルタイム性能は、ランタイムステージに基づき測定できる。
【００１６】
構成ステージの間、マイクロコントローラは、静止状態、分岐、およびアクションを評価し、状態遷移リスト、事前評価された状態マスク、および事前評価された制御マスクを生成する。マイクロコントローラは、また、構成ステージの間に静的オブジェクトおよび／または変数を評価してもよい。ランタイムステージの間、マイクロコントローラは、生成された状態遷移リスト、状態マスク、および制御マスクに基づき所定のアクションを実行する。マイクロコントローラは、また、ランタイムステージの間に動的オブジェクトおよび／または変数を評価してもよい。動的変数は、装置状態のような、ランタイム間に評価される変数でもよい。構成ステージはランタイムステージより先に実行されるため、マイクロコントローラのリアルタイム性能は向上する。
【００１７】
開示されているシステムおよび方法が様々なコンピューティング・デバイスに適用できるのに対し、図１Ａ乃至図６Ｃに示される実施形態において、システムおよび方法は、マイクロコントローラを使用した印刷デバイスに対して説明される。それと共に、図１Ａ乃至図６Ｃに示される実施形態に対して、説明されているシステムおよび方法は、印刷デバイスに対してアプリケーションをレンダリングする２次元画像に適用される。しかしながら、他の実施形態においては、開示されたシステムおよび方法は、アプリケーションに適用してもよい。また、開示されたシステムおよび方法は、異なるコンピューティング・デバイスにより実行されてもよい。さらに、システムおよび方法は、マイクロコントローラ以外のハードウェアにより実行されてもよい。
【００１８】
図１Ａは、ステートマシン１００の状態遷移図を示す。図１Ａのステートマシン１００は、２段階実行することなく、リアルタイムで実行されてもよい。図１Ａに示された実施形態において、ステートマシン１００は、２次元画像をレンダリングする順序の処理に対応する。順序には、画像データを含む１以上のオブジェクトが含まれる。しかしながら、他の実施形態においては、ステートマシン１００は、異なるオブジェクト、順序、および／またはアプリケーションに対するものである可能性がある。
【００１９】
ステートマシン１００には、状態１０１乃至１１０、１５１乃至１６０、および１７１乃至１９２が含まれる。各状態は、斜線を施した楕円形として表される。状態１０１乃至１１０は、リアルタイムで実行される状態に対応する。状態１５１乃至１６０および１７１乃至１９２は、ステートマシン１００のリアルタイム実行より先に事前評価できる状態に対応する。状態１５１乃至１６０は、状態１０３に続き得る状態で、図１Ｃにおいてさらに詳細に説明される。各状態に対して、ソフトウェア・コードの一部は、状態を実行するためのコンピューティング・デバイスのメモリに格納されてもよい。
【００２０】
図１Ａの２つの状態間の矢印は、１つの状態から他の状態への可能性のある遷移を表している。例えば、状態１７９は３つの矢印を含み、そのうち１つは状態１８０を指し、別の１つは状態１８４に指し、最後の１つは状態１８５を指す。このように、状態１７９の実行によって、直後の状態は、状態１８０、状態１８４、または状態１８５になり得る。場合によっては、状態は、その状態から次の可能性のある状態を指し示す１つの矢印を有するのみでもよい。例えば、状態１０１は、状態１０１から状態１０２を指し示す１つの矢印を有するのみである。この矢印は、状態１０２は状態１０１に続き得る唯一の状態でもよいことを示している。このように、状態１０１が完了すると、実行は状態１０２に進む。
【００２１】
代わりに、２つの状態間の遷移は、斜線を施した円の重複により示してもよい。例えば、状態１０２および１０３は、重複する楕円形を有している。かかる場合には、状態１０２がはじめに実行された後、状態１０３が続く。状態が重なっている場合、その状態を指し示す矢印を有する状態が、重複している状態のうち最初に実行されてもよい。その状態から離れて指し示す矢印を含む状態が、重複している状態のうち２番目に実行されてもよい。このように、状態１０２および１０３、１０４および１０５、並びに１０６および１０７の重複するペアに関して、状態１０３、１０５、および１０７は、それぞれ状態１０２、１０４、および１０６の実行に続いてもよい。
【００２２】
図１Ａは、ステートマシンのリアルタイム実行をＡＳＩＣからマイクロコントローラに変更する際の問題を説明するために利用できる。特に、ハードウェアの変更は、ステートマシン１００のリアルタイム実行性能を著しく減少させるかもしれない。前述のように、ＡＳＩＣは、数千の静的オブジェクト変数を並行に評価するように構成できる。その結果、多数の状態および遷移を含む、図１Ａにおけるステートマシンを、多数のタスクを並行に実行するＡＳＩＣは、リアルタイムで迅速に評価できる。具体的に言えば、評価する次の状態を決定するためにどの遷移を利用するかを決定するために、状態が評価されてもよい。例えば、状態１７９は、次の状態が状態１８０、状態１８４、または状態１８５かどうか決定するために評価されてもよい。ＡＳＩＣは、状態１７９、１８０、１８４、１８５、および／または他の状態を並行に評価できる。その結果、ステートマシン１００のリアルタイム性能は向上する。
【００２３】
マイクロコントローラは、しかしながら、タスクを直列に実行する。このように、マイクロコントローラは、状態１７９を実行してもよい。状態１７９を実行する一方、マイクロコントローラは、続いて状態１８０、状態１８４、または状態１８５が状態１７９に続くかどうか決定してもよい。状態１７９を実行後、マイクロコントローラは、続いて、状態１７９の実行結果によって、状態１８０、状態１８４、または状態１８５のうち１つを実行する。状態１８０、状態１８４、または状態１８５のうち１つを実行する一方、マイクロコントローラは、また、状態１８０、状態１８４、または状態１８５の実行に続く状態を決定してもよい。この状態の直列実行は、ステートマシン１００に表示される多数の、およびおそらく全ての状態および／または遷移に適用するだろう。その結果、マイクロコントローラによるステートマシン１００のリアルタイムでの実行は、ＡＳＩＣによるステートマシン１００のリアルタイム実行よりも極めて長くなるだろう。
【００２４】
図１Ｂは、状態１０３の状態アクション判定を表示する一例を示す。図１Ｂには、状態１０１、１０３、１０４、１０６、１０８、および１５１乃至１６０が含まれる。図１Ｂには、また、条件１２１乃至１３５およびタスク１４１乃至１４６が含まれる。実施形態によっては、図１Ｂには、図１Ｂに示されているよりも多い、少ない、および／または示されているものとは異なる状態、タスク、および／または条件が含まれてもよい。
【００２５】
図１Ｂに見られるように、現在の状態（例えば、状態１０３）に続くべき状態の決定には、多数の条件（例えば、条件１２１乃至１３５）の評価および１以上のタスク（例えば、タスク１４１乃至１４６）の実行が要求されてもよい。ＡＳＩＣに関しては、ＡＳＩＣは多数の条件およびタスクを並行に処理できるため、この評価は、リアルタイム性能を妨げないかもしれない。しかしながら、マイクロコントローラに関しては、マイクロコントローラはタスクおよび条件を直列に処理するため、次の状態を決定するための多数の条件およびタスクの処理により、リアルタイム性能が落ちるかもしれない。このように、マイクロコントローラによる個別の状態のリアルタイム実行は、ＡＳＩＣと比較すると性能が劣るかもしれない。
【００２６】
マイクロコントローラの低性能に対処する１つの方法は、リアルタイムでステートマシン１００を実行するための２段階法を実行することである。具体的に言うと、第１ステージは、ステートマシン１００の残りの状態および条件のリアルタイム実行より先に、様々な状態（例えば、状態１０１乃至１１０、１５１乃至１６０、および１７１乃至１９２）および条件（例えば、状態１０３に対する条件１２１乃至１３５）を事前評価するために利用できる。１以上の状態および条件を事前評価することにより、マイクロコントローラによるステートマシン１００のリアルタイム実行を向上させることができる。
【００２７】
図１Ｃは、実行された２段階実行によるステートマシン１００のリアルタイム実行を示し、これがステートマシン１５０となる。ステートマシン１５０には、ステートマシン１００の状態１０１乃至１１０が含まれる。ステートマシン１５０には、ステートマシン１００の状態１５１乃至１６０および状態１７１乃至１９２は含まれない。具体的に言うと、２段階実行を行う場合、リアルタイム実行に先立つ第１ステージの間に、状態１５１乃至１６０および状態１７１乃至１９２がステートマシン１５０のリアルタイム実行の間に実行されないことを決定してもよい。その結果、状態１０１乃至１１０のみがリアルタイムで実行される。このように、ステートマシン１５０には、状態１０１乃至１１０が含まれるのみである。実施形態によっては、１以上の状態１０１乃至１１０、１５１乃至１６０および状態１７１乃至１９２が、状態１０１乃至１１０のリアルタイム実行より先に部分的にまたは全て事前評価されてもよい。
【００２８】
２段階実行を行うことにより、マイクロコントローラのリアルタイム性能が向上する。具体的には、リアルタイムでステートマシン１００の状態および遷移を実行する代わりに、マイクロコントローラは、ステートマシン１５０に表示された状態および遷移を実行するのみである。例えば、ステートマシン１５０は、実行すべき１０の状態（状態１０１乃至１１０）を有するのみである一方、ステートマシン１００は、実行すべき４２の状態（状態１０１乃至１１０、１５１乃至１６０、および１７１乃至１９２）を潜在的に有する。このように、２段階実行を行うことは、リアルタイムで実行すべき状態および遷移の数が減少することにより、マイクロコントローラのリアルタイム性能を向上させることができる。
【００２９】
それと共に、２段階実行は、特定の状態に対するマイクロコントローラのリアルタイム性能を向上させることができる。図１Ｂを参照すると、１以上の条件１２１乃至１３５は、リアルタイム実行より先に事前評価されてもよい。それと共に、１以上のタスク１４１乃至１４６も、リアルタイム実行より先に完了してもよい。その結果、リアルタイムでの状態１０３の実行には、たとえあったとしても、条件１２１乃至１３５のうちより少ない条件の評価しか含まれないかもしれない。さらに、リアルタイムでの状態１０３の実行には、たとえあったとしても、タスク１４１乃至１４６のうちより少ないタスクの実行しか含まれないかもしれない。
【００３０】
図１Ｂを参照すると、一例において、第１ステージの間、条件１２１、１２３，１２４及び１２５は、「ｎｏ」という結果として評価される一方、条件１２２は、「ｙｅｓ」という結果として評価されたかもしれない。それと共に、条件１２８は、「ｙｅｓ」の結果で評価されたかもしれない。その結果として、次の状態に進む前にリアルタイムで実行される必要があるかもしれないタスクは、タスク１４２および１４４のみであり、これは状態１０４である。実施形態によっては、タスク１４２および／または１４４は、リアルタイムで実行されてもよい。他の実施形態においては、タスク１４２および／または１４４は、第２ステージのリアルタイム実行より先に、第１ステージの間に実行されてもよい。このように、２段階実行の実施は、リアルタイムで処理する状態および遷移の数を減少させ、特定の状態に対して処理する条件および／またはタスクの数を減少させることにより、マイクロコントローラのリアルタイム性能を向上させることができる。
【００３１】
図１Ａおよび図１Ｃは、ステートマシン１００および１５０の実施形態を示したが、他の実施形態においては、ステートマシンには、より多い、より少ない、および／または異なる状態および／または遷移を含めてもよい。ステートマシンの他の構成も可能である。
［２．印刷デバイスのコンピューティング・デバイス構成要素の例］
【００３２】
図２は、印刷デバイス２００の例示の実施形態をマイクロコントローラ２０１で示す。
【００３３】
マイクロコントローラ２０１には、プロセッサ２０２、メモリ２０４、および入出力部２０６を含めてもよく、これらの全ては、マイクロコントローラ・システムバス２０８または類似のメカニズムにより接続されてもよい。プロセッサ２０２は、１以上のプロセッサを表してもよい。
【００３４】
メモリ２０４は、次に、揮発性および／または非揮発性データ記憶部を備えてもよく、プロセッサ２０２に全体または一部統合させることができる。メモリ２０４は、プロセッサ２０２により実行可能なプログラム命令、およびその命令により操作されるデータを格納して、本明細書中に記載されている様々な方法、処理、または機能を実行してもよい。代わりに、これらの方法、処理、または操作は、ハードウェア、ファームウェア、および／またはハードウェア、ファームウェアおよびソフトウェアの任意の組み合わせにより定義できる。そのため、メモリ２０４には、有形で非一時的なコンピュータ読取可能な記録媒体を含めてもよく、この記憶媒体には、１以上のプロセッサによる実行の際に、本明細書または添付図面に開示された方法、処理、または機能の何れかをマイクロコントローラ２０１および／または印刷デバイス２００に実行させるプログラム命令が格納されている。
【００３５】
入出力部２０６は、図１Ａ乃至図６Ｃに記載されているようなプロセッサ２０２およびマイクロコントローラ２０１の操作を構成および／または制御するために役立ててもよい。入出力部２０６は、また、プロセッサ２０２により実行される操作に基づく出力を提供してもよい。
【００３６】
表示されていないが、印刷デバイス２００には、それ自身の専用プロセッサ、メモリ、入出力部、および／またはシステムバスを含めてもよい。印刷デバイス・プロセッサには、１以上の汎用プロセッサおよび／または１以上の専用プロセッサ（例えば、特定用途向け集積回路（ＡＳＩＣ）またはデジタル・シグナル・プロセッサ（ＤＳＰ）、など）のような１以上の中央処理装置（ＣＰＵ）、および／または１以上のマイクロコントローラ（例えば、マイクロコントローラ２０１）を含めてもよい。印刷デバイス・プロセッサには、マイクロコントローラ２０１を含めてもよいが、他の実施形態においては、マイクロコントローラ２０１は、印刷デバイス・プロセッサとは分離させてもよい。印刷デバイス・プロセッサには、マイクロコントローラ２０１とは異なるマイクロコントローラを含めてもよい。印刷デバイス・プロセッサの他の構成も可能である。印刷デバイス２００は、クライアント装置またはサーバのような、ネットワーク装置でもよい。表示されていないが、印刷デバイス２００には、ネットワークを介した他の装置との通信をサポートするネットワークインターフェイスを含めてもよい。
【００３７】
これら例示の印刷デバイスは、例証目的に提供される。上記の例に加えおよび／または代わりに、プリンタとコンピュータ技術の他のコンビネーションおよび／またはサブコンビネーションは、いくつかある可能性の中でも特に、本明細書中の実施形態の要旨を逸脱しない範囲で存在してもよい。
［３．構成およびランタイムステージ］
【００３８】
図３は、例示のステートマシン実行のループ階層３００を示す。図３において、処理タスクはループ階層３００に基づき分類される。図３の処理タスクは、印刷デバイス２００により実行されるジョブに関連付けられている。ジョブは、２次元画像をレンダリングするためのものでもよい。しかしながら、他の実施形態においては、他のジョブも可能でもよい。また、他の実施形態においては、異なるループ階層を利用してもよい。さらに、印刷デバイス２００とは異なるコンピューティング・デバイスを、ジョブの実行のために利用してもよい。
【００３９】
図３に示された実施形態に関しては、印刷デバイス２００は、１以上のページを含むジョブを処理してもよい。各ページは、１つのプリンタ定義言語（ＰＤＬ）で記述されてもよい。各ページには、数千もの順序を含めてもよい。順序の例には、文字、多角形、三角形、またはベクトルが含まれる。他のタイプの順序も可能である。
【００４０】
各順序には、１以上のオブジェクトが含まれる。例示のオブジェクトには、スキャンライン・テーブル、フレーム、台形、または他のオブジェクトが含まれる。スキャンライン・テーブル・オブジェクトは、任意の形状を表す一方、フレーム・オブジェクトは矩形を表す。他のオブジェクトも可能である。
【００４１】
各オブジェクトには、１以上の平面が含まれる。平面の例には、テキスト平面、カラー平面（シアン、マゼンタ、イエロー、またはブラック）、透明性平面、ベクトル平面、画像平面、または作業平面が含まれる。各オブジェクトには、アクティブないくつかの平面および非アクティブな他の平面を含めてもよい。例えば、オブジェクトが白黒で描かれる場合、ブラックの平面のみがアクティブである一方、シアン、マゼンタ、およびイエローの平面は非アクティブでもよい。実施形態によっては、オブジェクトには、８つものアクティブな平面を含めてもよい。
【００４２】
各オブジェクトおよび各アクティブな平面には、オブジェクトを１以上の平面により定義されたように生成するための１以上のラインを含めてもよい。例えば、ブラックの部分および別々のシアンの部分を含むフレーム・オブジェクト（矩形）は、オブジェクトのブラックの部分に対応するブラックの平面により定義されて描かれたライン、およびオブジェクトのシアンの部分に対応するシアンの平面により定義されて描かれたラインを有してもよい。オブジェクトには、必要に応じた多数のラインを含めてもよい。例えば、場合によっては、オブジェクトには、何百もの線分を含めてもよい。しかしながら、オブジェクトには、より多い、またはより少ないラインを含めることができる。このように、オブジェクトを描くために、多数のラインがオブジェクトの１以上の平面により描かれ、定義されてもよい。
【００４３】
ジョブおよび／またはページに関連付けられている処理タスクは、コンピューティング・デバイスのＣＰＵにより処理されてもよい。ＣＰＵタスクには、ジョブまたは１以上のページに対する、ＰＤＬの解釈、メモリの配分、および／または他のタスクを含めてもよい。特定の順序、オブジェクト、平面、またはラインに関連付けられている処理タスクは、印刷デバイス２００のマイクロコントローラ２０１のような、マイクロコントローラにより処理されてもよい。他の実施形態においては、他のハードウェアおよび／またはコンピューティング・デバイスが、ジョブ、ページ、オブジェクト、平面、および／またはラインに関連付けられている処理タスクを処理してもよい。
【００４４】
図３は、マイクロコントローラ２０１により実行されるタスクに対するループ階層３００を示す。例えば、特定の順序３０５に対し、マイクロコントローラ２０１は、まず順序を解析し（ブロック３０６参照）、続いて順序を構成してもよい（ブロック３０７参照）。一旦、順序が構成されると、順序のオブジェクトの全てが、構成された順序で処理されてもよい。上述のように、各順序には、１以上の平面を含めてもよい。このように、各オブジェクトに対し、平面が処理されてもよい。
【００４５】
特定の平面３２０に対し、マイクロコントローラは、最後の平面が処理されたかどうか判断する（ブロック３２１参照）。処理されていない場合、マイクロコントローラは、平面がアクティブな平面かどうか判断する（ブロック３２２参照）。平面が非アクティブな場合、マイクロコントローラは非アクティブな平面をスキップし（ブロック３２６参照）、次の残りの平面の処理に進む。代わって、平面が残っていない場合、マイクロコントローラは、次のオブジェクトを処理してもよい。特定の順序のオブジェクトの全てが処理された場合、マイクロコントローラは、次の順序の処理に進んでもよい。
【００４６】
特定の平面がアクティブな平面３３０である場合、アクティブな平面は、まずレンダリングされ（ブロック３３１参照）、続いて構成される（ブロック３３２参照）。一旦、平面が構成されると、ライン操作３４０が実行されてもよい。実行されるライン操作は、処理されるオブジェクトのタイプに依存してもよい。図３において、スキャンライン・テーブル・オブジェクト・ライン操作３４１は、スキャンライン・テーブル・オブジェクトに対して実行される。フレーム・オブジェクト・ライン操作３４２は、フレーム・オブジェクトに対して実行される一方、他のオブジェクト・ライン操作３４３は、他のオブジェクトに対して実行される。
【００４７】
図３に示される実施形態において、ライン操作３４０は、ランタイムステージの間にリアルタイムで実行されてもよい。さらに、アクティブな平面３３０、非アクティブな平面３２５、全ての平面３２０、および順序３０５に関連付けられているタスクは、リアルタイム実行より先に構成ステージの間に実行されてもよい。ランタイムステージのリアルタイム実行より先に構成ステージの間に順序３０５、平面３２０、３２５、および３３０に関連付けられている処理タスクを実行することにより、マイクロコントローラ２０１によるリアルタイム処理を向上させることができる。
【００４８】
図３の実施形態が順序、平面、およびラインに関連付けられている様々なタスク（例えば、タスク３０６、３０７、３２１、３２２、３２６、３３１、３３２、３４１、３４２、３４３）を示す一方、表示されていない他のタスクも、順序、平面、またはラインに関連付けられてもよい。それと共に、実施形態によっては、図３に示されるタスクは、実行される必要がなくてもよいし、異なる順序で実行されてもよい。それと共に、異なるループ階層も可能である。例えば、ループ階層には、オブジェクトベースごとに実行されるタスクを含めてもよい。
【００４９】
図４は、印刷デバイス２００のマイクロコントローラ２０１により実行される２段階処理４００の一例をブロック図にて示す。表示されている実施形態において、２段階処理４００には、構成ステージ４０５およびランタイムステージ４１０が含まれる。ランタイムステージ４１０のリアルタイム実行より先に実行される構成ステージ４０５を含むことにより、マイクロコントローラ２０１のリアルタイム性能は、向上する。他の実施形態においては、２段階処理４００には、表示されている２つのステージより多いステージを含めてもよい。特に、多数のステージは、ランタイムステージのリアルタイム実行より先に実行されてもよい。２段階処理４００の他の実施形態も可能である。
【００５０】
構成ステージ４０５には、アプリケーションのリアルタイム実行より先に実行される複数のタスクが含まれ、これはランタイムステージ４１０に対応する。表示されている実施形態において、構成ステージ４０５には、中間変数判定４１５、状態遷移リスト構成４２０、およびマスク判定４２５が含まれる。それと共に、構成ステージ４０５には、スキャンライン・テーブル構成４３０、台形構成４３５、および反転マッピング構成４４０を含む、オプションのオブジェクト構成タスクを含めてもよい。実施形態によっては、構成ステージ４０５には、図４に示されるものより多い、少ない、および／または示されるものとは異なるタスクを含めてもよい。
【００５１】
中間変数は、特定のオブジェクトに対する構成ステージ４０５の中間変数判定４１５のタスクの間に決定される。中間変数には、ランタイムステージ４１０より先にマイクロコントローラにより評価される静的パラメータを含めてもよい。中間変数判定４１５のステップの間に評価される中間変数は、構成ステージ４０５の間の他のステップの間に利用されてもよい。例えば、状態遷移リスト構成４２０、マスク判定４２５、スキャンライン・テーブル構成４３０、台形構成４３５、および／または反転マッピング構成４４０のようなステップは、中間変数判定４１５のステップの間に評価される１以上の中間変数に依存してもよい。中間変数は、また、ランタイムステージ４１０の間に依存されてもよい。
【００５２】
状態遷移リスト構成４２０は、特定のオブジェクトに対する所定の状態の連結リストを生成する。連結リストには、特定のオブジェクトに対してランタイムステージ４１０の間に実行される複数の所定の状態を含めてもよい。状態遷移連結リストは、外側ループ、外側ループ・タスク、外側ループ条件、および／または他のループまたはループ部分を評価することにより、構成ステージ４０５の間に生成されてもよい。例えば、リストは、順序３０５ごとに、平面３２０ごとに、非アクティブな平面３２５ごとに、またはアクティブな平面３３０ごとに行われるタスクと見なされてもよいタスクを実行することにより、構成ステージ４０５の間に生成されてもよい（図３参照）。
【００５３】
他の例に関して、図１Ｂは、所定の状態遷移リストを生成するために構成ステージ４０５の間に事前評価されてもよい１以上の条件１２１乃至１３５および１以上のタスク１４１乃至１４６を示してもよい。前述のように、構成ステージ４０５の間に、条件１２１、１２３、１２４、１２５及び１２６は、「ｎｏ」として事前評価され、条件１２２、１２７および１２８は、「ｙｅｓ」として事前評価されてもよい。その結果、状態１０４は状態１０３に続くであろう。図１Ｂの条件を事前評価することにより、所定の状態遷移リストには、ここで、状態１０３および１０４、および状態１０３が状態１０４に先行するという情報を含めてもよい。構成ステージ４０５の間、状態１０４は、続いて状態１０４に続くべき状態を事前に決定するために事前評価されてもよい。
【００５４】
他の例に関して、図１Ｃは、２段階実行を行うステートマシン１５０の状態遷移図を示す。具体的に言うと、図１Ｃの状態遷移リストには、以下の順序の以下の状態を含めてもよい：状態１０１、状態１０２、状態１０３、状態１０４、状態１０５、状態１０６、状態１０７、状態１０８、状態１０９、および状態１１０。図１Ａに関して前述のように、各状態は、印刷デバイス２００および／またはマイクロコントローラ２０１のメモリに格納されるソフトウェア・コードの一部を表してもよい。一実施形態においては、状態遷移リストは、連結リストとして格納される。しかしながら、他の実施形態においては、状態遷移リストは、異なる方法で格納されてもよい。それと共に、他の実施形態においては、より多い、より少ない、および／または異なる状態が、状態遷移リストの一部として格納されてもよい。それと共に、状態は、図１Ｃに示され、または説明されている順序とは異なる順序で格納されてもよい。
【００５５】
所定の状態遷移連結リストの各所定の状態は、各所定の状態に関連付けられている所定のアクションを有してもよい。例えば、マイクロコントローラによる、状態１０３のような、所定の状態の実行には、状態１０４のような、次の状態に遷移するより先に所定のアクションを実行することが要求されてもよい。図１Ｂを参照すると、状態１０３に対する所定のアクションは、状態１０４の実行より先にタスク１４３またはタスク１４４を実行することでもよい。実施形態によっては、状態１０３には、状態１０３に対する所定のアクションの一環として他のタスク（図示せず）を含めてもよい。代わりに、状態１０３には、実施形態によっては、多数の所定のアクションを含めてもよい。図１Ｂには示されないが、実施形態によっては、状態１０３に対するタスク１４１乃至１４６のうち１以上のような、特定の状態に対する所定のアクションは、状態１０３に対する条件１２１乃至１３５のような、状態に対する任意の条件を評価せずに実行されてもよい。所定のアクションは、ランタイムステージ４１０の間に実行されてもよい。しかしながら、特定の所定の状態に対する所定のアクションは、構成ステージ４０５の間に決定されてもよい。
【００５６】
実施形態によっては、所定の状態に対する所定のアクションには、１以上のタスクを含めてもよい。タスクは、１以上の装置に制御出力を送信するマイクロコントローラに対応してもよい。実施形態によっては、マイクロコントローラは、１以上の装置の第１サブセットは１以上の装置の第２サブセットに制御出力を送信する前に、準備できていると判断する。１以上の装置への制御出力の送信は、一実施形態においては所定の状態の所定のアクションであってよいが、他の実施形態においては、所定の状態に対する所定のアクションの一環として、追加のタスクが制御出力の送信に加えて実行されてもよい。代わりに、所定の状態に対する所定のアクションは、所定の状態に対する条件を評価することでもよい。例えば、実施形態によっては、所定のアクションは、図２Ｂの状態１０３のような、特定の状態に対する、図２Ｂの条件１２１乃至１３５のような、条件を評価することでもよい。所定の状態に対する他の所定のアクションも可能である。
【００５７】
状態遷移リストは、マイクロコントローラのような、ハードウェアに、オブジェクトに対する状態遷移リストの現在の所定の状態、１以上の次の所定の状態、および／または最終的な所定の状態を決定させてもよい。マイクロコントローラは、次の所定の状態に対する１以上の所定のアクションの実行に進む前に、所定の状態に対する１以上の所定のアクションをランタイムステージ４１０の間にリアルタイムで実行してもよい。実施形態によっては、マイクロコントローラは、生成された状態遷移リストの所定の状態に対応する所定のアクションをランタイムステージ４１０の間にリアルタイムで実行する。マイクロコントローラは、状態遷移リストを決定するために構成ステージ４０５の間、中間変数に依存してもよい。マイクロコントローラは、また、状態遷移リストの所定の状態の所定のアクションを実行する一方、ランタイムステージ４１０の間、中間変数に依存してもよい。
【００５８】
ランタイムステージ４１０の間、マイクロコントローラは、まず、状態遷移リストに基づきオブジェクトに対する現在の所定の状態を決定してもよい。マイクロコントローラは、続いて、次の所定の状態に進む前に、現在の所定の状態に対する所定のアクションを実行してもよい。一旦、マイクロコントローラが所定の状態に対する所定のアクションを完了させると、マイクロコントローラは、次の所定の状態を決定するために状態遷移リストを利用してもよい。一旦、次の所定の状態がマイクロコントローラにより決定されると、マイクロコントローラは、次の所定の状態を現在の状態として設定し、他の所定の状態に進む前に、新しい現在の状態に関連付けられている所定のアクションを実行してもよい。マイクロコントローラは、最終的な所定の状態に遭遇するまで、この処理を繰り返してもよい。マイクロコントローラは、オブジェクトの処理を完了させるため最終的な所定の状態に関連付けられている所定のアクションを実行してもよい。マイクロコントローラは、続いて、次のオブジェクトの処理に進んでもよい。順序の全てのオブジェクトが処理されると、マイクロコントローラは、次の順序の処理に進んでもよい。
【００５９】
構成ステージ４０５の間に状態遷移リストを生成することにより、マイクロコントローラは、順番に処理するためのリアルタイム性能を向上させることができる。具体的に言えば、マイクロコントローラは、未評価の条件に基づき今後の状態を決定することに時間をかけることなく、リアルタイムで所定の状態に対する所定のアクションを実行するための状態遷移リストを利用できる。その結果、マイクロコントローラのリアルタイム性能は、流線型のランタイムステージにより向上する。
【００６０】
マスク判定４２５は、状態遷移リストの各所定の状態に対するマスクを生成する。具体的に言えば、マスク判定４２５は、各所定の状態に対する状態マスクおよび制御マスクを生成してもよい。他の実施形態においては、マスク判定４２５は、記述されているマスクより多い、少ない、および／または記述されているマスクとは異なるマスクを生成してもよい。
【００６１】
状態マスクは、特定の状態に対して、どの装置が状態を監視するかを示すために利用されてもよい。同じく、制御マスクは、特定の状態に対して、どの装置に制御出力を送信するかを示すために利用されてもよい。一実施形態においては、状態マスクには、各ビットが特定の装置に対応する、１以上のビットを含めてもよい。装置を監視すべき場合、装置状態ビットは１に等しい一方、装置を監視すべきではない場合、装置状態ビットは０に等しくてもよい。同じく、制御マスクにも、各ビットが特定の装置に対応する、１以上のビットを含めてもよい。装置が制御出力を受信するべきである場合、対応する装置制御ビットは１に等しい一方、装置が制御出力を受信すべきではない場合、対応する装置制御ビットは０に等しくてもよい。
【００６２】
記述されている実施形態では、装置状態および装置制御に対して２進値を利用しているが、他の実施形態においては、装置状態および／または装置制御は、２つより多い可能性のある値を有してもよい。例えば、装置状態は、「ビジー」、「レディー」、および「エラー」の値を有する可能性がある。装置制御は、「オフ」、「ロー」、および「ハイ」の値を有してもよい。装置状態および制御に対する他の値も可能である。それと共に、他の実施形態においては、状態マスクおよび／または制御マスクは、異なる方法で実行されてもよい。例えば、「ＡＮＤ」操作および／または「ＸＯＲ」操作（図５参照）は、マスクが２進ではない値を利用する場合、状態マスクおよび／または制御マスクに利用されなくてもよい。
【００６３】
ランタイムステージ４１０の間、状態マスクは、どの装置が状態を監視されるべきか決定するために利用されてもよい。特に、状態マスクは、装置状態入力ベクトルを用いた「ＡＮＤ」操作を経て、監視する装置を表すビットを含む出力ベクトルを生成できる。装置状態入力ベクトルには、各ビットが状態を監視する可能性のある装置を表す、１以上のビットを含めてもよい。装置状態入力ベクトルに対するビットの数は、状態マスクに対するビットの数と同一でもよい。さらに、状態マスクのビットは、装置状態入力ベクトルのビットによって表される装置と同一の装置に対応してもよい。
【００６４】
状態マスクおよび装置状態入力ベクトルを用いた「ＡＮＤ」操作を使用することにより、状態マスクは、装置の対応する装置状態ビットに対する０のエントリを有することによって、装置が監視されることを防ぐことができる。そうでなければ、装置に対応する状態マスク・ビットが１のエントリを有し、同一の装置に対応する装置状態入力ベクトルビットも１のエントリを有する場合、「ＡＮＤ」操作は、その特定の装置に対する１のエントリを用いてベクトルを作成してもよい。出力ベクトルの１は、特定の装置が状態を監視されるべきであることを示してもよい。しかしながら、監視する装置を決定する状態マスクを実行する他の実施形態も可能である
【００６５】
ランタイムステージ４１０の間、制御マスクは、どの装置が制御出力を受信すべきか決定するために利用されてもよい。具体的に言えば、制御マスクは、装置制御入力ベクトルを用いた「ＡＮＤ」操作を経て、制御する装置を表すビットを含む装置制御出力ベクトルを生成してもよい。装置制御入力ベクトルには、各ビットが制御する可能性のある装置を表す、１以上のビットを含めてもよい。装置制御入力ベクトルのビットの数は、制御マスクのビットの数と同一でもよい。制御マスクのビットは、装置制御入力ベクトルの制御ビットによって表される装置と同一の装置に対応してもよい。
【００６６】
制御マスクおよび装置制御入力ベクトルを用いた「ＡＮＤ」操作を使用することにより、制御マスクは、装置の対応する制御ビットに対する０のエントリを有することによって、装置が制御されることを防いでもよい。そうでなければ、制御マスクおよび装置制御入力ベクトルにおける装置の対応するビットが１のエントリを有する場合、「ＡＮＤ」操作は、その特定の装置に対する１のエントリを用いて装置制御出力ベクトルを作成してもよい。装置制御出力ベクトルの１は、特定の装置が制御されるべきであることを示してもよい。しかしながら、装置を制御する制御マスクを実行する他の実施形態も可能である。
【００６７】
状態マスクおよび制御マスクは、マイクロコントローラが外側ループ・タスクおよび条件を実行するのと同時に、構成ステージ４０５の間に決定されてもよい。具体的に言えば、状態遷移リストの各所定の状態に対して、マイクロコントローラは、マイクロコントローラに関連付けられている一連の装置の内、どの装置が状態を監視される必要があるか、および／または、どの装置が制御される必要があるかを判断してもよい。例えば、図１Ｂを参照すると、マイクロコントローラは、条件１２２が特定の装置状態の監視を要求する状態１０３に対する判断をしてもよい。その結果、マイクロコントローラは、構成ステージ４０５の間に、条件１２２の特定の装置に対応する状態マスク・ビットに対する１の値を含む状態１０３に対して、状態マスクを生成してもよい。他の例に関して、図１Ｂを参照すると、マイクロコントローラは、タスク１４５が選択された装置に制御出力を送信することを含む状態１０３に対する判断をしてもよい。このように、マイクロコントローラは、構成ステージ４０５の間に、選択された装置に対応する制御マスク・ビットに対する１の値を含む状態１０３に対して、制御マスクを生成してもよい。実施形態によっては、構成ステージ間の状態の評価は、１に等しい対応するビットを設定することにより監視および／または制御されるように指定される、より多い、より少ない、および／または異なる装置を状態マスクおよび／または制御マスクに備えさせてもよい。他の実施形態においては、制御マスクおよび状態マスクは、異なる方法で生成されてもよい。マイクロコントローラは、また、マスク判定４２５の間に中間変数を利用して、１以上のマスク（例えば、状態マスク、制御マスク）を決定してもよい。
【００６８】
状態マスクおよび制御マスクのような、マスクを生成することにより、特定の状態に対して、各状態のリアルタイム実行は短縮でき、これはマイクロコントローラのリアルタイム実行性能を向上させる。具体的に言えば、関連付けられている装置および状態マスクまたは制御マスク間の単一の「ＡＮＤ」操作は、特定の状態に対するどの装置が状態を監視、または制御される必要があるかを示している。その結果、マイクロコントローラは、要求された装置のみに関して、リアルタイムで装置状態を検索し、装置に制御出力を送信することができる。このように、マイクロコントローラのリアルタイム実行は、より効率的になる。そのため、マスクは、マイクロコントローラのリアルタイム性能を向上させることができる。
【００６９】
構成ステージ４０５の間、１以上のオブジェクト構成タスクもマイクロコントローラにより実行されてもよい。例えば、マイクロコントローラは、スキャンライン・テーブル・オブジェクトに対するスキャンライン・テーブル構成４３０、台形オブジェクトに対する台形構成４３５、または反転マッピング・オブジェクトに対する反転マッピング構成４４０を実行してもよい。フレームのような、他のオブジェクトも、構成ステージ４０５の間に構成されてもよい。
【００７０】
特定の状態に対してランタイムステージ４１０の間に実行されるタスクは、どのオブジェクトが処理されたかに依存するであろう。例えば、オブジェクトがスキャンライン・テーブルの場合、ランタイムステージ４１０には、スキャンライン・テーブル・オブジェクト４４５に対するタスクの実行が含まれるだろう。代わって、オブジェクトがフレーム・オブジェクトの場合、ランタイムステージ４１０には、フレーム・オブジェクト４５０に対するタスクの実行が含まれるだろう。代わって、ランタイムステージ４１０の間、タスクは、台形のような、他のオブジェクト４５５に対して実行されてもよい。タスクには、状態遷移リスト構成４２０の間に決定されるリストの１以上の所定の状態の実行、各所定の状態に対するマスク判定４２５の間に決定される状態マスクまたは制御マスクの適用、および／または他のタスクが含まれてもよい。ランタイムステージ４１０は、マイクロコントローラによりリアルタイムで実行されてもよい。他の実施形態においては、様々なタスクが、ランタイムステージ４１０の間に実行されてもよい。
［４．装置状態判定］
【００７１】
図５は、１以上の装置の装置状態の決定の一例をブロック図にて示す。装置状態は、ランタイムステージ４１０のリアルタイム実行の間に決定されてもよい。図５において、示された実施形態には、装置状態入力ベクトル５０５、極性５１０、状態マスク５１５、「ＸＯＲ」操作５２０、「ＡＮＤ」操作５２５、および装置状態出力ベクトル５３０が含まれる。他の実施形態においては、ブロック図には、図５に示されているよりも多い、少ない、および／または示されているものとは異なる構成要素が含めてもよい。
【００７２】
極性５１０は、反転された装置自身の状態ビットを有する１以上の装置を示してもよい。極性５１０には、１以上のビットを含めてもよい。各ビットは、装置に対応してもよい。図５に示されている実施形態においては、極性５１０には、装置状態入力ベクトル５０５と同数のビットが含まれる。さらに、極性５１０のビットは、装置状態入力ベクトル５０５のビットと同一の装置に対応する。このように、極性５１０は、装置状態入力ベクトル５０５の何れの装置がその装置の反転された状態ビットを有すべきかを示してもよい。例えば、極性５１０に対し、対応する装置のビットは、装置状態ビットが装置状態入力ベクトル５０５の同一の対応する装置に対して反転されるべきである（例えば、０から１へ、または１から０へ）ことを示す、１に設定できる。極性５１０はいつ装置状態ビットを反転するべきかを示すため、極性は、「ＸＯＲ」操作５２０を使用することにより装置状態入力ベクトル５０５に適用される。
【００７３】
なぜ状態ビットを反転してもよいかには、種々な理由がある。例えば、１つのアプリケーションにおいては、マイクロコントローラは、１以上の装置状態入力が１以上の装置は「レディー」であると示すことを決定した後、所定のアクションを実行してもよい。マイクロコントローラは、「ＡＮＤ」操作に依存して、１以上の装置が「レディー」であることを判断してもよい。その結果、各装置状態入力は、装置が「レディー」であることを示す１の装置状態ビットを有してもよい。
【００７４】
しかしながら、装置によっては、装置が「ビジー」であるか否かを示す装置状態を有してもよい。例えば、装置は、装置が「ビジー」であることを示す１の装置状態ビット、および装置が待機中または「レディー」であることを示す０の装置状態ビットを有してもよい。このように、マイクロコントローラは、１の装置状態ビットが装置は待機中または「レディー」であることに対応し、０に等しい装置状態ビットが装置は「ビジー」または利用できないことに対応するように、装置状態ビットを反転してもよい。かかる場合には、極性５１０は、どの装置が反転可能な装置状態ビットを有するかを示すことができる。
【００７５】
図５において、マイクロコントローラは、「ＸＯＲ」操作５２０を装置状態入力ベクトル５０５および極性５１０に適用することにより、極性５１０に基づき装置状態入力ベクトル５０５の１以上のビットを反転させてもよい。「ＸＯＲ」操作５２０の実行後、マイクロコントローラは、続いて、状態マスク５１５および「ＸＯＲ」操作５２０の結果に「ＡＮＤ」操作５２５を適用し、装置状態出力ベクトル５３０を決定してもよい。装置状態出力ベクトル５３０は、どの装置状態の値が監視される必要があってもよいを示す。装置状態出力ベクトル５３０は、また、１の装置状態ビットが装置は「レディー」であることを示すように、装置状態ビットの方向を修正する。「ＸＯＲ」操作５２０および「ＡＮＤ」操作５２５は、ソフトウェア（例えば、ランタイムステージ４１０コード）またはハードウェア（例えば、マイクロコントローラ・ハードウェア、コンピューティング・デバイス・ハードウェア、論理ゲート、および／または他のハードウェア）により実行されてもよい。
【００７６】
このように、ランタイムステージ４１０の間、マイクロコントローラは、特定の状態に対する装置状態入力ベクトル５０５、極性５１０、および状態マスク５１５を読み込み、装置状態入力ベクトル５０５および極性５１０に「ＸＯＲ」操作５２０を適用し、状態マスク５１５および「ＸＯＲ」操作５２０の結果に「ＡＮＤ」操作５２５を適用して、装置状態出力ベクトル５３０を生成してもよい。マイクロコントローラは、続いて、装置状態出力ベクトル５３０に基づき装置状態を検索する。マイクロコントローラは、また、装置状態出力ベクトル５３０に基づき、必要に応じて検索された装置状態ビットを反転させる。マイクロコントローラは、続いて、１以上の検索された装置状態の値を利用して、所定の状態の所定のアクションを実行してもよい。一旦、所定のアクションが実行されると、マイクロコントローラは、続いて、次の状態に進んでもよい。他の実施形態においては、装置状態、状態マスク、および／または極性は、図５に示されるものとは異なる方法で実行または利用されてもよい。
［５．方法の例］
【００７７】
図６Ａは、マイクロコントローラ２０１のような、マイクロコントローラにより実行される方法６００の一例をフローチャートにて示す。方法６００は、２次元画像をレンダリングする１以上のオブジェクトを含む順序に対するオブジェクトのデータを処理する第１ステージの実行から開始され、各オブジェクトには、ブロック６０５により示されるような、２次元画像に対する画像データが含まれる。例えば、図４を参照すると、方法６００の間に実行される第１ステージは、構成ステージ４０５に対応してもよい。処理される順序のオブジェクトは、スキャンライン・テーブル、フレーム、台形、またはいくつかの他のオブジェクトでもよい。方法６００は、続いて、ブロック６１０により示されるような、オブジェクトのデータを処理する第２ステージの実行に進む。図４を参照すると、例えば、方法６００の間に実行される第２ステージは、ランタイムステージ４１０に対応してもよい。ランタイムステージ４１０の間、方法６００は、スキャンライン・テーブル・オブジェクト４４５、フレーム・オブジェクト４５０、またはいくつかの（台形を含む）他のオブジェクト４５５の処理を実行してもよい。
【００７８】
図６Ａは方法６００の複数のステップを示しているが、実施形態によっては、方法６００には、図６Ａに示されているよりも多い、少ない、および／または示されているものとは異なるステップを含めてもよい。例えば、方法６００には、２次元画像をレンダリングする順序に対する画像データでオブジェクトを処理する２つより多いステージを含めてもよい。方法６００には、図４の構成ステージ４０５に対応する第１ステージ６０５とは異なるステージ、および図４のランタイムステージ４１０に対応する第２ステージ６１０とは異なるステージを含めてもよい。実施形態によっては、方法６００は、印刷デバイス２００のような、コンピューティング・デバイスのマイクロコントローラ２０１により実行される。しかしながら、他のコンピューティング・デバイスに、方法６００を実行するマイクロコントローラを含めてもよい。それと共に、マイクロコントローラ２０１以外のハードウェアが、方法６００を実行してもよい。
【００７９】
図６Ｂは、図６Ａの方法６００の第１ステージ６０５を実行する、例示の方法６１１をフローチャートにて示す。例示の方法６１１は、図２に示されるように、印刷デバイス２００に対するマイクロコントローラ２０１により実行されてもよい。図４を参照すると、方法６１１は、構成ステージ４０５に対応してもよい。方法６１１は、２次元画像をレンダリングする順序に対するオブジェクトの画像データを処理する方法６００の一環として実行されてもよい。
【００８０】
方法６１１は、ブロック６１５により示されるように、複数の中間変数の決定から開始される。図４を参照すると、例えば、マイクロコントローラ２０１は、構成ステージ４０５の間に中間変数判定４１５を完了させてもよい。次に、方法６１１は、続いて、ブロック６２０により示されるように、オブジェクトに対して、複数の中間変数に基づき状態遷移リストを生成してもよく、状態遷移リストには、複数の所定の状態が含まれ、各所定の状態は、所定のアクションに関連付けられている。例えば、図４を参照すると、ブロック６２０は、状態遷移リスト構成４２０に対応してもよく、状態遷移リスト構成４２０は、マイクロコントローラ２０１により構成ステージ４０５の間に実行される。
【００８１】
方法６１１は、ブロック６２５に示されるように、各所定の状態に対して、プロセッサに関連付けられている１以上の装置から、装置状態を監視する装置の第１サブセットを決定することにより継続される。方法６１１は、ブロック６３０に示されるように、各所定の状態に対して、プロセッサに関連付けられている１以上の装置から、制御する装置の第２サブセットを決定することにより進行する。図４を参照すると、装置の第１および第２の両サブセットは、構成ステージ４０５の間のマスク判定４２５の間に決定されてもよい。プロセッサは、マイクロコントローラ２０１に対応してもよい。
【００８２】
図６Ｂは方法６１１の複数のステップを示しているが、実施形態によっては、方法６１１には、図６Ｂに示されているよりも多い、少ない、および／または示されているものとは異なるステップを含めてもよい。例えば、方法６１１には、各所定の状態に対する装置の第１サブセットの状態マスクの生成、および各所定の状態に対する装置の第２サブセットの制御マスクの生成のステップが含まれ得る。図４を参照すると、状態マスクおよび制御マスクの両方が、構成ステージ４０５の間のマスク判定４２５の間に決定されてもよい。さらに、図６Ｂのステップは、図６Ｂに示される順序とは異なる順序で実行されてもよい。実施形態によっては、方法６１１は、印刷デバイスのマイクロコントローラ（例えば、印刷デバイス２００のマイクロコントローラ２０１）により実行される。しかしながら、他の実施形態においては、マイクロコントローラを含む異なるコンピューティング・デバイス、またはプロセッサが、方法６１１を実行してもよい。それと共に、マイクロコントローラ以外のハードウェアが、方法６１１を実行してもよい。
【００８３】
図６Ｃは、図６Ａの方法６００の第２ステージ６１０を実行する、例示の方法６４１をフローチャートにて示す。例示の方法６４１は、図２に示されるように、印刷デバイス２００に対するマイクロコントローラ２０１により実行されてもよい。図４を参照すると、方法６４１は、ランタイムステージ４１０に対応してもよい。方法６４１は、２次元画像をレンダリングする順序に対するオブジェクトの画像データを処理する方法６００の一環として実行されてもよい。
【００８４】
方法６４１は、ブロック６５０により示されるように、状態遷移リストに基づき現在の所定の状態を決定することにより開始される。次に、方法６４１は、ブロック６５５により示されるように、現在の所定の状態に対する装置の第１サブセットの装置状態を決定することにより継続される。方法６４１は、ブロック６６０により示されるように、現在の所定の状態に対する装置の第２サブセットに出力を送信することにより進行する。方法６４１は、続いて、ブロック６６５により示されるように、状態遷移リスト、および現在の所定の状態に対する装置の第１サブセットの装置状態に基づき、現在の所定の状態の所定のアクションの実行に進んでもよい。図４を参照すると、方法６４１のブロック６５０、６５５、６６０、および６６５は、ランタイムステージ４１０の間に実行されてもよい。
【００８５】
方法６４１は、続いて、ブロック６７０により示されるように、状態遷移リストに基づき次の所定の状態を決定してもよい。次に、方法６４１は、ブロック６７５により示されるように、現在の所定の状態の所定のアクションの実行完了後、次の所定の状態に進んでもよい。ブロック６５０、６５５、６６０、および６６５と同様に、ブロック６７０および６７５も、図４に示されるように、ランタイムステージ４１０の間に実行されてもよい。
【００８６】
図６Ｃは方法６４１の複数のステップを示しているが、実施形態によっては、方法６４１には、図６Ｃに示されているよりも多い、少ない、および／または示されているものとは異なるステップを含めてもよい。例えば、方法６４１には、さらに、現在の所定の状態の状態マスクに基づき、現在の所定の状態に対する装置の第１サブセットの装置状態を決定するステップを含めてもよい。それと共に、方法６４１には、現在の所定の状態の制御マスクに基づき、現在の所定の状態に対する装置の第２サブセットに出力を送信するステップを含めてもよい。図４を参照すると、これら追加のステップは、ランタイムステージ４１０の間に実行されてもよい。
【００８７】
さらに、図６Ｃのステップは、図６Ｃに示される順序とは異なる順序で実行されてもよい。実施形態によっては、方法６４１は、印刷デバイス２００のマイクロコントローラ２０１のような、印刷デバイスのマイクロコントローラにより実行される。しかしながら、他の実施形態においては、マイクロコントローラを含む異なるコンピューティング・デバイス、またはプロセッサが、方法６４１を実行してもよい。それと共に、マイクロコントローラ以外のハードウェアが、方法６４１を実行してもよい。
［６．結論］
【００８８】
本出願において記述されている具体的な実施形態に関して、本開示は限定されるべきではなく、それらはいろいろな態様の実例として意図されている。当業者にとって明白であるように、本開示の主旨と範囲から逸脱することなく多くの変更および変形をすることが可能である。本記載に列挙されていることに加え、本開示の範囲内の機能的に等価な方法および装置は前述の記載から明白であろう。そのような変更および変形は、添付された請求項の範囲内に入るように意図されている。
【００８９】
図面における、任意のすなわち全てのラダー図、シナリオ、およびフローチャートに関しておよび本記載で述べられたように、各ブロックおよび／または通信は、例示の実施形態に従って情報を処理しおよび／または情報を送信することを表してもよい。他の実施形態もそのような例示の実施形態の範囲に含まれてもよい。さらに、より多くのもしくはより少ないブロックおよび／または機能が、本記載に記述されているどのラダー図、シナリオ、およびフローチャートと共に使用されてもよいし、また当該ラダー図、シナリオ、およびフローチャートは、部分的にもしくは全体的にお互いに結合されてもよい。
【００９０】
情報の処理を表すステップもしくはブロックは、本記載の方法もしくは技術の具体的な論理機能を実行するように構成することが可能な回路に相当してもよい。それに代えてまたはさらに、情報の処理を表すステップもしくはブロックは、モジュール、セグメント、もしくはプログラムコードの一部分（関連するデータを含めて）に相当してもよい。プログラムコードは、方法もしくは技術における具体的な論理機能もしくは動作を実行するための、処理部により実行可能な一つ以上の命令を含んでもよい。プログラムコードおよび／または関連するデータは、ディスクドライブ、ハードドライブ、もしくはその他の記憶媒体を含む記憶装置等の任意の種類のコンピュータ読み取り可能な媒体に格納してもよい。
【００９１】
コンピュータ読み取り可能な媒体は、また、レジスタメモリ、プロセッサキャッシュ、および／またはランダムアクセスメモリ（ＲＡＭ）のような短期間データを格納するコンピュータ読み取り可能な媒体等の、非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、例えば、リードオンリーメモリー（ＲＯＭ）、光学もしくは磁気ディスク、および／またはコンパクトディスク・リードオンリーメモリー（ＣＤ―ＲＯＭ）のような、二次的もしくは持続的長期記憶装置等、より長期間プログラムコードおよび／またはデータを格納する非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、他の揮発性もしくは不揮発性記憶システムであってもよい。コンピュータ読み取り可能な媒体は、例えば、コンピュータ読み取り可能な記憶媒体および／または有形の記憶デバイスと考えてもよい。
【００９２】
加えて、本明細書、図面、請求項内のいずれの構成要素、ブロック、又はステップの列挙も、明確さを目的としたものである。従って、このような列挙は、これらの構成要素、ブロック、またはステップが特定の配置にこだわる、または特定の順序で実行されることを要求または意味すると解釈すべきではない。
【００９３】
本明細書中に記述されている配置は、例示の目的のためのみであることは理解されるべきである。そのように、当業者であれば、他の配置および他の構成要素（例えば、機械、インターフェース、機能、順序、機能のグルーピング、など）が代わりに利用され得ること、およびいくつかの構成要素が所望の結果に従って完全に省略されてもよいことは、理解するであろう。さらに、記載されている構成要素の多くは、個別または分散された構成要素として、または他の構成要素と一緒に、任意の適切な組み合わせおよび位置で実行されてもよい機能エンティティである。
【００９４】
本記載においてさまざまな態様および実施形態が開示されてきたが、他の態様および実施形態も当業者にとって明白であろう。本記載において開示されたさまざまな態様および実施形態は、例示目的であって限定することを意図するものではなく、真の範囲と主旨は以下の請求項により示されている。
【符号の説明】
【００９５】
２００  印刷デバイス
２０１  マイクロコントローラ
２０２  プロセッサ
２０４  メモリ
２０６  入出力部
２０８  マイクロコントローラ・システムバス
【図１Ａ】
0006566210.tif 000002
【図１Ｂ】
0006566210.tif 000003
【図１Ｃ】
0006566210.tif 000004
【図２】
0006566210.tif 000005
【図３】
0006566210.tif 000006
【図４】
0006566210.tif 000007
【図５】
0006566210.tif 000008
【図６Ａ】
0006566210.tif 000009
【図６Ｂ】
0006566210.tif 000010
【図６Ｃ】
0006566210.tif 000011