(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数のホストコンピュータと通信可能であって、スキャン機能とプリント機能を制御する制御装置であって、
アプリケーションから入力されたデータを印刷データに変換するホストコンピュータからネットワークを介して入力される印刷ジョブであるかまたはスキャナアプリケーションからのスキャン要求を出力するホストコンピュータからネットワークを介して入力されるスキャンジョブであるかを判定する判定手段と、
印刷ジョブとスキャンジョブとを同時に管理しておくことが可能なジョブ管理手段と、
印刷ジョブであると前記判定手段により判定された場合、前記複数のホストコンピュータの一つから入力した印刷データからイメージデータを生成し、前記プリント機能を制御して当該イメージデータに基づくプリントをさせる生成手段と、
スキャンジョブであると前記判定手段により判定された場合、前記複数のホストコンピュータの一つから入力した命令に従って、前記スキャン機能を制御してイメージデータを入力し、当該イメージデータを前記複数のホストコンピュータの内の指定されたホストコンピュータへ送信する送信手段と、
を有することを特徴とする制御装置。
【請求項２】
ネットワークを介して複数のホストコンピュータと通信可能であって、スキャン機能とプリント機能を制御する制御装置における制御方法であって、
アプリケーションから入力されたデータを印刷データに変換するホストコンピュータからネットワークを介して入力される印刷ジョブであるかまたはスキャナアプリケーションからのスキャン要求を出力するホストコンピュータからネットワークを介して入力されるスキャンジョブであるかを判定する判定ステップと、
印刷ジョブであると前記判定ステップにより判定された場合、前記複数のホストコンピュータの一つから入力した印刷データからイメージデータを生成し、前記プリント機能を制御して当該イメージデータに基づくプリントをさせる生成ステップと、
スキャンジョブであると前記判定ステップにより判定された場合、前記複数のホストコンピュータの一つから入力した命令に従って、前記スキャン機能を制御してイメージデータを入力し、当該イメージデータを前記複数のホストコンピュータの内の指定されたホストコンピュータへ送信する送信ステップとを有し、
印刷ジョブとスキャンジョブとを前記制御装置内で同時に管理しておけるようにすることを特徴とする制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して複数のホストコンピュータと通信可能であって、スキャン機能とプリント機能を制御する制御装置および制御方法に関するものである。
【０００２】
【従来の技術】
従来、この種の入出力機器、特にプリンタは、セントロニクスと呼ぶパラレルインタフェースか、ＲＳ−２３２Ｃと呼ばれるシリアルインタフェースを介してコンピュータに直接接続されることが多かった。また、スキャナ（原稿読み取り装置）は、標準でないビデオインタフェースか、ＳＣＳＩインタフェースでコンピュータに直接接続されることが多かった。このような、インタフェースでは、快適な利用環境を整えるためには、１台１台のコンピュータにプリンタとスキャナを接続せざるを得ず、資源の効率的利用が図れなかった。すべてのコンピュータにプリンタとスキャナを接続することは、現実的には不可能で、従来は、フロッピ−ディスクを持って他のコンピュータを借に行くか、キャラクタベースのプリンタのプリンタならば、セントロニクスの分岐ボックスを共同利用することが多かった。
【０００３】
近年、ネットワーク技術の進展により、ＬＡＮインタフェースを有するプリンタがいくつか販売される様になってきた。ＬＡＮを介してコンピュータとプリンタを接続することにより、ネットワーク上のどのコンピュータからでも手軽に印刷が可能となっている。
【０００４】
これらのネットワークプリンタは、ＬＡＮのインタフェースに加え、米国のアドビ社が開発したポストスクリプト（ＰｏｓｔＳｃｒｉｐｔ）というページ記述言語を搭載した例が大部分であり、一種の業界標準を形成している。
【０００５】
また、従来の通信プロトコルの構造を複数のレイヤに分けて、各レイヤ毎にパケットの形状を独立に定め、各レイヤ毎にタスク（プロセス）を割り当てて、マルチタスク（マルチプロセス）でプログラムを構築することにより、各レイヤの機能を明確化するとともに、独立設計を容易としている。また、下位のレイヤは上位のレイヤに対するサービスエンティティの提供に専念させることができる等の利点があった。
【０００６】
さらに、単一のスキャナやプリンタは、ホストコンピュータと直接接続された形態で使用されてきた。また、一体型のスキャナプリンタは、一般的には単体で複写機として使用されているので、このようなスキャナやプリンタをネットワークに接続し、スキャナプリンタサーバーとして機能させる形態では使用されていなかった。
【０００７】
一方、ネットワーク上でプリンタサーバーに接続し、プリンタを共有する構成があった。通常、このようなプリンタサーバーでは、ホストコンピュータからプリンタの仕様に合せてデータをプリンタに送っていた。
【０００８】
また、ネットワーク上で、該ネットワークに接続されたリモートホストよりスキャンを行うネットワークスキャナという使用法はなく、スキャナ依頼を行うホストコンピュータに画像を取り込む場合には、そのホストコンピュータ自身に接続されたスキャナより読込むか、あるいはネットワーク上にある他のホストコンピュータに接続されたスキャナより読み込み、その画像をネットワークを経由して依頼を行ったホストに転送する方法がある。また、スキャナで入力した画像を他の文字，図形情報とともに印刷する場合、通常は印刷依頼を行うホストコンピュータ上でスキャナ画像，文字，図形情報を合成し、ネットワークに接続されたプリンタで出力を行っていた。
【０００９】
また、従来この種のサーバー装置の形式は大きく分けて下記のような種類があった。
【００１０】
▲１▼ホストコンピュータから専用インタフェースを通じプリンタに接続され、ホストコンピュータ内でビットイメージに展開しプリンタに伝送する。ネットワーク対応は、ホストコンピュータが面倒を見る。主にワークステーション程度の高機能ホストコンピュータをベースにした形式。
【００１１】
▲２▼ホストコンピュータからはページ記述言語が伝送され、プリンタ側で持つインタープリタ機能によりビットイメージに変換する方式。ネットワークプリンタと称されるもの。
【００１２】
▲３▼ホストコンピュータから伝送されるページ記述言語を専用のビットイメージに変換する部分を通じ、プリンタに専用インタフェースを通じ画像データを伝送するもの。
【００１３】
さらに、従来のネットワーク上に存在するサーバー装置のダウンロード方法は、下記（ａ），（ｂ）による場合が多い。
【００１４】
（ａ）サーバー装置を立ち上げる時に、必要なプログラムをダウンロードホストからダウンロードを行う。
【００１５】
（ｂ）プリンタ等のプリント処理を依頼するホストコンピュータがフォント，フィルタ等のダウンロードを行う。
【００１６】
また、従来のネットワーク環境のパラメータ管理方式としては、ネットワーク上のホスト，ユーザの管理に行うものに、ＵＮＩＸ環境で広く使用されるＮＩＳ（Network Infomation System ）がある。このＮＩＳにおいては、ネットワーク上のあるドメイン内にマスタサーバー装置，スレーブサーバー装置，クライアントを設定し、ドメイン内のホスト，ユーザ管理等のパラメータは、通常マスタサーバーで管理されている。また、マスタサーバーの変更情報は、スレーブサーバーに自動的に転送される。このため、マスタサーバー装置，スレーブサーバー装置を意識せずにパラメータ情報の参照を行うことができる。
【００１７】
【発明が解決しようとする課題】
しかしながら、上記ページ記述言語を使用してシステムを構築して、ネットワークに共有使用可能なプリンタを接続する場合、すなわちネットワークプリンタインタフェースを標準化して、どのメーカーのプリンタとも、自由に接続できるようにする場合、２つの原則がある。
【００１８】
▲１▼アプリケーションソフトは、各プリンタの言語や制御方法に依存してはならない。
【００１９】
▲２▼プリンタは、各アプリケーションの出力するコードの違いを気にしてはならない。
【００２０】
このように、アプリケーションソフトとプリンタとの間に、両者の使用の違いを吸収する仕組、いわゆるプリンタドライバ（プログラム）が存在しなければならい。
【００２１】
しかるに、上記ポストスクリプトを使用する場合、アプリケーションがポストスクリプトコードを出力し、プリンタがポストスクリプトコードを理解するから正常に印刷できるわけであるが、逆に言えば、アプリケーションソフトは、プリンタの言語であるポストスクリプトに依存しており、プリンタは、アプリケーションの出力するポストスクリプトコードに依存していると言える。
【００２２】
また、ポストスクリプトはプリンタ用であって、スキャナには使用できない。このように、上記ポストスクリプトの使用の制約から、スキャナとプリンタとを備えるスキャナプリンタ（複写装置）をネットワークの共有資源として、各ホストコンピュータからのスキャナ要求，プリンタ要求を処理する場合、アプリケーションに制約が生じ、スキャナプリンタのスペックを最大限に発揮させることができなくなる等の問題点があった。
【００２３】
さらに、上記のように通信ネットワーク上のプロトコルをレイヤ構造とすると、本来のネットワーク間通信では使用しない、タスク（プロセス）間通信が増大するためにＣＰＵの処理負担が増大しデータ処理効率が低下する。また、各タスク毎に設定するバッファメモリが増大して、メモリ資源を浪費する等の問題点があった。
【００２４】
また、最近では、ネットワーク化が進んでおり、インテリジェントビル等の全体にＬＡＮ（ローカル・エリア・ネットワーク）を張り巡らせた大規模なネットワーク化が進んでいる。さらには、ＷＡＮ（ワイドエリアネットワーク）のような、公衆回線でＬＡＮを直結した全国規模のネットワーク、さらにはＩＳＤＮ等の高度情報網が整備されつつある。
【００２５】
このため、ビルの別のフロアーや、別のビル、あるいは東京から大阪のホストコンピュータを利用すること等が可能となりつつある。従って、プリンタサーバーでは、従来までの比較的狭い範囲の利用に留まらず、非常に広域な利用が可能となった。
【００２６】
また、スキャナやプリンタも高機能化，高解像度化，カラー化が進んでいる。このため、様々な形式でのスキャナからの読み取り、プリンタへの出力が可能となってきている。従来のホストコンピュータに直結したスキャナやプリンタは、ホストコンピュータがそれぞれの設定や画像データの入出力を行っていた。インタフェース（Ｉ／Ｆ），画像データ形式，通信速度等は、１対１の関係であり、システムで独自で構築しても何ら問題はなかった。
【００２７】
一方、ネットワーク上にＳＰサーバーシステムを介して接続されたスキャナ，プリンタは、複数のホストコンピュータで利用できるため、資源の共有化が図れる上、異機種であるホストコンピュータに共通の利用環境を提供できるといった利点があり、効率的である。
【００２８】
しかしながら、ネットワークで共有化する故、下記のような新たな問題も発生する。
【００２９】
第１に、利用時間もまちまちであったり、同時に利用することもあり、それに伴って、例えば利用者ＡがＳＰサーバーシステムを介してプリンタを利用している最中に、利用者Ｂがプリンタ利用の要求を出した場合、ＳＰサーバーが同様に振る舞うかが問題となる。
【００３０】
第２に、利用者Ａが同様に、プリンタを利用している最中に、何らかのエラーが発生した場合、利用者Ａにどのように、通知するか、また、その際、利用者Ｂが利用しようとしても、利用できないことを、どのように通知するかが問題となる。
【００３１】
第３に、ＳＰサーバーシステムに異常が発生した場合、あるいはホストコンピュータ側に異常が発生した場合、お互いの通信が不能となり、どちらかがコマンド待ちの状態となり、システムがデットロック状態になってしまう。そこで、ＳＰサーバーシステム側もホストコンピュータ側もそのような状態で不良となることを避けるため、タイマ監視機能を備える場合がある。この場合、お互いのコマンドに対するレスポンスをある一定時間待ち、その時間を越えるような場合、再送要求を何回か発行して、それでも応答がない場合は自動的に通信を打ち切って初期状態に戻す動作を行う。
【００３２】
しかしながら、このような通信制御によれば、以下のような新たな問題が発生する。
【００３３】
ネットワークが大規模化して、１つのネットワークにゲートウエイあるいはルーターを設けて、他のネットワークと結ばれている場合であって、スキャナやプリンタの接続されたＳＰサーバーシステムとホストコンピュータが異なるネットワークにある場合の利用の時、どちらか一方のネットワークが遅いと、お互いコマンドに対するレスポンスが正常な場合であっても、タイマ監視機能で設定した時間を越えてしまうことが発生する。このような状況では、ゲートウエイあるいはルーターの遅延の大なる場合や、一方のネットワークが異常に混雑している場合にも発生する。
【００３４】
このような状況が発生した場合、ネットワークの通信遅延が大きいだけで、正常な通信を行っている場合であっても、ＳＰサーバーシステムやホストコンピュータのタイマ監視機能が作動し、自動的に再送要求を発行してしまい、ひいては自動的に初期状態に戻ってしまう。これにより、正常な通信であっても、利用者がスキャナやプリンタの資源を利用できないといった問題点があった。
【００３５】
さらに、従来のサーバー装置におけるデータダウンロード方式，パラメータ管理方式では、プログラム，フィルタ，フォント，パラメータ等のダウンロードおよびその管理は、ネットワーク上のドメインの中で、ある特定のサーバー装置から見た場合、上述のように共通の手段（上述ではマスタとスレーブが個別に処理を行う）によっては行われていないため、例えばスキャナプリンタをネットワークに接続して、各クライアントがスキャナ要求，プリンタ要求を処理するサーバー装置のダウンロード，パラメータ管理が問題となる。すなわち、ネットワーク上にスキャナ／プリンタ（Ｓ／Ｐ）サーバー装置を設置した場合、従来のデータダウンロード方式，パラメータ管理方式では、Ｓ／Ｐサーバー装置がプログラム，フィルタ，フォント，パラメータを一元管理できず、予期しないシステムダウンに即応できなくなる場合がある。
【００３６】
また、複数のダウンロードホスト中に、マスタホスト，スレーブホストを設定した場合、スレーブホスト同士での通信は行われておらず、マスタホストが何らかの原因でダウンした場合、パラメータ等の変更ができなくなり、システムサービスが行えなくなる等の幾多の問題点があった。
【００３７】
本発明は、上記の問題点を解消するためになされたもので、本発明の目的は、各ホストコンピュータからのスキャナ要求、プリント要求を処理するに当たって、スキャン機能及びプリント機能を有効活用することができる印刷ジョブとスキャンジョブとを同時に管理しておくことができる仕組みを提供することを目的とする。
【００３８】
本発明に係る制御装置は、以下の特徴的構成を備える。
ネットワークを介して複数のホストコンピュータと通信可能であって、スキャン機能とプリント機能を制御する制御装置であって、アプリケーションから入力されたデータを印刷データに変換するホストコンピュータからネットワークを介して入力される印刷ジョブであるかまたはスキャナアプリケーションからのスキャン要求を出力するホストコンピュータからネットワークを介して入力されるスキャンジョブであるかを判定する判定手段と、印刷ジョブとスキャンジョブとを同時に管理しておくことが可能なジョブ管理手段と、印刷ジョブであると前記判定手段により判定された場合、前記複数のホストコンピュータの一つから入力した印刷データからイメージデータを生成し、前記プリント機能を制御して当該イメージデータに基づくプリントをさせる生成手段と、スキャンジョブであると前記判定手段により判定された場合、前記複数のホストコンピュータの一つから入力した命令に従って、前記スキャン機能を制御してイメージデータを入力し、当該イメージデータを前記複数のホストコンピュータの内の指定されたホストコンピュータへ送信する送信手段とを有することを特徴とする。
【００４８】
【実施例】
図１は本発明の第１実施例を示すサーバー装置の概要を説明するシステムブロック図である。なお、詳細なシステムブロック図は後述する。
【００４９】
図において、スキャナ／プリンタ（ＳＰ）サーバーは後述する。本システムは、大別してメインＣＰＵ回路１，イーサネット回路２，ＪＰＥＧ圧縮回路３，スキャナ／プリンタインタフェース回路４より構成されている。なお、スキャナ／プリンタ（ＳＰ）サーバーに複数のスキャナ／プリンタを接続する場合には、その台数分のスキャナ／プリンタインタフェース回路を実装する。その台数の増減を容易にする為にスキャナ／プリンタインタフェース回路は独立したボード上に構成されており、本体とは後述するＶＭＥバス１６で接続する。残りのメインＣＰＵ回路１、イーサネット回路２、ＪＰＥＧ圧縮回路３は１枚のボード上に構成されており、互いにローカルなバス１４で結合されている。
【００５０】
４−１は第１のスキャナ／プリンタインタフェース回路（第１のＳＰインタフェース回路）で、例えば商品名ＣＬＣ−５００等のディジタルカラー複写装置１００（レーザビームカラー複写装置）とＶＭＥバス１６とのＩ／Ｏをインタフェースする。
【００５１】
４−２は第２のプリンタ／スキャナインタフェース（第２のＳＰインタフェース回路）で、例えば商品名ピクセルジェット等のディジタルカラー複写装置２００（バブルジェットカラー複写装置）とＶＭＥバス１６とのＩ／Ｏをインタフェースする。
【００５２】
メインＣＰＵ回路１は例えばＲ３０００（商品名）等のＣＰＵ５とメモリ６等から成り、ここでＯＳである、例えば VxWorks（商品名）の管理下ですべてのプログラムが実行される。メモリ６の補助記憶装置として、ハードディスク７がある。８はＳＣＳＩインタフェースである。イーサネット回路２はイーサネットトランシーバー９とデータをメモリ６にＤＭＡ転送する為のＤＭＡコントローラ１０等とから成る。イーサネットトランシーバー９はイーサネット（商品名）ローカルエリアネットワーク（ＬＡＮ）１１に接続する。ＪＰＥＧ圧縮回路３はＪＰＥＧ圧縮／伸長コントローラ１２とＦＩＦＯメモリ１３等とから成る。メインＣＰＵ回路１，イーサネット回路２，ＪＰＥＧ圧縮回路３を互いに結合しているローカルバス１４はＶＭＥバストランシーバー１５−１を介してＶＭＥバス１６に接続されている。
【００５３】
第１のＳＰインタフェース回路４−１はページメモリ１７と第１の制御回路１８等からなる。１ページ分のメモリが必要な理由は、ディジタルカラー複写装置１００が印刷／スキャンを開始すると途中でフロー制御する事ができないからである。ページメモリ１７は、メモリの価格が高いので圧縮メモリを構成している。すなわち、このメモリ１７に書き込まれるデータは、メモリ６でラスタライズされた画像のみである事に着目し、メモリ１７は非可逆圧縮ではあるが、高圧縮率が得られるＡＤＣＴ圧縮方式を採用している。そのＡＤＣＴ圧縮チップはこの図では示していないが、前述のＪＰＥＧ圧縮／伸長コントローラ１２と同じチップを用いている。
【００５４】
ただし、このページメモリ１７にＡＤＣＴ圧縮方式用いる場合、圧縮データはここだけの閉じた回路で使用されるだけで、外部には出て行かないから、標準に則る必要はなく、実際、ＪＰＥＧを改良した効率的な方法を用いている。第１の制御回路１８は例えばＺ−８０（商品名）等のＣＰＵ等で構成し、複写装置１００との画像以外の制御信号のやり取りをしている。ここのインタフェースの本数を減らすため、制御コマンドをシリアルで送っている。第１のＳＰインタフェース回路４−１はＶＭＥバストランシーバー１５−２を介してＶＭＥバス１６と接続している。
【００５５】
第２のＳＰインタフェース回路４−２はデータ縦横変換回路１９、バッファメモリ２０、画像処理回路２１及び第２の制御回路２２等とから成り。ＶＭＥバストランシーバー１５−３を介してＶＭＥバス１６と接続している。データ縦横変換回路１９は、プリント時は走査方向の画像のデータ形式を走査方向に対して９０°に変換し、スキャン時は走査方向に対して９０°のデータ形式を走査方向に変換する。バッファメモリ２０はそのための変換用バッファとして用いる。
【００５６】
画像処理回路２１は複写装置２００に欠けている画像処理機能を補う為に入れている。第２の制御回路２２は第１の制御回路１８と同じ機能を提供する為のものであり、同じ例えばＺ−８０（商品名）等のＣＰＵ等で構成されている。
【００５７】
以下、動作について説明する。
【００５８】
例えばネットワーク印刷を実行する場合の例を示すと、ＬＡＮ１１からイサーネットトランシーバー９を介して入ってきたページ記述言語（例えば商品名 CaPSL）は、ＤＭＡコントローラ１０によって、直接メモリ６の特定領域（受信バッファ）に蓄えられる。そこで後述するページ記述言語インタープリタープログラムによってラスターイメージに変換される。ＪＰＥＧ圧縮画像は、ページ記述言語（以下、ＰＤＬ）で伸長することもできるが、高速に伸長するためＪＰＥＧ圧縮／伸長回路３が利用される。
【００５９】
なお、メモリ６は価格的な理由から、１ページの画面全体をラスタライズするだけの容量を持たず、ＰＤＬ（例えばCaPSL ）を部分的に処理するバンディングという手法を用いて、何回かに分けて処理される。ラスタライズが完了したら、第１のＳＰインタフェース回路４−１または第２のＳＰインタフェース回路４−２に転送され、各プリンターに出力される。なお、ネットワークスキャンを実行する場合の例は後述する。
【００６０】
図２は、図１に示したサーバー装置を含むネットワークシステムの概略を示すシステムブロック図である。
【００６１】
本実施例におけるネットワークシステムは、例えば Macintosh（商品名）、IBM-PC（商品名）、SUN （商品名）の様な市販されているホストコンピュータのアプリケーションソフトウエアから、ネットワークを介して接続されている少数のスキャナーやプリンターを共同利用する為の物である。同図に於て、大きく４つのブロックがあるが、左から順に MacintoshワークステーションＳＴ１、IBM-PCワークステーションＳＴ２、SUN ワークステーションＳＴ３、及びカラーＳＰサーバーＳＰ１である。 MacintoshワークステーションＳＴ１、IBM-PCワークステーションＳＴ２、SUN ワークステーションＳＴ３は、市販されているホストコンピューターであり、カラーＳＰサーバーＳＰ１は発明者が設計したインタフェースユニットである。それらが、例えばEthernet（商品名）というローカルエリアネットワーク９６によって相互接続されている。９４は第１のカラースキャナ／プリンタ、９５は第２のカラースキャナ／プリンタである。
【００６２】
Macintosh ワークステーションＳＴ１、IBM-PCワークステーションＳＴ２、SUN ワークステーションＳＴ３、及びカラーＳＰサーバーＳＰ１は、相互通信の為に、共通の通信インタフェースを有する。５１，６１，７１，８１はローカルエリアネットワーク（ＬＡＮ）９６と通信する為のイーサネットトランシーバーである。５２，６２，７２，８２はＬＡＮ９６上に構築した通信プログラム TCP/IP （商品名）で、米国国防省の標準である。
【００６３】
このTCP/IPプログラムは End-to-End でのデーター誤りの無い通信サービス（機能）を提供する。５３，６３，７３，８３は第１のカラースキャナ／プリンタ９４，第２のカラースキャナ／プリンタ９５を Macintosh用のステーションＳＴ１，IBM-PC用のステーションＳＴ２，SUN ワークステーションＳＴ３から共同利用するという特別な目的のためのサービス（機能）を提供する通信プログラムである。５３，６３はＳ／Ｐクライアントプログラムとして、クライアント型のサービスを提供する通信プログラムであり、８３はＳ／Ｐサーバープログラムで、サーバー型のサービスを提供する通信プログラムである。
【００６４】
Macintosh のステーションＳＴ１から第１のカラースキャナ／プリンタ９４に印刷させる場合を説明すると、市販アプリケーションプログラム５６で作成した原稿を印刷しようとすると、プリントマネージャ−（Printing Manager) ５５というＯＳ（Operating System）の一部に制御が渡され、印刷のための制御を開始する。この時のデーターフォマットは Macintoshの場合 QuickDraw（商品名）タイプに標準化されている。プリントマネージャー５５は、変換プログラム５４の描画関数群を原稿に書かれた通りにコールする。変換プログラム５４は、そのコールの中で QuickDrawを、例えばCaPSL(Canon Prinnting System Language)コードに逐一変換して図示しないメモリーに CaPSLコードを蓄える。変換プログラム５４は、主としてQuickDraw/CaPSL 変換プログラムとして機能する。
【００６５】
通信プログラム５３は、得られた CaPSLコードをＴＣＰ／ＩＰプログラム５２に従ってイーサネットトランシーバ５１，ＬＡＮ９６，イーサネットトランシーバ８１を介し，さらにＴＣＰ／ＩＰプログラム８２，通信プログラム８３を介してカラーＳＰサーバーＳＰ１に伝送する。なお、上述した変換プログラム５４，６４，７４，通信プログラム５３，６３，７３，スキャナインタフェースプログラム５７，６７，ＴＣＰ／ＩＰプログラム５２，６２，７２等は、例えばフロッピ−ディスク等でホストコンピュータに供給されても良い。また、イーサネットトランシーバー、例えばボード回路としてホストコンピュータに供給されても良い。
【００６６】
カラーＳＰサーバー（Ｓ／Ｐサーバー装置）ＳＰ１全体の動作は、システム全体制御プログラム９３によって制御されている。前記 CaPSLコードの受信も、システム全体制御プログラム９３に知らされる。システム全体制御プログラム９３は、後述するＰＤＬインタープリタープログラム８４に対して、CaPSL コード化された原稿を、ビットマップ画像にラスタライズする様に要求する。ビットマップ画像にラスタライズされた画像データは、デバイスドライバ８６に渡され、例えば第１のプリンタ制御ボード９１を介してビデオインタフェース Video I/Fから第１のカラースキャナ／プリンタ９４に送られ、印刷される。
【００６７】
IBM-PCのステーションＳＴ２から印刷する場合も同様で、上記データの流れと同様であるが、IBM-PCのステーションＳＴ２の場合には、印刷原稿のデータフォマットは GDI（商品名）に標準化されている。変換プログラム６４は、主としてGDI/CaPSL 変換プログラムとして機能する。
【００６８】
ＳＵＮワークステーションＳＴ３から印刷する場合は、上記変換プログラム５４，６４に相当する機能が標準化されていないため、アプリケーションプログラム７５が直接通信プログラム７３を介して通信する。ただし、市販のアプリケーションプログラム、例えば FrameMaker （商品名）から印刷できるようにする為、MIF/CaPSL 変換用の変換プログラム７４を間に入れている。
【００６９】
原稿をスキャン（読み取り）する場合は、例えば MacintoshのステーションＳＴ１の場合、スキャナアプリケーションプログラム５８からスキャナインタフェースプログラム５７を介して通信プログラム５３にスキャンの要求を出す。すると通信プログラム５３は、イーサネットトランシーバ５１，ＬＡＮ９６，イーサネットトランシーバ８１およびＴＣＰ／ＩＰプログラム８２を介し、通信プログラム８３との間に、End-to-End の通信路を確保し、スキャン命令を伝達するその命令はシステム全体制御プログラム９３に伝えられ、スキャナ制御プログラムに対して第１のカラースキャナ／プリンタ９４をスキャンさせるように要求する。
【００７０】
スキャンされた原稿の画像データは逆に、第１制御ボード９１，デバイスドライバ８６，通信プログラム８３，ＴＣＰ／ＩＰプログラム８２，イーサネットトランシーバ８１，ＬＡＮ９６，イーサネットトランシーバ５１，ＴＣＰ／ＩＰプログラム５２，通信プログラム５３，デバイスドライバー５７，スキャナアプリケーションプログラム５８の順に伝達される。
【００７１】
IBM-PCのステーションＳＴ２で原稿をスキャンする場合も同様であるが、ＳＵＮワークステーションＳＴ３からスキャンする場合は、デバイスドライバー５７，スキャナインタフェースプログラム６７に相当する機能が標準化されていないため、スキャナアプリケーションプログラム７６が直接通信プログラム７３を介して通信する。なお、スキャナインタフェースプログラム５７，６７はスキャナアプリケーションと通信プログラムとのデータの制御を行う。
【００７２】
カラーＳＰサーバーＳＰ１には、もう１台のスキャナ／プリンタである第２のカラースキャナ／プリンタ９５が接続されており、第２の制御ボード９２を介して第２のカラースキャナ／プリンタ９５を同様に制御する。
【００７３】
システム全体制御プログラム９３を始めとするカラーＳＰサーバーＳＰ１の全てのプログラムは、例えばVxWorks （商品名）と言うシステムプログラム（ＯＳ）の管理下で動作する。
【００７４】
このサービスの為の特別なプログラム（例えば通信プログラム７３，変換プログラム７４等）を持たない一般のＵＮＩＸワークステーションからの要求を受け付ける為、カラーＳＰサーバーＳＰ１には通信プログラム８３と並行して、準業界標準の lpr/lpd通信プログラム９０も載せている。
【００７５】
図３は本発明に係るサーバー装置と各ホストコンピュータとのネットワーク構築状態を示す図である。
【００７６】
この図に示すように、各ホストコンピュータＨＯＳＴ１〜Ｎは、 Macintosh（商品名）、IBM-PC（商品名）、SUN （商品名）等のホストコンピュータで、それぞれのＯＳによりデータ処理が制御されている。これらのホストコンピュータＨＯＳＴ１〜Ｎには、ＬＡＮ９６との通信を行うためのイーサネットインタフェースボード９７，画像圧縮伸長ボード９８，ＣＰＵボード９９がそれぞれ設けられている。なお、画像圧縮伸長ボード９８は、メモリ上でのソフトウエア処理により実現するものであっても良い。また、画像データを入出力する際に、圧縮伸長を用いない場合には、画像圧縮伸長ボード９８が不要となる。さらに、本実施例ではＬＡＮ９６としてイーサネットを使用しているが、ネットワークの方法は、Ａｐｐｌｅ  ｔａｌｋ（商品名），Ｔａｋｅｎ  Ｒｉｎｇ（商品名）等を利用するネットワークであってもいいし、通信プログラムもＴＣＰ／ＩＰプログラムに代えてＯＳＩ，ＩＰＸ（商品名）等で構成されるシステムでも本発明を適用できることは言うまでもない。
【００７７】
図４は、図１に示したメインＣＰＵ回路１，イーサネット回路２，ＪＰＥＧ圧縮回路３より構成されるボード回路の詳細構成を説明する回路ブロック図である。
【００７８】
図において、１０１は例えばＩＤＴ７９Ｒ３０５１（商品名）等で構成されるＣＰＵで、ボード回路全体を制御する。なお、ボード回路にはリアルタイムＯＳが搭載されている。このＯＳ上で起動されている図２に示した通信プログラム８３，システム全体制御プログラム９３，スキャナ制御プログラム８５，ＰＤＬインタープリタープログラム８４等をＣＰＵ１０１が起動し、マルチプロセスに動作を制御する。
【００７９】
１０２は主記憶メモリで、ＣＰＵ１０１のワークメモリとして機能する。なお、本システムが電源投入されると、ＥＰＲＯＭ１０７内に記憶されている上記各プログラムやＳＣＳＩポート１１２に接続されたハードディスク等の補助記憶装置またはネットワーク上のホストコンピュータに記憶されているプログラムを本メモリ上にダウンロードして配置される。このため、各プロセスのプログラム自体は主記憶メモリ１０２上にあり、ここで動作する。
【００８０】
１０３はバンドメモリで、画像データをラスタ方法に数ライン分蓄積できるバンドメモリである。当該バンドメモリ１０３は、ＰＤＬデータをビットマップデータに展開するためのメモリである。ＰＤＬは通常１ページ分のビットマップデータを作成してから、プリンタエンジン側にデータを送るが、本システムでは、１ページを数バンドに分割してビットマップ展開を行う手法をとる。これは、ＰＤＬインタープリタープログラム８４がＰＤＬデータの並べ替え作業を行うことにより実現する。当該バンドメモリ１０３に展開されたビットマップデータは、プリンタ側に送られる。その後、次のバンド分の展開が行われて、再びプリンタ側に送られる。この繰り返しにより、１ページ分のプリントが行われる。
【００８１】
また、スキャナ側から画像データを読み込む時にも、一時的に本バンドメモリに蓄積される。ＣＰＵ１０１あるいは本システムでは記載していないダイレクトメモリアクセス（ＤＭＡ）のブロック転送機能を用いて、当該バンドメモリ１０３より画像データを読み出し、ＳＣＳＩポート１１２に接続されたハードディスクあるいはイーサネットポート１１４に接続されたネットワークを介して、ホストコンピュータ側に転送される。１バンド分のデータが転送されると、再び次のバンド幅分のスキャンデータを入力して繰り返す。
【００８２】
１０４はメモリアクセスコントローラで、主記憶メモリ１０２，バンドメモリ１０３を構築するＤＲＡＭのアクセスとリフレッシュをコントロールする。通常ＤＲＡＭは１ワード（８，１６，３２ビット等）毎アクセスする方法、ある一定長の連続アクセスする方法（ページＲＥＡＤ，Ｗｒｉｔｅ）、ＤＲＡＭのバンクを分けて交互にアクセスを繰り返し、アドレス発生は先行して発生させるインタリーブ方法のアクセス方法があるが、これらの方法を提供しメモリのアクセスの高速化を図っている。ただし、主記憶メモリ１０２，バンドメモリ１０３がＳＲＡＭで構成された場合には、リフレッシュ機能は必要はない。１０５はメモリクリアコントローラで、バンドメモリ１０３のデータを高速にクリアする。
【００８３】
図５は、図４に示したメモリクリアコントローラ１０５の詳細構成を説明するブロック図である。
【００８４】
図において、２０１はアドレス発生部で、クリアスタート信号に応じてアドレスバッファ部２０３にクリアすべきアドレスを出力する。２０２はデータラッチで、クリアデータをデータバッファ部２０４に出力する。
【００８５】
このように構成されたボード回路（メインＣＰＵ回路１，イーサネット回路２，ＪＰＥＧ圧縮回路３より構成される）において、先ず、ＣＰＵ１０１がバンドメモリ１０３内のデータを他の記憶装置あるいはインタフェースに転送されたことを確認すると、アドレスバッファ２０３，データバッファ２０４をイネーブルにする。それに対して、バンドメモリ１０３への他のアクセス手段をディセーブルにする。データラッチ２０２には、システムの立ち上げ時のイニシャライズであるデータ、例えば「００」を設定しておく。ＣＰＵ１０１は、アドレス発生部２０１に対して、クリアスタート信号を送る。これに応じて、アドレス発生部２０１はアドレスを順次発生して、データラッチ部２０２に保持されたデータをメモリアクセスコントローラ１０４を通して、バンドメモリ１０３に書込む。全メモリ分の書込みが終了したら、アドレス発生部２０１は、ＣＰＵ１０１にクリアエンド信号を送り、クリア動作を終了する。
【００８６】
クリア動作は、バンドメモリ１０３上の画像データがプリンタデバイスに転送されると、行われた次のバンドの画像データがＰＤＬインタープリタープログラム８４により展開される。その時、ＰＤＬインタープリタープログラム８４は、必要な部分にしかビットマップ展開を行わない。例えば図６の（１）に示すバンドの後半の画像、（２）に示すバンドの展開は、（２）に属する画像のみが書込まれる。このため、図６の（１）で既に転送し終った画像データは、不要データとして残ってしまう。もし、メモリクリアをしなければ、（１）および（２）に示した画像が混在する画像データがバンドメモリ１０３上に書込まれた状態となってしまう。そこで、上記メモリクリアが必要となる。１０５はメモリクリアコントローラは、上記メモリクリア処理をハード化し、高速処理を可能としている。
【００８７】
画像描画処理回路１０６は、ＰＤＬインタープリタープログラム８４の描画機能をハードウエアで補助するために構成された回路である。ＰＤＬインタープリタープログラム８４は線を描いたり、図形の塗りつぶしが非常に多く、相当の時間を必要とする。例えば図７に示すような図形（１）〜（３）に囲まれた部分の塗りつぶしは、図中矢印で示すように塗りつぶし処理が実行される。
【００８８】
図８は、図４に示した画像描画処理回路１０６の詳細構成を説明するブロック図である。
【００８９】
図において、１０６Ａはアドレス発生部で、描画スタート信号に応じてアドレスバッファ部１０６Ｃにクリアすべきアドレスを出力する。１０６Ｂはデータラッチで、描画データをデータバッファ部１０６Ｄに出力する。
【００９０】
このように構成されたボード回路において、先ず、ＣＰＵ１０１がＰＤＬインタープログラム８４による処理結果から、現在のバンド幅内に、線の描画や図形の塗りつぶしがある場合、画像描画処理回路１０６へ指令する。先ず、データラッチ１０６Ｂに描画データをラッチさせる。次に、アドレス発生部１０６Ａに開始アドレスとカウント数（１ライン分の描画量）を設定する。ただし、カウント数は終了アドレスを設定する構成であっても良い。そして、アドレスバッファ１０６Ｃ，データバッファ１０６Ｄをイネーブルにする。それに対して、バンドメモリ１０３への他のアクセス手段をディセーブルにする。ＣＰＵ１０１は、アドレス発生部１０６Ａに対して、描画スタート信号を送る。これに応じて、アドレス発生部１０６Ａは開始アドレス値より順次アドレスを発生して、データラッチ部１０６Ｂに保持されたデータをメモリコントローラ１０４を通して、バンドメモリ１０３に書き込む。カウント数部（終了アドレス）に達したら、メモリ書き込みを止めて、描画エンド信号を送り、次の開始アドレスとカウント数を設定し、再びメモリへ書き込みを行う。バンド幅分の描画を終了すると、バンド幅分の描画を終了する。
【００９１】
描画動作は、クリア動作と同様にハードウエアによる高速化を図ったものであが、例えば専用のＬＳＩが描画処理をすべて受け持ち、ＣＰＵ１０１による補助を軽減する構成としても良い。
【００９２】
一方、図４において、１０７は電源投入時に、ＣＰＵ１０１が最初にアクセスするＥＰＲＯＭで、本システムをコントロールする上記各種プログラムが記憶されている。なお、ＥＰＲＯＭ１０７には、次の２つの記憶方法が可能である。第１の方法としては、プログラムがそのまま実行可能な形式で記憶する場合、第２の方法としては、プログラム全体を可逆的な圧縮方法により圧縮し、その形態で記憶しておき、電源投入後、伸長しながら、主記憶メモリ１０２に再配置する場合等である。
【００９３】
しかしながら、第１の方法による場合は、ＥＰＲＯＭ１０７は、そのまま実行可能なメモリとなるため、主記憶メモリ１０２に再配置されるより、主記憶メモリ１０２の節約になるが、ＥＰＲＯＭ１０７自身の容量を大きくすることと、アクセスが一般にＥＰＲＯＭは遅いという欠点がある。また、第２の方法による場合は、プログラム全体を圧縮するため、たくさんの量のプログラムをＥＰＲＯＭ１０７に記憶させることができるため、ＥＰＲＯＭ１０７の記憶容量を削減できるとともに、主記憶上に再配置するため、アクセスが高速となる長所を有するが、主記憶メモリ１０２の容量を大きくする必要が生じる等の欠点もある。そこで、本実施例では第２の方法を採用している。
【００９４】
１０８はＥＥＰＲＯＭで、電源が切られても記憶データを失わず、電源投入後の起動時に、データの書き換えが可能なデバイスである。このため、ネットワーク上のアドレスの記憶やスキャナ，プリンタ側の設定パラメータの記憶等に利用される。１０９は時計回路（ＲＴＣ）で、時刻合せが可能であるとともに、電源ＯＦＦ時でも、内部に持つバッテリにより時間がそのまま進行する。これにより、実時間を知ることが可能となり、スキャン時やプリント時の情報として利用される。１１０はタイマで、インターバルタイマである。本システムのプログラムはマルチプログラムで動作しているが、その管理は、リアルタイムＯＳが行っている。タイマ１１０は、数ミリsec 毎のインターバルタイムをＣＰＵ１０１に通知しており、このタイマ１１０と優先順位スケジューラにより、各プログラムにＣＰＵ１０１を割り当てている。
【００９５】
１１１はＳＣＳＩコントローラで、周辺機器インタフェースの標準規格であるＳＣＳＩの制御を行う。１１２はＳＣＳＩポートで、周辺機器を接続するためのパラレル入出力Ｉ／Ｆポートである。１１３はイーサネットコントローラで、本システムをネットワークの１方式であるＬＡＮ９６に接続し、データのやり取りを行うための制御部として機能する。イーサネットコントローラ１１３は、内部に小さなバッファメモリを有し、非同期式のＣＰＵと同期式のネットワークとの時間的整合性を取っている。ネットワークより転送されてくるデータは、このバッファメモリに蓄えられ、逆にネットワークにデータを転送する場合もここから送信される。イーサネットコントローラ１１３は、電気的タイミングの制御とデータの転送，転入の制御を行っている。ＴＣＰ／ＩＰの通信プログラム８２の制御は、イーサネットコントローラ１１３を用いてＣＰＵ１０１が制御している。
【００９６】
イーサネットポート１１４は太い同軸ケーブル１１４ａを媒体として用いる。Ｉ／Ｆの形状は、１５ピンのコネクタである。１１４ｂのＴｗｉｓｔ  Ｐａｉｒタイプポートは、４線式の媒体を持ちいる。Ｉ／Ｆの形状は８ピンのモジュラジャックである。これらのポートを利用して、エーサネットワークに接続される。１１５はＡＤＣＴ圧縮／伸長回路で、ＲＧＢ（ＲＥＤ，ＧＲＥＥＮ，Ｂｌｕｅ）で構成される中間調データ（各色８ビット）を、ＣＣＩＴＴ規格ＪＰＥＧ方式のアルゴリズムを用いた圧縮および伸長を行う回路である。スキャナより読み込まれたカラー中間調データを圧縮する場合は、スキャナ側から読み込まれた生画像データをＡＤＣＴ圧縮／伸長回路１１５を用いて圧縮し、小さなメモリ量にする。このためネットワーク転送のスピードアップや蓄積メモリの削減といった効果が得られる。また、ネットワークを介して転送されてきた圧縮画像データをＡＤＣＴ圧縮／伸長回路１１５を用いて伸長し、カラー中間調データに戻して、バンドメモリ１０３に書き込み、プリンタＩ／Ｆに転送されて、プリンタデバイスより印字される。
【００９７】
１１６はＦＩＦＯメモリで、ＡＤＣＴ圧縮／伸長回路１１５へ圧縮画像データを送ったり、受け取ったりするために用いられる。ＦＩＦＯメモリ１１６は、圧縮動作，伸長動作時の圧縮データと伸長データ（生画像データ）のデータ量の違いによるデータの転送タイミングのずれを吸収するために用いられる。１１７はＲＳ２３２Ｃコントローラ部で、標準のシリアルＩ／Ｆの制御を行う。１１８はＲＳ２３２Ｃポートで、Ａｃｈａｎｎｅｌ１１８ａとＢｃｈａｎｎｅｌ１１８ｂの２ポートが用意され、一方を端末接続用にして、ディスプレイ表示とキーボード入力を可能としている。また、もう一方はシリアルインタフェースを有するデバイス接続用にしている。ここには、レーザビームプリンタのようなキャラクタプリンタや簡易スキャナの接続が可能となっている。
【００９８】
なお、本システムでは、Ａｃｈａｎｎｅｌを端末接続用にしており、ここに端末を接続して、コマンドの入力やパラメータの変更を行うようにしている。ただし、本システムは疑似端末機能も有し、ネットワーク上のホストコンピュータより，ｒｌｏｇｉｎしてＡｃｈａｎｎｅｌと同じ操作も可能としている。
【００９９】
１１９はセントロニクスＩ／Ｆコントローラ部で、セントロニクスＩ／Ｆ準拠のプリンタの接続のためのＩ／Ｆコントロールを行う。実際には、接続先のデバイスの状態（ＢＵＳＹ／ｎｏｎ）を確認して、８ビットのデータを出力する。これの繰り返しでデータを転送する。その他セントロニクスＩ／Ｆに準拠した信号の制御を行っている。１２０はセントロニクスＩ／Ｆポートで、実際にケーブルが接続されて、プリンタとの電気的関係を結ぶ。１２１はＶＭＥコントローラで、本システムのＣＰＵ１０１がＶＭＥｂｕｓの規格に準拠おした他のボードをアクセスするためのコントロールを行う。なお、ＶＭＥｂｕｓ規格では、アドレスバスＡ１６，Ａ２４，Ａ３２、データバスＤ８，Ｄ１６，Ｄ２４，Ｄ３２のバスをアクセス可能に構成されている。バスの使用権は、アービトレーション方式より与えられる。その他、ＶＭＥｂｕｓの規格に適合した制御を本回路で実現する。１２２はＶＭＥｂｕｓポートで、ダブルハイトのＶＭＥｂｕｓを電気的に接続する。当該ＶＭＥｂｕｓポート１２２は、６ピンのコネクタ２つで構成され、この中にアドレスバス，データバス等が配置されている。
【０１００】
１２３はリセットスイッチで、本システムにおいて異常が発生した場合に、最終的手段として、システムを再立ち上げする場合に押下される。なお、リセットスイッチ１２３は、本実施例ではハード的なスイッチ機構であるが、上述したＲＳ２３２Ｃポート１１８に接続された端末、あるいはネットワークからｒｌｏｇｉｎした疑似端末から、プログラムでリセットするプログラムＲＥＳＥＴ（ウオームＲＥＳＥＴ）として構成しても良い。
【０１０１】
１２４はＬＥＤ部で、電源ＯＮ時を示すＬＥＤ１２４ａ，ＣＰＵ１０１が実行中を示すＬＥＤ１２４ｂ，各プログラムが自由に点灯可能なＬＥＤ１２４ｃ等より構成されている。これにより、ＬＥＤ１２４ａが点灯中であれば、本システムが電源の入湯状態であることを操作者が視覚的に確認することができる。また、ＬＥＤ１２４ｂが点灯中であれば、ＣＰＵ１０１が実行中であることを、ＬＥＤ１２４ｂが消灯中であれば、ＣＰＵ１０１がウエイト状態であることを操作者が視覚的に確認することができる。頻繁に点灯するＬＥＤ１２４ｃは、何かの処理が現在実行されていることを操作者が視覚的に確認することができ、点灯時間，間隔，回数等の相違により、どのプログラムによりＬＥＤが点灯したか等を識別可能となる。
【０１０２】
以下、ネットワーク上のホストコンピュータからのプリント要求処理におけるデータの流れについて詳述する。
【０１０３】
ネットワーク、すなわちＬＡＮ９６に接続されたホストコンピュータがデータをプリントしたい場合、ＳＰサーバシステムにデータと出力先を指定する情報を送る。この際、ＳＣＳＩポートにハードディスクが接続されている場合、データは一旦ハードディスクに蓄積（スプール）される。また、ハードディスクがない場合は、主記憶メモリ１０２に一旦蓄積される。転送されてくるデータ形式としては、下記（１）〜（３）の３通りである。
【０１０４】
（１）ＰＤＬ形式のデータ
（２）生画像形成のデータ
（３）圧縮画像形成のデータ
このうち、（１）のＰＤＬ形式のデータの場合には、ＰＤＬインタープリタープログラム８４が起動され、バンド幅毎のビットマップ展開が行われて、バンドメモリ１０３に書き込まれる。バンドメモリ分のデータが揃うと、プリンタ側に転送され、次のバンド幅分のビットマップ展開が行われる。
【０１０５】
一方、（２）の生画像形成のデータの場合は、バンドメモリ１０３にバンド幅分データが書き込まれ、指定されたプリンタ側に転送される。そして、次のバンド幅分のデータが用意される。生画像形式の場合、データ量が多いので、ホストコンピュータ側からは全部のデータを一括して転送するのではなく、分割して送る。そのため、プリントの最中もネットワークよりデータを受け取る作業が行われる。
【０１０６】
さらに、（３）の画像圧縮形式のデータの場合は、圧縮画像データをＦＩＦＯメモリ１１６に書き込み、ＡＤＣＴ伸長回路１１５により生画像データに変換する。伸長後のデータは、バンドメモリ１０３にバンド幅分データが書き込まれ、指定されたプリンタ側に転送される。以下、同様の処理をそれぞれ繰り返す。なお、画像データの形式が、単一形式ではなく、上記データ形式が組み合わさった複合データの場合もある。すなわち上記（１）のデータ形式と（２）のデータ形式との組み合わせ、もしくは上記（１）のデータ形式と（３）のデータ形式との組み合わせの場合には、それぞれ上記の処理を行う。
【０１０７】
画像データを転送するプリンタデバイスのＩ／Ｆは、ＶＭＥバス１２２上に構成したインタフェースボードを介して接続する場合、ＲＳ２３２Ｃポート１１８に接続した場合、セントロニクスＩ／Ｆポート１２０に接続した場合がある。これは、ホストコンピュータがどのＩ／Ｆに接続されたプリンタにより印刷したかにより行先が決定される。
【０１０８】
バンドメモリ１０３上のデータは、１バンド幅分のデータ転送が終了すると、クリアコントローラ１０５がメモリクリアを行う。その後、再びＰＤＬ展開を行い、バンド幅が揃うと、指定されたプリンタ側のインタフェース回路にデータが転送され、デバイスドライバ８６によるインタフェース回路（制御ボード）の制御によりプリンタでの出力処理が行われる。この繰り返しである。ネットワーク上のホストコンピュータがスキャナより画像データを入力したい場合、本システムは、スキャナ起動のための指定情報をホストコンピュータからもらい、画像入力を開始する。スキャナデバイスのインタフェースは、ＶＭＥバス１２２上に構成したＩ／Ｆボードを介して接続する場合、ＲＳ２３２Ｃポート１１８に接続する場合がある。この指定もホストコンピュータが指定する。
【０１０９】
スキャナから入力される画像データは、バンドメモリ１０３にバンド幅分蓄積される。スキャナからの画像データを指定されたホストコンピュータに転送する場合、スキャナ制御プログラム８５によって次の２通りの加工が行われる。
【０１１０】
第１の加工としては、生画像形式のデータ、ただし、画像情報のタグを付加したものを含み、第２の加工としては、圧縮画像形式のデータである。
【０１１１】
このうち、データ加工形式が生画像形式のデータの場合には、バンドメモリ１０３上のデータを、順次ネットワークを介して指定されたホストコンピュータに転送する方法と、一旦ＳＣＳＩポート１１２に接続されたハードディスクに蓄積される場合がある。いずれも、ホストコンピュータよりの指定情報で選択される。また、画像情報を記録したタグをつける場合には、それを付加して転送する。
【０１１２】
一方、データ加工形式が圧縮画像形式のデータの場合は、バンドメモリ１０３上のデータは、ＡＤＣＴ圧縮回路１１５に送られ、圧縮されて、ＦＩＦＯメモリ１１６に圧縮後のデータが書き出される。そして、ＦＩＦＯメモリ１１６より読み出してはホストコンピュータへ転送し、次のバンド幅分の処理を繰り返し行い、圧縮画像データを得る。ハードディスクを有する場合は、一時的に蓄積するという点が違うだけで、他は上述と同様である。
【０１１３】
以下、図９に示す回路ブロック図を参照しながら図１に示した第１のＳＰインタフェース回路４−１の詳細構成について説明する。
【０１１４】
図９は、図１に示した第１のＳＰインタフェース回路４−１の内部構成を説明するブロック図であり、図１と同一のものには同じ符号を付してある。
【０１１５】
図において、１０００はＣＰＵで、ＲＯＭ１００２に格納された上記各種制御プログラムに基づいてボード回路の内部バス１００１に接続される各デバイスを制御する。１００３はＲＡＭで、ＣＰＵ１０００のワークメモリ等として機能する。１００４はネットワークコントローラで、ＬＡＮ９６に接続されるステーションとのアクセスを制御する。１００５はバンドメモリで、バンド幅分のデータを記憶する。１００６は標準圧縮伸長部で、画像データの圧縮伸長を行う。１００７はＳＣＳＩコントローラで、ハードディスク１００８等が接続されている。
【０１１６】
２１１は前記第１のＳＰインタフェース回路４−１を総括的に制御するＣＰＵで、ＲＯＭ２１２に記憶された制御プログラム（デバイスドライバ８６を補足するプログラム）に基づいてボード内部バスに接続される各デバイスを制御するとともに、各部の初期設定やスキャナ，プリンタとのコマンドのやり取りを行う。２１３はＲＡＭで、ＣＰＵ２１１のワークメモリ等として機能する。２１４はＤＰＲＡＭで、第１のＳＰインタフェース回路４−１とボード回路とのコマンドのやり取りを行うＲＡＭで、ＣＰＵ２１１とＶＭＥバス１６を介してボード回路のＣＰＵ１０００が共に独立してメモリアクセス可能に構成されている。２１５，２１６はバッファメモリで、ＣＰＵ２１１とＣＰＵ１０００との衝突を避けるために機能する。
【０１１７】
２１８はリアルタイム圧縮伸長部で、多値画像データをリアルタイムで圧縮伸長するものである。ここで、リアルタイムとは、ビデオインタフェース２２０を通じて入力される画像データの速度、例えば約１５ＭHz（３２ビット）で画像データのやり取りをする速度と同時間で処理することを意味する。圧縮メモリ１７は、リアルタイム圧縮伸長部２１８で圧縮したデータを格納する。２１９はラインバッファで、８ラインのラスタ方向のデータを保存するメモリとして機能する。なお、当該ラインバッファ２１９はリアルタイム圧縮伸長部２１８からは、８×８のマトリクスでＡＤＣＴ圧縮に準じたランダムアクセスが可能となっている。２１７はＤＭＡコントローラで、圧縮メモリ１７とリアルタイム圧縮伸長部２１８との間をＣＰＵ２１１を介さずにデータを移動させるためのものである。
【０１１８】
ビデオインタフェース２２０ａは、スキャナ９４Ａ，プリンタ９４Ｂとのインタフェースである。２２０ｂは制御インタフェースである。
【０１１９】
以下、ホストコンピュータからの指定情報に基づく第１〜第４のモード処理について図９を参照しながら詳述する。なお、各モード処理は、ＲＯＭ１００２に格納された画像入出力装置制御プログラム８５とＲＯＭ２１２に格納されたデバイスドライバ８６を実行することによって行われる。
〔第１のモード処理〕
先ず、第１のモード処理（画像プリントモード処理）では、メインＣＰＵ回路１のバンドメモリ１００５内の生画像データを、ＶＭＥバス１６を経由して受け取り、リアルタイム圧縮伸長部２１８で圧縮した後、圧縮メモリ１７に一旦、圧縮画像の形態で蓄えられる。この動作は、１ページ分行われ、１ページ（１画面）分の圧縮が終了したところで、プリンタ９４Ｂを起動する。次に、圧縮メモリ１７に一旦、圧縮画像の形態で蓄えられた圧縮画像データをＤＭＡコントローラ２１７が読み出し、リアルタイム圧縮伸長部２１８に送る。この際、伸長回路により、生画像データに復元する。伸長された生画像データは、順次ビデオインタフェース２２０よりプリンタ９４Ｂへ転送される。なお、その際画像伸長動作はプリンタ９４Ｂのデータ処理速度に同期して、超高速に伸長する。また場合によっては、画像処理を施した後にプリンタ９４Ｂにデータを送り、プリンタ処理を行う。
〔第２のモード処理〕
第２のモード処理（画像スキャンモード処理）では、スキャナ９４Ａより、ビデオインタフェース２２０ａを介して入力されてくる画像データを、そのスピードに同期して超高速に、リアルタイム圧縮伸長部２１８の圧縮機能を用いて画像圧縮を行い、ＤＭＡコントローラ２１７により、出力される圧縮画像データを圧縮メモリ１７に一旦格納する。１画面分のスキャンが終了したところで、ボード回路のＣＰＵ１０００は再びリアルタイム圧縮伸長部２１８の伸長回路により圧縮メモリ１７に蓄えられた圧縮画像データを伸長し、生画像データに戻す。その生画像データは、ＶＭＥバス１６を経由してボード回路に送られる。ボード回路は、ホストコンピュータ側が、生画像データを要求している場合はそのまま指定されたホストコンピュータへ転送し、もし、圧縮画像データを要求した場合には、ボード回路上の圧縮機能処理により圧縮して指定されたホストコンピュータへ転送する。
〔第３のモード処理〕
第３のモード処理（標準圧縮画像プリントモード処理）では、ボード回路が圧縮画像データをネットワーク上のホストコンピュータから受け取ると、そこで伸長せずに、圧縮画像データのまま指定された第１のＳＰインタフェース回路４−１に送る。第１のＳＰインタフェース回路４−１では、圧縮メモリ１７に圧縮画像データを蓄え、その後指定されたプリンタ９４Ｂを起動し、圧縮画像データをリアルタイム圧縮伸長部２１８の伸長機能により、プリンタ９４Ｂのプリントスピードに同期して画像伸長を行いプリントする。
〔第４のモード処理〕
第４のモード処理（標準圧縮画像スキャンモード処理）では、スキャナ９４Ａの走査速度に同期して、超高速にリアルタイム圧縮伸長部２１８の圧縮機能により画像圧縮を行い、圧縮メモリ１７に一旦圧縮画像データを蓄える。１画面分のスキャンが終了したところで、ボード回路のＣＰＵ１０００は、圧縮画像データをそのままＶＭＥバス１６を経由して取り込む。
【０１２０】
なお、上記第１および第２のモード処理では、生画像データで第１のＳＰインタフェース回路４−１とインタフェースするため、第１のＳＰインタフェース回路４−１内では画像通信に必要とされる標準の圧縮伸長処理を行うことは必ずしも必要ではなく、高速化やその他の目的に応じた独自の圧縮伸長が行える。
【０１２１】
また、上記第２，４のモード処理では、スキャナ９４Ａの読取りデータを直接圧縮をかける場合について記述したが、スキャナの読み取りデータに線密度変換や色空間変換等の画像処理を施した後に、リアルタイム圧縮伸長部２１８が画像圧縮をかけても良く、制限するものではない。また、画像処理機能は、画像圧縮伸長部とスキャナ９４Ａ，プリンタ９４Ｂとの間に設ける構成であっても良いし、画像圧縮伸長部をスキャナ９４Ａ，プリンタ９４Ｂ内に設ける構成であっても良い。
【０１２２】
以下、図１０に示すブロック図を参照しながらリアルタイム圧縮伸長部２１８の構成および動作について説明する。
【０１２３】
図１０は、図９に示したリアルタイム圧縮伸長部２１８の詳細構成の一例を示すブロック図であり、特に本実施例では圧縮伸長方式として、ＡＤＣＴ方式を採用している。
【０１２４】
データ圧縮時には、生画像データは、先ず外部のラインバッファ２１９に蓄えられた後で、色空間変換部２２１に入力されて、ＲＧＢデータからＹ，Ｃｒ，Ｃｂ等の色空間に変換される。そして、場合によっては、Ｃｒ，Ｃｂは色差成分として、サブサンプリングされ、画像の持つ冗長度を落される。次いで、８×８画素毎にＤＣＴ計算部２２２において、周波数空間に変換される。次に、図１１に示すようにＤＣＴ係数はジグザグスキャン部２２３でスキャンされ、量子化部２２４で量子化される。この時に、量子化の係数は、量子化テーブル２２５に記憶されていて、ＤＣＴ係数の８×８に対応するようになっている。次に、内部ＦＩＦＯメモリ２２６に一旦蓄えられ、所望のタイミングでハフマン符号化部２２７でハフマンテーブル２２８を参照して符号化した後にでき上がった圧縮画像データは、外部のホストコンピュータ等からアクセスできるＣＯＤＥＣレジスタ２２９に値が格納される。
【０１２５】
ところで、色空間変換部２２１，ＤＣＴ計算部２２２，ジグザグスキャン部２２３，量子化部２２４，量子化テーブル２２５等でパイプライン動作部が構成され、タイミング生成用のクロックに同期して動作し、高速で動作する。また、ハフマン符号化部２２７，ハフマンテーブル２２８，ＣＯＤＥＣレジスタ２２９等で非同期動作部が構成され、外部ＣＰＵがＣＯＤＥＣレジスタ２２９をアクセスするスピードに同調して動作するように構成されており、ＣＰＵのスピードやＤＭＡに間に合う程度であって、あまり高速には動作しない部分である。また、パイプライン動作部は、スキャナ９４Ａ，プリンタ９４Ｂの画像転送クロックに追従できるように高速動作が可能に構成されている。従って、内部ＦＩＦＯメモリ２２６は、同期系のパイプライン動作部と非同期動作部の動作スピードの緩衝のために設けられている。
【０１２６】
また、画質を高めるために圧縮率を下げると圧縮データが増え、非同期動作部の処理量が多くなり、非同期動作部の処理スピードが間に合わなくなる。ただし、色空間変換部２２１の生画像データのインタフェースは、スキャナ９４Ａ、プリンタ９４Ｂ以外にも接続可能で、外部にＦＩＦＯメモリを設けて、ＣＰＵ等からの非同期アクセスを受けることが可能で、この場合はパイプライン動作部を低速で動作させたり、一時停止させることが可能である。従って、非同期動作部はスピード的に問題はなくなる。
【０１２７】
また、本実施例では画像圧縮伸長部を複数（例えば２つ）有し、生画像データを複数に分割して、それぞれの画像圧縮伸長部に与えることにより高速動作するスキャナやプリンタ等に接続することが可能となる。このように、複数に分割された画像データの圧縮であるならば、伸長時にも同様にスピード問題は解決される。
【０１２８】
伸長時の動作は基本的には圧縮時の逆プロセスになるわけであるが、図１０に示すように、圧縮画像データは、ＣＯＤＥＣレジスタ２２９に渡されると、ハフマン符号化部２２７でハフマンテーブル２２８を参照しながら逆ハフマン符号化、すなわちデコードされる。その値は一旦内部ＦＩＦＯメモリ２２６でスピードの緩衝を受けながら、量子化部２２４で逆量子化される。逆量子化は量子化テーブル２２５の８×８の量子化係数を乗算することで行われる。そして、ジグザグスキャン部２２３で逆ジグザグスキャンされて、ＤＣＴ計算部２２２にＤＣＴ係数として渡される。そして、色空間変換部２２１において圧縮色空間であるＹ，Ｃｒ，Ｃｂ等よりもとのＲＧＢ空間等に戻される。
【０１２９】
また、ＤＣＴ計算部２２２では、ＤＣＴ計算，逆ＤＣＴ計算は、計算のパラメータを入れ替えるだけで同一回路で処理される。色空間変換部２２１でも、その変換が線形一次変換等の場合には、同様にパラメータ変換で行える。
【０１３０】
さらに、量子化部２２４も同様で量子化は割り算等，逆量子化は掛け算を行うが、割り算も、割る量子化係数を逆数で持つことにより掛け算になるので、同一回路で圧縮伸長とも可能である。以下、図１２〜図１５を参照しながら第１のＳＰインタフェース回路４−１の各モードの動作を例にしてさらに詳細に説明する。
【０１３１】
図１２は、第１のＳＰインタフェース回路４−１のパート構成の概略を説明するブロック図である。
【０１３２】
図において、１１００は画像処理制御部で、ＶＭＥバスインタフェース，画像圧縮伸長部，ＣＰＵ回路部等から構成され、後述する図１３に詳細を示す。
１２００はつなぎメモリ制御部で、後述する図１４に詳細を示す。１３００は画像入出力制御部で、スキャナ，プリンタを備えるカラーレーザ複写装置（ＣＬＣ），スキャナ，プリンタを備えるバブルジェットカラー複写装置（ＢＪＣ）とのＩ／Ｏを制御する。なお、詳細は図１５に示す。
【０１３３】
図１３〜図１５は、図１に示した第１のＳＰインタフェース回路４−１の詳細内部構成を説明する回路ブロック図であり、図１と同一のものには同じ符号を付してある。
【０１３４】
図９に示すボード回路のＣＰＵ１０００より、画面を２分割されたデータのまず右面についての処理において、画像データはＶＭＥインタフェース３０１よりまずＦＩＦＯメモリ３０２にデータがバッファ３０３を介して書き込まれる。ＦＩＦＯメモリ３０２よりはバッファ３０４を介して一旦ＳＲＡＭ３０５に蓄積される。ＳＲＡＭ３０５の動作は、画像圧縮伸長部のパイプライン部に同期して動作する。ＲＡＭ３０５に画像の垂直方向８ライン分のデータが蓄積されると、画像圧縮伸長部３０６は水平，垂直８×８単位ずつＳＲＡＭ３０５より読み出して動作し、得られた圧縮データはＤＭＡコントローラ部３０７を介してＤＲＡＭ３０８に順次書き込まれる。この時、ＤＭＡコントローラ部３０７はアドレスカウンタ３０９を操作してアドレスを発生し、またはカウントアップしてセレクタ３１０を介してＤＲＡＭ３０８に与える。なお、第３のモードでは、ＶＭＥインタフェース３０１およびセレクタ３１０を介してボード回路のＣＰＵ１０００がアドレスを与え、かつインタフェース変換部３１２を介してＤＲＡＭ３０８とのデータ更新を行うことになる。これにより、直接圧縮データをＤＲＡＭ３０８に送ることが可能であり、画面を左右に２分割にしていない標準の圧縮データを扱うことも可能である。ただし、低い圧縮率のデータには不向きである。
【０１３５】
また、ＤＲＡＭ３０８はリフレッシュ回路３１３より常にリフレッシュが行なわれ、データの維持がなされる。次に、ＤＲＡＭ３０８のデータをプリンタ９４Ｂに出力する動作を説明すると、ＤＲＡＭ３０８よりＤＭＡコントローラ３０７により書き込み時と同様な制御で圧縮伸長部３０６にデータが読み出されると、伸長が行なわれ、生データがバッファ３０４からＦＩＦＯメモリ３０２からの出力データはセレクタにおいて画像の左右のいずれかの面が選択されて、ラッチ３１５に与えられる。
【０１３６】
次に、ガンマ変換部３２５でガンマ変換やＬＯＧ変換される。そして、マスキング回路３１６でＣＧ用のマスキングを行ない、マスキング回路３１７で、自然画用のマスキングを行ない、セレクタ３２１で画像の性質に応じてどちらかを選択し、最終的に出力ガンマ調整部３２２で変換されてからラインドライバ３２４を介してプリンタ９４Ｂに出力される。この時、出力ガンマ調整部３２２はガンマ設定レジスタ３２３に調整される。また、マスキング回路３１６はＲＯＭで構成され、マスキング回路３１７はロジックであって、黒生成のための黒テーブルが接続されるとともに、初期値データＲＯＭ３１９の値が初期にロードされるようにタイミングコントローラ３２０も周辺に接続されている。プリンタ９４Ｂが面順次の場合は、伸長動作を面の数だけ行ない、そのマスキング回路３１６，３１７は、出力色に応じたマスキング処理を行なう。
【０１３７】
以上が、画面を２分割にした場合の右面の処理の流れであり、左面についても同様の処理の流れが行なわれる。すなわち、バッファ３２５，ＦＩＦＯメモリ３０２，バッファ３２７を経由してＳＲＡＭ３２８に蓄えられた８ラインの画像データは、画像伸長部３２９において圧縮され、ＤＭＡコントローラ３３１，アドレスコントローラ３３５，セレクタ３３４によりコントロールされて、ＤＲＡＭ３３２に圧縮データとして書き込まれる。また、ＶＭＥインタフェース３１１より直接セレクタ３３４をインタフェース変換部３３０を介してボード回路のＣＰＵ１０００が圧縮データを書き込んでも良いことは言うまでもない。また、リフレッシュ回路３３３がＤＲＡＭ３３２のデータをリフレッシュし維持する。そして、画像プリント時には、ＤＲＡＭ３３２より読み出されたデータがＤＭＡコントローラ３３１等のコントロール３３１等のコントロールを受け、画像圧縮伸長部３２９で伸長され、ＳＲＡＭ３２８，バッファ３２７，ＦＩＦＯメモリ３２６を経由してセレクタ３１４に与えられ、以下上述の通り画像処理されて出力される。以上のようにして、モード１の処理が行なわれる。
【０１３８】
次に第２のモード処理動作について説明する。
【０１３９】
スキャナ９４Ａより各種の処理を受けて送出される画像データは、ラインレシーバにより受け取られ、バッファ３４１により画像の右面がバッファ３４２により画像の左面が、ＦＩＦＯメモリ３０２，３２６に順次取り込まれる。それ以降は、第１のモードと同様の動作を行なう。すなわち、右面の処理動作について記述すれば、ＦＩＦＯメモリ３０２に書き込まれた画像データは、バッファ３０４を経由してＳＲＡＭ３０５に８ライン分が読み出されて書き込まれる。次に、圧縮伸長部３０６によりＤＲＡＭ３０８に圧縮データが生成される。
【０１４０】
一方、第４のモードでは、ＶＭＥインタフェース３０１及びインタフェース変換部３１２，セレクタ３１０を介してボード回路のＣＰＵ１０００が直接圧縮画像データを読み込むことが可能であるが、第２のモードでは、ＤＲＡＭ３０８の圧縮データを伸長してからボード回路のＣＰＵ１０００に渡す。ＤＲＡＭ３０８よりインタフェース変換部３１２およびＤＭＡコントローラ３０７，アドレスカウンタ３０９，セレクタ３１０によりコントロールされて、書き込まれた順に読み出された圧縮画像データは、画像圧縮伸長部３０６で伸長され、ＳＲＡＭ３０５に８×８単位毎に書き込まれ、８ライン分すべてが書き込まれた時点でバッファ３０４を経由して、水平ライン方向に連続して読み出され、ＦＩＦＯメモリ３０２に書き込まれる。ＦＩＦＯメモリ３０２では、ボード回路のＣＰＵ１０００のタイミングに従って、バッファ３０３，ＶＭＥインタフェース３０１を介して、ボード回路のＣＰＵ１０００に生画像データとして読み出される。
【０１４１】
ところで、セレクタ３２１が２つのマスキング回路３１６，３１７の選択については、ＲＡＭ３５１にＣＧ画像があるか、自然画像であるかの属性が書かれていて、水平方向カウンタ３５２，垂直方向カウンタ３５３より、処理画素位置のアドレスが生成され、セレクタ３５５を介してＲＡＭ３５１に与えられ、その読み出しデータにより、セレクタ３２１を制御する。従って、ＲＡＭ３５１上の属性はボード回路のＣＰＵ１０００よりＶＭＥインタフェース３０１，セレクタ３５１を介し、ＲＡＭ３５１上にあらかじめ書き込まれる。また、スキャナ９４Ａ，プリンタ９４Ｂとのインタフェースは、Ｓ／Ｐタイミングコントローラ３５６により制御されている。
【０１４２】
次に、画像の左右面の切り替えの制御について説明する。
【０１４３】
垂直方向カウンタ３６３は、画像の垂直方向の有効部分について画像有効信号を送出するもので、ディレイレジスタ３６４は、画像先端の余白部分をセットするものである。長さレジスタ３６１は画像の有効長をセットし、比較器３６２において有効長以内で有れば、各部分に画像有効信号を送るものである。垂直方向の画像有効区間に加えて、水平方向の余白長をセットするディレイレジスタ３６６が接続され、画像の左端をカウントした後に有効信号を発する。カウンタコントローラ部３６７は、これを受けて水平左幅カウンタ３６８を起動する。この水平左幅カウンタ３６８は、ダウンカウンタとして機能し、幅分だけカウントを行ない、その間に左画面のイネーブル信号を発する。左画面が終了すると、カウンタコントローラ部３７２に対してイネーブルを発し、カウンタコントローラ部３７２は右画面の幅カウンタ３７３で幅分のカウントを行ない、終了状態を制御部３８９に与える。制御部３８９はセレクタ３１４に対して画像有効幅の終了を知らせて出力をクリアする。幅カウンタ３６８は、圧縮時にはライトパルスジェネレータ３６９を左画面有効幅で発生してマルチプレクサ３７１を介してＦＩＦＯメモリ３２６に左面のスキャナデータをかき込み、ＦＩＦＯメモリ３２６はゲート３８１を介して圧縮伸長部３２９のリードパルスをマルチプレクサ３７１を介してＦＩＦＯメモリ３２６に与える。
【０１４４】
また、伸長時には、幅カウンタ３６８の左面有効信号をリードパルスジェネレータ３７０が受けて、マルチプレクサ３７１を介してＦＩＦＯメモリ３２６よりプリンタ９４Ｂへ出力させる。
【０１４５】
一方、画像圧縮伸長部３２９のライトパルスがゲート３８１を介してマルチプレクサ３７１を介してＦＩＦＯメモリ３２６に与えられ、伸長データが書き込まれる。
【０１４６】
右面についても同様にライトパルスジェネレータ３７４，リードパルスジェネレータ３７５，マルチプレクサ３７６，ゲート３８２が同様の動作をすることは言うまでもない。また、画像圧縮伸長部３２９には内部のＦＩＦＯメモリ３０２の状態がスタート／ストップロジック３８６に与えられるとともに、周辺状態を検出するレジスタ３８５もスタート／ストップロジック３８６に与えられ、かつ外部のＦＩＦＯメモリ３２６の状態もＦＩＦＯメモリコントローラ部３８３を介してスタート／ストップロジック３８６に与えられ、内部のＦＩＦＯメモリ３０２及び外部のＦＩＦＯメモリ３２６がオーバーフローしたり、アンダーフローしたりしないように管理され、状態に応じて画像圧縮伸長部３２９のパイプライン部をストップさせたり、スタートさせたりすることができる。
【０１４７】
同様に、状態レジスタ３８７，スタート／ストップロジック３８６，フィホコントローラ部３８４に管理され、圧縮伸長部３０６のパイプライン部がスタートしたり、ストップしたりする。なお、スタート／ストップでは、圧縮時に内部のパイプライン部が速すぎて内部のＦＩＦＯメモリ３０２がオーバーフローしそうな時や、伸長時に内部のパイプライン分が速すぎて内部のＦＩＦＯメモリ３０２がアンダーフローしそうな時の他の圧縮時に画像圧縮伸長部が速すぎて外部ＦＩＦＯメモリ３２６がアンダーフローしそうな時、および伸長時に画像圧縮伸長部３０６が速すぎて外部ＦＩＦＯメモリ３２６がオーバーフローしそうな時がある。
【０１４８】
また、簡易エラー対策部３９９は、スキャナ９４Ａ，プリンタ９４Ｂが速すぎて画像圧縮伸長部３０６の処理速度が間に合わない時に、外部のＦＩＦＯメモリ３２６や内部のＦＩＦＯメモリ３０２がオーバーフローやアンダーフローを起こすので、スキャナ９４Ａ，プリンタ９４Ｂ側のビデオ信号（ビデオ＝画像）を一時的に止めるもので、スキャナ９４Ａでは１ライン単位でビデオが捨てられ、プリンタ９４Ｂでは１ライン単位で余白が出力されるように簡易的なエラー処理が行なわれ、ＦＩＦＯメモリをオーバーフローまたはアンダーフローされてビデオの流れを破壊することを防ぐ。従って、簡易エラー対策部３９９は、エラー情報を制御部３８８に渡すと、制御部３８８が１ラインの余白，左面有効部，右面有効部を把握して、１ラインの区切り目でエラー解除を簡易エラー対策部３９９に出力する一方、エラー時にスキャナ９４Ａ，プリンタ９４Ｂの入出力データをクリアするように各部に指示するとともに、エラー処理中に画像圧縮伸長部３０６がスキャナ９４Ａ，プリンタ９４Ｂの処理速度に間に合わなかったにもかかわらず、１水平ラインの区切りまで圧縮または伸長動作をさせる。このことにより、１ラインの区切りで再びエラー復帰ができるのである。ただし、エラー処理中に圧縮では、白ラインを圧縮して圧縮速度をかせぎ、伸長では画像データはプリンタ９４Ｂに間に合わないために捨てられる。
【０１４９】
以上の説明の中では、ボード回路のＣＰＵ１０００がほとんどすべての管理を行なうように説明したが、本実施例では第１のＳＰインタフェース回路４−１の中にも内部のＣＰＵ３９２を有していて、第１のＳＰインタフェース回路４−１ないで処理できることは内部のＣＰＵ３９２が処理を分担することが可能で有る。また、第１のＳＰインタフェース回路４−１内にはデュアルポートＲＡＭ３９３を有し、両ポートはそれぞれＶＥＭインタフェース３０１を介してボード回路のＣＰＵ１０００が内部ＣＰＵバスを介して内部のＣＰＵ３９２に接続されている。このデュアルポートＲＡＭ３９３を介して、ボード回路のＣＰＵ１０００と内部のＣＰＵ３９２に情報伝達が行なわれている。
【０１５０】
従って、第１のＳＰインタフェース回路４−１内のＶＭＥバスへの２つのＣＰＵ１０００およびＣＰＵ３９２からのアクセスは衝突することはない。この時、ＣＰＵ３９２の内部バスに接続されているバス変換部３９４により画像圧縮伸長部３０６，３２９とのインタフェースがなされる。バス変換部３９４は、インタフェース変換部３１２，３３０と同様の機能を有し、レジスタインタフェース３９５を介してボード内の各種のレジスタとのインタフェースを行なうので、ＶＥＭバスのインタフェースとしての機能をも合わせて有している。
【０１５１】
さらに、内部のＣＰＵバスには、ＣＰＵ３９２のプログラムを格納するＲＯＭ３９１，シリアル通信部３９０を有している。シリアル通信部３９０はスキャナ９４Ａ，プリンタ９４Ｂとの動作制御をするコマンドが送られる。従って、本実施例では図９に示すボード回路のＣＰＵ１０００は図１３に示す内部のＣＰＵ３９２を介してスキャナ９４Ａ，プリンタ９４Ｂを制御するか、ボード回路のＣＰＵ１０００が直接スキャナ９４Ａ，プリンタ９４Ｂを制御する構成となっている。なお、コントロールのコマンドとしては、実行コマンドとしてスキャナ９４Ａ，プリンタ９４Ｂの起動命令の他に、状態検知コマンド，状態設定コマンドがある。状態検知コマンドは、プリンタ９４Ｂの紙有り／紙無し，カセット有り／無しサイズ，その他のトナ残量，ジャム発生等多くのコマンドとともに、現在設定されている動作モード、すなわち単色／３色／４色や解像度、その他の画像処理パラメータの検知等が有る。スキャナ９４Ａに関しても、ほぼ同様で、その他の原稿台上の原稿有り／無しや、ランプ切れ等を知ることが可能で有る。
【０１５２】
一方、状態設定コマンドは、プリンタ９４Ｂではカセットサイズ選択，カセット上下段選択，動作モードやプリント枚数設定や画像処理系のパラメータ設定等である。
【０１５３】
なお、スキャナ９４Ａについても同様で、例えば変倍率設定，２値／多値化設定，標準色空間変換，独自色空間変換，線密度（解像度変換），領域指定設定，ガンマ変換設定等が有る。
【０１５４】
なお、本実施例ではスキャナ９４Ａに多くの画像処理機能を持つために、第１のＳＰインタフェース回路４−１上では画像処理は行なわずに圧縮する。また、スキャナ９４ＡよりＲＧＢデータとしてデータ受信する。
【０１５５】
一方、プリンタ９４Ｂは入力がＣＭＹＫ入力であり、プリンタ部に画像処理をあまり有していないため、マスキング，ガンマ変換，ＬＯＧ変換，ＣＭＹＫ生成は第１のＳＰインタフェース回路４−１上で処理される構成となっている。
【０１５６】
図１６は、図１に示した第２のＳＰインタフェース回路４−２の詳細構成を説明するブロック図であり、図２に示したバブルジェト型の第２のカラースキャナ／プリンタ９５（プリンタ９５Ｂ，スキャナ９５Ａ）とＳ／Ｐサーバー装置ＳＰ１とのデータ処理をインタフェースする。また、第２のＳＰインタフェース回路４−２は一体としてインタフェースボードとして構成されている。
【０１５７】
図において、４０１はＣＰＵで、デュアルポートＲＡＭ４０３を介してＶＥＭバスにつながっているボード回路からのコマンドを受け取り、解釈し、第２のＳＰインタフェース回路４−２内部の制御をする。ＣＰＵ４０１は内蔵されたインターバルタイマによって２ms毎の割り込みを発生させ、バブルジェト型のプリンタ９５Ｂ，スキャナ９５Ａとのコマンドの通信を行う。また、画像処理回路部４０４，４０５，４０６の各種パラメータの初期化および変更を行う。
【０１５８】
４０２はプログラム用のＲＯＭで、ＣＰＵ４０１が実行する制御プログラム（デバイスドライバ８６を補足するプログラム等）を格納するとともに、画像処理回路部４０４，４０５，４０６の初期値やプリセット値を格納する。
【０１５９】
デュアルポートＲＡＭ４０３はＣＰＵ４０１のワークエリア等として機能するとともに、ＶＥＭバスによってつながれたボード回路のＣＰＵ１０００と、ＣＰＵ４０１の両方からアクセスことで、両者間の通信を行う。
【０１６０】
画像処理回路部４０４は画像処理用ASICとして構成され、ルックアップテーブルにより階調変換を行う。例えばＲＧＢデータをＣＭＹＫデータに変換するときは、ＬＯＧ変換を行う。これはあらかじめＲＯＭ４０２に変換テーブルを用意しておき、これを画像処理回路部４０４内のＲＡＭに転送することで実現する。
【０１６１】
画像処理回路部４０５は画像処理用ＡＳＩＣとして構成され、４×５のマトリックス演算とルックアップテーブルにより階調変換を行う。このマトリックス演算によりスキャナ９５Ａのセンサの特性のＲＧＢ空間と標準色空間としてのＮＴＳＣーＲＧＢ色空間の変換または画像処理回路部４０４の変換した後のＣＭＹ（Ｋ）からプリンタ９５Ｂの特性に合わせたＣＭＹＫへの変換( マスキング処理と呼ばれる) などを行う。さらにルックアップテーブルによってカラーバランスの調整が行える。これらの処理も画像処理回路部４０４と同様にあらかじめ様々なテーブルを用意しておき、ＲＯＭに格納しておき、用途に合わせて、選択して設定する。
【０１６２】
画像処理回路部４０６は画像処理用ＡＳＩＣとして構成され、データの２値化処理を行う。なお、本実施例に置ける二値化のアルゴリズムは平均濃度保存法であるを採用している。４０７はシリアル/ パラレル変換部でありスキャナ９５Ａ，プリンタ９５Ｂへの通信のためにＣＰＵ４０１からの８ビットのパラレルのデータをシリアルデータに変換する。
【０１６３】
４０８は画像用ＤＲＡＭである。プリンタ９５Ｂのヘッドの画素数に合わせたバンド形式に合わせた大きさの画像用メモリである。スキャナ９５Ａまたはプリンタ９５Ｂでは１回の走査の間は画像用クロックに従ってデータが流れ、動作を止められないために、１バンドの大きさでのバッファリングが必要である。このためスキャナ９５Ａによってスキャンされるまたはプリンタ９５Ｂにプリントされる１バンド分の画像データをバッファリングを行う。
【０１６４】
また、ＶＭＥバス側からのラスタ形式のアクセスとスキャナ９５Ａ，プリンタ９５Ｂよりの縦方向のアクセスとの走査形式の変換を行う。
【０１６５】
４０９はＤＲＡＭへのアドレスセレクタ、マルチプレクサで、ＤＲＡＭ４０８へのアクセスはＶＥＭバス側からとスキャナ９５Ａ，プリンタ９５Ｂ側からの２つがあり、これらからのアドレスの切り替えを行う。さらにＤＲＡＭ４０８へのアドレスはＲＯＷアドレスとＣＯＬＵＭアドレスに分けて供給するのでこのマルチプレックスを行う。
【０１６６】
４１０はＤＲＡＭのタイミングコントローラ部である。ＲＡＳ，ＣＡＳ，ＷＥ，ＯＥなどのＤＲＡＭを制御する信号を作り出す。またリフレッシュ信号との調停を行う。
【０１６７】
４１１はタイミング回路で、スキャナ９５Ａ，プリンタ９５Ｂのアクセスのタイミングを生成する。これはスキャナ９５Ａ，プリンタ９５Ｂからの画像クロックや同期信号をもとにアクセスのタイミングを作り出す部分である。
【０１６８】
４１２はリフレッシュタイミング制御部である。ＤＲＡＭ４０８へのリフレッシュのタイミングを作り出す。スキャナ９５Ａ，プリンタ９５Ｂのアクセスのすきまを使いスキャナ９５Ａ，プリンタ９５Ｂのアクセスとが衝突しないように制御している。
【０１６９】
４１３はＶＭＥタイミング制御部である。ＶＭＥバスからのアクセスのための制御信号の処理をする。ＡＭコードのデコードや上位アドレスのデコード、割り込みの処理などである。
【０１７０】
４１４はスキャナ９５Ａ，プリンタ９５Ｂのアクセスアドレス生成部である。スキャナ９５Ａ，プリンタ９５Ｂのアクセスは通常のラスタ形式とは異なっているため、ＶＭＥバスからのアクセスのためにラスタ形式でかかれたメモりに対して、スキャナ９５Ａ，プリンタ９５Ｂ用の特殊なアクセスのアドレスを生成する部分である。これはバンドの大きさで、走査方向の縦横をひっくり返すものである。
【０１７１】
４１５はＶＭＥバスインタフェースデータバッファ部である。画像データは３２ビット幅、コマンドは８ビット幅でアクセスをする。
【０１７２】
４１６はＶＭＥバスインタフェースアドレスバッファ部である。画像データは２４ビットのアドレス空間、コマンドは１６ビットのアドレス空間でアクセスする。
【０１７３】
４１７はＶＭＥバスインタフェースのデータとアドレス以外の部分のバッファである。
【０１７４】
４１８は画像処理部の入り口のバッファである。ＶＭＥバスからのアクセスおよびＤＲＡＭへアクセスは３２ビット幅で行うが、画像処理部では８ビット幅で処理がなされる。このため３２ビットのＲ，Ｇ，Ｂ，Ｘのデータを８ビットのデータとしてＲ，Ｇ，Ｂ，Ｘの順にシリアルに変換をする。
【０１７５】
４１９は画像処理部の出口のバッファで，バッファ４１８とは反対に、色順次に変化する８ビット幅のデータラインを４色分まとめて３２ビットにする変換を行う。
【０１７６】
４２０は２値化処理後のバッファで、画像処理回路部４０６によって２値化されたデータは１ビットになっている。これを８ビットに拡張する。すなわち、「０」は「０ｘ００」に、「１」は「０ｘＦＦ」にする。
【０１７７】
４２１はバッファで、画像処理回路部４０６による２値化処理をバイパスする場合用のバッファで、バッファ４２０とこのバッファ４２１の出力のどちらか一方を選択して、２値と多値を切り替える。
【０１７８】
４２２はスキャナ９５Ａ，プリンタ９５Ｂのインタフェースの通信部のバッファである。
【０１７９】
４２３はスキャナ９５Ａ，プリンタ９５Ｂのインタフェースの入力データ用バッファである。
【０１８０】
４２４はスキャナ９５Ａ，プリンタ９５Ｂのインタフェースの出力データ用バッファである。
【０１８１】
４２５はスキャナ９５Ａ，プリンタ９５Ｂのインタフェースのクロック，制御信号用の入力バッファである。
【０１８２】
４２６はスキャナ９５Ａ，プリンタ９５Ｂのインタフェースのクロック、制御信号用の出力バッファである。４２９はクロック入力ラインである。
【０１８３】
４３０は３２ビットの画像用データバス，４３１は２４ビットのアドレスバス、４３２は８ビットの画像データバス、４３３は８ビットの画像データバス、４３４は１６ビットのローカルアドレスバス、４３５は８ビットのローカルデータバスである。以下、プリンタ９５Ｂのプリント動作について説明する。
＜プリント時の動作＞
まず、ＶＭＥバスを通してボード回路より、プリントするにあたっての各種のパラメータがデュアルポートＲＡＭ４０３に書き込まれると、ＣＰＵ４０１はこのデータを読み出して解釈して制御を行う。例えば、ＲＧＢデータのプリントであれば、ＣＰＵ４０１は画像処理回路部４０４のＬＵＴデータの変化を起こさないスルーの特性のテーブルをセットし、画像処理回路部４０５のマトリックスの係数テーブルにはＮＴＳＣーＲＧＢからＢＪーＲＧＢへの変換用の係数をセットし、画像処理回路部４０６の２値化処理をスルーするように、バッファ４２０，４２１のゲートを制御する。
【０１８４】
さらに、データのサイズ等のパラメータをセットする。そしてデータサイズなどのパラメータはのパラレル／シリアル変換部４０７を通してプリンタ９５Ｂへ伝えられる。次に、１バンド分の画像データがＶＭＥバスを通して、ボード回路よりメモリ４０８に転送される。このときＶＭＥバスからは３２ビットアクセスでＲＧＢＸのデータ形式でストアされる。ＲはＲＥＤ、ＧはＧＲＥＥＮ、ＢはＢＬＵＥのそれぞれの色成分の画像データであり、Ｘは黒文字用の情報を含んだ制御用データである。次にデュアルポートＲＡＭ４０３を介してプリント動作のコマンドが伝えられる。ＣＰＵ４０１はプリント動作の開始命令をプリンタ９５Ｂへ伝える。プリンタ９５Ｂのプリンタ制御部から開始信号が帰ってくるとタイミング回路４１１とメモり４０８へのアクセスを始める。このときデータの読み出しはプリンタ９５ＢのＢＪヘッドに沿った方向であるため、アドレス発生部４１４によって生成されたアドレスに従って読み出しを行う。メモり４０８から読み出されたデータはバッファ４１８でＲ，Ｇ，Ｂ，Ｘの順に８ビットデータに変換され画像処理部に入る。あらかじめ設定したパラメータによって、画像を処理し、ＮＴＳＣ−ＲＧＢデータはプリンタ９５Ｂの内部で使われるＲＧＢ色空間に変換され、バッファ４２１，出力データ用バッファ４２４を通ってプリンタ９５Ｂへ伝えられる。１バンド分のデータの処理が終わったら、次のバンドのデータをＶＭＥバスを介して受け取り、上記動作を繰り返す。所定の回数の処理を終えたら１ページの処理が終了する。以下、ＲＯＭ４０２に格納された制御プログラムによるスキャナ９５Ａの原稿読み取り動作について説明する。
＜スキャン時の動作＞
まず、ＶＭＥバスを通してボード回路より、スキャンするにあたっての各種のパラメータがデュアルポートＲＡＭ４０３に書き込まれる。ＣＰＵ４０１はこのデータを読み取って解釈して、制御を行う。例えば、ＲＧＢの２値データで、１０２４×１０２４の大きさで５１２×５１２の位置からのスキャンとすると、ＣＰＵ４０１は画像処理回路部４０４のＬＵＴにスルーの特性のテーブルをセットし、画像処理回路部４０６のマトリックスの係数テーブルにはＢＪ−ＲＧＢからＮＴＳＣ−ＲＧＢへの変換用の係数をセットし、画像処理回路部４０６の２値化処理を通るようにバッファ４２０，４２１のゲートを制御する。さらに、スキャンする画像のサイズを１０２４×１０２４に、スキャンの開始位置を５１２×５１２に設定する。これらのパラメータはパラレル／シリアル変換部４０７を通してスキャナ９５Ａへ伝えられる。次にＣＰＵ４０１はスキャナ９５Ａへスキャンの開始のコマンドを伝える。スキャナ９５Ａのスキャナ読取り部より入力された画像データは入力用バッファ４２３を通して画像処理回路部４０４，４０５，４０６に入力される。ここで予め設定したパラメータによる画像処理を行い、バッファ４１９によってＲＧＢＸの３２ビットの形式のデータとしてメモリ４０８にストアされる。この時、メモリ４０８にはＲＧＢＸのデータが入っているが、この例での設定ではＲＧＢの２値画像をスキャンするため、Ｘは意味のないデータであり、Ｒ，Ｇ，Ｂの各成分は２値データであるが１画素１バイトである。これを一般的な２値画像の要求する形式に、例えば８画素１バイトのパッキングをしラスタライン順次にＲＧＢを配置するといった処理はボード回路において行う。メモリ４０８にある画像データはＶＭＥバスインタフェース４１５を介してボード回路へ転送される。上記の処理をバンドの回数分繰り返して、１回のスキャンの動作を終了する。
【０１８５】
以下、図１に示したスキャナ９４Ａ，プリンタ９４Ｂの画像データ処理について説明する。
【０１８６】
本実施例では図１に示したスキャナ９４Ａ，プリンタ９４Ｂと一体としてカラー画像複写装置が形成されているため、画像処理機能は１系統しか有しておらず、スキャナ９４Ａ，プリンタ９４Ｂを分離すると、１つの処理につき、どちらか一方しか有していない構成となっている。しかも、大部分の画像処理機能はスキャナ９４Ａに備えられ、プリンタ９４Ｂは主として変倍，領域指定，色空間変換，ガンマ変換，色マスキング処理部等がある。
【０１８７】
スキャナ９４Ａには、色空間変換部や色マスキング処理部等を有しているので、ビデオインタフェースの切り口として、標準ＲＧＢ（ＮＴＳＣのＲＧＢ等）が用意されていて、ＲＧＢのデータは点順次またはパラレル同時に得られる。従って、プリンタ９４Ｂに対しては、画像処理部を有していないので、Ｃ，Ｍ，Ｙ，Ｋでデータを与えなければならず、外部でＣ，Ｍ，Ｙへの変換や黒（Ｋ）生成，色マスキング処理，その他必要に応じて解像度変換，トリミング等の画像処理を行なってから、ビデオインタフェースに送らなければならない。しかもその場合は、面順次に各色ずつＣ，Ｍ，Ｙ，Ｋ４回繰り返し、画像を送出を行なわなければならない。また、スキャナ／プリンタともに途中で動作を停止したり、中断するようなことはできない。
【０１８８】
その他ビデオインタフェースには、水平同期信号，垂直同期信号およびビデオクロックが含まれてビデオデータとの同期をとっている。また、スキャナやプリンタの電源ＯＮ／ＯＦＦ等のステータス情報も有しているので外部からの確認が可能である。また、コマンドインタフェースをシリアル通信で行なう機能も有しており、これにより、スキャナ９４Ａやプリンタ９４Ｂの状態検知や状態設定、スキャナ９４Ａやプリンタ９４Ｂの起動等の実行コマンド等を発行することができる。
【０１８９】
以下、図１７及び図１８を参照しながらスキャナ９５Ａ，プリンタ９５Ｂの動作について更に説明する。
【０１９０】
図１７は、図２に示したスキャナ／プリンタ９５の画像記録プロセスを説明する模式図である。
【０１９１】
図において、１０１Ｒはスキャンする原稿を表し、１０２Ｒはプリントする用紙を表す。これらは、例えばＡ４サイズである。１０３Ｒはスキャナのセンサのヘッドを表し、１０４Ｒはプリンタのヘッドを表す。プリンタのヘッド１０４Ｒはバブルジェット方式によってインクを吹き出すノズルが並んでおり、例えば１２８のノズルから構成されている。
【０１９２】
一方、センサは１２８より多い画素をスキャンできるように、例えば１４４画素のデータを出力できる。これらのヘッドはカラーの場合、スキャナのセンサではＲＧＢの３色分、プリンタヘッドではＣＭＹＫの４色分が並んで構成されている。１０５Ｒは画像処理部であり、スキャナセンサより入力したＲＧＢ信号を処理し、プリンタヘッドに合わせた特性のＣＭＹＫ２値信号として送る。
【０１９３】
画像処理部１０５Ｒはその画像処理系の途中のインタフェース部１０６ＲからＲＧＢ各色８ビットのデータを外部とやり取りすることができる。スキャナ／プリンタ９５Ｂではスキャナ９５Ａのセンサとプリンタ９５Ｂのヘッドが同期して動き、画像処理部１０５Ｒはパイプライン構成となっているため、大きな容量の画像メモリを持たずに処理がなされている。このためインタフェース１０５Ｒでやり取りされるデータの走査形式は特殊なものとなっている。１０７Ｒは外部機器である。
【０１９４】
図１８は、図２に示したスキャナ／プリンタ９５のスキャナ９５Ａの原稿走査状態を示す模式図である。
【０１９５】
図において、２０１Ｒはヘッドの動きを示している。ヘッド自体は原稿( 用紙) に対して図のように横方向( 主走査方向) に動く、センサの各画素はこれとは垂直に配列している。このため、データ２０３Ｒが並ぶ。一方、一般的なラスタ走査形式ではデータ２０４Ｒのように並ぶ。
【０１９６】
図１９は、図２に示したスキャナ／プリンタ９５のスキャナ９５Ａのバンド原稿走査状態を示す模式図である。
【０１９７】
図において、３０１Ｒは１ページを示し、３０２Ｒは第１のセグメントを示し、３０３Ｒは第２のセグメントを示している。スキャナセンサから出力され画像処理系を通り２値化されるまでの画像では、セグメント３０４Ｒのようにセグメント３０５Ｒより大きな画像が扱われ、幅３０６Ｒの大きさだけ重複して処理がなされる。
【０１９８】
以下、図２０〜図２２を参照しながら本実施例に示したＳ／Ｐサーバー装置が制御可能なプリンタの一例について説明する。
【０１９９】
本実施例に示したＳ／Ｐサーバー装置が制御可能なプリンタとしては、セントロニクス・インターフェースを利用可能なプリンタである。セントロニクス・インターフェースは、米国セントロニクス社が自社のプリンタ用に開発したコンピュータからプリンタにデータを送るための規格で、安価でかつ高速のデータを送ることができる。現在のプリンタは、ほとんどこのセントロニクスが標準となっている。
【０２００】
セントロニクスのデータ伝送は、図２０に示すようにＤＡＴＡＳＴＲＯＢＥ信号，ＡＣＫＮＯＷＬＥＤＧＥ（ＡＣＫ）信号，ＢＵＳＹ信号用の３本の制御線とＤＡＴＡ線によって行なう。
【０２０１】
ここで、ＤＡＴＡＳＴＲＯＢＥ信号は、ＤＡＴＡ線に、データが出力されたことを示す。ＢＵＳＹ信号は、現在プリンタが動作中であり、データを受け取れないことを示か、または、データ・バッファがフルであることを示す。
【０２０２】
ＡＣＫ信号は、データの読み取りが正常に終了したことを示す。
【０２０３】
基本的には、上記３本の制御線で十分であるが、プリンタの制御を考えて、紙切れなどの信号線も定義してある。図２０には、信号名，入出力，備考を示した。ピン番号は３６ピン、２５ピン、１４ピンとコネクタの種類がまちまちな事と、各社で若干定義が変わっていたり、削除されている場合も多いため割愛した。
【０２０４】
図２１は、セントロニクスＩ／Ｆ制御回路の一例を示す回路ブロック図である。
【０２０５】
図において、２０１ＡはセントロニクスＩ／Ｆ制御回路で、データバッファ２０２Ａ，制御線バッファ２０３Ａを備え、図２２に示すタイミングチャートに従ってデータ処理が行なわれる。
【０２０６】
図２３は、図２１に示したセントロニクスＩ／Ｆ制御回路によるホスト−プリンタ間の信号処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示し、特にホスト側の処理に対応する。
【０２０７】
まず、ＢＵＳＹ信号が「Ｌ」で、かつＡＣＫ信号が「Ｈ」となったら(1) 、データを設定し(2) 、ＤＡＴＡＳＴＲＯＢＥ信号を出力して(3) 、ステップ(1) に戻る。
【０２０８】
図２４は、図２１に示したセントロニクスＩ／Ｆ制御回路によるホスト−プリンタ間の信号処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示し、特にセントロニクス対応プリンタ側の処理に対応する。
【０２０９】
まず、ＢＵＳＹ信号が「Ｌ」となり(1) 、ＢＵＳＹ信号を「Ｈ」とし(2) 、データをデータバスより取り込みを開始する(3) 。次いで、データ取り込みを終了し(4) 、ＡＣＫ信号が「Ｌ」とし(5) 、ＢＵＳＹ信号を「Ｌ」、かつＡＣＫ信号を「Ｈ」に設定し(6) 、ステップ(1) に戻る。データ転送はこのようにして行なわれる。
【０２１０】
セントロニクス・プリンタは上記転送条件のもと、”ＥＳＣ”（０ｘ１Ｂ）をコマンドやデータの先頭に付けた方法で制御される場合が多い。例えば、あるプリンタにデータを転送する場合、ＥＳＣ  （   Ａ  ＣＯＵＮＴ  ＣＯＬＯＲＤＡＴＡ，（１Ｂ   ２８ ４１ ＣＯＵＮＴ  ＣＯＬＯＲ  ＤＡＴＡ）等のように送る。
【０２１１】
ここで、「ＥＳＣ  （  Ａ」は制御用のコードである。「ＣＯＵＮＴ」はデータ数である。「ＣＯＬＯＲ」はＲＧＢ、ＣＭＹなどの色空間定義である。「ＤＡＴＡ」はカラー画像データである。このようなデータコマンドを連続してプリンタに送れば、プリントが行なわれる。なお、制御コードや構成は各社のプリンタによって違っている。しかしながら、”ＥＳＣ”を用いた制御方法は、比較的類似している。
【０２１２】
本システムは、セントロニクス・ポートにセントロニクス・プリンタを接続し、制御コードを、ソフトウエアプログラムでサポートすることにより、各種セントロニクス・プリンタを利用することができる。
【０２１３】
図２５は本発明に係るスキャナプリンタサーバー（ネットワークサーバー）ＳＰ１とホストコンピュータとのプログラム構成を説明する図である。以下、システム全体の流れを概略的に説明する。なお、図２と同一のものには同一の符号を付してある。また、図２５でのホストコンピュータは図２に示すＭａｃｉｎｔｏｓｈのステーションＳＴ１を例にして説明するが、他のステーションＳＴ２，ＳＴ３等であっても構わない。
【０２１４】
ホストコンピュータ（ステーション）ＳＴ１のオペレータがアプリケーションプログラム５６を用いて作成した印刷データをプリントするため、所望とするスキャナプリンタネットワークサーバー，プリンタ，紙サイズ，送出するデータ形式等を選択指示すると、アプリケーションプログラム５６は変換プログラム５４にデータ（指示情報を含む）を通信する。変換プログラム５４はアプリケーションプログラム５６から送られたデータを選択されたネットワークサーバーＳＰ１が受け付けるデータ構造に変換し、通信プログラム５３，ＴＣＰ／ＩＰプログラム５２に通信する。例えばＭａｃｉｎｔｏｓｈのステーションＳＴ１では、ＱｕｉｃｋＤｒａｗデータからＣａＰＳＬデータに変換し、ＩＢＭＰＣのステーションＳＴ２では、ＧＤＩデータからＣａＰＳＬデータに変換する。
【０２１５】
通信プログラム５３は、変換プログラム５４から送出されたデータをＴＣＰ／ＩＰプログラムを介してネットワークサーバーＳＰ１に通信し、ネットワークサーバーＳＰ１の通信プログラム８３がＴＣＰ／ＩＰプログラム８２を介して受信し、システム全体制御プログラム９３に通信する。システム全体制御プログラム９３は、送られてきたデータを解析し、その時のネットワークサーバーＳＰ１の状態と送られてきたデータに従い、以下の処理を行う。
【０２１６】
システム全体制御プログラム９３は、印刷データをＰＤＬインタープリタープログラム８４に送る。ＰＤＬインタープリタープログラム８４は印刷データを受け取り、指定されたプリンタ（例えばスキャナプリンタ９５のプリンタ）が受け入れ可能なデータに変換する。例えばプストスクリプト（商品名）やＣａＰＳＬというＰＤＬのデータから画像データに変換する。システム全体制御プログラム９３はＰＤＬインタープリタープログラム８４が変換したデータを画像入出力装置制御プログラムとしてのデバイスドライバ８６に送り、デバイスドライバ８６はデータを指定されたプリンタに送りプリントさせる。
【０２１７】
次に、ホストコンピュータＳＴ１のオペレータがスキャナアプリケーションプログラム５８を用いて画像入力するため、所望とするスキャナプリンタネットワークサーバー，スキャナ，画像の領域，解像度，カラーあるいはモノカラー，圧縮の種類等を選択指示すると、スキャナアプリケーションプログラム５８はスキャナインタフェースプログラム５７を介して通信プログラム５３に通信する。通信プログラム５３は、スキャナインタフェースプログラム５７を介して送られたデータをＴＣＰ／ＩＰプログラムを介して指定されたネットワークサーバーＳＰ１に通信し、ネットワークサーバーＳＰ１の通信プログラム８３がＴＣＰ／ＩＰプログラム８２を介して受信し、システム全体制御プログラム９３に通信する。システム全体制御プログラム９３は、入力した選択指示命令（画像入力命令）をスキャナ制御プログラム８５に送り、スキャナ制御プログラム８５は、命令に従って、画像入出力装置制御プログラムとしてのデバイスドライバ８６に命令を送り、デバイスドライバは指定されたスキャナ（例えばスキャナプリンタ９５のスキャナ）を起動して画像データを入力し、画像データをスキャナ制御プログラム８５へ送り、スキャナ制御プログラム８５は画像データをシステム全体制御プログラム９３へ送り、システム全体制御プログラム９３は通信プログラム８３へ送り、ネットワークサーバーＳＰ１の通信プログラム８３がＴＣＰ／ＩＰプログラム８２を介して指定されたホストコンピュータの通信プログラム（例えば通信プログラム５３）へ画像データを送信する。通信プログラム５３がＴＣＰ／ＩＰプログラム５２を介して受信した画像データは、さらにスキャナアプリケーションプログラム５８に送られる。
【０２１８】
次に、ワークステーションＳＴ１から指定されたスキャナプリンタサーバーへ（例えばスキャナプリンタサーバーＳＰ１へ）スキャナプリンタサーバーの状態を問い合わせる命令が送られた場合は、システム全体制御プログラム９３がネットワークサーバーＳＰ１の状態（例えばネットワークサーバーＳＰ１に接続されているスキャナプリンタの種類，解像度，紙サイズ，色処理能力等）を取得し、ＴＣＰ／ＩＰプログラム８２を介して、通信プログラム８３が指定されたホストコンピュータ（例えばワークステーションＳＴ１）に通信する。
【０２１９】
また、画像入出力装置としてのスキャナプリンタ９４，９５またはネットワークサーバーＳＰ１内でエラーが発生した場合は、システム全体制御プログラム９３がエラーの状況を管理し、通信プログラム８３がＴＣＰ／ＩＰプログラム８２を介して指定されたホストコンピュータ（例えばホストコンピュータＳＰ１）に通信する。
【０２２０】
以上のように、本実施例ではこれらのプログラム構成により、ホストコンピュータのアプリケーションプログラム（例えばＤＴＰソフト）からホストコンピュータで指定したプリンタでプリントすることができる。また、ホストコンピュータのスキャナアプリケーションプログラム（例えばＤＴＰソフト）からホストコンピュータで指定したスキャナから画像を入力できるし、指定したスキャナで入力した画像を別のホストコンピュータへ送出することもできる。また、指定したネットワークサーバーＳＰ１の状態（接続されるスキャナプリンタの状態）を確認することができる。
【０２２１】
なお、図２５では、ＬＡＮ９６に接続されるホストコンピュータ，スキャナプリンタサーバーはいくつ接続されていても本発明の適用を妨げるものではない。以下、ホストコンピュータ，ホストコンピュータとネットワークサーバーＳＰ１との間のネットワーク処理について説明する。
【０２２２】
ホストコンピュータにおいて、プリントプロセスを行なう場合、大きく分けて第１〜第３の処理、すなわち第１はアプリケーションプログラム（例えばＤＴＰソフト）によるデータの作成処理、第２はアプリケーションプログラムによって作成されたデータの上記ＣａＰＳＬコードへの変換処理、第３はＣａＰＳＬコードのネットワークサーバーＳＰ１への転送処理である。
【０２２３】
なお、第１のデータの作成処理で作成されたデータは、使用するマシンの機種，アプリケーションプログラムに依存する。例えばＳＵＮワークステーションでＦｒａｍｅ  Ｔｅｃｈｎｏｌｏｇｙ社製のＤＴＰプログラムであるＦｒａｍｅＭａｋｅｒ（商品名）を使用した場合、ＭＩＦ（商品名）ファイルまたはＩＰＬ（商品名）ファイルで出力される。また、使用するマシンの機種がＩＢＭ社製のＩＢＭ−ＰＣでＷｉｎｄｏｗｓ（商品名）対応のアプリケーションプログラムを使用した場合、ＧＤＩ関数の呼び出しになる。また、アップル社製のＭａｃｉｎｔｏｓｈ（商品名）を使用した場合、ＱｕｉｃｋＤｒａｗ関数の呼び出しになる。
【０２２４】
また、アプリケーションプログラムによって作成されたデータの上記ＣａＰＳＬコードへの変換処理では、第１の処理で作成されたデータをＣａＰＳＬコードに変換するので、マシンの機種，作成されるファイル形式に依存する。例えばＳＵＮワークステーションで上記Ｆｒａｍｅ  Ｍａｋｅｒを使用した場合、ＭＩＦファイルまたはＩＰＬファイルをＣａＰＳＬコードに変換するプログラムとする。また、使用するマシンの機種がＩＢＭ社製のＩＢＭ−ＰＣでＷｉｎｄｏｗｓ対応のアプリケーションプログラムを使用した場合、ＧＤＩ関数からＣａＰＳＬコードへの変換を変換プログラムで行なう。さらに、アップル社製のＭａｃｉｎｔｏｓｈ（商品名）を使用した場合、ＱｕｉｃｋＤｒａｗ関数をＣａＰＳＬコードへの変換を変換プログラムで行なう。
【０２２５】
さらに、第３はＣａＰＳＬコードのネットワークサーバーＳＰ１への転送処理においては、送信するデータはＣａＰＳＬであるが、送信処理は送信する際に使用するプログラムに依存する。例えば図２に示す通信プログラム８３を使用したり、ＵＮＩＸをＯＳとしているホストコンピュータではｌｐｑ／ｌｐｄプログラム９０を使用する。
【０２２６】
また、ホストコンピュータにおいてスキャナプロセスを行なう場合、大きく第１，第２のの処理が行なわれる。
第１にイメージデータをネットワークサーバーＳＰ１から受信する。第２にスキャナアプリケーションプログラムでイメージデータの表示，保存を行なう。
【０２２７】
第１の処理において、受け取るイメージデータは、第２の処理で使用するスキャナアプリケーションプログラムが扱えるイメージデータ形式に保存する。また、ネットワークサーバーＳＰ１からイメージデータを受信する際に使用するプログラムとしては、図２に示す通信プログラム８３を使用する。
【０２２８】
第２の処理において、スキャナアプリケーションプログラムの使用に依存して、扱えるイメージデータ形式が決まる。入力，出力各々について扱えるイメージデータ形式を定める。例えばビットマップおよびＴＩＦＦ形式を入力として許可する。また、出力としてビットマップおよびＴＩＦＦ形式を許可する。ファイルで保存する場合、ＴＩＦＦ形式を用いる。表示する場合にはビットマップを用いることができる。
【０２２９】
ホストコンピュータとネットワークサーバーＳＰ１間をネットワークで接続する時は、複数のプログラムを使用する。中心となるプログラムは図２に示す通信プログラム８３である。
【０２３０】
ネットワークサーバーＳＰ１では、例えば図２５に示す通信プログラム５３とネットワークサーバーＳＰ１側の通信プログラム８３がある。ホストコンピュータ側の通信プログラムは、主として第１〜第３の処理を行なう。
【０２３１】
第１は下位レイアを介して、ネットワークサーバーＳＰ１とリンクを張る。第２はＣａＰＳＬデータをネットワークサーバーＳＰ１へ送信する。第３はネットワークサーバーＳＰ１からイメージデータを受信して上位レイヤへ送る。
【０２３２】
一方、ネットワークサーバーＳＰ１は、主として第１，第２の処理を行なう。第１はＴＣＰ／ＩＰプログラム８２を介して通信プログラム８３で受信したＣａＰＳＬデータをシステム全体制御プログラム９３へ送る。第２はシステム全体制御プログラム９３から受け取ったイメージデータを通信プログラム８３へ送信する。
【０２３３】
プリント処理及びスキャン処理は、ホストコンピュータの上位レイアからのプリントおよびスキャンの要求を通信プログラム５３が受け取ることで開始される。通信プログラム５３は、下位レイヤを使用して、リンクを張る。例えばイーサネットを介して接続した場合、下位レイアとして、ＴＣＰ／ＩＰプログラム５２を使用してデータの送受信を行なう。通信プログラム５３では、リンクを張った後に、プリントおよびスキャンに特有の情報の受け渡しをして、適合する条件にプリンタ及びスキャナを設定する。プリンタおよびスキャナの設定が終了後は、プリントはＣａＰＳＬをクライアントからサーバーへ、またスキャナの設定が終了した後は、プリント時はＣａＰＳＬをクライアントからサーバーへ、またスキャン時はイメージデータをサーバからクライアントへ各々送信する。プログラムとして、図２に示したｌｐｒ／ｌｐｄプログラム９０も使用できる。ホストとして、ＵＮＩＸマシンを使用した場合に、ＵＮＩＸの標準のプリントコマンドであるｌｐｒを使用してプリントが可能となる。このｌｐｒ／ｌｐｄプログラム９０（図２参照）はプリント時のみに使用する。サーバー側にスプールディスクがない場合でもデフォルトの設定での出力は可能である。
【０２３４】
システム全体制御プログラム９３の基本的な動作は、イベントを入力してイベントに応じた処理を行なうことと、エラー中の入出力装置に状態を問い合わせ、エラーから回復していた場合、エラーによって中断していたジョブがあれば再開することである。
【０２３５】
以下、図２６に示すフローチャートを参照しながら本発明に係るサーバー装置における全体制御動作について説明する。
【０２３６】
図２６本発明に係るサーバー装置における全体制御手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【０２３７】
先ず、ステップ(1) でイベントがあるかどうかを判別し(1) 、ある場合はステップ(2) でイベントに応じた処理を行ない、ステップ(1) でイベントが無い場合は、ステップ(3) でエラー中の入出力装置があるか調べ、ある場合はステップ(4) でエラー中か問い合わせ、ステップ(5) でエラー中か判別し、エラーから回復していればステップ(6) でエラーにより中断していたジョブがあれば再開する。システム全体制御プログラム９３はネットワークサーバーＳＰ１内でＴＣＰ／ＩＰプログラム８２，通信プログラム８３，ＰＤＬインタープリタープログラム８４，スキャナ制御プログラム８５，デバイスドライバ８６と通信することができ、さまざまなイベントを受けとる。通信プログラム８３から送られるイベントとして、ジョブの到着、データ転送の終了があり、ＰＤＬインタープリタープログラム８４から送られるイベントとして、受信データ処理終了、画像データ描画終了、ページ描画終了、プリントジョブ終了があり、スキャナ制御プログラム８５からのイベントとして、画像データ転送要求、画像入力処理終了、ページプリント終了、エラー発生、正常状態等のイベントがある。
【０２３８】
また、システム全体制御プログラム９３では各イベントに対する動作が定まっており、例えば、通信プログラム８３からジョブの到着が送られると、ジョブの内容を解析し、プリントジョブの場合はＰＤＬインタープリタープログラム８４にデータを転送し、画像入力ジョブの場合はスキャナ制御プログラム８５にデータを転送する。
【０２３９】
さらに、デバイスドライバ８６から送られるエラーとしては、紙なし、インク切れ、紙詰まり、電源ＯＦＦ等がある。
【０２４０】
なお、本実施例では、ネットワークサーバーＳＰ１では、プリンタのページ記述言語としてＣａＰＳＬを採用している。そこで、ＣａＰＳＬの機能処理等について説明する。なお、プリンタのページ記述言語としては、ＣａｐＳＬに限定されるものではない。
【０２４１】
ＣａＰＳＬの機能は、図形，文字，イメージを表現している制御コードを入力して、ネットワークサーバーＳＰ１のバンドメモリと呼ばれる描画領域に画像を展開するタスクである。
【０２４２】
ＰＤＬインタープリタープログラム８４と直接コミュニケーションを持つプログラムは、システム全体制御プログラム９３である。コミュニケーションは、以下の第１，第２のコミュニケーションである。
【０２４３】
第１のコミュニケーションは、システム全体制御プログラム９３がＣａＰＳＬに引き渡すコミュニケーションであり、その内容は、ＣａＰＳＬコードの格納されたファイル名，ＣａＰＳＬコードが格納されてあるメモリの先頭アドレスおよびサイズ，バンドメモリ描画可能性等である。
【０２４４】
第２のコミュニケーションは、ＰＤＬインタープリタープログラム８４がシステム全体制御プログラム９３に引き渡すコミュニケーションであり、その内容は、バンドメモリ描画終了，ページ描画終了，ドキュメント描画終了，バンドメモリ描画領域，空バンドメモリの情報である。
【０２４５】
この際、ＰＤＬインタープリタープログラム８４の内部では、以下の処理が行われる。
【０２４６】
ネットワークサーバーＳＰ１では、バンドメモリと呼ばれる、ある幅を持ったメモリを持っているので、ＰＤＬインタープリタープログラム８４は画像をバンド幅分だけ部分的に展開しなければならない。ＰＤＬインタープリタープログラム８４は、図２７に示すようなプリンタ制御コマンドを入力する。ＣａＰＳＬコードは、ＰＤＬインタープリタープログラム８４内部でレイアウタと呼ばれるプログラム（図示しない）に基づいて図２８に示す中間コードに置き換えられる。本実施例において、中間コードとは、いわゆる抽象的な図形の表現を具体的なデバイスの表現にしたものである。そして、１ページ分の中間コードができあがると、ペインタと呼ばれるプログラム（図示しない）に基づいて中間コードを参照しながらバンドメモリにラスタイメージを展開する。
【０２４７】
例えば図２９に示すような図形を描くようなＣａＰＳＬコードをレイアウタが受け取ると、デバイスに依存した図２８に示す中間コードに置き換える。ここで、レイアウタは、図形の大きさに基づいてその図形が何バンド目から何バンド目まで描かれているかを計算して、中間コードに登録する。図２９では、円（ｃｉｒｃｌｅ）が１〜２バンド、矩形（Ｒｅｃｔａｎｇｌｅ）が２〜４バンドに描かれる場合を示す。なお、その後に書かれている数字は、デバイス座標系における、図形の位置や半径等である。
【０２４８】
次に、ペインタ（実際にメモリに描画するプログラム）は中間コードを参照しながら、図２９に示すような図形を展開して、バンドメモリに描画する。実際には、メモリはバンド幅分の大きさしか持っていないので、バンドを描画すると、そのデータをプリンタに送り、メモリをクリアして、次のバンドのデータを描き始める。第０番目の描画をするために、中間コードを参照すると、第０番目のバンドに描くべきデータがないことが分かり、次のバンドに移る。すると、ペインタは第１バンド目に描くデータをサーチし、円を検知して１バンド分だけ描画する。次に第２バンド目に移り、円と矩形を描画することが分かるので、円の続きの部分の描画と矩形を１バンド分だけ描画する。このようにして、ペインタは、１ページ分のデータを描画するのである。
【０２４９】
なお、ＣａＰＳＬが展開するデータの１画素の構造は、図３０に示されるように、ＲＧＢＸの３２ビットになっている。これは、色のデータを表わすＲＧＢ２４ビットと、付加情報のための８ビットの付加情報Ｘから構成されている。ここで、付加情報Ｘの中は、ビット０がイメージ領域判定ビットであり、ＣａＰＳＬがイメージをバンドメモリに描画する時には、このビットをＯＮにする。また、ビット２は、黒情報ビットになっており、ＣａＰＳＬで展開された図形や文字の色がＲＧＢともに０の場合は、このビットをＯＮにする。これらの情報は、第１のインタフェース回路４−１でプリンタ９４Ｂでプリントアウトする際に解析され、画質を向上させる情報となる。
【０２５０】
以下、図３１に示すデータ処理経路図を参照しながら、スキャナ９４Ａ，９５Ａの動作について説明する。なお、図２５と同一のもには同じ符号を付してある。
【０２５１】
図３１は、図２に示したスキャナ９４Ａ，９５Ａの動作を説明するデータ処理経路図である。なお、画像をバンド単位で切り分けてスキャンするスキャナの場合と、１度に全画像をスキャンする場合のタスクの動作が多少異なるためそれぞれを説明する。
【０２５２】
画像をバンド単位で切り分けてスキャンするスキャナの場合において、先ず、クライアントマシンとしてのホストコンピュータＳＴ１から送られてきた、スキャン命令Ｃ１をＴＣＰ／ＩＰプログラム８２を介して通信プログラム８３が受信すると、システム全体制御プログラム９３にスキャン命令Ｃ２の到着を知らせる。
【０２５３】
システム全体制御プログラム９３は、この装置がスプールＩを持つ場合は、受信したスキャン命令Ｃ２を元にしてスプールファイルを作って保存し、そのファイル名Ｃ３をスキャナ制御プログラム８５に送る。スプールＩを持たない場合は、スキャナコマンドＣ３を直接スキャナ制御プログラム８５に送る。
【０２５４】
スキャナ制御プログラム８５は、スキャナコマンドＣ３を解釈し、解像度等のスキャナ条件設定命令Ｃ４をデバイスドライバ８６に与えて指定されたスキャナを起動する。デバイスドライバ８６は、それぞれのスキャナ制御プログラム８５に対応して存在する関数である。
【０２５５】
スキャナ条件を設定したデバイスドライバ８６は、リターン値Ｃ５をスキャナ制御プログラム８５に返す。これを受けるとスキャナ制御プログラム８５は、スキャン開始命令Ｃ６をデバイスドライバ８６に与えて指定されたスキャナを起動する。デバイスドライバ８６は、スキャナＥを作動させて画像データを読み込みバンドメモリＦに書き込む。１バンド分描き込むと、スキャナ制御プログラム８５にスキャン終了のリターン値Ｃ９を返す。これを受け取ったスキャナ制御プログラム８５は、バンドメモリＦの画像データに画像処理、例えばＪＰＥＧ圧縮ボードを用いることで圧縮を行ってバッファ領域Ｈへ描きこむ。
【０２５６】
バンドメモリＦ内のデータを全て処理し終わると、スキャナ制御プログラム８５は、システム全体制御プログラム９３に転送要求Ｃ１１送り、また同時にデバイスドライバ８６にスキャン開始命令Ｃ６を与えて起動する。このスキャンは、前回のスキャンの時の終了点から読み込むようにスキャナ制御プログラム８５で制御する。
【０２５７】
一方、転送要求Ｃ１１を受けたシステム全体制御プログラム９３は、通信プログラム８３に転送要求Ｃ１２を送る。これを受け取った通信プログラム８３は、指定されたクライアントマシンとしてのホストコンピュータにバッファ領域Ｈ内の処理された画像データを送る。このとき通信プログラム８３，システム全体制御プログラム９３は、スキャナ制御プログラム８５とは、異なったプログラムであるので、スキャナ制御プログラム８５内の関数であるデバイスドライバ８６の制御で動くスキャナ作動中であっても、画像データの転送を行うことができる。
【０２５８】
通信プログラム８３は、転送が終了するとシステム全体制御プログラム９３に転送終了信号Ｃ１４を送り、これを受け取るとシステム全体制御プログラム９３は、スキャナ制御プログラム８５に転送終了Ｃ１５を送る。スキャナ制御プログラム８５は、デバイスドライバ８６からのスキャン終了を伝えるリターン値Ｃ９，転送終了Ｃ１５の両方を受けると、バンドメモリＦ内の画像データを画像処理しバッファ領域Ｈに書き込む。以上の処理を繰り返すことで画像データをホストコンピュータＳＴ１へ送ることができる。なお、別のホストコンピュータ（例えばホストコンピュータＳＴ２またはホストコンピュータＳＴ３）を指定することで、他のホストコンピュータへ画像データを送ることもできる。
【０２５９】
全ての画像データの転送をスキャナ制御プログラム８５が確認すると、システム全体制御プログラム９３を介して通信プログラム８３まで終了を知らせる。
【０２６０】
一方、１度に全画像をスキャンする場合は、クライアントマシンとしての、例えばホストコンピュータＳＴ１から送られてきた、スキャン命令Ｃ１を通信プログラム８３が受信すると、システム全体制御プログラム９３にスキャン命令Ｃ２の到着を知らせる。
【０２６１】
システム全体制御プログラム９３は、この装置がスプールＩを持つ場合は、受信したスキャン命令Ｃ２を元にしてスプールファイルを作って保存し、そのファイル名Ｃ３をスキャナ制御プログラム８５に送る。スプールＩを持たない場合は、スキャナコマンドＣ３を直接スキャナ制御プログラム８５に送る。
【０２６２】
スキャナ制御プログラム８５は、スキャナコマンドＣ３を解釈し、解像度等のスキャナ条件設定Ｃ４をデバイスドライバ８６に与えて指定されたスキャナを起動する。スキャナ条件を設定したデバイスドライバ８６は、リターン値Ｃ５をスキャナ制御プログラム８５に返す。これを受けるとスキャナ制御プログラム８５は、スキャン開始命令Ｃ６をデバイスドライバ８６に起動する。ここでのスキャナＥは、読み込み動作を途中で止められないものとしている。
【０２６３】
デバイスドライバ８６は、命令Ｃ１０によりスキャナＥを作動させて画像データすべてを取り込み、取り込んだ画像データに画像処理、例えばＪＰＥＧボードＧを用いてＪＰＥＧ圧縮を行なってバッファＨに描き込むことができる。
【０２６４】
また、画像データを生のままバッファＨに書き込むことも可能である。バッファＨが一杯になると、スキャナ制御プログラム８５は、システム全体制御プログラム９３に転送要求Ｃ１１を送る。これを受けたシステム全体制御プログラム９３は、通信プログラム８３に転送命令Ｃ１２を出し、通信プログラム８３がバッファＨに描かれたデータを指定されたホストコンピュータＳＴ１へ転送する。なお、別のホストコンピュータ（例えばホストコンピュータＳＴ２またはホストコンピュータＳＴ３）を指定することで、他のホストコンピュータへ画像データを送ることができる。
【０２６５】
通信プログラム８３は、転送が終了するとシステム全体制御プログラム９３に転送終了信号Ｃ１４を送り、これを受け取るとシステム全体制御プログラム９３は、スキャナ制御プログラム８５に転送終了Ｃ１５を送る。スキャナ制御プログラム８５は、転送終了Ｃ１５が送られてくるとバンドメモリ内の画像データを画像処理しバッファＨに書き込む。以上の処理を繰り返すことで画像データをクライアントマシンとしての指定されたホストコンピュータへ送ることができる。
【０２６６】
スキャナ制御プログラム８５は、全ての画像データの転送を確認すると、システム全体制御プログラム９３を介して通信プログラム８３まで終了を知らせる。
【０２６７】
以下、図３２および図３３を参照しながら本発明に係るサーバー装置におけるホストコンピュータからＳ／Ｐサーバー装置へのデータの流れについて説明する。
【０２６８】
ホストコンピュータから指定されたＳ／Ｐサーバー装置（ネットワークサーバー）ＳＰ１へのデータの流れにおいて、先ず、例えばホストコンピュータＳＴ１でＤＴＰのアプリケーションプログラム５６が実行されていてドキュメントを作成する。このドキュメントのデータ形式は、ホストコンピュータの機種、アプリケーションプログラムに依存したものである。そこで指定されたＳ／Ｐサーバー装置ＳＰ１が解釈できる形式のデータに変換する必要がある。その変換プログラムが変換プログラム５４である。ＤＴＰのアプリケーションプログラム（ＤＴＰアプリ）５６からはホストコンピュータのシステムに依存したデータが変換プログラム５４に送られる。変換プログラム５４は、受けとったファイルを、例えばＣａＰＳＬコードに変換する。さらに、ＣａＰＳＬコードに変換したファイルは通信プログラムであるｌｐｄ５０５または通信プログラム５３に送られる。
【０２６９】
通信プログラム５３はホストコンピュータとＳ／Ｐサーバー装置ＳＰ１の間でネットワークを介して接続、通信を行なうためのものであり、ここでは２つの内のどちらか一方のプログラムを用意する。
【０２７０】
先ず始めに、通信プログラム５３を用いた時を説明する。
【０２７１】
通信プログラム５３に対応するプログラムとして、Ｓ／Ｐサーバー装置ＳＰ１側で通信を司るプログラムは通信プログラム８３であり、このプログラム間ではＴＣＰ／ＩＰプログラムを使用する。プリント時の通信プログラム５３の役割は主に２つあり、一つは下位レイヤ（ＴＣＰ／ＩＰ）を介して通信プログラム８３とリンクを張り、通信できる状態にすることである。もう一つは、変換プログラム５４が生成したＣａＰＳＬデータファイルをＳ／Ｐサーバー装置ＳＰ１に送信することである。
【０２７２】
また、通信プログラム８３の役割はリンクを張りプリント処理に必要な情報をやりとりして最適にプリントできるようにすること。通信プログラム５３の送ってくるデータを受けとり、システム全体制御プログラム９３にデータの到着を知らせる。この時、送られてきたＣａＰＳＬデータ、およびそれに付随する情報は受信バッファに一時的に貯められている。また、Ｓ／Ｐサーバー装置ＳＰ１側で何らかのエラーが起こった時に、その情報を通信プログラム５３に送信するというような役割もある。
【０２７３】
以下、通信プログラム８３からプリントアウトまでの処理について説明する。
【０２７４】
ここまでで、ＤＴＰアプリケーションプログラム５６で作成したドキュメントデータはＳ／Ｐサーバー装置ＳＰ１に送られたことになる。次に通信プログラム８３はシステム全体制御プログラム９３にジョブ（例えばカラーレーザ複写装置（ＣＬＣ）からプリントアウト）の到着のイベントを送る。システム全体制御プログラム９３はイベント駆動型のプログラムで通信プログラム８３，デバイスドライバ８６，ＰＤＬインタープリタープログラム８４から送られてくるイベントを常に待っている。イベントが入ってくるとイベントの発信元と内容を調べてそれに対応した処理を行なう。  今、システム全体制御プログラム９３には通信プログラム８３から「ジョブが到着した」というイベントが入力されている。この時、システム全体制御プログラム９３はイベントを解析してハードディスク５１９を持っている時には受信バッファのドキュメントデータを一旦スプールする。そして、ジョブが幾つかたまっている場合には、ジョブの内容、プリンタ、スキャナの状態、ジョブの優先順位などを考慮して最適にジョブを起動する。
【０２７５】
ハードディスク５１９がない場合には、データを貯めておくことが出来ないので、データの格納されているアドレスとサイズをＰＤＬインタープリタープログラム８４に知らせてプリントアウト処理を直ちに行なうように要求を出す。ここでは、ハードディスク５１９があるものとして説明を続ける。システム全体制御プログラム９３はジョブの内容を判断してＰＤＬインタープリタープログラム８４にスプールファイル名を渡し、起動の要求をする。
【０２７６】
以下、図３３に示すブロック図を参照しながらさらに詳述する。
【０２７７】
図３３は本発明に係るＳ／Ｐサーバー装置ＳＰ１と、例えばカラーレーザ複写装置（ＣＬＣ）とのデータ処理状態を説明するブロック図である。
【０２７８】
図３２に示したＰＤＬインタープリタープログラム８４はスプールファイルからＣａＰＳＬデータを読み込み, 解釈して、図形、文字、イメージをバンドメモリ５１８に描画する。ＣａＰＳＬデータの中に圧縮符合化されたイメージデータがあった場合にはＰＤＬインタープリタープログラム８４は、標準圧縮伸長部６０６でイメージデータを伸長してバンドメモリに描画する。１バンド分の描画を終了すると、ＰＤＬインタープリタープログラム８４はシステム全体制御プログラム９３に対して「１バンド描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム９３はデバイスドライバ８６に「１バンド排紙」の要求イベントを発行する。
【０２７９】
以下、バンドメモリ６０５から圧縮メモリ６１５までのデータの流れについて説明する。なお、ここではデバイスドライバ８６の動作について説明する。
【０２８０】
「１バンド排紙」のイベントを受けとったデバイスドライバ８６は、バンドメモリ６０５に格納されている展開データを、サブボード６１０Ａのラインバッファ６１７に転送する。ラインバッファ６１７に格納された展開データはブロック順次でリアルタイム圧縮伸長部６１６に転送される。リアルタイム圧縮伸長部６１６では、ブロック順次に得られる画像データを圧縮していき、順次圧縮メモリ６１５に格納する。圧縮メモリ６１５のアドレス生成や、ライト信号の生成はＤＭＡコントローラ６２１が行なう。
【０２８１】
１バンド分の圧縮が終了するとデバイスドライバ８６はシステム全体制御プログラム９３に対して「１バンド排紙終了」のイベントを送信する。イベントを受けとったシステム全体制御プログラム９３は、ＰＤＬインタープリタープログラム８４に対して「１バンド描画要求」イベントを出力する。このようにバンド毎に描画しては、圧縮するという処理を繰り返し１ページ分の圧縮展開イメージを圧縮メモリ６１５に格納する。最後のバンドの格納が終了すると、ＰＤＬインタープリタープログラム８４はシステム全体制御プログラム９３に対して「１ページ描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム９３は、デバイスドライバ８６に対して「１ページ排紙命令」を発行する。
【０２８２】
「１ページ排紙命令」を受けとったデバイスドライバは、圧縮メモリ６１５に格納されている１ページ分の展開イメージをプリントアウトするために次のような処理を行なう。
【０２８３】
ＣＰＵ６１１はＤＰＲＡＭ６２２をＯＮにしてからリアルタイム圧縮伸長部６１６，ＤＭＡコントローラ６２１の初期化および指定されたプリンタ６２０とのコマンドの通信を行ないリアルタイム圧縮伸長部６１６に伸長開始の命令を出す。リアルタイム圧縮伸長部６１６はＤＭＡコントローラ６２１にアクセスし、ＤＭＡコントローラ６２１はアドレス、リード信号の生成を行ない、圧縮メモリ６１５より圧縮データがリアルタイム圧縮伸長部６１６に入力され、伸長された後ブロック順次でラインバッファ６１７に出力される。そしてラインバッファ６１７にてブロック順次からラスタ順次の変換をしてＳＰＩ／Ｆ６１８を通じて転送されプリンタ６２０に出力される。実際に、１ページ分のプリントアウトが終了するとデバイスドライバ８６から「１ページ排紙終了」のイベントがシステム全体制御プログラム９３に対して送られる。するとシステム全体制御プログラム９３は、ＰＤＬインタープリタープログラム８４に対して２ページ目の描画命令」を発行する。このようにして複数ページのドキュメントの出力が処理されて行く。
【０２８４】
最終ページの最終バンドの描画が終了すると、ＰＤＬインタープリタープログラム８４は「ドキュメント終了」イベントをシステム全体制御プログラム９３に対して発行する。システム全体制御プログラム９３はデバイスドライバ８６に対して「１ページ排紙命令」を出しデバイスドライバ８６はプリント処理を行ない「１ページ排紙終了」イベントをシステム全体制御プログラム９３に対し発行する。なお、プリント終了は、システム全体制御プログラム９３は必要ならば通信プログラム８３に「プリント終了」イベントを発行する。通信プログラム８３はホストコンピュータ側の通信プログラム５３に対しプリント終了を知らせる。
【０２８５】
また、エラー発生時には、例えばプリンタ６２０が、紙詰まりを起こしたり、紙無しの状態になった時にはデバイスドライバ８６からシステム全体制御プログラム９３に対して「エラー発生」のイベントが送られる。システム全体制御プログラム９３はその旨をＰＤＬインタープリタープログラム８４と通信プログラム８３に伝える。ＰＤＬインタープリタープログラム８４はプログラムの状態の退避などのエラー時の処理を行ない、通信プログラム８３はエラーの発生や、その内容をホストコンピュータ側の通信プログラム８３に伝える。なお、エラーが回復したかどうかを調べる方法は２つ考えられる。一つは、ある一定期間毎にシステム全体制御プログラム９３がデバイスドライバ８６に対して問い合わせて、デバイスドライバ８６が答えるという方法。
【０２８６】
もう一つは、システム全体制御プログラム９３がエラー回復を監視していて回復時にシステム全体制御プログラム９３に対して「エラー回復」のイベントを発行するというものである。
【０２８７】
以下、図３２，図３４を参照しながらホストコンピュータから、例えばバブルジェットカラー複写装置へのプリントデータ出力処理について詳述する。
【０２８８】
図３４は本発明に係るＳ／Ｐサーバー装置ＳＰ１と，例えばバブルジェットカラー複写装置（ＢＪＣ）とのデータ処理状態を説明するブロック図である。
【０２８９】
ホストコンピュータからＳ／Ｐサーバー装置ＳＰ１へのデータの流れは、図３２に示すように、まず、ホストコンピュータでＤＴＰのアプリケーションプログラム５６が実行されていてドキュメントを作成する。このドキュメントのデータ形式は、ホストコンピュータの機種、アプリケーションプログラムに依存したものである。そこでＳ／Ｐサーバー装置ＳＰ１が解釈できる形式のデータに変換する必要がある。その変換プログラムが変換プログラム５４である。ＤＴＰのアプリケーションプログラム５６からはＤＴＰアプリに依存したデータが変換プログラム５４に送られる。変換プログラム５４は、受けとったファイルをＣａＰＳＬコードに変換する。さらに、ＣａＰＳＬコードに変換したファイルは通信プログラムであるｌｐｄ５０５または通信プログラム５３に送られる。
【０２９０】
通信プログラム５３はホストコンピュータとＳ／Ｐサーバー装置ＳＰ１の間でネットワークを介して接続、通信を行なうためのものであり、ここでは２つのプログラムを用意する。
【０２９１】
先ず始めに、通信プログラム５３を用いた時を説明する。
【０２９２】
通信プログラム５３に対応するプログラムとして、Ｓ／Ｐサーバー装置ＳＰ１側で通信を司るプログラムは通信プログラム８３であり、このプログラム間ではＴＣＰ／ＩＰプログラムを使用する。
【０２９３】
プリント時の通信プログラム５３の役割は主に２つあり、一つは下位レイヤ（ＴＣＰ／ＩＰ）を介して指定したＳ／Ｐサーバー装置ＳＰ１とリンクを張り、通信できる状態にすることである。もう一つは、変換プログラム５４が生成したＣａＰＳＬデータファイルを通信プログラム８３に送信することである。
【０２９４】
また、通信プログラム８３の役割はリンクを張りプリント処理に必要な情報をやりとりして最適にプリントできるようにすること。通信プログラム５３の送ってくるデータを受けとり、システム全体制御プログラムにデータの到着を知らせる。この時、送られてきたＣａＰＳＬデータ、およびそれに付随する情報は受信バッファに一時的に貯められている。
【０２９５】
また、Ｓ／Ｐサーバー装置ＳＰ１側で何らかのエラーが起こった時に、その情報をホストコンピュータ側の通信プログラム５３に送信するというような役割もある。ホストコンピュータ側の通信プログラム５３からプリントアウトする際には、ＤＴＰアプリケーションプログラム５６で作成したドキュメントデータは指定されたＳ／Ｐサーバー装置ＳＰ１に送られたことになる。次に通信プログラム８３はシステム全体制御プログラム９３にジョブ（例えばＢＪカラー複写装置からプリントアウト）の到着のイベントを送る。システム全体制御プログラム９３はイベント駆動型のプログラムで通信プログラム８３，デバイスドライバ８６，ＰＤＬインタープリタープログラム８４から送られてくるイベントを常に待っている。イベントが入ってくるとイベントの発信元と内容を調べてそれに対応した処理を行なう。
【０２９６】
今、システム全体制御プログラム９３には通信プログラム８３から「ジョブが到着した」というイベントが入力されている。この時システム全体制御プログラム９３はイベントを解析してハードディスク５１９を持っている時には受信バッファのドキュメントデータを一旦スプールする。そして、ジョブが幾つかたまっている場合には、ジョブの内容、プリンタ、スキャナの状態、ジョブの優先順位などを考慮して最適にジョブを起動する。
【０２９７】
ハードディスク５１９がない場合には、データを貯めておくことが出来ないので、データの格納されているアドレスとサイズをＰＤＬインタープリタープログラム８４に知らせてプリントアウト処理を直ちに行なうように要求を出す。
ここでは、ハードディスクがあるものとして説明を続ける。システム全体制御プログラム９３はジョブの内容を判断してＰＤＬインタープリタープログラム８４にスプールファイル名を渡し、起動の要求をする。ＰＤＬインタープリタープログラム８４はスプールファイルからＣａＰＳＬデータを読み込み，解釈して、図形、文字、イメージをバンドメモリ５１８に描画する。ＣａＰＳＬデータの中に圧縮符合化されたイメージデータがあった場合にはＰＤＬインタープリタープログラム８４は標準圧縮伸長部６０６でイメージデータを伸長してバンドメモリ５１８に描画する。１バンド分の描画を終了すると、ＰＤＬインタープリタープログラム８４はシステム全体制御プログラム９３に対して「１バンド描画終了」のイベントを発行する。イベントを受けとったシステム全体制御プログラム９３はデバイスドライバ８６に「１バンド排紙」の要求イベントを発行する。
【０２９８】
一方、バンドメモリ５１８からプリントアウトする場合には、「１バンド排紙」の要求イベントを受けたデバイスドライバ８６はインタフェースボード６１０Ｂを制御して指定したバブルジェットカラープリンタ（ＢＪプリンタ）６５６にてプリントを行う。メインＣＰＵボード６１０のバンドメモり６０５に展開されている1 バンドの画像データをバンドメモり６５３に転送する。バンドメモリ６５３のデータはＢＪのヘッドに合った走査形式で読み出されバッファ６５１を通して画像処理部６５２に入る。ここでは予め設定したパラメータに従って処理がなされる。通常はバンドメモりにあるＮＴＳＣ−ＲＧＢをＢＪプリンタ６５６内部のＲＧＢに変換する処理を行う。そしてインタフェース６１８を通してＢＪプリンタ６５６のプリンタエンジン部へ送られる。ＢＪプリンタ６５６への制御はＣＰＵ６０１からのコマンドを解釈して、ＣＰＵ６１１が行う。なお、６５０はデュアルポートＲＡＭである。
【０２９９】
最終バンドまでこれらの処理を繰り返したら、ＰＤＬインタープリタープログラム８４は「ドキュメント終了」イベントをシステム全体制御プログラム９３に発行しプリントを終える。プリント終了の際、システム全体制御プログラム９３は必要ならば通信プログラム８３に「プリント終了」イベントを発行する。通信プログラム８３はホストコンピュータ側の通信プログラム５３に対しプリント終了を知らせる。
【０３００】
また、エラー発生時には、例えばプリンタ６５６が、紙詰まりを起こしたり、紙無しの状態になった時には、デバイスドライバ８６からシステム全体制御プログラム９３に対して「エラー発生」のイベントが送られる。システム全体制御プログラム９３はその旨をＰＤＬインタープリタープログラム８４と通信プログラム８３に伝える。ＰＤＬインタープリタープログラム８４はプログラムの状態の退避などのエラー時の処理を行ない、通信プリンタ８３はエラーの発生や、その内容をホストコンピュータ側の通信プログラム５３に伝える。なお、エラーが回復したかどうかを調べる方法は２つ考えられる。一つは、ある一定期間毎にシステム全体制御プログラム９３がデバイスドライバ８６に対して問い合わせて、デバイスドライバ８６が答えるという方法。
【０３０１】
もう一つは、システム全体制御プログラム９３がエラー回復を監視していて回復時にシステム全体制御プログラム９３に対して「エラー回復」のイベントを発行するというものである。
【０３０２】
以下、異機種間でカラー画像の通信を行う場合、単純にこれらの入出力機器を接続したのではお互いの特性が異なり、最適な色再現が難しくなってしまう。このため、現在では、各デバイス内では、固有の色空間で、通信路上では標準の色空間で通信し合う方向で検討が進んでいる。そこで、以下、このような要請の下での色空間の変換処理方法について説明する。
【０３０３】
なお、説明上、送信側の入力デバイスの色空間をＡ、通信路上の色空間をＢ、受信プリンタの色空間をＣとする。
【０３０４】
また、通信路上の色空間は現在では比較的知られている色空間、例えばカラー画像符号化で良く用いられるＹＣｒＣｂ色空間の場合について説明する。
【０３０５】
一方、送信側の色空間Ａは、ＹＣｒＣｂ色空間と異なり色域が異なるのが一般的で、通常は両色空間間を第（１）式のような形式で結合する。
【０３０６】
［Ｒａ］  ［ａ１１  ａ１２  ａ１３］［ｙ］
［Ｇａ］＝［ａ２１  ａ２２  ａ２３］［ｃｒ］
［Ｂａ］  ［ａ３１  ａ３２  ａ３３］［ｃｂ］……（１）
ここで、Ｒａ，Ｇａ，Ｂａは色空間Ａの任意の１点の座標（Ｒａ，Ｇａ，Ｂａ）であり、対応するＹＣｒＣｂ色空間上の１点を（ｙ，ｃｒ，ｃｂ）とする。これらのすべての色空間上で近似できるように、例えば最小２乗法により、ａ１１〜ａ３３までの係数を求めて利用する。従って、上記第（１）によりデバイスの入力色空間と通信上の色空間化変換を行う。
【０３０７】
一方、通信路上の標準色空間から記録側の色空間に変換する場合、いくつかの方法があるが、本実施例では以下のように処理する。
【０３０８】
先ず、通信路上での標準色空間をＹＣｒＣｂとした場合、ＹＣｒＣｂからＲＧＢに変換される。ＹＣｒＣｂ空間は、ＮＴＳＣと線形変換できるので、以下、ＮＴＳＣ色空間として説明する。
【０３０９】
また、ＮＴＳＣ標準色空間は加法混色を基本としているが、印刷は減方混色系が用いられる。従って、加法混色と減方混色の変換が必要となる。この変換は、構成が複雑で純粋に論理的に解決するのは非常に難しい。そこで、本実施例では記録側の色空間に近い加法混色系色空間を記録側の内部的標準色空間とする。ここでは、ＮＴＳＣ色空間より、狭いＨＤＴＶ（ＨｉｇｈＤｅｆｉｎｉｔｉｏｎＴＶ）色空間を記録側標準色空間Ｄとする。
【０３１０】
さらに、記録側内部標準色空間Ｄとデバイス色空間Ｃとの関係は、下記第（２）で決定される。
【０３１１】
［Ｙ］  ［Ａ１１  Ａ１２  Ａ１３］［Ｒｈ］
［Ｍ］＝［Ａ２１  Ａ２２  Ａ２３］［Ｇｈ］
［Ｃ］  ［Ａ３１  Ａ３２  Ａ３３］［Ｂｈ］
［Ｋ］  ［Ａ４１  Ａ４２  Ａ４３］        ……（２）
ここで、Ｙ，Ｍ，Ｃ，Ｋは印刷のための原色で、イエロー，マゼンタ，シアン，ブラックの各成分である。Ｒｈ，Ｇｈ，Ｂｈは記録側標準色空間成分である。また、Ａ１１〜Ａ４３までは、印刷と記録内部標準色空間を複数の点で関係付け、最小２乗法で計算される係数である。
【０３１２】
また、通信路上の標準色空間と記録内部の標準色空間は下記のように変換する。
【０３１３】
通信回線上のＮＴＳＣ標準色空間は基礎刺激からＮＴＳＣが表現できる色間の３次元的最外郭面代表情報を求める。同様にして、記録側内部標準色空間ＨＤＴＶの最外郭面の代表位置情報も得られる。
【０３１４】
今、ＮＴＳＣ色空間上の１点（Ｒｎ，Ｇｎ，Ｂｎ）からＨＤＴＶ色空間の対応点（Ｒｈ，Ｇｈ，Ｂｈ）を求める場合は、Ｒｎ，Ｇｎ，ＢｎからＣＩＥＬ* ａ* ｂ* 変換し、Ｌｎ，ａｎ，ｂｎとする。同様にして、Ｒｈ，Ｇｈ，ＢｈからＣＩＥＬ* ａ* ｂ* 変換し、Ｌｈ，ａｈ，ｂｈとする。Ｌｎ一定でθ＝ａｔａｎ（ａｎ／ｂｎ）に近いＨＤＴＶ，ＮＴＳＣ各色空間上の最外郭近似位置を前述テーブルから求める。そのＮＴＳＣ最外郭面位置を（Ｌｏｎ，ａｏｎ，ｂｏｎ），ＨＤＴＶ最外郭面位置を（Ｌｏｎ，ａｏｈ，ｂｏｈ）とすると、ａｈ，ｂｈは下記第（３）式により決定される。
【０３１５】
ａｈ＝（ａｏｈ／ａｏｎ）* ａｎ
ｂｈ＝（ｂｏｈ／ｂｏｎ）* ｂｎ      ……（３）
これらのａｈ，ｂｈが色空間圧縮後のＨＤＴＶ色空間上での対応位置である。従って、ＮＴＳＣ色空間上の任意の１点（Ｒｎ，Ｇｎ，Ｂｎ）は、記録側標準色空間上では、（Ｒｈ，Ｇｈ，Ｂｎ）に変換される。従って、上述（２）式により印刷すべきＹ，Ｍ，Ｃ，Ｋの各成分量が決定され、印刷可能となる。
【０３１６】
なお、本実施例では記録側内部に標準色空間を設けているが、これは通信回線上での標準色空間は１つに絞られていないためである。従って、複数の標準色空間が使用される可能性がある。その場合でも、本方式を用いていれば通信上の色空間がＮＴＳＣ色空間でなくともそれ自身の色空間を規定できるものであれば、上記方法により標準色空間変換が可能となる。
【０３１７】
以下、図３５を参照しながら周辺機器の異常処理について説明する。
【０３１８】
図３５は本発明に係るサーバー装置とのネットワークシステムの構成を説明するブロック図である。
【０３１９】
ジョブ実行中に周辺機器に異常が発生した場合、Ｓ／Ｐサーバー装置ＳＰ１６６４は異常が発生した周辺機器が異常から回復するまで待つのではなく、その状態で実行可能なジョブを優先的に実行していく( 実行可能なジョブに関しては、後述する) 。また、異常が発生したときに異常が発生した周辺機器に対して実行していたジョブ( 以下エラージョブともいう) を、ジョブ再開のために必要な情報を保存した後に、実行時にエラーが発生した処理待ちのジョブとしてＳ／Ｐサーバー装置ＳＰ１６６４内に登録することにより、異常が発生した周辺機器が異常から回復した後にジョブを再開することが可能である。エラージョブを再開可能なように登録するか登録しないかは、発生した異常の程度や、ＳＰサーバーの設定による。
【０３２０】
例としてサーバー装置に３台のコンピュータ６６１〜６６３および２台のカラースキャナプリンタ６６５，６６６および１台のスキャナ６６７が接続されている場合で説明する。
【０３２１】
カラースキャナプリンタ６６５，６６６は、各々プリントとスキャンのジョブを処理することが出来る。以下、図３６に示すフローチャートを参照しながら異常発生ジョブ処理動作について説明する。Ｓ／Ｐサーバー装置６６４
図３６は本発明に係るサーバー装置における異常発生ジョブ処理手順の一例を示すフローチャートである。なお、(1) 〜(10)は各ステップを示す。
【０３２２】
例えばホストコンピュータ６６１がカラースキャナプリンタ６６５に対するプリントジョブをＳ／Ｐサーバー装置６６４に依頼して実行しており、ホストコンピュータ６６２がシステム全体制御プログラム９３にプリントジョブを依頼して処理待ちになっており、ホストコンピュータ６６３がシステム全体制御プログラム９３にスキャンジョブを依頼して処理待ちになっていたとする。このプリントジョブ実行中にカラースキャナプリンタ６６５のプリンタ部分に異常が発生したとすると(1) 、この時、まずＳ／Ｐサーバー装置６６４はカラースキャナプリンタ６６５に発生した異常が回復困難な異常かどうかを調べる(2) 。カラースキャナプリンタ６６５に発生した異常が回復困難な異常であるとＳ／Ｐサーバー装置ＳＰ１が判断した場合、Ｓ／Ｐサーバー装置ＳＰ１は直ちにエラージョブを放棄し(10)、次の処理可能なジョブを選択し実行する(9) 。
【０３２３】
なお、本実施例において、処理可能なジョブとは、現在異常が発生しているカラースキャナプリンタ６６５に対するプリントジョブ以外のジョブ、すなわち、
・カラースキャナプリンタ６６５に対するスキャンジョブ
・カラースキャナプリンタ６６６に対するプリントジョブ
・カラースキャナプリンタ６６６に対するスキャンジョブ
・カラースキャナプリンタ６６７に対するスキャンジョブ
である。
【０３２４】
処理可能なジョブが複数ある場合は、後述する方式に従ってジョブを実行する。
【０３２５】
カラースキャナプリンタ６６５に発生した異常が回復困難な異常であるとＳ／Ｐサーバー装置６６４が判断しなかった場合、Ｓ／Ｐサーバー装置６６４はカラースキャナプリンタ６６５に対してリトライ処理（図３７参照）を行なう。
【０３２６】
リトライは、事前に定めておいたＮ回( 例えば５回) まで繰り返し行なわれる(3) 。Ｎ回のリトライを行なうまでにカラースキャナプリンタ６６５が異常状態から回復した( リトライに成功した) 場合、ジョブを再開する(6) 。Ｎ回のリトライを行なってもカラースキャナプリンタ６６５が異常状態から回復しなかった( リトライに失敗した) 場合、Ｓ／Ｐサーバー装置６６４は他の処理可能なジョブがあるかどうかを調べる(4) 。処理可能なジョブがなかった場合、Ｓ／Ｐサーバー装置６６４はリトライ回数とは別に定めておいたＭ回( 例えば１回) のリトライを行ない(5) 、リトライに成功したならば、エラージョブを再開する。リトライに失敗した場合は、再び処理可能なジョブがあるかどうかを調べる(4) 。処理可能なジョブがあった場合、Ｓ／Ｐサーバー装置６６４はエラージョブのジョブ退避を行ない(7) 、エラージョブを実行途中でエラーが発生したジョブとして登録し(8) 、次の処理可能なジョブを実行する(9) 。
【０３２７】
なお、本実施例において、ジョブ退避とは、エラージョブ実行時のＳ／Ｐサーバー装置６６４の状態情報などのジョブ再開時に必要な情報を、例えば記憶手段( 例えばハードディスク) や、例えばＳ／Ｐサーバー装置内のメモりや、例えばＳ／Ｐサーバー装置内のプログラムなどに保存する処理である。
【０３２８】
図３７は本発明に係るサーバー装置におけるリトライ処理手順の一例を示すフローチャートである。なお、(1) 〜(5) は各ステップを示す。
【０３２９】
リトライ処理とは、事前に定めておいた時間( 例えば３０秒) 待機した後に(1) 、異常が発生した周辺機器が異常状態から回復したかどうかを調べ(2) 、ある一定回数Ｘ（例えば５回）繰り返す(3) 。一定回数繰り返すまでに異常が発生した周辺機器が異常状態から回復していればリトライは成功であり(5) 、回復しなければリトライは失敗となる(4) 。
【０３３０】
以下、本発明に係るサーバー装置によるマルチプリント制御動作について詳述する。
【０３３１】
スキャナ／プリンタネットワークサーバー（ＳＰネットワークサーバー）には、スキャナとプリンタとから構成されるカラーレーザビーム複写装置（ＣＬＣ），スキャナとプリンタとから構成されるバブルジェットカラー複写装置（ＢＪＣ），標準インタフェースで接続されているビットマッププリンタ，ＰＤＬプリンタ（ＣａＰＳＬ，ＰＳ），市販されるスキャナ等多くのデバイスが接続可能になっている。また、ネットワーク上のホストマシンからは、これらのデバイスを自由に使用させるため、以下のように各ジョブを制御している。
【０３３２】
例えばホストコンピュータＡからカラーレーザビーム複写装置に１０頁のドキュメントを出力する要求がＳＰネットワークサーバーに送られ、さらにホストコンピュータＢからバブルジェットカラー複写装置（ＢＪＣ）のスキャナからカラー原稿を入力する要求が発生し、さらにホストコンピュータＣからＰＤＬプリンタに出力するという要求が発生するといった事態も想定される。このように、ネットワーク上のホストコンピュータからは、様々な要求がＳＰネットワークサーバーに送られ、ＳＰネットワークサーバーでは、それらの要求（ジョブ）に対処するべく下記のようなジョブ制御を実行する。なお、本実施例ではプリント要求，スキャン要求をジョブと呼ぶ。例えばカラーレーザビーム複写装置（ＣＬＣ）のプリンタにＣａＰＳＬコードで記述された３頁のドキュメントを出力する要求を１つのジョブと考える。ＳＰネットワークサーバーのジョブ制御では、同時に２つまでのジョブしか走らないようにするが、３つ以上のジョブが走る場合も制御を拡張することによりほぼ同様に制御できる。
【０３３３】
以下、図３８を参照しながら本発明に係るサーバー装置におけるジョブ制御動作について説明する。
【０３３４】
図３８は本発明に係るサーバー装置におけるジョブ制御状態を説明するタイミングチャートである。なお、ジョブの処理は、ＳＰネットワークサーバーがスプール用のハードディスクを備えているかどうかにより、図３８の（ａ）〜（ｅ）の何れかのジョブ制御１〜５に大別される。また、説明上ジョブ１，２は３頁のプリント要求または３頁のスキャン要求とする。
〔ジョブ制御１〕
ジョブ制御１は、同図（ａ）に示すように、先に要求のあったジョブを実行して、次のジョブ２は、ハードディスクにスプールして、ジョブが終了した時点でジョブ２を起動する。
〔ジョブ制御２〕
ジョブ制御２は、同図（ｂ）に示すように、特殊な場合であるが、１つのジョブで２つ以上のデバイスを動かす場合の制御に対応する。例えばメモリに展開した画像をカラーレーザビーム複写装置（ＣＬＣ），バブルジェットカラー複写装置（ＢＪＣ）にも出力する場合である。
〔ジョブ制御３〕
ジョブ制御３は、同図（ｃ）に示すように、ジョブの中にページという概念をいれる。この場合、プリントの場合にはドキュメントのページ単位、スキャナの場合には１ページの原稿のスキャンの単位とする。例えばジョブ１を実行中にジョブ２の要求がきた場合には、ジョブ１をページの切れ目で中断して、ジョブ２を行う。この場合、ジョブ１とジョブ２とは同時に動いていることはない。
〔ジョブ制御４〕
ジョブ制御４は、同図（ｄ）に示すように、ジョブ１を実行中にジョブ２の要求がきた場合は、ジョブ１を実行したまま、直ちにジョブ２を実行する。
〔ジョブ制御５〕
ジョブ制御５は、同図（ｅ）に示すように、ジョブ１を実行中にジョブ２の要求がきた場合は、ジョブ２をリジェクトする。
【０３３５】
なお、図１に示したサーバー装置の構成の場合には、ジョブの種類が下記の（１）〜（７）に分類される。
【０３３６】
（１）カラーレーザビーム複写装置（ＣＬＣ）のプリンタにドキュメントを出力する。
【０３３７】
（２）カラーレーザビーム複写装置（ＣＬＣ）のスキャナから原稿を読み取る。
【０３３８】
（３）バブルジェットカラー複写装置（ＢＪＣ）のプリンタにドキュメントを出力する。
【０３３９】
（４）バブルジェットカラー複写装置（ＢＪＣ）のスキャナから原稿を読み取る。
【０３４０】
（５）市販のページ記述言語のインタプリタを内蔵するプリンタに出力する。
（６）市販のビットマッププリンタにドキュメントを出力する。
【０３４１】
（７）市販のスキャナから原稿を読み取る。
【０３４２】
以下、各ジョブの優先順位処理について説明する。
【０３４３】
例えばスキャンのジョブを至急行いたい時、プリントジョブが実行中ならば、プリントジョブを中断して、スキャナジョブを行うことができるように、本実施例では優先順位０〜２の３段階の指定可能であり、優先順位０が指定なし（ファーストインファーストアウト）の場合、優先順位１がジョブ単位で優先割込み指定ありの場合、優先順位２がページ単位で優先割込み指定する場合である。  以下、図３９を参照しながら本発明に係るサーバー装置におけるＳＰマネージャー制御動作について説明する。
【０３４４】
図３９は本発明に係るサーバー装置におけるシステム全体制御プログラム９３の制御処理状態を示す図である。本実施例において、システム全体制御プログラム９３は、主としてホストコンピュータから送出されてくるジョブの優先順位，ジョブの種類を参照してプリンタのジョブを最適に制御する。以下、図面に基づいて、ＳＰネットワークサーバに対して、ネットワーク上のホストコンピュータから様々な要求が送出される場合のジョブ管理について説明する。
【０３４５】
先ず、各プログラムの概念的な構成を説明すると、図３９に示すように、通信に関する通信プログラム８３，ＳＰネットワークサーバーの全体を制御するシステム全体制御プログラム９３，スキャナに関するプログラムのスキャナ制御プログラム８５，プリント処理（ＣａＰＳＬのインタプリタ）に関するプログラムのＰＤＬインタープリタープログラム８４，入出力機器を実際に制御するデバイスドライバ８６の５つのプログラムに大きく分けられる。さらに、実際にデータが流れるインタフェースとして、バンドメモリ（ＢＭＥＭ）７０−１，セントロニクスインタフェース（ＣＥＮＴＲ）７０−２，ＲＳ２３２Ｃインタフェース（ＲＳ２３２）７０−３があり、これらをシステム全体制御プログラム９３が管理する構成となっている。
【０３４６】
システム全体制御プログラム９３は基本的に他の４つのプログラムからのイベントにより動く、イベント駆動型の処理を図４０に示すフローチャートに従って実行する。
【０３４７】
図４０は、図３９に示したシステム全体制御プログラム９３のイベント処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【０３４８】
先ず、ＳＰネットワークサーバーの電源投入時にシステム全体制御プログラム９３は起動し、すぐにイベント待ちの無限ループになる。プログラムが走り出すと、イベント待ちの状態になる（１）。イベントが入力されるとループから抜け出し、もし、そのイベントが通信プログラム８３からのものかどうかを判定し（２）、ＹＥＳならばイベントに応じた処理を行なう（３）。そして、またステップ（１）に戻りイベント待ちのループになる。
【０３４９】
一方、ステップ(2) の判定でＮＯの場合は、そのイベントの発行先がＰＤＬインタープリタープログラム８４のプリントジョブかどうかを判定し(4) 、ＹＥＳならばイベントに応じた処理を行なう(5) 。
【０３５０】
一方、ステップ(4) の判定でＮＯの場合は、そのイベントの発行先がスキャナ制御プログラム８５のスキャナジョブかどうかを判定し(6) 、ＹＥＳならばイベントに応じた処理を行なう(7) 。
【０３５１】
一方、ステップ(6) の判定でＮＯの場合は、そのイベントの発行先がデバイスドライバ８６からかどうかを判定し(8) 、ＮＯならばステップ(1) に戻り、ＹＥＳならばイベントに応じた処理を行い(9) 、ステップ(1) に戻る。
【０３５２】
一方、通信プログラム８３からは、カラーレーザ複写装置（ＣＬＣ）のプリントに関するジョブや、バブルジェットカラー複写装置のスキャナに関するジョブ等、いろいろなジョブの要求が不定期的にシステム全体制御プログラム９３に送られる。それら複数のジョブを資源の許す限り最適に振り分けなければならない。以下そのアルゴリズムについて図４１を参照しながら説明する。
【０３５３】
図４１は本発明に係るサーバー装置におけるジョブの管理状態を示す図である。
【０３５４】
この図に示されるように、ジョブの管理にはジョブテーブルを使用する。ジョブテーブルには、ジョブを識別するためのＩＤ、ジョブの状態を示すステータス、ジョブの実行の優先順位、ジョブの種類、終了ページ、そして割り込みジョブＩＤがある。
【０３５５】
ＩＤはシリアルの番号で、ジョブの要求の受け付け順と考えて良い。ステータスには、実行中を示すＲＵＮ、処理を待っているＷＡＩＴ、割り込みが入って中断していることを示すＳＴＯＰ，エラーが発生して回復待ちを示すＥＳＴＯＰがある。優先順位はＬＥＶＥＬ０から２まであり０は「指定なし」で通常はこのレベルを指定する。１は「ジョブ単位で優先割り込み」で幾つかのジョブが待ち状態の時、それらのジョブより優先して処理するというものである。また２は「ページ単位で割り込み」を表し、現在ジョブを処理中でも、ページの切れ目であればそのジョブを中断してＬＥＶＥＬ２のジョブを処理する。
【０３５６】
インタフェースは、図３９に示すようにそのジョブが使用するハードウェアを指し、ジョブ同士が排他的にハードウェアを利用可能にするために設けたものである。また，ジョブはカラーレーザ複写装置（ＣＬＣ）のプリンタからドキュメントを出力するＣＬＣＰ、カラーレーザ複写装置（ＣＬＣ）のスキャナから原稿を読みとるＣＬＣＳ、バブルジェットカラー複写装置のプリンタにドキュメントを出力するＢＪＰ、バブルジェットカラー複写装置のスキャナから原稿を読みとるＢＪＳ、市販のページ記述言語のインタプリタを内蔵するプリンタに出力するＰＤＬＰ、市販のビットマッププリンタにドキュメントを出力するＢＩＴＰ、市販のスキャナから原稿を読みとる等のジョブがある。なお、終了ページにはジョブが処理し終ったページ数を記録しておく。これは、もしエラーが起こった時にエラー回復後、どのページから処理を再開すれば良いかの判断に使われる。また最後の割り込みジョブＩＤは、割り込んだジョブが終了しているかの判断に使われ、終了していれば、ＳＴＯＰ中のジョブを再開する。
【０３５７】
システム全体制御プログラム９３は以上のような情報の格納されたジョブテーブルを参照しながら、次にどのジョブを起動するかを最適に判断する。
【０３５８】
以下、図４２に示すフローチャートを参照しながら本発明に係るサーバー装置におけるジョブ実行処理動作について説明する。
【０３５９】
図４２は本発明に係るサーバー装置におけるジョブ実行処理手順の一例を示すフローチャートである。なお、(1) 〜(6) は各ステップを示す。
【０３６０】
なお、このフローに制御が移るタイミングは、次のようになる。▲１▼システム全体制御プログラム９３にイベントが入らずアイドル状態の時にある一定の間隔をおいてこのフローに移る。そして、ジョブテーブルにジョブがなければまたアイドル状態になる。▲２▼通信プログラム８３からのイベントがあった時。▲３▼ＰＤＬインタープリタープログラム８４，スキャナ制御プログラム８５から、ページ終了のイベントまたはドキュメント終了のイベントがあった時。▲４▼デバイスドライバ８６からエラー等のイベントがあった時。
【０３６１】
先ず、ステップ(1) において、図４１に示すジョブテーブルを参照する。次いで、ステップ(2) においてジョブがあるかどうかの判断をする。実行すべきジョブがない時にはステップ(7) に移り、システム全体制御プログラム９３はアイドル状態になる。実行すべきジョブがある場合にはステップ(3) で実行可能なジョブの候補を幾つか選び、ステップ(4) で候補に上がったジョブの優先順位を見て一つのジョブに絞る。さらに、ステップ(5) でその絞り込まれたジョブが使用するインタフェースが空いているかを判断する。ステップ(6) で実際にジョブを実行し、処理を終了する。
【０３６２】
以下、図４３に示すフローチャートを参照しながら本発明に係るサーバー装置におけるステータスチェック処理動作について説明する。
【０３６３】
図４３は本発明に係るサーバー装置におけるステータスチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(14)は各ステップを示す。
【０３６４】
先ず、ステップ（１）でジョブテーブルから一つのジョブのステータスを読みとる。ステップ（２）でジョブのステータスがＲＵＮかどうかを判断し、ＲＵＮならばステップ（１４）に移りジョブテーブルのジョブをすべて読みとったかを判断する。もし、まだジョブが残っていればステップ（１）で次のジョブのステータスを読みに行く。ＲＵＮでなければステップ（３）に移る。ステップ（３）ではジョブのステータスがＷＡＩＴかどうかの判断をする。ＷＡＩＴならばステップ（４）で実行可能なジョブの候補としてピックアップする。そしてステップ（１４）に移る。ＷＡＩＴでない場合には、ステップ（５）に移り今度はステータスがＥＳＴＯＰかどうかの判断をする。もし、このジョブのステータスがＥＳＯＰならば、エラーを起こして中断しているので、ステップ（６）でこのジョブを中断した原因のエラーが回復しているかどうかのチェックを行なう。ステップ（７）はエラー中か、そうでないかの判断の分岐になる。まだエラーの場合には実行可能なジョブの候補にはピックアップせずにステップ（１４）に移る。エラーが回復している場合には、そのジョブのステータスをＥＳＴＯＰからＷＡＩＴにジョブテーブルを書き換える（８）。そして、ステップ（９）で実行可能なジョブの候補としてピックアップする。
また、ステップ（５）でステータスがＥＳＴＯＰではないと判断された場合には、他のジョブに割り込まれて中断しているＳＴＯＰの状態なので、ステップ（１０）で割り込んだジョブのステータスをチェックする。ステップ（１１）では割り込んだジョブが実行中かどうかの判断をする。実行中ならば実行可能なジョブの候補にはピックアップせずにステップ（１４）に移る。もし、実行中でなければステップ（１２）に移り、そのジョブのステータスをＳＴＯＰからＷＡＩＴにジョブテーブルを書き換える。そして、ステップ（１３）で実行可能なジョブとしてピックアップする。最後に、すべてのジョブをジョブテーブルから読み終ったら（１４）、ステータスのチェックは終了する。このようにして実行可能なジョブの候補が複数選ばれる。
【０３６５】
以下、図４４に示すフローチャートを参照しながら本発明に係るサーバー装置における優先順位チェック処理動作について説明する。
【０３６６】
図４４は本発明に係るサーバー装置における優先順位チェック処理手順の一例を示すフローチャートである。なお、(1) 〜(11)は各ステップを示す。また、本実施例では候補に上がったジョブの優先順位を見て実行するジョブを一つに絞るということをする。
【０３６７】
ステップ(1) で実行可能なジョブの候補としてあげられた複数のジョブの内一つに対してその優先順位をリードする。ステップ(2) でＬＥＶＥＬ２かどうかの判断をする。ＬＥＶＥＬ２ならばステップ(3) に移りＬＥＶＥＬ２のジョブが存在するかどうかを表すフラグＦＬＧ２を立てる。ＬＥＶＥＬ２でなければステップ(4) に移り今度はＬＥＶＥＬ１であるかの判断をする。ＬＥＶＥＬ１ならばステップ(5) に移りＬＥＶＥＬ１のジョブが存在するかどうかを表すフラグＦＬＧ１を立てる。もしＬＥＶＥＬ１でもないと判断された場合には、ＬＥＶＥＬ０になる。すなわちＦＬＧ２もＦＬＧ１も立っていない場合にはＬＥＶＥＬ０になる。
【０３６８】
一つのジョブの優先順位の判断が終るとステップ(6) に移り候補に上がったジョブをすべて調べたかどうかを判断する。まだすべて調べ終ってない時にはステップ(1) に戻り、次のジョブの判断に移り、調べ終った場合にはステップ(7) に移る。フラグＦＬＧ２が立っている時にはステップ(8) に移り、優先順位がＬＥＶＥＬ２でジョブのＩＤが小さい（早くジョブのリクエストを受け付けたもの）ジョブを選択する。
【０３６９】
同様に、ステップ(9) ，(10)では優先順位がＬＥＶＥＬ１でジョブのＩＤが小さいジョブを選択する。ステップ(11)では優先順位がＬＥＶＥＬ０でＩＤの小さいジョブが選択され、優先順位のチェックが終了する。
【０３７０】
このようにして次に起動可能なジョブを一つに絞る。起動可能なジョブが決定しても、インタフェースの状態により実際に起動できるかどうかが決まってくるのでジョブとインタフェースの関係を調べなくてはならない。
【０３７１】
以下、図４５に示すフローチャートを参照しながら本発明に係るサーバー装置におけるインタフェースチェック処理動作について説明する。
【０３７２】
図４５は本発明に係るサーバー装置におけるインタフェースチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(9) は各ステップを示す。
【０３７３】
先ず、ステップ(1) において、一つに絞られたジョブのインタフェースをジョブテーブルからリードする。ステップ(2) でそのインタフェースの状態をチェックする。使用中でなければステップ(5) に移りそのジョブを実行ジョブテーブルに登録する。実行ジョブテーブルは、実際に起動するジョブを表すテーブルでマルチでジョブを走らせることが出来るので複数のジョブが登録可能である。
【０３７４】
ステップ(6) のジョブ処理ではこの実行ジョブテーブルを参照してジョブを起動する。
【０３７５】
インタフェースが使用中の場合にはステップ(3) に移りジョブの優先順位をチェックする。ＬＥＶＥＬ２でなければ、現在のジョブを中断させることは出来ないので実行ジョブテーブルに登録することはしないで、処理を終了する。  また、ステップ(3) でＬＥＶＥＬ２の時には、ステップ(4) で現在ステータスがＲＵＮのジョブがＬＥＶＥＬ２であるかの判断をする。もしＲＵＮのジョブがLEVEL ２であるならば中断させることは出来ないので、選択されたジョブは実行ジョブテーブルに登録せずに、処理を終了する。
【０３７６】
一方、現在実行中のジョブ（ステータスがＲＵＮ）の優先順位がＬＥＶＥＬ１またはＬＥＶＥＬ０の場合には現在実行中のジョブを中断させて新たに選択されたジョブを起動させる。その場合、ステップ(6) に移り、ステップ(4) で選択されたジョブを実行ジョブテーブルに登録する。ステップ(7) で現在実行中のジョブのステータスをＳＴＯＰにして、さらに優先順位をＬＥＶＥＬ２にする。これは、ジョブが復帰した時に優先して実行されるようにするためである。
【０３７７】
ステップ(8) で現在実行中のジョブが何ページまで処理したかを記録しておくために終了ページ数をジョブテーブルに書き込む。さらにステップ(9) で現在実行中のジョブを実行ジョブテーブルから削除する。これで、現在実行中のジョブが起動されることはなく、ステータスもＳＴＯＰになり再度ジョブが起動されるのを待機することになる。このようにしてインタフェースチェック処理を終了する。
【０３７８】
以下、図４６に示すフローチャートを参照しながら本発明に係るサーバー装置におけるジョブ起動処理動作について説明する。
【０３７９】
図４６は本発明に係るサーバー装置におけるジョブ起動処理手順の一例を示すフローチャートである。なお、(1) 〜(4) は各ステップを示す。
【０３８０】
先ず、ステップ(1) において、実行ジョブテーブルを参照して起動すべきジョブをリードする。ステップ(2) でこれから起動するジョブがステータスＥＳＴＯＰでエラーストップしているジョブの種類と同じかどうかをチェックする。もし同じであれば、起動することは出来ないのでステップ(4) に移り。実行ジョブテーブルをすべて読んだかを判断する。もしまだ残っていればステップ(1) に移り次のジョブの起動処理をする。もしエラーストップしているジョブの種類と違っていれば実行可能なので、ステップ(3) に移りジョブの起動に移る。実際のジョブを起動する時は、ステータスをＷＡＩＴからＲＵＮに替え、インタフェースを確保する。逆にエラーストップ、または割り込みで中断する時には、インターフェースを解放する。
【０３８１】
ステップ(4) で実行ジョブテーブルにジョブが残っているかを判断して、もう起動すべきジョブが残っていなければ、ジョブ起動処理を終了する。
【０３８２】
以下、図４７〜図５７を参照しながら本発明に係るサーバー装置における具体的ジョブ処理動作について説明する。
【０３８３】
図４７は本発明に係るサーバー装置におけるジョブ処理状態推移を示すタイミングチャートである。なお、図中の横軸右方向に時間が流れていくものとする。
図において、８０１〜８１３はジョブテーブルをチェックするタイミングを示し、タイミング８００〜８０３は通信プログラム８３からジョブのイベントがシステム全体制御プログラム９３に入るタイミングに対応し、タイミング８０４〜８１３はジョブテーブルをチェックするタイミングに対応する。
【０３８４】
図４８〜図５７は本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図であり、図４８〜図５７はタイミング８０４〜タイミング８１３におけるジョブテーブルに対応する。なお、ジョブテーブルはチェック直前の内容を示している。また、ジョブはカラーレーザ複写装置（ＣＬＣ）のプリンタからドキュメントを出力するＣＬＣＰ、カラーレーザ複写装置（ＣＬＣ）のスキャナから原稿を読みとるＣＬＣＳ、バブルジェットカラー複写装置のプリンタにドキュメントを出力するＢＪＰ、バブルジェットカラー複写装置のスキャナから原稿を読みとるＢＪＳ、市販のページ記述言語のインタプリタを内蔵するプリンタに出力するＰＤＬＰ、市販のビットマッププリンタにドキュメントを出力するＢＩＴＰ、市販のスキャナから原稿を読みとる等のジョブがある。
【０３８５】
タイミング８００で、ジョブのイベントが入ってくる。内容はカラーレーザ複写装置（ＣＬＣ）のプリンタにドキュメントを出力するジョブ１（内容はＣＬＣＰ）で、出力ページ数は３ページ、優先順位はＬＥＶＥＬ０、インタフェースにはＢＭＥＭを用いるというものである。ジョブテーブルＪＯＢＴを見てみると、図４８に示すようにＩＤに「２５」が割り当てられ、ステータスはＷＡＩＴ、終了ページはまだこのジョブは処理されていないので０ページになっている。
【０３８６】
タイミング８０４のジョブテーブルチェックでは、ＩＤ２５のジョブが選択され、起動される。この時ＩＤ２５のジョブのステータスをＲＵＮに変更する。
８０１のタイミングで新たなジョブが入ってくる。ジョブＩＤ２５のジョブの１ページの処理が終了するとシステム全体制御プログラム９３は再度ジョブテーブルを見に行く。その時のジョブテーブルＪＯＢＴは図４９に示される。ＩＤ２５のジョブは１ページの出力が終了して、次ページが処理されるのを待っている状態である。終了ページは０ページから１ページに変化している。また、新たに入ったジョブはＩＤ２６が割り当てられ、ステータスはＷＡＩＴ、優先順位はＬＥＶＥＬ１、インタフェースはＢＭＥＭ、ジョブはＢＪＰになっている。システム全体制御プログラム９３はこのジョブテーブルＪＯＢＴから判断して、ＩＤ２５のジョブの２ページ目の処理を起動する。
【０３８７】
この時、２ページめの途中でプリンタに紙ジャムが発生してしまいＩＤ２５のジョブを続けられなくなってしまった。システム全体制御プログラム９３はジョブテーブルＪＯＢＴを参照して次に起動すべきジョブを探す。その時のジョブテーブルＪＯＢＴは図５０のようになっている。ＩＤ２５のステータスはＥＳＴＯＰになり、優先順位は復帰した時に優先的に実行させるためにＬＥＶＥＬ２、終了ページは１ページのままになっている。そこで、システム全体制御プログラム９３はＩＤ２６のジョブを起動する。ＩＤ２６のジョブが１ページの処理を終了すると、システム全体制御プログラム９３はジョブテーブルＪＯＢＴチェック８０７に移る。この時の状態は図５１に示される。ＩＤ２５のジョブははエラーチェックをしてもエラーが回復していないので起動されることはない。そこで、システム全体制御プログラム９３はＩＤ２６のジョブの２ページ目を処理することをＰＤＬインタープリタープログラム８４に対して要求する。
【０３８８】
ＩＤ２６のジョブが２ページ目を処理している最中に新たなジョブのイベントがシステム全体制御プログラム９３に入ってくる。内容は、バブルジェットカラー複写装置のスキャナから２ページ分の原稿を読み取るものである。ＩＤ２６のジョブが２ページ目の処理を終了すると、システム全体制御プログラム９３はジョブテーブルＪＯＢＴをチェックする。その時のジョブテーブルＪＯＢＴが図５２である。
【０３８９】
ＩＤ２５はエラーが回復していないのでそのままの状態である。ＩＤ２６のジョブは２ページの処理が終了したので、終了ページは２に変化している。さらに新しいジョブがＩＤ２７に割り当てられている。ＩＤ２７のジョブは優先順位がＬＥＶＥＬ２であるので、システム全体制御プログラム９３は現在処理中のＩＤ２６のジョブを中断させてＩＤ２７のジョブを起動する。ＩＤ２６のジョブはステータスがＳＴＯＰに、優先順位がＬＥＶＥＬ２になる。
【０３９０】
スキャナ制御プログラム８５が１ページの原稿読み込みしている最中に、システム全体制御プログラム９３には新たなジョブのイベントがタイミング８０３で入ってくる。１ページの読み込みが終了すると、システム全体制御プログラム９３はタイミング８０９でジョブテーブルＪＯＢＴをチェックする。この時のジョブテーブルＪＯＢＴは図５３のようになる。ＩＤ２５のジョブはエラーが回復していないのでＥＳＴＯＰのままである。また、ＩＤ２６はステータスがＳＴＯＰで、割り込みジョブＩＤが２７であるので、ＩＤ２７のジョブをチェックするとステータスはＲＵＮのままなので再開することは出来ない。新たに入ってきたジョブはＩＤ２８が割り当てられる。ＩＤ２８のジョブはセントロニクスインタフェースを通して市販のプリンタにデータを流すジョブで、現在起動されているジョブと同時に走らせることが出来る。そこで、システム全体制御プログラム９３はＩＤ２８のジョブとＩＤ２７の２ページ目をスキャンするジョブを同時に起動する。
【０３９１】
次にシステム全体制御プログラム９３はジョブテーブルＪＯＢＴチェック（タイミング８１０）に移る。この時のジョブテーブルＪＯＢＴは図５４に示される。ジョブテーブルＪＯＢＴチェック（タイミング８１０）の前にジョブＩＤ２５のエラーが解除されているので、エラーチェック後ステータスはＷＡＩＴに戻る。
【０３９２】
また、ＩＤ２６のジョブも、割り込んだＩＤ２７のジョブが終了したのでステータスがＷＡＩＴに戻る。ＩＤ２８のジョブはＲＵＮの状態のままである。システム全体制御プログラム９３はインタフェースＢＭＥＭが空いているのでＩＤ２５またはＩＤ２６のジョブを起動させる。どちらのジョブともステータスはＷＡＩＴで、優先順位もＬＥＶＥＬ２と状態は同じであるので先に受け付けたＩＤ２５のジョブを起動する。この時、ＩＤ２５のジョブは終了ページが１ページであるので２ページ目から処理するようにＰＤＬインタープリタープログラム８４に要求を出さなければならない。
【０３９３】
ジョブテーブルＪＯＢＴチェック（タイミング８１１）では図５５に従う。ＩＤ２５とＩＤ２８のジョブはステータスがＲＵＮでＩＤ２６はＷＡＩＴである。ＩＤ２６のジョブは優先順位がＬＥＶＥＬ２で、現在起動中のジョブに対して割り込むことが出来るがＩＤ２５もＬＥＶＥＬ２で起動されたので、この場合には割り込むことは出来ない。
【０３９４】
ジョブテーブルＪＯＢＴチェック（タイミング８１２）に移る。ジョブテーブルＪＯＢＴは図５６に示される。ＩＤ２５のジョブはすでに終了してジョブテーブルＪＯＢＴから削除されている。そこで、システム全体制御プログラム９３はＩＤ２６のジョブを３ページ目から起動する。
【０３９５】
ジョブテーブルＪＯＢＴチェック（タイミング８１３）では、図５７に示すようにＩＤ２８のジョブが走っている状態なので、新たにシステム全体制御プログラム９３はジョブを起動することはしない。
【０３９６】
以上のように、システム全体制御プログラム９３はジョブテーブルＪＯＢＴを参照しながら最適にジョブ管理を行なう。
【０３９７】
なお、上記実施例では文字，図形，イメージがホストコンピュータで編集された後、ネットッワークを介して通信されたプリント要求をスキャナ／プリンタをドライブするサーバー装置上で処理して、当該プリンタから出力する場合について説明したが、図５８に示すように、クライアントホストコンピュータ９０１，９０２，スキャナプリンタ９０４をドライブするＳＰサーバー装置９０３がネットワーク９０５を介して接続されるシステムにおいて、クライアントホストコンピュータ９０１，９０２から転送された文字，図形の各情報とスキャナプリンタ９０４のスキャナから入力されたイメージとをＳＰサーバー装置９０３が合成編集することにより、合体出力させるように構成しても良い。
【０３９８】
図５８は本発明の第２の実施例を示すサーバー装置の構成を説明するブロック図である。
【０３９９】
図において、９０６は記憶装置で、ＳＰサーバー装置９０３内に設けられ、クライアントホストコンピュータ９０１，９０２から転送された文字，図形の各情報を蓄える。
【０４００】
このように構成されたサーバー装置において、本体またはネットワーク上に設けた記憶手段（記憶装置９０６）に画像処理装置から出力される第１の画像情報または所定のネットワークに接続される各ホストコンピュータから転送される第２の画像情報を記憶させることにより、各ホストコンピュータからの画像情報出力処理負担を軽減させるとともに、記憶した画像情報を効率よく再利用させる。
【０４０１】
また、記憶手段（記憶装置９０６）に記憶された第１および第２の画像情報を画像合成手段が合成しながら出力画像を生成して画像処理装置（本実施例ではスキャナプリンタ９０４）に出力することにより、各ホストコンピュータ上での画像編集負担を軽減させる。
【０４０２】
なお、本実施例においては、クライアントホストコンピュータ９０１，９０２上では、例えばワードプロセッサ，グラフィックソフトにより、オペレータが文字情報，図形情報の生成を行う。生成された文字，図形情報等（第１の画像情報）は、ネットワーク９０５を経由して、ＳＰサーバー装置９０３に送られる。ＳＰサーバー装置９０３で受け取った文字，図形情報は、ＳＰサーバー装置９０３内の記憶装置９０６に記憶される。
【０４０３】
一方、スキャナプリンタ９０４でスキャンされた画像情報（第２の画像情報）も、ＳＰサーバー装置９０３内の記憶装置９０６に記憶される。ＳＰサーバー装置９０３上で動作しているページ記述言語により、ＳＰサーバー装置９０３の記憶装置９０６内で文字情報，図形情報，画像情報（イメージデータ）が、図５９に示すように合成される。
【０４０４】
図５９は、図５８に示したＳＰサーバー装置９０３により合成される印刷レアウトを示す模式図である。
【０４０５】
図において、９１１は１ページの領域を示し、この領域９１１内に、クライアントホストコンピュータ９０１，９０２からネットワーク９０５を介して転送された文字，図形等の転送情報９１２およびＳＰサーバー装置９０３が制御するスキャナプリンタ９０４でスキャンされた画像情報９１３がレイアウト情報に従って割付けられる。このように合成された情報がＳＰサーバー装置９０３のプリンタから出力させることも可能となる。
【０４０６】
なお、上記ＳＰサーバー装置９０３に制御されるスキャナプリンタ９０４は、スキャナとプリンタとが独立した単体構成であっても良い。また、ＳＰサーバー装置９０３に別の大容量記憶装置、例えば光磁気ディスク装置を接続した場合、スキャナプリンタ９０４のスキャナで読み取った画像情報をその都度ＳＰサーバー装置９０３内の記憶装置９０６に読み込み、クライアントホストコンピュータ９０１，９０２から転送された文字，図形情報とを合成して印刷するのではなく、スキャン画像を上記大容量記憶装置内に順次記憶させて行くことにより、画像データベースを構築することで、任意に大容量の記憶装置内から画像を取り出し、その画像を文字，図形情報と合成しながら印刷させることもできる。さらに、上記大容量の記憶装置をＳＰサーバー装置９０３の記憶装置９０６と別に設ける際、当該大容量の記憶装置とＳＰサーバー装置９０３とが直接接続されていなくても良く、例えばネットワーク９０５に接続されるクライアントホストコンピュータ９０１，９０２に配置され、これらのクライアントホストコンピュータ９０１，９０２がＳＰサーバー装置９０３に転送できる構成であれば良い。
【０４０７】
図６０は、図２に示した第１のステーションＳＴ１のプログラム構成を説明する図である。
【０４０８】
この図において、ＤＴＰアプリケーション１５００（図２に示したアプリケーションプログラム５６に対応する）から印刷しようとすると、ＯＳの一部のプリントマネージャー１５０１（プリントマネージャー）がコールされる。プリントマネージャー１５０１は、プリンタドライバ１５０２に対し、描画メモリ領域を確保させそのポインタを提供させる。プリントマネージャー１５０１は、そのポインタをＤＴＰアプリケーション１５００に知らせて、そこにクイックドロー（Ｑｕｉｃｋ  Ｄｒａｗ）フォーマットで描画させる。従って、ＤＴＰアプリケーション１５００が描画を完了すると、そのデータはすっかりプリンタドライバ１５０２に渡されている事になる。プリンタドライバ１５０２は、そのクイックドロー関数を１個１個、順番にＣａＰＳＬコードに変換してメモリに蓄え、Ｓ／Ｐクライアント（Ｓ／Ｐ  Ｃｌｉｅｎｔ）１５０３にそれをスキャナ／プリンタサーバー（Ｓ／Ｐサーバー）１６０２側に伝送する様に依頼をする。Ｓ／Ｐクライアント１５０３（図２に示した通信プログラム５３に対応する）とＳ／Ｐサーバー１６０２（図２に示した通信プログラム８３に対応する）との間は、データ転送プロトコルによって結ばれており、プリンタドライバ１５０２から渡された、変換済みのＣａＰＳＬコードをＳ／Ｐサーバー１６０２に転送する。なお、１５０４は通信プロトコル（図２に示したＴＣＰ／ＩＰプログラム５２に対応する）、１５０５はイーサネットボード、１５０６は圧縮（ＡＤＣＴ）制御関数、１５０７は圧縮ボードである。また、１６００は指定されたプリンタ、１６０１はＣａＰＳＬインタプリタ（図２に示したＰＤＬインタープリタープログラム８４に対応する）、１６０３は通信プロトコル（ＴＣＰ／ＩＰプログラム８２）、１６０４はイーサネットプロトコルである。なお、１６０５は圧縮制御関数、１６０６は圧縮ボードである。
【０４０９】
図６１は、図６０に示した第１のステーションＳＴ１のＯＳと各ドライバとの関係を示す詳細図であり、図６０と同一のものには同じ符号を付してある。
【０４１０】
この図に示すように、ドライバとマッキントッシュで構成されるステーションＳＴ１のＭａｃＯＳの関係を示す。
【０４１１】
図において、１５０８はＱｕｉｃｋ  Ｄｒａｗ／ＣａＰＳＬ変換ルーチン（変換プログラム５４）で、Ｑｕｉｃｋ  Ｄｒａｗの描画関数をＣａＰＳＬコードに変換する。
【０４１２】
デバイスマネージャー，プリントマネージャーをアプリケーションとしてではなく、ドライバとして構成する。インターフェースがＭａｃ用のＯＳを介してつながるので、スペックが標準化しやすい。また、マルチファインダーとは言っても、事実上シングルタスクのＭａｃ用のＯＳの場合、ドライバ化する事によって、その部分をマルチタスク化する事ができる。ＵＮＩＸマシンの場合には、文字どおり物理デバイスとのインターフェースのみをドライバ化し、あとはデーモンとして簡単にバックグラウンドで走らせる事ができる。
【０４１３】
また、プリンタドライバ機能は、ＱｕｉｃｋＤｒａｗ／ＣａＰＳＬ変換ルーチン１５０８（図２に示した変換プログラム５４に対応する），プリンタドライバ１５０２に分かれ、ＱｕｉｃｋＤｒａｗの全ての描画関数をＣａＰＳＬコード（の組み合わせ）に置き換える。
【０４１４】
そして、プリンタドライバ１５０２がＬａｓｅｒＷｒｉｔｅｒがプリントマネージャー１５０１に対して提供しているのと同じサービスを提供する。
【０４１５】
具体的には、ＤＴＰアプリケーション１５００が、ＰｒＳｔｌＤｉａｌｏｇ（）やＰｒＪｏｂＤｉａｌｏｇ（）等の関数を発行した時に、プリントマネージャー１５０１から要求されるパラメーターを返したり、ＳＰＣｌｉｅｎｔドライバのコマンドを制御する。
【０４１６】
図６２は、図６０に示したプリンタマネージャー１５０１とプリンタドライバ１５０２との機能処理を説明する図である。
【０４１７】
なお、プリンタドライバ１５０２は、ＬａｓｅｒＷｒｉｔｅｒと同じドラフトモードで動作する。また、プリンタドライバ１５０２は、プリントマネージャー１５０１によって起動され、プリントマネージャー１５０１に対しプリンタドライバインターフェースを提供する。プリンタドライバ１５０２はプリントマネージャーに対し以下のような関数を提供する。
【０４１８】
Open            （SPClientファイルのDRVR 28 リソースをメモリにロックし、OpenConnを起動する）
Close
Read            （原稿をスキャンする）
Write           （ＣａＰＳＬコードを印刷する）
Status          （ＳＰサーバーの状態をチェックする）
Control         （ＳＰサーバーを制御する）
KillIO
また、プリンタドライバ１５０２の基本はドライバであるが、［Chooser Document］の形で提供し、ＬａｓｅｒＷｒｉｔｅｒやＩｍａｇｅＷｒｉｔｅｒとともに、Chooser DAから選択可能にする。また、プリンタドライバ１５０２は、ＳＰクラアント１５０３を介してプロトコル（MacTCP）１５０４の通信機能を利用する。ＳＰクラアント１５０３は、プリンタドライバ１５０２に対し標準のドライバ形式のインターフェースを提供する。
【０４１９】
なお、ＳＰクラアント１５０３のドライバは、初期化処理（INIT-31 ）のメカニズムによって電源の立ち上げ時に自動的に自分自身をSystemにインストールする。ドライバのメモリー占有サイズが大きくなる時は、大部分のコードはコードリソースの形で持ち、オープンされた時にリソースをSystemヒープにロードする。その場合、Close 時にメモリーを解放する。またSP Client は［コントロールパネル ドキュメント］のリソースも有し、コントロールパネルから、IPアドレス等の各種パラメーターを設定できる。そのため少なくとも次のcdevリソースを持っている。
【０４２０】
DITL    ID = -4064
mach    ID = -4064
nrct    ID = -4064
ICN#    ID = -4064
BNDL    ID = -4064
FREF    ID = -4064
cdev    ID = -4064
また、標準ドライバインターフェースの無いＳＰクラアント１５０３のサービスは、Control ルーチンが提供する。Control コールのパラメーターブロックの持つ csCode を所定の値に設定する事によって、次の様な各種のコマンドが利用できる。以下、ＳＰクラアント１５０３とＳＰサーバー１６０２とのプロトコロルについて説明する。
【０４２１】
ＳＰクラアント１５０３は、直接的にはTCP プロトコル１５０４に全てのコマンドとデータを書き込むが、概念上はＬＡＮ９６を介して接続されたＳＰサーバー１６０２のレイヤーと交信している様に振舞う。従って、ここにEnd-to-Endのプロトコルが必要になる。サーバーとクライアントは、互いにパケットをやり取りする事によって、上位レイヤーに通信サービスを提供する。パケットは［サーバー／クライアント パケット］と［ドキュメント制御パケット］に分かれる。これは丁度、OSI のセッションレイヤーとドキュメントレイヤーの関係ににている。違いは、OSI の様に明確に２つのレーヤーに分けるのではなく、ひとつのレイヤーの中で、パケットの使い方を整理したという点が異なる。
【０４２２】
なお、MacTCPのアプリ側のインターフェースはTCP とUDP が用意されており、プリンタドライバはTCP プロトコルを使う。MacTCPはデバイスドライバである。また、本実施例において、ADCTは、Adaptive Discrete Cosine Transformの略で、JPEGという中間調画像の圧縮技術の核をなすものである。JPEGは、Joint Photographic Expert Group の略で、CCITT の下部組織（スタディグループ）である。この組織が発行する中間調画像の圧縮技術を、JPEG方式と言う。
【０４２３】
以下に、図２に示したステーションＳＴ２（ＩＢＭ社製のパーソナルコンピュータ）をクライアントホストとした場合とＳＰサーバー１６０２とのデータ通信処理状態について説明する。
【０４２４】
先ず、Windows 環境に於けるネットワークプログラムの特徴について説明する。
【０４２５】
アプリケーションプログラムが印刷しようとする時、従来のＯＳ（MS-DOS）環境ではアプリケーション自身が各社のプリンタに固有の制御コードを出力していた。それが、Windows3.0（商品名）では、アプリケーションとプリンタドライバがＧＤＩで分離、標準化されたために、アプリケーションの負荷は随分楽になった。プリンタに固有の制御はプリンタドライバに閉じ込めた。このため、プリンタメーカーが提供するプリンタドライバをホストコンピュータ内にインストールすれば、どんなアプリからでも印刷が可能になった。
【０４２６】
また、Windows3.0では、プリンタのポートとして、RS-232C やセントロニクスだけでなく、ネットワークも標準でサポートしている。
【０４２７】
ネットワークプリンタのプロトコルは、図６３に示すように構成されている。
【０４２８】
図６３は、図２に示した第２のステーションＳＴ２におけるネットワークプリンタのプロトコルを説明する図である。
【０４２９】
図において、アプリケーション１５６０（図２に示したアプリケーションプログラム６６に対応する）は自分自身が管理するメモリエリアではなく、上記ステーションＳＴ１（Ｍａｃｉｎｔｏｓｈ）と同様にＧＤＩモジュール１５６１に対して描画する。ＧＤＩモジュール１５６１はＧＤＩ関数のメタファイル１５６２を作ってプリンタドライバ１５６３に制御を渡す。プリンタドライバ１５６３は、１個１個のＧＤＩ関数をＣａＰＳＬコードに変換して、一時ファイル１５６５を作り、プリントマネージャー１５６６に制御を渡す。プリントマネージャー１５６６（図２に示したプリンタマネージャー６５に対応する）は、通常は一時ファイル１５６５をシリアルポートからローカルプリンタ１５６８に出力するが、本実施例においては、ＳＰクライアント１５６９（図２に示した通信プログラム６３に対応する）を介して、指定されたネットワークプリンタ（カラーＳＰサーバー）に伝送する。
【０４３０】
ここでは、ＳＰクライアント１５６９、ＬＡＮマネージャー１５６８と同じレベルのネットワークドライバとして機能する。１５７２はプロトコル（ＴＣＰ／ＩＰプログラム６２）、１５７３はイーサネットプロトコル、１５７４はイーサネットボード、１６１０はＳＰサーバー上のインタプリタ（図２に示したＰＤＬインタープリタープログラム８４に対応する）、１６１１はイーサネットボード、１６１２はイーサネットプロトコル、１６１３はプロトコル（図２に示したＴＣＰ／ＩＰプログラム８２に対応する）、１６１７はNetBIOS 用のポート、１６１４はSocket用のポート、１６１５はＳＰサーバー（図２に示した通信プログラム８３に対応する）である。
【０４３１】
また、Windows 準拠のアプリケーション１５６０は、ＧＤＩモジュール（描画の関数群）１５６１をコールしながら１ページの文章や絵を書いて行く。これを受けてＧＤＩモジュール１５６１は、ＧＤＩのメタファイル１５６２に変換してファイルにセーブする。ページの終りで、ＧＤＩプリンタドライバをロードし、起動し、メタファイル(MF)１５６２のファイル名をドライバに引き渡す。プリンタドライバ１５６３では、プリンタに固有の処理を行う。例えば、メタファイル−ＣａＰＳＬコード（ＭＦ−ＣａＰＳＬ）変換を行う。その結果、ＣａＰＳＬファイルがセーブされる。プリンタドライバ１５６３は再び、ＧＤＩモジュール１５６４に対して印刷の実行を指示する。それを受けて、ＧＤＩモジュール１５６４は以下（１）〜（３）のいずれかの処理をする。
【０４３２】
（１）PrintManager（スプーラ）を起動し、その後の制御を任せ、プリンタドライバに対して印刷（スプール）の完了を返す。
【０４３３】
（２）PrintManagerを起動せず、直接ローカルプリンタかネットワークプリンタにＣａＰＳＬファイルを転送する。（その間アプリケーションは作業を中断）
（３）仮想プリンタ（ファイル）に印刷する。
【０４３４】
このように構成された第１のサーバー装置において、プリンタドライバ１５６３が各ホスト特有のプリンタインタフェース（本実施例ではプリンタインタフェースＧＤＩ）に基づいて変換した印刷画像情報をサーバー装置に接続される画像処理装置（スキャナプリンタ）のプリント言語（本実施例ではＣａＰＳＬ）に基づく画像出力情報に変換すると、このプリントドライバ１５６３の下位レイヤとしてのＳＰクラアント１５６９とＳＰサーバー１６１５とがネットワーク９６を介して画像処理装置のプリント言語に基づく画像出力情報を通信転送させることにより、各ホストコンピュータ特有のプリンタインタフェースに基づいて変換した印刷画像情報を、サーバー装置に接続されるいかなる言語仕様に基づく画像処理装置でも市販のアプリケーションプログラムから印刷処理を高速に可能とする。なお、本実施例ではクライアント通信制御手段はＳＰクラアント１５６９に対応し、サーバー通信制御手段はＳＰサーバー１６１５に対応する。
【０４３５】
なお、ネットワークプリンタに印刷する時は、PrintManagerを使わない方が良い場合がある。
【０４３６】
また、本実施例ではTCP/IPのサービスを利用するためのポートとして、NetBIOS 用のポート１５７１，Socket用のポート１５７０が用意されている。ネットワークサービスプロトコル（ＮＦＳ，ＦＴＰ，ＬＡＮＭａｎａｇｅｒ，クライアント／サーバープロトコル等）は、これらのポート１５７１，１５７０の上に構築される。なお、ＵＮＩＸマシンにおいては、ＵＮＩＸの４．３ＢＳＤと互換性を持って通信するために、Socket用のポート１５７０を使用する。
【０４３７】
一方、マイクロソフト社製のネットワークサービスプロトコル（LANManager）を使用する場合は、マイクロソフト社が開発したNetBIOS 用のポート１５７１使用する。これは、Socketとは互換性が無いので、UNIXの側にLANManaher/Xと言うプロトコルを載せる必要があるためである。
【０４３８】
図６４は、図２に示した第２のステーションＳＴ２による印刷プロセスの一例を示すシーケンス図である。なお、標準のＷｉｎｄｏｗｓドライバは、DLL として書かれている。
【０４３９】
図６５は、図６３に示したＳＰクラアント１５６９のプログラムの構造を示す図であり、ＧＤＩインタフェース１５６９Ａ，ＳＰクラアントプログラム１５６９Ｂ，Socketコールルーチン１５６９Ｃ，初期設定ダイヤログ１５６９Ｄ等から構成される。
【０４４０】
なお、ＳＰクラアント１５６９のプロトコル１５７２は、Windows 3.0 においては、ネットワークプリンタドライバとして機能し、そのプロトコルの特徴は、TCP/IPを用いた事によって、必然的に、クライアント／サーバー型のプロトコルになることであり、Point-to-Pointの通信を行うことを意味する。
【０４４１】
一方、ＮｅｔＷａｒｅやＬＡＮＭａｎａｇｅｒは、ネットワーク分散型のプロトコル、例えばLANManagerの場合、ファイル名のハンドルを、ネットワーク側からもらって、そこにデータを書き込むので、ローカルにスプールファイルを作る必要が無い。これに対して、本実施例に示すＳＰクラアント１５６９のプロトコル１５７２では、TCP/IPがネットワークＯＳをサポートしていないため、クライアント自身がファイル名のハンドルを返し、その結果、ローカルなスプールファイルが下記のように作られる。
【０４４２】
マクロのシーケンスは、例えば以下の通り：
0004035173.tif 000002
以下、図６６を参照しながら、図２に示したステーションＳＴ２（ＩＢＭ−ＰＣ／ＡＴ）と指定されたＳＰサーバーＳＰ１との通信制御動作について説明する。
【０４４３】
図６６は、図２に示した第２のステーションＳＴ２とＳＰサーバーとのネットワーク接続状態を説明する図である。
【０４４４】
図において、１６２０はアプリケーション（図２に示したアプリケーションプログラム６６に対応する）、１６２１はＧＤＩ、１６２２はＣａＰＳＬ−ＩＶプリンタドライバ、１６２３はＳ／Ｐクライアント（図２に示した通信プログラム６３に対応する）、１６２４はプロトコル（図２に示したＴＣＰ／ＩＰプログラム６２に対応する）、１６２５はイーサネットボードで、ＬＡＮ９６を介して指定されたＳＰサーバー装置と通信し、ネットワークプリンタとして機能する指定されたプリンタ１６３０での印刷ジョブを要求する。１６３１がビットマップ画像で、プリンタ１６３０に出力される。１６３２はＣａＰＳＬラスタイメージプロセッサ（図２に示したＰＤＬインタープリタープログラム８４に対応する）で、イーサネットプロトコル１６３５，プロトコル１６３４（図２に示したＴＣＰ／ＩＰプログラム８２に対応する），ＳＰサーバー１６３３（図２に示した通信プログラム８３に対応する）を介してＣａＰＳＬコードをラスタイメージに変換する。
【０４４５】
この図に示すように第２のステーションＳＴ２には、ＣａＰＳＬ−ＩＶプリンタドライバ１６２２，ＳＰクラアント１６２３がインストールされており、ＳＰサーバー側にはＳＰサーバー１６３３がインストールされている。
【０４４６】
プリンタドライバ１６２２は、IBM-PC/AT のアプリケーションからTCP/IPプロトコル１６２４を介してネットーワーク９６上のスキャナープリンタサーバー（ＳＰサーバー）に印刷する為の、スキャナープリンタドライバとして機能する。具体的には、下記（１），（２）の処理を行う。
【０４４７】
（１）プリント時にＧＤＩ描画サブルーチンがコールされた時、プリンタドライバ１６２２がそれと等価なＣａＰＳＬコードを生成する。
【０４４８】
（２）生成したＣａＰＳＬコードを、ＳＰクラアント１６２３がドライバを通じてＳＰサーバー１６３３に伝送する。ＳＰクラアント１６２３は、ＳＰサーバー１６３３に接続されているプリンタ１６３０にＣａＰＳＬコードを伝送するための通信制御プログラムであり、TCP/IPプロトコル１６２４，ネットーワーク９６を介して通信する。ＳＰクラアント１６２３の基本機能は以下の通りである。
【０４４９】
（１）TCP/IPプロトコル１６２４を介してＳＰサーバー１６３３とEnd-to-Endのリンクを張る。
【０４５０】
（２）CaPSL-IVプリンタドライバ１６２２から受け取ったＣａＰＳＬデータを、ＳＰサーバー１６３３に送る。
【０４５１】
（３）アプリケーションプログラム６８を用いてＳＰサーバー１６３３に原稿のスキャンをさせる場合、それを受信し、スキャナアプリケーションプログラム６８に送り返す。なお、ＳＰサーバー１６３３は、ＳＰサーバー装置上でデーモンとして常に走っており、クライアントからの受信を待っている。ＳＰ  サーバー１６３３の基本機能は以下の通りである。
【０４５２】
（１）ＳＰクラアント１６２３から受け取ったＣａＰＳＬデータを、ＣａＰＳＬインタープリタ（図２に示したＰＤＬインタープリタープログラム８４に対応する）に渡す。
【０４５３】
（２）原稿スキャンプログラムを起動し、受け取ったデータをＳＰクラアント１６２３に送る。
【０４５４】
以下、図６５に示した初期設定ダイアログ１５０３Ｄの構成および作成方法について説明する。
【０４５５】
一般のアプリケーションプログラムは、印刷に関して余り多くのパラメータを制御していない。特に、アプリケーションプログラムがＷＩＮＤＯＷＳのＧＤＩインタフェースに伝えるパラメータは、下記の通りである。
【０４５６】
（１）ＧＤＩで描画する時のページバッファメモリ領域に関するパラメータ
（２）描画データに対応したＧＤＩ関数に関するパラメータ
（３）印刷開始コマンドに関するパラメータ
この結果、もし、ＧＤＩ−ＣａＰＳＬ変換ドライバ（変換プログラム６４）が選択されている場合、ＣａＰＳＬのメタファイル１５６２が作成される。これを受けて、ＷＩＮＤＯＷＳのプリントマネージャーがプリントドライバに対してダイアログボックスを開く用に要求し、オペレータに対して、以下のようなパラメータ（１）〜（３）を入力する用に催促する。
【０４５７】
（１）ページ毎の印刷枚数（デフォルト値は１枚）
（２）印刷するページ数（デフォルト値は全ページ）
（３）印刷順序（デフォルト値は逆順（印刷順序が最終ページから先頭ページ））
そして、ＷＩＮＤＯＷＳのプリントマネージャー１５６６は、ＳＰクライアント１５６９に対して、ＣａＰＳＬコードのメタファイル１５６２を指定されたローカルＳＰプリンタに伝達するように要求する。これを受けて、ＳＰクライアント１５６９は、ローカルプリンタにＣａＰＳＬコードを送る代わりに、ネットワーク（ＬＡＮ９６）を介してＳ／Ｐサーバー１６１５にＣａＰＳＬコードを送信する。
【０４５８】
なお、印刷に必要なパラメータの入力方法は、プリンタドライバに依存するが、印刷時にその都度セットするのは煩わしいパラメータは、ＷＩＮＤＯＷＳの「印刷」メニューとは別に、「用紙設定」のメニューから随時設定できるように構成されている場合が多い。この用紙設定メニューで入力するパラメータとしては、用紙サイズ（Ａ４／Ａ３），紙送り方向（ポートレート／ランドスケープ）等であり、プリンタがローカルプリンタであれば、これらのパラメータで十分であるが、ネットワークプリンタに出力する場合には、ＳＰクライアント１５６９としては、さらに、ＳＰサーバーのＩＰアドレス，ホストコンピュータ名，プリンタの種類（カラーレーザ複写装置，バブルジェット（ＢＪ）カラー複写装置の選択）が必要となる。
【０４５９】
そこで、本実施例における初期設定ダイアログ１５６９Ｄでは、下記のパラメータ設定を要求する。
【０４６０】
（１）ＳＰサーバのＩＰアドレス（例えば１９２．９．２００．１０１）
（２）クラス                  （Ｂ）
（３）サブネットマスク        （２５５．２５５．２５５．０）
（４）デフォルトプリンタの種類（ＣＬＣ／ＢＪ）
（５）通信プロトコル          （ＴＣＰ／ＩＰ）
これらのパラメータは、設定後、特定のファイルにセブされなければならない。また、ＳＰクライアント１５６９は、起動時にこのファイルを参照し、必要なパラメータをセットする。なお、初期設定ダイアログ１５６９Ｄには、ＷＩＮＤＯＷＳの様式に従い、「ＯＫ」（設定終了，ファイル更新状態を指示する）ボタン，「Ｃａｎｃｅｌ」（設定値は前の状態に戻し、ファイルは更新しない状態を指示する）ボタン，「Ｏｐｔｉｏｎ」（２枚目のダイヤログを開く必要がある状態を指示する）ボタンを備えている。
【０４６１】
以下、図６７を参照しながら、図２に示した第２のステーションＳＴ２上のＷＩＮＤＯＷＳと各ドライバとの関係について説明する。
【０４６２】
図６７は、図２に示した第２のステーションＳＴ２上のウインドウズと各ドライバとの関係を説明する図である。
【０４６３】
この図において、ＤＴＰアプリケーション１６４０（図２に示したアプリケーションプログラム６６に対応する）から印刷しようとすると、プリントマネージャー（Ｐｒｉｎｔｉｎｇ  Ｍａｎａｇｅｒ）１６４５（図２に示したプリントマネージャー６５に対応する）がコールされる。プリントマネージャー１６４５は、プリンタドライバ１６４３に対し、描画メモリ領域を確保させそのポインタを提供させる。プリントマネージャー１６４５は、そのポインタをＤＴＰアプリケーション１６４０に知らせて、そこにＧＤＩフォーマットで描画させる。従って、ＤＴＰアプリケーション１６４０が描画を完了すると、そのデータはすっかりプリンタドライバ１６４３に渡されている事になる。プリンタドライバ１６４３は、そのＧＤＩ関数を１個１個、順番にＣａＰＳＬコードに変換してメモリに蓄え、Ｓ／Ｐクライアント（Ｓ／Ｐ  Ｃｌｉｅｎｔ）１６４６（図２に示した通信プログラム６３に対応する）にそれをＳ／Ｐサーバー１６０２（図２に示した通信プログラム８３に対応する）側に伝送する様に依頼をする。Ｓ／Ｐクライアント１６４６（図２に示した通信プログラム６３に対応する）とＳ／Ｐサーバー１６０２との間は、データ転送プロトコルによって結ばれており、プリンタドライバ１６４３から渡された、変換済みのＣａＰＳＬコードをＳ／Ｐサーバー１６０２に転送する。
【０４６４】
なお、１６５０は通信プロトコル（図２に示したＴＣＰ／ＩＰプログラム６２に対応する）、１６４７は圧縮（ＡＤＣＴ）制御関数、１６４８は圧縮ボードである。１６４２はＧＤＩ−ＣａＰＳＬ変換ルーチン（図２に示した変換プログラム６４に対応する）で、アプリケーションの出力ＧＤＩコールのすべての描画関数をＣａＰＳＬコードに置き換える。なお、ここで、使用するＣａＰＳＬは、ＣａＰＳＬ−ＩＶをＡＤＣＴ拡張したものである。
【０４６５】
この図において、プリンタドライバ１６４３は、ＧＤＩ−ＣａＰＳＬ変換ルーチン１６４２の部分で変換されたデータの授受に関する制御行う。具体的には、アプリケーションプログラムがＥｓｃａｐｅ（ＳＴＡＲＴＤＯＣ）やＥｓｃａｐｅ（ＥＮＤＤＯＣ）等の関数を発行した時に、プリントマネージャー１６５２から要求されるパラメータを返したり、ＳＰクライアント１６４６のドライバのコマンドを制御する。プリンタドライバ１６４３は、ドラフトモード（Ｓｐｏｏｌなし）で動作する。プリンタドライバ１６４３は、ＧＤＩ１６４１によって起動され、プリントマネージャー１６５２に必要なコマンドを発行する。プリンタドライバ１６４３は、後述する図６８に示すＧＤＩモジュール１６４４に処理結果を通知する。
【０４６６】
図６８は、図２に示した第２のステーションＳＴ２上とＳＰサーバーとの各ドライバとの関係を説明する図であり、図６７と同一のものには同じ符号を付してある。
【０４６７】
この図において、ＳＰクライアント１６４６のドライバはプリントマネージャー１６５２から要求される各種のハレベルデバイスマネージャールーチン（ＤｒｉｖｅｒＯｐｅｎ，ＤｒｉｖｅｒＣｌｏｓｅ，Ｃｏｎｔｒｏｌ，ＦＳ  Ｒｅａｄ，ＦＳＷｒｉｔｅ，Ｓｔａｔｕｓ，ＫｉｌｌＩＯ）を提供する。
【０４６８】
以下、図６９，図７０を参照しながら各ホストコンピュータのプリンタインタフェースにより変換された画像情報のＳＰサーバーへの通信処理について説明する。
【０４６９】
図６９は本発明に係る各ホストコンピュータのネットワークプリンタ処理プロセスを説明する概念図である。
【０４７０】
この図に示すように、ホストコンピュータＨＯＳＴＡは、ポストスクリプト対応のアプリケーション５０００からプリンタドライバ５００２を介してネットワーク５００３上のポストスクリプト対応のプリンタ５００４に印刷する場合に対応し、アプリケーションからプリンタ５００４までがすべてポストスクリプトで統一されている。この場合、アプリケーション５０００とプリンタドライバ５００２とがＯＳ５００１を介在してプリントデータが処理されないため、ポストスクリプト対応のプリンタ以外はネットワーク５００３に接続することができない。
【０４７１】
一方、ホストコンピュータＨＯＳＴＢは、クイックドロー対応のアプリケーション５０１０からＯＳ５００１，プリンタドライバ５０１１を介してネットワーク５００３上のポストスクリプト対応のプリンタ５０１２に印刷する場合に対応し、特にポストスクリプトのエミュレーション機能（プリンタ５０１２内にエミュレータを設ける）を用いてポストスクリプト対応のプリンタ５０１２がクイックドロータイプのプリンタデータを処理する場合に対応する。
【０４７２】
一方、ホストコンピュータＨＯＳＴＣは、クイックドロー対応のアプリケーション５０２０からＯＳ５００１を介して、プリンタドライバ５０２１上でクイックドローを特定のプリンタの言語に変換して、ネットワーク５００３上のＳＰサーバー５０２２を介してＳＰサーバー５０２２がドライブする特定のプリンタ５０２３（本実施例ではスキャナプリンタとして、カラーレーザ複写装置（ＣＬＣ），バブルジェットカラー複写装置（ＢＪＣ）を採用している）に特定のプリンタ言語に従うプリントデータを処理させる場合に対応する。なお、プリンタ言語としては、ＣａＰＳＬ（商品名），ＬＩＰＳ（商品名），ＰＣＬ（商品名）等がある。これにより、各プリンタ言語に対応させてプリンタドライバ５０２１を構成すれば、どのようなプリンタであってもネットワークプリンタとしてシステムを構築させることができ、プリンタ選択の余地が大幅に広がる。すなわち、印刷目的に応じたプリンタ選択が可能となり、カラー印刷の別，プリンタ処理速度，印刷コストに対応した最適なプリンタをネットワークプリンタとして機能させることができる。
【０４７３】
図７０は本発明に係るサーバー装置のＳＰサーバと各ホストコンピュータのＳＰクライアントとの交信プロセスを説明する概念図であり、図６８と同一のものには同じ符号を付してある。
【０４７４】
例えば図６８に示すＳＰクライアント１６４６は直接的にはＴＣＰプロトコル１６５０Ｂにすべてのコマンドとデータを書込むが、概念上は、ネットワーク９６を介して接続されたＳＰサーバー１６０２と交信しているように処理を行う。従って、Ｅｎｄ−ｔｏ−Ｅｎｄのプロトコル（クライアントプロトコル２００１−サーバープロトコル２００４）が必要になる。この際、ＳＰクライアント１６４６とＳＰサーバー１６０２とは、互いにパケットをやり取りすることにより、上位レイヤに通信サービスを提供する。なお、パケットは、サーバー／クライアントパケット，ドキュメント制御パケットに分かれている。
【０４７５】
特に、ＳＰクライアント通信プログラムは、ドライバインタフェース２００２，クライアントプロトコル本体２００１，ＴＣＰ／ＩＰインタフェース２００３に分かれ、ＴＣＰ／ＩＰプロトコル１６５０とＴＣＰ／ＩＰプロトコル１６０３とは厳密に標準に合致する必要があるが、ＴＣＰ／ＩＰインタフェース２００３の部分は各ホストマシン（ＩＢＭホスト，Ｍａｃホスト，ＳＵＮホスト，ＮｅＸＴホスト）により異なる。
【０４７６】
本実施例ではプリンタドライバの下位レイヤとしてクラアントプロトコル２００１とサーバープロトコル２００４とをネットワーク９６を介して接続してＳＰサーバー装置に、例えばＣａＰＳＬに変換された画像情報を伝送して接続されるスキャナプリンタとしてのカラーレーザ複写装置（ＣＬＣ），バブルジェットカラー複写装置（ＢＪＣ）より印刷させている。
【０４７７】
図７１は本発明に係るサーバー装置によるパケット処理手順の一例を示す図である。
【０４７８】
この図において、２５００，２６００，２７００は独立したプログラムの処理単位（タスクＣ〜Ａ）で、例えばレイヤ毎に分割された通信プログラムのレイヤ毎のパケット処理ルーチンに対応する。なお、本実施例においては、各レイヤを従来のレイヤ概念と識別するためレベルと呼ぶ。また、説明上レベルが３つとするが、これ以上であっても同様である。
【０４７９】
この図に示されるように、プログラムの処理単位２７００で示すタスクＡがレベル３（ＬＶＥＬ−３）に、プログラムの処理単位２６００で示すタスクＢがレベル（２ＬＶＥＬ−２）に、プログラムの処理単位２５００で示すタスクＣがレベル１（ＬＶＥＬ−１）に対応する。
【０４８０】
特に、レベル１は、イーサネットを介して外部インタフェース２９００と直接データをやりとりするためのプロトコルで、主にネットワークにまつわる仕事のやり取りを行う。レベル２は、中間レベルのプロトコルで、主に端末とネットワークとの間で信頼性のあるデータのやり取りを行う。レベル３は、上位レベルのプロトコルで、ネットワークを介してＥｎｄ−ｔｏ−Ｅｎｄで信頼性のある通信路を確保する。なお、実際のアプリケーションはレベル３の上に構築されるものとする。
【０４８１】
このように本発明に係る第５のサーバー装置の通信処理方法によれば、低位の通信プログラムから高位の通信プログラムを連続的に実行してバッファメモリに画像情報を記憶させる際に、低位の通信プログラムから上位の通信プログラムに画像情報に対するバッファメモリへの展開アドレスを催促し、該催促に従って高位の通信プログラムから低位の通信プログラムに伝達される展開開始アドレスに基づいて低位の通信プログラムによりバッファメモリに画像情報を展開させるので、低位の通信プログラムから高位の通信プログラムを連続的に実行してバッファメモリに画像情報を転送して記憶させる際の各通信プログラム間のオーバヘッドを抑えることが可能となる。
【０４８２】
具体的には、先ず、タスクＣ（レベル１）が外部インタフェース２９００からデータを受信使用とする時、タスクＣは実際の受信バッファを確保するとこなく、その代わりにタスクＢ（レベル２）に対して実メモリのポインタ（アドレス）を要求する。タスクＣはタスクＢから受け取ったポインタを開始アドレスとする所定メモリエリア（仮想メモリ）に対して受信データを書込む。タスクＢがタスクＣに引き渡すポインタ２６０２は、タスクＢが実際に持つメモリのポインタでなくとも良い。本実施例では、タスクＡのみが実メモリ２７０１を確保し、タスクＢとタスクＣは実メモリ２７０１へのポインタ２７０２，２６０２をを知るのみである。このように、タスクＢはタスクＡから受け取ったポインタ２７０２をポインタ２６０２として引き渡している。この場合、タスクＣが受信したデータ２８００は直接タスクＡの実メモリ２７０１に書込まれる。タスクＢ，Ｃも、そのデータの中身を直接参照することができる。このように構成することにより、１回のデータ受信に関して内部でのデータのリード／ライトは１回で済み、最小のデータ伝送回数で処理できる。この結果、タスク毎に受信バッファメモリを設ける場合に比べて、格段に処理速度（パケット通信処理速度）が向上する。なお、本実施例では高速化の障害となるような層構造を持たず、レベルというプログラム処理単位でパケット通信処理を実行する。また、詳細は省略するが、パケットは各レベル１〜３に共通のヘッダ、例えばｐｒｏｔｏｃｏｌ，ｃｈａｎｎｅｌ，ｐａｃｋｅｔ  ｔｙｐｅ，ｐａｃｋｅｔ  ｉｄ，ｍｏｄｉｆｉｅｒ，ｐｋ  ｓｉｚｅ［２］の８バイトを備える８バイト構成となって定義されている。このうち、３つのレベルを分離するのは、「ｐａｃｋｅｔ  ｔｙｐｅ」の上位４ビットだけで行っており、その他の要素はすべのレベルで共通に使用される。各レベルは、自分のレベル宛に送られたパケットのみを処理する。ただし、他のレベルのパケットは、呼ぶことは自由であるが、書込むことは禁止される。
【０４８３】
これに対して、従来もしくは通常のプロトコルでは、上位レイヤのパケットのすべては、下位レイヤのデータパケットによって伝送されるが、例えばレベル１のパケットは、レベル１〜レベル３の各ヘッダを持つ必要があり、伝送効率が低下するばかりでなく、ヘッダの解析ルーチンを持つ必要も生じ、メモリ資源の無駄と処理時間の無駄が発生する。従って、本実施例にように、「ｐａｃｋｅｔｔｙｐｅ」が自分より上位のタイプであれば、すべて上位レベルに伝えることにより、各レベルでのヘッダ解析処理負担を軽減することができる。なお、上記実施例ではデータの受信処理を例にして説明したが、送信の場合にも同様に本発明を適用できることは言うまでもない。
【０４８４】
以下、図７２に示すフローチャートを参照しながら本発明に係るサーバー装置に接続されるプリンタにおけるカラー／白黒印刷制御動作について説明する。
【０４８５】
図７２は本発明に係るサーバー装置に接続されるプリンタにおけるカラー／白黒印刷制御手順の一例を示すフローチャートであり、図２に示すシステム全体制御プログラム９３によって実行される。なお、(1) 〜(11)は各ステップを示す。
【０４８６】
先ず、ステップ(1) において、通信プログラム８３を介して入力された画像情報からアプリケーションプログラムの種別がカラー／白黒のいずれかを判定し(1) 、カラーアプリケーションプログラムである場合には、ステップ(2) において、カラーアプリケーションプログラムにおいて、印刷指定がカラー印刷かそれとも白黒印刷かを判定し(2) 、カラー印刷の場合には、ステップ(3) において、プリンタがカラープリンタかそれとも白黒プリンタかを判別し(3) 、カラープリンタ（例えばカラーレーザ複写装置（ＣＬＣ））である場合には、ステップ(6) において、カラーアプリケーションプログラムによるカラー印刷情報をカラープリンタでカラー印刷するようにプリンタを制御する。
【０４８７】
一方、ステップ(3) の判定で白黒プリンタであると判定された場合は、ステップ(7) において、カラーアプリケーションプログラムによるカラー印刷情報を白黒プリンタで白黒印刷するようにプリンタを制御する。
【０４８８】
一方、ステップ(2) の判定で白黒情報であると判定された場合は、プリンタがカラープリンタ指定かそれとも白黒プリンタ指定かを判別し(4) 、カラープリンタ（例えばカラーレーザ複写装置（ＣＬＣ））である場合には、ステップ(8) において、カラーアプリケーションプログラムによる白黒印刷情報をカラープリンタで白黒印刷するようにプリンタを制御する。
【０４８９】
一方、ステップ(4) の判定で白黒プリンタであると判定された場合は、ステップ(9) において、カラーアプリケーションプログラムによる白黒印刷情報を白黒プリンタで白黒印刷するようにプリンタを制御する。
【０４９０】
一方、(1) の判定で白黒アプリケーションプログラムである場合は、プリンタがカラープリンタ指定かそれとも白黒プリンタ指定かを判別し(5) 、カラープリンタ（例えばカラーレーザ複写装置（ＣＬＣ））である場合には、ステップ(10)において、白黒アプリケーションプログラムによる白黒印刷情報をカラープリンタで白黒印刷するようにプリンタを制御する。
【０４９１】
一方、ステップ(5) の判定で白黒プリンタであると判定された場合は、ステップ(11)において、白黒アプリケーションプログラムによる白黒印刷情報を白黒プリンタで白黒印刷するようにプリンタを制御する。
【０４９２】
このように、最終的に白黒プリントが行われる場合には、カラーアプリケーションプログラムによる印刷設定がカラーでプリンタが白黒プリンタ指定の時，カラーアプリケーションプログラムにより印刷設定が白黒で、プリンタがカラープリンタの時，カラーアプリケーションプログラムによる印刷設定が白黒で、プリンタが白黒プリンタの時，白黒アプリによりプリンタがカラープリンタの時，白黒アプリによりプリンタが白黒プリンタの時である。
【０４９３】
上記分類の中で、正常なプリントはカラーアプリケーションプログラムによる印刷設定が白黒で、プリンタが白黒プリンタの時，白黒アプリケーションプログラムによりプリンタが白黒プリンタの時であり、その他の場合は、アプリケーションプログラムの印刷設定と、ＳＰサーバのプリンタハードウェアにおいて、カラー，白黒設定が整合していないため例外処理として処理する。
【０４９４】
なお、ネットワークプリンタとして接続可能なプリンタの種類は、カラープリンタとして、上記カラーレーザ複写装置（ＣＬＣ），ＢＪカラー複写装置（ＢＪＣ），市販カラープリンタであり、白黒プリンタとしては、市販のページプリンタ，市販ラインプリンタ等である。
【０４９５】
以下、図７３を参照しながら本発明に係るサーバー装置における印刷ジョブの流れについて説明する。
【０４９６】
図７３は本発明に係るサーバー装置に接続される各入出力機器のおける印刷ジョブの流れを説明する図である。
【０４９７】
この図に示すように、ホストマシンのオペレータがアプリケーションプログラムにデータ入力を行い、さらにホストコンピュータ上でプリンタ指定を行って、プリント出力の指示等を行うと、アプリケーションプログラムはＰＤＬ変換ソフト３００１（例えば変換プログラム５４）に出力データ，プリンタ指定情報等を渡す。これを受けて、ＰＤＬ変換ソフト３００１は、アプリケーションプログラムから受け取ったデータに対して、プリンタ指定情報等に基づきＰＤＬ変換を行い、ＰＤＬ変換したデータをＳＰサーバとのＳＰクライアントソフト３００２（例えば通信プログラム５３）に渡す。これを受けて、ＳＰクライアントソフト３００２は、ＳＰサーバーのサーバソフト３００３（通信プログラム８３）とネットワーク（図示しないイーサネット等）を介して通信を行い、ＰＤＬ変換されたデータをＳＰサーバーソフト３００３に送る。これを受けて、ＳＰサーバーソフト３００３は、ＳＰクライアントソフト３００２からデータを受取り、全体制御ソフト３００４（システム全体制御プログラム９３）にデータが送られてきたことを伝える。これを受けて、全体制御ソフト３００４は、送られてきたデータと、ＳＰサーバーの状態に基づき、例えばＰＤＬインタープリタープログラム８４等のプリント処理ソフト３００５にデータの処理を依頼する。これを受けて、プリント処理ソフト３００５は依頼されたデータを画像入力装置制御ソフト３００７（デバイスドライバ８６）が受け入れられる形に処理を行い、バンドメモリ３００６に結果を保存する。プリント処理ソフト３００５の処理が終了すると、終了を全体制御ソフト３００４に伝える。全体制御ソフト３００４は、画像入力装置制御ソフト３００７にプリント出力を依頼する。これを受けて、画像入出力装置制御ソフト３００７は、バンドメモリ３００６からデータを読み取り、画像入出力装置インターフェース３００８にデータを送る。これを受けて画像入出力装置インターフェース３００８は、画像入出力装置制御ソフト３００７から送られてきたデータをスキャナプリンタ、例えば指定されたＳ／Ｐサーバ装置に接続されるカラーレーザ複写装置のプリンタ部に出力する。以上の処理により、ネットワーク上のホストコンピュータのアプリケーションプログラム（ネットワーク上のプリンタのページ記述言語と異なるページ記述言語のアプリケーションプログラム）からネットワーク上の指定したプリンタに所望のデータをプリントアウトすることができる。
【０４９８】
なお、白黒プリントが行なわれる場合、最終的に白黒で出力されるわけであるが、アプリケーションプログラムの設定、ＳＰサーバーの設定等の違いをどの処理で認識し、吸収するかということが問題になるが、本実施例ではプリントアウトする全体の処理流れの中で、上記カラー／白黒印刷処理の設定を吸収できる箇所として、ホスト側のアプリケーションプログラムからの出力データを処理するＰＤＬ変換ソフト３００１，ＳＰサーバのプリント処理ソフト３００５，ＳＰサーバの画像入出力装置制御ソフト３００７で実行可能である。
【０４９９】
上述したように、白黒／カラー印刷処理での白黒印刷は、▲１▼カラーアプリケーションプログラムによる印刷設定がカラーでプリンタが白黒プリンタの時，▲２▼カラーアプリケーションプログラムにより印刷設定が白黒で、プリンタがカラープリンタの時，▲３▼カラーアプリケーションプログラムによる印刷設定が白黒で、プリンタが白黒プリンタの時，▲４▼白黒アプリケーションプログラムによりプリンタがカラープリンタの時，▲５▼白黒アプリケーションプログラムによりプリンタが白黒プリンタの時であるので、場合に分けて説明する。
【０５００】
先ず、▲１▼カラーアプリケーションプログラムによる印刷設定がカラーでプリンタが白黒プリンタの時は、オペレータのホストコンピュータ上のダイアログに表示する警告例は「カラー印刷設定ですが、指定したプリンタは白黒プリンタです。このプリンタで印刷しますか？」となる。この場合、アプリケーションプログラムからのデータはカラーデータとなる。プリンタが白黒のため、カラー／白黒変換を行う必要がある。カラー／白黒の吸収はＰＤＬ変換ソフト３００１，プリント処理ソフト３００５で行うことが可能である。なお、画像入出力装置制御ソフト３００７では白黒プリンタのつくりのため、通常はカラー／白黒変換は出来ないが、白黒プリンタ用でも、カラー入力可能な場合は別である。
【０５０１】
そこで、ＰＤＬ変換ソフト３００１で吸収する場合は、ＰＤＬ変換ソフト３００１は白黒プリンタ指定を認識し、ＰＤＬ変換を行なう際にカラーデータを白黒データに変換する。
【０５０２】
また、プリント処理ソフト３００５で吸収する場合は、カラーデータが送られてくると、全体制御ソフト３００４の指示により、バンドメモリ３００６に白黒展開をおこなう。
【０５０３】
さらに、画像入出力装置制御ソフト３００７で吸収する場合は、自分自身は、白黒プリンタのソフトであるから、全体制御ソフト３００４から、バンドメモリ３００６にはカラーデータがあることを伝えられなければならない。そして、画像入出力装置インタフェース３００８にデータ転送を行うときに、カラーデータを白黒に変換する。
【０５０４】
一方、▲２▼カラーアプリケーションプログラムにより印刷設定が白黒で、プリンタがカラープリンタの時は、オペレータのホストコンピュータ上のダイアログに表示する警告例は「白黒印刷設定ですが、指定したプリンタはカラープリンタです。このプリンタで印刷しますか？」等となる。この場合、アプリケーションプログラムからのデータは白黒データとなる。プリンタがカラーのため、白黒／カラー変換を行う必要がある。白黒／カラーの吸収はＰＤＬ変換ソフト３００１、プリント処理ソフト３００５で行うことが可能である。画像入出力装置制御ソフト３００７ではカラープリンタのつくりのため、通常は白黒／カラー変換は出来ない。カラープリンタ用でも、白黒入力可能のつくりにしていれば、可能である。
【０５０５】
そこで、ＰＤＬ変換ソフト３００１で吸収する場合は、ＰＤＬ変換ソフト３００１はカラープリンタ指定を認識し、ＰＤＬ変換の際に白黒データをカラーデータに変換する。
【０５０６】
また、プリント処理ソフト３００５で吸収する場合は、白黒データが送られてくると、全体制御ソフト３００４の指示により、バンドメモリ３００６にカラー展開を行う。
【０５０７】
さらに、画像入出力装置制御ソフト３００７で吸収する場合は、自分自身は、カラープリンタのソフトであるから、全体制御ソフト３００４から、バンドメモリ３００６には白黒データがあることを伝えられなければならない。画像入出力装置インタフェース３００８にデータ転送を行うときに、白黒データをカラーに変換する。
【０５０８】
一方、▲３▼カラーアプリケーションプログラムによる印刷設定が白黒で、プリンタが白黒プリンタの時は、警告なし（正常）で、ＰＤＬ変換ソフト３００１は初めから、白黒モードで変換を行う。プリント処理ソフト３００５も白黒モードで処理を行う。画像入出力装置制御ソフト３００７は通常通りの動作を行う。
【０５０９】
一方、▲４▼白黒アプリケーションプログラムによりプリンタがカラープリンタの時は、オペレータのホストコンピュータ上のダイアログに表示する警告例は「指定したプリンタはカラープリンタです。このプリンタで印刷しますか？」等となる。
【０５１０】
この場合は、以下、上記▲２▼の場合と同様である。
【０５１１】
一方、▲５▼白黒アプリケーションプログラムによりプリンタが白黒プリンタの時は、警告なし（正常）で、以下、上記▲３▼の場合と同様である。
【０５１２】
以上の実施例に関して、吸収する際の条件を図７４に示す。
【０５１３】
図７４は、図７３に示した各入出力機器の白黒印刷吸収条件を示す図である。
【０５１４】
この図において、〇は上記▲１▼〜▲５▼の処理実行箇所を示し、ａ〜ｃは処理開始位置の条件を示し、印刷条件の指定をホストコンピュータ側に近い段階で行う（ａ条件）場合、印刷条件の指定をＳ／Ｐサーバー側で行う（ｂ条件）場合、印刷条件の指定を全体のデータの流れとして効率の良いところで行う（ｃ条件）場合とがある。
【０５１５】
このような条件から各処理を吸収する箇所は以下のように分類できる。
【０５１６】
すなわち、条件ａを満たさせる場合には、カラー（指定）／白黒（プリンタ）、白黒（指定）／カラー（プリンタ）の変換は、ホストコンピュータ側のＰＤＬ変換ソフト３００１で全て行なうことになる。この場合、Ｓ／Ｐサーバ側は特別な処理を必要としない。
【０５１７】
また、条件ｂを満たさせる場合には、プリント処理ソフト３００５が全てのカラー（指定）／白黒（プリンタ），白黒（指定）／カラー（プリンタ）の変換を行なうか、画像入出力装置制御ソフト３００７が全てのカラー（指定）／白黒（プリンタ），白黒（指定）／カラー（プリンタ）の変換を行なうか、プリント処理ソフト３００５がカラー（指定）／白黒（プリンタ）変換を行ない、画像入出力装置制御ソフト３００７が白黒（指定）／カラー（プリンタ）の変換を行なうか、プリント処理ソフト３００５が白黒（指定）／カラー（プリンタ）の変換を行ない、画像入出力装置制御ソフト３００７が白黒（プリンタ）変換を行なうかという場合がある。
【０５１８】
さらに、条件ｃを満たさせる場合には、この場合、プリンタがカラープリンタの時、つまり、上記▲２▼のようにカラーアプリケーションプログラムにより印刷設定が白黒で、プリンタがカラープリンタの時，▲４▼のように白黒アプリケーションプログラムによりプリンタがカラープリンタの時は、プリント処理ソフト３００５で白黒／カラー変換を行なう。
【０５１９】
また、プリンタが白黒のとき、つまり、▲１▼のようにカラーアプリケーションプログラムにより、印刷設定がカラーで、プリンタが白黒プリンタの時，▲３▼のようにカラーアプリケーションプログラムにより印刷設定が白黒で、プリンタが白黒プリンタの時，▲５▼のように白黒アプリケーションプログラムによりプリンタが白黒プリンタの時で、変換の必要のある時、条件ａを満たさせる場合には、ＰＤＬ変換ソフト３００１でカラー／白黒変換を行なう。この変換の場合、通信データは全て白黒ＰＤＬ変換済みデータとなる。以上が標準アプリケーションプログラムから白黒プリントを行う場合の説明である。
【０５２０】
以下、図７５〜図７７を参照しながら図２に示した指定されたＳＰサーバー装置ＳＰ１とステーションＳＴ３（ＵＮＩＸマシン）とのネットワーク処理について説明する。
【０５２１】
図７５は、図２に示したＳＰサーバー装置ＳＰ１と第３のステーションＳＴ３とのネットワークシステムの概要を説明するブロック図である。
【０５２２】
図において、４００１はＵＮＩＸマシンで構成されるワークステーション（図２に示したステーションＳＴ３に対応する）、４００２はＳＰサーバー（図２に示した通信プログラム８３に対応する）で、ネットワークとしてのイーサネット４００４（図２に示したイーサネットＬＡＮ９６）を介してワークステーション４００１と交信し、ワークステーション４００１から要求されたプリントジョブを処理してネットワークプリンタとして指定されたプリンタ４００３から印刷出力を制御する。
【０５２３】
図７６は、図７５に示したワークステーション４００１の機能を説明するブロック図である。
【０５２４】
図において、４００５はＵＮＩＸマシンで標準のプリントコマンド（ｌｐｒ）、４００６はＵＮＩＸマシンで標準のプリント用デーモン（常駐プログラム）としてのｌｐｄプログラムであり、図２に示したｌｐｒ／ｌｐｄプログラム９０に相当する。４００７はワークステーション４００１の外部記憶装置内に格納されているプリンタ管理用ファイル（／ｅｔｃ／ｐｒｉｎｔｃａｐ）で、ＳＰサーバー４００２に接続されているプリンタ４００３のエントリが登録登録されている。４００８はプリントするファイルの内容の複製（データファイル）とプリントのときの制御情報（コントロールファイル）を一時的に格納する外部記憶装置内のスプール領域、４００９は外部記憶装置内に保存されているファイルである。
【０５２５】
図７７は、図７５に示したＳＰサーバー４００２の機能構成を説明するブロック図である。
【０５２６】
図において、４０１０は前記ＳＰサーバー４００２内のプリント常駐プログラムであるサーバｌｐｄプログラム、４０１１はＳＰサーバー内の全体制御ソフトウエア（図２に示したシステム全体制御プログラム９３に対応する）、４０１２はＳＰネットワークサーバー内のＳＰ管理用情報記憶部で、ＳＰサーバー４００２に接続されているプリンタ，スキャナの情報が登録されている。４０１３はＳＰサーバー４００２内の主記憶装置、４０１４はＣａＰＳＬインタプリタ（図２に示したＰＤＬインタープリタープログラム８４に対応する）、４０１５はＳＰコントローラ（図２に示したデバイスドライバ８６）である。
【０５２７】
以下、ＵＮＩＸマシンで標準のプリントコマンドｌｐｒを用いたＳＰサーバー４００２に接続されたプリンタ４００３への出力動作について説明する。
【０５２８】
先ず、ワークステーション４００１において、出力すべきファイル４００９のファイル名とプリンタ管理用ファイル４００７の中に登録されている出力先のプリンタ４００３のプリンタ名を引数で指定してプリントコマンド（ｌｐｒ）４００５を起動する。プリントコマンド（ｌｐｒ）４００５は、引数で指定されたファイル４００９の複製をデータファイルとしてスプール領域４００８に作成する。また、プリント時の制御情報を格納したコントロールファイルをスプール領域４００８に作成する。プリントコマンド（ｌｐｒ）４００５からｌｐｄ４００６に対して引数で指定されたプリンタ名を送信する。ｌｐｄ４００６は、プリントコマンド（ｌｐｒ）４００５からプリンタ名を受信してそのプリンタ名がプリンタ管理用フィアル４００７に登録されていることを確認した後、プリントコマンド（ｌｐｒ）４００５に対して応答を送信する。
【０５２９】
プリントコマンド（ｌｐｒ）４００５には応答を受信して動作を終了する。そして、ｌｐｄ４００６は、ＳＰサーバー４００２と通信回線としてのイーサネット４００４を介してリンクした後、ＳＰサーバー４００２上で動作しているｌｐｄ４０１０に対して、プリンタ管理用ファイル４００７に登録されている前記プリンタ名を送信する。ｌｐｄ４０１０がこのプリンタ名を受信すると、ＳＰ管理用情報記憶部４０１２に登録されているプリンタ名と照合し、その情報を得た後、ｌｐｄ４００６に対して応答を送信し、さらに全体制御ソフトウエア４０１１に対してプリンタオープン要求を送信する。
【０５３０】
全体制御ソフトウエア４０１１は、プリンタに関して必要な設定を行った後に、ｌｐｄ４０１０に対してプリンタオープン要求応答を送信する。ｌｐｄ４０１０は、全体制御ソフトウエア４０１１からプリンタオープン要求応答を受信したら、ｌｐｄ４００６からの送信を待つ。ｌｐｄ４００６は、ｌｐｄ４０１０からの応答を受信すると、スプール領域４００８に作成したデータファイルのサイズと名前をｌｐｄ４０１０に対して送信する。ｌｐｄ４０１０は、ｌｐｄ４００６からデータファイルのサイズと名前を受信したら、ＳＰサーバー４００２内の主記憶装置４０１３にデータファイルのサイズ以上のＲＡＭディスクが獲得できるかどうかを調べる。ＲＡＭディスクが獲得できる場合は、データファイル用のＲＡＭディスクを獲得した後、ｌｐｄ４００６に対して応答を送信する。ＲＡＭディスクを獲得できない場合は、ＳＰ管理用情報記憶部４０１２に登録されているプリンタ４００３に関するデフォルトの設定値を得た後、ｌｐｄ４００６に対して応答を送信する。ｌｐｄ４００６は、ｌｐｄ４０１０からの応答を受信すると、スプール領域４００８に作成したデータファイルの内容を読み出し、順次ｌｐｄ４０１０に対して送信する。データファイルをすべて送信した後に、送信終了をｌｐｄ４０１０に対して送信する。ｌｐｄ４０１０は、ｌｐｄ４００６からデータファイルの内容を受信する。データファイル用のＲＡＭディスクが獲得できている場合は、ＲＡＭディスク内にデータファイルを作成し、受信したデータファイルの内容を格納する。データファイル用のＲＡＭディスクが獲得できていない場合は、受信したデータファイルの内容を順次全体制御ソフトウエア４０１１へ送信する。データファイルのサイズ分のデータを受信した後、送信終了したら、ｌｐｄ４００６に対して応答を送信する。データファイル用のＲＡＭディスクが獲得できていない場合は、全体制御ソフトウエア４０１１に対してプリント終了を送信する。ｌｐｄ４００６は、ｌｐｄ４０１０からの応答を受信すると、スプール領域４００８に作成したコントロールファイルのサイズと名前をｌｐｄ４０１０に対して送信する。ｌｐｄ４０１０は、ｌｐｄ４００６から前記コントロールファイルのサイズと前を受信したら、ＳＰサーバー４００２内の主記憶装置４０１３にコントロールファイルのサイズ以上のＲＡＭディスクが獲得できるかどうかを調べる。ＲＡＭディスクが獲得できる場合は、コントロールファイル用のＲＡＭディスクを獲得した後、ｌｐｄ４００６に対して応答を送信する。ＲＡＭディスクが獲得できない場合は、ＳＰ管理用情報記憶部４０１２に登録されているプリンタに関するデフォルトの設定値を得た後、ｌｐｄ４００６に対して応答を送信する。ｌｐｄ４００６は、ｌｐｄ４０１０からの応答を受信すると、スプール領域４００８に作成したコントロールファイルの内容を読み出し、順次ｌｐｄ４０１０に対して送信するとともに、コントロールファイルをすべて送信した後に送信終了をｌｐｄ４０１０に対して送信する。
【０５３１】
ｌｐｄ４０１０は、ｌｐｄ４００６からコントロールファイルの内容を受信する。コントロールファイル用のＲＡＭディスクが獲得できている場合は、ＲＡＭディスク内にコントロールファイルを作成し、受信したコントロールファイルの内容を格納する。コントロールファイル用のＲＡＭディスクが獲得できていない場合は、受信したコントロールファイルの内容を破棄する。コントロールファイルのサイズ分のデータを受信した後、送信終了を受信したら、ｌｐｄ４００６に対して応答を送信する。ｌｐｄ４００６は、ｌｐｄ４０１０からの応答を受信すると、スプール領域４００８に作成したデータファイルおよびコントロールファイルを削除し、ＳＰサーバー４００２とイーサネット４００４を介して張っていたリンクを切断する。
【０５３２】
ｌｐｄ４０１０は、コントロールファイル用のＲＡＭディスク内にコントロールファイルが作成されている場合は、その内容を読み出しプリンタに関する設定値を決定する。データファイル用のＲＡＭディスク内にデータファイルが作成されている場合は、データファイルの内容を読み出し、順次全体制御ソフトウエア４０１１に対して送信する。データファイルの内容をすべて送信した後に、全体制御ソフトウエア４０１１に対してプリント終了を送信する。全体制御ソフトウエア４０１１は、ｌｐｄ４０１０から受信した前記データファイルの内容を、ＣａＰＳＬインタプリタ４０１４へ送信して、ＣａＰＳＬに従ってイメージ展開を行った後、ＳＰコントローラ４０１５へプリント要求を行う。また、ＳＰコントローラ４０１５は、全体制御ソフトウエア４０１１からのプリント要求を受けて、プリンタ４００３へ出力する。
【０５３３】
図７８は本発明に係るサーバー装置と各ホストとのデータロード処理状態を説明するネットワーク図である。
【０５３４】
図において、９０１はＳＰサーバーで、不揮発性メモリ９０１Ａを有し、各種のリスト，プログラム等を記憶している。９０８はスキャナプリンタで、ＳＰサーバー９０１と上述したインタフェースボードを介して接続されている。９０２，９０３，９０４はダウンロードホストコンピュータ（ダウンロードホスト）で、各ホストコンピュータに対応する、例えばハードディスク等で構成される記憶装置９０２Ａ，９０３Ａ，９０４Ａを備えている。９０５，９０６はクライアントホストで、ネットワーク９０７を介してＳＰサーバー９０１にプリント要求，スキャナ要求を出力する。
【０５３５】
図７９は、図７８に示したＳＰサーバー９０１およびダウンロードホスト９０２，９０３の記憶情報を説明するデータ構成図である。
【０５３６】
この図に示されるように、ＳＰサーバー９０１の不揮発性メモリ９０１Ａには、あらかじめオペレータによって作成された特定の１台または優先度を付けた複数台のダウンロードホスト（本実施例ではダウンロードホスト９０２，９０３）の情報リスト（ダウンロードホストリスト）９１１，印刷時に必要なフィルタフォントの情報リスト（フィルタフォントリスト）９１２，ダウンロードプログラム９１３等が記憶されている。なお、あらかじめオペレータによって作成された特定の１台または優先度を付けた複数台のダウンロードホスト（本実施例ではダウンロードホスト９０２，９０３）の情報リスト（ダウンロードホストリスト）９１１および印刷時に必要なフィルタフォントの情報リスト（フィルタフォントリスト）９１２，ダウンロードプログラム９１３は、例えばテキストファイル形式で記憶されている。
【０５３７】
一方、ダウンロードホスト９０２の記憶装置９０２Ａには、ＳＰサーバー９０１に必要な各種プログラム９１５（図２に示すＳＰサーバーＳＰ１内のシステム全体制御プログラム９３等の各種プログラム），印刷を行う際に必要なフィルタおよびフォントデータ（フィルタフォントデータ）９１６，ＳＰサーバー９０１の立ち上げに必要な初期設定パラメータファイル９１７，上記９１５〜９１７をＳＰサーバー９０１にアップロードするためのアップロードプログラム９１８が記憶されている。
【０５３８】
このように構成された本発明に係る第２のサーバー装置によれば、本体上に設けられた不揮発性メモリ不揮発性メモリ９０１Ａが特定の１台または優先度が付けられた複数台のホストコンピュータから所望の情報をダウンロードするためのホストコンピュータ先指定情報，前記所望の情報をダウンロードするためのダウンロードプログラム，プリント処理機能実行に必要なフォント情報，プリント処理機能実行に必要な印刷制御情報等を記憶することにより、特定の１台または優先度が付けられた複数台のホストコンピュータから所望の情報をダウンロードする際のホストコンピュータ先および印刷制御情報の変更処理を一元管理することを可能とする。
【０５３９】
また、特定の１台または優先度が付けられた複数台のホストに記憶されたサーバー装置を立ち上げて初期設定するためのシステムプログラムおよび所望の情報をダウンロードすることにより、必要に応じてサーバー装置を立ち上げて初期設定するためのシステムプログラムおよび所望の情報を特定の１台または優先度が付けられた複数台のホストコンピュータ中の１つのホストコンピュータから適時ダウンロードすることを可能とする。
【０５４０】
また、電源投入時に、ホストコンピュータ先指定情報に基づいて複数のホストコンピュータの動作状態を確認して１つのホストコンピュータをマスタダウンロードホストコンピュータとして登録することにより、ネットワーク上のホストコンピュータ動作状態が変動しても、必要に応じてサーバー装置を立ち上げて初期設定するためのシステムプログラムおよび所望の情報を特定の１台または優先度が付けられた複数台のホストコンピュータ中の１つのホストコンピュータから適時ダウンロードすることを可能とする。
【０５４１】
なお、ＳＰサーバー９０１は後述するように電源立上げ時に、ネットワーク９０７上のダウンロードホストのチェックを行い、ダウンロードホストが複数設定されている場合は、動作中で最優先のものをマスタダウンロードホストとし、他のダウンロードホストをスレーブホストとし、ダウンロードホストが１台のみ設定されている場合には、そのホストコンピュータをマスタダウンロードホストとする。
【０５４２】
さらに、ダウンロードホストのチェックを行う時に、いずれのダウンロードホストも動作していなかった場合、後述するようにＳＰサーバー９０１のエラー・ログ・ファイルに記録し、あらかじめ設定された最大待ち時間が経過するまで、あらかじめ設定された一定時間毎に再びダウンロードホストのチェックを行い、最大待ち時間が経過すると、立ち上げ失敗エラーとして処理を終了する。
【０５４３】
また、ダウンロードホストに記憶されているＳＰサーバー９０１の各種プログラム，フィルタ，フォントデータ９１６等は、後述するようにＳＰサーバー９０１の電源立上げ時または動作中に、ＳＰサーバー９０１からの要求に基づき、必要に応じてＳＰサーバー９０１にダウンロードされる。
【０５４４】
さらに、ダウンロードホストからＳＰサーバー９０１にダウンロードされたフィルタ，フォントデータ９１６はあらかじめオペレータによって作成されたフィルタ，フォントの情報リストに基づき、新しいフィルタ，フォントがダウンロードされるまでＳＰサーバー９０１上のメモリに保持されている。
【０５４５】
また、ダウンロードホストには、あらかじめオペレータによってＳＰサーバー９０１の初期設定を行うパラメータファイル９１７、例えばテキストファイルとして、所定のディレクトリに記憶している。
【０５４６】
さらに、ダウンロードホストにファイルとして記憶されているＳＰサーバー９０１のパラメータは、ＳＰサーバー９０１に接続された端末（図示しない）、あるいは当該スレーブダウンロードホストからパラメータの設定変更を行う場合、ＳＰサーバー９０１に接続された端末の場合は、当該ダウンロードホストとＳＰサーバー９０１の間にＥｎｄ−ｔｏ−Ｅｎｄのセッション通信路を確立し、当該スレーブダウンロードホストの場合は、マスタダウンロードホストとスレーブダウンロードホストとの間にＥｎｄ−ｔｏ−Ｅｎｄのセッション通信路を確立し、当該マスタダウンロードホストからＳＰサーバー９０１あるいはスレーブダウンロードホストにパラメータファイルを転送し、もし、パラメータの変更があれば、当該セッション通信路を通じてマスタダウンロードホストに逆に転送し、所定のディレクトリにパラメータファイルを記憶するプロトコルを有している。
【０５４７】
また、ダウンロードホストにファイルとして記憶されているＳＰサーバー９０１のパラメータは、ダウンロードホスト自身からも変更することができるように構成されている。
【０５４８】
さらに、特定の１台または複数設定されているダウンロードホストのうち、特定の１台あるいはマスタダウンロードホストが動作していないか、ダウンロード，パラメータファイル転送に失敗した場合，マスタダウンロードホストが１台しかない場合あるいは残りのスレーブホストがない場合、ＳＰサーバー９０１のエラーログファイルに記録後、あらかじめ設定された最大待ち時間が経過していない場合は、あらかじめ設定されている一定時間毎にダウンロード，パラメータ転送の実行を試み、残りのスレーブホストがある場合は、次の優先度の高いホストコンピュータをマスタダウンロードホストとし、ダウンロード，パラメータ転送の実行を試み、最大待ち時間が経過した場合は、ダウンロード，パラメータ転送失敗となり、エラー終了となるように制御している。
【０５４９】
また、複数台のダウンロードホストが設定され、マスタダウンロードホストのパラメータファイルの変更が行われた場合、マスタダウンロードホストは自動的にスレーブホストとの間にＥｎｄ−ｔｏ−Ｅｎｄのセッション通信路が確立し、変更されたパラメータファイルの転送をすべてのスレーブダウンロードホストに行わせるように制御している。
【０５５０】
さらに、ＳＰサーバー９０１はネットワーク環境下において、立上げ時ダウンロードホストの自動チェック，ダウンロード，初期設定パラメータ変更時のダウンロードホスト自動変更機構，初期設定パラメータ変更後の複数のダウンロードホストへの自動転送機能を備えている。
【０５５１】
図８０は、図７８に示したＳＰサーバー９０１におけるダウンロードホストチェック処理手順の一例を示すフローチャートである。なお、(1) 〜(13)は各ステップを示す。
【０５５２】
ＳＰサーバー９０１の電源がＯＮされると(1) 、ＳＰサーバーの不揮発性メモリ９０１Ａに記憶されているダウンロードホストリスト９１１に基づき、先ず特定の１台であるかまたは複数であるかというダウンロードホスト数が判断される(2) 。この判断で台数が複数の場合には、ダウンロードホスト９０２，９０３が動作中であるかどうかを判断し(3) 、ＹＥＳならば動作中で優先度の最も高いホストをマスタダウンロードホストとし(4) 、他のダウンロードホストをスレーブダウンロードホストとして(5) 、サーバー立上げ時ダウンロードホストチェックを終了する(6) 。
【０５５３】
一方、ステップ(3) の判定でＮＯの場合は、ＳＰサーバーエラーログファイルにその旨を記録し(7) 、あらかじめ設定されている最大待ち時間が経過したかどうかを判定し(8) 、ＹＥＳならばサーバー立上げ時ダウンロードホストチェックを終了する(9) 。
【０５５４】
一方、ステップ(8) の判定中に、一定時間経過毎に(13)、ステップ(3) に戻り、ダウンロードホストの動作チェックを行う。
【０５５５】
一方、ステップ(2) の判定において、１台の場合は、当該ダウンロードホストが動作中かどうかを判定し(10)、ＮＯならばステップ(7) に戻り、ＹＥＳならば指定されているダウンロードホストをマスタダウンロードホストとし(11)、サーバー立上げ時ダウンロードホストチェックを終了する(12)。
【０５５６】
図８１は、図７８に示したＳＰサーバー９０１における各種プログラム９１５，フォント，フィルタデータ９１６のダウンロード処理手順の一例を示すフローチャートである。なお、(1) 〜(16)は各ステップを示す。
【０５５７】
サーバー電源立上げ時ダウンロードホストチェックが終了すると(1) 、ＳＰサーバー９０１内のダウンロードプログラムまたは動作中その他のＳＰサーバープログラムによって各種プログラム９１５，フィルタ，フォントデータ９１６のダウンロード要求が発生すると(2) 、あらかじめＳＰサーバー９０１内にあるダウンロードホストの情報リスト，フィルタ，フォントの情報リストがチェックされる(3) 。もし、ＳＰサーバー９０１内にダウンロード要求されたものがあるかどうかを判定し(4) 、ＹＥＳならばステップ(9) に進み、当該記憶されているプログラム，フィルタ，フォントを使用し、ステップ(2) に戻り、次のダウンロード要求が発生するまでダウンロードプログラムはアイドル状態となる。
【０５５８】
一方、ステップ(4) の判定でＮＯの場合は、現在ＳＰサーバー９０１内の不揮発性メモリ９０１Ａ内に残しておくかどうかを情報リストに基づいて判定し、すなわち消去を行うと指定されているかどうかを判定し(5) 、ＮＯならばステップ(7) 移行に進み、ＹＥＳならば当該記憶されているプログラム，フィルタ，フォントを消去する(6) 。
【０５５９】
次いで、ＳＰサーバー９０１からマスタダウンロードホストへダウンロード要求がなされ、マスタダウンロードホストからＳＰサーバーへターゲットのダウンロードが行われる(7) 。次いで、ダウンロードが成功したかどうかを判定し(8) 、ＹＥＳならばステップ(9) 移行に進み、ＮＯならばＳＰサーバーエラーログファイルに記録し(10)、次のダウンロードホストがあるかどうかを判断し(11)、ＹＥＳならばそのホストコンピュータをマスタダウンロードホストとし(12)、他のダウンロードホストをスレーブダウンロードホストとし(13)、ステップ(7) に戻る。
【０５６０】
一方、ステップ(11)の判断でＮＯならば、あらかじめ設定されている最大待ち時間が経過したかどうかを判定し(14)、ＹＥＳならばダウンロードエラーとして処理を終了する(15)。
【０５６１】
一方、ステップ(14)の判定中に、一定時間経過毎に(16)、ステップ(7) に戻り、プログラム，フィルタ，フォント等のダウンロードを再実行する。
【０５６２】
図８２は、図７８に示したＳＰサーバー９０１における初期設定パラメータファイルの変更処理手順の一例を示すフローチャートである。なお、(1) 〜(16)は各ステップを示す。また、初期設定パラメータファイル９１７の変更指示は、ＳＰサーバー９０１またはスレーブダウンロードホストから初期設定パラメータファイル９１７を記憶するマスタダウンロードホストに対して行われる。
【０５６３】
ＳＰサーバー９０１の端末からマスタダウンロードホストに対して初期設定パラメータファイル９１７の変更指示がなされると(1) 、ＳＰサーバー９０１あるいはスレーブダウンロードホストとの間にセッション通進路が確立される(2) 。次いで、通信路が確立されたか（成功）かどうかを判定し(3) 、ＹＥＳならばマスタダウンロードホストからＳＰサーバー９０１あるいはスレーブダウンロードホストにパラメータファイルが転送される(4) 。次いで、転送が成功したかどうかを判定し(5) 、ＮＯならばステップ(10)以降に進み、ＹＥＳならばＳＰサーバー９０１あるいはスレーブダウンロードホストからパラメータの変更が実行される(6) 。次いで、変更されたパラメータファイルがＳＰサーバー９０１またはスレーブダウンロードホストからマスタダウンロードホストにパラメータファイルの逆転送が行われ(7) 、転送が成功したかどうかを判定し(8) 、ＹＥＳならばパラメータ変更後の処理に移行する(9) 。
【０５６４】
一方、ステップ(8) ，(3) の判定でＮＯの場合ステップ(10)以降に進み、ＳＰサーバーエラーログファイルにその旨を記録し、次のダウンロードホストがあるかどうかを判定し(11)、ＹＥＳならば次のダウンロードホストをマスタダウンロードホストとするとともに(12)、他のダウンロードホストをスレーブダウンロードホストとし(13)、ステップ(2) に戻る。
【０５６５】
一方、ステップ(11)の判定でＮＯの場合は、あらかじめ設定されている最大待ち時間が経過したかどうかを判定し(14)、ＹＥＳならばパラメータ変更エラーとして処理を終了する(15)。
【０５６６】
一方、ステップ(14)の判定中に、一定時間経過毎に(16)、ステップ(2) に戻り初期設定パラメータファイルの変更処理を再実行する。
【０５６７】
図８３は、図７８に示したマスタのダウンロードホストからの初期設定パラメータファイルの変更処理手順の一例を示すフローチャートである。なお、(1) 〜(3) は各ステップを示す。
【０５６８】
マスタダウンロードホストから初期設定パラメータファイル９１７の変更指示がなされると(1) 、マスタダウンロードホストがマスタダウンロードホスト上の初期設定パラメータファイル９１７を変更し(2) 、変更後の処理に移る(3) 。
【０５６９】
図８４は、図７８に示したマスタのダウンロードホストによる初期設定パラメータファイル変更後処理手順の一例を示すフローチャートである。なお、(1) 〜(8) は各ステップを示す。
【０５７０】
初期設定パラメータファイル９１７が変更されると(1) 、マスタダウンロードホストはスレーブダウンロードホストがあるかどうかを判断し(2) 、ＮＯならば処理を終了する(8) 。
【０５７１】
一方、ステップ(2) の判定においてＹＥＳならばマスタダウンロードホストは、スレーブダウンロードホストとの間に通信路を確立し(3) 、通信路が確立されたかどうかを判定し(4) 、ＮＯならばステップ(7) 移行に進み、ＹＥＳならばマスタダウンロードホストからスレーブダウンロードホストに変更されたパラメータファイルの転送が行われる(5) 。次いで、パラメータファイルの転送が成功したかどうかを判定し(6) 、ＹＥＳならばステップ(2) に戻り、ＮＯならばＳＰサーバーエラーログファイルにその旨を記録し(7) 、ステップ(2) に戻り、次のスレーブダウンロードホストを探しに行く。
【０５７２】
なお、上記実施例ではサーバー装置を、リモートプリント，リモートスキャンのサービスを行うＳＰサーバー９０１で構成する場合について説明したが、サーバー装置としてはＳＰサーバー９０１ではなく、その他の様々な処理を実行するサーバー装置、例えばＯＣＲ処理，ファクシミリ処理，ドキュメント処理，データベース処理等をクライアントに提供するサーバー装置であっても、ダウンロードホストを設定したネットワーク環境であれば、同様の方法でダウンロード，パラメータ変更等を行うことができる。
【０５７３】
さらに、サーバー装置に限らず、各々のマシンがネットワーク環境にあり、各々のマシン間のコミュニケーションを行うことが可能であるという条件が成立するならば、上記ダウンロード方式を他の装置にも適用することができる。
【０５７４】
図８５は本発明の一実施例を示すサーバー装置の通信制御構成を説明するブロック図である。
【０５７５】
図において、７１０１Ａ，７１０１Ｂはホストコンピュータ（クライアント）で、ネットワーク７１０５を介してスキャナプリンタサーバー（ＳＰサーバー）７１０２と通信可能に構成されている。ホストコンピュータ７１０１Ａ，７１０１Ｂは独自のデータ処理速度に応じた通信プロトコル７１０６Ａ（例えば通信プログラム５３），７１０６Ｂ（例えば通信プログラム６３）を備えて、サーバープロトコル７１０７（例えば（通信プログラム８３））と相互に通信処理を後述するフローチャートに従って実行する。ＳＰサーバー７１０２には各種のプリンタに受信したプリントデータを出力するためのインタフェースポート（ＲＳ２３２Ｃ，セントロニクス，ＳＣＳＩ等）を備え、プリンタ７１０４ｂ，７１０４ｃ，７１０４ｄおよびスキャナ７１０３ｂとのＩ／Ｏを制御する。７１０３ａはスキャナで、プリンタ７１０４ａと一体としてスキャナ機能処理およびプリント機能処理を実行する。７１０８〜７１１３は制御ラインで種々の制御信号をプリンタ７１０４ａ，スキャナ７１０３ａに出力する。
【０５７６】
この図に示されるように、ネットワーク７１０５上のホストコンピュータ７１０１Ａ，７１０１Ｂ（クライアント）がスキャナ機能処理，プリンタ機能処理を実行するために、すなわちスキャナやプリンタの資源を利用するために、ＳＰサーバー７１０２に問い合わせをする際に情報交換を行う時に、後述する通信処理実行中の応答時間を監視する。その際、応答時間は長いが正常に返信がある通信に対しては、ネットワーク７１０５上の遅延が生じたが、正常な通信と見なして、自動的にタイマアウトの値を長く設定し直す機能を備えている。
【０５７７】
図８６は、図８５に示したクラアントとサーバーとの第１の通信プロトコルの一例を示す図であり、特にプリント処理の通信の場合である。
【０５７８】
この図に示すように、経過時間（ａ）は、ホストコンピュータ７１０１Ａ側の通信プロトコル７１０６Ａは、ＳＰサーバープロトコル７１０７からの返答がなければ、応答時間監視のためのタイマＴ１が作動し、自動的にタイマアウトする時間に対応する。また、経過時間（ｂ）は、ＳＰサーバープロトコル７１０７が通信プロトコル７１０６Ａに対して次の指示あるいはデータが来るまでの応答時間監視時間に対応する。
【０５７９】
このように、本発明に係る第３の発明によれば、サーバー装置から何れかの指示に基づいて通信コマンドを発行後の応答時間が第１の監視時間を越えて、第２の監視時間を経過しても応答が得られない場合、当該ホストとの通信に異常が発生したものと見なして、サーバー装置とネットワークの通信状態を待機状態に自動復帰させるので、当該通信異常となったホストコンピュータの回復を待たずに、プリンタ資源，スキャナ資源による各機能処理実行を要求する他のホストコンピュータとの通信を速やか、かつ正常に開始することが可能となる。
【０５８０】
具体的には、各経過時間（ａ），（ｂ）を計時して所定の監視時間を延長しても、応答が無い場合に通信を中断して、待機状態に切り換わることにより、通信状態が互いにデットロック状態となるこを回避している。
【０５８１】
具体的には、ＳＰサーバー７１０２はネットワーク７１０５上のホストコンピュータより指示を受け、それに対して通信コマンドを発行する。その際毎（通信コマンド発行毎）に所定の第１のタイマ（例えば５秒タイマ）を起動し、もし、そのタイマが計時終了後も相手からの応答がなかった場合、該通信コマンドを再発行し、さらに再発行が所定回数（例えば６回）または再送コマンドが最初に発行されてからの時間を計時する第２のタイマ（例えば３０秒）が計時終了後も相手からの応答がなかった場合に、相手に回復不可能な障害が発生したものと見なし、通信中断コマンド（例えばＡｂｏｒｔ）を発行して初期状態で待機する。
【０５８２】
実際には、前述したようにＳＰサーバー７１０２は、ネットワーク７１０５上のホストコンピュータ側にクラアントプロトコルが起動されており、ＳＰサーバー７１０２側にはＳＰサーバープロトコル７１０７が起動されている。接続されているスキャナやプリンタの資源のコントロールは、この互いに通信し合うプログラムによっている。
【０５８３】
ところが、ＳＰサーバープロトコル７１０７が起動されると、図４に示したタイマ１１０が起動し、所定時間を越えてもＳＰクライアント（ホストコンピュータ７１０６Ａ，７１０６Ｂ）から返答がないと、自動的に通信コマンドを再発行して、ＳＰクライアント（ホストコンピュータ７１０６Ａ，７１０６Ｂ）に通信コマンドに対する返信を要求しても応答がないと、ＳＰサーバープロトコル７１０７は後述するフローチャートに従って自動的に通信処理プログラムを中断し、初期状態に復帰する。
【０５８４】
なお、本実施例では、上記タイマ処理をリアルタイムＯＳ（ＶｘＷｏｒｋｓ）のウオッチドックタイマ機能処理により達成しているが、この場合、タイマアウトの状態になると、リアルタイムＯＳ（ＶｘＷｏｒｋｓ）におけるシステム管理の割込み制御機構により、一旦ＯＳ管理下におかれ、すぐにシステム管理を司るＳＰマネジャ（システム全体制御プログラム９３）に通知して、システムの異常処理を後述する図８７に示すフローチャートに従って行う。なお、以上の発生する要因として、ネットワーク７１０５上のホストコンピュータ側が通信異常やシステムダウン，メモリオーバーフロー等があげられるが、これらのみには限定されない。
【０５８５】
図８７は本発明の一実施例を示すサーバー装置の通信制御方法を説明するフローチャートである。なお、(1) 〜(11)は各ステップを示し、図８５に示したＳＰサーバー７１０２のタイマ監視通信制御手順（サーバープロトコル７１０７）に対応する。
【０５８６】
ネットワーク７１０５を介してクライアントからの初期通信要求を待機し(1) 、初期通信要求を受信すると、受信した旨をクライアント側に返答し(2) 、図４に示したタイマ１１０を起動して(3) 、クラアイントからの通信待ちとなる(4) 。何らかの通信要求を受信すると、正常通信作業を開始(5) 、終了コマンドを受信したかどうかを判定し(6) 、ＮＯならば(2) に戻り、ＹＥＳならばＳＰサーバー７１０２を初期状態に設定する。
【０５８７】
一方、ステップ(4) の判定で何ら応答がない場合は、ステップ(3) で起動したタイマがタイムアウト（本実施例では５秒）となったかどうかを判定し(7) 、ＮＯならばステップ(4) に戻り、ＹＥＳならばあらかじめ設定された回数（ｎ）目の再送かどうかを判定し(8) 、ＹＥＳならばＯＳ（本実施例ではＶｘＷｏｒｋｓ）の割込み機能を開始し(9) 、ＳＰマネジャにその旨を通知して(10)、ＳＰサーバー７１０２を初期状態に設定する。
【０５８８】
一方、ステップ(8) の判定で、何らかの応答要求があった場合は、再送要求をクラアントに送出し(12)、ステップ(2) に戻る。
【０５８９】
なお、上記実施例では、現在通信中のＳＰクライアントとＳＰサーバー７１０２とが異常の状態となった時、本発明に係る計時手段として機能するタイマ１１０，内部タイマ等を用いて異常処理を実行し、最終的にはＳＰサーバー７１０２が初期状態に戻る場合の処理について説明したが、異常処理を実行すると、別のタスクが起動されて、そのタスクがある一定時間毎にホストコンピュータに通信を行い、ホストコンピュータが復帰することを確認して、通信処理を再開するように制御しても良い。
【０５９０】
また、上記実施例では、通信コマンドを再発行してからの監視時間を、タイマ１１０がタイムアップする毎に発行される通信コマンドの再送回数（例えば６回）で計時する場合について説明したが、最初の通信コマンド発行後、タイマ１１０がタイムアップした時点で、第２のタイマ（図示しない）が第２の監視時間（例えば３０秒）を計時して、この第２の監視時間の経過時点で、ホストコンピュータからの応答が得られない場合には、通信中断コマンド（Ａｂｏｒｔ）を発行して、通信待機状態となるように制御しても良い。
【０５９１】
図８８は、図８５に示したクラアントとサーバーとの第２の通信プロトコルの一例を示す図であり、（ａ）は正常な通信状態に対応し、（ｂ）は応答時間が長い通信状態に対応し、特にプリント処理の通信の場合である。
【０５９２】
（ａ）に示すように正常な通信時には、経過時間（イ）で、ホストコンピュータ７１０１Ａ側の通信プロトコル７１０６Ａは、ＳＰサーバープロトコル７１０７からの返答がなければ、応答時間監視のためのタイマＴ１が作動し、自動的にタイマアウトする。また、経過時間（ロ）で、ＳＰサーバープロトコル７１０７が通信プロトコル７１０６Ａに対して次の指示あるいはデータが来るまでの応答時間監視のタイマＴ２が作動する。正常な通信処理では、ポイント（イ），（ロ）で計時する監視時間はあらかじめ決められた値が設定されている。もし、それを越える場合は、再送要求を発行して相手からの応答を待機する。それでも応答がない場合には、異常状態とみなして異常処理を行い、初期状態（通信待ち状態）に移行する。
【０５９３】
一方、（ｂ）に示すように応答時間が長い通信時、例えば遅いネットワークが仲介していたり、トラフィックが多いようなネットワークで通信を行う場合には、経過時間（イ），（ロ）は前述と同様のタイマ設定値でタイマが作動する。また、経過時間は、クライアントプロトコル７１０６ＢがＳＰサーバープロトコル７１０７からの応答が遅い時に、応答要求を発行して、当該応答が帰ってきた時間に応じて、再設定されたタイマのタイマアウト状態に対応する。同様に、経過時間（ニ）は、クライアントプロトコル７１０６Ｂからの要求に応じて応答したＳＰサーバープロトコル７１０７の次のコマンドに対してのタイマアウト値が再設定された時間に対応する。
【０５９４】
このように、本発明に係る第４の発明によれば、応答時間の長いホストコンピュータ７１０６Ｂとの通信処理においても、各ホストコンピュータまたはサーバー装置の何れか一方からネットワーク上での応答時間を計時するためのコマンドを発行してからの応答時間をサーバー装置または各ホストコンピュータが計時し、該計時結果に基づいて各ホストコンピュータとサーバー装置との間の正常応答時間を計時するタイマの監視時間を延長するので、ネットワーク上の各ホストコンピュータ上の各ホストとの通信中における応答信号の送出タイミングが長くなる事態が発生しても、その後の通信処理を正常に続行することが可能となる。
【０５９５】
これにより、相手からの応答時間が所定時間よりも経過しても、直ちに通信異常とすることなく、監視時間を所定時間延長して調整することにより、応答時間が長くなる通信処理に対して、通信異常とすることなく、正常な通信処理が可能となる。
【０５９６】
具体的には、ＳＰサーバー７１０２はネットワーク７１０５上のホストコンピュータより指示を受け、それに対して通信コマンドを発行する。その際毎に所定の第１のタイマ（例えば５秒タイマ）を起動し、もし、そのタイマが計時終了後も相手からの応答がなかった場合、該通信コマンドを再発行し、さらに再発行が所定回数（例えば６回）または再送コマンドが最初に発行されてからの時間を計時する第２のタイマ（例えば３０秒）が計時終了後も相手からの応答がなかった場合に、相手に回復不可能な障害が発生したものと見なし、通信中断コマンド（例えばＡｂｏｒｔ）を発行して初期状態で待機する。
【０５９７】
しかしながら、ホストコンピュータとＳＰサーバー７１０２が異なるネットワークに接続されている場合は、上記タイマのタイムアウト時間（監視時間）を長く設定する。
【０５９８】
実際には、前述したようにＳＰサーバー７１０２は、ネットワーク７１０５上のホストコンピュータ側にクライアントプロトコルが起動されており、ＳＰサーバー７１０２側にはＳＰサーバープロトコル７１０７が起動されている。接続されているスキャナやプリンタの資源のコントロールは、この互いに通信し合うプログラムによっている。
【０５９９】
本実施例では、ＳＰサーバー７１０２は、ＳＰクライアント（ホストコンピュータ７１０６Ａ，７１０６Ｂ）からの資源利用要求（プリント要求／スキャン要求）を常に返答を返すが、ネットワークの遅延が大きい場合、ＳＰクライアント側は応答要求を発行して、ネットワークの遅延時間を調べに来る。ＳＰサーバー７１０２側はレスポンス要求を受け取ると、直ちに返答を返す。ＳＰクライアント側は応答要求を発行して、ネットワークの遅延時間を調べに来る。ＳＰサーバー７１０２側はレスポンス応答の時間により、タイマアウトの設定値を変更して、通常の通信を引き続き行う。ＳＰサーバー７１０２は、レスポンス要求を受け付けると、次の通信が来るまでの時間を計時し、ＳＰサーバー７１０２側のタイマアウトの設定値の変更を行う。
【０６００】
以後、通常動作と同様に、ＳＰサーバー７１０２のプロトコルが起動されると、図４に示したタイマ１１０を起動して、所定時間を越えて、ＳＰクライアント側のプロトコルに基づく返答がないと、自動的に再送要求を発行し、それでも返答がないと、自動的に通信の中断を行い、初期状態に戻る。
【０６０１】
なお、本実施例では、上記タイマ処理をリアルタイムＯＳ（ＶｘＷｏｒｋｓ）のウオッチドックタイマ機能処理により達成しているが、この場合、タイマアウトの状態になると、リアルタイムＯＳ（ＶｘＷｏｒｋｓ）におけるシステム管理の割込み制御機構により、一旦ＯＳ管理下におかれ、すぐにシステム管理を司るＳＰマネジャに通知して、システムの異常処理を後述する図８９，図９０に示すフローチャートに従って行う。なお、以上の発生する要因として、ネットワーク７１０５上のホストコンピュータ側が通信異常やシステムダウン，メモリオーバーフロー等があげられるが、これらのみには限定されない。
【０６０２】
図８９は本発明の一実施例を示すサーバー装置の通信制御方法を説明するフローチャートである。なお、(1) 〜(14)は各ステップを示し、図８５に示したＳＰサーバー７１０２のタイマ監視通信制御手順（サーバープロトコル７１０７）に対応する。
【０６０３】
ネットワーク７１０５を介してクライアントからの初期通信要求を待機し(1) 、初期通信要求を受信すると、受信した旨をクライアント側に返答し(2) 、図４に示したタイマ１１０を起動して(3) 、クラアイントからの通信待ちとなる(4) 。何らかの通信要求を受信すると、正常通信作業を開始(5) 、終了コマンドを受信したかどうかを判定し(6) 、ＮＯならば(2) に戻り、ＹＥＳならばＳＰサーバー７１０２を初期状態に設定する。
【０６０４】
一方、ステップ(4) の判定で何ら応答がない場合は、ステップ(3) で起動したタイマがタイムアウトとなったかどうかを判定し(7) 、ＮＯならばステップ(4) に戻り、ＹＥＳならばレスポンス要求有無を判定し(8) 、要求が無い場合、  あらかじめ設定あれた回数（ｎ）目の再送かどうかを判定し(11)、ＹＥＳならばＯＳ（本実施例ではＶｘＷｏｒｋｓ）の割込み機能を開始し(13)、ＳＰマネジャにその旨を通知して(14)、ＳＰサーバー７１０２を初期状態に設定する。
【０６０５】
一方、ステップ(8) の判定で、何らかの応答要求があった場合は、タイマ１１０の値を所定時間長く再設定し(9) 、応答作業を継続し(10)、ステップ(2) に戻る。また、ステップ(11)の判定でＮＯの場合は、再送要求をクライアントに送出し(12)、ステップ(2) に戻る。
【０６０６】
図９０は本発明の一実施例を示すサーバー装置の通信制御方法を説明するフローチャートである。なお、(1) 〜(16)は各ステップを示し、図８５に示したクライアントのタイマ監視通信制御手順（クライアントプロトコル７１０６Ａ，７１０６Ｂ）に対応する。
【０６０７】
ネットワーク７１０５を介してＳＰサーバー７１０１からの初期通信要求を待機し（１）、初期通信要求を受信すると、受信した旨をＳＰサーバー７１０１側に送信し（２）、ホストコンピュータ７１０６Ａ，７１０６Ｂの内部タイマを起動し（３）、ＳＰサーバー７１０２からの通信待ちとなる（４）。ここで、何らかの通信を受信すると、受信したコマンドが終了コマンドかどうかを判定し（５）、ＮＯならば次に通信作業を開始（６）、ステップ（２）に戻り、ＹＥＳならばＳＰクライアントを初期状態とする。
【０６０８】
一方、ステップ（４）の判定でＮＯの場合は、ステップ（３）で起動したタイマがタイムアウトとなったかどうかを判定し（７）、ＮＯならばステップ（４）に戻り、ＹＥＳならば応答要求がＳＰサーバー側からなされたかどうかを判定し（８）、ＹＥＳならば再送要求がなされたかどうかを判定し（１４）、ＮＯならばＳＰクライアントのプロトコル７１０６Ａ，７１０６Ｂに通知し（１６）、ＳＰクライアントを初期状態とする。
【０６０９】
一方、ステップ(14)の判定でＹＥＳの場合は、再送作業を開始し(15)、ステップ(2) に戻る。また、ステップ(8) の判定でＮＯの場合は、応答要求をＳＰサーバー７１０２に対して発行し(9) 、応答時間の測定を開始する(10)。次いで、ＳＰサーバー７１０２から応答待ち状態から応答を受信したかどうかを判定し(11)、ＹＥＳならばタイマを所定時間長く再設定し(12)、ステップ(2) に戻る。
【０６１０】
一方、ステップ(11)の判定でＮＯの場合は、応答時間を計時する内部タイマがタイムアウトしたかどうかを判断し(13)、ＮＯならばステップ(11)に戻り、ＹＥＳならばＳＰクライアントを初期状態に設定する。
【０６１１】
なお、上記実施例では、現在通信中のＳＰクライアントとＳＰサーバー７１０２とが異常の状態となった時、計時手段（タイマ１１０，内部タイマ等）を用いて異常処理を実行し、最終的にはＳＰサーバー７１０２が初期状態に戻る場合の処理について説明したが、異常処理を実行すると、別のタスクが起動されて、そのタスクがある一定時間毎にホストコンピュータに通信を行い、ホストコンピュータが復帰することを確認して、通信処理を再開するように制御しても良い。
【０６１２】
【発明の効果】
以上説明したように、本発明によれば、ネットワークを介して複数のホストコンピュータと通信可能であって、スキャン機能とプリント機能を制御する制御装置または制御方法において、実行すべきジョブの種類がエラーストップしているジョブの種類と同じかどうかを判別し、該判別結果に従いエラーストップしているジョブでない印刷ジョブとスキャンジョブと同時に管理しておくことができ、印刷ジョブであると判定された場合、複数のホストコンピュータの一つから入力した印刷データからイメージデータを生成し、プリント機能を制御して当該イメージデータに基づくプリントをさせる、スキャンジョブであると判定された場合、複数のホストコンピュータの一つから入力した命令に従って、スキャン機能を制御してイメージデータを入力し、当該イメージデータを指定されたホストコンピュータへ送信するので、各ホストコンピュータからのスキャナ要求、プリンタ要求を処理するに当たって、スキャン機能及びプリント機能を有効に活用することができる印刷ジョブとスキャンジョブと同時に管理しておくことができるという効果を奏する。
【０６１３】
【発明の効果】
以上説明したように、本発明によれば、各ホストコンピュータからのスキャナ要求、プリント要求を処理するに当たって、スキャン機能及びプリント機能を有効活用することができる印刷ジョブとスキャンジョブとを同時に管理しておくことができる。
【図面の簡単な説明】
【図１】本発明の第１実施例を示す画像処理システムにおけるサーバー装置の概要を説明するシステムブロック図である。
【図２】本発明の第１実施例を閉め得巣画像処理システムの一例を示す示すシステムブロック図である。
【図３】図２に示した画像処理システムにおけるサーバー装置と各ホストとのネットワーク構築状態を示す図である。
【図４】図１に示したメインＣＰＵボード回路の詳細構成を説明する回路ブロック図である。
【図５】図４に示したメモリクリアコントローラの詳細構成を説明するブロック図である。
【図６】図５に示したバンドメモリへの画像情報のバンド展開処理を説明する模式図である。
【図７】図５に示したバンドメモリへの画像情報のバンド展開処理を説明する模式図である。
【図８】図４に示した画像描画処理回路の詳細構成を説明するブロック図である。
【図９】図１に示した第１のインタフェース回路の内部構成を説明するブロック図である。
【図１０】図９に示したリアルタイム圧縮伸長部の詳細構成の一例を示すブロック図である。
【図１１】図１０に示したジグザグスキャン部によるジグザグスキャン経路の一例を示す図である。
【図１２】図１に示した第１のＳＰインタフェース回路のパート構成の概略を説明するブロック図である。
【図１３】図１に示した第１のＳＰインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図１４】図１に示した第１のＳＰインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図１５】図１に示した第１のＳＰインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図１６】図１に示した第２のＳＰインタフェース回路の詳細内部構成を説明する回路ブロック図である。
【図１７】図２に示したスキャナ／プリンタの画像記録プロセスを説明する模式図である。
【図１８】図２に示したスキャナ／プリンタのスキャナの原稿走査状態を示す模式図である。
【図１９】図２に示したスキャナ／プリンタのスキャナのバンド原稿走査状態を示す模式図である。
【図２０】本発明に係るサーバー装置とプリンタとのインタフェース信号の一例を示す図である。
【図２１】本発明に係るサーバー装置とプリンタとのインタフェースの一例を示す回路ブロック図である。
【図２２】図２１の動作を説明するタイミングチャートである。
【図２３】図２１に示したセントロニクスＩ／Ｆ回路によるホスト側の信号処理手順の一例を示すフローチャートである。
【図２４】図２１に示したセントロニクスＩ／Ｆ回路によるプリンタ側の信号処理手順の一例を示すフローチャートである。
【図２５】本発明に係るサーバー装置とホストコンピュータとのプログラム構成を説明する図である。
【図２６】本発明に係るサーバー装置における全体制御手順の一例を示すフローチャートである。
【図２７】本発明に係るサーバー装置におけるページ記述言語に準拠するコード体系の要部を示す図である。
【図２８】本発明に係るサーバー装置におけるレイアウタによる中間コードへの置換処理を説明する図である。
【図２９】本発明に係るサーバー装置におけるバンドメモリへの図形情報展開処理状態を示す模式図である。
【図３０】本発明に係るサーバー装置におけるページ記述言語が展開するデータの１画素構造を説明する図である。
【図３１】図２に示したスキャナの動作を説明するデータ処理経路図である。
【図３２】本発明に係るサーバー装置とカラーレーザ複写装置とのデータ処理状態を説明するブロック図である。
【図３３】本発明に係るサーバー装置とカラーレーザ複写装置とのデータ処理状態を説明するブロック図である。
【図３４】本発明に係るサーバー装置とバブルジェットカラー複写装置とのデータ処理状態を説明するブロック図である。
【図３５】本発明に係るサーバー装置とのネットワークシステムの構成を説明するブロック図である。
【図３６】本発明に係るサーバー装置における異常発生ジョブ処理手順の一例を示すフローチャートである。
【図３７】本発明に係るサーバー装置におけるリトライ処理手順の一例を示すフローチャートである。
【図３８】本発明に係るサーバー装置におけるジョブ制御状態を説明するタイミングチャートである。
【図３９】本発明に係るサーバー装置におけるシステム全体制御プログラム制御処理状態を示す図である。
【図４０】図３９に示したシステム全体制御プログラム制御のイベント処理手順の一例を示すフローチャートである。
【図４１】本発明に係るサーバー装置におけるジョブ管理状態を示す図である。
【図４２】本発明に係るサーバー装置におけるジョブ実行処理手順の一例を示すフローチャートである。
【図４３】本発明に係るサーバー装置におけるステータスチェック処理手順の一例を示すフローチャートである。
【図４４】本発明に係るサーバー装置における優先順位チェック処理手順の一例を示すフローチャートである。
【図４５】本発明に係るサーバー装置におけるインタフェースチェック処理手順の一例を示すフローチャートである。
【図４６】本発明に係るサーバー装置におけるジョブ起動処理手順の一例を示すフローチャートである。
【図４７】本発明に係るサーバー装置におけるジョブ処理状態推移を示すタイミングチャートである。
【図４８】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図４９】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５０】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５１】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５２】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５３】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５４】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５５】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５６】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５７】本発明に係るサーバー装置におけるジョブ処理に伴うジョブテーブルの内容を示す図である。
【図５８】本発明の第２の実施例を示すサーバー装置の構成を説明するブロック図である。
【図５９】図５８に示したＳＰサーバー装置により合成される印刷レイアウトを示す模式図である。
【図６０】図２に示した第１のステーションのソフトウエア構成を説明する図である。
【図６１】図６０に示した第２のステーションのＯＳと各ドライバとの関係を示す詳細図である。
【図６２】図６０に示したプリンタマネージャーとプリンタドライバとの機能処理を説明する図である。
【図６３】図２に示した第２のステーションにおけるネットワークプリンタのプロトコルを説明する図である。
【図６４】図２に示した第２のステーションによる印刷プロセスの一例を示すシーケンス図である。
【図６５】図６３に示したＳＰクラアントのプログラムの構造を示す図である。
【図６６】図２に示した第２のステーションとＳＰサーバーとのネットワーク接続状態を説明する図である。
【図６７】図２に示した第２のステーション上のウインドウズと各ドライバとの関係を説明する図である。
【図６８】図２に示した第２のステーション上とＳＰサーバーとの各ドライバとの関係を説明する図である。
【図６９】図２に示した各ホストのネットワークプリンタ処理プロセスを説明する概念図である。
【図７０】本発明に係るサーバー装置のＳＰサーバと各ホストのＳＰクライアントとの交信プロセスを説明する概念図である。
【図７１】図３に示したＳＰサーバーによるパケット処理手順の一例を示す図である。
【図７２】本発明に係るサーバー装置に接続されるプリンタにおけるカラー／白黒印刷制御手順の一例を示すフローチャートである。
【図７３】本発明に係るサーバー装置における印刷ジョブの流れを説明する図である。
【図７４】図７３に示した白黒印刷吸収条件を示す図である。
【図７５】図２に示したＳＰサーバー装置と第３のステーションとのネットワークシステムの概要を説明するブロック図である。
【図７６】図７５に示したワークステーションの機能を説明するブロック図である。
【図７７】図７５に示したＳＰサーバーの機能構成を説明するブロック図である。
【図７８】本発明に係るサーバー装置と各ホストとのデータロード処理状態を説明するネットワーク図である。
【図７９】図７８に示したＳＰサーバーおよびダウンロードホストの記憶情報を説明するデータ構成図である。
【図８０】図７８に示したＳＰサーバーにおけるダウンロードホストチェック処理手順の一例を示すフローチャートである。
【図８１】図７８に示したＳＰサーバーにおけるプログラム，フォント，フィルタのダウンロード処理手順の一例を示すフローチャートである。
【図８２】図７８に示したＳＰサーバーにおける初期設定パラメータファイルの変更処理手順の一例を示すフローチャートである。
【図８３】図７８に示したマスタのダウンロードホストからの初期設定パラメータファイルの変更処理手順の一例を示すフローチャートである。
【図８４】図７８に示したマスタのダウンロードホストからの初期設定パラメータファイルの変更後処理手順の一例を示すフローチャートである。
【図８５】本発明の一実施例を示すサーバー装置の通信制御構成を説明するブロック図である。
【図８６】図８５に示したクライアントサーバー装置と第１の通信プロトコルの一例を示す図である。
【図８７】本発明の一実施例を示すサーバー装置の通信制御方法を説明するフローチャートである。
【図８８】図８５に示したクライアントとサーバー装置と第２の通信プロトコルの一例を示す図である。
【図８９】本発明の一実施例を示すサーバー装置の第１の通信制御方法を説明するフローチャートである。
【図９０】本発明の一実施例を示すサーバー装置の第２の通信制御方法を説明するフローチャートである。
【符号の説明】
９６  ネットワーク
１５０２  プリンタドライバ
１５０３  Ｓ／Ｐクライアント
１６０２  Ｓ／Ｐサーバー
【図１】
0004035173.tif 000003
【図２】
0004035173.tif 000004
【図３】
0004035173.tif 000005
【図４】
0004035173.tif 000006
【図５】
0004035173.tif 000007
【図６】
0004035173.tif 000008
【図７】
0004035173.tif 000009
【図８】
0004035173.tif 000010
【図９】
0004035173.tif 000011
【図１０】
0004035173.tif 000012
【図１１】
0004035173.tif 000013
【図１２】
0004035173.tif 000014
【図１３】
0004035173.tif 000015
【図１４】
0004035173.tif 000016
【図１５】
0004035173.tif 000017
【図１６】
0004035173.tif 000018
【図１７】
0004035173.tif 000019
【図１８】
0004035173.tif 000020
【図１９】
0004035173.tif 000021
【図２０】
0004035173.tif 000022
【図２１】
0004035173.tif 000023
【図２２】
0004035173.tif 000024
【図２３】
0004035173.tif 000025
【図２４】
0004035173.tif 000026
【図２５】
0004035173.tif 000027
【図２６】
0004035173.tif 000028
【図２７】
0004035173.tif 000029
【図２８】
0004035173.tif 000030
【図２９】
0004035173.tif 000031
【図３０】
0004035173.tif 000032
【図３１】
0004035173.tif 000033
【図３２】
0004035173.tif 000034
【図３３】
0004035173.tif 000035
【図３４】
0004035173.tif 000036
【図３５】
0004035173.tif 000037
【図３６】
0004035173.tif 000038
【図３７】
0004035173.tif 000039
【図３８】
0004035173.tif 000040
【図３９】
0004035173.tif 000041
【図４０】
0004035173.tif 000042
【図４１】
0004035173.tif 000043
【図４２】
0004035173.tif 000044
【図４３】
0004035173.tif 000045
【図４４】
0004035173.tif 000046
【図４５】
0004035173.tif 000047
【図４６】
0004035173.tif 000048
【図４７】
0004035173.tif 000049
【図４８】
0004035173.tif 000050
【図４９】
0004035173.tif 000051
【図５０】
0004035173.tif 000052
【図５１】
0004035173.tif 000053
【図５２】
0004035173.tif 000054
【図５３】
0004035173.tif 000055
【図５４】
0004035173.tif 000056
【図５５】
0004035173.tif 000057
【図５６】
0004035173.tif 000058
【図５７】
0004035173.tif 000059
【図５８】
0004035173.tif 000060
【図５９】
0004035173.tif 000061
【図６０】
0004035173.tif 000062
【図６１】
0004035173.tif 000063
【図６２】
0004035173.tif 000064
【図６３】
0004035173.tif 000065
【図６４】
0004035173.tif 000066
【図６５】
0004035173.tif 000067
【図６６】
0004035173.tif 000068
【図６７】
0004035173.tif 000069
【図６８】
0004035173.tif 000070
【図６９】
0004035173.tif 000071
【図７０】
0004035173.tif 000072
【図７１】
0004035173.tif 000073
【図７２】
0004035173.tif 000074
【図７３】
0004035173.tif 000075
【図７４】
0004035173.tif 000076
【図７５】
0004035173.tif 000077
【図７６】
0004035173.tif 000078
【図７７】
0004035173.tif 000079
【図７８】
0004035173.tif 000080
【図７９】
0004035173.tif 000081
【図８０】
0004035173.tif 000082
【図８１】
0004035173.tif 000083
【図８２】
0004035173.tif 000084
【図８３】
0004035173.tif 000085
【図８４】
0004035173.tif 000086
【図８５】
0004035173.tif 000087
【図８６】
0004035173.tif 000088
【図８７】
0004035173.tif 000089
【図８８】
0004035173.tif 000090
【図８９】
0004035173.tif 000091
【図９０】
0004035173.tif 000092