(57)【要約】【課題】画像データの変換処理の効率を向上した画像形成装置、画像データ変換方法を提供する。【解決手段】画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置において、画像データの変換処理を行う画像データ変換処理手段と、前記画像データを保持する画像データ保持手段と、前記画像データ保持手段に画像データを格納する画像データ管理手段とを有し、前記画像データ変換処理手段が、前記画像データ保持手段に格納された画像データを変換する一方、前記画像データ管理手段は、前記画像データ変換処理手段で次に変換される画像データを前記画像データ保持手段に格納する。【選択図】図７
2004166222.tif 000002
【特許請求の範囲】
【請求項１】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置において、
画像データの変換処理を行う画像データ変換処理手段と、
前記画像データを保持する画像データ保持手段と、
前記画像データ保持手段に画像データを格納する画像データ管理手段とを有し、
前記画像データ変換処理手段が、前記画像データ保持手段に格納された画像データを変換する一方、前記画像データ管理手段は、前記画像データ変換処理手段で次に変換される画像データを前記画像データ保持手段に格納することを特徴とする画像形成装置。
【請求項２】
前記画像データ管理手段は、
前記画像データ変換処理手段が、画像データを変換して前記画像データ保持手段に格納する一方、
前記画像データ保持手段に格納された画像データを、前記画像データ保持手段から退避することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記画像データ保持手段は、
画像データを格納する領域を複数有することを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記画像データ管理手段は、
前記領域に画像データを格納したのち、他の領域で画像データが格納されていない領域があれば、さらにその領域に画像データを格納することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記画像データを記憶する外部記憶手段を有し、
前記画像データ管理手段は、前記外部記憶手段に記憶されている画像データを、前記画像データ保持手段に格納するとともに、変換された画像データを前記画像データ保持手段から前記外部記憶手段に退避することを特徴とする請求項１又は２に記載の画像形成装置。
【請求項６】
前記画像データ変換処理手段は、画像データの変換を行う画像データ変換手段と、
該画像データ変換手段を制御する画像データ変換制御手段と
を有することを特徴とする請求項１から５のいずれか１項に記載の画像形成装置。
【請求項７】
前記画像データ変換手段を複数有することを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記複数の画像データ変換手段のうち、少なくとも１つは前記画像データの変換をハードウェアで行い、少なくとも１つは前記画像データの変換をソフトウェアで行うことを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記複数の画像データ変換手段の中から、前記画像データを変換する画像データ変換手段を選択する変換管理手段をさらに有することを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記変換管理手段は、前記画像データのサイズ又はデータ形式に基づき、前記複数の画像データ変換手段の中から、前記画像データを変換する画像データ変換手段を選択することを特徴とする請求項９に記載の画像形成装置。
【請求項１１】
前記変換管理手段は、前記画像データが変換されるデータ形式に基づき、前記複数の画像データ変換手段の中から、前記画像データを変換する画像データ変換手段を選択することを特徴とする請求項９に記載の画像形成装置。
【請求項１２】
前記変換管理手段は、前記複数の画像データ変換手段が変換する画像データの順番を、前記画像データ変換手段ごとに設けられたキューを用いて管理することを特徴とする請求項８に記載の画像形成装置。
【請求項１３】
前記変換管理手段は、画像データを複数の種類に予め分類し、その種類に応じて前記画像データが変換される順番を、既にキューに管理されている画像データの順番に割り込ませることを特徴とする請求項１２に記載の画像形成装置。
【請求項１４】
前記割り込ませる順番は、前記キューに管理されている画像データのサイズ又はデータ形式に基づいて定められることを特徴とする請求項１３に記載の画像形成装置。
【請求項１５】
前記割り込ませる順番は、前記キューに管理されている画像データが変換されるデータ形式に基づいて定められることを特徴とする請求項１３に記載の画像形成装置。
【請求項１６】
前記変換管理手段は、一の種類に属する画像データがキューにおいて管理される順番を、１つ以上連続させた順番で管理することを特徴とする請求項１２に記載の画像形成装置。
【請求項１７】
前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他のキューで管理されている画像データのサイズ又はデータ形式に基づき、該画像データの順番を、前記一のキューに並び替えて管理することを特徴とする請求項１２に記載の画像形成装置。
【請求項１８】
前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他のキューで管理されている画像データが変換されるデータ形式に基づき、該画像データの順番を、前記一のキューに並び替えて管理することを特徴とする請求項１２に記載の画像形成装置。
【請求項１９】
前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他方のキューの先頭で管理されている画像データの順番を、前記一のキューの最後尾に並び替えて管理することを特徴とする請求項１２に記載の画像形成装置。
【請求項２０】
前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他方のキューの最後尾で管理されている画像データの順番を、前記一のキューの最後尾に並び替えて管理することを特徴とする請求項１２に記載の画像形成装置。
【請求項２１】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換方法において、
変換する画像データを格納する画像データ保持部に格納した画像データを変換する画像データ変換段階と、
画像データ変換段階と平行して、次に変換する画像データを前記画像データ保持部に格納する画像データ格納段階と
を有することを特徴とする画像データ変換方法。
【請求項２２】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換方法において、
変換した画像データを格納する画像データ保持部に変換した画像データを格納する画像データ格納段階と、
格納した画像データを前記画像データ保持部から退避する画像データ待避段階と
を有することを特徴とする画像データ変換方法。
【請求項２３】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換方法において、
前記画像データを変換する際に、画像データの変換処理を行う複数の画像データ変換部の中から前記画像データを変換する画像データ変換処理部を選択する選択段階と、
選択された画像データ変換部で前記画像データを変換する画像データ変換段階と
を有することを特徴とする画像データ変換方法。
【請求項２４】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換制御方法において、
前記画像データを変換する際に、画像データの変換処理を行う複数の画像データ変換部のそれぞれに対応するキューで前記画像データの順番を管理する順番管理段階と、
前記キューで管理されている前記画像データの順番の並び替えを行う並び替え段階と
を有することを特徴とする画像データ変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像形成装置、画像データ変換方法に関する。
【０００２】
【従来の技術】
近年、プリンタ、コピー、ファクシミリおよびスキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、融合機という）が知られるようになった。この融合機は、１つの筐体内に表示部、印刷部および撮像部などを設けると共に、プリンタ、コピー、ファクシミリおよびスキャナにそれぞれ対応する４種類のソフトウェアを設け、そのソフトウェアを切り替えることより、プリンタ、コピー、ファクシミリおよびスキャナとして動作させるものである。
【０００３】
このように、融合機は、異なる種類の画像データを扱うために、画像データのデータ形式の変換を行ったり、画像形成装置のハードウェア資源を節約するために、画像データの圧縮・伸長を行ったりしている。
【０００４】
これらの変換は、演算速度の向上や信号処理を行うことが可能となったＣＰＵ（Central Processing Unit）などの発達によりソフトウェアである変換ライブラリで行われたりしている。また、パソコンなどでは、専用のハードウェアを用いて変換処理を行うものもある。
【０００５】
以下、圧縮・伸長も変換と表現して、変換処理に関する従来例を説明する。
【０００６】
図４１は、従来例の処理を示すシーケンス図である。このシーケンス図は、ハードディスクと、画像データ管理部と、画像データ変換制御部と、画像データ変換部との間における処理を示したものである。
【０００７】
以下、シーケンス図の説明をする。まず最初に、このシーケンス図が示す処理の概要を説明しておく。この処理は、ハードディスクに記憶された画像データを所定の単位で読み込み、変換し、変換された画像データをハードディスクに書き込むという一連の処理を繰り返し行っている処理である。
【０００８】
次に、詳細を説明する。最初に画像データ管理部は、ステップＳ１、ステップＳ２で、ハードディスクから画像データを読み出し、メモリ領域Ｓに読み出した画像データを格納する。
【０００９】
次に、画像データ管理部は、ステップＳ３で、画像データ変換制御部に、メモリ領域Ｓに格納された画像データを変換し、その変換した画像データをメモリ領域Ｄに格納するように要求する。
【００１０】
要求を受けた画像データ変換制御部は、画像データ変換部に対し、ステップＳ４で、メモリ領域Ｓに格納されている画像データを変換するように要求する。それに対し、画像データ変換部は、画像データの変換を行い、その変換が終了すると、ステップＳ２２で、画像データ変換制御部に対し、画像データの変換が終了したことを通知する。
【００１１】
通知を受けた画像データ変換制御部は、ステップＳ６で、画像データ管理部に対し、画像データの変換が終了したことを通知する。そして、画像データ管理部は、変換されてメモリ領域Ｄに格納された画像データを、ステップＳ７、ステップＳ８でハードディスクに退避する。
【００１２】
次に、画像データ管理部は、ステップＳ９と、ステップＳ１０とで、再びハードディスクから画像データを読み出し、メモリ領域Ｓに読み出した画像データを格納する。そして、画像データ管理部は、ステップＳ１１で、画像データ変換制御部に、先ほどと同様、メモリ領域Ｓに格納された画像データを変換し、その変換した画像データをメモリ領域Ｄに格納するように要求する。
【００１３】
要求を受けた画像データ変換制御部は、画像データ変換部に対し、ステップＳ１２で、メモリ領域Ｓに格納されている画像データを変換するように要求する。
【００１４】
このようにして、ステップＳ１２以降もハードディスクに記録された画像データを読み込み、変換し、変換された画像データをハードディスクに書き込むという一連の処理が引き続き行われる。
【００１５】
【発明が解決しようとする課題】
しかしながら、上記従来例では、画像データ変換部が変換処理を行っている間に、変換終了待ちが発生する。また、画像データ管理部がハードディスクへ読み書きを行っている間に、画像データ準備待ちが発生する。
【００１６】
また、演算速度の向上や信号処理を行うことが可能となったＣＰＵを用いたとしても、ＣＰＵは、変換処理だけではなく、他の膨大な処理も行うため、変換処理時間が安定しない。特に変換処理は、多くの計算が行われるため、このことが顕著である。そのため、ファクシミリやコピーなどの比較的リアルタイム性が求められる処理では、ＣＰＵの負荷が高まり、生産性が低下することが多い。
【００１７】
さらに、専用のハードウェアを使用したとしても、処理によっては、ＣＰＵに余裕がある場合もある。特に、画像形成装置はパソコンと異なり、画像処理が重要な処理であるため、ＣＰＵに余裕がある場合は、画像形成装置全体としてフル稼働していないといえ、生産性がよいとはいえない。
【００１８】
その結果、最近の画像形成装置は、毎分１００枚以上の排紙が可能であるにもかかわらず、その機能が十分に生かすことができなかった。
【００１９】
このように、従来の技術では、画像データの変換処理の効率が良いとは言えなかった。
【００２０】
本発明は、このような問題点に鑑み、画像データの変換処理の効率を向上した画像形成装置、画像データ変換方法を提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置において、画像データの変換処理を行う画像データ変換処理手段と、前記画像データを保持する画像データ保持手段と、前記画像データ保持手段に画像データを格納する画像データ管理手段とを有し、前記画像データ変換処理手段が、前記画像データ保持手段に格納された画像データを変換する一方、前記画像データ管理手段は、前記画像データ変換処理手段で次に変換される画像データを前記画像データ保持手段に格納することを特徴とする。
【００２２】
また、上記課題を解決するために、本発明は、前記画像データ管理手段は、前記画像データ変換処理手段が、画像データを変換して前記画像データ保持手段に格納する一方、前記画像データ保持手段に格納された画像データを、前記画像データ保持手段から退避することを特徴とする。
【００２３】
また、上記課題を解決するために、本発明は、前記画像データ保持手段は、画像データを格納する領域を複数有することを特徴とする。
【００２４】
また、上記課題を解決するために、本発明は、前記画像データ管理手段は、前記領域に画像データを格納したのち、他の領域で画像データが格納されていない領域があれば、さらにその領域に画像データを格納することを特徴とする。
【００２５】
また、上記課題を解決するために、本発明は、前記画像データを記憶する外部記憶手段を有し、前記画像データ管理手段は、前記外部記憶手段に記憶されている画像データを、前記画像データ保持手段に格納するとともに、変換された画像データを前記画像データ保持手段から前記外部記憶手段に退避することを特徴とする。
【００２６】
また、上記課題を解決するために、本発明は、前記画像データ変換処理手段は、画像データの変換を行う画像データ変換手段と、該画像データ変換手段を制御する画像データ変換制御手段とを有することを特徴とする。
【００２７】
また、上記課題を解決するために、本発明は、前記画像データ変換手段を複数有することを特徴とする。
【００２８】
また、上記課題を解決するために、本発明は、前記複数の画像データ変換手段のうち、少なくとも１つは前記画像データの変換をハードウェアで行い、少なくとも１つは前記画像データの変換をソフトウェアで行うことを特徴とする。
【００２９】
また、上記課題を解決するために、本発明は、前記複数の画像データ変換手段の中から、前記画像データを変換する画像データ変換手段を選択する変換管理手段をさらに有することを特徴とする請求項８に記載の画像形成装置。
【００３０】
また、上記課題を解決するために、本発明は、前記変換管理手段は、前記画像データのサイズ又はデータ形式に基づき、前記複数の画像データ変換手段の中から、前記画像データを変換する画像データ変換手段を選択することを特徴とする。
【００３１】
また、上記課題を解決するために、本発明は、前記変換管理手段は、前記画像データが変換されるデータ形式に基づき、前記複数の画像データ変換手段の中から、前記画像データを変換する画像データ変換手段を選択することを特徴とする。
【００３２】
また、上記課題を解決するために、本発明は、前記変換管理手段は、前記複数の画像データ変換手段が変換する画像データの順番を、前記画像データ変換手段ごとに設けられたキューを用いて管理することを特徴とする。
【００３３】
また、上記課題を解決するために、本発明は、前記変換管理手段は、画像データを複数の種類に予め分類し、その種類に応じて前記画像データが変換される順番を、既にキューに管理されている画像データの順番に割り込ませることを特徴とする。
【００３４】
また、上記課題を解決するために、本発明は、前記割り込ませる順番は、前記キューに管理されている画像データのサイズ又はデータ形式に基づいて定められることを特徴とする。
【００３５】
また、上記課題を解決するために、本発明は、前記割り込ませる順番は、前記キューに管理されている画像データが変換されるデータ形式に基づいて定められることを特徴とする。
【００３６】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一の種類に属する画像データがキューにおいて管理される順番を、１つ以上連続させた順番で管理することを特徴とする。
【００３７】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他のキューで管理されている画像データのサイズ又はデータ形式に基づき、該画像データの順番を、前記一のキューに並び替えて管理することを特徴とする。
【００３８】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他のキューで管理されている画像データが変換されるデータ形式に基づき、該画像データの順番を、前記一のキューに並び替えて管理することを特徴とする。
【００３９】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他方のキューの先頭で管理されている画像データの順番を、前記一のキューの最後尾に並び替えて管理することを特徴とする。
【００４０】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他方のキューの最後尾で管理されている画像データの順番を、前記一のキューの最後尾に並び替えて管理することを特徴とする。
【００４１】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換方法において、変換する画像データを格納する画像データ保持部に格納した画像データを変換する画像データ変換段階と、画像データ変換段階と平行して、次に変換する画像データを前記画像データ保持部に格納する画像データ格納段階とを有することを特徴とする。
【００４２】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換方法において、変換した画像データを格納する画像データ保持部に変換した画像データを格納する画像データ格納段階と、格納した画像データを前記画像データ保持部から退避する画像データ待避段階とを有することを特徴とする。
【００４３】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換方法において、前記画像データを変換する際に、画像データの変換処理を行う複数の画像データ変換部の中から前記画像データを変換する画像データ変換処理部を選択する選択段階と、選択された画像データ変換部で前記画像データを変換する画像データ変換段階とを有することを特徴とする。
【００４４】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行うプログラムとを有する画像形成装置の画像データ変換制御方法において、前記画像データを変換する際に、画像データの変換処理を行う複数の画像データ変換部のそれぞれに対応するキューで前記画像データの順番を管理する順番管理段階と、前記キューで管理されている前記画像データの順番の並び替えを行う並び替え段階とを有することを特徴とする。
【００４５】
以上のように、本発明によれば、画像データの変換処理の効率を向上した画像形成装置、画像データ変換方法が得られる。
【００４６】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。なお、これから行う説明において、変換あるいは符号化された画像データも特に必要の無い限り画像データと表現する。また、画像データの符号化、復号化など、画像データに何らかの処理を施す処理も画像データの変換と表現する。
【００４７】
図１は、本発明による画像形成装置である融合機の一実施例の構成図を示している。融合機１は、ソフトウェア群２と、融合機起動部３と、ハードウェア資源４とを含むように構成される。
【００４８】
融合機起動部３は融合機１の電源投入時に最初に実行され、アプリケーション層５およびプラットホーム層６を起動する。例えば融合機起動部３は、アプリケーション層５およびプラットホーム層６のプログラムを、外部記憶手段に対応するハードディスク装置（以下、ＨＤＤと記す）などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源４は、スキャナ１１と、プロッタ１２と、画像データ変換手段に対応するＭＬＢ４３と、ＡＤＦ（Auto Document Feeder）などからなるその他のハードウェアリソース１３とを含む。
【００４９】
また、ソフトウェア群２は、ＵＮＩＸ（登録商標）などのオペレーティングシステム（以下、ＯＳと記す）上に起動されているアプリケーション層５とプラットホーム層６とを含む。アプリケーション層５は、プリンタ、コピー、ファックスおよびスキャナなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【００５０】
アプリケーション層５は、プリンタ用のアプリケーションであるプリンタアプリ２１と、コピー用アプリケーションであるコピーアプリ２２と、ファックス用アプリケーションであるファックスアプリ２３と、スキャナ用アプリケーションであるスキャナアプリ２４とを含む。
【００５１】
また、プラットホーム層６は、アプリケーション層５からの処理要求を解釈してハードウェア資源４の獲得要求を発生するコントロールサービス層９と、１つ以上のハードウェア資源４の管理を行ってコントロールサービス層９からの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭと記す）３９と、ＳＲＭ３９からの獲得要求に応じてハードウェア資源４の管理を行うハンドラ層１０とを含む。
【００５２】
コントロールサービス層９は、ネットワークコントロールサービス（以下、ＮＣＳと記す）３１、デリバリーコントロールサービス（以下、ＤＣＳと記す）３２、オペレーションパネルコントロールサービス（以下、ＯＣＳと記す）３３、ファックスコントロールサービス（以下、ＦＣＳと記す）３４、エンジンコントロールサービス（以下、ＥＣＳと記す）３５、メモリコントロールサービス（以下、ＭＣＳと記す）３６、ユーザインフォメーションコントロールサービス（以下、ＵＣＳと記す）３７、システムコントロールサービス（以下、ＳＣＳと記す）３８など、一つ以上のサービスモジュールを含むように構成されている。
【００５３】
なお、プラットホーム層６は予め定義されている関数により、アプリケーション層５からの処理要求を受信可能とするＡＰＩ５３を有するように構成されている。ＯＳは、アプリケーション層５およびプラットホーム層６の各ソフトウェアをプロセスとして並列実行する。
【００５４】
ＮＣＳ３１のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００５５】
例えばＮＣＳ３１は、ネットワークを介して接続されるネットワーク機器とのデータ通信をｈｔｔｐｄ（HyperText Transfer Protocol Daemon）により、ＨＴＴＰ（HyperText Transfer Protocol）で制御する。
【００５６】
ＤＣＳ３２のプロセスは、蓄積文書の配信などの制御を行う。ＯＣＳ３３のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。ＦＣＳ３４のプロセスは、アプリケーション層５からＰＳＴＮまたはＩＳＤＮ網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録／引用、ファックス読み取り、ファックス受信印刷などを行うためのＡＰＩを提供する。
【００５７】
ＥＣＳ３５のプロセスは、スキャナ１１、プロッタ１２、その他のハードウェアリソース１３などのエンジン部の制御を行う。ＭＣＳ３６のプロセスは、メモリの取得および解放、ＨＤＤの利用などのメモリ制御を行う。ＵＣＳ３７は、ユーザ情報の管理を行うものである。
【００５８】
ＳＣＳ３８のプロセスは、アプリケーション管理、操作部制御、システム画面表示、ＬＥＤ表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【００５９】
ＳＲＭ３９のプロセスは、ＳＣＳ３８と共にシステムの制御およびハードウェア資源４の管理を行うものである。例えばＳＲＭ３９のプロセスは、ハードウェア資源４を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
【００６０】
具体的に、ＳＲＭ３９のプロセスは獲得要求されたハードウェア資源４が利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたハードウェア資源４が利用可能である旨を上位層に通知する。また、ＳＲＭ３９のプロセスは上位層からの獲得要求に対してハードウェア資源４を利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００６１】
また、ハンドラ層１０は後述するファックスコントロールユニット（以下、ＦＣＵと記す）の管理を行うファックスコントロールユニットハンドラ（以下、ＦＣＵＨと記す）４０と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ（以下、ＩＭＨと記す）４１と、ＭＬＢ４３の制御を行うＭＥＵ４４とを含む。ＳＲＭ３９およびＦＣＵＨ４０は、予め定義されている関数によりハードウェア資源４に対する処理要求を送信可能とするエンジンＩ／Ｆ５４を利用して、ハードウェア資源４に対する処理要求を行う。画像データ変換制御手段と変換管理手段に対応するＭＥＵ４４は、画像データ管理手段に対応するＩＭＨ４１から画像データの変換要求に対し、ＭＬＢ４３を用いて画像データを変換する。
【００６２】
融合機１は、各アプリケーションで共通的に必要な処理をプラットホーム層６で一元的に処理することができる。次に、融合機１のハードウェア構成について説明する。
【００６３】
図２は、融合機１の一実施例のハードウェア構成図を示している。融合機１は、コントローラボード６０と、オペレーションパネル５２と、ＦＣＵ６８と、エンジン７１とを含む。また、ＦＣＵ６８は、Ｇ３規格対応ユニット６９と、Ｇ４規格対応ユニット７０とを有する。
【００６４】
また、コントローラボード６０は、ＣＰＵ６１と、ＡＳＩＣ６６と、ＨＤＤ６５と、システムメモリ（ＭＥＭ−Ｐ）６３と、ローカルメモリ（ＭＥＭ−Ｃ）６４と、ノースブリッジ（以下、ＮＢと記す）６２と、サウスブリッジ（以下、ＳＢと記す）７３と、ＮＩＣ７４（Network Interface Card）と、ＵＳＢデバイス７５と、ＩＥＥＥ１３９４デバイス７６と、セントロニクスデバイス７７と、ＭＬＢ４３とを含む。
【００６５】
オペレーションパネル５２は、コントローラボード６０のＡＳＩＣ６６に接続されている。また、ＳＢ７３と、ＮＩＣ７４と、ＵＳＢデバイス７５と、ＩＥＥＥ１３９４デバイス７６と、セントロニクスデバイス７７と、ＭＬＢ４３は、ＮＢ６２にＰＣＩバスで接続されている。
【００６６】
ＭＬＢ４３は、融合機１にＰＣＩバスを介して接続する基板である。また、ＭＬＢ４３は、融合機１から入力された画像データを変換し、変換された画像データあるいは符号化された画像データを融合機１に出力するものである。
【００６７】
また、ＦＣＵ６８と、エンジン７１と、プロッタ７２は、コントローラボード６０のＡＳＩＣ６６にＰＣＩバスで接続されている。
【００６８】
なお、コントローラボード６０は、ＡＳＩＣ６６にローカルメモリ６４、ＨＤＤ６５などが接続されると共に、ＣＰＵ６１とＡＳＩＣ６６とがＣＰＵチップセットのＮＢ６２を介して接続されている。このように、ＮＢ６２を介してＣＰＵ６１とＡＳＩＣ６６とを接続すれば、ＣＰＵ６１のインタフェースが公開されていない場合に対応できる。
【００６９】
また、ＡＳＩＣ６６とＮＢ６２とはＰＣＩバスを介して接続されているのでなく、ＡＧＰ（Accelerated Graphics Port）６７を介して接続されている。このように、図２のアプリケーション層５やプラットホーム層６を形成する一つ以上のプロセスを実行制御するため、ＡＳＩＣ６６とＮＢ６２とを低速のＰＣＩバスでなくＡＧＰ６７を介して接続し、パフォーマンスの低下を防いでいる。
【００７０】
ＣＰＵ６１は、融合機１の全体制御を行うものである。ＣＰＵ６１は、ＮＣＳ３１、ＤＣＳ３２、ＯＣＳ３３、ＦＣＳ３４、ＥＣＳ３５、ＭＣＳ３６、ＵＣＳ３７、ＳＣＳ３８、ＳＲＭ３９、ＦＣＵＨ４０、ＩＭＨ４１、ＭＥＵ４４をＯＳ上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層５を形成するプリンタアプリ２１、コピーアプリ２２、ファックスアプリ２３、スキャナアプリ２４を起動して実行させる。
【００７１】
ＮＢ６２は、ＣＰＵ６１、システムメモリ６３、ＳＢ７３およびＡＳＩＣ６６を接続するためのブリッジである。システムメモリ６３は、融合機１の描画用メモリなどとして用いるメモリである。ＳＢ７３は、ＮＢ６２とＰＣＩバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ６４はコピー用画像バッファ、符号バッファとして用いるメモリである。
【００７２】
ＡＳＩＣ６６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ６５は、画像の蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル５２は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
【００７３】
次に、ＭＬＢ４３について、図３を用いて説明する。ＭＬＢ４３は、ＭＬＣ７８と、Ｒｉ１０  ７９（以下、符号との混同を避けるため、明細書ではＲｉ７９と記す）と、ＲＪ２Ｋ８０とを有する。ＭＬＣ７８、Ｒｉ７９、ＲＪ２Ｋ８０は、いずれも画像データの変換機能を有するチップであり、ＭＬＣ７８は、ＭＬＢ４３に初めから搭載されているチップであり、Ｒｉ７９、ＲＪ２Ｋ８０はオプションで搭載することが可能なチップである。
【００７４】
これらＭＬＣ７８、Ｒｉ７９、ＲＪ２Ｋ８０の変換機能について、図４を用いて説明する。ＭＬＣ７８は、圧縮・伸長・多値変換・変倍・色変換機能を有するチップである。Ｒｉ７９は、黒オフセット補正・シェーディング補正・地肌除去・フレアデータ除去・ＭＴＦ補正・孤立点除去・平滑化処理・拡大・縮小・ミラーリング・γ補正・２値化・凸凹補正・２値ディザ・２値誤差拡散・簡易エッジ検出・多値化・細太線化・多値誤差拡散・マスク処理と多くの機能を有するチップである。ＲＪ２Ｋ８０は、ＪＰＥＧ２０００形式での符号化・復号化を行うチップである。
【００７５】
図５は、ＭＬＢ４３において、画像データが変換される際の画像データの流れ示す図である。なお、以下の説明において、画像データの転送を分かりやすく表現するために、入力や出力と表現することがある。また、画像データの変換も、伸長、圧縮、符号、復号と表現することがある。
【００７６】
まず、ＭＬＣ７８の内部について説明する。ＭＬＣ７８は、伸長部８１と、多値変換部８２と、変倍部８３と、色変換部８４と、圧縮部８５とを有する。
【００７７】
多値変換部８２は、多値変換を行う。変倍部８３は、画像の大きさを変える。色変換部８４は、画像の色を変える。伸長部８１は、圧縮された画像データの伸長を行う。圧縮部８５は、画像データの圧縮を行う。また、伸長部８１と圧縮部８５は、ＪＰＥＧ、ＭＨ／ＭＲ／ＭＭＲ、ＮＦＣ１の形式に対応している。なお、多値変換部８２と、変倍部８３と、色変換部８４とをまとめて変換部８６とする。
【００７８】
Ｒｉ７９は、伸長部８１からの画像データに対する変換と、変換部８６からの画像データに対する変換を行う。
【００７９】
ＲＪ２Ｋ８０は、伸長部８１または圧縮部８５から出力される画像データをＪＰＥＧ２０００形式で符号化・復号化を行う。
【００８０】
なお、ＳＲＣ領域１０１は、変換する画像データを格納する記憶領域であり、ＤＳＴ領域１０２は、変換された画像データが格納される記憶領域である。これらは、ＩＭＨ４２が確保するローカルメモリ６４あるいはシステムメモリ６２上のメモリ領域である。これらローカルメモリ６４とシステムメモリ６２を、以下の説明ではメモリと表現することがある。また、メモリは画像データ保持手段に対応する。
【００８１】
以下、画像変換を効率よく行うための実際の処理内容について説明する。これから説明する処理内容は大きく分けて３つの処理で構成される。以下、順に説明する。
【００８２】
最初に説明するのは、画像データを変換する際のメモリ並びにＨＤＤを使用方法についてである。この処理の理解を容易にするために、基本的な処理内容について説明する。
【００８３】
まず、メモリについて説明する。画像データを格納するメモリは、図６に示されるように、変換される画像データが格納される領域が２面（Ｓ１、Ｓ２）と、変換された画像データ領域が格納される２面（Ｄ１、Ｄ２）という構成となっている。なお、それぞれ３面以上の領域で構成されてもよいが、以降の説明を簡単にするために、それぞれ２面ずつの構成とする。また、画像データ領域のサイズは任意であるが、例えばＨＤＤ６５が一度に読み書きすることが可能な最大のサイズの整数倍であれば、さらに処理の効率化を図ることが可能となる。
【００８４】
次に、上述した画像データ領域を用いて行われる実際の変換処理を説明する。まず最初に、変換処理における画像データ領域の様子を、図７、図８を用いて説明する。図７は、メモリに格納された画像データを変換する一方、次に変換される画像データをメモリに格納する様子を示す図である。
【００８５】
図７において、変換されている画像データは、領域Ｓ１に格納された画像データであり、変換された画像データは領域Ｄ１に格納される。その画像データが変換されるのと平行して、次に変換される画像データは領域Ｓ２へ格納される。
【００８６】
これにより次の変換処理は、領域Ｓ１の変換処理が終了したのち、画像データが領域Ｓ２に格納されるという処理を待つことなく、即座に実行することが可能となる。
【００８７】
次の図８は、メモリに格納された画像データを変換してメモリに格納する一方、メモリに格納された画像データをＨＤＤ６５に退避する様子を示す図である。
【００８８】
図８において、変換されている画像データは、領域Ｓ２に格納された画像データであり、変換された画像データは、領域Ｄ２に格納される。また、領域Ｓ１に格納されている画像データは、既に変換された画像データである。
【００８９】
領域Ｓ２の画像データは、変換され、領域Ｄ２に格納される一方、変換された画像データである領域Ｄ１の画像データは、ＨＤＤ６５へ退避される。
【００９０】
これにより、ＨＤＤ６５への退避処理は、領域Ｓ２の変換処理の終了を待つことなく即座に実行することが可能となる。
【００９１】
次に、画像データ変換処理手段に対応する画像データ変換処理部４５について、図９を用いて説明する。図９には、画像データ変換処理部４５と、ＩＭＨ４１と、ＨＤＤ６５と、ローカルメモリ６４とが示されている。
【００９２】
ＭＬＢ４３は、上述したようにＪＰＥＧ、ＪＰＥＧ２０００、ＭＨ／ＭＲ／ＭＭＲ、ＮＦＣ１の変換処理を行うハードウェアである。
【００９３】
また、画像データ変換処理部４５は、ＭＥＵ４４と、ＭＬＢ４３と、変換ライブラリ５１とを有する。
【００９４】
このうち、ＭＥＵ４４は、メインスレッド４８と、配信スレッド４９と、実行スレッド５０と、リソース管理４６とを有する。
【００９５】
メインスレッド４８は、ＩＭＨ４１とのやり取りを行うスレッドであり、ＩＭＨ４１からの要求などを、配信スレッド４９に通知する。配信スレッド４９は、実行スレッド５０の管理を行うスレッドである。この配信スレッド４９は、例えば、実行スレッド５０が複数あり、そのうちのいくつかが変換処理を実行している場合、変換処理を実行していない実行スレッドを選択し、その実行スレッドにメインスレッド４８からの変換処理を行わせたりするスレッドである。
【００９６】
実行スレッド５０は、スレッドであるＭＬＢ制御部４７や、変換ライブラリ５１を用いて、変換処理を実行するスレッドである。また、実行スレッド５０は、一つの画像の変換処理を行うスレッドであるため、複数の画像データの変換を実行可能とするために、複数設けられる。
【００９７】
リソース管理４６は、変換ライブラリ５１やＭＬＢ４３のリソースの管理をするモジュールである。変換ライブラリ５１は、ソフトウェアで変換処理を行うライブラリである。このライブラリは、変換を行うための関数で構成され、実行スレッド５０は、その関数をコールすることにより画像データの変換を行うことができる。
【００９８】
なお、スレッドとは、一般的にＯＳが一つの処理を複数に分割して実行する場合の処理の最小単位とされ、ＯＳによるディスパッチにより、平行して処理が行えるようになっている。また、本実施の形態ではさらにメールの送受信も可能なスレッドとなっている。なお、ここでのメールは、ＯＳの種類によっては、メッセージと呼ばれ、スレッドなどのオブジェクト間でやり取りされる指示命令やデータなどの情報を示している。
【００９９】
したがって、スレッドであるメインスレッド４８、配信スレッド４９、実行スレッド５０、ＭＬＢ制御部４７間のやりとりは、通常メールで行われる。
【０１００】
そのため、実行スレッド５０は、ＭＬＢ４３で変換する場合、ＭＬＢ制御部４７を経由しなければばらないため、メールを用いる。また、変換ライブラリ５１で変換する場合、変換ライブラリ５１は、スレッドではないので、上述したように、実行スレッド５０は、関数コールで直接に変換することができる。
【０１０１】
また、ＭＬＢ４３は、変換処理に必要な演算装置を含む変換専用のハードウェアを有するため、変換ライブラリ５１とは独立して変換することが可能である。このような画像データを変換するハードウェアを、変換の種類に応じて複数設けても良いし、同じハードウェアを複数設けても良い。
【０１０２】
次に、実行スレッド５０の処理と、ＭＬＢ制御部４７の処理の詳細を説明する。まず最初に、実行スレッド５０の処理について説明する。実行スレッド５０は、配信スレッド４９からの要求により、タスクを生成し、そのタスクに必要なリソースを取得する。その後、実行スレッド５０は、ＭＬＢ制御部４７に対し、変換処理を実行するように要求し、ＭＬＢ制御部４７から変換の終了が通知されると、配信スレッド４９を介してＩＭＨ４１に変換が終了したことを通知する処理を行う。
【０１０３】
次に、ＭＬＢ制御部４７の処理について説明する。ＭＬＢ制御部４７は、実行スレッド５０からの要求により、ＭＬＢ４３のレジスタに画像データの変換に関するパラメータをセットしたり、ＭＬＢ４３によって画像データの変換が終了すると、画像データの変換が終了したことを実行スレッド５０に通知する処理を行う。
【０１０４】
これら実行スレッド５０と、ＭＬＢ制御部４７は、それぞれスレッドの状態を表すステータスを用いながら処理を実行する。このステータスの遷移について図１０を用いて説明する。
【０１０５】
図１０には、実行スレッド５０のステータス遷移図１６０と、ＭＬＢ制御部４７のステータス遷移図１６１が示されている。以下、それらのステータスの説明をする。
【０１０６】
実行スレッド５０のステータスは、まず初期化処理を行っている状態を示すステップＳ１０１のＳ＿ＩＮＩＴとなる。この初期化処理は、例えば、使用する変数の初期化などが行われる処理である。
【０１０７】
初期化を終えた実行スレッド５０のステータスは、ステップＳ１０２のＳ＿ＩＤＯＬに遷移する。このＳ＿ＩＤＯＬは、実質的な処理は何もしていないステータスである。
【０１０８】
このステータスで、実行スレッド５０がＩＭＨ４１から画像データ変換要求を通知されると、ステータスは、ステップＳ１０３のＳ＿ＳＥＴに遷移する。このステータスは、要求に応じたタスクを生成する処理が行われるステータスである。次に、実行スレッド５０のステータスは、実行スレッド５０が先ほど生成したタスクに必要なリソースを取得するステータスであるステップＳ１０４のＳ＿ＧＥＴとなる。
【０１０９】
ステータスがＳ＿ＧＥＴになると、次のステータスは、タスクに必要なリソースが取得できたかどうかで、２つに分かれる。まず、リソースが取得できた場合について説明する。
【０１１０】
ステータスＳ＿ＧＥＴで、実行スレッド５０がリソースを取得できた場合、ステータスは、ステップＳ１０５のＳ＿ＥＸＥに遷移し、実行スレッド５０は、ＭＬＢ制御部４７に対し、画像データ変換要求を行う。
【０１１１】
これにより、ステータスは、ステップＳ１１０のＳ＿ＷＡＩＴに遷移する。このステータスは、ＭＬＢ制御部４７からの応答を待つステータスである。そして、ＭＬＢ制御部４７からの応答があると、ステータスは、変換処理が継続される場合は再びステップＳ１０５のＳ＿ＥＸＥに遷移し、継続の必要がない場合は、ステップＳ１１１のＳ＿ＥＮＤに遷移する。
【０１１２】
ステータスがＳ＿ＥＮＤに遷移すると、実行スレッド５０は、タスクを終了するか、次のタスクを実行するかどうか判断する。タスクを終了する場合は、処理が終了するためＳ＿ＩＤＯＬにステータスは遷移する。次のタスクを実行する場合は、矢印２１３に示されるように、ステータスは再びＳ＿ＧＥＴに遷移する。
【０１１３】
以上がステータスがＳ＿ＧＥＴのときにリソースが取得できた場合のステータスの遷移である。
【０１１４】
ステータスがＳ＿ＧＥＴのときにリソースが取得できなかった場合、矢印２１１に示されるように、ステータスは、ステップＳ１０５のＳ＿ＥＸＥに遷移せず、ステップＳ１１０のＳ＿ＷＡＩＴに遷移する。そのステータスで、リソースが取得可能になるまで待ち、リソースが取得可能となると、矢印２１２に示されるように、ステップＳ１０５のＳ＿ＥＸＥにステータスが遷移する。これ以降のステータスの遷移は、リソースが取得できた場合のステータスの遷移と同じになる。
【０１１５】
次に、ＭＬＢ制御部４７のステータス遷移図１６１を説明する。実行スレッド５０からの要求により、ＭＬＢ制御部４７のステータスは、ステップＳ１０６のタスクを生成するステータスであるＳ＿ＳＥＴとなる。次に、ＭＬＢ制御部４７のステータスは、ステップＳ１０７のＳ＿ＥＸＥとなり、ＭＬＢ制御部４７は、画像データの変換を行うために、ＭＬＢ４３のレジスタに対し、パラメータをセットする。これによりステータスは、処理の実行中を示すステップＳ１０８のＳ＿ＲＵＮに遷移する。このとき、ＭＬＢ制御部４７は、ＯＳのシステムコールを利用するので、ＭＬＢ４３の変換処理が終了するまで、ＭＬＢ制御部４７の処理がロックされ、変換処理の終了待ちが発生する。
【０１１６】
ＭＬＢ４３の変換処理が終了すると、ＭＬＢ制御部４７のステータスは、変換処理の終了を示すステップＳ１０９のＳ＿ＣＬＯＳＥとなる。そしてこのとき、ＭＬＢ制御部４７は、実行スレッド５０に変換の終了を通知し、処理を終了する。
【０１１７】
以上説明した実行スレッド５０のステータスの遷移を、図１１のフローチャートを用いて説明する。ステップＳ２０で、実行スレッド５０は、メールのチェックを行う。この場合、タイムアウト付メール受信コマンドにより、上記ステータスに応じてメールを待たせたりしている。このタイムアウト値は、例えば、ステータスがＳ＿ＷＡＩＴであれば無限大とし、Ｓ＿ＥＸＥであれば０としている。
【０１１８】
メールを受信すると、実行スレッド５０は、ステップＳ２１で、受信したメールから、イベントの内容を解析する。そのイベントの内容に応じて、実行スレッド５０は、ステップＳ２２、ステップＳ２３、ステップＳ２４、ステップＳ２５のうちのいずれかの処理を行う。そして、ステップＳ２６で、実行スレッド５０は、イベントによりステータスを遷移させる。なお、ステップＳ２６において、ステータスがＳ＿ＷＡＩＴ以外の場合、実行スレッド５０は何らかの処理を実行しているため、実行スレッド５０はメールの情報を保持し、フラグなどを用いてメールを受信したことを記憶しておく。
【０１１９】
以上の処理でメールの内容は不要となるため、実行スレッド５０は、メール領域の解放を行う。この処理は、一般的にメールがヘッダとメールの内容が記載されたメモリ領域からなるため、メールをそのままにしておいてメモリの空き容量が減っていくことを防ぐために通常行われる処理である。
【０１２０】
次に、ステップＳ２８で、実行スレッド５０は、上述したステータスによってステップＳ２９の処理を実行する。そして、実行スレッド５０は、１つのステータスに応じた処理を実行後、再びステップＳ２０のメールチェック処理を行う。
【０１２１】
このようにして、メールによるイベントの処理と、ステータスの遷移が行われている。
【０１２２】
次に、画像データの変換処理を示すフローチャートを、図１２を用いて説明する。
【０１２３】
図１２は、ＩＭＨ４１と、実行スレッド５０と、ＭＬＢ制御部４７とが行う処理を示すフローチャートであり、画像データを格納するメモリ構成は、図６に示されているメモリ構成と同様に、画像データ領域２０１、２０２となっている。また、画像データ領域のサイズは、この場合、ＨＤＤ６５に対してアクセスする単位を３２ＫＢ（KiloByte）とした場合、そのｎ（整数）倍としている。以下フローチャートの説明をする。
【０１２４】
ステップＳ２０１で、ＩＭＨ４１は、Ｓ１またはＳ２に画像データを格納し、ＭＥＵ４４に対して格納された画像データを変換するように要求する。要求を受けた実行スレッド５０は、画像データ変換段階に対応するステップＳ２０２で、画像データを変換するようにＭＬＢ制御部４７に要求し、ＭＬＢ制御部４７は、ＭＬＢ４３で画像データの変換を行い、変換が終了すると実行スレッド５０に変換が終了したことを通知する。
【０１２５】
変換の終了を通知された実行スレッド５０は、画像データの変換を継続するかどうかの判断をステップＳ２０３で行う。この判断により、継続する場合は２通りに分岐し、終了する場合は１通りであるため、処理は全部で３つに分岐する。このうち、まずSRC EMPTYに分岐する場合の説明をする。
【０１２６】
SRC EMPTYに分岐するのは、変換される画像データ領域が空きと判断された場合である。この場合、ステップＳ２０４で、実行スレッド５０は、２面ある画像データ領域の切り替えを行う。この切り替えは、例えば先ほど変換対象となった領域が領域Ｓ１であれば、領域Ｓ２に変換対象領域を切り替えるという処理である。
【０１２７】
切り替え処理を行うと、実行スレッド５０は、ステップＳ２０５で、画像データを格納するかどうか判断する。この判断により、変換する画像データがまだある場合は、画像データ格納段階に対応するステップＳ２０６に処理が進み、ステップＳ２０６で、ＩＭＨ４１が、画像データの格納を行う。この格納処理は、ＩＭＨ４１と実行スレッド５０が別なスレッドであるため、実行スレッド５０の処理と別に独立して行われる。
【０１２８】
ステップＳ２０５の判断処理にもどり、ステップＳ２０５で画像データを格納する必要がないと判断された場合、実行スレッド５０は、再びステップＳ２０２に処理を進める。
【０１２９】
次に、ステップＳ２０３で、DST FULLに分岐する場合の処理について説明する。DST FULLに分岐するのは、領域Ｄ１または領域Ｄ２に画像データが格納されていると判断された場合である。この場合、ステップＳ２０７で、実行スレッド５０は、２面ある画像データ領域の切り替えを行う。この切り替えは、例えば変換されたデータが格納される対象となった領域が領域Ｄ１であれば、領域Ｄ２に対象領域を切り替えるという処理である。
【０１３０】
切り替え処理を行うと、次に、実行スレッド５０は、ステップＳ２０８で、画像データを退避するかどうか判断する。この判断により、画像データを退避する場合は、画像データ退避段階に対応するステップＳ２０９に処理が進み、ステップＳ２０９で、ＩＭＨ４１が、画像データの退避を行う。この退避処理も先ほどと同様に、ＩＭＨ４１と実行スレッド５０が別なスレッドであるため、実行スレッド５０の処理と別に独立して行われる。
【０１３１】
ステップＳ２０８の判断処理にもどり、実行スレッド５０が、ステップＳ２０８で画像データを退避する必要がないと判断した場合、再びステップＳ２０２に処理を進める。
【０１３２】
次に、ステップＳ２０３で、変換終了と判断された場合の処理について説明する。画像データの変換が終了すると、ステップＳ２１０で、ＩＭＨ４１は、画像データの退避を行い、ステップＳ２１１で処理は終了となる。
【０１３３】
以上が変換処理を示すフローチャートであるが、変換する画像データの種類によっては、ヘッダを有する画像データを変換する場合がある。このヘッダは、例えば、ＦＡＸやＪＰＥＧ系の画像データの先頭部分に設けられ、その内容は画像データのレングスなどである。
【０１３４】
この場合の画像データ変換処理を、図１３のフローチャートを用いて説明する。このフローチャートは、図１２のフローチャートに、ステップＳ３０２とステップＳ３１２の２つの処理を加えたものである。また、画像データ領域２０３は図１２と同じであるが、画像データ領域２０４は、ヘッダ領域と領域Ｄ１、領域Ｄ２で構成される。
【０１３５】
以下、図１２と異なる部分を中心に、図１３のフローチャートを説明する。ステップＳ３０１で、ＩＭＨ４１は、図１２の場合と同様に、メモリに画像データを格納し、ＭＥＵ４４に対して格納された画像データを変換するように要求する。
【０１３６】
次のステップＳ３０２は、最初に要求を受けたときに行われる処理である。この処理は、変換が全て終了したのちにヘッダをつけるために、画像データ領域２０４のヘッダ部分において、変換された画像データを格納する際の画像データの書き込み開始位置をヘッダの分だけずらす処理である。
【０１３７】
このステップＳ３０２の処理を終えると、ステップＳ３１１までは、図１２のフローチャートと同様に、領域Ｄ１、Ｄ２が使用される。そして、ステップＳ３１２で、ＩＭＨ４１は、先ほど格納されたヘッダを退避し、ステップＳ３１３で処理は終了となる。
【０１３８】
次に、上記フローチャートにより実行される処理を、シーケンス図を用いて説明する。なお、上述したスレッドやＭＬＢ４３は、平行して処理が実行されるため、例えばＭＬＢ４３の変換処理時間により、画像データを格納するタイミングなどが異なってくる。そのため、以下、３つのパターンの場合について説明する。
【０１３９】
まず、第１のパターンは、ＭＬＢ４３の変換処理時間が、画像データを格納する時間と画像データを退避する時間を足した時間よりも大きい場合である。このパターンの処理を、図１４のシーケンス図と画像データ領域を示す図１５とを用いて説明する。なお、以下のシーケンス図において、ＨＤはＨＤＤ６５を表し、Ｓ１、Ｓ２、Ｄ１、Ｄ２は、図６の画像データ領域を示す。
【０１４０】
また、画像データ領域を示す図１５において、参照符号１２１から１３２は、画像データ領域を示す。これらの画像データ領域を、画像データ領域１２１を例に説明する。参照符号１２１ａは、変換される画像データが格納される画像データ領域の２面を表し、参照符号１２１ｂは、変換された画像データが格納される画像データ領域の２面を表す。そして、画像データが格納された画像データ領域は、黒で表現され、格納されていない画像データ領域は、白で表現される。
【０１４１】
以下、シーケンス図の説明を行う。ＩＭＨ４１は、ステップＳ４０１、ステップＳ４０２でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１５の画像データ領域１２１となる。そして、ステップＳ４０３でＩＭＨ４１は、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ４０４で、ＭＬＢ４３に画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１５の画像データ領域１２８である。
【０１４２】
このとき、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ４０５、ステップＳ４０６で、領域Ｓ２に画像データを格納する。この処理により、画像データ領域は、図１５の画像データ領域１２２となる。このように、ＩＭＨ４１は、領域に画像データを格納したのち、他の領域で画像データが格納されていない領域があれば、さらにその領域に画像データを格納する。
【０１４３】
ＭＬＢ４３は、ステップＳ４０７で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ４０８でＩＭＨ４１に対し、画像データの変換が終了したことを通知する。このとき、領域Ｓ１の画像データは変換されたため、領域Ｓ１は空き（Empty）となり、領域Ｄ１には、変換された画像データが格納されている（FULL）。
【０１４４】
変換終了の通知を受けたＩＭＨ４１は、ステップＳ４０９で、ＭＥＵ４４に対し、領域Ｓ２に格納された画像データを変換して領域Ｄ２に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ４１１で、ＭＬＢ４３に対し、領域Ｓ２に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ２の画像データを変換し、領域Ｄ２へ格納する。この処理を表すのが、図１５の画像データ領域１２９である。
【０１４５】
また、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ４１０、ステップＳ４１２で、領域Ｄ１に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１５の画像データ領域１２３となる。その後すぐに、ＩＭＨ４１は、ステップＳ４１３、ステップＳ４１４でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１５の画像データ領域１２４となる。
【０１４６】
この処理と平行して行われたＭＬＢ４３の変換処理が終了すると、ＭＬＢ４３は、ステップＳ４１５で、領域Ｓ２の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ４１６でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ２の画像データは変換されたため、領域Ｓ２は空き（Empty）となり、領域Ｄ２には、変換された画像データが格納されている（FULL）。
【０１４７】
次に、ＩＭＨ４１は、ステップＳ４１７で、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ４１８で、ＭＬＢ４３に対し、領域Ｓ１に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１５の画像データ領域１３０である。
【０１４８】
この処理と平行して、ＩＭＨ４１は、先ほどのステップＳ４１６で、領域Ｓ２の画像データの変換が終了したことの通知を受けたので、ステップＳ４２０、ステップＳ４２１で、領域Ｄ２に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１５の画像データ領域１２５となる。その後すぐに、ＩＭＨ４１は、ステップＳ４２２、ステップＳ４２３でＨＤＤ６５から画像データを領域Ｓ２に格納する。この処理により、画像データ領域は、図１５の画像データ領域１２６となる。
【０１４９】
また、領域Ｓ１の画像データの変換が終了したＭＬＢ４３は、ステップＳ４１９で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ４２４でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ１の画像データは変換されたため、領域Ｓ１は空き（Empty）となり、領域Ｄ１には、変換された画像データが格納されている（FULL）。
【０１５０】
以降、ＭＬＢ４３は、画像データ領域１３１、１３２に示されるように、領域Ｓ１、Ｓ２に格納された画像データを変換していき、ＩＭＨ４１は、画像データ領域１２７に示されるように、画像データをＨＤＤ６５に退避したり、あるいは格納したりして処理が続けられる。
【０１５１】
そして、ステップＳ４２５で、ＭＬＢ４３が、ＭＥＵ４４に領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。この通知により、ＭＥＵ４４は、ステップＳ４２６でＩＭＨ４１に対し、変換が終了したことを通知する。ステップＳ４２６で、ＩＭＨ４１は、ＭＥＵ４４から処理の終了（END）が通知されると、領域Ｄ１に格納された画像データを、ステップＳ４２７、ステップＳ４２８でＨＤＤ６５に退避し、処理を終了する。
【０１５２】
このように、ＩＭＨ４１が、画像データ領域に格納された画像データを変換する一方、ＭＥＵ４４は、ＭＬＢ４３で次に変換される画像データを、画像データ領域に格納していることが示されている。また、変換される画像データ保持するために、画像データを格納する画像データ領域を２つ有している。そして、ＩＭＨ４１は、ＨＤＤ６５に記憶された画像データを、領域ごとに格納し、ＭＬＢ４３は、一つの領域に格納されている画像データごとに変換している。さらに、ＩＭＨ４１は、領域に画像データを格納したのち、他の領域で画像データが格納されていない領域があれば、さらにその領域に画像データを格納している。
【０１５３】
また、ＭＬＢ４３が、画像データを変換して画像データ領域に格納する一方、ＩＭＨ４１は、画像データ領域に格納された画像データを、ＨＤＤ６５に退避していることも示されている。また、変換された画像データ保持するために、画像データを格納する画像データ領域を２つ有している。そして、ＭＬＢ４３は、変換した画像データを領域ごとに格納し、ＩＭＨ４１は、一つの領域に格納されている画像データごとにＨＤＤ６５に退避している。
【０１５４】
次に、第２のパターンについて説明する。第２のパターンは、第１のパターンとは逆に、ＭＬＢ４３の変換処理時間が、画像データを格納する時間と画像データを退避する時間を足した時間よりも小さい場合である。このパターンの処理を図１６のシーケンス図と、画像データ領域を示す図１７とを用いて説明する。
【０１５５】
最初に、ＩＭＨ４１は、ステップＳ５０１、ステップＳ５０２でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１７の画像データ領域１３３となる。そして、ステップＳ５０３でＩＭＨ４１は、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ５０４で、ＭＬＢ４３に画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１７の画像データ領域１４６である。
【０１５６】
このとき、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ５０５、ステップＳ５０６で、領域Ｓ２に画像データを格納する。この処理により、画像データ領域は、図１７の画像データ領域１３４となる。
【０１５７】
ＭＬＢ４３は、ステップＳ５０７で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ５０８でＩＭＨ４１に対し、画像データの変換が終了したことを通知する。このとき、領域Ｓ１の画像データは変換されたため、領域Ｓ１は空き（Empty）となり、領域Ｄ１には、変換された画像データが格納されている（FULL）。
【０１５８】
変換終了の通知を受けたＩＭＨ４１は、ステップＳ５０９で、ＭＥＵ４４に対し、領域Ｓ２に格納された画像データを変換して領域Ｄ２に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ５１０で、ＭＬＢ４３に対し、領域Ｓ２に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ２の画像データを変換し、領域Ｄ２へ格納する。この処理を表すのが、図１７の画像データ領域１４７である。
【０１５９】
また、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ５１１、ステップＳ５１２で、領域Ｄ１に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１７の画像データ領域１３５となる。
【０１６０】
この処理と平行して行われたＭＬＢ４３の変換処理が終了すると、ＭＬＢ４３は、ステップＳ５１３で、領域Ｓ２の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ５１４でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ２の画像データは変換されたため、領域Ｓ２は空き（Empty）となり、領域Ｄ２には、変換された画像データが格納されている（FULL）。
【０１６１】
次に、ＩＭＨ４１は、ステップＳ５１５、ステップＳ５１６でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１７の画像データ領域１３６となる。そして、ＩＭＨ４１は、ステップＳ５１７で、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ５１８で、ＭＬＢ４３に対し、領域Ｓ１に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１７の画像データ領域１４８である。
【０１６２】
この処理と平行して、ＩＭＨ４１は、先ほどのステップＳ５１７で、領域Ｓ２の画像データの変換が終了したことの通知を受けたので、ステップＳ５１９、ステップＳ５２０で、領域Ｄ２に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１４の画像データ領域１３７となる。
【０１６３】
また、領域Ｓ１の画像データの変換が終了したＭＬＢ４３は、ステップＳ５２１で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ５２２でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ１の画像データは変換されたため、領域Ｓ１は空き（Empty）となり、領域Ｄ１には、変換された画像データが格納されている（FULL）。
【０１６４】
次に、ＩＭＨ４１は、ステップＳ５２３、ステップＳ５２４でＨＤＤ６５から画像データを領域Ｓ２に格納する。この処理により、画像データ領域は、図１７の画像データ領域１３８となる。そして、ＩＭＨ４１は、ステップＳ５２５で、ＭＥＵ４４に対し、領域Ｓ２に格納された画像データを変換して領域Ｄ２に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ５２６で、ＭＬＢ４３に対し、領域Ｓ２に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ２の画像データを変換し、領域Ｄ２へ格納する。この処理を表すのが、図１７の画像データ領域１４９である。
【０１６５】
この処理と平行して、ＩＭＨ４１は、先ほどのステップＳ５２２で、領域Ｓ１の画像データの変換が終了したことの通知を受けたので、ステップＳ５２７、ステップＳ５２８で、領域Ｄ１に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１７の画像データ領域１３９に対応する。
【０１６６】
また、領域Ｓ２の画像データの変換が終了したＭＬＢ４３は、ステップＳ５２９で、領域Ｓ２の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ５３０でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ２の画像データは変換されたため、領域Ｓ１は空き（Empty）となり、領域Ｄ２には、変換された画像データが格納されている（FULL）。
【０１６７】
次に、ＩＭＨ４１は、ステップＳ５３１、ステップＳ５３２でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１７の画像データ領域１４０となる。そして、ＩＭＨ４１は、ステップＳ５３３で、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ５３４で、ＭＬＢ４３に対し、領域Ｓ２に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１７の画像データ領域１５０である。領域Ｓ２の画像データの変換が終了したＭＬＢ４３は、ステップＳ５３５で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。
【０１６８】
以降、ＭＬＢ４３は、画像データ領域１５１、１５２に示されるように、領域Ｓ１、Ｓ２に格納された画像データを変換していき、ＩＭＨ４１は、画像データ領域１４１、１４２、１４３、１４４、１４５に示されるように、画像データをＨＤＤ６５に退避したり、あるいは格納したりして処理が続けられる。
【０１６９】
そして、ステップＳ５３６で、ＭＬＢ４３が、ＭＥＵ４４に領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。この通知により、ＭＥＵ４４は、ステップＳ５３４でＩＭＨ４１に対し、変換が終了したことを通知する。ステップＳ５３４で、ＩＭＨ４１は、ＭＥＵ４４から処理の終了（END）が通知されると、領域Ｄ１に格納された画像データを、ステップＳ５３５、ステップＳ５３６でＨＤＤ６５に退避し、処理を終了する。
【０１７０】
次に、第３のパターンについて説明する。第３のパターンは、第１のパターンよりもさらにＭＬＢ４３の変換処理時間がかかる場合である。これは、例えば画像データを変換する際の圧縮率が高い場合などを想定している。このパターンの処理を図１８のシーケンス図と、画像データ領域を示す図１９とを用いて説明する。
【０１７１】
最初に、ＩＭＨ４１は、ステップＳ６０１、ステップＳ６０２でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１９の画像データ領域１５３となる。そして、ステップＳ６０３でＩＭＨ４１は、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ６０４で、ＭＬＢ４３に画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１９の画像データ領域１６７である。
【０１７２】
このとき、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ６０５、ステップＳ６０６で、領域Ｓ２に画像データを格納する。この処理により、画像データ領域は、図１９の画像データ領域１５４となる。
【０１７３】
ＭＬＢ４３は、ステップＳ６０７で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ６０８でＩＭＨ４１に対し、画像データの変換が終了したことを通知する。このとき、領域Ｓ１の画像データは変換されたため、領域Ｓ１は空き（Empty）となる。また、領域Ｄ１には、変換された画像データが格納されているが、圧縮率が高い場合は、領域Ｄ１に余裕があり、引き続き画像データを格納することが可能であるため、次に変換した画像データを先ほど格納した画像データに引き続き格納する。今の場合、変換された画像データは、１つの領域に２つまで格納することが可能であるとする。
【０１７４】
次に、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ６０９、ステップＳ６１０で、ＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１９の画像データ領域１５５となる。この処理とともに、ＩＭＨ４１は、ステップＳ６１１で、ＭＥＵ４４に対し、領域Ｓ２に格納された画像データを変換して領域Ｄ１に格納するように要求する。
【０１７５】
次に、ＭＥＵ４４は、ステップＳ６１２で、ＭＬＢ４３に対し、領域Ｓ２に格納された画像データを変換し、領域Ｄ１に格納するように要求する。そして、ＭＬＢ４３は、領域Ｓ２の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１９の画像データ領域１６２である。
【０１７６】
ＭＬＢ４３の変換処理が終了すると、ＭＬＢ４３は、ステップＳ６１３で、領域Ｓ２の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ６１４でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ２の画像データは変換されたため、領域Ｓ２は空き（Empty）となり、領域Ｄ１には、２つの変換された画像データが格納されている（FULL）。
【０１７７】
次に、ＩＭＨ４１は、ステップＳ６１５で、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ２に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ６１８で、ＭＬＢ４３に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ２に格納するように要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１９の画像データ領域１６３である。
【０１７８】
この処理と平行して、ＩＭＨ４１は、先ほどのステップＳ６１４で、領域Ｓ２の画像データの変換が終了したことと、領域Ｄ１がＦＵＬＬであることの通知を受けたので、ステップＳ６１７、ステップＳ６１８で、領域Ｄ１に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１９の画像データ領域１５６となる。その後すぐに、ＩＭＨ４１は、ステップＳ６１９、ステップＳ６２０でＨＤＤ６５から画像データを領域Ｓ２に格納する。この処理により、画像データ領域は、図１９の画像データ領域１５７となる。
【０１７９】
また、領域Ｓ１の画像データの変換が終了したＭＬＢ４３は、ステップＳ６２１で、領域Ｓ１の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ６２２でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ１の画像データは変換されたため、領域Ｓ１は空き（Empty）となる。
【０１８０】
ＩＭＨ４１は、ステップＳ６２３で、ＭＥＵ４４に対し、領域Ｓ２に格納された画像データを変換して領域Ｄ２に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ６２４で、ＭＬＢ４３に対し、領域Ｓ２に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ２の画像データを変換し、領域Ｄ２へ格納する。この処理を表すのが、図１９の画像データ領域１６４である。
【０１８１】
この処理と平行して、ＩＭＨ４１は、ステップＳ６２５、ステップＳ６２６でＨＤＤ６５から画像データを領域Ｓ１に格納する。この処理により、画像データ領域は、図１９の画像データ領域１５８となる。
【０１８２】
領域Ｓ２の画像データの変換が終了したＭＬＢ４３は、ステップＳ６２７で、領域Ｓ２の画像データの変換が終了したことをＭＥＵ４４に通知する。ＭＥＵ４４は、変換が終了した通知を受けたことにより、ステップＳ６２８でＩＭＨ４１に対し、変換が終了したことを通知する。このとき、領域Ｓ２の画像データは変換されたため、領域Ｓ２は空き（Empty）となり、領域Ｄ２には、変換された画像データが格納されている（FULL）。
【０１８３】
次に、ＩＭＨ４１は、ステップＳ６２９で、ＭＥＵ４４に対し、領域Ｓ１に格納された画像データを変換して領域Ｄ１に格納するように要求する。要求を受けたＭＥＵ４４は、ステップＳ６３０で、ＭＬＢ４３に対し、領域Ｓ１に格納された画像データの変換を要求する。そして、ＭＬＢ４３は、領域Ｓ１の画像データを変換し、領域Ｄ１へ格納する。この処理を表すのが、図１９の画像データ領域１６５である。
【０１８４】
また、ＩＭＨ４１は、ＭＬＢ４３が画像データを変換する一方、ステップＳ６３１、ステップＳ６３２で、領域Ｄ２に格納された画像データをＨＤＤ６５に退避する。この処理により、画像データ領域は、図１９の画像データ領域１５９となる。
【０１８５】
以降、ＭＬＢ４３は、領域Ｓ１、Ｓ２に格納された画像データを変換していき、ＩＭＨ４１は、画像データ領域１６６に示されるように、画像データをＨＤＤ６５に格納したり、あるいは退避したりして処理が続けられる。
【０１８６】
そして、ステップＳ６３３で、ＭＬＢ４３が、ＭＥＵ４４に領域Ｓ２の画像データの変換が終了したことをＭＥＵ４４に通知する。この通知により、ＭＥＵ４４は、ステップＳ６３４でＩＭＨ４１に対し、変換が終了したことを通知する。ＩＭＨ４１は、ＭＥＵ４４から処理の終了（END）が通知されると、領域Ｄ１に格納された画像データを、ステップＳ６３５、ステップＳ６３６でＨＤＤ６５に退避し、処理を終了する。
【０１８７】
以上が画像データを変換する際のメモリ並びにＨＤＤの使用方法についてである。
【０１８８】
次に、２つめの処理について説明する。この処理は、ＭＬＢ４３と変換ライブラリ５１とを効率よく利用するための処理である。
【０１８９】
まず、実行スレッド５０の詳細について説明する。図２０には、実行スレッドＡのステータス遷移図１６０と、ステータスがＳ＿ＥＮＤとなっている実行スレッドＢのステータス遷移図１６９とＭＬＢ制御部４７のステータス遷移図１６１、及び、リソース管理４６が管理するキュー１６８が示されている。以下、それらの説明をする。
【０１９０】
実行スレッドＡのステータスは、まず初期化処理を行っている状態を示すステップＳ７０１のＳ＿ＩＮＩＴとなる。この初期化処理は、例えば、使用する変数の初期化などが行われる処理である。
【０１９１】
初期化を終えた実行スレッドＡのステータスは、ステップＳ７０２のＳ＿ＩＤＯＬに遷移する。このＳ＿ＩＤＯＬは、実質的な処理は何もしていないステータスである。
【０１９２】
このステータスで、実行スレッドＡがＩＭＨ４１から変換要求を通知されると、ステータスは、ステップＳ７０３のＳ＿ＳＥＴに遷移する。このステータスは、要求に応じたタスクを生成する処理が行われるステータスである。このとき、実行スレッドＡは、リソース管理４６に対し、ＭＬＢ４３と変換ライブラリ５１のいずれを用いて変換するかを問い合わせる。そして、リソース管理４６は、後述する選択方法によりいずれかを選択し、その選択結果を実行スレッドＡに返す。
【０１９３】
次に、実行スレッドＡのステータスは、ステップＳ７０４で、リソース管理４６が先ほど選択したリソースを取得するステータスであるＳ＿ＧＥＴとなる。
【０１９４】
このようにして、ステータスがＳ＿ＧＥＴになると、次のステータスは、タスクに必要なリソースが取得できたかどうかで、２つに分かれる。まず、リソースが取得できた場合について説明する。
【０１９５】
ステータスＳ＿ＧＥＴにおいて、実行スレッドＡは、リソース管理４６にリソース取得要求を行い、リソース取得応答で、リソースを取得できた場合、ステータスは、ステップＳ７０５のＳ＿ＥＸＥに遷移し、実行スレッドＡは、ＭＬＢ制御部４７に対し、画像データ変換要求を行う。
【０１９６】
これにより、ステータスは、ステップＳ７１０のＳ＿ＷＡＩＴに遷移する。このステータスは、ＭＬＢ制御部４７からの応答を待つステータスである。そして、ＭＬＢ制御部４７からの応答があると、ステータスは、変換処理が継続される場合は再びステップＳ７０５のＳ＿ＥＸＥに遷移し、継続の必要がない場合は、ステップＳ７１１のＳ＿ＥＮＤに遷移する。
【０１９７】
ステータスが、Ｓ＿ＥＮＤに遷移すると、実行スレッドＡは、タスクを終了するか、次のタスクを実行するかどうか判断する。タスクを終了する場合は、処理が終了するためステップＳ７０２のＳ＿ＩＤＯＬにステータスは遷移する。次のタスクを実行する場合は、ステータスは再びＳ＿ＧＥＴに遷移する。
【０１９８】
以上がステータスＳ＿ＧＥＴのときにリソースが取得できた場合のステータスの遷移である。
【０１９９】
ステータスＳ＿ＧＥＴのときにリソースが取得できなかった場合、ステータスは、Ｓ＿ＥＸＥに遷移せず、Ｓ＿ＷＡＩＴに遷移する。また、そのときのリソース取得要求により、画像データは、リソース管理４６が画像データを変換する順番を管理するキュー１６８で管理される。このキュー１６８は、ＭＬＢ４３と変換ライブラリ５１ごとに備えられる。また、キュー１６８での画像データの順番は、リソース取得要求を通知してきた実行スレッドＡのＩＤで管理される。これは、実行スレッド１つあたり、一つの画像データしか変換しないため、実行スレッドＡのＩＤを積めば情報として十分であることが理由である。
【０２００】
実行スレッドＡは、Ｓ＿ＷＡＩＴのステータスで、リソースが取得可能になるまで待つ。そして、実行スレッドＢの処理が終了すると、リソースを解放したことをリソース管理４６に通知する。
【０２０１】
リソース管理４６から、リソースが取得可能となったことが通知されると、ステップＳ７０５のＳ＿ＥＸＥにステータスが遷移する。これ以降のステータスの遷移は、リソースが取得できた場合のステータスの遷移と同じになる。  このように、リソース管理４６は、リソースが使用可能となると、キューに管理されている順番に基づき、リソースの取得を要求した実行スレッドＡに対し、リソースが取得可能であることを通知する。
【０２０２】
次に、ＭＬＢ制御部４７のステータス遷移図１６１を説明する。実行スレッドＡからの要求により、ＭＬＢ制御部４７のステータスは、タスクを生成するステータスであるステップＳ７０６のＳ＿ＳＥＴとなる。次に、ＭＬＢ制御部４７のステータスは、ステップＳ７０７のＳ＿ＥＸＥとなり、ＭＬＢ制御部４７は、画像データの変換を行うために、ＭＬＢ４３のレジスタに対し、パラメータをセットする。これによりステータスは、処理の実行中を示すステップＳ７０８のＳ＿ＲＵＮに遷移する。
【０２０３】
ＭＬＢ４３の変換処理が終了すると、ＭＬＢ制御部４７のステータスは、変換処理の終了を示すステップＳ７０９のＳ＿ＣＬＯＳＥとなる。そしてこのとき、ＭＬＢ制御部４７は、実行スレッドＡに変換の終了を通知し、処理を終了する。
【０２０４】
次に、以上説明したステータス遷移における処理を、フローチャートを用いて説明する。
【０２０５】
図２１は、実行スレッド５０におけるステータスＳ＿ＳＥＴからＳ＿ＧＥＴまでの処理を示すフローチャートである。ステップＳ８０１で、実行スレッド５０は、リソース管理４６にＭＬＢ４３または変換ライブラリ５１のどちらを使用するか問い合わせを行う。
【０２０６】
このように、実行スレッド５０は、画像データを変換する際に、リソース管理４６に対し、ＭＬＢ４３と変換ライブラリ５１のいずれを用いるかを選択させる選択要求を通知する。
【０２０７】
次に、ステップＳ８０２で、リソース管理から通知された選択結果がＭＬＢ４３の場合、ステップＳ８０４で、実行スレッド５０は、実行スレッド５０内の処理で用いるフラグであるFLAG_ＭＬＢ_USEにＭＬＢ４３を使用することを示すＳＥＴを代入する。これをＣ言語で例えると、変数であるFLAG_ＭＬＢ_USEに、プリプロセッサの#defineで値が定義されたＳＥＴを代入することである。
【０２０８】
リソース管理から通知された選択結果が、変換ライブラリ５１の場合、ステップＳ８０３で、実行スレッド５０は、実行スレッド５０内の処理で用いるフラグであるFLAG_ＭＬＢ_USEにＭＬＢ４３を使用しないことを示すＲＥＳＥＴを代入する。上記ステップＳ８０３とステップＳ８０４は、選択段階に対応する。
【０２０９】
これらの処理が終了すると、実行スレッド５０のステータスは、Ｓ＿ＧＥＴに遷移する。
【０２１０】
次に、上記フローチャートにおけるリソース管理４６側の処理を示すフローチャートを、図２２を用いて説明する。ステップＳ９０１で、リソース管理４６は、実行スレッド５０より選択要求を通知される。
【０２１１】
次のステップＳ９０２は、リソース管理４６が、ＭＬＢ４３と変換ライブラリ５１のどちらで変換を行うか選択する処理である。この処理を、図２３を用いて説明する。
【０２１２】
図２３は、リソース管理４６が、ＭＬＢ４３と変換ライブラリ５１のいずれかを選択するために用いる表である。この表は、変換する前の画像データの形式と、その画像データをどの形式に変換するかの２つの形式から、係数を求めるための表である。なお、この表は、配列などを用いて予めプログラムに組み込んでも良いし、不揮発性の記憶装置であるＨＤＤ６５に記憶させておいて、プログラムで読み込むようにしても良い。
【０２１３】
以下、表の説明をする。表の横方向に並ぶ項目は、変換される前の画像データの形式である入力形式を示し、表の縦方向に並ぶ項目は、変換する形式である出力形式を示している。まず入力形式について説明する。入力形式は、ＣＭＹＫ、ｓＲＧＢ、ＲＧＢの３種類ある。このうち、ＣＭＹＫは、さらに１bit raw、２bit raw、８bit raw、ＮＦＣ１の４種類ある。また、ｓＲＧＢとＲＧＢは、８bit
raw、ＪＰＥＧの２種類ある。
【０２１４】
次に、出力形式について説明する。出力形式は、GrayscaleとColorの２種類ある。このうち、Grayscaleは、さらに１bit raw、８bit raw、ＪＰＥＧ、ＭＨ／ＭＲ／ＭＭＲ、ＮＦＣ１がある。また、ColorはさらにＣＭＹＫ，ｓＲＧＢ、ＲＧＢの３種類ある。さらにＣＭＹＫには、８bit raw、ＮＦＣ１がある。ｓＲＧＢとＲＧＢには、８bit raw、ＪＰＥＧの２種類ある。
【０２１５】
次に、係数の求め方であるが、例えば入力形式が、ＣＭＹＫの８bit rawであり、出力形式が、ＲＧＢのＪＰＥＧの場合、それらの交差するボックスの数字の８が係数となる。他の例として、例えば入力形式が、ｓＲＧＢの８bit rawであり、出力形式が、同じｓＲＧＢの８bit rawの場合、変換する必要がないので、０が係数となる。
【０２１６】
次に、この係数と、変換する画像データのサイズの積を求める。例えば、画像データのサイズが４ＭＢであり、係数が８であれば、積は３２となる。また、画像データのサイズが０．５ＭＢであり、係数が６であれば、積は３となる。さらに、画像データのサイズが４ＭＢであり、係数が０であれば、積は０となる。
【０２１７】
このように、リソース管理４６は、画像データのデータ形式と、画像データが変換されるデータ形式と、画像データのサイズから求まった値、すなわち画像データのデータ形式と画像データのサイズに基づき、ＭＬＢ４３と変換ライブラリ５１のいずれかを選択する。
【０２１８】
さらに、リソース管理４９は、画像データが変換されるデータ形式に基づきＭＬＢ４３と変換ライブラリ５１のいずれで変換するかを選択する。
【０２１９】
以下の説明において上記計算により求まる値を変換計算値とする。
【０２２０】
図２２のステップＳ９０２の説明に戻る。リソース管理４６は、ステップＳ９０２で、上述した計算を行い、変換計算値を変数ＤＳに保持する。次に、リソース管理４６は、ＤＳと１０とを比較し、ＤＳが１０以上の場合は、ステップＳ９０４へ処理を進める。ステップＳ９０４で、リソース管理４６は、要求された実行スレッド５０に対し、ＭＬＢ４３が選択されたことを通知し、処理を終了する。
【０２２１】
また、ＤＳが１０より小さい場合、リソース管理４６は、ステップＳ９０５へ処理を進める。ステップＳ９０５で、リソース管理４６は、ＭＬＢ４３／変換ライブラリのキュー１６８で管理されているＭＬＢ４３、変換ライブラリ５１ごとの全ての画像データの変換計算値を求める。このことを具体的に、図２４を用いて説明する。
【０２２２】
図２４は、ＭＬＢ４３のキューで管理されている画像データの変換計算値の合計と、変換ライブラリ５１のキューで管理されている画像データの変換計算値の合計を表した図である。図２４において、ＭＬＢ４３のキューには、変換計算値が１２、５、６０、４６の４つの画像データが行列を作っている。また、変換ライブラリ５１のキューには、変換計算値が２０、１５、２４、３０、１０、１５の６つの画像データが行列を作っている。
【０２２３】
そして、それぞれの合計は、ＭＬＢ４３のキューが１２３であり、変換ライブラリ５１のキューが１１４となっている。ステップＳ９０５は、これらの１２３と１１４の値を求める処理である。
【０２２４】
このように、リソース管理手段４６は、それぞれＭＬＢ４３と変換ライブラリ５１で既に変換することが定められている画像データに基づき、ＭＬＢ４３と変換ライブラリ５１のうちのいずれで変換するかを選択する。
【０２２５】
このときリソース管理４６は、ＭＬＢ４３のキュー全体の変換計算値を変数Ｓ＿ＭＬＢに代入し、変換ライブラリ５１のキュー全体の変換計算値を変数Ｓ＿ＬＩＢに代入する。
【０２２６】
次のステップＳ９０６で、リソース管理４６は、Ｓ＿ＭＬＢとＳ＿ＬＩＢとを比較する。Ｓ＿ＬＩＢがＳ＿ＭＬＢより大きい場合、リソース管理４６は、ステップＳ９０４へ処理を進め、要求された実行スレッド５０に対し、ＭＬＢ４３が選択されたことを通知し、処理を終了する。
【０２２７】
また、ステップＳ９０６で、Ｓ＿ＬＩＢがＳ＿ＭＬＢ以下の場合、リソース管理４６は、ステップＳ９０７へ処理を進め、要求された実行スレッド５０に対し、変換ライブラリ５１が選択されたことを通知し、処理を終了する。
【０２２８】
このようにしてリソース管理４６は、変換する画像データを、ＭＬＢ４３、変換ライブラリ５１のいずれで変換するかを選択する。そしてリソース管理４６は、実行スレッド５０から選択要求を通知されると、選択結果を実行スレッド５０に通知する。上記ステップＳ９０４とステップＳ９０７は、順番管理段階に対応する。
【０２２９】
次に、実行スレッド５０のステータスがＳ＿ＧＥＴの場合の処理を、図２５のフローチャートを用いて説明する。実行スレッド５０は、ステップＳ１００１で、先ほど値を代入したFLAG_ＭＬＢ_USEの値で処理を分岐する。FLAG_ＭＬＢ_USEがＳＥＴの場合、ステップＳ１００２で、実行スレッド５０は、ＭＬＢ４３のリソースを取得するために、リソース管理４６に対し、リソース取得要求を通知する。ステップＳ１００３で、実行スレッド５０は、リソース管理４６からの通知により、リソースが取得できた場合、ステータスＳ＿ＧＥＴにおける処理を終了する。
【０２３０】
また、ステップＳ１００３で、リソースが取得できなかった場合、実行スレッド５０は、ステータスをＳ＿ＷＡＩＴに遷移し、リソースの解放待ちとなる。
【０２３１】
ステップＳ１００１の処理に戻り、FLAG_ＭＬＢ_USEがＲＥＳＥＴの場合、ステップＳ１００５で、実行スレッド５０は、変換ライブラリ５１のリソースを取得するために、リソース管理４６に対し、リソース取得要求を通知する。ステップＳ１００６で、実行スレッド５０は、リソース管理４６からの通知により、リソースが取得できた場合、ステータスＳ＿ＧＥＴにおける処理を終了する。
【０２３２】
また、ステップＳ１００６で、リソースが取得できなかった場合、実行スレッド５０は、ステップＳ１００４で、ステータスをＳ＿ＷＡＩＴに遷移し、リソースの解放待ちとなる。
【０２３３】
このように実行スレッド５０は、選択結果を通知されると、リソース管理４６に対し、選択されたＭＬＢ４３または変換ライブラリ５１のリソースを取得するリソース取得要求を通知する。
【０２３４】
次に、上記フローチャートにおけるリソース管理４６側の処理を示すフローチャートを、図２６を用いて説明する。ステップＳ１１０１で、リソース管理４６は、実行スレッド５０よりリソース取得要求を通知される。次に、ステップＳ１１０２で、リソース管理４６は、ＭＬＢ４３に対するリソース取得要求かどうか判断する。ＭＬＢ４３に対するリソース取得要求の場合、リソース管理４６は、ステップＳ１１０３で、ＭＬＢ４３のキューに待ちがあるかどうか判断する。待ちがない場合、リソース管理４６は、ステップＳ１１０４で、リソースが取得できたことを実行スレッド５０に通知し、処理を終了する。
【０２３５】
このように、リソース管理４６は、要求されたリソースが取得可能であれば、実行スレッド５０に対し、リソースが取得可能であることを通知する。
【０２３６】
ステップＳ１１０３で、ＭＬＢ４３のキューに待ちがある場合、リソース管理４６は、ステップＳ１１０５で、ＭＬＢ４３のキューに要求してきた実行スレッドのＩＤをキューに追加する。そして、リソース管理４６は、ステップＳ１１０６で、リソースに空きがなく、ＢＵＳＹ状態であることを実行スレッド５０に通知し、処理を終了する。
【０２３７】
このように、リソース管理４６は、要求されたリソースが取得できない場合、実行スレッド５０が変換する画像データの順番を、キューで管理する。
【０２３８】
ステップＳ１１０２の処理に戻り、ステップＳ１１０２で、リソース取得要求が変換ライブラリ５１に対する要求の場合、リソース管理４６は、ステップＳ１１０７で、変換ライブラリ５１のキューに待ちがあるかどうか判断する。待ちがない場合、リソース管理４６は、ステップＳ１１０９で、リソースが取得できたことを実行スレッド５０に通知し、処理を終了する。
【０２３９】
ステップＳ１１０７で、変換ライブラリ５１のキューに待ちがある場合、リソース管理４６は、ステップＳ１１０８で、変換ライブラリ５１のキューに要求してきた実行スレッドのＩＤを積む。そして、リソース管理４６は、ステップＳ１１０６で、リソースに空きがなく、ＢＵＳＹ状態であることを実行スレッド５０に通知し、処理を終了する。
【０２４０】
次に、実行スレッド５０がリソース取得待ちのステータスとしてのＳ＿ＷＡＩＴの状態からリソースが取得でき、ステータスがＳ＿ＧＥＴになるまでの処理を、図２７のフローチャートを用いて説明する。
【０２４１】
ステップＳ１２０１で、実行スレッド５０は、リソース管理４６からリソースが空いたことを受信する。次に、ステップＳ１２０２で、実行スレッド５０は、取得できるリソースが、ＭＬＢ４３の場合、ステップＳ１２０３で、実行スレッド５０内の処理で用いるフラグであるFLAG_ＭＬＢ_USEにＭＬＢ４３を使用することを示すＳＥＴを代入し、Ｓ＿ＷＡＩＴにおける処理を終了する。
【０２４２】
また、取得できるリソースが、変換ライブラリ５１の場合、実行スレッド５０は、ステップＳ１２０４でFLAG_ＭＬＢ_USEに変換ライブラリ５１を使用することを示すＲＥＳＥＴを代入し、Ｓ＿ＷＡＩＴにおける処理を終了する。
【０２４３】
以上説明した処理を、実行スレッド５０が生成するタスクを用いて説明する。最初に、図２８を用いて、ＭＬＢ４３を使用する場合の処理を説明する。図２８は、実行スレッド５０とＭＬＢ制御部４７とＭＬＢ４３間のシーケンス図である。また、図２８には、実行スレッド５０のステータス、及びタスクの内容も示されている。
【０２４４】
以下、シーケンス図について説明する。図２８に示されるシーケンス図は、ＭＬＢ４３のリソースが使用可能となり、実行スレッド５０のステータスが、Ｓ＿ＥＸＥとなった状態から変換処理が終了するまでの処理が示されている。
【０２４５】
ステータスがＳ＿ＥＸＥになると、実行スレッド５０が生成したタスクのJob_PARAM_SETが動作する。これは、ＭＬＢ４３で処理を行うために必要なパラメータをセットする処理である。
【０２４６】
パラメータのセットが終了すると、次に、Job_ＭＬＢ_REQが動作し、ＭＬＢ制御部４７に対し、ステップＳ１３０１で、ＭＬＢスタートを通知する。この通知は、メールで行われるが、実行スレッド５０とＭＬＢ制御部４７との間の他のやり取りもメールで行われる。
【０２４７】
このように、実行スレッド５０は、ＭＬＢ４３のリソースが使用可能となると、ＭＬＢ制御部４７に対し、画像データを変換するための画像データ変換要求であるＭＬＢスタートを通知する。
【０２４８】
ＭＬＢスタートを通知すると、実行スレッド５０のステータスは、ＭＬＢ４３の変換処理が終了するまで待ち状態となるため、Ｓ＿ＷＡＩＴとなる。
【０２４９】
ＭＬＢスタートを通知されたＭＬＢ制御部４７は、ＭＬＢ４３に対し、ステップＳ１３０２で、画像データを変換し、所定の位置へ書き込む要求であるＷＲＩＴＥを通知する。これにより、ＭＬＢ４３は、画像データの変換処理を行う。ＭＬＢ４３は、変換処理が終了すると、ステップＳ１３０３でＭＬＢ制御部４７に変換処理が終了したことを示すＲＥＡＤを通知する。ＲＥＡＤを通知されたＭＬＢ制御部４７は、ステップＳ１３０４で、実行スレッド５０に対し、終了を通知する。
【０２５０】
このように、画像データ変換要求であるＭＬＢスタートを通知されたＭＬＢ制御部４７は、ＭＬＢ４３に対し、画像データの変換をさせる。また、ＭＬＢ制御部４７は、ＭＬＢ４３が画像データの変換が終了すると、画像データ変換要求を通知した実行スレッド４８に対し、変換が終了したことを通知する。
【０２５１】
終了を通知された実行スレッド５０のステータスは、待ち状態が解除されたため、Ｓ＿ＷＡＩＴからＳ＿ＥＮＤに遷移する。これにより、タスクの終了を示すJob_NOPに示されるように、タスクの処理は終了する。そして、実行スレッド５０は、ＭＬＢのリソースを解放する。
【０２５２】
以上で一連の変換処理は終了するので、実行スレッド５０のステータスは、Ｓ＿ＩＤＬＥとなる。
【０２５３】
次に、図２９を用いて、変換ライブラリ５１を使用する場合の処理を説明する。図２９は、実行スレッド５０と変換ライブラリ５１間のシーケンス図である。また、図２９には、実行スレッド５０のステータス、及びタスクの内容も示されている。
【０２５４】
以下、シーケンス図について説明する。図２９に示されるシーケンス図は、変換ライブラリ５１のリソースが使用可能となり、実行スレッド５０のステータスが、Ｓ＿ＥＸＥとなった状態から変換処理が終了するまでの処理が示されている。
【０２５５】
ステータスがＳ＿ＥＸＥになると、実行スレッド５０が生成したタスクのJob_PARAM_SETが動作する。これは、変換ライブラリ５１で処理を行うために必要なパラメータをセットする処理である。
【０２５６】
パラメータのセットが終了すると、実行スレッド５０は、ステップＳ１４０１で、変換ライブラリ５１を関数コールする。そして、ステップＳ１４０２で変換処理が終了することにより、実行スレッド５０のステータスはＳ＿ＥＮＤに遷移する。
【０２５７】
この処理に示されるように、変換ライブラリ５１はスレッドではないため、メールを用いることなく変換処理を行うことができる。関数コールの場合、関数をコールするプログラムのアドレスから関数のあるアドレスへプログラムカウンタがジャンプし、そのまま変換処理が実行される。そして関数の処理が終了すると、先ほどジャンプしたアドレスの次のアドレスから処理が実行される。すなわち、変換処理は、実質的に実行スレッドの処理として行われる。
【０２５８】
また、関数における処理をさらに高速化するために、関数をＣ言語のインライン関数とすると、関数をコールしていた場所に、直接に関数のコードが埋め込まれるため、プログラムサイズは大きくなるが高速化が可能となる。これは、上述したプリプロセッサで関数を定義しておいても可能である。
【０２５９】
次に、上記シーケンス図における処理を、フローチャートで表した図３０の説明をする。
【０２６０】
ステップＳ１５０１で、実行スレッド５０は、FLAG_ＭＬＢ_USEフラグで処理を分岐する。変換ライブラリ５１で変換する場合は、ステップＳ１５０２で変換ライブラリ５１のパラメータを設定する。そして、実行スレッド５０は、ステップＳ１５０３で関数コールを行い、ステップＳ１５０４で変換が終了し、ステップＳ１５０８のJob_NOPで処理を終了する。
【０２６１】
ステップＳ１５０１で、ＭＬＢ４３で変換する場合、実行スレッド５０は、ステップＳ１５０５でＭＬＢ４３のパラメータを設定する。そして、実行スレッド５０は、ＭＬＢ制御部４７に対し、ステップＳ１５０６で、Job_ＭＬＢ_REQを実行し、ステップＳ１５０７でＭＬＢ制御部４７からの終了を受信する。実行スレッド５０は、ステップＳ１５０８のJob_NOPで処理を終了する。
【０２６２】
上記ステップＳ１５０３とステップＳ１５０６は、画像データ変換段階に対応する。
【０２６３】
以上が、ＭＬＢ４３と変換ライブラリ５１とを効率よく利用するための処理である。
【０２６４】
次に、３つめの処理について説明する。この処理は、上述したキューの管理方法についての処理である。
【０２６５】
このキューの管理方法について、まず、図３１を用いて説明する。
【０２６６】
図３１には、実行スレッドＡのステータス遷移図１６０と、実行スレッドＢのステータス遷移図１６９と、実行スレッドＤのステータス１７１と、処理が終了した実行スレッドＣ１７０と、ＭＬＢ制御部４７のステータス遷移図１６１、及び、リソース管理４６が管理するＭＬＢ４３のキュー１９１、１９３と変換ライブラリ５１のキュー１９２、１９４が示されている。このように、リソース管理４６は、キューをＭＬＢ４３、変換ライブラリ５１ごとに有する。なお、キュー１９３、１９４は、キュー１９１、１９２の状態からスレッドＣ、Ｂが要求した変換処理後のキューを表している。
【０２６７】
次に、図３１で行われる処理の概要について説明する。スレッドＡが変換する画像データは、キュー１９２に示されるように、変換ライブラリ５１のキューで最初は管理されている。そして、ＭＬＢ４３と変換ライブラリ５１が変換処理を開始すると、ハードウェアであるＭＬＢ４３の処理が速いため、キュー１９１に管理されている実行スレッドＣと実行スレッドＢが要求した画像データの変換が終了する。そこで、キュー１９４とキュー１９３に示されるように、空になったキュー１９１に、リソース管理４６はスレッドＡが変換する画像データの順位を並び変える。
【０２６８】
次に上記処理の詳細を説明する。実行スレッドＡのステータスは、まず初期化処理を行っている状態を示すステップＳ１６０１のＳ＿ＩＮＩＴとなる。この初期化処理は、例えば、使用する変数の初期化などが行われる処理である。
【０２６９】
初期化を終えた実行スレッドＡのステータスは、ステップＳ１６０２のＳ＿ＩＤＯＬに遷移する。このＳ＿ＩＤＯＬは、実質的な処理は何もしていないステータスである。
【０２７０】
このステータスで、実行スレッドＡがＩＭＨ４１から変換要求を通知されると、ステータスは、ステップＳ１６０３のＳ＿ＳＥＴに遷移する。このステータスは、要求に応じたタスクを生成する処理が行われるステータスである。このとき、実行スレッドＡは、リソース管理４６に対し、ＭＬＢ４３と変換ライブラリ５１のいずれを用いて変換するかを問い合わせる。そして、リソース管理４６は、後述する選択方法によりいずれかを選択し、その選択結果を実行スレッドＡに返す。今の場合、スレッドＡが変換する画像データは、変換ライブラリ５１で変換することが選択されるため、変換ライブラリ５１のキュー１９２が選択される。
【０２７１】
次に、実行スレッドＡのステータスは、ステップＳ１６０４で、リソース管理４６が先ほど選択したリソースを取得するステータスであるＳ＿ＧＥＴとなる。
【０２７２】
このようにして、ステータスがＳ＿ＧＥＴになると、次のステータスは、タスクに必要なリソースが取得できたかどうかで、２つに分かれる。今の場合、キューの説明であるので、リソースが取得できないとして説明する。
【０２７３】
ステータスＳ＿ＧＥＴにおいて、実行スレッドＡは、リソース管理４６にリソース取得要求を行い、リソース取得応答で、取得できなかったことが通知される。また、このときのリソース取得要求により、スレッドＡが変換する画像データはキュー１９２に管理される。
【０２７４】
このように、ステータスＳ＿ＧＥＴのときにリソースが取得できなかった場合、ステータスは、ステップＳ１６０５のＳ＿ＥＸＥに遷移せず、ステップＳ１６１０のＳ＿ＷＡＩＴに遷移する。また、キュー１９１、１９２での画像データの順番は、リソース取得要求を通知してきた実行スレッドＡのＩＤで管理される。これは、実行スレッド１つあたり、一つの画像データしか変換しないため、実行スレッドＡのＩＤを積めば情報として十分である。
【０２７５】
実行スレッドＡは、Ｓ＿ＷＡＩＴのステータスで、リソースが取得可能になるまで待つ。
【０２７６】
そのとき、スレッドＣの画像データの変換が終了し、次の画像データであるスレッドＢの画像データの変換が行われ、終了する。画像データの変換が終了したスレッドＢは、リソース管理４６にＭＬＢ４３のリソースを解放したことを通知する。
【０２７７】
このとき、リソース管理４６は、上述したように、空になったキュー１９１に、スレッドＡが変換する画像データの順位を並び変える。
【０２７８】
これにより、スレッドＡの画像データを変換するリソースが取得できたので、リソース管理４６から、リソースが取得可能となったことが通知されると、ステップＳ１６０５のＳ＿ＥＸＥにスレッドＡのステータスが遷移する。
【０２７９】
実行スレッドＡは、ステップＳ１６０５のＳ＿ＥＸＥに遷移すると、ＭＬＢ制御部４７に対し、画像データ変換要求を行う。
【０２８０】
これにより、ステータスは、ステップＳ１６１０のＳ＿ＷＡＩＴに遷移する。このステータスは、ＭＬＢ制御部４７からの応答を待つステータスである。そして、ＭＬＢ制御部４７からの応答があると、ステータスは、変換処理が継続される場合は再びステップＳ１６０５のＳ＿ＥＸＥに遷移し、継続の必要がない場合は、ステップＳ１６１１のＳ＿ＥＮＤに遷移する。
【０２８１】
ステータスがＳ＿ＥＮＤに遷移すると、実行スレッドＡは、タスクを終了するか、次のタスクを実行するかどうか判断する。タスクを終了する場合は、処理が終了するためステップＳ１６０２のＳ＿ＩＤＯＬにステータスは遷移する。次のタスクを実行する場合は、ステータスは再びステップＳ１６０４のＳ＿ＧＥＴに遷移する。
【０２８２】
次に、ＭＬＢ制御部４７のステータス遷移図１６１を説明する。実行スレッドＡからの要求により、ＭＬＢ制御部４７のステータスは、タスクを生成するステータスであるステップＳ１６０６のＳ＿ＳＥＴとなる。次に、ＭＬＢ制御部４７のステータスは、ステップＳ１６０７のＳ＿ＥＸＥとなり、ＭＬＢ制御部４７は、画像データの変換を行うために、ＭＬＢ４３のレジスタに対し、パラメータをセットする。これによりステータスは、処理の実行中を示すステップＳ１６０８のＳ＿ＲＵＮに遷移する。
【０２８３】
ＭＬＢ４３の変換処理が終了すると、ＭＬＢ制御部４７のステータスは、変換処理の終了を示すステップＳ１６０９のＳ＿ＣＬＯＳＥとなる。そしてこのとき、ＭＬＢ制御部４７は、実行スレッドＡに変換の終了を通知し、処理を終了する。
【０２８４】
このように、リソース管理４６は、リソースが使用可能となると、キューに管理されている順番に基づき、リソースの取得を要求した実行スレッドＡに対し、リソースが取得可能であることを通知する。
【０２８５】
以上説明したキューの並び替え処理の詳細を、図面を用いて説明する。最初に、図３２のフローチャートの説明をする。このフローチャートは、実行スレッド５０によるリソースの解放を受信した時のリソース管理４６の処理を示すフローチャートである。
【０２８６】
ステップＳ１７０１で、リソース管理４６は、実行スレッド５０からリソースの解放を受信する。次のステップＳ１７０２で、リソース管理４６は、解放されるリソースがＭＬＢ４３のリソースであるかどうか判断する。解放されるリソースが、変換ライブラリ５１のリソースの場合、リソース管理４６は、次のステップＳ１７０３で変換ライブラリ５１のリソースが空き、ＭＬＢ４３のキューに待ちがないかどうか判断する。リソース管理４６は、ＭＬＢ４３のキューに待ちがないと判断した場合、並び替えに関する処理を終了する。
【０２８７】
ステップＳ１７０３で変換ライブラリ５１のリソースに空きがあり、ＭＬＢ４３のキューに待ちがある場合、リソース管理４６は、ステップＳ１７０４でＭＬＢ４３のキューの先頭で管理されており、一番最初に処理される画像データの順番を、変換ライブラリ５１のキューに移動する。
【０２８８】
次のステップＳ１７０５で、リソース管理４６は、リソースの空きを待っている実行スレッド５０にリソースが空いたことと、ＭＬＢ４３で変換せず、変換ライブラリ５１で変換することになったことを通知し、並び替えに関する処理を終了する。
【０２８９】
ステップＳ１７０２の処理に戻り、解放されるリソースがＭＬＢ４３のリソースでの場合、リソース管理４６は、次のステップＳ１７０６でＭＬＢ４３のリソースに空きがあり、変換ライブラリ５１のキューに待ちがないかどうか判断する。リソース管理４６は、変換ライブラリ５１のリソースも空いていると判断した場合、並び替えに関する処理を終了する。
【０２９０】
ステップＳ１７０６でＭＬＢ４３のリソースに空きがあり、変換ライブラリ５１のキューに待ちがある場合、リソース管理４６は、ステップＳ１７０７で変換ライブラリ５１のキューの先頭で管理されており、一番最初に処理される画像データの順番を、ＭＬＢ４３のキューに移動する。次のステップＳ１７０８で、リソース管理４６は、リソースの空きを待っている実行スレッド５０にリソースが空いたことと、変換ライブラリ５１で変換せず、ＭＬＢ４３で変換することになったことを通知し、並び替えに関する処理を終了する。上記ステップＳ１７０４とステップＳ１７０７は、並び替え段階に対応する。
【０２９１】
上述したフローチャートにおける並び替えは種々の方法がある。その例を以下説明する。なお、以下の説明において、プロセス系、ユーティリティ系という表現が出てくる。プロセス系とは、主にスキャナで読み取る動作などの機械の動作を伴う処理を表す。この処理は、リアルタイム性が必要なため、優先度の高い処理となる。また、ユーティリティ系は、リアルタイム性をさほど求められない処理である。このように、リソース管理４６は、変換する画像データをプロセス系とユーティリティ系という種類に予め分類している。
【０２９２】
並び替え方法の第１のパターンを、図３３を用いて説明する。図３３は、リソース管理４６が、ＭＬＢ４３のキューに管理されていた画像データの変換が終了すると、変換ライブラリ５１のキューの先頭で管理されている画像データの順番を、ＭＬＢ４３のキューの最後尾に並び替えて管理することを示す図である。
【０２９３】
このように、優先度の高いプロセス系の画像データの変換処理をＭＬＢ４３のキューの最後尾に並び替えることにより、高速に処理をすることが可能となる。
【０２９４】
次に、図３４を用いて第２のパターンを説明する。図３４は、リソース管理４６が、ＭＬＢ４３のキューに管理されていた画像データの変換が終了すると、変換ライブラリ５１のキューの最後尾で管理されている画像データの順番を、ＭＬＢ４３のキューの最後尾に並び替えて管理することを示す図である。
【０２９５】
このように、優先度の高いプロセス系の画像データの変換処理をＭＬＢ４３のキューの最後尾に並び替えることにより、高速に処理をすることが可能となる。
【０２９６】
続いて第３、第４のパターンを説明するが、第３、第４のパターンでは、図２３で説明した表が用いられる。
【０２９７】
第３のパターンを、図３５を用いて説明する。第３のパターンは、変換計算値が最も大きい画像データの並べ替えである。図３５に示されるように、変換ライブラリ５１のキューで最も変換計算値が大きいのは、係数が５で、データサイズが２のユーティリティ系の画像データである。この画像データの順番を、ＭＬＢ４３のキューの最後尾に並び替える。このようにすることにより、変換計算値が大きい画像データを、高速な処理が可能なＭＬＢ４３で行うことにより、変換処理を効率化することができる。
【０２９８】
第４のパターンを、図３６を用いて説明する。第４のパターンは、変換計算値が最も小さい画像データの並べ替えである。図３６に示されるように、変換ライブラリのキューで最も変換計算値が小さいのは、係数が１で、データサイズが１のプロセス系の画像データである。この画像データの順番を、ＭＬＢ４３のキューの最後尾に並び替える。このようにすることにより、変換計算値が大きい画像データを、高速な処理が可能なＭＬＢ４３で行うことにより、変換処理を効率化することができる。
【０２９９】
このように、リソース管理４６は、画像データのデータ形式と、画像データが変換されるデータ形式と、画像データのサイズに値に基づき、画像データの順番を管理する順番を並び替える。
【０３００】
次に、図３７を用いてそれぞれキューで管理されている画像データの変換計算値の合計に基づいて並び替える処理の説明をする。
【０３０１】
ステップＳ１８０１で、リソース管理４９は、実行スレッド４８から、リソースを解放したことを受信する。ステップＳ１８０２で、リソース管理４９は、ＭＬＢ４３と変換ライブラリ５１のキューの変換計算値の合計を計算する。
【０３０２】
この変換計算値の合計の求め方について図２４で説明した通りである。図２４に示されるように、それぞれの合計は、ＭＬＢ４３のキューが１２３であり、変換ライブラリのキューが、１１４となっている。ステップＳ１８０２は、これらの１２３と１１４の値を求める処理である。
【０３０３】
このときリソース管理４６は、ＭＬＢ４３のキュー全体の変換計算値を変数Ｓ＿ＭＬＢに代入し、変換ライブラリ５１のキュー全体の変換計算値を変数Ｓ＿ＬＩＢに代入する。
【０３０４】
リソース管理４６は、ステップＳ１８０３で、Ｓ＿ＭＬＢとＳ＿ＬＩＢとの値を比較する。Ｓ＿ＭＬＢがＳ＿ＬＩＢ以上の場合、ステップＳ１８０６へ処理を進め、ＭＬＢ４３のキューに待ちの画像データがあるかどうか判断する。待ちの画像データがない場合、リソース管理４６は、ステップＳ１８０８に処理を進める。待ちの画像データがある場合、リソース管理４６は、ステップＳ１８０７で、ＭＬＢ４３のキューの先頭に管理されている画像データを変換ライブラリ５１のキューに移動することにより並べ替え、ステップＳ１８０８に処理を進める。
【０３０５】
ステップＳ１８０３の処理に戻り、Ｓ＿ＭＬＢがＳ＿ＬＩＢより小さい場合、ステップＳ１８０４へ処理を進め、変換ライブラリ５１のキューに待ちの画像データがあるかどうか判断する。待ちの画像データがない場合、リソース管理４６は、ステップＳ１８０８に処理を進める。待ちの画像データがある場合、リソース管理４６は、ステップＳ１８０５で、変換ライブラリ５１のキューの先頭に管理されている画像データをＭＬＢ４３のキューに移動することにより並べ替え、ステップＳ１８０８に処理を進める。
【０３０６】
以上説明したステップＳ１８０７までが並べ替えの処理である。次のステップＳ１８０８からは、実行スレッド５０へリソースが空いたことの通知をする処理である。
【０３０７】
ステップＳ１８０８で、リソース管理４６は、解放されたリソースがＭＬＢ４３であるかどうか判断する。解放されたリソースがＭＬＢ４３の場合、リソース管理４６は、ステップＳ１８０９で、ＭＬＢ４３のキューに待ちの画像データがあるかどうか判断し、待ちの画像データがない場合は処理を終了する。待ちの画像データがある場合、リソース管理４６は、ステップＳ１８１０で、ＭＬＢ４３のキューの先頭で管理されている画像データを変換する実行スレッド５０へリソースが空いたことと、ＭＬＢ４３で変換することを通知し、処理を終了する。
【０３０８】
ステップＳ１８０８の処理に戻り、解放されたリソースが変換ライブラリ５１の場合、リソース管理４６は、ステップＳ１８１１で、変換ライブラリ５１のキューに待ちの画像データがあるかどうか判断し、待ちの画像データがない場合は処理を終了する。待ちの画像データがある場合、リソース管理４６は、ステップＳ１８１２で、変換ライブラリ５１のキューの先頭で管理されている画像データを変換する実行スレッド５０へリソースが空いたことと、変換ライブラリ５１で変換することを通知し、処理を終了する。
【０３０９】
次に、プロセス系に属する画像データの順番を、既にキューに管理されている画像データの順番に割り込ませる処理について、図３８を用いて説明する。図３８には、２つのキュー２０５、２０６が示されており、キュー２０５にプロセス系の画像データがさらに追加されたキューが、キュー２０６である。また、このキューには、対応する画像データの係数と、データサイズと、変換計算値と、合計とが記されている。係数は、図２３で示した係数である。例えば、キュー２０５の先頭のプロセス系の画像データは、計数が１で、データサイズが２で、変換計算値が２で、合計が２となっている。
【０３１０】
なお、この合計とは、キューに管理されている画像データの変換計算値の合計である。例えば２番目のユーティリティ系までの合計は、１番目のプロセス系の変換計算値２と２番目のユーティリティ系の変換計算値４とを足した６となる。このように、合計は、その画像データまでの変換計算値の合計となっている。
【０３１１】
この合計を用いて、割り込ませる条件を定めておく。具体的には、例えばプロセス系の画像データは、変換計算値の合計が５以下の順番のうち、もっとも大きい順番に割り込ませる、というように定めておく。
【０３１２】
その条件のもと、キュー２０５の管理状態に、プロセス系の画像データを管理するとする。そうすると、キュー２０５で、合計が５以下の順番は、１番か２番である。そこで、キュー２０６に示されるように、新たに管理するプロセス系の画像データの順番は、５以下の順番で、もっとも大きい順番である２番目と定まる。
【０３１３】
このように、割り込ませる順番は、キューに管理されている画像データのデータ形式、データサイズ、画像データが変換されるデータ形式に基づいて定められる。
【０３１４】
次に、同一の種類に属する画像データがキューにおいて管理される順番を、１つ以上連続させた順番で管理することを、図３９、４０を用いて説明する。図３９は、プロセス系の画像データは２つまで連続させ、ユーティリティ系の画像データは３つまで連続して管理することを示す図である。
【０３１５】
また、図４０は、プロセス系の画像データは３つまで連続させ、ユーティリティ系の画像データは１つまで連続して管理することを示す図である。
【０３１６】
このように、リソース管理４６は、一の種類に属する画像データがキューにおいて管理される順番を、１つ以上連続させた順番で管理する。
【０３１７】
このように管理することにより、割り込みがあった場合も、同一の種類の画像データだけ変換されることを防ぐことができる。
【０３１８】
【発明の効果】
以上説明したように、本発明によれば、画像データの変換処理の効率を向上した画像形成装置、画像データ変換方法が得られる。
【図面の簡単な説明】
【図１】本発明による融合機の一実施例の構成図である。
【図２】本発明による融合機の一実施例のハードウェア構成図である。
【図３】ＭＬＢを示す図である。
【図４】変換機能を示す図である。
【図５】ＭＬＢにおける画像データの流れを示す図である。
【図６】画像データ領域を示す図である。
【図７】変換処理における画像データ領域の様子を示す図である。
【図８】変換処理における画像データ領域の様子を示す図である。
【図９】本発明の実施の形態におけるＭＥＵの詳細を示す図である。
【図１０】ステータスの遷移を示す図である。
【図１１】ステータスの遷移を示すフローチャートである。
【図１２】画像データ変換処理を示すフローチャートである。
【図１３】画像データ変換処理を示すフローチャートである。
【図１４】第１のパターンにおける処理を示すシーケンス図である。
【図１５】画像データ領域を示す図である。
【図１６】第２のパターンにおける処理を示すシーケンス図である。
【図１７】画像データ領域を示す図である。
【図１８】第３のパターンにおける処理を示すシーケンス図である。
【図１９】画像データ領域を示す図である。
【図２０】ステータスの遷移を示す図である。
【図２１】実行スレッドの処理を示すフローチャートである。
【図２２】リソース管理の処理を示すフローチャートである。
【図２３】ＭＬＢと変換ライブラリのいずれかを選択するために用いる表である。
【図２４】変換計算値の合計を示す図である。
【図２５】実行スレッドの処理を示すフローチャートである。
【図２６】リソース管理の処理を示すフローチャートである。
【図２７】実行スレッドの処理を示すフローチャートである。
【図２８】ＭＬＢを使用する場合の処理を示すシーケンス図である。
【図２９】変換ライブラリを使用する場合の処理を示すシーケンス図である。
【図３０】実行スレッドと生成したタスクの処理を示すフローチャートである。
【図３１】ステータスの遷移を示す図である。
【図３２】リソース管理の処理を示すフローチャートである。
【図３３】キューの並び替えを示す図である。
【図３４】キューの並び替えを示す図である。
【図３５】キューの並び替えを示す図である。
【図３６】キューの並び替えを示す図である。
【図３７】リソース管理の処理を示すフローチャートである。
【図３８】キューの割り込みを示す図である。
【図３９】連続して管理することを示す図である。
【図４０】連続して管理することを示す図である。
【図４１】従来例の処理を示すシーケンス図である。
【符号の説明】
１…融合機
２…ソフトウェア群
３…融合機起動部
４…ハードウェア資源
５…アプリケーション層
６…プラットホーム層
９…コントロールサービス層
１０…ハンドラ層
１１…スキャナ
１２…プロッタ
１３…その他のハードウェアリソース
２１…プリンタアプリ
２２…コピーアプリ
２３…ファックスアプリ
２４…スキャナアプリ
３１…ネットワークコントロールサービス（ＮＣＳ）
３２…デリバリーコントロールサービス（ＤＣＳ）
３３…オペレーションパネルコントロールサービス（ＯＣＳ）
３４…ファックスコントロールサービス（ＦＣＳ）
３５…エンジンコントロールサービス（ＥＣＳ）
３６…メモリコントロールサービス（ＭＣＳ）
３７…ユーザインフォメーションコントロールサービス（ＵＣＳ）
３８…システムコントロールサービス（ＳＣＳ）
３９…システムリソースマネージャ（ＳＲＭ）
４０…ファックスコントロールユニットハンドラ（ＦＣＵＨ）
４１…イメージメモリハンドラ（ＩＭＨ）
４３…ＭＬＢ
４４…ＭＥＵ
４５…画像データ変換処理部
４７…ＭＬＢ制御部
４８…メインスレッド
４９…配信スレッド
５０…実行スレッド
５１…変換ライブラリ
５２…オペレーションパネル
５３…アプリケーションプログラムインターフェース（ＡＰＩ）
５４…エンジンＩ／Ｆ
６０…コントローラボード
６１…ＣＰＵ
６２…ノースブリッジ（ＮＢ）
６３…システムメモリ（ＭＥＭ−Ｐ）
６４…ローカルメモリ（ＭＥＭ−Ｃ）
６５…ハードディスク装置（ＨＤＤ）
６６…ＡＳＩＣ
６７…ＡＧＰ（Accelerated Graphics Port）
６８…ファックスコントロールユニット（ＦＣＵ）
６９…Ｇ３対応ユニット
７０…Ｇ４対応ユニット
７１…エンジン
７３…サウスブリッジ（ＳＢ）
７４…ＮＩＣ
７５…ＵＳＢデバイス
７６…ＩＥＥＥ１３９４デバイス
７７…セントロニクスデバイス
７８…ＭＬＣ
７９…Ｒｉ１０
８０…ＲＪ２Ｋ
８１…伸長部
８２…多値変換部
８３…変倍部
８４…色変換部
８５…圧縮部
８６…変換部
１０１…ＳＲＣ領域
１０２…ＤＳＴ領域
１２１、１２２、１２３、１２４、１２５、１２６、１２７、１２８、１２９、１３０、１３１、１３２、１３３、１３４、１３５、１３６、１３７、１３８、１３９、１４０、１４１、１４２、１４３、１４４、１４５、１４６、１４７、１４８、１４９、１５０、１５１、１５２、１５３．１５４、１５５、１５６、１５７、１５８、１５９、１６２、１６３、１６４、１６５、１６６、１６７、２０１、２０２、２０３、２０４…画像データ領域
１６０、１６１、１６９…ステータス遷移図
１７０…実行スレッドＣ
１７１…ステータス
１６８、１９１、１９２、１９３、１９４、２０５、２０６…キュー
【図１】
2004166222.tif 000003
【図２】
2004166222.tif 000004
【図３】
2004166222.tif 000005
【図４】
2004166222.tif 000006
【図５】
2004166222.tif 000007
【図６】
2004166222.tif 000008
【図７】
2004166222.tif 000009
【図８】
2004166222.tif 000010
【図９】
2004166222.tif 000011
【図１０】
2004166222.tif 000012
【図１１】
2004166222.tif 000013
【図１２】
2004166222.tif 000014
【図１３】
2004166222.tif 000015
【図１４】
2004166222.tif 000016
【図１５】
2004166222.tif 000017
【図１６】
2004166222.tif 000018
【図１７】
2004166222.tif 000019
【図１８】
2004166222.tif 000020
【図１９】
2004166222.tif 000021
【図２０】
2004166222.tif 000022
【図２１】
2004166222.tif 000023
【図２２】
2004166222.tif 000024
【図２３】
2004166222.tif 000025
【図２４】
2004166222.tif 000026
【図２５】
2004166222.tif 000027
【図２６】
2004166222.tif 000028
【図２７】
2004166222.tif 000029
【図２８】
2004166222.tif 000030
【図２９】
2004166222.tif 000031
【図３０】
2004166222.tif 000032
【図３１】
2004166222.tif 000033
【図３２】
2004166222.tif 000034
【図３３】
2004166222.tif 000035
【図３４】
2004166222.tif 000036
【図３５】
2004166222.tif 000037
【図３６】
2004166222.tif 000038
【図３７】
2004166222.tif 000039
【図３８】
2004166222.tif 000040
【図３９】
2004166222.tif 000041
【図４０】
2004166222.tif 000042
【図４１】
2004166222.tif 000043