(57)【要約】【課題】  ２種類以上の画像データを受信した場合でも受信処理と画像処理の負荷を調整する。【解決手段】  処理対象のデータの一部を順次受信する。順次受信される一部のデータに所定の処理を順次実行する。受信したデータのデータフォーマットに基づいて、受信したデータに対する所定の処理に割り当てる処理時間を設定する。【選択図】  図６
2015058651.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータの一部を順次受信する受信手段と、
前記受信手段により順次受信される前記一部のデータに所定の処理を順次実行する実行手段と、
前記受信手段で受信したデータのデータフォーマットに基づいて、前記受信手段で受信したデータに対する前記実行手段による前記所定の処理に割り当てる処理時間を設定する設定手段と
を備えることを特徴とする処理装置。
【請求項２】
前記処理装置は、前記受信手段による前記受信と、前記実行手段による前記所定の処理の実行を切り替えることにより当該受信と当該所定の処理を実行し、
前記設定手段は、前記処理時間として、前記受信手段が一部のデータを受信してから前記受信手段が後続のデータの受信を開始するまでの待機時間を設定する
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
複数種類の異なるデータフォーマットの各データフォーマットで符号化されたデータを復号化するための復号化手段を更に備え、
前記復号化手段は、前記設定手段で設定された処理時間を利用して、前記受信手段により受信されたデータのデータフォーマットに対応する復号化方法で、当該データを復号する
ことを特徴とする請求項１または２に記載の処理装置。
【請求項４】
前記復号化手段におけるデータフォーマットに基づく復号化方法に従って前記復号化を実行する
ことを特徴とする請求項３に記載の処理装置。
【請求項５】
前記復号化手段は、ハードウェアによる復号化手段と、ソフトウェアによる復号化手段を含み、
前記設定手段は、前記データフォーマットが前記ハードウェアによる復号化の対象であるか、前記ソフトウェアによる復号化の対象であるかに応じて異なる処理時間を設定する
ことを特徴とする請求項３または４に記載の処理装置。
【請求項６】
処理対象のデータの一部を順次受信する受信工程と、
前記受信工程において受信されたデータのデータフォーマットに基づいて、前記実行工程において受信されたデータに対する所定の処理に割り当てる処理時間を設定する設定工程と、
前記設定工程において設定された処理時間に従って、前記受信工程において順次受信される前記一部のデータに前記所定の処理を順次実行する実行工程と、
を備えることを特徴とする処理方法。
【請求項７】
コンピュータを、請求項１乃至５のいずれか１項に記載の処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを受信して処理する技術に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ等の情報処理装置からなるホストが送信したデータを印刷する印刷装置は広く用いられており、ホストが送信するデータ形式も様々な種類のものが考案、実用化されている。印刷装置は、ホストから送信されたデータを、自身が備えるプリントエンジンに適した形式に変換した後に、プリントエンジンに供給し記録媒体に画像を印刷する（形成する）ように構成されている。
【０００３】
特許文献１では、印刷データの種類に応じて印刷速度を設定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１８３０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、通信処理と印刷処理の負荷をバランスする方法については記載されていない。すなわち、２種類以上の画像データを受信して印刷する印刷装置において、当該受信のための通信処理と印刷処理の両方にＣＰＵによる処理を割り当てる必要がある。しかしながら、画像データの種類によっては、印刷処理の大半がＣＰＵとは異なる専用のハードウェアで処理される場合がある。この場合、他の種類の画像データを処理する場合に比べて、ＣＰＵの処理負荷が低くなることがある。そのため、ＣＰＵに割り当てていた印刷処理で必要とされる時間が余ってしまい、その時間で、本来なら印刷中の次のページを受信する後続の通信処理が可能であるのに、その後続の通信処理を実行せずに、最適な処理とはならない場合がある。そのため、２種類以上の画像データを受信可能な装置において、印刷待機時間が発生し、トータルスループットが低下するという課題がある。
【０００６】
本発明は上記の課題に鑑みてなされたものであり、データの受信処理と当該データへの処理の処理時間を適切に割り当てることを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明による処理装置は以下の構成を備える。即ち、
処理対象のデータの一部を順次受信する受信手段と、
前記受信手段により順次受信される前記一部のデータに所定の処理を順次実行する実行手段と、
前記受信手段で受信したデータのデータフォーマットに基づいて、前記受信手段で受信したデータに対する前記実行手段による前記所定の処理に割り当てる処理時間を設定する設定手段と
を備える。
【発明の効果】
【０００８】
本発明によれば、データの受信処理と当該データへの処理の処理時間を適切に割り当てることができる。
【図面の簡単な説明】
【０００９】
【図１】ネットワークの構成を示す図である。
【図２】マルチファンクションプリンタの構成を示す図である。
【図３】マルチファンクションプリンタのソフトウェアの構成を示す図である。
【図４】ジョブデータの構成を示す図である。
【図５】通信タスクの処理を示すフローチャートである。
【図６】印刷タスクの処理を示すフローチャートである。
【図７】印刷ジョブ処理のシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１１】
図１はシステムのネットワーク構成を示す図である。
【００１２】
画像処理装置として機能するＭＦＰ（マルチファンクションプリンタ）１０１は、ルータ１０３と有線または無線で接続されている。ルータ１０３は、更に、パーソナルコンピュータ１０２（以下、ＰＣとする）やホームサーバ（不図示）と接続しており、ローカルエリアネットワーク（以下、ＬＡＮとする）を構成している。ＬＡＮに接続された機器にはそれぞれＩＰアドレスが割り当てられ、ＰＣ１０２は、ＭＦＰ１０１と相互に通信できる。
【００１３】
ユーザは、ＩＳＰ（インターネットサービスプロバイダ）と契約することで、ルータ１０３を介して、ＭＦＰ１０１やＰＣ１０２をインターネットに接続するための環境を整えることができる。
【００１４】
インターネットには、印刷アプリケーションや写真データを提供するサーバ１０４が接続されており、ユーザは、ＰＣ１０２によって、サーバ１０４から様々なサービス提供を受けることができる。ＭＦＰ１０１は、ルータ１０３を介してサーバ１０４と通信することができる。
【００１５】
ＬＡＮまたはインターネット上のサーバ１０４や、サーバ１０４で管理されるファイルを指定するためには、例えば、ＵＲＬを用いる。ＵＲＬによってネットワーク上の機器のロケーション情報を示すことができる。
【００１６】
図２はＭＦＰ１０１の構成を示す図である。
【００１７】
ＭＦＰ１０１は、操作部４０１、カードインターフェース４０２、読取部４０８、及び記録部４０９を有する。また、ＭＦＰ１０１は、ＣＰＵ４００、ＲＯＭ４０３、ＲＡＭ４０４、不揮発性ＲＡＭ４０５、表示部４０６、画像処理部４１０、ＪＰＥＧ復号部４１１、駆動部４１２、及びセンサ部４１３を有する。
【００１８】
画像処理部４１０は、画像データに対し、後述する画像処理を行うための機能部である。例えば、画像処理部４１０では、画像解析、変換特性の算出、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理が行われる。また、これらの画像処理がなされた画像データは、ＲＡＭ４０４に格納される。そして、ＲＡＭ４０４に格納された画像データが、記録部４０９で記録するために必要な所定のデータ量に達すると、記録部４０９による記録動作が実行される。
【００１９】
ＪＰＥＧ復号部４１１は、ＣＰＵ４００とは異なる、ＪＰＥＧ形式で圧縮されている画像データのデコード処理を実行可能な論理回路（ハードウェアデコーダ）である。そして、ＪＰＥＧ復号部４１１は、ＲＡＭ４０４からＪＰＥＧ形式で圧縮された画像データを読み込み、ＲＧＢの点順次の画像データに復号（デコード）してＲＡＭ４０４に書き出すことができる。
【００２０】
ＣＰＵ４００は、ＲＯＭ４０３に記憶されているプログラムを読み出して実行することで、ＭＦＰ１０１が備える各種構成要素の動作を制御して様々な機能を実現する。ＲＯＭ４０３は、ＭＦＰ１０１の制御命令プログラム等の各種プログラムやパラメータ等のデータを格納している。
【００２１】
また、本実施形態ではＭＦＰ１０１が、上述のカードインターフェース４０２や、後述する無線ネットワーク部４０７、有線ネットワーク部４１４を介して、外部のメモリカードやホストコンピュータ、ネットワーク上のサーバ等からＪＰＥＧ形式の画像データを受信することができる。このようにＪＰＥＧ形式の画像データが受信されると、ＣＰＵ４００は、ＪＰＥＧ復号部４１１に、当該画像データのデコードを実行させる。そして、ＣＰＵ４００は、ＪＰＥＧ復号部４１１にデコードさせた画像データを用いて、表示部４０６による画像の表示や、記録部４０９による画像の印刷媒体への記録等を行うことができる。
【００２２】
一方、ＪＰＥＧ形式とは異なる形式の画像データが受信された場合、ＣＰＵ４００がソフトウェア処理によってデコード処理を行う。このように、本実施形態では、処理対象の画像データの形式により、ＣＰＵがデコード処理を実行する場合と、デコード処理を実行しない場合がある。よって、画像データの形式により、ＣＰＵの画像処理に対する処理負荷が大きく異なる場合がある。そこで本実施形態では、処理対象の画像データの形式により、当該画像データの受信処理と画像処理に割り当てるＣＰＵの処理時間を異ならせる。詳細については後述する。
【００２３】
さらに、ＭＦＰ１０１は、無線ネットワーク部４０７と有線ネットワーク部４１４とを有する。無線ネットワーク部４０７は、ＩＥＥＥ８０２．１１ａ等の通信規格に対応する無線ＬＡＮアクセスポイントと無線通信が可能である。有線ネットワーク部４１４は、１００Ｂａｓｅ−ＴＸ等のより対線ケーブルを接続可能なＥｔｈｅｒｎｅｔ（登録商標）コネクタを備えている。ＭＦＰ１０１は、無線ネットワーク部４０７または有線ネットワーク部４１４を用いて、例えば、ＴＣＰ／ＩＰプロトコルを使用してＬＡＮに接続された他の機器と通信できる。
【００２４】
表示部４０６は、例えば、液晶等で構成される。また、操作部４０１と表示部４０６として、タッチパネルディスプレイを構成することができる。
【００２５】
読取部４０８は、原稿台（不図示）に載置されている原稿上の画像を光学的に読み取り、これを電気的な画像データに変換する。
【００２６】
記録部４０９は、例えば、インクジェット方式のインクジェットヘッド及び汎用ＩＣ等によって構成される。記録部４０９は、ＣＰＵ４００の制御によりＲＡＭ４０４に格納されている画像データを読み出し、記録媒体に画像を記録して出力する。
【００２７】
駆動部４１２は、読取部４０８や記録部４０９を構成する機構を駆動する。センサ部４１３は、読取部４０８の読取位置の検出や、記録部４０９における記録媒体の搬送制御のための記録媒体の位置等の各種検出を行う。
【００２８】
図３はＭＦＰ１０１の制御命令プログラムの構成を示す図である。
【００２９】
この制御命令プログラムは、ＲＯＭ４０３に格納されており、ＣＰＵ４００によって実行されることで、ＯＳ６０６を介して、ジョブ制御タスク６０１、通信タスク６０２、画像処理タスク６０３、及び印刷タスク６０４の各タスクが実現される。
【００３０】
ジョブ制御タスク６０１は、印刷ジョブ開始を指示する。通信タスク６０２は、無線ネットワーク部４０７と有線ネットワーク部４１４を制御し、ＴＣＰ／ＩＰやＨＴＴＰプロトコルに基づく通信を行う。
【００３１】
画像処理タスク６０３は、画像の復号、拡大縮小、色変換、ハーフトーニング等の画像処理を行う。画像の復号の内、ＪＰＥＧフォーマットの画像データの復号化処理は、ＪＰＥＧ復号部４１１を用いて実行する（ハードウェアデコード）ため、ＣＰＵ４００で逆離散コサイン変換やハフマン復号化処理を実行する必要がない。これにより、ＪＰＥＧフォーマットの画像データの場合はＣＰＵ４００の負荷が低い状態で画像処理を実行することができる。一方、ＪＰＥＧフォーマット以外のデータフォーマットの画像データの復号化処理は、ＣＰＵ４００を用いて実行する（ソフトウェアデコード）ため、データフォーマットによってはＣＰＵ４００で処理する時間が長くなる。
【００３２】
印刷タスク６０４は、画像処理タスク６０３の処理によって、ＲＡＭ４０４に格納された画像データを記録部４０９に入力し印刷を制御する。
【００３３】
これ以外に、操作部４０１、表示部４０６、駆動部４１２、及びセンサ部４１３を制御するためのタスク（不図示）がそれぞれ存在し、ＯＳ６０６は各タスクに設定された優先度に基づいて各タスクにＣＰＵ４００を割り当て実行させる。ＯＳ６０６からのサービスコールによりリソース状態が変更されると、ＯＳ６０６はその時点で実行可能状態のタスクの内、最も優先順位の高いタスクにＣＰＵ４００を割り当てる。
【００３４】
ＯＳ６０６のサービスコールは、タスクの起動、タスクの終了、タスクの待機処理等の各種処理が含まれている。タスクの待機処理が実行中のタスクから呼び出されると、ＯＳ６０６は一時的に呼び出したタスクを実行待機状態へ遷移させる。その他、同期や通信、メモリプール管理機能がＯＳ６０６のサービスコールには含まれる。
【００３５】
共通ライブラリ６０５は、これらのタスクから共通して呼び出されるプログラムであり、メモリの取得及びメモリ解放処理や、文字列処理等の各種処理を実現するプログラムが含まれる。
【００３６】
図４はジョブデータの構成を示す図である。
【００３７】
印刷ジョブのジョブデータは、一つのストリームからなる。先頭にジョブヘッダがあり、ジョブヘッダには、ジョブの名称やジョブに含まれる総ページ数が記述されている。ジョブヘッダの後には、１ページ目のページヘッダ（図中では、ページヘッダ（１）と表記）、及び１ページ目のページデータ（図中では、ページデータ（１）と表記）が続いている。１ページ目が終わると、２ページ目、３ページ目等と順次ジョブ終了まで、各ページのページヘッダとページデータが連続する。
【００３８】
ページヘッダには、ページ属性が記述されている。ページ属性には、用紙の種類（普通紙、光沢紙、マット紙等）、ページサイズ（ページデータに含まれる縦横のピクセル数）、ページデータのフォーマット種類、ページデータのバイト数等の情報が含まれる。フォーマット種類には、ＪＰＥＧ、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）の他、Ｐｒｉｎｔｅｒ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐが規定するＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔを指定できる。
【００３９】
ページデータには、フォーマット種類で指定された形式のデータが含まれる。
【００４０】
本実施形態では、印刷ジョブは５ページ分のデータが含まれている。以下では、一例として、１ページ目はＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔ、２ページ目はＪＰＥＧ、３ページ目はＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔ、４ページ目はＪＰＥＧ、５ページ目はＪＰＥＧの印刷ジョブ（データフォーマットが異なる２種類以上の画像データを含む印刷ジョブ）が入力された場合を説明する。ページ毎にフォーマット種類が異なるのは、ＪＰＥＧとＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔとでは圧縮の特性が異なるためである。ＪＰＥＧは自然画の圧縮効率に優れているが、非可逆圧縮形式であるため特に文字部の品位が低下することが多い。ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔはロスレス圧縮であり文字部の品位は高い。加えて、ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔは、自然画の圧縮率が悪い（データサイズが大きくなる）ことが多いが文字主体の文書であれば高い圧縮率である。そのため、ＰＣ１０２は、ページ毎に自然画が多いページはＪＰＥＧで、文字が多いページはＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔで圧縮することでページ毎に最適なフォーマットを選択することができる。
【００４１】
図５は通信タスク６０２の受信処理を示すフローチャートである。
【００４２】
このフローチャートは、ＣＰＵ４００がＲＯＭ４０３に記憶されている制御命令プログラムをＲＡＭ４０４にロードして実行することで実現される。
【００４３】
通信タスク６０２は、ジョブ制御タスク６０１からの指示で通信を開始する（Ｓ２０１）。このときに、受信済サイズを表わす変数等の一連の初期化処理を行う。
【００４４】
通信タスク６０２は、受信したバイト数（受信済サイズ）と通信タスク６０２で要求されるバイト数（要求サイズ）を比較して、要求サイズが受信済サイズ以上であるか否かを判定する（Ｓ２０２）。要求サイズが受信済サイズ以上である場合（Ｓ２０２でＹＥＳ）、要求バイト数が読み込まれていないので、Ｓ２０３へ遷移する。一方、要求サイズが受信済サイズ未満でない場合（Ｓ２０２でＮＯ）、つまり、要求バイト数が読み込まれている場合、処理を終了する（Ｓ２０８）。
【００４５】
次に、通信タスク６０２は、受信したジョブデータを書き込む受信メモリ領域がＲＡＭ４０４上に十分に確保されているかをチェックする（Ｓ２０３）。ここで、受信メモリのサイズは任意に設定可能であるが、１６キロバイトを一つのブロックとし、１０２４個のブロックを有するようにプログラムを構成する。この場合、全体で１６メガバイトの受信メモリ領域を有することとなる。受信メモリ領域の取得と解放はブロック単位で行うものとする。
【００４６】
通信タスク６０２は、チェックの結果に基づいて、受信メモリ領域が不足しているか否かを判定する（Ｓ２０４）。受信メモリ領域が不足し、空きブロックが取得できない場合（Ｓ２０４でＮＯ）、通信タスク６０２は、空きブロックが取得できるまで待機状態に移行する。待機状態に移行した場合は、画像処理タスク６０３が使用済みのブロックを解放することで、通信タスク６０２は待機状態から実行可能状態に復帰する。
【００４７】
尚、受信メモリ領域が不足しているか否かの判定は、例えば、受信メモリ領域の空き領域が所定サイズ（少なくとも要求サイズ）未満であるか否かで判定する。特に、受信メモリ領域の空き領域が所定サイズ未満である場合、受信メモリ領域が不足していると判定する。
【００４８】
次に、通信タスク６０２は、ジョブデータの受信処理を行い、無線ネットワーク部４０７や有線ネットワーク部４１４で受信したジョブデータを所定のプロトコル処理を行う。また、暗号化されている場合は、画像処理タスク６０３で、復号化処理を行った後で、受信メモリ領域に記憶する（Ｓ２０５）。
【００４９】
次に、通信タスク６０２は、受信対象のジョブデータの終端に達しているか否かを判定する（Ｓ２０６）。終端に達している場合（Ｓ２０６でＹＥＳ）、処理を終了する（Ｓ２０８）。一方、終端に達していない場合（Ｓ２０６でＮＯ）、つまり、受信するべきジョブデータがまだある場合、通信タスク６０２は、待機処理を実行する（Ｓ２０７）。待機処理における待機条件は、任意に設定可能であるが、ここでは、２５６キロバイト受信する毎に１００ミリ秒、３０ミリ秒、１０ミリ秒のいずれかの待機処理を実行するものとする。
【００５０】
待機条件を指定する待機時間変数ｔは、待機時間変数ｔが示す時間だけ、後続のデータの受信動作を待機する（受信動作に割り当てる処理時間を変更する）ように動作する。例えば、ｔ＝１００の場合には１００ミリ秒、ｔ＝３０の場合には３０ミリ秒、ｔ＝１０の場合には１０ミリ秒の待機処理を実行する。
【００５１】
尚、通信タスク６０２の優先度は、画像処理タスク６０３の優先度より高く設定されており、１６メガバイトの受信メモリ領域が一杯になるか、ジョブデータを終端まで受信し終わるまで画像処理タスク６０３を実行できなくなる場合がある。そのため、本実施形態では、待機処理を入れることで、画像処理タスク６０３にＣＰＵ４００を割り当てるようにしている。
【００５２】
ここでの待機処理は、通信タスク６０２がＯＳ６０６のサービスコールを呼び出し、待機時間が経過するまで待機状態になることである。待機時間が経過するまで、通信タスク６０２より優先度の低いタスク（画像処理タスク６０３を含む）が実行状態になり、そのタスク（例えば、画像処理タスク６０３）を実行することが可能となる。この結果として、通信タスク６０２の待機時間が長いほど、ある時間当たりに画像処理タスク６０３に割り当てられるＣＰＵ４００の処理時間は長くなる。処理が終了したら、Ｓ２０２へ遷移する。
【００５３】
図６は画像処理タスク６０３の復号化処理のフローチャートである。
【００５４】
このフローチャートは、ＣＰＵ４００がＲＯＭ４０３に記憶されている制御命令プログラムをＲＡＭ４０４にロードして実行することで実現される。
【００５５】
画像処理タスク６０３は、ジョブ制御タスク６０１からの指示で復号化処理を開始する（Ｓ７０１）。このときに印刷用紙サイズや用紙種別、符号化された画像データのフォーマット種類等のジョブ制御情報をジョブ制御タスク６０１から受け取る。
【００５６】
次に、画像処理タスク６０３は、対象となるフォーマット種類がＪＰＥＧであるか否かを判定する。ＪＰＥＧである場合（Ｓ７０２でＹＥＳ）、Ｓ７０９へ遷移する。一方、ＪＰＥＧでない場合（Ｓ７０２でＮＯ）、Ｓ７０３へ遷移する。
【００５７】
次に、画像処理タスク６０３は、対象となるフォーマット種類がＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔであるか否かを判定する（Ｓ７０３）。ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔである場合（Ｓ７０３でＹＥＳ）、Ｓ７０７へ遷移する。一方、ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔでない場合（Ｓ７０３でＮＯ）、Ｓ７０４へ遷移する。
【００５８】
次に、画像処理タスク６０３は、対象となるフォーマット種類がＰＮＧであるか否かを判定する（Ｓ７０４）。ＰＮＧである場合（Ｓ７０４でＹＥＳ）、Ｓ７０５へ遷移する。一方、ＰＮＧでない場合（Ｓ７０４でＮＯ）、復号化処理の対象のデータでないので、Ｓ７１５へ遷移し、処理を終了する。
【００５９】
対象となるフォーマット種類がＰＮＧである場合、画像処理タスク６０３は、待機時間変数ｔ＝１００ミリ秒に設定し、通信タスク６０２に通知する（Ｓ７０５）。その後、画像処理タスク６０３は、復号化処理の復号化方法をＰＮＧを復号するための復号化方法に設定する（Ｓ７０６）。ＰＮＧの復号化処理は、ＣＰＵ命令の集合である関数として定義されている。Ｓ７０６の処理後は、Ｓ７１１へ遷移する。
【００６０】
対象となるフォーマット種類がＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔである場合、画像処理タスク６０３は、待機時間変数ｔ＝３０ミリ秒にセットし、通信タスク６０２に通知する（Ｓ７０７）。その後、画像処理タスク６０３は、復号化処理の復号化方法をＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔを復号するための復号化方法に設定する（Ｓ７０８）。ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔの復号化処理は、ＣＰＵ命令の集合である関数として定義されている。Ｓ７０８の処理後は、Ｓ７１１へ遷移する。
【００６１】
対象となるフォーマット種類がＪＰＥＧである場合、画像処理タスク６０３は、待機時間変数ｔ＝１０ミリ秒にセットし、通信タスク６０２に通知する（Ｓ７０９）。その後、画像処理タスク６０３は、復号化処理の復号化方法をＪＰＥＧを復号するための復号化方法に設定する（Ｓ７１０）。ＪＰＥＧの復号化処理は、ＪＰＥＧ復号部４１１を制御する関数として定義されている。Ｓ７１０の処理後は、Ｓ７１１へ遷移する。
【００６２】
尚、上記のように、本実施形態では、処理対象の画像データのフォーマットの種類がＪＰＥＧである場合、ＪＰＥＧ復号部４１１においてデコード処理が実行される。そのため、画像データのフォーマットが上記のＰＷＧやＰＷＧ  Ｒａｓｔｅｒの場合に比べてＣＰＵの処理負荷が少ないことがある。よってＳ７０９では、画像処理のために割り当てる時間としての待機時間として、上記ＪＰＥＧ以外のフォーマットの場合よりも短いｔ＝１０ミリ秒をセットする。
【００６３】
次に、画像処理タスク６０３は、通信タスク６０２が受信した画像データが書き込まれている受信メモリ領域を取得する。この処理は、通信が途切れたり、データ受信が復号化処理より遅かったりする等、通信タスク６０２が受信した画像データが書き込まれている受信メモリ領域がないと取得に失敗する。尚、本実施形態では、受信メモリ領域の取得単位は１６キロバイトである。
【００６４】
次に、画像処理タスク６０３は、受信メモリ領域の取得に成功したか否かを判定する（Ｓ７１２）。受信メモリ領域の取得に失敗した場合（Ｓ７１２でＮＯ）、通信タスク６０２がジョブデータを受信することを待機するために、Ｓ７１１へ遷移する。一方、受信メモリ領域の取得に成功した場合（Ｓ７１２でＹＥＳ）、Ｓ７１３へ遷移する。
【００６５】
次に、画像処理タスク６０３は、Ｓ７１３において、受信メモリ領域に含まれている符号化画像データを復号する。復号化方法は、Ｓ７０６、Ｓ７０８、またはＳ７１０で設定された方法であり、ＰＮＧ、ＰＷＧ  Ｒａｓｔｅｒ  ＦｏｒｍａｔまたはＪＰＥＧのいずれかの方法に対応した関数を呼び出す。復号化処理が終了し、所定のライン数のＲＧＢデータが得られたら、画像処理タスク６０３は、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理を実行する。
尚、Ｓ７１０において復号化方法がＪＰＥＧに設定された場合、Ｓ７１３でＣＰＵ４００は、ＪＰＥＧ符号部４１１を制御して、ＪＰＥＧ画像のデコード処理を実行させる。また、ＪＰＥＧ符号部４１１がデコード処理の全てを実行する場合に限らず、例えば、逆離散コサイン変換のみをＪＰＥＧ符号部４１１で実行し、ハフマン復号化等の他の処理についてはＣＰＵ４００で実行してもよい。
【００６６】
次に、画像処理タスク６０３は、復号化済みのライン数を数えてページの終端まで復号が終了したか否かを判定する。ページの終端まで復号が終了した場合（Ｓ７１４でＹＥＳ）、処理を終了する。一方、ページの終端まで復号が終了していない場合（Ｓ７１４でＮＯ）、つまり、次のラインが存在する場合、Ｓ７１１へ遷移する。
【００６７】
図７は印刷ジョブ処理のシーケンス図である。
【００６８】
ジョブ制御タスク６０１は、通信タスク６０２と画像処理タスク６０３に印刷ジョブの開始を通知する（５０１）。
【００６９】
ジョブ制御タスク６０１からジョブ開始が通知されると、通信タスク６０２は、ジョブデータの受信を開始する。ジョブデータの受信の開始時点で、待機時間変数ｔは１０に初期化されているものとする。
【００７０】
ジョブ制御タスク６０１からジョブ開始が通知されると、画像処理タスク６０３は、通信タスク６０２が受信したジョブデータを読み始める。受信バッファ領域にジョブヘッダ、ページヘッダ（１）が書き込まれ、画像処理タスク６０３によって読みだされると、１ページ目の印刷設定が確定される。ページヘッダ（１）によって画像データのフォーマット種類が確定すると、画像処理タスク６０３は待機時間変数ｔを変更する。ＰＮＧの場合は１００を、ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔの場合は３０を、ＪＰＥＧの場合は１０に変更する。本実施形態では、１ページ目のデータフォーマットはＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔであるので、画像処理タスク６０３は、待機時間変数ｔに「３０」を書き込む（５２０）。
【００７１】
受信バッファ領域にページデータ（１）が所定のライン数分書き込まれると、画像処理タスク６０３は、所定の画像処理を実行し、印刷タスク６０４に給紙命令及び印刷データがそろい、印刷可能であることを通知する（５１０）。
【００７２】
通信タスク６０２は、一定バイト数のデータを読み込んだ毎に待機処理を実行する。１ページ目の処理が完了したら、画像処理タスク６０３は、１ページ目のページエンドを印刷タスク６０４へ送信する（５１１）。
【００７３】
通信タスク６０２は、受信メモリ領域に空きがある間は、画像処理タスク６０３が処理しているページ数にかかわらず、ジョブデータの受信処理を継続する。
【００７４】
画像処理タスク６０３は、１ページ目のページエンドを送信すると、２ページ目のページヘッダ（２）を受信メモリ領域から取得し、２ページ目の印刷設定を確定する。
【００７５】
本実施形態では、２ページ目のデータフォーマットはＪＰＥＧであるので、画像処理タスク６０３は、待機時間変数ｔに「１０」を書き込む（５２１）。その後、画像処理タスク６０３は、２ページ目のページスタートを印刷タスク６０４へ送信する（５１２）。
【００７６】
待機時間変数ｔが書き変わったことにより、２５６キロバイト読み込み毎の待機時間が３０ミリ秒から１０ミリ秒になる。このため、ある一定時間（例えば１秒間）における通信タスク６０２に割り当てられるＣＰＵ時間は結果的により長くなる。印刷タスク６０４に割り当てられるＣＰＵ時間は相対的に短くなるが、ＪＰＥＧ復号化処理はＪＰＥＧ復号部４１１により実行されるため、ＪＰＥＧ復号化処理に要する時間は通信タスク６０２の待機時間が１０ミリ秒になっても記録部４０９の動作より十分に高速である。
【００７７】
通信タスク６０２は、受信メモリ領域に空きがある間は、画像処理タスク６０３が処理しているページ数にかかわらず、ジョブデータの受信処理を継続する。そのため、本実施形態において、３ページスタートまでに３ページ目、４ページ目のデータを受信完了することが可能である。尚、通信完了のタイミングは、ネットワーク状況やＰＣ１０２の負荷状況によって異なる。また、ジョブデータのデータサイズは、印刷設定や、ジョブデータに含まれる画像や描画命令によってかわる。データサイズが増加すれば通信に要する時間は増加する。
【００７８】
画像処理タスク６０３は、受信メモリ領域からページデータを読み出しつつ画像処理を実行していくので、通信処理が間に合わず受信メモリ領域にページデータが受信されていない状態になったら通信処理が受信するまで待機状態に入り、記録部４０９は停止する。
【００７９】
２ページ目の処理が完了したら、画像処理タスク６０３は、印刷タスク６０４に、２ページ目のページエンドを送信する（５１３）。画像処理タスク６０３は、２ページ目のページエンドを送信すると、３ページ目のページヘッダ（３）を受信メモリ領域から取得し、３ページ目の印刷設定を確定する。
【００８０】
本実施形態では、３ページ目のデータフォーマットはＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔであるので、画像処理タスク６０３は、待機時間変数ｔに「３０」を書き込む（５２２）。画像処理タスク６０３は、３ページ目のページスタートを印刷タスク６０４へ送信する（５１４）。
【００８１】
待機時間変数ｔが３０に書き変わったことにより、通信タスク６０２は、２５６キロバイト読み込み毎の待機時間を３０ミリ秒に設定する。
【００８２】
ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔについての復号は、ＪＰＥＧ復号部４１１を利用できないため、画像処理タスク６０３は、ＣＰＵ４００を用いて行う。そのため、通信タスク６０２がより多くのＣＰＵ時間を占めてしまう状態では記録部４０９の動作速度に復号が間に合わない可能性が高い。しかし、待機時間を１０ミリ秒から３０ミリ秒にすることで復号化処理により多くのＣＰＵ時間を費やすことができる。
【００８３】
以降、同様にして、４ページ目について、ページスタートの送信（５１４）、待機時間変数ｔへの書込（５２３）、ページエンドの送信（５１７）、５ページ目について、ページスタートの送信（５１８）、待機時間変数ｔへの書込（５２４）、ページエンドの送信（５１９）が行われる。
【００８４】
そして、画像処理タスク６０３は、印刷ジョブの終了をジョブ制御タスク６０１へ通知する。
【００８５】
以上説明したように、本実施形態によれば、画像処理タスクが処理中の画像フォーマットによって通信タスクに割り当てるＣＰＵ時間を調整することができる。これにより、ハードウェアデコーダで処理可能なＪＰＥＧデータを画像処理タスクが処理している間は、通信タスクによりＣＰＵ時間を割り当てられるようになる。また、ソフトウェアデコーダで処理するＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔを画像処理タスクが処理している間は、画像処理タスクにより多くのＣＰＵ時間を割り当てられるようになる。また、ＰＷＧ  Ｒａｓｔｅｒ  Ｆｏｒｍａｔより複雑なデコード処理が必要なＰＮＧの場合は、待機時間変数ｔ＝１００に設定することで、さらに多くのＣＰＵ時間を画像処理タスクに割り当てることができる。
【００８６】
このため、複数種類の画像データを受信するようなジョブである場合でも、効率的に通信タスクにＣＰＵ時間を割り当てることができる。結果として、トータルスループットを向上することができる。
【００８７】
尚、以上の実施形態では、ページ毎に画像のフォーマットを異ならせることが可能なジョブを受信する場合について説明したが、これに限らず、１ジョブに対応する全ページで共通のフォーマットが用いられるジョブであってもよい。また、以上の実施形態では、ページ毎にフォーマットに対応する待機時間を設定する例について説明したが、例えば、２ページ目のフォーマットが１ページ目のフォーマットと共通であれば、２ページ目についての待機時間の設定処理は行わずに、１ページ目で既に設定されている待機時間を用いてもよい。特に、上記のように全ページで共通のフォーマットであるジョブの場合、１ページ目に対応する１回の待機時間設定処理を行うことで、全ページに対応する待機時間を設定することもできる。
【００８８】
また、以上の実施形態では、ＣＰＵが、データの受信処理と画像処理が時間的に重複しないように、２つの処理を切り替えながら処理を実行していた。しかし、これに限らず、上記２つの処理の一部または全部を重複させて、並行して処理が実行される場合であってもよい。
【００８９】
さらに、以上の実施形態では、画像データを順次受信し、画像データに基づく画像の印刷のための処理を順次実行する例を説明したが、これに限らず、各種のデータの受信、また各種の処理に適用することができる。例えば、テキストデータの一部を順次受信し、そのテキストデータの形式に応じて受信処理の待機時間（テキストに対する所定の処理を実行する時間）を設定してもよい。所定の処理としては、例えば表示画面への表示や、外部装置への送信、装置内部または外部のメモリへの記憶など、各種の処理を適用することができる。
【００９０】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015058651.tif 000003
【図２】
2015058651.tif 000004
【図３】
2015058651.tif 000005
【図４】
2015058651.tif 000006
【図５】
2015058651.tif 000007
【図６】
2015058651.tif 000008
【図７】
2015058651.tif 000009