JP4141342B2 - 画像形成装置 - Google Patents

画像形成装置 Download PDF

Info

Publication number
JP4141342B2
JP4141342B2 JP2003203079A JP2003203079A JP4141342B2 JP 4141342 B2 JP4141342 B2 JP 4141342B2 JP 2003203079 A JP2003203079 A JP 2003203079A JP 2003203079 A JP2003203079 A JP 2003203079A JP 4141342 B2 JP4141342 B2 JP 4141342B2
Authority
JP
Japan
Prior art keywords
image data
conversion
queue
mlb
area
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.)
Expired - Fee Related
Application number
JP2003203079A
Other languages
English (en)
Other versions
JP2004166222A (ja
Inventor
秀規 進藤
隆正 岡村
修 木崎
清貴 茂木
史浩 梅津
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003203079A priority Critical patent/JP4141342B2/ja
Priority to US10/637,690 priority patent/US20040109186A1/en
Publication of JP2004166222A publication Critical patent/JP2004166222A/ja
Application granted granted Critical
Publication of JP4141342B2 publication Critical patent/JP4141342B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1214Improving printing performance achieving reduced delay between job submission and print start at the submitting node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storing Facsimile Image Data (AREA)
  • Record Information Processing For Printing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像形成装置に関する。
【0002】
【従来の技術】
近年、プリンタ、コピー、ファクシミリおよびスキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、融合機という)が知られるようになった。この融合機は、1つの筐体内に表示部、印刷部および撮像部などを設けると共に、プリンタ、コピー、ファクシミリおよびスキャナにそれぞれ対応する4種類のソフトウェアを設け、そのソフトウェアを切り替えることより、プリンタ、コピー、ファクシミリおよびスキャナとして動作させるものである。
【0003】
このように、融合機は、異なる種類の画像データを扱うために、画像データのデータ形式の変換を行ったり、画像形成装置のハードウェア資源を節約するために、画像データの圧縮・伸長を行ったりしている。
【0004】
これらの変換は、演算速度の向上や信号処理を行うことが可能となったCPU(Central Processing Unit)などの発達によりソフトウェアである変換ライブラリで行われたりしている。また、パソコンなどでは、専用のハードウェアを用いて変換処理を行うものもある。
【0005】
以下、圧縮・伸長も変換と表現して、変換処理に関する従来例を説明する。
【0006】
図41は、従来例の処理を示すシーケンス図である。このシーケンス図は、ハードディスクと、画像データ管理部と、画像データ変換制御部と、画像データ変換部との間における処理を示したものである。
【0007】
以下、シーケンス図の説明をする。まず最初に、このシーケンス図が示す処理の概要を説明しておく。この処理は、ハードディスクに記憶された画像データを所定の単位で読み込み、変換し、変換された画像データをハードディスクに書き込むという一連の処理を繰り返し行っている処理である。
【0008】
次に、詳細を説明する。最初に画像データ管理部は、ステップS1、ステップS2で、ハードディスクから画像データを読み出し、メモリ領域Sに読み出した画像データを格納する。
【0009】
次に、画像データ管理部は、ステップS3で、画像データ変換制御部に、メモリ領域Sに格納された画像データを変換し、その変換した画像データをメモリ領域Dに格納するように要求する。
【0010】
要求を受けた画像データ変換制御部は、画像データ変換部に対し、ステップS4で、メモリ領域Sに格納されている画像データを変換するように要求する。それに対し、画像データ変換部は、画像データの変換を行い、その変換が終了すると、ステップS22で、画像データ変換制御部に対し、画像データの変換が終了したことを通知する。
【0011】
通知を受けた画像データ変換制御部は、ステップS6で、画像データ管理部に対し、画像データの変換が終了したことを通知する。そして、画像データ管理部は、変換されてメモリ領域Dに格納された画像データを、ステップS7、ステップS8でハードディスクに退避する。
【0012】
次に、画像データ管理部は、ステップS9と、ステップS10とで、再びハードディスクから画像データを読み出し、メモリ領域Sに読み出した画像データを格納する。そして、画像データ管理部は、ステップS11で、画像データ変換制御部に、先ほどと同様、メモリ領域Sに格納された画像データを変換し、その変換した画像データをメモリ領域Dに格納するように要求する。
【0013】
要求を受けた画像データ変換制御部は、画像データ変換部に対し、ステップS12で、メモリ領域Sに格納されている画像データを変換するように要求する。
【0014】
このようにして、ステップS12以降もハードディスクに記録された画像データを読み込み、変換し、変換された画像データをハードディスクに書き込むという一連の処理が引き続き行われる。
【0015】
【発明が解決しようとする課題】
しかしながら、上記従来例では、画像データ変換部が変換処理を行っている間に、変換終了待ちが発生する。また、画像データ管理部がハードディスクへ読み書きを行っている間に、画像データ準備待ちが発生する。
【0016】
また、演算速度の向上や信号処理を行うことが可能となったCPUを用いたとしても、CPUは、変換処理だけではなく、他の膨大な処理も行うため、変換処理時間が安定しない。特に変換処理は、多くの計算が行われるため、このことが顕著である。そのため、ファクシミリやコピーなどの比較的リアルタイム性が求められる処理では、CPUの負荷が高まり、生産性が低下することが多い。
【0017】
さらに、専用のハードウェアを使用したとしても、処理によっては、CPUに余裕がある場合もある。特に、画像形成装置はパソコンと異なり、画像処理が重要な処理であるため、CPUに余裕がある場合は、画像形成装置全体としてフル稼働していないといえ、生産性がよいとはいえない。
【0018】
その結果、最近の画像形成装置は、毎分100枚以上の排紙が可能であるにもかかわらず、その機能が十分に生かすことができなかった。
【0019】
このように、従来の技術では、画像データの変換処理の効率が良いとは言えなかった。
【0020】
本発明は、このような問題点に鑑み、画像データの変換処理の効率を向上した画像形成装置を提供することを目的とする。
【0021】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像データに対し、画像形成に係る変換処理を行う複数の画像データ変換手段を有する画像形成装置であって、前記画像形成に係る変換処理を実行する専用のハードウェアとして構成される第一の画像データ変換手段と、前記第一の画像データ変換手段が実行する前記変換処理と同一の変換処理をプログラムを実行して実現するCPUとして構成される第二の画像データ変換手段と、前記画像データのサイズ、及び、前記変換処理の入力の画像データのデータ形式と前記変換処理の出力の画像データのデータ形式に基づく係数により計算される変換計算値が所定値以上の場合、前記第一の画像データ変換処理手段を選択し、前記所定値未満の場合、前記第二の画像データ変換手段を選択する変換管理手段とを有し、前記変換管理手段は、前記複数の画像データ変換手段が変換する画像データの順番を、前記画像データ変換手段ごとに設けられたキューを用いて管理し、さらに、前記画像データを該画像データに対する処理に基づいて複数の種類に予め分類し、新たに前記キューにより管理される画像データの変換計算値と、既に前記キューにより管理されている画像データの変換計算値とに基づいて、前記新たに前記キューにより管理される画像データの順番を、既に前記キューにより管理されている画像データの順番に割り込ませることを特徴とする。
【0034】
また、上記課題を解決するために、本発明は、前記割り込ませる順番は、前記キューに管理されている画像データのサイズ又はデータ形式に基づいて定められることを特徴とする。
【0036】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一の種類に属する画像データがキューにおいて管理される順番を、1つ以上連続させた順番で管理することを特徴とする。
【0037】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他のキューで管理されている画像データのサイズ又はデータ形式に基づき、該画像データの順番を、前記一のキューに並び替えて管理することを特徴とする。
【0039】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他方のキューの先頭で管理されている画像データの順番を、前記一のキューの最後尾に並び替えて管理することを特徴とする。
【0040】
また、上記課題を解決するために、本発明は、前記変換管理手段は、一のキューに管理されていた画像データの変換が終了すると、他方のキューの最後尾で管理されている画像データの順番を、前記一のキューの最後尾に並び替えて管理することを特徴とする。
【0045】
以上のように、本発明によれば、画像データの変換処理の効率を向上した画像形成装置が得られる。
【0046】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。なお、これから行う説明において、変換あるいは符号化された画像データも特に必要の無い限り画像データと表現する。また、画像データの符号化、復号化など、画像データに何らかの処理を施す処理も画像データの変換と表現する。
【0047】
図1は、本発明による画像形成装置である融合機の一実施例の構成図を示している。融合機1は、ソフトウェア群2と、融合機起動部3と、ハードウェア資源4とを含むように構成される。
【0048】
融合機起動部3は融合機1の電源投入時に最初に実行され、アプリケーション層5およびプラットホーム層6を起動する。例えば融合機起動部3は、アプリケーション層5およびプラットホーム層6のプログラムを、外部記憶手段に対応するハードディスク装置(以下、HDDと記す)などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源4は、スキャナ11と、プロッタ12と、画像データ変換手段に対応するMLB43と、ADF(Auto Document Feeder)などからなるその他のハードウェアリソース13とを含む。
【0049】
また、ソフトウェア群2は、UNIX(登録商標)などのオペレーティングシステム(以下、OSと記す)上に起動されているアプリケーション層5とプラットホーム層6とを含む。アプリケーション層5は、プリンタ、コピー、ファックスおよびスキャナなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【0050】
アプリケーション層5は、プリンタ用のアプリケーションであるプリンタアプリ21と、コピー用アプリケーションであるコピーアプリ22と、ファックス用アプリケーションであるファックスアプリ23と、スキャナ用アプリケーションであるスキャナアプリ24とを含む。
【0051】
また、プラットホーム層6は、アプリケーション層5からの処理要求を解釈してハードウェア資源4の獲得要求を発生するコントロールサービス層9と、1つ以上のハードウェア資源4の管理を行ってコントロールサービス層9からの獲得要求を調停するシステムリソースマネージャ(以下、SRMと記す)39と、SRM39からの獲得要求に応じてハードウェア資源4の管理を行うハンドラ層10とを含む。
【0052】
コントロールサービス層9は、ネットワークコントロールサービス(以下、NCSと記す)31、デリバリーコントロールサービス(以下、DCSと記す)32、オペレーションパネルコントロールサービス(以下、OCSと記す)33、ファックスコントロールサービス(以下、FCSと記す)34、エンジンコントロールサービス(以下、ECSと記す)35、メモリコントロールサービス(以下、MCSと記す)36、ユーザインフォメーションコントロールサービス(以下、UCSと記す)37、システムコントロールサービス(以下、SCSと記す)38など、一つ以上のサービスモジュールを含むように構成されている。
【0053】
なお、プラットホーム層6は予め定義されている関数により、アプリケーション層5からの処理要求を受信可能とするAPI53を有するように構成されている。OSは、アプリケーション層5およびプラットホーム層6の各ソフトウェアをプロセスとして並列実行する。
【0054】
NCS31のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【0055】
例えばNCS31は、ネットワークを介して接続されるネットワーク機器とのデータ通信をhttpd(HyperText Transfer Protocol Daemon)により、HTTP(HyperText Transfer Protocol)で制御する。
【0056】
DCS32のプロセスは、蓄積文書の配信などの制御を行う。OCS33のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。FCS34のプロセスは、アプリケーション層5からPSTNまたはISDN網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録/引用、ファックス読み取り、ファックス受信印刷などを行うためのAPIを提供する。
【0057】
ECS35のプロセスは、スキャナ11、プロッタ12、その他のハードウェアリソース13などのエンジン部の制御を行う。MCS36のプロセスは、メモリの取得および解放、HDDの利用などのメモリ制御を行う。UCS37は、ユーザ情報の管理を行うものである。
【0058】
SCS38のプロセスは、アプリケーション管理、操作部制御、システム画面表示、LED表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【0059】
SRM39のプロセスは、SCS38と共にシステムの制御およびハードウェア資源4の管理を行うものである。例えばSRM39のプロセスは、ハードウェア資源4を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
【0060】
具体的に、SRM39のプロセスは獲得要求されたハードウェア資源4が利用可能であるか(他の獲得要求により利用されていないかどうか)を判定し、利用可能であれば獲得要求されたハードウェア資源4が利用可能である旨を上位層に通知する。また、SRM39のプロセスは上位層からの獲得要求に対してハードウェア資源4を利用するためのスケジューリングを行い、要求内容(例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0061】
また、ハンドラ層10は後述するファックスコントロールユニット(以下、FCUと記す)の管理を行うファックスコントロールユニットハンドラ(以下、FCUHと記す)40と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ(以下、IMHと記す)41と、MLB43の制御を行うMEU44とを含む。SRM39およびFCUH40は、予め定義されている関数によりハードウェア資源4に対する処理要求を送信可能とするエンジンI/F54を利用して、ハードウェア資源4に対する処理要求を行う。画像データ変換制御手段と変換管理手段に対応するMEU44は、画像データ管理手段に対応するIMH41から画像データの変換要求に対し、MLB43を用いて画像データを変換する。
【0062】
融合機1は、各アプリケーションで共通的に必要な処理をプラットホーム層6で一元的に処理することができる。次に、融合機1のハードウェア構成について説明する。
【0063】
図2は、融合機1の一実施例のハードウェア構成図を示している。融合機1は、コントローラボード60と、オペレーションパネル52と、FCU68と、エンジン71とを含む。また、FCU68は、G3規格対応ユニット69と、G4規格対応ユニット70とを有する。
【0064】
また、コントローラボード60は、CPU61と、ASIC66と、HDD65と、システムメモリ(MEM−P)63と、ローカルメモリ(MEM−C)64と、ノースブリッジ(以下、NBと記す)62と、サウスブリッジ(以下、SBと記す)73と、NIC74(Network Interface Card)と、USBデバイス75と、IEEE1394デバイス76と、セントロニクスデバイス77と、MLB43とを含む。
【0065】
オペレーションパネル52は、コントローラボード60のASIC66に接続されている。また、SB73と、NIC74と、USBデバイス75と、IEEE1394デバイス76と、セントロニクスデバイス77と、MLB43は、NB62にPCIバスで接続されている。
【0066】
MLB43は、融合機1にPCIバスを介して接続する基板である。また、MLB43は、融合機1から入力された画像データを変換し、変換された画像データあるいは符号化された画像データを融合機1に出力するものである。
【0067】
また、FCU68と、エンジン71と、プロッタ72は、コントローラボード60のASIC66にPCIバスで接続されている。
【0068】
なお、コントローラボード60は、ASIC66にローカルメモリ64、HDD65などが接続されると共に、CPU61とASIC66とがCPUチップセットのNB62を介して接続されている。このように、NB62を介してCPU61とASIC66とを接続すれば、CPU61のインタフェースが公開されていない場合に対応できる。
【0069】
また、ASIC66とNB62とはPCIバスを介して接続されているのでなく、AGP(Accelerated Graphics Port)67を介して接続されている。このように、図2のアプリケーション層5やプラットホーム層6を形成する一つ以上のプロセスを実行制御するため、ASIC66とNB62とを低速のPCIバスでなくAGP67を介して接続し、パフォーマンスの低下を防いでいる。
【0070】
CPU61は、融合機1の全体制御を行うものである。CPU61は、NCS31、DCS32、OCS33、FCS34、ECS35、MCS36、UCS37、SCS38、SRM39、FCUH40、IMH41、MEU44をOS上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層5を形成するプリンタアプリ21、コピーアプリ22、ファックスアプリ23、スキャナアプリ24を起動して実行させる。
【0071】
NB62は、CPU61、システムメモリ63、SB73およびASIC66を接続するためのブリッジである。システムメモリ63は、融合機1の描画用メモリなどとして用いるメモリである。SB73は、NB62とPCIバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ64はコピー用画像バッファ、符号バッファとして用いるメモリである。
【0072】
ASIC66は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。HDD65は、画像の蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル52は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
【0073】
次に、MLB43について、図3を用いて説明する。MLB43は、MLC78と、Ri10 79(以下、符号との混同を避けるため、明細書ではRi79と記す)と、RJ2K80とを有する。MLC78、Ri79、RJ2K80は、いずれも画像データの変換機能を有するチップであり、MLC78は、MLB43に初めから搭載されているチップであり、Ri79、RJ2K80はオプションで搭載することが可能なチップである。
【0074】
これらMLC78、Ri79、RJ2K80の変換機能について、図4を用いて説明する。MLC78は、圧縮・伸長・多値変換・変倍・色変換機能を有するチップである。Ri79は、黒オフセット補正・シェーディング補正・地肌除去・フレアデータ除去・MTF補正・孤立点除去・平滑化処理・拡大・縮小・ミラーリング・γ補正・2値化・凸凹補正・2値ディザ・2値誤差拡散・簡易エッジ検出・多値化・細太線化・多値誤差拡散・マスク処理と多くの機能を有するチップである。RJ2K80は、JPEG2000形式での符号化・復号化を行うチップである。
【0075】
図5は、MLB43において、画像データが変換される際の画像データの流れ示す図である。なお、以下の説明において、画像データの転送を分かりやすく表現するために、入力や出力と表現することがある。また、画像データの変換も、伸長、圧縮、符号、復号と表現することがある。
【0076】
まず、MLC78の内部について説明する。MLC78は、伸長部81と、多値変換部82と、変倍部83と、色変換部84と、圧縮部85とを有する。
【0077】
多値変換部82は、多値変換を行う。変倍部83は、画像の大きさを変える。色変換部84は、画像の色を変える。伸長部81は、圧縮された画像データの伸長を行う。圧縮部85は、画像データの圧縮を行う。また、伸長部81と圧縮部85は、JPEG、MH/MR/MMR、NFC1の形式に対応している。なお、多値変換部82と、変倍部83と、色変換部84とをまとめて変換部86とする。
【0078】
Ri79は、伸長部81からの画像データに対する変換と、変換部86からの画像データに対する変換を行う。
【0079】
RJ2K80は、伸長部81または圧縮部85から出力される画像データをJPEG2000形式で符号化・復号化を行う。
【0080】
なお、SRC領域101は、変換する画像データを格納する記憶領域であり、DST領域102は、変換された画像データが格納される記憶領域である。これらは、IMH42が確保するローカルメモリ64あるいはシステムメモリ62上のメモリ領域である。これらローカルメモリ64とシステムメモリ62を、以下の説明ではメモリと表現することがある。また、メモリは画像データ保持手段に対応する。
【0081】
以下、画像変換を効率よく行うための実際の処理内容について説明する。これから説明する処理内容は大きく分けて3つの処理で構成される。以下、順に説明する。
【0082】
最初に説明するのは、画像データを変換する際のメモリ並びにHDDを使用方法についてである。この処理の理解を容易にするために、基本的な処理内容について説明する。
【0083】
まず、メモリについて説明する。画像データを格納するメモリは、図6に示されるように、変換される画像データが格納される領域が2面(S1、S2)と、変換された画像データ領域が格納される2面(D1、D2)という構成となっている。なお、それぞれ3面以上の領域で構成されてもよいが、以降の説明を簡単にするために、それぞれ2面ずつの構成とする。また、画像データ領域のサイズは任意であるが、例えばHDD65が一度に読み書きすることが可能な最大のサイズの整数倍であれば、さらに処理の効率化を図ることが可能となる。
【0084】
次に、上述した画像データ領域を用いて行われる実際の変換処理を説明する。まず最初に、変換処理における画像データ領域の様子を、図7、図8を用いて説明する。図7は、メモリに格納された画像データを変換する一方、次に変換される画像データをメモリに格納する様子を示す図である。
【0085】
図7において、変換されている画像データは、領域S1に格納された画像データであり、変換された画像データは領域D1に格納される。その画像データが変換されるのと平行して、次に変換される画像データは領域S2へ格納される。
【0086】
これにより次の変換処理は、領域S1の変換処理が終了したのち、画像データが領域S2に格納されるという処理を待つことなく、即座に実行することが可能となる。
【0087】
次の図8は、メモリに格納された画像データを変換してメモリに格納する一方、メモリに格納された画像データをHDD65に退避する様子を示す図である。
【0088】
図8において、変換されている画像データは、領域S2に格納された画像データであり、変換された画像データは、領域D2に格納される。また、領域S1に格納されている画像データは、既に変換された画像データである。
【0089】
領域S2の画像データは、変換され、領域D2に格納される一方、変換された画像データである領域D1の画像データは、HDD65へ退避される。
【0090】
これにより、HDD65への退避処理は、領域S2の変換処理の終了を待つことなく即座に実行することが可能となる。
【0091】
次に、画像データ変換処理手段に対応する画像データ変換処理部45について、図9を用いて説明する。図9には、画像データ変換処理部45と、IMH41と、HDD65と、ローカルメモリ64とが示されている。
【0092】
MLB43は、上述したようにJPEG、JPEG2000、MH/MR/MMR、NFC1の変換処理を行うハードウェアである。
【0093】
また、画像データ変換処理部45は、MEU44と、MLB43と、変換ライブラリ51とを有する。
【0094】
このうち、MEU44は、メインスレッド48と、配信スレッド49と、実行スレッド50と、リソース管理46とを有する。
【0095】
メインスレッド48は、IMH41とのやり取りを行うスレッドであり、IMH41からの要求などを、配信スレッド49に通知する。配信スレッド49は、実行スレッド50の管理を行うスレッドである。この配信スレッド49は、例えば、実行スレッド50が複数あり、そのうちのいくつかが変換処理を実行している場合、変換処理を実行していない実行スレッドを選択し、その実行スレッドにメインスレッド48からの変換処理を行わせたりするスレッドである。
【0096】
実行スレッド50は、スレッドであるMLB制御部47や、変換ライブラリ51を用いて、変換処理を実行するスレッドである。また、実行スレッド50は、一つの画像の変換処理を行うスレッドであるため、複数の画像データの変換を実行可能とするために、複数設けられる。
【0097】
リソース管理46は、変換ライブラリ51やMLB43のリソースの管理をするモジュールである。変換ライブラリ51は、ソフトウェアで変換処理を行うライブラリである。このライブラリは、変換を行うための関数で構成され、実行スレッド50は、その関数をコールすることにより画像データの変換を行うことができる。
【0098】
なお、スレッドとは、一般的にOSが一つの処理を複数に分割して実行する場合の処理の最小単位とされ、OSによるディスパッチにより、平行して処理が行えるようになっている。また、本実施の形態ではさらにメールの送受信も可能なスレッドとなっている。なお、ここでのメールは、OSの種類によっては、メッセージと呼ばれ、スレッドなどのオブジェクト間でやり取りされる指示命令やデータなどの情報を示している。
【0099】
したがって、スレッドであるメインスレッド48、配信スレッド49、実行スレッド50、MLB制御部47間のやりとりは、通常メールで行われる。
【0100】
そのため、実行スレッド50は、MLB43で変換する場合、MLB制御部47を経由しなければばらないため、メールを用いる。また、変換ライブラリ51で変換する場合、変換ライブラリ51は、スレッドではないので、上述したように、実行スレッド50は、関数コールで直接に変換することができる。
【0101】
また、MLB43は、変換処理に必要な演算装置を含む変換専用のハードウェアを有するため、変換ライブラリ51とは独立して変換することが可能である。このような画像データを変換するハードウェアを、変換の種類に応じて複数設けても良いし、同じハードウェアを複数設けても良い。
【0102】
次に、実行スレッド50の処理と、MLB制御部47の処理の詳細を説明する。まず最初に、実行スレッド50の処理について説明する。実行スレッド50は、配信スレッド49からの要求により、タスクを生成し、そのタスクに必要なリソースを取得する。その後、実行スレッド50は、MLB制御部47に対し、変換処理を実行するように要求し、MLB制御部47から変換の終了が通知されると、配信スレッド49を介してIMH41に変換が終了したことを通知する処理を行う。
【0103】
次に、MLB制御部47の処理について説明する。MLB制御部47は、実行スレッド50からの要求により、MLB43のレジスタに画像データの変換に関するパラメータをセットしたり、MLB43によって画像データの変換が終了すると、画像データの変換が終了したことを実行スレッド50に通知する処理を行う。
【0104】
これら実行スレッド50と、MLB制御部47は、それぞれスレッドの状態を表すステータスを用いながら処理を実行する。このステータスの遷移について図10を用いて説明する。
【0105】
図10には、実行スレッド50のステータス遷移図160と、MLB制御部47のステータス遷移図161が示されている。以下、それらのステータスの説明をする。
【0106】
実行スレッド50のステータスは、まず初期化処理を行っている状態を示すステップS101のS_INITとなる。この初期化処理は、例えば、使用する変数の初期化などが行われる処理である。
【0107】
初期化を終えた実行スレッド50のステータスは、ステップS102のS_IDOLに遷移する。このS_IDOLは、実質的な処理は何もしていないステータスである。
【0108】
このステータスで、実行スレッド50がIMH41から画像データ変換要求を通知されると、ステータスは、ステップS103のS_SETに遷移する。このステータスは、要求に応じたタスクを生成する処理が行われるステータスである。次に、実行スレッド50のステータスは、実行スレッド50が先ほど生成したタスクに必要なリソースを取得するステータスであるステップS104のS_GETとなる。
【0109】
ステータスがS_GETになると、次のステータスは、タスクに必要なリソースが取得できたかどうかで、2つに分かれる。まず、リソースが取得できた場合について説明する。
【0110】
ステータスS_GETで、実行スレッド50がリソースを取得できた場合、ステータスは、ステップS105のS_EXEに遷移し、実行スレッド50は、MLB制御部47に対し、画像データ変換要求を行う。
【0111】
これにより、ステータスは、ステップS110のS_WAITに遷移する。このステータスは、MLB制御部47からの応答を待つステータスである。そして、MLB制御部47からの応答があると、ステータスは、変換処理が継続される場合は再びステップS105のS_EXEに遷移し、継続の必要がない場合は、ステップS111のS_ENDに遷移する。
【0112】
ステータスがS_ENDに遷移すると、実行スレッド50は、タスクを終了するか、次のタスクを実行するかどうか判断する。タスクを終了する場合は、処理が終了するためS_IDOLにステータスは遷移する。次のタスクを実行する場合は、矢印213に示されるように、ステータスは再びS_GETに遷移する。
【0113】
以上がステータスがS_GETのときにリソースが取得できた場合のステータスの遷移である。
【0114】
ステータスがS_GETのときにリソースが取得できなかった場合、矢印211に示されるように、ステータスは、ステップS105のS_EXEに遷移せず、ステップS110のS_WAITに遷移する。そのステータスで、リソースが取得可能になるまで待ち、リソースが取得可能となると、矢印212に示されるように、ステップS105のS_EXEにステータスが遷移する。これ以降のステータスの遷移は、リソースが取得できた場合のステータスの遷移と同じになる。
【0115】
次に、MLB制御部47のステータス遷移図161を説明する。実行スレッド50からの要求により、MLB制御部47のステータスは、ステップS106のタスクを生成するステータスであるS_SETとなる。次に、MLB制御部47のステータスは、ステップS107のS_EXEとなり、MLB制御部47は、画像データの変換を行うために、MLB43のレジスタに対し、パラメータをセットする。これによりステータスは、処理の実行中を示すステップS108のS_RUNに遷移する。このとき、MLB制御部47は、OSのシステムコールを利用するので、MLB43の変換処理が終了するまで、MLB制御部47の処理がロックされ、変換処理の終了待ちが発生する。
【0116】
MLB43の変換処理が終了すると、MLB制御部47のステータスは、変換処理の終了を示すステップS109のS_CLOSEとなる。そしてこのとき、MLB制御部47は、実行スレッド50に変換の終了を通知し、処理を終了する。
【0117】
以上説明した実行スレッド50のステータスの遷移を、図11のフローチャートを用いて説明する。ステップS20で、実行スレッド50は、メールのチェックを行う。この場合、タイムアウト付メール受信コマンドにより、上記ステータスに応じてメールを待たせたりしている。このタイムアウト値は、例えば、ステータスがS_WAITであれば無限大とし、S_EXEであれば0としている。
【0118】
メールを受信すると、実行スレッド50は、ステップS21で、受信したメールから、イベントの内容を解析する。そのイベントの内容に応じて、実行スレッド50は、ステップS22、ステップS23、ステップS24、ステップS25のうちのいずれかの処理を行う。そして、ステップS26で、実行スレッド50は、イベントによりステータスを遷移させる。なお、ステップS26において、ステータスがS_WAIT以外の場合、実行スレッド50は何らかの処理を実行しているため、実行スレッド50はメールの情報を保持し、フラグなどを用いてメールを受信したことを記憶しておく。
【0119】
以上の処理でメールの内容は不要となるため、実行スレッド50は、メール領域の解放を行う。この処理は、一般的にメールがヘッダとメールの内容が記載されたメモリ領域からなるため、メールをそのままにしておいてメモリの空き容量が減っていくことを防ぐために通常行われる処理である。
【0120】
次に、ステップS28で、実行スレッド50は、上述したステータスによってステップS29の処理を実行する。そして、実行スレッド50は、1つのステータスに応じた処理を実行後、再びステップS20のメールチェック処理を行う。
【0121】
このようにして、メールによるイベントの処理と、ステータスの遷移が行われている。
【0122】
次に、画像データの変換処理を示すフローチャートを、図12を用いて説明する。
【0123】
図12は、IMH41と、実行スレッド50と、MLB制御部47とが行う処理を示すフローチャートであり、画像データを格納するメモリ構成は、図6に示されているメモリ構成と同様に、画像データ領域201、202となっている。また、画像データ領域のサイズは、この場合、HDD65に対してアクセスする単位を32KB(KiloByte)とした場合、そのn(整数)倍としている。以下フローチャートの説明をする。
【0124】
ステップS201で、IMH41は、S1またはS2に画像データを格納し、MEU44に対して格納された画像データを変換するように要求する。要求を受けた実行スレッド50は、画像データ変換段階に対応するステップS202で、画像データを変換するようにMLB制御部47に要求し、MLB制御部47は、MLB43で画像データの変換を行い、変換が終了すると実行スレッド50に変換が終了したことを通知する。
【0125】
変換の終了を通知された実行スレッド50は、画像データの変換を継続するかどうかの判断をステップS203で行う。この判断により、継続する場合は2通りに分岐し、終了する場合は1通りであるため、処理は全部で3つに分岐する。このうち、まずSRC EMPTYに分岐する場合の説明をする。
【0126】
SRC EMPTYに分岐するのは、変換される画像データ領域が空きと判断された場合である。この場合、ステップS204で、実行スレッド50は、2面ある画像データ領域の切り替えを行う。この切り替えは、例えば先ほど変換対象となった領域が領域S1であれば、領域S2に変換対象領域を切り替えるという処理である。
【0127】
切り替え処理を行うと、実行スレッド50は、ステップS205で、画像データを格納するかどうか判断する。この判断により、変換する画像データがまだある場合は、画像データ格納段階に対応するステップS206に処理が進み、ステップS206で、IMH41が、画像データの格納を行う。この格納処理は、IMH41と実行スレッド50が別なスレッドであるため、実行スレッド50の処理と別に独立して行われる。
【0128】
ステップS205の判断処理にもどり、ステップS205で画像データを格納する必要がないと判断された場合、実行スレッド50は、再びステップS202に処理を進める。
【0129】
次に、ステップS203で、DST FULLに分岐する場合の処理について説明する。DST FULLに分岐するのは、領域D1または領域D2に画像データが格納されていると判断された場合である。この場合、ステップS207で、実行スレッド50は、2面ある画像データ領域の切り替えを行う。この切り替えは、例えば変換されたデータが格納される対象となった領域が領域D1であれば、領域D2に対象領域を切り替えるという処理である。
【0130】
切り替え処理を行うと、次に、実行スレッド50は、ステップS208で、画像データを退避するかどうか判断する。この判断により、画像データを退避する場合は、画像データ退避段階に対応するステップS209に処理が進み、ステップS209で、IMH41が、画像データの退避を行う。この退避処理も先ほどと同様に、IMH41と実行スレッド50が別なスレッドであるため、実行スレッド50の処理と別に独立して行われる。
【0131】
ステップS208の判断処理にもどり、実行スレッド50が、ステップS208で画像データを退避する必要がないと判断した場合、再びステップS202に処理を進める。
【0132】
次に、ステップS203で、変換終了と判断された場合の処理について説明する。画像データの変換が終了すると、ステップS210で、IMH41は、画像データの退避を行い、ステップS211で処理は終了となる。
【0133】
以上が変換処理を示すフローチャートであるが、変換する画像データの種類によっては、ヘッダを有する画像データを変換する場合がある。このヘッダは、例えば、FAXやJPEG系の画像データの先頭部分に設けられ、その内容は画像データのレングスなどである。
【0134】
この場合の画像データ変換処理を、図13のフローチャートを用いて説明する。このフローチャートは、図12のフローチャートに、ステップS302とステップS312の2つの処理を加えたものである。また、画像データ領域203は図12と同じであるが、画像データ領域204は、ヘッダ領域と領域D1、領域D2で構成される。
【0135】
以下、図12と異なる部分を中心に、図13のフローチャートを説明する。ステップS301で、IMH41は、図12の場合と同様に、メモリに画像データを格納し、MEU44に対して格納された画像データを変換するように要求する。
【0136】
次のステップS302は、最初に要求を受けたときに行われる処理である。この処理は、変換が全て終了したのちにヘッダをつけるために、画像データ領域204のヘッダ部分において、変換された画像データを格納する際の画像データの書き込み開始位置をヘッダの分だけずらす処理である。
【0137】
このステップS302の処理を終えると、ステップS311までは、図12のフローチャートと同様に、領域D1、D2が使用される。そして、ステップS312で、IMH41は、先ほど格納されたヘッダを退避し、ステップS313で処理は終了となる。
【0138】
次に、上記フローチャートにより実行される処理を、シーケンス図を用いて説明する。なお、上述したスレッドやMLB43は、平行して処理が実行されるため、例えばMLB43の変換処理時間により、画像データを格納するタイミングなどが異なってくる。そのため、以下、3つのパターンの場合について説明する。
【0139】
まず、第1のパターンは、MLB43の変換処理時間が、画像データを格納する時間と画像データを退避する時間を足した時間よりも大きい場合である。このパターンの処理を、図14のシーケンス図と画像データ領域を示す図15とを用いて説明する。なお、以下のシーケンス図において、HDはHDD65を表し、S1、S2、D1、D2は、図6の画像データ領域を示す。
【0140】
また、画像データ領域を示す図15において、参照符号121から132は、画像データ領域を示す。これらの画像データ領域を、画像データ領域121を例に説明する。参照符号121aは、変換される画像データが格納される画像データ領域の2面を表し、参照符号121bは、変換された画像データが格納される画像データ領域の2面を表す。そして、画像データが格納された画像データ領域は、黒で表現され、格納されていない画像データ領域は、白で表現される。
【0141】
以下、シーケンス図の説明を行う。IMH41は、ステップS401、ステップS402でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図15の画像データ領域121となる。そして、ステップS403でIMH41は、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS404で、MLB43に画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図15の画像データ領域128である。
【0142】
このとき、IMH41は、MLB43が画像データを変換する一方、ステップS405、ステップS406で、領域S2に画像データを格納する。この処理により、画像データ領域は、図15の画像データ領域122となる。このように、IMH41は、領域に画像データを格納したのち、他の領域で画像データが格納されていない領域があれば、さらにその領域に画像データを格納する。
【0143】
MLB43は、ステップS407で、領域S1の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS408でIMH41に対し、画像データの変換が終了したことを通知する。このとき、領域S1の画像データは変換されたため、領域S1は空き(Empty)となり、領域D1には、変換された画像データが格納されている(FULL)。
【0144】
変換終了の通知を受けたIMH41は、ステップS409で、MEU44に対し、領域S2に格納された画像データを変換して領域D2に格納するように要求する。要求を受けたMEU44は、ステップS411で、MLB43に対し、領域S2に格納された画像データの変換を要求する。そして、MLB43は、領域S2の画像データを変換し、領域D2へ格納する。この処理を表すのが、図15の画像データ領域129である。
【0145】
また、IMH41は、MLB43が画像データを変換する一方、ステップS410、ステップS412で、領域D1に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図15の画像データ領域123となる。その後すぐに、IMH41は、ステップS413、ステップS414でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図15の画像データ領域124となる。
【0146】
この処理と平行して行われたMLB43の変換処理が終了すると、MLB43は、ステップS415で、領域S2の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS416でIMH41に対し、変換が終了したことを通知する。このとき、領域S2の画像データは変換されたため、領域S2は空き(Empty)となり、領域D2には、変換された画像データが格納されている(FULL)。
【0147】
次に、IMH41は、ステップS417で、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS418で、MLB43に対し、領域S1に格納された画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図15の画像データ領域130である。
【0148】
この処理と平行して、IMH41は、先ほどのステップS416で、領域S2の画像データの変換が終了したことの通知を受けたので、ステップS420、ステップS421で、領域D2に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図15の画像データ領域125となる。その後すぐに、IMH41は、ステップS422、ステップS423でHDD65から画像データを領域S2に格納する。この処理により、画像データ領域は、図15の画像データ領域126となる。
【0149】
また、領域S1の画像データの変換が終了したMLB43は、ステップS419で、領域S1の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS424でIMH41に対し、変換が終了したことを通知する。このとき、領域S1の画像データは変換されたため、領域S1は空き(Empty)となり、領域D1には、変換された画像データが格納されている(FULL)。
【0150】
以降、MLB43は、画像データ領域131、132に示されるように、領域S1、S2に格納された画像データを変換していき、IMH41は、画像データ領域127に示されるように、画像データをHDD65に退避したり、あるいは格納したりして処理が続けられる。
【0151】
そして、ステップS425で、MLB43が、MEU44に領域S1の画像データの変換が終了したことをMEU44に通知する。この通知により、MEU44は、ステップS426でIMH41に対し、変換が終了したことを通知する。ステップS426で、IMH41は、MEU44から処理の終了(END)が通知されると、領域D1に格納された画像データを、ステップS427、ステップS428でHDD65に退避し、処理を終了する。
【0152】
このように、IMH41が、画像データ領域に格納された画像データを変換する一方、MEU44は、MLB43で次に変換される画像データを、画像データ領域に格納していることが示されている。また、変換される画像データ保持するために、画像データを格納する画像データ領域を2つ有している。そして、IMH41は、HDD65に記憶された画像データを、領域ごとに格納し、MLB43は、一つの領域に格納されている画像データごとに変換している。さらに、IMH41は、領域に画像データを格納したのち、他の領域で画像データが格納されていない領域があれば、さらにその領域に画像データを格納している。
【0153】
また、MLB43が、画像データを変換して画像データ領域に格納する一方、IMH41は、画像データ領域に格納された画像データを、HDD65に退避していることも示されている。また、変換された画像データ保持するために、画像データを格納する画像データ領域を2つ有している。そして、MLB43は、変換した画像データを領域ごとに格納し、IMH41は、一つの領域に格納されている画像データごとにHDD65に退避している。
【0154】
次に、第2のパターンについて説明する。第2のパターンは、第1のパターンとは逆に、MLB43の変換処理時間が、画像データを格納する時間と画像データを退避する時間を足した時間よりも小さい場合である。このパターンの処理を図16のシーケンス図と、画像データ領域を示す図17とを用いて説明する。
【0155】
最初に、IMH41は、ステップS501、ステップS502でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図17の画像データ領域133となる。そして、ステップS503でIMH41は、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS504で、MLB43に画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図17の画像データ領域146である。
【0156】
このとき、IMH41は、MLB43が画像データを変換する一方、ステップS505、ステップS506で、領域S2に画像データを格納する。この処理により、画像データ領域は、図17の画像データ領域134となる。
【0157】
MLB43は、ステップS507で、領域S1の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS508でIMH41に対し、画像データの変換が終了したことを通知する。このとき、領域S1の画像データは変換されたため、領域S1は空き(Empty)となり、領域D1には、変換された画像データが格納されている(FULL)。
【0158】
変換終了の通知を受けたIMH41は、ステップS509で、MEU44に対し、領域S2に格納された画像データを変換して領域D2に格納するように要求する。要求を受けたMEU44は、ステップS510で、MLB43に対し、領域S2に格納された画像データの変換を要求する。そして、MLB43は、領域S2の画像データを変換し、領域D2へ格納する。この処理を表すのが、図17の画像データ領域147である。
【0159】
また、IMH41は、MLB43が画像データを変換する一方、ステップS511、ステップS512で、領域D1に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図17の画像データ領域135となる。
【0160】
この処理と平行して行われたMLB43の変換処理が終了すると、MLB43は、ステップS513で、領域S2の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS514でIMH41に対し、変換が終了したことを通知する。このとき、領域S2の画像データは変換されたため、領域S2は空き(Empty)となり、領域D2には、変換された画像データが格納されている(FULL)。
【0161】
次に、IMH41は、ステップS515、ステップS516でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図17の画像データ領域136となる。そして、IMH41は、ステップS517で、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS518で、MLB43に対し、領域S1に格納された画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図17の画像データ領域148である。
【0162】
この処理と平行して、IMH41は、先ほどのステップS517で、領域S2の画像データの変換が終了したことの通知を受けたので、ステップS519、ステップS520で、領域D2に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図14の画像データ領域137となる。
【0163】
また、領域S1の画像データの変換が終了したMLB43は、ステップS521で、領域S1の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS522でIMH41に対し、変換が終了したことを通知する。このとき、領域S1の画像データは変換されたため、領域S1は空き(Empty)となり、領域D1には、変換された画像データが格納されている(FULL)。
【0164】
次に、IMH41は、ステップS523、ステップS524でHDD65から画像データを領域S2に格納する。この処理により、画像データ領域は、図17の画像データ領域138となる。そして、IMH41は、ステップS525で、MEU44に対し、領域S2に格納された画像データを変換して領域D2に格納するように要求する。要求を受けたMEU44は、ステップS526で、MLB43に対し、領域S2に格納された画像データの変換を要求する。そして、MLB43は、領域S2の画像データを変換し、領域D2へ格納する。この処理を表すのが、図17の画像データ領域149である。
【0165】
この処理と平行して、IMH41は、先ほどのステップS522で、領域S1の画像データの変換が終了したことの通知を受けたので、ステップS527、ステップS528で、領域D1に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図17の画像データ領域139に対応する。
【0166】
また、領域S2の画像データの変換が終了したMLB43は、ステップS529で、領域S2の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS530でIMH41に対し、変換が終了したことを通知する。このとき、領域S2の画像データは変換されたため、領域S1は空き(Empty)となり、領域D2には、変換された画像データが格納されている(FULL)。
【0167】
次に、IMH41は、ステップS531、ステップS532でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図17の画像データ領域140となる。そして、IMH41は、ステップS533で、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS534で、MLB43に対し、領域S2に格納された画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図17の画像データ領域150である。領域S2の画像データの変換が終了したMLB43は、ステップS535で、領域S1の画像データの変換が終了したことをMEU44に通知する。
【0168】
以降、MLB43は、画像データ領域151、152に示されるように、領域S1、S2に格納された画像データを変換していき、IMH41は、画像データ領域141、142、143、144、145に示されるように、画像データをHDD65に退避したり、あるいは格納したりして処理が続けられる。
【0169】
そして、ステップS536で、MLB43が、MEU44に領域S1の画像データの変換が終了したことをMEU44に通知する。この通知により、MEU44は、ステップS534でIMH41に対し、変換が終了したことを通知する。ステップS534で、IMH41は、MEU44から処理の終了(END)が通知されると、領域D1に格納された画像データを、ステップS535、ステップS536でHDD65に退避し、処理を終了する。
【0170】
次に、第3のパターンについて説明する。第3のパターンは、第1のパターンよりもさらにMLB43の変換処理時間がかかる場合である。これは、例えば画像データを変換する際の圧縮率が高い場合などを想定している。このパターンの処理を図18のシーケンス図と、画像データ領域を示す図19とを用いて説明する。
【0171】
最初に、IMH41は、ステップS601、ステップS602でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図19の画像データ領域153となる。そして、ステップS603でIMH41は、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS604で、MLB43に画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図19の画像データ領域167である。
【0172】
このとき、IMH41は、MLB43が画像データを変換する一方、ステップS605、ステップS606で、領域S2に画像データを格納する。この処理により、画像データ領域は、図19の画像データ領域154となる。
【0173】
MLB43は、ステップS607で、領域S1の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS608でIMH41に対し、画像データの変換が終了したことを通知する。このとき、領域S1の画像データは変換されたため、領域S1は空き(Empty)となる。また、領域D1には、変換された画像データが格納されているが、圧縮率が高い場合は、領域D1に余裕があり、引き続き画像データを格納することが可能であるため、次に変換した画像データを先ほど格納した画像データに引き続き格納する。今の場合、変換された画像データは、1つの領域に2つまで格納することが可能であるとする。
【0174】
次に、IMH41は、MLB43が画像データを変換する一方、ステップS609、ステップS610で、HDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図19の画像データ領域155となる。この処理とともに、IMH41は、ステップS611で、MEU44に対し、領域S2に格納された画像データを変換して領域D1に格納するように要求する。
【0175】
次に、MEU44は、ステップS612で、MLB43に対し、領域S2に格納された画像データを変換し、領域D1に格納するように要求する。そして、MLB43は、領域S2の画像データを変換し、領域D1へ格納する。この処理を表すのが、図19の画像データ領域162である。
【0176】
MLB43の変換処理が終了すると、MLB43は、ステップS613で、領域S2の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS614でIMH41に対し、変換が終了したことを通知する。このとき、領域S2の画像データは変換されたため、領域S2は空き(Empty)となり、領域D1には、2つの変換された画像データが格納されている(FULL)。
【0177】
次に、IMH41は、ステップS615で、MEU44に対し、領域S1に格納された画像データを変換して領域D2に格納するように要求する。要求を受けたMEU44は、ステップS618で、MLB43に対し、領域S1に格納された画像データを変換して領域D2に格納するように要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図19の画像データ領域163である。
【0178】
この処理と平行して、IMH41は、先ほどのステップS614で、領域S2の画像データの変換が終了したことと、領域D1がFULLであることの通知を受けたので、ステップS617、ステップS618で、領域D1に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図19の画像データ領域156となる。その後すぐに、IMH41は、ステップS619、ステップS620でHDD65から画像データを領域S2に格納する。この処理により、画像データ領域は、図19の画像データ領域157となる。
【0179】
また、領域S1の画像データの変換が終了したMLB43は、ステップS621で、領域S1の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS622でIMH41に対し、変換が終了したことを通知する。このとき、領域S1の画像データは変換されたため、領域S1は空き(Empty)となる。
【0180】
IMH41は、ステップS623で、MEU44に対し、領域S2に格納された画像データを変換して領域D2に格納するように要求する。要求を受けたMEU44は、ステップS624で、MLB43に対し、領域S2に格納された画像データの変換を要求する。そして、MLB43は、領域S2の画像データを変換し、領域D2へ格納する。この処理を表すのが、図19の画像データ領域164である。
【0181】
この処理と平行して、IMH41は、ステップS625、ステップS626でHDD65から画像データを領域S1に格納する。この処理により、画像データ領域は、図19の画像データ領域158となる。
【0182】
領域S2の画像データの変換が終了したMLB43は、ステップS627で、領域S2の画像データの変換が終了したことをMEU44に通知する。MEU44は、変換が終了した通知を受けたことにより、ステップS628でIMH41に対し、変換が終了したことを通知する。このとき、領域S2の画像データは変換されたため、領域S2は空き(Empty)となり、領域D2には、変換された画像データが格納されている(FULL)。
【0183】
次に、IMH41は、ステップS629で、MEU44に対し、領域S1に格納された画像データを変換して領域D1に格納するように要求する。要求を受けたMEU44は、ステップS630で、MLB43に対し、領域S1に格納された画像データの変換を要求する。そして、MLB43は、領域S1の画像データを変換し、領域D1へ格納する。この処理を表すのが、図19の画像データ領域165である。
【0184】
また、IMH41は、MLB43が画像データを変換する一方、ステップS631、ステップS632で、領域D2に格納された画像データをHDD65に退避する。この処理により、画像データ領域は、図19の画像データ領域159となる。
【0185】
以降、MLB43は、領域S1、S2に格納された画像データを変換していき、IMH41は、画像データ領域166に示されるように、画像データをHDD65に格納したり、あるいは退避したりして処理が続けられる。
【0186】
そして、ステップS633で、MLB43が、MEU44に領域S2の画像データの変換が終了したことをMEU44に通知する。この通知により、MEU44は、ステップS634でIMH41に対し、変換が終了したことを通知する。IMH41は、MEU44から処理の終了(END)が通知されると、領域D1に格納された画像データを、ステップS635、ステップS636でHDD65に退避し、処理を終了する。
【0187】
以上が画像データを変換する際のメモリ並びにHDDの使用方法についてである。
【0188】
次に、2つめの処理について説明する。この処理は、MLB43と変換ライブラリ51とを効率よく利用するための処理である。
【0189】
まず、実行スレッド50の詳細について説明する。図20には、実行スレッドAのステータス遷移図160と、ステータスがS_ENDとなっている実行スレッドBのステータス遷移図169とMLB制御部47のステータス遷移図161、及び、リソース管理46が管理するキュー168が示されている。以下、それらの説明をする。
【0190】
実行スレッドAのステータスは、まず初期化処理を行っている状態を示すステップS701のS_INITとなる。この初期化処理は、例えば、使用する変数の初期化などが行われる処理である。
【0191】
初期化を終えた実行スレッドAのステータスは、ステップS702のS_IDOLに遷移する。このS_IDOLは、実質的な処理は何もしていないステータスである。
【0192】
このステータスで、実行スレッドAがIMH41から変換要求を通知されると、ステータスは、ステップS703のS_SETに遷移する。このステータスは、要求に応じたタスクを生成する処理が行われるステータスである。このとき、実行スレッドAは、リソース管理46に対し、MLB43と変換ライブラリ51のいずれを用いて変換するかを問い合わせる。そして、リソース管理46は、後述する選択方法によりいずれかを選択し、その選択結果を実行スレッドAに返す。
【0193】
次に、実行スレッドAのステータスは、ステップS704で、リソース管理46が先ほど選択したリソースを取得するステータスであるS_GETとなる。
【0194】
このようにして、ステータスがS_GETになると、次のステータスは、タスクに必要なリソースが取得できたかどうかで、2つに分かれる。まず、リソースが取得できた場合について説明する。
【0195】
ステータスS_GETにおいて、実行スレッドAは、リソース管理46にリソース取得要求を行い、リソース取得応答で、リソースを取得できた場合、ステータスは、ステップS705のS_EXEに遷移し、実行スレッドAは、MLB制御部47に対し、画像データ変換要求を行う。
【0196】
これにより、ステータスは、ステップS710のS_WAITに遷移する。このステータスは、MLB制御部47からの応答を待つステータスである。そして、MLB制御部47からの応答があると、ステータスは、変換処理が継続される場合は再びステップS705のS_EXEに遷移し、継続の必要がない場合は、ステップS711のS_ENDに遷移する。
【0197】
ステータスが、S_ENDに遷移すると、実行スレッドAは、タスクを終了するか、次のタスクを実行するかどうか判断する。タスクを終了する場合は、処理が終了するためステップS702のS_IDOLにステータスは遷移する。次のタスクを実行する場合は、ステータスは再びS_GETに遷移する。
【0198】
以上がステータスS_GETのときにリソースが取得できた場合のステータスの遷移である。
【0199】
ステータスS_GETのときにリソースが取得できなかった場合、ステータスは、S_EXEに遷移せず、S_WAITに遷移する。また、そのときのリソース取得要求により、画像データは、リソース管理46が画像データを変換する順番を管理するキュー168で管理される。このキュー168は、MLB43と変換ライブラリ51ごとに備えられる。また、キュー168での画像データの順番は、リソース取得要求を通知してきた実行スレッドAのIDで管理される。これは、実行スレッド1つあたり、一つの画像データしか変換しないため、実行スレッドAのIDを積めば情報として十分であることが理由である。
【0200】
実行スレッドAは、S_WAITのステータスで、リソースが取得可能になるまで待つ。そして、実行スレッドBの処理が終了すると、リソースを解放したことをリソース管理46に通知する。
【0201】
リソース管理46から、リソースが取得可能となったことが通知されると、ステップS705のS_EXEにステータスが遷移する。これ以降のステータスの遷移は、リソースが取得できた場合のステータスの遷移と同じになる。 このように、リソース管理46は、リソースが使用可能となると、キューに管理されている順番に基づき、リソースの取得を要求した実行スレッドAに対し、リソースが取得可能であることを通知する。
【0202】
次に、MLB制御部47のステータス遷移図161を説明する。実行スレッドAからの要求により、MLB制御部47のステータスは、タスクを生成するステータスであるステップS706のS_SETとなる。次に、MLB制御部47のステータスは、ステップS707のS_EXEとなり、MLB制御部47は、画像データの変換を行うために、MLB43のレジスタに対し、パラメータをセットする。これによりステータスは、処理の実行中を示すステップS708のS_RUNに遷移する。
【0203】
MLB43の変換処理が終了すると、MLB制御部47のステータスは、変換処理の終了を示すステップS709のS_CLOSEとなる。そしてこのとき、MLB制御部47は、実行スレッドAに変換の終了を通知し、処理を終了する。
【0204】
次に、以上説明したステータス遷移における処理を、フローチャートを用いて説明する。
【0205】
図21は、実行スレッド50におけるステータスS_SETからS_GETまでの処理を示すフローチャートである。ステップS801で、実行スレッド50は、リソース管理46にMLB43または変換ライブラリ51のどちらを使用するか問い合わせを行う。
【0206】
このように、実行スレッド50は、画像データを変換する際に、リソース管理46に対し、MLB43と変換ライブラリ51のいずれを用いるかを選択させる選択要求を通知する。
【0207】
次に、ステップS802で、リソース管理から通知された選択結果がMLB43の場合、ステップS804で、実行スレッド50は、実行スレッド50内の処理で用いるフラグであるFLAG_MLB_USEにMLB43を使用することを示すSETを代入する。これをC言語で例えると、変数であるFLAG_MLB_USEに、プリプロセッサの#defineで値が定義されたSETを代入することである。
【0208】
リソース管理から通知された選択結果が、変換ライブラリ51の場合、ステップS803で、実行スレッド50は、実行スレッド50内の処理で用いるフラグであるFLAG_MLB_USEにMLB43を使用しないことを示すRESETを代入する。上記ステップS803とステップS804は、選択段階に対応する。
【0209】
これらの処理が終了すると、実行スレッド50のステータスは、S_GETに遷移する。
【0210】
次に、上記フローチャートにおけるリソース管理46側の処理を示すフローチャートを、図22を用いて説明する。ステップS901で、リソース管理46は、実行スレッド50より選択要求を通知される。
【0211】
次のステップS902は、リソース管理46が、MLB43と変換ライブラリ51のどちらで変換を行うか選択する処理である。この処理を、図23を用いて説明する。
【0212】
図23は、リソース管理46が、MLB43と変換ライブラリ51のいずれかを選択するために用いる表である。この表は、変換する前の画像データの形式と、その画像データをどの形式に変換するかの2つの形式から、係数を求めるための表である。なお、この表は、配列などを用いて予めプログラムに組み込んでも良いし、不揮発性の記憶装置であるHDD65に記憶させておいて、プログラムで読み込むようにしても良い。
【0213】
以下、表の説明をする。表の横方向に並ぶ項目は、変換される前の画像データの形式である入力形式を示し、表の縦方向に並ぶ項目は、変換する形式である出力形式を示している。まず入力形式について説明する。入力形式は、CMYK、sRGB、RGBの3種類ある。このうち、CMYKは、さらに1bit raw、2bit raw、8bit raw、NFC1の4種類ある。また、sRGBとRGBは、8bit
raw、JPEGの2種類ある。
【0214】
次に、出力形式について説明する。出力形式は、GrayscaleとColorの2種類ある。このうち、Grayscaleは、さらに1bit raw、8bit raw、JPEG、MH/MR/MMR、NFC1がある。また、ColorはさらにCMYK,sRGB、RGBの3種類ある。さらにCMYKには、8bit raw、NFC1がある。sRGBとRGBには、8bit raw、JPEGの2種類ある。
【0215】
次に、係数の求め方であるが、例えば入力形式が、CMYKの8bit rawであり、出力形式が、RGBのJPEGの場合、それらの交差するボックスの数字の8が係数となる。他の例として、例えば入力形式が、sRGBの8bit rawであり、出力形式が、同じsRGBの8bit rawの場合、変換する必要がないので、0が係数となる。
【0216】
次に、この係数と、変換する画像データのサイズの積を求める。例えば、画像データのサイズが4MBであり、係数が8であれば、積は32となる。また、画像データのサイズが0.5MBであり、係数が6であれば、積は3となる。さらに、画像データのサイズが4MBであり、係数が0であれば、積は0となる。
【0217】
このように、リソース管理46は、画像データのデータ形式と、画像データが変換されるデータ形式と、画像データのサイズから求まった値、すなわち画像データのデータ形式と画像データのサイズに基づき、MLB43と変換ライブラリ51のいずれかを選択する。
【0218】
さらに、リソース管理49は、画像データが変換されるデータ形式に基づきMLB43と変換ライブラリ51のいずれで変換するかを選択する。
【0219】
以下の説明において上記計算により求まる値を変換計算値とする。
【0220】
図22のステップS902の説明に戻る。リソース管理46は、ステップS902で、上述した計算を行い、変換計算値を変数DSに保持する。次に、リソース管理46は、DSと10とを比較し、DSが10以上の場合は、ステップS904へ処理を進める。ステップS904で、リソース管理46は、要求された実行スレッド50に対し、MLB43が選択されたことを通知し、処理を終了する。
【0221】
また、DSが10より小さい場合、リソース管理46は、ステップS905へ処理を進める。ステップS905で、リソース管理46は、MLB43/変換ライブラリのキュー168で管理されているMLB43、変換ライブラリ51ごとの全ての画像データの変換計算値を求める。このことを具体的に、図24を用いて説明する。
【0222】
図24は、MLB43のキューで管理されている画像データの変換計算値の合計と、変換ライブラリ51のキューで管理されている画像データの変換計算値の合計を表した図である。図24において、MLB43のキューには、変換計算値が12、5、60、46の4つの画像データが行列を作っている。また、変換ライブラリ51のキューには、変換計算値が20、15、24、30、10、15の6つの画像データが行列を作っている。
【0223】
そして、それぞれの合計は、MLB43のキューが123であり、変換ライブラリ51のキューが114となっている。ステップS905は、これらの123と114の値を求める処理である。
【0224】
このように、リソース管理手段46は、それぞれMLB43と変換ライブラリ51で既に変換することが定められている画像データに基づき、MLB43と変換ライブラリ51のうちのいずれで変換するかを選択する。
【0225】
このときリソース管理46は、MLB43のキュー全体の変換計算値を変数S_MLBに代入し、変換ライブラリ51のキュー全体の変換計算値を変数S_LIBに代入する。
【0226】
次のステップS906で、リソース管理46は、S_MLBとS_LIBとを比較する。S_LIBがS_MLBより大きい場合、リソース管理46は、ステップS904へ処理を進め、要求された実行スレッド50に対し、MLB43が選択されたことを通知し、処理を終了する。
【0227】
また、ステップS906で、S_LIBがS_MLB以下の場合、リソース管理46は、ステップS907へ処理を進め、要求された実行スレッド50に対し、変換ライブラリ51が選択されたことを通知し、処理を終了する。
【0228】
このようにしてリソース管理46は、変換する画像データを、MLB43、変換ライブラリ51のいずれで変換するかを選択する。そしてリソース管理46は、実行スレッド50から選択要求を通知されると、選択結果を実行スレッド50に通知する。上記ステップS904とステップS907は、順番管理段階に対応する。
【0229】
次に、実行スレッド50のステータスがS_GETの場合の処理を、図25のフローチャートを用いて説明する。実行スレッド50は、ステップS1001で、先ほど値を代入したFLAG_MLB_USEの値で処理を分岐する。FLAG_MLB_USEがSETの場合、ステップS1002で、実行スレッド50は、MLB43のリソースを取得するために、リソース管理46に対し、リソース取得要求を通知する。ステップS1003で、実行スレッド50は、リソース管理46からの通知により、リソースが取得できた場合、ステータスS_GETにおける処理を終了する。
【0230】
また、ステップS1003で、リソースが取得できなかった場合、実行スレッド50は、ステータスをS_WAITに遷移し、リソースの解放待ちとなる。
【0231】
ステップS1001の処理に戻り、FLAG_MLB_USEがRESETの場合、ステップS1005で、実行スレッド50は、変換ライブラリ51のリソースを取得するために、リソース管理46に対し、リソース取得要求を通知する。ステップS1006で、実行スレッド50は、リソース管理46からの通知により、リソースが取得できた場合、ステータスS_GETにおける処理を終了する。
【0232】
また、ステップS1006で、リソースが取得できなかった場合、実行スレッド50は、ステップS1004で、ステータスをS_WAITに遷移し、リソースの解放待ちとなる。
【0233】
このように実行スレッド50は、選択結果を通知されると、リソース管理46に対し、選択されたMLB43または変換ライブラリ51のリソースを取得するリソース取得要求を通知する。
【0234】
次に、上記フローチャートにおけるリソース管理46側の処理を示すフローチャートを、図26を用いて説明する。ステップS1101で、リソース管理46は、実行スレッド50よりリソース取得要求を通知される。次に、ステップS1102で、リソース管理46は、MLB43に対するリソース取得要求かどうか判断する。MLB43に対するリソース取得要求の場合、リソース管理46は、ステップS1103で、MLB43のキューに待ちがあるかどうか判断する。待ちがない場合、リソース管理46は、ステップS1104で、リソースが取得できたことを実行スレッド50に通知し、処理を終了する。
【0235】
このように、リソース管理46は、要求されたリソースが取得可能であれば、実行スレッド50に対し、リソースが取得可能であることを通知する。
【0236】
ステップS1103で、MLB43のキューに待ちがある場合、リソース管理46は、ステップS1105で、MLB43のキューに要求してきた実行スレッドのIDをキューに追加する。そして、リソース管理46は、ステップS1106で、リソースに空きがなく、BUSY状態であることを実行スレッド50に通知し、処理を終了する。
【0237】
このように、リソース管理46は、要求されたリソースが取得できない場合、実行スレッド50が変換する画像データの順番を、キューで管理する。
【0238】
ステップS1102の処理に戻り、ステップS1102で、リソース取得要求が変換ライブラリ51に対する要求の場合、リソース管理46は、ステップS1107で、変換ライブラリ51のキューに待ちがあるかどうか判断する。待ちがない場合、リソース管理46は、ステップS1109で、リソースが取得できたことを実行スレッド50に通知し、処理を終了する。
【0239】
ステップS1107で、変換ライブラリ51のキューに待ちがある場合、リソース管理46は、ステップS1108で、変換ライブラリ51のキューに要求してきた実行スレッドのIDを積む。そして、リソース管理46は、ステップS1106で、リソースに空きがなく、BUSY状態であることを実行スレッド50に通知し、処理を終了する。
【0240】
次に、実行スレッド50がリソース取得待ちのステータスとしてのS_WAITの状態からリソースが取得でき、ステータスがS_GETになるまでの処理を、図27のフローチャートを用いて説明する。
【0241】
ステップS1201で、実行スレッド50は、リソース管理46からリソースが空いたことを受信する。次に、ステップS1202で、実行スレッド50は、取得できるリソースが、MLB43の場合、ステップS1203で、実行スレッド50内の処理で用いるフラグであるFLAG_MLB_USEにMLB43を使用することを示すSETを代入し、S_WAITにおける処理を終了する。
【0242】
また、取得できるリソースが、変換ライブラリ51の場合、実行スレッド50は、ステップS1204でFLAG_MLB_USEに変換ライブラリ51を使用することを示すRESETを代入し、S_WAITにおける処理を終了する。
【0243】
以上説明した処理を、実行スレッド50が生成するタスクを用いて説明する。最初に、図28を用いて、MLB43を使用する場合の処理を説明する。図28は、実行スレッド50とMLB制御部47とMLB43間のシーケンス図である。また、図28には、実行スレッド50のステータス、及びタスクの内容も示されている。
【0244】
以下、シーケンス図について説明する。図28に示されるシーケンス図は、MLB43のリソースが使用可能となり、実行スレッド50のステータスが、S_EXEとなった状態から変換処理が終了するまでの処理が示されている。
【0245】
ステータスがS_EXEになると、実行スレッド50が生成したタスクのJob_PARAM_SETが動作する。これは、MLB43で処理を行うために必要なパラメータをセットする処理である。
【0246】
パラメータのセットが終了すると、次に、Job_MLB_REQが動作し、MLB制御部47に対し、ステップS1301で、MLBスタートを通知する。この通知は、メールで行われるが、実行スレッド50とMLB制御部47との間の他のやり取りもメールで行われる。
【0247】
このように、実行スレッド50は、MLB43のリソースが使用可能となると、MLB制御部47に対し、画像データを変換するための画像データ変換要求であるMLBスタートを通知する。
【0248】
MLBスタートを通知すると、実行スレッド50のステータスは、MLB43の変換処理が終了するまで待ち状態となるため、S_WAITとなる。
【0249】
MLBスタートを通知されたMLB制御部47は、MLB43に対し、ステップS1302で、画像データを変換し、所定の位置へ書き込む要求であるWRITEを通知する。これにより、MLB43は、画像データの変換処理を行う。MLB43は、変換処理が終了すると、ステップS1303でMLB制御部47に変換処理が終了したことを示すREADを通知する。READを通知されたMLB制御部47は、ステップS1304で、実行スレッド50に対し、終了を通知する。
【0250】
このように、画像データ変換要求であるMLBスタートを通知されたMLB制御部47は、MLB43に対し、画像データの変換をさせる。また、MLB制御部47は、MLB43が画像データの変換が終了すると、画像データ変換要求を通知した実行スレッド48に対し、変換が終了したことを通知する。
【0251】
終了を通知された実行スレッド50のステータスは、待ち状態が解除されたため、S_WAITからS_ENDに遷移する。これにより、タスクの終了を示すJob_NOPに示されるように、タスクの処理は終了する。そして、実行スレッド50は、MLBのリソースを解放する。
【0252】
以上で一連の変換処理は終了するので、実行スレッド50のステータスは、S_IDLEとなる。
【0253】
次に、図29を用いて、変換ライブラリ51を使用する場合の処理を説明する。図29は、実行スレッド50と変換ライブラリ51間のシーケンス図である。また、図29には、実行スレッド50のステータス、及びタスクの内容も示されている。
【0254】
以下、シーケンス図について説明する。図29に示されるシーケンス図は、変換ライブラリ51のリソースが使用可能となり、実行スレッド50のステータスが、S_EXEとなった状態から変換処理が終了するまでの処理が示されている。
【0255】
ステータスがS_EXEになると、実行スレッド50が生成したタスクのJob_PARAM_SETが動作する。これは、変換ライブラリ51で処理を行うために必要なパラメータをセットする処理である。
【0256】
パラメータのセットが終了すると、実行スレッド50は、ステップS1401で、変換ライブラリ51を関数コールする。そして、ステップS1402で変換処理が終了することにより、実行スレッド50のステータスはS_ENDに遷移する。
【0257】
この処理に示されるように、変換ライブラリ51はスレッドではないため、メールを用いることなく変換処理を行うことができる。関数コールの場合、関数をコールするプログラムのアドレスから関数のあるアドレスへプログラムカウンタがジャンプし、そのまま変換処理が実行される。そして関数の処理が終了すると、先ほどジャンプしたアドレスの次のアドレスから処理が実行される。すなわち、変換処理は、実質的に実行スレッドの処理として行われる。
【0258】
また、関数における処理をさらに高速化するために、関数をC言語のインライン関数とすると、関数をコールしていた場所に、直接に関数のコードが埋め込まれるため、プログラムサイズは大きくなるが高速化が可能となる。これは、上述したプリプロセッサで関数を定義しておいても可能である。
【0259】
次に、上記シーケンス図における処理を、フローチャートで表した図30の説明をする。
【0260】
ステップS1501で、実行スレッド50は、FLAG_MLB_USEフラグで処理を分岐する。変換ライブラリ51で変換する場合は、ステップS1502で変換ライブラリ51のパラメータを設定する。そして、実行スレッド50は、ステップS1503で関数コールを行い、ステップS1504で変換が終了し、ステップS1508のJob_NOPで処理を終了する。
【0261】
ステップS1501で、MLB43で変換する場合、実行スレッド50は、ステップS1505でMLB43のパラメータを設定する。そして、実行スレッド50は、MLB制御部47に対し、ステップS1506で、Job_MLB_REQを実行し、ステップS1507でMLB制御部47からの終了を受信する。実行スレッド50は、ステップS1508のJob_NOPで処理を終了する。
【0262】
上記ステップS1503とステップS1506は、画像データ変換段階に対応する。
【0263】
以上が、MLB43と変換ライブラリ51とを効率よく利用するための処理である。
【0264】
次に、3つめの処理について説明する。この処理は、上述したキューの管理方法についての処理である。
【0265】
このキューの管理方法について、まず、図31を用いて説明する。
【0266】
図31には、実行スレッドAのステータス遷移図160と、実行スレッドBのステータス遷移図169と、実行スレッドDのステータス171と、処理が終了した実行スレッドC170と、MLB制御部47のステータス遷移図161、及び、リソース管理46が管理するMLB43のキュー191、193と変換ライブラリ51のキュー192、194が示されている。このように、リソース管理46は、キューをMLB43、変換ライブラリ51ごとに有する。なお、キュー193、194は、キュー191、192の状態からスレッドC、Bが要求した変換処理後のキューを表している。
【0267】
次に、図31で行われる処理の概要について説明する。スレッドAが変換する画像データは、キュー192に示されるように、変換ライブラリ51のキューで最初は管理されている。そして、MLB43と変換ライブラリ51が変換処理を開始すると、ハードウェアであるMLB43の処理が速いため、キュー191に管理されている実行スレッドCと実行スレッドBが要求した画像データの変換が終了する。そこで、キュー194とキュー193に示されるように、空になったキュー191に、リソース管理46はスレッドAが変換する画像データの順位を並び変える。
【0268】
次に上記処理の詳細を説明する。実行スレッドAのステータスは、まず初期化処理を行っている状態を示すステップS1601のS_INITとなる。この初期化処理は、例えば、使用する変数の初期化などが行われる処理である。
【0269】
初期化を終えた実行スレッドAのステータスは、ステップS1602のS_IDOLに遷移する。このS_IDOLは、実質的な処理は何もしていないステータスである。
【0270】
このステータスで、実行スレッドAがIMH41から変換要求を通知されると、ステータスは、ステップS1603のS_SETに遷移する。このステータスは、要求に応じたタスクを生成する処理が行われるステータスである。このとき、実行スレッドAは、リソース管理46に対し、MLB43と変換ライブラリ51のいずれを用いて変換するかを問い合わせる。そして、リソース管理46は、後述する選択方法によりいずれかを選択し、その選択結果を実行スレッドAに返す。今の場合、スレッドAが変換する画像データは、変換ライブラリ51で変換することが選択されるため、変換ライブラリ51のキュー192が選択される。
【0271】
次に、実行スレッドAのステータスは、ステップS1604で、リソース管理46が先ほど選択したリソースを取得するステータスであるS_GETとなる。
【0272】
このようにして、ステータスがS_GETになると、次のステータスは、タスクに必要なリソースが取得できたかどうかで、2つに分かれる。今の場合、キューの説明であるので、リソースが取得できないとして説明する。
【0273】
ステータスS_GETにおいて、実行スレッドAは、リソース管理46にリソース取得要求を行い、リソース取得応答で、取得できなかったことが通知される。また、このときのリソース取得要求により、スレッドAが変換する画像データはキュー192に管理される。
【0274】
このように、ステータスS_GETのときにリソースが取得できなかった場合、ステータスは、ステップS1605のS_EXEに遷移せず、ステップS1610のS_WAITに遷移する。また、キュー191、192での画像データの順番は、リソース取得要求を通知してきた実行スレッドAのIDで管理される。これは、実行スレッド1つあたり、一つの画像データしか変換しないため、実行スレッドAのIDを積めば情報として十分である。
【0275】
実行スレッドAは、S_WAITのステータスで、リソースが取得可能になるまで待つ。
【0276】
そのとき、スレッドCの画像データの変換が終了し、次の画像データであるスレッドBの画像データの変換が行われ、終了する。画像データの変換が終了したスレッドBは、リソース管理46にMLB43のリソースを解放したことを通知する。
【0277】
このとき、リソース管理46は、上述したように、空になったキュー191に、スレッドAが変換する画像データの順位を並び変える。
【0278】
これにより、スレッドAの画像データを変換するリソースが取得できたので、リソース管理46から、リソースが取得可能となったことが通知されると、ステップS1605のS_EXEにスレッドAのステータスが遷移する。
【0279】
実行スレッドAは、ステップS1605のS_EXEに遷移すると、MLB制御部47に対し、画像データ変換要求を行う。
【0280】
これにより、ステータスは、ステップS1610のS_WAITに遷移する。このステータスは、MLB制御部47からの応答を待つステータスである。そして、MLB制御部47からの応答があると、ステータスは、変換処理が継続される場合は再びステップS1605のS_EXEに遷移し、継続の必要がない場合は、ステップS1611のS_ENDに遷移する。
【0281】
ステータスがS_ENDに遷移すると、実行スレッドAは、タスクを終了するか、次のタスクを実行するかどうか判断する。タスクを終了する場合は、処理が終了するためステップS1602のS_IDOLにステータスは遷移する。次のタスクを実行する場合は、ステータスは再びステップS1604のS_GETに遷移する。
【0282】
次に、MLB制御部47のステータス遷移図161を説明する。実行スレッドAからの要求により、MLB制御部47のステータスは、タスクを生成するステータスであるステップS1606のS_SETとなる。次に、MLB制御部47のステータスは、ステップS1607のS_EXEとなり、MLB制御部47は、画像データの変換を行うために、MLB43のレジスタに対し、パラメータをセットする。これによりステータスは、処理の実行中を示すステップS1608のS_RUNに遷移する。
【0283】
MLB43の変換処理が終了すると、MLB制御部47のステータスは、変換処理の終了を示すステップS1609のS_CLOSEとなる。そしてこのとき、MLB制御部47は、実行スレッドAに変換の終了を通知し、処理を終了する。
【0284】
このように、リソース管理46は、リソースが使用可能となると、キューに管理されている順番に基づき、リソースの取得を要求した実行スレッドAに対し、リソースが取得可能であることを通知する。
【0285】
以上説明したキューの並び替え処理の詳細を、図面を用いて説明する。最初に、図32のフローチャートの説明をする。このフローチャートは、実行スレッド50によるリソースの解放を受信した時のリソース管理46の処理を示すフローチャートである。
【0286】
ステップS1701で、リソース管理46は、実行スレッド50からリソースの解放を受信する。次のステップS1702で、リソース管理46は、解放されるリソースがMLB43のリソースであるかどうか判断する。解放されるリソースが、変換ライブラリ51のリソースの場合、リソース管理46は、次のステップS1703で変換ライブラリ51のリソースが空き、MLB43のキューに待ちがないかどうか判断する。リソース管理46は、MLB43のキューに待ちがないと判断した場合、並び替えに関する処理を終了する。
【0287】
ステップS1703で変換ライブラリ51のリソースに空きがあり、MLB43のキューに待ちがある場合、リソース管理46は、ステップS1704でMLB43のキューの先頭で管理されており、一番最初に処理される画像データの順番を、変換ライブラリ51のキューに移動する。
【0288】
次のステップS1705で、リソース管理46は、リソースの空きを待っている実行スレッド50にリソースが空いたことと、MLB43で変換せず、変換ライブラリ51で変換することになったことを通知し、並び替えに関する処理を終了する。
【0289】
ステップS1702の処理に戻り、解放されるリソースがMLB43のリソースでの場合、リソース管理46は、次のステップS1706でMLB43のリソースに空きがあり、変換ライブラリ51のキューに待ちがないかどうか判断する。リソース管理46は、変換ライブラリ51のリソースも空いていると判断した場合、並び替えに関する処理を終了する。
【0290】
ステップS1706でMLB43のリソースに空きがあり、変換ライブラリ51のキューに待ちがある場合、リソース管理46は、ステップS1707で変換ライブラリ51のキューの先頭で管理されており、一番最初に処理される画像データの順番を、MLB43のキューに移動する。次のステップS1708で、リソース管理46は、リソースの空きを待っている実行スレッド50にリソースが空いたことと、変換ライブラリ51で変換せず、MLB43で変換することになったことを通知し、並び替えに関する処理を終了する。上記ステップS1704とステップS1707は、並び替え段階に対応する。
【0291】
上述したフローチャートにおける並び替えは種々の方法がある。その例を以下説明する。なお、以下の説明において、プロセス系、ユーティリティ系という表現が出てくる。プロセス系とは、主にスキャナで読み取る動作などの機械の動作を伴う処理を表す。この処理は、リアルタイム性が必要なため、優先度の高い処理となる。また、ユーティリティ系は、リアルタイム性をさほど求められない処理である。このように、リソース管理46は、変換する画像データをプロセス系とユーティリティ系という種類に予め分類している。
【0292】
並び替え方法の第1のパターンを、図33を用いて説明する。図33は、リソース管理46が、MLB43のキューに管理されていた画像データの変換が終了すると、変換ライブラリ51のキューの先頭で管理されている画像データの順番を、MLB43のキューの最後尾に並び替えて管理することを示す図である。
【0293】
このように、優先度の高いプロセス系の画像データの変換処理をMLB43のキューの最後尾に並び替えることにより、高速に処理をすることが可能となる。
【0294】
次に、図34を用いて第2のパターンを説明する。図34は、リソース管理46が、MLB43のキューに管理されていた画像データの変換が終了すると、変換ライブラリ51のキューの最後尾で管理されている画像データの順番を、MLB43のキューの最後尾に並び替えて管理することを示す図である。
【0295】
このように、優先度の高いプロセス系の画像データの変換処理をMLB43のキューの最後尾に並び替えることにより、高速に処理をすることが可能となる。
【0296】
続いて第3、第4のパターンを説明するが、第3、第4のパターンでは、図23で説明した表が用いられる。
【0297】
第3のパターンを、図35を用いて説明する。第3のパターンは、変換計算値が最も大きい画像データの並べ替えである。図35に示されるように、変換ライブラリ51のキューで最も変換計算値が大きいのは、係数が5で、データサイズが2のユーティリティ系の画像データである。この画像データの順番を、MLB43のキューの最後尾に並び替える。このようにすることにより、変換計算値が大きい画像データを、高速な処理が可能なMLB43で行うことにより、変換処理を効率化することができる。
【0298】
第4のパターンを、図36を用いて説明する。第4のパターンは、変換計算値が最も小さい画像データの並べ替えである。図36に示されるように、変換ライブラリのキューで最も変換計算値が小さいのは、係数が1で、データサイズが1のプロセス系の画像データである。この画像データの順番を、MLB43のキューの最後尾に並び替える。このようにすることにより、変換計算値が大きい画像データを、高速な処理が可能なMLB43で行うことにより、変換処理を効率化することができる。
【0299】
このように、リソース管理46は、画像データのデータ形式と、画像データが変換されるデータ形式と、画像データのサイズに値に基づき、画像データの順番を管理する順番を並び替える。
【0300】
次に、図37を用いてそれぞれキューで管理されている画像データの変換計算値の合計に基づいて並び替える処理の説明をする。
【0301】
ステップS1801で、リソース管理49は、実行スレッド48から、リソースを解放したことを受信する。ステップS1802で、リソース管理49は、MLB43と変換ライブラリ51のキューの変換計算値の合計を計算する。
【0302】
この変換計算値の合計の求め方について図24で説明した通りである。図24に示されるように、それぞれの合計は、MLB43のキューが123であり、変換ライブラリのキューが、114となっている。ステップS1802は、これらの123と114の値を求める処理である。
【0303】
このときリソース管理46は、MLB43のキュー全体の変換計算値を変数S_MLBに代入し、変換ライブラリ51のキュー全体の変換計算値を変数S_LIBに代入する。
【0304】
リソース管理46は、ステップS1803で、S_MLBとS_LIBとの値を比較する。S_MLBがS_LIB以上の場合、ステップS1806へ処理を進め、MLB43のキューに待ちの画像データがあるかどうか判断する。待ちの画像データがない場合、リソース管理46は、ステップS1808に処理を進める。待ちの画像データがある場合、リソース管理46は、ステップS1807で、MLB43のキューの先頭に管理されている画像データを変換ライブラリ51のキューに移動することにより並べ替え、ステップS1808に処理を進める。
【0305】
ステップS1803の処理に戻り、S_MLBがS_LIBより小さい場合、ステップS1804へ処理を進め、変換ライブラリ51のキューに待ちの画像データがあるかどうか判断する。待ちの画像データがない場合、リソース管理46は、ステップS1808に処理を進める。待ちの画像データがある場合、リソース管理46は、ステップS1805で、変換ライブラリ51のキューの先頭に管理されている画像データをMLB43のキューに移動することにより並べ替え、ステップS1808に処理を進める。
【0306】
以上説明したステップS1807までが並べ替えの処理である。次のステップS1808からは、実行スレッド50へリソースが空いたことの通知をする処理である。
【0307】
ステップS1808で、リソース管理46は、解放されたリソースがMLB43であるかどうか判断する。解放されたリソースがMLB43の場合、リソース管理46は、ステップS1809で、MLB43のキューに待ちの画像データがあるかどうか判断し、待ちの画像データがない場合は処理を終了する。待ちの画像データがある場合、リソース管理46は、ステップS1810で、MLB43のキューの先頭で管理されている画像データを変換する実行スレッド50へリソースが空いたことと、MLB43で変換することを通知し、処理を終了する。
【0308】
ステップS1808の処理に戻り、解放されたリソースが変換ライブラリ51の場合、リソース管理46は、ステップS1811で、変換ライブラリ51のキューに待ちの画像データがあるかどうか判断し、待ちの画像データがない場合は処理を終了する。待ちの画像データがある場合、リソース管理46は、ステップS1812で、変換ライブラリ51のキューの先頭で管理されている画像データを変換する実行スレッド50へリソースが空いたことと、変換ライブラリ51で変換することを通知し、処理を終了する。
【0309】
次に、プロセス系に属する画像データの順番を、既にキューに管理されている画像データの順番に割り込ませる処理について、図38を用いて説明する。図38には、2つのキュー205、206が示されており、キュー205にプロセス系の画像データがさらに追加されたキューが、キュー206である。また、このキューには、対応する画像データの係数と、データサイズと、変換計算値と、合計とが記されている。係数は、図23で示した係数である。例えば、キュー205の先頭のプロセス系の画像データは、計数が1で、データサイズが2で、変換計算値が2で、合計が2となっている。
【0310】
なお、この合計とは、キューに管理されている画像データの変換計算値の合計である。例えば2番目のユーティリティ系までの合計は、1番目のプロセス系の変換計算値2と2番目のユーティリティ系の変換計算値4とを足した6となる。このように、合計は、その画像データまでの変換計算値の合計となっている。
【0311】
この合計を用いて、割り込ませる条件を定めておく。具体的には、例えばプロセス系の画像データは、変換計算値の合計が5以下の順番のうち、もっとも大きい順番に割り込ませる、というように定めておく。
【0312】
その条件のもと、キュー205の管理状態に、プロセス系の画像データを管理するとする。そうすると、キュー205で、合計が5以下の順番は、1番か2番である。そこで、キュー206に示されるように、新たに管理するプロセス系の画像データの順番は、5以下の順番で、もっとも大きい順番である2番目と定まる。
【0313】
このように、割り込ませる順番は、キューに管理されている画像データのデータ形式、データサイズ、画像データが変換されるデータ形式に基づいて定められる。
【0314】
次に、同一の種類に属する画像データがキューにおいて管理される順番を、1つ以上連続させた順番で管理することを、図39、40を用いて説明する。図39は、プロセス系の画像データは2つまで連続させ、ユーティリティ系の画像データは3つまで連続して管理することを示す図である。
【0315】
また、図40は、プロセス系の画像データは3つまで連続させ、ユーティリティ系の画像データは1つまで連続して管理することを示す図である。
【0316】
このように、リソース管理46は、一の種類に属する画像データがキューにおいて管理される順番を、1つ以上連続させた順番で管理する。
【0317】
このように管理することにより、割り込みがあった場合も、同一の種類の画像データだけ変換されることを防ぐことができる。
【0318】
【発明の効果】
以上説明したように、本発明によれば、画像データの変換処理の効率を向上した画像形成装置、画像データ変換方法が得られる。
【図面の簡単な説明】
【図1】本発明による融合機の一実施例の構成図である。
【図2】本発明による融合機の一実施例のハードウェア構成図である。
【図3】MLBを示す図である。
【図4】変換機能を示す図である。
【図5】MLBにおける画像データの流れを示す図である。
【図6】画像データ領域を示す図である。
【図7】変換処理における画像データ領域の様子を示す図である。
【図8】変換処理における画像データ領域の様子を示す図である。
【図9】本発明の実施の形態におけるMEUの詳細を示す図である。
【図10】ステータスの遷移を示す図である。
【図11】ステータスの遷移を示すフローチャートである。
【図12】画像データ変換処理を示すフローチャートである。
【図13】画像データ変換処理を示すフローチャートである。
【図14】第1のパターンにおける処理を示すシーケンス図である。
【図15】画像データ領域を示す図である。
【図16】第2のパターンにおける処理を示すシーケンス図である。
【図17】画像データ領域を示す図である。
【図18】第3のパターンにおける処理を示すシーケンス図である。
【図19】画像データ領域を示す図である。
【図20】ステータスの遷移を示す図である。
【図21】実行スレッドの処理を示すフローチャートである。
【図22】リソース管理の処理を示すフローチャートである。
【図23】MLBと変換ライブラリのいずれかを選択するために用いる表である。
【図24】変換計算値の合計を示す図である。
【図25】実行スレッドの処理を示すフローチャートである。
【図26】リソース管理の処理を示すフローチャートである。
【図27】実行スレッドの処理を示すフローチャートである。
【図28】MLBを使用する場合の処理を示すシーケンス図である。
【図29】変換ライブラリを使用する場合の処理を示すシーケンス図である。
【図30】実行スレッドと生成したタスクの処理を示すフローチャートである。
【図31】ステータスの遷移を示す図である。
【図32】リソース管理の処理を示すフローチャートである。
【図33】キューの並び替えを示す図である。
【図34】キューの並び替えを示す図である。
【図35】キューの並び替えを示す図である。
【図36】キューの並び替えを示す図である。
【図37】リソース管理の処理を示すフローチャートである。
【図38】キューの割り込みを示す図である。
【図39】連続して管理することを示す図である。
【図40】連続して管理することを示す図である。
【図41】従来例の処理を示すシーケンス図である。
【符号の説明】
1…融合機
2…ソフトウェア群
3…融合機起動部
4…ハードウェア資源
5…アプリケーション層
6…プラットホーム層
9…コントロールサービス層
10…ハンドラ層
11…スキャナ
12…プロッタ
13…その他のハードウェアリソース
21…プリンタアプリ
22…コピーアプリ
23…ファックスアプリ
24…スキャナアプリ
31…ネットワークコントロールサービス(NCS)
32…デリバリーコントロールサービス(DCS)
33…オペレーションパネルコントロールサービス(OCS)
34…ファックスコントロールサービス(FCS)
35…エンジンコントロールサービス(ECS)
36…メモリコントロールサービス(MCS)
37…ユーザインフォメーションコントロールサービス(UCS)
38…システムコントロールサービス(SCS)
39…システムリソースマネージャ(SRM)
40…ファックスコントロールユニットハンドラ(FCUH)
41…イメージメモリハンドラ(IMH)
43…MLB
44…MEU
45…画像データ変換処理部
47…MLB制御部
48…メインスレッド
49…配信スレッド
50…実行スレッド
51…変換ライブラリ
52…オペレーションパネル
53…アプリケーションプログラムインターフェース(API)
54…エンジンI/F
60…コントローラボード
61…CPU
62…ノースブリッジ(NB)
63…システムメモリ(MEM−P)
64…ローカルメモリ(MEM−C)
65…ハードディスク装置(HDD)
66…ASIC
67…AGP(Accelerated Graphics Port)
68…ファックスコントロールユニット(FCU)
69…G3対応ユニット
70…G4対応ユニット
71…エンジン
73…サウスブリッジ(SB)
74…NIC
75…USBデバイス
76…IEEE1394デバイス
77…セントロニクスデバイス
78…MLC
79…Ri10
80…RJ2K
81…伸長部
82…多値変換部
83…変倍部
84…色変換部
85…圧縮部
86…変換部
101…SRC領域
102…DST領域
121、122、123、124、125、126、127、128、129、130、131、132、133、134、135、136、137、138、139、140、141、142、143、144、145、146、147、148、149、150、151、152、153.154、155、156、157、158、159、162、163、164、165、166、167、201、202、203、204…画像データ領域
160、161、169…ステータス遷移図
170…実行スレッドC
171…ステータス
168、191、192、193、194、205、206…キュー

Claims (6)

  1. 画像データに対し、画像形成に係る変換処理を行う複数の画像データ変換手段を有する画像形成装置であって、
    前記画像形成に係る変換処理を実行する専用のハードウェアとして構成される第一の画像データ変換手段と、
    前記第一の画像データ変換手段が実行する前記変換処理と同一の変換処理をプログラムを実行して実現するCPUとして構成される第二の画像データ変換手段と、
    前記画像データのサイズ、及び、前記変換処理の入力の画像データのデータ形式と前記変換処理の出力の画像データのデータ形式に基づく係数により計算される変換計算値が所定値以上の場合、前記第一の画像データ変換処理手段を選択し、前記所定値未満の場合、前記第二の画像データ変換手段を選択する変換管理手段とを有し、
    前記変換管理手段は、前記複数の画像データ変換手段が変換する画像データの順番を、前記画像データ変換手段ごとに設けられたキューを用いて管理し、さらに、前記画像データを該画像データに対する処理に基づいて複数の種類に予め分類し、
    新たに前記キューにより管理される画像データの変換計算値と、既に前記キューにより管理されている画像データの変換計算値とに基づいて、前記新たに前記キューにより管理される画像データの順番を、既に前記キューにより管理されている画像データの順番に割り込ませることを特徴とする画像形成装置。
  2. 前記変換管理手段は、一のキューにおいて、一の種類に属する画像データが複数の場合に、複数の前記画像データが前記一のキューにおいて管理される順番を、連続させることを特徴とする請求項1に記載の画像形成装置。
  3. 前記変換管理手段は、
    前記第一の画像データ変換手段のキューに管理されていた画像データの変換処理が終了する毎に、
    前記第一の画像データ変換手段のキューにより管理されている画像データの変換計算値の合計が、前記第二の画像データ変換手段のキューにより管理されている画像データの変換計算値の合計より小さい場合には、
    前記第二の画像データ変換手段のキューにより管理されている一番最初の画像データを前記第一の画像データ変換手段のキューに移動させ、
    前記第一の画像データ変換手段のキューに管理されている画像データの変換計算値の合計が、前記第一の画像データ変換手段のキューに管理されている画像データの変換計算値の合計以上の場合、
    前記第一の画像データ変換手段のキューにより管理されている一番最初の画像データを前記第二の画像データ変換手段のキューに移動させることを特徴とする請求項1に記載の画像形成装置。
  4. 前記変換管理手段は、
    前記第一の画像データ変換手段のキューに管理されていた画像データの変換処理が終了する毎に、
    前記第二の画像データ変換手段のキューの先頭で管理されている画像データを、前記第一の画像データ変換手段のキューの最後尾での管理とすることを特徴とする請求項1に記載の画像形成装置。
  5. 前記変換管理手段は、
    前記第一の画像データ変換手段のキューに管理されていた画像データの変換処理が終了する毎に、
    前記第二の画像データ変換手段のキューの最後尾で管理されている画像データを、前記 第一の画像データ変換手段のキューの最後尾での管理とすることを特徴とする請求項1に記載の画像形成装置。
  6. 前記画像データ変換手段と、
    該画像データ変換手段毎に対応して該画像データ変換手段を制御する画像データ変換制御手段と、
    を有する画像データ変換処理手段を有することを特徴とする請求項1に記載の画像形成装置。
JP2003203079A 2002-08-12 2003-07-29 画像形成装置 Expired - Fee Related JP4141342B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003203079A JP4141342B2 (ja) 2002-08-12 2003-07-29 画像形成装置
US10/637,690 US20040109186A1 (en) 2002-08-12 2003-08-11 Image forming apparatus and image data transforming method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2002235035 2002-08-12
JP2002276678 2002-09-24
JP2002276679 2002-09-24
JP2003203079A JP4141342B2 (ja) 2002-08-12 2003-07-29 画像形成装置

Publications (2)

Publication Number Publication Date
JP2004166222A JP2004166222A (ja) 2004-06-10
JP4141342B2 true JP4141342B2 (ja) 2008-08-27

Family

ID=32475620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003203079A Expired - Fee Related JP4141342B2 (ja) 2002-08-12 2003-07-29 画像形成装置

Country Status (2)

Country Link
US (1) US20040109186A1 (ja)
JP (1) JP4141342B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7277152B2 (ja) 2019-01-22 2023-05-18 ファナック株式会社 工作機械の工具管理システム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004336487A (ja) * 2003-05-08 2004-11-25 Ricoh Co Ltd ファクシミリ装置、プログラム及び記憶媒体
US7551205B2 (en) * 2004-03-22 2009-06-23 Fujifilm Corporation Image processing method, image processing system, image processing apparatus and image processing program
US20060039023A1 (en) * 2004-08-23 2006-02-23 Supra John R Jr Method and system for commercial processing of digital image files
JP4695465B2 (ja) * 2004-09-28 2011-06-08 株式会社リコー 画像形成装置、ハードウェア制御方法、および、ハードウェア制御プログラム
JP4759382B2 (ja) * 2004-12-21 2011-08-31 株式会社リコー 通信機器、通信方法、通信プログラム、及び記録媒体
US8478074B2 (en) * 2006-07-07 2013-07-02 Microsoft Corporation Providing multiple and native representations of an image
JP5181816B2 (ja) * 2008-05-12 2013-04-10 株式会社リコー 画像処理装置、画像処理方法、コンピュータプログラム、及び、情報記録媒体
JP5132451B2 (ja) * 2008-07-02 2013-01-30 株式会社リコー 画像形成装置
JP5181911B2 (ja) * 2008-08-05 2013-04-10 株式会社リコー 画像形成装置、メモリ管理方法、及びメモリ管理プログラム
JP5691465B2 (ja) 2010-12-10 2015-04-01 株式会社リコー 画像処理装置、方法、プログラムおよび記録媒体
JP6421843B2 (ja) * 2012-02-01 2018-11-14 株式会社リコー 情報処理システム、データ変換処理方法及び情報処理システム
JP2013178748A (ja) 2012-02-01 2013-09-09 Ricoh Co Ltd 情報処理装置、プログラム、情報処理システム及びデータ変換処理方法
JP6007607B2 (ja) 2012-06-18 2016-10-12 株式会社リコー 画像形成装置及び画像形成方法、並びに、画像形成方法のプログラム及びそのプログラムを記憶した記憶媒体
JP6007617B2 (ja) 2012-06-25 2016-10-12 株式会社リコー 記録媒体の積載装置及びその制御方法、並びに、その制御方法のプログラム及びそのプログラムを記憶した記憶媒体
US11036833B2 (en) 2016-07-11 2021-06-15 Ricoh Company, Ltd. Image processing system, information processing method, and non-transitory computer-readable medium
US10963295B2 (en) * 2017-09-08 2021-03-30 Oracle International Corporation Hardware accelerated data processing operations for storage data
JP7159765B2 (ja) 2017-10-06 2022-10-25 株式会社リコー 文書状態管理システム、文書状態管理方法、プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3660363B2 (ja) * 1992-05-28 2005-06-15 株式会社リコー 画像形成装置管理システムとその画像形成装置
JP3339921B2 (ja) * 1992-11-30 2002-10-28 株式会社リコー 画像形成装置管理システムの通信コントロール装置
JP3347781B2 (ja) * 1992-12-11 2002-11-20 株式会社リコー 画像形成装置管理システム
JP3148103B2 (ja) * 1995-06-30 2001-03-19 株式会社東芝 画像形成装置
US6111659A (en) * 1995-09-26 2000-08-29 Matsushita Electric Industrial Co., Ltd. Digital copier with image scanner apparatus and offline image data and control data interface
FR2756387B1 (fr) * 1996-11-22 2001-11-30 Ricoh Kk Appareil de formation d'image, notamment pour copieur et imprimante
JP3396141B2 (ja) * 1996-12-16 2003-04-14 株式会社リコー 画像形成装置
JP3450630B2 (ja) * 1997-02-27 2003-09-29 株式会社リコー 画像形成装置
JPH11296019A (ja) * 1998-04-08 1999-10-29 Ricoh Co Ltd 画像形成装置
US6850995B1 (en) * 1999-01-25 2005-02-01 Canon Kabushiki Kaisha Control unit selectively connected with a first bus and a second bus for controlling a displaying process in parallel with a scanning process
US6862102B1 (en) * 1999-04-27 2005-03-01 Adobe Systems Incorporated Automatically preparing an image for download
JP4497733B2 (ja) * 2000-02-22 2010-07-07 キヤノン株式会社 データ処理装置及びデータ処理方法
JP3938844B2 (ja) * 2001-01-25 2007-06-27 株式会社リコー 画像形成システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7277152B2 (ja) 2019-01-22 2023-05-18 ファナック株式会社 工作機械の工具管理システム

Also Published As

Publication number Publication date
US20040109186A1 (en) 2004-06-10
JP2004166222A (ja) 2004-06-10

Similar Documents

Publication Publication Date Title
JP4141342B2 (ja) 画像形成装置
JP3000744B2 (ja) マルチファンクション画像処理装置
JP4799285B2 (ja) 画像出力システム、画像出力装置、情報処理方法、記憶媒体ならびにプログラム
JP2001027986A (ja) データ処理装置及び処理部選択方法
US7760387B2 (en) Image forming device, hardware control method, and hardware control program
JPH1083263A (ja) 画像形成装置及び画像処理方法
EP1463288A1 (en) Data processing device, facsimile machine having data processing function, data managing device associated with the data processing device and computer program
JP2005033796A (ja) 多機能画像処理装置及び多機能画像処理方法
JP2004171515A (ja) 画像形成装置、画像データ転送方法
US8089643B2 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program
US20100228931A1 (en) Management apparatus, system, control method, and recording medium
JP4378197B2 (ja) 画像情報装置
JP2000316063A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004140801A (ja) 画像形成装置、集約印刷方法
JP3920168B2 (ja) 画像形成装置とその制御方法並びに画像形成システム及び記録媒体
JP4292088B2 (ja) 画像処理装置
JP2000115277A (ja) 符号化復号化装置及び画像形成システム
JP5448538B2 (ja) 画像処理装置及び画像処理方法、並びに画像処理プログラム及び画像処理システム
KR100299960B1 (ko) 복합기에서의데이터편집관리방법
US20040258315A1 (en) Image processing system, image forming apparatus, image processing method, program and recording medium
JP5062633B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2004242120A (ja) デジタル複合機の部門管理制御システム
JP4135519B2 (ja) 通信装置
JP5441961B2 (ja) 画像出力装置、情報処理方法ならびにプログラム
JP3327259B2 (ja) プリンタコピー複合機及びそのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080411

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: 20080513

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080610

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees