JP3792733B2 - サーバー装置および制御方法 - Google Patents
サーバー装置および制御方法 Download PDFInfo
- Publication number
- JP3792733B2 JP3792733B2 JP02170593A JP2170593A JP3792733B2 JP 3792733 B2 JP3792733 B2 JP 3792733B2 JP 02170593 A JP02170593 A JP 02170593A JP 2170593 A JP2170593 A JP 2170593A JP 3792733 B2 JP3792733 B2 JP 3792733B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- data
- scanner
- printer
- job
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00204—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
- H04N1/00236—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server using an image reading or reproducing device, e.g. a facsimile reader or printer, as a local input to or local output from a computer
- H04N1/00241—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server using an image reading or reproducing device, e.g. a facsimile reader or printer, as a local input to or local output from a computer using an image reading device as a local input to a computer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00204—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
- H04N1/00236—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server using an image reading or reproducing device, e.g. a facsimile reader or printer, as a local input to or local output from a computer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32502—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32502—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
- H04N1/32507—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices
- H04N1/32512—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices of different type, e.g. internal and external devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32502—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
- H04N1/32507—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices
- H04N1/32512—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices of different type, e.g. internal and external devices
- H04N1/32518—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices of different type, e.g. internal and external devices details of interfacing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/333—Mode signalling or mode changing; Handshaking therefor
- H04N1/33376—Mode signalling or mode changing; Handshaking therefor according to characteristics or state of one of the communicating parties, e.g. available memory capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00204—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0008—Connection or combination of a still picture apparatus with another apparatus
- H04N2201/0034—Details of the connection, e.g. connector, interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0081—Image reader
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Facsimiles In General (AREA)
- Computer And Data Communications (AREA)
- Processing Or Creating Images (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワークを介してホストコンピュータと通信可能なサーバー装置および制御方法に関するものである。
【0002】
【従来の技術】
従来、サーバー装置としては、複数のプリンタが接続される、いわゆるプリンタサーバー装置に知られている。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のサーバー装置としては、複数のイメージリーダ(スキャナ装置)が接続されるような装置は、未だ知られていなかった。
【0004】
また、かかるサーバー装置に接続される複数のイメージリーダの読取り特性は同一であるとは限らず、互いに読取り特性が異なる場合があり、かかる場合ホストコンピュータは、これらのイメージリーダの特性を知ることができないという問題が生じた。
【0005】
本発明は、上記の問題点を解決するためになされたもので、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送するとともに、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信することにより、ホストコンピュータ側で、ネットワーク上にある各画像読取り装置の画像読取り特性を認識することができ、さらに、選択した画像読取装置の画像読取り特性を設定することができるサーバー装置および制御方法を提供することである。
【0006】
【課題を解決するための手段】
本発明に係る第1の発明は、ネットワークを介してホストコンピュータと通信可能なサーバー装置であって、複数の画像読取り装置およびそれぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送する転送手段と、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信する受信手段と、複数の画像読取り装置の中から選択された画像読取り装置に画像の読み取りをさせる制御手段と、読み取られた画像の画像データを前記ホストコンピュータに送信する画像データ送信手段とを有することを特徴とする。
【0007】
本発明に係る第2の発明は、画像読取り特性を、カラー/モノクロ何れであるかを示す特性で構成したことを特徴とする。
【0008】
本発明に係る第3の発明は、前記画像読取り装置は、原稿を読み込んで、原稿の画像データを生成するスキャナであることを特徴とする。
【0009】
本発明に係る第4の発明は、前記ホストコンピュータから送信された、前記ホストコンピュータにログインしているユーザ名が登録されているかを判定する判定手段と、前記ホストコンピュータに登録されていると前記判定手段で判定された場合、複数の画像読取り装置の名を前記ホストコンピュータに送信する送信手段とを有することを特徴とする。
本発明に係る第5の発明は、ネットワークを介してホストコンピュータと通信可能な装置における制御方法であって、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送する転送ステップと、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信する受信ステップと、選択された画像読取り装置に画像の読み取りをさせる制御ステップと、読み取られた画像の画像データを前記ホストコンピュータに送信する画像データ送信ステップとを有することを特徴とする。
本発明に係る第6の発明は、画像読取り特性を、カラー/モノクロ何れであるかを示す特性で構成したことを特徴とする。
本発明に係る第7の発明は、前記画像読取り装置は、原稿を読み込んで、原稿の画像データを生成するスキャナであることを特徴とする。
本発明に係る第8の発明は、前記ホストコンピュータから送信された、前記ホストコンピュータにログインしているユーザ名が登録されているかを判定する判定ステップと、前記ホストコンピュータに登録されていると前記判定ステップで判定された場合、複数の画像読取り装置の名を前記ホストコンピュータに送信する送信ステップとを有することを特徴とする。
【0010】
【実施例】
図1は本発明の第1実施例を示すサーバー装置の概要を説明するシステムブロック図である。なお、詳細なシステムブロック図は後述する。
【0011】
図において、スキャナ/プリンタ(SP)サーバーは後述する。本システムは、大別してメインCPU回路1,イーサネット回路2,JPEG圧縮回路3,スキャナ/プリンタインタフェース回路4より構成されている。なお、スキャナ/プリンタ(SP)サーバーに複数のスキャナ/プリンタを接続する場合には、その台数分のスキャナ/プリンタインタフェース回路を実装する。その台数の増減を容易にする為にスキャナ/プリンタインタフェース回路は独立したボード上に構成されており、本体とは後述するVMEバス16で接続する。残りのメインCPU回路1、イーサネット回路2、JPEG圧縮回路3は1枚のボード上に構成されており、互いにローカルなバス14で結合されている。
【0012】
4−1は第1のスキャナ/プリンタインタフェース回路(第1のSPインタフェース回路)で、例えば商品名CLC−500等のディジタルカラー複写装置100(レーザビームカラー複写装置)とVMEバス16とのI/Oをインタフェースする。
【0013】
4−2は第2のプリンタ/スキャナインタフェース(第2のSPインタフェース回路)で、例えば商品名ピクセルジェット等のディジタルカラー複写装置200(バブルジェットカラー複写装置)とVMEバス16とのI/Oをインタフェースする。
【0014】
メインCPU回路1は例えばR3000(商品名)等のCPU5とメモリ6等から成り、ここでOSである、例えば VxWorks(商品名)の管理下ですべてのプログラムが実行される。メモリ6の補助記憶装置として、ハードディスク7がある。8はSCSIインタフェースである。イーサネット回路2はイーサネットトランシーバー9とデータをメモリ6にDMA転送する為のDMAコントローラ10等とから成る。イーサネットトランシーバー9はイーサネット(商品名)ローカルエリアネットワーク(LAN)11に接続する。JPEG圧縮回路3はJPEG圧縮/伸長コントローラ12とFIFOメモリ13等とから成る。メインCPU回路1,イーサネット回路2,JPEG圧縮回路3を互いに結合しているローカルバス14はVMEバストランシーバー15−1を介してVMEバス16に接続されている。
【0015】
第1のSPインタフェース回路4−1はページメモリ17と第1の制御回路18等からなる。1ページ分のメモリが必要な理由は、ディジタルカラー複写装置100が印刷/スキャンを開始すると途中でフロー制御する事ができないからである。ページメモリ17は、メモリの価格が高いので圧縮メモリを構成している。すなわち、このメモリ17に書き込まれるデータは、メモリ6でラスタライズされた画像のみである事に着目し、メモリ17は非可逆圧縮ではあるが、高圧縮率が得られるADCT圧縮方式を採用している。そのADCT圧縮チップはこの図では示していないが、前述のJPEG圧縮/伸長コントローラ12と同じチップを用いている。
【0016】
ただし、このページメモリ17にADCT圧縮方式用いる場合、圧縮データはここだけの閉じた回路で使用されるだけで、外部には出て行かないから、標準に則る必要はなく、実際、JPEGを改良した効率的な方法を用いている。第1の制御回路18は例えばZ−80(商品名)等のCPU等で構成し、複写装置100との画像以外の制御信号のやり取りをしている。ここのインタフェースの本数を減らすため、制御コマンドをシリアルで送っている。第1のSPインタフェース回路4−1はVMEバストランシーバー15−2を介してVMEバス16と接続している。
【0017】
第2のSPインタフェース回路4−2はデータ縦横変換回路19、バッファメモリ20、画像処理回路21及び第2の制御回路22等とから成り。VMEバストランシーバー15−3を介してVMEバス16と接続している。データ縦横変換回路19は、プリント時は走査方向の画像のデータ形式を走査方向に対して90°に変換し、スキャン時は走査方向に対して90°のデータ形式を走査方向に変換する。バッファメモリ20はそのための変換用バッファとして用いる。
【0018】
画像処理回路21は複写装置200に欠けている画像処理機能を補う為に入れている。第2の制御回路22は第1の制御回路18と同じ機能を提供する為のものであり、同じ例えばZ−80(商品名)等のCPU等で構成されている。
【0019】
以下、動作について説明する。
【0020】
例えばネットワーク印刷を実行する場合の例を示すと、LAN11からイサーネットトランシーバー9を介して入ってきたページ記述言語(例えば商品名 CaPSL)は、DMAコントローラ10によって、直接メモリ6の特定領域(受信バッファ)に蓄えられる。そこで後述するページ記述言語インタープリタープログラムによってラスターイメージに変換される。JPEG圧縮画像は、ページ記述言語(以下、PDL)で伸長することもできるが、高速に伸長するためJPEG圧縮/伸長回路3が利用される。
【0021】
このように構成された第1のサーバー装置において、第1の画像出力制御手段(メインCPU回路1)が各ホストから前記ネットワークを介して入力される第1の画像情報,各ホストからの指示に従って各入出力機器(複写装置100,200)から読み込まれた第2の画像情報,各ホストからの指示に従って第1のおよび第2の画像情報を組み合わせた第3の画像情報の各入出力機器への出力を後述する図60,図61に示すフローチャートに従って制御するので、各ホストからの指示に応じて第1〜第3の画像情報のいずれかを直接生成して各入出力機器から直接出力することが可能となるとともに、第2の画像出力制御手段が第2の画像情報を前記ネットワークを介して要求した第1のホストまたは第1のホストに指示された第2のホストへの出力を制御するので、ホストからの指示に応じて各入出力機器から取り込んだ第2の画像情報を自ホストを含む他のホストに直接転送することも可能となる。
【0022】
なお、メモリ6は価格的な理由から、1ページの画面全体をラスタライズするだけの容量を持たず、PDL(例えばCaPSL )を部分的に処理するバンディングという手法を用いて、何回かに分けて処理される。ラスタライズが完了したら、第1のSPインタフェース回路4−1または第2のSPインタフェース回路4−2に転送され、各プリンターに出力される。なお、ネットワークスキャンを実行する場合の例は後述する。
【0023】
図2は、図1に示したサーバー装置を含むネットワークシステムの概略を示すシステムブロック図である。
【0024】
本実施例におけるネットワークシステムは、例えば Macintosh(商品名)、IBM-PC(商品名)、SUN (商品名)の様な市販されているホストコンピュータのアプリケーションソフトウエアから、ネットワークを介して接続されている少数のスキャナーやプリンターを共同利用する為の物である。同図に於て、大きく4つのブロックがあるが、左から順に MacintoshワークステーションST1、IBM-PCワークステーションST2、SUN ワークステーションST3、及びカラーSPサーバーSP1である。 MacintoshワークステーションST1、IBM-PCワークステーションST2、SUN ワークステーションST3は、市販されているホストコンピューターであり、カラーSPサーバーSP1は発明者が設計したインタフェースユニットである。それらが、例えばEthernet(商品名)というローカルエリアネットワーク96によって相互接続されている。94は第1のカラースキャナ/プリンタ、95は第2のカラースキャナ/プリンタである。
【0025】
Macintosh ワークステーションST1、IBM-PCワークステーションST2、SUN ワークステーションST3、及びカラーSPサーバーSP1は、相互通信の為に、共通の通信インタフェースを有する。51,61,71,81はローカルエリアネットワーク(LAN)96と通信する為のイーサネットトランシーバーである。52,62,72,82はLAN96上に構築した通信プログラム TCP/IP (商品名)で、米国国防省の標準である。
【0026】
このTCP/IPプログラムは End-to-End でのデーター誤りの無い通信サービス(機能)を提供する。53,63,73,83は第1のカラースキャナ/プリンタ94,第2のカラースキャナ/プリンタ95を Macintosh用のステーションST1,IBM-PC用のステーションST2,SUN ワークステーションST3から共同利用するという特別な目的のためのサービス(機能)を提供する通信プログラムである。53,63はS/Pクライアントプログラムとして、クライアント型のサービスを提供する通信プログラムであり、83はS/Pサーバープログラムで、サーバー型のサービスを提供する通信プログラムである。
【0027】
Macintosh のステーションST1から第1のカラースキャナ/プリンタ94に印刷させる場合を説明すると、市販アプリケーションプログラム56で作成した原稿を印刷しようとすると、プリントマネージャ−(Printing Manager) 55というOS(Operating System)の一部に制御が渡され、印刷のための制御を開始する。この時のデーターフォマットは Macintoshの場合 QuickDraw(商品名)タイプに標準化されている。プリントマネージャー55は、変換プログラム54の描画関数群を原稿に書かれた通りにコールする。変換プログラム54は、そのコールの中で QuickDrawを、例えばCaPSL(Canon Prinnting System Language)コードに逐一変換して図示しないメモリーに CaPSLコードを蓄える。変換プログラム54は、主としてQuickDraw/CaPSL 変換プログラムとして機能する。
【0028】
通信プログラム53は、得られた CaPSLコードをTCP/IPプログラム52に従ってイーサネットトランシーバ51,LAN96,イーサネットトランシーバ81を介し,さらにTCP/IPプログラム82,通信プログラム83を介してカラーSPサーバーSP1に伝送する。なお、上述した変換プログラム54,64,74,通信プログラム53,63,73,スキャナインタフェースプログラム57,67,TCP/IPプログラム52,62,72等は、例えばフロッピ−ディスク等でホストコンピュータに供給されても良い。また、イーサネットトランシーバー、例えばボード回路としてホストコンピュータに供給されても良い。
【0029】
カラーSPサーバー(S/Pサーバー装置)SP1全体の動作は、システム全体制御プログラム93によって制御されている。前記 CaPSLコードの受信も、システム全体制御プログラム93に知らされる。システム全体制御プログラム93は、後述するPDLインタープリタープログラム84に対して、CaPSL コード化された原稿を、ビットマップ画像にラスタライズする様に要求する。ビットマップ画像にラスタライズされた画像データは、デバイスドライバ86に渡され、例えば第1のプリンタ制御ボード91を介してビデオインタフェース Video I/Fから第1のカラースキャナ/プリンタ94に送られ、印刷される。
【0030】
IBM-PCのステーションST2から印刷する場合も同様で、上記データの流れと同様であるが、IBM-PCのステーションST2の場合には、印刷原稿のデータフォマットは GDI(商品名)に標準化されている。変換プログラム64は、主としてGDI/CaPSL 変換プログラムとして機能する。
【0031】
SUNワークステーションST3から印刷する場合は、上記変換プログラム54,64に相当する機能が標準化されていないため、アプリケーションプログラム75が直接通信プログラム73を介して通信する。ただし、市販のアプリケーションプログラム、例えば FrameMaker (商品名)から印刷できるようにする為、MIF/CaPSL 変換用の変換プログラム74を間に入れている。
【0032】
原稿をスキャン(読み取り)する場合は、例えば MacintoshのステーションST1の場合、スキャナアプリケーションプログラム58からスキャナインタフェースプログラム57を介して通信プログラム53にスキャンの要求を出す。すると通信プログラム53は、イーサネットトランシーバ51,LAN96,イーサネットトランシーバ81およびTCP/IPプログラム82を介し、通信プログラム83との間に、End-to-End の通信路を確保し、スキャン命令を伝達するその命令はシステム全体制御プログラム93に伝えられ、スキャナ制御プログラムに対して第1のカラースキャナ/プリンタ94をスキャンさせるように要求する。
【0033】
スキャンされた原稿の画像データは逆に、第1制御ボード91,デバイスドライバ86,通信プログラム83,TCP/IPプログラム82,イーサネットトランシーバ81,LAN96,イーサネットトランシーバ51,TCP/IPプログラム52,通信プログラム53,デバイスドライバー57,スキャナアプリケーションプログラム58の順に伝達される。
【0034】
IBM-PCのステーションST2で原稿をスキャンする場合も同様であるが、SUNワークステーションST3からスキャンする場合は、デバイスドライバー57,スキャナインタフェースプログラム67に相当する機能が標準化されていないため、スキャナアプリケーションプログラム76が直接通信プログラム73を介して通信する。なお、スキャナインタフェースプログラム57,67はスキャナアプリケーションと通信プログラムとのデータの制御を行う。
【0035】
カラーSPサーバーSP1には、もう1台のスキャナ/プリンタである第2のカラースキャナ/プリンタ95が接続されており、第2の制御ボード92を介して第2のカラースキャナ/プリンタ95を同様に制御する。
【0036】
システム全体制御プログラム93を始めとするカラーSPサーバーSP1の全てのプログラムは、例えばVxWorks (商品名)と言うシステムプログラム(OS)の管理下で動作する。
【0037】
このサービスの為の特別なプログラム(例えば通信プログラム73,変換プログラム74等)を持たない一般のUNIXワークステーションからの要求を受け付ける為、カラーSPサーバーSP1には通信プログラム83と並行して、準業界標準の lpr/lpd通信プログラム90も載せている。
【0038】
図3は本発明に係るサーバー装置と各ホストコンピュータとのネットワーク構築状態を示す図である。
【0039】
この図に示すように、各ホストコンピュータHOST1〜Nは、 Macintosh(商品名)、IBM-PC(商品名)、SUN (商品名)等のホストコンピュータで、それぞれのOSによりデータ処理が制御されている。これらのホストコンピュータHOST1〜Nには、LAN96との通信を行うためのイーサネットインタフェースボード97,画像圧縮伸長ボード98,CPUボード99がそれぞれ設けられている。なお、画像圧縮伸長ボード98は、メモリ上でのソフトウエア処理により実現するものであっても良い。また、画像データを入出力する際に、圧縮伸長を用いない場合には、画像圧縮伸長ボード98が不要となる。さらに、本実施例ではLAN96としてイーサネットを使用しているが、ネットワークの方法は、Apple talk(商品名),Taken Ring(商品名)等を利用するネットワークであってもいいし、通信プログラムもTCP/IPプログラムに代えてOSI,IPX(商品名)等で構成されるシステムでも本発明を適用できることは言うまでもない。
【0040】
図4は、図1に示したメインCPU回路1,イーサネット回路2,JPEG圧縮回路3より構成されるボード回路の詳細構成を説明する回路ブロック図である。
【0041】
図において、101は例えばIDT79R3051(商品名)等で構成されるCPUで、ボード回路全体を制御する。なお、ボード回路にはリアルタイムOSが搭載されている。このOS上で起動されている図2に示した通信プログラム83,システム全体制御プログラム93,スキャナ制御プログラム85,PDLインタープリタープログラム84等をCPU101が起動し、マルチプロセスに動作を制御する。
【0042】
102は主記憶メモリで、CPU101のワークメモリとして機能する。なお、本システムが電源投入されると、EPROM107内に記憶されている上記各プログラムやSCSIポート112に接続されたハードディスク等の補助記憶装置またはネットワーク上のホストコンピュータに記憶されているプログラムを本メモリ上にダウンロードして配置される。このため、各プロセスのプログラム自体は主記憶メモリ102上にあり、ここで動作する。
【0043】
103はバンドメモリで、画像データをラスタ方法に数ライン分蓄積できるバンドメモリである。当該バンドメモリ103は、PDLデータをビットマップデータに展開するためのメモリである。PDLは通常1ページ分のビットマップデータを作成してから、プリンタエンジン側にデータを送るが、本システムでは、1ページを数バンドに分割してビットマップ展開を行う手法をとる。これは、PDLインタープリタープログラム84がPDLデータの並べ替え作業を行うことにより実現する。当該バンドメモリ103に展開されたビットマップデータは、プリンタ側に送られる。その後、次のバンド分の展開が行われて、再びプリンタ側に送られる。この繰り返しにより、1ページ分のプリントが行われる。
【0044】
また、スキャナ側から画像データを読み込む時にも、一時的に本バンドメモリに蓄積される。CPU101あるいは本システムでは記載していないダイレクトメモリアクセス(DMA)のブロック転送機能を用いて、当該バンドメモリ103より画像データを読み出し、SCSIポート112に接続されたハードディスクあるいはイーサネットポート114に接続されたネットワークを介して、ホストコンピュータ側に転送される。1バンド分のデータが転送されると、再び次のバンド幅分のスキャンデータを入力して繰り返す。
【0045】
104はメモリアクセスコントローラで、主記憶メモリ102,バンドメモリ103を構築するDRAMのアクセスとリフレッシュをコントロールする。通常DRAMは1ワード(8,16,32ビット等)毎アクセスする方法、ある一定長の連続アクセスする方法(ページREAD,Write)、DRAMのバンクを分けて交互にアクセスを繰り返し、アドレス発生は先行して発生させるインタリーブ方法のアクセス方法があるが、これらの方法を提供しメモリのアクセスの高速化を図っている。ただし、主記憶メモリ102,バンドメモリ103がSRAMで構成された場合には、リフレッシュ機能は必要はない。105はメモリクリアコントローラで、バンドメモリ103のデータを高速にクリアする。
【0046】
図5は、図4に示したメモリクリアコントローラ105の詳細構成を説明するブロック図である。
【0047】
図において、201はアドレス発生部で、クリアスタート信号に応じてアドレスバッファ部203にクリアすべきアドレスを出力する。202はデータラッチで、クリアデータをデータバッファ部204に出力する。
【0048】
このように構成されたボード回路(メインCPU回路1,イーサネット回路2,JPEG圧縮回路3より構成される)において、先ず、CPU101がバンドメモリ103内のデータを他の記憶装置あるいはインタフェースに転送されたことを確認すると、アドレスバッファ203,データバッファ204をイネーブルにする。それに対して、バンドメモリ103への他のアクセス手段をディセーブルにする。データラッチ202には、システムの立ち上げ時のイニシャライズであるデータ、例えば「00」を設定しておく。CPU101は、アドレス発生部201に対して、クリアスタート信号を送る。これに応じて、アドレス発生部201はアドレスを順次発生して、データラッチ部202に保持されたデータをメモリアクセスコントローラ104を通して、バンドメモリ103に書込む。全メモリ分の書込みが終了したら、アドレス発生部201は、CPU101にクリアエンド信号を送り、クリア動作を終了する。
【0049】
クリア動作は、バンドメモリ103上の画像データがプリンタデバイスに転送されると、行われた次のバンドの画像データがPDLインタープリタープログラム84により展開される。その時、PDLインタープリタープログラム84は、必要な部分にしかビットマップ展開を行わない。例えば図6の(1)に示すバンドの後半の画像、(2)に示すバンドの展開は、(2)に属する画像のみが書込まれる。このため、図6の(1)で既に転送し終った画像データは、不要データとして残ってしまう。もし、メモリクリアをしなければ、(1)および(2)に示した画像が混在する画像データがバンドメモリ103上に書込まれた状態となってしまう。そこで、上記メモリクリアが必要となる。105はメモリクリアコントローラは、上記メモリクリア処理をハード化し、高速処理を可能としている。
【0050】
画像描画処理回路106は、PDLインタープリタープログラム84の描画機能をハードウエアで補助するために構成された回路である。PDLインタープリタープログラム84は線を描いたり、図形の塗りつぶしが非常に多く、相当の時間を必要とする。例えば図7に示すような図形(1)〜(3)に囲まれた部分の塗りつぶしは、図中矢印で示すように塗りつぶし処理が実行される。
【0051】
図8は、図5に示した画像描画処理回路106の詳細構成を説明するブロック図である。
【0052】
図において、106Aはアドレス発生部で、描画スタート信号に応じてアドレスバッファ部106Cにクリアすべきアドレスを出力する。106Bはデータラッチで、描画データをデータバッファ部106Dに出力する。
【0053】
このように構成されたボード回路において、先ず、CPU101がPDLインタープログラム84による処理結果から、現在のバンド幅内に、線の描画や図形の塗りつぶしがある場合、画像描画処理回路106へ指令する。先ず、データラッチ106Bに描画データをラッチさせる。次に、アドレス発生部106Aに開始アドレスとカウント数(1ライン分の描画量)を設定する。ただし、カウント数は終了アドレスを設定する構成であっても良い。そして、アドレスバッファ106C,データバッファ106Dをイネーブルにする。それに対して、バンドメモリ103への他のアクセス手段をディセーブルにする。CPU101は、アドレス発生部106Aに対して、描画スタート信号を送る。これに応じて、アドレス発生部106Aは開始アドレス値より順次アドレスを発生して、データラッチ部106Bに保持されたデータをメモリコントローラ104を通して、バンドメモリ103に書き込む。カウント数部(終了アドレス)に達したら、メモリ書き込みを止めて、描画エンド信号を送り、次の開始アドレスとカウント数を設定し、再びメモリへ書き込みを行う。バンド幅分の描画を終了すると、バンド幅分の描画を終了する。
【0054】
描画動作は、クリア動作と同様にハードウエアによる高速化を図ったものであが、例えば専用のLSIが描画処理をすべて受け持ち、CPU101による補助を軽減する構成としても良い。
【0055】
一方、図4において、107は電源投入時に、CPU101が最初にアクセスするEPROMで、本システムをコントロールする上記各種プログラムが記憶されている。なお、EPROM107には、次の2つの記憶方法が可能である。第1の方法としては、プログラムがそのまま実行可能な形式で記憶する場合、第2の方法としては、プログラム全体を可逆的な圧縮方法により圧縮し、その形態で記憶しておき、電源投入後、伸長しながら、主記憶メモリ102に再配置する場合等である。
【0056】
しかしながら、第1の方法による場合は、EPROM107は、そのまま実行可能なメモリとなるため、主記憶メモリ102に再配置されるより、主記憶メモリ102の節約になるが、EPROM107自身の容量を大きくすることと、アクセスが一般にEPROMは遅いという欠点がある。また、第2の方法による場合は、プログラム全体を圧縮するため、たくさんの量のプログラムをEPROM107に記憶させることができるため、EPROM107の記憶容量を削減できるとともに、主記憶上に再配置するため、アクセスが高速となる長所を有するが、主記憶メモリ102の容量を大きくする必要が生じる等の欠点もある。そこで、本実施例では第2の方法を採用している。
【0057】
108はEEPROMで、電源が切られても記憶データを失わず、電源投入後の起動時に、データの書き換えが可能なデバイスである。このため、ネットワーク上のアドレスの記憶やスキャナ,プリンタ側の設定パラメータの記憶等に利用される。109は時計回路(RTC)で、時刻合せが可能であるとともに、電源OFF時でも、内部に持つバッテリにより時間がそのまま進行する。これにより、実時間を知ることが可能となり、スキャン時やプリント時の情報として利用される。110はタイマで、インターバルタイマである。本システムのプログラムはマルチプログラムで動作しているが、その管理は、リアルタイムOSが行っている。タイマ110は、数ミリsec 毎のインターバルタイムをCPU101に通知しており、このタイマ110と優先順位スケジューラにより、各プログラムにCPU101を割り当てている。
【0058】
111はSCSIコントローラで、周辺機器インタフェースの標準規格であるSCSIの制御を行う。112はSCSIポートで、周辺機器を接続するためのパラレル入出力I/Fポートである。113はイーサネットコントローラで、本システムをネットワークの1方式であるLAN96に接続し、データのやり取りを行うための制御部として機能する。イーサネットコントローラ113は、内部に小さなバッファメモリを有し、非同期式のCPUと同期式のネットワークとの時間的整合性を取っている。ネットワークより転送されてくるデータは、このバッファメモリに蓄えられ、逆にネットワークにデータを転送する場合もここから送信される。イーサネットコントローラ113は、電気的タイミングの制御とデータの転送,転入の制御を行っている。TCP/IPの通信プログラム82の制御は、イーサネットコントローラ113を用いてCPU101が制御している。
【0059】
イーサネットポート114は太い同軸ケーブル114aを媒体として用いる。I/Fの形状は、15ピンのコネクタである。114bのTwistPairタイプポートは、4線式の媒体を持ちいる。I/Fの形状は8ピンのモジュラジャックである。これらのポートを利用して、エーサネットワークに接続される。115はADCT圧縮/伸長回路は、RGB(RED,GREEN,Blue)で構成される中間調データ(各色8ビット)を、CCITT規格JPEG方式のアルゴリズムを用いた圧縮および伸長を行う回路である。スキャナより読み込まれたカラー中間調データを圧縮する場合は、スキャナ側から読み込まれた生画像データをADCT圧縮/伸長回路115を用いて圧縮し、小さなメモリ量にする。このためネットワーク転送のスピードアップや蓄積メモリの削減といった効果が得られる。また、ネットワークを介して転送されてきた圧縮画像データをADCT圧縮/伸長回路115を用いて伸長し、カラー中間調データに戻して、バンドメモリ103に書き込み、プリンタI/Fに転送されて、プリンタデバイスより印字される。
【0060】
116はFIFOメモリで、ADCT圧縮/伸長回路115へ圧縮画像データを送ったり、受け取ったりするために用いられる。FIFOメモリ116は、圧縮動作,伸長動作時の圧縮データと伸長データ(生画像データ)のデータ量の違いによるデータの転送タイミングのずれを吸収するために用いられる。117はRS232Cコントローラ部で、標準のシリアルI/Fの制御を行う。118はRS232Cポートで、Achannel118aとBchannel118bの2ポートが用意され、一方を端末接続用にして、ディスプレイ表示とキーボード入力を可能としている。また、もう一方はシリアルインタフェースを有するデバイス接続用にしている。ここには、レーザビームプリンタのようなキャラクタプリンタや簡易スキャナの接続が可能となっている。
【0061】
なお、本システムでは、Achannelを端末接続用にしており、ここに端末を接続して、コマンドの入力やパラメータの変更を行うようにしている。ただし、本システムは疑似端末機能も有し、ネットワーク上のホストコンピュータより,rloginしてAchannelと同じ操作も可能としている。
【0062】
119はセントロニクスI/Fコントローラ部で、セントロニクスI/F準拠のプリンタの接続のためのI/Fコントロールを行う。実際には、接続先のデバイスの状態(BUSY/non)を確認して、8ビットのデータを出力する。これの繰り返しでデータを転送する。その他セントロニクスI/Fに準拠した信号の制御を行っている。120はセントロニクスI/Fポートで、実際にケーブルが接続されて、プリンタとの電気的関係を結ぶ。121はVMEコントローラで、本システムのCPU101がVMEbusの規格に準拠おした他のボードをアクセスするためのコントロールを行う。なお、VMEbus規格では、アドレスバスA16,A24,A32、データバスD8,D16,D24,D32のバスをアクセス可能に構成されている。バスの使用権は、アービトレーション方式より与えられる。その他、VMEbusの規格に適合した制御を本回路で実現する。122はVMEbusポートで、ダブルハイトのVMEbusを電気的に接続する。当該VMEbusポート122は、6ピンのコネクタ2つで構成され、この中にアドレスバス,データバス等が配置されている。
【0063】
123はリセットスイッチで、本システムにおいて異常が発生した場合に、最終的手段として、システムを再立ち上げする場合に押下される。なお、リセットスイッチ123は、本実施例ではハード的なスイッチ機構であるが、上述したRS232Cポート118に接続された端末、あるいはネットワークからrloginした疑似端末から、プログラムでリセットするプログラムRESET(ウオームRESET)として構成しても良い。
【0064】
124はLED部で、電源ON時を示すLED124a,CPU101が実行中を示すLED124b,各プログラムが自由に点灯可能なLED124c等より構成されている。これにより、LED124aが点灯中であれば、本システムが電源の入湯状態であることを操作者が視覚的に確認することができる。また、LED124bが点灯中であれば、CPU101が実行中であることを、LED124bが消灯中であれば、CPU101がウエイト状態であることを操作者が視覚的に確認することができる。頻繁に点灯するLED124cは、何かの処理が現在実行されていることを操作者が視覚的に確認することができ、点灯時間,間隔,回数等の相違により、どのプログラムによりLEDが点灯したか等を識別可能となる。
【0065】
以下、ネットワーク上のホストコンピュータからのプリント要求処理におけるデータの流れについて詳述する。
【0066】
ネットワーク、すなわちLAN96に接続されたホストコンピュータがデータをプリントしたい場合、SPサーバシステムにデータと出力先を指定する情報を送る。この際、SCSIポートにハードディスクが接続されている場合、データは一旦ハードディスクに蓄積(スプール)される。また、ハードディスクがない場合は、主記憶メモリ102に一旦蓄積される。転送されてくるデータ形式としては、下記(1)〜(3)の3通りである。
【0067】
(1)PDL形式のデータ
(2)生画像形成のデータ
(3)圧縮画像形成のデータ
このうち、(1)のPDL形式のデータの場合には、PDLインタープリタープログラム84が起動され、バンド幅毎のビットマップ展開が行われて、バンドメモリ103に書き込まれる。バンドメモリ分のデータが揃うと、プリンタ側に転送され、次のバンド幅分のビットマップ展開が行われる。
【0068】
一方、(2)の生画像形成のデータの場合は、バンドメモリ103にバンド幅分データが書き込まれ、指定されたプリンタ側に転送される。そして、次のバンド幅分のデータが用意される。生画像形式の場合、データ量が多いので、ホストコンピュータ側からは全部のデータを一括して転送するのではなく、分割して送る。そのため、プリントの最中もネットワークよりデータを受け取る作業が行われる。
【0069】
さらに、(3)の画像圧縮形式のデータの場合は、圧縮画像データをFIFOメモリ116に書き込み、ADCT伸長回路115により生画像データに変換する。伸長後のデータは、バンドメモリ103にバンド幅分データが書き込まれ、指定されたプリンタ側に転送される。以下、同様の処理をそれぞれ繰り返す。なお、画像データの形式が、単一形式ではなく、上記データ形式が組み合わさった複合データの場合もある。すなわち上記(1)のデータ形式と(2)のデータ形式との組み合わせ、もしくは上記(1)のデータ形式と(3)のデータ形式との組み合わせの場合には、それぞれ上記の処理を行う。
【0070】
画像データを転送するプリンタデバイスのI/Fは、VMEバス122上に構成したインタフェースボードを介して接続する場合、RS232Cポート118に接続した場合、セントロニクスI/Fポート120に接続した場合がある。これは、ホストコンピュータがどのI/Fに接続されたプリンタにより印刷したかにより行先が決定される。
【0071】
バンドメモリ103上のデータは、1バンド幅分のデータ転送が終了すると、クリアコントローラ105がメモリクリアを行う。その後、再びPDL展開を行い、バンド幅が揃うと、指定されたプリンタ側のインタフェース回路にデータが転送され、デバイスドライバ86によるインタフェース回路(制御ボード)の制御によりプリンタでの出力処理が行われる。この繰り返しである。ネットワーク上のホストコンピュータがスキャナより画像データを入力したい場合、本システムは、スキャナ起動のための指定情報をホストコンピュータからもらい、画像入力を開始する。スキャナデバイスのインタフェースは、VMEバス122上に構成したI/Fボードを介して接続する場合、RS232Cポート118に接続する場合がある。この指定もホストコンピュータが指定する。
【0072】
スキャナから入力される画像データは、バンドメモリ103にバンド幅分蓄積される。スキャナからの画像データを指定されたホストコンピュータに転送する場合、スキャナ制御プログラム85によって次の2通りの加工が行われる。
【0073】
第1の加工としては、生画像形式のデータ、ただし、画像情報のタグを付加したものを含み、第2の加工としては、圧縮画像形式のデータである。
【0074】
このうち、データ加工形式が生画像形式のデータの場合には、バンドメモリ103上のデータを、順次ネットワークを介して指定されたホストコンピュータに転送する方法と、一旦SCSIポート112に接続されたハードディスクに蓄積される場合がある。いずれも、ホストコンピュータよりの指定情報で選択される。また、画像情報を記録したタグをつける場合には、それを付加して転送する。
【0075】
一方、データ加工形式が圧縮画像形式のデータの場合は、バンドメモリ103上のデータは、ADCT圧縮回路115に送られ、圧縮されて、FIFOメモリ116に圧縮後のデータが書き出される。そして、FIFOメモリ116より読み出してはホストコンピュータへ転送し、次のバンド幅分の処理を繰り返し行い、圧縮画像データを得る。ハードディスクを有する場合は、一時的に蓄積するという点が違うだけで、他は上述と同様である。
【0076】
以下、図9に示す回路ブロック図を参照しながら図1に示した第1のSPインタフェース回路4−1の詳細構成について説明する。
【0077】
図9は、図1に示した第1のSPインタフェース回路4−1の内部構成を説明するブロック図であり、図1と同一のものには同じ符号を付してある。
【0078】
図において、1000はCPUで、ROM1002に格納された上記各種制御プログラムに基づいてボード回路の内部バス1001に接続される各デバイスを制御する。1003はRAMで、CPU1000のワークメモリ等として機能する。1004はネットワークコントローラで、LAN96に接続されるステーションとのアクセスを制御する。1005はバンドメモリで、バンド幅分のデータを記憶する。1006は標準圧縮伸長部で、画像データの圧縮伸長を行う。1007はSCSIコントローラで、ハードディスク1008等が接続されている。
【0079】
211は前記第1のSPインタフェース回路4−1を総括的に制御するCPUで、ROM212に記憶された制御プログラム(デバイスドライバ86を補足するプログラム)に基づいてボード内部バスに接続される各デバイスを制御するとともに、各部の初期設定やスキャナ,プリンタとのコマンドのやり取りを行う。213はRAMで、CPU211のワークメモリ等として機能する。214はDPRAMで、第1のSPインタフェース回路4−1とボード回路とのコマンドのやり取りを行うRAMで、CPU211とVMEバス16を介してボード回路のCPU1000が共に独立してメモリアクセス可能に構成されている。215,216はバッファメモリで、CPU211とCPU1000との衝突を避けるために機能する。
【0080】
218はリアルタイム圧縮伸長部で、多値画像データをリアルタイムで圧縮伸長するものである。ここで、リアルタイムとは、ビデオインタフェース220を通じて入力される画像データの速度、例えば約15MHz(32ビット)で画像データのやり取りをする速度と同時間で処理することを意味する。圧縮メモリ17は、リアルタイム圧縮伸長部218で圧縮したデータを格納する。219はラインバッファで、8ラインのラスタ方向のデータを保存するメモリとして機能する。なお、当該ラインバッファ219はリアルタイム圧縮伸長部218からは、8×8のマトリクスでADCT圧縮に準じたランダムアクセスが可能となっている。217はDMAコントローラで、圧縮メモリ17とリアルタイム圧縮伸長部218との間をCPU211を介さずにデータを移動させるためのものである。
【0081】
ビデオインタフェース220aは、スキャナ94A,プリンタ94Bとのインタフェースである。220bは制御インタフェースである。
【0082】
以下、ホストコンピュータからの指定情報に基づく第1〜第4のモード処理について図9を参照しながら詳述する。なお、各モード処理は、ROM1002に格納された画像入出力装置制御プログラム85とROM212に格納されたデバイスドライバ85を実行することによって行われる。
〔第1のモード処理〕
先ず、第1のモード処理(画像プリントモード処理)では、メインCPU回路1のバンドメモリ1005内の生画像データを、VMEバス16を経由して受け取り、リアルタイム圧縮伸長部218で圧縮した後、圧縮メモリ17に一旦、圧縮画像の形態で蓄えられる。この動作は、1ページ分行われ、1ページ(1画面)分の圧縮が終了したところで、プリンタ94Bを起動する。次に、圧縮メモリ17に一旦、圧縮画像の形態で蓄えられた圧縮画像データをDMAコントローラ217が読み出し、リアルタイム圧縮伸長部218に送る。この際、伸長回路により、生画像データに復元する。伸長された生画像データは、順次ビデオインタフェース220よりプリンタ94Bへ転送される。なお、その際画像伸長動作はプリンタ94Bのデータ処理速度に同期して、超高速に伸長する。また場合によっては、画像処理を施した後にプリンタ94Bにデータを送り、プリンタ処理を行う。
〔第2のモード処理〕
第2のモード処理(画像スキャンモード処理)では、スキャナ94Aより、ビデオインタフェース220aを介して入力されてくる画像データを、そのスピードに同期して超高速に、リアルタイム圧縮伸長部218の圧縮機能を用いて画像圧縮を行い、DMAコントローラ217により、出力される圧縮画像データを圧縮メモリ17に一旦格納する。1画面分のスキャンが終了したところで、ボード回路のCPU1000は再びリアルタイム圧縮伸長部218の伸長回路により圧縮メモリ17に蓄えられた圧縮画像データを伸長し、生画像データに戻す。その生画像データは、VMEバス16を経由してボード回路に送られる。ボード回路は、ホストコンピュータ側が、生画像データを要求している場合はそのまま指定されたホストコンピュータへ転送し、もし、圧縮画像データを要求した場合には、ボード回路上の圧縮機能処理により圧縮して指定されたホストコンピュータへ転送する。
〔第3のモード処理〕
第3のモード処理(標準圧縮画像プリントモード処理)では、ボード回路が圧縮画像データをネットワーク上のホストコンピュータから受け取ると、そこで伸長せずに、圧縮画像データのまま指定された第1のSPインタフェース回路4−1に送る。第1のSPインタフェース回路4−1では、圧縮メモリ17に圧縮画像データを蓄え、その後指定されたプリンタ94Bを起動し、圧縮画像データをリアルタイム圧縮伸長部218の伸長機能により、プリンタ94Bのプリントスピードに同期して画像伸長を行いプリントする。
〔第4のモード処理〕
第4のモード処理(標準圧縮画像スキャンモード処理)では、スキャナ94Aの走査速度に同期して、超高速にリアルタイム圧縮伸長部218の圧縮機能により画像圧縮を行い、圧縮メモリ17に一旦圧縮画像データを蓄える。1画面分のスキャンが終了したところで、ボード回路のCPU1000は、圧縮画像データをそのままVMEバス16を経由して取り込む。
【0083】
なお、上記第1および第2のモード処理では、生画像データで第1のSPインタフェース回路4−1とインタフェースするため、第1のSPインタフェース回路4−1内では画像通信に必要とされる標準の圧縮伸長処理を行うことは必ずしも必要ではなく、高速化やその他の目的に応じた独自の圧縮伸長が行える。
【0084】
また、上記第2,4のモード処理では、スキャナ94Aの読取りデータを直接圧縮をかける場合について記述したが、スキャナの読み取りデータに線密度変換や色空間変換等の画像処理を施した後に、リアルタイム圧縮伸長部218が画像圧縮をかけても良く、制限するものではない。また、画像処理機能は、画像圧縮伸長部とスキャナ94A,プリンタ94Bとの間に設ける構成であっても良いし、画像圧縮伸長部をスキャナ94A,プリンタ94B内に設ける構成であっても良い。
【0085】
以下、図10に示すブロック図を参照しながらリアルタイム圧縮伸長部218の構成および動作について説明する。
【0086】
図10は、図9に示したリアルタイム圧縮伸長部218の詳細構成の一例を示すブロック図であり、特に本実施例では圧縮伸長方式として、ADCT方式を採用している。
【0087】
データ圧縮時は、生画像データは、先ず外部のラインバッファ219に蓄えられた後で、色空間変換部221に入力されて、RGBデータからY,Cr,Cb等の色空間に変換される。そして、場合によっては、Cr,Cbは色差成分として、サブサンプリングされ、画像の持つ冗長度を落される。次いで、8×8画素毎にDCT計算部222において、周波数空間に変換される。次に、図11に示すようにDCT係数はジグザグスキャン部223でスキャンされ、量子化部224で量子化される。この時に、量子化の係数は、量子化テーブル225に記憶されていて、DCT係数の8×8に対応するようになっている。次に、内部FIFOメモリ226に一旦蓄えられ、所望のタイミングでハフマン符号化部227でハフマンテーブル228を参照して符号化した後にでき上がった圧縮画像データは、外部のホストコンピュータ等からアクセスできるCODECレジスタ229に値が格納される。
【0088】
ところで、色空間変換部221,DCT計算部222,ジグザグスキャン部223,量子化部224,量子化テーブル225等でパイプライン動作部が構成され、タイミング生成用のクロックに同期して動作し、高速で動作する。また、ハフマン符号化部227,ハフマンテーブル228,CODECレジスタ229等で非同期動作部が構成され、外部CPUがCODECレジスタ229をアクセスするスピードに同調して動作するように構成されており、CPUのスピードやDMAに間に合う程度であって、あまり高速には動作しない部分である。また、パイプライン動作部は、スキャナ94A,プリンタ94Bの画像転送クロックに追従できるように高速動作が可能に構成されている。従って、内部FIFOメモリ226は、同期系のパイプライン動作部と非同期動作部の動作スピードの緩衝のために設けられている。
【0089】
また、画質を高めるために圧縮率を下げると圧縮データが増え、非同期動作部の処理量が多くなり、非同期動作部の処理スピードが間に合わなくなる。ただし、色空間変換部221の生画像データのインタフェースは、スキャナ94A、プリンタ94B以外にも接続可能で、外部にFIFOメモリを設けて、CPU等からの非同期アクセスを受けることが可能で、この場合はパイプライン動作部を低速で動作させたり、一時停止させることが可能である。従って、非同期動作部はスピード的に問題はなくなる。
【0090】
また、本実施例では画像圧縮伸長部を複数(例えば2つ)有し、生画像データを複数に分割して、それぞれの画像圧縮伸長部に与えることにより高速動作するスキャナやプリンタ等に接続することが可能となる。このように、複数に分割された画像データの圧縮であるならば、伸長時にも同様にスピード問題は解決される。
【0091】
伸長時の動作は基本的には圧縮時の逆プロセスになるわけであるが、図10に示すように、圧縮画像データは、CODECレジスタ229に渡されると、ハフマン符号化部227でハフマンテーブル228を参照しながら逆ハフマン符号化、すなわちデコードされる。その値は一旦内部FIFOメモリ226でスピードの緩衝を受けながら、量子化部224で逆量子化される。逆量子化は量子化テーブル225の8×8の量子化係数を乗算することで行われる。そして、ジグザグスキャン部223で逆ジグザグスキャンされて、DCT計算部222にDCT係数として渡される。そして、色空間変換部221において圧縮色空間であるY,Cr,Cb等よりもとのRGB空間等に戻される。
【0092】
また、DCT計算部222では、DCT計算,逆DCT計算は、計算のパラメータを入れ替えるだけで同一回路で処理される。色空間変換部221でも、その変換が線形一次変換等の場合には、同様にパラメータ変換で行える。
【0093】
さらに、量子化部224も同様で量子化は割り算等,逆量子化は掛け算を行うが、割り算も、割る量子化係数を逆数で持つことにより掛け算になるので、同一回路で圧縮伸長とも可能である。以下、図12〜図15を参照しながら第1のSPインタフェース回路4−1の各モードの動作を例にしてさらに詳細に説明する。
【0094】
図12は、第1のSPインタフェース回路4−1のパート構成の概略を説明するブロック図である。
【0095】
図において、1100は画像処理制御部で、VMEバスインタフェース,画像圧縮伸長部,CPU回路部等から構成され、後述する図13に詳細を示す。
1200はつなぎメモリ制御部で、後述する図14に詳細を示す。1300は画像入出力制御部で、スキャナ,プリンタを備えるカラーレーザ複写装置(CLC),スキャナ,プリンタを備えるバブルジェットカラー複写装置(BJC)とのI/Oを制御する。なお、詳細は図15に示す。
【0096】
図13〜図15は、図1に示した第1のSPインタフェース回路4−1の詳細内部構成を説明する回路ブロック図であり、図1と同一のものには同じ符号を付してある。
【0097】
図9に示すボード回路のCPU1000より、画面を2分割されたデータのまず右面についての処理において、画像データはVMEインタフェース301よりまずFIFOメモリ302にデータがバッファ303を介して書き込まれる。FIFOメモリ302よりはバッファ304を介して一旦SRAM305に蓄積される。SRAM305の動作は、画像圧縮伸長部のパイプライン部に同期して動作する。RAM305に画像の垂直方向8ライン分のデータが蓄積されると、画像圧縮伸長部306は水平,垂直8×8単位ずつSRAM305より読み出して動作し、得られた圧縮データはDMAコントローラ部307を介してDRAM308に順次書き込まれる。この時、DMAコントローラ部307はアドレスカウンタ309を操作してアドレスを発生し、またはカウントアップしてセレクタ310を介してDRAM308に与える。なお、第3のモードでは、VMEインタフェース301およびセレクタ310を介してボード回路のCPU1000がアドレスを与え、かつインタフェース変換部312を介してDRAM308とのデータ更新を行うことになる。これにより、直接圧縮データをDRAM308に送ることが可能であり、画面を左右に2分割にしていない標準の圧縮データを扱うことも可能である。ただし、低い圧縮率のデータには不向きである。
【0098】
また、DRAM308はリフレッシュ回路313より常にリフレッシュが行なわれ、データの維持がなされる。次に、DRAM308のデータをプリンタ94Bに出力する動作を説明すると、DRAM308よりDMAコントローラ307により書き込み時と同様な制御で圧縮伸長部306にデータが読み出されると、伸長が行なわれ、生データがバッファ304からFIFOメモリ302からの出力データはセレクタにおいて画像の左右のいずれかの面が選択されて、ラッチ315に与えられる。
【0099】
次に、ガンマ変換部325でガンマ変換やLOG変換される。そして、マスキング回路316でCG用のマスキングを行ない、マスキング回路317で、自然画用のマスキングを行ない、セレクタ321で画像の性質に応じてどちらかを選択し、最終的に出力ガンマ調整部322で変換されてからラインドライバ324を介してプリンタ94Bに出力される。この時、出力ガンマ調整部322はガンマ設定レジスタ323に調整される。また、マスキング回路316はROMで構成され、マスキング回路317はロジックであって、黒生成のための黒テーブルが接続されるとともに、初期値データROM319の値が初期にロードされるようにタイミングコントローラ320も周辺に接続されている。プリンタ94Bが面順次の場合は、伸長動作を面の数だけ行ない、そのマスキング回路316,317は、出力色に応じたマスキング処理を行なう。
【0100】
以上が、画面を2分割にした場合の右面の処理の流れであり、左面についても同様の処理の流れが行なわれる。すなわち、バッファ325,FIFOメモリ302,バッファ327を経由してSRAM328に蓄えられた8ラインの画像データは、画像伸長部329において圧縮され、DMAコントローラ331,アドレスコントローラ335,セレクタ334によりコントロールされて、DRAM332に圧縮データとして書き込まれる。また、VMEインタフェース311より直接セレクタ334をインタフェース変換部330を介してボード回路のCPU1000が圧縮データを書き込んでも良いことは言うまでもない。また、リフレッシュ回路333がDRAM332のデータをリフレッシュし維持する。そして、画像プリント時には、DRAM332より読み出されたデータがDMAコントローラ331等のコントロール331等のコントロールを受け、画像圧縮伸長部329で伸長され、SRAM328,バッファ327,FIFOメモリ326を経由してセレクタ314に与えられ、以下上述の通り画像処理されて出力される。以上のようにして、モード1の処理が行なわれる。
【0101】
次に第2のモード処理動作について説明する。
【0102】
スキャナ94Aより各種の処理を受けて送出される画像データは、ラインレシーバにより受け取られ、バッファ341により画像の右面がバッファ342により画像の左面が、FIFOメモリ303,326に順次取り込まれる。それ以降は、第1のモードと同様の動作を行なう。すなわち、右面の処理動作について記述すれば、FIFOメモリ302に書き込まれた画像データは、バッファ304を経由してSRAM305に8ライン分が読み出されて書き込まれる。次に、圧縮伸長部306によりDRAM308に圧縮データが生成される。
【0103】
一方、第4のモードでは、VMEインタフェース311及びインタフェース変換部312,セレクタ310を介してボード回路のCPU1000が直接圧縮画像データを読み込むことが可能であるが、第2のモードでは、DRAM308の圧縮データを伸長してからボード回路のCPU1000に渡す。DRAM308よりインタフェース変換部312およびDMAコントローラ307,アドレスカウンタ309,セレクタ310によりコントロールされて、書き込まれた順に読み出された圧縮画像データは、画像圧縮伸長部306で伸長され、SRAM305に8×8単位毎に書き込まれ、8ライン分すべてが書き込まれた時点でバッファ304を経由して、水平ライン方向に連続して読み出され、FIFOメモリ302に書き込まれる。FIFOメモリ302では、ボード回路のCPU1000のタイミングに従って、バッファ303,VMEインタフェース301を介して、ボード回路のCPU1000に生画像データとして読み出される。
【0104】
ところで、セレクタ321が2つのマスキング回路316,317の選択については、RAM351にCG画像があるか、自然画像であるかの属性が書かれていて、水平方向カウンタ352,垂直方向カウンタ353より、処理画素位置のアドレスが生成され、セレクタ355を介してRAM351に与えられ、その読み出しデータにより、セレクタ321を制御する。従って、RAM351上の属性はボード回路のCPU1000よりVMEインタフェース301,セレクタ351を介し、RAM351上にあらかじめ書き込まれる。また、スキャナ94A,プリンタ94Bとのインタフェースは、S/Pタイミングコントローラ356により制御されている。
【0105】
次に、画像の左右面の切り替えの制御について説明する。
【0106】
垂直方向カウンタ363は、画像の垂直方向の有効部分について画像有効信号を送出するもので、ディレイレジスタ364は、画像先端の余白部分をセットするものである。長さレジスタ361は画像の有効長をセットし、比較器362において有効長以内で有れば、各部分に画像有効信号を送るものである。垂直方向の画像有効区間に加えて、水平方向の余白長をセットするディレイレジスタ366が接続され、画像の左端をカウントした後に有効信号を発する。カウンタコントローラ部367は、これを受けて水平左幅カウンタ368を起動する。この水平左幅カウンタ368は、ダウンカウンタとして機能し、幅分だけカウントを行ない、その間に左画面のイネーブル信号を発する。左画面が終了すると、カウンタコントローラ部372に対してイネーブルを発し、カウンタコントローラ部372は右画面の幅カウンタ373で幅分のカウントを行ない、終了状態を制御部389に与える。制御部389はセレクタ314に対して画像有効幅の終了を知らせて出力をクリアする。幅カウンタ368は、圧縮時にはライトパルスジェネレータ369を左画面有効幅で発生してマルチプレクサ371を介してFIFOメモリ326に左面のスキャナデータをかき込み、FIFOメモリ326はゲート381を介して圧縮伸長部329のリードパルスをマルチプレクサ371を介してFIFOメモリ326に与える。
【0107】
また、伸長時には、幅カウンタ368の左面有効信号をリードパルスジェネレータ370が受けて、マルチプレクサ371を介してFIFOメモリ326よりプリンタ94Bへ出力させる。
【0108】
一方、画像圧縮伸長部329のライトパルスがゲート381を介してマルチプレクサ371を介してFIFOメモリ326に与えられ、伸長データが書き込まれる。
【0109】
右面についても同様にライトパルスジェネレータ374,リードパルスジェネレータ375,マルチプレクサ376,ゲート382が同様の動作をすることは言うまでもない。また、画像圧縮伸長部329には内部のFIFOメモリ302の状態がスタート/ストップロジック386に与えられるとともに、周辺状態を検出するレジスタ385もスタート/ストップロジック386に与えられ、かつ外部のFIFOメモリ326の状態もFIFOメモリコントローラ部383を介してスタート/ストップロジック386に与えられ、内部のFIFOメモリ302及び外部のFIFOメモリ326がオーバーフローしたり、アンダーフローしたりしないように管理され、状態に応じて画像圧縮伸長部329のパイプライン部329をストップさせたり、スタートさせたりすることができる。
【0110】
同様に、状態レジスタ387,スタート/ストップロジック386,フィホコントローラ部384に管理され、圧縮伸長部306のパイプライン部がスタートしたり、ストップしたりする。なお、スタート/ストップでは、圧縮時に内部のパイプライン部が速すぎて内部のFIFOメモリ302がオーバーフローしそうな時や、伸長時に内部のパイプライン分が速すぎて内部のFIFOメモリ302がアンダーフローしそうな時の他の圧縮時に画像圧縮伸長部が速すぎて外部FIFOメモリ326がアンダーフローしそうな時、および伸長時に画像圧縮伸長部306が速すぎて外部FIFOメモリ326がオーバーフローしそうな時がある。
【0111】
また、エラー対策399は、スキャナ94A,プリンタ94Bが速すぎて画像圧縮伸長部306の処理速度が間に合わない時に、外部のFIFOメモリ326や内部のFIFOメモリ302がオーバーフローやアンダーフローを起こすので、スキャナ94A,プリンタ94B側のビデオ信号(ビデオ=画像)を一時的に止めるもので、スキャナ94Aでは1ライン単位でビデオが捨てられ、プリンタ94Bでは1ライン単位で余白が出力されるように簡易的なエラー処理が行なわれ、FIFOメモリをオーバーフローまたはアンダーフローされてビデオの流れを破壊することを防ぐ。従って、エラー対策部は、エラー情報を制御部388に渡すと、制御部389が1ラインの余白,左面有効部,右面有効部を把握して、1ラインの区切り目でエラー解除をエラー対策部399に出力する一方、エラー時にスキャナ94A,プリンタ94Bの入出力データをクリアするように各部に指示するとともに、エラー処理中に画像圧縮伸長部306がスキャナ94A,プリンタ94Bの処理速度に間に合わなかったにもかかわらず、1水平ラインの区切りまで圧縮または伸長動作をさせる。このことにより、1ラインの区切りで再びエラー復帰ができるのである。ただし、エラー処理中に圧縮では、白ラインを圧縮して圧縮速度をかせぎ、伸長では画像データはプリンタ94Bに間に合わないために捨てられる。
【0112】
以上の説明の中では、ボード回路のCPU1000がほとんどすべての管理を行なうように説明したが、本実施例では第1のSPインタフェース回路4−1の中にも内部のCPU392を有していて、第1のSPインタフェース回路4−1ないで処理できることは内部のCPU392が処理を分担することが可能で有る。また、第1のSPインタフェース回路4−1内にはデュアルポートRAM393を有し、両ポートはそれぞれVEMバスインタフェース311を介してボード回路のCPU1000が内部CPUバスを介して内部のCPU392に接続されている。このデュアルポートRAM393を介して、ボード回路のCPU1000と内部のCPU392に情報伝達が行なわれている。
【0113】
従って、第1のSPインタフェース回路4−1内のVMEバスへの2つのCPU1000およびCPU392からのアクセスは衝突することはない。この時、CPU392の内部バスに接続されているバス変換部394により画像圧縮伸長部306,329とのインタフェースがなされる。バス変換部394は、インタフェース変換部312,330と同様の機能を有し、レジスタインタフェース395を介してボード内の各種のレジスタとのインタフェースを行なうので、VEMバスのインタフェースとしての機能をも合わせて有している。
【0114】
さらに、内部のCPUバスには、CPU392のプログラムを格納するROM391,シリアル通信部390を有している。シリアル通信部390はスキャナ94A,プリンタ94Bとの動作制御をするコマンドが送られる。従って、本実施例では図9に示すボード回路のCPU1000は図13に示す内部のCPU392を介してスキャナ94A,プリンタ94Bを制御するか、ボード回路のCPU1000が直接スキャナ94A,プリンタ94Bを制御する構成となっている。なお、コントロールのコマンドとしては、実行コマンドとしてスキャナ94A,プリンタ94Bの起動命令の他に、状態検知コマンド,状態設定コマンドがある。状態検知コマンドは、プリンタ94Bの紙有り/紙無し,カセット有り/無しサイズ,その他のトナ残量,ジャム発生等多くのコマンドとともに、現在設定されている動作モード、すなわち単色/3色/4色や解像度、その他の画像処理パラメータの検知等が有る。スキャナ94Aに関しても、ほぼ同様で、その他の原稿台上の原稿有り/無しや、ランプ切れ等を知ることが可能で有る。
【0115】
一方、状態設定コマンドは、プリンタ94Bではカセットサイズ選択,カセット上下段選択,動作モードやプリント枚数設定や画像処理系のパラメータ設定等である。
【0116】
なお、スキャナ94Aについても同様で、例えば変倍率設定,2値/多値化設定,標準色空間変換,独自色空間変換,線密度(解像度変換),領域指定設定,ガンマ変換設定等が有る。
【0117】
なお、本実施例ではスキャナ94Aに多くの画像処理機能を持つために、第1のSPインタフェース回路4−1上では画像処理は行なわずに圧縮する。また、スキャナ94AよりRGBデータとしてデータ受信する。
【0118】
一方、プリンタ94Bは入力がCMYK入力であり、プリンタ部に画像処理をあまり有していないため、マスキング,ガンマ変換,LOG変換,CMYK生成は第1のSPインタフェース回路4−1上で処理される構成となっている。
【0119】
図16は、図1に示した第2のSPインタフェース回路4−2の詳細構成を説明するブロック図であり、図2に示したバブルジェト型のスキャナプリンタ95(プリンタ95B,スキャナ95A)とS/Pサーバー装置SP1とのデータ処理をインタフェースする。また、第2のSPインタフェース回路4−2は一体としてインタフェースボードとして構成されている。
【0120】
図において、401はCPUで、デュアルポートRAM403を介してVEMバスにつながっているボード回路からのコマンドを受け取り、解釈し、第2のSPインタフェース回路4−2内部の制御をする。CPU401は内蔵されたインターバルタイマによって2ms毎の割り込みを発生させ、バブルジェト型のプリンタ95B,スキャナ95Aとのコマンドの通信を行う。また、画像処理回路部404,405,406の各種パラメータの初期化および変更を行う。
【0121】
402はプログラム用のROMで、CPU401が実行する制御プログラム(デバイスドライバ86を補足するプログラム等)を格納するとともに、画像処理回路部404,405,406の初期値やプリセット値を格納する。
【0122】
デュアルポートRAM403はCPU401のワークエリア等として機能するとともに、VEMバスによってつながれたボード回路のCPU1000と、CPU401の両方からアクセスことで、両者間の通信を行う。
【0123】
画像処理回路部404は画像処理用ASICとして構成され、ルックアップテーブルにより階調変換を行う。例えばRGBデータをCMYKデータに変換するときは、LOG変換を行う。これはあらかじめROM402に変換テーブルを用意しておき、これを画像処理回路部404内のRAMに転送することで実現する。
【0124】
画像処理回路部405は画像処理用ASICとして構成され、4×5のマトリックス演算とルックアップテーブルにより階調変換を行う。このマトリックス演算によりスキャナ95Aのセンサの特性のRGB空間と標準色空間としてのNTSCーRGB色空間の変換または画像処理回路部404の変換した後のCMY(K)からプリンタ95Bの特性に合わせたCMYKへの変換( マスキング処理と呼ばれる) などを行う。さらにルックアップテーブルによってカラーバランスの調整が行える。これらの処理も画像処理回路部404と同様にあらかじめ様々なテーブルを用意しておき、ROMに格納しておき、用途に合わせて、選択して設定する。
【0125】
画像処理回路部406は画像処理用ASICとして構成され、データの2値化処理を行う。なお、本実施例に置ける二値化のアルゴリズムは平均濃度保存法であるを採用している。407はシリアル/ パラレル変換部でありスキャナ95A,プリンタ95Bへの通信のためにCPU401からの8ビットのパラレルのデータをシリアルデータに変換する。
【0126】
408は画像用DRAMである。プリンタ95のヘッドの画素数に合わせたバンド形式に合わせた大きさの画像用メモリである。スキャナ95Aまたはプリンタ95Bでは1回の走査の間は画像用クロックに従ってデータが流れ、動作を止められないために、1 バンドの大きさでのバッファリングが必要である。このためスキャナ95Aによってスキャンされるまたはプリンタ95Bにプリントされる1 バンド分の画像データをバッファリングを行う。
【0127】
また、VMEバス側からのラスタ形式のアクセスとスキャナ95A,プリンタ95Bよりの縦方向のアクセスとの走査形式の変換を行う。
【0128】
409はDRAMへのアドレスセレクタ、マルチプレクサで、DRAM408へのアクセスはVEMバス側からとスキャナ95A,プリンタ95B側からの2つがあり、これらからのアドレスの切り替えを行う。さらにDRAM408へのアドレスはROWアドレスとCOLUMアドレスに分けて供給するのでこのマルチプレックスを行う。
【0129】
410はDRAMのタイミングコントローラ部である。RAS,CAS,WE,OEなどのDRAMを制御する信号を作り出す。またリフレッシュ信号との調停を行う。
【0130】
411はタイミング回路で、スキャナ95A,プリンタ95Bのアクセスのタイミングを生成する。これはスキャナ95A,プリンタ95Bからの画像クロックや同期信号をもとにアクセスのタイミングを作り出す部分である。
【0131】
412はリフレッシュタイミング制御部である。DRAM408へのリフレッシュのタイミングを作り出す。スキャナ95A,プリンタ95Bのアクセスのすきまを使いスキャナ95A,プリンタ95Bのアクセスとが衝突しないように制御している。
【0132】
413はVMEタイミング制御部である。VMEバスからのアクセスのための制御信号の処理をする。AMコードのデコードや上位アドレスのデコード、割り込みの処理などである。
【0133】
414はスキャナ95A,プリンタ95Bのアクセスアドレス生成部である。スキャナ95A,プリンタ95Bのアクセスは通常のラスタ形式とは異なっているため、VMEバスからのアクセスのためにラスタ形式でかかれたメモりに対して、スキャナ95A,プリンタ95B用の特殊なアクセスのアドレスを生成する部分である。これはバンドの大きさで、走査方向の縦横をひっくり返すものである。
【0134】
415はVMEバスインタフェースデータバッファ部である。画像データは32ビット幅、コマンドは8ビット幅でアクセスをする。
【0135】
416はVMEバスインタフェースアドレスバッファ部である。画像データは24ビットのアドレス空間、コマンドは16ビットのアドレス空間でアクセスする。
【0136】
417はVMEバスインタフェースのデータとアドレス以外の部分のバッファである。
【0137】
418は画像処理部の入り口のバッファである。VMEバスからのアクセスおよびDRAMへアクセスは32ビット幅で行うが、画像処理部では8ビット幅で処理がなされる。このため32ビットのR,G,B,Xのデータを8ビットのデータとしてR,G,B,Xの順にシリアルに変換をする。
【0138】
419は画像処理部の出口のバッファで,バッファ418とは反対に、色順次に変化する8ビット幅のデータラインを4色分まとめて32ビットにする変換を行う。
【0139】
420は2値化処理後のバッファで、画像処理回路部406によって2値化されたデータは1ビットになっている。これを8ビットに拡張する。すなわち、「0」は「0x00」に、「1」は「0xFF」にする。
【0140】
421はバッファで、画像処理回路部406による2値化処理をバイパスする場合用のバッファで、バッファ420とこのバッファ421の出力のどちらか一方を選択して、2値と多値を切り替える。
【0141】
422はスキャナ95A,プリンタ95Bのインタフェースの通信部のバッファである。
【0142】
423はスキャナ95A,プリンタ95Bのインタフェースの入力データ用バッファである。
【0143】
424はスキャナ95A,プリンタ95Bのインタフェースの出力データ用バッファである。
【0144】
425はスキャナ95A,プリンタ95Bのインタフェースのクロック,制御信号用の入力バッファである。
【0145】
426はスキャナ95A,プリンタ95Bのインタフェースのクロック、制御信号用の出力バッファである。429はクロック入力ラインである。
【0146】
430は32ビットの画像用データバス,431は24ビットのアドレスバス、432は8ビットの画像データバス、433は8ビットの画像データバス、434は16ビットのローカルアドレスバス、435は8ビットのローカルデータバスである。以下、プリンタ95Bのプリント動作について説明する。
<プリント時の動作>
まず、VMEバスを通してボード回路より、プリントするにあたっての各種のパラメータがデュアルポートRAM403に書き込まれると、CPU401はこのデータを読み出して解釈して制御を行う。例えば、RGBデータのプリントであれば、CPU401は画像処理回路部404のLUTデータの変化を起こさないスルーの特性のテーブルをセットし、画像処理回路部405のマトリックスの係数テーブルにはNTSCーRGBからBJーRGBへの変換用の係数をセットし、画像処理回路部406の2値化処理をスルーするように、バッファ420,421のゲートを制御する。
【0147】
さらに、データのサイズ等のパラメータをセットする。そしてデータサイズなどのパラメータはのパラレル/ シリアル変換部407を通してプリンタ95Bへ伝えられる。次に、1 バンド分の画像データがVMEバスを通して、ボード回路よりメモリ408に転送される。このときVMEバスからは32ビットアクセスでRGBXのデータ形式でストアされる。RはRED、GはGREEN、BはBLUEのそれぞれの色成分の画像データであり、Xは黒文字用の情報を含んだ制御用データである。次にデュアルポートRAM403を介してプリント動作のコマンドが伝えられる。CPU401はプリント動作の開始命令をプリンタ95Bへ伝える。プリンタ95Bのプリンタ制御部から開始信号が帰ってくるとタイミング発生部411メモり408へのアクセスを始める。このときデータの読み出しはプリンタ95BのBJヘッドに沿った方向であるため、アドレス発生部414によって生成されたアドレスに従って読み出しを行う。メモり408から読み出されたデータはバッファ418でR,G,B,Xの順に8ビットデータに変換され画像処理部に入る。あらかじめ設定したパラメータによって、画像を処理し、NTSCーRGBデータはプリンタ95Bの内部で使われるRGB色空間に変換され、バッファ421,インタフェース424を通ってプリンタ95Bへ伝えられる。1 バンド分のデータの処理が終わったら、次のバンドのデータをVMEバスを介して受け取り、上記動作を繰り返す。所定の回数の処理を終えたら1 ページの処理が終了する。以下、ROM402に格納された制御プログラムによるスキャナ95Aの原稿読み取り動作について説明する。
<スキャン時の動作>
まず、VMEバスを通してボード回路より、スキャンするにあたっての各種のパラメータがデュアルポートRAM403に書き込まれる。CPU401はこのデータを読み取って解釈して、制御を行う。例えば、RGBの2値データで、1024×1024の大きさで512×512の位置からのスキャンとすると、CPU401は画像処理回路部404のLUTにスルーの特性のテーブルをセットし、画像処理回路部406のマトリックスの係数テーブルにはBJーRGBからNTSCーRGBへの変換用の係数をセットし、画像処理回路部406の2値化処理を通るようにバッファ420,421のゲートを制御する。さらに、スキャンする画像のサイズを1024×1024に、スキャンの開始位置を512×512に設定する。これらのパラメータはパラレル/ シリアル変換部407を通してスキャナ95Aへ伝えられる。次にCPU401はスキャナ95Aへスキャンの開始のコマンドを伝える。スキャナ95Aのスキャナ読取り部より入力された画像データはインタフェース423を通して画像処理回路部404,405,406に入力される。ここで予め設定したパラメータによる画像処理を行い、バッファ419によってRGBXの32ビットの形式のデータとしてメモリ408にストアされる。この時、メモリ408にはRGBXのデータが入っているが、この例での設定ではRGBの2値画像をスキャンするため、Xは意味のないデータであり、R,G,Bの各成分は2値データであるが1画素1バイトである。これを一般的な2値画像の要求する形式に、例えば8画素1 バイトのパッキングをしラスタライン順次にRGBを配置するといった処理はボード回路において行う。メモリ408にある画像データはVMEバスインタフェース415を介してボード回路へ転送される。上記の処理をバンドの回数分繰り返して、1 回のスキャンの動作を終了する。
【0148】
以下、図1に示したスキャナ94A,プリンタ94Bの画像データ処理について説明する。
【0149】
本実施例では図1に示したスキャナ94A,プリンタ94Bと一体としてカラー画像複写装置が形成されているため、画像処理機能は1系統しか有しておらず、スキャナ94A,プリンタ94Bを分離すると、1つの処理につき、どちらか一方しか有していない構成となっている。しかも、大部分の画像処理機能はスキャナ94Aに備えられ、プリンタ94Bは主として変倍,領域指定,色空間変換,ガンマ変換,色マスキング処理部等がある。
【0150】
スキャナ94Aには、色空間変換部や色マスキング処理部等を有しているので、ビデオインタフェースの切り口として、標準RGB(NTSCのRGB等)が用意されていて、RGBのデータは点順次またはパラレル同時に得られる。従って、プリンタ94Bに対しては、画像処理部を有していないので、C,M,Y,Kでデータを与えなければならず、外部でC,M,Yへの変換や黒(K)生成,色マスキング処理,その他必要に応じて解像度変換,トリミング等の画像処理を行なってから、ビデオインタフェースに送らなければならない。しかもその場合は、面順次に各色ずつC,M,Y,K4回繰り返し、画像を送出を行なわなければならない。また、スキャナ/プリンタともに途中で動作を停止したり、中断するようなことはできない。
【0151】
その他ビデオインタフェースには、水平同期信号,垂直同期信号およびビデオクロックが含まれてビデオデータとの同期をとっている。また、スキャナやプリンタの電源ON/OFF等のステータス情報も有しているので外部からの確認が可能である。また、コマンドインタフェースをシリアル通信で行なう機能も有しており、これにより、スキャナ94Aやプリンタ94Bの状態検知や状態設定、スキャナ94Aやプリンタ94Bの起動等の実行コマンド等を発行することができる。
【0152】
以下、図17及び図18を参照しながらスキャナ95A,プリンタ95Bの動作について更に説明する。
【0153】
図17は、図2に示したスキャナ/プリンタ95の画像記録プロセスを説明する模式図である。
【0154】
図において、101Rはスキャンする原稿を表し、102Rはプリントする用紙を表す。これらは、例えばA4サイズである。103Rはスキャナのセンサのヘッドを表し、104Rはプリンタのヘッドを表す。プリンタのヘッド104Rはバブルジェット方式によってインクを吹き出すノズルが並んでおり、例えば128のノズルから構成されている。
【0155】
一方、センサは128より多い画素をスキャンできるように、例えば144画素のデータを出力できる。これらのヘッドはカラーの場合、スキャナのセンサではRGBの3色分、プリンタヘッドではCMYKの4色分が並んで構成されている。105Rは画像処理部であり、スキャナセンサより入力したRGB信号を処理し、プリンタヘッドに合わせた特性のCMYK2値信号として送る。
【0156】
画像処理部105Rはその画像処理系の途中のインタフェース部106RからRGB各色8ビットのデータを外部とやり取りすることができる。スキャナ/プリンタ95Bではスキャナ95Aのセンサとプリンタ95Bのヘッドが同期して動き、画像処理部105Rはパイプライン構成となっているため、大きな容量の画像メモリを持たずに処理がなされている。このためインタフェース105Rでやり取りされるデータの走査形式は特殊なものとなっている。107Rは外部機器である。
【0157】
図18は、図2に示したスキャナ/プリンタ95Bのスキャナ95Aの原稿走査状態を示す模式図である。
【0158】
図において、201Rはヘッドの動きを示している。ヘッド自体は原稿( 用紙) に対して図のように横方向( 主走査方向) に動く、センサの各画素はこれとは垂直に配列している。このため、データ203Rが並ぶ。一方、一般的なラスタ走査形式ではデータ204Rのように並ぶ。
【0159】
図19は、図2に示したスキャナ/プリンタ95Bのスキャナ95Aのバンド原稿走査状態を示す模式図である。
【0160】
図において、301Rは1ページを示し、302Rは第1のセグメントを示し、303Rは第2のセグメントを示している。スキャナセンサから出力され画像処理系を通り2値化されるまでの画像では、セグメント304Rのようにセグメント305Rより大きな画像が扱われ、幅306Rの大きさだけ重複して処理がなされる。
【0161】
以下、図20〜図22を参照しながら本実施例に示したS/Pサーバー装置が制御可能なプリンタの一例について説明する。
【0162】
本実施例に示したS/Pサーバー装置が制御可能なプリンタとしては、セントロニクス・インターフェースを利用可能なプリンタである。セントロニクス・インターフェースは、米国セントロニクス社が自社のプリンタ用に開発したコンピュータからプリンタにデータを送るための規格で、安価でかつ高速のデータを送ることができる。現在のプリンタは、ほとんどこのセントロニクスが標準となっている。
【0163】
セントロニクスのデータ伝送は、図20に示すようにDATASTROBE信号,ACKNOWLEDGE(ACK)信号,BUSY信号用の3本の制御線とDATA線によって行なう。
【0164】
ここで、DATASTROBE信号は、DATA線に、データが出力されたことを示す。BUSY信号は、現在プリンタが動作中であり、データを受け取れないことを示か、または、データ・バッファがフルであることを示す。
【0165】
ACK信号は、データの読み取りが正常に終了したことを示す。
【0166】
基本的には、上記3本の制御線で十分であるが、プリンタの制御を考えて、紙切れなどの信号線も定義してある。図20には、信号名,入出力,備考を示した。ピン番号は36ピン、25ピン、14ピンとコネクタの種類がまちまちな事と、各社で若干定義が変わっていたり、削除されている場合も多いため割愛した。
【0167】
図21は、セントロニクスI/F制御回路の一例を示す回路ブロック図である。
【0168】
図において、201AはセントロニクスI/F制御回路で、データバッファ202A,制御線バッファ203Aを備え、図22に示すタイミングチャートに従ってデータ処理が行なわれる。
【0169】
図23は、図21に示したセントロニクスI/F制御回路によるホスト−プリンタ間の信号処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示し、特にホスト側の処理に対応する。
【0170】
まず、BUSY信号が「L」で、かつACK信号が「H」となったら(1) 、データを設定し(2) 、DATASTROBE信号を出力して(3) 、ステップ(1) に戻る。
【0171】
図24は、図21に示したセントロニクスI/F制御回路によるホスト−プリンタ間の信号処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示し、特にセントロニクス対応プリンタ側の処理に対応する。
【0172】
まず、BUSY信号が「L」となり(1) 、BUSY信号を「H」とし(2) 、データをデータバスより取り込みを開始する(3) 。次いで、データ取り込みを終了し(4) 、ACK信号が「L」とし(5) 、BUSY信号を「L」、かつACK信号を「H」に設定し(6) 、ステップ(1) に戻る。データ転送はこのようにして行なわれる。
【0173】
セントロニクス・プリンタは上記転送条件のもと、”ESC”(0x1B)をコマンドやデータの先頭に付けた方法で制御される場合が多い。例えば、あるプリンタにデータを転送する場合、ESC ( A COUNT COLORDATA,(1B 28 41 COUNT COLOR DATA)等のように送る。
【0174】
ここで、「ESC ( A」は制御用のコードである。「COUNT」はデータ数である。「COLOR」はRGB、CMYなどの色空間定義である。「DATA」はカラー画像データである。このようなデータコマンドを連続してプリンタに送れば、プリントが行なわれる。なお、制御コードや構成は各社のプリンタによって違っている。しかしながら、”ESC”を用いた制御方法は、比較的類似している。
【0175】
本システムは、セントロニクス・ポートにセントロニクス・プリンタを接続し、制御コードを、ソフトウエアプログラムでサポートすることにより、各種セントロニクス・プリンタを利用することができる。
【0176】
図25は本発明に係るスキャナプリンタサーバー(ネットワークサーバー)SP1とホストコンピュータとのプログラム構成を説明する図である。以下、システム全体の流れを概略的に説明する。なお、図2と同一のものには同一の符号を付してある。また、図25でのホストコンピュータは図2に示すMacintoshのステーションST1を例にして説明するが、他のステーションST2,ST3等であっても構わない。
【0177】
ホストコンピュータ(ステーション)ST1のオペレータがアプリケーションプログラム56を用いて作成した印刷データをプリントするため、所望とするスキャナプリンタネットワークサーバー,プリンタ,紙サイズ,送出するデータ形式等を選択指示すると、アプリケーションプログラム56は変換プログラム54にデータ(指示情報を含む)を通信する。変換プログラム54はアプリケーションプログラム56から送られたデータを選択されたネットワークサーバーSP1が受け付けるデータ構造に変換し、通信プログラム53,TCP/IPプログラム52に通信する。例えばMacintoshのステーションST1では、QuickDrawデータからCaPSLデータに変換し、IBMPCのステーションST2では、GDIデータからCaPSLデータに変換する。
【0178】
通信プログラム53は、変換プログラム54から送出されたデータをTCP/IPプログラムを介してネットワークサーバーSP1に通信し、ネットワークサーバーSP1の通信プログラム83がTCP/IPプログラム82を介して受信し、システム全体制御プログラム93に通信する。システム全体制御プログラム93は、送られてきたデータを解析し、その時のネットワークサーバーSP1の状態と送られてきたデータに従い、以下の処理を行う。
【0179】
システム全体制御プログラム93は、印刷データをPDLインタープリタープログラム84に送る。PDLインタープリタープログラム84は印刷データを受け取り、指定されたプリンタ(例えばスキャナプリンタ95のプリンタ)が受け入れ可能なデータに変換する。例えばプストスクリプト(商品名)やCaPSLというPDLのデータから画像データに変換する。システム全体制御プログラム93はPDLインタープリタープログラム84が変換したデータを画像入出力装置制御プログラムとしてのデバイスドライバ86に送り、デバイスドライバ86はデータを指定されたプリンタに送りプリントさせる。
【0180】
次に、ホストコンピュータST1のオペレータがスキャナアプリケーション58を用いて画像入力するため、所望とするスキャナプリンタネットワークサーバー,スキャナ,画像の領域,解像度,カラーあるいはモノカラー,圧縮の種類等を選択指示すると、スキャナアプリケーション58はスキャナインタフェースプログラム57を介して通信プログラム53に通信する。通信プログラム53は、スキャナインタフェースプログラム57を介して送られたデータをTCP/IPプログラムを介して指定されたネットワークサーバーSP1に通信し、ネットワークサーバーSP1に通信し、ネットワークサーバーSP1の通信プログラム83がTCPIPプログラム82を介して受信し、システム全体制御プログラム93に通信する。システム全体制御プログラム93は、入力した選択指示命令(画像入力命令)をスキャナ制御プログラム85に送り、スキャナ制御プログラム85は、命令に従って、画像入出力装置制御プログラムとしてのデバイスドライバ86に命令を送り、デバイスドライバは指定されたスキャナ(例えばスキャナプリンタ95のスキャナ)を起動して画像データを入力し、画像データをスキャナ制御プログラム85へ送り、スキャナ制御プログラム85は画像データをシステム全体制御プログラム93へ送り、システム全体制御プログラム93は通信プログラム83へ送り、ネットワークサーバーSP1の通信プログラム83がTCP/IPプログラム82を介して指定されたホストコンピュータの通信プログラム(例えば通信プログラム53)へ画像データを送信する。通信プログラム53がTCP/IPプログラム52を介して受信した画像データは、さらにスキャナアプリケーションプログラム58に送られる。
【0181】
次に、ワークステーションST1から指定されたスキャナプリンタサーバーへ(例えばスキャナプリンタサーバーSP1へ)スキャナプリンタサーバーの状態を問い合わせる命令が送られた場合は、システム全体制御プログラム93がネットワークサーバーSP1の状態(例えばネットワークサーバーSP1に接続されているスキャナプリンタの種類,解像度,紙サイズ,色処理能力等)を取得し、TCP/IPプログラム82を介して、通信プログラム83が指定されたホストコンピュータ(例えばワークステーションST1)に通信する。
【0182】
また、画像入出力装置としてのスキャナプリンタ94,95またはネットワークサーバーSP1内でエラーが発生した場合は、システム全体制御プログラム93がエラーの状況を管理し、通信プログラム83がTCP/IPプログラム82を介して指定されたホストコンピュータ(例えばホストコンピュータSP1)に通信する。
【0183】
以上のように、本実施例ではこれらのプログラム構成により、ホストコンピュータのアプリケーションプログラム(例えばDTPソフト)からホストコンピュータで指定したプリンタでプリントすることができる。また、ホストコンピュータのスキャナアプリケーションプログラム(例えばDTPソフト)からホストコンピュータで指定したスキャナから画像を入力できるし、指定したスキャナで入力した画像を別のホストコンピュータへ送出することもできる。また、指定したネットワークサーバーSP1の状態(接続されるスキャナプリンタの状態)を確認することができる。
【0184】
なお、図25では、LAN96に接続されるホストコンピュータ,スキャナプリンタサーバーはいくつ接続されていても本発明の適用を妨げるものではない。以下、ホストコンピュータ,ホストコンピュータとネットワークサーバーSP1との間のネットワーク処理について説明する。
【0185】
ホストコンピュータにおいて、プリントプロセスを行なう場合、大きく分けて第1〜第3の処理、すなわち第1はアプリケーションプログラム(例えばDTPソフト)によるデータの作成処理、第2はアプリケーションプログラムによって作成されたデータの上記CaPSLコードへの変換処理、第3はCaPSLコードのネットワークサーバーSP1への転送処理である。
【0186】
なお、第1のデータの作成処理で作成されたデータは、使用するマシンの機種,アプリケーションプログラムに依存する。例えばSUNワークステーションでFrame Technology社製のDTPプログラムであるFrameMaker(商品名)を使用した場合、MIF(商品名)ファイルまたはIPL(商品名)ファイルで出力される。また、使用するマシンの機種がIBM社製のIBM−PCでWindows(商品名)対応のアプリケーションプログラムを使用した場合、GDI関数の呼び出しになる。また、アップル社製のMacintosh(商品名)を使用した場合、QuickDraw関数の呼び出しになる。
【0187】
また、アプリケーションプログラムによって作成されたデータの上記CaPSLコードへの変換処理では、第1の処理で作成されたデータをCaPSLコードに変換するので、マシンの機種,作成されるファイル形式に依存する。例えばSUNワークステーションで上記Frame Makerを使用した場合、MIFファイルまたはIPLファイルをCaPSLコードに変換するプログラムとする。また、使用するマシンの機種がIBM社製のIBM−PCでWindows対応のアプリケーションプログラムを使用した場合、GDI関数からCaPSLコードへの変換を変換プログラムで行なう。さらに、アップル社製のMacintosh(商品名)を使用した場合、QuickDraw関数をCaPSLコードへの変換を変換プログラムで行なう。
【0188】
さらに、第3はCaPSLコードのネットワークサーバーSP1への転送処理においては、送信するデータはCaPSLであるが、送信処理は送信する際に使用するプログラムに依存する。例えば図2に示す通信プログラム83を使用したり、UNIXをOSとしているホストコンピュータではlpq/lpdプログラム90を使用する。
【0189】
また、ホストコンピュータにおいてスキャナプロセスを行なう場合、大きく第1,第2のの処理が行なわれる。
第1にイメージデータをネットワークサーバーSP1から受信する。第2にスキャナアプリケーションプログラムでイメージデータの表示,保存を行なう。
【0190】
第1の処理において、受け取るイメージデータは、第2の処理で使用するスキャナアプリケーションプログラムが扱えるイメージデータ形式に保存する。また、ネットワークサーバーSP1からイメージデータを受信する際に使用するプログラムとしては、図2に示す通信プログラム83を使用する。
【0191】
第2の処理において、スキャナアプリケーションプログラムの使用に依存して、扱えるイメージデータ形式が決まる。入力,出力各々について扱えるイメージデータ形式を定める。例えばビットマップおよびTIFF形式を入力として許可する。また、出力としてビットマップおよびTIFF形式を許可する。ファイルで保存する場合、TIFF形式を用いる。表示する場合にはビットマップを用いることができる。
【0192】
ホストコンピュータとネットワークサーバーSP1間をネットワークで接続する時は、複数のプログラムを使用する。中心となるプログラムは図2に示す通信プログラム83である。
【0193】
ネットワークサーバーSP1では、例えば図25に示す通信プログラム53とネットワークサーバーSP1側の通信プログラム83がある。ホストコンピュータ側の通信プログラムは、主として第1〜第3の処理を行なう。
【0194】
第1は下位レイアを介して、ネットワークサーバーSP1とリンクを張る。第2はCaPSLデータをネットワークサーバーSP1へ送信する。第3はネットワークサーバーSP1からイメージデータを受信して上位レイヤへ送る。
【0195】
一方、ネットワークサーバーSP1は、主として第1,第2の処理を行なう。第1はTCP/IPプログラム82を介して通信プログラム83で受信したCaPSLデータをシステム全体制御プログラム93へ送る。第2はシステム全体制御プログラム93から受け取ったイメージデータを通信プログラム83へ送信する。
【0196】
プリント処理及びスキャン処理は、ホストコンピュータの上位レイアからのプリントおよびスキャンの要求を通信プログラム53が受け取ることで開始される。通信プログラム53は、下位レイヤを使用して、リンクを張る。例えばイーサネットを介して接続した場合、下位レイアとして、TCP/IPプログラム52を使用してデータの送受信を行なう。通信プログラム53では、リンクを張った後に、プリントおよびスキャンに特有の情報の受け渡しをして、適合する条件にプリンタ及びスキャナを設定する。プリンタおよびスキャナの設定が終了後は、プリントはCaPSLをクライアントからサーバーへ、またスキャナの設定が終了した後は、プリント時はCaPSLをクライアントからサーバーへ、またスキャン時はイメージデータをサーバからクライアントへ各々送信する。プログラムとして、図2に示したlpdプログラム90も使用できる。ホストとして、UNIXマシンを使用した場合に、UNIXの標準のプリントコマンドであるlprを使用してプリントが可能となる。このlpdプログラム90(図2参照)はプリント時のみに使用する。サーバー側にスプールディスクがない場合でもデフォルトの設定での出力は可能である。
【0197】
システム全体制御プログラム93の基本的な動作は、イベントを入力してイベントに応じた処理を行なうことと、エラー中の入出力装置に状態を問い合わせ、エラーから回復していた場合、エラーによって中断していたジョブがあれば再開することである。
【0198】
以下、図26に示すフローチャートを参照しながら本発明に係るサーバー装置における全体制御動作について説明する。
【0199】
図26本発明に係るサーバー装置における全体制御手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【0200】
先ず、ステップ(1) でイベントがあるかどうかを判別し(1) 、ある場合はステップ(2) でイベントに応じた処理を行ない、ステップ(1) でイベントが無い場合は、ステップ(3) でエラー中の入出力装置があるか調べ、ある場合はステップ(4) でエラー中か問い合わせ、ステップ(5) でエラー中か判別し、エラーから回復していればステップ(6) でエラーにより中断していたジョブがあれば再開する。システム全体制御プログラム93はネットワークサーバーSP1内でTCP/IPプログラム82,通信プログラム83,PDLインタープリタープログラム84,スキャナ制御プログラム85,デバイスドライバ86と通信することができ、さまざまなイベントを受けとる。通信プログラム83から送られるイベントとして、ジョブの到着、データ転送の終了があり、PDLインタープリタープログラム84から送られるイベントとして、受信データ処理終了、画像データ描画終了、ページ描画終了、プリントジョブ終了があり、スキャナ制御プログラム85からのイベントとして、画像データ転送要求、画像入力処理終了、ページプリント終了、エラー発生、正常状態等のイベントがある。
【0201】
また、システム全体制御プログラム93では各イベントに対する動作が定まっており、例えば、通信プログラム83からジョブの到着が送られると、ジョブの内容を解析し、プリントジョブの場合はPDLインタープリタープログラム84にデータを転送し、画像入力ジョブの場合はスキャナ制御プログラム85にデータを転送する。
【0202】
さらに、デバイスドライバ86から送られるエラーとしては、紙なし、インク切れ、紙詰まり、電源OFF等がある。
【0203】
なお、本実施例では、ネットワークサーバーSP1では、プリンタのページ記述言語としてCaPSLを採用している。そこで、CaPSLの機能処理等について説明する。なお、プリンタのページ記述言語としては、CapSLに限定されるものではない。
【0204】
CaPSLの機能は、図形,文字,イメージを表現している制御コードを入力して、ネットワークサーバーSP1のバンドメモリと呼ばれる描画領域に画像を展開するタスクである。
【0205】
PDLインタープリタープログラム84と直接コミュニケーションを持つプログラムは、システム全体制御プログラム93である。コミュニケーションは、以下の第1,第2のコミュニケーションである。
【0206】
第1のコミュニケーションは、システム全体制御プログラム93がCaPSLに引き渡すコミュニケーションであり、その内容は、CaPSLコードの格納されたファイル名,CaPSLコードが格納されてあるメモリの先頭アドレスおよびサイズ,バンドメモリ描画可能性等である。
【0207】
第2のコミュニケーションは、PDLインタープリタープログラム84がシステム全体制御プログラム93に引き渡すコミュニケーションであり、その内容は、バンドメモリ描画終了,ページ描画終了,ドキュメント描画終了,バンドメモリ描画領域,空バンドメモリの情報である。
【0208】
この際、PDLインタープリタープログラム84の内部では、以下の処理が行われる。
【0209】
ネットワークサーバーSP1では、バンドメモリと呼ばれる、ある幅を持ったメモリを持っているので、PDLインタープリタープログラム84は画像をバンド幅分だけ部分的に展開しなければならない。PDLインタープリタープログラム84は、図27に示すようなプリンタ制御コマンドを入力する。CaPSLコードは、PDLインタープリタープログラム84内部でレイアウタと呼ばれるプログラム(図示しない)に基づいて図28に示す中間コードに置き換えられる。本実施例において、中間コードとは、いわゆる抽象的な図形の表現を具体的なデバイスの表現にしたものである。そして、1ページ分の中間コードができあがると、ペインタと呼ばれるプログラム(図示しない)に基づいて中間コードを参照しながらバンドメモリにラスタイメージを展開する。
【0210】
例えば図29に示すような図形を描くようなCaPSLコードをレイアウタが受け取ると、デバイスに依存した図28に示す中間コードに置き換える。ここで、レイアウタは、図形の大きさに基づいてその図形が何バンド目から何バンド目まで描かれているかを計算して、中間コードに登録する。図29では、円(circle)が1〜2バンド、矩形(Rectangle)が2〜4バンドに描かれる場合を示す。なお、その後に書かれている数字は、デバイス座標系における、図形の位置や半径等である。
【0211】
次に、ペインタ(実際にメモリに描画するプログラム)は中間コードを参照しながら、図29に示すような図形を展開して、バンドメモリに描画する。実際には、メモリはバンド幅分の大きさしか持っていないので、バンドを描画すると、そのデータをプリンタに送り、メモリをクリアして、次のバンドのデータを描き始める。第0番目の描画をするために、中間コードを参照すると、第0番目のバンドに描くべきデータがないことが分かり、次のバンドに移る。すると、ペインタは第1バンド目に描くデータをサーチし、円を検知して1バンド分だけ描画する。次に第2バンド目に移り、円と矩形を描画することが分かるので、円の続きの部分の描画と矩形を1バンド分だけ描画する。このようにして、ペインタは、1ページ分のデータを描画するのである。
【0212】
なお、CaPSLが展開するデータの1画素の構造は、図30に示されるように、RGBXの32ビットになっている。これは、色のデータを表わすRGB24ビットと、付加情報のための8ビットの付加情報Xから構成されている。ここで、付加情報Xの中は、ビット0がイメージ領域判定ビットであり、CaPSLがイメージをバンドメモリに描画する時には、このビットをONにする。また、ビット2は、黒情報ビットになっており、CaPSLで展開された図形や文字の色がRGBともに0の場合は、このビットをONにする。これらの情報は、第1のインタフェース回路4−1でプリンタ94Bでプリントアウトする際に解析され、画質を向上させる情報となる。
【0213】
以下、図31に示すデータ処理経路図を参照しながら、スキャナ94A,95Aの動作について説明する。なお、図25と同一のもには同じ符号を付してある。
【0214】
図31は、図2に示したスキャナ94A,95Aの動作を説明するデータ処理経路図である。なお、画像をバンド単位で切り分けてスキャンするスキャナの場合と、1度に全画像をスキャンする場合のタスクの動作が多少異なるためそれぞれを説明する。
【0215】
画像をバンド単位で切り分けてスキャンするスキャナの場合において、先ず、クライアントマシンとしてのホストコンピュータST1から送られてきた、スキャン命令C1をTCP/IPプログラム82を介して通信プログラム83が受信すると、システム全体制御プログラム93にスキャン命令C2の到着を知らせる。
【0216】
システム全体制御プログラム93は、この装置がスプールIを持つ場合は、受信したスキャン命令C2を元にしてスプールファイルを作って保存し、そのファイル名C3をスキャナ制御プログラム85に送る。スプールIを持たない場合は、スキャナコマンドC3を直接スキャナ制御プログラム85に送る。
【0217】
スキャナ制御プログラム85は、スキャナコマンドC3を解釈し、解像度等のスキャナ条件設定命令C4をデバイスドライバ86に与えて指定されたスキャナを起動する。デバイスドライバ86は、それぞれのスキャナ制御プログラム85に対応して存在する関数である。
【0218】
スキャナ条件を設定したデバイスドライバ86は、リターン値C5をスキャナ制御プログラム85に返す。これを受けるとスキャナ制御プログラム85は、スキャン開始命令C6をデバイスドライバ86に与えて指定されたスキャナを起動する。デバイスドライバ86は、スキャナEを作動させて画像データを読み込みバンドメモリFに書き込む。1バンド分描き込むと、スキャナ制御プログラム85にスキャン終了のリターン値C9を返す。これを受け取ったスキャナ制御プログラム85は、バンドメモリFの画像データに画像処理、例えばJPEG圧縮ボードを用いることで圧縮を行ってバッファ領域Hへ描きこむ。
【0219】
バンドメモリF内のデータを全て処理し終わると、スキャナ制御プログラム85は、システム全体制御プログラム93に転送要求C11送り、また同時にデバイスドライバ86にスキャン開始命令C6を与えて起動する。このスキャンは、前回のスキャンの時の終了点から読み込むようにスキャナ制御プログラム85で制御する。
【0220】
一方、転送要求C11を受けたシステム全体制御プログラム93は、通信プログラム83に転送要求C12を送る。これを受け取った通信プログラム83は、指定されたクライアントマシンとしてのホストコンピュータにバッファ領域H内の処理された画像データを送る。このとき通信プログラム83,システム全体制御プログラム93は、スキャナ制御プログラム85とは、異なったプログラムであるので、スキャナ制御プログラム85内の関数であるデバイスドライバ86の制御で動くスキャナ作動中であっても、画像データの転送を行うことができる。
【0221】
通信プログラム83は、転送が終了するとシステム全体制御プログラム93に転送終了信号C14を送り、これを受け取るとシステム全体制御プログラム93は、スキャナ制御プログラム85に転送終了C15を送る。スキャナ制御プログラム85は、デバイスドライバ86からのスキャン終了を伝えるリターン値C9,転送終了C15の両方を受けると、バンドメモリF内の画像データを画像処理しバッファ領域Hに書き込む。以上の処理を繰り返すことで画像データをホストコンピュータST1へ送ることができる。なお、別のホストコンピュータ(例えばホストコンピュータST2またはホストコンピュータST3)を指定することで、他のホストコンピュータへ画像データを送ることもできる。
【0222】
全ての画像データの転送をスキャナ制御プログラム85が確認すると、システム全体制御プログラム93を介して通信プログラム83まで終了を知らせる。
【0223】
一方、1度に全画像をスキャンする場合は、クライアントマシンとしての、例えばホストコンピュータST1から送られてきた、スキャン命令C1を通信プログラム83が受信すると、システム全体制御プログラム93にスキャン命令C2の到着を知らせる。
【0224】
システム全体制御プログラム93は、この装置がスプールIを持つ場合は、受信したスキャン命令C2を元にしてスプールファイルを作って保存し、そのファイル名C3をスキャナ制御プログラム85に送る。スプールIを持たない場合は、スキャナコマンドC3を直接スキャナ制御プログラム85に送る。
【0225】
スキャナ制御プログラム85は、スキャナコマンドC3を解釈し、解像度等のスキャナ条件設定C4をデバイスドライバ86に与えて指定されたスキャナを起動する。スキャナ条件を設定したデバイスドライバ86は、リターン値C5をスキャナ制御プログラム85に返す。これを受けるとスキャナ制御プログラム85は、スキャン開始命令C6をデバイスドライバ86に起動する。ここでのスキャナEは、読み込み動作を途中で止められないものとしている。
【0226】
デバイスドライバ86は、命令C10によりスキャナEを作動させて画像データすべてを取り込み、取り込んだ画像データに画像処理、例えばJPEGボードGを用いてJPEG圧縮を行なってバッファHに描き込むことができる。
【0227】
また、画像データを生のままバッファHに書き込むことも可能である。バッファHが一杯になると、スキャナ制御プログラム85は、システム全体制御プログラム93に転送要求C11を送る。これを受けたシステム全体制御プログラム93は、通信プログラム83に転送命令C12を出し、通信プログラム83がバッファHに描かれたデータを指定されたホストコンピュータST1へ転送する。なお、別のホストコンピュータ(例えばホストコンピュータST2またはホストコンピュータST3)を指定することで、他のホストコンピュータへ画像データを送ることができる。
【0228】
通信プログラム83は、転送が終了するとシステム全体制御プログラム93に転送終了信号C14を送り、これを受け取るとシステム全体制御プログラム93は、スキャナ制御プログラム85に転送終了C15を送る。スキャナ制御プログラム85は、転送終了C15が送られてくるとバンドメモリ内の画像データを画像処理しバッファHに書き込む。以上の処理を繰り返すことで画像データをクライアントマシンとしての指定されたホストコンピュータへ送ることができる。
【0229】
スキャナ制御プログラム85は、全ての画像データの転送を確認すると、システム全体制御プログラム93を介して通信プログラム83まで終了を知らせる。
【0230】
以下、図32および図33を参照しながら本発明に係るサーバー装置におけるホストコンピュータからS/Pサーバー装置へのデータの流れについて説明する。
【0231】
ホストコンピュータから指定されたS/Pサーバー装置(ネットワークサーバー)SP1へのデータの流れにおいて、先ず、例えばホストコンピュータST1でDTPのアプリケーションプログラム56が実行されていてドキュメントを作成する。このドキュメントのデータ形式は、ホストコンピュータの機種、アプリケーションプログラムに依存したものである。そこで指定されたS/Pサーバー装置SP1が解釈できる形式のデータに変換する必要がある。その変換プログラムが変換プログラム54である。DTPのアプリケーションプログラム(DTPアプリ)56からはホストコンピュータのシステムに依存したデータが変換プログラム54に送られる。変換プログラム54は、受けとったファイルを、例えばCaPSLコードに変換する。さらに、CaPSLコードに変換したファイルは通信プログラムであるlpd505または通信プログラム53に送られる。
【0232】
通信プログラムはホストコンピュータとS/Pサーバー装置SP1の間でネットワークを介して接続、通信を行なうためのものであり、ここでは2つの内のどちらか一方のプログラムを用意する。
【0233】
先ず始めに、通信プログラム53を用いた時を説明する。
【0234】
通信プログラム53に対応するプログラムとして、S/Pサーバー装置SP1側で通信を司るプログラムは通信プログラム83であり、このプログラム間ではTCP/IPプログラムを使用する。プリント時の通信プログラム53の役割は主に2つあり、一つは下位レイヤ(TCP/IP)を介して通信プログラム83とリンクを張り、通信できる状態にすることである。もう一つは、変換プログラム54が生成したCaPSLデータファイルをS/Pサーバー装置SP1に送信することである。
【0235】
また、通信プログラム83の役割はリンクを張りプリント処理に必要な情報をやりとりして最適にプリントできるようにすること。通信プログラム53の送ってくるデータを受けとり、システム全体制御プログラム93にデータの到着を知らせる。この時、送られてきたCaPSLデータ、およびそれに付随する情報は受信バッファに一時的に貯められている。また、S/Pサーバー装置SP1側で何らかのエラーが起こった時に、その情報を通信プログラム53に送信するというような役割もある。
【0236】
以下、通信プログラム83からプリントアウトまでの処理について説明する。
【0237】
ここまでで、DTPアプリケーションプログラム56で作成したドキュメントデータはS/Pサーバー装置SP1に送られたことになる。次に通信プログラム83はシステム全体制御プログラム93にジョブ(例えばカラーレーザ複写装置(CLC)からプリントアウト)の到着のイベントを送る。システム全体制御プログラム93はイベント駆動型のプログラムで通信プログラム83,デバイスドライバ86,PDLインタープリタープログラム84から送られてくるイベントを常に待っている。イベントが入ってくるとイベントの発信元と内容を調べてそれに対応した処理を行なう。 今、システム全体制御プログラム93には通信プログラム83から「ジョブが到着した」というイベントが入力されている。この時、システム全体制御プログラム93はイベントを解析してハードディスク519を持っている時には受信バッファのドキュメントデータを一旦スプールする。そして、ジョブが幾つかたまっている場合には、ジョブの内容、プリンタ、スキャナの状態、ジョブの優先順位などを考慮して最適にジョブを起動する。
【0238】
ハードディスク519がない場合には、データを貯めておくことが出来ないので、データの格納されているアドレスとサイズをPDLインタープリタープログラム84に知らせてプリントアウト処理を直ちに行なうように要求を出す。ここでは、ハードディスクがあるものとして説明を続ける。システム全体制御プログラム93はジョブの内容を判断してPDLインタープリタープログラム84にスプールファイル名を渡し、起動の要求をする。
【0239】
以下、図33に示すブロック図を参照しながらさらに詳述する。
【0240】
図33は本発明に係るS/Pサーバー装置SP1と、例えばカラーレーザ複写装置(CLC)とのデータ処理状態を説明するブロック図である。
【0241】
図32に示したPDLインタープリタープログラム84はスプールファイルからCaPSLデータを読み込み, 解釈して、図形、文字、イメージをバンドメモリ518に描画する。CaPSLデータの中に圧縮符合化されたイメージデータがあった場合にはPDLインタープリタープログラム84は、標準圧縮伸長部606でイメージデータを伸長してバンドメモリに描画する。1バンド分の描画を終了すると、PDLインタープリタープログラム84はシステム全体制御プログラム93に対して「1バンド描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム93はデバイスドライバ86に「1バンド排紙」の要求イベントを発行する。
【0242】
以下、バンドメモリ605から圧縮メモリ615までのデータの流れについて説明する。なお、ここではデバイスドライバ86の動作について説明する。
【0243】
「1バンド排紙」のイベントを受けとったデバイスドライバ86は、バンドメモリ605に格納されている展開データを、サブボード610Aのラインバッファ617に転送する。ラインバッファ617に格納された展開データはブロック順次でリアルタイム圧縮伸長部616に転送される。リアルタイム圧縮伸長部616では、ブロック順次に得られる画像データを圧縮していき、順次圧縮メモリ615に格納する。圧縮メモリ615のアドレス生成や、ライト信号の生成はDMAコントローラ621が行なう。
【0244】
1バンド分の圧縮が終了するとデバイスドライバ86はシステム全体制御プログラム93に対して「1バンド排紙終了」のイベントを送信する。イベントを受けとったシステム全体制御プログラム93は、PDLインタープリタープログラム84に対して「1バンド描画要求」イベントを出力する。このようにバンド毎に描画しては、圧縮するという処理を繰り返し1ページ分の圧縮展開イメージを圧縮メモリ615に格納する。最後のバンドの格納が終了すると、PDLインタープリタープログラム84はシステム全体制御プログラム93に対して「1ページ描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム93は、デバイスドライバ86に対して「1ページ排紙命令」を発行する。
【0245】
「1ページ排紙命令」を受けとったデバイスドライバは、圧縮メモリ615に格納されている1ページ分の展開イメージをプリントアウトするために次のような処理を行なう。
【0246】
CPU611はDPRAM622をONにしてからリアルタイム圧縮伸長部616,DMAコントローラ621の初期化および指定されたプリンタ620とのコマンドの通信を行ないリアルタイム圧縮伸長部616に伸長開始の命令を出す。リアルタイム圧縮伸長部616はDMAコントローラ621にアクセスし、DMAコントローラ621はアドレス、リード信号の生成を行ない、圧縮メモリ615より圧縮データがリアルタイム圧縮伸長部616に入力され、伸長された後ブロック順次でラインバッファ617に出力される。そしてラインバッファ617にてブロック順次からラスタ順次の変換をしてSPI/F618を通じて転送されプリンタ620に出力される。実際に、1ページ分のプリントアウトが終了するとデバイスドライバ86から「1ページ排紙終了」のイベントがシステム全体制御プログラム93に対して送られる。するとシステム全体制御プログラム93は、PDLインタープリタープログラム84に対して2ページ目の描画命令」を発行する。このようにして複数ページのドキュメントの出力が処理されて行く。
【0247】
最終ページの最終バンドの描画が終了すると、PDLインタープリタープログラム84は「ドキュメント終了」イベントをシステム全体制御プログラム93に対して発行する。システム全体制御プログラム93はデバイスドライバ86に対して「1ページ排紙命令」を出しデバイスドライバ86はプリント処理を行ない「1ページ排紙終了」イベントをシステム全体制御プログラム93に対し発行する。なお、プリント終了は、システム全体制御プログラム93は必要ならば通信プログラム83に「プリント終了」イベントを発行する。通信プログラム83はホストコンピュータ側の通信プログラム53に対しプリント終了を知らせる。
【0248】
また、エラー発生時には、例えばプリンタ620が、紙詰まりを起こしたり、紙無しの状態になった時にはデバイスドライバ86からシステム全体制御プログラム93に対して「エラー発生」のイベントが送られる。システム全体制御プログラム93はその旨をPDLインタープリタープログラム84と通信プログラム83に伝える。PDLインタープリタープログラム84はプログラムの状態の退避などのエラー時の処理を行ない、通信プログラム83はエラーの発生や、その内容をホストコンピュータ側の通信プログラム83に伝える。なお、エラーが回復したかどうかを調べる方法は2つ考えられる。一つは、ある一定期間毎にシステム全体制御プログラム93がデバイスドライバ86に対して問い合わせて、デバイスドライバ86が答えるという方法。
【0249】
もう一つは、システム全体制御プログラム93がエラー回復を監視していて回復時にシステム全体制御プログラム93に対して「エラー回復」のイベントを発行するというものである。
【0250】
以下、図32,図34を参照しながらホストコンピュータから、例えばバブルジェットカラー複写装置へのプリントデータ出力処理について詳述する。
【0251】
図34は本発明に係るS/Pサーバー装置SP1と,例えばバブルジェットカラー複写装置(BJC)とのデータ処理状態を説明するブロック図である。
【0252】
ホストコンピュータからS/Pサーバー装置SP1へのデータの流れは、図32に示すように、まず、ホストコンピュータでDTPのアプリケーションプログラム56が実行されていてドキュメントを作成する。このドキュメントのデータ形式は、ホストコンピュータの機種、アプリケーションプログラムに依存したものである。そこでS/Pサーバー装置SP1が解釈できる形式のデータに変換する必要がある。その変換プログラムが変換プログラム54である。DTPのアプリケーションプログラム56からはDTPアプリに依存したデータが変換プログラム54に送られる。変換プログラム54は、受けとったファイルをCaPSLコードに変換する。さらに、CaPSLコードに変換したファイルは通信プログラムであるlpd505または通信プログラム53に送られる。
【0253】
通信プログラムはホストコンピュータとS/Pサーバー装置SP1の間でネットワークを介して接続、通信を行なうためのものであり、ここでは2つのプログラムを用意する。
【0254】
先ず始めに、通信プログラム53を用いた時を説明する。
【0255】
通信プログラム53に対応するプログラムとして、S/Pサーバー装置SP1側で通信を司るプログラムは通信プログラム83であり、このプログラム間ではTCP/IPプログラムを使用する。
【0256】
プリント時の通信プログラム53の役割は主に2つあり、一つは下位レイヤ(TCP/IP)を介して指定したS/Pサーバー装置SP1とリンクを張り、通信できる状態にすることである。もう一つは、変換プログラム54が生成したCaPSLデータファイルを通信プログラム83に送信することである。
【0257】
また、通信プログラム83の役割はリンクを張りプリント処理に必要な情報をやりとりして最適にプリントできるようにすること。通信プログラム53の送ってくるデータを受けとり、システム全体制御プログラムにデータの到着を知らせる。この時、送られてきたCaPSLデータ、およびそれに付随する情報は受信バッファに一時的に貯められている。
【0258】
また、S/Pサーバー装置SP1側で何らかのエラーが起こった時に、その情報をホストコンピュータ側の通信プログラム53に送信するというような役割もある。ホストコンピュータ側の通信プログラム53からプリントアウトする際には、DTPアプリケーションプログラム56で作成したドキュメントデータは指定されたS/Pサーバー装置SP1に送られたことになる。次に通信プログラム83はシステム全体制御プログラム93にジョブ(例えばBJカラー複写装置からプリントアウト)の到着のイベントを送る。システム全体制御プログラム93はイベント駆動型のプログラムで通信プログラム83,デバイスドライバ86,PDLインタープリタープログラム84から送られてくるイベントを常に待っている。イベントが入ってくるとイベントの発信元と内容を調べてそれに対応した処理を行なう。
【0259】
今、システム全体制御プログラム93には通信プログラム83から「ジョブが到着した」というイベントが入力されている。この時システム全体制御プログラム93はイベントを解析してハードディスク519を持っている時には受信バッファのドキュメントデータを一旦スプールする。そして、ジョブが幾つかたまっている場合には、ジョブの内容、プリンタ、スキャナの状態、ジョブの優先順位などを考慮して最適にジョブを起動する。
【0260】
ハードディスク519がない場合には、データを貯めておくことが出来ないので、データの格納されているアドレスとサイズをPDLインタープリタープログラム84に知らせてプリントアウト処理を直ちに行なうように要求を出す。
ここでは、ハードディスクがあるものとして説明を続ける。システム全体制御プログラム93はジョブの内容を判断してPDLインタープリタープログラム84にスプールファイル名を渡し、起動の要求をする。PDLインタープリタープログラム84はスプールファイルからCaPSLデータを読み込み, 解釈して、図形、文字、イメージをバンドメモリ518に描画する。CaPSLデータの中に圧縮符合化されたイメージデータがあった場合にはPDLインタープリタープログラム84は標準圧縮伸長部606でイメージデータを伸長してバンドメモリに描画する。1バンド分の描画を終了すると、PDLインタープリタープログラム84はシステム全体制御プログラム93に対して「1バンド描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム93はデバイスドライバ86に「1バンド排紙」の要求イベントを発行する。
【0261】
一方、バンドメモリ518からプリントアウトする場合には、「1バンド排紙」の要求イベントを受けたデバイスドライバ86はインタフェースボード610Bを制御して指定したバブルジェットカラープリンタ(BJプリンタ)656にてプリントを行う。メインCPUボード610のバンドメモり605に展開されている1 バンドの画像データをバンドメモり653に転送する。バンドメモリ653のデータはBJのヘッドに合った走査形式で読み出されバッファ651を通して画像処理部652に入る。ここでは予め設定したパラメータに従って処理がなされる。通常はバンドメモりにあるNTSC−RGBをBJプリンタ656内部のRGBに変換する処理を行う。そしてインタフェース618を通してBJプリンタ656のプリンタエンジン部へ送られる。BJプリンタ656への制御はCPU601からのコマンドを解釈して、CPU611が行う。なお、650はデュアルポートRAMである。
【0262】
最終バンドまでこれらの処理を繰り返したら、PDLインタープリタープログラム84は「ドキュメント終了」イベントをシステム全体制御プログラム93に発行しプリントを終える。プリント終了の際、システム全体制御プログラム93は必要ならば通信プログラム83に「プリント終了」イベントを発行する。通信プログラム83はホストコンピュータ側の通信プログラム53に対しプリント終了を知らせる。
【0263】
また、エラー発生時には、例えばプリンタ656が、紙詰まりを起こしたり、紙無しの状態になった時には、デバイスドライバ86からシステム全体制御プログラム93に対して「エラー発生」のイベントが送られる。システム全体制御プログラム93はその旨をPDLインタープリタープログラム84と通信プログラム83に伝える。PDLインタープリタープログラム84はプログラムの状態の退避などのエラー時の処理を行ない、通信プリンタ83はエラーの発生や、その内容をホストコンピュータ側の通信プログラム53に伝える。なお、エラーが回復したかどうかを調べる方法は2つ考えられる。一つは、ある一定期間毎にシステム全体制御プログラム93がデバイスドライバ86に対して問い合わせて、デバイスドライバ86が答えるという方法。
【0264】
もう一つは、システム全体制御プログラム93がエラー回復を監視していて回復時にシステム全体制御プログラム93に対して「エラー回復」のイベントを発行するというものである。
【0265】
以下、異機種間でカラー画像の通信を行う場合、単純にこれらの入出力機器を接続したのではお互いの特性が異なり、最適な色再現が難しくなってしまう。このため、現在では、各デバイス内では、固有の色空間で、通信路上では標準の色空間で通信し合う方向で検討が進んでいる。そこで、以下、このような要請の下での色空間の変換処理方法について説明する。
【0266】
なお、説明上、送信側の入力デバイスの色空間をA、通信路上の色空間をB、受信プリンタの色空間をCとする。
【0267】
また、通信路上の色空間は現在では比較的知られている色空間、例えばカラー画像符号化で良く用いられるYCrCb色空間の場合について説明する。
【0268】
一方、送信側の色空間Aは、YCrCb色空間と異なり色域が異なるのが一般的で、通常は両色空間間を第(1)式のような形式で結合する。
【0269】
[Ra] [a11 a12 a13][y]
[Ga]=[a21 a22 a23][cr]
[Ba] [a31 a32 a33][cb]……(1)
ここで、Ra,Ga,Baは色空間Aの任意の1点の座標(Ra,Ga,Ba)であり、対応するYCrCb色空間上の1点を(y,cr,cb)とする。これらのすべての色空間上で近似できるように、例えば最小2乗法により、a11〜a33までの係数を求めて利用する。従って、上記第(1)によりデバイスの入力色空間と通信上の色空間化変換を行う。
【0270】
一方、通信路上の標準色空間から記録側の色空間に変換する場合、いくつかの方法があるが、本実施例では以下のように処理する。
【0271】
先ず、通信路上での標準色空間をYCrCbとした場合、YCrCbからRGBに変換される。YCrCb空間は、NTSCと線形変換できるので、以下、NTSC色空間として説明する。
【0272】
また、NTSC標準色空間は加法混色を基本としているが、印刷は減方混色系が用いられる。従って、加法混色と減方混色の変換が必要となる。この変換は、構成が複雑で純粋に論理的に解決するのは非常に難しい。そこで、本実施例では記録側の色空間に近い加法混色系色空間を記録側の内部的標準色空間とする。ここでは、NTSC色空間より、狭いHDTV(HighDefinitionTV)色空間を記録側標準色空間Dとする。
【0273】
さらに、記録側内部標準色空間Dとデバイス色空間Cとの関係は、下記第(2)で決定される。
【0274】
[Y] [A11 A12 A13][Rh]
[M]=[A21 A22 A23][Gh]
[C] [A31 A32 A33][Bh]
[K] [A41 A42 A43] ……(2)
ここで、Y,M,C,Kは印刷のための原色で、イエロー,マゼンタ,シアン,ブラックの各成分である。Rh,Gh,Bhは記録側標準色空間成分である。また、A11〜A43までは、印刷と記録内部標準色空間を複数の点で関係付け、最小2乗法で計算される係数である。
【0275】
また、通信路上の標準色空間と記録内部の標準色空間は下記のように変換する。
【0276】
通信回線上のNTSC標準色空間は基礎刺激からNTSCが表現できる色間の3次元的最外郭面代表情報を求める。同様にして、記録側内部標準色空間HDTVの最外郭面の代表位置情報も得られる。
【0277】
今、NTSC色空間上の1点(Rn,Gn,Bn)からHDTV色空間の対応点(Rh,Gh,Bh)を求める場合は、Rn,Gn,BnからCIEL* a* b* 変換し、Ln,an,bnとする。同様にして、Rh,Gh,BhからCIEL* a* b* 変換し、Lh,ah,bhとする。Ln一定でθ=atan(an/bn)に近いHDTV,NTSC各色空間上の最外郭近似位置を前述テーブルから求める。そのNTSC最外郭面位置を(Lon,aon,bon),HDTV最外郭面位置を(Lon,aoh,boh)とすると、ah,bhは下記第(3)式により決定される。
【0278】
ah=(aoh/aon)* an
bh=(boh/bon)* bn ……(3)
これらのah,bhが色空間圧縮後のHDTV色空間上での対応位置である。従って、NTSC色空間上の任意の1点(Rn,Gn,Bn)は、記録側標準色空間上では、(Rh,Gh,Bn)に変換される。従って、上述(2)式により印刷すべきY,M,C,Kの各成分量が決定され、印刷可能となる。
【0279】
なお、本実施例では記録側内部に標準色空間を設けているが、これは通信回線上での標準色空間は1つに絞られていないためである。従って、複数の標準色空間が使用される可能性がある。その場合でも、本方式を用いていれば通信上の色空間がNTSC色空間でなくともそれ自身の色空間を規定できるものであれば、上記方法により標準色空間変換が可能となる。
【0280】
以下、図35を参照しながら周辺機器の異常処理について説明する。
【0281】
図35は本発明に係るサーバー装置とのネットワークシステムの構成を説明するブロック図である。
【0282】
ジョブ実行中に周辺機器に異常が発生した場合、S/Pサーバー装置SP1664は異常が発生した周辺機器が異常から回復するまで待つのではなく、その状態で実行可能なジョブを優先的に実行していく( 実行可能なジョブに関しては、後述する) 。また、異常が発生したときに異常が発生した周辺機器に対して実行していたジョブ( 以下エラージョブともいう) を、ジョブ再開のために必要な情報を保存した後に、実行時にエラーが発生した処理待ちのジョブとしてS/Pサーバー装置SP1664内に登録することにより、異常が発生した周辺機器が異常から回復した後にジョブを再開することが可能である。エラージョブを再開可能なように登録するか登録しないかは、発生した異常の程度や、SPサーバーの設定による。
【0283】
例としてサーバー装置に3台のコンピュータ661〜663および2台のカラースキャナプリンタ665,666および1台のスキャナ667が接続されている場合で説明する。
【0284】
カラースキャナプリンタ665,666は、各々プリントとスキャンのジョブを処理することが出来る。以下、図36に示すフローチャートを参照しながら異常発生ジョブ処理動作について説明する。S/Pサーバー装置664
図36は本発明に係るサーバー装置における異常発生ジョブ処理手順の一例を示すフローチャートである。なお、(1) 〜(10)は各ステップを示す。
【0285】
例えばホストコンピュータ661がカラースキャナプリンタ665に対するプリントジョブをS/Pサーバー装置664に依頼して実行しており、ホストコンピュータ662がシステム全体制御プログラム93にプリントジョブを依頼して処理待ちになっており、ホストコンピュータ663がシステム全体制御プログラム93にスキャンジョブを依頼して処理待ちになっていたとする。このプリントジョブ実行中にカラースキャナプリンタ665のプリンタ部分に異常が発生したとすると(1) 、この時、まずS/Pサーバー装置664はカラースキャナプリンタ665に発生した異常が回復困難な異常かどうかを調べる(2) 。カラースキャナプリンタ665に発生した異常が回復困難な異常であるとS/Pサーバー装置SP1が判断した場合、S/Pサーバー装置SP1は直ちにエラージョブを放棄し(10)、次の処理可能なジョブを選択し実行する(9) 。
【0286】
なお、本実施例において、処理可能なジョブとは、現在異常が発生しているカラースキャナプリンタ665に対するプリントジョブ以外のジョブ、すなわち、
・カラースキャナプリンタ665に対するスキャンジョブ
・カラースキャナプリンタ666に対するプリントジョブ
・カラースキャナプリンタ666に対するスキャンジョブ
・カラースキャナプリンタ667に対するスキャンジョブ
である。
【0287】
処理可能なジョブが複数ある場合は、後述する方式に従ってジョブを実行する。
【0288】
カラースキャナプリンタ665に発生した異常が回復困難な異常であるとS/Pサーバー装置664が判断しなかった場合、S/Pサーバー装置664はカラースキャナプリンタ665に対してリトライ処理(図37参照)を行なう。
【0289】
リトライは、事前に定めておいたN回( 例えば5回) まで繰り返し行なわれる(3) 。N回のリトライを行なうまでにカラースキャナプリンタ665が異常状態から回復した( リトライに成功した) 場合、ジョブを再開する(6) 。N回のリトライを行なってもカラースキャナプリンタ665が異常状態から回復しなかった( リトライに失敗した) 場合、S/Pサーバー装置664は他の処理可能なジョブがあるかどうかを調べる(4) 。処理可能なジョブがなかった場合、S/Pサーバー装置664はリトライ回数とは別に定めておいたM回( 例えば1回) のリトライを行ない(5) 、リトライに成功したならば、エラージョブを再開する。リトライに失敗した場合は、再び処理可能なジョブがあるかどうかを調べる(4) 。処理可能なジョブがあった場合、S/Pサーバー装置664はエラージョブのジョブ退避を行ない(7) 、エラージョブを実行途中でエラーが発生したジョブとして登録し(8) 、次の処理可能なジョブを実行する(9) 。
【0290】
なお、本実施例において、ジョブ退避とは、エラージョブ実行時のS/Pサーバー装置664の状態情報などのジョブ再開時に必要な情報を、例えば記憶手段( 例えばハードディスク) や、例えばS/Pサーバー装置内のメモりや、例えばS/Pサーバー装置内のプログラムなどに保存する処理である。
【0291】
図37は本発明に係るサーバー装置におけるリトライ処理手順の一例を示すフローチャートである。なお、(1) 〜(5) は各ステップを示す。
【0292】
リトライ処理とは、事前に定めておいた時間( 例えば30秒) 待機した後に(1) 、異常が発生した周辺機器が異常状態から回復したかどうかを調べ(2) 、ある一定回数X(例えば5回)繰り返す(3) 。一定回数繰り返すまでに異常が発生した周辺機器が異常状態から回復していればリトライは成功であり(5) 、回復しなければリトライは失敗となる(4) 。
【0293】
以下、本発明に係るサーバー装置によるマルチプリント制御動作について詳述する。
【0294】
スキャナ/プリンタネットワークサーバー(SPネットワークサーバー)には、スキャナとプリンタとから構成されるカラーレーザビーム複写装置(CLC),スキャナとプリンタとから構成されるバブルジェットカラー複写装置(BJC),標準インタフェースで接続されているビットマッププリンタ,PDLプリンタ(CaPSL,PS),市販されるスキャナ等多くのデバイスが接続可能になっている。また、ネットワーク上のホストマシンからは、これらのデバイスを自由に使用させるため、以下のように各ジョブを制御している。
【0295】
例えばホストコンピュータAからカラーレーザビーム複写装置に10頁のドキュメントを出力する要求がSPネットワークサーバーに送られ、さらにホストコンピュータBからバブルジェットカラー複写装置(BJC)のスキャナからカラー原稿を入力する要求が発生し、さらにホストコンピュータCからPDLプリンタに出力するという要求が発生するといった事態も想定される。このように、ネットワーク上のホストコンピュータからは、様々な要求がSPネットワークサーバーに送られ、SPネットワークサーバーでは、それらの要求(ジョブ)に対処するべく下記のようなジョブ制御を実行する。なお、本実施例ではプリント要求,スキャン要求をジョブと呼ぶ。例えばカラーレーザビーム複写装置(CLC)のプリンタにCaPSLコードで記述された3頁のドキュメントを出力する要求を1つのジョブと考える。SPネットワークサーバーのジョブ制御では、同時に2つまでのジョブしか走らないようにするが、3つ以上のジョブが走る場合も制御を拡張することによりほぼ同様に制御できる。
【0296】
以下、図38を参照しながら本発明に係るサーバー装置におけるジョブ制御動作について説明する。
【0297】
図38は本発明に係るサーバー装置におけるジョブ制御状態を説明するタイミングチャートである。なお、ジョブの処理は、SPネットワークサーバーがスプール用のハードディスクを備えているかどうかにより、図38の(a)〜(e)の何れかのジョブ制御1〜5に大別される。また、説明上ジョブ1,2は3頁のプリント要求または3頁のスキャン要求とする。
〔ジョブ制御1〕
ジョブ制御1は、同図(a)に示すように、先に要求のあったジョブを実行して、次のジョブ2は、ハードディスクにスプールして、ジョブが終了した時点でジョブ2を起動する。
〔ジョブ制御2〕
ジョブ制御2は、同図(b)に示すように、特殊な場合であるが、1つのジョブで2つ以上のデバイスを動かす場合の制御に対応する。例えばメモリに展開した画像をカラーレーザビーム複写装置(CLC),バブルジェットカラー複写装置(BJC)にも出力する場合である。
〔ジョブ制御3〕
ジョブ制御3は、同図(c)に示すように、ジョブの中にページという概念をいれる。この場合、プリントの場合にはドキュメントのページ単位、スキャナの場合には1ページの原稿のスキャンの単位とする。例えばジョブ1を実行中にジョブ2の要求がきた場合には、ジョブ1をページの切れ目で中断して、ジョブ2を行う。この場合、ジョブ1とジョブ2とは同時に動いていることはない。
〔ジョブ制御4〕
ジョブ制御4は、同図(d)に示すように、ジョブ1を実行中にジョブ2の要求がきた場合は、ジョブ1を実行したまま、直ちにジョブ2を実行する。
〔ジョブ制御5〕
ジョブ制御5は、同図(e)に示すように、ジョブ1を実行中にジョブ2の要求がきた場合は、ジョブ2をリジェクトする。
【0298】
なお、図1に示したサーバー装置の構成の場合には、ジョブの種類が下記の(1)〜(7)に分類される。
【0299】
(1)カラーレーザビーム複写装置(CLC)のプリンタにドキュメントを出力する。
【0300】
(2)カラーレーザビーム複写装置(CLC)のスキャナから原稿を読み取る。
【0301】
(3)バブルジェットカラー複写装置(BJC)のプリンタにドキュメントを出力する。
【0302】
(4)バブルジェットカラー複写装置(BJC)のスキャナから原稿を読み取る。
【0303】
(5)市販のページ記述言語のインタプリタを内蔵するプリンタに出力する。
(6)市販のビットマッププリンタにドキュメントを出力する。
【0304】
(7)市販のスキャナから原稿を読み取る。
【0305】
以下、各ジョブの優先順位処理について説明する。
【0306】
例えばスキャンのジョブを至急行いたい時、プリントジョブが実行中ならば、プリントジョブを中断して、スキャナジョブを行うことができるように、本実施例では優先順位0〜2の3段階の指定可能であり、優先順位0が指定なし(ファーストインファーストアウト)の場合、優先順位1がジョブ単位で優先割込み指定ありの場合、優先順位2がページ単位で優先割込み指定する場合である。 以下、図39を参照しながら本発明に係るサーバー装置におけるSPマネージャー制御動作について説明する。
【0307】
図39は本発明に係るサーバー装置におけるシステム全体制御プログラム93の制御処理状態を示す図である。本実施例において、システム全体制御プログラム93は、主としてホストコンピュータから送出されてくるジョブの優先順位,ジョブの種類を参照してプリンタのジョブを最適に制御する。以下、図面に基づいて、SPネットワークサーバに対して、ネットワーク上のホストコンピュータから様々な要求が送出される場合のジョブ管理について説明する。
【0308】
先ず、各プログラムの概念的な構成を説明すると、図39に示すように、通信に関する通信プログラム83,SPネットワークサーバーの全体を制御するシステム全体制御プログラム93,スキャナに関するプログラムのスキャナ制御プログラム85,プリント処理(CaPSLのインタプリタ)に関するプログラムのPDLインタープリタープログラム84,入出力機器を実際に制御するデバイスドライバ86の5つのプログラムに大きく分けられる。さらに、実際にデータが流れるインタフェースとして、バンドメモリ(BMEM)70−1,セントロニクスインタフェース(CENTR)70−2,RS232Cインタフェース(RS232)70−3があり、これらをシステム全体制御プログラム93が管理する構成となっている。
【0309】
システム全体制御プログラム93は基本的に他の4つのプログラムからのイベントにより動く、イベント駆動型の処理を図40に示すフローチャートに従って実行する。
【0310】
図40は、図39に示したシステム全体制御プログラム93のイベント処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【0311】
先ず、SPネットワークサーバーの電源投入時にシステム全体制御プログラム93は起動し、すぐにイベント待ちの無限ループになる。プログラムが走り出すと、イベント待ちの状態になる(1) 。イベントか入力されるとループから抜け出し、もし、そのイベントが通信プログラム83からのものかどうかを判定し(2) 、YESならばイベントに応じた処理を行なう(3) 。そして、またステップ(1) に戻りイベント待ちのループになる。
【0312】
一方、ステップ(2) の判定でNOの場合は、そのイベントの発行先がPDLインタープリタープログラム84のプリントジョブかどうかを判定し(4) 、YESならばイベントに応じた処理を行なう(5) 。
【0313】
一方、ステップ(4) の判定でNOの場合は、そのイベントの発行先がスキャナ制御プログラム85のスキャナジョブかどうかを判定し(6) 、YESならばイベントに応じた処理を行なう(7) 。
【0314】
一方、ステップ(6) の判定でNOの場合は、そのイベントの発行先がデバイスドライバ86からかどうかを判定し(8) 、NOならばステップ(1) に戻り、YESならばイベントに応じた処理を行い(9) 、ステップ(1) に戻る。
【0315】
一方、通信プログラム83からは、カラーレーザ複写装置(CLC)のプリントに関するジョブや、バブルジェットカラー複写装置のスキャナに関するジョブ等、いろいろなジョブの要求が不定期的にシステム全体制御プログラム93に送られる。それら複数のジョブを資源の許す限り最適に振り分けなければならない。以下そのアルゴリズムについて図41を参照しながら説明する。
【0316】
図41は本発明に係るサーバー装置におけるジョブの管理状態を示す図である。
【0317】
この図に示されるように、ジョブの管理にはジョブテーブルを使用する。ジョブテーブルには、ジョブを識別するためのID、ジョブの状態を示すステータス、ジョブの実行の優先順位、ジョブの種類、終了ページ、そして割り込みジョブIDがある。
【0318】
IDはシリアルの番号で、ジョブの要求の受け付け順と考えて良い。ステータスには、実行中を示すRUN、処理を待っているWAIT、割り込みが入って中断していることを示すSTOP,エラーが発生して回復待ちを示すESTOPがある。優先順位はLEVEL0から2まであり0は「指定なし」で通常はこのレベルを指定する。1は「ジョブ単位で優先割り込み」で幾つかのジョブが待ち状態の時、それらのジョブより優先して処理するというものである。また2は「ページ単位で割り込み」を表し、現在ジョブを処理中でも、ページの切れ目であればそのジョブを中断してLEVEL2のジョブを処理する。
【0319】
インタフェースは、図39に示すようにそのジョブが使用するハードウェアを指し、ジョブ同士が排他的にハードウェアを利用可能にするために設けたものである。また,ジョブはカラーレーザ複写装置(CLC)のプリンタからドキュメントを出力するCLCP、カラーレーザ複写装置(CLC)のスキャナから原稿を読みとるCLCS、バブルジェットカラー複写装置のプリンタにドキュメントを出力するBJP、バブルジェットカラー複写装置のスキャナから原稿を読みとるBJS、市販のページ記述言語のインタプリタを内蔵するプリンタに出力するPDLP、市販のビットマッププリンタにドキュメントを出力するBITP、市販のスキャナから原稿を読みとる等のジョブがある。なお、終了ページにはジョブが処理し終ったページ数を記録しておく。これは、もしエラーが起こった時にエラー回復後、どのページから処理を再開すれば良いかの判断に使われる。また最後の割り込みジョブIDは、割り込んだジョブが終了しているかの判断に使われ、終了していれば、STOP中のジョブを再開する。
【0320】
システム全体制御プログラム93は以上のような情報の格納されたジョブテーブルを参照しながら、次にどのジョブを起動するかを最適に判断する。
【0321】
以下、図42に示すフローチャートを参照しながら本発明に係るサーバー装置におけるジョブ実行処理動作について説明する。
【0322】
図42は本発明に係るサーバー装置におけるジョブ実行処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【0323】
なお、このフローに制御が移るタイミングは、次のようになる。▲1▼システム全体制御プログラム93にイベントが入らずアイドル状態の時にある一定の間隔をおいてこのフローに移る。そして、ジョブテーブルにジョブがなければまたアイドル状態になる。▲2▼通信プログラム83からのイベントがあった時。▲3▼PDLインタープリタープログラム84,スキャナ制御プログラム85から、ページ終了のイベントまたはドキュメント終了のイベントがあった時。▲4▼デバイスドライバ86からエラー等のイベントがあった時。
【0324】
先ず、ステップ(1) において、図41に示すジョブテーブルを参照する。次いで、ステップ(2) においてジョブがあるかどうかの判断をする。実行すべきジョブがない時にはステップ(7) に移り、システム全体制御プログラム93はアイドル状態になる。実行すべきジョブがある場合にはステップ(3) で実行可能なジョブの候補を幾つか選び、ステップ(4) で候補に上がったジョブの優先順位を見て一つのジョブに絞る。さらに、ステップ(5) でその絞り込まれたジョブが使用するインタフェースが空いているかを判断する。ステップ(6) で実際にジョブを実行し、処理を終了する。
【0325】
以下、図43に示すフローチャートを参照しながら本発明に係るサーバー装置におけるステータスチェック処理動作について説明する。
【0326】
図43は本発明に係るサーバー装置におけるステータスチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(14)は各ステップを示す。
【0327】
先ず、ステップ(1) でジョブテーブルから一つのジョブのステータスを読みとる。ステップ(2) でジョブのステータスがRUNかどうかを判断し、RUNならばステップ(14)に移りジョブテーブルのジョブをすべて読みとったかを判断する。もし、まだジョブが残っていればステップ(1) で次のジョブのステータスを読みに行く。RUNでなければステップ(3) に移る。ステップ(3) ではジョブのステータスがWAITかどうかの判断をする。WAITならばステップ(4) で実行可能なジョブの候補としてピックアップする。そしてステップ(14)に移る。WAITでない場合には、ステップ(5) に移り今度はステータスがESTOPかどうかの判断をする。もし、このジョブのステータスがESOPならば、エラーを起こして中断しているので、ステップ(6) でこのジョブを中断した原因のエラーが回復しているかどうかのチェックを行なう。ステップ(7) はエラー中か、そうでないかの判断の分岐になる。まだエラーの場合には実行可能なジョブの候補にはピックアップせずにステップ(14)に移る。エラーが回復している場合には、そのジョブのステータスをESTOPからWAITにジョブテーブルを書き換える。そしてステップ(9) で実行可能なジョブの候補としてピックアップする。またステップ(5) でステータスがESTOPではないと判断された場合には、他のジョブに割り込まれて中断しているSTOPの状態なので、ステップ(10)で割り込んだジョブのステータスをチェックする。ステップ(11)では割り込んだジョブが実行中かどうかの判断をする。実行中ならば実行可能なジョブの候補にはピックアップせずにステップ(14)に移る。もし、実行中でなければステップ(12)に移り、そのジョブのステータスをSTOPからWAITにジョブテーブルを書き換える。そして、ステップ(13)で実行可能なジョブとしてピックアップする。最後に、すべてのジョブをジョブテーブルから読み終ったら(14)、ステータスのチェックは終了する。このようにして実行可能なジョブの候補が複数選ばれる。
【0328】
以下、図44に示すフローチャートを参照しながら本発明に係るサーバー装置における優先順位チェック処理動作について説明する。
【0329】
図44は本発明に係るサーバー装置における優先順位チェック処理手順の一例を示すフローチャートである。なお、(1) 〜(11)は各ステップを示す。また、本実施例では候補に上がったジョブの優先順位を見て実行するジョブを一つに絞るということをする。
【0330】
ステップ(1) で実行可能なジョブの候補としてあげられた複数のジョブの内一つに対してその優先順位をリードする。ステップ(2) でLEVEL2かどうかの判断をする。LEVEL2ならばステップ(3) に移りLEVEL2のジョブが存在するかどうかを表すフラグFLG2を立てる。LEVEL2でなければステップ(4) に移り今度はLEVEL1であるかの判断をする。LEVEL1ならばステップ(5) に移りLEVEL1のジョブが存在するかどうかを表すフラグFLG1を立てる。もしLEVEL1でもないと判断された場合には、LEVEL0になる。すなわちFLG2もFLG1も立っていない場合にはLEVEL0になる。
【0331】
一つのジョブの優先順位の判断が終るとステップ(6) に移り候補に上がったジョブをすべて調べたかどうかを判断する。まだすべて調べ終ってない時にはステップ(1) に戻り、次のジョブの判断に移り、調べ終った場合にはステップ(7) に移る。フラグFLG2が立っている時にはステップ(8) に移り、優先順位がLEVEL2でジョブのIDが小さい(早くジョブのリクエストを受け付けたもの)ジョブを選択する。
【0332】
同様に、ステップ(9) ,(10)では優先順位がLEVEL1でジョブのIDが小さいジョブを選択する。ステップ(11)では優先順位がLEVEL0でIDの小さいジョブが選択され、優先順位のチェックが終了する。
【0333】
このようにして次に起動可能なジョブを一つに絞る。起動可能なジョブが決定しても、インタフェースの状態により実際に起動できるかどうかが決まってくるのでジョブとインタフェースの関係を調べなくてはならない。
【0334】
以下、図45に示すフローチャートを参照しながら本発明に係るサーバー装置におけるインタフェースチェック処理動作について説明する。
【0335】
図45は本発明に係るサーバー装置におけるインタフェースチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【0336】
先ず、ステップ(1) において、一つに絞られたジョブのインタフェースをジョブテーブルからリードする。ステップ(2) でそのインタフェースの状態をチェックする。使用中でなければステップ(5) に移りそのジョブを実行ジョブテーブルに登録する。実行ジョブテーブルは、実際に起動するジョブを表すテーブルでマルチでジョブを走らせることが出来るので複数のジョブが登録可能である。
【0337】
ステップ(6) のジョブ処理ではこの実行ジョブテーブルを参照してジョブを起動する。
【0338】
インタフェースが使用中の場合にはステップ(3) に移りジョブの優先順位をチェックする。LEVEL2でなければ、現在のジョブを中断させることは出来ないので実行ジョブテーブルに登録することはしないで、処理を終了する。 また、ステップ(3) でLEVEL2の時には、ステップ(4) で現在ステータスがRUNのジョブがLEVEL2であるかの判断をする。もしRUNのジョブがLEVEL 2であるならば中断させることは出来ないので、選択されたジョブは実行ジョブテーブルに登録せずに、処理を終了する。
【0339】
一方、現在実行中のジョブ(ステータスがRUN)の優先順位がLEVEL1またはLEVEL0の場合には現在実行中のジョブを中断させて新たに選択されたジョブを起動させる。その場合、ステップ(6) に移り、ステップ(4) で選択されたジョブを実行ジョブテーブルに登録する。ステップ(7) で現在実行中のジョブのステータスをSTOPにして、さらに優先順位をLEVEL2にする。これは、ジョブが復帰した時に優先して実行されるようにするためである。
【0340】
ステップ(8) で現在実行中のジョブが何ページまで処理したかを記録しておくために終了ページ数をジョブテーブルに書き込む。さらにステップ(9) で現在実行中のジョブを実行ジョブテーブルから削除する。これで、現在実行中のジョブが起動されることはなく、ステータスもSTOPになり再度ジョブが起動されるのを待機することになる。このようにしてインタフェースチェック処理を終了する。
【0341】
以下、図46に示すフローチャートを参照しながら本発明に係るサーバー装置におけるジョブ起動処理動作について説明する。
【0342】
図46は本発明に係るサーバー装置におけるジョブ起動処理手順の一例を示すフローチャートである。なお、(1) 〜(4) は各ステップを示す。
【0343】
先ず、ステップ(1) において、実行ジョブテーブルを参照して起動すべきジョブをリードする。ステップ(2) でこれから起動するジョブがステータスESTOPでエラーストップしているジョブの種類と同じかどうかをチェックする。もし同じであれば、起動することは出来ないのでステップ(4) に移り。実行ジョブテーブルをすべて読んだかを判断する。もしまだ残っていればステップ(1) に移り次のジョブの起動処理をする。もしエラーストップしているジョブの種類と違っていれば実行可能なので、ステップ(3) に移りジョブの起動に移る。実際のジョブを起動する時は、ステータスをWAITからRUNに替え、インタフェースを確保する。逆にエラーストップ、または割り込みで中断する時には、インターフェースを解放する。
【0344】
ステップ(4) で実行ジョブテーブルにジョブが残っているかを判断して、もう起動すべきジョブが残っていなければ、ジョブ起動処理を終了する。
【0345】
以下、図47〜図57を参照しながら本発明に係るサーバー装置における具体的ジョブ処理動作について説明する。
【0346】
図47は本発明に係るサーバー装置におけるジョブ処理状態推移を示すタイミングチャートである。なお、図中の横軸右方向に時間が流れていくものとする。
図において、801〜813はジョブテーブルをチェックするタイミングを示し、タイミング800〜803は通信プログラム83からジョブのイベントがシステム全体制御プログラム93に入るタイミングに対応し、タイミング804〜813はジョブテーブルをチェックするタイミングに対応する。
【0347】
図48〜図57は本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図であり、図48〜図57はタイミング804〜タイミング813におけるジョブテーブルに対応する。なお、ジョブテーブルはチェック直前の内容を示している。また、ジョブはカラーレーザ複写装置(CLC)のプリンタからドキュメントを出力するCLCP、カラーレーザ複写装置(CLC)のスキャナから原稿を読みとるCLCS、バブルジェットカラー複写装置のプリンタにドキュメントを出力するBJP、バブルジェットカラー複写装置のスキャナから原稿を読みとるBJS、市販のページ記述言語のインタプリタを内蔵するプリンタに出力するPDLP、市販のビットマッププリンタにドキュメントを出力するBITP、市販のスキャナから原稿を読みとる等のジョブがある。
【0348】
タイミング800で、ジョブのイベントが入ってくる。内容はカラーレーザ複写装置(CLC)のプリンタにドキュメントを出力するジョブ1(内容はCLCP)で、出力ページ数は3ページ、優先順位はLEVEL0、インタフェースにはBMEMを用いるというものである。ジョブテーブルJOBTを見てみると、図48に示すようにIDに「25」が割り当てられ、ステータスはWAIT、終了ページはまだこのジョブは処理されていないので0ページになっている。
【0349】
タイミング804のジョブテーブルチェックでは、ID25のジョブが選択され、起動される。この時ID25のジョブのステータスをRUNに変更する。
801のタイミングで新たなジョブが入ってくる。ジョブID25のジョブの1ページの処理が終了するとシステム全体制御プログラム93は再度ジョブテーブルを見に行く。その時のジョブテーブルJOBTは図49に示される。ID25のジョブは1ページの出力が終了して、次ページが処理されるのを待っている状態である。終了ページは0ページから1ページに変化している。また、新たに入ったジョブはID26が割り当てられ、ステータスはWAIT、優先順位はLEVEL1、インタフェースはBMEM、ジョブはBJPになっている。システム全体制御プログラム93はこのジョブテーブルJOBTから判断して、ID25のジョブの2ページ目の処理を起動する。
【0350】
この時、2ページめの途中でプリンタに紙ジャムが発生してしまいID25のジョブを続けられなくなってしまった。システム全体制御プログラム93はジョブテーブルJOBTを参照して次に起動すべきジョブを探す。その時のジョブテーブルJOBTは図50のようになっている。ID25のステータスはESTOPになり、優先順位は復帰した時に優先的に実行させるためにLEVEL2、終了ページは1ページのままになっている。そこで、システム全体制御プログラム93はID26のジョブを起動する。ID26のジョブが1ページの処理を終了すると、システム全体制御プログラム93はジョブテーブルJOBTチェック807に移る。この時の状態は図51に示される。ID25のジョブははエラーチェックをしてもエラーが回復していないので起動されることはない。そこで、システム全体制御プログラム93はID26のジョブの2ページ目を処理することをPDLインタープリタープログラム84に対して要求する。
【0351】
ID26のジョブが2ページ目を処理している最中に新たなジョブのイベントがシステム全体制御プログラム93に入ってくる。内容は、バブルジェットカラー複写装置のスキャナから2ページ分の原稿を読み取るものである。ID26のジョブが2ページ目の処理を終了すると、システム全体制御プログラム93はジョブテーブルJOBTをチェックする。その時のジョブテーブルJOBTが図52である。
【0352】
ID25はエラーが回復していないのでそのままの状態である。ID26のジョブは2ページの処理が終了したので、終了ページは2に変化している。さらに新しいジョブがID27に割り当てられている。ID27のジョブは優先順位がLEVEL2であるので、システム全体制御プログラム93は現在処理中のID26のジョブを中断させてID27のジョブを起動する。ID26のジョブはステータスがSTOPに、優先順位がLEVEL2になる。
【0353】
スキャナ制御プログラム85が1ページの原稿読み込みしている最中に、システム全体制御プログラム93には新たなジョブのイベントがタイミング803で入ってくる。1ページの読み込みが終了すると、システム全体制御プログラム93はタイミング809でジョブテーブルJOBTをチェックする。この時のジョブテーブルJOBTは図53のようになる。ID25のジョブはエラーが回復していないのでESTOPのままである。また、ID26はステータスがSTOPで、割り込みジョブIDが27であるので、ID27のジョブをチェックするとステータスはRUNのままなので再開することは出来ない。新たに入ってきたジョブはID28が割り当てられる。ID28のジョブはセントロニクスインタフェースを通して市販のプリンタにデータを流すジョブで、現在起動されているジョブと同時に走らせることが出来る。そこで、システム全体制御プログラム93はID28のジョブとID27の2ページ目をスキャンするジョブを同時に起動する。
【0354】
次にシステム全体制御プログラム93はジョブテーブルJOBTチェック(タイミング810)に移る。この時のジョブテーブルJOBTは図54に示される。ジョブテーブルJOBTチェック(タイミング810)の前にジョブID25のエラーが解除されているので、エラーチェック後ステータスはWAITに戻る。
【0355】
また、ID26のジョブも、割り込んだID27のジョブが終了したのでステータスがWAITに戻る。ID28のジョブはRUNの状態のままである。システム全体制御プログラム93はインタフェースBMEMが空いているのでID25またはID26のジョブを起動させる。どちらのジョブともステータスはWAITで、優先順位もLEVEL2と状態は同じであるので先に受け付けたID25のジョブを起動する。この時、ID25のジョブは終了ページが1ページであるので2ページ目から処理するようにPDLインタープリタープログラム84に要求を出さなければならない。
【0356】
ジョブテーブルJOBTチェック(タイミング811)では図55に従う。ID25とID28のジョブはステータスがRUNでID26はWAITである。ID26のジョブは優先順位がLEVEL2で、現在起動中のジョブに対して割り込むことが出来るがID25もLEVEL2で起動されたので、この場合には割り込むことは出来ない。
【0357】
ジョブテーブルJOBTチェック(タイミング812)に移る。ジョブテーブルJOBTは図56に示される。ID25のジョブはすでに終了してジョブテーブルJOBTから削除されている。そこで、システム全体制御プログラム93はID26のジョブを3ページ目から起動する。
【0358】
ジョブテーブルJOBTチェック(タイミング813)では、図57に示すようにID28のジョブが走っている状態なので、新たにシステム全体制御プログラム93はジョブを起動することはしない。
【0359】
以上のように、システム全体制御プログラム93はジョブテーブルJOBTを参照しながら最適にジョブ管理を行なう。
【0360】
なお、上記実施例では文字,図形,イメージがホストコンピュータで編集された後、ネットッワークを介して通信されたプリント要求をスキャナ/プリンタをドライブするサーバー装置上で処理して、当該プリンタから出力する場合について説明したが、図58に示すように、クライアントホストコンピュータ901,902,スキャナプリンタ904をドライブするSPサーバー装置903がネットワーク905を介して接続されるシステムにおいて、クライアントホストコンピュータ901,902から転送された文字,図形の各情報とスキャナプリンタ904のスキャナから入力されたイメージとをSPサーバー装置903が合成編集することにより、合体出力させるように構成しても良い。
【0361】
図58は本発明の第2の実施例を示すサーバー装置の構成を説明するブロック図である。
【0362】
図において、906は記憶装置で、SPサーバー装置903内に設けられ、クライアントホストコンピュータ901,902から転送された文字,図形の各情報を蓄える。
【0363】
このように構成されたサーバー装置において、本体またはネットワーク上に設けた記憶手段(記憶装置906)に画像処理装置から出力される第1の画像情報または所定のネットワークに接続される各ホストコンピュータから転送される第2の画像情報を記憶させることにより、各ホストコンピュータからの画像情報出力処理負担を軽減させるとともに、記憶した画像情報を効率よく再利用させる。
【0364】
また、記憶手段(記憶装置906)に記憶された第1および第2の画像情報を画像合成手段が合成しながら出力画像を生成して画像処理装置(本実施例ではスキャナプリンタ904)に出力することにより、各ホストコンピュータ上での画像編集負担を軽減させる。
【0365】
なお、本実施例においては、クライアントホストコンピュータ901,902上では、例えばワードプロセッサ,グラフィックソフトにより、オペレータが文字情報,図形情報の生成を行う。生成された文字,図形情報等(第1の画像情報)は、ネットワーク905を経由して、SPサーバー装置903に送られる。SPサーバー装置903で受け取った文字,図形情報は、SPサーバー装置903内の記憶装置906に記憶される。
【0366】
一方、スキャナプリンタ904でスキャンされた画像情報(第2の画像情報)も、SPサーバー装置903内の記憶装置906に記憶される。SPサーバー装置903上で動作しているページ記述言語により、SPサーバー装置903の記憶装置906内で文字情報,図形情報,画像情報(イメージデータ)が、図59に示すように合成される。
【0367】
なお、SPサーバー装置903は、指定されたクライアントホストコンピュータ901,902からの命令に応じて接続される複数のスキャナプリンタ904のスキャナに関する読取り特性、あるいは単独で接続される画像入力装置(スキャナ)に関する読取り特性、例えばカラー/モノクロ何れであるかを示す特性データをネットワーク905を介して指定されたクライアントホストコンピュータに転送し、ホスト側が接続される画像読取り装置の読取り特性を認識することが可能となる。
【0368】
図59は、図58に示したSPサーバー装置903により合成される印刷レアウトを示す模式図である。
【0369】
図において、911は1ページの領域を示し、この領域911内に、クライアントホストコンピュータ901,902からネットワーク905を介して転送された文字,図形等の転送情報912およびSPサーバー装置903が制御するスキャナプリンタ904でスキャンされた画像情報913がレイアウト情報に従って割付けられる。このように合成された情報がSPサーバー装置903のプリンタから出力させることも可能となる。
【0370】
なお、上記SPサーバー装置903に制御されるスキャナプリンタ904は、スキャナとプリンタとが独立した単体構成であっても良い。また、SPサーバー装置903に別の大容量記憶装置、例えば光磁気ディスク装置を接続した場合、スキャナプリンタ904のスキャナで読み取った画像情報をその都度SPサーバー装置903内の記憶装置906に読み込み、クライアントホストコンピュータ901,902から転送された文字,図形情報とを合成して印刷するのではなく、スキャン画像を上記大容量記憶装置内に順次記憶させて行くことにより、画像データベースを構築することで、任意に大容量の記憶装置内から画像を取り出し、その画像を文字,図形情報と合成しながら印刷させることもできる。さらに、上記大容量の記憶装置をSPサーバー装置903の記憶装置906と別に設ける際、当該大容量の記憶装置とSPサーバー装置903とが直接接続されていなくても良く、例えばネットワーク905に接続されるクライアントホストコンピュータ901,902に配置され、これらのクライアントホストコンピュータ901,902がSPサーバー装置903に転送できる構成であれば良い。
【0371】
以下、図60,図61を参照しながら本発明に係るサーバー装置における入出力制御動作について説明する。
【0372】
図60は本発明に係るサーバー装置における第1の入出力制御手順の一例を示すフローチャートである。なお、(1) 〜(20)は各ステップを示し、特に各ホストコンピュータからのPDLデータを指定されたプリンタから出力する場合に対応し、かつ、各ステップは図9に示したCPU1000がROM1002に記憶された後述するプログラムに基づいている。
【0373】
CPU1000はLAN96に接続されるいずれかのホストコンピュータよりプリントコマンドを受信すると(1) 、受信したPDLデータをバッファメモリ1005に一旦格納し(2) 、格納したPDLデータに従ってプリント条件を解析する(3) 。次いで、プリント対象がホストコンピュータからのPDLデータのみか、それともPDLデータおよびスキャナから取り込んだイメージデータの合成かを判定し(4) 、スキャナデータの合成の場合には、接続されたスキャナとのインタフェースを介してスキャナ使用可能状態かどうかを判定し(5) 、NOならばホストコンピュータにその旨を通知し(7) 、次の命令を受信したら(8) 、リターンし、YESならばスキャンを開始し(6) 、原稿読み取りを終了したら(9) 、編集指定がある場合には、読み取り原稿に対して例えばトリミング,マスキング,色変換等を施して(10)、編集が終了したら(11)、ホストコンピュータから入力されたプリントデータPD1との合成が指示されているかどうかを判定し(12)、NOならばステップ(19)に進み、指定されたプリンタでのプリント処理を開始し(19)、プリントが終了したら、プリント処理をすべて終了したかどうかを判定し(20)、YESならばリターンし、NOならば(1) に戻り、各処理を繰り返す。
【0374】
一方、ステップ(12)の判定でNOならば、指定されたプリンタが使用可能かどうかを判定し(13)、NOならばステップ(7) に戻りホストコンピュータにその状態を通知し、YESならば他のホストコンピュータからのプリンタデータPD2との合成が指示されているかどうかを判定し(14)、YESならばステップ(1) に戻り、NOならば1ページ分のPDL解析を終了するのを待機し(15)、PDLをビットマップに変換(本実施例ではバンド単位に行う)し(16)、編集指示があるかどうかを判定し(17)、YESならば既に読み込まれたスキャンデータSDとプリンタデータPDとを編集し(18)、指定されたプリンタによるプリントを開始し(19)、1ページ分のプリントデータPDを出力し終えたかどうかを判定し(20)、NOならばステップ(1) に戻り、YESならばリターンする。
【0375】
なお、上記実施例ではスキャナから取り込んだスキャンデータSDまたはホストコンピュータから受信したプリントデータPDの何れか、もしくはこれらの組み合わせデータ(スキャナデータSD+プリントデータPD)を指定されたプリンタから出力する場合の制御について説明したが、スキャナ,プリンタが複数台存在する場合には、さらに複合された出力データ(例えば(スキャナデータSD1+スキャナデータSD2,プリントデータPD1+プリントデータPD2,スキャナデータSD1+プリントデータPD1+プリントデータPD2等)を指定されたプリンタから出力することも容易に可能となる。
【0376】
図61は本発明に係るサーバー装置における第2の入出力制御手順の一例を示すフローチャートである。なお、(1) 〜(15)は各ステップを示し、特に各ホストコンピュータからの指定に従って指定されたスキャナから取り込んだ画像情報(スキャナデータSDを指定されたホストコンピュータに出力する場合に対応し、かつ、各ステップは図9に示したCPU1000がROM1002に記憶された後述する各プログラムに基づいている。
【0377】
先ず、CPU1000はLAN96に接続されるいずれかのホストコンピュータよりスキャナコマンドを受信すると(1) 、当該ホスト名を解析し(2) 、返信ホストが指定されているかどうかを判定し(3) 、YESならばマルチ返信ホスト名テーブルに指定された複数のホスト名(スキャナコマンドを入力したホストコンピュータ、すなわち自ホスト名を含む)を登録し(5) 、NOならば返信ホスト名テーブルに自ホスト名を登録する(4) 。次いで、スキャナ指定先を解析し(5) 、指定されたスキャナが使用可能な状態であるかどうかをインタフェースを介して調べ(7) 、使用不能(電源が入力されていない等)である場合には、そのスキャナ状態をホストコンピュータに通知し(8) 、次の命令入力待ちとなり(9) 、命令が入力されたらリターンする。
【0378】
一方、ステップ(7) の判定で指定されたスキャナが使用可能であれば、原稿のスキャンを開始し(10)、スキャン終了したら(11)、スキャンデータをPDLに変換し(12)、各ホストコンピュータとのネットワーク状態を確認後、ステップ(4) ,(5) で登録された各テーブルを参照して、変換したPDLデータをLAN96を介して送信し(14)、指定されたホストコンピュータから正常応答が通知されるのを待機し(15)、通知後、処理を終了する。
【0379】
なお、上記実施例ではスキャナデータSDの転送先として指定されたホストコンピュータが通信可能状態であることを前提としている場合について説明したが、指定されたホストコンピュータに装着されるネットワークボード(図示しない各ホストコンピュータ毎に仕様が異なる)が外部記憶手段をドライブできる環境であれば、当該外部記憶手段にスプール用に構成し、ホストコンピュータ立ち上げ時に当該スキャンデータの受領有無を報知するように構成してもいいし、指定されたホストコンピュータとの通信が可能となるまで、CPUボード部側に接続されるハードディスク等に一時蓄積しておいて、ホストコンピュータとの通信が可能となった時点で、上記各テーブルを参照して指定されたホストコンピュータに取り込んだスキャナデータSDを転送するように制御しても良い。また、転送するスキャナデータSDとして、複数のスキャナを制御できる場合には、それぞれのスキャナからのスキャナデータSD1,SD2,…,SDNをそれぞれ指定されたホストコンピュータに転送するように制御しても良い。これにより、スキャナ要求を発行したホストコンピュータ上のアプリケーションでは処理できないような画像情報(例えばカラー画像情報)、もしくは処理可能であるが処理速度が非常に遅い場合等には、転送先を自在に変更して、対応可能な各ホストコンピュータが備える種々のアプリケーションでの処理が容易に可能となる。
【0380】
図62はこの発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【0381】
図において、2001はネットワークで、異なるOSで管理されるワークステーション(サンワークステーション)2002,ワークステーション(マッキントッシュステーション)2007,ワークステーション(IBMPC)2012が接続されるとともに、リアルタイムOS(例えばVxWORKS)で管理されるサーバー装置(カラースキャナ/プリンタサーバー装置)NWSが接続され、サーバー装置にはスキャナ/プリンタとしてカラーレーザー複写装置2023,カラーバブルジェット複写装置2024が所定のインタフェースを介して接続されている。なお、インタフェースとしてはセントロニクス,RS232C等を備えていても良い。
【0382】
2003はワークステーション2002上で起動するアプリケーションプログラム(本実施例ではフレームメーカー)、2004はアプリケーションプログラム2003がサポートとする周辺機器インタフェース、2005は変換プログラムで、前記周辺機器インタフェース2004から出力される標準インタフェースから文字,グラフィックス部分(第1のカラー画像情報)を、第2のカラー画像情報(本実施例では上述したページ記述言語CaPSL)に置換し、画像データ部分はJPEG符号化する。すなわち、フレームメーカーのデータを基本的にはページ記述言語CaPSLを基本とするデータに変換して伝送している。2006は通信プログラムで、ネットワーク2001と第2のカラー画像情報との通信処理を行う。従って、ネットワーク2001に流れるデータは文字部とグラフィックス部はページ記述言語CaPSLのコードで伝送され、画像部分はJPEG符号で伝送される。
【0383】
一方、ワークステーション2007をホストコンピュータする場合には、通常のアプリケーションプログラム2008から周辺機器に標準インタフェースとしてクイックドロー2009で出力される第1のカラー画像情報を、変換プログラム2010が上記同様にクイックドローのフォーマット形式のデータ中の、文字グラフィック部分を第2のカラー画像情報(本実施例では上述したページ記述言語CaPSL)に置換し、画像データ部分はJPEG符号化する。2011は通信プログラムで、ネットワーク2001と第2のカラー画像情報との通信処理を行う。従って、ネットワーク2001に流れるデータは文字部とグラフィックス部はページ記述言語CaPSLのコードで伝送され、画像部分はJPEG符号で伝送される。
【0384】
一方、ワークステーション2012をホストコンピュータとする場合には、通常のアプリケーションプログラム2013(ウインドウズ(WINDOWS)3.0以降)から周辺機器に標準インタフェースとしてGDI2014で出力される第1のカラー画像情報を、変換プログラム2015が上記同様にGDIフォーマット形式のデータ中の、文字グラフィック部分を第2のカラー画像情報(本実施例では上述したページ記述言語CaPSL)に置換し、画像データ部分はJPEG符号化する。2016は通信プログラムで、ネットワーク2001と第2のカラー画像情報との通信処理を行う。従って、ネットワーク2001に流れるデータは文字部とグラフィックス部はページ記述言語CaPSLのコードで伝送され、画像部分はJPEG符号で伝送される。以上のように、本発明に係る第2のサーバー装置の画像処理方法によれば、各ホストからの画像入出力指示に従って編集または読み取った第1のカラー画像情報を所定のページ記述コマンドに従う第2のカラー画像情報に変換し、該変換された第2のカラー画像情報を所定のネットワークを介して各入出力機器と各ホストとの間で相互に通信し、該通信により受信した第2のカラー画像情報を解析して、各入出力機器または各ホストに従う固有の第1のカラー画像情報に整合変換するので、各ホストのカラー画像処理形式および各入出力機器のデータ形式が異なっていても、1つのPDLインタープリタープログラム84で共通に処理することが可能となる。
【0385】
このように、OSが異なるワークステーション2002,2007,2011がネットワーク2001に接続されていても、ネットワーク2001上で通信されるデータ形式は統一されているために、受信側のカラーネットワークサーバーNWSでに統一的にインタプリトすることができる。従って、カラーネットワークサーバーNWSを異なるOS環境のワークステーションから共通にアクセスできる統合環境を安価に構築可能となる。以下、カラーネットワークサーバーNWS側の画像処理動作について説明する。
【0386】
図62において、2017はカラーネットワークサーバーNWS全体を制御するプログラムであるリアルタイムOS、2018は前記ネットワーク2001と通信するための通信プログラムで、ネットワーク2001上のデータを送受信する。2020は変換プログラムで、受信した第2のカラー画像情報(コードデータまたは圧縮画像データ)を可視化する部分で、コードデータをドットの可視化データに変換するとともに、スキャナから取り込まれたイメージデータ(第1の画像情報)を通信用のカラー画像情報に変換する。
【0387】
なお、可視化画像データを電子写真プロセスを実行する記録装置に出力する場合にデータ量を削減するため、JPEGの圧縮処理を実行し、圧縮メモリCMEMに記憶させる。電子写真方式で画像記録を行う場合には、圧縮されたデータを伸長処理しながら電子写真プロセスにより画像記録を行う(例えばカラーレーザー複写装置2023による記録処理実行時)。
【0388】
一方、例えばカラーバブルジェット複写装置2024等の記録装置の場合には、電子写真プロセスを実行する記録装置に比べて、比較的記録処理速度が遅く、可変記録となるので大きなバッファメモリを必要とせず、JPEGの圧縮処理も不要となる。このため、カラーバブルジェット複写装置2024指定時には、圧縮メモリCMEMに対して非圧縮状態で記録画像データを格納する。
【0389】
2021は入出力インタフェース切換え部で、インタフェース部2022を切り換え制御する。なお、本実施例では、セントロニクスを介して標準のカラープリンタを制御し、専用のCLCインタフェースを介してカラーレーザー複写装置2023を制御し、専用のG08インタフェースを介してカラーバブルジェット複写装置2024を制御する構成となっている。
【0390】
一方、カラーバブルジェット複写装置2024またはカラーレーザー複写装置2023のカラースキャナから画像を取り込んで、各ワークステーションに転送する場合には、各ワークステーションから走査範囲を指定し、スキャナの起動を開始する。読み取られた画像データは、圧縮部(JPEG)で標準JPEGの圧縮データに変換され、スキャナ制御部(SCAN),通信プログラム2018を通じネットワーク2001を介してワークステーション側に伝送される。
【0391】
このように、本実施例では各ワークステーション2001,2007,2012およびカラーネットワークサーバーNWSで固有の第1のカラー画像情報をそれぞれ変換プログラム2005,2010,2015,2020共通である所定のページ記述コマンドに従う第2のカラー画像情報に変換し、該変換された第2のカラー画像情報を前記所定のネットワークを介してカラーネットワークサーバーNWSと各ホストとの間で相互に通信し、該通信により受信した第2のカラー画像情報を変換プログラム2005,2010,2015,2020が解析して、各入出力機器または各ワークステーション2001,2007,2012に従う固有の前記第1のカラー画像情報に整合変換するので、各ワークステーション2001,2007,2012のカラー画像処理形式および各入出力機器(カラーバブルジェット複写装置2024,カラーレーザー複写装置2023)のデータ形式が異なっていても各ホストマシンおよびカラーネットワークサーバーは1つのインタプリタで共通に処理することが可能となる。
【0392】
なお、図38に示したように、本実施例のカラーネットワークサーバーNWS全体はリアルタイムOS2017により通信および画像処理が制御されているため、複数のワークステーションからのスキャンジョブまたはプリントジョブを同時に複数指定することができ、指定した複数のジョブを並列処理し、例えばカラーバブルジェット複写装置2024,カラープリンタを制御し、専用のCLCインタフェースを介してカラーレーザー複写装置2023によるマルチプリント動作を可能としている。
【0393】
このように、本発明に係るサーバー装置の画像処理方法によれば、各異機種ホストコンピュータ(各ワークステーション2001,2007,2012)からの各画像入出力指示に従って各入出力機器のプリントジョブまたはスキャナジョブの並列処理順序を入力された優先順位に基づいて制御するので、各ホストコンピュータからの画像入出力処理順序を自在に管理することが可能となる。
【0394】
図63はこの発明の一実施例を示すサーバー装置のネットワーク接続状態を示す図である。
【0395】
図において、2101−1,2101−2はホストコンピュータで、画像処理アプリケーションプログラムを実行する。2102はスキャナ/プリンタサーバー装置(SPサーバー装置)で、イーサネット(ゼロックス社の登録商標)等のネットワーク96に接続されるホストコンピュータ2101−1,2101−2からの画像出力要求/画像入力要求に応じて、カラープリンタ2103およびカラースキャナ2104の駆動を制御する。なお、スキャナ/プリンタサーバー装置2102には、図9に示したボード回路1を備えており、あらかじめネットワーク管理者がスキャナ/プリンタサーバー装置2102の利用を許可するユーザ名と、そのユーザのためのパスワードをハードディスク1008に登録してあるものとする。また、ユーザに与えるパスワード毎に、スキャナ/プリンタサーバー装置2102に接続されている使用許可マシン、すなわちカラープリンタ2103およびカラースキャナ2104の使用環境を追加,変更,修正を行うことができる。
【0396】
このように構成されたサーバー装置によれば、あらかじめ登録された第1のパスワードとネットワークに接続される各ホストから入力された第2のパスワードとを比較照合して、各ホストから要求される入出力機器におけるスキャナ機能処理実行およびプリント機能処理実行を禁止または許可するので、特定グループからのスキャナ機能処理実行およびプリント機能処理実行を優先実行させることが可能となる。
【0397】
以下、スキャナ/プリンタサーバー装置(S/Pサーバー装置)に係るパスワードによるカラープリンタ2103およびカラースキャナ2104の使用許諾制御動作について説明する。
【0398】
ホストコンピュータ2101−1でDTPソフト(アプリケーションプログラム)を用いて画像データを作成して出力する際に、ホストコンピュータ2101−1でプリンタ要求をS/Pサーバー装置2102に送出すると、S/Pサーバー装置2102は、プリント要求したホストコンピュータ201−1にネットワーク96を介してパスワードを問い合わせる。ユーザは、ホストコンピュータ2101−1のキーボード等からS/Pサーバー装置2102に対してパスワードを返信する。これに応じて、S/Pサーバー装置2102は、はハードディスク1008に登録されたパスワードテーブルに返信されたパスワードが登録されているものと一致したかどうかを判定し、不一致の場合は、S/Pサーバー装置2102はホストコンピュータ2101−1にエラー信号を返信する。これにより、特定のグループとしてパスワード登録されていないユーザは、カラープリンタ2103の使用することが制限される。
【0399】
一方、ホストコンピュータ2101−1から返信されたパスワードがハードディスク1008に登録されたパスワードテーブルに登録されているパスワードと一致する場合は、S/Pサーバー装置2102は、当該ユーザがプリント可能なプリンタ名を含むプリンタ情報をホストコンピュータ2101−1に返信する。そして、ユーザがホストコンピュータ2101−1で、例えばカラープリンタ2103を選択し、プリント開始命令を送出すると、S/Pサーバー装置2102は、ホストコンピュータ2101−1から送出されてきたプリントコマンドを解析し、指定されたカラープリンタ2103を初期設定して出力する。
【0400】
同様に、ホストコンピュータ2101−1でスキャナソフト(アプリケーションプログラム)を用いて画像の取り込みを行う際に、ホストコンピュータ2101−1でスキャン要求をS/Pサーバー装置2102に送出すると、SPサーバー2102は、スキャン要求したホストコンピュータ2101−1にネットワーク96を介してパスワードを問い合わせる。ユーザは、ホストコンピュータ2101−1のキーボード等からS/Pサーバー装置2102に対してパスワードを返信する。これに応じて、S/Pサーバー装置2102は、はハードディスク1008に登録されたパスワードテーブルに返信されたパスワードが登録されているものと一致したかどうかを判定し、不一致の場合は、S/Pサーバー装置2102はホストコンピュータ2101−1にエラー信号を返信する。これにより、特定のグループとしてパスワード登録されていないユーザは、カラースキャナ2104を使用することが制限される。
【0401】
一方、ホストコンピュータ2101−1から返信されたパスワードがハードディスク1008に登録されたパスワードテーブルに登録されているパスワードと一致する場合は、S/Pサーバー装置2102は、当該ユーザがプリント可能なプリンタ名を含むプリンタ情報をホストコンピュータ2101−1に返信する。そして、ホストコンピュータ2101−1のユーザが、カラースキャナ2104を選択してスキャン開始命令を送出すると、S/Pサーバー装置2102はホストコンピュータ2101−1から送出されたスキャンコマンドを解析して、指定されたカラースキャナ2104を初期設定して画像を取り込む。
【0402】
なお、ホストマシンがワークステーション等のユーザ名とパスワードを入力してログインするタイプのマシンの場合は、S/Pサーバー装置2102にユーザ名を登録することで上記パスワード登録と同等に機能させることができるため、S/Pサーバー装置2102を使用する際のパスワードの入力操作を軽減するユーザグレープを特定するように構成しても良い。以下、この場合について詳述する。
【0403】
ホストコンピュータ2101−1,2101−2で、例えばDTPソフト(アプリケーションプログラム)を用いて画像データを作り、当該画像データを出力する際、ホストコンピュータ2101−1,2101−2のうち、ホストコンピュータ2101−1でプリント要求をS/Pサーバー装置2102に送出すると、S/Pサーバー装置2102は、プリント要求したホストコンピュータ2101−1は、プリント要求したホストコンピュータ2101−1にネットワーク96を介してホストマシンを使用しているユーザ名を問い合わせる。ホストコンピュータ2010−1はログインするときに、入力されたユーザ名をS/Pサーバー装置2102に返信する。S/Pサーバー装置2102は、登録されていないユーザ名が送られてきた時は、S/Pサーバー装置2102はホストコンピュータ2101−1にエラー信号を返信し、S/Pサーバー装置2102をユーザは使用することができなくなる。
【0404】
一方、S/Pサーバー装置2102は、登録されているユーザ名が送られてきた時は、S/Pサーバー装置2102はこのユーザがプリント可能なプリンタ名をホストコンピュータ2101−1に返信する。ユーザがホストコンピュータ2101でカラープリンタ2103を選択し、プリント介し命令を送出すると、S/Pサーバー装置2102は、ホストコンピュータ2101から送出されてきたプリントコマンドを解析し、指定されたカラープリンタ2103を初期設定して出力する。
【0405】
また、ホストコンピュータ2101−1で、例えばスキャナソフト(スキャナアプリケーションプログラム)を用いて画像の取り込みを行う時、ホストコンピュータ2101−1でスキャン要求をS/Pサーバー装置2102に送出すると、S/Pサーバー装置2102は、スキャンを要求したホストコンピュータ2101−1にネットワーク96を介してログインしているユーザ名を問い合わせる。これに対して、ホストコンピュータ2101−1はログインする際、入力されたユーザ名をS/Pサーバー装置2102を返信する。
【0406】
そして、S/Pサーバー装置2102は返信されたユーザ名が登録されていないと判定した場合は、S/Pサーバー装置2102はホストコンピュータ2101にエラー信号を返信し、S/Pサーバー装置2102を当該ユーザの使用を制限することができる。これに対して、返信されたユーザ名が登録されていると判定した場合は、S/Pサーバー装置2102は、当該ユーザはスキャン可能なスキャナ名をホストコンピュータ2101−1に返信する。
【0407】
ユーザがホストコンピュータ2101−1でカラースキャナ2104を選び、スキャン命令を送出すると、S/Pサーバー装置2102はホストコンピュータ2101−1から送出されてくるスキャンコマンドを解析し、指定されたカラースキャナ2104を初期設定して画像を取り込む。
【0408】
なお、上記実施例ではユーザ名をマニュアル入力する場合と、ユーザ名をログイン処理で自動送出して登録ユーザかどうかを個別的に判定する場合について説明したが、これらのユーザ名入力処理を並行処理可能に構成しても良い。
【0409】
図64は本発明の一実施例を示すサーバー装置におけるユーザ識別処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【0410】
先ず、ホストコンピュータからネットワーク96を介してプリント要求コマンド/スキャン要求コマンドが入力されるのを待機し(1) 、入力されたユーザ名の問い合わせを当該ホストコンピュータに返信する(2) 。次いで、返信されたユーザ名の返信を待機し(3) 、返信されたユーザ名が既に登録されているかどうかを判定し(4) 、YESならば使用可能なスキャナ名,プリンタ名をホストコンピュータに返信して(5) 、上述したスキャナ/プリンタ処理に以降する。
【0411】
一方、ステップ(4) の判定でNOの場合は、当該ホストコンピュータにエラー信号を返信し(6) 、当該ホストコンピュータからの使用要求を禁止する。
【0412】
図65はこの発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【0413】
図において、2201A,2201Bはホストコンピュータで、ネットワーク2201を介してサーバー装置2202に対して特定の言語に対応したプリンタデータを出力する。2203はスプーラで、ネットワーク2201を介して受信したプリントデータおよび後述するスプーラ2203の管理データに従って記憶する。2204は第1のカラープリンタで、サーバー装置2202と通信しながらスプールしたプリントデータの出力処理を行う。2205は第1のカラープリンタで、サーバー装置2202と通信しながらスプールしたプリントデータの出力処理を行う。なお、入出力機器として、カラープリンタまたはカラースキャナまたはカラースキャナとカラープリンタとが一体となるカラースキャナ/プリンタが複数台接続されていても良い。
【0414】
図66は、図65に示したスプーラ2203の管理データの構造例を示す図である。
【0415】
図において、2200はデータ構造体で、次の構造体へのアドレス2251,プリンタ名2252,ファイル名2253からなり、サーバー装置2202が受信したプリント情報(制御データ(指定プリンタ先,制御コマンド),プリントファイル等)からなるプリントタスク2254,2255をデータ受信順にデータ構造体2200に記憶する。
【0416】
このように構成されたサーバー装置において、各ホスト(ホストコンピュータ2201A,2201B)から受信したデータが指定した入出力機器先別にデータ記憶手段(スプーラ2203)に記憶された状態で、通知手段(サーバー装置2202の通信プログラム)から指定した各入出力機器(本実施例では第1のカラープリンタ2204,第2のカラープリンタ2205)のスキャナ機能処理またはプリント機能処理状態が通知された際に、各ホストコンピュータから返信される入出力機器変更命令が入力された場合は、変更手段(サーバー装置2202)が各ホストから返信される入出力機器変更命令を解析してデータ記憶手段に記憶された各ホストにより指定された入出力機器先を、所望の入出力機器先に変更する。また、各ホストコンピュータから受信したデータに対し、指定されている入出力機器の状態を検知し、エラーが発生している場合は、自動的にエラーの発生していない他の入出力機器先に自動変更しても良い。この場合、動作不能中の入出力機器を指定した入出力処理を、所望の入出力機器でのデータ処理で補償することができる。
【0417】
具体的には、各プリントタスクは、入力されたプリント命令によって作成されるポインタにより管理されており、アドレス2251を参照することにより後続のプリントタスクの内容を読出すことができる。例えばホストコンピュータ2201Aから第1カラープリンタ2204でファイル名2253が「ファイルA」の出力命令に続き、第2カラープリンタ2205でファイル名2253が「ファイルB」の出力命令に続き、第1カラープリンタ2204でファイル名2253が「ファイルC,D,E」の出力命令が連続して受信した場合に対応する。なお、スプーラ2203に蓄えられた命令は、上から順にプリンタタスクが読み込み処理を進める。
【0418】
以下、図67に示すフローチャートを参照しながら本発明に係るサーバー装置におけるプリントタスク処理動作について説明する。
【0419】
図67は本発明に係るサーバー装置におけるプリントタスク処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【0420】
先ず、各ホストコンピュータから送出されてきたプリント命令を受信すると、サーバー装置2202がスプーラ2203内に図61に示したデータ構造体2200を作成して行く。このようにして、データ構造体2200が作成されると、プリントアウトのために参照するファイルがスプーラ2203に蓄積されているかどうかを判定し(1) 、スプーラ2203にファイルが蓄積されていない場合は処理を終了し、スプーラ2203にファイルが蓄積されている場合は、スプーーラ2203の参照しているデータ構造体2200の出力するプリンタ名2252を読み込み(2) 、指定されたプリンタの動作状態を示すフラグを調べて、正常なプリント動作が可能であるかどうかを判定し(3) 、プリント不可能状態を示すフラグが設定されている場合は、ステップ(7) 以降に進み、プリント可能状態ならば、参照中の構造体のファイルの指定されたプリンタで出力するプリント命令を出力する(4) 。次いで、プリンタから正常終了信号を受け取ったかどうかを判定し(5) 、異常信号を受け取った場合は、当該プリント命令を出力したホストコンピュータに対してエラー信号を返信して(6) 、プリンタ指定先の変更を問い合わせる。そして、当該ホストコンピュータからプリンタ指定先の設定を変更する命令が送出されたかどうかを判定し(7) 、YESならばスプーラ2203に蓄積されている当該プリントタスクのプリンタ名を正常動作可能なプリンタ名に書き換え(8) 、ステップ(1) に戻る。
【0421】
一方、ステップ(5) の判定がYESおよびステップ(7) の判定がNOの場合は、データ構造体2200を参照するためのポインタを次にリンクしているデータ構造体の後続のプリントタスクに進める、すなわち次のスプールへ進め(9) 、出力したプリントタスクをクリアし、ステップ(1) に戻る。
【0422】
なお、上記実施例では、プリンタタスクを例としてプリンタの指定先をホストコンピュータから入力される変更命令のみに基づいて正常プリント動作可能なプリンタを調べ、当該プリントタスクのプリンタ名を正常プリント動作可能なプリンタ名に自動変更する場合について説明したが、サーバー装置2202に入出力機器として、スキャナ装置が複数台接続される場合であっても、本発明を適用でき、例えばホストコンピュータからの命令が画像入力命令の場合に、一方のスキャナ装置からの画像入力実行中に作動不能となる事態(例えば走査モータの故障,イメージ読取り手段の故障,露光ランプの断線等)が発生した場合、その状態情報をホストコンピュータに返信し、この状態通知に基づいてホストコンピュータからスキャナ指定先を変更する変更命令が入力された場合には、サーバー装置2202がスキャナ指定先を所望のスキャナに変更し、以後の画像入力処理の継続を補償する。
【0423】
また、各プリンタそれぞれにプリンタタスクが存在している場合は、それぞれのプリンタタスクがスプーラ2203に登録された順に各々に対応したプリンタ名を持った命令を実行するように制御しても良い。例えば第1カラープリンタ2204専用のプリンタタスクがファイル名2253「ファイルA」を、第2カラープリンタ2205専用のプリンタタスクがファイル名2253「ファイルB」を出力している時に、第1カラープリンタ2204が紙詰りを起こした場合、第1カラープリンタ2204のプリントタスクは、ホストコンピュータにエラー信号を返信する。ホストコンピュータでファイルAを第2カラープリンタ2205で出力することを指定すると、サーバー装置2202はファイルAのプリント命令2254のプリンタ名の箇所を第2カラープリンタ2205に変更して、データ構造体2200の最後にポインタでリンクさせる。そして、第2カラープリンタ2205専用のプリントタスクがファイルBを出力中であれば、その出力が終了次第、ファイルAの出力処理に以降するように制御しても良い。
【0424】
さらに、プリンタ名を書き換えたファイルAの出力優先順位を指定可能に構成しても良い。
【0425】
図68は本発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【0426】
図において、2301は画像入出力通信装置(サーバー装置)で、通信部2302が通信線2310に接続され、図示しない異なるOSで起動する複数のホストコンピュータと接続されている。2303が画像処理手段として機能する画像生成部で、通信部2302が受信したプリントデータを解析して、生成したイメージデータを画像メモリ2304に記憶する。2305は画像出力部で、圧縮部2306,圧縮メモリ2307,伸長部2308,プリンタエンジン2309から構成されている。本実施例では、サーバー装置2301は、通信線2310を通じて他のホストコンピュータと通信している。
【0427】
このように構成されたサーバー装置において、画像処理手段(本実施例では画像生成部2303)から出力されるイメージデータおよび付加情報を解析して、画像処理手段(画像生成部2303,圧縮部2306等)が受信したイメージデータに最適なデータ処理を行い、入出力機器が画像処理手段から出力される処理データ(加工データ)に基づいて記録媒体に画像を出力するので、各入出力機器、例えばプリンタエンジン2309からの出力結果が良好となるようなイメージデータを生成可能とする。
【0428】
以下、動作について説明する。
【0429】
通信部2302が通信線2310を通じて他のホストコンピュータから通信されるページ記述言語のプリントデータを受信すると、プリントデータは画像生成部2303に送出される。プリントデータは、上述のようにページ記述言語で記述されており、画像生成部2303がプリントデータを解析して、画像メモリ2304に画像データを描画する。画像生成部2304では、ページ記述言語の解析において1ページを8個に分割した場合の各領域でのイメージの面積がわかるので、その情報を圧縮部2306に伝える。画像メモリ2304は画像生成部2303が画像を描画するメモリであり、1ページの8分の1の大きさの画像を記憶できるバンドメモリである。画像出力部2305のうち、圧縮部2306は画像生成部2303から送出されてきた1ページを8個に分割した場合の各領域でのイメージの面積とその時点での圧縮メモリの使用可能メモリ量により圧縮パラメータを決定し、画像メモリ2304に描画されている画像を圧縮して圧縮メモリ2307に記憶させる。画像生成部2303による画像生成と、圧縮部2306によるステップ像圧縮処理を8回繰り返すと1ページ分の画像が圧縮された状態で圧縮メモリ2307に記憶される。その後、伸長部2308が圧縮メモリ2307に記憶されている圧縮画像を伸長してプリントエンジン2309の動きに合せてデータを送出する。プリントエンジン2309は、伸長部2308から出力される伸長データに基づいて画像形成プロセスを実行して、記録媒体に画像を記録する。
【0430】
以下、図69に示すフローチャートを参照しながら本発明に係るサーバー装置における画像形成処理動作について説明する。
【0431】
図69は本発明に係るサーバー装置におけるプリントデータ生成処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【0432】
先ず、ホストコンピュータから通信線2310を介して受信したプリントデータを解析し(1) 、描画する画像でのイメージ領域の面積を求め(2) 、プリントデータ生成する(3) 。なお、ステップ(2) で求めたイメージ領域の大きさは圧縮部2306に送出される。
【0433】
図70は、図68に示した圧縮部2306の動作例を説明するフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【0434】
先ず、画像とイメージ領域の面積を得る(1) 。次いで、イメージ領域の面積と使用可能な圧縮メモリ2307のメモリ容量から圧縮パラメータを決定する(2) 。次いで、画像を圧縮して圧縮画像と圧縮パラメータを圧縮メモリ2307に記憶する(3) 。なお、圧縮パラメータを記憶するのは、伸長する時に伸長部2308が利用するためである。
【0435】
また、本実施例では、画像生成部2303はプリントデータを生成するのみでなく、イメージ領域の面積という画像情報を生成し、圧縮部2306はその画像情報を利用して適切な圧縮パラメータを決定して圧縮するので、必要以上の高圧縮率にはならず、劣化の少ない良好な画像をプリンタエンジン2309から得ることができる。
【0436】
なお、上記実施例では画像生成部2303が画像情報として、プリントデータ中のイメージ領域の面積データを生成する場合について説明したが、文字と図形の面積データを生成しても良い。この場合は、図63に示すフローチャートに示すように圧縮部2306は、文字と図形の面積の情報と使用可能な圧縮メモリ2307のメモリ量を利用して圧縮パラメータを決定して圧縮する。
【0437】
図71は本発明に係るサーバー装置における他のプリントデータ生成処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【0438】
先ず、ホストコンピュータから通信線2310を介して受信したプリントデータを解析し(1) 、描画する画像での文字と図形のみ面積を求め(2) 、イメージの残りのメモリ容量から圧縮パラメータを決定する(3) 。次いで、画像データを圧縮した圧縮画像と圧縮パラメータを圧縮部2306に転送し、圧縮メモリ2307に記憶する。
【0439】
これにより、圧縮部2306は、文字と図形の面積が分かるので、適切に圧縮パラメータを決定でき、劣化の少ない良好なプリントを得ることができる。
【0440】
なお、画像生成部2303は、イメージ領域の面積と文字および図形の面積の両方の情報を生成し、圧縮部2306はその両方の情報を利用して圧縮パラメータを決定しても良い。
【0441】
また、画像生成部2303は画像情報として、文字および図形に使用される色数を生成しても良い。圧縮部2306は、文字および図形で使用される色が十分に少なければ、他の圧縮方法に切り換えることができる。例えばプリントデータ中のイメージ部と文字,図形部を切り離して、イメージ部については通常のJPEG圧縮を行い、文字,図形部は使用する色を数ビットのコードに変換し、コードで記述することで圧縮できる。これにより、文字,図形部分に関して画像劣化のないプリントが可能となる。
【0442】
さらに、上記実施例では画像出力部2305での画像データ加工処理は、圧縮および伸長であったが、画像生成部2303が生成した画像を2値化して、2値プリンタによりプリントする場合には、画像データ加工処理が2値化処理であっても良い。これにより、例えば2値化において文字や図形の領域が多い文書のプリントでは線を比較的明確にする誤差拡散法で2値化し、イメージが殆どの文書では2値化処理時間の短いディザ法で2値化することにより、処理時間が短く、良好なプリントが得られる。
【0443】
また、画像出力部2305での画像データ加工処理は、画像生成部2303が形成した画像を画像出力部2305が色変換してプリントするサーバー装置2301においては、色変換処理であっても良い。例えば文字や図形の文書の黒をくっきりとさせるため、黒インクを多くする色変換を行い、イメージの多い文書では自然さを出すため、文字の場合よりも黒インクを少なくする色変換を行うことにより、良好なプリントが得られる。
【0444】
さらに、上記実施例ではプリンエンジン2309が1台接続されるサーバー装置2301を例としたが、図1に示すように複数のプリンタエンジンが接続される構成であっても、本発明を適用することができ、各プリンタエンジンに合せて画像処理を制御することにより、それぞれのプリンタエンジンから良好なプリントが得られる。
【0445】
なお、上記実施例ではネットワーク上のサーバー装置に接続される画像形成装置から各ホストコンピュータから受信したプリントデータの解析結果に基づいてデータ加工された画像を出力する場合について説明したが、ホストと1:1に接続される画像形成装置にも本発明を適用することができる。
【0446】
図72は本発明の一実施例を示す画像形成装置の構成を説明するブロック図である。
【0447】
図において、2401は画像形成装置本体部で、イーサネット等の通信線2407を介してホストとの通信を行う通信部2402,この通信部2402が受信したカラー印刷情報から出力画像イメージを発生させる画像発生部2403,この画像発生部2403が発生した出力画像イメージを各色毎(イエロー(Y),マゼンタ(M),シアン(C),ブラック(K))に記憶する画像メモリ2404,黒色の文字,図形画素であることを示す付加情報を記憶する付加情報メモリ2405,画像メモリ2404に記憶された出力画像イメージを付加情報メモリ5に基づいて印刷する画像出力部2406を有している。なお、画像発生部2403には図示しないCPU,各プログラム等を記憶するROM,RAM等を備え、後述するフローチャートに示すプログラムに従って画像メモリ2404への出力画像イメージ展開および画像メモリ2404に各色毎に展開された色画素情報を解析して付加情報メモリ2405に、例えば1画素を構成するビットデータ中の、最上位ビットまたは最下位ビットを「0」または「1」を設定する等の制御を行う。また、本実施例では画像出力部2406を、例えばイエロー,マゼンタ,シアン,ブラックの各色のインクをバブルジェット方式で吐出させてカラー印字を行うBJプリンタで構成されている。
【0448】
このように構成された第2のサーバー装置において、ネットワーク(通信線2407)を介してホストからカラー画像情報を受信すると、データ解析手段(本実施例では画像発生部2403の機能処理による)がカラー画像情報を解析し、この解析結果に基づいて発生手段が各色毎の画素データを発生させ記憶手段(画像メモリ2404)に記憶させた後、記憶された各色毎の画素データをデータ抽出手段(本実施例では画像発生部2403の機能処理による)が解析して色画像中の黒色部を抽出し、付加情報メモリ2405にデータ抽出手段が抽出した黒色部に対する付加情報が記憶されると、記憶された画素データおよび画素データに対する付加情報を参照しながら画像出力手段(画像出力部2406)が画像を出力することにより、カラー画像中の文字,図形等の黒色部をクッキリと印刷することを可能とする。
【0449】
図73は、図72に示した画像メモリ2404の構造を説明する概念図である。
【0450】
この図において、2408はレッド(R)用の画像データを格納する領域を示し、例えば先頭アドレス「100000000 」から10Mビット分確保される。2409はGREEN(G)用の画像データを格納する領域を示し、例えば先頭アドレス「110000000 」から10Mビット分確保される。2410はブルー(B)用の画像データを格納する領域を示し、例えば先頭アドレス「120000000 」から10Mビット分確保される。このように確保された領域2408〜2410に各画素のデータを格納することにより、各画素の最終的な色相が決定される。
【0451】
図74は、図72に示した付加情報メモリ2405の構造を説明する概念図である。
【0452】
この図に示すように、付加情報メモリ2405には1ページ分の画素数に対応した領域が確保され、例えば先頭アドレス「130000000 」から10Mビット分確保されており、上記各領域2408〜2409の1領域分と同様の記憶容量で構成される。
【0453】
以下、図75を参照しながら図72に示した画像発生部2403による画像メモリ2404へのイメージデータの描画および付加情報メモリ2405への付加情報書込み動作について説明する。
【0454】
図75は、図72に示した画像発生部2403による受信データ処理手順の一例を示すフローチャートである。なお、(1) 〜(4) は各ステップを示す。
【0455】
先ず、受信したデータを解析して画像メモリ2404の各領域2408〜2410に各色のイメージデータを画素単位に描画する(1) 。次いで、描画された各領域2408〜2410上の各画素の内容からその画素が文字あるいは図形で、かつ黒色かどうかを判定し(2) 、NOならば付加情報メモリ2405に当該画素が黒色でないことを示す、例えば最下位ビットを「0」であるビットデータを描画して(3) 、処理を終了する。
【0456】
一方、ステップ(2) の判定でYESの場合は、付加情報メモリ2405に当該画素が黒色であることを示す、例えば最上位ビットを「1」であるビットデータを描画して(4) 、処理を終了する。
【0457】
以下、図76に示すフローチャートを参照しながら図72に示した画像出力部2406によるカラー印刷動作について説明する。
【0458】
図76は、図72に示した画像出力部2406によるカラー印刷処理手順の一例を示すフローチャートである。なお、(1) 〜(5) は各ステップを示す。
【0459】
画像出力部2406は、画像メモリ2404と付加情報メモリ2405から各画素の情報を読み出し(1) 、付加情報メモリ2405の内容が黒であることを示す値かどうかを判定し(2) 、NOならば通常のマスキング処理を行い、RGBデータからYMCKデータを作成し(3) 、作成されたYMCKデータを図示しない出力バッファに描画し(4) 、印刷処理に移行する。
【0460】
一方、ステップ(2) の判定でYESの場合は、黒生成用のマスキングを行い、各領域のRGBデータからブラック(K)を作成し、イエロー,マゼンタ,シアンのデータをそれぞれ「0」とし(5) 、作成されたYMCKデータを図示しない出力バッファに描画し(4) 、印刷処理に移行する。
【0461】
なお、上記実施例では画像発生部2403は画像メモリ2404にRGBの画像データを形成する以外に、付加情報メモリ2405に文字あるいは図形で、かつ黒色である場合、それを示すデータを発生させ、この内容から画像出力部2406でのマスキング処理を変更することができ、文字あるいは図形で、かつ黒色の場合、当該文字あるいは図形をカラー画像中でクッキリとした状態で印刷することができ、黒をシャープに際立たせることができる。
【0462】
図77は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0463】
図において、2420は画像圧縮伸長部で、画像発生部2403が画像メモリ2404に描画した画像データを、例えば8×8のブロックに分割し、各ブロックにおいて、文字,図形である画素が多い場合は、エッジを保存する圧縮方法で圧縮し、イメージである画素が多い場合は、エッジが多少なまっても高い圧縮率を実現できる圧縮方法で圧縮し、圧縮メモリ2421に記憶する。1ページ部の画像データを圧縮し、圧縮メモリ2421に記憶した後、画像圧縮伸長部2421は、当該圧縮データを伸長して画像プリント部2422に送り、画像プリント部2422は伸長された画像データをプリントする。
【0464】
このように画像発生部2403が発生して画像メモリ2404に記憶させて画像データを読み出して、圧縮して圧縮メモリ2421に一時記憶させるので、画像メモリ2404,付加情報メモリのメモリ容量を、必ずしも1ページ分確保する必要がなく、例えば1ページの1/16程度に相当するメモリで足りる。
【0465】
また、一般には、画像データを圧縮して伸長すると、エッジ部がなまって画質が劣化したり、高圧縮率が得られず、圧縮メモリ2421を備えることにより、却って多くのメモリが必要になったりするが、付加情報メモリ2405にイメージかどうかの情報が記憶されているので、文字,図形部に対してはエッジを保存する圧縮を行い、イメージ部に対しては多少エッジがなまっても高い圧縮率の得られる圧縮を行うことにより、画質を殆ど劣化させることなく、高い圧縮率を得ることができる。すなわち、本実施例では付加情報メモリ2405に記憶される付加情報を利用して画像データを圧縮して一時記憶することにより、少ないメモリで殆ど画質を劣化させることなく、プリントすることができる。
【0466】
図78は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0467】
図において、2423は画像出力装置で、画像出力部2406を備え、画像形成装置本体部2401とケーブルを介して接続される。
【0468】
本実施例では画像出力装置2423と画像形成装置本体部2401とがケーブルで接続されているので、適宜画像出力装置2423を選択することができ、例えばインクジェット型のプリンタ,熱転写プリンタ等を接続することができる。
【0469】
図79は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0470】
図において、2425は画像出力装置で、画像出力部2424を備え、画像形成装置本体部2401とケーブルを介して接続される。なお、画像発生部2403のCPUはROM等に登録された各画像出力装置2423,2424の属性が登録されており、通信線2407を介して指示された属性情報を解析して、指定された各画像出力装置2423,2424の属性に応じて付加情報メモリ2405に付加情報が書き込まれる構成となっている。
【0471】
本実施例では2台の画像出力装置2425,2425がそれぞれケーブルで接続されているので、ホストからの属性指定に従った付加情報を付加情報メモリ2406に記憶させることができ、ホストが所望とする画像出力装置2425,2423のいずれかを選択することができる。
【0472】
図80は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0473】
図において、2426,2427は画像処理部で、図示しないCPU,ROM,RAM等を備え、画像メモリ2404に記憶されたカラー画像データに所望の画像処理、例えば色変換,拡大/縮小,移動,回転,マスキング,トリミング等の処理を施した後、ケーブルを介して対応する画像出力装置2423または画像出力装置2425に最終的なイメージデータを出力する。
【0474】
本実施例では画像出力装置2423または画像出力装置2425に高度な画像編集処理機能を備えていなくても、画像形成装置本体部2401側で画像編集ができるので、多彩かつ、くっきりとした黒の文字を含むカラー画像を安価に出力させることができる。
【0475】
以下、図81〜図86を参照しながら図29に示したバンドメモリへのラスタライズ処理動作について説明する。
【0476】
図81は、図29に示したバンドメモリへのラスタライズ処理に基づく出力画像サンプルの一例を示す図であり、図2に示したカラースキャナ/プリンタ94,95のいずれかから出力される。
【0477】
この図に示されるように、x方向(横方向)が40mm,y方向(縦方向)45mmの点を中心とした、半径25mmの円2501がある。この円2501は外枠の線と中の面で構成されている。また、点A〜Dにより囲まれた矩形2502があり、この矩形も同様に外枠の線と中の面で構成されている。そして、x方向38mm,y方向107mmの位置から「STRING」という文字2503が描かれている。
【0478】
この画像を出力するためには、各ホストコンピュータ、例えば図2に示した各ステーションを制御するホストコンピュータの変換プログラムにより、内部の描画情報を、例えばCaPSLコードに変換された、ページ記述コマンドが送出されてくる。
【0479】
図82,図83は、図2に示した各ホストコンピュータから送出されるページ記述コマンドの構造を説明する図である。
【0480】
図82において、2601は色指定コマンドで、線の色を指定するコマンドとして機能し、図示されるようにコマンドを識別するためのコマンド番号および色のレベルを指定するためのR値,G値,B値が要素として含まれている。
この線の色指定に関するコマンドのコマンド番号は「1」になっている。
【0481】
2602,2603はそれぞれ面の色,文字の色を指定するコマンドである。コマンド番号は面の色指定コマンドが「2」、文字の色指定コマンドが「3」になっている。次の線種指定コマンド2604は図形を描画する際の線の種類を指定するコマンドで、実線,破線,鎖線等を指定することができる。コマンド番号は「4」である。次の線幅指定コマンド2605は線の太さを指定するコマンドでミリ単位で指定しなければならない。コマンド番号は「5」である。また、面種指定コマンド2606は図形の内側の塗り潰しパターンを決定するものであり、コマンド番号は「6」になる。
【0482】
図83において、3701〜3703は文字の属性を指定するコマンドである。3701は文字サイズ指定コマンドで文字の大きさを指定するものである。3702は文字スタイル指定コマンドで、文字のボールド(太文字),イタリック(斜体)等を指定するものである。また、3703は文字種指定コマンドであり、フォントの種類を指定することができる。コマンド番号は「7」,「8」,「9」になっている。
【0483】
なお、上述した各コマンドは描画の属性に関するものであるが、3704から3706は実際に図形,文字を描画するコマンドである。3704は円描画コマンドで最初にコマンド番号「10」が入り、次に半液、そして、中心のX座標,Y座標が入る。次の矩形描画コマンド3705も同様に、初めにコマンド番号「11」が入り、始点の座標,始点の対角の終点の座標が入る。最後の文字描画コマンドは最初にコマンド番号「12」,文字列の先頭の位置,文字のコードが入る。
【0484】
このように各コマンドを組み合わせていろいろなドキュメントをプリントすることが可能となる。なお、ページ記述コマンド(CaPSLコマンド)は上記に限らず、ポストスクリプト,LIPS(III),ESC/P等のであっても同様である。
【0485】
以下、図84を参照しながら本発明に係るサーバー装置におけるバンド単位のラスタライズ処理動作について説明する。
【0486】
図84は本発明に係るサーバー装置におけるバンド単位のラスタライズ処理を説明する模式図であり、図2に示すPDLインタープリタープログラム84に基づいてCPUが実行する。
【0487】
画像メモリを、例えば1ページ分備えるためには、縦320ドット,横2000ドット、1画素当たり3バイトとした場合、メモリ容量は合計で1.83メガバイトにも及び、これらのメモリ容量をDRAMで構成したとすれば、メモリ回路が大きくなり、コスト的にも高価となる。
【0488】
そこで、図81に示したラスタライズされた画像を物理的なメモリ上の座標に変換すると、図84に示す状態となる。例えば、図2に示したカラースキャナ/プリンタ94,95の解像度が1mm当たり16ドット相当になるので、円2801は中心座標が(640ドット,720ドット),半径240ドットになる。また、矩形2802は図示するように物理的な座標となる。そして、文字列2803も(608ドット,1722ドット)に位置することになる。物理座標をメモリの大きさで短冊状(バンド)に分割すると、縦320ドット,横2000ドットの大きさの各バンド2804〜2811で区切られる。ラスタライズプログラムはバンド「0」を描画し終えると、メモリの内容をカラースキャナ/プリンタ94,95に送信し、送信を終了すると、メモリをクリアする。そして、バンド「1」の描画を介しする。描画が終了すると、メモリの内容をカラースキャナ/プリンタ94,95に送信する。この処理を、バンド「0」からバンド「8」まで繰り返す。
【0489】
次に、図81に示した画像をカラースキャナ/プリンタ94,95から出力するためのページ記述コマンドを図85,図86を参照しながら説明する。
【0490】
なお、図85に書かれているようなコマンドが図2に示した各ステーションのホストコンピュータから送出されてくるものとする。
【0491】
図において、2901は最初の数字、すなわちコマンド番号が「1」なので、線の色指定コマンドであることが分かる。PDLインタープリタープログラム84は、当該コマンドを解釈して、次の3パラメータは色の指定であることを判断して、数値を読み取る。すなわち、R値=255,G値=0,B値=0であることを一時的に記憶しておく。次のコマンド2902で面の色の指定を一時的に記憶しておき、コマンド2903から2905では線や面の情報を記憶する。コマンド2906は円描画コマンドで、描画コマンドを読み取ると、PDLインタープリタープログラム84は図86に示す中間テーブル2921と詳細テーブル2922を作成する。
【0492】
先ず、コマンド2906の中心座標,半径に16を乗じて物理的なプリント座標にする。そして、さらにこの図形に含まれるY軸方向の最大座標と最小座標を計算する。円2801では、最小値が「479」、最大値が「959」になるバンドの幅(Y方向)が「320」であるので、円2801はバンド1からバンド2に含まれることが計算できる。
【0493】
そこで、PDLインタープリタープログラム84は中間テーブル2921のSB(スタートバンド)に「1」を、EB(エンドバンド)に「2」を登録する。そして、コマンドを識別するためにCOM(コマンド)にCircle(円)を登録する。さらに、TNUMに詳細テーブルの識別番号を入力する。そして、PDLインタープリタープログラム84は詳細テーブル1に円描画に関する詳細な情報を登録して行く。2922は円描画に関する詳細テーブルである。最初のTNUMは詳細テーブル番号,LCOLOR,FCOLORはそれぞれ線,面の色を表わす。次のLTはラインタイプを表わし、一時的に記憶しておいた線の情報をここに登録する。また、LWには一時的に記憶しておいた線の幅をプリンタ座標系の座標単位に直して登録する。例えば2.5mmの線は、プリンタ座標系では、40ドットになる。FTも同様に一時的に記憶しておいた面の種類の情報を引き出してきて登録する。
【0494】
次に、DR,DX,DYはコマンド2906から半径,を中心座標をプリンタ座標計に計算して登録する。このように、コマンド2901〜2906を入力して中間テーブル2921と詳細テーブル2922を作成する。同様にして、コマンド2907〜2912を入力して矩形描画に関する中間テーブル2921と詳細テーブル2923を作成する。また、コマンド2913〜2917を用いて文字に関する中間テーブル2921と詳細テーブル2924を作成する。入力コマンド2914〜2916の文字のスタイル,種類,大きさの情報から文字のビットマップデータをPDLインタープリタープログラム84が作成してメモリに確保しておく。その結果詳細テーブル2924には、そのメモリの先頭アドレスが記憶されているに過ぎない。
【0495】
このように、コマンド2901〜2917を入力して、中間テーブル2921と詳細テーブル2922〜2924を作成し終えると、PDLインタープリタープログラム84はこれらの情報に基づいて図形,文字の描画処理を以下のように開始する。
【0496】
まず、PDLインタープリタープログラム84はバンド0の描画を始める。中間テーブルを見て、バンドに画像が含まれているかを検索する。中間テーブル2921のSB,EBを参照すると、0バンド目に描画すべき図形がないことが分かるので、描画処理は行わずに、そのままメモリの内容をプリンタに送信する。次に、バンド1の描画処理に移る。中間テーブル2921のSB,EBを参照すると、円を描画することが分かるので、識別番号「1」の詳細テーブルTNUMに書かれている情報に基づいて、メモリ上に円を描画する。この時、注意しなければならないのは、バンドの大きさ分だけ、クリッピング処理を施して円を描画しなくてはならないことである。そうしないと、メモリの存在しない領域を描画使用としてメモリのアクセスエラーが発生してしまうからである。次に、バンド2に移り、同様にして中間テーブル2921を参照すると、円2801と矩形2802を描画することが分かるので、詳細テーブル2922,2923を参照してラスタライズ処理を行う。
【0497】
このように本発明に係る第1のサーバー装置の画像処理方法によれば、1ページ分の画像描画に必要なメモリ領域を複数のバンド領域に分割可能なバンドメモリを確保しておき、所定のネットワークに接続される各ホストから順次受信した所定のページ記述言語に従うページ単位のコマンドを解析しながら、各オブジェクト毎に出力バンド情報を導出して、各オブジェクトを出力バンド情報に基づいて対応するバンドに順次描画するので、少ないメモリ容量であっても、複雑なオブジェクトを効率よく出力することが可能である。
【0498】
以上のようなバンド毎に中間テーブルを参照して描画すべき図形,文字があれば、今度はその図形の情報が書かれている詳細テーブルを参照して図形を描画する処理を繰り返して、1ページ分の画像をラスタライズする。
【0499】
以下、図87〜図92を参照しながら本発明に係るSPサーバー装置のスキャナ/プリンタに対するホストコンピュータからの指定処理動作について詳述する。
【0500】
図87は本発明に係るSPサーバー装置に対するホストコンピュータからのスキャナ/プリンタのモード指定処理手順の一例を示すフローチャートである。なお、(1) 〜(7) は各ステップを示す。また、本発明に係るSPサーバー装置を含むシステム環境は、図2に示した通りであるが、ネットワーク上には複数のSPサーバー装置を配設し、各SPサーバー装置が複数のプリンタ,スキャナが接続されるシステム環境であっても本発明を適用できることは言うまでもなく、従って、本各処理は各SPサーバー装置に共通する処理となる。さらに、各SPサーバー装置に共通する処理を変更(例えばバージョンアップ)する際には、インストールされたSPサーバーから各サーバー装置に変更されたプログラムを転送して設定することも、あるいはプログラムをフロッピーディスクで供給して設定することも可能である。
【0501】
先ず、ネットワーク上のホストコンピュータ(図2に示した各ステーションST1〜ST3)から転送されるスキャナ/プリンタ(S/P)指定を判定し(1) 、プリント処理指定の場合には、転送されるプリントコマンドを解析して、当該プリントデータが圧縮イメージのみであるかどうかを判定し(2) 、YESならば圧縮イメージに対する伸長処理を実行するため、SPサーバ装置のデータ処理モード(第1モード)処理を実行し(3) 、リターンする。
【0502】
一方、ステップ(2) の判定でNOの場合は、PDLであるのでPDLデータを解析してラスタライズするデータ処理モード(第2モード)処理を実行し(4) 、リターンする。
【0503】
一方、ステップ(1) の判定でスキャナ処理指定の場合には、スキャナコマンドを解析して圧縮イメージ入力指定かどうかを判定し(5) 、YESならば読み取られるイメージデータを圧縮イメージに変換するため、SPサーバ装置のデータ処理モード(第3モード)処理を実行し(6) 、リターンする。
【0504】
一方、ステップ(5) の判定でNOの場合は、読み取られるイメージデータをそのまま転送するため、SPサーバ装置のデータ処理モード(第4モード)処理を実行し(7) 、リターンする。
【0505】
図88〜図91は、図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【0506】
これらの図において、SPAWはスキャナ/プリンタアプリケーションウインドウで、ボタンBT1〜BT7を有し、ボタンBT1はファイル指定ボタンとして機能し、当該ボタンBT1をカーソルKで指示すると、ファイル一覧がウインドウ内に表示される。
【0507】
ボタンBT2は編集指定ボタンとして機能し、当該ボタンBT2をカーソルKで指示すると、編集メニューウインドウ(図示しない)が表示される。ボタンBT3はSPサーバー指定ボタンとして機能し、当該ボタンBT3をカーソルKで指示すると、ネットワーク上に接続されたSPサーバーの一覧が表示(図89参照)される。
【0508】
ボタンBT4はスキャナ/プリンタボタンとして機能し、当該ボタンBT4のスキャナまたはプリンタをカーソルKで指示すると、選択したSPサーバーで使用可能なスキャナ/プリンタ一覧が表示(図90参照)される。なお、スキャナ/プリンタ一覧のうち、所望のスキャナが選択されると、当該スキャナに対するスキャナンパラメータ設定ウインドウが、例えばスキャナ/プリンタアプリケーションウインドウSPAW内に表意される(図91参照)。
【0509】
ボタンBT5は紙サイズボタンとして機能し、当該ボタンBT5をカーソルKで指示すると、選択したSPサーバーで使用可能なスキャナ/プリンタで選択可能な紙サイズが表示される。ボタンBT6はPDL/圧縮イメージ選択ボタンとして機能し、当該ボタンBT6をカーソルKで指示すると、プリント情報の転送条件をPDLに設定する。なお、PDL以外は、圧縮イメージデータとして転送する。
【0510】
ボタンBT7は、スキャナ/プリンタのスタートボタンとして機能し、当該ボタンBT7をカーソルKで指示すると、選択したSPサーバーでのスキャナまたはプリントが開始される。
【0511】
以下、図92,図93を参照しながら、図2に示した各ステーションに共通するSPサーバー指定制御動作について説明する。
【0512】
図92,図93は、図2に示した各ステーションに共通するSPサーバー指定制御手順の一例を示すフローチャートである。なお、(1) 〜(26)は各ステップを示す。特に、スキャナ/プリンタのうち、プリント機能処理実行の際の処理に対応する。なお、標準のS/Pサーバー装置,スキャナ,プリンタ,紙サイズ,PDLはデフォルトとして確定されている。
【0513】
先ず、各ステーション固有のアプリケーション実行中に、プリント機能処理が選択されると(1) 、図88に示したスキャナ/プリンタアプリケーションウインドウSPAW(以下、ウインドウSPAWと呼ぶ)を表示する(2) 。次いで、スキャナ/プリンタアプリケーションウインドウSPAW中のボタンBT7がカーソルKで指示されたかどうかを判定し(3) 、NOならば順次ボタンBT1〜ボタンBT5がカーソルKで指示されたかどうかを判定し(4) 〜(8) 、何れもNOならばボタンBT6がカーソルKで指示されたかどうかを判定し(9) 、YESならばPDL送信をセットしステップ(3) に戻り、NOならば圧縮イメージ送信をセットして(25)、ステップ(3) に戻る。
【0514】
一方、ステップ(4) の判定でYESの場合は、ウインドウSPAWにファイル一覧を表示し(11)、ファイル一覧から所望のファイルがカーソルKで選択されるのを待機し(12)、選択されたファイルをプリントファイル候補として確定し(13)、ステップ(3) に戻る。
【0515】
一方、ステップ(5) の判定でYESの場合は、ウインドウSPAWに編集メニューを表示し(14)、ステップ(3) に戻る。
【0516】
一方、ステップ(6) の判定でYESの場合は、ウインドウSPAWにネットワーク上に接続されたSPサーバー一覧を表示し(15)、SPサーバー一覧から所望のSPサーバーがカーソルKで選択されるのを待機し(16)、選択されたSPサーバーをプリント処理機能処理実行のためのSPサーバー候補として確定し(17)、ステップ(3) に戻る。
【0517】
一方、ステップ(7) の判定でYESの場合は、確定されたSPサーバーに接続されたプリンタ/スキャナの一覧をウインドウSPAWに表示し(18)、プリンタ/スキャナの一覧の中から所望のプリンタ/スキャナがカーソルKで選択されるのを待機し(19)、YESならば選択されたプリンタ/スキャナをプリント処理機能処理実行のためのプリンタ候補として確定し(20)、ステップ(3) に戻る。
【0518】
一方、ステップ(8) の判定YESの場合は、確定されたプリンタ/スキャナで使用可能な紙サイズが選択されるのを待機し(21)、YESならば選択された紙サイズをプリント処理機能処理実行のための紙サイズとして確定しステップ(22)、ステップ(3) に戻る。
【0519】
一方、ステップ(3) の判定でYESの場合はステップ(24)に進み、プリントコマンドを送信し、候補選択したSPサーバーからの正常応答を待機し(25)、選択されているファイルに基づくプリント情報(PDLおよび/または圧縮イメージ)をネットワークを介して送信し(26)、上述したプリント処理を開始し、終了後の他の処理に移行する。
【0520】
なお、上記実施例ではスキャナ/プリンタの指定処理をウインドウSPAWを介してプルダウンメニュー選択またはウインドウ内へのサブウインドウ表示にて処理する場合について説明したが、ユーザインタフェースはグラフィカルインタフェース(例えばアイコン)であっても良いことは言うまでもない。
【0521】
また、上記実施例では特にスキャナ/プリンタにおけるプリント機能処理実行のための指定を説明したが、スキャナ機能処理実行もほぼ同様であり、特にスキャナ機能処理実行に際しては、スキャナ/プリンタサーバー確定後、確定したスキャナ/プリンタサーバー上で使用するスキャナ/プリンタを確定した後、図91に示すように、所望とするスキャンパラメータ設定ウインドウまたは設定メニューをウインドウSPAWを表示して、読み取り領域,解像度,カラー/モノカラーの別,多値/2値の別,圧縮方式の指定,ガンマ値,データ形式(面,線,点順次),格納するファイル名を詳細に決定した後、ボタンBT7がカーソル指示された際に、スキャンを開始させるように制御すれば良い。
【0522】
【発明の効果】
以上説明したように、本発明に係るサーバー装置によれば、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送するとともに、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信するので、ホストコンピュータ側から、ネットワーク上にある各画像読取り装置の画像読取り特性を認識することができ、さらに、選択した画像読取装置の画像読取り特性を設定することができるという効果を奏する。
【0523】
本発明に係る制御方法によれば、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送するとともに、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信するので、ホストコンピュータ側から、ネットワーク上にある各画像読取り装置の画像読取り特性を認識することができ、さらに、選択した画像読取装置の画像読取り特性を設定することができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1実施例を示すサーバー装置の概要を説明するシステムブロック図である。
【図2】図1に示したサーバー装置を適用するネットワークシステムの概略を示すシステムブロック図である。
【図3】本発明に係るサーバー装置と各ホストとのネットワーク構築状態を示す図である。
【図4】図1に示したメインCPUボード回路の詳細構成を説明する回路ブロック図である。
【図5】図4に示したメモリクリアコントローラの詳細構成を説明するブロック図である。
【図6】図5に示したバンドメモリへの画像情報のバンド展開処理を説明する模式図である。
【図7】図5に示したバンドメモリへの画像情報のバンド展開処理を説明する模式図である。
【図8】図5に示した画像描画処理回路の詳細構成を説明するブロック図である。
【図9】図1に示した第1のインタフェース回路の内部構成を説明するブロック図である。
【図10】図9に示したリアルタイム圧縮伸長部の詳細構成の一例を示すブロック図である。
【図11】図10に示したジグザグスキャン部によるジグザグスキャン経路の一例を示す図である。
【図12】図1に示した第1のSPインタフェース回路のパート構成の概略を説明するブロック図である。
【図13】図1に示した第1のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図14】図1に示した第1のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図15】図1に示した第1のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図16】図1に示した第2のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図17】図2に示したスキャナ/プリンタの画像記録プロセスを説明する模式図である。
【図18】図2に示したスキャナ/プリンタのスキャナの原稿走査状態を示す模式図である。
【図19】図2に示したスキャナ/プリンタのスキャナのバンド原稿走査状態を示す模式図である。
【図20】本発明に係るサーバー装置とプリンタとのインタフェース信号の一例を示す図である。
【図21】本発明に係るサーバー装置とプリンタとのインタフェースの一例を示す回路ブロック図である。
【図22】図21の動作を説明するタイミングチャートである。
【図23】図21に示したセントロニクスI/F回路によるホスト側の信号処理手順の一例を示すフローチャートである。
【図24】図21に示したセントロニクスI/F回路によるプリンタ側の信号処理手順の一例を示すフローチャートである。
【図25】本発明に係るサーバー装置とホストコンピュータとのプログラム構成を説明する図である。
【図26】本発明に係るサーバー装置における全体制御手順の一例を示すフローチャートである。
【図27】本発明に係るサーバー装置におけるページ記述言語に準拠するコード体系の要部を示す図である。
【図28】本発明に係るサーバー装置におけるレイアウタによる中間コードへの置換処理を説明する図である。
【図29】本発明に係るサーバー装置におけるバンドメモリへの図形情報展開処理状態を示す模式図である。
【図30】本発明に係るサーバー装置におけるページ記述言語が展開するデータの1画素構造を説明する図である。
【図31】図2に示したスキャナの動作を説明するデータ処理経路図である。
【図32】本発明に係るサーバー装置とカラーレーザ複写装置とのデータ処理状態を説明するブロック図である。
【図33】本発明に係るサーバー装置とカラーレーザ複写装置とのデータ処理状態を説明するブロック図である。
【図34】本発明に係るサーバー装置とバブルジェットカラー複写装置とのデータ処理状態を説明するブロック図である。
【図35】本発明に係るサーバー装置とのネットワークシステムの構成を説明するブロック図である。
【図36】本発明に係るサーバー装置における異常発生ジョブ処理手順の一例を示すフローチャートである。
【図37】本発明に係るサーバー装置におけるリトライ処理手順の一例を示すフローチャートである。
【図38】本発明に係るサーバー装置におけるジョブ制御状態を説明するタイミングチャートである。
【図39】本発明に係るサーバー装置におけるシステム全体制御プログラム制御処理状態を示す図である。
【図40】図39に示したシステム全体制御プログラム制御のイベント処理手順の一例を示すフローチャートである。
【図41】本発明に係るサーバー装置におけるジョブ管理状態を示す図である。
【図42】本発明に係るサーバー装置におけるジョブ実行処理手順の一例を示すフローチャートである。
【図43】本発明に係るサーバー装置におけるステータスチェック処理手順の一例を示すフローチャートである。
【図44】本発明に係るサーバー装置における優先順位チェック処理手順の一例を示すフローチャートである。
【図45】本発明に係るサーバー装置におけるインタフェースチェック処理手順の一例を示すフローチャートである。
【図46】本発明に係るサーバー装置におけるジョブ起動処理手順の一例を示すフローチャートである。
【図47】本発明に係るサーバー装置におけるジョブ処理状態推移を示すタイミングチャートである。
【図48】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図49】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図50】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図51】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図52】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図53】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図54】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図55】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図56】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図57】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図58】本発明の第2の実施例を示すサーバー装置の構成を説明するブロック図である。
【図59】図58に示したSPサーバー装置により合成される印刷レイアウトを示す模式図である。
【図60】本発明に係るサーバー装置における第1の入出力制御手順の一例を示すフローチャートである。
【図61】本発明に係るサーバー装置における第2の入出力制御手順の一例を示すフローチャートである。
【図62】本発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【図63】本発明の一実施例を示すサーバー装置のネットワーク接続状態を示す図である。
【図64】本発明の一実施例を示すサーバー装置におけるユーザ識別処理手順の一例を示すフローチャートである。
【図65】本発明の他の実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【図66】図65に示したスプーラの管理データの構造例を示す図である。
【図67】本発明に係るサーバー装置におけるプリントタスク処理手順の一例を示すフローチャートである。
【図68】本発明の他の実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【図69】本発明に係るサーバー装置におけるプリントデータ生成処理手順の一例をフローチャートである。
【図70】図68に示した圧縮部の動作例を説明するフローチャートである。
【図71】本発明に係るサーバー装置における他のプリントデータ生成処理手順の一例を示すフローチャートである。
【図72】本発明の一実施例を示すサーバー装置における画像処理構成を説明するブロック図である。
【図73】図72に示した画像メモリの構造を説明する概念図である。
【図74】図72に示した付加情報メモリの構造を説明する概念図である。
【図75】図72に示した画像発生部による受信データ処理手順の一例を示すフローチャートである。
【図76】図72に示した画像出力部によるカラー印刷処理手順の一例を示すフローチャートである。
【図77】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図78】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図79】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図80】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図81】図29に示したバンドメモリへのラスタライズ処理に基づく出力画像サンプルの一例を示す図である。
【図82】図2に示した各ホストコンピュータから送出されるページ記述コマンドの構造を説明する図である。
【図83】図2に示した各ホストコンピュータから送出されるページ記述コマンドの構造を説明する図である。
【図84】本発明に係るサーバー装置におけるバンド単位のラスタライズ処理を説明する模式図である。
【図85】図2に示した各ホストコンピュータから送出されるページ記述コマンドの解析処理を説明する図である。
【図86】図2に示した各ホストコンピュータから送出されるページ記述コマンドの解析処理を説明する図である。
【図87】本発明に係るSPサーバー装置に対するホストコンピュータからのスキャナ/プリンタのモード指定処理手順の一例を示すフローチャートである。
【図88】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図89】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図90】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図91】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図92】図2に示した各ステーションに共通するSPサーバー指定制御手順の一例を示すフローチャートである。
【図93】図2に示した各ステーションに共通するSPサーバー指定制御手順の一例を示すフローチャートである。
【符号の説明】
901 クライアントホストコンピュータ
902 クライアントホストコンピュータ
903 SPサーバー装置
904 スキャナプリンタ
【発明の属する技術分野】
本発明は、ネットワークを介してホストコンピュータと通信可能なサーバー装置および制御方法に関するものである。
【0002】
【従来の技術】
従来、サーバー装置としては、複数のプリンタが接続される、いわゆるプリンタサーバー装置に知られている。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のサーバー装置としては、複数のイメージリーダ(スキャナ装置)が接続されるような装置は、未だ知られていなかった。
【0004】
また、かかるサーバー装置に接続される複数のイメージリーダの読取り特性は同一であるとは限らず、互いに読取り特性が異なる場合があり、かかる場合ホストコンピュータは、これらのイメージリーダの特性を知ることができないという問題が生じた。
【0005】
本発明は、上記の問題点を解決するためになされたもので、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送するとともに、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信することにより、ホストコンピュータ側で、ネットワーク上にある各画像読取り装置の画像読取り特性を認識することができ、さらに、選択した画像読取装置の画像読取り特性を設定することができるサーバー装置および制御方法を提供することである。
【0006】
【課題を解決するための手段】
本発明に係る第1の発明は、ネットワークを介してホストコンピュータと通信可能なサーバー装置であって、複数の画像読取り装置およびそれぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送する転送手段と、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信する受信手段と、複数の画像読取り装置の中から選択された画像読取り装置に画像の読み取りをさせる制御手段と、読み取られた画像の画像データを前記ホストコンピュータに送信する画像データ送信手段とを有することを特徴とする。
【0007】
本発明に係る第2の発明は、画像読取り特性を、カラー/モノクロ何れであるかを示す特性で構成したことを特徴とする。
【0008】
本発明に係る第3の発明は、前記画像読取り装置は、原稿を読み込んで、原稿の画像データを生成するスキャナであることを特徴とする。
【0009】
本発明に係る第4の発明は、前記ホストコンピュータから送信された、前記ホストコンピュータにログインしているユーザ名が登録されているかを判定する判定手段と、前記ホストコンピュータに登録されていると前記判定手段で判定された場合、複数の画像読取り装置の名を前記ホストコンピュータに送信する送信手段とを有することを特徴とする。
本発明に係る第5の発明は、ネットワークを介してホストコンピュータと通信可能な装置における制御方法であって、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送する転送ステップと、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信する受信ステップと、選択された画像読取り装置に画像の読み取りをさせる制御ステップと、読み取られた画像の画像データを前記ホストコンピュータに送信する画像データ送信ステップとを有することを特徴とする。
本発明に係る第6の発明は、画像読取り特性を、カラー/モノクロ何れであるかを示す特性で構成したことを特徴とする。
本発明に係る第7の発明は、前記画像読取り装置は、原稿を読み込んで、原稿の画像データを生成するスキャナであることを特徴とする。
本発明に係る第8の発明は、前記ホストコンピュータから送信された、前記ホストコンピュータにログインしているユーザ名が登録されているかを判定する判定ステップと、前記ホストコンピュータに登録されていると前記判定ステップで判定された場合、複数の画像読取り装置の名を前記ホストコンピュータに送信する送信ステップとを有することを特徴とする。
【0010】
【実施例】
図1は本発明の第1実施例を示すサーバー装置の概要を説明するシステムブロック図である。なお、詳細なシステムブロック図は後述する。
【0011】
図において、スキャナ/プリンタ(SP)サーバーは後述する。本システムは、大別してメインCPU回路1,イーサネット回路2,JPEG圧縮回路3,スキャナ/プリンタインタフェース回路4より構成されている。なお、スキャナ/プリンタ(SP)サーバーに複数のスキャナ/プリンタを接続する場合には、その台数分のスキャナ/プリンタインタフェース回路を実装する。その台数の増減を容易にする為にスキャナ/プリンタインタフェース回路は独立したボード上に構成されており、本体とは後述するVMEバス16で接続する。残りのメインCPU回路1、イーサネット回路2、JPEG圧縮回路3は1枚のボード上に構成されており、互いにローカルなバス14で結合されている。
【0012】
4−1は第1のスキャナ/プリンタインタフェース回路(第1のSPインタフェース回路)で、例えば商品名CLC−500等のディジタルカラー複写装置100(レーザビームカラー複写装置)とVMEバス16とのI/Oをインタフェースする。
【0013】
4−2は第2のプリンタ/スキャナインタフェース(第2のSPインタフェース回路)で、例えば商品名ピクセルジェット等のディジタルカラー複写装置200(バブルジェットカラー複写装置)とVMEバス16とのI/Oをインタフェースする。
【0014】
メインCPU回路1は例えばR3000(商品名)等のCPU5とメモリ6等から成り、ここでOSである、例えば VxWorks(商品名)の管理下ですべてのプログラムが実行される。メモリ6の補助記憶装置として、ハードディスク7がある。8はSCSIインタフェースである。イーサネット回路2はイーサネットトランシーバー9とデータをメモリ6にDMA転送する為のDMAコントローラ10等とから成る。イーサネットトランシーバー9はイーサネット(商品名)ローカルエリアネットワーク(LAN)11に接続する。JPEG圧縮回路3はJPEG圧縮/伸長コントローラ12とFIFOメモリ13等とから成る。メインCPU回路1,イーサネット回路2,JPEG圧縮回路3を互いに結合しているローカルバス14はVMEバストランシーバー15−1を介してVMEバス16に接続されている。
【0015】
第1のSPインタフェース回路4−1はページメモリ17と第1の制御回路18等からなる。1ページ分のメモリが必要な理由は、ディジタルカラー複写装置100が印刷/スキャンを開始すると途中でフロー制御する事ができないからである。ページメモリ17は、メモリの価格が高いので圧縮メモリを構成している。すなわち、このメモリ17に書き込まれるデータは、メモリ6でラスタライズされた画像のみである事に着目し、メモリ17は非可逆圧縮ではあるが、高圧縮率が得られるADCT圧縮方式を採用している。そのADCT圧縮チップはこの図では示していないが、前述のJPEG圧縮/伸長コントローラ12と同じチップを用いている。
【0016】
ただし、このページメモリ17にADCT圧縮方式用いる場合、圧縮データはここだけの閉じた回路で使用されるだけで、外部には出て行かないから、標準に則る必要はなく、実際、JPEGを改良した効率的な方法を用いている。第1の制御回路18は例えばZ−80(商品名)等のCPU等で構成し、複写装置100との画像以外の制御信号のやり取りをしている。ここのインタフェースの本数を減らすため、制御コマンドをシリアルで送っている。第1のSPインタフェース回路4−1はVMEバストランシーバー15−2を介してVMEバス16と接続している。
【0017】
第2のSPインタフェース回路4−2はデータ縦横変換回路19、バッファメモリ20、画像処理回路21及び第2の制御回路22等とから成り。VMEバストランシーバー15−3を介してVMEバス16と接続している。データ縦横変換回路19は、プリント時は走査方向の画像のデータ形式を走査方向に対して90°に変換し、スキャン時は走査方向に対して90°のデータ形式を走査方向に変換する。バッファメモリ20はそのための変換用バッファとして用いる。
【0018】
画像処理回路21は複写装置200に欠けている画像処理機能を補う為に入れている。第2の制御回路22は第1の制御回路18と同じ機能を提供する為のものであり、同じ例えばZ−80(商品名)等のCPU等で構成されている。
【0019】
以下、動作について説明する。
【0020】
例えばネットワーク印刷を実行する場合の例を示すと、LAN11からイサーネットトランシーバー9を介して入ってきたページ記述言語(例えば商品名 CaPSL)は、DMAコントローラ10によって、直接メモリ6の特定領域(受信バッファ)に蓄えられる。そこで後述するページ記述言語インタープリタープログラムによってラスターイメージに変換される。JPEG圧縮画像は、ページ記述言語(以下、PDL)で伸長することもできるが、高速に伸長するためJPEG圧縮/伸長回路3が利用される。
【0021】
このように構成された第1のサーバー装置において、第1の画像出力制御手段(メインCPU回路1)が各ホストから前記ネットワークを介して入力される第1の画像情報,各ホストからの指示に従って各入出力機器(複写装置100,200)から読み込まれた第2の画像情報,各ホストからの指示に従って第1のおよび第2の画像情報を組み合わせた第3の画像情報の各入出力機器への出力を後述する図60,図61に示すフローチャートに従って制御するので、各ホストからの指示に応じて第1〜第3の画像情報のいずれかを直接生成して各入出力機器から直接出力することが可能となるとともに、第2の画像出力制御手段が第2の画像情報を前記ネットワークを介して要求した第1のホストまたは第1のホストに指示された第2のホストへの出力を制御するので、ホストからの指示に応じて各入出力機器から取り込んだ第2の画像情報を自ホストを含む他のホストに直接転送することも可能となる。
【0022】
なお、メモリ6は価格的な理由から、1ページの画面全体をラスタライズするだけの容量を持たず、PDL(例えばCaPSL )を部分的に処理するバンディングという手法を用いて、何回かに分けて処理される。ラスタライズが完了したら、第1のSPインタフェース回路4−1または第2のSPインタフェース回路4−2に転送され、各プリンターに出力される。なお、ネットワークスキャンを実行する場合の例は後述する。
【0023】
図2は、図1に示したサーバー装置を含むネットワークシステムの概略を示すシステムブロック図である。
【0024】
本実施例におけるネットワークシステムは、例えば Macintosh(商品名)、IBM-PC(商品名)、SUN (商品名)の様な市販されているホストコンピュータのアプリケーションソフトウエアから、ネットワークを介して接続されている少数のスキャナーやプリンターを共同利用する為の物である。同図に於て、大きく4つのブロックがあるが、左から順に MacintoshワークステーションST1、IBM-PCワークステーションST2、SUN ワークステーションST3、及びカラーSPサーバーSP1である。 MacintoshワークステーションST1、IBM-PCワークステーションST2、SUN ワークステーションST3は、市販されているホストコンピューターであり、カラーSPサーバーSP1は発明者が設計したインタフェースユニットである。それらが、例えばEthernet(商品名)というローカルエリアネットワーク96によって相互接続されている。94は第1のカラースキャナ/プリンタ、95は第2のカラースキャナ/プリンタである。
【0025】
Macintosh ワークステーションST1、IBM-PCワークステーションST2、SUN ワークステーションST3、及びカラーSPサーバーSP1は、相互通信の為に、共通の通信インタフェースを有する。51,61,71,81はローカルエリアネットワーク(LAN)96と通信する為のイーサネットトランシーバーである。52,62,72,82はLAN96上に構築した通信プログラム TCP/IP (商品名)で、米国国防省の標準である。
【0026】
このTCP/IPプログラムは End-to-End でのデーター誤りの無い通信サービス(機能)を提供する。53,63,73,83は第1のカラースキャナ/プリンタ94,第2のカラースキャナ/プリンタ95を Macintosh用のステーションST1,IBM-PC用のステーションST2,SUN ワークステーションST3から共同利用するという特別な目的のためのサービス(機能)を提供する通信プログラムである。53,63はS/Pクライアントプログラムとして、クライアント型のサービスを提供する通信プログラムであり、83はS/Pサーバープログラムで、サーバー型のサービスを提供する通信プログラムである。
【0027】
Macintosh のステーションST1から第1のカラースキャナ/プリンタ94に印刷させる場合を説明すると、市販アプリケーションプログラム56で作成した原稿を印刷しようとすると、プリントマネージャ−(Printing Manager) 55というOS(Operating System)の一部に制御が渡され、印刷のための制御を開始する。この時のデーターフォマットは Macintoshの場合 QuickDraw(商品名)タイプに標準化されている。プリントマネージャー55は、変換プログラム54の描画関数群を原稿に書かれた通りにコールする。変換プログラム54は、そのコールの中で QuickDrawを、例えばCaPSL(Canon Prinnting System Language)コードに逐一変換して図示しないメモリーに CaPSLコードを蓄える。変換プログラム54は、主としてQuickDraw/CaPSL 変換プログラムとして機能する。
【0028】
通信プログラム53は、得られた CaPSLコードをTCP/IPプログラム52に従ってイーサネットトランシーバ51,LAN96,イーサネットトランシーバ81を介し,さらにTCP/IPプログラム82,通信プログラム83を介してカラーSPサーバーSP1に伝送する。なお、上述した変換プログラム54,64,74,通信プログラム53,63,73,スキャナインタフェースプログラム57,67,TCP/IPプログラム52,62,72等は、例えばフロッピ−ディスク等でホストコンピュータに供給されても良い。また、イーサネットトランシーバー、例えばボード回路としてホストコンピュータに供給されても良い。
【0029】
カラーSPサーバー(S/Pサーバー装置)SP1全体の動作は、システム全体制御プログラム93によって制御されている。前記 CaPSLコードの受信も、システム全体制御プログラム93に知らされる。システム全体制御プログラム93は、後述するPDLインタープリタープログラム84に対して、CaPSL コード化された原稿を、ビットマップ画像にラスタライズする様に要求する。ビットマップ画像にラスタライズされた画像データは、デバイスドライバ86に渡され、例えば第1のプリンタ制御ボード91を介してビデオインタフェース Video I/Fから第1のカラースキャナ/プリンタ94に送られ、印刷される。
【0030】
IBM-PCのステーションST2から印刷する場合も同様で、上記データの流れと同様であるが、IBM-PCのステーションST2の場合には、印刷原稿のデータフォマットは GDI(商品名)に標準化されている。変換プログラム64は、主としてGDI/CaPSL 変換プログラムとして機能する。
【0031】
SUNワークステーションST3から印刷する場合は、上記変換プログラム54,64に相当する機能が標準化されていないため、アプリケーションプログラム75が直接通信プログラム73を介して通信する。ただし、市販のアプリケーションプログラム、例えば FrameMaker (商品名)から印刷できるようにする為、MIF/CaPSL 変換用の変換プログラム74を間に入れている。
【0032】
原稿をスキャン(読み取り)する場合は、例えば MacintoshのステーションST1の場合、スキャナアプリケーションプログラム58からスキャナインタフェースプログラム57を介して通信プログラム53にスキャンの要求を出す。すると通信プログラム53は、イーサネットトランシーバ51,LAN96,イーサネットトランシーバ81およびTCP/IPプログラム82を介し、通信プログラム83との間に、End-to-End の通信路を確保し、スキャン命令を伝達するその命令はシステム全体制御プログラム93に伝えられ、スキャナ制御プログラムに対して第1のカラースキャナ/プリンタ94をスキャンさせるように要求する。
【0033】
スキャンされた原稿の画像データは逆に、第1制御ボード91,デバイスドライバ86,通信プログラム83,TCP/IPプログラム82,イーサネットトランシーバ81,LAN96,イーサネットトランシーバ51,TCP/IPプログラム52,通信プログラム53,デバイスドライバー57,スキャナアプリケーションプログラム58の順に伝達される。
【0034】
IBM-PCのステーションST2で原稿をスキャンする場合も同様であるが、SUNワークステーションST3からスキャンする場合は、デバイスドライバー57,スキャナインタフェースプログラム67に相当する機能が標準化されていないため、スキャナアプリケーションプログラム76が直接通信プログラム73を介して通信する。なお、スキャナインタフェースプログラム57,67はスキャナアプリケーションと通信プログラムとのデータの制御を行う。
【0035】
カラーSPサーバーSP1には、もう1台のスキャナ/プリンタである第2のカラースキャナ/プリンタ95が接続されており、第2の制御ボード92を介して第2のカラースキャナ/プリンタ95を同様に制御する。
【0036】
システム全体制御プログラム93を始めとするカラーSPサーバーSP1の全てのプログラムは、例えばVxWorks (商品名)と言うシステムプログラム(OS)の管理下で動作する。
【0037】
このサービスの為の特別なプログラム(例えば通信プログラム73,変換プログラム74等)を持たない一般のUNIXワークステーションからの要求を受け付ける為、カラーSPサーバーSP1には通信プログラム83と並行して、準業界標準の lpr/lpd通信プログラム90も載せている。
【0038】
図3は本発明に係るサーバー装置と各ホストコンピュータとのネットワーク構築状態を示す図である。
【0039】
この図に示すように、各ホストコンピュータHOST1〜Nは、 Macintosh(商品名)、IBM-PC(商品名)、SUN (商品名)等のホストコンピュータで、それぞれのOSによりデータ処理が制御されている。これらのホストコンピュータHOST1〜Nには、LAN96との通信を行うためのイーサネットインタフェースボード97,画像圧縮伸長ボード98,CPUボード99がそれぞれ設けられている。なお、画像圧縮伸長ボード98は、メモリ上でのソフトウエア処理により実現するものであっても良い。また、画像データを入出力する際に、圧縮伸長を用いない場合には、画像圧縮伸長ボード98が不要となる。さらに、本実施例ではLAN96としてイーサネットを使用しているが、ネットワークの方法は、Apple talk(商品名),Taken Ring(商品名)等を利用するネットワークであってもいいし、通信プログラムもTCP/IPプログラムに代えてOSI,IPX(商品名)等で構成されるシステムでも本発明を適用できることは言うまでもない。
【0040】
図4は、図1に示したメインCPU回路1,イーサネット回路2,JPEG圧縮回路3より構成されるボード回路の詳細構成を説明する回路ブロック図である。
【0041】
図において、101は例えばIDT79R3051(商品名)等で構成されるCPUで、ボード回路全体を制御する。なお、ボード回路にはリアルタイムOSが搭載されている。このOS上で起動されている図2に示した通信プログラム83,システム全体制御プログラム93,スキャナ制御プログラム85,PDLインタープリタープログラム84等をCPU101が起動し、マルチプロセスに動作を制御する。
【0042】
102は主記憶メモリで、CPU101のワークメモリとして機能する。なお、本システムが電源投入されると、EPROM107内に記憶されている上記各プログラムやSCSIポート112に接続されたハードディスク等の補助記憶装置またはネットワーク上のホストコンピュータに記憶されているプログラムを本メモリ上にダウンロードして配置される。このため、各プロセスのプログラム自体は主記憶メモリ102上にあり、ここで動作する。
【0043】
103はバンドメモリで、画像データをラスタ方法に数ライン分蓄積できるバンドメモリである。当該バンドメモリ103は、PDLデータをビットマップデータに展開するためのメモリである。PDLは通常1ページ分のビットマップデータを作成してから、プリンタエンジン側にデータを送るが、本システムでは、1ページを数バンドに分割してビットマップ展開を行う手法をとる。これは、PDLインタープリタープログラム84がPDLデータの並べ替え作業を行うことにより実現する。当該バンドメモリ103に展開されたビットマップデータは、プリンタ側に送られる。その後、次のバンド分の展開が行われて、再びプリンタ側に送られる。この繰り返しにより、1ページ分のプリントが行われる。
【0044】
また、スキャナ側から画像データを読み込む時にも、一時的に本バンドメモリに蓄積される。CPU101あるいは本システムでは記載していないダイレクトメモリアクセス(DMA)のブロック転送機能を用いて、当該バンドメモリ103より画像データを読み出し、SCSIポート112に接続されたハードディスクあるいはイーサネットポート114に接続されたネットワークを介して、ホストコンピュータ側に転送される。1バンド分のデータが転送されると、再び次のバンド幅分のスキャンデータを入力して繰り返す。
【0045】
104はメモリアクセスコントローラで、主記憶メモリ102,バンドメモリ103を構築するDRAMのアクセスとリフレッシュをコントロールする。通常DRAMは1ワード(8,16,32ビット等)毎アクセスする方法、ある一定長の連続アクセスする方法(ページREAD,Write)、DRAMのバンクを分けて交互にアクセスを繰り返し、アドレス発生は先行して発生させるインタリーブ方法のアクセス方法があるが、これらの方法を提供しメモリのアクセスの高速化を図っている。ただし、主記憶メモリ102,バンドメモリ103がSRAMで構成された場合には、リフレッシュ機能は必要はない。105はメモリクリアコントローラで、バンドメモリ103のデータを高速にクリアする。
【0046】
図5は、図4に示したメモリクリアコントローラ105の詳細構成を説明するブロック図である。
【0047】
図において、201はアドレス発生部で、クリアスタート信号に応じてアドレスバッファ部203にクリアすべきアドレスを出力する。202はデータラッチで、クリアデータをデータバッファ部204に出力する。
【0048】
このように構成されたボード回路(メインCPU回路1,イーサネット回路2,JPEG圧縮回路3より構成される)において、先ず、CPU101がバンドメモリ103内のデータを他の記憶装置あるいはインタフェースに転送されたことを確認すると、アドレスバッファ203,データバッファ204をイネーブルにする。それに対して、バンドメモリ103への他のアクセス手段をディセーブルにする。データラッチ202には、システムの立ち上げ時のイニシャライズであるデータ、例えば「00」を設定しておく。CPU101は、アドレス発生部201に対して、クリアスタート信号を送る。これに応じて、アドレス発生部201はアドレスを順次発生して、データラッチ部202に保持されたデータをメモリアクセスコントローラ104を通して、バンドメモリ103に書込む。全メモリ分の書込みが終了したら、アドレス発生部201は、CPU101にクリアエンド信号を送り、クリア動作を終了する。
【0049】
クリア動作は、バンドメモリ103上の画像データがプリンタデバイスに転送されると、行われた次のバンドの画像データがPDLインタープリタープログラム84により展開される。その時、PDLインタープリタープログラム84は、必要な部分にしかビットマップ展開を行わない。例えば図6の(1)に示すバンドの後半の画像、(2)に示すバンドの展開は、(2)に属する画像のみが書込まれる。このため、図6の(1)で既に転送し終った画像データは、不要データとして残ってしまう。もし、メモリクリアをしなければ、(1)および(2)に示した画像が混在する画像データがバンドメモリ103上に書込まれた状態となってしまう。そこで、上記メモリクリアが必要となる。105はメモリクリアコントローラは、上記メモリクリア処理をハード化し、高速処理を可能としている。
【0050】
画像描画処理回路106は、PDLインタープリタープログラム84の描画機能をハードウエアで補助するために構成された回路である。PDLインタープリタープログラム84は線を描いたり、図形の塗りつぶしが非常に多く、相当の時間を必要とする。例えば図7に示すような図形(1)〜(3)に囲まれた部分の塗りつぶしは、図中矢印で示すように塗りつぶし処理が実行される。
【0051】
図8は、図5に示した画像描画処理回路106の詳細構成を説明するブロック図である。
【0052】
図において、106Aはアドレス発生部で、描画スタート信号に応じてアドレスバッファ部106Cにクリアすべきアドレスを出力する。106Bはデータラッチで、描画データをデータバッファ部106Dに出力する。
【0053】
このように構成されたボード回路において、先ず、CPU101がPDLインタープログラム84による処理結果から、現在のバンド幅内に、線の描画や図形の塗りつぶしがある場合、画像描画処理回路106へ指令する。先ず、データラッチ106Bに描画データをラッチさせる。次に、アドレス発生部106Aに開始アドレスとカウント数(1ライン分の描画量)を設定する。ただし、カウント数は終了アドレスを設定する構成であっても良い。そして、アドレスバッファ106C,データバッファ106Dをイネーブルにする。それに対して、バンドメモリ103への他のアクセス手段をディセーブルにする。CPU101は、アドレス発生部106Aに対して、描画スタート信号を送る。これに応じて、アドレス発生部106Aは開始アドレス値より順次アドレスを発生して、データラッチ部106Bに保持されたデータをメモリコントローラ104を通して、バンドメモリ103に書き込む。カウント数部(終了アドレス)に達したら、メモリ書き込みを止めて、描画エンド信号を送り、次の開始アドレスとカウント数を設定し、再びメモリへ書き込みを行う。バンド幅分の描画を終了すると、バンド幅分の描画を終了する。
【0054】
描画動作は、クリア動作と同様にハードウエアによる高速化を図ったものであが、例えば専用のLSIが描画処理をすべて受け持ち、CPU101による補助を軽減する構成としても良い。
【0055】
一方、図4において、107は電源投入時に、CPU101が最初にアクセスするEPROMで、本システムをコントロールする上記各種プログラムが記憶されている。なお、EPROM107には、次の2つの記憶方法が可能である。第1の方法としては、プログラムがそのまま実行可能な形式で記憶する場合、第2の方法としては、プログラム全体を可逆的な圧縮方法により圧縮し、その形態で記憶しておき、電源投入後、伸長しながら、主記憶メモリ102に再配置する場合等である。
【0056】
しかしながら、第1の方法による場合は、EPROM107は、そのまま実行可能なメモリとなるため、主記憶メモリ102に再配置されるより、主記憶メモリ102の節約になるが、EPROM107自身の容量を大きくすることと、アクセスが一般にEPROMは遅いという欠点がある。また、第2の方法による場合は、プログラム全体を圧縮するため、たくさんの量のプログラムをEPROM107に記憶させることができるため、EPROM107の記憶容量を削減できるとともに、主記憶上に再配置するため、アクセスが高速となる長所を有するが、主記憶メモリ102の容量を大きくする必要が生じる等の欠点もある。そこで、本実施例では第2の方法を採用している。
【0057】
108はEEPROMで、電源が切られても記憶データを失わず、電源投入後の起動時に、データの書き換えが可能なデバイスである。このため、ネットワーク上のアドレスの記憶やスキャナ,プリンタ側の設定パラメータの記憶等に利用される。109は時計回路(RTC)で、時刻合せが可能であるとともに、電源OFF時でも、内部に持つバッテリにより時間がそのまま進行する。これにより、実時間を知ることが可能となり、スキャン時やプリント時の情報として利用される。110はタイマで、インターバルタイマである。本システムのプログラムはマルチプログラムで動作しているが、その管理は、リアルタイムOSが行っている。タイマ110は、数ミリsec 毎のインターバルタイムをCPU101に通知しており、このタイマ110と優先順位スケジューラにより、各プログラムにCPU101を割り当てている。
【0058】
111はSCSIコントローラで、周辺機器インタフェースの標準規格であるSCSIの制御を行う。112はSCSIポートで、周辺機器を接続するためのパラレル入出力I/Fポートである。113はイーサネットコントローラで、本システムをネットワークの1方式であるLAN96に接続し、データのやり取りを行うための制御部として機能する。イーサネットコントローラ113は、内部に小さなバッファメモリを有し、非同期式のCPUと同期式のネットワークとの時間的整合性を取っている。ネットワークより転送されてくるデータは、このバッファメモリに蓄えられ、逆にネットワークにデータを転送する場合もここから送信される。イーサネットコントローラ113は、電気的タイミングの制御とデータの転送,転入の制御を行っている。TCP/IPの通信プログラム82の制御は、イーサネットコントローラ113を用いてCPU101が制御している。
【0059】
イーサネットポート114は太い同軸ケーブル114aを媒体として用いる。I/Fの形状は、15ピンのコネクタである。114bのTwistPairタイプポートは、4線式の媒体を持ちいる。I/Fの形状は8ピンのモジュラジャックである。これらのポートを利用して、エーサネットワークに接続される。115はADCT圧縮/伸長回路は、RGB(RED,GREEN,Blue)で構成される中間調データ(各色8ビット)を、CCITT規格JPEG方式のアルゴリズムを用いた圧縮および伸長を行う回路である。スキャナより読み込まれたカラー中間調データを圧縮する場合は、スキャナ側から読み込まれた生画像データをADCT圧縮/伸長回路115を用いて圧縮し、小さなメモリ量にする。このためネットワーク転送のスピードアップや蓄積メモリの削減といった効果が得られる。また、ネットワークを介して転送されてきた圧縮画像データをADCT圧縮/伸長回路115を用いて伸長し、カラー中間調データに戻して、バンドメモリ103に書き込み、プリンタI/Fに転送されて、プリンタデバイスより印字される。
【0060】
116はFIFOメモリで、ADCT圧縮/伸長回路115へ圧縮画像データを送ったり、受け取ったりするために用いられる。FIFOメモリ116は、圧縮動作,伸長動作時の圧縮データと伸長データ(生画像データ)のデータ量の違いによるデータの転送タイミングのずれを吸収するために用いられる。117はRS232Cコントローラ部で、標準のシリアルI/Fの制御を行う。118はRS232Cポートで、Achannel118aとBchannel118bの2ポートが用意され、一方を端末接続用にして、ディスプレイ表示とキーボード入力を可能としている。また、もう一方はシリアルインタフェースを有するデバイス接続用にしている。ここには、レーザビームプリンタのようなキャラクタプリンタや簡易スキャナの接続が可能となっている。
【0061】
なお、本システムでは、Achannelを端末接続用にしており、ここに端末を接続して、コマンドの入力やパラメータの変更を行うようにしている。ただし、本システムは疑似端末機能も有し、ネットワーク上のホストコンピュータより,rloginしてAchannelと同じ操作も可能としている。
【0062】
119はセントロニクスI/Fコントローラ部で、セントロニクスI/F準拠のプリンタの接続のためのI/Fコントロールを行う。実際には、接続先のデバイスの状態(BUSY/non)を確認して、8ビットのデータを出力する。これの繰り返しでデータを転送する。その他セントロニクスI/Fに準拠した信号の制御を行っている。120はセントロニクスI/Fポートで、実際にケーブルが接続されて、プリンタとの電気的関係を結ぶ。121はVMEコントローラで、本システムのCPU101がVMEbusの規格に準拠おした他のボードをアクセスするためのコントロールを行う。なお、VMEbus規格では、アドレスバスA16,A24,A32、データバスD8,D16,D24,D32のバスをアクセス可能に構成されている。バスの使用権は、アービトレーション方式より与えられる。その他、VMEbusの規格に適合した制御を本回路で実現する。122はVMEbusポートで、ダブルハイトのVMEbusを電気的に接続する。当該VMEbusポート122は、6ピンのコネクタ2つで構成され、この中にアドレスバス,データバス等が配置されている。
【0063】
123はリセットスイッチで、本システムにおいて異常が発生した場合に、最終的手段として、システムを再立ち上げする場合に押下される。なお、リセットスイッチ123は、本実施例ではハード的なスイッチ機構であるが、上述したRS232Cポート118に接続された端末、あるいはネットワークからrloginした疑似端末から、プログラムでリセットするプログラムRESET(ウオームRESET)として構成しても良い。
【0064】
124はLED部で、電源ON時を示すLED124a,CPU101が実行中を示すLED124b,各プログラムが自由に点灯可能なLED124c等より構成されている。これにより、LED124aが点灯中であれば、本システムが電源の入湯状態であることを操作者が視覚的に確認することができる。また、LED124bが点灯中であれば、CPU101が実行中であることを、LED124bが消灯中であれば、CPU101がウエイト状態であることを操作者が視覚的に確認することができる。頻繁に点灯するLED124cは、何かの処理が現在実行されていることを操作者が視覚的に確認することができ、点灯時間,間隔,回数等の相違により、どのプログラムによりLEDが点灯したか等を識別可能となる。
【0065】
以下、ネットワーク上のホストコンピュータからのプリント要求処理におけるデータの流れについて詳述する。
【0066】
ネットワーク、すなわちLAN96に接続されたホストコンピュータがデータをプリントしたい場合、SPサーバシステムにデータと出力先を指定する情報を送る。この際、SCSIポートにハードディスクが接続されている場合、データは一旦ハードディスクに蓄積(スプール)される。また、ハードディスクがない場合は、主記憶メモリ102に一旦蓄積される。転送されてくるデータ形式としては、下記(1)〜(3)の3通りである。
【0067】
(1)PDL形式のデータ
(2)生画像形成のデータ
(3)圧縮画像形成のデータ
このうち、(1)のPDL形式のデータの場合には、PDLインタープリタープログラム84が起動され、バンド幅毎のビットマップ展開が行われて、バンドメモリ103に書き込まれる。バンドメモリ分のデータが揃うと、プリンタ側に転送され、次のバンド幅分のビットマップ展開が行われる。
【0068】
一方、(2)の生画像形成のデータの場合は、バンドメモリ103にバンド幅分データが書き込まれ、指定されたプリンタ側に転送される。そして、次のバンド幅分のデータが用意される。生画像形式の場合、データ量が多いので、ホストコンピュータ側からは全部のデータを一括して転送するのではなく、分割して送る。そのため、プリントの最中もネットワークよりデータを受け取る作業が行われる。
【0069】
さらに、(3)の画像圧縮形式のデータの場合は、圧縮画像データをFIFOメモリ116に書き込み、ADCT伸長回路115により生画像データに変換する。伸長後のデータは、バンドメモリ103にバンド幅分データが書き込まれ、指定されたプリンタ側に転送される。以下、同様の処理をそれぞれ繰り返す。なお、画像データの形式が、単一形式ではなく、上記データ形式が組み合わさった複合データの場合もある。すなわち上記(1)のデータ形式と(2)のデータ形式との組み合わせ、もしくは上記(1)のデータ形式と(3)のデータ形式との組み合わせの場合には、それぞれ上記の処理を行う。
【0070】
画像データを転送するプリンタデバイスのI/Fは、VMEバス122上に構成したインタフェースボードを介して接続する場合、RS232Cポート118に接続した場合、セントロニクスI/Fポート120に接続した場合がある。これは、ホストコンピュータがどのI/Fに接続されたプリンタにより印刷したかにより行先が決定される。
【0071】
バンドメモリ103上のデータは、1バンド幅分のデータ転送が終了すると、クリアコントローラ105がメモリクリアを行う。その後、再びPDL展開を行い、バンド幅が揃うと、指定されたプリンタ側のインタフェース回路にデータが転送され、デバイスドライバ86によるインタフェース回路(制御ボード)の制御によりプリンタでの出力処理が行われる。この繰り返しである。ネットワーク上のホストコンピュータがスキャナより画像データを入力したい場合、本システムは、スキャナ起動のための指定情報をホストコンピュータからもらい、画像入力を開始する。スキャナデバイスのインタフェースは、VMEバス122上に構成したI/Fボードを介して接続する場合、RS232Cポート118に接続する場合がある。この指定もホストコンピュータが指定する。
【0072】
スキャナから入力される画像データは、バンドメモリ103にバンド幅分蓄積される。スキャナからの画像データを指定されたホストコンピュータに転送する場合、スキャナ制御プログラム85によって次の2通りの加工が行われる。
【0073】
第1の加工としては、生画像形式のデータ、ただし、画像情報のタグを付加したものを含み、第2の加工としては、圧縮画像形式のデータである。
【0074】
このうち、データ加工形式が生画像形式のデータの場合には、バンドメモリ103上のデータを、順次ネットワークを介して指定されたホストコンピュータに転送する方法と、一旦SCSIポート112に接続されたハードディスクに蓄積される場合がある。いずれも、ホストコンピュータよりの指定情報で選択される。また、画像情報を記録したタグをつける場合には、それを付加して転送する。
【0075】
一方、データ加工形式が圧縮画像形式のデータの場合は、バンドメモリ103上のデータは、ADCT圧縮回路115に送られ、圧縮されて、FIFOメモリ116に圧縮後のデータが書き出される。そして、FIFOメモリ116より読み出してはホストコンピュータへ転送し、次のバンド幅分の処理を繰り返し行い、圧縮画像データを得る。ハードディスクを有する場合は、一時的に蓄積するという点が違うだけで、他は上述と同様である。
【0076】
以下、図9に示す回路ブロック図を参照しながら図1に示した第1のSPインタフェース回路4−1の詳細構成について説明する。
【0077】
図9は、図1に示した第1のSPインタフェース回路4−1の内部構成を説明するブロック図であり、図1と同一のものには同じ符号を付してある。
【0078】
図において、1000はCPUで、ROM1002に格納された上記各種制御プログラムに基づいてボード回路の内部バス1001に接続される各デバイスを制御する。1003はRAMで、CPU1000のワークメモリ等として機能する。1004はネットワークコントローラで、LAN96に接続されるステーションとのアクセスを制御する。1005はバンドメモリで、バンド幅分のデータを記憶する。1006は標準圧縮伸長部で、画像データの圧縮伸長を行う。1007はSCSIコントローラで、ハードディスク1008等が接続されている。
【0079】
211は前記第1のSPインタフェース回路4−1を総括的に制御するCPUで、ROM212に記憶された制御プログラム(デバイスドライバ86を補足するプログラム)に基づいてボード内部バスに接続される各デバイスを制御するとともに、各部の初期設定やスキャナ,プリンタとのコマンドのやり取りを行う。213はRAMで、CPU211のワークメモリ等として機能する。214はDPRAMで、第1のSPインタフェース回路4−1とボード回路とのコマンドのやり取りを行うRAMで、CPU211とVMEバス16を介してボード回路のCPU1000が共に独立してメモリアクセス可能に構成されている。215,216はバッファメモリで、CPU211とCPU1000との衝突を避けるために機能する。
【0080】
218はリアルタイム圧縮伸長部で、多値画像データをリアルタイムで圧縮伸長するものである。ここで、リアルタイムとは、ビデオインタフェース220を通じて入力される画像データの速度、例えば約15MHz(32ビット)で画像データのやり取りをする速度と同時間で処理することを意味する。圧縮メモリ17は、リアルタイム圧縮伸長部218で圧縮したデータを格納する。219はラインバッファで、8ラインのラスタ方向のデータを保存するメモリとして機能する。なお、当該ラインバッファ219はリアルタイム圧縮伸長部218からは、8×8のマトリクスでADCT圧縮に準じたランダムアクセスが可能となっている。217はDMAコントローラで、圧縮メモリ17とリアルタイム圧縮伸長部218との間をCPU211を介さずにデータを移動させるためのものである。
【0081】
ビデオインタフェース220aは、スキャナ94A,プリンタ94Bとのインタフェースである。220bは制御インタフェースである。
【0082】
以下、ホストコンピュータからの指定情報に基づく第1〜第4のモード処理について図9を参照しながら詳述する。なお、各モード処理は、ROM1002に格納された画像入出力装置制御プログラム85とROM212に格納されたデバイスドライバ85を実行することによって行われる。
〔第1のモード処理〕
先ず、第1のモード処理(画像プリントモード処理)では、メインCPU回路1のバンドメモリ1005内の生画像データを、VMEバス16を経由して受け取り、リアルタイム圧縮伸長部218で圧縮した後、圧縮メモリ17に一旦、圧縮画像の形態で蓄えられる。この動作は、1ページ分行われ、1ページ(1画面)分の圧縮が終了したところで、プリンタ94Bを起動する。次に、圧縮メモリ17に一旦、圧縮画像の形態で蓄えられた圧縮画像データをDMAコントローラ217が読み出し、リアルタイム圧縮伸長部218に送る。この際、伸長回路により、生画像データに復元する。伸長された生画像データは、順次ビデオインタフェース220よりプリンタ94Bへ転送される。なお、その際画像伸長動作はプリンタ94Bのデータ処理速度に同期して、超高速に伸長する。また場合によっては、画像処理を施した後にプリンタ94Bにデータを送り、プリンタ処理を行う。
〔第2のモード処理〕
第2のモード処理(画像スキャンモード処理)では、スキャナ94Aより、ビデオインタフェース220aを介して入力されてくる画像データを、そのスピードに同期して超高速に、リアルタイム圧縮伸長部218の圧縮機能を用いて画像圧縮を行い、DMAコントローラ217により、出力される圧縮画像データを圧縮メモリ17に一旦格納する。1画面分のスキャンが終了したところで、ボード回路のCPU1000は再びリアルタイム圧縮伸長部218の伸長回路により圧縮メモリ17に蓄えられた圧縮画像データを伸長し、生画像データに戻す。その生画像データは、VMEバス16を経由してボード回路に送られる。ボード回路は、ホストコンピュータ側が、生画像データを要求している場合はそのまま指定されたホストコンピュータへ転送し、もし、圧縮画像データを要求した場合には、ボード回路上の圧縮機能処理により圧縮して指定されたホストコンピュータへ転送する。
〔第3のモード処理〕
第3のモード処理(標準圧縮画像プリントモード処理)では、ボード回路が圧縮画像データをネットワーク上のホストコンピュータから受け取ると、そこで伸長せずに、圧縮画像データのまま指定された第1のSPインタフェース回路4−1に送る。第1のSPインタフェース回路4−1では、圧縮メモリ17に圧縮画像データを蓄え、その後指定されたプリンタ94Bを起動し、圧縮画像データをリアルタイム圧縮伸長部218の伸長機能により、プリンタ94Bのプリントスピードに同期して画像伸長を行いプリントする。
〔第4のモード処理〕
第4のモード処理(標準圧縮画像スキャンモード処理)では、スキャナ94Aの走査速度に同期して、超高速にリアルタイム圧縮伸長部218の圧縮機能により画像圧縮を行い、圧縮メモリ17に一旦圧縮画像データを蓄える。1画面分のスキャンが終了したところで、ボード回路のCPU1000は、圧縮画像データをそのままVMEバス16を経由して取り込む。
【0083】
なお、上記第1および第2のモード処理では、生画像データで第1のSPインタフェース回路4−1とインタフェースするため、第1のSPインタフェース回路4−1内では画像通信に必要とされる標準の圧縮伸長処理を行うことは必ずしも必要ではなく、高速化やその他の目的に応じた独自の圧縮伸長が行える。
【0084】
また、上記第2,4のモード処理では、スキャナ94Aの読取りデータを直接圧縮をかける場合について記述したが、スキャナの読み取りデータに線密度変換や色空間変換等の画像処理を施した後に、リアルタイム圧縮伸長部218が画像圧縮をかけても良く、制限するものではない。また、画像処理機能は、画像圧縮伸長部とスキャナ94A,プリンタ94Bとの間に設ける構成であっても良いし、画像圧縮伸長部をスキャナ94A,プリンタ94B内に設ける構成であっても良い。
【0085】
以下、図10に示すブロック図を参照しながらリアルタイム圧縮伸長部218の構成および動作について説明する。
【0086】
図10は、図9に示したリアルタイム圧縮伸長部218の詳細構成の一例を示すブロック図であり、特に本実施例では圧縮伸長方式として、ADCT方式を採用している。
【0087】
データ圧縮時は、生画像データは、先ず外部のラインバッファ219に蓄えられた後で、色空間変換部221に入力されて、RGBデータからY,Cr,Cb等の色空間に変換される。そして、場合によっては、Cr,Cbは色差成分として、サブサンプリングされ、画像の持つ冗長度を落される。次いで、8×8画素毎にDCT計算部222において、周波数空間に変換される。次に、図11に示すようにDCT係数はジグザグスキャン部223でスキャンされ、量子化部224で量子化される。この時に、量子化の係数は、量子化テーブル225に記憶されていて、DCT係数の8×8に対応するようになっている。次に、内部FIFOメモリ226に一旦蓄えられ、所望のタイミングでハフマン符号化部227でハフマンテーブル228を参照して符号化した後にでき上がった圧縮画像データは、外部のホストコンピュータ等からアクセスできるCODECレジスタ229に値が格納される。
【0088】
ところで、色空間変換部221,DCT計算部222,ジグザグスキャン部223,量子化部224,量子化テーブル225等でパイプライン動作部が構成され、タイミング生成用のクロックに同期して動作し、高速で動作する。また、ハフマン符号化部227,ハフマンテーブル228,CODECレジスタ229等で非同期動作部が構成され、外部CPUがCODECレジスタ229をアクセスするスピードに同調して動作するように構成されており、CPUのスピードやDMAに間に合う程度であって、あまり高速には動作しない部分である。また、パイプライン動作部は、スキャナ94A,プリンタ94Bの画像転送クロックに追従できるように高速動作が可能に構成されている。従って、内部FIFOメモリ226は、同期系のパイプライン動作部と非同期動作部の動作スピードの緩衝のために設けられている。
【0089】
また、画質を高めるために圧縮率を下げると圧縮データが増え、非同期動作部の処理量が多くなり、非同期動作部の処理スピードが間に合わなくなる。ただし、色空間変換部221の生画像データのインタフェースは、スキャナ94A、プリンタ94B以外にも接続可能で、外部にFIFOメモリを設けて、CPU等からの非同期アクセスを受けることが可能で、この場合はパイプライン動作部を低速で動作させたり、一時停止させることが可能である。従って、非同期動作部はスピード的に問題はなくなる。
【0090】
また、本実施例では画像圧縮伸長部を複数(例えば2つ)有し、生画像データを複数に分割して、それぞれの画像圧縮伸長部に与えることにより高速動作するスキャナやプリンタ等に接続することが可能となる。このように、複数に分割された画像データの圧縮であるならば、伸長時にも同様にスピード問題は解決される。
【0091】
伸長時の動作は基本的には圧縮時の逆プロセスになるわけであるが、図10に示すように、圧縮画像データは、CODECレジスタ229に渡されると、ハフマン符号化部227でハフマンテーブル228を参照しながら逆ハフマン符号化、すなわちデコードされる。その値は一旦内部FIFOメモリ226でスピードの緩衝を受けながら、量子化部224で逆量子化される。逆量子化は量子化テーブル225の8×8の量子化係数を乗算することで行われる。そして、ジグザグスキャン部223で逆ジグザグスキャンされて、DCT計算部222にDCT係数として渡される。そして、色空間変換部221において圧縮色空間であるY,Cr,Cb等よりもとのRGB空間等に戻される。
【0092】
また、DCT計算部222では、DCT計算,逆DCT計算は、計算のパラメータを入れ替えるだけで同一回路で処理される。色空間変換部221でも、その変換が線形一次変換等の場合には、同様にパラメータ変換で行える。
【0093】
さらに、量子化部224も同様で量子化は割り算等,逆量子化は掛け算を行うが、割り算も、割る量子化係数を逆数で持つことにより掛け算になるので、同一回路で圧縮伸長とも可能である。以下、図12〜図15を参照しながら第1のSPインタフェース回路4−1の各モードの動作を例にしてさらに詳細に説明する。
【0094】
図12は、第1のSPインタフェース回路4−1のパート構成の概略を説明するブロック図である。
【0095】
図において、1100は画像処理制御部で、VMEバスインタフェース,画像圧縮伸長部,CPU回路部等から構成され、後述する図13に詳細を示す。
1200はつなぎメモリ制御部で、後述する図14に詳細を示す。1300は画像入出力制御部で、スキャナ,プリンタを備えるカラーレーザ複写装置(CLC),スキャナ,プリンタを備えるバブルジェットカラー複写装置(BJC)とのI/Oを制御する。なお、詳細は図15に示す。
【0096】
図13〜図15は、図1に示した第1のSPインタフェース回路4−1の詳細内部構成を説明する回路ブロック図であり、図1と同一のものには同じ符号を付してある。
【0097】
図9に示すボード回路のCPU1000より、画面を2分割されたデータのまず右面についての処理において、画像データはVMEインタフェース301よりまずFIFOメモリ302にデータがバッファ303を介して書き込まれる。FIFOメモリ302よりはバッファ304を介して一旦SRAM305に蓄積される。SRAM305の動作は、画像圧縮伸長部のパイプライン部に同期して動作する。RAM305に画像の垂直方向8ライン分のデータが蓄積されると、画像圧縮伸長部306は水平,垂直8×8単位ずつSRAM305より読み出して動作し、得られた圧縮データはDMAコントローラ部307を介してDRAM308に順次書き込まれる。この時、DMAコントローラ部307はアドレスカウンタ309を操作してアドレスを発生し、またはカウントアップしてセレクタ310を介してDRAM308に与える。なお、第3のモードでは、VMEインタフェース301およびセレクタ310を介してボード回路のCPU1000がアドレスを与え、かつインタフェース変換部312を介してDRAM308とのデータ更新を行うことになる。これにより、直接圧縮データをDRAM308に送ることが可能であり、画面を左右に2分割にしていない標準の圧縮データを扱うことも可能である。ただし、低い圧縮率のデータには不向きである。
【0098】
また、DRAM308はリフレッシュ回路313より常にリフレッシュが行なわれ、データの維持がなされる。次に、DRAM308のデータをプリンタ94Bに出力する動作を説明すると、DRAM308よりDMAコントローラ307により書き込み時と同様な制御で圧縮伸長部306にデータが読み出されると、伸長が行なわれ、生データがバッファ304からFIFOメモリ302からの出力データはセレクタにおいて画像の左右のいずれかの面が選択されて、ラッチ315に与えられる。
【0099】
次に、ガンマ変換部325でガンマ変換やLOG変換される。そして、マスキング回路316でCG用のマスキングを行ない、マスキング回路317で、自然画用のマスキングを行ない、セレクタ321で画像の性質に応じてどちらかを選択し、最終的に出力ガンマ調整部322で変換されてからラインドライバ324を介してプリンタ94Bに出力される。この時、出力ガンマ調整部322はガンマ設定レジスタ323に調整される。また、マスキング回路316はROMで構成され、マスキング回路317はロジックであって、黒生成のための黒テーブルが接続されるとともに、初期値データROM319の値が初期にロードされるようにタイミングコントローラ320も周辺に接続されている。プリンタ94Bが面順次の場合は、伸長動作を面の数だけ行ない、そのマスキング回路316,317は、出力色に応じたマスキング処理を行なう。
【0100】
以上が、画面を2分割にした場合の右面の処理の流れであり、左面についても同様の処理の流れが行なわれる。すなわち、バッファ325,FIFOメモリ302,バッファ327を経由してSRAM328に蓄えられた8ラインの画像データは、画像伸長部329において圧縮され、DMAコントローラ331,アドレスコントローラ335,セレクタ334によりコントロールされて、DRAM332に圧縮データとして書き込まれる。また、VMEインタフェース311より直接セレクタ334をインタフェース変換部330を介してボード回路のCPU1000が圧縮データを書き込んでも良いことは言うまでもない。また、リフレッシュ回路333がDRAM332のデータをリフレッシュし維持する。そして、画像プリント時には、DRAM332より読み出されたデータがDMAコントローラ331等のコントロール331等のコントロールを受け、画像圧縮伸長部329で伸長され、SRAM328,バッファ327,FIFOメモリ326を経由してセレクタ314に与えられ、以下上述の通り画像処理されて出力される。以上のようにして、モード1の処理が行なわれる。
【0101】
次に第2のモード処理動作について説明する。
【0102】
スキャナ94Aより各種の処理を受けて送出される画像データは、ラインレシーバにより受け取られ、バッファ341により画像の右面がバッファ342により画像の左面が、FIFOメモリ303,326に順次取り込まれる。それ以降は、第1のモードと同様の動作を行なう。すなわち、右面の処理動作について記述すれば、FIFOメモリ302に書き込まれた画像データは、バッファ304を経由してSRAM305に8ライン分が読み出されて書き込まれる。次に、圧縮伸長部306によりDRAM308に圧縮データが生成される。
【0103】
一方、第4のモードでは、VMEインタフェース311及びインタフェース変換部312,セレクタ310を介してボード回路のCPU1000が直接圧縮画像データを読み込むことが可能であるが、第2のモードでは、DRAM308の圧縮データを伸長してからボード回路のCPU1000に渡す。DRAM308よりインタフェース変換部312およびDMAコントローラ307,アドレスカウンタ309,セレクタ310によりコントロールされて、書き込まれた順に読み出された圧縮画像データは、画像圧縮伸長部306で伸長され、SRAM305に8×8単位毎に書き込まれ、8ライン分すべてが書き込まれた時点でバッファ304を経由して、水平ライン方向に連続して読み出され、FIFOメモリ302に書き込まれる。FIFOメモリ302では、ボード回路のCPU1000のタイミングに従って、バッファ303,VMEインタフェース301を介して、ボード回路のCPU1000に生画像データとして読み出される。
【0104】
ところで、セレクタ321が2つのマスキング回路316,317の選択については、RAM351にCG画像があるか、自然画像であるかの属性が書かれていて、水平方向カウンタ352,垂直方向カウンタ353より、処理画素位置のアドレスが生成され、セレクタ355を介してRAM351に与えられ、その読み出しデータにより、セレクタ321を制御する。従って、RAM351上の属性はボード回路のCPU1000よりVMEインタフェース301,セレクタ351を介し、RAM351上にあらかじめ書き込まれる。また、スキャナ94A,プリンタ94Bとのインタフェースは、S/Pタイミングコントローラ356により制御されている。
【0105】
次に、画像の左右面の切り替えの制御について説明する。
【0106】
垂直方向カウンタ363は、画像の垂直方向の有効部分について画像有効信号を送出するもので、ディレイレジスタ364は、画像先端の余白部分をセットするものである。長さレジスタ361は画像の有効長をセットし、比較器362において有効長以内で有れば、各部分に画像有効信号を送るものである。垂直方向の画像有効区間に加えて、水平方向の余白長をセットするディレイレジスタ366が接続され、画像の左端をカウントした後に有効信号を発する。カウンタコントローラ部367は、これを受けて水平左幅カウンタ368を起動する。この水平左幅カウンタ368は、ダウンカウンタとして機能し、幅分だけカウントを行ない、その間に左画面のイネーブル信号を発する。左画面が終了すると、カウンタコントローラ部372に対してイネーブルを発し、カウンタコントローラ部372は右画面の幅カウンタ373で幅分のカウントを行ない、終了状態を制御部389に与える。制御部389はセレクタ314に対して画像有効幅の終了を知らせて出力をクリアする。幅カウンタ368は、圧縮時にはライトパルスジェネレータ369を左画面有効幅で発生してマルチプレクサ371を介してFIFOメモリ326に左面のスキャナデータをかき込み、FIFOメモリ326はゲート381を介して圧縮伸長部329のリードパルスをマルチプレクサ371を介してFIFOメモリ326に与える。
【0107】
また、伸長時には、幅カウンタ368の左面有効信号をリードパルスジェネレータ370が受けて、マルチプレクサ371を介してFIFOメモリ326よりプリンタ94Bへ出力させる。
【0108】
一方、画像圧縮伸長部329のライトパルスがゲート381を介してマルチプレクサ371を介してFIFOメモリ326に与えられ、伸長データが書き込まれる。
【0109】
右面についても同様にライトパルスジェネレータ374,リードパルスジェネレータ375,マルチプレクサ376,ゲート382が同様の動作をすることは言うまでもない。また、画像圧縮伸長部329には内部のFIFOメモリ302の状態がスタート/ストップロジック386に与えられるとともに、周辺状態を検出するレジスタ385もスタート/ストップロジック386に与えられ、かつ外部のFIFOメモリ326の状態もFIFOメモリコントローラ部383を介してスタート/ストップロジック386に与えられ、内部のFIFOメモリ302及び外部のFIFOメモリ326がオーバーフローしたり、アンダーフローしたりしないように管理され、状態に応じて画像圧縮伸長部329のパイプライン部329をストップさせたり、スタートさせたりすることができる。
【0110】
同様に、状態レジスタ387,スタート/ストップロジック386,フィホコントローラ部384に管理され、圧縮伸長部306のパイプライン部がスタートしたり、ストップしたりする。なお、スタート/ストップでは、圧縮時に内部のパイプライン部が速すぎて内部のFIFOメモリ302がオーバーフローしそうな時や、伸長時に内部のパイプライン分が速すぎて内部のFIFOメモリ302がアンダーフローしそうな時の他の圧縮時に画像圧縮伸長部が速すぎて外部FIFOメモリ326がアンダーフローしそうな時、および伸長時に画像圧縮伸長部306が速すぎて外部FIFOメモリ326がオーバーフローしそうな時がある。
【0111】
また、エラー対策399は、スキャナ94A,プリンタ94Bが速すぎて画像圧縮伸長部306の処理速度が間に合わない時に、外部のFIFOメモリ326や内部のFIFOメモリ302がオーバーフローやアンダーフローを起こすので、スキャナ94A,プリンタ94B側のビデオ信号(ビデオ=画像)を一時的に止めるもので、スキャナ94Aでは1ライン単位でビデオが捨てられ、プリンタ94Bでは1ライン単位で余白が出力されるように簡易的なエラー処理が行なわれ、FIFOメモリをオーバーフローまたはアンダーフローされてビデオの流れを破壊することを防ぐ。従って、エラー対策部は、エラー情報を制御部388に渡すと、制御部389が1ラインの余白,左面有効部,右面有効部を把握して、1ラインの区切り目でエラー解除をエラー対策部399に出力する一方、エラー時にスキャナ94A,プリンタ94Bの入出力データをクリアするように各部に指示するとともに、エラー処理中に画像圧縮伸長部306がスキャナ94A,プリンタ94Bの処理速度に間に合わなかったにもかかわらず、1水平ラインの区切りまで圧縮または伸長動作をさせる。このことにより、1ラインの区切りで再びエラー復帰ができるのである。ただし、エラー処理中に圧縮では、白ラインを圧縮して圧縮速度をかせぎ、伸長では画像データはプリンタ94Bに間に合わないために捨てられる。
【0112】
以上の説明の中では、ボード回路のCPU1000がほとんどすべての管理を行なうように説明したが、本実施例では第1のSPインタフェース回路4−1の中にも内部のCPU392を有していて、第1のSPインタフェース回路4−1ないで処理できることは内部のCPU392が処理を分担することが可能で有る。また、第1のSPインタフェース回路4−1内にはデュアルポートRAM393を有し、両ポートはそれぞれVEMバスインタフェース311を介してボード回路のCPU1000が内部CPUバスを介して内部のCPU392に接続されている。このデュアルポートRAM393を介して、ボード回路のCPU1000と内部のCPU392に情報伝達が行なわれている。
【0113】
従って、第1のSPインタフェース回路4−1内のVMEバスへの2つのCPU1000およびCPU392からのアクセスは衝突することはない。この時、CPU392の内部バスに接続されているバス変換部394により画像圧縮伸長部306,329とのインタフェースがなされる。バス変換部394は、インタフェース変換部312,330と同様の機能を有し、レジスタインタフェース395を介してボード内の各種のレジスタとのインタフェースを行なうので、VEMバスのインタフェースとしての機能をも合わせて有している。
【0114】
さらに、内部のCPUバスには、CPU392のプログラムを格納するROM391,シリアル通信部390を有している。シリアル通信部390はスキャナ94A,プリンタ94Bとの動作制御をするコマンドが送られる。従って、本実施例では図9に示すボード回路のCPU1000は図13に示す内部のCPU392を介してスキャナ94A,プリンタ94Bを制御するか、ボード回路のCPU1000が直接スキャナ94A,プリンタ94Bを制御する構成となっている。なお、コントロールのコマンドとしては、実行コマンドとしてスキャナ94A,プリンタ94Bの起動命令の他に、状態検知コマンド,状態設定コマンドがある。状態検知コマンドは、プリンタ94Bの紙有り/紙無し,カセット有り/無しサイズ,その他のトナ残量,ジャム発生等多くのコマンドとともに、現在設定されている動作モード、すなわち単色/3色/4色や解像度、その他の画像処理パラメータの検知等が有る。スキャナ94Aに関しても、ほぼ同様で、その他の原稿台上の原稿有り/無しや、ランプ切れ等を知ることが可能で有る。
【0115】
一方、状態設定コマンドは、プリンタ94Bではカセットサイズ選択,カセット上下段選択,動作モードやプリント枚数設定や画像処理系のパラメータ設定等である。
【0116】
なお、スキャナ94Aについても同様で、例えば変倍率設定,2値/多値化設定,標準色空間変換,独自色空間変換,線密度(解像度変換),領域指定設定,ガンマ変換設定等が有る。
【0117】
なお、本実施例ではスキャナ94Aに多くの画像処理機能を持つために、第1のSPインタフェース回路4−1上では画像処理は行なわずに圧縮する。また、スキャナ94AよりRGBデータとしてデータ受信する。
【0118】
一方、プリンタ94Bは入力がCMYK入力であり、プリンタ部に画像処理をあまり有していないため、マスキング,ガンマ変換,LOG変換,CMYK生成は第1のSPインタフェース回路4−1上で処理される構成となっている。
【0119】
図16は、図1に示した第2のSPインタフェース回路4−2の詳細構成を説明するブロック図であり、図2に示したバブルジェト型のスキャナプリンタ95(プリンタ95B,スキャナ95A)とS/Pサーバー装置SP1とのデータ処理をインタフェースする。また、第2のSPインタフェース回路4−2は一体としてインタフェースボードとして構成されている。
【0120】
図において、401はCPUで、デュアルポートRAM403を介してVEMバスにつながっているボード回路からのコマンドを受け取り、解釈し、第2のSPインタフェース回路4−2内部の制御をする。CPU401は内蔵されたインターバルタイマによって2ms毎の割り込みを発生させ、バブルジェト型のプリンタ95B,スキャナ95Aとのコマンドの通信を行う。また、画像処理回路部404,405,406の各種パラメータの初期化および変更を行う。
【0121】
402はプログラム用のROMで、CPU401が実行する制御プログラム(デバイスドライバ86を補足するプログラム等)を格納するとともに、画像処理回路部404,405,406の初期値やプリセット値を格納する。
【0122】
デュアルポートRAM403はCPU401のワークエリア等として機能するとともに、VEMバスによってつながれたボード回路のCPU1000と、CPU401の両方からアクセスことで、両者間の通信を行う。
【0123】
画像処理回路部404は画像処理用ASICとして構成され、ルックアップテーブルにより階調変換を行う。例えばRGBデータをCMYKデータに変換するときは、LOG変換を行う。これはあらかじめROM402に変換テーブルを用意しておき、これを画像処理回路部404内のRAMに転送することで実現する。
【0124】
画像処理回路部405は画像処理用ASICとして構成され、4×5のマトリックス演算とルックアップテーブルにより階調変換を行う。このマトリックス演算によりスキャナ95Aのセンサの特性のRGB空間と標準色空間としてのNTSCーRGB色空間の変換または画像処理回路部404の変換した後のCMY(K)からプリンタ95Bの特性に合わせたCMYKへの変換( マスキング処理と呼ばれる) などを行う。さらにルックアップテーブルによってカラーバランスの調整が行える。これらの処理も画像処理回路部404と同様にあらかじめ様々なテーブルを用意しておき、ROMに格納しておき、用途に合わせて、選択して設定する。
【0125】
画像処理回路部406は画像処理用ASICとして構成され、データの2値化処理を行う。なお、本実施例に置ける二値化のアルゴリズムは平均濃度保存法であるを採用している。407はシリアル/ パラレル変換部でありスキャナ95A,プリンタ95Bへの通信のためにCPU401からの8ビットのパラレルのデータをシリアルデータに変換する。
【0126】
408は画像用DRAMである。プリンタ95のヘッドの画素数に合わせたバンド形式に合わせた大きさの画像用メモリである。スキャナ95Aまたはプリンタ95Bでは1回の走査の間は画像用クロックに従ってデータが流れ、動作を止められないために、1 バンドの大きさでのバッファリングが必要である。このためスキャナ95Aによってスキャンされるまたはプリンタ95Bにプリントされる1 バンド分の画像データをバッファリングを行う。
【0127】
また、VMEバス側からのラスタ形式のアクセスとスキャナ95A,プリンタ95Bよりの縦方向のアクセスとの走査形式の変換を行う。
【0128】
409はDRAMへのアドレスセレクタ、マルチプレクサで、DRAM408へのアクセスはVEMバス側からとスキャナ95A,プリンタ95B側からの2つがあり、これらからのアドレスの切り替えを行う。さらにDRAM408へのアドレスはROWアドレスとCOLUMアドレスに分けて供給するのでこのマルチプレックスを行う。
【0129】
410はDRAMのタイミングコントローラ部である。RAS,CAS,WE,OEなどのDRAMを制御する信号を作り出す。またリフレッシュ信号との調停を行う。
【0130】
411はタイミング回路で、スキャナ95A,プリンタ95Bのアクセスのタイミングを生成する。これはスキャナ95A,プリンタ95Bからの画像クロックや同期信号をもとにアクセスのタイミングを作り出す部分である。
【0131】
412はリフレッシュタイミング制御部である。DRAM408へのリフレッシュのタイミングを作り出す。スキャナ95A,プリンタ95Bのアクセスのすきまを使いスキャナ95A,プリンタ95Bのアクセスとが衝突しないように制御している。
【0132】
413はVMEタイミング制御部である。VMEバスからのアクセスのための制御信号の処理をする。AMコードのデコードや上位アドレスのデコード、割り込みの処理などである。
【0133】
414はスキャナ95A,プリンタ95Bのアクセスアドレス生成部である。スキャナ95A,プリンタ95Bのアクセスは通常のラスタ形式とは異なっているため、VMEバスからのアクセスのためにラスタ形式でかかれたメモりに対して、スキャナ95A,プリンタ95B用の特殊なアクセスのアドレスを生成する部分である。これはバンドの大きさで、走査方向の縦横をひっくり返すものである。
【0134】
415はVMEバスインタフェースデータバッファ部である。画像データは32ビット幅、コマンドは8ビット幅でアクセスをする。
【0135】
416はVMEバスインタフェースアドレスバッファ部である。画像データは24ビットのアドレス空間、コマンドは16ビットのアドレス空間でアクセスする。
【0136】
417はVMEバスインタフェースのデータとアドレス以外の部分のバッファである。
【0137】
418は画像処理部の入り口のバッファである。VMEバスからのアクセスおよびDRAMへアクセスは32ビット幅で行うが、画像処理部では8ビット幅で処理がなされる。このため32ビットのR,G,B,Xのデータを8ビットのデータとしてR,G,B,Xの順にシリアルに変換をする。
【0138】
419は画像処理部の出口のバッファで,バッファ418とは反対に、色順次に変化する8ビット幅のデータラインを4色分まとめて32ビットにする変換を行う。
【0139】
420は2値化処理後のバッファで、画像処理回路部406によって2値化されたデータは1ビットになっている。これを8ビットに拡張する。すなわち、「0」は「0x00」に、「1」は「0xFF」にする。
【0140】
421はバッファで、画像処理回路部406による2値化処理をバイパスする場合用のバッファで、バッファ420とこのバッファ421の出力のどちらか一方を選択して、2値と多値を切り替える。
【0141】
422はスキャナ95A,プリンタ95Bのインタフェースの通信部のバッファである。
【0142】
423はスキャナ95A,プリンタ95Bのインタフェースの入力データ用バッファである。
【0143】
424はスキャナ95A,プリンタ95Bのインタフェースの出力データ用バッファである。
【0144】
425はスキャナ95A,プリンタ95Bのインタフェースのクロック,制御信号用の入力バッファである。
【0145】
426はスキャナ95A,プリンタ95Bのインタフェースのクロック、制御信号用の出力バッファである。429はクロック入力ラインである。
【0146】
430は32ビットの画像用データバス,431は24ビットのアドレスバス、432は8ビットの画像データバス、433は8ビットの画像データバス、434は16ビットのローカルアドレスバス、435は8ビットのローカルデータバスである。以下、プリンタ95Bのプリント動作について説明する。
<プリント時の動作>
まず、VMEバスを通してボード回路より、プリントするにあたっての各種のパラメータがデュアルポートRAM403に書き込まれると、CPU401はこのデータを読み出して解釈して制御を行う。例えば、RGBデータのプリントであれば、CPU401は画像処理回路部404のLUTデータの変化を起こさないスルーの特性のテーブルをセットし、画像処理回路部405のマトリックスの係数テーブルにはNTSCーRGBからBJーRGBへの変換用の係数をセットし、画像処理回路部406の2値化処理をスルーするように、バッファ420,421のゲートを制御する。
【0147】
さらに、データのサイズ等のパラメータをセットする。そしてデータサイズなどのパラメータはのパラレル/ シリアル変換部407を通してプリンタ95Bへ伝えられる。次に、1 バンド分の画像データがVMEバスを通して、ボード回路よりメモリ408に転送される。このときVMEバスからは32ビットアクセスでRGBXのデータ形式でストアされる。RはRED、GはGREEN、BはBLUEのそれぞれの色成分の画像データであり、Xは黒文字用の情報を含んだ制御用データである。次にデュアルポートRAM403を介してプリント動作のコマンドが伝えられる。CPU401はプリント動作の開始命令をプリンタ95Bへ伝える。プリンタ95Bのプリンタ制御部から開始信号が帰ってくるとタイミング発生部411メモり408へのアクセスを始める。このときデータの読み出しはプリンタ95BのBJヘッドに沿った方向であるため、アドレス発生部414によって生成されたアドレスに従って読み出しを行う。メモり408から読み出されたデータはバッファ418でR,G,B,Xの順に8ビットデータに変換され画像処理部に入る。あらかじめ設定したパラメータによって、画像を処理し、NTSCーRGBデータはプリンタ95Bの内部で使われるRGB色空間に変換され、バッファ421,インタフェース424を通ってプリンタ95Bへ伝えられる。1 バンド分のデータの処理が終わったら、次のバンドのデータをVMEバスを介して受け取り、上記動作を繰り返す。所定の回数の処理を終えたら1 ページの処理が終了する。以下、ROM402に格納された制御プログラムによるスキャナ95Aの原稿読み取り動作について説明する。
<スキャン時の動作>
まず、VMEバスを通してボード回路より、スキャンするにあたっての各種のパラメータがデュアルポートRAM403に書き込まれる。CPU401はこのデータを読み取って解釈して、制御を行う。例えば、RGBの2値データで、1024×1024の大きさで512×512の位置からのスキャンとすると、CPU401は画像処理回路部404のLUTにスルーの特性のテーブルをセットし、画像処理回路部406のマトリックスの係数テーブルにはBJーRGBからNTSCーRGBへの変換用の係数をセットし、画像処理回路部406の2値化処理を通るようにバッファ420,421のゲートを制御する。さらに、スキャンする画像のサイズを1024×1024に、スキャンの開始位置を512×512に設定する。これらのパラメータはパラレル/ シリアル変換部407を通してスキャナ95Aへ伝えられる。次にCPU401はスキャナ95Aへスキャンの開始のコマンドを伝える。スキャナ95Aのスキャナ読取り部より入力された画像データはインタフェース423を通して画像処理回路部404,405,406に入力される。ここで予め設定したパラメータによる画像処理を行い、バッファ419によってRGBXの32ビットの形式のデータとしてメモリ408にストアされる。この時、メモリ408にはRGBXのデータが入っているが、この例での設定ではRGBの2値画像をスキャンするため、Xは意味のないデータであり、R,G,Bの各成分は2値データであるが1画素1バイトである。これを一般的な2値画像の要求する形式に、例えば8画素1 バイトのパッキングをしラスタライン順次にRGBを配置するといった処理はボード回路において行う。メモリ408にある画像データはVMEバスインタフェース415を介してボード回路へ転送される。上記の処理をバンドの回数分繰り返して、1 回のスキャンの動作を終了する。
【0148】
以下、図1に示したスキャナ94A,プリンタ94Bの画像データ処理について説明する。
【0149】
本実施例では図1に示したスキャナ94A,プリンタ94Bと一体としてカラー画像複写装置が形成されているため、画像処理機能は1系統しか有しておらず、スキャナ94A,プリンタ94Bを分離すると、1つの処理につき、どちらか一方しか有していない構成となっている。しかも、大部分の画像処理機能はスキャナ94Aに備えられ、プリンタ94Bは主として変倍,領域指定,色空間変換,ガンマ変換,色マスキング処理部等がある。
【0150】
スキャナ94Aには、色空間変換部や色マスキング処理部等を有しているので、ビデオインタフェースの切り口として、標準RGB(NTSCのRGB等)が用意されていて、RGBのデータは点順次またはパラレル同時に得られる。従って、プリンタ94Bに対しては、画像処理部を有していないので、C,M,Y,Kでデータを与えなければならず、外部でC,M,Yへの変換や黒(K)生成,色マスキング処理,その他必要に応じて解像度変換,トリミング等の画像処理を行なってから、ビデオインタフェースに送らなければならない。しかもその場合は、面順次に各色ずつC,M,Y,K4回繰り返し、画像を送出を行なわなければならない。また、スキャナ/プリンタともに途中で動作を停止したり、中断するようなことはできない。
【0151】
その他ビデオインタフェースには、水平同期信号,垂直同期信号およびビデオクロックが含まれてビデオデータとの同期をとっている。また、スキャナやプリンタの電源ON/OFF等のステータス情報も有しているので外部からの確認が可能である。また、コマンドインタフェースをシリアル通信で行なう機能も有しており、これにより、スキャナ94Aやプリンタ94Bの状態検知や状態設定、スキャナ94Aやプリンタ94Bの起動等の実行コマンド等を発行することができる。
【0152】
以下、図17及び図18を参照しながらスキャナ95A,プリンタ95Bの動作について更に説明する。
【0153】
図17は、図2に示したスキャナ/プリンタ95の画像記録プロセスを説明する模式図である。
【0154】
図において、101Rはスキャンする原稿を表し、102Rはプリントする用紙を表す。これらは、例えばA4サイズである。103Rはスキャナのセンサのヘッドを表し、104Rはプリンタのヘッドを表す。プリンタのヘッド104Rはバブルジェット方式によってインクを吹き出すノズルが並んでおり、例えば128のノズルから構成されている。
【0155】
一方、センサは128より多い画素をスキャンできるように、例えば144画素のデータを出力できる。これらのヘッドはカラーの場合、スキャナのセンサではRGBの3色分、プリンタヘッドではCMYKの4色分が並んで構成されている。105Rは画像処理部であり、スキャナセンサより入力したRGB信号を処理し、プリンタヘッドに合わせた特性のCMYK2値信号として送る。
【0156】
画像処理部105Rはその画像処理系の途中のインタフェース部106RからRGB各色8ビットのデータを外部とやり取りすることができる。スキャナ/プリンタ95Bではスキャナ95Aのセンサとプリンタ95Bのヘッドが同期して動き、画像処理部105Rはパイプライン構成となっているため、大きな容量の画像メモリを持たずに処理がなされている。このためインタフェース105Rでやり取りされるデータの走査形式は特殊なものとなっている。107Rは外部機器である。
【0157】
図18は、図2に示したスキャナ/プリンタ95Bのスキャナ95Aの原稿走査状態を示す模式図である。
【0158】
図において、201Rはヘッドの動きを示している。ヘッド自体は原稿( 用紙) に対して図のように横方向( 主走査方向) に動く、センサの各画素はこれとは垂直に配列している。このため、データ203Rが並ぶ。一方、一般的なラスタ走査形式ではデータ204Rのように並ぶ。
【0159】
図19は、図2に示したスキャナ/プリンタ95Bのスキャナ95Aのバンド原稿走査状態を示す模式図である。
【0160】
図において、301Rは1ページを示し、302Rは第1のセグメントを示し、303Rは第2のセグメントを示している。スキャナセンサから出力され画像処理系を通り2値化されるまでの画像では、セグメント304Rのようにセグメント305Rより大きな画像が扱われ、幅306Rの大きさだけ重複して処理がなされる。
【0161】
以下、図20〜図22を参照しながら本実施例に示したS/Pサーバー装置が制御可能なプリンタの一例について説明する。
【0162】
本実施例に示したS/Pサーバー装置が制御可能なプリンタとしては、セントロニクス・インターフェースを利用可能なプリンタである。セントロニクス・インターフェースは、米国セントロニクス社が自社のプリンタ用に開発したコンピュータからプリンタにデータを送るための規格で、安価でかつ高速のデータを送ることができる。現在のプリンタは、ほとんどこのセントロニクスが標準となっている。
【0163】
セントロニクスのデータ伝送は、図20に示すようにDATASTROBE信号,ACKNOWLEDGE(ACK)信号,BUSY信号用の3本の制御線とDATA線によって行なう。
【0164】
ここで、DATASTROBE信号は、DATA線に、データが出力されたことを示す。BUSY信号は、現在プリンタが動作中であり、データを受け取れないことを示か、または、データ・バッファがフルであることを示す。
【0165】
ACK信号は、データの読み取りが正常に終了したことを示す。
【0166】
基本的には、上記3本の制御線で十分であるが、プリンタの制御を考えて、紙切れなどの信号線も定義してある。図20には、信号名,入出力,備考を示した。ピン番号は36ピン、25ピン、14ピンとコネクタの種類がまちまちな事と、各社で若干定義が変わっていたり、削除されている場合も多いため割愛した。
【0167】
図21は、セントロニクスI/F制御回路の一例を示す回路ブロック図である。
【0168】
図において、201AはセントロニクスI/F制御回路で、データバッファ202A,制御線バッファ203Aを備え、図22に示すタイミングチャートに従ってデータ処理が行なわれる。
【0169】
図23は、図21に示したセントロニクスI/F制御回路によるホスト−プリンタ間の信号処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示し、特にホスト側の処理に対応する。
【0170】
まず、BUSY信号が「L」で、かつACK信号が「H」となったら(1) 、データを設定し(2) 、DATASTROBE信号を出力して(3) 、ステップ(1) に戻る。
【0171】
図24は、図21に示したセントロニクスI/F制御回路によるホスト−プリンタ間の信号処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示し、特にセントロニクス対応プリンタ側の処理に対応する。
【0172】
まず、BUSY信号が「L」となり(1) 、BUSY信号を「H」とし(2) 、データをデータバスより取り込みを開始する(3) 。次いで、データ取り込みを終了し(4) 、ACK信号が「L」とし(5) 、BUSY信号を「L」、かつACK信号を「H」に設定し(6) 、ステップ(1) に戻る。データ転送はこのようにして行なわれる。
【0173】
セントロニクス・プリンタは上記転送条件のもと、”ESC”(0x1B)をコマンドやデータの先頭に付けた方法で制御される場合が多い。例えば、あるプリンタにデータを転送する場合、ESC ( A COUNT COLORDATA,(1B 28 41 COUNT COLOR DATA)等のように送る。
【0174】
ここで、「ESC ( A」は制御用のコードである。「COUNT」はデータ数である。「COLOR」はRGB、CMYなどの色空間定義である。「DATA」はカラー画像データである。このようなデータコマンドを連続してプリンタに送れば、プリントが行なわれる。なお、制御コードや構成は各社のプリンタによって違っている。しかしながら、”ESC”を用いた制御方法は、比較的類似している。
【0175】
本システムは、セントロニクス・ポートにセントロニクス・プリンタを接続し、制御コードを、ソフトウエアプログラムでサポートすることにより、各種セントロニクス・プリンタを利用することができる。
【0176】
図25は本発明に係るスキャナプリンタサーバー(ネットワークサーバー)SP1とホストコンピュータとのプログラム構成を説明する図である。以下、システム全体の流れを概略的に説明する。なお、図2と同一のものには同一の符号を付してある。また、図25でのホストコンピュータは図2に示すMacintoshのステーションST1を例にして説明するが、他のステーションST2,ST3等であっても構わない。
【0177】
ホストコンピュータ(ステーション)ST1のオペレータがアプリケーションプログラム56を用いて作成した印刷データをプリントするため、所望とするスキャナプリンタネットワークサーバー,プリンタ,紙サイズ,送出するデータ形式等を選択指示すると、アプリケーションプログラム56は変換プログラム54にデータ(指示情報を含む)を通信する。変換プログラム54はアプリケーションプログラム56から送られたデータを選択されたネットワークサーバーSP1が受け付けるデータ構造に変換し、通信プログラム53,TCP/IPプログラム52に通信する。例えばMacintoshのステーションST1では、QuickDrawデータからCaPSLデータに変換し、IBMPCのステーションST2では、GDIデータからCaPSLデータに変換する。
【0178】
通信プログラム53は、変換プログラム54から送出されたデータをTCP/IPプログラムを介してネットワークサーバーSP1に通信し、ネットワークサーバーSP1の通信プログラム83がTCP/IPプログラム82を介して受信し、システム全体制御プログラム93に通信する。システム全体制御プログラム93は、送られてきたデータを解析し、その時のネットワークサーバーSP1の状態と送られてきたデータに従い、以下の処理を行う。
【0179】
システム全体制御プログラム93は、印刷データをPDLインタープリタープログラム84に送る。PDLインタープリタープログラム84は印刷データを受け取り、指定されたプリンタ(例えばスキャナプリンタ95のプリンタ)が受け入れ可能なデータに変換する。例えばプストスクリプト(商品名)やCaPSLというPDLのデータから画像データに変換する。システム全体制御プログラム93はPDLインタープリタープログラム84が変換したデータを画像入出力装置制御プログラムとしてのデバイスドライバ86に送り、デバイスドライバ86はデータを指定されたプリンタに送りプリントさせる。
【0180】
次に、ホストコンピュータST1のオペレータがスキャナアプリケーション58を用いて画像入力するため、所望とするスキャナプリンタネットワークサーバー,スキャナ,画像の領域,解像度,カラーあるいはモノカラー,圧縮の種類等を選択指示すると、スキャナアプリケーション58はスキャナインタフェースプログラム57を介して通信プログラム53に通信する。通信プログラム53は、スキャナインタフェースプログラム57を介して送られたデータをTCP/IPプログラムを介して指定されたネットワークサーバーSP1に通信し、ネットワークサーバーSP1に通信し、ネットワークサーバーSP1の通信プログラム83がTCPIPプログラム82を介して受信し、システム全体制御プログラム93に通信する。システム全体制御プログラム93は、入力した選択指示命令(画像入力命令)をスキャナ制御プログラム85に送り、スキャナ制御プログラム85は、命令に従って、画像入出力装置制御プログラムとしてのデバイスドライバ86に命令を送り、デバイスドライバは指定されたスキャナ(例えばスキャナプリンタ95のスキャナ)を起動して画像データを入力し、画像データをスキャナ制御プログラム85へ送り、スキャナ制御プログラム85は画像データをシステム全体制御プログラム93へ送り、システム全体制御プログラム93は通信プログラム83へ送り、ネットワークサーバーSP1の通信プログラム83がTCP/IPプログラム82を介して指定されたホストコンピュータの通信プログラム(例えば通信プログラム53)へ画像データを送信する。通信プログラム53がTCP/IPプログラム52を介して受信した画像データは、さらにスキャナアプリケーションプログラム58に送られる。
【0181】
次に、ワークステーションST1から指定されたスキャナプリンタサーバーへ(例えばスキャナプリンタサーバーSP1へ)スキャナプリンタサーバーの状態を問い合わせる命令が送られた場合は、システム全体制御プログラム93がネットワークサーバーSP1の状態(例えばネットワークサーバーSP1に接続されているスキャナプリンタの種類,解像度,紙サイズ,色処理能力等)を取得し、TCP/IPプログラム82を介して、通信プログラム83が指定されたホストコンピュータ(例えばワークステーションST1)に通信する。
【0182】
また、画像入出力装置としてのスキャナプリンタ94,95またはネットワークサーバーSP1内でエラーが発生した場合は、システム全体制御プログラム93がエラーの状況を管理し、通信プログラム83がTCP/IPプログラム82を介して指定されたホストコンピュータ(例えばホストコンピュータSP1)に通信する。
【0183】
以上のように、本実施例ではこれらのプログラム構成により、ホストコンピュータのアプリケーションプログラム(例えばDTPソフト)からホストコンピュータで指定したプリンタでプリントすることができる。また、ホストコンピュータのスキャナアプリケーションプログラム(例えばDTPソフト)からホストコンピュータで指定したスキャナから画像を入力できるし、指定したスキャナで入力した画像を別のホストコンピュータへ送出することもできる。また、指定したネットワークサーバーSP1の状態(接続されるスキャナプリンタの状態)を確認することができる。
【0184】
なお、図25では、LAN96に接続されるホストコンピュータ,スキャナプリンタサーバーはいくつ接続されていても本発明の適用を妨げるものではない。以下、ホストコンピュータ,ホストコンピュータとネットワークサーバーSP1との間のネットワーク処理について説明する。
【0185】
ホストコンピュータにおいて、プリントプロセスを行なう場合、大きく分けて第1〜第3の処理、すなわち第1はアプリケーションプログラム(例えばDTPソフト)によるデータの作成処理、第2はアプリケーションプログラムによって作成されたデータの上記CaPSLコードへの変換処理、第3はCaPSLコードのネットワークサーバーSP1への転送処理である。
【0186】
なお、第1のデータの作成処理で作成されたデータは、使用するマシンの機種,アプリケーションプログラムに依存する。例えばSUNワークステーションでFrame Technology社製のDTPプログラムであるFrameMaker(商品名)を使用した場合、MIF(商品名)ファイルまたはIPL(商品名)ファイルで出力される。また、使用するマシンの機種がIBM社製のIBM−PCでWindows(商品名)対応のアプリケーションプログラムを使用した場合、GDI関数の呼び出しになる。また、アップル社製のMacintosh(商品名)を使用した場合、QuickDraw関数の呼び出しになる。
【0187】
また、アプリケーションプログラムによって作成されたデータの上記CaPSLコードへの変換処理では、第1の処理で作成されたデータをCaPSLコードに変換するので、マシンの機種,作成されるファイル形式に依存する。例えばSUNワークステーションで上記Frame Makerを使用した場合、MIFファイルまたはIPLファイルをCaPSLコードに変換するプログラムとする。また、使用するマシンの機種がIBM社製のIBM−PCでWindows対応のアプリケーションプログラムを使用した場合、GDI関数からCaPSLコードへの変換を変換プログラムで行なう。さらに、アップル社製のMacintosh(商品名)を使用した場合、QuickDraw関数をCaPSLコードへの変換を変換プログラムで行なう。
【0188】
さらに、第3はCaPSLコードのネットワークサーバーSP1への転送処理においては、送信するデータはCaPSLであるが、送信処理は送信する際に使用するプログラムに依存する。例えば図2に示す通信プログラム83を使用したり、UNIXをOSとしているホストコンピュータではlpq/lpdプログラム90を使用する。
【0189】
また、ホストコンピュータにおいてスキャナプロセスを行なう場合、大きく第1,第2のの処理が行なわれる。
第1にイメージデータをネットワークサーバーSP1から受信する。第2にスキャナアプリケーションプログラムでイメージデータの表示,保存を行なう。
【0190】
第1の処理において、受け取るイメージデータは、第2の処理で使用するスキャナアプリケーションプログラムが扱えるイメージデータ形式に保存する。また、ネットワークサーバーSP1からイメージデータを受信する際に使用するプログラムとしては、図2に示す通信プログラム83を使用する。
【0191】
第2の処理において、スキャナアプリケーションプログラムの使用に依存して、扱えるイメージデータ形式が決まる。入力,出力各々について扱えるイメージデータ形式を定める。例えばビットマップおよびTIFF形式を入力として許可する。また、出力としてビットマップおよびTIFF形式を許可する。ファイルで保存する場合、TIFF形式を用いる。表示する場合にはビットマップを用いることができる。
【0192】
ホストコンピュータとネットワークサーバーSP1間をネットワークで接続する時は、複数のプログラムを使用する。中心となるプログラムは図2に示す通信プログラム83である。
【0193】
ネットワークサーバーSP1では、例えば図25に示す通信プログラム53とネットワークサーバーSP1側の通信プログラム83がある。ホストコンピュータ側の通信プログラムは、主として第1〜第3の処理を行なう。
【0194】
第1は下位レイアを介して、ネットワークサーバーSP1とリンクを張る。第2はCaPSLデータをネットワークサーバーSP1へ送信する。第3はネットワークサーバーSP1からイメージデータを受信して上位レイヤへ送る。
【0195】
一方、ネットワークサーバーSP1は、主として第1,第2の処理を行なう。第1はTCP/IPプログラム82を介して通信プログラム83で受信したCaPSLデータをシステム全体制御プログラム93へ送る。第2はシステム全体制御プログラム93から受け取ったイメージデータを通信プログラム83へ送信する。
【0196】
プリント処理及びスキャン処理は、ホストコンピュータの上位レイアからのプリントおよびスキャンの要求を通信プログラム53が受け取ることで開始される。通信プログラム53は、下位レイヤを使用して、リンクを張る。例えばイーサネットを介して接続した場合、下位レイアとして、TCP/IPプログラム52を使用してデータの送受信を行なう。通信プログラム53では、リンクを張った後に、プリントおよびスキャンに特有の情報の受け渡しをして、適合する条件にプリンタ及びスキャナを設定する。プリンタおよびスキャナの設定が終了後は、プリントはCaPSLをクライアントからサーバーへ、またスキャナの設定が終了した後は、プリント時はCaPSLをクライアントからサーバーへ、またスキャン時はイメージデータをサーバからクライアントへ各々送信する。プログラムとして、図2に示したlpdプログラム90も使用できる。ホストとして、UNIXマシンを使用した場合に、UNIXの標準のプリントコマンドであるlprを使用してプリントが可能となる。このlpdプログラム90(図2参照)はプリント時のみに使用する。サーバー側にスプールディスクがない場合でもデフォルトの設定での出力は可能である。
【0197】
システム全体制御プログラム93の基本的な動作は、イベントを入力してイベントに応じた処理を行なうことと、エラー中の入出力装置に状態を問い合わせ、エラーから回復していた場合、エラーによって中断していたジョブがあれば再開することである。
【0198】
以下、図26に示すフローチャートを参照しながら本発明に係るサーバー装置における全体制御動作について説明する。
【0199】
図26本発明に係るサーバー装置における全体制御手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【0200】
先ず、ステップ(1) でイベントがあるかどうかを判別し(1) 、ある場合はステップ(2) でイベントに応じた処理を行ない、ステップ(1) でイベントが無い場合は、ステップ(3) でエラー中の入出力装置があるか調べ、ある場合はステップ(4) でエラー中か問い合わせ、ステップ(5) でエラー中か判別し、エラーから回復していればステップ(6) でエラーにより中断していたジョブがあれば再開する。システム全体制御プログラム93はネットワークサーバーSP1内でTCP/IPプログラム82,通信プログラム83,PDLインタープリタープログラム84,スキャナ制御プログラム85,デバイスドライバ86と通信することができ、さまざまなイベントを受けとる。通信プログラム83から送られるイベントとして、ジョブの到着、データ転送の終了があり、PDLインタープリタープログラム84から送られるイベントとして、受信データ処理終了、画像データ描画終了、ページ描画終了、プリントジョブ終了があり、スキャナ制御プログラム85からのイベントとして、画像データ転送要求、画像入力処理終了、ページプリント終了、エラー発生、正常状態等のイベントがある。
【0201】
また、システム全体制御プログラム93では各イベントに対する動作が定まっており、例えば、通信プログラム83からジョブの到着が送られると、ジョブの内容を解析し、プリントジョブの場合はPDLインタープリタープログラム84にデータを転送し、画像入力ジョブの場合はスキャナ制御プログラム85にデータを転送する。
【0202】
さらに、デバイスドライバ86から送られるエラーとしては、紙なし、インク切れ、紙詰まり、電源OFF等がある。
【0203】
なお、本実施例では、ネットワークサーバーSP1では、プリンタのページ記述言語としてCaPSLを採用している。そこで、CaPSLの機能処理等について説明する。なお、プリンタのページ記述言語としては、CapSLに限定されるものではない。
【0204】
CaPSLの機能は、図形,文字,イメージを表現している制御コードを入力して、ネットワークサーバーSP1のバンドメモリと呼ばれる描画領域に画像を展開するタスクである。
【0205】
PDLインタープリタープログラム84と直接コミュニケーションを持つプログラムは、システム全体制御プログラム93である。コミュニケーションは、以下の第1,第2のコミュニケーションである。
【0206】
第1のコミュニケーションは、システム全体制御プログラム93がCaPSLに引き渡すコミュニケーションであり、その内容は、CaPSLコードの格納されたファイル名,CaPSLコードが格納されてあるメモリの先頭アドレスおよびサイズ,バンドメモリ描画可能性等である。
【0207】
第2のコミュニケーションは、PDLインタープリタープログラム84がシステム全体制御プログラム93に引き渡すコミュニケーションであり、その内容は、バンドメモリ描画終了,ページ描画終了,ドキュメント描画終了,バンドメモリ描画領域,空バンドメモリの情報である。
【0208】
この際、PDLインタープリタープログラム84の内部では、以下の処理が行われる。
【0209】
ネットワークサーバーSP1では、バンドメモリと呼ばれる、ある幅を持ったメモリを持っているので、PDLインタープリタープログラム84は画像をバンド幅分だけ部分的に展開しなければならない。PDLインタープリタープログラム84は、図27に示すようなプリンタ制御コマンドを入力する。CaPSLコードは、PDLインタープリタープログラム84内部でレイアウタと呼ばれるプログラム(図示しない)に基づいて図28に示す中間コードに置き換えられる。本実施例において、中間コードとは、いわゆる抽象的な図形の表現を具体的なデバイスの表現にしたものである。そして、1ページ分の中間コードができあがると、ペインタと呼ばれるプログラム(図示しない)に基づいて中間コードを参照しながらバンドメモリにラスタイメージを展開する。
【0210】
例えば図29に示すような図形を描くようなCaPSLコードをレイアウタが受け取ると、デバイスに依存した図28に示す中間コードに置き換える。ここで、レイアウタは、図形の大きさに基づいてその図形が何バンド目から何バンド目まで描かれているかを計算して、中間コードに登録する。図29では、円(circle)が1〜2バンド、矩形(Rectangle)が2〜4バンドに描かれる場合を示す。なお、その後に書かれている数字は、デバイス座標系における、図形の位置や半径等である。
【0211】
次に、ペインタ(実際にメモリに描画するプログラム)は中間コードを参照しながら、図29に示すような図形を展開して、バンドメモリに描画する。実際には、メモリはバンド幅分の大きさしか持っていないので、バンドを描画すると、そのデータをプリンタに送り、メモリをクリアして、次のバンドのデータを描き始める。第0番目の描画をするために、中間コードを参照すると、第0番目のバンドに描くべきデータがないことが分かり、次のバンドに移る。すると、ペインタは第1バンド目に描くデータをサーチし、円を検知して1バンド分だけ描画する。次に第2バンド目に移り、円と矩形を描画することが分かるので、円の続きの部分の描画と矩形を1バンド分だけ描画する。このようにして、ペインタは、1ページ分のデータを描画するのである。
【0212】
なお、CaPSLが展開するデータの1画素の構造は、図30に示されるように、RGBXの32ビットになっている。これは、色のデータを表わすRGB24ビットと、付加情報のための8ビットの付加情報Xから構成されている。ここで、付加情報Xの中は、ビット0がイメージ領域判定ビットであり、CaPSLがイメージをバンドメモリに描画する時には、このビットをONにする。また、ビット2は、黒情報ビットになっており、CaPSLで展開された図形や文字の色がRGBともに0の場合は、このビットをONにする。これらの情報は、第1のインタフェース回路4−1でプリンタ94Bでプリントアウトする際に解析され、画質を向上させる情報となる。
【0213】
以下、図31に示すデータ処理経路図を参照しながら、スキャナ94A,95Aの動作について説明する。なお、図25と同一のもには同じ符号を付してある。
【0214】
図31は、図2に示したスキャナ94A,95Aの動作を説明するデータ処理経路図である。なお、画像をバンド単位で切り分けてスキャンするスキャナの場合と、1度に全画像をスキャンする場合のタスクの動作が多少異なるためそれぞれを説明する。
【0215】
画像をバンド単位で切り分けてスキャンするスキャナの場合において、先ず、クライアントマシンとしてのホストコンピュータST1から送られてきた、スキャン命令C1をTCP/IPプログラム82を介して通信プログラム83が受信すると、システム全体制御プログラム93にスキャン命令C2の到着を知らせる。
【0216】
システム全体制御プログラム93は、この装置がスプールIを持つ場合は、受信したスキャン命令C2を元にしてスプールファイルを作って保存し、そのファイル名C3をスキャナ制御プログラム85に送る。スプールIを持たない場合は、スキャナコマンドC3を直接スキャナ制御プログラム85に送る。
【0217】
スキャナ制御プログラム85は、スキャナコマンドC3を解釈し、解像度等のスキャナ条件設定命令C4をデバイスドライバ86に与えて指定されたスキャナを起動する。デバイスドライバ86は、それぞれのスキャナ制御プログラム85に対応して存在する関数である。
【0218】
スキャナ条件を設定したデバイスドライバ86は、リターン値C5をスキャナ制御プログラム85に返す。これを受けるとスキャナ制御プログラム85は、スキャン開始命令C6をデバイスドライバ86に与えて指定されたスキャナを起動する。デバイスドライバ86は、スキャナEを作動させて画像データを読み込みバンドメモリFに書き込む。1バンド分描き込むと、スキャナ制御プログラム85にスキャン終了のリターン値C9を返す。これを受け取ったスキャナ制御プログラム85は、バンドメモリFの画像データに画像処理、例えばJPEG圧縮ボードを用いることで圧縮を行ってバッファ領域Hへ描きこむ。
【0219】
バンドメモリF内のデータを全て処理し終わると、スキャナ制御プログラム85は、システム全体制御プログラム93に転送要求C11送り、また同時にデバイスドライバ86にスキャン開始命令C6を与えて起動する。このスキャンは、前回のスキャンの時の終了点から読み込むようにスキャナ制御プログラム85で制御する。
【0220】
一方、転送要求C11を受けたシステム全体制御プログラム93は、通信プログラム83に転送要求C12を送る。これを受け取った通信プログラム83は、指定されたクライアントマシンとしてのホストコンピュータにバッファ領域H内の処理された画像データを送る。このとき通信プログラム83,システム全体制御プログラム93は、スキャナ制御プログラム85とは、異なったプログラムであるので、スキャナ制御プログラム85内の関数であるデバイスドライバ86の制御で動くスキャナ作動中であっても、画像データの転送を行うことができる。
【0221】
通信プログラム83は、転送が終了するとシステム全体制御プログラム93に転送終了信号C14を送り、これを受け取るとシステム全体制御プログラム93は、スキャナ制御プログラム85に転送終了C15を送る。スキャナ制御プログラム85は、デバイスドライバ86からのスキャン終了を伝えるリターン値C9,転送終了C15の両方を受けると、バンドメモリF内の画像データを画像処理しバッファ領域Hに書き込む。以上の処理を繰り返すことで画像データをホストコンピュータST1へ送ることができる。なお、別のホストコンピュータ(例えばホストコンピュータST2またはホストコンピュータST3)を指定することで、他のホストコンピュータへ画像データを送ることもできる。
【0222】
全ての画像データの転送をスキャナ制御プログラム85が確認すると、システム全体制御プログラム93を介して通信プログラム83まで終了を知らせる。
【0223】
一方、1度に全画像をスキャンする場合は、クライアントマシンとしての、例えばホストコンピュータST1から送られてきた、スキャン命令C1を通信プログラム83が受信すると、システム全体制御プログラム93にスキャン命令C2の到着を知らせる。
【0224】
システム全体制御プログラム93は、この装置がスプールIを持つ場合は、受信したスキャン命令C2を元にしてスプールファイルを作って保存し、そのファイル名C3をスキャナ制御プログラム85に送る。スプールIを持たない場合は、スキャナコマンドC3を直接スキャナ制御プログラム85に送る。
【0225】
スキャナ制御プログラム85は、スキャナコマンドC3を解釈し、解像度等のスキャナ条件設定C4をデバイスドライバ86に与えて指定されたスキャナを起動する。スキャナ条件を設定したデバイスドライバ86は、リターン値C5をスキャナ制御プログラム85に返す。これを受けるとスキャナ制御プログラム85は、スキャン開始命令C6をデバイスドライバ86に起動する。ここでのスキャナEは、読み込み動作を途中で止められないものとしている。
【0226】
デバイスドライバ86は、命令C10によりスキャナEを作動させて画像データすべてを取り込み、取り込んだ画像データに画像処理、例えばJPEGボードGを用いてJPEG圧縮を行なってバッファHに描き込むことができる。
【0227】
また、画像データを生のままバッファHに書き込むことも可能である。バッファHが一杯になると、スキャナ制御プログラム85は、システム全体制御プログラム93に転送要求C11を送る。これを受けたシステム全体制御プログラム93は、通信プログラム83に転送命令C12を出し、通信プログラム83がバッファHに描かれたデータを指定されたホストコンピュータST1へ転送する。なお、別のホストコンピュータ(例えばホストコンピュータST2またはホストコンピュータST3)を指定することで、他のホストコンピュータへ画像データを送ることができる。
【0228】
通信プログラム83は、転送が終了するとシステム全体制御プログラム93に転送終了信号C14を送り、これを受け取るとシステム全体制御プログラム93は、スキャナ制御プログラム85に転送終了C15を送る。スキャナ制御プログラム85は、転送終了C15が送られてくるとバンドメモリ内の画像データを画像処理しバッファHに書き込む。以上の処理を繰り返すことで画像データをクライアントマシンとしての指定されたホストコンピュータへ送ることができる。
【0229】
スキャナ制御プログラム85は、全ての画像データの転送を確認すると、システム全体制御プログラム93を介して通信プログラム83まで終了を知らせる。
【0230】
以下、図32および図33を参照しながら本発明に係るサーバー装置におけるホストコンピュータからS/Pサーバー装置へのデータの流れについて説明する。
【0231】
ホストコンピュータから指定されたS/Pサーバー装置(ネットワークサーバー)SP1へのデータの流れにおいて、先ず、例えばホストコンピュータST1でDTPのアプリケーションプログラム56が実行されていてドキュメントを作成する。このドキュメントのデータ形式は、ホストコンピュータの機種、アプリケーションプログラムに依存したものである。そこで指定されたS/Pサーバー装置SP1が解釈できる形式のデータに変換する必要がある。その変換プログラムが変換プログラム54である。DTPのアプリケーションプログラム(DTPアプリ)56からはホストコンピュータのシステムに依存したデータが変換プログラム54に送られる。変換プログラム54は、受けとったファイルを、例えばCaPSLコードに変換する。さらに、CaPSLコードに変換したファイルは通信プログラムであるlpd505または通信プログラム53に送られる。
【0232】
通信プログラムはホストコンピュータとS/Pサーバー装置SP1の間でネットワークを介して接続、通信を行なうためのものであり、ここでは2つの内のどちらか一方のプログラムを用意する。
【0233】
先ず始めに、通信プログラム53を用いた時を説明する。
【0234】
通信プログラム53に対応するプログラムとして、S/Pサーバー装置SP1側で通信を司るプログラムは通信プログラム83であり、このプログラム間ではTCP/IPプログラムを使用する。プリント時の通信プログラム53の役割は主に2つあり、一つは下位レイヤ(TCP/IP)を介して通信プログラム83とリンクを張り、通信できる状態にすることである。もう一つは、変換プログラム54が生成したCaPSLデータファイルをS/Pサーバー装置SP1に送信することである。
【0235】
また、通信プログラム83の役割はリンクを張りプリント処理に必要な情報をやりとりして最適にプリントできるようにすること。通信プログラム53の送ってくるデータを受けとり、システム全体制御プログラム93にデータの到着を知らせる。この時、送られてきたCaPSLデータ、およびそれに付随する情報は受信バッファに一時的に貯められている。また、S/Pサーバー装置SP1側で何らかのエラーが起こった時に、その情報を通信プログラム53に送信するというような役割もある。
【0236】
以下、通信プログラム83からプリントアウトまでの処理について説明する。
【0237】
ここまでで、DTPアプリケーションプログラム56で作成したドキュメントデータはS/Pサーバー装置SP1に送られたことになる。次に通信プログラム83はシステム全体制御プログラム93にジョブ(例えばカラーレーザ複写装置(CLC)からプリントアウト)の到着のイベントを送る。システム全体制御プログラム93はイベント駆動型のプログラムで通信プログラム83,デバイスドライバ86,PDLインタープリタープログラム84から送られてくるイベントを常に待っている。イベントが入ってくるとイベントの発信元と内容を調べてそれに対応した処理を行なう。 今、システム全体制御プログラム93には通信プログラム83から「ジョブが到着した」というイベントが入力されている。この時、システム全体制御プログラム93はイベントを解析してハードディスク519を持っている時には受信バッファのドキュメントデータを一旦スプールする。そして、ジョブが幾つかたまっている場合には、ジョブの内容、プリンタ、スキャナの状態、ジョブの優先順位などを考慮して最適にジョブを起動する。
【0238】
ハードディスク519がない場合には、データを貯めておくことが出来ないので、データの格納されているアドレスとサイズをPDLインタープリタープログラム84に知らせてプリントアウト処理を直ちに行なうように要求を出す。ここでは、ハードディスクがあるものとして説明を続ける。システム全体制御プログラム93はジョブの内容を判断してPDLインタープリタープログラム84にスプールファイル名を渡し、起動の要求をする。
【0239】
以下、図33に示すブロック図を参照しながらさらに詳述する。
【0240】
図33は本発明に係るS/Pサーバー装置SP1と、例えばカラーレーザ複写装置(CLC)とのデータ処理状態を説明するブロック図である。
【0241】
図32に示したPDLインタープリタープログラム84はスプールファイルからCaPSLデータを読み込み, 解釈して、図形、文字、イメージをバンドメモリ518に描画する。CaPSLデータの中に圧縮符合化されたイメージデータがあった場合にはPDLインタープリタープログラム84は、標準圧縮伸長部606でイメージデータを伸長してバンドメモリに描画する。1バンド分の描画を終了すると、PDLインタープリタープログラム84はシステム全体制御プログラム93に対して「1バンド描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム93はデバイスドライバ86に「1バンド排紙」の要求イベントを発行する。
【0242】
以下、バンドメモリ605から圧縮メモリ615までのデータの流れについて説明する。なお、ここではデバイスドライバ86の動作について説明する。
【0243】
「1バンド排紙」のイベントを受けとったデバイスドライバ86は、バンドメモリ605に格納されている展開データを、サブボード610Aのラインバッファ617に転送する。ラインバッファ617に格納された展開データはブロック順次でリアルタイム圧縮伸長部616に転送される。リアルタイム圧縮伸長部616では、ブロック順次に得られる画像データを圧縮していき、順次圧縮メモリ615に格納する。圧縮メモリ615のアドレス生成や、ライト信号の生成はDMAコントローラ621が行なう。
【0244】
1バンド分の圧縮が終了するとデバイスドライバ86はシステム全体制御プログラム93に対して「1バンド排紙終了」のイベントを送信する。イベントを受けとったシステム全体制御プログラム93は、PDLインタープリタープログラム84に対して「1バンド描画要求」イベントを出力する。このようにバンド毎に描画しては、圧縮するという処理を繰り返し1ページ分の圧縮展開イメージを圧縮メモリ615に格納する。最後のバンドの格納が終了すると、PDLインタープリタープログラム84はシステム全体制御プログラム93に対して「1ページ描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム93は、デバイスドライバ86に対して「1ページ排紙命令」を発行する。
【0245】
「1ページ排紙命令」を受けとったデバイスドライバは、圧縮メモリ615に格納されている1ページ分の展開イメージをプリントアウトするために次のような処理を行なう。
【0246】
CPU611はDPRAM622をONにしてからリアルタイム圧縮伸長部616,DMAコントローラ621の初期化および指定されたプリンタ620とのコマンドの通信を行ないリアルタイム圧縮伸長部616に伸長開始の命令を出す。リアルタイム圧縮伸長部616はDMAコントローラ621にアクセスし、DMAコントローラ621はアドレス、リード信号の生成を行ない、圧縮メモリ615より圧縮データがリアルタイム圧縮伸長部616に入力され、伸長された後ブロック順次でラインバッファ617に出力される。そしてラインバッファ617にてブロック順次からラスタ順次の変換をしてSPI/F618を通じて転送されプリンタ620に出力される。実際に、1ページ分のプリントアウトが終了するとデバイスドライバ86から「1ページ排紙終了」のイベントがシステム全体制御プログラム93に対して送られる。するとシステム全体制御プログラム93は、PDLインタープリタープログラム84に対して2ページ目の描画命令」を発行する。このようにして複数ページのドキュメントの出力が処理されて行く。
【0247】
最終ページの最終バンドの描画が終了すると、PDLインタープリタープログラム84は「ドキュメント終了」イベントをシステム全体制御プログラム93に対して発行する。システム全体制御プログラム93はデバイスドライバ86に対して「1ページ排紙命令」を出しデバイスドライバ86はプリント処理を行ない「1ページ排紙終了」イベントをシステム全体制御プログラム93に対し発行する。なお、プリント終了は、システム全体制御プログラム93は必要ならば通信プログラム83に「プリント終了」イベントを発行する。通信プログラム83はホストコンピュータ側の通信プログラム53に対しプリント終了を知らせる。
【0248】
また、エラー発生時には、例えばプリンタ620が、紙詰まりを起こしたり、紙無しの状態になった時にはデバイスドライバ86からシステム全体制御プログラム93に対して「エラー発生」のイベントが送られる。システム全体制御プログラム93はその旨をPDLインタープリタープログラム84と通信プログラム83に伝える。PDLインタープリタープログラム84はプログラムの状態の退避などのエラー時の処理を行ない、通信プログラム83はエラーの発生や、その内容をホストコンピュータ側の通信プログラム83に伝える。なお、エラーが回復したかどうかを調べる方法は2つ考えられる。一つは、ある一定期間毎にシステム全体制御プログラム93がデバイスドライバ86に対して問い合わせて、デバイスドライバ86が答えるという方法。
【0249】
もう一つは、システム全体制御プログラム93がエラー回復を監視していて回復時にシステム全体制御プログラム93に対して「エラー回復」のイベントを発行するというものである。
【0250】
以下、図32,図34を参照しながらホストコンピュータから、例えばバブルジェットカラー複写装置へのプリントデータ出力処理について詳述する。
【0251】
図34は本発明に係るS/Pサーバー装置SP1と,例えばバブルジェットカラー複写装置(BJC)とのデータ処理状態を説明するブロック図である。
【0252】
ホストコンピュータからS/Pサーバー装置SP1へのデータの流れは、図32に示すように、まず、ホストコンピュータでDTPのアプリケーションプログラム56が実行されていてドキュメントを作成する。このドキュメントのデータ形式は、ホストコンピュータの機種、アプリケーションプログラムに依存したものである。そこでS/Pサーバー装置SP1が解釈できる形式のデータに変換する必要がある。その変換プログラムが変換プログラム54である。DTPのアプリケーションプログラム56からはDTPアプリに依存したデータが変換プログラム54に送られる。変換プログラム54は、受けとったファイルをCaPSLコードに変換する。さらに、CaPSLコードに変換したファイルは通信プログラムであるlpd505または通信プログラム53に送られる。
【0253】
通信プログラムはホストコンピュータとS/Pサーバー装置SP1の間でネットワークを介して接続、通信を行なうためのものであり、ここでは2つのプログラムを用意する。
【0254】
先ず始めに、通信プログラム53を用いた時を説明する。
【0255】
通信プログラム53に対応するプログラムとして、S/Pサーバー装置SP1側で通信を司るプログラムは通信プログラム83であり、このプログラム間ではTCP/IPプログラムを使用する。
【0256】
プリント時の通信プログラム53の役割は主に2つあり、一つは下位レイヤ(TCP/IP)を介して指定したS/Pサーバー装置SP1とリンクを張り、通信できる状態にすることである。もう一つは、変換プログラム54が生成したCaPSLデータファイルを通信プログラム83に送信することである。
【0257】
また、通信プログラム83の役割はリンクを張りプリント処理に必要な情報をやりとりして最適にプリントできるようにすること。通信プログラム53の送ってくるデータを受けとり、システム全体制御プログラムにデータの到着を知らせる。この時、送られてきたCaPSLデータ、およびそれに付随する情報は受信バッファに一時的に貯められている。
【0258】
また、S/Pサーバー装置SP1側で何らかのエラーが起こった時に、その情報をホストコンピュータ側の通信プログラム53に送信するというような役割もある。ホストコンピュータ側の通信プログラム53からプリントアウトする際には、DTPアプリケーションプログラム56で作成したドキュメントデータは指定されたS/Pサーバー装置SP1に送られたことになる。次に通信プログラム83はシステム全体制御プログラム93にジョブ(例えばBJカラー複写装置からプリントアウト)の到着のイベントを送る。システム全体制御プログラム93はイベント駆動型のプログラムで通信プログラム83,デバイスドライバ86,PDLインタープリタープログラム84から送られてくるイベントを常に待っている。イベントが入ってくるとイベントの発信元と内容を調べてそれに対応した処理を行なう。
【0259】
今、システム全体制御プログラム93には通信プログラム83から「ジョブが到着した」というイベントが入力されている。この時システム全体制御プログラム93はイベントを解析してハードディスク519を持っている時には受信バッファのドキュメントデータを一旦スプールする。そして、ジョブが幾つかたまっている場合には、ジョブの内容、プリンタ、スキャナの状態、ジョブの優先順位などを考慮して最適にジョブを起動する。
【0260】
ハードディスク519がない場合には、データを貯めておくことが出来ないので、データの格納されているアドレスとサイズをPDLインタープリタープログラム84に知らせてプリントアウト処理を直ちに行なうように要求を出す。
ここでは、ハードディスクがあるものとして説明を続ける。システム全体制御プログラム93はジョブの内容を判断してPDLインタープリタープログラム84にスプールファイル名を渡し、起動の要求をする。PDLインタープリタープログラム84はスプールファイルからCaPSLデータを読み込み, 解釈して、図形、文字、イメージをバンドメモリ518に描画する。CaPSLデータの中に圧縮符合化されたイメージデータがあった場合にはPDLインタープリタープログラム84は標準圧縮伸長部606でイメージデータを伸長してバンドメモリに描画する。1バンド分の描画を終了すると、PDLインタープリタープログラム84はシステム全体制御プログラム93に対して「1バンド描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム93はデバイスドライバ86に「1バンド排紙」の要求イベントを発行する。
【0261】
一方、バンドメモリ518からプリントアウトする場合には、「1バンド排紙」の要求イベントを受けたデバイスドライバ86はインタフェースボード610Bを制御して指定したバブルジェットカラープリンタ(BJプリンタ)656にてプリントを行う。メインCPUボード610のバンドメモり605に展開されている1 バンドの画像データをバンドメモり653に転送する。バンドメモリ653のデータはBJのヘッドに合った走査形式で読み出されバッファ651を通して画像処理部652に入る。ここでは予め設定したパラメータに従って処理がなされる。通常はバンドメモりにあるNTSC−RGBをBJプリンタ656内部のRGBに変換する処理を行う。そしてインタフェース618を通してBJプリンタ656のプリンタエンジン部へ送られる。BJプリンタ656への制御はCPU601からのコマンドを解釈して、CPU611が行う。なお、650はデュアルポートRAMである。
【0262】
最終バンドまでこれらの処理を繰り返したら、PDLインタープリタープログラム84は「ドキュメント終了」イベントをシステム全体制御プログラム93に発行しプリントを終える。プリント終了の際、システム全体制御プログラム93は必要ならば通信プログラム83に「プリント終了」イベントを発行する。通信プログラム83はホストコンピュータ側の通信プログラム53に対しプリント終了を知らせる。
【0263】
また、エラー発生時には、例えばプリンタ656が、紙詰まりを起こしたり、紙無しの状態になった時には、デバイスドライバ86からシステム全体制御プログラム93に対して「エラー発生」のイベントが送られる。システム全体制御プログラム93はその旨をPDLインタープリタープログラム84と通信プログラム83に伝える。PDLインタープリタープログラム84はプログラムの状態の退避などのエラー時の処理を行ない、通信プリンタ83はエラーの発生や、その内容をホストコンピュータ側の通信プログラム53に伝える。なお、エラーが回復したかどうかを調べる方法は2つ考えられる。一つは、ある一定期間毎にシステム全体制御プログラム93がデバイスドライバ86に対して問い合わせて、デバイスドライバ86が答えるという方法。
【0264】
もう一つは、システム全体制御プログラム93がエラー回復を監視していて回復時にシステム全体制御プログラム93に対して「エラー回復」のイベントを発行するというものである。
【0265】
以下、異機種間でカラー画像の通信を行う場合、単純にこれらの入出力機器を接続したのではお互いの特性が異なり、最適な色再現が難しくなってしまう。このため、現在では、各デバイス内では、固有の色空間で、通信路上では標準の色空間で通信し合う方向で検討が進んでいる。そこで、以下、このような要請の下での色空間の変換処理方法について説明する。
【0266】
なお、説明上、送信側の入力デバイスの色空間をA、通信路上の色空間をB、受信プリンタの色空間をCとする。
【0267】
また、通信路上の色空間は現在では比較的知られている色空間、例えばカラー画像符号化で良く用いられるYCrCb色空間の場合について説明する。
【0268】
一方、送信側の色空間Aは、YCrCb色空間と異なり色域が異なるのが一般的で、通常は両色空間間を第(1)式のような形式で結合する。
【0269】
[Ra] [a11 a12 a13][y]
[Ga]=[a21 a22 a23][cr]
[Ba] [a31 a32 a33][cb]……(1)
ここで、Ra,Ga,Baは色空間Aの任意の1点の座標(Ra,Ga,Ba)であり、対応するYCrCb色空間上の1点を(y,cr,cb)とする。これらのすべての色空間上で近似できるように、例えば最小2乗法により、a11〜a33までの係数を求めて利用する。従って、上記第(1)によりデバイスの入力色空間と通信上の色空間化変換を行う。
【0270】
一方、通信路上の標準色空間から記録側の色空間に変換する場合、いくつかの方法があるが、本実施例では以下のように処理する。
【0271】
先ず、通信路上での標準色空間をYCrCbとした場合、YCrCbからRGBに変換される。YCrCb空間は、NTSCと線形変換できるので、以下、NTSC色空間として説明する。
【0272】
また、NTSC標準色空間は加法混色を基本としているが、印刷は減方混色系が用いられる。従って、加法混色と減方混色の変換が必要となる。この変換は、構成が複雑で純粋に論理的に解決するのは非常に難しい。そこで、本実施例では記録側の色空間に近い加法混色系色空間を記録側の内部的標準色空間とする。ここでは、NTSC色空間より、狭いHDTV(HighDefinitionTV)色空間を記録側標準色空間Dとする。
【0273】
さらに、記録側内部標準色空間Dとデバイス色空間Cとの関係は、下記第(2)で決定される。
【0274】
[Y] [A11 A12 A13][Rh]
[M]=[A21 A22 A23][Gh]
[C] [A31 A32 A33][Bh]
[K] [A41 A42 A43] ……(2)
ここで、Y,M,C,Kは印刷のための原色で、イエロー,マゼンタ,シアン,ブラックの各成分である。Rh,Gh,Bhは記録側標準色空間成分である。また、A11〜A43までは、印刷と記録内部標準色空間を複数の点で関係付け、最小2乗法で計算される係数である。
【0275】
また、通信路上の標準色空間と記録内部の標準色空間は下記のように変換する。
【0276】
通信回線上のNTSC標準色空間は基礎刺激からNTSCが表現できる色間の3次元的最外郭面代表情報を求める。同様にして、記録側内部標準色空間HDTVの最外郭面の代表位置情報も得られる。
【0277】
今、NTSC色空間上の1点(Rn,Gn,Bn)からHDTV色空間の対応点(Rh,Gh,Bh)を求める場合は、Rn,Gn,BnからCIEL* a* b* 変換し、Ln,an,bnとする。同様にして、Rh,Gh,BhからCIEL* a* b* 変換し、Lh,ah,bhとする。Ln一定でθ=atan(an/bn)に近いHDTV,NTSC各色空間上の最外郭近似位置を前述テーブルから求める。そのNTSC最外郭面位置を(Lon,aon,bon),HDTV最外郭面位置を(Lon,aoh,boh)とすると、ah,bhは下記第(3)式により決定される。
【0278】
ah=(aoh/aon)* an
bh=(boh/bon)* bn ……(3)
これらのah,bhが色空間圧縮後のHDTV色空間上での対応位置である。従って、NTSC色空間上の任意の1点(Rn,Gn,Bn)は、記録側標準色空間上では、(Rh,Gh,Bn)に変換される。従って、上述(2)式により印刷すべきY,M,C,Kの各成分量が決定され、印刷可能となる。
【0279】
なお、本実施例では記録側内部に標準色空間を設けているが、これは通信回線上での標準色空間は1つに絞られていないためである。従って、複数の標準色空間が使用される可能性がある。その場合でも、本方式を用いていれば通信上の色空間がNTSC色空間でなくともそれ自身の色空間を規定できるものであれば、上記方法により標準色空間変換が可能となる。
【0280】
以下、図35を参照しながら周辺機器の異常処理について説明する。
【0281】
図35は本発明に係るサーバー装置とのネットワークシステムの構成を説明するブロック図である。
【0282】
ジョブ実行中に周辺機器に異常が発生した場合、S/Pサーバー装置SP1664は異常が発生した周辺機器が異常から回復するまで待つのではなく、その状態で実行可能なジョブを優先的に実行していく( 実行可能なジョブに関しては、後述する) 。また、異常が発生したときに異常が発生した周辺機器に対して実行していたジョブ( 以下エラージョブともいう) を、ジョブ再開のために必要な情報を保存した後に、実行時にエラーが発生した処理待ちのジョブとしてS/Pサーバー装置SP1664内に登録することにより、異常が発生した周辺機器が異常から回復した後にジョブを再開することが可能である。エラージョブを再開可能なように登録するか登録しないかは、発生した異常の程度や、SPサーバーの設定による。
【0283】
例としてサーバー装置に3台のコンピュータ661〜663および2台のカラースキャナプリンタ665,666および1台のスキャナ667が接続されている場合で説明する。
【0284】
カラースキャナプリンタ665,666は、各々プリントとスキャンのジョブを処理することが出来る。以下、図36に示すフローチャートを参照しながら異常発生ジョブ処理動作について説明する。S/Pサーバー装置664
図36は本発明に係るサーバー装置における異常発生ジョブ処理手順の一例を示すフローチャートである。なお、(1) 〜(10)は各ステップを示す。
【0285】
例えばホストコンピュータ661がカラースキャナプリンタ665に対するプリントジョブをS/Pサーバー装置664に依頼して実行しており、ホストコンピュータ662がシステム全体制御プログラム93にプリントジョブを依頼して処理待ちになっており、ホストコンピュータ663がシステム全体制御プログラム93にスキャンジョブを依頼して処理待ちになっていたとする。このプリントジョブ実行中にカラースキャナプリンタ665のプリンタ部分に異常が発生したとすると(1) 、この時、まずS/Pサーバー装置664はカラースキャナプリンタ665に発生した異常が回復困難な異常かどうかを調べる(2) 。カラースキャナプリンタ665に発生した異常が回復困難な異常であるとS/Pサーバー装置SP1が判断した場合、S/Pサーバー装置SP1は直ちにエラージョブを放棄し(10)、次の処理可能なジョブを選択し実行する(9) 。
【0286】
なお、本実施例において、処理可能なジョブとは、現在異常が発生しているカラースキャナプリンタ665に対するプリントジョブ以外のジョブ、すなわち、
・カラースキャナプリンタ665に対するスキャンジョブ
・カラースキャナプリンタ666に対するプリントジョブ
・カラースキャナプリンタ666に対するスキャンジョブ
・カラースキャナプリンタ667に対するスキャンジョブ
である。
【0287】
処理可能なジョブが複数ある場合は、後述する方式に従ってジョブを実行する。
【0288】
カラースキャナプリンタ665に発生した異常が回復困難な異常であるとS/Pサーバー装置664が判断しなかった場合、S/Pサーバー装置664はカラースキャナプリンタ665に対してリトライ処理(図37参照)を行なう。
【0289】
リトライは、事前に定めておいたN回( 例えば5回) まで繰り返し行なわれる(3) 。N回のリトライを行なうまでにカラースキャナプリンタ665が異常状態から回復した( リトライに成功した) 場合、ジョブを再開する(6) 。N回のリトライを行なってもカラースキャナプリンタ665が異常状態から回復しなかった( リトライに失敗した) 場合、S/Pサーバー装置664は他の処理可能なジョブがあるかどうかを調べる(4) 。処理可能なジョブがなかった場合、S/Pサーバー装置664はリトライ回数とは別に定めておいたM回( 例えば1回) のリトライを行ない(5) 、リトライに成功したならば、エラージョブを再開する。リトライに失敗した場合は、再び処理可能なジョブがあるかどうかを調べる(4) 。処理可能なジョブがあった場合、S/Pサーバー装置664はエラージョブのジョブ退避を行ない(7) 、エラージョブを実行途中でエラーが発生したジョブとして登録し(8) 、次の処理可能なジョブを実行する(9) 。
【0290】
なお、本実施例において、ジョブ退避とは、エラージョブ実行時のS/Pサーバー装置664の状態情報などのジョブ再開時に必要な情報を、例えば記憶手段( 例えばハードディスク) や、例えばS/Pサーバー装置内のメモりや、例えばS/Pサーバー装置内のプログラムなどに保存する処理である。
【0291】
図37は本発明に係るサーバー装置におけるリトライ処理手順の一例を示すフローチャートである。なお、(1) 〜(5) は各ステップを示す。
【0292】
リトライ処理とは、事前に定めておいた時間( 例えば30秒) 待機した後に(1) 、異常が発生した周辺機器が異常状態から回復したかどうかを調べ(2) 、ある一定回数X(例えば5回)繰り返す(3) 。一定回数繰り返すまでに異常が発生した周辺機器が異常状態から回復していればリトライは成功であり(5) 、回復しなければリトライは失敗となる(4) 。
【0293】
以下、本発明に係るサーバー装置によるマルチプリント制御動作について詳述する。
【0294】
スキャナ/プリンタネットワークサーバー(SPネットワークサーバー)には、スキャナとプリンタとから構成されるカラーレーザビーム複写装置(CLC),スキャナとプリンタとから構成されるバブルジェットカラー複写装置(BJC),標準インタフェースで接続されているビットマッププリンタ,PDLプリンタ(CaPSL,PS),市販されるスキャナ等多くのデバイスが接続可能になっている。また、ネットワーク上のホストマシンからは、これらのデバイスを自由に使用させるため、以下のように各ジョブを制御している。
【0295】
例えばホストコンピュータAからカラーレーザビーム複写装置に10頁のドキュメントを出力する要求がSPネットワークサーバーに送られ、さらにホストコンピュータBからバブルジェットカラー複写装置(BJC)のスキャナからカラー原稿を入力する要求が発生し、さらにホストコンピュータCからPDLプリンタに出力するという要求が発生するといった事態も想定される。このように、ネットワーク上のホストコンピュータからは、様々な要求がSPネットワークサーバーに送られ、SPネットワークサーバーでは、それらの要求(ジョブ)に対処するべく下記のようなジョブ制御を実行する。なお、本実施例ではプリント要求,スキャン要求をジョブと呼ぶ。例えばカラーレーザビーム複写装置(CLC)のプリンタにCaPSLコードで記述された3頁のドキュメントを出力する要求を1つのジョブと考える。SPネットワークサーバーのジョブ制御では、同時に2つまでのジョブしか走らないようにするが、3つ以上のジョブが走る場合も制御を拡張することによりほぼ同様に制御できる。
【0296】
以下、図38を参照しながら本発明に係るサーバー装置におけるジョブ制御動作について説明する。
【0297】
図38は本発明に係るサーバー装置におけるジョブ制御状態を説明するタイミングチャートである。なお、ジョブの処理は、SPネットワークサーバーがスプール用のハードディスクを備えているかどうかにより、図38の(a)〜(e)の何れかのジョブ制御1〜5に大別される。また、説明上ジョブ1,2は3頁のプリント要求または3頁のスキャン要求とする。
〔ジョブ制御1〕
ジョブ制御1は、同図(a)に示すように、先に要求のあったジョブを実行して、次のジョブ2は、ハードディスクにスプールして、ジョブが終了した時点でジョブ2を起動する。
〔ジョブ制御2〕
ジョブ制御2は、同図(b)に示すように、特殊な場合であるが、1つのジョブで2つ以上のデバイスを動かす場合の制御に対応する。例えばメモリに展開した画像をカラーレーザビーム複写装置(CLC),バブルジェットカラー複写装置(BJC)にも出力する場合である。
〔ジョブ制御3〕
ジョブ制御3は、同図(c)に示すように、ジョブの中にページという概念をいれる。この場合、プリントの場合にはドキュメントのページ単位、スキャナの場合には1ページの原稿のスキャンの単位とする。例えばジョブ1を実行中にジョブ2の要求がきた場合には、ジョブ1をページの切れ目で中断して、ジョブ2を行う。この場合、ジョブ1とジョブ2とは同時に動いていることはない。
〔ジョブ制御4〕
ジョブ制御4は、同図(d)に示すように、ジョブ1を実行中にジョブ2の要求がきた場合は、ジョブ1を実行したまま、直ちにジョブ2を実行する。
〔ジョブ制御5〕
ジョブ制御5は、同図(e)に示すように、ジョブ1を実行中にジョブ2の要求がきた場合は、ジョブ2をリジェクトする。
【0298】
なお、図1に示したサーバー装置の構成の場合には、ジョブの種類が下記の(1)〜(7)に分類される。
【0299】
(1)カラーレーザビーム複写装置(CLC)のプリンタにドキュメントを出力する。
【0300】
(2)カラーレーザビーム複写装置(CLC)のスキャナから原稿を読み取る。
【0301】
(3)バブルジェットカラー複写装置(BJC)のプリンタにドキュメントを出力する。
【0302】
(4)バブルジェットカラー複写装置(BJC)のスキャナから原稿を読み取る。
【0303】
(5)市販のページ記述言語のインタプリタを内蔵するプリンタに出力する。
(6)市販のビットマッププリンタにドキュメントを出力する。
【0304】
(7)市販のスキャナから原稿を読み取る。
【0305】
以下、各ジョブの優先順位処理について説明する。
【0306】
例えばスキャンのジョブを至急行いたい時、プリントジョブが実行中ならば、プリントジョブを中断して、スキャナジョブを行うことができるように、本実施例では優先順位0〜2の3段階の指定可能であり、優先順位0が指定なし(ファーストインファーストアウト)の場合、優先順位1がジョブ単位で優先割込み指定ありの場合、優先順位2がページ単位で優先割込み指定する場合である。 以下、図39を参照しながら本発明に係るサーバー装置におけるSPマネージャー制御動作について説明する。
【0307】
図39は本発明に係るサーバー装置におけるシステム全体制御プログラム93の制御処理状態を示す図である。本実施例において、システム全体制御プログラム93は、主としてホストコンピュータから送出されてくるジョブの優先順位,ジョブの種類を参照してプリンタのジョブを最適に制御する。以下、図面に基づいて、SPネットワークサーバに対して、ネットワーク上のホストコンピュータから様々な要求が送出される場合のジョブ管理について説明する。
【0308】
先ず、各プログラムの概念的な構成を説明すると、図39に示すように、通信に関する通信プログラム83,SPネットワークサーバーの全体を制御するシステム全体制御プログラム93,スキャナに関するプログラムのスキャナ制御プログラム85,プリント処理(CaPSLのインタプリタ)に関するプログラムのPDLインタープリタープログラム84,入出力機器を実際に制御するデバイスドライバ86の5つのプログラムに大きく分けられる。さらに、実際にデータが流れるインタフェースとして、バンドメモリ(BMEM)70−1,セントロニクスインタフェース(CENTR)70−2,RS232Cインタフェース(RS232)70−3があり、これらをシステム全体制御プログラム93が管理する構成となっている。
【0309】
システム全体制御プログラム93は基本的に他の4つのプログラムからのイベントにより動く、イベント駆動型の処理を図40に示すフローチャートに従って実行する。
【0310】
図40は、図39に示したシステム全体制御プログラム93のイベント処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【0311】
先ず、SPネットワークサーバーの電源投入時にシステム全体制御プログラム93は起動し、すぐにイベント待ちの無限ループになる。プログラムが走り出すと、イベント待ちの状態になる(1) 。イベントか入力されるとループから抜け出し、もし、そのイベントが通信プログラム83からのものかどうかを判定し(2) 、YESならばイベントに応じた処理を行なう(3) 。そして、またステップ(1) に戻りイベント待ちのループになる。
【0312】
一方、ステップ(2) の判定でNOの場合は、そのイベントの発行先がPDLインタープリタープログラム84のプリントジョブかどうかを判定し(4) 、YESならばイベントに応じた処理を行なう(5) 。
【0313】
一方、ステップ(4) の判定でNOの場合は、そのイベントの発行先がスキャナ制御プログラム85のスキャナジョブかどうかを判定し(6) 、YESならばイベントに応じた処理を行なう(7) 。
【0314】
一方、ステップ(6) の判定でNOの場合は、そのイベントの発行先がデバイスドライバ86からかどうかを判定し(8) 、NOならばステップ(1) に戻り、YESならばイベントに応じた処理を行い(9) 、ステップ(1) に戻る。
【0315】
一方、通信プログラム83からは、カラーレーザ複写装置(CLC)のプリントに関するジョブや、バブルジェットカラー複写装置のスキャナに関するジョブ等、いろいろなジョブの要求が不定期的にシステム全体制御プログラム93に送られる。それら複数のジョブを資源の許す限り最適に振り分けなければならない。以下そのアルゴリズムについて図41を参照しながら説明する。
【0316】
図41は本発明に係るサーバー装置におけるジョブの管理状態を示す図である。
【0317】
この図に示されるように、ジョブの管理にはジョブテーブルを使用する。ジョブテーブルには、ジョブを識別するためのID、ジョブの状態を示すステータス、ジョブの実行の優先順位、ジョブの種類、終了ページ、そして割り込みジョブIDがある。
【0318】
IDはシリアルの番号で、ジョブの要求の受け付け順と考えて良い。ステータスには、実行中を示すRUN、処理を待っているWAIT、割り込みが入って中断していることを示すSTOP,エラーが発生して回復待ちを示すESTOPがある。優先順位はLEVEL0から2まであり0は「指定なし」で通常はこのレベルを指定する。1は「ジョブ単位で優先割り込み」で幾つかのジョブが待ち状態の時、それらのジョブより優先して処理するというものである。また2は「ページ単位で割り込み」を表し、現在ジョブを処理中でも、ページの切れ目であればそのジョブを中断してLEVEL2のジョブを処理する。
【0319】
インタフェースは、図39に示すようにそのジョブが使用するハードウェアを指し、ジョブ同士が排他的にハードウェアを利用可能にするために設けたものである。また,ジョブはカラーレーザ複写装置(CLC)のプリンタからドキュメントを出力するCLCP、カラーレーザ複写装置(CLC)のスキャナから原稿を読みとるCLCS、バブルジェットカラー複写装置のプリンタにドキュメントを出力するBJP、バブルジェットカラー複写装置のスキャナから原稿を読みとるBJS、市販のページ記述言語のインタプリタを内蔵するプリンタに出力するPDLP、市販のビットマッププリンタにドキュメントを出力するBITP、市販のスキャナから原稿を読みとる等のジョブがある。なお、終了ページにはジョブが処理し終ったページ数を記録しておく。これは、もしエラーが起こった時にエラー回復後、どのページから処理を再開すれば良いかの判断に使われる。また最後の割り込みジョブIDは、割り込んだジョブが終了しているかの判断に使われ、終了していれば、STOP中のジョブを再開する。
【0320】
システム全体制御プログラム93は以上のような情報の格納されたジョブテーブルを参照しながら、次にどのジョブを起動するかを最適に判断する。
【0321】
以下、図42に示すフローチャートを参照しながら本発明に係るサーバー装置におけるジョブ実行処理動作について説明する。
【0322】
図42は本発明に係るサーバー装置におけるジョブ実行処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【0323】
なお、このフローに制御が移るタイミングは、次のようになる。▲1▼システム全体制御プログラム93にイベントが入らずアイドル状態の時にある一定の間隔をおいてこのフローに移る。そして、ジョブテーブルにジョブがなければまたアイドル状態になる。▲2▼通信プログラム83からのイベントがあった時。▲3▼PDLインタープリタープログラム84,スキャナ制御プログラム85から、ページ終了のイベントまたはドキュメント終了のイベントがあった時。▲4▼デバイスドライバ86からエラー等のイベントがあった時。
【0324】
先ず、ステップ(1) において、図41に示すジョブテーブルを参照する。次いで、ステップ(2) においてジョブがあるかどうかの判断をする。実行すべきジョブがない時にはステップ(7) に移り、システム全体制御プログラム93はアイドル状態になる。実行すべきジョブがある場合にはステップ(3) で実行可能なジョブの候補を幾つか選び、ステップ(4) で候補に上がったジョブの優先順位を見て一つのジョブに絞る。さらに、ステップ(5) でその絞り込まれたジョブが使用するインタフェースが空いているかを判断する。ステップ(6) で実際にジョブを実行し、処理を終了する。
【0325】
以下、図43に示すフローチャートを参照しながら本発明に係るサーバー装置におけるステータスチェック処理動作について説明する。
【0326】
図43は本発明に係るサーバー装置におけるステータスチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(14)は各ステップを示す。
【0327】
先ず、ステップ(1) でジョブテーブルから一つのジョブのステータスを読みとる。ステップ(2) でジョブのステータスがRUNかどうかを判断し、RUNならばステップ(14)に移りジョブテーブルのジョブをすべて読みとったかを判断する。もし、まだジョブが残っていればステップ(1) で次のジョブのステータスを読みに行く。RUNでなければステップ(3) に移る。ステップ(3) ではジョブのステータスがWAITかどうかの判断をする。WAITならばステップ(4) で実行可能なジョブの候補としてピックアップする。そしてステップ(14)に移る。WAITでない場合には、ステップ(5) に移り今度はステータスがESTOPかどうかの判断をする。もし、このジョブのステータスがESOPならば、エラーを起こして中断しているので、ステップ(6) でこのジョブを中断した原因のエラーが回復しているかどうかのチェックを行なう。ステップ(7) はエラー中か、そうでないかの判断の分岐になる。まだエラーの場合には実行可能なジョブの候補にはピックアップせずにステップ(14)に移る。エラーが回復している場合には、そのジョブのステータスをESTOPからWAITにジョブテーブルを書き換える。そしてステップ(9) で実行可能なジョブの候補としてピックアップする。またステップ(5) でステータスがESTOPではないと判断された場合には、他のジョブに割り込まれて中断しているSTOPの状態なので、ステップ(10)で割り込んだジョブのステータスをチェックする。ステップ(11)では割り込んだジョブが実行中かどうかの判断をする。実行中ならば実行可能なジョブの候補にはピックアップせずにステップ(14)に移る。もし、実行中でなければステップ(12)に移り、そのジョブのステータスをSTOPからWAITにジョブテーブルを書き換える。そして、ステップ(13)で実行可能なジョブとしてピックアップする。最後に、すべてのジョブをジョブテーブルから読み終ったら(14)、ステータスのチェックは終了する。このようにして実行可能なジョブの候補が複数選ばれる。
【0328】
以下、図44に示すフローチャートを参照しながら本発明に係るサーバー装置における優先順位チェック処理動作について説明する。
【0329】
図44は本発明に係るサーバー装置における優先順位チェック処理手順の一例を示すフローチャートである。なお、(1) 〜(11)は各ステップを示す。また、本実施例では候補に上がったジョブの優先順位を見て実行するジョブを一つに絞るということをする。
【0330】
ステップ(1) で実行可能なジョブの候補としてあげられた複数のジョブの内一つに対してその優先順位をリードする。ステップ(2) でLEVEL2かどうかの判断をする。LEVEL2ならばステップ(3) に移りLEVEL2のジョブが存在するかどうかを表すフラグFLG2を立てる。LEVEL2でなければステップ(4) に移り今度はLEVEL1であるかの判断をする。LEVEL1ならばステップ(5) に移りLEVEL1のジョブが存在するかどうかを表すフラグFLG1を立てる。もしLEVEL1でもないと判断された場合には、LEVEL0になる。すなわちFLG2もFLG1も立っていない場合にはLEVEL0になる。
【0331】
一つのジョブの優先順位の判断が終るとステップ(6) に移り候補に上がったジョブをすべて調べたかどうかを判断する。まだすべて調べ終ってない時にはステップ(1) に戻り、次のジョブの判断に移り、調べ終った場合にはステップ(7) に移る。フラグFLG2が立っている時にはステップ(8) に移り、優先順位がLEVEL2でジョブのIDが小さい(早くジョブのリクエストを受け付けたもの)ジョブを選択する。
【0332】
同様に、ステップ(9) ,(10)では優先順位がLEVEL1でジョブのIDが小さいジョブを選択する。ステップ(11)では優先順位がLEVEL0でIDの小さいジョブが選択され、優先順位のチェックが終了する。
【0333】
このようにして次に起動可能なジョブを一つに絞る。起動可能なジョブが決定しても、インタフェースの状態により実際に起動できるかどうかが決まってくるのでジョブとインタフェースの関係を調べなくてはならない。
【0334】
以下、図45に示すフローチャートを参照しながら本発明に係るサーバー装置におけるインタフェースチェック処理動作について説明する。
【0335】
図45は本発明に係るサーバー装置におけるインタフェースチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【0336】
先ず、ステップ(1) において、一つに絞られたジョブのインタフェースをジョブテーブルからリードする。ステップ(2) でそのインタフェースの状態をチェックする。使用中でなければステップ(5) に移りそのジョブを実行ジョブテーブルに登録する。実行ジョブテーブルは、実際に起動するジョブを表すテーブルでマルチでジョブを走らせることが出来るので複数のジョブが登録可能である。
【0337】
ステップ(6) のジョブ処理ではこの実行ジョブテーブルを参照してジョブを起動する。
【0338】
インタフェースが使用中の場合にはステップ(3) に移りジョブの優先順位をチェックする。LEVEL2でなければ、現在のジョブを中断させることは出来ないので実行ジョブテーブルに登録することはしないで、処理を終了する。 また、ステップ(3) でLEVEL2の時には、ステップ(4) で現在ステータスがRUNのジョブがLEVEL2であるかの判断をする。もしRUNのジョブがLEVEL 2であるならば中断させることは出来ないので、選択されたジョブは実行ジョブテーブルに登録せずに、処理を終了する。
【0339】
一方、現在実行中のジョブ(ステータスがRUN)の優先順位がLEVEL1またはLEVEL0の場合には現在実行中のジョブを中断させて新たに選択されたジョブを起動させる。その場合、ステップ(6) に移り、ステップ(4) で選択されたジョブを実行ジョブテーブルに登録する。ステップ(7) で現在実行中のジョブのステータスをSTOPにして、さらに優先順位をLEVEL2にする。これは、ジョブが復帰した時に優先して実行されるようにするためである。
【0340】
ステップ(8) で現在実行中のジョブが何ページまで処理したかを記録しておくために終了ページ数をジョブテーブルに書き込む。さらにステップ(9) で現在実行中のジョブを実行ジョブテーブルから削除する。これで、現在実行中のジョブが起動されることはなく、ステータスもSTOPになり再度ジョブが起動されるのを待機することになる。このようにしてインタフェースチェック処理を終了する。
【0341】
以下、図46に示すフローチャートを参照しながら本発明に係るサーバー装置におけるジョブ起動処理動作について説明する。
【0342】
図46は本発明に係るサーバー装置におけるジョブ起動処理手順の一例を示すフローチャートである。なお、(1) 〜(4) は各ステップを示す。
【0343】
先ず、ステップ(1) において、実行ジョブテーブルを参照して起動すべきジョブをリードする。ステップ(2) でこれから起動するジョブがステータスESTOPでエラーストップしているジョブの種類と同じかどうかをチェックする。もし同じであれば、起動することは出来ないのでステップ(4) に移り。実行ジョブテーブルをすべて読んだかを判断する。もしまだ残っていればステップ(1) に移り次のジョブの起動処理をする。もしエラーストップしているジョブの種類と違っていれば実行可能なので、ステップ(3) に移りジョブの起動に移る。実際のジョブを起動する時は、ステータスをWAITからRUNに替え、インタフェースを確保する。逆にエラーストップ、または割り込みで中断する時には、インターフェースを解放する。
【0344】
ステップ(4) で実行ジョブテーブルにジョブが残っているかを判断して、もう起動すべきジョブが残っていなければ、ジョブ起動処理を終了する。
【0345】
以下、図47〜図57を参照しながら本発明に係るサーバー装置における具体的ジョブ処理動作について説明する。
【0346】
図47は本発明に係るサーバー装置におけるジョブ処理状態推移を示すタイミングチャートである。なお、図中の横軸右方向に時間が流れていくものとする。
図において、801〜813はジョブテーブルをチェックするタイミングを示し、タイミング800〜803は通信プログラム83からジョブのイベントがシステム全体制御プログラム93に入るタイミングに対応し、タイミング804〜813はジョブテーブルをチェックするタイミングに対応する。
【0347】
図48〜図57は本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図であり、図48〜図57はタイミング804〜タイミング813におけるジョブテーブルに対応する。なお、ジョブテーブルはチェック直前の内容を示している。また、ジョブはカラーレーザ複写装置(CLC)のプリンタからドキュメントを出力するCLCP、カラーレーザ複写装置(CLC)のスキャナから原稿を読みとるCLCS、バブルジェットカラー複写装置のプリンタにドキュメントを出力するBJP、バブルジェットカラー複写装置のスキャナから原稿を読みとるBJS、市販のページ記述言語のインタプリタを内蔵するプリンタに出力するPDLP、市販のビットマッププリンタにドキュメントを出力するBITP、市販のスキャナから原稿を読みとる等のジョブがある。
【0348】
タイミング800で、ジョブのイベントが入ってくる。内容はカラーレーザ複写装置(CLC)のプリンタにドキュメントを出力するジョブ1(内容はCLCP)で、出力ページ数は3ページ、優先順位はLEVEL0、インタフェースにはBMEMを用いるというものである。ジョブテーブルJOBTを見てみると、図48に示すようにIDに「25」が割り当てられ、ステータスはWAIT、終了ページはまだこのジョブは処理されていないので0ページになっている。
【0349】
タイミング804のジョブテーブルチェックでは、ID25のジョブが選択され、起動される。この時ID25のジョブのステータスをRUNに変更する。
801のタイミングで新たなジョブが入ってくる。ジョブID25のジョブの1ページの処理が終了するとシステム全体制御プログラム93は再度ジョブテーブルを見に行く。その時のジョブテーブルJOBTは図49に示される。ID25のジョブは1ページの出力が終了して、次ページが処理されるのを待っている状態である。終了ページは0ページから1ページに変化している。また、新たに入ったジョブはID26が割り当てられ、ステータスはWAIT、優先順位はLEVEL1、インタフェースはBMEM、ジョブはBJPになっている。システム全体制御プログラム93はこのジョブテーブルJOBTから判断して、ID25のジョブの2ページ目の処理を起動する。
【0350】
この時、2ページめの途中でプリンタに紙ジャムが発生してしまいID25のジョブを続けられなくなってしまった。システム全体制御プログラム93はジョブテーブルJOBTを参照して次に起動すべきジョブを探す。その時のジョブテーブルJOBTは図50のようになっている。ID25のステータスはESTOPになり、優先順位は復帰した時に優先的に実行させるためにLEVEL2、終了ページは1ページのままになっている。そこで、システム全体制御プログラム93はID26のジョブを起動する。ID26のジョブが1ページの処理を終了すると、システム全体制御プログラム93はジョブテーブルJOBTチェック807に移る。この時の状態は図51に示される。ID25のジョブははエラーチェックをしてもエラーが回復していないので起動されることはない。そこで、システム全体制御プログラム93はID26のジョブの2ページ目を処理することをPDLインタープリタープログラム84に対して要求する。
【0351】
ID26のジョブが2ページ目を処理している最中に新たなジョブのイベントがシステム全体制御プログラム93に入ってくる。内容は、バブルジェットカラー複写装置のスキャナから2ページ分の原稿を読み取るものである。ID26のジョブが2ページ目の処理を終了すると、システム全体制御プログラム93はジョブテーブルJOBTをチェックする。その時のジョブテーブルJOBTが図52である。
【0352】
ID25はエラーが回復していないのでそのままの状態である。ID26のジョブは2ページの処理が終了したので、終了ページは2に変化している。さらに新しいジョブがID27に割り当てられている。ID27のジョブは優先順位がLEVEL2であるので、システム全体制御プログラム93は現在処理中のID26のジョブを中断させてID27のジョブを起動する。ID26のジョブはステータスがSTOPに、優先順位がLEVEL2になる。
【0353】
スキャナ制御プログラム85が1ページの原稿読み込みしている最中に、システム全体制御プログラム93には新たなジョブのイベントがタイミング803で入ってくる。1ページの読み込みが終了すると、システム全体制御プログラム93はタイミング809でジョブテーブルJOBTをチェックする。この時のジョブテーブルJOBTは図53のようになる。ID25のジョブはエラーが回復していないのでESTOPのままである。また、ID26はステータスがSTOPで、割り込みジョブIDが27であるので、ID27のジョブをチェックするとステータスはRUNのままなので再開することは出来ない。新たに入ってきたジョブはID28が割り当てられる。ID28のジョブはセントロニクスインタフェースを通して市販のプリンタにデータを流すジョブで、現在起動されているジョブと同時に走らせることが出来る。そこで、システム全体制御プログラム93はID28のジョブとID27の2ページ目をスキャンするジョブを同時に起動する。
【0354】
次にシステム全体制御プログラム93はジョブテーブルJOBTチェック(タイミング810)に移る。この時のジョブテーブルJOBTは図54に示される。ジョブテーブルJOBTチェック(タイミング810)の前にジョブID25のエラーが解除されているので、エラーチェック後ステータスはWAITに戻る。
【0355】
また、ID26のジョブも、割り込んだID27のジョブが終了したのでステータスがWAITに戻る。ID28のジョブはRUNの状態のままである。システム全体制御プログラム93はインタフェースBMEMが空いているのでID25またはID26のジョブを起動させる。どちらのジョブともステータスはWAITで、優先順位もLEVEL2と状態は同じであるので先に受け付けたID25のジョブを起動する。この時、ID25のジョブは終了ページが1ページであるので2ページ目から処理するようにPDLインタープリタープログラム84に要求を出さなければならない。
【0356】
ジョブテーブルJOBTチェック(タイミング811)では図55に従う。ID25とID28のジョブはステータスがRUNでID26はWAITである。ID26のジョブは優先順位がLEVEL2で、現在起動中のジョブに対して割り込むことが出来るがID25もLEVEL2で起動されたので、この場合には割り込むことは出来ない。
【0357】
ジョブテーブルJOBTチェック(タイミング812)に移る。ジョブテーブルJOBTは図56に示される。ID25のジョブはすでに終了してジョブテーブルJOBTから削除されている。そこで、システム全体制御プログラム93はID26のジョブを3ページ目から起動する。
【0358】
ジョブテーブルJOBTチェック(タイミング813)では、図57に示すようにID28のジョブが走っている状態なので、新たにシステム全体制御プログラム93はジョブを起動することはしない。
【0359】
以上のように、システム全体制御プログラム93はジョブテーブルJOBTを参照しながら最適にジョブ管理を行なう。
【0360】
なお、上記実施例では文字,図形,イメージがホストコンピュータで編集された後、ネットッワークを介して通信されたプリント要求をスキャナ/プリンタをドライブするサーバー装置上で処理して、当該プリンタから出力する場合について説明したが、図58に示すように、クライアントホストコンピュータ901,902,スキャナプリンタ904をドライブするSPサーバー装置903がネットワーク905を介して接続されるシステムにおいて、クライアントホストコンピュータ901,902から転送された文字,図形の各情報とスキャナプリンタ904のスキャナから入力されたイメージとをSPサーバー装置903が合成編集することにより、合体出力させるように構成しても良い。
【0361】
図58は本発明の第2の実施例を示すサーバー装置の構成を説明するブロック図である。
【0362】
図において、906は記憶装置で、SPサーバー装置903内に設けられ、クライアントホストコンピュータ901,902から転送された文字,図形の各情報を蓄える。
【0363】
このように構成されたサーバー装置において、本体またはネットワーク上に設けた記憶手段(記憶装置906)に画像処理装置から出力される第1の画像情報または所定のネットワークに接続される各ホストコンピュータから転送される第2の画像情報を記憶させることにより、各ホストコンピュータからの画像情報出力処理負担を軽減させるとともに、記憶した画像情報を効率よく再利用させる。
【0364】
また、記憶手段(記憶装置906)に記憶された第1および第2の画像情報を画像合成手段が合成しながら出力画像を生成して画像処理装置(本実施例ではスキャナプリンタ904)に出力することにより、各ホストコンピュータ上での画像編集負担を軽減させる。
【0365】
なお、本実施例においては、クライアントホストコンピュータ901,902上では、例えばワードプロセッサ,グラフィックソフトにより、オペレータが文字情報,図形情報の生成を行う。生成された文字,図形情報等(第1の画像情報)は、ネットワーク905を経由して、SPサーバー装置903に送られる。SPサーバー装置903で受け取った文字,図形情報は、SPサーバー装置903内の記憶装置906に記憶される。
【0366】
一方、スキャナプリンタ904でスキャンされた画像情報(第2の画像情報)も、SPサーバー装置903内の記憶装置906に記憶される。SPサーバー装置903上で動作しているページ記述言語により、SPサーバー装置903の記憶装置906内で文字情報,図形情報,画像情報(イメージデータ)が、図59に示すように合成される。
【0367】
なお、SPサーバー装置903は、指定されたクライアントホストコンピュータ901,902からの命令に応じて接続される複数のスキャナプリンタ904のスキャナに関する読取り特性、あるいは単独で接続される画像入力装置(スキャナ)に関する読取り特性、例えばカラー/モノクロ何れであるかを示す特性データをネットワーク905を介して指定されたクライアントホストコンピュータに転送し、ホスト側が接続される画像読取り装置の読取り特性を認識することが可能となる。
【0368】
図59は、図58に示したSPサーバー装置903により合成される印刷レアウトを示す模式図である。
【0369】
図において、911は1ページの領域を示し、この領域911内に、クライアントホストコンピュータ901,902からネットワーク905を介して転送された文字,図形等の転送情報912およびSPサーバー装置903が制御するスキャナプリンタ904でスキャンされた画像情報913がレイアウト情報に従って割付けられる。このように合成された情報がSPサーバー装置903のプリンタから出力させることも可能となる。
【0370】
なお、上記SPサーバー装置903に制御されるスキャナプリンタ904は、スキャナとプリンタとが独立した単体構成であっても良い。また、SPサーバー装置903に別の大容量記憶装置、例えば光磁気ディスク装置を接続した場合、スキャナプリンタ904のスキャナで読み取った画像情報をその都度SPサーバー装置903内の記憶装置906に読み込み、クライアントホストコンピュータ901,902から転送された文字,図形情報とを合成して印刷するのではなく、スキャン画像を上記大容量記憶装置内に順次記憶させて行くことにより、画像データベースを構築することで、任意に大容量の記憶装置内から画像を取り出し、その画像を文字,図形情報と合成しながら印刷させることもできる。さらに、上記大容量の記憶装置をSPサーバー装置903の記憶装置906と別に設ける際、当該大容量の記憶装置とSPサーバー装置903とが直接接続されていなくても良く、例えばネットワーク905に接続されるクライアントホストコンピュータ901,902に配置され、これらのクライアントホストコンピュータ901,902がSPサーバー装置903に転送できる構成であれば良い。
【0371】
以下、図60,図61を参照しながら本発明に係るサーバー装置における入出力制御動作について説明する。
【0372】
図60は本発明に係るサーバー装置における第1の入出力制御手順の一例を示すフローチャートである。なお、(1) 〜(20)は各ステップを示し、特に各ホストコンピュータからのPDLデータを指定されたプリンタから出力する場合に対応し、かつ、各ステップは図9に示したCPU1000がROM1002に記憶された後述するプログラムに基づいている。
【0373】
CPU1000はLAN96に接続されるいずれかのホストコンピュータよりプリントコマンドを受信すると(1) 、受信したPDLデータをバッファメモリ1005に一旦格納し(2) 、格納したPDLデータに従ってプリント条件を解析する(3) 。次いで、プリント対象がホストコンピュータからのPDLデータのみか、それともPDLデータおよびスキャナから取り込んだイメージデータの合成かを判定し(4) 、スキャナデータの合成の場合には、接続されたスキャナとのインタフェースを介してスキャナ使用可能状態かどうかを判定し(5) 、NOならばホストコンピュータにその旨を通知し(7) 、次の命令を受信したら(8) 、リターンし、YESならばスキャンを開始し(6) 、原稿読み取りを終了したら(9) 、編集指定がある場合には、読み取り原稿に対して例えばトリミング,マスキング,色変換等を施して(10)、編集が終了したら(11)、ホストコンピュータから入力されたプリントデータPD1との合成が指示されているかどうかを判定し(12)、NOならばステップ(19)に進み、指定されたプリンタでのプリント処理を開始し(19)、プリントが終了したら、プリント処理をすべて終了したかどうかを判定し(20)、YESならばリターンし、NOならば(1) に戻り、各処理を繰り返す。
【0374】
一方、ステップ(12)の判定でNOならば、指定されたプリンタが使用可能かどうかを判定し(13)、NOならばステップ(7) に戻りホストコンピュータにその状態を通知し、YESならば他のホストコンピュータからのプリンタデータPD2との合成が指示されているかどうかを判定し(14)、YESならばステップ(1) に戻り、NOならば1ページ分のPDL解析を終了するのを待機し(15)、PDLをビットマップに変換(本実施例ではバンド単位に行う)し(16)、編集指示があるかどうかを判定し(17)、YESならば既に読み込まれたスキャンデータSDとプリンタデータPDとを編集し(18)、指定されたプリンタによるプリントを開始し(19)、1ページ分のプリントデータPDを出力し終えたかどうかを判定し(20)、NOならばステップ(1) に戻り、YESならばリターンする。
【0375】
なお、上記実施例ではスキャナから取り込んだスキャンデータSDまたはホストコンピュータから受信したプリントデータPDの何れか、もしくはこれらの組み合わせデータ(スキャナデータSD+プリントデータPD)を指定されたプリンタから出力する場合の制御について説明したが、スキャナ,プリンタが複数台存在する場合には、さらに複合された出力データ(例えば(スキャナデータSD1+スキャナデータSD2,プリントデータPD1+プリントデータPD2,スキャナデータSD1+プリントデータPD1+プリントデータPD2等)を指定されたプリンタから出力することも容易に可能となる。
【0376】
図61は本発明に係るサーバー装置における第2の入出力制御手順の一例を示すフローチャートである。なお、(1) 〜(15)は各ステップを示し、特に各ホストコンピュータからの指定に従って指定されたスキャナから取り込んだ画像情報(スキャナデータSDを指定されたホストコンピュータに出力する場合に対応し、かつ、各ステップは図9に示したCPU1000がROM1002に記憶された後述する各プログラムに基づいている。
【0377】
先ず、CPU1000はLAN96に接続されるいずれかのホストコンピュータよりスキャナコマンドを受信すると(1) 、当該ホスト名を解析し(2) 、返信ホストが指定されているかどうかを判定し(3) 、YESならばマルチ返信ホスト名テーブルに指定された複数のホスト名(スキャナコマンドを入力したホストコンピュータ、すなわち自ホスト名を含む)を登録し(5) 、NOならば返信ホスト名テーブルに自ホスト名を登録する(4) 。次いで、スキャナ指定先を解析し(5) 、指定されたスキャナが使用可能な状態であるかどうかをインタフェースを介して調べ(7) 、使用不能(電源が入力されていない等)である場合には、そのスキャナ状態をホストコンピュータに通知し(8) 、次の命令入力待ちとなり(9) 、命令が入力されたらリターンする。
【0378】
一方、ステップ(7) の判定で指定されたスキャナが使用可能であれば、原稿のスキャンを開始し(10)、スキャン終了したら(11)、スキャンデータをPDLに変換し(12)、各ホストコンピュータとのネットワーク状態を確認後、ステップ(4) ,(5) で登録された各テーブルを参照して、変換したPDLデータをLAN96を介して送信し(14)、指定されたホストコンピュータから正常応答が通知されるのを待機し(15)、通知後、処理を終了する。
【0379】
なお、上記実施例ではスキャナデータSDの転送先として指定されたホストコンピュータが通信可能状態であることを前提としている場合について説明したが、指定されたホストコンピュータに装着されるネットワークボード(図示しない各ホストコンピュータ毎に仕様が異なる)が外部記憶手段をドライブできる環境であれば、当該外部記憶手段にスプール用に構成し、ホストコンピュータ立ち上げ時に当該スキャンデータの受領有無を報知するように構成してもいいし、指定されたホストコンピュータとの通信が可能となるまで、CPUボード部側に接続されるハードディスク等に一時蓄積しておいて、ホストコンピュータとの通信が可能となった時点で、上記各テーブルを参照して指定されたホストコンピュータに取り込んだスキャナデータSDを転送するように制御しても良い。また、転送するスキャナデータSDとして、複数のスキャナを制御できる場合には、それぞれのスキャナからのスキャナデータSD1,SD2,…,SDNをそれぞれ指定されたホストコンピュータに転送するように制御しても良い。これにより、スキャナ要求を発行したホストコンピュータ上のアプリケーションでは処理できないような画像情報(例えばカラー画像情報)、もしくは処理可能であるが処理速度が非常に遅い場合等には、転送先を自在に変更して、対応可能な各ホストコンピュータが備える種々のアプリケーションでの処理が容易に可能となる。
【0380】
図62はこの発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【0381】
図において、2001はネットワークで、異なるOSで管理されるワークステーション(サンワークステーション)2002,ワークステーション(マッキントッシュステーション)2007,ワークステーション(IBMPC)2012が接続されるとともに、リアルタイムOS(例えばVxWORKS)で管理されるサーバー装置(カラースキャナ/プリンタサーバー装置)NWSが接続され、サーバー装置にはスキャナ/プリンタとしてカラーレーザー複写装置2023,カラーバブルジェット複写装置2024が所定のインタフェースを介して接続されている。なお、インタフェースとしてはセントロニクス,RS232C等を備えていても良い。
【0382】
2003はワークステーション2002上で起動するアプリケーションプログラム(本実施例ではフレームメーカー)、2004はアプリケーションプログラム2003がサポートとする周辺機器インタフェース、2005は変換プログラムで、前記周辺機器インタフェース2004から出力される標準インタフェースから文字,グラフィックス部分(第1のカラー画像情報)を、第2のカラー画像情報(本実施例では上述したページ記述言語CaPSL)に置換し、画像データ部分はJPEG符号化する。すなわち、フレームメーカーのデータを基本的にはページ記述言語CaPSLを基本とするデータに変換して伝送している。2006は通信プログラムで、ネットワーク2001と第2のカラー画像情報との通信処理を行う。従って、ネットワーク2001に流れるデータは文字部とグラフィックス部はページ記述言語CaPSLのコードで伝送され、画像部分はJPEG符号で伝送される。
【0383】
一方、ワークステーション2007をホストコンピュータする場合には、通常のアプリケーションプログラム2008から周辺機器に標準インタフェースとしてクイックドロー2009で出力される第1のカラー画像情報を、変換プログラム2010が上記同様にクイックドローのフォーマット形式のデータ中の、文字グラフィック部分を第2のカラー画像情報(本実施例では上述したページ記述言語CaPSL)に置換し、画像データ部分はJPEG符号化する。2011は通信プログラムで、ネットワーク2001と第2のカラー画像情報との通信処理を行う。従って、ネットワーク2001に流れるデータは文字部とグラフィックス部はページ記述言語CaPSLのコードで伝送され、画像部分はJPEG符号で伝送される。
【0384】
一方、ワークステーション2012をホストコンピュータとする場合には、通常のアプリケーションプログラム2013(ウインドウズ(WINDOWS)3.0以降)から周辺機器に標準インタフェースとしてGDI2014で出力される第1のカラー画像情報を、変換プログラム2015が上記同様にGDIフォーマット形式のデータ中の、文字グラフィック部分を第2のカラー画像情報(本実施例では上述したページ記述言語CaPSL)に置換し、画像データ部分はJPEG符号化する。2016は通信プログラムで、ネットワーク2001と第2のカラー画像情報との通信処理を行う。従って、ネットワーク2001に流れるデータは文字部とグラフィックス部はページ記述言語CaPSLのコードで伝送され、画像部分はJPEG符号で伝送される。以上のように、本発明に係る第2のサーバー装置の画像処理方法によれば、各ホストからの画像入出力指示に従って編集または読み取った第1のカラー画像情報を所定のページ記述コマンドに従う第2のカラー画像情報に変換し、該変換された第2のカラー画像情報を所定のネットワークを介して各入出力機器と各ホストとの間で相互に通信し、該通信により受信した第2のカラー画像情報を解析して、各入出力機器または各ホストに従う固有の第1のカラー画像情報に整合変換するので、各ホストのカラー画像処理形式および各入出力機器のデータ形式が異なっていても、1つのPDLインタープリタープログラム84で共通に処理することが可能となる。
【0385】
このように、OSが異なるワークステーション2002,2007,2011がネットワーク2001に接続されていても、ネットワーク2001上で通信されるデータ形式は統一されているために、受信側のカラーネットワークサーバーNWSでに統一的にインタプリトすることができる。従って、カラーネットワークサーバーNWSを異なるOS環境のワークステーションから共通にアクセスできる統合環境を安価に構築可能となる。以下、カラーネットワークサーバーNWS側の画像処理動作について説明する。
【0386】
図62において、2017はカラーネットワークサーバーNWS全体を制御するプログラムであるリアルタイムOS、2018は前記ネットワーク2001と通信するための通信プログラムで、ネットワーク2001上のデータを送受信する。2020は変換プログラムで、受信した第2のカラー画像情報(コードデータまたは圧縮画像データ)を可視化する部分で、コードデータをドットの可視化データに変換するとともに、スキャナから取り込まれたイメージデータ(第1の画像情報)を通信用のカラー画像情報に変換する。
【0387】
なお、可視化画像データを電子写真プロセスを実行する記録装置に出力する場合にデータ量を削減するため、JPEGの圧縮処理を実行し、圧縮メモリCMEMに記憶させる。電子写真方式で画像記録を行う場合には、圧縮されたデータを伸長処理しながら電子写真プロセスにより画像記録を行う(例えばカラーレーザー複写装置2023による記録処理実行時)。
【0388】
一方、例えばカラーバブルジェット複写装置2024等の記録装置の場合には、電子写真プロセスを実行する記録装置に比べて、比較的記録処理速度が遅く、可変記録となるので大きなバッファメモリを必要とせず、JPEGの圧縮処理も不要となる。このため、カラーバブルジェット複写装置2024指定時には、圧縮メモリCMEMに対して非圧縮状態で記録画像データを格納する。
【0389】
2021は入出力インタフェース切換え部で、インタフェース部2022を切り換え制御する。なお、本実施例では、セントロニクスを介して標準のカラープリンタを制御し、専用のCLCインタフェースを介してカラーレーザー複写装置2023を制御し、専用のG08インタフェースを介してカラーバブルジェット複写装置2024を制御する構成となっている。
【0390】
一方、カラーバブルジェット複写装置2024またはカラーレーザー複写装置2023のカラースキャナから画像を取り込んで、各ワークステーションに転送する場合には、各ワークステーションから走査範囲を指定し、スキャナの起動を開始する。読み取られた画像データは、圧縮部(JPEG)で標準JPEGの圧縮データに変換され、スキャナ制御部(SCAN),通信プログラム2018を通じネットワーク2001を介してワークステーション側に伝送される。
【0391】
このように、本実施例では各ワークステーション2001,2007,2012およびカラーネットワークサーバーNWSで固有の第1のカラー画像情報をそれぞれ変換プログラム2005,2010,2015,2020共通である所定のページ記述コマンドに従う第2のカラー画像情報に変換し、該変換された第2のカラー画像情報を前記所定のネットワークを介してカラーネットワークサーバーNWSと各ホストとの間で相互に通信し、該通信により受信した第2のカラー画像情報を変換プログラム2005,2010,2015,2020が解析して、各入出力機器または各ワークステーション2001,2007,2012に従う固有の前記第1のカラー画像情報に整合変換するので、各ワークステーション2001,2007,2012のカラー画像処理形式および各入出力機器(カラーバブルジェット複写装置2024,カラーレーザー複写装置2023)のデータ形式が異なっていても各ホストマシンおよびカラーネットワークサーバーは1つのインタプリタで共通に処理することが可能となる。
【0392】
なお、図38に示したように、本実施例のカラーネットワークサーバーNWS全体はリアルタイムOS2017により通信および画像処理が制御されているため、複数のワークステーションからのスキャンジョブまたはプリントジョブを同時に複数指定することができ、指定した複数のジョブを並列処理し、例えばカラーバブルジェット複写装置2024,カラープリンタを制御し、専用のCLCインタフェースを介してカラーレーザー複写装置2023によるマルチプリント動作を可能としている。
【0393】
このように、本発明に係るサーバー装置の画像処理方法によれば、各異機種ホストコンピュータ(各ワークステーション2001,2007,2012)からの各画像入出力指示に従って各入出力機器のプリントジョブまたはスキャナジョブの並列処理順序を入力された優先順位に基づいて制御するので、各ホストコンピュータからの画像入出力処理順序を自在に管理することが可能となる。
【0394】
図63はこの発明の一実施例を示すサーバー装置のネットワーク接続状態を示す図である。
【0395】
図において、2101−1,2101−2はホストコンピュータで、画像処理アプリケーションプログラムを実行する。2102はスキャナ/プリンタサーバー装置(SPサーバー装置)で、イーサネット(ゼロックス社の登録商標)等のネットワーク96に接続されるホストコンピュータ2101−1,2101−2からの画像出力要求/画像入力要求に応じて、カラープリンタ2103およびカラースキャナ2104の駆動を制御する。なお、スキャナ/プリンタサーバー装置2102には、図9に示したボード回路1を備えており、あらかじめネットワーク管理者がスキャナ/プリンタサーバー装置2102の利用を許可するユーザ名と、そのユーザのためのパスワードをハードディスク1008に登録してあるものとする。また、ユーザに与えるパスワード毎に、スキャナ/プリンタサーバー装置2102に接続されている使用許可マシン、すなわちカラープリンタ2103およびカラースキャナ2104の使用環境を追加,変更,修正を行うことができる。
【0396】
このように構成されたサーバー装置によれば、あらかじめ登録された第1のパスワードとネットワークに接続される各ホストから入力された第2のパスワードとを比較照合して、各ホストから要求される入出力機器におけるスキャナ機能処理実行およびプリント機能処理実行を禁止または許可するので、特定グループからのスキャナ機能処理実行およびプリント機能処理実行を優先実行させることが可能となる。
【0397】
以下、スキャナ/プリンタサーバー装置(S/Pサーバー装置)に係るパスワードによるカラープリンタ2103およびカラースキャナ2104の使用許諾制御動作について説明する。
【0398】
ホストコンピュータ2101−1でDTPソフト(アプリケーションプログラム)を用いて画像データを作成して出力する際に、ホストコンピュータ2101−1でプリンタ要求をS/Pサーバー装置2102に送出すると、S/Pサーバー装置2102は、プリント要求したホストコンピュータ201−1にネットワーク96を介してパスワードを問い合わせる。ユーザは、ホストコンピュータ2101−1のキーボード等からS/Pサーバー装置2102に対してパスワードを返信する。これに応じて、S/Pサーバー装置2102は、はハードディスク1008に登録されたパスワードテーブルに返信されたパスワードが登録されているものと一致したかどうかを判定し、不一致の場合は、S/Pサーバー装置2102はホストコンピュータ2101−1にエラー信号を返信する。これにより、特定のグループとしてパスワード登録されていないユーザは、カラープリンタ2103の使用することが制限される。
【0399】
一方、ホストコンピュータ2101−1から返信されたパスワードがハードディスク1008に登録されたパスワードテーブルに登録されているパスワードと一致する場合は、S/Pサーバー装置2102は、当該ユーザがプリント可能なプリンタ名を含むプリンタ情報をホストコンピュータ2101−1に返信する。そして、ユーザがホストコンピュータ2101−1で、例えばカラープリンタ2103を選択し、プリント開始命令を送出すると、S/Pサーバー装置2102は、ホストコンピュータ2101−1から送出されてきたプリントコマンドを解析し、指定されたカラープリンタ2103を初期設定して出力する。
【0400】
同様に、ホストコンピュータ2101−1でスキャナソフト(アプリケーションプログラム)を用いて画像の取り込みを行う際に、ホストコンピュータ2101−1でスキャン要求をS/Pサーバー装置2102に送出すると、SPサーバー2102は、スキャン要求したホストコンピュータ2101−1にネットワーク96を介してパスワードを問い合わせる。ユーザは、ホストコンピュータ2101−1のキーボード等からS/Pサーバー装置2102に対してパスワードを返信する。これに応じて、S/Pサーバー装置2102は、はハードディスク1008に登録されたパスワードテーブルに返信されたパスワードが登録されているものと一致したかどうかを判定し、不一致の場合は、S/Pサーバー装置2102はホストコンピュータ2101−1にエラー信号を返信する。これにより、特定のグループとしてパスワード登録されていないユーザは、カラースキャナ2104を使用することが制限される。
【0401】
一方、ホストコンピュータ2101−1から返信されたパスワードがハードディスク1008に登録されたパスワードテーブルに登録されているパスワードと一致する場合は、S/Pサーバー装置2102は、当該ユーザがプリント可能なプリンタ名を含むプリンタ情報をホストコンピュータ2101−1に返信する。そして、ホストコンピュータ2101−1のユーザが、カラースキャナ2104を選択してスキャン開始命令を送出すると、S/Pサーバー装置2102はホストコンピュータ2101−1から送出されたスキャンコマンドを解析して、指定されたカラースキャナ2104を初期設定して画像を取り込む。
【0402】
なお、ホストマシンがワークステーション等のユーザ名とパスワードを入力してログインするタイプのマシンの場合は、S/Pサーバー装置2102にユーザ名を登録することで上記パスワード登録と同等に機能させることができるため、S/Pサーバー装置2102を使用する際のパスワードの入力操作を軽減するユーザグレープを特定するように構成しても良い。以下、この場合について詳述する。
【0403】
ホストコンピュータ2101−1,2101−2で、例えばDTPソフト(アプリケーションプログラム)を用いて画像データを作り、当該画像データを出力する際、ホストコンピュータ2101−1,2101−2のうち、ホストコンピュータ2101−1でプリント要求をS/Pサーバー装置2102に送出すると、S/Pサーバー装置2102は、プリント要求したホストコンピュータ2101−1は、プリント要求したホストコンピュータ2101−1にネットワーク96を介してホストマシンを使用しているユーザ名を問い合わせる。ホストコンピュータ2010−1はログインするときに、入力されたユーザ名をS/Pサーバー装置2102に返信する。S/Pサーバー装置2102は、登録されていないユーザ名が送られてきた時は、S/Pサーバー装置2102はホストコンピュータ2101−1にエラー信号を返信し、S/Pサーバー装置2102をユーザは使用することができなくなる。
【0404】
一方、S/Pサーバー装置2102は、登録されているユーザ名が送られてきた時は、S/Pサーバー装置2102はこのユーザがプリント可能なプリンタ名をホストコンピュータ2101−1に返信する。ユーザがホストコンピュータ2101でカラープリンタ2103を選択し、プリント介し命令を送出すると、S/Pサーバー装置2102は、ホストコンピュータ2101から送出されてきたプリントコマンドを解析し、指定されたカラープリンタ2103を初期設定して出力する。
【0405】
また、ホストコンピュータ2101−1で、例えばスキャナソフト(スキャナアプリケーションプログラム)を用いて画像の取り込みを行う時、ホストコンピュータ2101−1でスキャン要求をS/Pサーバー装置2102に送出すると、S/Pサーバー装置2102は、スキャンを要求したホストコンピュータ2101−1にネットワーク96を介してログインしているユーザ名を問い合わせる。これに対して、ホストコンピュータ2101−1はログインする際、入力されたユーザ名をS/Pサーバー装置2102を返信する。
【0406】
そして、S/Pサーバー装置2102は返信されたユーザ名が登録されていないと判定した場合は、S/Pサーバー装置2102はホストコンピュータ2101にエラー信号を返信し、S/Pサーバー装置2102を当該ユーザの使用を制限することができる。これに対して、返信されたユーザ名が登録されていると判定した場合は、S/Pサーバー装置2102は、当該ユーザはスキャン可能なスキャナ名をホストコンピュータ2101−1に返信する。
【0407】
ユーザがホストコンピュータ2101−1でカラースキャナ2104を選び、スキャン命令を送出すると、S/Pサーバー装置2102はホストコンピュータ2101−1から送出されてくるスキャンコマンドを解析し、指定されたカラースキャナ2104を初期設定して画像を取り込む。
【0408】
なお、上記実施例ではユーザ名をマニュアル入力する場合と、ユーザ名をログイン処理で自動送出して登録ユーザかどうかを個別的に判定する場合について説明したが、これらのユーザ名入力処理を並行処理可能に構成しても良い。
【0409】
図64は本発明の一実施例を示すサーバー装置におけるユーザ識別処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【0410】
先ず、ホストコンピュータからネットワーク96を介してプリント要求コマンド/スキャン要求コマンドが入力されるのを待機し(1) 、入力されたユーザ名の問い合わせを当該ホストコンピュータに返信する(2) 。次いで、返信されたユーザ名の返信を待機し(3) 、返信されたユーザ名が既に登録されているかどうかを判定し(4) 、YESならば使用可能なスキャナ名,プリンタ名をホストコンピュータに返信して(5) 、上述したスキャナ/プリンタ処理に以降する。
【0411】
一方、ステップ(4) の判定でNOの場合は、当該ホストコンピュータにエラー信号を返信し(6) 、当該ホストコンピュータからの使用要求を禁止する。
【0412】
図65はこの発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【0413】
図において、2201A,2201Bはホストコンピュータで、ネットワーク2201を介してサーバー装置2202に対して特定の言語に対応したプリンタデータを出力する。2203はスプーラで、ネットワーク2201を介して受信したプリントデータおよび後述するスプーラ2203の管理データに従って記憶する。2204は第1のカラープリンタで、サーバー装置2202と通信しながらスプールしたプリントデータの出力処理を行う。2205は第1のカラープリンタで、サーバー装置2202と通信しながらスプールしたプリントデータの出力処理を行う。なお、入出力機器として、カラープリンタまたはカラースキャナまたはカラースキャナとカラープリンタとが一体となるカラースキャナ/プリンタが複数台接続されていても良い。
【0414】
図66は、図65に示したスプーラ2203の管理データの構造例を示す図である。
【0415】
図において、2200はデータ構造体で、次の構造体へのアドレス2251,プリンタ名2252,ファイル名2253からなり、サーバー装置2202が受信したプリント情報(制御データ(指定プリンタ先,制御コマンド),プリントファイル等)からなるプリントタスク2254,2255をデータ受信順にデータ構造体2200に記憶する。
【0416】
このように構成されたサーバー装置において、各ホスト(ホストコンピュータ2201A,2201B)から受信したデータが指定した入出力機器先別にデータ記憶手段(スプーラ2203)に記憶された状態で、通知手段(サーバー装置2202の通信プログラム)から指定した各入出力機器(本実施例では第1のカラープリンタ2204,第2のカラープリンタ2205)のスキャナ機能処理またはプリント機能処理状態が通知された際に、各ホストコンピュータから返信される入出力機器変更命令が入力された場合は、変更手段(サーバー装置2202)が各ホストから返信される入出力機器変更命令を解析してデータ記憶手段に記憶された各ホストにより指定された入出力機器先を、所望の入出力機器先に変更する。また、各ホストコンピュータから受信したデータに対し、指定されている入出力機器の状態を検知し、エラーが発生している場合は、自動的にエラーの発生していない他の入出力機器先に自動変更しても良い。この場合、動作不能中の入出力機器を指定した入出力処理を、所望の入出力機器でのデータ処理で補償することができる。
【0417】
具体的には、各プリントタスクは、入力されたプリント命令によって作成されるポインタにより管理されており、アドレス2251を参照することにより後続のプリントタスクの内容を読出すことができる。例えばホストコンピュータ2201Aから第1カラープリンタ2204でファイル名2253が「ファイルA」の出力命令に続き、第2カラープリンタ2205でファイル名2253が「ファイルB」の出力命令に続き、第1カラープリンタ2204でファイル名2253が「ファイルC,D,E」の出力命令が連続して受信した場合に対応する。なお、スプーラ2203に蓄えられた命令は、上から順にプリンタタスクが読み込み処理を進める。
【0418】
以下、図67に示すフローチャートを参照しながら本発明に係るサーバー装置におけるプリントタスク処理動作について説明する。
【0419】
図67は本発明に係るサーバー装置におけるプリントタスク処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【0420】
先ず、各ホストコンピュータから送出されてきたプリント命令を受信すると、サーバー装置2202がスプーラ2203内に図61に示したデータ構造体2200を作成して行く。このようにして、データ構造体2200が作成されると、プリントアウトのために参照するファイルがスプーラ2203に蓄積されているかどうかを判定し(1) 、スプーラ2203にファイルが蓄積されていない場合は処理を終了し、スプーラ2203にファイルが蓄積されている場合は、スプーーラ2203の参照しているデータ構造体2200の出力するプリンタ名2252を読み込み(2) 、指定されたプリンタの動作状態を示すフラグを調べて、正常なプリント動作が可能であるかどうかを判定し(3) 、プリント不可能状態を示すフラグが設定されている場合は、ステップ(7) 以降に進み、プリント可能状態ならば、参照中の構造体のファイルの指定されたプリンタで出力するプリント命令を出力する(4) 。次いで、プリンタから正常終了信号を受け取ったかどうかを判定し(5) 、異常信号を受け取った場合は、当該プリント命令を出力したホストコンピュータに対してエラー信号を返信して(6) 、プリンタ指定先の変更を問い合わせる。そして、当該ホストコンピュータからプリンタ指定先の設定を変更する命令が送出されたかどうかを判定し(7) 、YESならばスプーラ2203に蓄積されている当該プリントタスクのプリンタ名を正常動作可能なプリンタ名に書き換え(8) 、ステップ(1) に戻る。
【0421】
一方、ステップ(5) の判定がYESおよびステップ(7) の判定がNOの場合は、データ構造体2200を参照するためのポインタを次にリンクしているデータ構造体の後続のプリントタスクに進める、すなわち次のスプールへ進め(9) 、出力したプリントタスクをクリアし、ステップ(1) に戻る。
【0422】
なお、上記実施例では、プリンタタスクを例としてプリンタの指定先をホストコンピュータから入力される変更命令のみに基づいて正常プリント動作可能なプリンタを調べ、当該プリントタスクのプリンタ名を正常プリント動作可能なプリンタ名に自動変更する場合について説明したが、サーバー装置2202に入出力機器として、スキャナ装置が複数台接続される場合であっても、本発明を適用でき、例えばホストコンピュータからの命令が画像入力命令の場合に、一方のスキャナ装置からの画像入力実行中に作動不能となる事態(例えば走査モータの故障,イメージ読取り手段の故障,露光ランプの断線等)が発生した場合、その状態情報をホストコンピュータに返信し、この状態通知に基づいてホストコンピュータからスキャナ指定先を変更する変更命令が入力された場合には、サーバー装置2202がスキャナ指定先を所望のスキャナに変更し、以後の画像入力処理の継続を補償する。
【0423】
また、各プリンタそれぞれにプリンタタスクが存在している場合は、それぞれのプリンタタスクがスプーラ2203に登録された順に各々に対応したプリンタ名を持った命令を実行するように制御しても良い。例えば第1カラープリンタ2204専用のプリンタタスクがファイル名2253「ファイルA」を、第2カラープリンタ2205専用のプリンタタスクがファイル名2253「ファイルB」を出力している時に、第1カラープリンタ2204が紙詰りを起こした場合、第1カラープリンタ2204のプリントタスクは、ホストコンピュータにエラー信号を返信する。ホストコンピュータでファイルAを第2カラープリンタ2205で出力することを指定すると、サーバー装置2202はファイルAのプリント命令2254のプリンタ名の箇所を第2カラープリンタ2205に変更して、データ構造体2200の最後にポインタでリンクさせる。そして、第2カラープリンタ2205専用のプリントタスクがファイルBを出力中であれば、その出力が終了次第、ファイルAの出力処理に以降するように制御しても良い。
【0424】
さらに、プリンタ名を書き換えたファイルAの出力優先順位を指定可能に構成しても良い。
【0425】
図68は本発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【0426】
図において、2301は画像入出力通信装置(サーバー装置)で、通信部2302が通信線2310に接続され、図示しない異なるOSで起動する複数のホストコンピュータと接続されている。2303が画像処理手段として機能する画像生成部で、通信部2302が受信したプリントデータを解析して、生成したイメージデータを画像メモリ2304に記憶する。2305は画像出力部で、圧縮部2306,圧縮メモリ2307,伸長部2308,プリンタエンジン2309から構成されている。本実施例では、サーバー装置2301は、通信線2310を通じて他のホストコンピュータと通信している。
【0427】
このように構成されたサーバー装置において、画像処理手段(本実施例では画像生成部2303)から出力されるイメージデータおよび付加情報を解析して、画像処理手段(画像生成部2303,圧縮部2306等)が受信したイメージデータに最適なデータ処理を行い、入出力機器が画像処理手段から出力される処理データ(加工データ)に基づいて記録媒体に画像を出力するので、各入出力機器、例えばプリンタエンジン2309からの出力結果が良好となるようなイメージデータを生成可能とする。
【0428】
以下、動作について説明する。
【0429】
通信部2302が通信線2310を通じて他のホストコンピュータから通信されるページ記述言語のプリントデータを受信すると、プリントデータは画像生成部2303に送出される。プリントデータは、上述のようにページ記述言語で記述されており、画像生成部2303がプリントデータを解析して、画像メモリ2304に画像データを描画する。画像生成部2304では、ページ記述言語の解析において1ページを8個に分割した場合の各領域でのイメージの面積がわかるので、その情報を圧縮部2306に伝える。画像メモリ2304は画像生成部2303が画像を描画するメモリであり、1ページの8分の1の大きさの画像を記憶できるバンドメモリである。画像出力部2305のうち、圧縮部2306は画像生成部2303から送出されてきた1ページを8個に分割した場合の各領域でのイメージの面積とその時点での圧縮メモリの使用可能メモリ量により圧縮パラメータを決定し、画像メモリ2304に描画されている画像を圧縮して圧縮メモリ2307に記憶させる。画像生成部2303による画像生成と、圧縮部2306によるステップ像圧縮処理を8回繰り返すと1ページ分の画像が圧縮された状態で圧縮メモリ2307に記憶される。その後、伸長部2308が圧縮メモリ2307に記憶されている圧縮画像を伸長してプリントエンジン2309の動きに合せてデータを送出する。プリントエンジン2309は、伸長部2308から出力される伸長データに基づいて画像形成プロセスを実行して、記録媒体に画像を記録する。
【0430】
以下、図69に示すフローチャートを参照しながら本発明に係るサーバー装置における画像形成処理動作について説明する。
【0431】
図69は本発明に係るサーバー装置におけるプリントデータ生成処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【0432】
先ず、ホストコンピュータから通信線2310を介して受信したプリントデータを解析し(1) 、描画する画像でのイメージ領域の面積を求め(2) 、プリントデータ生成する(3) 。なお、ステップ(2) で求めたイメージ領域の大きさは圧縮部2306に送出される。
【0433】
図70は、図68に示した圧縮部2306の動作例を説明するフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【0434】
先ず、画像とイメージ領域の面積を得る(1) 。次いで、イメージ領域の面積と使用可能な圧縮メモリ2307のメモリ容量から圧縮パラメータを決定する(2) 。次いで、画像を圧縮して圧縮画像と圧縮パラメータを圧縮メモリ2307に記憶する(3) 。なお、圧縮パラメータを記憶するのは、伸長する時に伸長部2308が利用するためである。
【0435】
また、本実施例では、画像生成部2303はプリントデータを生成するのみでなく、イメージ領域の面積という画像情報を生成し、圧縮部2306はその画像情報を利用して適切な圧縮パラメータを決定して圧縮するので、必要以上の高圧縮率にはならず、劣化の少ない良好な画像をプリンタエンジン2309から得ることができる。
【0436】
なお、上記実施例では画像生成部2303が画像情報として、プリントデータ中のイメージ領域の面積データを生成する場合について説明したが、文字と図形の面積データを生成しても良い。この場合は、図63に示すフローチャートに示すように圧縮部2306は、文字と図形の面積の情報と使用可能な圧縮メモリ2307のメモリ量を利用して圧縮パラメータを決定して圧縮する。
【0437】
図71は本発明に係るサーバー装置における他のプリントデータ生成処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【0438】
先ず、ホストコンピュータから通信線2310を介して受信したプリントデータを解析し(1) 、描画する画像での文字と図形のみ面積を求め(2) 、イメージの残りのメモリ容量から圧縮パラメータを決定する(3) 。次いで、画像データを圧縮した圧縮画像と圧縮パラメータを圧縮部2306に転送し、圧縮メモリ2307に記憶する。
【0439】
これにより、圧縮部2306は、文字と図形の面積が分かるので、適切に圧縮パラメータを決定でき、劣化の少ない良好なプリントを得ることができる。
【0440】
なお、画像生成部2303は、イメージ領域の面積と文字および図形の面積の両方の情報を生成し、圧縮部2306はその両方の情報を利用して圧縮パラメータを決定しても良い。
【0441】
また、画像生成部2303は画像情報として、文字および図形に使用される色数を生成しても良い。圧縮部2306は、文字および図形で使用される色が十分に少なければ、他の圧縮方法に切り換えることができる。例えばプリントデータ中のイメージ部と文字,図形部を切り離して、イメージ部については通常のJPEG圧縮を行い、文字,図形部は使用する色を数ビットのコードに変換し、コードで記述することで圧縮できる。これにより、文字,図形部分に関して画像劣化のないプリントが可能となる。
【0442】
さらに、上記実施例では画像出力部2305での画像データ加工処理は、圧縮および伸長であったが、画像生成部2303が生成した画像を2値化して、2値プリンタによりプリントする場合には、画像データ加工処理が2値化処理であっても良い。これにより、例えば2値化において文字や図形の領域が多い文書のプリントでは線を比較的明確にする誤差拡散法で2値化し、イメージが殆どの文書では2値化処理時間の短いディザ法で2値化することにより、処理時間が短く、良好なプリントが得られる。
【0443】
また、画像出力部2305での画像データ加工処理は、画像生成部2303が形成した画像を画像出力部2305が色変換してプリントするサーバー装置2301においては、色変換処理であっても良い。例えば文字や図形の文書の黒をくっきりとさせるため、黒インクを多くする色変換を行い、イメージの多い文書では自然さを出すため、文字の場合よりも黒インクを少なくする色変換を行うことにより、良好なプリントが得られる。
【0444】
さらに、上記実施例ではプリンエンジン2309が1台接続されるサーバー装置2301を例としたが、図1に示すように複数のプリンタエンジンが接続される構成であっても、本発明を適用することができ、各プリンタエンジンに合せて画像処理を制御することにより、それぞれのプリンタエンジンから良好なプリントが得られる。
【0445】
なお、上記実施例ではネットワーク上のサーバー装置に接続される画像形成装置から各ホストコンピュータから受信したプリントデータの解析結果に基づいてデータ加工された画像を出力する場合について説明したが、ホストと1:1に接続される画像形成装置にも本発明を適用することができる。
【0446】
図72は本発明の一実施例を示す画像形成装置の構成を説明するブロック図である。
【0447】
図において、2401は画像形成装置本体部で、イーサネット等の通信線2407を介してホストとの通信を行う通信部2402,この通信部2402が受信したカラー印刷情報から出力画像イメージを発生させる画像発生部2403,この画像発生部2403が発生した出力画像イメージを各色毎(イエロー(Y),マゼンタ(M),シアン(C),ブラック(K))に記憶する画像メモリ2404,黒色の文字,図形画素であることを示す付加情報を記憶する付加情報メモリ2405,画像メモリ2404に記憶された出力画像イメージを付加情報メモリ5に基づいて印刷する画像出力部2406を有している。なお、画像発生部2403には図示しないCPU,各プログラム等を記憶するROM,RAM等を備え、後述するフローチャートに示すプログラムに従って画像メモリ2404への出力画像イメージ展開および画像メモリ2404に各色毎に展開された色画素情報を解析して付加情報メモリ2405に、例えば1画素を構成するビットデータ中の、最上位ビットまたは最下位ビットを「0」または「1」を設定する等の制御を行う。また、本実施例では画像出力部2406を、例えばイエロー,マゼンタ,シアン,ブラックの各色のインクをバブルジェット方式で吐出させてカラー印字を行うBJプリンタで構成されている。
【0448】
このように構成された第2のサーバー装置において、ネットワーク(通信線2407)を介してホストからカラー画像情報を受信すると、データ解析手段(本実施例では画像発生部2403の機能処理による)がカラー画像情報を解析し、この解析結果に基づいて発生手段が各色毎の画素データを発生させ記憶手段(画像メモリ2404)に記憶させた後、記憶された各色毎の画素データをデータ抽出手段(本実施例では画像発生部2403の機能処理による)が解析して色画像中の黒色部を抽出し、付加情報メモリ2405にデータ抽出手段が抽出した黒色部に対する付加情報が記憶されると、記憶された画素データおよび画素データに対する付加情報を参照しながら画像出力手段(画像出力部2406)が画像を出力することにより、カラー画像中の文字,図形等の黒色部をクッキリと印刷することを可能とする。
【0449】
図73は、図72に示した画像メモリ2404の構造を説明する概念図である。
【0450】
この図において、2408はレッド(R)用の画像データを格納する領域を示し、例えば先頭アドレス「100000000 」から10Mビット分確保される。2409はGREEN(G)用の画像データを格納する領域を示し、例えば先頭アドレス「110000000 」から10Mビット分確保される。2410はブルー(B)用の画像データを格納する領域を示し、例えば先頭アドレス「120000000 」から10Mビット分確保される。このように確保された領域2408〜2410に各画素のデータを格納することにより、各画素の最終的な色相が決定される。
【0451】
図74は、図72に示した付加情報メモリ2405の構造を説明する概念図である。
【0452】
この図に示すように、付加情報メモリ2405には1ページ分の画素数に対応した領域が確保され、例えば先頭アドレス「130000000 」から10Mビット分確保されており、上記各領域2408〜2409の1領域分と同様の記憶容量で構成される。
【0453】
以下、図75を参照しながら図72に示した画像発生部2403による画像メモリ2404へのイメージデータの描画および付加情報メモリ2405への付加情報書込み動作について説明する。
【0454】
図75は、図72に示した画像発生部2403による受信データ処理手順の一例を示すフローチャートである。なお、(1) 〜(4) は各ステップを示す。
【0455】
先ず、受信したデータを解析して画像メモリ2404の各領域2408〜2410に各色のイメージデータを画素単位に描画する(1) 。次いで、描画された各領域2408〜2410上の各画素の内容からその画素が文字あるいは図形で、かつ黒色かどうかを判定し(2) 、NOならば付加情報メモリ2405に当該画素が黒色でないことを示す、例えば最下位ビットを「0」であるビットデータを描画して(3) 、処理を終了する。
【0456】
一方、ステップ(2) の判定でYESの場合は、付加情報メモリ2405に当該画素が黒色であることを示す、例えば最上位ビットを「1」であるビットデータを描画して(4) 、処理を終了する。
【0457】
以下、図76に示すフローチャートを参照しながら図72に示した画像出力部2406によるカラー印刷動作について説明する。
【0458】
図76は、図72に示した画像出力部2406によるカラー印刷処理手順の一例を示すフローチャートである。なお、(1) 〜(5) は各ステップを示す。
【0459】
画像出力部2406は、画像メモリ2404と付加情報メモリ2405から各画素の情報を読み出し(1) 、付加情報メモリ2405の内容が黒であることを示す値かどうかを判定し(2) 、NOならば通常のマスキング処理を行い、RGBデータからYMCKデータを作成し(3) 、作成されたYMCKデータを図示しない出力バッファに描画し(4) 、印刷処理に移行する。
【0460】
一方、ステップ(2) の判定でYESの場合は、黒生成用のマスキングを行い、各領域のRGBデータからブラック(K)を作成し、イエロー,マゼンタ,シアンのデータをそれぞれ「0」とし(5) 、作成されたYMCKデータを図示しない出力バッファに描画し(4) 、印刷処理に移行する。
【0461】
なお、上記実施例では画像発生部2403は画像メモリ2404にRGBの画像データを形成する以外に、付加情報メモリ2405に文字あるいは図形で、かつ黒色である場合、それを示すデータを発生させ、この内容から画像出力部2406でのマスキング処理を変更することができ、文字あるいは図形で、かつ黒色の場合、当該文字あるいは図形をカラー画像中でクッキリとした状態で印刷することができ、黒をシャープに際立たせることができる。
【0462】
図77は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0463】
図において、2420は画像圧縮伸長部で、画像発生部2403が画像メモリ2404に描画した画像データを、例えば8×8のブロックに分割し、各ブロックにおいて、文字,図形である画素が多い場合は、エッジを保存する圧縮方法で圧縮し、イメージである画素が多い場合は、エッジが多少なまっても高い圧縮率を実現できる圧縮方法で圧縮し、圧縮メモリ2421に記憶する。1ページ部の画像データを圧縮し、圧縮メモリ2421に記憶した後、画像圧縮伸長部2421は、当該圧縮データを伸長して画像プリント部2422に送り、画像プリント部2422は伸長された画像データをプリントする。
【0464】
このように画像発生部2403が発生して画像メモリ2404に記憶させて画像データを読み出して、圧縮して圧縮メモリ2421に一時記憶させるので、画像メモリ2404,付加情報メモリのメモリ容量を、必ずしも1ページ分確保する必要がなく、例えば1ページの1/16程度に相当するメモリで足りる。
【0465】
また、一般には、画像データを圧縮して伸長すると、エッジ部がなまって画質が劣化したり、高圧縮率が得られず、圧縮メモリ2421を備えることにより、却って多くのメモリが必要になったりするが、付加情報メモリ2405にイメージかどうかの情報が記憶されているので、文字,図形部に対してはエッジを保存する圧縮を行い、イメージ部に対しては多少エッジがなまっても高い圧縮率の得られる圧縮を行うことにより、画質を殆ど劣化させることなく、高い圧縮率を得ることができる。すなわち、本実施例では付加情報メモリ2405に記憶される付加情報を利用して画像データを圧縮して一時記憶することにより、少ないメモリで殆ど画質を劣化させることなく、プリントすることができる。
【0466】
図78は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0467】
図において、2423は画像出力装置で、画像出力部2406を備え、画像形成装置本体部2401とケーブルを介して接続される。
【0468】
本実施例では画像出力装置2423と画像形成装置本体部2401とがケーブルで接続されているので、適宜画像出力装置2423を選択することができ、例えばインクジェット型のプリンタ,熱転写プリンタ等を接続することができる。
【0469】
図79は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0470】
図において、2425は画像出力装置で、画像出力部2424を備え、画像形成装置本体部2401とケーブルを介して接続される。なお、画像発生部2403のCPUはROM等に登録された各画像出力装置2423,2424の属性が登録されており、通信線2407を介して指示された属性情報を解析して、指定された各画像出力装置2423,2424の属性に応じて付加情報メモリ2405に付加情報が書き込まれる構成となっている。
【0471】
本実施例では2台の画像出力装置2425,2425がそれぞれケーブルで接続されているので、ホストからの属性指定に従った付加情報を付加情報メモリ2406に記憶させることができ、ホストが所望とする画像出力装置2425,2423のいずれかを選択することができる。
【0472】
図80は本発明の他の実施例を示す画像形成装置の構成を説明するブロック図であり、図72と同一のものには同じ符号を付してある。
【0473】
図において、2426,2427は画像処理部で、図示しないCPU,ROM,RAM等を備え、画像メモリ2404に記憶されたカラー画像データに所望の画像処理、例えば色変換,拡大/縮小,移動,回転,マスキング,トリミング等の処理を施した後、ケーブルを介して対応する画像出力装置2423または画像出力装置2425に最終的なイメージデータを出力する。
【0474】
本実施例では画像出力装置2423または画像出力装置2425に高度な画像編集処理機能を備えていなくても、画像形成装置本体部2401側で画像編集ができるので、多彩かつ、くっきりとした黒の文字を含むカラー画像を安価に出力させることができる。
【0475】
以下、図81〜図86を参照しながら図29に示したバンドメモリへのラスタライズ処理動作について説明する。
【0476】
図81は、図29に示したバンドメモリへのラスタライズ処理に基づく出力画像サンプルの一例を示す図であり、図2に示したカラースキャナ/プリンタ94,95のいずれかから出力される。
【0477】
この図に示されるように、x方向(横方向)が40mm,y方向(縦方向)45mmの点を中心とした、半径25mmの円2501がある。この円2501は外枠の線と中の面で構成されている。また、点A〜Dにより囲まれた矩形2502があり、この矩形も同様に外枠の線と中の面で構成されている。そして、x方向38mm,y方向107mmの位置から「STRING」という文字2503が描かれている。
【0478】
この画像を出力するためには、各ホストコンピュータ、例えば図2に示した各ステーションを制御するホストコンピュータの変換プログラムにより、内部の描画情報を、例えばCaPSLコードに変換された、ページ記述コマンドが送出されてくる。
【0479】
図82,図83は、図2に示した各ホストコンピュータから送出されるページ記述コマンドの構造を説明する図である。
【0480】
図82において、2601は色指定コマンドで、線の色を指定するコマンドとして機能し、図示されるようにコマンドを識別するためのコマンド番号および色のレベルを指定するためのR値,G値,B値が要素として含まれている。
この線の色指定に関するコマンドのコマンド番号は「1」になっている。
【0481】
2602,2603はそれぞれ面の色,文字の色を指定するコマンドである。コマンド番号は面の色指定コマンドが「2」、文字の色指定コマンドが「3」になっている。次の線種指定コマンド2604は図形を描画する際の線の種類を指定するコマンドで、実線,破線,鎖線等を指定することができる。コマンド番号は「4」である。次の線幅指定コマンド2605は線の太さを指定するコマンドでミリ単位で指定しなければならない。コマンド番号は「5」である。また、面種指定コマンド2606は図形の内側の塗り潰しパターンを決定するものであり、コマンド番号は「6」になる。
【0482】
図83において、3701〜3703は文字の属性を指定するコマンドである。3701は文字サイズ指定コマンドで文字の大きさを指定するものである。3702は文字スタイル指定コマンドで、文字のボールド(太文字),イタリック(斜体)等を指定するものである。また、3703は文字種指定コマンドであり、フォントの種類を指定することができる。コマンド番号は「7」,「8」,「9」になっている。
【0483】
なお、上述した各コマンドは描画の属性に関するものであるが、3704から3706は実際に図形,文字を描画するコマンドである。3704は円描画コマンドで最初にコマンド番号「10」が入り、次に半液、そして、中心のX座標,Y座標が入る。次の矩形描画コマンド3705も同様に、初めにコマンド番号「11」が入り、始点の座標,始点の対角の終点の座標が入る。最後の文字描画コマンドは最初にコマンド番号「12」,文字列の先頭の位置,文字のコードが入る。
【0484】
このように各コマンドを組み合わせていろいろなドキュメントをプリントすることが可能となる。なお、ページ記述コマンド(CaPSLコマンド)は上記に限らず、ポストスクリプト,LIPS(III),ESC/P等のであっても同様である。
【0485】
以下、図84を参照しながら本発明に係るサーバー装置におけるバンド単位のラスタライズ処理動作について説明する。
【0486】
図84は本発明に係るサーバー装置におけるバンド単位のラスタライズ処理を説明する模式図であり、図2に示すPDLインタープリタープログラム84に基づいてCPUが実行する。
【0487】
画像メモリを、例えば1ページ分備えるためには、縦320ドット,横2000ドット、1画素当たり3バイトとした場合、メモリ容量は合計で1.83メガバイトにも及び、これらのメモリ容量をDRAMで構成したとすれば、メモリ回路が大きくなり、コスト的にも高価となる。
【0488】
そこで、図81に示したラスタライズされた画像を物理的なメモリ上の座標に変換すると、図84に示す状態となる。例えば、図2に示したカラースキャナ/プリンタ94,95の解像度が1mm当たり16ドット相当になるので、円2801は中心座標が(640ドット,720ドット),半径240ドットになる。また、矩形2802は図示するように物理的な座標となる。そして、文字列2803も(608ドット,1722ドット)に位置することになる。物理座標をメモリの大きさで短冊状(バンド)に分割すると、縦320ドット,横2000ドットの大きさの各バンド2804〜2811で区切られる。ラスタライズプログラムはバンド「0」を描画し終えると、メモリの内容をカラースキャナ/プリンタ94,95に送信し、送信を終了すると、メモリをクリアする。そして、バンド「1」の描画を介しする。描画が終了すると、メモリの内容をカラースキャナ/プリンタ94,95に送信する。この処理を、バンド「0」からバンド「8」まで繰り返す。
【0489】
次に、図81に示した画像をカラースキャナ/プリンタ94,95から出力するためのページ記述コマンドを図85,図86を参照しながら説明する。
【0490】
なお、図85に書かれているようなコマンドが図2に示した各ステーションのホストコンピュータから送出されてくるものとする。
【0491】
図において、2901は最初の数字、すなわちコマンド番号が「1」なので、線の色指定コマンドであることが分かる。PDLインタープリタープログラム84は、当該コマンドを解釈して、次の3パラメータは色の指定であることを判断して、数値を読み取る。すなわち、R値=255,G値=0,B値=0であることを一時的に記憶しておく。次のコマンド2902で面の色の指定を一時的に記憶しておき、コマンド2903から2905では線や面の情報を記憶する。コマンド2906は円描画コマンドで、描画コマンドを読み取ると、PDLインタープリタープログラム84は図86に示す中間テーブル2921と詳細テーブル2922を作成する。
【0492】
先ず、コマンド2906の中心座標,半径に16を乗じて物理的なプリント座標にする。そして、さらにこの図形に含まれるY軸方向の最大座標と最小座標を計算する。円2801では、最小値が「479」、最大値が「959」になるバンドの幅(Y方向)が「320」であるので、円2801はバンド1からバンド2に含まれることが計算できる。
【0493】
そこで、PDLインタープリタープログラム84は中間テーブル2921のSB(スタートバンド)に「1」を、EB(エンドバンド)に「2」を登録する。そして、コマンドを識別するためにCOM(コマンド)にCircle(円)を登録する。さらに、TNUMに詳細テーブルの識別番号を入力する。そして、PDLインタープリタープログラム84は詳細テーブル1に円描画に関する詳細な情報を登録して行く。2922は円描画に関する詳細テーブルである。最初のTNUMは詳細テーブル番号,LCOLOR,FCOLORはそれぞれ線,面の色を表わす。次のLTはラインタイプを表わし、一時的に記憶しておいた線の情報をここに登録する。また、LWには一時的に記憶しておいた線の幅をプリンタ座標系の座標単位に直して登録する。例えば2.5mmの線は、プリンタ座標系では、40ドットになる。FTも同様に一時的に記憶しておいた面の種類の情報を引き出してきて登録する。
【0494】
次に、DR,DX,DYはコマンド2906から半径,を中心座標をプリンタ座標計に計算して登録する。このように、コマンド2901〜2906を入力して中間テーブル2921と詳細テーブル2922を作成する。同様にして、コマンド2907〜2912を入力して矩形描画に関する中間テーブル2921と詳細テーブル2923を作成する。また、コマンド2913〜2917を用いて文字に関する中間テーブル2921と詳細テーブル2924を作成する。入力コマンド2914〜2916の文字のスタイル,種類,大きさの情報から文字のビットマップデータをPDLインタープリタープログラム84が作成してメモリに確保しておく。その結果詳細テーブル2924には、そのメモリの先頭アドレスが記憶されているに過ぎない。
【0495】
このように、コマンド2901〜2917を入力して、中間テーブル2921と詳細テーブル2922〜2924を作成し終えると、PDLインタープリタープログラム84はこれらの情報に基づいて図形,文字の描画処理を以下のように開始する。
【0496】
まず、PDLインタープリタープログラム84はバンド0の描画を始める。中間テーブルを見て、バンドに画像が含まれているかを検索する。中間テーブル2921のSB,EBを参照すると、0バンド目に描画すべき図形がないことが分かるので、描画処理は行わずに、そのままメモリの内容をプリンタに送信する。次に、バンド1の描画処理に移る。中間テーブル2921のSB,EBを参照すると、円を描画することが分かるので、識別番号「1」の詳細テーブルTNUMに書かれている情報に基づいて、メモリ上に円を描画する。この時、注意しなければならないのは、バンドの大きさ分だけ、クリッピング処理を施して円を描画しなくてはならないことである。そうしないと、メモリの存在しない領域を描画使用としてメモリのアクセスエラーが発生してしまうからである。次に、バンド2に移り、同様にして中間テーブル2921を参照すると、円2801と矩形2802を描画することが分かるので、詳細テーブル2922,2923を参照してラスタライズ処理を行う。
【0497】
このように本発明に係る第1のサーバー装置の画像処理方法によれば、1ページ分の画像描画に必要なメモリ領域を複数のバンド領域に分割可能なバンドメモリを確保しておき、所定のネットワークに接続される各ホストから順次受信した所定のページ記述言語に従うページ単位のコマンドを解析しながら、各オブジェクト毎に出力バンド情報を導出して、各オブジェクトを出力バンド情報に基づいて対応するバンドに順次描画するので、少ないメモリ容量であっても、複雑なオブジェクトを効率よく出力することが可能である。
【0498】
以上のようなバンド毎に中間テーブルを参照して描画すべき図形,文字があれば、今度はその図形の情報が書かれている詳細テーブルを参照して図形を描画する処理を繰り返して、1ページ分の画像をラスタライズする。
【0499】
以下、図87〜図92を参照しながら本発明に係るSPサーバー装置のスキャナ/プリンタに対するホストコンピュータからの指定処理動作について詳述する。
【0500】
図87は本発明に係るSPサーバー装置に対するホストコンピュータからのスキャナ/プリンタのモード指定処理手順の一例を示すフローチャートである。なお、(1) 〜(7) は各ステップを示す。また、本発明に係るSPサーバー装置を含むシステム環境は、図2に示した通りであるが、ネットワーク上には複数のSPサーバー装置を配設し、各SPサーバー装置が複数のプリンタ,スキャナが接続されるシステム環境であっても本発明を適用できることは言うまでもなく、従って、本各処理は各SPサーバー装置に共通する処理となる。さらに、各SPサーバー装置に共通する処理を変更(例えばバージョンアップ)する際には、インストールされたSPサーバーから各サーバー装置に変更されたプログラムを転送して設定することも、あるいはプログラムをフロッピーディスクで供給して設定することも可能である。
【0501】
先ず、ネットワーク上のホストコンピュータ(図2に示した各ステーションST1〜ST3)から転送されるスキャナ/プリンタ(S/P)指定を判定し(1) 、プリント処理指定の場合には、転送されるプリントコマンドを解析して、当該プリントデータが圧縮イメージのみであるかどうかを判定し(2) 、YESならば圧縮イメージに対する伸長処理を実行するため、SPサーバ装置のデータ処理モード(第1モード)処理を実行し(3) 、リターンする。
【0502】
一方、ステップ(2) の判定でNOの場合は、PDLであるのでPDLデータを解析してラスタライズするデータ処理モード(第2モード)処理を実行し(4) 、リターンする。
【0503】
一方、ステップ(1) の判定でスキャナ処理指定の場合には、スキャナコマンドを解析して圧縮イメージ入力指定かどうかを判定し(5) 、YESならば読み取られるイメージデータを圧縮イメージに変換するため、SPサーバ装置のデータ処理モード(第3モード)処理を実行し(6) 、リターンする。
【0504】
一方、ステップ(5) の判定でNOの場合は、読み取られるイメージデータをそのまま転送するため、SPサーバ装置のデータ処理モード(第4モード)処理を実行し(7) 、リターンする。
【0505】
図88〜図91は、図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【0506】
これらの図において、SPAWはスキャナ/プリンタアプリケーションウインドウで、ボタンBT1〜BT7を有し、ボタンBT1はファイル指定ボタンとして機能し、当該ボタンBT1をカーソルKで指示すると、ファイル一覧がウインドウ内に表示される。
【0507】
ボタンBT2は編集指定ボタンとして機能し、当該ボタンBT2をカーソルKで指示すると、編集メニューウインドウ(図示しない)が表示される。ボタンBT3はSPサーバー指定ボタンとして機能し、当該ボタンBT3をカーソルKで指示すると、ネットワーク上に接続されたSPサーバーの一覧が表示(図89参照)される。
【0508】
ボタンBT4はスキャナ/プリンタボタンとして機能し、当該ボタンBT4のスキャナまたはプリンタをカーソルKで指示すると、選択したSPサーバーで使用可能なスキャナ/プリンタ一覧が表示(図90参照)される。なお、スキャナ/プリンタ一覧のうち、所望のスキャナが選択されると、当該スキャナに対するスキャナンパラメータ設定ウインドウが、例えばスキャナ/プリンタアプリケーションウインドウSPAW内に表意される(図91参照)。
【0509】
ボタンBT5は紙サイズボタンとして機能し、当該ボタンBT5をカーソルKで指示すると、選択したSPサーバーで使用可能なスキャナ/プリンタで選択可能な紙サイズが表示される。ボタンBT6はPDL/圧縮イメージ選択ボタンとして機能し、当該ボタンBT6をカーソルKで指示すると、プリント情報の転送条件をPDLに設定する。なお、PDL以外は、圧縮イメージデータとして転送する。
【0510】
ボタンBT7は、スキャナ/プリンタのスタートボタンとして機能し、当該ボタンBT7をカーソルKで指示すると、選択したSPサーバーでのスキャナまたはプリントが開始される。
【0511】
以下、図92,図93を参照しながら、図2に示した各ステーションに共通するSPサーバー指定制御動作について説明する。
【0512】
図92,図93は、図2に示した各ステーションに共通するSPサーバー指定制御手順の一例を示すフローチャートである。なお、(1) 〜(26)は各ステップを示す。特に、スキャナ/プリンタのうち、プリント機能処理実行の際の処理に対応する。なお、標準のS/Pサーバー装置,スキャナ,プリンタ,紙サイズ,PDLはデフォルトとして確定されている。
【0513】
先ず、各ステーション固有のアプリケーション実行中に、プリント機能処理が選択されると(1) 、図88に示したスキャナ/プリンタアプリケーションウインドウSPAW(以下、ウインドウSPAWと呼ぶ)を表示する(2) 。次いで、スキャナ/プリンタアプリケーションウインドウSPAW中のボタンBT7がカーソルKで指示されたかどうかを判定し(3) 、NOならば順次ボタンBT1〜ボタンBT5がカーソルKで指示されたかどうかを判定し(4) 〜(8) 、何れもNOならばボタンBT6がカーソルKで指示されたかどうかを判定し(9) 、YESならばPDL送信をセットしステップ(3) に戻り、NOならば圧縮イメージ送信をセットして(25)、ステップ(3) に戻る。
【0514】
一方、ステップ(4) の判定でYESの場合は、ウインドウSPAWにファイル一覧を表示し(11)、ファイル一覧から所望のファイルがカーソルKで選択されるのを待機し(12)、選択されたファイルをプリントファイル候補として確定し(13)、ステップ(3) に戻る。
【0515】
一方、ステップ(5) の判定でYESの場合は、ウインドウSPAWに編集メニューを表示し(14)、ステップ(3) に戻る。
【0516】
一方、ステップ(6) の判定でYESの場合は、ウインドウSPAWにネットワーク上に接続されたSPサーバー一覧を表示し(15)、SPサーバー一覧から所望のSPサーバーがカーソルKで選択されるのを待機し(16)、選択されたSPサーバーをプリント処理機能処理実行のためのSPサーバー候補として確定し(17)、ステップ(3) に戻る。
【0517】
一方、ステップ(7) の判定でYESの場合は、確定されたSPサーバーに接続されたプリンタ/スキャナの一覧をウインドウSPAWに表示し(18)、プリンタ/スキャナの一覧の中から所望のプリンタ/スキャナがカーソルKで選択されるのを待機し(19)、YESならば選択されたプリンタ/スキャナをプリント処理機能処理実行のためのプリンタ候補として確定し(20)、ステップ(3) に戻る。
【0518】
一方、ステップ(8) の判定YESの場合は、確定されたプリンタ/スキャナで使用可能な紙サイズが選択されるのを待機し(21)、YESならば選択された紙サイズをプリント処理機能処理実行のための紙サイズとして確定しステップ(22)、ステップ(3) に戻る。
【0519】
一方、ステップ(3) の判定でYESの場合はステップ(24)に進み、プリントコマンドを送信し、候補選択したSPサーバーからの正常応答を待機し(25)、選択されているファイルに基づくプリント情報(PDLおよび/または圧縮イメージ)をネットワークを介して送信し(26)、上述したプリント処理を開始し、終了後の他の処理に移行する。
【0520】
なお、上記実施例ではスキャナ/プリンタの指定処理をウインドウSPAWを介してプルダウンメニュー選択またはウインドウ内へのサブウインドウ表示にて処理する場合について説明したが、ユーザインタフェースはグラフィカルインタフェース(例えばアイコン)であっても良いことは言うまでもない。
【0521】
また、上記実施例では特にスキャナ/プリンタにおけるプリント機能処理実行のための指定を説明したが、スキャナ機能処理実行もほぼ同様であり、特にスキャナ機能処理実行に際しては、スキャナ/プリンタサーバー確定後、確定したスキャナ/プリンタサーバー上で使用するスキャナ/プリンタを確定した後、図91に示すように、所望とするスキャンパラメータ設定ウインドウまたは設定メニューをウインドウSPAWを表示して、読み取り領域,解像度,カラー/モノカラーの別,多値/2値の別,圧縮方式の指定,ガンマ値,データ形式(面,線,点順次),格納するファイル名を詳細に決定した後、ボタンBT7がカーソル指示された際に、スキャンを開始させるように制御すれば良い。
【0522】
【発明の効果】
以上説明したように、本発明に係るサーバー装置によれば、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送するとともに、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信するので、ホストコンピュータ側から、ネットワーク上にある各画像読取り装置の画像読取り特性を認識することができ、さらに、選択した画像読取装置の画像読取り特性を設定することができるという効果を奏する。
【0523】
本発明に係る制御方法によれば、複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送するとともに、複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信するので、ホストコンピュータ側から、ネットワーク上にある各画像読取り装置の画像読取り特性を認識することができ、さらに、選択した画像読取装置の画像読取り特性を設定することができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1実施例を示すサーバー装置の概要を説明するシステムブロック図である。
【図2】図1に示したサーバー装置を適用するネットワークシステムの概略を示すシステムブロック図である。
【図3】本発明に係るサーバー装置と各ホストとのネットワーク構築状態を示す図である。
【図4】図1に示したメインCPUボード回路の詳細構成を説明する回路ブロック図である。
【図5】図4に示したメモリクリアコントローラの詳細構成を説明するブロック図である。
【図6】図5に示したバンドメモリへの画像情報のバンド展開処理を説明する模式図である。
【図7】図5に示したバンドメモリへの画像情報のバンド展開処理を説明する模式図である。
【図8】図5に示した画像描画処理回路の詳細構成を説明するブロック図である。
【図9】図1に示した第1のインタフェース回路の内部構成を説明するブロック図である。
【図10】図9に示したリアルタイム圧縮伸長部の詳細構成の一例を示すブロック図である。
【図11】図10に示したジグザグスキャン部によるジグザグスキャン経路の一例を示す図である。
【図12】図1に示した第1のSPインタフェース回路のパート構成の概略を説明するブロック図である。
【図13】図1に示した第1のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図14】図1に示した第1のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図15】図1に示した第1のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図16】図1に示した第2のSPインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図17】図2に示したスキャナ/プリンタの画像記録プロセスを説明する模式図である。
【図18】図2に示したスキャナ/プリンタのスキャナの原稿走査状態を示す模式図である。
【図19】図2に示したスキャナ/プリンタのスキャナのバンド原稿走査状態を示す模式図である。
【図20】本発明に係るサーバー装置とプリンタとのインタフェース信号の一例を示す図である。
【図21】本発明に係るサーバー装置とプリンタとのインタフェースの一例を示す回路ブロック図である。
【図22】図21の動作を説明するタイミングチャートである。
【図23】図21に示したセントロニクスI/F回路によるホスト側の信号処理手順の一例を示すフローチャートである。
【図24】図21に示したセントロニクスI/F回路によるプリンタ側の信号処理手順の一例を示すフローチャートである。
【図25】本発明に係るサーバー装置とホストコンピュータとのプログラム構成を説明する図である。
【図26】本発明に係るサーバー装置における全体制御手順の一例を示すフローチャートである。
【図27】本発明に係るサーバー装置におけるページ記述言語に準拠するコード体系の要部を示す図である。
【図28】本発明に係るサーバー装置におけるレイアウタによる中間コードへの置換処理を説明する図である。
【図29】本発明に係るサーバー装置におけるバンドメモリへの図形情報展開処理状態を示す模式図である。
【図30】本発明に係るサーバー装置におけるページ記述言語が展開するデータの1画素構造を説明する図である。
【図31】図2に示したスキャナの動作を説明するデータ処理経路図である。
【図32】本発明に係るサーバー装置とカラーレーザ複写装置とのデータ処理状態を説明するブロック図である。
【図33】本発明に係るサーバー装置とカラーレーザ複写装置とのデータ処理状態を説明するブロック図である。
【図34】本発明に係るサーバー装置とバブルジェットカラー複写装置とのデータ処理状態を説明するブロック図である。
【図35】本発明に係るサーバー装置とのネットワークシステムの構成を説明するブロック図である。
【図36】本発明に係るサーバー装置における異常発生ジョブ処理手順の一例を示すフローチャートである。
【図37】本発明に係るサーバー装置におけるリトライ処理手順の一例を示すフローチャートである。
【図38】本発明に係るサーバー装置におけるジョブ制御状態を説明するタイミングチャートである。
【図39】本発明に係るサーバー装置におけるシステム全体制御プログラム制御処理状態を示す図である。
【図40】図39に示したシステム全体制御プログラム制御のイベント処理手順の一例を示すフローチャートである。
【図41】本発明に係るサーバー装置におけるジョブ管理状態を示す図である。
【図42】本発明に係るサーバー装置におけるジョブ実行処理手順の一例を示すフローチャートである。
【図43】本発明に係るサーバー装置におけるステータスチェック処理手順の一例を示すフローチャートである。
【図44】本発明に係るサーバー装置における優先順位チェック処理手順の一例を示すフローチャートである。
【図45】本発明に係るサーバー装置におけるインタフェースチェック処理手順の一例を示すフローチャートである。
【図46】本発明に係るサーバー装置におけるジョブ起動処理手順の一例を示すフローチャートである。
【図47】本発明に係るサーバー装置におけるジョブ処理状態推移を示すタイミングチャートである。
【図48】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図49】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図50】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図51】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図52】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図53】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図54】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図55】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図56】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図57】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図58】本発明の第2の実施例を示すサーバー装置の構成を説明するブロック図である。
【図59】図58に示したSPサーバー装置により合成される印刷レイアウトを示す模式図である。
【図60】本発明に係るサーバー装置における第1の入出力制御手順の一例を示すフローチャートである。
【図61】本発明に係るサーバー装置における第2の入出力制御手順の一例を示すフローチャートである。
【図62】本発明の一実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【図63】本発明の一実施例を示すサーバー装置のネットワーク接続状態を示す図である。
【図64】本発明の一実施例を示すサーバー装置におけるユーザ識別処理手順の一例を示すフローチャートである。
【図65】本発明の他の実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【図66】図65に示したスプーラの管理データの構造例を示す図である。
【図67】本発明に係るサーバー装置におけるプリントタスク処理手順の一例を示すフローチャートである。
【図68】本発明の他の実施例を示すサーバー装置と画像入出力装置との通信制御構成を説明するブロック図である。
【図69】本発明に係るサーバー装置におけるプリントデータ生成処理手順の一例をフローチャートである。
【図70】図68に示した圧縮部の動作例を説明するフローチャートである。
【図71】本発明に係るサーバー装置における他のプリントデータ生成処理手順の一例を示すフローチャートである。
【図72】本発明の一実施例を示すサーバー装置における画像処理構成を説明するブロック図である。
【図73】図72に示した画像メモリの構造を説明する概念図である。
【図74】図72に示した付加情報メモリの構造を説明する概念図である。
【図75】図72に示した画像発生部による受信データ処理手順の一例を示すフローチャートである。
【図76】図72に示した画像出力部によるカラー印刷処理手順の一例を示すフローチャートである。
【図77】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図78】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図79】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図80】本発明の一実施例を示すサーバー装置における他の画像処理構成を説明するブロック図である。
【図81】図29に示したバンドメモリへのラスタライズ処理に基づく出力画像サンプルの一例を示す図である。
【図82】図2に示した各ホストコンピュータから送出されるページ記述コマンドの構造を説明する図である。
【図83】図2に示した各ホストコンピュータから送出されるページ記述コマンドの構造を説明する図である。
【図84】本発明に係るサーバー装置におけるバンド単位のラスタライズ処理を説明する模式図である。
【図85】図2に示した各ホストコンピュータから送出されるページ記述コマンドの解析処理を説明する図である。
【図86】図2に示した各ホストコンピュータから送出されるページ記述コマンドの解析処理を説明する図である。
【図87】本発明に係るSPサーバー装置に対するホストコンピュータからのスキャナ/プリンタのモード指定処理手順の一例を示すフローチャートである。
【図88】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図89】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図90】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図91】図2に示した各ステーションに共通するSPサーバー指定ウインドウの一例を示す図である。
【図92】図2に示した各ステーションに共通するSPサーバー指定制御手順の一例を示すフローチャートである。
【図93】図2に示した各ステーションに共通するSPサーバー指定制御手順の一例を示すフローチャートである。
【符号の説明】
901 クライアントホストコンピュータ
902 クライアントホストコンピュータ
903 SPサーバー装置
904 スキャナプリンタ
Claims (8)
- ネットワークを介してホストコンピュータと通信可能なサーバー装置であって、
複数の画像読取り装置およびそれぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送する転送手段と、
複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信する受信手段と、
複数の画像読取り装置の中から選択された画像読取り装置に画像の読み取りをさせる制御手段と、
読み取られた画像の画像データを前記ホストコンピュータに送信する画像データ送信手段と、
を有することを特徴とするサーバー装置。 - 画像読取り特性を、カラー/モノクロ何れであるかを示す特性で構成したことを特徴とする請求項1に記載のサーバー装置。
- 前記画像読取り装置は、原稿を読み込んで、原稿の画像データを生成するスキャナであることを特徴とする請求項1或いは2に記載のサーバー装置。
- 前記ホストコンピュータから送信された、前記ホストコンピュータにログインしているユーザ名が登録されているかを判定する判定手段と、
前記ホストコンピュータに登録されていると前記判定手段で判定された場合、複数の画像読取り装置の名を前記ホストコンピュータに送信する送信手段とを有することを特徴とする請求項1乃至3のいずれかに記載のサーバー装置。 - ネットワークを介してホストコンピュータと通信可能な装置における制御方法であって、
複数の画像読取り装置それぞれの画像読取り特性を前記ネットワークを介して前記ホストコンピュータに転送する転送ステップと、
複数の画像読取り装置の中から選択された画像読取り装置の画像読取り特性を設定するための命令を前記ホストコンピュータから受信する受信ステップと、
選択された画像読取り装置に画像の読み取りをさせる制御ステップと、
読み取られた画像の画像データを前記ホストコンピュータに送信する画像データ送信ステップとを有することを特徴とする制御方法。 - 画像読取り特性を、カラー/モノクロ何れであるかを示す特性で構成したことを特徴とする請求項5に記載の制御方法。
- 前記画像読取り装置は、原稿を読み込んで、原稿の画像データを生成するスキャナであることを特徴とする請求項5或いは6に記載の制御方法。
- 前記ホストコンピュータから送信された、前記ホストコンピュータにログインしているユーザ名が登録されているかを判定する判定ステップと、
前記ホストコンピュータに登録されていると前記判定ステップで判定された場合、複数の画像読取り装置の名を前記ホストコンピュータに送信する送信ステップとを有することを特徴とする請求項6乃至9のいずれかに記載の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02170593A JP3792733B2 (ja) | 1993-01-18 | 1993-01-18 | サーバー装置および制御方法 |
US08/182,599 US6177934B1 (en) | 1993-01-18 | 1994-01-18 | Server device and image processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02170593A JP3792733B2 (ja) | 1993-01-18 | 1993-01-18 | サーバー装置および制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06214922A JPH06214922A (ja) | 1994-08-05 |
JP3792733B2 true JP3792733B2 (ja) | 2006-07-05 |
Family
ID=12062476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02170593A Expired - Fee Related JP3792733B2 (ja) | 1993-01-18 | 1993-01-18 | サーバー装置および制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6177934B1 (ja) |
JP (1) | JP3792733B2 (ja) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091850A1 (en) | 1992-10-23 | 2002-07-11 | Cybex Corporation | System and method for remote monitoring and operation of personal computers |
US5721842A (en) * | 1995-08-25 | 1998-02-24 | Apex Pc Solutions, Inc. | Interconnection system for viewing and controlling remotely connected computers with on-screen video overlay for controlling of the interconnection switch |
JP3834878B2 (ja) * | 1996-07-23 | 2006-10-18 | ソニー株式会社 | 印刷システム、印刷方法、変換装置、データ処理方法、および印刷装置 |
JP3452234B2 (ja) * | 1996-09-24 | 2003-09-29 | 株式会社リコー | 画像入力装置 |
US6771381B1 (en) | 1998-11-13 | 2004-08-03 | Laurence C. Klein | Distributed computer architecture and process for virtual copying |
DE19714719C1 (de) * | 1997-04-09 | 1998-07-16 | Data Square Corp | Verfahren zur Reduzierung des Speicherbedarfs einer Datenbank und Vorrichtung zur Durchführung des Verfahrens |
JPH11282684A (ja) * | 1998-03-27 | 1999-10-15 | Canon Inc | 画像処理装置、画像処理装置の制御方法、および記憶媒体 |
DE69935234T2 (de) * | 1998-09-22 | 2007-11-08 | Avocent Huntsville Corp., Huntsville | System zum fernzugriff auf personalcomputer |
US6839755B1 (en) * | 1998-09-30 | 2005-01-04 | Hewlett-Packard Development Company, L.P. | Network peripheral server discovery method |
US6988123B2 (en) * | 1998-11-06 | 2006-01-17 | Seiko Epson Corporation | Methods and apparatus for remote execution of an application over the internet |
US6980325B1 (en) * | 1999-01-27 | 2005-12-27 | Mitsubishi Denki Kabushiki Kaisha | Automated color property adaptation in computer output devices |
AUPQ363299A0 (en) * | 1999-10-25 | 1999-11-18 | Silverbrook Research Pty Ltd | Paper based information inter face |
US7173723B1 (en) * | 1999-07-09 | 2007-02-06 | Seiko Epson Corporation | Printer and print system capable of printing a read image without intervention of host in addition to printing of print data from host |
US6895557B1 (en) * | 1999-07-21 | 2005-05-17 | Ipix Corporation | Web-based media submission tool |
US6411949B1 (en) | 1999-08-12 | 2002-06-25 | Koninklijke Philips Electronics N.V., | Customizing database information for presentation with media selections |
US20030182567A1 (en) * | 1999-10-20 | 2003-09-25 | Tivo Inc. | Client-side multimedia content targeting system |
US6732162B1 (en) | 1999-11-15 | 2004-05-04 | Internet Pictures Corporation | Method of providing preprocessed images for a plurality of internet web sites |
US7006257B1 (en) * | 1999-11-19 | 2006-02-28 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
US7145677B2 (en) * | 2000-04-14 | 2006-12-05 | Fuji Photo Film Co., Ltd. | Printing system |
AUPQ772300A0 (en) * | 2000-05-24 | 2000-06-15 | Canon Kabushiki Kaisha | Highly pipelined printing system architecture |
US7079270B2 (en) * | 2000-06-15 | 2006-07-18 | Fuji Xerox Co., Ltd. | Color image processing apparatus and color image processing system using the apparatus |
US6970263B2 (en) * | 2000-06-30 | 2005-11-29 | Canon Kabushiki Kaisha | Print system, printing method, and server |
US6856417B2 (en) * | 2001-01-16 | 2005-02-15 | Pepc World Wide N.V. | System for distributing newspapers |
WO2005017738A1 (ja) * | 2003-08-13 | 2005-02-24 | Fujitsu Limited | 印刷制御方法、印刷制御装置および印刷制御プログラム |
JP4507723B2 (ja) * | 2004-06-30 | 2010-07-21 | 富士ゼロックス株式会社 | 画像情報転送装置、画像情報転送システム、画像情報転送方法及び画像情報転送プログラム |
JP2006333110A (ja) * | 2005-05-26 | 2006-12-07 | Konica Minolta Business Technologies Inc | カラー画像形成装置 |
US7761536B2 (en) | 2005-11-17 | 2010-07-20 | Ebay Inc. | Method and system to transmit data |
JP4916729B2 (ja) * | 2006-01-30 | 2012-04-18 | ブラザー工業株式会社 | 仮想デバイス名変更プログラム |
JP4696938B2 (ja) * | 2006-01-30 | 2011-06-08 | ブラザー工業株式会社 | 仮想デバイス名変更プログラム |
JP4337824B2 (ja) * | 2006-01-30 | 2009-09-30 | ブラザー工業株式会社 | 仮想デバイス名変更プログラム |
CA2587198A1 (en) * | 2007-05-02 | 2008-11-02 | Spartan Bioscience Inc. | Method for increasing the speed of nucleic acid amplification reactions |
JP5233608B2 (ja) * | 2008-11-19 | 2013-07-10 | 株式会社リコー | 画像形成装置、画像データ転送方法、及びプログラム |
US11277598B2 (en) * | 2009-07-14 | 2022-03-15 | Cable Television Laboratories, Inc. | Systems and methods for network-based media processing |
US8458568B2 (en) * | 2010-09-24 | 2013-06-04 | International Business Machines Corporation | Systems and methods for memory devices |
JP2013146053A (ja) * | 2011-12-16 | 2013-07-25 | Ricoh Co Ltd | 画像処理装置、画像処理回路及び画像処理装置の制御方法 |
JP6074165B2 (ja) | 2012-06-01 | 2017-02-01 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP5983184B2 (ja) * | 2012-08-24 | 2016-08-31 | ブラザー工業株式会社 | 画像処理システム、画像処理方法、画像処理装置、および画像処理プログラム |
JP6006135B2 (ja) * | 2013-02-08 | 2016-10-12 | 株式会社Pfu | 画像読取装置、画像読取システム、エラー判定方法、及びエラー判定プログラム |
JP6009371B2 (ja) * | 2013-02-26 | 2016-10-19 | ルネサスエレクトロニクス株式会社 | 画像処理lsi及び画像処理プログラム |
JP6483966B2 (ja) * | 2014-07-04 | 2019-03-13 | キヤノン株式会社 | 画像読取装置、画像読取装置を含むシステム、画像読取装置により実行される方法、およびプログラム |
JP7114864B2 (ja) * | 2017-08-31 | 2022-08-09 | ブラザー工業株式会社 | プログラムおよび印刷システム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2755622B2 (ja) * | 1988-10-24 | 1998-05-20 | 株式会社東芝 | 画像形成装置 |
JPH07119125B2 (ja) * | 1988-11-11 | 1995-12-20 | 三田工業株式会社 | 画像形成装置 |
DE69131260T2 (de) | 1990-03-15 | 1999-11-04 | Canon Kk | Verfahren und Gerät zur Bildkommunikation |
US5586226A (en) * | 1990-05-16 | 1996-12-17 | Canon Kabushiki Kaisha | Control method and device for a unicolor printer |
DE69126403T2 (de) | 1990-11-21 | 1997-10-30 | Canon Kk | Farbbildübertragungsgerät |
US5179637A (en) * | 1991-12-02 | 1993-01-12 | Eastman Kodak Company | Method and apparatus for distributing print jobs among a network of image processors and print engines |
US5452454A (en) * | 1991-12-10 | 1995-09-19 | Digital Equipment Corporation | Generic remote boot for networked workstations by creating local bootable code image |
US5235654A (en) * | 1992-04-30 | 1993-08-10 | International Business Machines Corporation | Advanced data capture architecture data processing system and method for scanned images of document forms |
US5287194A (en) * | 1992-11-25 | 1994-02-15 | Xerox Corporation | Distributed printing |
US5495576A (en) * | 1993-01-11 | 1996-02-27 | Ritchey; Kurtis J. | Panoramic image based virtual reality/telepresence audio-visual system and method |
US5325527A (en) * | 1993-01-19 | 1994-06-28 | Canon Information Systems, Inc. | Client/server communication system utilizing a self-generating nodal network |
US5428806A (en) * | 1993-01-22 | 1995-06-27 | Pocrass; Alan L. | Computer networking system including central chassis with processor and input/output modules, remote transceivers, and communication links between the transceivers and input/output modules |
US5426594A (en) * | 1993-04-02 | 1995-06-20 | Motorola, Inc. | Electronic greeting card store and communication system |
US5513126A (en) * | 1993-10-04 | 1996-04-30 | Xerox Corporation | Network having selectively accessible recipient prioritized communication channel profiles |
-
1993
- 1993-01-18 JP JP02170593A patent/JP3792733B2/ja not_active Expired - Fee Related
-
1994
- 1994-01-18 US US08/182,599 patent/US6177934B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH06214922A (ja) | 1994-08-05 |
US6177934B1 (en) | 2001-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3792733B2 (ja) | サーバー装置および制御方法 | |
JP3332443B2 (ja) | 情報処理装置および情報処理方法 | |
JP4035173B2 (ja) | 制御装置および制御方法 | |
JP3486427B2 (ja) | 制御装置および制御方法 | |
US6804016B2 (en) | Control apparatus for a scanner/printer | |
US5720013A (en) | Scanner printer server and method for selectively outputting scanned information to an information processing apparatus in accordance with a pre-scan command and a scan command | |
US20060268316A1 (en) | Systems and methods for fast color processing | |
JPH0749754A (ja) | ページ記述言語決定方法 | |
JPH07271702A (ja) | スキャナプリンタサーバーシステムおよびスキャナプリンタサーバーシステムの有効機能管理方法 | |
US6226095B1 (en) | Image processing apparatus, method, and system | |
US5784062A (en) | Image output device and processing method converting an image formation command into raster format | |
JP3257895B2 (ja) | スキャナプリンタサーバーシステムおよび自動画像転送方法およびスキャナプリンタサーバー | |
US20050219568A1 (en) | Image processing apparatus and its method, and image processing system and its control method | |
JPH05292240A (ja) | スキャナプリンタサーバー及びスキャナプリンタサーバーシステム | |
JP3244138B2 (ja) | サーバー装置 | |
JPH0816332A (ja) | スキャナプリンタサーバーシステムおよびそのデータ処理方法 | |
JPH06214923A (ja) | サーバー装置 | |
JPH06214919A (ja) | サーバー装置およびその画像処理方法 | |
JP3584247B2 (ja) | 印刷制御装置及び制御方法 | |
JPH07186457A (ja) | サーバ装置 | |
JP3639838B2 (ja) | 印刷制御装置及びその制御方法 | |
JP3639835B2 (ja) | 印刷制御装置及びその制御方法 | |
JP3005463B2 (ja) | 印刷システム | |
JP3968989B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラムを記録した記憶媒体 | |
JP2006350802A (ja) | 印刷装置および印刷制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060406 |
|
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: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |