(57)【特許請求の範囲】
【請求項１】
印刷のための画像処理が可能な画像処理手段を有するデジタルカメラと、印刷のための画像処理が可能な画像処理手段を有する印刷装置とが接続され、前記印刷装置が前記デジタルカメラの指示に応じて画像を印刷する画像処理システムであって、
前記デジタルカメラと前記印刷装置との接続に応じて、前記デジタルカメラと前記印刷装置との間でデータ通信を可能にするためのコンフィグレーション情報を、接続相手の装置から取得する取得手段と、
前記取得手段により取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とする画像処理システム。
【請求項２】
印刷のための画像処理が可能な画像処理手段を有し、印刷のための画像処理が可能な印刷装置と接続されて当該印刷装置により画像を印刷させることが可能なデジタルカメラであって、
前記印刷装置との接続に応じて、前記印刷装置とのデータ通信を可能にするためのコンフィグレーション情報を前記印刷装置から取得する取得手段と、
前記取得手段により取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とするデジタルカメラ。
【請求項３】
前記画像処理システムは、前記デジタルカメラと前記印刷装置が、シリアルバスケーブルによって接続されるシステムであって、
前記取得手段は、前記シリアルバスケーブルが、前記デジタルカメラ及び前記印刷装置に接続されたことに応じて、前記コンフィグレーション情報を前記印刷装置から取得することを特徴とする請求項２に記載のデジタルカメラ。
【請求項４】
前記画像処理システムは、さらに複数の外部機器を接続し、前記デジタルカメラと前記印刷装置と前記複数の外部機器でネットワークを構築可能であり、
前記取得手段は、前記ネットワークから外部機器が外された、又は、前記ネットワークに新しい外部機器が接続されたことに応じて、前記印刷装置から前記コンフィグレーション情報を取得することを特徴とする請求項２又は３に記載のデジタルカメラ。
【請求項５】
前記コンフィグレーション情報は、接続相手の装置を認識するための情報含むことを特徴とする請求項２乃至４のいずれか１項に記載のデジタルカメラ。
【請求項６】
前記コンフィグレーション情報は、全世界で固有となる番号情報を含むことを特徴とする請求項２乃至５のいずれか１項に記載のデジタルカメラ。
【請求項７】
印刷のための複数の画像処理について、前記印刷装置における画像処理毎の処理時間を前記印刷装置に算出させるための処理時間算出要求を発行する発行手段を更に有し、
前記制御手段は、前記取得手段により取得したコンフィグレーション情報に、前記印刷装置を特定する情報が含まれていない場合は、前記発行手段により発行した前記処理時間算出要求に応じて前記印刷装置から通知される画像処理毎の処理時間の情報に基づいて、画像処理の配分を決定することを特徴とする請求項２乃至６のいずれか１項に記載のデジタルカメラ。
【請求項８】
前記デジタルカメラは、前記処理時間算出要求に応じて、印刷対象画像に応じた処理時間の情報を前記印刷装置から受信することを特徴とする請求項７に記載のデジタルカメラ。
【請求項９】
印刷のための複数の画像処理について、前記デジタルカメラにおける画像処理毎の処理時間を、印刷対象画像に応じて算出する算出手段を更に有し、
前記制御手段は、前記印刷装置から通知される画像処理毎の処理時間と、前記算出手段により算出された、前記デジタルカメラにおける画像処理毎の処理時間とに基づいて、画像処理の配分を決定することを特徴とする請求項７又は８に記載のデジタルカメラ。
【請求項１０】
前記印刷のための複数の画像処理は、画像データの伸張処理、補正処理、色変換処理、データ形式変換処理を含み、
前記制御手段は、前記印刷装置における前記複数の画像処理毎の処理時間と、前記デジタルカメラにおける前記複数の画像処理毎の処理時間とに基づいて画像処理の配分を決定することを特徴とする請求項９に記載のデジタルカメラ。
【請求項１１】
前記取得手段は、前記コンフィグレーション情報として、処理能力の高低を示すランク情報を取得可能であり、
前記制御手段により、前記コンフィグレーション情報に応じて画像処理の配分を決定するか、前記印刷装置に画像処理の配分を決定させるかを、前記ランク情報に基づいて決定する決定手段を更に有することを特徴とする請求項２乃至６のいずれか１項に記載のデジタルカメラ。
【請求項１２】
印刷のための画像処理が可能な画像処理手段を有し、印刷のための画像処理が可能なデジタルカメラと接続されて当該デジタルカメラよりの画像データに基づいて画像を印刷する印刷装置であって、
前記デジタルカメラとの接続に応じて、前記デジタルカメラとのデータ通信を可能にするためのコンフィグレーション情報を前記デジタルカメラから取得する取得手段と、
前記取得手段により取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とする印刷装置。
【請求項１３】
前記画像処理システムは、前記デジタルカメラと前記印刷装置が、シリアルバスケーブルによって接続されるシステムであって、
前記取得手段は、前記シリアルバスケーブルが、前記デジタルカメラ及び前記印刷装置に接続されたことに応じて、前記コンフィグレーション情報を前記デジタルカメラから取得することを特徴とする請求項１２に記載の印刷装置。
【請求項１４】
前記画像処理システムは、さらに複数の外部機器を接続し、前記デジタルカメラと前記印刷装置と前記複数の外部機器でネットワークを構築可能であり、
前記取得手段は、前記ネットワークから外部機器が外された、又は、前記ネットワークに新しい外部機器が接続されたことに応じて、前記デジタルカメラから前記コンフィグレーション情報を取得することを特徴とする請求項１２又は１３に記載の印刷装置。
【請求項１５】
前記コンフィグレーション情報は、接続相手の装置を認識するための情報含むことを特徴とする請求項１２乃至１４のいずれか１項に記載の印刷装置。
【請求項１６】
前記コンフィグレーション情報は、全世界で固有となる番号情報を含むことを特徴とする請求項１２乃至１５のいずれか１項に記載の印刷装置。
【請求項１７】
印刷のための複数の画像処理について、前記デジタルカメラにおける画像処理毎の処理時間を前記デジタルカメラに算出させるための処理時間算出要求を発行する発行手段を更に有し、
前記制御手段は、前記取得手段により取得したコンフィグレーション情報に、前記デジタルカメラを特定する情報が含まれていない場合は、前記発行手段により発行した前記処理時間算出要求に応じて前記デジタルカメラから通知される画像処理毎の処理時間の情報に基づいて、画像処理の配分を決定することを特徴とする請求項１２乃至１６のいずれか１項に記載の印刷装置。
【請求項１８】
前記印刷装置は、前記処理時間算出要求に応じて、印刷対象画像に応じた処理時間の情報を前記デジタルカメラから受信することを特徴とする請求項１７に記載の印刷装置。
【請求項１９】
印刷のための複数の画像処理について、前記印刷装置における画像処理毎の処理時間を、印刷対象画像に応じて算出する算出手段を更に有し、
前記制御手段は、前記デジタルカメラから通知される画像処理毎の処理時間と、前記算出手段により算出された、前記印刷装置における画像処理毎の処理時間とに基づいて、画像処理の配分を決定することを特徴とする請求項１７又は１８に記載の印刷装置。
【請求項２０】
前記印刷のための複数の画像処理は、画像データの伸張処理、補正処理、色変換処理、データ形式変換処理を含み、
前記制御手段は、前記デジタルカメラにおける前記複数の画像処理毎の処理時間と、前記印刷装置における前記複数の画像処理毎の処理時間とに基づいて画像処理の配分を決定することを特徴とする請求項１９に記載の印刷装置。
【請求項２１】
前記取得手段は、前記コンフィグレーション情報として、処理能力の高低を示すランク情報を取得可能であり、
前記制御手段により、前記コンフィグレーション情報に応じて画像処理の配分を決定するか、前記デジタルカメラに画像処理の配分を決定させるかを、前記ランク情報に基づいて決定する決定手段を更に有することを特徴とする請求項１２乃至１６のいずれか１項に記載の印刷装置。
【請求項２２】
印刷のための画像処理が可能な画像処理手段を有し、印刷のための画像処理が可能な印刷装置と接続されて当該印刷装置により画像を印刷させることが可能なデジタルカメラを制御する制御方法であって、
前記印刷装置との接続に応じて、前記印刷装置とのデータ通信を可能にするためのコンフィグレーション情報を前記印刷装置から取得する取得工程と、
前記取得工程で取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御工程と、
を有することを特徴とするデジタルカメラの制御方法。
【請求項２３】
印刷のための画像処理が可能な画像処理手段を有し、印刷のための画像処理が可能なデジタルカメラと接続されて当該デジタルカメラよりの画像データに基づいて画像を印刷する印刷装置を制御する制御方法であって、
前記デジタルカメラとの接続に応じて、前記デジタルカメラとのデータ通信を可能にするためのコンフィグレーション情報を前記デジタルカメラから取得する取得工程と、
前記取得工程で取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とする印刷装置の制御方法。
【請求項２４】
請求項２２又は２３に記載の制御方法をコンピュータに実行させるためのプログラムを記憶した、コンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理システム及びデジタルカメラと印刷装置及びその制御方法に関し、特にデジタルカメラと印刷装置とを接続した画像処理システム及び、そのデジタルカメラと印刷装置及びその制御方法と記録媒体に関する。
【０００２】
【従来の技術】
近年のデジタル画像処理装置における性能の向上及び低価格化に伴い、情報処理装置を介することなく、デジタルカメラ等の画像入力装置とプリンタ等の画像形成装置とを直接接続した画像処理システムが普及している。
【０００３】
このような画像処理システムにおいて画像データを処理する際には、画像入力装置において入力した画像データを圧縮し、該圧縮データを所定のインタフェースを介して画像形成装置へ転送する。そして、画像形成装置においては受信した圧縮データに対して伸長その他の画像処理を施した後に、印刷出力を行っていた。
【０００４】
【発明が解決しようとする課題】
上記従来の、画像入力装置と画像形成装置とを直結した画像処理システムにおいては、画像入力から印刷終了までに要するトータルの処理時間（以降、スループットと称する）は、主にデータの転送時間と、画像形成装置側における画像処理時間及び印刷処理時間に依存しており、画像入力装置側における処理はトータルスループットにはほとんど影響しない。
【０００５】
これは即ち、画像形成装置が動作している間に、画像入力装置では動作が停止しているという現象が発生することを意味し、システムを構成する機器間におけるパフォーマンスのバランスが悪くなってしまう。
【０００６】
本発明は上述した問題を解決するためになされたものであり、デジタルカメラと印刷装置を接続した画像処理システムにおいて、各装置に対する負荷をバランス良く配分することによって、そのトータルスループットを向上させる画像処理システム及び、そのデジタルカメラと印刷装置及びその制御方法を提供することを第１の目的とする。
【０００７】
【課題を解決するための手段】
上記第１の目的を達成するための一手段として、本発明の画像処理システムは以下の構成を備える。
【０００８】
即ち、印刷のための画像処理が可能な画像処理手段を有するデジタルカメラと、印刷のための画像処理が可能な画像処理手段を有する印刷装置とが接続され、前記印刷装置が前記デジタルカメラの指示に応じて画像を印刷する画像処理システムであって、
前記デジタルカメラと前記印刷装置との接続に応じて、前記デジタルカメラと前記印刷装置との間でデータ通信を可能にするためのコンフィグレーション情報を、接続相手の装置から取得する取得手段と、
前記取得手段により取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とする。
【０００９】
また、本発明のデジタルカメラは、
印刷のための画像処理が可能な画像処理手段を有し、印刷のための画像処理が可能な印刷装置と接続されて当該印刷装置により画像を印刷させることが可能なデジタルカメラであって、
前記印刷装置との接続に応じて、前記印刷装置とのデータ通信を可能にするためのコンフィグレーション情報を前記印刷装置から取得する取得手段と、
前記取得手段により取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とする。
【００１０】
また、本発明の印刷装置は、
印刷のための画像処理が可能な画像処理手段を有し、印刷のための画像処理が可能なデジタルカメラと接続されて当該デジタルカメラよりの画像データに基づいて画像を印刷する印刷装置であって、
前記デジタルカメラとの接続に応じて、前記デジタルカメラとのデータ通信を可能にするためのコンフィグレーション情報を前記デジタルカメラから取得する取得手段と、
前記取得手段により取得した前記コンフィグレーション情報に基づいて、前記デジタルカメラ及び前記印刷装置における画像処理の配分を決定する制御手段と、
を有することを特徴とする。
【００１１】
【発明の実施の形態】
以下、本発明に係る一実施形態について、図面を参照して詳細に説明する。
【００１２】
＜第１実施形態＞
図1は、本発明を適用する画像処理システムの構成を示す図であり、1は画像データを入力するデジタルカメラ、2はデジタルカメラ1から入力された画像データを印刷出力するプリンタである。デジタルカメラ1及びプリンタ2は、IEEE1394により規定されるそれぞれのインタフェース(I/F)部3，4により、ケーブル16を介して直結されている。
【００１３】
デジタルカメラ1は、画像入力処理を統括的に制御するCPU5、該CPU5によって実行される制御用プログラム等が格納されているROM6、一時記憶等を行うRAM7、実際に画像データの入力を行う画像入力部8、該入力された画像データに対して加工処理等を施す画像処理部9、及びI/F部3等により構成される。
【００１４】
一方、プリンタ2は、印刷処理を統括的に制御するCPU10、該CPU10によって実行される御御用プログラム等が格納されているROM11、一時記憶等を行うRAM12、印刷データに対して加工処理等を施すデータ処理部13、加工結果をプリンタ駆動部15へ引き渡す出力部14、実際の印刷処理を行うプリンタ駆動部15、及びI/F部4等により構成される。
【００１５】
上述したデジタルカメラ1及びプリンタ2におけるI/F部3，4は互いに同様の構成からなり、図2にその詳細ブロック構成を示す。
【００１６】
同図において、201は物理層における動作であるデータ転送入出力、アービトレーション、及び送信データ符号のエンコード／デコード、等の機能を有するPHYチップ部（フィジカルレイアチップ）である。202はリンク層における動作である非同期データ転送、アイソクロナスデータ転送サポート、等の機能を有するLINKチップ部（リンクレイアチップ）である。203はI/F部全体を制御するCPU、204は制御用プログラム等が格納されているROM、205は一時記憶等を行うRAM、206はI/F部3，4を、デジタルカメラ1，プリンタ2の内部バスと接続するI/F部である。
【００１７】
本実施形態においては、IEEE1394-1995規格（以下、「IEEE1394規格」と称する）により規定されるインタフェース(以下、「1394シリアルバス」と称する)を使用してデータ通信を行うことを前提とする。従って、予め1394シリアルバスの概要を以下に説明する。尚、IEEE1394規格についての詳細は、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for a High Performance Serial Bus」に記述されている。
【００１８】
【ＩＥＥＥ１３９４の概要】
家庭用ディジタルVTRやディジタルビデオディスク(DVD)の登場に伴い、ビデオデータやオーディオデータ（以下、まとめて「AVデータ」と呼ぶ）など、リアルタイムかつ情報量の多いデータを転送する必要が生じている。AVデータをリアルタイムに、PCへ転送したり、その他のディジタル機器に転送するには、高速のデータ転送能力をもつインタフェイスが必要になる。そういった観点から開発されたインタフェイスが1394シリアルバスである。
【００１９】
図3に1394シリアルバスを用いて構成されるネットワークシステムの例を示す。このシステムは機器AからHを備え、A-B間、A-C間、B-D間、D-E間、C-F間、C-G間、およびC-H間がそれぞれ1394シリアルバス用のツイストペアケーブルで接続されている。これらの機器AからHの例としては、パソコンなどのホストコンピュータ装置、および、コンピュータ周辺機器である。コンピュータ周辺機器としては、ディジタルVCR、DVDプレーヤ、ディジタルスチルカメラ、ハードディスクや光ディスクなどのメディアを用いる記憶装置、CRTやLCDのモニタ、チューナ、イメージスキャナ、フィルムスキャナ、プリンタ、MODEM、ターミナルアダプタ(TA)などコンピュータ周辺機器のすべてが対象になる。なお、プリンタの記録方式は、レーザビームやLEDを用いた電子写真方式、インクジェット方式、インク溶融型や昇華型の熱転写方式、感熱記録方式など、どんな方式でも構わない。
【００２０】
各機器間の接続は、ディジーチェーン方式とノード分岐方式との混在が可能であり、自由度の高い接続を行うことができる。また、各機器はそれぞれIDを有し、互いにIDを認識し合うことによって、1394シリアルバスで接続された範囲において、一つのネットワークを構成している。例えば、各機器間をそれぞれ一本の1394シリアルバス用ケーブルでディジーチェーン接続するだけで、それぞれの機器が中継の役割を担うので、全体として一つのネットワークを構成することができる。
【００２１】
また、1394シリアルバスはPlug and Play機能に対応し、1394シリアルバス用ケーブルを機器に接続するだけで自動的に機器を認識し、接続状況を認識する機能を有している。また、図3に示すようなシステムにおいて、ネットワークからある機器が外されたり、または新たに加えられたときなど、自動的にバスをリセット（それまでのネットワークの構成情報をリセット）して、新たなネットワークを再構築する。この機能によって、その時々のネットワークの構成を常時設定、認識することができる。
【００２２】
また、1394シリアルバスのデータ転送速度は、100/200/400Mbpsが定義されていて、上位の転送速度をもつ機器が下位の転送速度をサポートすることで、互換性が保たれている。データ転送モードとしては、コントロール信号などの非同期データを転送する非同期(Asynchronous)転送モード(ATM)と、リアルタイムなAVデータ等の同期データを転送する同期(Isochronous)転送モードがある。この非同期データと同期データは、各サイクル（通常125μs/サイクル）の中で、サイクル開始を示すサイクルスタートパケット(CSP)の転送に続き、同期データの転送を優先しつつ、サイクル内で混在して転送される。
【００２３】
図4は1394シリアルバスの構成例を示す図である。1394シリアルバスはレイヤ構造で構成されている。図4に示すように、コネクタポート810には、1394シリアルバス用のケーブル813の先端のコネクタが接続される。コネクタポート810の上位には、ハードウェア部800で構成されるフィジカルレイヤ811とリンクレイヤ812がある。ハードウェア部800はインタフェイス用チップで構成され、そのうちフィジカルレイヤ811は符号化やコネクション関連の制御等を行い、リンクレイヤ812はパケット転送やサイクルタイムの制御等を行う。
【００２４】
ファームウェア部801のトランザクションレイヤ814は、転送（トランザクション）すべきデータの管理を行い、Read、Write、Lockの命令を出す。ファームウェア部801のマネージメントレイヤ815は、1394シリアルバスに接続されている各機器の接続状況やIDの管理を行い、ネットワークの構成を管理する。上記のハードウェアとファームウェアまでが、1394シリアルバスの実質的な構成である。
【００２５】
また、ソフトウェア部802のアプリケーションレイヤ816は、利用されるソフトによって異なり、インタフェイス上でどのようにしてデータを転送するかは、プリンタやAV/Cプロトコルなどのプロトコルによって定義される。
【００２６】
図5は1394シリアルバスにおけるアドレス空間の一例を示す図である。1394シリアルバスに接続された各機器（ノード）には必ずノードに固有の64ビットアドレスをもたせる。そして、このアドレスは機器のメモリに格納されていて、自分や相手のノードアドレスを常時認識することで、通信相手を指定したデータ通信を行うことができる。
【００２７】
1394シリアルバスのアドレッシングは、IEEE1212規格に準じた方式であり、アドレス設定は、最初の10ビットがバスの番号の指定用に、次の6ビットがノードIDの指定用に使われる。
【００２８】
それぞれの機器内で使用される48ビットのアドレスについても、20ビットと28ビットに分けられ、256Mバイト単位の構造をもって利用される。最初の20ビットのアドレス空間のうち0〜0xFFFFDはメモリ空間、0xFFFFEはプライベート空間、0xFFFFFはレジスタ空間とそれぞれ呼ばれる。プライベート空間は機器内で自由に利用できるアドレスであり、レジスタ空間にはバスに接続された機器間で共通な情報が置かれ、各機器間のコミュニケーションに使われる。
【００２９】
レジスタ空間の、最初の512バイトにはCSRアーキテクチャのコアになるレジスタ（CSRコア）が、次の512バイトにはシリアルバスのレジスタが、その次の1024バイトにはコンフィグレーションROMが、残りはユニット空間で機器固有のレジスタが、それぞれ置かれる。
【００３０】
一般的には異種バスシステムの設計の簡略化のため、ノードは初期ユニット空間の最初の2048バイトだけを使うべきであり、この結果としてCSRコア、シリアルバスのレジスタ、コンフィグレーションROMおよびユニット空間の最初の2048バイトを合わせて4096バイトで構成することが望ましい。
【００３１】
以上が、1394シリアルバスの概要である。次に、1394シリアルバスの特徴をより詳細に説明する。
【００３２】
【１３９４シリアルバスの詳細】
［1394シリアルバスの電気的仕様］
図6は1394シリアルバス用のケーブルの断面を示す図である。1394シリアルバス用ケーブルには、二組のツイストペア信号線の他に、電源ラインが設けられている。これによって、電源を持たない機器や、故障などにより電圧が低下した機器にも電力の供給が可能になる。電源線により供給される直流電力の電圧は8〜40V、電流は最大電流1.5Aに規定されている。なお、DVケーブルと呼ばれる規格では、電源ラインを省いた四線で構成される。
【００３３】
［DS-Link方式］
図7は1394シリアルバスで採用されている、データ転送方式のDS-Link(Data/Strobe Link)方式を説明するための図である。
【００３４】
DS-Link方式は、高速なシリアルデータ通信に適し、二組の信号線を必要とする。つまり、二組のより対線のうち一組でデータ信号を送り、もう一組でストローブ信号を送る構成になっている。受信側では、このデータ信号と、ストローブ信号との排他的論理和をとることによってクロックを生成することができるという特徴がある。このため、DS-Link方式を用いると、データ信号中にクロック信号を混入させる必要がないので他のシリアルデータ転送方式に比べて転送効率が高い、クロック信号を生成できるので位相ロックドループ(PLL)回路が不要になり、その分コントローラLSIの回路規模を小さくすることができる。さらに、転送すべきデータが無いときにアイドル状態であることを示す情報を送る必要が無いので、各機器のトランシーバ回路をスリープ状態にすることができ、消費電力の低減が図れる、などが挙げられる。
【００３５】
［バスリセットのシーケンス］
1394シリアルバスに接続されている各機器（ノード）にはノードIDが与えられ、ネットワークを構成するノードとして認識される。例えば、ネットワーク機器の接続分離や電源のオン/オフなどによるノード数の増減、つまりネットワーク構成に変化があり、新たなネットワーク構成を認識する必要があるとき、その変化を検知した各ノードはバス上にバスリセット信号を送信して、新たなネットワーク構成を認識するモードに入る。このネットワーク構成の変化の検知は、コネクタポート810においてバイアス電圧の変化を検知することによって行われる。
【００３６】
あるノードからバスリセット信号が送信されると、各ノードのフィジカルレイヤ811はこのバスリセット信号を受けると同時にリンクレイヤ812にバスリセットの発生を伝達し、かつ他のノードにバスリセット信号を伝達する。最終的にすべてのノードがバスリセット信号を受信した後、バスリセットのシーケンスが起動される。なお、バスリセットのシーケンスは、ケーブルが抜き挿しされた場合や、ネットワークの異常等をハードウェアが 検出した場合に起動されるとともに、プロトコルによるホスト制御などフィジカルレイヤ811に直接命令を与えることによっても起動される。また、バスリセットのシーケンスが起動されると、データ転送は一時中断されてバスリセットの間は待たされ、バスリセット終了後、新しいネットワーク構成の基で再開される。
【００３７】
［ノードID決定のシーケンス］
バスリセットの後、各ノードは新しいネットワーク構成を構築するために、各ノードにIDを与える動作に入る。このときの、バスリセットからノードID決定までの一般的なシーケンスを図8から図10に示すフローチャートを用いて説明する。  図8は、バスリセット信号の発生から、ノードIDが決定し、データ転送が行えるようになるまでの一連のシーケンス例を示すフローチャートである。各ノードは、ステップS101でバスリセット信号の発生を常時監視し、バスリセット信号が発生するとステップS102に移り、ネットワーク構成がリセットされた状態において新たなネットワーク構成を得るために、互いに直結されているノード間で親子関係が宣言される。そしてステップS103の判定により、すべてのノード間で親子関係が決ったと判定されるまでステップS102が繰り返される。
【００３８】
親子関係が決定するとステップS104へ進みルート(root)ノードが決定され、ステップS105で各ノードにIDを与えるノードIDの設定作業が行われる。ルートノードから所定のノード順にノードIDの設定が行われ、ステップS106の判定により、すべてのノードにIDが与えられたと判定されるまでステップS105が繰り返される。
【００３９】
ノードIDの設定が終了すると、新しいネットワーク構成がすべてのノードにおいて認識されたことになるのでノード間のデータ転送が行える状態になり、ステップS107でデータ転送が開始されるとともに、シーケンスはステップS101へ戻り、再びバスリセット信号の発生が監視される。
【００４０】
図9はバスリセット信号の監視(S101)からルートノードの決定(S104)までの詳細例を示すフローチャート、図10はノードID設定(S105,S106)の詳細例を示すフローチャートである。
【００４１】
図9において、ステップS201でバスリセット信号の発生が監視され、バスリセット信号が発生すると、ネットワーク構成は一旦リセットされる。次に、ステップS202で、リセットされたネットワーク構成を再認識する作業の第一歩として、各機器はフラグFLをリーフノードであることを示すデータでリセットする。そして、ステップS203で、各機器はポート数、つまり自分に接続されている他ノードの数を調べ、ステップS204で、ステップS203の結果に応じて、これから親子関係の宣言を始めるために、未定義（親子関係が決定されていない）ポートの数を調べる。ここで、未定義ポート数は、バスリセットの直後はポート数に等しいが、親子関係が決定されて行くにしたがって、ステップS204で検知される未定義ポートの数は減少する。
【００４２】
バスリセットの直後に親子関係の宣言を行えるのは実際のリーフノードに限られている。リーフノードであるか否かはステップS203のポート数の確認結果から知ることができ、つまりポート数が「1」であればリーフノードである。リーフノードは、ステップS205で、接続相手のノードに対して親子関係の宣言「自分は子、相手は親」を行い動作を終了する。
【００４３】
一方、ステップS203でポート数が「2以上」であったノード、つまりブランチノードは、バスリセットの直後は「未定義ポート数＞1」であるからステップS206へ進み、フラグFLにブランチノードを示すデータをセットし、ステップS207で他ノードから親子関係が宣言されるのを待つ。他ノードから親子関係が宣言され、それを受けたブランチノードはステップS204に戻り、未定義ポート数を確認するが、もし未定義ポート数が「1」になっていれば残るポートに接続された他ノードに対して、ステップS205で「自分は子、相手は親」の親子関係を宣言することができる。また、未だ未定義ポート数が「2以上」あるブランチノードは、ステップS207で再び他ノードから親子関係が宣言されるのを待つことになる。
【００４４】
何れか一つのブランチノード（または例外的に、子宣言を行えるのにもかかわらず、すばやく動作しなかったリーフノード）の未定義ポート数が「0」になると、ネットワーク全体の親子関係の宣言が終了したことになり、未定義ポート数が「0」になった唯一のノード、つまりすべてノードの親に決まったノードは、ステップS208でフラグFLにルートノードを示すデータをセットし、ステップS209でルートノードとして認識される。
【００４５】
このようにして、バスリセットから、ネットワーク内のすべてのノード間における親子関係の宣言までの手順が終了する。
【００４６】
次に、各ノードにIDを与える手順を説明するが、最初にIDの設定を行うことができるのはリーフノードである。そして、リーフ→ブランチ→ルートの順に若い番号（ノード番号: 0）からIDを設定する。
【００４７】
図10のステップS301で、フラグFLに設定されたデータを基にノードの種類、つまりリーフ、ブランチおよびルートに応じた処理に分岐する。
【００４８】
まずリーフノードの場合は、ステップS302でネットワーク内に存在するリーフノードの数（自然数）を変数Nに設定した後、ステップS303で各リーフノードがルートノードに対して、ノード番号を要求する。この要求が複数ある場合、ルートノードはステップS304でアービトレーションを行い、ステップS305である一つのノードにノード番号を与え、他のノードにはノード番号の取得失敗を示す結果を通知する。
【００４９】
ステップS306の判断により、ノード番号を取得できなかったリーフノードは、再びステップS303でノード番号の要求を繰り返す。一方、ノード番号を取得できたリーフノードは、ステップS307で、取得したノード番号を含むID情報をブロードキャストすることで全ノードに通知する。ID情報のブロードキャストが終わるとステップS308で、リーフ数を表す変数Nがデクリメントされる。そして、ステップS309の判定により変数Nが「0」になるまでステップS303からS308の手順が繰り返され、すべてのリーフノードのID情報がブロードキャストされた後、ステップS310へ進んで、ブランチノードのID設定に移る。
【００５０】
ブランチノードのID設定もリーフノードとほぼ同様に行われる。まず、ステップS310でネットワーク内に存在するブランチノードの数（自然数）を変数Mに設定した後、ステップS311で各ブランチノードがルートノードに対して、ノード番号を要求する。この要求に対してルートノードは、ステップS312でアービトレーションを行い、ステップS313である一つのブランチノードにリーフノードに続く若い番号を与え、ノード番号を取得できなかったブランチノードには取得失敗を示す結果を通知する。
【００５１】
ステップS314の判定により、ノード番号の取得に失敗したことを知ったブランチノードは、再びステップS311でノード番号の要求を繰り返す。一方、ノード番号を取得できたブランチノードはステップS315で、取得したノード番号を含むID情報をブロードキャストすることで全ノードに通知する。ID情報のブロードキャストが終わるとステップS316で、ブランチ数を表す変数Mがデクリメントされる。そして、ステップS317の判定により、変数Mが「0」になるまでステップS311からS316の手順が繰返され、すべてのブランチノードのID情報がブロードキャストされた後、ステップS318へ進んで、ルートノードのID設定に移る。
【００５２】
ここまで終了すると、最終的にIDを取得していないノードはルートノードのみなので、ステップS318では、他のノードに与えていない最も若い番号を自分のノード番号に設定し、ステップS319でルートノードのID情報をブロードキャストする。
【００５３】
以上で、すべてのノードのIDが設定されるまでの手順が終了する。次に、図11に示すネットワーク例を用いてノードID決定のシーケンスの具体的な手順を説明する。
【００５４】
図11に示すネットワークは、ルートであるノードBの下位にはノードAとノードCが直結され、ノードCの下位にはノードDが直結され、ノードDの下位にはノードEとノードFが直結された階層構造を有する。この、階層構造やルートノード、ノードIDを決定する手順は以下のようになる。
【００５５】
バスリセットが発生した後、各ノードの接続状況を認識するために、各ノードの直結されているポート間において、親子関係の宣言がなされる。ここでいう親子とは、階層構造の上位が「親」、下位が「子」という意味である。図11では、バスリセットの後、最初に親子関係を宣言したのはノードAである。前述したように、一つのポートだけが接続されたノード（リーフ）から親子関係の宣言を開始することができる。これは、ポート数が「1」であればネットワークツリーの末端、つまりリーフノードであることが認識され、それらリーフノードの中で最も早く動作を行ったノードから親子関係が決定されて行くことになる。こうして親子関係の宣言を行ったノードのポートが、互いに接続された二つのノードの「子」と設定され、相手ノードのノードが「親」と設定される。こうして、ノードA-B間、ノードE-D間、ノードF-D間で「子-親」の関係が設定される。
【００５６】
さらに、階層が一つ上がって、複数のポートをもつノード、つまりブランチノードのうち他ノードから親子関係の宣言を受けたノードから順次、上位のノードに対して親子関係を宣言する。図11ではまずノードD-E間、D-F間の親子関係が決定された後、ノードDがノードCに対して親子関係を宣言し、その結果、ノードD-C間で「子-親」の関係が設定される。ノードDから親子関係の宣言を受けたノードCは、もう一つのポートに接続されているノードBに対して親子関係を宣言し、これによってノードC-B間で「子-親」の関係が設定される。
【００５７】
このようにして、図11に示すような階層構造が構成され、最終的に接続されているすべてのポートにおいて親となったノードBが、ルートノードと決定される。なお、ルートノードは一つのネットワーク構成中に一つしか存在しない。また、ノードAから親子関係を宣言されたノードBが、速やかに、他のノードに対して親子関係を宣言した場合は、例えばノードCなどの他のノードがルートノードになる可能性もあり得る。すなわち、親子関係の宣言が伝達されるタイミングによっては、どのノードもルートノードになる可能性があり、ネットワーク構成が同一であっても、特定のノードがルートノードになるとは限らない。
【００５８】
ルートノードが決定されると、各ノードIDの決定モードに入る。すべてのノードは、決定した自分のID情報を、他のすべてのノードに通知するプロードキャスト機能をもっている。なお、ID情報は、ノード番号、接続されている位置の情報、もっているポートの数、接続のあるポートの数、各ポートの親子関係の情報などを含むID情報としてブロードキャストされる。
【００５９】
ノード番号の割当ては、前述したようにリーフノードから開始され、順に、ノード番号=0,1,2,…が割当てられる。そしてID情報のブロードキャストによって、そのノード番号は割当て済みであることが認識される。
【００６０】
すべてのリーフノードがノード番号を取得し終わると、次はブランチノードへ移りリーフノードに続くノード番号が割当てられる。リーフノードと同様に、ノード番号が割当てられたブランチノードから順にID情報がブロードキャストされ、最後にルートノードが自己のID情報をブロードキャストする。従って、ルートノードは常に最大のノード番号を所有することになる。
【００６１】
以上のようにして、階層構造全体のID設定が終わり、ネットワーク構成が構築され、バスの初期化作業が完了する。
【００６２】
［ノード管理のための制御情報］
ノード管理を行うためのCSRアーキテクチャの基本的な機能として、図5に示したCSRコアがレジスタ上に存在する。それらレジスタの位置と機能を図12に示すが、図中のオフセットは0xFFFFF0000000からの相対位置である。
【００６３】
CSRアーキテクチャでは、0xFFFFF0000200からシリアルバスに関するレジスタが配置されている。それらのレジスタの位置と機能を図13に示す。
【００６４】
また、0xFFFFF0000800から始まる場所には、シリアルバスのノード資源に関する情報が配置されている。それらのレジスタの位置と機能を図14に示す。
【００６５】
CSRアーキテクチャでは、各ノードの機能を表すためコンフィグレーションROMをもっているが、このROMには最小形式と一般形式があり、0xFFFFF0000400から配置される。最小形式では図15に示すようにベンダIDを表すだけであり、このベンダIDは24ビットで表される全世界で固有の値である。
【００６６】
また、一般形式は図16に示すような形式で、ノードに関する情報をもっているが、この場合、ベンダIDはルートディレクトリ(root_directory)にもつことができる。また、バス情報ブロック(bus info block)とルートリーフ(root leaf)にはベンダIDを含む64ビットの全世界で固有な装置番号をもっている。この装置番号は、バスリセットなどの再構成後に継続してノードを認識するために使用される。
【００６７】
［シリアルバス管理］
1394シリアルバスのプロトコルは、図4に示したように、フィジカルレイヤ811、リンクレイヤ812およびトランザクションレイヤ814から構成されている。この中で、バス管理は、CSRアーキテクチャに基づくノードの制御とバス資源管理のための基本的な機能を提供している。
【００６８】
バス管理を行うノード（以下「バス管理ノード」と呼ぶ）は、同一バス上に唯一存在し、シリアルバス上の他のノードに管理機能を提供するが、この管理機能にはサイクルマスタの制御や、性能の最適化、電源管理、伝送速度管理、構成管理などがある。
【００６９】
バス管理機能は、バスマネージャ、同期（アイソクロノス）リソースマネージャおよびノード制御の三つの機能に大きく別けられる。ノード制御は、CSRによってフィジカルレイヤ811、リンクレイヤ812、トランザクションレイヤ814およびアプリケーションにおけるノード間通信を可能にする管理機能である。同期リソースマネージャは、シリアルバス上で同期型のデータ転送を行うために必要になる管理機能で、同期データの転送帯域幅とチャネル番号の割当てを管理するものである。この管理を行うためにバス管理ノードは、バスの初期化後に、同期リソースマネージャ機能をもつノードの中から動的に選出される。
【００７０】
また、バス上にバス管理ノードが存在しない構成では、電源管理やサイクルマスタの制御のようなバス管理の一部の機能を同期リソースマネージャ機能をもつノードが行う。さらにバスマネージャは、アプリケーションに対してバス制御のインタフェイスを提供するサービスを行う管理機能であり、その制御インタフェイスにはシリアルバス制御要求(SB_CONTROL.request)、シリアルバスイベント制御確認(SB_CONTROL.confirmation)、シリアルバスイベント通知(SB_EVENT.indication)がある。
【００７１】
シリアルバス制御要求は、バスのリセット、バスの初期化、バスの状態情報などを、アプリケーションからバス管理ノードに要求する場合に利用される。シリアルバスイベント制御確認は、シリアルバス制御要求の結果で、バス管理ノードからアプリケーションに確認通知される。シリアルバスイベント通知は、バス管理ノードからアプリケーションに対して、非同期に発生されるイベントを通知するためのものである。
【００７２】
［データ転送プロトコル］
1394シリアルバスのデータ転送は、周期的に送信する必要のある同期データ（同期パケット）と、任意タイミングのデータ送受信が許容される非同期データ（非同期パケット）とが同時に存在し、なおかつ、同期データのリアルタイム性を保証している。データ転送では、転送に先立ってバス使用権を要求し、バスの使用許可を得るためのバスアービトレーションが行われる。
【００７３】
非同期転送においては、送信ノードIDおよび受信ノードIDが転送データと一緒にパケットデータとして送られる。受信ノードは、自分のノードIDを確認してパケットを受取るとアクノリッジ信号を送信ノードに返すことで、一つのトランザクショが完了する。
【００７４】
同期転送においては、送信ノードが伝送速度とともに同期チャネルを要求し、チャネルIDが転送データと一緒にパケットデータとして送られる。受信ノードは、所望するチャネルIDを確認してデータパケットを受取る。必要になるチャネル数と伝送速度はアプリケーションレイヤ816で決定される。
【００７５】
これらのデータ転送プロトコルは、フィジカルレイヤ811、リンクレイヤ812およびトランザクションレイヤ814の三つのレイヤによって定義される。フィジカルレイヤ811は、バスとの物理的・電気的インタフェイス、ノード接続の自動認識、ノード間のバス使用権のバスアービトレーションなどを行う。リンクレイヤ812は、アドレッシング、データチェック、パケット送受信、そして同期転送のためのサイクル制御を行う。トランザクションレイヤ814は、非同期データに関する処理を行う。以下、各レイヤにおける処理について説明する。
【００７６】
［フィジカルレイヤ］
次に、フィジカルレイヤ811におけるバスアービトレーションを説明する。
【００７７】
1394シリアルバスは、データ転送に先立って、必ず、バス使用権のアービトレーションを行う。1394シリアルバスに接続された各機器は、ネットワーク上を転送される信号をそれぞれ中継することによって、ネットワーク内のすべての機器に同信号を伝える論理的なバス型ネットワークを構成するので、パケットの衝突を防ぐ意味でバスアービトレーションが必要である。これによって、ある時間には、一つのノードだけが転送を行うことができる。
【００７８】
図17はバス使用権の要求を説明する図、図18はバス使用の許可を説明する図である。バスアービトレーションが始まると、一つもしくは複数のノードが親ノードに向かって、それぞれバスの使用権を要求する。図17においては、ノードCとノードFがバス使用権を要求している。この要求を受けた親ノード（図17ではノードA）は、さらに親ノードに向かって、バスの使用権を要求することで、ノードFによるバスの使用権の要求を中継する。この要求は最終的に、アービトレーションを行うルートノードに届けられる。
【００７９】
バスの使用権の要求を受けたルートノードは、どのノードにバスの使用権を与えるかを決める。このアービトレーション作業はルートノードのみが行えるものであり、アービトレーションに勝ったノードにはバスの使用許可が与えるられる。図18は、ノードCにバスの使用許可が与えられ、ノードFのバスの使用権の要求は拒否された状態を示している。
【００８０】
ルートノードは、バスアービトレーションに負けたノードに対してはDP(data prefix)パケットを送り、そのバスの使用権の要求が拒否されたことを知らせる。バスアービトレーションに負けたノードのバスの使用権の要求は、次回のバスアービトレーションまで待たされることになる。
【００８１】
以上のようにして、アービトレーションに勝ってバス使用の許可を得たノードは、以降、データ転送を開始することができる。ここで、バスアービトレーションの一連の流れを図19に示すフローチャートにより説明する。
【００８２】
ノードがデータ転送を開始できるためには、バスがアイドル状態であることが必要である。先に開始されたデータ転送が終了し、現在、バスがアイドル状態にあることを確認するためには、各転送モードで個別に設定されている所定のアイドル時間ギャップ長（例えば、サブアクションギャップ）の経過を検出し、所定のギャップ長が検出された場合、各ノードはバスがアイドル状態になったと判断する。各ノードは、ステップS401で、非同期データ、同期データなどそれぞれ転送するデータに応じた所定のギャップ長が検出されたか否かを判断する。所定のギャップ長が検出されない限り、転送を開始するために必要なバス使用権を要求することはできない。
【００８３】
各ノードは、ステップS401で所定のギャップ長が検出されると、ステップS402で転送すべきデータがあるか判断し、ある場合はステップS403でバスの使用権を要求する信号をルートに対して発信する。このバスの使用権の要求を表す信号は、図17に示すように、ネットワーク内の各機器に中継されながら、最終的にルートノードに届けられる。ステップS402で転送するデータがないと判断した場合は、ステップS401に戻る。
【００８４】
ルートノードは、ステップS404でバスの使用権を要求する信号を一つ以上受信したら、ステップS405で使用権を要求したノードの数を調べる。ステップS405の判定により、使用権を要求したノードが一つだったら、そのノードに、直後のバス使用許可が与えられることになる。また、使用権を要求したノードが複数だったら、ステップS406で直後のバス使用許可を与えるノードを一つに絞るアービトレーション作業が行われる。このアービトレーション作業は、毎回同じノードばかりにバスの使用許可を与えるようなことはなく、平等にバスの使用許可を与えるようになっている（フェア・アービトレーション）。
【００８５】
ルートノードの処理は、ステップS407で、ステップS406のアービトレーションに勝った一つのノードと、敗れたその他のノードとに応じて分岐する。アービトレーションに勝った一つのノード、またはバスの使用権を要求したノードが一つの場合は、ステップS408でそのノードに対してバスの使用許可を示す許可号が送られる。この許可信号を受信したノードは、直後に転送すべきデータ（パケット）の転送を開始する(ステップS410)。また、アービトレーションに敗れたノードにはステップS409で、バス使用権の要求が拒否されたことを示すDP(data prefix)パケットが送られる。DPパケットを受取ったノードの処理は、再度、バスの使用権を要求するためにステップS401まで戻る。ステップS410におけるデータの転送が完了したノードの処理もステップS401へ戻る。
【００８６】
［トランザクションレイヤ］
トランザクションの種類には、リードトランザクション、ライトトランザクションおよびロックトランザクションの三種類がある。
【００８７】
リードトランザクションでは、イニシエータ（要求ノード）がターゲット（レスポンスノード）のメモリの特定アドレスからデータを読取る。ライトトランザクションでは、イニシエータがターゲットのメモリの特定アドレスにデータを書込む。また、ロックトランザクションでは、イニシエータからターゲットに参照データと更新データを転送する。その参照データは、ターゲットのアドレスのデータと組み合わされて、ターゲットの特定のアドレスを指示する指定アドレスになる。そして、この指定アドレスのデータが更新データにより更新される。
【００８８】
図20はトランザクションレイヤ814におけるCSRアーキテクチャに基づくリード、ライト、ロックの各コマンドの要求・レスポンスプロトコルを示す図で、図に示す要求、通知、レスポンスおよび確認は、トランザクションレイヤ814でのサービス単位である。
【００８９】
トランザクション要求(TR_DATA.request)はレスポンスノードに対するパケットの転送、トランザクション通知(TR_DATA.indication)はレスポンスノードに要求が届いたことの通知、トランザクションレスポンス(TR_DATA.response)はアクノリッジの送信、トランザクション確認(TR_DATA.confirmation)はアクノリッジの受信である。
【００９０】
［リンクレイヤ］
図21はリンクレイヤ812におけるサービスを示す図で、レスポンスノードに対するパケットの転送を要求するリンク要求(LK_DATA.request)、レスポンスノードにパケット受信を通知するリンク通知(LK_DATA.indication)、レスポンスノードからのアクノリッジ送信のリンクレスポンス(LK_DATA.response)、要求ノードのアクノリッジ送信のリンク確認(LK_DATA.confirmation)のサービス単位に分けられる。
【００９１】
一つのパケット転送プロセスはサブアクションと呼ばれ、非同期サブアクションと同期サブアクションの二つの種類がある。以下では、各サブアクションの動作について説明する。
【００９２】
［非同期サブアクション］
非同期サブアクションは非同期データ転送である。図22は非同期転送における時間的な遷移を示す図である。図22に示す最初のサブアクションギャップは、バスのアイドル状態を示すものである。このアイドル時間が所定値になった時点で、データ転送を希望するノードがバス使用権を要求し、バスアービトレーションが実行される。
【００９３】
バスアービトレーションによりバスの使用が許可されると、次に、データがパケット転送され、このデータを受信したノードは、ACKギャップという短いギャップの後、受信確認用返送コードACKを返してレスポンスするか、レスポンスパケットを返送することでデータ転送が完了する。ACKは4ビットの情報と4ビットのチェックサムからなり、成功、ビジー状態またはペンディング状態であることを示す情報を含み、すぐにデータ送信元のノードに返される。
【００９４】
図23は非同期転送用パケットのフォーマットを示す図である。パケットには、データ部および誤り訂正用のデータCRCのほかにヘッダ部があり、そのヘッダ部には目的ノードID、ソースノードID、転送データ長や各種コードなどが書込まれている。
【００９５】
また、非同期転送は送信ノードから受信ノードへの一対一の通信である。送信元ノードから送り出されたパケットは、ネットワーク中の各ノードに行き渡るが、各ノードは自分宛てのパケット以外は無視するので、宛先に指定されたノードだけがそのパケットを受取ることになる。
【００９６】
［同期サブアクション］
1394シリアルバスの最大の特徴であるともいえるこの同期転送は、とくにAVデータなどのリアルタイム転送を必要とするデータの転送に適している。また、非同期転送が一対一の転送であるのに対し、この非同期転送はブロードキャスト機能によって、一つの送信元ノードから他のすべてのノードへ一様にデータを転送することができる。
【００９７】
図24は同期転送における時間的な遷移を示す図で、同期転送はバス上で一定時間毎に実行され、この時間間隔を同期サイクルと呼ぶ。同期サイクル時間は125μsである。この同期サイクルの開始を示し、各ノードの動作を同期させる役割を担っているのがサイクルスタートパケット(CSP)2000である。CSP2000を送信するのは、サイクルマスタと呼ばれるノードであり、一つ前のサイクル内の転送が終了し、所定のアイドル期間（サブアクションギャップ2001）を経た後、本サイクルの開始を告げるCSP2000を送信する。つまり、このCSP2000が送信される時間間隔が125μSになる。
【００９８】
また、図24にチャネルA、チャネルBおよびチャネルCと示すように、一つの同期サイクル内において複数種のパケットにチャネルIDをそれぞれ与えることにより、それらのパケットを区別して転送することができる。これにより、複数ノード間で、略同時に、リアルタイム転送が可能であり、また、受信ノードは所望するチャネルIDのデータのみを受信すればよい。このチャネルIDは、受信ノードのアドレスなどを表すものではなく、データに対する論理的な番号に過ぎない。従って、送信されたあるパケットは、一つの送信元ノードから他のすべてのノードに行き渡る、つまりブロードキャストされることになる。
【００９９】
同期転送によるパケット送信に先立ち、非同期転送と同様に、バスアービトレーションが行われる。しかし、非同期転送のように一対一の通信ではないので、同期転送には受信確認用の返送コードのACKは存在しない。
【０１００】
また、図24に示したisoギャップ（同期ギャップ）は、同期転送を行う前にバスがアイドル状態であることを確認するために必要なアイドル期間を表している。この所定のアイドル期間を検出したノードは、バスがアイドル状態にあると判断し、同期転送を行いたい場合はバス使用権を要求するのでバスアービトレーションが行われることになる。
【０１０１】
図25は同期転送用のパケットフォーマット例を示す図である。各チャネルに分けられた各種のパケットには、それぞれデータ部および誤り訂正用のデータCRCのほかにヘッダ部があり、そのヘッダ部には図26に示すような、転送データ長、チャネル番号、その他各種コードおよび誤り訂正用のヘッダCRCなどが書込まれている。
【０１０２】
［バス・サイクル］
実際に、1394シリアルバスにおいては、同期転送と非同期転送が混在できる。図27は同期転送と非同期転送が混在するときの転送状態の時間的遷移を示す図である。
【０１０３】
ここで、前述したように同期転送は非同期転送より優先して実行される。その理由は、CSPの後、非同期転送を起動するために必要なアイドル期間のギャップ（サブアクションギャップ）よりも短いギャップ（アイソクロナスギャップ）で、同期転送を起動できるからである。従って、非同期転送より同期転送は優先して実行されることになる。
【０１０４】
図27に示す一般的なバスサイクルにおいて、サイクル＃mのスタート時にCSPがサイクルマスタから各ノードに転送される。CSPによって、各ノードの動作が同期され、所定のアイドル期間（同期ギャップ）を待ってから同期転送を行おうとするノードはバスアービトレーションに参加し、パケット転送に入る。図27ではチャネルe、チャネルsおよびチャネルkが順に同期転送されている。
【０１０５】
このバスアービトレーションからパケット転送までの動作を、与えられているチャネル分繰り返し行った後、サイクル＃mにおける同期転送がすべて終了すると、非同期転送を行うことができるようになる。つまり、アイドル時間が、非同期転送が可能なサブアクションギャップに達することによって、非同期転送を行いたいノードはバスアービトレーションに参加する。ただし、非同期転送が行えるのは、同期転送の終了から、次のCSPを転送すべき時間(cycle synch)までの間に、非同期転送を起動するためのサブアクションギャップが検出された場合に限られる。
【０１０６】
図27に示すサイクル＃mでは、三つのチャネル分の同期転送の後、非同期転送によりACKを含む2パケット（パケット1、パケット2）が転送されている。この非同期パケット2の後、サイクルm+1をスタートすべき時間(cycle synch)に至るので、サイクル＃mにおける転送はこれで終わる。ただし、非同期または同期転送中に次のCSPを送信すべき時間(cycle synch)に至ったら、転送を無理に中断せず、その転送が終了した後にアイドル期間を経て次の同期サイクルのCSPを送信する。すなわち、一つの同期サイクルが125μs以上続いたときは、その延長分、次の同期サイクルは基準の125μsより短縮される。このように同期サイクルは125μsを基準に超過、短縮し得るものである。
【０１０７】
しかし、同期転送はリアルタイム転送を維持するために、必要であれば毎サイクル実行され、非同期転送は同期サイクル時間が短縮されたことによって次以降の同期サイクルに延期されることもある。サイクルマスタは、こういった遅延情報も管理する。
【０１０８】
以上が、本実施形態で用いられるIEEE1394シリアルバスについての説明である。以下、本実施形態における特徴的な制御について説明する。
【調停方法／画像処理配分制御】
上述した図1に示すようなシステム構成において、デジタルカメラ1とプリンタ2とを1対1に接続する際に、上述した構成及び機能を有する1394シリアルバスを使用することで、より高速なデータ通信が可能になる。尚、本実施形態では、デジタルカメラ1とプリンタ2間において、非同期転送を行うとする。また、該システムにおいてデジタルカメラ1はプリンタ2に比べて比較的処理能力に余裕があるとし、従って本実施形態ではデジタルカメラ1に対して、通常はプリンタ2が行うべき画像処理を配分することが可能である。
【０１０９】
更に本実施形態のシステムにおいては、1394シリアルバスにおけるpeer to peerの特徴を利用してデジタルカメラ1とプリンタ2がそれぞれ対等に画像処理の分配制御を行なうことが可能であり、いずれの装置も該制御の主導権を取り得る。
【０１１０】
そこで本実施形態では、前記接続時のバスリセットによって設定された各装置のノードIDに基づき、ノードID=0である側が主導権を得ることを特徴とする。本実施形態においては、デジタルカメラ1側がノードID=0となって分配制御の主導権を得、プリンタ2が行うべき画像処理の配分を制御する例について説明する。
【０１１１】
以下、本実施形態における一連の印刷処理について、まずその概要を説明する。
【０１１２】
本実施形態の画像処理システムにおいて、デジタルカメラ1において画像入力部8で撮影された画像データは、画像処理部9で必要に応じて色補正、データ圧縮等の画像処理が施された後にRAM7へ格納される。そして、該圧縮データはI/F3へ渡されることにより、1394シリアルバスを介してプリンタ2へ転送される。
【０１１３】
一方、I/F部4によって圧縮データを受け取ったプリンタ2では、該圧縮データをデータ処理部13へ送って伸長し、必要に応じてイメージデータ補正、色補正等を行った後、RGB-CMYK変換、ハーフトーン化、及びネイティブコマンド化を行ってプリンタ駆動部15へ送出することにより、記録用紙上への画像形成処理、即ち印刷動作が開始される。
【０１１４】
図28は、上述した本実施形態における一連の印刷処理の詳細を示すフローチャートであり、同図の左側がデジタルカメラ1、右側がプリンタ2における処理を示す。尚、本実施形態においてはその処理シーケンスとして、後述するルートＡ〜Ｅの５種類が実行可能である。
【０１１５】
デジタルカメラ1において被写体画像を入力するためにステップS3101にて画像生成処理を行ない、該生成された画像データをステップS3102で圧縮してRAM7等のメモリへ保存する。
【０１１６】
●ルートＡ
以降、最も一般的なルートであるＡルートの処理について説明する。Ａルートの処理を実行する場合、処理はステップS3103でＡルート側に分岐し、ステップS3104で上記メモリより画像データを読み出してプリンタ2に転送する。
【０１１７】
プリンタ2において、Ａルートより転送されてきた画像データは、ステップS3105で解凍される。一般に、デジタルカメラ等で生成された画像データは、そのメモリ使用容量や転送時間等において有利となるように圧縮ファイルとして処理される。従って、ステップS3105に示すようにプリンタ2においてその伸長処理を行う必要があるが、圧縮処理が施されていない画像データを受信した場合には、その必要がないことはもちろんである。
【０１１８】
次にステップS3106において、必要に応じて画像サイズの変更等を行うイメージデータ補正を行い、ステップS3107で必要に応じて色補正を行う。そしてステップS3108において、得られた画像データをデジタルカメラ1における入力形式であるRGB形式から、プリンタ2における画像形成に適した形式であるCMYK形式に変換する画像変換処理を行なう。そしてステップS3120において、該CMYK形式の画像データに基づいて、実際の印刷動作を実行する。
【０１１９】
●ルートＢ
次に、Ａルートとは異なる処理シーケンスであるＢルートについて説明する。Ｂルートの処理を実行する場合、デジタルカメラ1において、ステップS3103でＡルート側でない側、即ちステップS3109側に分岐し、上記メモリより圧縮された画像データを読み出して伸長する。その後、ステップS3110でＢルート側に分岐し、即ちステップS3111において、伸長された画像データをプリンタ2へ転送する。その後、プリンタ2においては転送されてきた画像データに対して上述したステップS3106における補正処理を行い、以降はＡルートと同様の処理を行う。
【０１２０】
●ルートＣ
同様にＣルートの処理を実行する場合、デジタルカメラ1において、ステップS3110ではＢルート側でない側、即ちステップS3112側に分岐し、必要に応じたイメージデータ補正を行う。その後、ステップS3113でＣルート側に分岐し、即ちステップS3114において、補正された画像データをプリンタ2へ転送する。その後、プリンタ2においては転送されてきた画像データに対して上述したステップS3107における色補正処理を行い、以降はＡルートと同様の処理を行う。
【０１２１】
●ルートＤ
同様にＤルートの処理を実行する場合、デジタルカメラ1において、ステップS3113ではＣルート側でない側、即ちステップS3115側に分岐し、必要に応じた色補正を行う。その後、ステップS3116でＤルート側に分岐し、即ちステップS3117において、色補正された画像データをプリンタ2へ転送する。その後、プリンタ2においては転送されてきた画像データに対して上述したステップS3108における画像変換処理を行い、以降はＡルートと同様の処理を行う。
【０１２２】
●ルートＥ
同様にＥルートの処理を実行する場合、デジタルカメラ1において、ステップS3116ではＤルート側でない側、即ちステップS3118側に分岐し、RGB形式からCMYK形式への画像変換を行う。そして、ステップS3119において該変換された画像データをプリンタ2へ転送する。プリンタ2においては、転送されてきた画像データに基づいて、上述したステップS3120における印刷動作を実行する。
【０１２３】
尚、図28に示したルートＢ〜Ｅにおいては、ステップS3109の伸長処理後に転送処理（S3111，S3114，S3117，S3119）が行われるため、ルートＡの転送処理（S3104）と比べて転送すべきデータ量が増加する。従って、転送時間はルートＡが最も短くなる。
【０１２４】
図28のフローチャートに示したように、本実施形態の画像処理は、ルートＡ〜Ｅのいずれかを選択的に実行する。以下、本実施形態におけるルート選択方法について詳細に説明する。
【０１２５】
●ルート選択処理
図29は、本実施形態におけるルート選択処理を示すフローチャートである。尚、この選択処理は、上述した調停によって主導権を得たデジタルカメラ1側において、CPU5の制御に基づいて実行される。
【０１２６】
印刷処理が開始されると、まずステップS3201においてプリンタ2のConfiguration ROMを読み出し、その内容によりプリンタ機種を特定する。尚、Configuration ROMの読み出しは、装置の接続時にすでに行われているため、その内容がメモリ等に保存されていれば該保存されている内容を読み出せば良い。
【０１２７】
次にステップS3202において、デジタルカメラ1がステップＳ3201で特定したプリンタ機種に関する情報を保有しているか否かを判定し、持っていればステップS3203へ、持っていなければステップS3204へ処理が分岐する。
【０１２８】
プリンタ機種情報を持っていない場合、ステップS3204において、まずプリンタ2に対して処理時間算出要求を発行する。この要求は1394シリアルバス上の非同期転送によって行われる。そして、該結果の返信を依頼して算出結果を受け取った後、さらにデジタルカメラ1における各処理毎の処理時間を算出する。その後、処理はステップS3205へ進む。尚、プリンタ2においては上述した処理時間算出要求を受け取ると、図28で説明したプリンタ2における各処理毎の処理時間を、印刷対象画像に応じて算出する。そして算出が終了すると、各処理時間をデジタルカメラ1へ返信する。
【０１２９】
一方、デジタルカメラ1がプリンタ機種情報を持っている場合、ステップS3203において、図28で説明したデジタルカメラ1における各処理毎の処理時間を印刷対象画像に応じて算出した後、ステップS3205に進む。
【０１３０】
ステップS3205においては、図28に示したルートＡ〜Ｅについて、ルート毎の総処理時間を算出する。そしてステップS3206において、最小総処理時間となるルートを選定し、ステップS3207で該選定結果をプリンタ2へ通知して印刷準備を開始させる。
【０１３１】
以上の様にして選定された最小処理時間となるルートにより、図28に示す画像処理及び転送処理が開始される。
【０１３２】
尚、上述したステップS3205におけるルート別総処理時間の算出は、例えば図28に示す各処理を画像データのブロック単位で行うとした場合、1ブロック内の全データについてある処理が終了した後に、該ブロックが次の処理に引き渡されるとすれば、その総処理時間は単純な加算によって求められる。この場合のルート選定は、各機器におけるCPU等の処理能力と、転送処理速度とに大きく左右されることになる。
【０１３３】
しかしながら、実際には、画像データの1ブロックを更に分割した小ブロック単位で各処理が実行されることがほとんどである。従って、画像データの1ブロックについてある処理を実行する場合、該処理が終了した小ブロック単位に、その処理結果が次の処理へと随時送出される。これにより、次の処理の内容によっては小ブロック単位での即時処理が可能となるため、２処理間における並列処理が行われることによって、処理時間が短縮される。従って実際のルート選定は単純な加算のみによらず、更に複雑な演算が必要となる。
【０１３４】
例えば図28に示すＣルートにおいては、ステップS3112のイメージデータ補正処理と、ステップS3114の転送処理とを並列して行うことが可能である。従って、Ｃルートに関する総処理時間は、各処理の所要時間の総計から並列処理時間を差し引いたものに相当し、即ち、単純な処理時間の合算よりも並列処理時間分が短縮される。
【０１３５】
同様に、ステップS3115の色補正処理とステップS3117の転送処理、又はステップS3118の画像変換とステップS3119の転送処理が、並列に実行することが可能であり、この並列処理によって総処理時間が短縮される。従って、他のルートに関しても同様に、図29に示したステップS3205においては並列処理時間を考慮した総処理時間を算出する。
【０１３６】
上述したようにして総処理時間が算出されることを考慮すると、各機器の処理能力の大きさがルート選定に対して以下のように作用することが分かる。
【０１３７】
▲１▼デジタルカメラ1の処理能力が低い場合はＡルートが有利である。
【０１３８】
▲２▼転送処理能力が低い場合はやはりＡルートが有利である。
【０１３９】
▲３▼デジタルカメラ1の処理能力が高く、且つプリンタ2の処理能力が極端に低い場合はＥルートが有利である。
【０１４０】
▲４▼デジタルカメラ1とプリンタ2の処理能力が同等である上記以外の場合は、その他の条件（例えば画像の大きさ等）に左右される。
【０１４１】
特に本実施形態においては、機器間における通信に1394シリアルバスを使用しているため、その転送処理能力が高い。従って、上記▲２▼の「転送処理能力が低い場合」は対象外となる。また、デジタルカメラ1が比較的処理能力があることを前提としているため上記▲１▼の場合も除外され、従って上記▲３▼又は▲４▼の場合からの選択となる。即ち、Ａルート以外のルートが選定される可能性が高く、従って、比較的処理能力のあるデジタルカメラ1側に対する画像処理の配分が増え、プリンタ2への負荷の集中を避けることができる。
【０１４２】
以上説明したように本実施形態によれば、デジタルカメラとプリンタとを1394シリアルバスで直結することによって画像データの高速転送を可能とした画像処理システムにおいて、ノードIDに基づく調停によって、比較的処理能力のあるデジタルカメラが選定され、画像処理分配制御の主導権を得ることによって、通常はプリンタにおいて行われる画像処理をデジタルカメラに最適に配分するための制御を、該デジタルカメラにおいて行う。これにより、該システムにおける画像印刷処理に要する総時間の短縮が望める。
【０１４３】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。
【０１４４】
第２実施形態における画像処理システムは上述した第１実施形態と同様の構成からなり、やはりデジタルカメラ1とプリンタ2間において非同期転送を行うため、詳細な説明を省略する。ただし、第２実施形態のシステムにおいては第１実施形態とは逆に、プリンタ2はデジタルカメラ1に比べて比較的処理能力に余裕がある点が異なる。従って第２実施形態ではプリンタ2に対する画像処理配分を増やすことが可能である。
【０１４５】
第２実施形態も第１実施形態と同様に、1394シリアルバスにおけるpeer to peerの特徴を利用してデジタルカメラ1とプリンタ2がそれぞれ対等に画像処理の分配制御を行なうことが可能であり、いずれの装置も該制御の主導権を取り得る。
【０１４６】
そこで第２実施形態では、デジタルカメラ1におけるpeer to peerの接続相手が比較的処理能力のあるプリンタ2であった場合に、該プリンタ2の状況に応じた画像処理分配を可能とするために、プリンタ2の主導による分配制御を行うことを特徴とする。
【０１４７】
第２実施形態の画像処理システムにおいても、上述した第１実施形態において図28に示したルートＡ〜Ｅの５種類のシーケンスが実行可能であり、そのいずれかを選択して画像処理を実行する。以下、第２実施形態におけるルート選択方法について詳細に説明する。
【０１４８】
図30は、第２実施形態におけるルート選択処理を示すフローチャートである。尚、第２実施形態の画像処理システムを構成する装置は、システム電源投入時或いはシステム接続時のバスリセット処理によって互いのConfiguration ROM情報を読み込むことによって、相手装置の種別を判断することができる。相手装置が”プリンタ”であれば従属処理を開始し、自身が”プリンタ”であればシステム制御の主導権を得る。具体的には、デジタルカメラ1は、相手装置が”プリンタ”であると判断して従属処理を開始し、プリンタ2がシステムにおける画像処理分配制御の主導権を得ることによって、CPU10の制御に基づいて上述したルート選択処理が実行される。
【０１４９】
印刷処理が開始されると、まずステップS3301においてデジタルカメラ1のConfiguration ROMを読み出し、その内容によりデジタルカメラの機種を特定する。尚、Configuration ROMの読み出しは、装置の接続時にすでに行われているため、その内容がメモリ等に保存されていれば該保存されている内容を読み出せば良い。
【０１５０】
次にステップS3302において、プリンタ2がステップＳ3301で特定したデジタルカメラ機種に関する情報を保有しているか否かを判定し、持っていればステップS3303へ、持っていなければステップS3304へ処理が分岐する。
【０１５１】
カメラ機種情報を持っていない場合、ステップS3304において、まずデジタルカメラ1に対して処理時間算出要求を発行する。この要求は1394シリアルバス上の非同期転送によって行われる。そして、該結果の返信を依頼して算出結果を受け取った後、さらにプリンタ2における処理時間を算出する。その後、処理はステップS3305へ進む。尚、デジタルカメラ1においては上述した処理時間算出要求を受け取ると、図28で説明した各ルート毎に、デジタルカメラ1における処理時間を印刷対象画像に応じて算出する。そして算出が終了すると、各ルート毎の処理時間をプリンタ2へ返信する。
【０１５２】
一方、プリンタ2がデジタルカメラ機種情報を持っている場合、ステップS3303において、図28で説明したプリンタ2における各ルート毎の処理時間を印刷対象画像に応じて算出した後、ステップS3305に進む。
【０１５３】
ステップS3305においては、図28に示したルートＡ〜Ｅについて、ルート毎の総処理時間を算出する。そしてステップS3306において最小総処理時間となるルートを選定し、ステップS3207で該選定結果をデジタルカメラ1へ通知して印刷準備を開始する。
【０１５４】
以上の様にして選定された最小処理時間となるルートにより、図28に示す画像処理及び転送処理が開始される。
【０１５５】
尚、第２実施形態のステップS3305におけるルート別総処理時間の算出も、第１実施形態と同様に並列処理時間を考慮する必要がある。すると、第２実施形態においても同様に、各機器の処理能力の大きさがルート選定に対して上記▲１▼〜▲４▼のように作用することが分かる。
【０１５６】
第２実施形態においても、機器間における通信に1394シリアルバスを使用しているためにその転送処理能力が高く、上記▲２▼の「転送処理能力が低い場合」は対象外となる。また、第２実施形態においてはプリンタ2が比較的処理能力があることを前提としているため、上記▲３▼の「プリンタ2の処理能力が極端に低い場合」場合も除外され、従って上記▲１▼の「デジタルカメラ1の処理能力が低い場合」又は▲４▼の「両装置の処理能力が同等である場合」のいずれかの選択となる。従って、Ａルートが選定される可能性が高く、従って、比較的処理能力のあるプリンタ2に対する画像処理の配分が増える。
【０１５７】
以上説明したように第２実施形態によれば、デジタルカメラとプリンタとを1394シリアルバスで直結することによって画像データの高速転送を可能とした画像処理システムにおいて、比較的処理能力のあるプリンタによって、必要な画像処理を機器間に最適に配分することにより、該システムにおける画像印刷処理に要する総時間の短縮が望める。
【０１５８】
＜第２実施形態の変形例＞
第２実施形態においては、プリンタ2が処理分配制御の主導権を得ることによって、プリンタ2側における配分を単純に増やす例について説明したが、プリンタ2における処理状況に応じて、処理分配を更に効率的に行うことも可能である。
【０１５９】
図28に示したフローチャートにおいては、上述したようにＡルートが選定される可能性が高い。しかしながら、第２実施形態においては1394シリアルバスを用いた高速転送を行っているため、データ転送処理は瞬時に終了する。例えば、転送速度が400Mbps、画像データが100Mbitである場合、その転送時間は、実際には他の処理も実行されるため若干異なるものの、単純計算でも0.25秒程度となる。従って、データ転送終了後も、プリンタ2において該転送データの印刷処理が終了するまでに相応の時間を要する。本変形例では、この印刷終了までの空き時間を有効に利用することを特徴とする。
【０１６０】
本変形例では、デジタルカメラ1においてデータ転送終了後に、プリンタ2における印刷処理と並行して、転送したデータと同じ画像データに対して画像処理を実行する。そして処理後の画像データを、プリンタ2のノードの1394バスプライベートメモリ空間に実装されたRAM205に格納するために、再度プリンタ2へ転送する。即ち、プリンタ2及びデジタルカメラ1の双方で画像処理された同等のデータは、一方は印刷処理用に活用され、もう一方はプリンタ2内のプライベートメモリに格納される。
【０１６１】
具体的には、データ転送終了後、デジタルカメラ1は転送データと同じ画像データに対して、図28に示すステップS3109〜S3118までの画像処理（転送処理を除く）を適宜施し、該処理後の画像データをルートＢ〜Ｅのいずれかによってプリンタ2へ転送し、プリンタ2内のプライベートメモリ空間へ格納する。尚、デジタルカメラ1における処理後のデータをいずれのルートによって転送するか、即ち、画像処理をどこまで施すかは、プリンタ2の状況に基づいて制御される。
【０１６２】
図31は、プリンタ2における印刷動作開始後の処理を示すフローチャートである。本処理はもちろん、プリンタ2内のCPU10によって制御される。
【０１６３】
印刷動作が開始されると、まずステップS3801においてプリンタ2内で処理された画像データが、例えばRAM12又はデータ処理部13内の不図示の画像メモリより読み出され、ステップS3802でプリンタ駆動部15による印刷動作が実行される。そしてステップS3803で全ての印刷動作が終了したかを判断し、終了したのであればステップS3804で印刷処理を終了する。
【０１６４】
一方、印刷動作が終了していなければステップS3805へ進み、上記画像メモリ内にプリンタ2で処理された画像データがあるか否かを判断し、あればステップS3802へ戻って印刷動作を続ける。無ければステップS3806に進み、プリンタ2内に実装されたプライベートメモリ（RAM205）内に処理済みの画像データがあるか否かを判断する。あれば該画像データについて、ステップS3802で印刷動作を実行する。無ければステップS3805へ戻り、印刷対象データ待ちの状態に入る。
【０１６５】
尚、本変形例においては、デジタルカメラ1において処理された画像データをプリンタ2内のプライベートメモリに格納する例について説明したが、これをデジタルカメラ1内のプライベートメモリを使用するようにしても、1394シリアルバスによってプリンタ2側からの読み出しが可能であるため、図31のフローチャートと同様の制御が実行できる。
【０１６６】
以上説明したように第２実施形態の変形例によれば、同じデータに対する画像処理をデジタルカメラとプリンタの双方で行い、デジタルカメラで処理されたデータを1394シリアルバス空間に実装されたメモリに格納することにより、比較的処理能力のあるプリンタにおいて、印刷対象の画像データとして、デジタルカメラとプリンタのいずれかによる画像処理結果を随時選択できる。
【０１６７】
これにより、デジタルカメラとプリンタとを1394シリアルバスで直結することによって画像データの高速転送を可能とした画像処理システムにおいて、画像印刷処理に要する総時間の短縮が望める。
【０１６８】
＜第３実施形態＞
以下、本発明に係る第３実施形態について説明する。
【０１６９】
第３実施形態における画像処理システムは上述した第１実施形態と同様の構成からなり、やはりデジタルカメラ1とプリンタ2間において非同期転送を行うため、詳細な説明を省略する。
【０１７０】
上述した第１実施形態においては、システムを構成する機器間における最適な画像処理配分をデジタルカメラ1側で制御する例について説明し、第２実施形態においては逆にプリンタ2側で制御する例について説明した。そこで第３実施形態においては、機器間における最適な画像処理配分を、どちらの機器において制御するかを決定する方法について説明する。
【０１７１】
まず、該決定方法の概要を示す。、デジタルカメラ1，プリンタ2の双方ともに、接続可能である相手機種の情報を有していれば、該相手機種情報中に、該相手機種の処理能力が自身の処理能力よりも高いか或いは低いかを示すランク情報を予め付加しておくとする。そして該ランク情報に基づいて、自身機器の処理能力の方が高ければ自身機器において画像処理配分を制御するとし、逆に自身機器の処理能力の方が低ければ相手機器に該制御を任せるとする。
【０１７２】
図32は、システムを構成する各機器に共通する、画像処理配分の制御機器決定処理を示すフローチャートである。即ち、該フローチャートに示す処理は、デジタルカメラ1，プリンタ2の双方において実行される。
【０１７３】
まずステップS3401において、接続時の相手機器におけるConfiguration ROMの内容を読み込む。そしてステップS3402において、該Configuration ROMの接続可能機種情報中に、上記ランク情報が付加されているか否かを判定し、付加されているのであればステップS3403に進んで、自身機器に対応する該ランク情報を参照することによって、相手機器の処理能力が自身機器よりも高いか否かを判断する。
【０１７４】
ステップS3403では、相手機器の処理能力が自身機器よりも低ければステップS3404に進んで自身機器が主導権を握るとし、相手装置の処理能力が自身機器よりも高ければステップS3405に進んで自身機器は待ち状態とし、その間に相手機器が主導権を握る。これにより即ち、画像処理配分をどちらの機器において制御すべきかが適切に決定される。
【０１７５】
このように画像処理配分を主導する機器が決定すれば、ステップS3406において第１及び第２実施形態で説明した画像処理を実行する。
【０１７６】
一方、ステップS3402において、該Configuration ROMが機種情報又はランク情報を保有していない場合、ステップS3407に進んで、相手機器側における画像処理配分制御機器の判定結果を通知するように、相手機器に要求する。この要求は1394シリアルバス上の非同期転送によって行われる。そして、該通知を受け取ることにより、ステップS3403に進んで、画像処理配分をどちらの機器が主導すべきであるかを判断することができる。
【０１７７】
尚、双方の装置共に、そのConfiguration ROMが機種情報又はランク情報を保有していない場合、画像処理配分制御の宣言を先に行った機器が、該制御を行うとする。また、互いに所定のデータに基づいて処理能力を算出し、これを比較することによって、主導権を判断しても良い。
【０１７８】
以上説明したように第３実施形態によれば、デジタルカメラとプリンタとを1394シリアルバスで直結することによって画像データの高速転送を可能とした画像処理システムにおいて、必要な画像処理を機器間に最適に配分する制御を、デジタルカメラとプリンタのいずれで行うかを適切に決定することができ、該システムにおける画像印刷処理に要する総時間の短縮が望める。
【０１７９】
尚、上述した各実施形態においてはIEEE1934に規定されるシリアルインタフェイスを用いてネットワークを構成する例を説明したが、本発明はこれに限定されるものではなく、Universal Serial Bus(USB)と呼ばれるシリアルインタフェイスなど、任意のシリアルインタフェイスを用いて構成されるネットワークにも適用することができる。
【０１８０】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１８１】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した図29乃至図32に示すフローチャートに対応するプログラムコードが格納されることになる。
【０１８４】
【発明の効果】
以上説明したように発明によれば、デジタルカメラと印刷装置を接続した画像処理システムにおいて、各装置に対する負荷をバランス良く配分することによって、トータルスループットを向上させることができる。
【図面の簡単な説明】
【図１】本発明を適用する画像処理システムの構成を示すブロック図、
【図２】本実施形態におけるIEEE1394I/F部の詳細構成を示すブロック図、
【図３】  1394シリアルバスによるネットワークの構成例を示す図、
【図４】  1394シリアルバスの構成例を示す図、
【図５】  1394シリアルバスにおけるアドレス空間の一例を示す図、
【図６】  1394シリアルバス用のケーブルの断面を示す図、
【図７】  1394シリアルバスで採用されている、データ転送方式のDS-Link方式を説明するための図、
【図８】バスリセット信号の発生から、ノードIDが決定し、データ転送が行えるようになるまでの一連のシーケンス例を示すフローチャート、
【図９】バスリセット信号の監視からルートノードの決定までの詳細例を示すフローチャート、
【図１０】ノードID設定の詳細例を示すフローチャート、
【図１１】  1394シリアルバスのネットワーク動作例を示す図、
【図１２】  1394シリアルバスのCSRアーキテクチャの機能を示す図、
【図１３】  1394シリアルバスに関するレジスタを示す図、
【図１４】  1394シリアルバスのノード資源に関するレジスタを示す図、
【図１５】  1394シリアルバスのコンフィギュレーションROMの最小形式を示す図、
【図１６】  1394シリアルバスのコンフィギュレーションROMの一般形式を示す図、
【図１７】バス使用権の要求を説明する図、
【図１８】バス使用の許可を説明する図、
【図１９】1394シリアルバスにおけるアービトレーションの流れを示すフローチャート、
【図２０】トランザクションレイヤにおけるCSRアーキテクチャに基づくリード、ライト、ロックの各コマンドの要求・レスポンスプロトコルを示す図、
【図２１】リンクレイヤにおけるサービスを示す図、
【図２２】非同期転送における時間的な遷移を示す図、
【図２３】非同期転送用パケットのフォーマットを示す図、
【図２４】同期転送における時間的な遷移を示す図、
【図２５】同期転送用のパケットフォーマット例を示す図、
【図２６】  1394シリアルバスにおける同期転送のパケットフォーマットのフィールドの詳細を示す図、
【図２７】同期転送と非同期転送が混在するときの転送状態の時間的遷移を示す図、
【図２８】本実施形態における一連の印刷処理の詳細を示すフローチャート、
【図２９】本実施形態におけるルート選択処理を示すフローチャート、
【図３０】第２実施形態におけるルート選択処理を示すフローチャート、
【図３１】第２実施形態の変形例における画像処理データの選択制御処理を示すフローチャート、
【図３２】第３実施形態における画像処理配分の制御機器決定処理を示すフローチャート、である。
【符号の説明】
１  デジタルカメラ
２  プリンタ
３，４  インタフェース部
５，１０  CPU
６，１１  ROM
７，１２  RAM
８  画像入力部
９  画像処理部
１３  データ処理部
１５  プリンタ駆動部
１６  ケーブル
【図１】
0004463952.tif 000002
【図２】
0004463952.tif 000003
【図３】
0004463952.tif 000004
【図４】
0004463952.tif 000005
【図５】
0004463952.tif 000006
【図６】
0004463952.tif 000007
【図７】
0004463952.tif 000008
【図８】
0004463952.tif 000009
【図９】
0004463952.tif 000010
【図１０】
0004463952.tif 000011
【図１１】
0004463952.tif 000012
【図１２】
0004463952.tif 000013
【図１３】
0004463952.tif 000014
【図１４】
0004463952.tif 000015
【図１５】
0004463952.tif 000016
【図１６】
0004463952.tif 000017
【図１７】
0004463952.tif 000018
【図１８】
0004463952.tif 000019
【図１９】
0004463952.tif 000020
【図２０】
0004463952.tif 000021
【図２１】
0004463952.tif 000022
【図２２】
0004463952.tif 000023
【図２３】
0004463952.tif 000024
【図２４】
0004463952.tif 000025
【図２５】
0004463952.tif 000026
【図２６】
0004463952.tif 000027
【図２７】
0004463952.tif 000028
【図２８】
0004463952.tif 000029
【図２９】
0004463952.tif 000030
【図３０】
0004463952.tif 000031
【図３１】
0004463952.tif 000032
【図３２】
0004463952.tif 000033