以下、本発明を好ましい実施例を用いて説明する。
図1において、101はホストコンピュータ、102はスキャナプリンタサーバー、103a〜103bは各種スキャナ、104a〜104dは各種プリンタ、105はイーサネット(登録商標)である。
106はクライアントロプロセス、107はサーバープロセス、また、108はDATA(画像データ信号)、109はVSYNC(垂直同期信号)、110はHSYNC(水平同期信号)、111はCLOCK(クロック信号)、112はS.COM(スキャナシリアルコマンド信号)、113はP.COM(プリンタシリアルコマンド信号)を表す。
また、DATA(画像データ信号)108、VSYNC(垂直同期信号)109、HSYNC(水平同期信号)110、CLOCK(クロック信号)111を一括してVideoI/Fと呼ぶ。
103b、104bのスキャナプリンタとの接続の場合はSCSI、104cのプリンタの接続の場合はセントロニクスI/F、104dの接続の場合はRS232Cのように、複数の種類の違うインターフェースに異なったスキャナプリンタとの接続の構成を示す。一般的にSCSIに接続される機器はスキャナとプリンタ両方の形態があり、セントロニクスI/F、RS232Cはプリンタが接続される場合が多い。このようなI/Fに接続されるスキャナやプリンタは、内蔵機能がまちまちである。
VideoI/Fの場合は、主に生画像データのやり取を行なうインターフェースであるため、接続されるスキャナやプリンタはページ記述言語の展開機能や圧縮伸長機能を持たないものが多い。
以下、スキャナは103、プリンタは104で総称し、インターフェースはVideoI/Fを例に挙げて説明する。
ホストコンピュータ101には、各種スキャナ103a〜103b、またはプリンタ104a〜104dを制御するためのクライアントプロセス106を実行させる。
スキャナプリンタサーバー102においては、該クライアントプロセス106の制御に基づいてスキャナ103(以下103a〜103bの総称とする)、プリンタ104(以下104a〜104dの総称とする)を制御するサーバープロセス107を実行させておく。
クライアントプロセス106は、イーサネット(登録商標)105を介して、サーバープロセス107に対して通信を行ない、スキャナ103からの画像の読みとり、およびプリンタ104への画像のプリントを行なう。また、スキャナ103とプリンタ104間の単独でのコピーも可能である。
図2はスキャナプリンタサーバー102の構成図である。
201はCPU、202はイーサネット(登録商標)コントローラ、203はRAM、204はROM、205、206はデュアルポートラム、207はシリアルインターフェース、208はタイミング制御回路、209はメインバス、210はデータバス、211はディスクインターフェース、212はハードディスク、213は符号化、復号化回路、214はページ記述言語を展開するためのインタプリンタを示す。
スキャナプリンタサーバー102を起動すると、CPU201は、ROM204のプログラムを起動して、RAM203を一時記憶場所として、サーバプロセス107を実行する。このとき、イーサネット(登録商標)コントローラ202でイーサネット(登録商標)105に接続し、ホストコンピュータ101のクライアントプロセス106と通信できる。
シリアルインターフェース207は、スキャナプリンタサーバー102と、スキャナ103、プリンタ104とのコマンドの通信をシリアルで行なう。
デュアルポートラム205、206は、メインバス209と、データバス210の両方からアクセスできる。これらのデュアルポートラム205、206は、タイミング制御回路208によってコントロールされ、スキャナ103、プリンタ104間のデータ転送をデュアルバッファ方式で転送する。この時の転送は同期式で行なわれ、VSYNC(垂直同期信号)109、HSYNC(水平同期信号)110、CLOCK(クロック信号)111信号で同期がとられる。
シリアルインターフェース207は、スキャナ103とのコマンドをS.COM(スキャナシリアルコマンド信号)112でシリアル伝送で通信する。同様にプリンタ104とのコマンドをP.COM(プリンタシリアルコマンド信号)113でシリアル伝送で通信する。
このデータとしては、スキャナプリンタサーバー102からスキャナ103へは、プリスキャン命令、スキャン命令などを送る。また、スキャナ103側からは、コピー命令や、動作異常などのステータス情報などが送られる。同様に、スキャナプリンタサーバー102からプリンタ104へは、プリント命令などを送る。また、プリンタ104側からは、紙切れ、紙ジャム動作異常などのステータス情報などが送られる。
ディスクインターフェース211は、ハードディスク212とのインターフェースを行なう。
符号化、復号化回路213は、スキャナ103から読み込んだデータを符号化する。また、イーサネット(登録商標)105より送られてきた符号化された画像データを復号化する。この符号化方法としては、ADCT法などがある。
ADCT符号化法は、CCITTSGVIIIとISO/TC97/SC2/WG8の合同機関であるJPEG(jointPhotograpicsExpertGroup)が1991年の正式勧告を目指して標準化作業を進めているカラー静止画用符号化方式である(日経エレクトロニクス1990.3.19参照)。
インタープリタ214は、PDL(PageDescription Language)を翻訳して、デュアルポートラム205、206にビットマップあるいはバイトマップで画像を展開して、プリンタ104にプリントする手段である。このPDLには、PostScript、CaPSL(CAnonprintingSystemLanguage)などがある。
図3はスキャナ103の構成図である。
301はスキャナシリアルインターフェース、302はスキャナCPU、303はスキャナ駆動回路、304はスキャナタイミング制御回路、305は画像読みとり部、306はオペレーションパネルを表わす。
図3において画像をスキャンする場合についての動作を説明する。
スキャナシリアルインターフェース301は、スキャナプリンタサーバー102からスキャン命令を受けとり、スキャナCPU302に伝える。
次に、スキャナCPU302は、スキャン命令より画像サイズ、画像のスキャンスタート位置などをセットする。
スキャナCPU302は、スキャナ駆動回路303を制御し、画像読みとり部305より図7のように、画像を1ライン毎に読み出す。
このとき、図8のように、スキャナタイミング制御回路304はHSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111と、これに同期した画像データをDATA(画像データ信号)108に出力する。
スキャナプリンタサーバー102は、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111に同期して画像データを読みとる。
図4はプリンタ104の構成図である。
401はプリンタシリアルインターフェース、402はプリンタCPU、403はプリンタ駆動回路、404はプリンタタイミング制御回路、405はプリント部を表す。
図4において画像をプリントする場合についての動作を説明する。
ホストコンピュータ101ではプリントしたいデータを用意している。データは生画像データ、圧縮画像データ、ページ記述言語などの形態である。そしてプリントしたいプリンターの指定を行ない、ネットワーク105を通じて、スキャナプリンタサーバー102に転送する。サーバー102のクライアントプロセス107は、もし転送されてきたデータがページ記述言語の形態であって、指定されたプリンタがページ記述言語のビットマップ展開の機能がない場合には、サーバー102内でデータを展開し、指定されたプリンタが接続されたインターフェースより、プリンタ104に対してプリント命令を送る。またもし接続されたプリンタがページ記述言語の展開機能がある場合には、サーバー102はページ記述言語の形態のデータでプリンタ104にデータを送る。
サーバー102は送られてきたデータと指定されたプリンタの内蔵機能の関係より自動的にサーバー内で行なう処理を施す。
プリンタ内蔵の機能を用いる場合は、サーバー102はデータ転送機能のみとなる。以下、サーバー102に接続されたプリンタは内蔵機能がない場合について述べる。
プリンタシリアルインターフェース401は、スキャナプリンタサーバー102からプリント命令を受けとり、プリンタCPU402に伝える。
次に、プリンタCPU402は、プリントデータと一緒に送られてくる情報、あるいはページ記述言語形式の場合は、その指定より画像サイズ、画像のプリントスタート位置などをセットする。
プリンタCPU402は、プリンタ駆動回路403を制御し、図7のように、画像を1ライン毎に読み出す。
このとき、スキャナプリンタサーバー102は図8のように、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111と、これに同期して画像データをプリンタ104に出力する。
プリンタタイミング制御回路404は、スキャナプリンタサーバー102からのHSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111に同期して画像データを受けとり、プリント部405でプリントする。
図5は圧縮機能を持たない、生画像データを出力する画像読みとり部305の構成図である。
図5は画像読みとり部305の構成図である。
501はレベル変換部、502はスキャナガンマ変換部、503はスキャナ色変換部、504は解像度変換部、505はスキャンエンジンを表わす。
図5において、画像読みとり部305は、レベル変換部501、スキャナガンマ変換部502、スキャナ色変換部503、解像度変換部504、走査変換部505、スキャンエンジン505から構成され、これらは、バス(不図示)に接続されており、スキャナCPU302からパラメータの変換を行なうことができる。
スキャンエンジン505は、RGBのカラー画像を読みとり、シェーディング補正を行ない、画像データを出力する。
解像度変換部504は、画像の読みとり解像度の変換を行なう。この解像度は、400dpi(dotperinch)、200dpi、100dpiなどから選択できる。この解像度はスキャナCPU302が指定する。
スキャナ色変換部503は、画像の色変換を行なう。ここでは、もし得たい画像データが標準色空間データのRGBデータの場合、それに合った補正を行ない出力する。また、RGBカラーデータをYCrCbなどの色空間のデータへの変換もここで行なう。また、白黒データが得たい場合は、前記YCrCbの明度データであるYを用いたり、あるいは、RGBカラーデータの中間波長データであるG(Green)データを用いたりして、白黒変換を行なう。このスキャナ色変換の指定はスキャナCPU302が行なう。
レベル変換部501では、1画素の有効ビット数を変換する。例えば、ガンマ変換後の各色8bitのYCrCbを、下位のビットを切り捨てて、Yを6bit、Cr、Cbをそれぞれ4bitのようにダイナミックレンジを変換する。このレベル指定はホストコンピュータ101の指示により、スキャナCPU302が行なう。
図6はプリント部405の構成図である。
601はプリンタ色変換部、602はプリンタガンマ変換部、603はマスキング変換部、604は黒生成、下色除去部、605は二値化部、606はプリントエンジン、を表す。
プリンタ色変換部601は、画像のRGBへの色変換を行なう。ここで、例えば、YCrCBなどの色空間で画像が送られてきた場合、RGBへの変換を行なう。
プリンタガンマ変換部602は、入力画像のガンマ変換を行なう。R’=f(R)G’=f(G)B’=f(B) この変換はLUT(ルックアップテーブル)でおこなわれる。また、このLUTの設定はプリンタCPU402がおこなう。
マスキング変換部603は、入力画像のマスキング変換を行なう。
ここで、マスキング変換は
の1次変換、あるいは
の2次変換で求められる。
この変換はLUT(ルックアップテーブル)、あるいはゲートアレイでおこなわれる。またこのLUT、あるいはゲートアレイのパラメータの設定はプリンタCPU402がおこなう。
黒生成、下色除去部604では、C=255−R”M=255−G”Y=255−B”Bk=a(min(C、M、Y))C’=C−BkM’=M−BkY'=Y−Bkで示すように、黒生成と下色除去が行なわれる。
この変換はLUT(ルックアップテープ)、あるいはゲートアレイでおこなわれる。また、このLUT、あるいはゲートアレイのパラメータの設定はプリンタCPU402がおこなう。
二値化部605では、プリントエンジン606が二値プリンタの場合、画像の二値化を行なう。二値化方法としては、単純二値化法、ディザ法、誤差拡散法の3種類を切り替えて用いる。尚、プリントエンジン606が多値プリンタの場合には、二値化部605は必要ない。この変換はゲートアレイでおこなわれる。二値化方法、二値化のしきい値などの設定はプリンタCPU402がおこなう。
図7は画像のスキャン、プリントの説明図であり、701はスキャン、あるいはプリントする画像を指す。
VSYNCは垂直同期信号、HSYNCは水平同期信号を表し、スキャン、あるいはプリントする画像701は、垂直同期信号、水平同期信号に同期して1ラインずつ出力される。
図8はタイミングの説明図であり、VSYNCは垂直同期信号、HSYNCは水平同期、CLOCKは基準クロックを表し、CLOCKに同期して1画素ごとに、画像データが出力される。
図8では、RGBのカラーデータであるが、スキャナ色変換部503が任意の三原色に変換できる。
図9は、プリスキャン、プリント時のデュアルポートラム動作説明図であり、図の如く、スキャン、プリント時に画像が1ラインずつ、スキャナ103にデュアルポートラムから読みだし、あるいはプリンタ104にデュアルポートラムから書き込みされる。
図9中の番号はこのときのデュアルポートラムのアクセス順序を表す。
図10、図11はプリスキャン時のデュアルポートラム動作説明である。
スキャナ103から画像を読み込む場合、スキャナプリンタサーバー102は、1ライン毎に図10、図11のようにデュアルポートラムに画像データを交互に書き込む。すなわち、図10に示すごとく、第1のラインを、スキャナ103から読み込み、デュアルポートラム205に、書き込む。
次に、図11のごとく、第2のラインを、スキャナ103から読み込み、デュアルポートラム206に、書き込む。もし、ホストコンピュータ101が、生画像データを得たい場合は、そのままデュアルポートラム205のデータを読みだし、イーサネット(登録商標)105を介してサーバープロレス107に転送する。またもし、圧縮画像データの形で得たい場合は、図2のサーバー装置内の符号化回路213を利用して、デュアルポートラム205のデータを読みだし、画像圧縮して、イーサネット(登録商標)105を介してサーバープロセス107に転送する。
次に、図10に示すごとく、第3のラインを、スキャナ103から読み込み、デュアルポートラム205に、書き込む。その時同時に、デュアルポートラム206の第2のラインのデータを読みだし、同様に、生画像データの形、あるいは圧縮画像データの形で、イーサネット(登録商標)105を介してサーバープロセス107に転送する。
以下同様に、デュアルバッファを利用して、1ラインづつ画像を読み込む。
ところで、スキャンエンジン505は、RGB点順次で画像を読み出す。もし、ユーザが他の線順次、面順次などの形式で画像を読み出すように指示した場合には、走査変換を行なう必要がある。これは、デュアルポートラム205、206からの画像の読み出し時に行なわれる。
以下では、スキャン時の走査変換について述べる。
まず、スキャナ色変換部503では点順次のRGBをYCrCbなどの色空間へ変換され、点順次デュアルポートラム205、206に交互に書き込まれるものとする。この点順次のYCrCbの画像を線順次に変換して転送するには、画像データを読み出す際に、3画素ずつずらして読み出す。すなわち、点順次のYCrCbの画像から最初に第1色であるYだけを読みだし、転送する。次に第2色であるCrだけを読みだし、転送する。最後に第3色であるCbだけを読みだし、転送する。これにより、点順次のYCrCbから、線順次のYCrCb画像への走査変換が行なわれる。
次に、点順次のYCrCbの画像から面順次のYCrCbに変換して転送する場合について説明する。
線順次の場合と同様に、スキャナ色変換部503では点順次のRGBをYCrCbなどの色空間へ変換され、点順次でデュアルポートラム205、206に交互に書き込まれるものとする。
点順次から面順次への変換は、1回のスキャンではできないので、スキャンエンジン505で3回スキャンを行う。
そして、第1回目のスキャン時には、第1色のYだけを読みだし転送する。2回目のスキャンの時にはCrだけを、第3回目のスキャンの時にはCbだけを読み出し転送する。これにより点順次のYCrCbの画像から面順次のYCrCbに変換することができる。
また、点順次のYCrCb画像の場合には、ADCT法による画像の符号化を行なうことができる。この場合も同様に、スキャナ103から読み出した画像をデュアルポートラムに交互に書き込み、読み出す際に符号化、復号化回路213で符号化を行ない、符号化された画像データをRAM203に書き込む。その符号化された画像データを、イーサネット(登録商標)105を介してサーバープロセス107に転送する。
これにより、画像を圧縮して転送することができ、通信量を削減することができる。
図12、図13はプリント時のデュアルポートラム動作説明図である。
プリンタ104に画像をプリントする場合、スキャナプリンタサーバー102は、1ライン毎に図12、図13のようにデュアルポートラムから交互にデータをプリンタ104に出力する。
すなわち、図12の如く、第1のラインを、イーサネット(登録商標)105から読み込み、デュアルポートラム205に書き込む。
次に第2のラインを、図13の如くイーサネット(登録商標)105から読み込み、デュアルポートラム206に、書き込む。そのとき同時にデュアルポートラム205のデータを読みだし、プリンタ104に転送する。
次に、図12の如く、第3のラインをイーサネット(登録商標)105から読み込み、デュアルポートラム205に書き込む。そのとき同時に、デュアルポートラム206にデータを読みだし、プリンタ104に転送する。
以下同様に、デュアルバッファを利用して、1ラインずつ画像を転送する。
ところで、プリンタエンジン606は、RGB点順次で画像をプリントする。このため、ユーザが他の線順次、面順次などの形式で画像をプリントするように指示した場合には、走査変換を行なう必要がある。これは、デュアルポートラム205、206からの画像の読み出し時に行なわれる。
以下では、プリント時の走査変換について述べる。
まず、サーバープロセス107から、点順次のYCrCbの画像データが送られてくる場合は、走査変換はする必要はない。この点順次のYCrCbの画像データは、プリンタ104に送られ、プリンタ色変換部601で点順次のPGBに変換され、プリントされる。
次に、線順次のYCrCbの画像データが送られてくる場合は、画像データを読み出す際に、画像ごとに読み出す。すなわち、第1画素の第1色であるYを、次に第1画素の第2色であるCrを、次に第1画素の第3色であるCbを読み出す。次に、第2画素の第1色であるYを、次に第2角その第2色であるCrを、次に第2画素の第3色であるCbを読み出す。以下同様に読み出すことにより、線順次のYCrCbが像から点順次のYCrCb画像への変換を行なうことができる。
この点順次のYCrCbが画像データは、プリンタ104に送られ、プリンタ色変換部601で点順次のRGBに変換され、プリントされる。
次に、面順次のYCrCb画像が転送されてきた場合の走査変換について説明する。
面順次のYCrCb画像から、点順次のYCrCbへは、1回で変換できないので、いったん画像データをハードディスク212に格納する。
そして、ハードティスク212に格納したフィルムをシークして、YCrCbの点順次に読みだし、デュアルポートラム205、206に書き込むことにより走査変換を行なう。この点順次のYCrCbの画像データは、プリンタ104に送られ、プリンタ色変換部601で点順次のPGBに変換され、プリントされる。
また、ADCT法により符号化された点順次のYCrCb画像が送られてきた場合には、符号化、復号化回路213で、点順次のYCrCb画像に復号化する。この点順次のYCrCb画像を1ラインごとにデュアルポートラム205、206に交互に書き込み、プリンタ104に転送する。
これにより、画像を圧縮して転送することができ、通信量を削減することができる。
図14はプリスキャン、スキャン動作時の説明図で、以下、図にしたがってプリスキャン、スキャン時のホストコンピュータ101とスキャナプリンタサーバー102とスキャナ103間のデータのやりとりについて説明する。
画像をスキャナ103から読み込む場合には、画像の大きさ、画像の位置、解像度、フォーマット(点順次、線順次、面順次)エッジ強調、色空間(RGB、YCrCb)、色(どの色を送るか、例えばGだけ)、レベル(色の階調数)、符号化方法(ADCT、符号化しないなど)、ビットレート(符号化時のビットレート)、プリスキャン時の間引き率、どのファイルに読み込むか、などを指定する必要がある。
そこで、クライアントプロセス106は、これらのパラメータを指定するようユーザに指示する。ユーザは、これらの指定を行ない、プリスキャンを実行する。
すると、クライアントプロセス106は、図14のシーケンスにしたがって、サーバープロセス107と通信を行なう。
図14において、まずクライアントプロセス106は、画像のXSIZE、YSIZE、XSTART、YSTART、XSTEP、YSTEPなどからなるPRESCANパケットをサーバープロセス107に送る。
サーバープロセス107では、画像の符号化、プリスキャン時の間引きを行なうため、PRESCANパケットを受けると、符号化方法、符号化時のビットレート、間引き率をセットする。それ以外の情報は、プリスキャン命令としてシリアルインターフェース207からスキャナ103に送られる。
スキャナ103は、プリスキャン命令の情報にしたがって、画像読みとり部305にパラメータをセットする。これらのパラメータが正しくセットされると、OKをサーバープロセス107に送り返す。
サーバープロセス107は、スキャナ103からOKを受けとると、OKパケットをクライアントロプロセス106に送り返す。もし、正しくセットされない場合には、ステータス情報をサーバープロセス107に送り返す。
スキャナ103は、プリスキャン命令を受けると、VideoI/Fから画像を1ラインずつ読みだす。
プリスキャン時には、スキャナプリンタサーバー102のタイミング制御回路208は、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111、DATA(画像データ信号)108をハイインピーダンスにし、スキャナ103が発生するHSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111に同期して、DATA(画像データ信号)108から、データを読み込み、デュアルポートラム205、206に書き込む。
サーバープロセス107、VideoI/Fから1ラインずつ読み込んだ画像データを、デュアルポートラム205、206から読みだし、ハードディスク212に書き出す。
このとき、PRESCANパケットで指定された、XSTEP、YSTEPの間引き率にしたがって画像を間引き、このデータを適当な大きさに分割、あるいは結合して、DATAタグ、パケットのバイト数、画像データから成る複数のDATAパケットを構成し、ホストコンピュータ101のクライアントプロセス106に送る。
ホストコンピュータ101のクライアントプロセス106ではサーバープロセス107より受けとった画像パケットから間引かれた画像データをとりだし、CRT上に表示する。
スキャナ103は、すべての画像を正常に送ると、OKをスキャナシリアルインターフェース301からサーバープロセス107に送る。サーバープロセス107は、スキャナ103よりOKを受けとるとOKパケットをクライアントプロセス106に送る。
サーバープロセス107は、クライアントプロセス106にOKパケットを送ると、クライアントプロセス106から次のコマンドパケット待ちになる。
クライアントプロセス106は間引かれた画像をすべて受けとり、CRT上に表示し、画像のどの領域を実際にスキャンするか、ユーザに問い合わせる。ユーザは、マウスなどのポインティングデバイスでどの領域を実際にスキャンするか指定する。そして、スキャン開始をクライアントプロセス106に指示する。
すると、クライアントプロセス106は、画像のXSIZE、YSIZE、XSTART、YSTARTなどからなるSCANパケットをサーバープロセス107に送る。
サーバープロセス107では、SCANパケットを受けると、この情報が正しくセットされると、OKをクライアントプロセス106に送り出す。
サーバープロセス107は、すでにプリスキャン時にハードディスク212に読み込んである画像データから、SCANパケットで指定されたパラメータにしたがって読み出す。この画像データは、適当な大きさに分割、あるいは結合され、DATAタグ、パケットの倍と数、画像データからなる複数のDATAパケットを構成し、ホストコンピュータ101のクライアントプロセス106に送られる。
ホストコンピュータ101のクライアントプロセス106ではサーバープロセス107より受けとった画像データをとりだし、次々にディスクに書き込む。
サーバープロセス107は、すべての画像を正常に送るとと、OKパケットをクライアントプロセス106に送る。
サーバープロセス107は、クライアントプロセス106にOKパケットを送ると、クライアントからの次のコマンドパケット待ちになる。
クライアントプロセス106はサーバープロセス107からOKパケットを受けとると、次のユーザからの命令待ちになる。
図15はプリント動作時の説明図で、以下、図にしたがってプリント時のホストコンピュータ101のクライアントプロセス106とスキャナプリンタサーバー102とプリンタ104の間のデータのやりとりについて説明する。
ユーザが、ホストコンピュータ101において、デスクトップパブリッシングソフト(以下、DTPソフト)などを利用して、文書や絵を作成し、その出力データ形式であるページ記述言語形式のデータを作り、プリントしたい時、または、生画像データ形式や圧縮画像形式の画像データをプリントしたい時は、プリントすべき画像データがページ記述言語形式か画像データ形式かの指定、画像データ形式の場合は、画像の大きさ、プリントすべき画像の位置、プリントすべき画像を保持するホストコンピュータ101上のファイル名などを指定する。
サーバープロセス107では、データ形式を判別し、指定されたプリンタ内の機能を用いるか、スキャナプリンタサーバー102内の機能を用いるかの判定をする。
また、プリント時のガンマ変換、マスキング変換などのパラメータは、通常デフォルトの値が設定されているが、これらも変更することができる。
この場合、図15において、まずクライアントプロセス106は、画像プリント時のガンマテールを設定するためにGAMMAパケットをサーバープロセス107に送る。すでにガンマテーブルが設定されていれば送る必要はない。
サーバープロセス107では、GAMMAパケットを受けとると、GAMMAパケットの第2バイトがプリンタを示す場合には、プリンタ104に、スキャナを示す場合にはスキャナ103、ガンマ設定命令をプリンタ104に送る。
プリンタ104はガンマ設定命令のパラメータにしたがって、プリンタガンマ変換部602のLUTをセットする。正常にセットできれば、OKをサーバープロセス107に送り返る。
サーバープロセス107は、スキャナOKを受けとると、OKパケットをクライアントプロセス106に送り返す。
次に、クライアントプロセス106は、画像プリント時のマスキングテーブルを設定するためにMASKINGパケットをサーバープロセス107に送る。すでにマスキングテーブルが認定されていれば送る必要はない。
サーバープロセス107では、MASKINGパケットを受けとると、マスキング認定命令をプリンタ104に送る。
プリンタ104は、マスキング認定命令のパラメータにしたがって、マスキング変換部603のパラメータをセットする。正常にセットできれば、OKをサーバープロセス107に送り返す。
サーバープロセス107は、プリンタ104からOKを受けとると、OKパケットをクライアントプロセス106に送り返す。
以上のように、ガンマ変換、マスキング変換用のパラメータを設定すると、クライアントプロセスは、プリントしたいデータがページ記述言語形式か生画像形式か圧縮画像形式かを指定、プリンタの指定、及び、画像のXSIZE、YSIZE、XSTART、YSTART、PAGEなどからなるPRINTパケットをサーバープロセス107に送る。
サーバープロセス107では、PRINTパケットを受けると、指定されたプリンタとの接続を開始する。もし、プリンタ側にページ記述言語解釈機能がなく、ページ記述言語形式のデータを受けとった場合は、スキャナプリンタサーバー102内部で処理を行なう。圧縮データの場合も同様である。
ここでは、先に述べたように、プリンタ側に機能がない場合のVideoI/Fを用いたプリンタの場合で話しを進める。
サーバープロセス107は、PRINTパケットを受けると、シリアルインターフェース207からプリント命令をプリンタ104に送る。
プリンタ104は、プリント命令の情報が正しくセットすると、OKをサーバープロセス107に送り返す。
サーバープロセス107は、プリンタからOKを受けとると、OKパケットをクライアントプロセス106に送り返す。
クライアントプロセス106では、OKパケットを受けとると、指定されたファイルから画像データ(ページ記述言語形式、生画像データ形式、圧縮画像データ形式などを含む)を読み出す。クライアントプロセス106は、読み込んだ画像データを適当な大きさに分割、あるいは結合してDATAタグ、パケットのバイト数、画像データからなる複数のDATAパケットを構成し、サーバープロセス107に送る。
サーバープロセス107ではホストコンピュータ101のクライアントプロセス106より受けとった画像パケットから画像データを取り出す。画像データがページ記述言語の形式の場合、ページ記述言語インタープリタを起動し、ビットマップ展開を行なう。圧縮画像データ形式の場合、伸長回路を用いた伸長プロセスを起動し、ビットマップ展開を行なう。それぞれビットマップ展開されたデータや生画像データは、VIDeoI/Fからプリンタ104に順次送られて、プリントされる。
プリント時には、スキャナプリンタサーバー102のタイミング制御回路208は、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111と、これに同期した画像データをDATA(画像データ信号)108に出力し、プリンタ104は、これに同期してDATA(画像データ信号)108信号から印刷すべきデータを読みとり、プリントする。
プリンタ104は、すべての画像を正常にプリントすると、OKをプリントシリアルインターフェース401からサーバープロセス107に送る。サーバープロセス107は、プリンタ104からOKを受けとると、OKパケットをクライアントプロセス106に送る。
サーバープロセス107は、OKパケットをクライアントプロセス106に送ると、クライアントからの次のコマンドパケット待ちになる。クライアントプロセス106は、サーバープロセス107からOKパケットを受けとった時点で次のユーザからの命令待ちになる。
図16はプリント時にエラーが発生した場合の説明図で、以下、図にしたがってプリント時のホストコンピュータ101とスキャナプリンタサーバー102とプリンタ104の間のデータのやりとりについて説明する。
上記プリント時と同様に、クライアントプロセス106は、画像プリント時のガンマテーブル、マスキングテーブルを設定する。
次に、クライアントプロセス106は、プリントしたいデータがページ記述言語形式か生画像形式か圧縮画像形式かを指定、プリンタの指定、及び、画像のXSIZE、YSIZE、XSTART、YSTART、PAGEなどからなるPRINTパケットをサーバープロセス107に送る。
サーバープロセス107では、PRINTパケットを受けると、指定されたプリンタとの接続を開始する。もし、プリンタ側にページ記述言語解釈機能がなく、ページ記述言語形式のデータを受けとった場合は、スキャナプリンタサーバー102内部で処理を行なう。圧縮データの場合も同様である。
ここでも、先に述べたように、プリンタ側に機能がない場合のVideoI/Fを用いたプリンタの場合で話しを進める。
サーバープロセス107は、PRINTパケットを受けると、シリアルインターフェース207からプリント命令をプリンタ104に送る。
プリンタ104は、プリント命令のパラメータの値が不正な場合、あるいはセットできないなどの異常が発生したり、紙切れなどのエラーが発生した場合、そのエラーステータスを示すステータス情報をサーバープロセス107に送り返す。
サーバープロセス107は、スキャナからステータス情報を受けとると、ステータス情報をステータスパケットに変換し、クライアントプロセス106に送り返す。
クライアントプロセス106はSTATUSパケットを受けとると、そのステータスにしたがって、ユーザに適切なメッセージを出力し、エラーが発生したことを知らせる。
また、プリント中に、例えば紙ジャムなどのエラーが発生した場合、プリンタCPU402は、すぐさまプリント動作を中断し、エラーのステータス情報をプリンタシリアルインターフェース401より、サーバープロセス107に伝える。
サーバープロセス107では、プリンタ104よりのステータス情報を受けとると、このステータス情報をSTATUSパケットとして、クライアントプロセス106に送り、次のコマンド待ちになる。
クライアントプロセス106はSTATUSパケットを受けとると、そのステータスにしたがって、ユーザに適切なメッセージを出力し、エラーが発生したことを知らせる。
図17は同一の画像を複数枚プリントする時の動作時の説明図で、以下、図にしたがってプリント時のホストコンピュータ101とスキャナプリンタサーバー102とプリンタ104の間のデータのやりとりについて説明する。
ユーザが、ホストコンピュータ101において、プリントすべき画像がページ記述言語形式の場合はその保持しているファイル名、生画像データ形式、圧縮画像データ形式などの場合は、その大きさ、プリントすべき画像の位置、プリントすべき画像を保持するホストコンピュータ101上のファイル名などを指定する。この時、プリント時のガンマ変換、マスキング変換などのパラメータは、すでに設定されているものとする。
図17において、まずクライアントプロセス106は、プリントしたいデータがページ記述言語形式が生画像形式か圧縮画像形式かを指定、プリンタの指定、及び、画像のXSIZE、YSIZE、XSTART、YSTART、何枚プリントするかを示すPAGEなどからなるPRINTパケットをサーバープロセス107に送る。
サーバープロセス107では、PRINTパケットを受けると、指定されたプリンタとの接続を開始する。もし、プリンタ側にページ記述言語解釈機能がなく、ページ記述言語形式のデータを受けとった場合は、スキャナプリンタサーバー102内部でページ記述言語に対する展開処理を行なう。圧縮データの場合も同様である。
ここでも、先に述べたように、プリンタ側に機能がない場合のVideoI/Fを用いたプリンタの場合で話しを進める。
サーバープロセス107は、PRINTパケットを受けると、シリアルインターフェース207からプリント命令をプリンタ104に送る。
プリンタ104は、プリント命令の情報が正しくセットされていれば、OKをサーバープロセス107に送り返す。
サーバープロセス107は、スキャナからOKを受けとると、OKパケットをクライアントプロセス106に送り返す。
クライアントプロセス106では、OKパケツトを受けとると、指定されたファイルから画像を読みだす。クライアントプロセス106は、読み込んだ画像データを適当な大きさに分割、あるいは結合して、DATAタグ、パケットのバイト数、画像データからなる複数のDATAパケットを構成し、サーバープロセス107に送る。
サーバープロセス107ではホストコンピュータ101のクライアントプロセス106より受けとった画像パケットから画像データを取り出す。画像データがページ記述言語の形式の場合、ページ記述言語インタープリンタを起動し、ビットマップ展開を行なう。圧縮画像データ形式の場合、伸長回路を用いた伸長プロセスを起動し、ビットマップ展開を行なう。それぞれビットマップ展開されたデータや生画像データは、VideoI/Fからプリンタ104に順次送られて、プリントする。同時に、画像データをハードディスク212に格納する。
プリンタ104、1枚めの画像を正常にプリントすると、OKをプリンタシリアルインターフェース401からサーバープロセス107に送る。
サーバープロセス107は、プリンタ104からOKを受けとると、2枚目の画像からは、ハードディスク212からすでに書きこんだ画像を読みだし、VideoI/Fからプリンタ104に順次プリントする。
サーバープロセス107は、PRINTパケットで指定されたPAGE枚数をプリントすると、OKパケットをクライアントプロセス106に送り、正常なプリントが行なわれたことを知らせる。また、このとき記憶した画像を消去する。
サーバープロセス107は、OKパケットをクライアントプロセス106に送ると、クライアントからの次のコマンドパケット待ちになる。
クライアントプロセス106は画像をすべて送り、サーバープロセス107からOKパケットを受けとった時点で、次のユーザからの命令待ちになる。
次に本発明の別の実施例について説明する。図21において、まずクライアントプロセス106は、画像のXSIZE、YSEZE、XSTART、YSTART、XSTEP、YSTEPなどからなるSCANパケットをサーバープロセス107に送る。サーバープロセス107では、SCANパケット中の指示によりサーバーの画像処理の各パラメータをセットし、画像の大きさに関わる指示は、シリアルインターフェース207からスキャナ103に送られる。
スキャン103は、スキャン命令の情報に従って、画像読みとり部305にパラメータをセットする。これらのパラメータが正しくセットされると、OKをサーバープロセス107に送り返す。
サーバープロセス107は、スキャナからOKを受けとると、OKパケットをクライアントプロセス106に送り返す。もし、正しくセットされない場合には、ステータス情報サーバープロセス107に送り返す。
スキャナ103は、スキャン命令を受けとると、VideoI/Fから画像を1ラインずつ読みだす。
スキャン時には、スキャナプリンタサーバー102のタイミング制御回路208は、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111、DATA(画像データ信号)108をハイインピーダンスにし、スキャナ103が発生するHSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111に同期して、DATA(画像データ信号)108から、データを読み込み、デュアルポートラム205、206に書き込む。
サーバープロセス107は、VideoI/Fから1ラインずつ読み込んだ画像データを、デュアルポートラム205、206から読み出し、ハードディスク212に書き出す。
この時、もしコンピュータからの間引きデータの転送指示があれば、デュアルポートラム205、206への書き込みと同時にSCANパケットで指定された、XSTEP、YSTEPの間引き率にしたがって画像を間引き、このデータを適当な大きさに分割、あるいは結合して、DATAタグ、パケットのバイト数、画像データからなる複数のDATAパケットを構成し、ホストコピュータ101のクライアントプロセス106に送る。
ホストコンピュータ101のクライアントプロセス106ではサーバープロセス107より受けとった画像パケットから間引かれた画像データをとりだし、CRT上に表示する。
スキャナ103は、すべての画像を正常に送ると、OKをスキャナシリアルインターフェース301からサーバープロセス107に送る。
サーバープロセス107は、スキャナ103よりOKを受けとるとOKパケットをクライアントプロセス106に送る。
サーバープロセス107は、クライアントプロセス106にOKパケットを送ると、クライアントプロセス106からの次のコマンドパケット待ちになる。クライアントプロセス106は間引かれた画像をすべて受けとり、CRT上に表示し、画像のどの領域を実際にスキャンするか、ユーザに問い合わせる。ユーザは、マウスなどのポインティングデバイスでどの領域を実際に必要とするか指定する。
そして、指定領域をクライアントプロセス106に指示する。すると、クライアントプロセス106は、画像のXSIZE、YSIZE、XSTART、YSTARTなどからなるCUTパケットをサーバープロセス107に送る。
サーバープロセス107ではCPUパケットを受けると、この情報が正しくセットされると、OKをクライアントプロセス106に送り返す。
次にクライアントプロセス106は他のアプリケーションプログラムで作成されたページ記述言語を、サーバープロセス107に送る。
サーバープロセス107は、インタプリタ214によってページ記述言語を展開し、文字や図形のビットマップを作成する。そして、ページ記述言語で指示された場所に、スキャナから読みとられ、画像記憶手段に保持されている画像データを、CUTパケットの指示の領域から読みだし、前述ビットマップの中に合成する。そして、サーバープロセス107は、合成画像データをプリンタ側に転送してプリントを行なう。もし、ページ記述言語で画像処理の指示があったならば、画像記憶手段から画像データを読みだすと同時に処理を加える。
サーバープロセス107は、すべての画像を正常にプリンタに送ると、OKパケットをクライアントプロセス106に送る。もし、クライアントプロセス106から連続プリントの指示があると、サーバープロセスは、ビットマップ展開された画像データをプリンタに転送させる。
サーバープロセス107は、クライアントプロセス106にOKパケットを送ると、クライアントからの次のコマンドパケット待ちになる。
クライアントプロセス106はサーバープロセス107からOKパケットを受けとると、次のユーザからの命令待ちになる。
図18はパケットの構成を示す。
(a)はPRESCANパケット、(b)はSCANパケット、(c)はPRINTパケットである。
各パケットの第1バイトは、そのパケットが何であるかを表すタグてある。例えば、PRESCANは1で、プリスキャンすることを示す。SCANは2で、スキャンすることを示す。
SCANNERNAME、PRINTERNAMEは、画像を入出力するデバイス名の指定を行なう。
DATATYPEは、画像データがページ記述言語形式か圧縮画像形式か生画像データ形式かなどの指定を行なう。
XSIZEは、2バイトからなる画像のX方向の大きさを示し、YSIZEは、2バイトからなる画像のY方向の大きさを示す。
XSTARTは、2バイトからなる画像のX方向のスキャン、プリント開始位置を示し、YSTARTは、2バイトからなる画像のY方向のスキャン、プリント開始位置を示す。
XZOOMは、1バイトからなる画像のX方向のスキャン、プリント解像度を示し、YZOOMは、1バイトからなる画像のY方向のスキャン、プリント解像度を示す。
FORMATは、画像の走査方法を示し、点順次は1、線順次は2、面順次は3のように指定する。
EDGEは、エッジ強調、スムージングの程度を示し、16〜1はエッジ強調、−1〜−16ならスムージングのように指定する。
COLORTYPEは、画像の色空間を示し、RGBなら1、YCrCbなら2のように指定する。また、RGBの場合には、第1色をR、第2色をG、第3色をBと呼び、YCrCbの場合には、第1色をY、第2色をCr、第3色をCbと呼ぶことにする。
COLORは、画像の色のうち、どの色を送るかを示す。例えば、第1色だけなら第2ビット、第2色だけなら第1ビット、第3色だけなら第0ビットを1にする。例えば、COLOR、TYPEがRGBで、RGB全色送る場合には、7になり、また、R、Bの2色を送る場合には5(第1色=4、第3色=1)になる。
同様に、COLORTYPEがYCrCbで、Yだけ送る場合には4になる。
LEVELは、2バイトからなり、最初の4bitは、第1色の階調数を示し、次の4bitは第2色の階調数を示し、次の4bitは、第3色の階調数を示す。最後の4bitはundefinedである。これらの階調数は8ならば256階調、6ならば64階調のように2つの指数で指定する。
CODEは、符号化方法を示し、符号化しない場合は0、ADCTによる符号化の場合は1のように指定する。
BITRATEは、符号化の符号化率を示し、6は1/6、12は1/12の圧縮率で符号化することを示す。
XSTEP、YSTEPは、プリスキャン時にどの程度画像を間引いて送るかを指定する。例えば、縦横5画素おきに画像を送る場合には、XSTEP=5、YSTEP=5となる。また、間引かない場合には、XSTEP=0、YSTEP=0となる。
UCRは黒生成時のαを示す。
BI−LEVELは二値化方法を示し、0はプリントエンジン606が多値プリンタの場合で、二値化を行なわないことを示す。1はディザ法のファットニングパターン、2はディザ法のベイヤパターン、3は単純二値化法、4は誤差拡散法を示す。
THRESHOLDは単純二値化法の二値化しきい値(0〜255)を示す。
PAGEはプリント時のページ数を示す。
図18の(d)はOKパケットを示す。OKパケットは1バイトのOKタグだけである。
図18の(e)はGAMMAパケットで、第2バイトのS/Pは、スキャナ103、プリンタ104のいずれかのガンマテーブルに設定するかを示す。それ以降は、ガンマテーブルは256*3色分の768バイトから構成される。
図18の(f)はMASKINGパケットで、マスキングタグ、および2バイトの固定小数点からなるマスキングパラメータで構成される。
図18の(g)はSTATUSパケットで、ステータスタグ、ステータスの数、およびステータスから構成される。
図18の(h)はDATAパケットで、データタグ、次に続く画像データ数、および画像データから構成される。
図18の(i)はESCパケットで、第1バイトがESCで始まるシーケンスで、インタープリタ214で、ビットマップ、あるいはバイトマップの画像へ展開される。これは、通常のプリンタのESCシーケンスと同等なものである。
スキャンプリンタサーバー102から、スキャナ103、プリンタ104との間のコマンドの構成を以下説明する。
プリスキャン命令、スキャン命令、ステータス情報、ガンマ設定命令、マスキング設定命令などのコマンドの構成も図18と同様の形式で通信が行なわれる。
図19はスキャナプリンタサーバーとスキャナプリンタ間の命令の構成を示す。(a)はプリスキャン命令、(b)はスキャン命令、(c)はプリント命令である。
各パケットの第1バイトは、そのパケットが何であるかを表すタグである。例えば、PRESCANは1で、プリスキャンすることを示す。SCANは2で、スキャンすることを示す。
XSIZEは、2バイトからなる画像のX方向の大きさを示し、YSIZEは、2バイトからなる画像のY方向の大きさを示す。
XSTARTは、2バイトからなる画像のX方向のスキャン、プリント開始位置を示し、YSTARTは、2バイトからなる画像のY方向のスキャン、プリント開始位置を示す。
XZOOMは、1バイトからなる画像のX方向のスキャン、プリント解像度を示し、YZOOMは1バイトからなる画像のY方向のスキャン、プリント解像度を示す。
FORMATは、画像の走査方法を示し、点順次は1、線順次は2、面順次は3のように指定する。
EDGEは、エッジ強調、スムージングの程度を示し、16〜1はエッジ強調、−1〜−16ならスムージングのように指定する。
COLORTYPEは、画像の色空間を示し、RGBなら1、YCrCbなら2のように指定する。RGBの場合には、第1色をR、第2色をG、第3色をBと呼ぶことにする。また、YCrCbの場合には、第1色をY、第2色をCr、第3色をCbと呼ぶことにする。
COLORは、画像の色のうち、どの色を送るかを示す。例えば、第1色だけなら第2ビット、第2色だけなら第1ビット、第3色だけなら第0ビットを1にする。例えば、COLORTYPEがRGBで、RGB全色送る場合には7になる。また、R、Bの2色を送る場合には5(第1色=4、第3色=1)になる。同様に、COLORTYPEがYCrCbで、Yだけ送る場合には4になる。
LEVELは、2バイトからなり、最初の4bitは、第1色の階調数を示し、次の4bitは第2色の階調数を示し、次の4bitは、第3色の階調数を示す。最後の4bitは、undefinedである。
これらの階調数は8ならば256階調、6ならば64階調のように2の指数で指定する。CODEは、符号化方法を示し、符号化しない場合は0、ADCTによる符号化の場合は1のように指定する。
UCRは黒生成時のαを示す。
BI−LEVELは二値化方法を示し、0はプリントエンジン606が多値プリンタの場合で、二値化を行なわないことを示す。1はディザ法のファットニングパターン、2はディザ法のベイヤパターン、3は単純二値化法、4は誤差拡散法を示す。
THRESHOLDは単純二値化法の二値化しきい値(0〜255)を示す。
PAGEはプリント時のページ数を示す。
図19の(d)はステータス情報の1種で、OKを示す。OKは1バイトのOKタグだけである。
図19の(e)はガンマ設定命令で、第2バイトのS/Pは、スキャナ103、プリンタ104のいずれのガンマテーブルに設定するかを示す。それ以降は、ガンマテーブルは256*3色分の768バイトから構成される。
図19の(f)はマスキング設定命令で、マスキングタグ、および2バイトの固定小数点からなるマスキングパラメータで構成される。
図19の(g)はステータス情報で、ステータスタグ、ステータスの数、およびステータスから構成される。
図19の(h)はコピー命令で、1バイトのコピータグだけである。
次に、スキャナ103およびプリンタ104を用いたコピー動作を説明する。
コピーの場合には、ユーザがスキャナ103オペレーションパネル306のコピーボタンを押すと、スキャナ制御回路は、スキャナシリアルインターフェース301からスキャナプリンタサーバー102にコピー命令を送る。
スキャナプリンタサーバー102は、コピー命令を受けとると、スキャン命令をスキャナ103に、プリント命令をプリンタ104に送る。この時、コピーに適したマスキングなどのパラメータをセットする。
また、スキャナプリンタサーバー102は、コピー命令を受けとると、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、COLOR(クロック信号)111、DATA(画像データ信号)108信号をハイインピーダンスする。
スキャナ103は、スキャン命令を受けとると、スキャン103のスキャナ制御回路は、オペレーションパネル306のプリント開始位置、スキャナ103のスキャナ制御回路は、オペレーションパネルの306のプリント開始位置、プリント画像サイズなどの設定に基づいて画像を読みとり、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111と、これに同期した画像データを出力する。
プリンタタイミング制御回路404では、スキャナ103からのHSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111に同期して画像データを受けとり、プリントすることによりコピーが行なわれる。
コピー時には、スキャナプリンタサーバー102のタイミング制御回路は208は、HSYNC(水平同期信号)110、VSYNC(垂直同期信号)109、CLOCK(クロック信号)111、DATA(画像データ信号)108の各信号線をハイインピーダンスにする。
コピーが行なわれている場合には、リモートでの画像のスキャン、プリントができないため、サーバープロセス107は、クライアントプロセス106からの、スキャンパケット、プリントパケットを受けとったら、コピー中であることを示すSTATUSパケットをクライアントプロセス106に送り、スキャン、あるいはプリントができないことをユーザに知らせる。
また、リモートでの画像スキャン、プリントが行なわれている場合には、コピーを行なうことができない。そこで、スキャナCPU302は、スキャナ、プリンタが動作中には、オペレーショパネル306に、動作中であることを示す表示を行ない、コピーを受け付けないようにする。
本発明実施例では、ネットワークにバス型のイーサネット(登録商標)105を用いた場合について説明したが、ネットワークはどのようなネットワークでも簡単で適用できる。
また、本発明実施例では、スキャナプリンタサーバー102とスキャナ103、プリンタ104間のコマンド、パラメータ、エラーなどのデータを通信するのにシリアル通信を用いる場合について説明したが、シリアル通信にとらわれることなく、任意の双方向通信インターフェースを用いることができる。
また、本発明実施例では、スキャナプリンタサーバー102とスキャナ103、プリンタ104間のコマンド、パラメータ、エラーなどのデータを通信するシリアル通信を用い、画像データを通信するのにビデオインターフェースを用いているが、これらの通信インターフェースにとらわれることなく、SCSI、GPIBなどの双方向の通信が可能なインターフェースを用いて、コマンド、パラメータ、エラーなど情報と画像データを同一の通信路で通信することも可能である。
また、本発明実施例では、画像が点順次のYCrCb形式の場合にはADCT符号化法で符号化して画像を送っているが、ADCT符号化法にとらわれるものではなく、任意の符号化法を用いることができる。これにより、点順次のYCrCb形式以外の画像に対しても符号化を行ない、画像を圧縮して伝送することができる。
また、本発明実施例では、1ライン分のデュアルポートラムを用いているが、これにとらわれるものでなく、複数ライン、あるいは1画面分のメモリを持たせ、より高速化をはかることができる。
また、本発明実施例では、プリスキャン時には画像を間引いて送り、本スキャン時には画像を間引かずに送っているが、カラー画像をプリスキャンする場合は、(1)単色成分のみを送る。(2)間引いて送る。(3)符号化して送る。(4)画像の階調数を落して送る(5)画像の解像度を落して送るを組合せて送ることも可能である。
また、本発明実施例では、プリスキャン時に画像を読みとり、その画像データをハードディスク212に格納すると同時に、間引いて転送していた。そして、本スキャン時にはそのハードディスク212の画像から読み出して転送していた。しかし、プリスキャン時には画像を、ハードディスクに格納せず、直接(1)単色成分のみを送る。(2)間引いて送る。(3)符号化して送る。(4)画像の階調数を落して送る(5)画像の解像度を落して送るを組合せて送る。
そして、本スキャン時には、再び画像をスキャンして転送することも可能である。
また本発明実施例では、画像を読み込み、面順次に走査変換して転送する場合には、スキャンエンジン505で3回スキャンを行なっていた。しかし、1度だけ画像を読みとり、その画像データをハードディスク212に格納し、そのハードディスク212の画像から3回読み出すことも可能である。これにより、機械的なスキャンが1回ですみ、高速化をはかることができる。
また、ハードディスク212に格納すると同時に、第1色の走査変換を行ない、残りの2回はハードディクから読み出すことも可能である。
また、本発明実施例では、二値プリントエンジンのために二値化部605で画像の二値化を行なっていた。しかし、二値プリントエンジンにとらわれるものではなく、N値プリントエンジンの場合にはN値化部を設けることにより、容易に対応できる。
また、スキャナプリンタサーバーにスキャンした画像を記憶する記憶手段を設け、プリスキャン時にいったんこの記憶手段に画像を記憶させ、本スキャン時にはこの記憶させた画像空読み出すことにより、従来2度のスキャンが必要であったのを1度で済ませることができ、高速な画像読みとりを可能とすることができた。
また、複数枚プリントする場合には、最初の1枚をプリントする際に該記憶手段に画像を格納し、2枚めからは該記憶手段から読みだしプリントすることにより、1度だけ画像を転送すれば良く、高速なプリントを可能とすることができた。
また、プリスキャン時にカラー画像を(1)単色成分のみを送る。(2)間引いて送る。(3)符号化して送る。(4)画像の階調数を落して送る(5)画像の解像度を落して送るを組合せて送ることにより、画像を圧縮して送ることができ、通信量を削減できるという大きな利点も得られる。
また、双方向の通信路を設けることにより、スキャナプリンタをネットワークから使用している際に、コピーを受け付けない、また、コピー時にはスキャナプリンタをネットワークから使用できないようにすることができるようになった。