JP2016189188A - コンピューティング・デバイス、方法及びプログラム - Google Patents

コンピューティング・デバイス、方法及びプログラム Download PDF

Info

Publication number
JP2016189188A
JP2016189188A JP2016057693A JP2016057693A JP2016189188A JP 2016189188 A JP2016189188 A JP 2016189188A JP 2016057693 A JP2016057693 A JP 2016057693A JP 2016057693 A JP2016057693 A JP 2016057693A JP 2016189188 A JP2016189188 A JP 2016189188A
Authority
JP
Japan
Prior art keywords
state
stage
predetermined
devices
microcontroller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016057693A
Other languages
English (en)
Other versions
JP6566210B2 (ja
Inventor
ス ドンペイ
Pei Su Dong
ス ドンペイ
匡芳 中村
Masayoshi Nakamura
匡芳 中村
ニール クリスタ
Neil Chrsita
ニール クリスタ
エー シュミット ケネス
A Schmidt Kenneth
エー シュミット ケネス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Publication of JP2016189188A publication Critical patent/JP2016189188A/ja
Application granted granted Critical
Publication of JP6566210B2 publication Critical patent/JP6566210B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1805Receiving printer configuration commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

【課題】リアルタイム・ステートマシンの性能向上のための技術を提供する。【解決手段】方法には、印刷デバイスのオブジェクトを処理するため、構成ステージおよびランタイムステージを含む2段階処理の利用が含まれる。構成ステージは、ランタイムステージより先に実行され、リアルタイムで動作する。構成ステージの間、システムはランタイムステージの間に利用される状態遷移リスト、監視される必要がある装置、制御される必要がある装置、および他の変数を予め決定する。一旦、構成ステージが完了すると、システムはリアルタイムでランタイムステージを実行し、印刷デバイスのオブジェクトの処理を完了させる。構成ステージの間に項目を事前に決定することにより、システムはリアルタイムでのランタイムステージの実行時間を減少させる。その結果、リアルタイムのマイクロコントローラの性能が向上する。【選択図】図4

Description

本発明は、リアルタイム・ステートマシンの性能向上のための技術に関する。
近年、コンピュータ、デスクトップ、ラップトップ、サーバ、プリンタ、スキャナ、コピー機、ファクス、多機能印刷デバイス、および/または他のコンピューティング・デバイスを含む、様々なコンピューティング・デバイスへの需要が高まっている。これらの様々なコンピューティング・デバイスに対し、多様なハードウェアが、コンピューティング・デバイスにより利用され、タスクを実行できる。コンピューティング・デバイス・ハードウェアの1つのタイプがマイクロコントローラである。マイクロコントローラには、コンピューティング・デバイスに対するタスクを実行するため、プロセッサ、メモリ、および入出力部を含めてもよい。アプリケーションによっては、マイクロコントローラは、コンピューティング・デバイスでタスクを実行するための、低コストで、柔軟性があり、高性能なオプションであってよい。
第1の態様における、方法であって、マイクロコントローラにより、2次元画像をレンダリングするための1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第1ステージを実行する工程であって、前記各オブジェクトは、2次元画像の画像データを含み、前記第1ステージは、複数の中間変数を決定する工程と、前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、前記各所定の状態に対し、前記マイクロコントローラに関連付けられている1以上の装置から、装置状態を監視するための装置の第1サブセットを決定する工程と、前記各所定の状態に対し、前記マイクロコントローラに関連付けられている前記1以上の装置から、制御するための装置の第2サブセットを決定する工程と、を備える工程と、前記マイクロコントローラにより、前記オブジェクトのデータを処理するための第2ステージを実行する工程であって、前記第2ステージは、前記状態遷移リストに基づき現在の所定の状態を決定する工程と、前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記現在の所定の状態の前記所定のアクションを実行する工程と、前記状態遷移リストに基づき次の所定の状態を決定する工程と、前記現在の所定の状態の前記所定のアクションの実行完了後、前記次の所定の状態に進む工程と、を備える工程と、を備える方法。
第2の態様における、コンピュータプログラムであって、マイクロコントローラの1以上のプロセッサにより、2次元画像をレンダリングするための1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第1ステージを実行する工程であって、前記各オブジェクトは、前記2次元画像の画像データを含み、前記第1ステージは、複数の中間変数を決定する工程と、前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、前記各所定の状態に対し、前記1以上のプロセッサに関連付けられている1以上の装置から装置状態を監視するための装置の第1のサブセットを決定する工程と、前記各所定の状態に対し、前記1以上のプロセッサに関連付けられている前記1以上の装置から制御するための装置の第2サブセットを決定する工程と、を備える工程と、前記1以上のプロセッサにより、前記オブジェクトのデータを処理するための第2ステージを実行する工程であって、前記第2ステージは、前記状態遷移リストに基づき現在の所定の状態を決定する工程と、前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、前記状態遷移リストに基づき次の所定の状態を決定する工程と、前記現在の所定の状態の前記所定のアクションの実行完了後に、前記次の所定の状態に進む工程と、を備える工程と、を備える方法を前記マイクロコントローラの前記1以上のプロセッサに実行させるプログラム。
第3の態様における、コンピューティング・デバイスであって、1以上のプロセッサと、実行可能な命令を格納するメモリであって、前記命令を実行する工程は、前記1以上のプロセッサにより、2次元画像をレンダリングするための1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するために第1ステージを実行する工程であって、前記各オブジェクトは、前記2次元画像の画像データを含み、前記第1ステージは、複数の中間変数を決定する工程と、前記オブジェクトに対して、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、前記各所定の状態に対して、前記1以上のプロセッサに関連付けられている1以上の装置から装置状態を監視するための装置の第1サブセットを決定する工程と、前記各所定の状態に対して、前記1以上のプロセッサに関連付けられている前記1以上の装置から制御するための装置の第2サブセットを決定する工程と、を備える工程と、前記1以上のプロセッサにより、前記オブジェクトのデータを処理するための第2ステージを実行する工程であって、前記第2ステージは、前記状態遷移リストに基づき現在の所定の状態を決定する工程と、前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、前記状態遷移リストに基づき次の所定の状態を決定する工程と、前記現在の所定の状態の前記所定のアクションの実行完了後に前記次の所定の状態に進む工程と、を備える工程と、を備える方法を前記1以上のプロセッサに実行させるメモリと、を備えるデバイス。
これらは、他の態様、代替、および利点と同様に、添付図面を適宜参照しながら以下の詳細な説明を読むことにより当業者にとって明らかとなるであろう。
例示の状態遷移図を示す。 状態アクション判定の一例をフローチャートにて示す。 例示の状態遷移図を示す。 コンピューティング・デバイスの一例をブロック図にて示す。 例示のステートマシン実行の一例をフローチャートにて示す。 例示のステートマシン実行の一例をブロック図にて示す。 装置状態出力ベクトルの決定の一例をブロック図にて示す。 例示のステートマシンを実行するステップをフローチャートにて示す。 例示のステートマシンを実行するステップをフローチャートにて示す。 例示のステートマシンを実行するステップをフローチャートにて示す。
以下、本明細書の一部を構成する添付図面を参照して、詳細な説明を行う。しかしながら、本明細書中に記載されている配置は、例としてのみ記載されていることは理解されるべきである。このように、当業者であれば、他の配置および構成要素(例えば、機械、インターフェース、機能、機能の順序、など)が代わりにまたは加えて利用可能なことは、十分理解するだろう。さらに、本明細書中に記載されている構成要素の多くは、個別または分散された構成要素として、または他の構成要素と一緒に、および任意の適切な組み合わせおよび位置で実行されてもよい機能エンティティである。1以上のエンティティにより実行されるような本明細書中に記載されている様々な機能は、ハードウェア、ファームウェア、またはソフトウェア論理により実行されてもよい。例えば、本明細書中に記載されている様々な機能は、任意の適切なプログラミング言語で記述されてメモリに格納された命令を実行するプロセッサにより実行されてもよい。
本記述において、少なくとも2つの言葉が記述されたリストで接続詞「または」を使用するのは、リスト化された言葉の何れかまたはリスト化された言葉の任意の組み合わせを示すためである。「第1」、「第2」、「第3」などの序数の使用は、これらの構成要素の特定の順序を示すというよりは、それぞれの構成要素を区別するためである。
[1.概要]
印刷デバイスは、様々なタイプのハードウェアに依存し、文書を印刷する処理に関連しているタスクを実行する。ハードウェアの1つタイプには、特定用途向け集積回路(ASIC)が含まれる。ASICは特定のタスクを実行するように構成できる。ASICの1つのメリットは、ASICが多数のタスクを並行に実行できることである。例えば、ASICは、数千の静的変数を並行して評価することができる。その結果、ASICの計算能力により、印刷デバイスおよび他の関連装置は、優れた性能を発揮することができる。
しかしながら、ASICの欠点は、柔軟性に欠けることである。特に、ASICの機能性は、一旦構成されると、修正ができない。その結果、様々なタスクを実行するためにASICの構成を修正する必要がある場合、ASICを置き換える必要があるかもしれない。ASICの置き換えは、高価な、および/または時間のかかる可能性がある。ASICを再構成する必要がある理由には、プロトコル変更、機能性の向上、欠陥の補正、設計の修正、または他の理由が含まれる。
印刷する文書処理タスクを実行するために印刷デバイスが利用可能な代替タイプのハードウェアは、マイクロコントローラである。マイクロコントローラは、タスクを実行するように構成可能な低コストのハードウェア装置である。マイクロコントローラには、プロセッサ、メモリ、および入出力装置を含めてもよい。マイクロコントローラは、メモリに格納されたソフトウェア命令を実行するためにプロセッサを使用することにより構成された特定のタスクを完了させる。
マイクロコントローラの1つのメリットは、柔軟性である。特に、マイクロコントローラが様々なタスクを実行するためにマイクロコントローラの構成を修正する必要がある場合、構成は、マイクロコントローラに格納されたソフトウェアを修正することにより変更できる。例えば、マイクロコントローラをプロトコル変更、ソフトウェアのバグ補正、機能性の向上、設計の修正、またはある他の理由のために再構成する必要がある場合、マイクロコントローラを再構成可能な1つの方法は、マイクロコントローラにアップデートされたソフトウェアをダウンロードおよび/または格納することである。ハードウェアは、置き換える必要がないかもしれない。結果として、マイクロコントローラの構成変更は、安価になるかもしれない。このように、マイクロコントローラは、印刷デバイスにとって柔軟なハードウェア実装である。
マイクロコントローラの1つの欠点は、性能である。特に、マイクロコントローラによるタスクの実行は、本来順次的である。一方、ASICは、多数のタスクを並行して実行できる。その結果、リアルタイムで実行予定の多数のタスクを要求する操作にとって、ASICは、マイクロコントローラより著しく速くタスクを実行するかもしれない。それは、ASICがタスクを並行に実行できるのに対して、マイクロコントローラはタスクを直列に実行するためである。
本開示のシステムおよび方法は、マイクロコントローラによるタスクのリアルタイム性能を向上させる。具体的には、マイクロコントローラは、タスクをリアルタイムで実行するために2段階ソリューションを実行する。厳密に言えば、マイクロコントローラは、構成ステージを実行後、リアルタイムでランタイムステージを実行する。構成ステージはアプリケーションのリアルタイム実行より先に完了するため(例えば、ランタイムステージ)、マイクロコントローラのリアルタイム性能は、ランタイムステージに基づき測定できる。
構成ステージの間、マイクロコントローラは、静止状態、分岐、およびアクションを評価し、状態遷移リスト、事前評価された状態マスク、および事前評価された制御マスクを生成する。マイクロコントローラは、また、構成ステージの間に静的オブジェクトおよび/または変数を評価してもよい。ランタイムステージの間、マイクロコントローラは、生成された状態遷移リスト、状態マスク、および制御マスクに基づき所定のアクションを実行する。マイクロコントローラは、また、ランタイムステージの間に動的オブジェクトおよび/または変数を評価してもよい。動的変数は、装置状態のような、ランタイム間に評価される変数でもよい。構成ステージはランタイムステージより先に実行されるため、マイクロコントローラのリアルタイム性能は向上する。
開示されているシステムおよび方法が様々なコンピューティング・デバイスに適用できるのに対し、図1A乃至図6Cに示される実施形態において、システムおよび方法は、マイクロコントローラを使用した印刷デバイスに対して説明される。それと共に、図1A乃至図6Cに示される実施形態に対して、説明されているシステムおよび方法は、印刷デバイスに対してアプリケーションをレンダリングする2次元画像に適用される。しかしながら、他の実施形態においては、開示されたシステムおよび方法は、アプリケーションに適用してもよい。また、開示されたシステムおよび方法は、異なるコンピューティング・デバイスにより実行されてもよい。さらに、システムおよび方法は、マイクロコントローラ以外のハードウェアにより実行されてもよい。
図1Aは、ステートマシン100の状態遷移図を示す。図1Aのステートマシン100は、2段階実行することなく、リアルタイムで実行されてもよい。図1Aに示された実施形態において、ステートマシン100は、2次元画像をレンダリングする順序の処理に対応する。順序には、画像データを含む1以上のオブジェクトが含まれる。しかしながら、他の実施形態においては、ステートマシン100は、異なるオブジェクト、順序、および/またはアプリケーションに対するものである可能性がある。
ステートマシン100には、状態101乃至110、151乃至160、および171乃至192が含まれる。各状態は、斜線を施した楕円形として表される。状態101乃至110は、リアルタイムで実行される状態に対応する。状態151乃至160および171乃至192は、ステートマシン100のリアルタイム実行より先に事前評価できる状態に対応する。状態151乃至160は、状態103に続き得る状態で、図1Cにおいてさらに詳細に説明される。各状態に対して、ソフトウェア・コードの一部は、状態を実行するためのコンピューティング・デバイスのメモリに格納されてもよい。
図1Aの2つの状態間の矢印は、1つの状態から他の状態への可能性のある遷移を表している。例えば、状態179は3つの矢印を含み、そのうち1つは状態180を指し、別の1つは状態184に指し、最後の1つは状態185を指す。このように、状態179の実行によって、直後の状態は、状態180、状態184、または状態185になり得る。場合によっては、状態は、その状態から次の可能性のある状態を指し示す1つの矢印を有するのみでもよい。例えば、状態101は、状態101から状態102を指し示す1つの矢印を有するのみである。この矢印は、状態102は状態101に続き得る唯一の状態でもよいことを示している。このように、状態101が完了すると、実行は状態102に進む。
代わりに、2つの状態間の遷移は、斜線を施した円の重複により示してもよい。例えば、状態102および103は、重複する楕円形を有している。かかる場合には、状態102がはじめに実行された後、状態103が続く。状態が重なっている場合、その状態を指し示す矢印を有する状態が、重複している状態のうち最初に実行されてもよい。その状態から離れて指し示す矢印を含む状態が、重複している状態のうち2番目に実行されてもよい。このように、状態102および103、104および105、並びに106および107の重複するペアに関して、状態103、105、および107は、それぞれ状態102、104、および106の実行に続いてもよい。
図1Aは、ステートマシンのリアルタイム実行をASICからマイクロコントローラに変更する際の問題を説明するために利用できる。特に、ハードウェアの変更は、ステートマシン100のリアルタイム実行性能を著しく減少させるかもしれない。前述のように、ASICは、数千の静的オブジェクト変数を並行に評価するように構成できる。その結果、多数の状態および遷移を含む、図1Aにおけるステートマシンを、多数のタスクを並行に実行するASICは、リアルタイムで迅速に評価できる。具体的に言えば、評価する次の状態を決定するためにどの遷移を利用するかを決定するために、状態が評価されてもよい。例えば、状態179は、次の状態が状態180、状態184、または状態185かどうか決定するために評価されてもよい。ASICは、状態179、180、184、185、および/または他の状態を並行に評価できる。その結果、ステートマシン100のリアルタイム性能は向上する。
マイクロコントローラは、しかしながら、タスクを直列に実行する。このように、マイクロコントローラは、状態179を実行してもよい。状態179を実行する一方、マイクロコントローラは、続いて状態180、状態184、または状態185が状態179に続くかどうか決定してもよい。状態179を実行後、マイクロコントローラは、続いて、状態179の実行結果によって、状態180、状態184、または状態185のうち1つを実行する。状態180、状態184、または状態185のうち1つを実行する一方、マイクロコントローラは、また、状態180、状態184、または状態185の実行に続く状態を決定してもよい。この状態の直列実行は、ステートマシン100に表示される多数の、およびおそらく全ての状態および/または遷移に適用するだろう。その結果、マイクロコントローラによるステートマシン100のリアルタイムでの実行は、ASICによるステートマシン100のリアルタイム実行よりも極めて長くなるだろう。
図1Bは、状態103の状態アクション判定を表示する一例を示す。図1Bには、状態101、103、104、106、108、および151乃至160が含まれる。図1Bには、また、条件121乃至135およびタスク141乃至146が含まれる。実施形態によっては、図1Bには、図1Bに示されているよりも多い、少ない、および/または示されているものとは異なる状態、タスク、および/または条件が含まれてもよい。
図1Bに見られるように、現在の状態(例えば、状態103)に続くべき状態の決定には、多数の条件(例えば、条件121乃至135)の評価および1以上のタスク(例えば、タスク141乃至146)の実行が要求されてもよい。ASICに関しては、ASICは多数の条件およびタスクを並行に処理できるため、この評価は、リアルタイム性能を妨げないかもしれない。しかしながら、マイクロコントローラに関しては、マイクロコントローラはタスクおよび条件を直列に処理するため、次の状態を決定するための多数の条件およびタスクの処理により、リアルタイム性能が落ちるかもしれない。このように、マイクロコントローラによる個別の状態のリアルタイム実行は、ASICと比較すると性能が劣るかもしれない。
マイクロコントローラの低性能に対処する1つの方法は、リアルタイムでステートマシン100を実行するための2段階法を実行することである。具体的に言うと、第1ステージは、ステートマシン100の残りの状態および条件のリアルタイム実行より先に、様々な状態(例えば、状態101乃至110、151乃至160、および171乃至192)および条件(例えば、状態103に対する条件121乃至135)を事前評価するために利用できる。1以上の状態および条件を事前評価することにより、マイクロコントローラによるステートマシン100のリアルタイム実行を向上させることができる。
図1Cは、実行された2段階実行によるステートマシン100のリアルタイム実行を示し、これがステートマシン150となる。ステートマシン150には、ステートマシン100の状態101乃至110が含まれる。ステートマシン150には、ステートマシン100の状態151乃至160および状態171乃至192は含まれない。具体的に言うと、2段階実行を行う場合、リアルタイム実行に先立つ第1ステージの間に、状態151乃至160および状態171乃至192がステートマシン150のリアルタイム実行の間に実行されないことを決定してもよい。その結果、状態101乃至110のみがリアルタイムで実行される。このように、ステートマシン150には、状態101乃至110が含まれるのみである。実施形態によっては、1以上の状態101乃至110、151乃至160および状態171乃至192が、状態101乃至110のリアルタイム実行より先に部分的にまたは全て事前評価されてもよい。
2段階実行を行うことにより、マイクロコントローラのリアルタイム性能が向上する。具体的には、リアルタイムでステートマシン100の状態および遷移を実行する代わりに、マイクロコントローラは、ステートマシン150に表示された状態および遷移を実行するのみである。例えば、ステートマシン150は、実行すべき10の状態(状態101乃至110)を有するのみである一方、ステートマシン100は、実行すべき42の状態(状態101乃至110、151乃至160、および171乃至192)を潜在的に有する。このように、2段階実行を行うことは、リアルタイムで実行すべき状態および遷移の数が減少することにより、マイクロコントローラのリアルタイム性能を向上させることができる。
それと共に、2段階実行は、特定の状態に対するマイクロコントローラのリアルタイム性能を向上させることができる。図1Bを参照すると、1以上の条件121乃至135は、リアルタイム実行より先に事前評価されてもよい。それと共に、1以上のタスク141乃至146も、リアルタイム実行より先に完了してもよい。その結果、リアルタイムでの状態103の実行には、たとえあったとしても、条件121乃至135のうちより少ない条件の評価しか含まれないかもしれない。さらに、リアルタイムでの状態103の実行には、たとえあったとしても、タスク141乃至146のうちより少ないタスクの実行しか含まれないかもしれない。
図1Bを参照すると、一例において、第1ステージの間、条件121、123,124及び125は、「no」という結果として評価される一方、条件122は、「yes」という結果として評価されたかもしれない。それと共に、条件128は、「yes」の結果で評価されたかもしれない。その結果として、次の状態に進む前にリアルタイムで実行される必要があるかもしれないタスクは、タスク142および144のみであり、これは状態104である。実施形態によっては、タスク142および/または144は、リアルタイムで実行されてもよい。他の実施形態においては、タスク142および/または144は、第2ステージのリアルタイム実行より先に、第1ステージの間に実行されてもよい。このように、2段階実行の実施は、リアルタイムで処理する状態および遷移の数を減少させ、特定の状態に対して処理する条件および/またはタスクの数を減少させることにより、マイクロコントローラのリアルタイム性能を向上させることができる。
図1Aおよび図1Cは、ステートマシン100および150の実施形態を示したが、他の実施形態においては、ステートマシンには、より多い、より少ない、および/または異なる状態および/または遷移を含めてもよい。ステートマシンの他の構成も可能である。
[2.印刷デバイスのコンピューティング・デバイス構成要素の例]
図2は、印刷デバイス200の例示の実施形態をマイクロコントローラ201で示す。
マイクロコントローラ201には、プロセッサ202、メモリ204、および入出力部206を含めてもよく、これらの全ては、マイクロコントローラ・システムバス208または類似のメカニズムにより接続されてもよい。プロセッサ202は、1以上のプロセッサを表してもよい。
メモリ204は、次に、揮発性および/または非揮発性データ記憶部を備えてもよく、プロセッサ202に全体または一部統合させることができる。メモリ204は、プロセッサ202により実行可能なプログラム命令、およびその命令により操作されるデータを格納して、本明細書中に記載されている様々な方法、処理、または機能を実行してもよい。代わりに、これらの方法、処理、または操作は、ハードウェア、ファームウェア、および/またはハードウェア、ファームウェアおよびソフトウェアの任意の組み合わせにより定義できる。そのため、メモリ204には、有形で非一時的なコンピュータ読取可能な記録媒体を含めてもよく、この記憶媒体には、1以上のプロセッサによる実行の際に、本明細書または添付図面に開示された方法、処理、または機能の何れかをマイクロコントローラ201および/または印刷デバイス200に実行させるプログラム命令が格納されている。
入出力部206は、図1A乃至図6Cに記載されているようなプロセッサ202およびマイクロコントローラ201の操作を構成および/または制御するために役立ててもよい。入出力部206は、また、プロセッサ202により実行される操作に基づく出力を提供してもよい。
表示されていないが、印刷デバイス200には、それ自身の専用プロセッサ、メモリ、入出力部、および/またはシステムバスを含めてもよい。印刷デバイス・プロセッサには、1以上の汎用プロセッサおよび/または1以上の専用プロセッサ(例えば、特定用途向け集積回路(ASIC)またはデジタル・シグナル・プロセッサ(DSP)、など)のような1以上の中央処理装置(CPU)、および/または1以上のマイクロコントローラ(例えば、マイクロコントローラ201)を含めてもよい。印刷デバイス・プロセッサには、マイクロコントローラ201を含めてもよいが、他の実施形態においては、マイクロコントローラ201は、印刷デバイス・プロセッサとは分離させてもよい。印刷デバイス・プロセッサには、マイクロコントローラ201とは異なるマイクロコントローラを含めてもよい。印刷デバイス・プロセッサの他の構成も可能である。印刷デバイス200は、クライアント装置またはサーバのような、ネットワーク装置でもよい。表示されていないが、印刷デバイス200には、ネットワークを介した他の装置との通信をサポートするネットワークインターフェイスを含めてもよい。
これら例示の印刷デバイスは、例証目的に提供される。上記の例に加えおよび/または代わりに、プリンタとコンピュータ技術の他のコンビネーションおよび/またはサブコンビネーションは、いくつかある可能性の中でも特に、本明細書中の実施形態の要旨を逸脱しない範囲で存在してもよい。
[3.構成およびランタイムステージ]
図3は、例示のステートマシン実行のループ階層300を示す。図3において、処理タスクはループ階層300に基づき分類される。図3の処理タスクは、印刷デバイス200により実行されるジョブに関連付けられている。ジョブは、2次元画像をレンダリングするためのものでもよい。しかしながら、他の実施形態においては、他のジョブも可能でもよい。また、他の実施形態においては、異なるループ階層を利用してもよい。さらに、印刷デバイス200とは異なるコンピューティング・デバイスを、ジョブの実行のために利用してもよい。
図3に示された実施形態に関しては、印刷デバイス200は、1以上のページを含むジョブを処理してもよい。各ページは、1つのプリンタ定義言語(PDL)で記述されてもよい。各ページには、数千もの順序を含めてもよい。順序の例には、文字、多角形、三角形、またはベクトルが含まれる。他のタイプの順序も可能である。
各順序には、1以上のオブジェクトが含まれる。例示のオブジェクトには、スキャンライン・テーブル、フレーム、台形、または他のオブジェクトが含まれる。スキャンライン・テーブル・オブジェクトは、任意の形状を表す一方、フレーム・オブジェクトは矩形を表す。他のオブジェクトも可能である。
各オブジェクトには、1以上の平面が含まれる。平面の例には、テキスト平面、カラー平面(シアン、マゼンタ、イエロー、またはブラック)、透明性平面、ベクトル平面、画像平面、または作業平面が含まれる。各オブジェクトには、アクティブないくつかの平面および非アクティブな他の平面を含めてもよい。例えば、オブジェクトが白黒で描かれる場合、ブラックの平面のみがアクティブである一方、シアン、マゼンタ、およびイエローの平面は非アクティブでもよい。実施形態によっては、オブジェクトには、8つものアクティブな平面を含めてもよい。
各オブジェクトおよび各アクティブな平面には、オブジェクトを1以上の平面により定義されたように生成するための1以上のラインを含めてもよい。例えば、ブラックの部分および別々のシアンの部分を含むフレーム・オブジェクト(矩形)は、オブジェクトのブラックの部分に対応するブラックの平面により定義されて描かれたライン、およびオブジェクトのシアンの部分に対応するシアンの平面により定義されて描かれたラインを有してもよい。オブジェクトには、必要に応じた多数のラインを含めてもよい。例えば、場合によっては、オブジェクトには、何百もの線分を含めてもよい。しかしながら、オブジェクトには、より多い、またはより少ないラインを含めることができる。このように、オブジェクトを描くために、多数のラインがオブジェクトの1以上の平面により描かれ、定義されてもよい。
ジョブおよび/またはページに関連付けられている処理タスクは、コンピューティング・デバイスのCPUにより処理されてもよい。CPUタスクには、ジョブまたは1以上のページに対する、PDLの解釈、メモリの配分、および/または他のタスクを含めてもよい。特定の順序、オブジェクト、平面、またはラインに関連付けられている処理タスクは、印刷デバイス200のマイクロコントローラ201のような、マイクロコントローラにより処理されてもよい。他の実施形態においては、他のハードウェアおよび/またはコンピューティング・デバイスが、ジョブ、ページ、オブジェクト、平面、および/またはラインに関連付けられている処理タスクを処理してもよい。
図3は、マイクロコントローラ201により実行されるタスクに対するループ階層300を示す。例えば、特定の順序305に対し、マイクロコントローラ201は、まず順序を解析し(ブロック306参照)、続いて順序を構成してもよい(ブロック307参照)。一旦、順序が構成されると、順序のオブジェクトの全てが、構成された順序で処理されてもよい。上述のように、各順序には、1以上の平面を含めてもよい。このように、各オブジェクトに対し、平面が処理されてもよい。
特定の平面320に対し、マイクロコントローラは、最後の平面が処理されたかどうか判断する(ブロック321参照)。処理されていない場合、マイクロコントローラは、平面がアクティブな平面かどうか判断する(ブロック322参照)。平面が非アクティブな場合、マイクロコントローラは非アクティブな平面をスキップし(ブロック326参照)、次の残りの平面の処理に進む。代わって、平面が残っていない場合、マイクロコントローラは、次のオブジェクトを処理してもよい。特定の順序のオブジェクトの全てが処理された場合、マイクロコントローラは、次の順序の処理に進んでもよい。
特定の平面がアクティブな平面330である場合、アクティブな平面は、まずレンダリングされ(ブロック331参照)、続いて構成される(ブロック332参照)。一旦、平面が構成されると、ライン操作340が実行されてもよい。実行されるライン操作は、処理されるオブジェクトのタイプに依存してもよい。図3において、スキャンライン・テーブル・オブジェクト・ライン操作341は、スキャンライン・テーブル・オブジェクトに対して実行される。フレーム・オブジェクト・ライン操作342は、フレーム・オブジェクトに対して実行される一方、他のオブジェクト・ライン操作343は、他のオブジェクトに対して実行される。
図3に示される実施形態において、ライン操作340は、ランタイムステージの間にリアルタイムで実行されてもよい。さらに、アクティブな平面330、非アクティブな平面325、全ての平面320、および順序305に関連付けられているタスクは、リアルタイム実行より先に構成ステージの間に実行されてもよい。ランタイムステージのリアルタイム実行より先に構成ステージの間に順序305、平面320、325、および330に関連付けられている処理タスクを実行することにより、マイクロコントローラ201によるリアルタイム処理を向上させることができる。
図3の実施形態が順序、平面、およびラインに関連付けられている様々なタスク(例えば、タスク306、307、321、322、326、331、332、341、342、343)を示す一方、表示されていない他のタスクも、順序、平面、またはラインに関連付けられてもよい。それと共に、実施形態によっては、図3に示されるタスクは、実行される必要がなくてもよいし、異なる順序で実行されてもよい。それと共に、異なるループ階層も可能である。例えば、ループ階層には、オブジェクトベースごとに実行されるタスクを含めてもよい。
図4は、印刷デバイス200のマイクロコントローラ201により実行される2段階処理400の一例をブロック図にて示す。表示されている実施形態において、2段階処理400には、構成ステージ405およびランタイムステージ410が含まれる。ランタイムステージ410のリアルタイム実行より先に実行される構成ステージ405を含むことにより、マイクロコントローラ201のリアルタイム性能は、向上する。他の実施形態においては、2段階処理400には、表示されている2つのステージより多いステージを含めてもよい。特に、多数のステージは、ランタイムステージのリアルタイム実行より先に実行されてもよい。2段階処理400の他の実施形態も可能である。
構成ステージ405には、アプリケーションのリアルタイム実行より先に実行される複数のタスクが含まれ、これはランタイムステージ410に対応する。表示されている実施形態において、構成ステージ405には、中間変数判定415、状態遷移リスト構成420、およびマスク判定425が含まれる。それと共に、構成ステージ405には、スキャンライン・テーブル構成430、台形構成435、および反転マッピング構成440を含む、オプションのオブジェクト構成タスクを含めてもよい。実施形態によっては、構成ステージ405には、図4に示されるものより多い、少ない、および/または示されるものとは異なるタスクを含めてもよい。
中間変数は、特定のオブジェクトに対する構成ステージ405の中間変数判定415のタスクの間に決定される。中間変数には、ランタイムステージ410より先にマイクロコントローラにより評価される静的パラメータを含めてもよい。中間変数判定415のステップの間に評価される中間変数は、構成ステージ405の間の他のステップの間に利用されてもよい。例えば、状態遷移リスト構成420、マスク判定425、スキャンライン・テーブル構成430、台形構成435、および/または反転マッピング構成440のようなステップは、中間変数判定415のステップの間に評価される1以上の中間変数に依存してもよい。中間変数は、また、ランタイムステージ410の間に依存されてもよい。
状態遷移リスト構成420は、特定のオブジェクトに対する所定の状態の連結リストを生成する。連結リストには、特定のオブジェクトに対してランタイムステージ410の間に実行される複数の所定の状態を含めてもよい。状態遷移連結リストは、外側ループ、外側ループ・タスク、外側ループ条件、および/または他のループまたはループ部分を評価することにより、構成ステージ405の間に生成されてもよい。例えば、リストは、順序305ごとに、平面320ごとに、非アクティブな平面325ごとに、またはアクティブな平面330ごとに行われるタスクと見なされてもよいタスクを実行することにより、構成ステージ405の間に生成されてもよい(図3参照)。
他の例に関して、図1Bは、所定の状態遷移リストを生成するために構成ステージ405の間に事前評価されてもよい1以上の条件121乃至135および1以上のタスク141乃至146を示してもよい。前述のように、構成ステージ405の間に、条件121、123、124、125及び126は、「no」として事前評価され、条件122、127および128は、「yes」として事前評価されてもよい。その結果、状態104は状態103に続くであろう。図1Bの条件を事前評価することにより、所定の状態遷移リストには、ここで、状態103および104、および状態103が状態104に先行するという情報を含めてもよい。構成ステージ405の間、状態104は、続いて状態104に続くべき状態を事前に決定するために事前評価されてもよい。
他の例に関して、図1Cは、2段階実行を行うステートマシン150の状態遷移図を示す。具体的に言うと、図1Cの状態遷移リストには、以下の順序の以下の状態を含めてもよい:状態101、状態102、状態103、状態104、状態105、状態106、状態107、状態108、状態109、および状態110。図1Aに関して前述のように、各状態は、印刷デバイス200および/またはマイクロコントローラ201のメモリに格納されるソフトウェア・コードの一部を表してもよい。一実施形態においては、状態遷移リストは、連結リストとして格納される。しかしながら、他の実施形態においては、状態遷移リストは、異なる方法で格納されてもよい。それと共に、他の実施形態においては、より多い、より少ない、および/または異なる状態が、状態遷移リストの一部として格納されてもよい。それと共に、状態は、図1Cに示され、または説明されている順序とは異なる順序で格納されてもよい。
所定の状態遷移連結リストの各所定の状態は、各所定の状態に関連付けられている所定のアクションを有してもよい。例えば、マイクロコントローラによる、状態103のような、所定の状態の実行には、状態104のような、次の状態に遷移するより先に所定のアクションを実行することが要求されてもよい。図1Bを参照すると、状態103に対する所定のアクションは、状態104の実行より先にタスク143またはタスク144を実行することでもよい。実施形態によっては、状態103には、状態103に対する所定のアクションの一環として他のタスク(図示せず)を含めてもよい。代わりに、状態103には、実施形態によっては、多数の所定のアクションを含めてもよい。図1Bには示されないが、実施形態によっては、状態103に対するタスク141乃至146のうち1以上のような、特定の状態に対する所定のアクションは、状態103に対する条件121乃至135のような、状態に対する任意の条件を評価せずに実行されてもよい。所定のアクションは、ランタイムステージ410の間に実行されてもよい。しかしながら、特定の所定の状態に対する所定のアクションは、構成ステージ405の間に決定されてもよい。
実施形態によっては、所定の状態に対する所定のアクションには、1以上のタスクを含めてもよい。タスクは、1以上の装置に制御出力を送信するマイクロコントローラに対応してもよい。実施形態によっては、マイクロコントローラは、1以上の装置の第1サブセットは1以上の装置の第2サブセットに制御出力を送信する前に、準備できていると判断する。1以上の装置への制御出力の送信は、一実施形態においては所定の状態の所定のアクションであってよいが、他の実施形態においては、所定の状態に対する所定のアクションの一環として、追加のタスクが制御出力の送信に加えて実行されてもよい。代わりに、所定の状態に対する所定のアクションは、所定の状態に対する条件を評価することでもよい。例えば、実施形態によっては、所定のアクションは、図2Bの状態103のような、特定の状態に対する、図2Bの条件121乃至135のような、条件を評価することでもよい。所定の状態に対する他の所定のアクションも可能である。
状態遷移リストは、マイクロコントローラのような、ハードウェアに、オブジェクトに対する状態遷移リストの現在の所定の状態、1以上の次の所定の状態、および/または最終的な所定の状態を決定させてもよい。マイクロコントローラは、次の所定の状態に対する1以上の所定のアクションの実行に進む前に、所定の状態に対する1以上の所定のアクションをランタイムステージ410の間にリアルタイムで実行してもよい。実施形態によっては、マイクロコントローラは、生成された状態遷移リストの所定の状態に対応する所定のアクションをランタイムステージ410の間にリアルタイムで実行する。マイクロコントローラは、状態遷移リストを決定するために構成ステージ405の間、中間変数に依存してもよい。マイクロコントローラは、また、状態遷移リストの所定の状態の所定のアクションを実行する一方、ランタイムステージ410の間、中間変数に依存してもよい。
ランタイムステージ410の間、マイクロコントローラは、まず、状態遷移リストに基づきオブジェクトに対する現在の所定の状態を決定してもよい。マイクロコントローラは、続いて、次の所定の状態に進む前に、現在の所定の状態に対する所定のアクションを実行してもよい。一旦、マイクロコントローラが所定の状態に対する所定のアクションを完了させると、マイクロコントローラは、次の所定の状態を決定するために状態遷移リストを利用してもよい。一旦、次の所定の状態がマイクロコントローラにより決定されると、マイクロコントローラは、次の所定の状態を現在の状態として設定し、他の所定の状態に進む前に、新しい現在の状態に関連付けられている所定のアクションを実行してもよい。マイクロコントローラは、最終的な所定の状態に遭遇するまで、この処理を繰り返してもよい。マイクロコントローラは、オブジェクトの処理を完了させるため最終的な所定の状態に関連付けられている所定のアクションを実行してもよい。マイクロコントローラは、続いて、次のオブジェクトの処理に進んでもよい。順序の全てのオブジェクトが処理されると、マイクロコントローラは、次の順序の処理に進んでもよい。
構成ステージ405の間に状態遷移リストを生成することにより、マイクロコントローラは、順番に処理するためのリアルタイム性能を向上させることができる。具体的に言えば、マイクロコントローラは、未評価の条件に基づき今後の状態を決定することに時間をかけることなく、リアルタイムで所定の状態に対する所定のアクションを実行するための状態遷移リストを利用できる。その結果、マイクロコントローラのリアルタイム性能は、流線型のランタイムステージにより向上する。
マスク判定425は、状態遷移リストの各所定の状態に対するマスクを生成する。具体的に言えば、マスク判定425は、各所定の状態に対する状態マスクおよび制御マスクを生成してもよい。他の実施形態においては、マスク判定425は、記述されているマスクより多い、少ない、および/または記述されているマスクとは異なるマスクを生成してもよい。
状態マスクは、特定の状態に対して、どの装置が状態を監視するかを示すために利用されてもよい。同じく、制御マスクは、特定の状態に対して、どの装置に制御出力を送信するかを示すために利用されてもよい。一実施形態においては、状態マスクには、各ビットが特定の装置に対応する、1以上のビットを含めてもよい。装置を監視すべき場合、装置状態ビットは1に等しい一方、装置を監視すべきではない場合、装置状態ビットは0に等しくてもよい。同じく、制御マスクにも、各ビットが特定の装置に対応する、1以上のビットを含めてもよい。装置が制御出力を受信するべきである場合、対応する装置制御ビットは1に等しい一方、装置が制御出力を受信すべきではない場合、対応する装置制御ビットは0に等しくてもよい。
記述されている実施形態では、装置状態および装置制御に対して2進値を利用しているが、他の実施形態においては、装置状態および/または装置制御は、2つより多い可能性のある値を有してもよい。例えば、装置状態は、「ビジー」、「レディー」、および「エラー」の値を有する可能性がある。装置制御は、「オフ」、「ロー」、および「ハイ」の値を有してもよい。装置状態および制御に対する他の値も可能である。それと共に、他の実施形態においては、状態マスクおよび/または制御マスクは、異なる方法で実行されてもよい。例えば、「AND」操作および/または「XOR」操作(図5参照)は、マスクが2進ではない値を利用する場合、状態マスクおよび/または制御マスクに利用されなくてもよい。
ランタイムステージ410の間、状態マスクは、どの装置が状態を監視されるべきか決定するために利用されてもよい。特に、状態マスクは、装置状態入力ベクトルを用いた「AND」操作を経て、監視する装置を表すビットを含む出力ベクトルを生成できる。装置状態入力ベクトルには、各ビットが状態を監視する可能性のある装置を表す、1以上のビットを含めてもよい。装置状態入力ベクトルに対するビットの数は、状態マスクに対するビットの数と同一でもよい。さらに、状態マスクのビットは、装置状態入力ベクトルのビットによって表される装置と同一の装置に対応してもよい。
状態マスクおよび装置状態入力ベクトルを用いた「AND」操作を使用することにより、状態マスクは、装置の対応する装置状態ビットに対する0のエントリを有することによって、装置が監視されることを防ぐことができる。そうでなければ、装置に対応する状態マスク・ビットが1のエントリを有し、同一の装置に対応する装置状態入力ベクトルビットも1のエントリを有する場合、「AND」操作は、その特定の装置に対する1のエントリを用いてベクトルを作成してもよい。出力ベクトルの1は、特定の装置が状態を監視されるべきであることを示してもよい。しかしながら、監視する装置を決定する状態マスクを実行する他の実施形態も可能である
ランタイムステージ410の間、制御マスクは、どの装置が制御出力を受信すべきか決定するために利用されてもよい。具体的に言えば、制御マスクは、装置制御入力ベクトルを用いた「AND」操作を経て、制御する装置を表すビットを含む装置制御出力ベクトルを生成してもよい。装置制御入力ベクトルには、各ビットが制御する可能性のある装置を表す、1以上のビットを含めてもよい。装置制御入力ベクトルのビットの数は、制御マスクのビットの数と同一でもよい。制御マスクのビットは、装置制御入力ベクトルの制御ビットによって表される装置と同一の装置に対応してもよい。
制御マスクおよび装置制御入力ベクトルを用いた「AND」操作を使用することにより、制御マスクは、装置の対応する制御ビットに対する0のエントリを有することによって、装置が制御されることを防いでもよい。そうでなければ、制御マスクおよび装置制御入力ベクトルにおける装置の対応するビットが1のエントリを有する場合、「AND」操作は、その特定の装置に対する1のエントリを用いて装置制御出力ベクトルを作成してもよい。装置制御出力ベクトルの1は、特定の装置が制御されるべきであることを示してもよい。しかしながら、装置を制御する制御マスクを実行する他の実施形態も可能である。
状態マスクおよび制御マスクは、マイクロコントローラが外側ループ・タスクおよび条件を実行するのと同時に、構成ステージ405の間に決定されてもよい。具体的に言えば、状態遷移リストの各所定の状態に対して、マイクロコントローラは、マイクロコントローラに関連付けられている一連の装置の内、どの装置が状態を監視される必要があるか、および/または、どの装置が制御される必要があるかを判断してもよい。例えば、図1Bを参照すると、マイクロコントローラは、条件122が特定の装置状態の監視を要求する状態103に対する判断をしてもよい。その結果、マイクロコントローラは、構成ステージ405の間に、条件122の特定の装置に対応する状態マスク・ビットに対する1の値を含む状態103に対して、状態マスクを生成してもよい。他の例に関して、図1Bを参照すると、マイクロコントローラは、タスク145が選択された装置に制御出力を送信することを含む状態103に対する判断をしてもよい。このように、マイクロコントローラは、構成ステージ405の間に、選択された装置に対応する制御マスク・ビットに対する1の値を含む状態103に対して、制御マスクを生成してもよい。実施形態によっては、構成ステージ間の状態の評価は、1に等しい対応するビットを設定することにより監視および/または制御されるように指定される、より多い、より少ない、および/または異なる装置を状態マスクおよび/または制御マスクに備えさせてもよい。他の実施形態においては、制御マスクおよび状態マスクは、異なる方法で生成されてもよい。マイクロコントローラは、また、マスク判定425の間に中間変数を利用して、1以上のマスク(例えば、状態マスク、制御マスク)を決定してもよい。
状態マスクおよび制御マスクのような、マスクを生成することにより、特定の状態に対して、各状態のリアルタイム実行は短縮でき、これはマイクロコントローラのリアルタイム実行性能を向上させる。具体的に言えば、関連付けられている装置および状態マスクまたは制御マスク間の単一の「AND」操作は、特定の状態に対するどの装置が状態を監視、または制御される必要があるかを示している。その結果、マイクロコントローラは、要求された装置のみに関して、リアルタイムで装置状態を検索し、装置に制御出力を送信することができる。このように、マイクロコントローラのリアルタイム実行は、より効率的になる。そのため、マスクは、マイクロコントローラのリアルタイム性能を向上させることができる。
構成ステージ405の間、1以上のオブジェクト構成タスクもマイクロコントローラにより実行されてもよい。例えば、マイクロコントローラは、スキャンライン・テーブル・オブジェクトに対するスキャンライン・テーブル構成430、台形オブジェクトに対する台形構成435、または反転マッピング・オブジェクトに対する反転マッピング構成440を実行してもよい。フレームのような、他のオブジェクトも、構成ステージ405の間に構成されてもよい。
特定の状態に対してランタイムステージ410の間に実行されるタスクは、どのオブジェクトが処理されたかに依存するであろう。例えば、オブジェクトがスキャンライン・テーブルの場合、ランタイムステージ410には、スキャンライン・テーブル・オブジェクト445に対するタスクの実行が含まれるだろう。代わって、オブジェクトがフレーム・オブジェクトの場合、ランタイムステージ410には、フレーム・オブジェクト450に対するタスクの実行が含まれるだろう。代わって、ランタイムステージ410の間、タスクは、台形のような、他のオブジェクト455に対して実行されてもよい。タスクには、状態遷移リスト構成420の間に決定されるリストの1以上の所定の状態の実行、各所定の状態に対するマスク判定425の間に決定される状態マスクまたは制御マスクの適用、および/または他のタスクが含まれてもよい。ランタイムステージ410は、マイクロコントローラによりリアルタイムで実行されてもよい。他の実施形態においては、様々なタスクが、ランタイムステージ410の間に実行されてもよい。
[4.装置状態判定]
図5は、1以上の装置の装置状態の決定の一例をブロック図にて示す。装置状態は、ランタイムステージ410のリアルタイム実行の間に決定されてもよい。図5において、示された実施形態には、装置状態入力ベクトル505、極性510、状態マスク515、「XOR」操作520、「AND」操作525、および装置状態出力ベクトル530が含まれる。他の実施形態においては、ブロック図には、図5に示されているよりも多い、少ない、および/または示されているものとは異なる構成要素が含めてもよい。
極性510は、反転された装置自身の状態ビットを有する1以上の装置を示してもよい。極性510には、1以上のビットを含めてもよい。各ビットは、装置に対応してもよい。図5に示されている実施形態においては、極性510には、装置状態入力ベクトル505と同数のビットが含まれる。さらに、極性510のビットは、装置状態入力ベクトル505のビットと同一の装置に対応する。このように、極性510は、装置状態入力ベクトル505の何れの装置がその装置の反転された状態ビットを有すべきかを示してもよい。例えば、極性510に対し、対応する装置のビットは、装置状態ビットが装置状態入力ベクトル505の同一の対応する装置に対して反転されるべきである(例えば、0から1へ、または1から0へ)ことを示す、1に設定できる。極性510はいつ装置状態ビットを反転するべきかを示すため、極性は、「XOR」操作520を使用することにより装置状態入力ベクトル505に適用される。
なぜ状態ビットを反転してもよいかには、種々な理由がある。例えば、1つのアプリケーションにおいては、マイクロコントローラは、1以上の装置状態入力が1以上の装置は「レディー」であると示すことを決定した後、所定のアクションを実行してもよい。マイクロコントローラは、「AND」操作に依存して、1以上の装置が「レディー」であることを判断してもよい。その結果、各装置状態入力は、装置が「レディー」であることを示す1の装置状態ビットを有してもよい。
しかしながら、装置によっては、装置が「ビジー」であるか否かを示す装置状態を有してもよい。例えば、装置は、装置が「ビジー」であることを示す1の装置状態ビット、および装置が待機中または「レディー」であることを示す0の装置状態ビットを有してもよい。このように、マイクロコントローラは、1の装置状態ビットが装置は待機中または「レディー」であることに対応し、0に等しい装置状態ビットが装置は「ビジー」または利用できないことに対応するように、装置状態ビットを反転してもよい。かかる場合には、極性510は、どの装置が反転可能な装置状態ビットを有するかを示すことができる。
図5において、マイクロコントローラは、「XOR」操作520を装置状態入力ベクトル505および極性510に適用することにより、極性510に基づき装置状態入力ベクトル505の1以上のビットを反転させてもよい。「XOR」操作520の実行後、マイクロコントローラは、続いて、状態マスク515および「XOR」操作520の結果に「AND」操作525を適用し、装置状態出力ベクトル530を決定してもよい。装置状態出力ベクトル530は、どの装置状態の値が監視される必要があってもよいを示す。装置状態出力ベクトル530は、また、1の装置状態ビットが装置は「レディー」であることを示すように、装置状態ビットの方向を修正する。「XOR」操作520および「AND」操作525は、ソフトウェア(例えば、ランタイムステージ410コード)またはハードウェア(例えば、マイクロコントローラ・ハードウェア、コンピューティング・デバイス・ハードウェア、論理ゲート、および/または他のハードウェア)により実行されてもよい。
このように、ランタイムステージ410の間、マイクロコントローラは、特定の状態に対する装置状態入力ベクトル505、極性510、および状態マスク515を読み込み、装置状態入力ベクトル505および極性510に「XOR」操作520を適用し、状態マスク515および「XOR」操作520の結果に「AND」操作525を適用して、装置状態出力ベクトル530を生成してもよい。マイクロコントローラは、続いて、装置状態出力ベクトル530に基づき装置状態を検索する。マイクロコントローラは、また、装置状態出力ベクトル530に基づき、必要に応じて検索された装置状態ビットを反転させる。マイクロコントローラは、続いて、1以上の検索された装置状態の値を利用して、所定の状態の所定のアクションを実行してもよい。一旦、所定のアクションが実行されると、マイクロコントローラは、続いて、次の状態に進んでもよい。他の実施形態においては、装置状態、状態マスク、および/または極性は、図5に示されるものとは異なる方法で実行または利用されてもよい。
[5.方法の例]
図6Aは、マイクロコントローラ201のような、マイクロコントローラにより実行される方法600の一例をフローチャートにて示す。方法600は、2次元画像をレンダリングする1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理する第1ステージの実行から開始され、各オブジェクトには、ブロック605により示されるような、2次元画像に対する画像データが含まれる。例えば、図4を参照すると、方法600の間に実行される第1ステージは、構成ステージ405に対応してもよい。処理される順序のオブジェクトは、スキャンライン・テーブル、フレーム、台形、またはいくつかの他のオブジェクトでもよい。方法600は、続いて、ブロック610により示されるような、オブジェクトのデータを処理する第2ステージの実行に進む。図4を参照すると、例えば、方法600の間に実行される第2ステージは、ランタイムステージ410に対応してもよい。ランタイムステージ410の間、方法600は、スキャンライン・テーブル・オブジェクト445、フレーム・オブジェクト450、またはいくつかの(台形を含む)他のオブジェクト455の処理を実行してもよい。
図6Aは方法600の複数のステップを示しているが、実施形態によっては、方法600には、図6Aに示されているよりも多い、少ない、および/または示されているものとは異なるステップを含めてもよい。例えば、方法600には、2次元画像をレンダリングする順序に対する画像データでオブジェクトを処理する2つより多いステージを含めてもよい。方法600には、図4の構成ステージ405に対応する第1ステージ605とは異なるステージ、および図4のランタイムステージ410に対応する第2ステージ610とは異なるステージを含めてもよい。実施形態によっては、方法600は、印刷デバイス200のような、コンピューティング・デバイスのマイクロコントローラ201により実行される。しかしながら、他のコンピューティング・デバイスに、方法600を実行するマイクロコントローラを含めてもよい。それと共に、マイクロコントローラ201以外のハードウェアが、方法600を実行してもよい。
図6Bは、図6Aの方法600の第1ステージ605を実行する、例示の方法611をフローチャートにて示す。例示の方法611は、図2に示されるように、印刷デバイス200に対するマイクロコントローラ201により実行されてもよい。図4を参照すると、方法611は、構成ステージ405に対応してもよい。方法611は、2次元画像をレンダリングする順序に対するオブジェクトの画像データを処理する方法600の一環として実行されてもよい。
方法611は、ブロック615により示されるように、複数の中間変数の決定から開始される。図4を参照すると、例えば、マイクロコントローラ201は、構成ステージ405の間に中間変数判定415を完了させてもよい。次に、方法611は、続いて、ブロック620により示されるように、オブジェクトに対して、複数の中間変数に基づき状態遷移リストを生成してもよく、状態遷移リストには、複数の所定の状態が含まれ、各所定の状態は、所定のアクションに関連付けられている。例えば、図4を参照すると、ブロック620は、状態遷移リスト構成420に対応してもよく、状態遷移リスト構成420は、マイクロコントローラ201により構成ステージ405の間に実行される。
方法611は、ブロック625に示されるように、各所定の状態に対して、プロセッサに関連付けられている1以上の装置から、装置状態を監視する装置の第1サブセットを決定することにより継続される。方法611は、ブロック630に示されるように、各所定の状態に対して、プロセッサに関連付けられている1以上の装置から、制御する装置の第2サブセットを決定することにより進行する。図4を参照すると、装置の第1および第2の両サブセットは、構成ステージ405の間のマスク判定425の間に決定されてもよい。プロセッサは、マイクロコントローラ201に対応してもよい。
図6Bは方法611の複数のステップを示しているが、実施形態によっては、方法611には、図6Bに示されているよりも多い、少ない、および/または示されているものとは異なるステップを含めてもよい。例えば、方法611には、各所定の状態に対する装置の第1サブセットの状態マスクの生成、および各所定の状態に対する装置の第2サブセットの制御マスクの生成のステップが含まれ得る。図4を参照すると、状態マスクおよび制御マスクの両方が、構成ステージ405の間のマスク判定425の間に決定されてもよい。さらに、図6Bのステップは、図6Bに示される順序とは異なる順序で実行されてもよい。実施形態によっては、方法611は、印刷デバイスのマイクロコントローラ(例えば、印刷デバイス200のマイクロコントローラ201)により実行される。しかしながら、他の実施形態においては、マイクロコントローラを含む異なるコンピューティング・デバイス、またはプロセッサが、方法611を実行してもよい。それと共に、マイクロコントローラ以外のハードウェアが、方法611を実行してもよい。
図6Cは、図6Aの方法600の第2ステージ610を実行する、例示の方法641をフローチャートにて示す。例示の方法641は、図2に示されるように、印刷デバイス200に対するマイクロコントローラ201により実行されてもよい。図4を参照すると、方法641は、ランタイムステージ410に対応してもよい。方法641は、2次元画像をレンダリングする順序に対するオブジェクトの画像データを処理する方法600の一環として実行されてもよい。
方法641は、ブロック650により示されるように、状態遷移リストに基づき現在の所定の状態を決定することにより開始される。次に、方法641は、ブロック655により示されるように、現在の所定の状態に対する装置の第1サブセットの装置状態を決定することにより継続される。方法641は、ブロック660により示されるように、現在の所定の状態に対する装置の第2サブセットに出力を送信することにより進行する。方法641は、続いて、ブロック665により示されるように、状態遷移リスト、および現在の所定の状態に対する装置の第1サブセットの装置状態に基づき、現在の所定の状態の所定のアクションの実行に進んでもよい。図4を参照すると、方法641のブロック650、655、660、および665は、ランタイムステージ410の間に実行されてもよい。
方法641は、続いて、ブロック670により示されるように、状態遷移リストに基づき次の所定の状態を決定してもよい。次に、方法641は、ブロック675により示されるように、現在の所定の状態の所定のアクションの実行完了後、次の所定の状態に進んでもよい。ブロック650、655、660、および665と同様に、ブロック670および675も、図4に示されるように、ランタイムステージ410の間に実行されてもよい。
図6Cは方法641の複数のステップを示しているが、実施形態によっては、方法641には、図6Cに示されているよりも多い、少ない、および/または示されているものとは異なるステップを含めてもよい。例えば、方法641には、さらに、現在の所定の状態の状態マスクに基づき、現在の所定の状態に対する装置の第1サブセットの装置状態を決定するステップを含めてもよい。それと共に、方法641には、現在の所定の状態の制御マスクに基づき、現在の所定の状態に対する装置の第2サブセットに出力を送信するステップを含めてもよい。図4を参照すると、これら追加のステップは、ランタイムステージ410の間に実行されてもよい。
さらに、図6Cのステップは、図6Cに示される順序とは異なる順序で実行されてもよい。実施形態によっては、方法641は、印刷デバイス200のマイクロコントローラ201のような、印刷デバイスのマイクロコントローラにより実行される。しかしながら、他の実施形態においては、マイクロコントローラを含む異なるコンピューティング・デバイス、またはプロセッサが、方法641を実行してもよい。それと共に、マイクロコントローラ以外のハードウェアが、方法641を実行してもよい。
[6.結論]
本出願において記述されている具体的な実施形態に関して、本開示は限定されるべきではなく、それらはいろいろな態様の実例として意図されている。当業者にとって明白であるように、本開示の主旨と範囲から逸脱することなく多くの変更および変形をすることが可能である。本記載に列挙されていることに加え、本開示の範囲内の機能的に等価な方法および装置は前述の記載から明白であろう。そのような変更および変形は、添付された請求項の範囲内に入るように意図されている。
図面における、任意のすなわち全てのラダー図、シナリオ、およびフローチャートに関しておよび本記載で述べられたように、各ブロックおよび/または通信は、例示の実施形態に従って情報を処理しおよび/または情報を送信することを表してもよい。他の実施形態もそのような例示の実施形態の範囲に含まれてもよい。さらに、より多くのもしくはより少ないブロックおよび/または機能が、本記載に記述されているどのラダー図、シナリオ、およびフローチャートと共に使用されてもよいし、また当該ラダー図、シナリオ、およびフローチャートは、部分的にもしくは全体的にお互いに結合されてもよい。
情報の処理を表すステップもしくはブロックは、本記載の方法もしくは技術の具体的な論理機能を実行するように構成することが可能な回路に相当してもよい。それに代えてまたはさらに、情報の処理を表すステップもしくはブロックは、モジュール、セグメント、もしくはプログラムコードの一部分(関連するデータを含めて)に相当してもよい。プログラムコードは、方法もしくは技術における具体的な論理機能もしくは動作を実行するための、処理部により実行可能な一つ以上の命令を含んでもよい。プログラムコードおよび/または関連するデータは、ディスクドライブ、ハードドライブ、もしくはその他の記憶媒体を含む記憶装置等の任意の種類のコンピュータ読み取り可能な媒体に格納してもよい。
コンピュータ読み取り可能な媒体は、また、レジスタメモリ、プロセッサキャッシュ、および/またはランダムアクセスメモリ(RAM)のような短期間データを格納するコンピュータ読み取り可能な媒体等の、非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、例えば、リードオンリーメモリー(ROM)、光学もしくは磁気ディスク、および/またはコンパクトディスク・リードオンリーメモリー(CD―ROM)のような、二次的もしくは持続的長期記憶装置等、より長期間プログラムコードおよび/またはデータを格納する非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、他の揮発性もしくは不揮発性記憶システムであってもよい。コンピュータ読み取り可能な媒体は、例えば、コンピュータ読み取り可能な記憶媒体および/または有形の記憶デバイスと考えてもよい。
加えて、本明細書、図面、請求項内のいずれの構成要素、ブロック、又はステップの列挙も、明確さを目的としたものである。従って、このような列挙は、これらの構成要素、ブロック、またはステップが特定の配置にこだわる、または特定の順序で実行されることを要求または意味すると解釈すべきではない。
本明細書中に記述されている配置は、例示の目的のためのみであることは理解されるべきである。そのように、当業者であれば、他の配置および他の構成要素(例えば、機械、インターフェース、機能、順序、機能のグルーピング、など)が代わりに利用され得ること、およびいくつかの構成要素が所望の結果に従って完全に省略されてもよいことは、理解するであろう。さらに、記載されている構成要素の多くは、個別または分散された構成要素として、または他の構成要素と一緒に、任意の適切な組み合わせおよび位置で実行されてもよい機能エンティティである。
本記載においてさまざまな態様および実施形態が開示されてきたが、他の態様および実施形態も当業者にとって明白であろう。本記載において開示されたさまざまな態様および実施形態は、例示目的であって限定することを意図するものではなく、真の範囲と主旨は以下の請求項により示されている。
200 印刷デバイス
201 マイクロコントローラ
202 プロセッサ
204 メモリ
206 入出力部
208 マイクロコントローラ・システムバス

Claims (10)

  1. コンピューティング・デバイスであって、
    1以上のプロセッサと、
    実行可能な命令を格納するメモリであって、前記命令を実行する工程は、
    前記1以上のプロセッサにより、2次元画像をレンダリングするための1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第1ステージを実行する工程であって、前記各オブジェクトは、前記2次元画像の画像データを含み、前記第1ステージは、
    複数の中間変数を決定する工程と、
    前記オブジェクトに対して、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、
    前記各所定の状態に対して、前記1以上のプロセッサに関連付けられている1以上の装置から装置状態を監視するための装置の第1サブセットを決定する工程と、
    前記各所定の状態に対して、前記1以上のプロセッサに関連付けられている前記1以上の装置から制御するための装置の第2サブセットを決定する工程と、
    を備える工程と、
    前記1以上のプロセッサにより、前記オブジェクトのデータを処理するための第2ステージを実行する工程であって、前記第2ステージは、
    前記状態遷移リストに基づき現在の所定の状態を決定する工程と、
    前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、
    前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、
    前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、
    前記状態遷移リストに基づき次の所定の状態を決定する工程と、
    前記現在の所定の状態の前記所定のアクションの実行完了後に前記次の所定の状態に進む工程と、
    を備える工程と、
    を備える方法を前記1以上のプロセッサに実行させるメモリと、
    を備えるデバイス。
  2. 請求項1に記載のコンピューティング・デバイスであって、さらに、
    前記第1ステージに対し、
    前記各所定の状態に対する前記装置の第1サブセットの状態マスクを生成する工程と、
    前記第2ステージに対し、
    さらに、前記現在の所定の状態に対する前記状態マスクに基づき前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、
    を備えるデバイス。
  3. 請求項2に記載のコンピューティング・デバイスであって、さらに、
    前記第1ステージに対し、
    前記1以上のプロセッサにより、前記各所定の状態に対する前記装置の第1サブセットの極性を受信する工程と、
    前記第2ステージに対し、
    さらに、前記状態マスクおよび前記現在の所定の状態に対する前記受信された極性に基づき前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、
    を備えるデバイス。
  4. 請求項2又は3に記載のコンピューティング・デバイスであって、さらに、
    前記第1ステージに対し、
    前記各所定の状態に対して前記装置の第2サブセットの制御マスクを生成する工程と、
    前記第2ステージに対し、
    前記現在の所定の状態に対する前記制御マスクに基づき前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、
    を備えるデバイス。
  5. 請求項1乃至4のいずれか1項に記載のコンピューティング・デバイスであって、さらに、
    前記1以上のプロセッサにより、前記第2ステージを実行する工程であって、前記第2ステージは、さらに、
    前記状態遷移リストに基づき最終的な所定の状態を決定する工程と、
    少なくとも前記状態遷移リスト、前記最終的な所定の状態に対する前記状態マスク、および前記最終的な所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記最終的な所定の状態の所定のアクションを実行する工程と、
    を備える工程と、
    前記順序に対する前記オブジェクトのデータを処理するための前記第1ステージおよび前記第2ステージの実行完了後に、
    前記1以上のプロセッサにより、前記順序に対する第2オブジェクトのデータを処理するための前記第1ステージを実行する工程と、
    前記1以上のプロセッサにより、前記順序に対する前記第2オブジェクトのデータを処理するための前記第2ステージを実行する工程と、
    により、前記順序の前記第2オブジェクトを処理する工程と、
    を備えるデバイス。
  6. 請求項5に記載のデバイスであって、
    前記順序は、前記1以上のオブジェクトの各々が処理されるとすぐに処理されるデバイス。
  7. 請求項1乃至6のいずれか1項に記載のデバイスであって、
    前記各オブジェクトは、複数のラインを含み、前記現在の所定の状態の前記所定のアクションは、少なくとも前記複数のラインの1つのラインに対するデバイス。
  8. 請求項1乃至7のいずれか1項に記載のデバイスであって、
    前記オブジェクトは台形であるデバイス。
  9. 方法であって、
    マイクロコントローラにより、2次元画像をレンダリングするための1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第1ステージを実行する工程であって、前記各オブジェクトは、2次元画像の画像データを含み、前記第1ステージは、
    複数の中間変数を決定する工程と、
    前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、
    前記各所定の状態に対し、前記マイクロコントローラに関連付けられている1以上の装置から、装置状態を監視するための装置の第1サブセットを決定する工程と、
    前記各所定の状態に対し、前記マイクロコントローラに関連付けられている前記1以上の装置から、制御するための装置の第2サブセットを決定する工程と、
    を備える工程と、
    前記マイクロコントローラにより、前記オブジェクトのデータを処理するための第2ステージを実行する工程であって、前記第2ステージは、
    前記状態遷移リストに基づき現在の所定の状態を決定する工程と、
    前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、
    前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、
    前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記現在の所定の状態の前記所定のアクションを実行する工程と、
    前記状態遷移リストに基づき次の所定の状態を決定する工程と、
    前記現在の所定の状態の前記所定のアクションの実行完了後、前記次の所定の状態に進む工程と、
    を備える工程と、
    を備える方法。
  10. コンピュータプログラムであって、
    マイクロコントローラの1以上のプロセッサにより、2次元画像をレンダリングするための1以上のオブジェクトを含む順序に対するオブジェクトのデータを処理するための第1ステージを実行する工程であって、前記各オブジェクトは、前記2次元画像の画像データを含み、前記第1ステージは、
    複数の中間変数を決定する工程と、
    前記オブジェクトに対し、前記複数の中間変数に基づき状態遷移リストを生成する工程であって、前記状態遷移リストは、複数の所定の状態を含み、前記各所定の状態は、所定のアクションに関連付けられている工程と、
    前記各所定の状態に対し、前記1以上のプロセッサに関連付けられている1以上の装置から装置状態を監視するための装置の第1のサブセットを決定する工程と、
    前記各所定の状態に対し、前記1以上のプロセッサに関連付けられている前記1以上の装置から制御するための装置の第2サブセットを決定する工程と、
    を備える工程と、
    前記1以上のプロセッサにより、前記オブジェクトのデータを処理するための第2ステージを実行する工程であって、前記第2ステージは、
    前記状態遷移リストに基づき現在の所定の状態を決定する工程と、
    前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態を決定する工程と、
    前記現在の所定の状態に対する前記装置の第2サブセットに出力を送信する工程と、
    前記状態遷移リストおよび前記現在の所定の状態に対する前記装置の第1サブセットの前記装置状態に基づき前記現在の所定の状態に対する前記所定のアクションを実行する工程と、
    前記状態遷移リストに基づき次の所定の状態を決定する工程と、
    前記現在の所定の状態の前記所定のアクションの実行完了後に、前記次の所定の状態に進む工程と、
    を備える工程と、
    を備える方法を前記マイクロコントローラの前記1以上のプロセッサに実行させるプログラム。
JP2016057693A 2015-03-27 2016-03-22 コンピューティング・デバイス、方法及びプログラム Expired - Fee Related JP6566210B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/671332 2015-03-27
US14/671,332 US9489709B2 (en) 2015-03-27 2015-03-27 Real-time state-machine implemented with micro-controller

Publications (2)

Publication Number Publication Date
JP2016189188A true JP2016189188A (ja) 2016-11-04
JP6566210B2 JP6566210B2 (ja) 2019-08-28

Family

ID=56974284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016057693A Expired - Fee Related JP6566210B2 (ja) 2015-03-27 2016-03-22 コンピューティング・デバイス、方法及びプログラム

Country Status (2)

Country Link
US (1) US9489709B2 (ja)
JP (1) JP6566210B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157040A (ja) * 2008-12-26 2010-07-15 Kyocera Mita Corp 画像形成装置
JP2010264731A (ja) * 2009-05-18 2010-11-25 Canon Inc 画像形成装置、制御方法、及びプログラム
JP2013534660A (ja) * 2010-06-10 2013-09-05 マイクロン テクノロジー, インク. 状態情報を提供するためのプログラム可能装置、階層型並列マシン、方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004107404A2 (en) * 2003-05-23 2004-12-09 Sensory Networks, Inc. Apparatus and method for large hardware finite state machine with embedded equivalence classes
US20090307175A1 (en) * 2008-06-10 2009-12-10 International Business Machines Corporation Parallel pattern matching on multiple input streams in a data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157040A (ja) * 2008-12-26 2010-07-15 Kyocera Mita Corp 画像形成装置
JP2010264731A (ja) * 2009-05-18 2010-11-25 Canon Inc 画像形成装置、制御方法、及びプログラム
JP2013534660A (ja) * 2010-06-10 2013-09-05 マイクロン テクノロジー, インク. 状態情報を提供するためのプログラム可能装置、階層型並列マシン、方法

Also Published As

Publication number Publication date
US9489709B2 (en) 2016-11-08
US20160284042A1 (en) 2016-09-29
JP6566210B2 (ja) 2019-08-28

Similar Documents

Publication Publication Date Title
US11121949B2 (en) Distributed assignment of video analytics tasks in cloud computing environments to reduce bandwidth utilization
JP6182242B1 (ja) データのラベリングモデルに係る機械学習方法、コンピュータおよびプログラム
US9778635B2 (en) Executing an additive manufacturing job by a plurality of additive manufacturing printers
US10592210B2 (en) Dynamic evaluation and adaption of hardware hash function
CN108830777B (zh) 用于全面同步执行线程的技术
WO2017163441A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
US20160036998A1 (en) Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method
US20130107289A1 (en) Rasterization of printing data
WO2016040716A1 (en) Render-time linking of shaders
CN109344062A (zh) 页面跨域跳转测试的方法及终端设备
JP2016058006A (ja) 情報処理装置及びプログラム
US9998616B2 (en) Image forming apparatus, non-transitory computer readable recording medium, and information processing system
JP6566210B2 (ja) コンピューティング・デバイス、方法及びプログラム
US20200074584A1 (en) Image processing apparatus, image processing method, and computer readable medium storing image processing program
US9299164B2 (en) Method and apparatus for using super resolution encoding to provide edge enhancements for non-saturated objects
US11354543B2 (en) Convolutional neural network filter stacker for colorization preprocessing
EP3495960A1 (en) Program, apparatus, and method for communicating data between parallel processor cores
US9196066B2 (en) Method, apparatus and system for rendering an object on a page
US10168958B2 (en) Information processing system, method in information processing system, and storage medium
KR102192775B1 (ko) 인쇄장치 및 그 제어방법과 기억매체
JP6404865B2 (ja) 乗算済みデータにおける色変換を支援する方法
JP2016143920A (ja) 情報処理装置
JP2020140529A (ja) 情報処理装置、情報処理方法、及びプログラム
US10387757B2 (en) Multicore printer definition language processing
KR20240026325A (ko) 이기종 프로세서들을 이용하여 뉴럴 네트워크 연산을 포함하는 태스크를 수행하는 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190311

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190716

R150 Certificate of patent or registration of utility model

Ref document number: 6566210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees