(57)【要約】【課題】複数のデータ処理装置を接続した場合に、データ処理装置の機能を効率的に拡張可能とする。【解決手段】他のデータ処理装置と接続して連携動作可能なデータ処理装置であって、前記データ処理装置の動作を制御するための処理手段と、前記処理手段が実行して前記データ処理装置の動作を制御するためのプログラムであって、前記他のデータ処理装置の処理手段によっても実行可能な第１のプログラムを記憶する第１の記憶手段と、前記他のデータ処理装置と接続するための接続手段と、前記データ処理装置を特徴づける機能を達成するためのデバイスと、前記デバイスを実行して前記機能を実現するための第２のプログラムを記憶する第２の記憶手段とを備えることを特徴とする。【選択図】図１
2008009645.tif 000002
【特許請求の範囲】
【請求項１】
他のデータ処理装置と接続して連携動作可能なデータ処理装置であって、
前記データ処理装置の動作を制御するための処理手段と、
前記処理手段が実行して前記データ処理装置の動作を制御するためのプログラムであって、前記他のデータ処理装置の処理手段によっても実行可能な第１のプログラムを記憶する第１の記憶手段と、
前記他のデータ処理装置と接続するための接続手段と、
前記データ処理装置を特徴づける機能を達成するためのデバイスと、
前記デバイスを実行して前記機能を実現するための第２のプログラムを記憶する第２の記憶手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記処理手段は、前記他のデータ処理装置が有する前記デバイスに基づき、前記第１のプログラムのうち当該他のデータ処理装置が実行する部分を決定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記デバイスは、少なくとも、印刷処理を行う印刷手段、描画用の画像処理を行う描画手段、ＪＰＥＧ画像データの符号化復号化手段、被写体を撮像して画像データを生成する撮像手段、画面表示を行うディスプレイ表示手段、前記データ処理装置のユーザーとの間のインタフェースを提供するユーザーインタフェース手段のいずれかであることを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
複数のデータ処理装置を接続して構成されるデータ処理システムの制御方法であって、
前記複数のデータ処理装置のうち、プログラムの分散処理の実行が可能な第１のデータ処理装置を決定する工程と、
前記第１のデータ処理装置に関する情報に基づき、前記第１のデータ処理装置のうち、前記分散処理の実行を全体として制御する第２のデータ処理装置を決定する工程と、
前記第２のデータ処理装置が、前記第１のデータ処理装置が有する該装置を特徴づける機能に基づき、前記プログラムのうち当該第１のデータ処理装置に実行させる部分を割り当てる工程と、
前記第１のデータ処理装置及び前記第２のデータ処理装置のそれぞれにおいて、割り当てられた前記プログラムの部分を実行する工程と
を備えることを特徴とする方法。
【請求項５】
前記第２のデータ処理装置は、装置が有する処理性能及び記憶容量に基づいて決定されることを特徴とする請求項４に記載の方法。
【請求項６】
前記分散処理の対象となる前記プログラムが複数存在する場合に、該複数の前記プログラムの中から前記分散処理を実行するプログラムを選択する工程を、
前記第２のデータ処理装置を決定する前記工程の後に備えることを特徴とする請求項４又は５に記載の方法。
【請求項７】
前記複数のデータ処理装置のうち、プログラムの分散処理の実行が可能でないと決定された第３のデータ処理装置は、装置単体で動作することを特徴とする請求項４乃至６のいずれかに記載の方法。
【請求項８】
コンピュータを請求項１乃至３のいずれかに記載のデータ処理装置として機能させるためのコンピュータプログラム。
【請求項９】
コンピュータに請求項４乃至７のいずれかに記載のデータ処理システムの制御方法を実行させるためのコンピュータプログラム。
【請求項１０】
請求項８又は９に記載のコンピュータプログラムを格納したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理システムの制御方法、コンピュータプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
近年、様々なデジタル機器が登場し、個人が複数のデジタル機器を所有することは珍しくなくなった。この状況が進むにつれ、これらの機器をデータ処理装置として各機器の機能を連携させることで、より高機能なデータ処理装置として動作させたり、別の機能を実現するデータ処理装置として動作させることが期待されている。例えば、スキャナとプリンタとを所有するユーザがこれらを相互接続させた場合に、スキャナとプリンタとが連携してコピー機として動作することが期待される。
【０００３】
データ処理装置の機能を拡張しようとする場合、一般には、ＣＰＵのアップグレードやＲＡＭの増設、或いは特定の機能を持つデバイスをデータ処理装置に追加することが行われている。
【０００４】
例えば、ＰＣＩバスを有するプリンタモジュールに、各種のＰＣＩデバイスと、これらが制御するデバイス（外部スキャナ、ネットワークＩ／Ｆ）を接続し、プリンタにコピー機等の機能を追加する方法が提案されている（特許文献１を参照。）。ここで、ＰＣＩデバイスには、スキャナコントローラ、ネットワークコントローラ等が含まれる。
【０００５】
また、近年の印刷の高解像化に伴うデータ処理の負荷増大に対しては、印刷に関わるデータ処理を分散することで、処理時間を短縮することが期待されている。例えば、プリンタ制御装置内に、サブＣＰＵ、ページメモリ、描画ハードウェア等を搭載したサブブロックを複数搭載し、メインＣＰＵとの間でデータ処理を分散処理して印刷速度を向上させる方法が提案されている（特許文献２を参照。）。
【０００６】
しかしながら、特許文献１に開示されるような方法では、追加接続したスキャナ、ネットワークI/F、FAX等のデータ入出力装置は、これらの装置が提供するデータ入出力機能をプリンタに追加するだけである。また、追加接続されたPDL展開モジュールは、PDL展開の機能をプリンタに追加するだけである。
【０００７】
したがって、折角装置を追加接続しても、これらの機能を利用しない場合には、全く役に立たないこととなる。例えば、ＰＣＩバス経由でプリンタに追加されたスキャナは、印刷原稿をデジタルデータとして機器内取り込む機能のみを追加し、これを印刷する場合は機能を提供するデバイスとして役に立つ。その一方、ＰＣからのデータを印刷する場合には全く動作せず、何の役にも立たない。
【０００８】
また、特許文献２に開示されるような方法では、処理を分散するためのサブブロックは、プリンタを制御するためのサブブロックであり、プリンタのメインブロックの代替として利用したり、他の装置から利用することはできない。
【特許文献１】特開平９−４６４６４号公報
【特許文献２】特開平７−１７２００３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このように、複数のデータ処理装置を接続した場合でも、提供する機能が一義的であって、データ処理装置の機能を効率的に拡張することが困難であった。
【００１０】
そこで、本発明は、複数のデータ処理装置を接続した場合に、データ処理装置の機能を効率的に拡張可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための本発明は、他のデータ処理装置と接続して連携動作可能なデータ処理装置であって、前記データ処理装置の動作を制御するための処理手段と、前記処理手段が実行して前記データ処理装置の動作を制御するためのプログラムであって、前記他のデータ処理装置の処理手段によっても実行可能な第１のプログラムを記憶する第１の記憶手段と、前記他のデータ処理装置と接続するための接続手段と、前記データ処理装置を特徴づける機能を達成するためのデバイスと、前記デバイスを実行して前記機能を実現するための第２のプログラムを記憶する第２の記憶手段とを備えることを特徴とする。
【００１２】
また、上記課題を解決するための本発明はまた、複数のデータ処理装置を接続して構成されるデータ処理システムの制御方法であって、前記複数のデータ処理装置のうち、プログラムの分散処理の実行が可能な第１のデータ処理装置を決定する工程と、前記第１のデータ処理装置に関する情報に基づき、前記第１のデータ処理装置のうち、前記分散処理の実行を全体として制御する第２のデータ処理装置を決定する工程と、前記第２のデータ処理装置が、前記第１のデータ処理装置が有する該装置を特徴づける機能に基づき、前記プログラムのうち当該第１のデータ処理装置に実行させる部分を割り当てる工程と、前記第１のデータ処理装置及び前記第２のデータ処理装置のそれぞれにおいて、割り当てられた前記プログラムの部分を実行する工程とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数のデータ処理装置を接続した場合に、データ処理装置の機能を容易にかつ効率よく拡張できる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
【００１５】
図１は、発明の実施形態に対応するデータ処理装置のハードウェア構成の一例を示すブロック図である。図１においてデータ処理装置１本体の内部には、本発明に関わるデータ処理装置１に共通の共通処理モジュール２が含まれる。
【００１６】
この共通処理モジュール２内には、データ処理装置１全体を制御するＣＰＵ３、ＣＰＵ３による制御ためのプログラムを格納するための共通アプリケーションＲＯＭ４、ＣＰＵ３にワークエリアを提供するＲＡＭ５が含まれる。また、共通処理モジュール２を有するデータ処理装置１を複数接続するためのモジュールインターフェース（Ｉ／Ｆ）６も含まれる。
【００１７】
本実施形態において、ＣＰＵ３は、各製品の機能、コストの制限によって仕様や動作周波数が異なる場合があるが、共通アプリケーションＲＯＭ４に収められたプログラムは、どの共通処理モジュール２のＣＰＵ３上でも動作が保証される。
【００１８】
従って、全ての共通処理モジュール２のＣＰＵ３が同一、或いは、各ＣＰＵ３の間でマシン語の互換性が保証されるのであれば、共通アプリケーションＲＯＭ４に格納されたプログラムは、ＣＰＵ３固有のマシン語のバイナリコードでよい。しかし、ＣＰＵ３が共通処理モジュール２毎に異なる場合は、共通アプリケーションＲＯＭ４内のプログラムは、共通仮想マシン用のコードで提供され、共通処理モジュール２は、共通仮想マシン用のコードの実行環境を必ず提供する必要がある。
【００１９】
また、共通アプリケーションＲＯＭ４とＲＡＭ５の容量は、各製品の機能、コストの制限によって決められるので、必ずしも一定でなくてもよい。共通アプリケーションＲＯＭ４には、接続された複数のデータ処理装置１の全体で動作するための制御プログラム、アプリケーションプログラムが格納される。また、各装置固有のソフトウェアとハードウェアを他のデータ処理装置１から制御するプログラムや、各データ処理装置間でデータを送受信するためのインターフェースプログラムも格納されている。
【００２０】
その他、データ処理装置１本体には、装置を特徴付ける機能を提供するプログラムを格納するローカルアプリケーションＲＯＭ７と、各装置を特徴づける機能を提供するローカルデバイス８が含まれる。ここで、装置を特徴づける機能とは、共通処理モジュール２のような各装置が共通して有する機能ではなく、それぞれの装置が当該装置の本来的機能を達成するために有する機能をいう。例えば、装置がプリンタ装置であればプリント機能をいい、装置がスキャナ装置であればスキャナ機能を言う。
【００２１】
また、データ処理装置１内の各構成要素はバス９により相互に接続されている。更に、コネクタ１０により、各データ処理装置が相互に接続され、上記の各構成要素を連携させて動作（以下、単に「連携動作」という。）させることで全体として１つのデータ処理装置として動作させることができる。
【００２２】
例えば、プリンタ製品では、ローカルアプリケーションＲＯＭ７には、印刷機能を提供するプリントアプリケーションプログラムや、プリントハードウェア制御プログラム等が格納されることとなる。プリンタ製品には、電子写真方式、インクジェット方式、バブルジェット（登録商標）方式の印刷装置が含まれる。その場合、ローカルデバイス８には、各方式に対応した印刷処理用のデバイスが含まれ、ローカルアプリケーションＲＯＭ７には、当該印刷処理用のデバイスを制御して印刷処理を実現するためのプログラムが格納される。
【００２３】
従って、データ処理装置１は、他のデータ処理装置と接続され、機能提供しない場合には、ローカルアプリケーションＲＯＭ７のプログラムを動作させることでプリンタとして機能する。
【００２４】
なお、ローカルアプリケーションＲＯＭ７内に格納されるプログラムは、他の装置の共通処理モジュール２でも動作可能な形態で共通アプリケーションＲＯＭ４内に格納しても良い。また、該ＲＯＭ４の共通プログラムの一部を利用して構成しても良い。更に、共通アプリケーションＲＯＭ４とローカルアプリケーションＲＯＭ７とは説明上、別構成としているが、管理が可能であれば、１つのＲＯＭで実現しても構わない。
【００２５】
以上の構成を有するデータ処理装置１を前提として、以下では、所定の機能を実現するための複数のデータ処理装置１の相互接続の例、及び、処理の実行例を説明する。
【００２６】
（第１の実施形態）
まず、図２は、発明の第１の実施形態に対応する２つのデータ処理装置１１及び１５を相互接続して構成されるデータ処理システムの例を示している。図２では、装置１１がスキャナ装置で、装置１５がプリンタ装置の場合を示している。
【００２７】
即ち、図２においてローカルアプリケーションＲＯＭ１２には、装置１１がスキャナ装置として動作するために必要なソフトウェアが格納され、ローカルデバイス１３は、スキャナ装置として必要な、ＣＣＤ等の画像入力デバイス、スキャナ用ＡＳＩＣ等である。
【００２８】
また、ローカルアプリケーションＲＯＭ１６には、装置１５がプリンタ装置として動作するために必要なソフトウェアが格納され、ローカルデバイス１７はプリントヘッド、紙送りメカ、プリンタ用ＡＳＩＣ等である。
【００２９】
両装置は、コネクタ１９及び２０を利用して、相互接続（２１）される。この接続２１は、高速かつ双方向に接続可能なものであれば良く、現時点ではＰＣＩ Ｅｘｐｒｅｓｓ、ＵＳＢ２．０、ＩＥＥＥ１３９４ｂやギガビットイーサーネット等が考えられる。もちろん、装置間の接続はスロットやケーブルに限るわけではなく無線でもよい。但し、無線の場合は、接続されているかどうかが直感的に分かりづらいのと、やはり接続方法が直感的に分かりづらい等の点で、有線接続がより好ましい。
【００３０】
図２において、共通アプリケーションＲＯＭ１４及び共通アプリケーションＲＯＭ１８には、データ処理装置１を複数接続した場合に使用されるプログラムがそれぞれ格納されている。
【００３１】
例えば、ＲＯＭ１４、１８には、スキャナ装置１１とプリンタ装置１５とを接続してコピー機能を実現する場合の処理プログラムが格納される。製品によっては、共通アプリケーションＲＯＭ１４と共通アプリケーションＲＯＭ１８とが全く同一であってもよい。その一方で、製品にかけられるコストに余裕がある場合には、大容量のＲＯＭを用意して高機能アプリケーションを格納できるので、共通アプリケーションＲＯＭ１４と共通アプリケーションＲＯＭ１８との内容が異なる場合も考えられる。
【００３２】
次に、図３を参照して共通アプリケーションＲＯＭ１４、１８内に格納されるプログラムの種類を説明する。図３において（ａ）は、スキャナ装置１１及びプリンタ装置１５が、機能を簡略化したモデル（簡略モデル）の場合を想定したものである。即ち、各共通アプリケーションＲＯＭ１４、１８は、必要最低限の機能だけを持った標準アプリケーションプログラム３０１と標準画像処理ライブラリ３０２を格納している。
【００３３】
次に、図３の（ｂ）は、まず、スキャナ装置１１は高機能モデルで、共通アプリケーションＲＯＭ１４内に高機能アプリケーションプログラム３０３と、標準画像処理ライブラリ３０２を格納している。この高機能アプリケーションプログラム３０３は、標準アプリケーションに比べて、豊富な機能が含まれている点に特徴がある。また、プリンタ装置１５は簡略モデルで、共通アプリケーションＲＯＭ１８内に標準アプリケーションプログラム３０１と標準画像処理ライブラリ３０２とを格納している。
【００３４】
更に、図３（ｃ）は、スキャナ装置１１とプリンタ装置１５とが、共に高機能モデルの例を示している。即ち、共通アプリケーションＲＯＭ１４及び１８内に、高機能アプリケーションプログラム３０３と標準画像処理ライブラリ３０２とが格納されている。
【００３５】
なお、図３の（ａ）及び（ｃ）において、プログラムが全く同一の場合は、各装置に保持されたプログラムを利用するが、両者のバージョンが異なる場合は、一方が保持する新しいプログラムを他方がロードして使用することが好ましい。このとき、可能ならば共通アプリケーションＲＯＭ１４又は１８内の古いバージョンのプログラムを新しいバージョンにより書き換えても良い。
【００３６】
また、プリンタ装置１５は、他の機器（デジタルカメラ等）とつながる可能性が高いため、スキャナ装置１１以外の機器と接続された場合に使用されるアプリケーションが共通アプリケーションＲＯＭ１８に格納されていてもよい。また、共通アプリケーションＲＯＭ１４や１８がＥＥＰＲＯＭ等のような書換可能なメモリの場合、プログラムの更新版や新たな機器と接続して使用するためのプログラムをＰＣやネットワーク経由で上書きしたり、追加することもできる。
【００３７】
ところで、図３（ｂ）は、機能提供レベルの異なるプログラムが、共通アプリケーションＲＯＭ１４及び１８にそれぞれ格納されている場合を示している。このような場合、本実施形態では、一方が有する高機能な（機能提供レベルがより高い）プログラムを他方がロードして使用することができる。その場合、プログラムの全てを一方の装置のＣＰＵで実行するのではなく、プログラムを予めモジュール化しておき、各モジュール毎にＣＰＵの性能、ＲＡＭの容量、装備しているハードウェアデバイスを考慮して分散処理を行うことが望ましい。
【００３８】
例えば、画像の入力処理に関連するものはスキャナ装置１１側で行い、印刷処理に関連するものはプリンタ装置１５側で行うことができる。また、大量の計算が必要な処理は高速なＣＰＵを持つ装置の側で行い、大量のメモリが必要な処理はＲＡＭ容量に余裕がある装置の側で実行するのがよい。その際、装置間におけるデータ転送がなるべく発生しないように、分散させることが好ましい。
【００３９】
この分散処理に関しては、図３（ａ）、（ｃ）のように、共通アプリケーションＲＯＭ１４及び１８が同一プログラムを格納している場合であっても、装置の処理スピードを向上させるためには、（ｂ）の例と同様の分散処理が必要である。この場合、プログラムのバージョンが同じである限りは、両装置内のＲＯＭ１４又は１８に、同一プログラムが存在するので、装置間でプログラムの一部を転送する必要がない。
【００４０】
また、スキャナ装置１１とプリンタ装置１５とを接続した場合、プリンタ装置１５が単体で提供する印刷機能も当然に提供可能であるが、この場合は、ＲＯＭ１８或いはＲＯＭ１４に格納された連携動作に対応した印刷アプリケーションが起動される。この印刷アプリケーションでは、印刷に関わる処理のうち、プリンタ装置１５以外の装置でも処理可能な部分を、他の装置（この場合は、スキャナ装置１１）の共通処理モジュール２上で分散処理させる。
【００４１】
逆に連携動作するスキャンアプリケーションも存在し、こちらはスキャンに関わる処理のうち、スキャナ装置１１以外の装置でも処理可能な部分を他の装置（この場合は、プリンタ装置１５）の共通処理モジュール２上で分散処理させる。
【００４２】
このようにすることで、相互接続されている装置の資源（共通処理モジュール）を互いに有効に活用して、接続された装置全体の処理効率を高めることができる。
【００４３】
以上説明したように、本実施形態によれば、複数の装置を相互接続した場合に、接続された装置全体で提供可能な機能を有効とし、各装置単体では不可能な機能を新たに、かつ、容易に提供することができる。
【００４４】
また、新たな機能の提供の際には、当該機能を実現するための処理を、接続された全装置の間で分散して実行することで、処理の効率を向上させることができる。これにより、接続された各装置は、各装置が提供可能な機能に基づき、当該新たな機能の提供に貢献することができる。よって、装置を接続しても直接使わない場合は全く役に立たないという欠点や、他の装置から使用することができないという欠点を解消することができる。
【００４５】
（第２の実施形態）
次に、発明の第２の実施形態を説明する。図４は、本実施形態に対応する複数のデータ処理装置が接続されたデータ処理システムの構成例を示す図である。図４は、また、２つのデータ処理装置２１及び３１を接続した例を示しており、ここではプリンタ装置２１とレンダリングアクセラレータ装置３１とがケーブル３６を介して接続されている。ただし、装置２１は共通処理モジュール２をケーブル２８を介して追加で１つ接続し、２つの共通処理モジュール２４及び２６を有している。
【００４６】
追加された共通処理モジュール２６は、装置が元々有する共通処理モジュール２４と同一であり、共通アプリケーションＲＯＭ２５及び２７の内容も図３（ａ）に示すものと同一である。このように共通処理モジュール２を、モジュール単位で装置に追加して分散処理を行うことで、装置の処理スピードを向上させることができる。
【００４７】
図４では、プリンタ装置２１に対して、レンダリングアクセラレータ装置３１をケーブル３７で接続している。レンダリングアクセラレータ装置３１は、接続されたデータ処理装置（この場合は、プリンタ装置２１）のレンダリング機能をアクセラレートするデータ処理装置である。レンダリングアクセラレータ装置３１は、専用ハードウェアであり、描画用の画像処理を行うレンダリングデバイス３３と、ローカルアプリケーションＲＯＭ３２に格納されたレンダリングデバイス３３の制御ソフトウェアとを有している。
【００４８】
このようなレンダリングアクセラレータ装置３１は、装置単体では製品としての意味を有しないが、コスト等の制限によりレンダリング機能をソフトウェア処理している全ての装置のレンダリング性能を向上させるためには有用である。更に、レンダリングデバイス３３として汎用ＤＳＰを用いる場合には、適切なソフトウェアを供給するための手段を備えることで接続装置（この場合は、プリンタ装置２１）のための様々な信号処理を高速化できる。
【００４９】
図３の（ｄ）は、レンダリングアクセラレータ装置３１内にある共通処理モジュール３４内の、共通アプリケーションＲＯＭ３５の内容を示している。共通アプリケーションＲＯＭ３５内には、プリンタ装置２１とアクセラレータ装置３１とを接続したときに利用する高機能アプリケーション３０３と専用ハードウェアの機能を利用した高速画像処理ライブラリ３０４が格納されている。なお、共通処理モジュール３４内のＲＡＭ３６は、高機能アプリケーション３０３を動作させるのに十分な容量を有する。
【００５０】
図４では、共通アプリケーションＲＯＭ３５内の高機能アプリケーション３０３のうち、印刷に関わらない処理モジュールは、専用ハードウェア３３と大容量ＲＡＭ３６による高速処理を期待して共通処理モジュール３４上で動作する。一方、印刷行為そのものに深く関わる処理モジュールは、できる限り印刷行為を実行するプリンタ装置２１内の共通処理モジュール２４又は２６上で分散処理させる。
【００５１】
このようにして、接続された各装置の特徴を活かして処理を最適に分散することで、接続された装置全体の系での性能を更に向上させることができる。
【００５２】
（第３の実施形態）
次に、発明の第３の実施形態を説明する。図５は、本実施形態に対応する複数のデータ処理装置が接続されたデータ処理システムの構成例を示す図である。具体的に、図５では、Ａ３判カラーＬＢＰ（レーザー・ビーム・プリンタ）４１、Ｌ判フォトプリンタ４２、及び、デジタルカメラ４３が、ケーブル４４と４５を介してそれぞれ接続されている。
【００５３】
また、図６は、図５のデータ処理システムのブロック図である。カラーＬＢＰ４１は、図１のローカルデバイス８として以下のものを有する。まず、画面表示及び装置のユーザーとの間のインタフェースを提供するためのＵＩ（ユーザー・インタフェース）を提供する表示／ＵＩデバイス５２を有する。また、グラフィックスに特化したレンダリング等の画像処理を行うレンダリングデバイス５３を有する。更には、Ａ３判ＬＢＰ方式の印刷処理を行うためのプリントデバイス５４等を有する。上記の各デバイスを制御するためのプログラムは、ローカルアプリケーションＲＯＭ５１内に格納されている。
【００５４】
次に、フォトプリンタ４２は、図１のローカルデバイス８として以下のものを有する。まず、メモリカードスロットとしてのストレージデバイス６２を有する。また、フォトに特化したレンダリング等の画像処理を行うレンダリングデバイス６３を有する。更に、Ｌ判インクジェット方式の印刷処理を行うためのプリントデバイス６４を有する。上記の各デバイスを制御するためのプログラムは、ローカルアプリケーションＲＯＭ６１内に格納されている。
【００５５】
更に、デジタルカメラ４３は、図１のローカルデバイス８として以下のものを有する。まず、ディスプレイ表示及びＵＩを提供するための表示／ＵＩデバイス７２を有する。また、ＪＰＥＧ画像データの符号化及び復号化を行うハードウェアとしてのＪＰＥＧコーデック７３を有する。更に、被写体を撮影して画像データを生成するためのカメラデバイス７４を有する。上記の各デバイスを制御するためのプログラムはローカルアプリケーションＲＯＭ７１内に格納されている。
【００５６】
なお、図６に示すように、本実施形態では３つの共通処理モジュール５５、６５及び７５が存在するが、装置単体の機能を実現するためにそれぞれ性能（ＣＰＵクロック、ＲＯＭ、ＲＡＭ容量）が異なっている。但し、本実施形態では、カラーＬＢＰ４１上の共通処理モジュール５５が最も高性能であることとする。
【００５７】
次に、図７を参照して、データ処理装置１を上述した各実施形態に適用した場合のデータ処理装置１上で実行される他の装置との接続処理の手順を説明する。図７に示す処理は、データ処理装置１の共通アプリケーションＲＯＭ４に格納された対応する処理プログラムをＣＰＵ３が実行することにより実現される。
【００５８】
データ処理装置１の起動時やデータ処理装置１起動中に他のデータ処理装置１との接続をＣＰＵ３が検出する。すると、ＣＰＵ３は、ステップＳ１００でデータ処理装置１の起動モードを調べ、他の装置との連携動作が許可されているか否かを判定する。もし、許可されている場合には（ステップＳ１０１において「ＹＥＳ」）、ステップＳ１０１において、ＣＰＵ３は、接続されている他の機器の情報を収集する。ここで収集される機器情報には、ＣＰＵ３の性能、ＲＡＭ５の容量の他、当該他の機器において連携動作が許可されているか否かを識別するための情報が含まれる。その後、ステップＳ１０２の処理に移行する。一方、許可されていない場合には（ステップＳ１０１において「ＮＯ」）、ステップＳ１１０の処理に移行する。
【００５９】
ステップＳ１０２において、ＣＰＵ３は、ステップＳ１０１で収集した情報から連携動作可能な状態のデータ処理装置１を探し、連携動作可能な装置が存在するか否かを判定する。もし、連携動作可能な装置が存在すると判定した場合には（ステップＳ１０２において「ＹＥＳ」）、ステップＳ１０３の処理に移行する。一方、連携動作可能な装置が存在しないと判定された場合には（ステップＳ１０２において「ＮＯ」）、ステップＳ１１０の処理に移行する。
【００６０】
ステップＳ１０３において、ＣＰＵ３は、連携動作可能な装置と本データ処理装置１との連携動作情報を取得する。この連携動作情報には、ＣＰＵの性能に関する情報、あるいは、連携動作アプリケーションプログラムが存在する場合には、当該プログラムの機能とバージョン情報が含まれる。続くステップＳ１０４において、ＣＰＵ３は、ステップＳ１０３において取得した情報に基づいて、連携動作アプリケーションプログラムが存在するか否かを判定する。もし、当該プログラムが存在する場合には（ステップＳ１０４において「ＹＥＳ」）、ステップＳ１０５の処理に移行する。一方、当該プログラムが存在しない場合には（ステップＳ１０４において「ＮＯ」）、ステップＳ１１０の処理に移行する。
【００６１】
ステップＳ１０５では、複数の他の装置と接続されたデータ処理システムにおいて、ＣＰＵ３は、本データ処理装置１が制御権を取得できるかを判定する。この判定は、ステップＳ１０１で取得した機器情報、ステップＳ１０３で収集した連携動作情報を参照し、機器の性能やアプリケーションプログラムの機能に基づいて行うことができる。例えば、ＣＰＵの性能が最も優れた装置，あるいは高機能のアプリケーションプログラムを有している装置，あるいは、最新のバージョンを有している装置が制御権を有するのに適している。ここで、本データ処理装置１が制御することが最適であり、制御権が獲得できると判定できた場合は（ステップＳ１０５において「ＹＥＳ」）、ＣＰＵ３は、ステップＳ１０６でシステム内の制御権を取得する。なお、ステップＳ１０６には、同等の能力を有する他の装置との制御権取得の調整処理、他のすべての装置からの制御権の移譲を確認する処理が含まれる。続くステップＳ１０７において、ＣＰＵ３は、ステップＳ１０６で決定した内容に従ってシステムの制御を開始する。
【００６２】
一方、ステップＳ１０５で制御権を取得できないと判定した場合は（ステップＳ１０５において「ＮＯ」）、ステップＳ１０８において、ＣＰＵ３は、このシステムの制御権を取得可能な他の装置へ本データ処理装置１の制御権を移譲する。そして、ステップＳ１０９において、ＣＰＵ３は、このシステムの制御権を取得した他の装置からの制御によって動作可能な状態に移行する。
【００６３】
また、ステップＳ１１０では、ＣＰう３は、本データ処理装置１を単体動作可能な状態にして、単体動作アプリケーションプログラムを起動する。
【００６４】
なお、ステップＳ１０４で連携動作アプリケーションプログラムが存在しないと判定された場合であっても、ステップＳ１０５へ処理を進めることができる場合がある。例えば、ネットワーク（例えば、ＬＡＮやインターネット）上のプログラム配布サーバ等からプログラムを取得できる装置がこのシステムの中に存在すれば、新たに連携動作アプリケーションプログラムを取得してステップＳ１０５へ処理を進めてもよい。
【００６５】
図７を参照して説明した以上の一連のＣＰＵ３による処理は、データ処理システムを構成するデータ処理装置１の動作中に、新たな装置が接続された場合、或いは、いずれかの装置が取り外された場合にも再度実行される。これによってシステム全体における連携動作が常に制御される。
【００６６】
次に、図８を参照して、図７のステップＳ１０７による起動直後に行われる処理の一例を説明する。図８に示す処理は、データ処理装置１の共通アプリケーションＲＯＭ４に格納された対応する処理プログラムをＣＰＵ３が実行することにより実現される。
【００６７】
図７に示す処理を実行した場合、連携動作アプリケーションプログラムが複数存在することがあるので、まず、ステップＳ１２１において、ＣＰＵ３は、実際に使用する連携動作アプリケーションプログラムを決定する。この決定は、データ処理装置１が有する操作部（キーボードやマウスなど）を経由して、複数のアプリケーションの中から１つをユーザに選択させることで行っても良い。また、複数の装置で構成されるシステムに最後に追加された装置を特に利用するプログラムを優先するなどして、ユーザの意図に合わせた選択を行うこともできる。更に、同一アプリケーションでも機能提供レベルが異なるものが複数見つかった場合は、最も高機能なものを選択し、同じアプリケーションでバージョンが複数見つかった場合は、最新のものを選択することができる。
【００６８】
次にステップＳ１２２では、ステップＳ１２１で決定されたアプリケーションを構成するソフトウェアモジュール群のうち、ＣＰＵ３は、どのモジュールをどの装置で動作させるのかを決定する。これは、ＣＰＵ３は、ステップＳ１０１で得られた機器情報等を参照することによって決定される。そして、各装置の持つハードウェアの特徴やデータの転送量を考慮しながら、接続された装置全体で最適な分散処理が可能となるように行い、連携動作アプリケーションプログラムを再構成する。ステップＳ１２２におけるモジュールの再構成が終わると、ＣＰＵ３は、ステップＳ１２３でこの連携動作アプリケーションプログラムを起動して連携動作を開始する。
【００６９】
ここで、上記の処理を、第３の実施の形態である図５及び図６に示したカラーＬＢＰ４１、フォトプリンタ４２及びデジタルカメラ４３で構成されるシステムについて適用した場合について具体的に説明する。ここで、各装置が全て連携動作を許可しており、共通アプリケーションＲＯＭ５６、６６及び７６のいずれかに、各装置が連携動作するためのプログラムが格納されているものとする。
【００７０】
そして、図７及び図８に示した処理によりこのシステムを制御するのは、最も高性能（高速ＣＰＵ、大容量ＲＡＭを有する）なカラーＬＢＰ４１に決定されたものとする。また、複数の連携動作プログラムの中からストレージデバイス６２内にある画像をＡ４判の用紙に印刷するアプリケーションが選択される場合、装置内の各デバイスを最適に連携動作させるモジュールセットが構成される。
【００７１】
このときのモジュールセットの構成は、例えば図９に示すようになる。図９において、モジュールセットとして利用されるブロックには、縁部分に網掛けを施してある。即ち、この印刷アプリケーションでは、カラーＬＢＰ４１内の共通処理モジュール５５に存在するＣＰＵ３が、データ処理システム全体の制御を行う。但し、ユーザが印刷設定をする際には、カラーＬＢＰ４１の表示／ＵＩデバイス５２の操作パネルを利用する。また、メモリカードから画像を読み込んで写真画像のレンダリングを行うのには、フォトプリンタ４２のストレージデバイス６２とレンダリングデバイス６３とを利用する。更に、レンダリング結果を印刷するのには、カラーＬＢＰ４１のプリントデバイス５４を使う。
【００７２】
なお、印刷アプリケーションを実行する場合、装置４１と４２だけでも動作可能である。しかし、この例ではデジタルカメラ４３が接続されているので、デジタルカメラ４３内に存在する高性能のＪＰＥＧ伸長回路であるＪＰＥＧコーデック７３を利用するようにモジュールが再構成される。また、装置４２及び４３内の共通処理モジュール６５及び７５も、各装置内のデバイスを共通処理モジュール５５からの制御によって動作させる仲介処理、メモリの提供処理、更には処理結果の送受信処理等を制御するために使用される。
【００７３】
次に、図１０のフローチャートを参照して、図９のモジュール構成における処理の流れを説明する。図１０では、カラーＬＢＰ４１において、表示／ＵＩデバイス５２を介してユーザからの印刷指示を受け付ける。すると、まずステップＳ１３１において、カラーＬＢＰ４１のＣＰＵ３が当該印刷指示に含まれる印刷に関する設定（印刷設定）をカラーＬＢＰ４１のＲＡＭ５に読み込む。この印刷設定には、印刷する画像番号リスト、印刷レイアウト、印刷品質、印刷枚数等が含まれる。印刷設定が読み込まれると、ステップＳ１３２以降、全ページの印刷が終了するまで、ステップＳ１３７までの処理が各ページについて繰り返される。
【００７４】
なお、各ページの処理は、大きくレンダリング処理と印刷処理とに分けられるが、レンダリング処理は写真のレンダリング専用ハードウェアであるレンダリングデバイス６３を有するフォトプリンタ４２で行うように調整される。また、レンダリング処理は、ページ単位ではなくバンド単位で行われる。そのため、ステップＳ１３３において、カラーＬＢＰ４１のＣＰＵは、１ページ分のレンダリング処理が終了したか否かを判定する。もし、１ページ分のレンダリングが終了していないと判定されれば（ステップＳ１３３において「ＮＯ」）、ステップＳ１３５において、フォトプリンタ４２のＣＰＵが各バンドのレンダリング処理と印刷装置非依存の画像処理を行う。
【００７５】
ステップＳ１３５におけるレンダリング処理を行うに当たり、ステップＳ１３４において、フォトプリンタ４２のＣＰＵは、処理対象の画像がＪＰＥＧ圧縮符号化されているか否か判定する。ＪＰＥＧの伸長処理が必要か否かを判定する。もし、処理対象の画像がＪＰＥＧ圧縮符号化していると判定し、ＪＰＥＧの伸長が必要であれば（ステップＳ１３４において「ＹＥＳ」）、ステップＳ１３６の処理に移行する。ステップＳ１３６では、デジタルカメラ４３のＣＰＵがＪＰＥＧコーデック７３にＪＰＥＧ伸長処理を実行させる。
【００７６】
以上により、１ページ分のレンダリング処理が終了すると（ステップＳ１３３において「ＹＥＳ」）、ステップＳ１３７の処理に移行する。ステップＳ１３７において、カラーＬＢＰ４１のＣＰＵは、専用のハードウェアであるプリントデバイス５４を用いてレンダリング処理結果を印刷装置依存の色処理等を行って印刷する。
【００７７】
即ち、ステップＳ１３１、Ｓ１３２、Ｓ１３３及びＳ１３７における全体の制御と印刷処理は、カラーＬＢＰ４１で行われる。また、ステップＳ１３４及びＳ１３５における各ページのレンダリング処理の制御は、フォトプリンタ４２で行われる。更に、ステップＳ１３６におけるＪＰＥＧ伸長制御は、デジタルカメラ４３で行われる。このようにして、印刷アプリケーションは、カラーＬＢＰ４１、フォトプリンタ４２及びデジタルカメラ４３の間で分散処理され、各機器の機能を最大限に活用して実行される。
【００７８】
以上説明したように、本実施形態では、印刷処理を実施するカラーＬＢＰ４１に依存する処理はカラーＬＢＰ４１自身で行う。また、依存しない処理はカラーＬＢＰ４１以外の、専用のハードウェアを有するフォトプリンタ４２とデジタルカメラ４３に分散して処理させることができる。このようにして、各装置の専用ハードウェアを利用した処理の高速化と、各装置を利用した処理の並列化が実現されるので、装置の組み合わせによる印刷機能の拡張や印刷処理の効率向上が達成される。
【００７９】
さらに、このときの動作に注目するとフォトプリンタ４２とデジタルカメラ４３は、装置が本来的に有するプリント機能や撮像機能を提供するのではなく、画像処理装置として内蔵するハードウェアの機能を提供している。このように、単に接続されただけで、アプリケーションの実行に貢献できない従来の機器接続では得られなかった効果を得ることができる。
【００８０】
（第３の実施形態の変形例）
上記の第３の実施形態では、カラーＬＢＰ４１、フォトプリンタ４２及びデジタルカメラ４３が互いに連携動作を許可している場合を説明した。これに対し、いずれかの装置が連携動作を許可しない場合もある。
【００８１】
本変形例では、図６に示した装置のうち、カラーＬＢＰ４１及びフォトプリンタ４２が連携動作を許可しており、ＲＯＭ５６又はＲＯＭ６６に両装置が連携動作するためのプログラムが格納されている場合を説明する。このとき、デジタルカメラ４３は連携動作を許可していない。
【００８２】
この場合、図７及び図８のフローチャートに示した処理により、このシステムを制御するのは最も高性能（高速ＣＰＵ、大容量ＲＡＭを有する）なカラーＬＢＰ４１に決定される。また、複数の連携動作プログラムの中から選択されたのが、デジタルカメラ４３内にある画像をＡ４判の用紙に印刷するアプリケーションならば、図１１の網掛け部に示す装置内の各デバイスを連携動作させるように印刷アプリケーションのソフトウェアモジュールが構成される。
【００８３】
つまり、この印刷アプリケーションでは、カラーＬＢＰ４１内の基本処理モジュール５５に存在するＣＰＵ３が接続された装置のシステム全体の制御を行う。但し、ユーザが印刷設定する際には、システムの外部に接続されたデジタルカメラ４３の表示／ＵＩデバイス７２の操作パネルを利用する。また、デジタルカメラ４３からＪＰＥＧ画像を読み込んで写真画像のレンダリング処理を行うには、フォトプリンタ４２のモジュールＩ／Ｆ６とレンダリングデバイス６３とを利用する。更に、レンダリング結果を印刷するのには、カラーＬＢＰ４１のプリントデバイス５４を使う。
【００８４】
このとき、共通処理モジュール６５は、フォトプリンタ４２内のデバイスを共通処理モジュール５５からの制御によって動作させる仲介を行ったり、メモリの提供、更には処理結果の送受信処理等を制御するために使用される。しかし、デジタルカメラ４３内の共通処理モジュール７５は、連携動作が許可されていないので、図７でのステップＳ１１０において単体動作で起動し、本来のデジタルカメラとして動作している。よって、図１０のステップＳ１３６におけるＪＰＥＧ伸長処理は、カラーＬＢＰ４１又はフォトプリンタ４２のＣＰＵ３がソフトウェア的に実行する必要がある。
【００８５】
このＪＰＥＧ伸長処理のためのソフトウェアは、両装置がそれぞれの共通アプリケーションＲＯＭ４に格納しているか、いずれか一方が両者で動作する形態で共通アプリケーションＲＯＭ４に格納している。そこで、どちらで実行するかをＣＰＵ３の処理能力やＲＡＭ５の容量を考慮して連携動作初期化時に決めるか、印刷アプリケーション動作中にその都度判断して決めることができる。
【００８６】
以上のように、連携動作する機器の構成を変化させることで、物理的には同じ接続形態であっても異なるアプリケーションを容易に提供することもできる。
【００８７】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８８】
また、本発明の目的は、前述した機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムに供給し、そのシステムがプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現し、そのプログラムコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００８９】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００９０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９１】
【図１】発明の実施形態に対応するデータ処理装置のハードウェア構成の一例を示すブロック図である。
【図２】発明の第１の実施形態に対応する２つのデータ処理装置を相互接続した例を示す図である。
【図３】発明の実施形態に係る共通アプリケーションＲＯＭ４内に格納されるプログラムの種類を説明するための図である。
【図４】発明の第２の実施形態に対応する複数のデータ処理装置が接続されたデータ処理システムの構成例を示す図である。
【図５】発明の第３の実施形態に対応する複数のデータ処理装置が接続されたデータ処理システムの構成例を示す図である。
【図６】発明の第３の実施形態に対応するハードウェア構成の一例を示す図である。
【図７】発明の実施形態における、データ処理装置１の接続時に各データ処理装置上で実行される接続処理の手順を示すフローチャートである。
【図８】発明の実施形態に対応する起動直後に行われる処理の手順を示すフローチャートである。
【図９】本発明の第３の実施形態に対応するデータ処理システムにおける動作状態の一例を示すブロック図である。
【図１０】図９に示すデータ処理システムにおける連携動作時の処理の手順を示したフローチャートである。
【図１１】本発明の第３の実施形態の変形例に対応するデータ処理システムにおける動作状態の一例を示すブロック図である。
【図１】
2008009645.tif 000003
【図２】
2008009645.tif 000004
【図３】
2008009645.tif 000005
【図４】
2008009645.tif 000006
【図５】
2008009645.tif 000007
【図６】
2008009645.tif 000008
【図７】
2008009645.tif 000009
【図８】
2008009645.tif 000010
【図９】
2008009645.tif 000011
【図１０】
2008009645.tif 000012
【図１１】
2008009645.tif 000013