(57)【要約】【課題】  システム全体のパフォーマンスの低下を防止する。【解決手段】  データの受信と、当該受信されたデータに対する所定の処理のそれぞれを切り替えながら実行する。受信または所定の処理の進捗に応じて、受信と所定の処理のどちらを実行させるか判断する。所定の処理の処理条件に応じて、判断の頻度を決定する。【選択図】  図８
2015058652.tif 000002
【特許請求の範囲】
【請求項１】
データの受信と、当該受信されたデータに対する所定の処理のそれぞれを切り替えながら実行する実行手段と、
前記実行手段による受信または前記所定の処理の進捗に応じて、前記受信と前記所定の処理のどちらを前記実行手段に実行させるか判断する判断手段と、
前記所定の処理の処理条件に応じて、前記判断手段による前記判断の頻度を決定する決定手段と
を備えることを特徴とする処理装置。
【請求項２】
前記実行手段による前記所定の処理は、前記受信されたデータに基づく画像の印刷のための処理である
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記実行手段は、前記受信に対応する処理として、画像データを受信して第１のバッファに格納する通信タスクと、前記所定の処理として、前記第１のバッファに格納された前記画像データを読み出し、印刷データを生成して第２のバッファに格納する画像処理タスクと、を実行する
ことを特徴とする請求項２に記載の処理装置。
【請求項４】
前記実行手段は、さらに前記所定の処理として、前記第２のバッファに格納された前記印刷データを読み出し、印刷手段に印刷させる印刷タスクを実行する
ことを特徴とする請求項２または３に記載の処理装置。
【請求項５】
前記処理条件は、印刷設定、現在印刷中のページ内における印刷位置、前記画像データの画像データ形式、前記第２のバッファに格納された前記印刷データの蓄積量、前記通信部により受信中の画像データのページ番号の少なくとも１つを含む
ことを特徴とする請求項２乃至４のいずれか１項に記載の処理装置。
【請求項６】
前記実行手段は、前記画像処理タスクが入力データ待ち状態である場合、あるいは前記第２のバッファに格納された前記印刷データの蓄積量がしきい値を超過している場合、前記第１のバッファの残容量の内、所定量の書き込み許可を前記通信タスクに与えることで前記通信タスクを実行する
ことを特徴とする請求項３に記載の処理装置。
【請求項７】
前記判断手段は、前記所定の処理の進捗として、前記実行手段による前記印刷データの残量に基づき前記判断を行う
ことを特徴とする請求項１乃至６のいずれか１項に記載の処理装置。
【請求項８】
前記判断手段は、所定量のデータが前記実行手段により受信されたことに応じて、前記判断を実行し、
前記決定手段は、前記所定量を調整することで、前記判断の頻度を決定する
ことを特徴とする請求項１乃至６のいずれか１項に記載の処理装置。
【請求項９】
前記決定手段は、前記判断手段による前記判断の頻度を、前記所定の処理の遅い条件ほど頻度が少なくなるよう決定する
ことを特徴とする請求項１乃至８のいずれか１項に記載の処理装置。
【請求項１０】
データの受信と、当該受信されたデータに対する所定の処理のそれぞれを切り替えながら実行する実行工程と、
前記実行工程における受信または前記所定の処理の進捗に応じて、前記受信と前記所定の処理のどちらを前記実行工程において実行させるか判断する判断処理を、前記所定の処理の処理条件に応じた頻度で実行する判断工程と、
を備えることを特徴とする処理方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの受信と、受信したデータに対する所定の処理を実行する技術に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ等の情報処理装置からなるホストが送信したデータを印刷する印刷装置は広く用いられており、ホストが送信するデータ形式も様々な種類のものが考案、実用化されている。印刷装置は、ホストから送信されたデータを、自身が備えるプリントエンジンに適した形式に変換した後に、プリントエンジンに供給し記録媒体に画像を印刷する（形成する）ように構成されている。
【０００３】
特許文献１では、印刷エンジンの停止を抑制するために、印刷データの蓄積量の状況に応じて、外部装置からデータを受信するタスクと受信データから印刷データを生成するタスクの優先度を動的に変化させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１１９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術で、印刷エンジンを極力停止させないためには印刷データの蓄積量のチェック頻度を高めることが好ましい。一方で、チェック頻度を高めることは印刷データ蓄積量をチェックし両タスクの優先度を決定するスケジューリング処理の実行回数が増えることを意味する。例えば、１つのＣＰＵでマルチタスク処理を実行する場合、あるタスクの処理を実行している間は他のタスクの処理は待たされる。つまり、このスケジューリング処理の実行回数の増加は、その処理を実行するタスクがＣＰＵを占有する時間の増加につながり、システム全体のパフォーマンスへ悪影響を及ぼしかねない。尚、このスケジューリング処理によるＣＰＵの占有時間をオーバーヘッドと称する。そして、特許文献１の技術では、このオーバーヘッドを適正化する方法について述べられていない。
【０００６】
本発明は上記の課題を鑑みてなされたものであり、データの受信とそのデータの処理とを行う際の装置のパフォーマンスの低下を防止することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明による処理装置は以下の構成を備える。即ち、
データの受信と、当該受信されたデータに対する所定の処理のそれぞれを切り替えながら実行する実行手段と、
前記実行手段による受信または前記所定の処理の進捗に応じて、前記受信と前記所定の処理のどちらを前記実行手段に実行させるか判断する判断手段と、
前記所定の処理の処理条件に応じて、前記判断手段による前記判断の頻度を決定する決定手段と
を備える。
【発明の効果】
【０００８】
本発明によれば、データの受信とそのデータの処理とを行う際の装置のパフォーマンスの低下を防止できる。
【図面の簡単な説明】
【０００９】
【図１】ネットワークの構成を示す図である。
【図２】マルチファンクションプリンタの構成を示す図である。
【図３】マルチファンクションプリンタのソフトウェアの構成を示す図である。
【図４】ジョブデータの構成を示す図である。
【図５】主要なタスク間のシーケンス概要図である。
【図６】タスク優先度の相対関係を示す図である。
【図７】バッファ構成の概要を示す図である。
【図８】タスク優先度の切替制御処理を示すフローチャートである。
【図９】主要なタスクの遷移状況の変化を説明する図である。
【図１０】スケジュール処理の実行間隔の設定を説明する図である。
【図１１】スケジュール処理の実行間隔を決定する処理を示すフローチャートである。
【図１２】受信バッファの割当単位量の設定を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１１】
＜実施形態１＞
図１はシステムのネットワーク構成を示す図である。
【００１２】
画像処理装置として機能するＭＦＰ（マルチファンクションプリンタ）１０１は、ルータ１０３と有線または無線で接続されている。ルータ１０３は、更に、パーソナルコンピュータ１０２（以下、ＰＣとする）やホームサーバ（不図示）と接続しており、ローカルエリアネットワーク（以下、ＬＡＮとする）を構成している。ＬＡＮに接続された機器にはそれぞれＩＰアドレスが割り当てられ、ＰＣ１０２は、ＭＦＰ１０１と相互に通信できる。
【００１３】
ユーザは、ＩＳＰ（インターネットサービスプロバイダ）と契約することで、ルータ１０３を介して、ＭＦＰ１０１やＰＣ１０２をインターネットに接続するための環境を整えることができる。
【００１４】
インターネットには、印刷アプリケーションや写真データを提供するサーバ１０４が接続されており、ユーザは、ＰＣ１０２によって、サーバ１０４から様々なサービス提供を受けることができる。ＭＦＰ１０１は、ルータ１０３を介してサーバ１０４と通信することができる。
【００１５】
ＬＡＮまたはインターネット上のサーバ１０４や、サーバ１０４で管理されるファイルを指定するためには、例えば、ＵＲＬを用いる。ＵＲＬによってネットワーク上の機器のロケーション情報を示すことができる。
【００１６】
図２はＭＦＰ１０１の構成を示す図である。
【００１７】
ＭＦＰ１０１は、操作部２０１、カードインターフェース２０２、読取部２０９、記録部２１０、無線ネットワーク部２０７、及び有線ネットワーク部２０８を有する。また、ＭＦＰ１０１は、ＣＰＵ２００、ＲＯＭ２０３、ＲＡＭ２０４、不揮発性ＲＡＭ２０５、表示部２０６、駆動部２１４、及びセンサ部２１５を備える。更に、ＭＦＰ１０１は、画像処理部２１１、ＪＰＥＧ展開部２１２、及びＰＮＧ展開部２１３を有する。
【００１８】
ＣＰＵ２００は、ＲＯＭ２０３に記憶されているプログラムを読み出して実行することで、ＭＦＰ１０１が備える各種構成要素の動作を制御して様々な機能を実現する。ＲＯＭ２０３は、ＭＦＰ１０１の制御命令プログラム等の各種プログラムやパラメータ等のデータを格納している。
【００１９】
無線ネットワーク部２０７は、ＩＥＥＥ８０２．１１ａ等の通信規格に対応する無線ＬＡＮアクセスポイントと無線通信が可能である。有線ネットワーク部２０８は、１００Ｂａｓｅ−ＴＸ等のより対線ケーブルを接続可能なＥｔｈｅｒｎｅｔ（登録商標）コネクタを備えている。ＭＦＰ１０１は、通信部である無線ネットワーク部２０７または有線ネットワーク部２０８を用いて、例えば、ＴＣＰ／ＩＰプロトコルを使用してＬＡＮに接続された他の機器と通信して、例えば、画像データやジョブデータを受信してＲＡＭ２０４に格納することができる。
【００２０】
ＪＰＥＧ展開部２１２は、ＲＡＭ２０４からＪＰＥＧ形式で圧縮された画像データを読み込み、ＲＧＢの点順次の画像データに復号（デコード）してＲＡＭ２０４に書き出すことができる。
【００２１】
ＰＮＧ展開部２１３は、ＲＡＭ２０４からＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）形式で圧縮された画像データを読み込み、復号（デコード）してＲＡＭ２０４に書き出すことができる。
【００２２】
画像処理部２１１は、画像データに対し、後述する画像処理を行うための機能部である。例えば、画像処理部２１１では、画像解析、変換特性の算出、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理が行われる。また、これらの画像処理がなされた画像データは、ＲＡＭ２０４に格納される。そして、ＲＡＭ２０４に格納された画像データが、印刷部である記録部２１０で記録するために必要な所定のデータ量に達すると、記録部２１０による記録動作が実行される。
【００２３】
尚、各種画像データ形式に対応した展開処理とは、ＲＡＭ２０４に受信された画像データがＪＰＥＧあるいはＰＮＧであれば、それぞれに対応したＪＰＥＧ展開部２１２あるいはＰＮＧ展開部２１３で実行される処理を指す。それら以外の画像データ形式に対しては、ＲＯＭ２０３に格納されたプログラムに基づき、ＣＰＵ２００で実行される展開処理を意味する。
【００２４】
表示部２０６は、例えば、液晶等で構成される。また、操作部２０１と表示部２０６として、タッチパネルディスプレイを構成することができる。
【００２５】
読取部２０９は、原稿台（不図示）に載置されている原稿上の画像を光学的に読み取り、これを電気的な画像データに変換する。
【００２６】
記録部２１０は、例えば、インクジェット方式のインクジェットヘッド及び汎用ＩＣ等によって構成される。記録部２１０は、ＣＰＵ２００の制御によりＲＡＭ２０４に格納されている画像データを読み出し、記録媒体に画像を記録して出力する。
【００２７】
駆動部２１４は、読取部２０９や記録部２１０を構成する機構を駆動する。センサ部２１５は、読取部２０９の読取位置の検出や、記録部２１０における記録媒体の搬送制御のための記録媒体の位置等の各種検出を行う。
【００２８】
図３はＭＦＰ１０１の制御命令プログラムの構成を示す図である。
【００２９】
この制御命令プログラムは、ＲＯＭ２０３に格納されている。そして、ＣＰＵ２００によってこの制御命令プログラムが実行されることで、ＯＳ３０６を介して、ジョブ制御タスク３０１、通信タスク３０２、画像処理タスク３０３、印刷タスク３０４、及びスケジューラタスク３０７の各タスクが実現される。
【００３０】
ジョブ制御タスク３０１は、印刷ジョブ開始を指示する。通信タスク３０２は、無線ネットワーク部２０７と有線ネットワーク部２０８を制御し、ＴＣＰ／ＩＰやＨＴＴＰプロトコルに基づく通信を行うことで、ジョブデータや画像データを受信し、ＲＡＭ２０４に書き込む。
【００３１】
画像処理タスク３０３は、通信タスク３０２が受信した画像データから印刷データを生成する。具体的には、画像処理部２１１、ＪＰＥＧ展開部２１２、及びＰＮＧ展開部２１３を制御し、画像の復号、拡大縮小、色変換、ハーフトーニング等の画像処理を行う。ＪＰＥＧあるいはＰＮＧの画像データの復号化処理は、各種画像データ形式に対応した展開部（ＪＰＥＧ展開部２１２あるいはＰＮＧ展開部２１３）を用いて実行する（ハードウェアデコード）ため、ＣＰＵ２００で各種画像データ形式に対応した復号化処理をする必要がない。これにより、これらの画像データ形式の場合はＣＰＵ２００の負荷が低い状態で画像処理を実行することができる。一方、これら以外の画像データ形式の画像データの復号化処理は、ＣＰＵ２００を用いて実行する（ソフトウェアデコード）ため、画像データ形式や入力画像データに依存してＣＰＵ２００に対する負荷が高くなる。また、全ての画像データ形式は、それぞれ復号化処理の内容が異なり、また入力データ条件等でも復号化処理に要する時間が変動する。
【００３２】
印刷タスク３０４は、画像処理タスク３０３の処理によって、ＲＡＭ２０４に格納された画像データを記録部２１０に入力し印刷を制御する。
【００３３】
これ以外に、操作部２０１、表示部２０６、駆動部２１４、及びセンサ部２１５を制御するためのタスク（不図示）が存在し、ＯＳ３０６は各タスクに設定された優先度に基づいて各タスクにＣＰＵ２００を割り当て実行させる。ＯＳ３０６からのシステムコールによりリソース状態が変更されると、ＯＳ３０６はその時点で実行可能状態のタスクの内、最も優先順位の高いタスクにＣＰＵ２００を割り当てる。但し、通信タスク３０２と画像処理タスク３０３に対するＣＰＵ割当状況はスケジューラタスク３０７によって影響を受ける。スケジューラタスク３０７で実行される制御の詳細は後述する。
【００３４】
共通ライブラリ３０５は、これらのタスクから共通して呼び出されるプログラムであり、メモリ領域の取得処理及びメモリ解放処理や、文字列処理等の各種処理を実現するプログラムが含まれる。
【００３５】
尚、通信タスク３０２と画像処理タスク３０３における各処理はジョブ制御タスク３０１により起動される。印刷ジョブが開始されると、ジョブ制御タスク３０１は通信タスク３０２によるジョブデータ及びページデータの受信処理と、画像処理タスク３０３による印刷データ生成処理をそれぞれジョブが終了するまで独立的に呼び出す。例えば、図５のようなシーケンスが実行される。
【００３６】
ここで、図５のシーケンスを説明する前に、実施形態１におけるジョブデータの構成を説明する。
【００３７】
図４（ａ）に、実施形態１におけるジョブデータの構成図を示す。ジョブデータは一つのストリームからなる。先頭にジョブヘッダがあり、ジョブの名称やジョブに含まれる総ページ数が記述されている。ジョブヘッダの後には、１ページ目のページヘッダ（図中ではページヘッダ（１）と表記）、１ページ目のページデータ（図中では、ページデータ（１）と表記）が続いている。１ページ目が終わると、２ページ目、３ページ目と順次ジョブ終了まで、各ページのページヘッダとページデータが連続する。
【００３８】
ページヘッダには、ページ属性が記述されている。ページ属性には用紙の種類（普通紙、光沢紙、マット紙等）、ページサイズ（ページデータに含まれる縦横のピクセル数）、ページデータのデータ形式種類、ページデータのバイト数等の情報が含まれる。データ形式種類には、ＪＰＥＧやＰＮＧ、Ｐｒｉｎｔｅｒ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐが規定するＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔ形式やＴＩＦＦ等が指定できる。
【００３９】
ページデータには、データ形式種類で指定された形式のデータが含まれる。
【００４０】
ジョブデータ内でページ毎に画像データ形式の種類が異なることが、画像データ形式毎に特徴があるため存在し得る。例えば、ＪＰＥＧは自然画の圧縮効率に優れているが非可逆圧縮形式であるため特に文字部の品位が低下する場合がある。ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔはロスレス圧縮であり、自然画の圧縮率が悪い（データサイズが大きくなる）ことがあるが文字主体の文書であれば高い圧縮率である。そのため、ＰＣ１０２がページ毎に自然画が多いページはＪＰＥＧで、文字が多いページはＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔで圧縮するというようにページ毎に最適な画像データ形式を選択することはあり得る。
【００４１】
また、ページ毎に印刷用紙種類が異なることも、ユーザの指定によって発生し得る。主に、文字やベクターグラフィックスで構成されるページは普通紙を、写真を含み、画質を要求するページについては光沢紙を選択することは一般的にある。
【００４２】
以降、実施形態１では、図４（ｂ）に示すように、３ページ分のページデータで構成されるジョブが入力された場合を例に挙げて説明する。ここで、各ページデータは、そのページ情報とページデータへのＵＲＬとで構成される。
【００４３】
次に、図５のシーケンス図を説明する。
【００４４】
印刷ジョブが開始されると、ジョブ制御タスク３０１は、スケジューラタスク３０７、画像処理タスク３０３、及び通信タスク３０２にそれぞれジョブ開始を通知する（９００１、９１０１、９３０１）。これを受けて、画像処理タスク３０３は、印刷タスク３０４にジョブ開始を通知する（９２０１）。このようにして、ジョブ開始の通知を受信した４つのタスクはそれぞれジョブを開始するための準備を整える。
【００４５】
次に、ジョブ制御タスク３０１は、通信タスク３０２に対し、ジョブヘッダと１ページ目のページヘッダの受信を要求する（９３０２、９３０３）。ジョブ制御タスク３０１は、通信タスク３０２からジョブヘッダと１ページ目のページヘッダを受信し、１ページ目の印刷設定条件を確定させる。
【００４６】
そして、ジョブ制御タスク３０１は、画像処理タスク３０３、スケジューラタスク３０７に１ページ目の印刷設定条件をパラメータとして、ページ印刷開始を要求する（９００２、９１０２）。これを受けて、画像処理タスク３０３は、印刷タスク３０４にページ印刷開始を通知する（９２０２）。
【００４７】
１ページ目の印刷開始を要求するとともに、ジョブ制御タスク３０１は、通信タスク３０２に対して１ページ目のページデータの受信を要求する（９３０４）。ジョブ制御タスク３０１は、その後、通信タスク３０２に対してはページデータの受信完了を受ける度に、次のページのページヘッダ要求とページデータ要求を印刷処理の進捗状況とは無関係に繰り返す。そして、全ページ数の処理が完了したら、ジョブ制御タスク３０１は、通信タスク３０２にジョブ完了を通知する（９３０５〜９３１２）。
【００４８】
尚、通信タスク３０２は、ジョブ制御タスク３０１からページデータを要求される度（９３０４、９３０７、９３１０）に、後述のスケジューラタスク３０７における制御のため、スケジューラタスク３０７に、これから受信する受信中ページ番号を通知する（９４０１〜９４０３）。
【００４９】
同様に、ジョブ制御タスク３０１は、ページ印刷開始の要求後（９００２、９１０２）は、画像処理タスク３０３からのページ印刷完了通知を受ける度に、次のページの印刷設定を確定させ、印刷を要求するという処理を繰り返し、全てのページの処理が完了したら、ジョブ完了を通知する（９００３〜９００５、９１０３〜９１０８、９２０３〜９２０８）。但し、印刷処理側に関しては、各ページの印刷開始時にジョブヘッダと該当ページのページヘッダにより確定された印刷設定が必要であるため、該当ページのページヘッダが受信されていない場合においてはその完了を待機する。
【００５０】
以上のようなシーケンスによって、ジョブデータの受信処理と印刷処理は極力同期を取らずに、双方のページ処理が繰り返し実行される。
【００５１】
尚、本シーケンスでは、スケジューラタスク３０７に対して、ジョブ開始とページ印刷開始を通知している。特に、ページ印刷開始時は印刷設定をパラメータとして呼び出しているが、そのパラメータがどのように作用するかは後述する。
【００５２】
図６は、図３で示すタスクの内、特に、４つのタスクの優先度の相対関係を示す図である。尚、優先度が設定されるタスクの種類や数はこれに限るものではない。
【００５３】
図６（ａ）の関係にある時、画像処理タスク３０３よりも通信タスク３０２の優先度が高いため、画像処理タスク３０３で印刷データを生成している最中でも、外部からパケットを受信した場合は通信タスク３０２の処理が優先的になされる。
【００５４】
逆に、図６（ｂ）の関係にある時は、画像処理タスク３０３よりも通信タスク３０２の優先度が低いため、画像処理タスク３０３で印刷データを生成している最中は、外部からパケットを受信した場合であっても印刷データ生成処理が優先的になされる。
【００５５】
また、図６（ａ）及び図６（ｂ）で共通して、印刷タスク３０４は、通信タスク３０２及び画像処理タスク３０３の両タスクよりも優先度が高い。このため、両タスクの優先度に影響を受けることなく印刷データが供給されれば印刷処理を連続的に実行できる。
【００５６】
更に、図６（ａ）及び図６（ｂ）で共通して、スケジューラタスク３０７は他の３つのタスクよりも優先度が高いため、３つのタスクの優先度に影響を受けることなく、通信タスク３０２、画像処理タスク３０３のスケジューリングを実行することができる。
【００５７】
このように、通信タスク３０２、画像処理タスク３０３及び印刷タスク３０４は、その優先度に応じて排他的に実行される。
【００５８】
図７（ａ）は、タスク間のＩＦとなるバッファ構成の概要を示す図である。
【００５９】
図中の受信バッファ６０１（第１のバッファ）、印刷データスプールバッファ６０２（第２のバッファ）、プリントバッファ６０３（第３のバッファ）はいずれもＲＡＭ２０４から取得される。
【００６０】
通信タスク３０２は、ジョブ制御タスク３０１からの指示で外部装置との通信を開始し、ジョブヘッダやページヘッダをＲＡＭ２０４に書き込む。ＲＡＭ２０４に書き込まれたジョブヘッダ、ページヘッダは、ジョブ制御タスク３０１が参照し、印刷設定を確定させ、その内容に基づき画像処理タスク３０３、印刷タスク３０４、及びスケジューラタスク３０７を初期化する。その後、ジョブ制御タスク３０１から通信タスク３０２にページデータのＵＲＬが通知されると、図７（ｂ）のように、受信バッファ６０１へページデータの書き込みが始まる。
【００６１】
尚、図７（ｂ）でページデータの記載に付与されている“（数値）”はページ番号を指す。図７（ｂ）では、２ページ目のページデータまで書きこまれている状況を示している。
【００６２】
次に、図７（ｃ）において、画像処理タスク３０３は、受信バッファ６０１に書き込まれたページデータを読み出し、必要な処理を実行して印刷データを生成し、印刷データスプールバッファ６０２に書き出す。印刷データスプールバッファ６０２に書き込まれた印刷データは印刷タスク３０４によって読み出され、記録部２１０が要求する形式に変換してプリントバッファ６０３に書き出し、記録部２１０にデータを転送する。
【００６３】
ここで、受信バッファ６０１に書き込まれるページデータは、ＪＰＥＧやＰＷＧＲａｓｔｅｒＦｏｒｍａｔ等の可変長圧縮データである。ページ毎にファイルサイズが異なるため、ネットワーク通信速度との兼ね合いで、印刷処理よりも先行してページデータを受信しなければデータ供給が間に合わなくなる場合が発生する。即ち、印刷データスプールバッファ６０２内の印刷データがなくなり、画像処理タスク３０３による印刷データの書き込みを待たなければならず、印刷タスク３０４による処理が実行できない場合がある。
【００６４】
このような場合に備え、例えば、１ページ目を印刷中に、２ページ、３ページとバックグラウンドでデータ受信を進めることが良好な印刷速度を確保するために肝要である。一方で、単純に、通信タスク３０２を画像処理タスク３０３より優先させると、印刷データ生成処理速度が低下してしまう。そこで、印刷処理速度への影響を抑えながら、ページデータを滞りなく画像処理タスク３０３へ供給可能とするため、スケジューラタスク３０７では次のような制御を行う。
【００６５】
スケジューラタスク３０７では、印刷ジョブ中、印刷データスプール量に基づくタスク優先度の切替制御処理を繰り返し実行する。
【００６６】
図８は印刷データスプール量に基づくタスク優先度の切替制御処理を示すフローチャートである。
【００６７】
このフローチャートは、ＣＰＵ２００がＲＯＭ２０３に記憶されている制御命令プログラムをＲＡＭ２０４にロードして実行することで実現される。
【００６８】
スケジューラタスク３０７は、現在、印刷ジョブ中であるか否かは、図５のシーケンスにおける、ジョブ制御タスク３０１からの通知（９００１、９００５）によって把握する。そして、スケジューラタスク３０７は、図５のジョブ開始の通知（９００１）を受信した後、ジョブの先頭ページの印刷開始の通知（９００２）を待機してから、図８の処理を開始する。
【００６９】
まず、スケジューラタスク３０７は、印刷データスプールバッファ６０２に蓄積された印刷データ量（印刷データのスプール量）を参照し、印刷データのスプール量が所定のしきい値より大きいか否かを判定する（Ｓ１１０１）。つまり、スケジューラタスク３０７は、印刷データのスプール量を確認する。この確認は、Ｓ１１０４で決定される実行間隔に従って、その確認する頻度が制御される。
【００７０】
印刷データのスプール量がしきい値以下である場合（Ｓ１１０１でＮＯ）、スケジューラタスク３０７は、図６（ｂ）のように、画像処理タスク３０３の優先度を通信タスク３０２の優先度よりも高く設定する（Ｓ１１０３）。一方、印刷データのスプール量がしきい値より大きい場合（Ｓ１１０１でＹＥＳ）、スケジューラタスク３０７は、図６（ａ）のように、通信タスク３０２の優先度を画像処理タスク３０３の優先度よりも高く設定する（Ｓ１１０２）。つまり、印刷データが十分スプールされている状況では、画像処理タスク３０３の処理が仮に停止したとしてもすぐには印刷エンジンが停止することがないため、優先的に通信タスク３０２にＣＰＵ２００を割り当てる。
【００７１】
そして、スケジューラタスク３０７は、Ｓ１１０１〜Ｓ１１０３の処理を次回実行するまでの実行間隔を決定する（Ｓ１１０４）。実行間隔の具体的な決定方法の詳細については後述する。
【００７２】
次に、スケジューラタスク３０７は、決定した実行間隔に基づきスケジューラタスクの処理を止めて待機する（Ｓ１１０５）。
【００７３】
実行間隔分の時間が経過したら、スケジューラタスク３０７は、動作を再開し印刷ジョブが終了したか否かを判定する（Ｓ１１０６）。尚、この判定は、図５のジョブ完了の通知（９００５）の有無で判定する。ジョブ完了の通知がない場合（Ｓ１１０６でＮＯ）、Ｓ１１０１に戻る。一方、ジョブ完了の通知がある場合（Ｓ１１０６でＹＥＳ）、スケジューラタスク３０７は、通信タスク３０２と画像処理タスク３０３の優先度を初期設定に戻す（Ｓ１１０７）。
【００７４】
次に、Ｓ１１０４における実行間隔の決定方法の詳細について説明する。
【００７５】
仮に、Ｓ１１０４の処理を行わずに、常に一定間隔で図８の処理を繰り返す場合、実行間隔は、最も制御のリアルタイム性が要求される場合にも対応できるような高い頻度となるように設定しなければならない。その結果、スケジューラタスク３０７における図８のスケジューリング処理の実行頻度が常に高頻度となり、印刷処理の状況によってはスケジューリング処理によるＣＰＵ２００の占有時間が不必要にとられる場合が生じる。また、逆に、上記実行間隔を長く設定していた場合、Ｓ１１０１において印刷データのスプール量をチェックしたときに、そのスプールが少なくなり過ぎていて、印刷が停止してしまう場合がある。
【００７６】
ここで、この実行間隔を最も短く取った時の各タスクの遷移状況を図９（ａ）に示している。図９は、縦軸に、実施形態１における主要なタスクを、横軸に時間軸をとっている。そして、黒く塗りつぶされている箇所が各タスクの処理が実行されている区間を示している。図９（ａ）では、スケジューラタスク３０７のスケジューリング処理がΔｔの実行間隔で実行されていることを示している。
【００７７】
実施形態１では、常に、図９（ａ）の実行間隔でスケジューリング処理するのではなく、図９（ｂ）及び図９（ｃ）に示すように、印刷処理の状況に応じて実行間隔を調整する。そうすることで、スケジューリング処理の実行回数を減らし、スケジューラタスク３０７がＣＰＵ２００を占有する時間を削減させる。また、スケジューリング処理を適切なタイミングで実行することで、印刷データのスプール量が少なくなり、印刷が停止してしまうことを防ぐことができる。
【００７８】
図８のＳ１１０４では、次のようにして、印刷処理の状況に応じた実行間隔の設定を行う。
【００７９】
実行間隔は、印刷条件として、次のパラメータの少なくとも１つに基づき動的に変化させる。
【００８０】
パラメータ１）印刷設定
パラメータ２）ページ内の印刷位置
パラメータ３）ページデータ形式
パラメータ４）印刷データスプール量
パラメータ５）データ受信中のページ番号
これらのパラメータの内、パラメータ１）及び３）は、図５のシーケンスでのジョブ制御タスク３０１からの通知（９００２〜９００４）時に印刷設定パラメータとして渡される。パラメータ２）及び４）は、スケジューラタスク３０７が印刷データのスプール量を確認する際に生成するなり、印刷タスク３０４の管理情報を参照する等して取得することができる。パラメータ５）は、図５のシーケンスでのジョブ制御タスク３０１からのページ印刷開始の通知（９００２〜９００４）と受信中ページ番号の通知（９４０１〜９４０３）で、現在印刷中あるいは受信中のページ番号を取得し、それらを比較することで、次に説明する判定を行うことができる。
【００８１】
パラメータ１）及び２）は印刷データの消費速度を左右するパラメータである。
【００８２】
パラメータ１）は、例えば、用紙種類の設定によって、印刷速度が異なる場合がある。普通紙は印刷速度を優先し、写真用紙は画質を優先するといった事柄は一般的に実施されている。また、ユーザの利便性を考慮して、画質と速度の兼ね合いを印刷品位という設定項目で調整可能なプリンタも存在する。このような印刷設定項目を備えるプリンタであれば、印刷速度は、用紙種類と印刷品位の２つの印刷設定項目に依存する。
【００８３】
各印刷設定項目の設定値と印刷速度に、次のような関係がある場合を例にする。用紙種類は、普通紙を選択した場合、写真用紙よりも高速に印刷される。印刷品位は「きれい」、「標準」、「速い」の順に印刷速度が速くなる。
【００８４】
この場合、図１０（ａ）に示すような相対的な関係で実行間隔を設定する。２つの印刷設定項目の組み合わせで、平均的な印刷速度、つまり、印刷データの消費速度が決まる。消費速度の速い組み合わせに対してはスケジューリング処理の実行間隔を短く設定する。これは、印刷データのスプール量がしきい値を上回り、通信タスク３０２を優先させた際に、印刷データが全て消費されて印刷エンジンが停止するようなことがないよう、スプール量超過後の実行間隔を短くするためである。印刷データの消費速度が速いほど、印刷データのスプール量がしきい値を下回った時のタスク優先度の切り替えを速やかに行わなければならない。一方で、印刷速度が遅い組み合わせ（条件）に対しては、共通のしきい値であれば、切替タイミングに対する要求は緩くなる。そのため、実行間隔を長めに取ることで印刷データのスプール量の確認を必要以上に頻繁に行うことで、ＣＰＵによる処理がスケジューリングのために不必要に占有されてしまうことを抑えることができる。
【００８５】
具体的には、図１０（ａ）で実行間隔を「より短く」設定する場合においては、図９（ａ）と同様の実行間隔Δｔを設定する。それ以外の場合に関しては、実行間隔をΔｔよりも長く設定する。パラメータ１）の印刷設定による実行間隔の調整例では、印刷データ消費速度は印刷設定項目により変動する。つまり、印刷処理中は一定であるため、印刷処理が完了するまで、図９（ｂ）のようなΔｔよりも長い実行間隔Δｔ１でスケジューリング処理が実行される。
【００８６】
尚、図９（ｂ）の例では、「Δｔ１＝Δｔ×８／３」であるため、図８のＳ１１０４の処理を実行することで、この処理を行わない場合に対し、印刷処理中におけるスケジューラタスク３０７のＣＰＵ占有率を３／８まで抑えられる。
【００８７】
より具体的な例を説明する。例えば、「Δｔ＝９０ミリ秒」、かつ１回のスケジューリング処理に平均して１０ミリ秒かかるとする。この場合、図９（ａ）の場合では、１分間の内、６秒がスケジューリング処理にＣＰＵ２００が使用される。これに対し、図９（ｂ）の場合では、「Δｔ１＝２４０ミリ秒」であるため、１分間の内の２．４秒までスケジューリング処理に要する時間が短縮される。つまり、差分の３．６秒は他のタスクの処理にＣＰＵ２００を割り当てることが可能となる。
【００８８】
以上、印刷設定の内、用紙種類と印刷品位という２つの設定項目で印刷データの消費速度が決まる場合を一例として説明した。しかし、本発明の適用範囲は、この場合のみに限定されるものではない。印刷データ消費速度の変動要因となり得る印刷設定項目が存在するのであれば、それらの組み合わせに対して印刷データ消費速度の見積もり値を算出し、図１０（ａ）のようなテーブルを生成すればよい。他の変動要因となり得る設定項目としては、カラー印刷とモノクロ印刷のどちらを行うかの設定等が考えられる。また、上記２つの設定項目の組み合わせによりスケジューリング処理の頻度を決定する場合に限らず、いずれの設定項目に従って上記決定を行ってもよい。
【００８９】
パラメータ２）は、例えば、インクジェットプリンタで良好な印刷画質を得るために給紙ローラと印刷用紙の位置関係を考慮して、１枚の印刷用紙の中でも、その用紙先端部、用紙中部、用紙後端部とで意図的に印刷ヘッドの使い方を切り替えることが実施されている。用紙先端部と用紙後端部は印刷用紙を給紙ローラで抑える抑え方が用紙中部に対し不十分になるため、印刷パス数を増やす等して印刷画質を保証する。このため、印刷速度が遅くなる。このような前提条件がある場合は、図１０（ｂ）に示すような相対的な関係で実行間隔を設定する。実行間隔の設定に関する考え方は、パラメータ１）の場合と同様で、印刷データの消費速度が速い条件においては実行間隔を短めに設定することで、極力、印刷エンジンを停止させないよう配慮する。遅い条件に対しては長めに設定することでオーバーヘッドを削減する。
【００９０】
具体的には、図９（ｃ）のように実行間隔を調整する。
【００９１】
図９（ｃ）は用紙先端部から用紙中部の切り替わり時の状況を示したものである。
【００９２】
印刷処理開始時は印刷用紙の用紙先端の領域を印刷するため、図９（ｃ）の時間軸左半面のように、Δｔ２のようなΔｔよりも長い実行間隔をとる。印刷処理が用紙中部に差し掛かったタイミングで、Δｔ３のようにΔｔ２よりも短い実行間隔を設定する。
【００９３】
このようにすることで、印刷データ消費速度が比較的緩やかな用紙先端、用紙後端部においてはスケジューリング処理の実行間隔を用紙中部よりも長めに設定できる。これにより、ＣＰＵ２００を通信タスク３０２、画像処理タスク３０３により長く割り当てることが可能となる。
【００９４】
パラメータ３）は、印刷データの生成処理速度を左右するパラメータである。
【００９５】
入力された画像データ形式によって、その展開にかかる平均的な時間は異なる。例えば、ＪＰＥＧ展開部２１２やＰＮＧ展開部２１３が高速なハードウェアで構成されており、ＰＷＧ  Ｒａｓｔｅｒのソフトウェアによる展開処理が遅い場合を仮定する。
【００９６】
この場合は、図１０（ｃ）に示すような相対的な関係で実行間隔を設定する。平均的に展開処理が遅いＰＷＧ  Ｒａｓｔｅｒ形式に対しては、印刷データのスプール量がしきい値を下回った時のタスク優先度の切り替えを速やかに行わなければならない。このため、実行間隔を短く設定する。一方で、高速に展開可能なＪＰＥＧ形式やＰＮＧ形式に対しては、共通のしきい値であれば切り替えタイミングに対する要求は緩くなるため、実行間隔を長めに取る。このようにすることで、印刷データのスプール量の確認に伴うオーバーヘッドを抑えることができる。
【００９７】
以上、パラメータ１）〜３）に関して個別に説明した。これらは印刷データ消費速度と印刷データ生成速度の変動条件（印刷条件）による実行間隔の調整である。このため、両者を差し引いた平均的な印刷データの消費速度を算出することで、図１０（ｄ）のように組み合わせに対して実行間隔を決定することも可能である。図１０（ｄ）ではページデータ形式と印刷位置の組み合わせ例を示しているが、同様に、印刷設定項目を更に組み合わせることも可能であることは自明であろう。
【００９８】
このように複数のパラメータを組み合わせる場合、あるいはパラメータ１）〜３）の印刷データ消費速度の変動条件となるパラメータが新たに生じた場合は、図１１に示すフローチャートに基づき実行間隔を決定すれば良い。つまり、スケジューラタスク３０７は、新たなパラメータも含めて複数のパラメータの組み合わせから平均的な印刷データ消費速度を見積もる（Ｓ１００１）。スケジューラタスク３０７は、その見積もり結果（見積もられた印刷データ所費速度）に基づき、スケジューリング処理の実行間隔を決定する（Ｓ１００２）。
【００９９】
このように、スケジューリング処理の実行間隔を決定するためのテーブルは、印刷データ消費速度の見積もり演算によって作成される。このため、パラメータ１）〜３）をはじめとする印刷データ消費速度の変動要因となり得るパラメータ毎に見積もり演算に要する情報を保持しておけばよい。そうすることで、多種多様なパラメータの組み合わせに対して図１１のフローチャートを実行し、スケジューリング処理の実行間隔を決定することもできる。この方式であれば、多種多様なパラメータの組み合わせに対して、図１０のようなテーブルを保持する必要がないため、ＲＯＭ等の記憶領域の削減につながる。
【０１００】
次に、パラメータ４）について説明する。
【０１０１】
印刷データのスプール量がしきい値付近にない場合は、付近にある場合よりも実行間隔を短く設定することでオーバーヘッドを削減できる。印刷データスプール量が極端に少ない場合、しきい値を超過するまでに時間を要するため、実行間隔を長めに設定する。逆にスプール量がしきい値を十分に上回っている状況も、しきい値付近にある状況に比べて印刷データ生成処理の休止時間を多く取ることが可能であるため、実行間隔を長めに設定できる。しきい値付近にある場合は、スプール状況をシビアに監視しなければならないため、相対的に短めに設定する。つまり、この場合は、図１０（ｅ）に示すような相対的な関係で実行間隔を設定する。この設定により、状況に応じたオーバーヘッドの削減が可能となる。
【０１０２】
次に、パラメータ５）について説明する。
【０１０３】
例えば、ＪＰＥＧ画像を受信して、回転させて印刷する場合、ＪＰＥＧの性質上、画像ファイルを１ファイル分プリンタ本体にスプールしてからでしか印刷できない。このように１ファイル分スプールすべき条件の場合は、現在のページに対するデータ受信に対しては実行間隔を長めに設定することで、オーバーヘッドを抑えられる。つまり、この場合は例えば、図１０（ｆ）に示すような相対的な関係で実行間隔を設定することが望ましい。更には、１ページ分受信終了するまで印刷データのスプール量を確認しないようにすることも有効であろう。
【０１０４】
以上により、状況に応じてスケジュール処理の実行間隔を設定することで、印刷データのスプール量の確認頻度（確認周期）を適度に調整することが可能となる。これにより、通信タスク３０２と画像処理タスク３０３のスケジューリングに伴うオーバーヘッドを削減することが可能となる。
【０１０５】
尚、しきい値は、印刷設定等で定まる平均的な印刷データの消費速度に基づき決定すれば良い。印刷データ生成処理の休止可能時間をどの程度確保するかということである。例えば、印刷用紙として普通紙が選択された場合は、光沢紙のような写真印刷用途に比べ印刷速度が速い等の事情があれば、それらの条件を考慮することが望ましい。
【０１０６】
以上説明したように、実施形態１によれば、印刷データのスプール量（蓄積量）に基づき通信タスクと画像処理タスクの優先度を動的に変化させることで、状況に応じてスケジューリング処理の実行回数を動的に低減することができる。
【０１０７】
つまり、印刷データのスプール量に基づき、データ受信処理と印刷データ生成処理へのＣＰＵの割り当て状況を制御するシステムにおいて、良好な印刷データのスプール量の確認頻度を設定でき、その制御にかかるオーバーヘッドを削減することができる。
【０１０８】
＜実施形態２＞
実施形態２では、タスクの優先度は変えずに、通信タスク３０２と画像処理タスク３０３のバランスを取ることが可能な制御方式について説明する。
【０１０９】
近年、プリンタに組み込まれるソフトウェア規模は肥大化している。タスク優先度に関する設計は複雑さを増しており、動作に支障をきたさないように十分な分析を行うには多くの時間を要する。このため、これから述べる制御方式も有用である。
【０１１０】
この制御方式では、図６（ａ）のような、通信タスク３０２の優先度の方が画像処理タスク３０３の優先度よりも高いことが前提になる。
【０１１１】
この方式では、スケジューラタスク３０７が通信タスク３０２に対する受信バッファの残容量の内、所定量の書き込み許可を制御することで通信タスク３０２の処理状況を調整する。
【０１１２】
具体的には、画像処理タスク３０３がページデータの入力待ち、あるいは、印刷データのスプール量がしきい値を超過している場合に、スケジューラタスク３０７が通信タスク３０２に対して所定量の受信バッファを割り当てるようにする。
【０１１３】
画像処理タスク３０３がページデータの入力待ちの場合は、データを受信せざるを得ないため、通信タスク３０２に受信バッファを割り当てる。画像処理タスク３０３がページデータの入力待ちでなく、かつ印刷データスプール量がしきい値を超過している状況は、ページデータを先行受信させるために通信タスク３０２に受信バッファを割り当てる。
【０１１４】
そして、受信バッファを割り当てる「所定量」を、実施形態１と同様に、条件に基づき調整することで、スケジューリングに要するオーバーヘッドを抑えながらバランスをとることが可能となる。
【０１１５】
この制御方式において、スケジューラタスク３０７が通信タスク３０２に受信バッファを割り当てるか否かの判定は、次のイベント発生時になされる。
【０１１６】
イベント１）画像処理タスク３０３がページデータの入力データ待ち状態に遷移した時
イベント２）印刷データスプール量がしきい値を超過した時
イベント３）通信タスク３０２が受信バッファの割り当て待ち状態に遷移した時
そして、受信バッファに割り当てられた「所定量」のデータが受信されたことに応じて、スケジューリング処理が実行される。このようにすることで、印刷データのスプール量の確認タイミングは、実施形態１のように所定の時間間隔ではなく、受信バッファを割り当てる「所定量」によって調整されることになる。例えば、印刷速度が速い印刷条件では、上記「所定量」を少なく設定することで、スケジューリング処理の頻度を高くすることができ、印刷が停止してしまうことを防ぐことができる。逆に印刷速度が遅い印刷条件では、上記「所定量」を多く設定することで、スケジューリング処理を必要以上の実行してしまうことを防ぐことができる。
【０１１７】
まず、画像処理タスク３０３がページデータの入力待ちである場合は、次のように、受信バッファを割り当てる「所定量」を設定する。
【０１１８】
この場合では、データ受信処理を最優先し、かつある程度まとめてデータを受信する方が効率的であることは明らかであるため、印刷データのスプール量がしきい値を超過している際の「所定量」よりも多めに「所定量」を設定すると効果が見込める。あるいは、ＪＰＥＧ画像を回転させて印刷するような、画像ファイルを１ファイル分、プリンタ本体にスプールしてからでしか印刷できない場合おいては、「所定量」を１ファイル分のファイルサイズに設定すれば更なるオーバーヘッド削減につながる。
【０１１９】
次に、印刷データのスプール量がしきい値を超過している場合は、次のように「所定量」を設定する。
【０１２０】
実施形態１と同様に、スケジューラタスク３０７は、次のパラメータの少なくとも１つに基づき、受信バッファを割り当てる「所定量」を動的に変化させる。
【０１２１】
パラメータ１）印刷設定
パラメータ２）ページ内の印刷位置
パラメータ３）ページデータ形式
パラメータ４）印刷データスプール量
パラメータ５）データ受信中のページ番号
受信バッファを割り当てる「所定量」の設定にあたっての考え方は、実施形態１の実行間隔の設定と共通である。図１２のように、実施形態１で実行間隔を長く設定する場合においては「所定量」を多めに、実行間隔を短く設定する場合においては「所定量」を少なめにする。つまり、実施形態１で、印刷データのスプール量がしきい値を下回ったタイミングで速やかに優先度を見直さなければならない場合に対しては、「所定量」を少なめに設定することで、画像処理タスク３０３の休止時間を短くして対応する。
【０１２２】
少なめに設定された受信バッファに対するページデータの受信が完了したら、通信タスク３０２が受信バッファの割当待機状態に遷移したというイベントがスケジューラタスク３０７に通知され、再度、印刷データのスプール量の確認に移る。このように「所定量」の受信バッファ割当、「所定量」の受信バッファに対する受信、印刷データのスプール量の確認を繰り返すことで、実施形態１における実行間隔の調整に相当する制御が実現される。
【０１２３】
以上説明したように、実施形態２によれば、タスク優先度を変えることなく、状況に応じてスケジューリングに要するオーバーヘッドを抑えることができる。
【０１２４】
以上の実施形態によれば、データの受信と、当該データに対する所定の処理（印刷データの生成、バッファへの記憶、印刷データの送信等）を排他的に実行する場合に、当該受信または所定の処理の進捗状況（所定量の受信や、スプールされた印刷データの残量）に応じて、処理を切り替えるか判断する（判断処理）。そして、その判断の頻度を、当該所定の処理（印刷等）の速度に対応する処理条件（印刷設定等）で行う。そのため、上記判断を必要以上に実行することで処理のスループットが落ちてしまうことや、上記判断を行う頻度が少なく、上記所定の処理が実行できなくなってしまうことを防ぐことができる。
【０１２５】
尚、以上の実施形態では、ＣＰＵが、データの受信処理と画像処理が時間的に重複しないように、２つの処理を切り替えながら処理を実行していた。しかしこれに限らず、上記２つの処理の一部または全部を重複させて、並行して処理が実行される場合であってもよい。
【０１２６】
また、以上の実施形態では、処理対象のデータを外部装置から受信する例について説明したが、これに限らない。例えば、装置が備えるストレージからデータを読み出すことでデータを受信する場合であってもよいし、装置が備える読取装置により原稿が読み取られることで得られた画像データを受信する場合であってもよい。
【０１２７】
さらに、以上の実施形態では、１つのプロセッサがデータの受信と、当該データに対する処理を排他的に行う例について説明したが、これに限らない。例えば、複数のプロセッサがデータの受信と、当該データに対する処理を切り替えながら実行する場合であってもよい。この場合、例えば２つのプロセッサの一方がデータの受信を行っているときに、他方のプロセッサがデータに対する処理を行ってもよい。
【０１２８】
また、以上の実施形態では、画像データを順次受信し、画像データに基づく画像の印刷のための処理を順次実行する例を説明したが、これに限らず、各種のデータの受信、また各種の処理に適用することができる。例えば、テキストデータの一部を順次受信し、そのテキストデータの形式に応じて受信処理の待機時間（テキストに対する所定の処理を実行する時間）を設定してもよい。所定の処理としては、例えば表示画面への表示や、外部装置への送信、装置内部または外部のメモリへの記憶など、各種の処理を適用することができる。
【０１２９】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１３０】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015058652.tif 000003
【図２】
2015058652.tif 000004
【図３】
2015058652.tif 000005
【図４】
2015058652.tif 000006
【図５】
2015058652.tif 000007
【図６】
2015058652.tif 000008
【図７】
2015058652.tif 000009
【図８】
2015058652.tif 000010
【図９】
2015058652.tif 000011
【図１０】
2015058652.tif 000012
【図１１】
2015058652.tif 000013
【図１２】
2015058652.tif 000014