以下、本発明を実施するための最良の形態を、図面を参照しながら説明する。
図1は、本発明に係る撮像制御装置を適用したシステム環境を示す図であり、本システム環境は、IEEE(The Institute of Electrical and Electronic Engineers,Inc)1394のシリアルバスケーブル(以下、1394バスケーブルという)Cで各機器が接続されている。
図1に示した101はTVモニタ装置、102はTVモニタ装置101と1394バスケーブルCで接続されたAVアンプであり、1394バスケーブルCで接続された種々の映像音声機器の中から特定の機器を選択し、その選択された機器からの映像音声データをTVモニタ101に転送する。
103はAVアンプ102と1394バスケーブルCで接続されているパソコン、104はパソコン103と1394バスケーブルCで接続されているプリンタである。パソコン103は、1394バスケーブルCで接続された種々の映像機器からの画像を取込んで、プリンタ104によりプリントアウトすることも可能である。
105はプリンタ104と1394バスケーブルCで接続されている第1のデジタルVTR、106は第1のデジタルVTRと1394バスケーブルCで接続されている第2のデジタルVTR、107は第2のデジタルVTRと1394バスケーブルCで接続されているDVDプレーヤ、108はDVDプレーヤ107と1394バスケーブルCで接続されているCDプレーヤである。
なお、図1のネットワークは一例であり、TVモニタ101やCDプレーヤ108の先にさらに他の機器が接続された構成であってもよい。また、1394バスケーブルCで接続されている機器は、ハードディスク等の外部記憶装置や第2のCDプレーヤ,第2のDVDプレーヤ等でもよい。
ここで、本発明では、各機器間を接続するデジタルI/Fとして、IEEE1394シリアルバスを用いるので、IEEE1394シリアルバスについて予め詳細に説明しておく。
[IEEE1394の技術の概要]
家庭用デジタルVTRやDVDの登場に伴なって、ビデオデータやオーディオデータなどの大量のデータをリアルタイムに転送する必要性が高まっている。このようにビデオデータやオーディオデータをリアルタイムで転送して、パソコンに取込んだり、その他のデジタル機器に転送したりするには、高速データ転送可能なインタフェースが必要になってくる。このような観点から開発されたインタフェースがIEEE1394−1995(ハイパフォーマンス・シリアルバス:1394シリアルバス)である。
図2は、1394シリアルバスを用いて構成されるネットワーク・システムの例を示している。このシステムでは、機器A,B,C,D,E,F,G,Hを備えており、A−B間、A−C間、B−D間、D−E間、C−F間、C−G間、及びC−H間が、それぞれ1394シリアルバスのツイスト・ペア・ケーブルで接続されている。これら機器A〜Hは、具体的には、パソコン、デジタルVTR、DVD、デジタルカメラ、ハードディスク、モニタ等により構成される。
各機器間の接続方式は、ディジーチェーン方式とノード分岐方式とを混在可能としたものであり、自由度の高い接続が可能である。また、各機器は各自固有のIDを有し、互いにIDを認識し合うことによって1394シリアルバスで接続された範囲において、1つのネットワークを構成している。各デジタル機器間をそれぞれ1本の1394シリアルバスケーブルで順次接続するだけで、各機器が中継機器としての役割を果たし、全体として1つのネットワークを構成するものである。また、1394シリアルバスの特徴でもあるPlug&Play機能により、ケーブルを機器に接続した時点で自動的に機器の認識や接続状況などを認識するようになっている。
また、図2に示したようなシステムにおいて、ネットワークからある機器が削除されたり、または新たに追加されたりしたときは、自動的にバスリセットを行い、それまでのネットワーク構成をリセットした後に、新たなネットワークを再構築する。この機能によって、その時々のネットワークの構成を常時設定、認識することができる。
また、データ転送速度は、100Mbps、200Mbps、400Mbpsの3種の転送速度を備えており、高速の転送速度を持つ機器が低速の転送速度をサポートして、互換をとるようになっている。データ転送モードとしては、コントロール信号などの非同期データ(Asynchronousデータ:以下、Asyncデータという)を転送するAsynchronous転送モード、リアルタイムなビデオデータやオーディオデータ等の同期データ(Isochronousデータ:以下、Isoデータという)を転送するIsochronous転送モードがある。このAsyncデータとIsoデータは、各サイクル(通常1サイクル125μS)の中において、サイクル開始を示すサイクル・スタート・パケット(CSP)の転送に続き、Isoデータの転送を優先しつつサイクル内で混在して転送される。
次に、図3に1394シリアルバスの構成要素を示す。図3に示したように、1394シリアルバスは、全体としてレイヤ(階層)構造で構成されている。最もハード的なのが1394シリアルバスケーブルCであり、そのケーブルCのコネクタが接続されるコネクタポートがあり、その上位にハードウェアとしてのフィジカルレイヤとリンクレイヤがある。ハードウェア部は実質的なインターフェイスチップの部分であり、そのうちフィジカルレイヤは符号化やコネクタ関連の制御等を行い、リンクレイヤはパケット転送やサイクルタイムの制御等を行なう。
ファームウェア部のトランザクションレイヤは、転送(トランザクション)すベきデータの管理を行ない、リード/ライトの命令を出す。ファームウェア部のシリアルバスマネージメントは、ネットワークの構成を管理する部分であり、接続されている各機器の接続状祝やIDの管理を行なう。これらハードウェアとファームウェアまでが、実質上の1394シリアルバスの構成である。また、ソフトウェア部のアプリケーションレイヤは使用するソフトによって異なり、インタフェース上にどのようにデータを載せるかを規定する部分であり、AVプロトコルなどのプロトコルによって規定されている。
次に、1394シリアルバスにおけるアドレス空間を図4に示す。1394シリアルバスに接続された各機器(ノード)には、64ビットの各ノード固有のアドレスを必ず持たせておく。そして、このアドレスをROMに格納しておくことで、自分や相手のノードアドレスを常時認識でき、相手を指定した通信も行なえる。1394シリアルバスのアドレッシングは、IEEE1212規格に準じた方式であり、アドレス設定は、最初の10ビットはバスの番号の指定用に利用され、次の6ビットはノード・ID番号の指定用に使用される。残りの48ビットは機器に与えられたアドレス幅になり、それぞれ固有のアドレス空間として使用できる。この固有のアドレス空間のうちの最後の28ビットには、固有データの領域として、各機器の識別符号や使用条件の指定情報などをセットする。
次に、1394シリアルバスの特徴的な技術を、より詳細に説明する。
[1394シリアルバスの電気的仕様]
図5は、1394シリアルバスケーブルCの断面図である。1394シリアルバスでは、接続ケーブル内に2組のツイストペア信号線が収納され、この他に電源ラインを収納することも可能である。これによって、電源を持たない機器や、故障により電圧低下した機器等にも電力の供給が可能になっている。また、簡易型の接続ケーブルでは、接続先の機器を限定した上で、電源ラインを設けていないものもある。電源線内を流れる電源電圧は、8〜40V、電流は最大電流DC1.5Aと規定されている。
[DS−Link符号化]
次に、1394シリアルバスで採用されているデータ転送フォーマットのDS−Link符号化方式を、図6に基づいて説明する。1394シリアルバスでは、DS−Link(Data/Strobe Link)符号化方式が採用されている。このDS−Link符号化方式は、高速なシリアルデータ通信に適しており、2本の信号線を必要とする。より対線のうち1本に主となるデータを送り、他方の対線にはストローブ信号を送る構成になっている。受信側では、この受信データと、ストローブ信号との排他的論理和をとることによってクロックを再現できる。
このDS−Link符号化方式を用いるメリットとしては、他のシリアルデータ転送方式に比べて転送効率が高いこと、PLL回路が不要となるのでコントローラLSIの回路規模を小さくできること、更には、転送すべきデータが無いときにアイドル状態であることを示す情報を送る必要が無いので、各機器のトランシーバ回路をスリープ状態にすることができることによって、消費電力の低減が図れること等が挙げられる。
[バスリセットのシーケンス]
1394シリアルバスでは、接続されている各機器(ノード)には、ノードIDが与えられることにより、各機器がネットワークの構成として認識されている。このネットワーク構成に変化があったとき、例えばノードの挿抜や電源のON/OFFなどによるノード数の増減などによって変化が生じて、新たなネットワーク構成を認識する必要があるときは、変化を検知した各ノードは、バス上にバスリセット信号を送信して、新たなネットワーク構成を認識するモードに入る。このときの変化の検知方法は、1394ポート基盤上でのバイアス電圧の変化を検知することによって行われる。
或るノードからバスリセット信号が伝達されて、各ノードのフィジカルレイヤがバスリセット信号を受信すると、フィジカルレイヤは、リンクレイヤにバスリセットの発生を伝達し、かつ他のノードにバスリセット信号を伝達する。最終的に全てのノードがバスリセット信号を検知した後に、バスリセット処理が起動される。バスリセット処理は、先に述べたようなケーブル抜種や、ネットワーク異常等によるハード検出により起動され、プロトコルからのホスト制御などによってフィジカルレイヤに直接命令を出すことによっても起動される。また、バスリセット処理が起動されると、データ転送は一時中断され、バスリセット処理が終了した後に新しいネットワーク構成の下でデータ転送が再開される。
[ノードID決定のシーケンス]
バスリセット処理が終了すると、各ノードは新しいネットワーク構成を再構築するために、各ノードにIDを与える動作に入る。このときの、バスリセットからノードID決定までの一般的なシーケンスを、図7〜10のフローチャートに従って説明する。
図7のフローチャートは、バスリセットの発生からノードIDが決定し、データ転送が行えるようになるまでの、一連のバスの作業を示してある。まず、ステップS101にて、ネットワーク内にバスリセットが発生することを常時監視していて、ノードの電源ON/OFFなどでバスリセットが発生すると、ステップS102に移る。ステップS102では、ネットワークがリセットされた状態から、新たなネットワークの接続状況を知るために、直接接続されている各ノート間において親子間係の宣言がなされる。
全てのノード間で親子関係が決定すると(ステップS103)、全てのノード間でルートのノード(以下、ルートノードという)として機能する1つのルートノードが決定する。なお、全てのノード間で親子関係が決定するまでは、ルートノードも決定されない。ステップS104でルートノードが決定されると、ステップS105にて、各ノードにIDを与えるノードIDの設定作業が行われる。このノードIDの設定作業は、後述するリーフノード→ブランチノード→ルートノードの順に全てのノードにIDが与えられるまで繰り返し行われ(ステップS106)、全てのノードにIDを設定し終えたら、新しいネットワーク構成が全てのノードにおいて認識されたので、ステップS107にて、任意のノード間のデータ転送を行える状態となり、必要に応じてデータ転送が実行される。このステップS107の状態になると、再びバスリセットが発生するのを監視するモードに入り、バスリセットが発生したらステップS101からステップS106までの設定作業が繰り返し行われる。
次に、図7のフローチャートのバスリセットからルート決定までの部分と、ルート決定後からID設定終了までの手順の詳細を、それぞれ図8、図9〜10のフローチャートに従って説明する。
まず、バスリセットからルートノード決定までの手順を、図8のフローチャートに従って説明する。ステップS201にて、バスリセットの発生が検出されると、ステップS202に進んで、リセットされたネットワークの接続状況を再認識する作業の第1歩として、各機器にリーフノードであることを示すフラグを立てておく。次に、ステップS203にて、各機器が自分の持つポートが他の幾つのノードと接続されているのかを確認する。
そして、この接続ポート数の確認結果に応じて、これから親子関係の宣言を始めていくために、未定義(親子関係が決定されてない)ポートの数をチェックする(ステップS204)。バスリセットの直後はポート数=未定義ポート数であるが、親子関係が決定されていくにしたがって、ステップS204で認識される未定義ポートの数は変化していく。まず、バスリセットの直後、はじめに親子関係の宣言を行えるのはリーフノードに限られている。リーフノードであることは、ステップS204での未定義ポート数の確認結果が“1”であることにより知ることができる。
リーフノードである場合は、ステップS205にて、自分に接続されているノードに対して、「自分は子、相手は親」と宣言して動作を終了する。ステップS203にて、接続ポート数が複数あり、自己がブランチノードであると認識したノードは、バスリセットの直後はステップS204で未定義ポート数>1ということなので、ステップS206に進んでブランチというフラグを立て、ステップS207にてリーフノードからの親子関係宣言で「親」の受付をするために待つ。リーフノードが親子関係の宣言を行い、ステップS207でその宣言を受けたブランチノードは、適宜ステップS204の未定義ポート数の確認を行い、未定義ポート数が“1”になっていれば、残っているポートに接続されているノードに対して、ステップS205の「自分が子」の宣言をすることが可能となる。
2度目以降、ステップS204で未定義ポート数を確認しても2以上の未定義ポートがあるブランチノードに対しては、再度ステップS207にてリーフノード又は他のブランチノードからの「親」の受付をするために待つ。最終的に、いずれか1つのブランチノード、又は例外的にリーフノード(子宣言を行えるのに迅速に動作しなかったため)が、ステップS204の未定義ポート数の判定でゼロになった場合には、これにてネットワーク全体の親子関係の宣言が終了したことを意味するので、未定義ポート数がゼロ(全て親のポートとして決定)になった唯一のノードは、ステップS208にて、ルートのフラグが立てられ、ステップS209にてルートノードとしての認識がなされる。
次に、ルートノード決定後からID設定終了までの手順の詳細を、図9〜10のフローチャートに従って説明する。
図8のシーケンスでリーフ、ブランチ、ルートという各ノードのフラグの情報が設定されているので、これを元にして、ステップS301で、リーフノード、ブランチノード、ルートノードに分類する。各ノードにIDを与える作業として、最初にIDの設定を行うことができるのは、リーフノードであり、リーフノード→ブランチノード→ルートノードの順に若い番号(ノード番号=0〜)からIDが設定されていく。
リーフノードでは、ステップS302にて、ネットワーク内に存在するリーフノードの数N(Nは自然数)を設定する。この後、ステップS303にて、各リーフノードがルートノードに対してIDを与えるように要求する。この要求を複数のリーフノードから受けたルートノードは、ステップS304にて、アービトレーション(1つに調停する作業)を行う。そして、ステップS305にて、勝った方の1つのノードに対してID番号を与え、残りの負けたノードには失敗の結果通知を行う。
リーフノード側では、ステップS306にて、IDを取得したか否かを判断し、IDを取得できなかった場合には、ステップS303に戻り、再度ID要求を出し、同様の処理を繰り返す。IDを取得できた場合には、ステップS307にて、セルフIDパケットをブロードキャストで全ノードに転送する。このセルフIDパケットには、そのノードのID情報や、そのノードのポート数、既接続ポート数、その各ポートが親であるか子であるか、そのノードがバスマネージャになり得る能力が有るか否か(バスマネージャになり得る能力があれば、セルフIDパケット内のコンテンダビットを“1”に、バスマネージャになり得る能力が無ければコンテンダビットを“0”にする)等の情報が載せられている。
ここで、バスマネージャになる能力とは、
・ バスの電源管理、すなわち、図1の如く構成されたネットワーク上の各機器が、接続ケーブル内の電源ラインを用いて電源供給を必要とする機器か、電源供給可能な機器か、いつ電源を供給するか等の菅理、
・ 速度マップの維持、すなわち、ネットワーク上の各機器の通信速度情報の維持、
・ ネットワーク構造(トポロジ・マップ)の維持、すなわち、図11に示されるようなネットワークのツリー構造情報の維持、
・ トポロジ・マップから取得した情報に基づくバスの最適化、
のバス管理が可能であることを意味し、後で説明する手順によってバスマネ−ジャとなったノードが、ネットワーク全体のバス管理を行なうことになる。また、バスマネージャになり得る能力のあるノード、すなわち、セルフIDパケットのコンテンダビットを“1”にしてブロードキャストするノードは、各ノードからブロードキャストで転送されるセルフIDパケットの各情報、通信速度等の情報を蓄えておき、バスマネージャとなった際に、蓄えておいた情報をもとに、速度マップやトポロジ・マップを構成する。
1つのノードID情報のブロードキャストが終わると、ステップS308にて、残りのリーフノードのノード数が1つ減らされる。そして、ステップS309にて、IDを取得していない残りのリーフリード数が“1”以上あると判断されたときは、ステップS303に戻り、同様の処理を繰り返する。一方、カウンタN=0となった場合、すなわち、IDを取得していない残りのリーフノード数が“0”になり、全てのリーフノードがID情報を獲得してブロードキャストした場合は、ブラランチノードのID設定に移る。
ブランチノードのID設定もリーフの場合と同様に行われる。まず、ステップS310にて、ネットワーク内に存在するブランチノードのノード数M(Mは自然数)を設定する。この後、ステップS311にて、各ブランチノードがルートノードに対して、IDを与えるように要求する。これに対してルートノードは、ステップS312にて、アービトレーションを行う。そして、勝った方のブランチノードから順に、リーフノードに与え終った次の若い番号からIDを与えていく。ステップS313では、ルートノードは、ID要求を出したブランチノードに対して、ID情報、又は失敗結果を通知する。
ID要求を行ったブランチノード側では、ステップS314にて、IDを取得したか否かを判断し、IDを取得できなかった場合には、ステップS311に戻り、再度ID要求を出し、同様の処理を繰り返す。IDを取得できた場合には、ステップS315にて、セルフIDパケットをブロードキャストで全ノードに転送する。1つのブランチノードのID情報のブロードキャストが終わると、ステップS316にて、残りのブランチノードのノード数が1つ減らされる。そして、ステップS317にて、IDを取得していない残りのブランチノード数が“1”以上あると判断されたときは、ステップS311に戻り、同様の処理を繰り返す。
一方、カウンタM=0となった場合、すなわち、IDを取得していない残りのブランチノード数が“0”になり、全てのブランチノードがID情報を獲得してブロードキャストした場合は、最終的にID情報を取得していないノードはルートノードだけなので、ステップS318にて、IDとして与えていない番号で最も大きい番号を自分のID番号として設定し、ステップS319にて、ルートノードのセルフIDパケットをブロードキャストする。
ここまでの処理によって、各ノードについてバスマネージャになり得る能力の有無が明らかになる。最終的に複数のノードがバスマネージャになり得る能力を有する場合、ID番号の最も大きいノードがバスマネージャとなる。ルートノードがバスマネージャになり得る能力を有している場合、ルートノードのID番号がネットワーク内で最大であるから当然にルートノードがバスマネージャとなるが、ルートノードがバスマネージャになり得る能力を有していない場合には、ルートノードの次に大きいID番号を有し、かつセルフIDパケット内のコンテンダビットが“1”となっているブランチノードがバスマネージャとなる。
また、どのノードがバスマネージャとなったかについては、図9〜10の処理の過程で各ノードがIDを取得した時点でセルフIDパケットをブロードキャストしており、このブロードキャスト情報を各ノードが把握しておくことにより、各ノード共通の認識として把握することが出来る。
次に、図11に示したネットワーク例における上記の動作を説明する。図11では、ルートノードBの下位にはノードAとノードCが直接接続されており、更にノードCの下位にはノードDが直接接続されており、更にノードDの下位にはノードEとノードFが直接接続された階層構造になっている。
この階層構造やルートノード、ノードIDを決定する手順は、次のようになる。すなわち、バスリセットがされた後、まず各ノードの接続状況を認識するために、各ノードの直接接続されているポート間において、親子関係の宣言がなされる。この親子とは、親側が階層構造で上位となり、子側が下位となるということを意味する。図11では、バスリセットの後、最初に親子関係の宣言を行なったのはノードAである。基本的に、ノードの1つのポートにのみ接続があるノード、すなわちリーフノードが最初に親子関係の宣言を行なうことができる。これは、自分には1ポートだけが接続されていることは簡単に知ることができるからであり、これによってネットワークの端であることを認識し、その中で早く動作を行なったノードから親子関係が決定されていく。
こうして、親子関係の宣言を行なった側(ノードA−B間ではノードA)のポートが子と設定され、相手側(ノードB)のポートが親と設定される。このように、ノードA−B間では子一親、ノードE−D間では子一親、ノードF−D間で子一親と決定される。さらに、1階層あがって、今度は複数個の接続ポートを持つブランチノードのうち、他ノードからの親子関係の宣言を受けたものから順次、更に上位に親子関係の宣言を行なっていく。図11では、まずノードDがD−E間、D−F間と親子関係を決定した後、同格のブランチノードCに対する親子関係の宣言を行い、その結果ノードD−C間で子一親と決定している。ノードDからの親子関係の宣言を受けたブランチノードCは、もう1つのポートに接続されているノードBに対して親子関係の宣言を行なって、ノードC−B間で子一親と決定している。
このようにして、図11のような階層構造が構成され、最終的に接続されている全てのポートにおいて親となったノードBが、ルートノードと決定されている。ルートノードは、1つのネットワーク構成中に1つしか存在しないものである。なお、この図11においてノードBがルートノードと決定されたが、これはノードAから親子関係宣言を受けたノードBが、他のノードに対して親子関係宣言を早いタイミングで行なっていれば、ルートノードは他のノードに移っていたこともあり得る。すなわち、伝達されるタイミングによっては、どのノードもルートノードとなる可能性があり、同じネットワーク構成でもルートノードは一意に決定されるものではない。
ルートノードが決定すると、次には、各ノードIDを決定するモードに入る。ここでは、全てのノードが、決定した自分のノード1Dを他の全てのノードに通知する(ブロードキャスト機能)。自己ID情報は、自分のノード番号、接続されている位置の情報、持っているポートの数、接続のあるポートの数、各ポートの親子関係の情報等を含んでいる。
ノードID番号の割り振りの手順としては、まず1つのポートにのみ接続があるリーフノードからID決定動作を起動することができ、起動順にノード番号0、1、2、…と割り当てられる。ノードIDを取得したノードは、ノード番号を含む情報をブロードキャストで各ノートに送信する。これによって、そのID番号は「割り当て済み」であることが他のノードで認識される。全てのリーフノードが自己ノードIDを取得し終ると、次はブランチのノードがID取得を行う。ここでは、リーフノードに引き続いたノードID番号が各ブランチノードに割り当てられる。リーフノードと同様に、ノードID番号が割り当てられたブランチノードから順次ノードID情報をブロードキャストする。そして、最後にルートノードが自己IDを獲得し、ブロードキャストする。すなわち、ルートノードは、ネットワーク内で最大のノードID番号を所有するものである。
[アービトレーション]
1394シリアルバスでは、データ転送に先立って、必ずバス使用権のアービトレーション(調停)を行なう。1394シリアルバスは、個別に接続された各機器が、転送された信号をそれぞれ中継することによって、ネットワーク内の全ての機器(ノード)に信号を伝えるように構成された論理的なバス型ネットワークを構築するので、パケットの衝突を防ぐ意味でアービトレーションは必要である。このアービトレーションによって、ある時間には、1つのノードだけが転送を行なうことができる。
このアービトレーション動作を図12(a)、(b)に基づいて説明する。図12(a)は、バス使用要求例を示しており、アービトレーションが始まると、1つもしくは複数のノードが親ノードに向かって、それぞれバス使用権の要求を発する。図12(a)では、ノードCとノードFがバス使用権の要求を発しているノードである。これを受けた親ノード(図12(a)ではノードA)は、更に親ノードに向かって、バス使用権の要求を発する(中継する)。この要求は最終的に調停を行なうルートに届けられる。バス使用要求を受けたルートノードは、どのノードにバスを使用させるかを決める。
この調停作業はルートノードのみが行なえるものであり、調停によって勝ったノードには、バスの使用許可を与える。図12(b)では、ノードCに使用許可が与えられ、ノードFの使用は拒否された状態を示している。アービトレーションに負けたノードに対しては、図12(b)に示したように、DP(Data Prefix)パケットを送り、バス使用要求が拒否されたことを知らせる。拒否されたノードのバス使用要求は、次回のアービトレーションまで待たされる。このようにして、アービトレーションに勝ってバスの使用許可を得たノードは、それ以降、データ転送を開始できる。
ここで、アービトレーションの一連の流れを、図13のフローチャートに従って説明する。ノードがデータ転送を開始できるためには、バスがアイドル状熊であることが必要である。先に行われていたデータ転送が終了して、現在バスが空き状態であることを認識するためには、各転送モードで個別に設定されている所定のアイドル時間ギャップ長(例えばサブアクション・ギャップ)を経過することによって、各ノードは自分の転送が開始できると判断する。
そこで、ステップS401では、現在バスが空き状態であることを認識すべく、Asyncデータ、Isoデータ等、それぞれ転送するデータに応じた所定のギャップ長が得られたかを判断する。所定のギャップ長が得られない限り、転送を開始するために必要なバス使用権の要求はできないので、所定のギャップ長が得られるまで待つ。ステップS401で所定のギャップ長が得られたら、ステップS402にて、転送すべきデータがあるかを判断し、その結果、転送すべきデータが無いと判断された場合は、そのまま待機する。一方、転送すべきデータが有ると判断された場合は、ステップS403に進んで、バス使用権の要求をルートノードに対して発して、バスを確保するよう依頼する。このときの、バス使用権の要求を表す信号の伝達は、図12(a)に示したように、ネットワーク内の各機器を中継しながら、最終的にルートノードに届けられる。
次に、ステップS404に進んで、ステップS403でのバス使用権要求を1つ以上ル−トが受信した場合には、ルートノードは、ステップS405にて、使用要求を出したノードの数を調べる。その結果、使用権要求を出したノードが1つであれば、そのノードに対して、直後のバス使用許可が与えられることとなる(ステップS408)。
一方、使用権要求を出したノードが複数であれば、ルートノードは、ステップS406にて、使用許可を与えるノードを1つに決定する調停処理を行う。この調停処理は公平なものであり、毎回同じノードに許可を得るようなことはなく、平等に使用許可を与えていくような構成となっている。使用要求を出した複数ノードのうち、ルートノードが調停して使用許可を与えた1つのノードに対しては(ステップS407)、直後のバス使用許可信号を送信する(ステップS408)。許可信号を受信したノードは、受け取った直後に得られた所定のアイドル時間ギャップ長を利用して、転送すべきデータ(パケット)の転送を開始する。
一方、使用許可を与えないことにした残りの使用要求に係るノードに対しては(ステップS407)、アービトレーション失敗を示すDP(Data Prefix)パケットを送信する(ステップS409)。これを受け取ったノ−ドは、再度バス使用要求を出すため、ステップS401に戻り、所定ギャップ長が得られるまで待機する。
[Asynchronous(非同期)転送]
アシンクロナス転送は、非同期転送である。図14にアシンクロナス転送における時間的な遷移状態を示す。図14の最初のサブアクションギャップは、バスのアイドル時間を示すものである。このアイドル時間が一定値になった時点で、転送を希望するノードはバスが使用できると判断して、バス獲得のためのアービトレーションを依頼する。アービトレーションでバスの使用許可を得ると、データ転送がパケット形式で実行される。転送データを受信したノードは、転送データに対する受信確認を返信すべく、ack信号(受信確認用返送コード)をack gapという短いギャップの後、返送して応答するか、応答パケットを送る。ack信号は、4ビットの情報と4ビットのチェックサムからなり、4ビットの情報には、受信成功か、ビジイ状態か、ペンディング状態であるかといった情報が含まれている。
次に、図15にアシンクロナス転送のパケットフォーマットの例を示す。アシンクロナス転送のパケットには、データ部、誤り訂正用のデータCRCの他にヘッダ部があり、そのヘッダ部には、図15に示したような、目的ノードID、ソースノードID、転送データ長さ、各種コードなどが書込まれている。また、アシンクロナス転送は、自己ノードから相手ノードヘの1対1の通信である。転送元ノードから転送されたアシンクロナス転送のパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視されるので、宛先の1つのノードのみが読込むことになる。
[Isochronous(同期)転送]
アイソクロナス転送は同期転送である。1394シリアルバスの最大の特徴であるともいえるこのアイソクロナス転送は、特にVIDEO映像データや音声データといったマルチメディアデータなど、リアルタイムな転送を必要とするデータの転送に適した転送モードである。また、アシンクロナス転送(非同期)が1対1の転送であったのに対し、このアイソクロナス転送はブロードキャスト機能によって、転送元の1つのノードから他の全てのノードヘ一様に転送される。
図16はアイソクロナス転送における時間的な遷移状態を示す図である。アイソクロナス転送は、バス上一定時間毎に実行される。この時間間隔をアイソクロナスサイクルと呼ぶ。アイソクロナスサイクル時間は、125μSである。この各サイクルの開始時間を示し、各ノードの時間調整を行なう役割を担っているのがサイクル・スタート・パケットである。サイクル・スタート・パケットを送信するのは、サイクル・マスタと呼ばれるノードであり、1つ前のサイクル内の転送終了後、所定のアイドル期間(サブアクションギャップ)を経た後、本サイクルの開始を告げるサイクル・スタート・パケットを送信する。このサイクル・スタート・パケットが送信される時間間隔が125μSとなる。
また、図16にチャネルA、チャネルB、チャネルCと示したように、1サイクル内において複数種のパケットがチャネルIDをそれぞれ与えられることによって、区別して転送できる。これによって、同時に複数ノード間でのリアルタイムな転送が可能であり、また、受信するノードでは、自分が欲しいチャネルIDのデータのみを取り込む。このチャネルIDは、送信先のアドレスを表すものではなく、データに対する論理的な番号を与えているに過ぎない。よって、あるパケットの送信は、1つの送信元ノードから他の全てのノードに行き渡るブロードキャストで転送されることになる。
アイソクロナス転送のパケット送信に先立って、アシンクロナス転送と同様に、アービトレーションが行われる。しかし、アシンクロナス転送のように1対1の通信ではないので、アイソクロナス転送にはack(受信確認用返信コード)は存在しない。また、図16に示したiso gap(アイソクロナスギャップ)とは、アイソクロナス転送を行なう前にバスが空き状態であることを認識するために必要なアイドル期間を表している。このアイドル期間を経過すると、アイソクロナス転送を行ないたいノードは、バスが空いていると判断し、転送前のアービトレーションを行なうことができる。
次に、図17にアイソクロナス転送のパケットフォーマットの例を示して説明する。各チャネルに分かれた、各種のパケットには、それぞれデータ部、誤り訂正用のデータCRCの他にヘッダ部があり、そのヘッダ部には図17に示したような、転送データ長、チャネルNo.その他各種コード、誤り訂正用のヘッダCRCなどが書込まれている。
[バス・サイクル]
実際の1394シリアルバス上の転送では、アイソクロナス転送とアシンクロナス転送とは混在させることができる。図18は、アイソクロナス転送とアシンクロナス転送とが混在したバス上の転送状態の時間的な遷移の様子を示している。図18に示したように、アイソクロナス転送はアシンクロナス転送より優先して実行される。その理由は、サイクル・スタート・パケットの後、アシンクロナス転送を起動するために必要なアイドル期間のギャップ長(サブアクションギャップ)よりも短いギャップ長(アイソクロナスギャップ)で、アイソクロナス転送を起動できるからである。
図18に示した一般的なバスサイクルにおいて、サイクル#mのスタート時に、サイクル・スタート・パケットがサイクル・マスタから各ノードに転送される。これによって、各ノードで時刻調整を行ない、所定のアイドル期間(アイソクロナスギャップ)を待ってから、アイソクロナス転送を行なうべきノードはアービトレーションを依頼し、パケット転送に入る。
図18では、チャネルeとチャネルsとチャネルkが順にアイソクロナス転送されている。このアービトレーション依頼からパケット転送までの動作を、与えられているチャネル分繰返し行ない、サイクル#mにおけるアイソクロナス転送が全て終了した後に、アシンクロナス転送を行う。アイドル時間がアシンクロナス転送が可能なサブアクションギャップに達することによって、アシンクロナス転送を行いたいノードは、アービトレーションの依頼に移れると判断する。
ただし、アシンクロナス転送が行える期間は、アイソクロナス転送が終了した後、次のサイクル・スタート・パケットを転送すべき時間(cycle synch)までの間に、アシンクロナス転送を起動するためのサブアクションギャップが得られた場合に限られる。
図18のサイクル#mでは、3つのチャネル分のアイソクロナス転送と、その後、アシンクロナス転送(含むack)が2パケット(パケット1,パケット2)転送されている。このアシンクロナスパケット2を転送した後は、サイクル(m#+1)をスタートすべき時間(cycle synch)に至るので、サイクル#mでの転送は、ここまでで終わる。
ただし、非同期または同期転送動作中に、次のサイクル・スタート・パケットを送信すべき時間(cycle synch)に至ったとしたら、無理に中断せず、その転送が終了した後のアイドル期間を待ってから、本サイクルのサイクル・スタート・パケットを送信する。すなわち、1つのサイクルが125μS以上続いたときは、その分、次のサイクルは、基準の125μSより短縮されたものとする。
このようにアイソクロナスサイクルは、125μSを基準に伸縮し得るものである。しかし、アイソクロナス転送は、リアルタイム転送を維持するために、必要であれば毎サイクル必ず実行され、アシンクロナス転送は、サイクル時間が短縮されたことによって以降のサイクルに回されることもある。こういった遅延情報も含めて、サイクル・マスタは、各ノードの時間調整を行っている。図19は、図1のネットワーク構成の中のプリンタ104とD−VTR105の部分を示すブロック図であり、本発明の特徴点を図19〜図32を用いて説明する。
図19において、D−VTR105内の3は磁気テープ、4は記録/再生ヘッド、5は再生処理回路、6は映像復号化回路、7はD/Aコンバータ、9は外部出力端子、10は指示入力を行なう操作部、11はVTRのシステムコントローラ、12はフレームメモリ、13はVTRの1394インタフェース(I/F)部、14は複数種のデータの中から特定のデータをセレクトするセレクタである。なお、図19では、D−VTR105については、再生系のみが図示されている。
プリンタ104内の17はプリンタの1394インタフェース(I/F)部、18はプリントすべき画像データをプリントし得るようにラスタライズする画像処理回路、19はラスタライズされた画像データを記憶するメモリ、20はプリンタヘッド、21はプリンタヘッド20の動作や紙送り動作等を駆動制御するドライバ、22はプリンタ操作部、23はプリンタ104の動作を全体的に制御するプリンタコントローラ、24はプリンタ104の動作状況や解像度等、カラー/白黒等の印刷性能をプリンタ情報として生成するプリンタ情報生成部、25はデータセレクタである。
このような構成の下で、D−VTR105では、磁気テープ3に記録されている映像データを記録/再生ヘッド4で読出し、読出した映像データに対して、再生処理回路5により再生形式のデータ形式への変換処理を行なう。そして、読出された映像データは、家庭用デジタルビデオの帯域圧縮方法としてのDCT(離散コサイン変換)、及びVLC(可変長符号化)に基づいた所定の圧縮方式で符号化して記録されているので、復号化回路6により所定の復号化処理を行い、D/Aコンバータ7によりアナログ信号に戻した後、外部出力端子9から外部装置に出力する。
また、1394シリアルバス(1394ケーブルC)を用いて、所望の映像データ等を他のノードに転送するときは、復号化回路6で復号化された映像データを、フレームメモリ12に一時的に蓄えた後、データセレクタ14を経て1394I/F部13に送り、1394ケーブルCを介して、例えばプリンタ104やパソコン103に転送する。データセレクタ14では、上記映像データに加え、システムコントロ−ラ11からの各種制御データも1394I/F部13に転送する。転送された映像データがプリンタ104でのダイレクトプリント用であるときは、プリンタ104は、1394I/F部17を介して、映像データをプリンタ内部に取込み、パソコン103等の他ノードヘの転送であるときは、1394I/F部17を介して目的のノードに転送される。
D−VTR105の再生動作等の指示入力は操作部10から行なわれ、操作部10からの指示入力に基づいて、システムコントローラ11は、VTRの再生処理回路5の制御を初めとする各動作部の制御を行ない、また指示入力によっては、例えばプリンタ104ヘの制御コマンドを発生して、データセレクタ14、1394I/F部13、1394ケーブルCを介してプリンタ104に転送する。
1394ケーブルCを介してプリンタ104から送られて来るプリンタ104の動作状態等のプリンタ情報データは、1394I/F部13からデータセレクタ14を経てシステムコントローラ11に取込むことが可能である。ただし、上記プリンタ情報データがD−VTR105にとって不要なものである場合には、システムコントローラ11に取込まれることなく、1394I/F部13、1394ケーブルCを介してD−VTR106に転送される(図1の接続状態参照)。また、上記プリンタ情報データは、プリンタ104の1394I/F部17、1394ケーブルCを介してパソコン103に転送することも可能である。
D−VTR105のデータセレクタ14、及びプリンタ104のデータセレクタ25は、入力又は出力する各データのセレクトを行うものであり、順次各データがデータ種毎に区別して所定の構成要素に入出力する。
次に、プリンタ104の動作について説明する。1394I/F部17に入力されたデータは、データセレクタ25により各データの種類毎に分類され、プリントすべきデータは、画像処理回路18に入力されてプリントに適した画像処理が施され、プリンタコントローラ23の制御の下にプリント画像としてメモリ19に格納される。また、プリンタコントローラ23は、メモリ19から読出したプリント画像をプリンタヘッド20に転送してプリントさせる。プリンタヘッド20の駆動制御や紙送り等の駆動制御は、直接にはドライバ21が行ない、プリンタコントローラ23は、ドライバ21を制御することにより、間接的にプリント動作を制御する。プリンタ104の操作部22は、紙送り、リセット、インクチェック、プリンタ動作のスタンバイ/停止等の動作を指示入力するものであり、その指示入力に応じてプリンタコントローラ23による各部の制御がなされる。
1394I/F部17に入力されたデータが、パソコン103やD−VTR105等から発せられたプリンタ104に対するコマンドデータであった場合は、このコマンドデータはデータセレクタ25からプリンタコントローラ23に転送され、プリンタコントローラ23によってプリンタの各部の制御がなされる。また、プリンタ情報生成部24では、プリンタの動作状況、プリントの終了や開始可能な状態であるかを示すメッセージや紙詰まりや動作不良、インクの有無等を示す警告メッセージ、さらにはプリント画像の情報等をプリンタ情報として生成する。このプリンタ情報は、データセレクタ25、1394I/F部17を介して外部に出力できる。
この出力されたプリンタ情報を元にして、パソコン103やD−VTR105は、プリンタ状況に応じた表示や処理を行う。このプリンタ情報を元にしてパソコン103に表示された(D−VTR105がダイレクトプリント機能を有していればD−VTR105にも表示される)メッセージやプリント画像情報を、ユーザが見ることによって、適切な対処をすべく、パソコン103(及びD−VTR105)からプリンタ104に対するコマンドの入力を行なって、1394シリアルバスで制御コマンドデータを送信して、プリンタコントローラ23の制御によりプリンタ104の各部の動作制御や、画像処理部18でのプリント画像の制御を行うことが可能である。
このように、パソコン103やD−VTR105とプリンタ104間を接続した1394シリアルバスには、映像データや各種のコマンドデータなどが適宜転送されることになる。D−VTR105から転送する各データの転送形式は、先に述べた1394シリアルバスの仕様に基づいて、主として映像データ(及び音声データ)はIsoデータとしてアイソクロナス転送方式で1394シリアルバス上を転送し、コマンドデータはAsyncデータとしてアシンクロナス転送方式で転送するものとする。
ただし、ある種のデータは、場合によってアイソクロナス転送するよりアシンクロナス転送方式で送った方が都合が良いこともあるので、そのような場合は常にアシンクロナス転送方式を用いる。また、プリンタから転送されるプリンタ情報のデータは、Asyncデータとしてアシンクロナス転送方式で転送する。ただし、情報量が多いプリント画像データなどを転送するときは、Isoデータとしてアイソクロナス転送方式で送っても良い。
なお、1394シリアルバスで図1のようなネットワークが構成されていた場合、D−VTR105もプリンタ104も、パソコン103、D−VTR106、DVDプレーヤ107、CDプレーヤ108、AVアンプ102、及びTVモニタ101と、1394シリアルバスの仕様に基づいて、それぞれのデータの双方向転送が可能である。
TVモニタ101、AVアンプ102、パソコン103、D−VTR106、DVDプレーヤ107、及びCDプレーヤ108は、それぞれの機器に特有の機能制御部を搭載しているが、1394シリアルバスによる情報通信に必要な部分、すなわち機器内の各ブロックから送信すべきデータが入力され、受信したデータを適宜機器内の各ブロックに振り分けるデータセレクタ、及び1394I/F部については、D−VTR105やプリンタ105と同様である。以上が1EEE1394の技術の概要説明である。
図20は、IEEE1394シリアルI/F部を有するビデオカメラ2600内のブロック図である。ビデオカメラ2600は、図示しない光学レンズ部、絞り2603、CCD2604、AGC2605、A/D変換器2606、絞り駆動部2607、CCDドライバ2608、及びタイミングジェネレータ2069からなる撮像部と、デジタル信号処理部2601と、カメラシステム制御部2602に大別される。
光学レンズ部、及び絞り2603を介してCCD2604の撮像面に結像した画像光は、CCD2604により光電変換されてアナログの画像信号として出力される。そして、アナログの画像信号は、AGC2605でゲインコントロールされた後、A/D変換器2606でデジタル信号に変換されて、デジタル信号処理部2601に入力される。
デジタル信号処理部2601に入力された画像信号のうち、輝度成分Yは、信号処埋ブロック2614で絞り制御用参照信号生成回路2615によって生成される参照信号とレベル比較され、その比較結果を信号処理ブロック2614から絞り駆動部2607に対して出力することにより、撮像光に対して常に適切な絞り値が得られるように自動的に絞り2603を制御する。
デジタル信号処理部2601に入力された画像信号中の色信号成分は、色分離マトリクス2610に入力される。色分離マトリクス2610は、色信号成分をR(レッド)、G(グリーン)、B(ブルー)の3色の色信号成分に分離し、特にRとBの色信号成分については、それぞれレベルコントロール回路2611,2612によってレベルを制御される。Gの色信号成分、及びレベルコントロール回路2611,2612から出力されたRとBの色信号成分は、色差マトリクス2613によってR−YとB−Yの色差信号に変換される。
色信号成分のレベルの制御は、絞り値制御と同様に、信号処理ブロック2614により、色差マトリクス2613の出力信号であるところのR−Y、B−Yの色差信号レベルを、それぞれR−Yレベル制御用参照信号生成回路2616、B−Yレベル制御用参照信号生成回路2617によって生成される参照信号とレベルを比較し、その比較結果を信号処理ブロック2614からレベルコントロール回路2611,2612に対して出力することにより行う。この色信号成分のレベル制御により、常に適切なホワイトバランスが得られるようになる。
CCD2604の撮像面に結像する撮像光の光量に対応する電荷をCCD2604内のセルに蓄積する時間、すなわちシャッタスピードは、タイミングジェネレータ2609からCCDドライバ2608を経てCCD2604に供給されるCCD駆動信号によって制御される。タイミングジェネレータ2609は、カメラシステム制御部2602内のI/F2625に接続されており、CPU2626からの制御命令に従ってCCD蓄積時間を制御する。絞り制御用参照信号生成回路2615、R−Yレベル制御用参照信号生成回路2616、及びB−Yレベル制御用参照信号生成回路2617の出力レベルも、I/F回路2625,1618を介してカメラシステム制御部2602から送られてくる制御信号によって変更可能なように構成されている。
カメラシステム制御部2602は、ビデオカメラ2600の外部のパソコン103と、1394ケーブルC、1394I/F部2627を介して通信可能に構成されている。この通信機能により、パソコン103からのカメラ制御命令に従って、CPU2626から絞り制御用参照信号生成回路2615、R−Yレベル制御用参照信号生成回路2616、B−Yレベル制御用参照信号生成回路2617の出力レベルを変更すべく信号を出力することにより、絞り値、R−Yレベル、B−Yレベルの制御の基準値が変更されるので、結果として絞り値や色合い、色の濃さといったカメラ部の制御対象を、カメラ外部からコントロールすることが可能となる。
絞り制御用参照信号生成回路2615、R−Yレベル制御用参照信号生成回路2616、B−Yレベル制御用参照信号生成回路2617の出力レベルの基準値は、RAM2629の標準制御データ記憶領域2621に記憶されており、通常は、この領域2621のデータがRAM2630の制御データ記憶領域2623に転送され、CPU2626を介して、適宜、絞り制御用参照信号生成回路2615、R−Yレベル制御用参照信号生成回路2616、B−Yレベル制御用参照信号生成回路2617、タイミングジェネレータ2609に制御条件として伝達され、自動的に適切な撮影条件が設定される。
パソコン103らビデオカメラ2600をコントロールする場合、パソコン103から1394I/F部2627に送信されたカメラ制御命令は、CPU2626により、適宜、ビデオカメラ2600に適したデータに置換されて、I/F2625を介してデジタル信号処理部2601に出力される。一方、I/F2625を介してデジタル信号処理部2601に出力されたデータは、RAM2629の調整用制御データ記憶領域2622にも記憶され、必要に応じて制御データ記憶領域2623を介してCPU2626に読出される。こうすることにより、パソコン103から伝達されたカメラ制御情報は、ビデオカメラ2600内に一旦記憶され、必要な時に読出して同様の制御を繰返し行うことが可能となる。
CPU2626は、RAM2629,2630に対するアクセス制御を、アドレス指定部2620と、R/W指定部2624を介して実行しており、パソコン103によって設定された撮影条件を設定する場合には、調整用制御データ記憶領域2622のデータを制御データ記憶領域2623に書込み、標準の撮影条件を設定する場合には、標準制御データ記憶領域2621のデータを制御データ記憶領域2623に書込む。
なお、ROM2628には、上記図7〜10、図13のフローチャート、後述する図22のフローチャートに対応する制御プログラムがプリセットされており、これら制御プログラムは、CPU2626により実行される。また、パソコン103により実行される後述の図21,23,27,29〜30のフローチャートに対応する制御プログラム、及び図24,25,26,28,31,32に示した画像内容、データ等は、図示省略したフロッピー(登録商標)ディスク、ハードディスク、CD−ROM等の記憶媒体により、パソコン103に供給することができる。
ビデオカメラ2600、及びパソコン103は、それぞれ1394ケーブルCが接続されると、モード設定動作に入るか否かの判別を行う。具体的には、パソコン103側は、例えば図21に示したように、ステップS501で処理の実行が開始されると、ステップS502にて、1394ケーブルCが接続されたか否かを、バスリセットが発生したか否かを検出することによって認識する。
バスリセットが発生していなければ、何ら処理を実行することなく、そのまま待機し、バスリセットが発生していれば、ステップS503にて、ビデオカメラ2600が1394ケーブルCにより接続されたか否かを判別する。このビデオカメラ2600が接続されたか否かの判別は、例えば、ビデオカメラ2600の1394シリアルバスにおける上記図4に示したアドレス空間の64ビットアドレスを読出し、この64ビットアドレスに基づいて行う。
ステップS503にて、制御対象とするビデオカメラ2600が接続されていないと判別した場合には、ステップS502に戻る。一方、制御対象とするビデオカメラ2600が接続されていると判別された場合には、ステップS504にて、ビデオカメラ2600側がパソコン103側からのモード設定命令を受付け得る状態であるかどうかを判断する。モード設定命令を受付け得る状態は、ビデオカメラ2600がテープ再生モードでない、すなわちカメラモードや図示しない種々のオートモードではなく、マニュアル設定モードになっている等の状態の場合である。
モード設定命令を受付け得る状態でない場合は、ステップS503に戻り、再度、制御対象であるビデオカメラ2600が依然接続されているかどうかを確認した上で、ステップS504の処理を再実行する。ステップS504でビデオカメラ2600がモード設定命令を受付け得る状態であると認識された場合、ステップS506にて、モード設定プログラムを起動し、パソコン103からモード設定命令を伝達することにより、ビデオカメラ2600をパソコン103から遠隔制御する。
一方、ビデオカメラ2600側では、図22のフローチャートに示したように、ステップS506で処理の実行が開始されると、ステップS507にて、通常のカメラ動作を実行する。通常のカメラ動作とは、図20の制御データ記憶領域2623に標準制御データ記憶領域2621の標準制御データが書込まれている状態での動作である。
通常のカメラ動作を実行しながら、CPU2626は、1394ケーブルCが接続されたか否かを、ステップS508にて常に監視している。1394ケーブルCの接続を検出する方法としては、例えばポートのバイアス電圧の変化を検出する方法等を挙げることができる。ステップS508で1394ケーブルCの接続が確認されなければ、ステップS507に戻る。また、1394ケーブルCの接続が確認された場合には、ステップS509に進んで、バスリセットの完了を待ってから、ステップS510にて、1394ケーブルCによる接続相手が、パソコン103であるか否かを確認する。接続相手がパソコン103であるか否かの確認は、パソコン103が行ったのと同様に、例えばビデオカメラの1394シリアルバスにおける上記図4のアドレス空間の64ビットアドレスを読出して、この64ビットアドレスに基づいて行う。
接続相手がパソコン103である場合は、ステップS511にて、パソコン103側がモード設定プログラムを動作させているかどうかを確認する。この確認は、例えば図3のアプリケーションレイヤの情報を読取ったり、或いは相互通信におけるAsyncデータを認識したりすることにより行うことができる。ステップS512にて、パソコン103側がモード設定プログラムを動作させていることを確認できた場合には、ステップS512に進み、パソコン103側からの命令に従って、上述の如く制御の基準値やシャッタスピードを変更し、また、制御データ記憶領域2623の記憶内容を書換えることにより、ビデオカメラ2600によるモード設定動作を実行する。
なお、ビデオカメラ2600側は、ステップS508〜511の各判別処理を順次実行することにより、パソコン103からの命令に従ってモード設定動作を実行するか否かを判断するのであるから、上記各判別処理のいずれかの過程で条件が整わなかった場合には、パソコン103からの命令に従わない動作、すなわち、通常のカメラ動作を繰返すことになる。
パソコン103からの命令に従ってビデオカメラ2600にモード設定動作を行わせる場合、上記のように、パソコン103側でモード設定プログラムを実行させる必要がある。図23にパソコン103側のモード設定プログラム(図21のステップS505に対応)の概略フローチャートを示す。
まず、ステップS5051にて、図示しないマウスやキーボードの操作によって選択された設定モードの種別を判断する。そして、選択された設定モードの種別に応じて、ステップS5052の撮影条件設定モード、ステップS5053の標準設定モード、ステップS5054の撮影画像確認&条件設定モードのプログラムのいずれかを実行する。
以下、順次、ステップS5053の標準設定モード、ステップS5052の撮影条件設定モード、ステップS5053の標準設定モードについて詳細に説明する。
[標準設定モード]
標準設定モードとは、種々の撮影条件に対応したビデオカメラ2600の設定内容をパソコン103側に記憶しておき、代表的な撮影条件をパソコン103上で選択し、パソコン103によってその撮影条件に適した設定をビデオカメラ2600に対して行うモードである。
標準設定モードが選択されると、パソコン103のモニタには、図24の画面601が表示される。この画面601には、通常のビデオカメラ2600のオート設定では良好な撮影が困難な撮影シーンが数種類表示されている。この中の夕日撮影モードをマウス等で選択すると、図25の画面602に表示が切替わり、夕日の撮像例603、夕日撮影モードの解説604、モード設定確認メッセージ605、カメラ設定ボタン606が表示される。
沈み行く夕日を撮影する場合、普通は赤々と撮影したいものであるが、通常のビデオカメラ2600のオート設定では、オートホワイトバランス機能が動作して赤の色成分を抑制し、できるだけ白に近づけるように動作してしまう。従って、取込まれる画像も赤みが薄れ、夕日らしく撮影することができない。
標準設定モードで夕日撮影モードを選択すると、例えば図20のR−Yレベル制御用参照信号生成回路2616、B−Yレベル制御用参照信号生成回路の出力レベルがパソコン103からの予め定められた設定値に変更され、赤を強調した画像がビデオカメラ2600から出力されるようになる。同時に、CCD2604を飽和状態にさせないようにするための、予め定められた適切とされるシャッタスピードと絞り値も、パソコン103からビデオカメラ2600に送られ、よりくっきりと夕日を撮影できるようになる。パソコン103の操作者が図25のカメラ設定ボタン606をクリックすると、パソコン103からビデオカメラ2600へ上記の各種の設定値等が転送され、ビデオカメラ2600において設定値等に従った設定と、転送データの記憶がなされる。
夕日撮影モード時のカメラ設定条件として、ホワイトバランス、シャッタスピード、絞り値を挙げたが、この他にも図26に列挙されるようなカメラ設定条件をパソコン103側から変更することができる。従って、例えば、結婚披露宴撮影モード(図24参照)では、背景の暗さで絞り(アイリス)2603が開き気味になり、新郎新婦の顔が白く飛んでしまうのを防ぐため、パソコン103側から絞り2603を閉じ気味に制御することが可能となる。
また、生物観察(接写)モード(図24参照)では、パソコン103側からの制御により、焦点距離を短く設定してマクロ撮影可能な光学条件とすることも可能となる。また、スキー場モード(図24参照)では、高照度下での絞り2603の絞り過ぎによる光線の回折を防ぐために、パソコン103側からの制御により絞り量を所定の値に抑え、シャッタスピードを高速化することで対応することもできる。さらに、夜景撮影モード(図24参照)では、ネオンの色を良好に撮影できるように、絞り、シャッタスピード、及びホワイトバランスをパソコン103側から適正値に設定することも可能となる。
[撮影条件設定モード]
図27は、パソコン103により実行される撮影条件設定モード(図23のステップS5052)の処理を示すフローチャートである。撮影条件設定モードの処理が開始されると、図24と同等のモード選択用の画面がパソコン103のモニタ上に表示され、操作者は撮影したいシーンを選択する。そこで、パソコン103は、操作者による撮影したいシーンのモード選択が完了するまで待機する(ステップS521)。シーンモードの選択が完了したら、ステップS522に進んで、選択されたシーンモードの標準カメラ設定条件をパソコン103内のメモリから読出す。操作者が夕日撮影モードを選択したとすると、ステップS522で最初に読出される標準カメラ設定条件は、上述の標準設定モード時と同一である。
次に、ステップS523にて、図28に示した画面2401をパソコン103のモニタ上に表示する。図28の画面2401には、モードの説明2402、夕日の撮像例2409、色合い調節ツマミ2403、色の濃さ調節ツマミ2404、絞り値調節ツマミと絞り値表示2405、シャッタスピード調節ツマミとシャッタスピード表示2406、次の操作の説明2407、及びカメラ設定ボタン2408が表示されている。
そこで、ステップS524の撮影条件設定処理において、操作者はマウス等を操作して各調節ツマミを移動させ、ビデオカメラ2600の設定を標準設定状態から個々の好みによって変化させる。図29は、図27のステップ524の撮影条件設定処理の詳細を示すフローチャートである。
図27のステップS524で処理の実行が開始されると、図29のステップS5241で操作者がどの項目に調節を加えようとしているのかを確認する。具体的には、マウスのカーソル位置に表示されているツマミを操作することになるので、マウスのカーソル位置と各ツマミの表示位置との一致を検出することになる。例えば、色合い調節ツマミ2403上でマウスが右ドラッグされながら左に移動すれば、ステップS5242にて、赤を強調すべく設定内容を変更し、同時にマウスの移動に合わせてツマミ表示を左に移動させる。
同様の調節、及び設定変更をステップS5243、ステップS5244、ステップS5245で、それぞれ色の濃さ、絞り値、シャッタスピードに対して行う。そして、ステップS5246にて、図28のカメラ設定ボタン2408がクリックされたか否かを確認する。その結果、カメラ設定ボタン2408がクリックされていなければ、ステップS5241に戻り、次の調節を受付ける。カメラ設定ボタン2408がクリックされていれば、処理を終了する。
上記一連の調節動作に合わせ、図28の画面2401上の撮像例2409の色合いや色の濃さ、画面の明るさ等を変更し、ツマミを移動させたときにどのような画像になるかを操作者に認識させれば、利便性が更に向上する。
このようにして、撮影条件の設定が完了したら、図27のステップS525にて、パソコン103内のカメラ設定条件を書換えて記憶しておく。次に、ステップS526にて、パソコン103からビデオカメラ2600へ上記の各種の設定値等を転送することにより、ビデオカメラ2600においてカメラ設定条件の書換え等がなされるようにする。この間、パソコン103側では、ステップS527にて、ビデオカメラ2600側の設定処理が完了したかどうかの確認を行い、未完了であれば、ステップS526に戻り、完了すれば終了する。
このように、撮影モード毎の標準設定に対し、操作者が更に調節を加えることにより、操作者の好みに合ったビデオカメラ2600の設定状態を、パソコン103からの遠隔操作により得ることが可能になる。
[撮影画像確認&条件設定モード]
図30は、図23のステップS5054の撮影画像確認&条件設定モードの詳細な処理を示すフローチャートである。撮影画像確認&条件設定モードの処理が開始されると、図24と同等の画面がパソコン103のモニタ上に表示されるので、操作者は撮影したいシーンを選択する。そして、パソコン103では、ステップS541で、操作音による撮影したいシーンの選択が完了するまで待機する。シーンモードの選択が完了したら、ステップS542に進んで、選択されたシーンモートの標準カメラ設定条件をパソコン103内のメモリから読出す。操作者が夕日撮影モードを選択したとすると、ステップS542で最初に読出される標準カメラ設定条件は、上述の標準設定モード時と同一である。
次に、ステップS543にて、図31に示した画面2501をパソコン103のモニタ上に表示する。図31の画面2501には、モードの説明2502、画像取込み中である旨の表示2504、次の操作の説明2503、カメラ画像取込みボタン2505が表示されている。そこで、操作者は、表示された指示に従って、撮影した夕日画像をビデオカメラ2600のテープ(図示省略)を再生しながら探し出し、サンプルとして適当な画像を特定する。そして、その画像を再生しながらカメラ取込みボタン2505をクリックすることにより、ステップS544にて、パソコン103にビデオカメラの再生画像が取込まれる。ビデオカメラの再生画像の取込みには、或る程度の時間を要するため、画像の取込みが完了したか否かをステップS545にて監視し、画像の取込みが完了したら、ステップS546にて、図32の画面2506を表示する。
この画面2506には、モードの説明2502、ステップS544で取込んだ画像(すなわち、実際の夕日撮像画面)2507、色合い調節ツマミ2403、色の濃さ調節ツマミ2404、絞り値調節ツマミと絞り値表示2405、シャッタスピード調節ツマミとシャッタスピード表示2406、次の操作の説明2407、及びカメラ設定ボタン2408が表示されている。
そこで、ステップS547の撮影条件設定処理において、操作者はマウス等を操作して各調節ツマミを移動させ、ビデオカメラ2600の設定を標準と言われる状態から個々の好みによって変化させる。上記一連の調節動作に合わせ、図28の画面2401上の撮像例2409の色合いや色の濃さ、画面の明るさ等を変更し、ツマミを移動させたときにどのような画像になるかを操作者に認識させれば、利便性が更に向上する。
このようにして、撮影条件の設定が完了したら、ステップS548にて、パソコン103内のカメラ設定条件を書換えて記憶しておく。これは、ステップS547の撮影条件の設定で再度撮影してきて調節を加えたい場合、先の調節状態から操作を開始させるために必要な処理である。
次に、ステップS549にて、パソコン103からビデオカメラ2600へ上記の各種の設定値等を転送することにより、ビデオカメラ2600においてカメラ設定条件の書換え等がなされるようにする。この間、パソコン103側では、ステップS550にて、ビデオカメラ2600側の設定処理が完了したかどうかの確認を行い、未完了であれば、ステップS549に戻り、完了すれば終了する。
このように、撮影モード毎の標準設定に対し、実際に撮像した画像を確認しながら更に調節を加えることにより、操作者の好みに合ったビデオカメラ2600の具体的な設定状態を、パソコン103からの遠隔操作により得ることが可能になる。
以上説明したように、本実施の形態では、撮像制御装置と撮像装置を接続すると、撮像制御装置は、一定時間毎に同期転送を開始し、同期転送が行われていない間に撮像装置の制御データを非同期転送で撮像装置に転送するため、例えば、画像情報のような容量の大きなデータを撮像装置の制御データとともに転送できる等、画像情報等のデータの受け渡しを行いながらリアルタイムで撮像装置を遠隔操作することが可能となる。
また、本実施の形態では、従来ビデオカメラ内で固定的に設定されていた制御内容をパソコン103から変更することが可能となるので、パソコン103側に被写体(被写界)に対応する種々のカメラ制御条件を記憶しておき、ビデオカメラ内に多くの制御情報を予め記憶することなく、撮影する被写体の種類に応じてビデオカメラ制御条件をパソコン103から設定することが可能になる。また、パソコン103に予め設定されているビデオカメラの制御条件に対して、操作者がパソコン103上で調節を加え、撮影者の好みに合ったビデオカメラ制御条件を作り出すことが可能になる。さらに、操作者がパソコン103上で調節を加える際に、実際に撮影してきた画像を予めパソコン103に取込むことにより、調節後の撮影画像をパソコン103上で事前にシミュレーションできるようになる。
[応用変形例]
なお、本発明は、上記の実施形態に限定されることなく、例えば、夜景等の特定の1つの撮影条件に対応する絞り、シャッタスピード、ホワイトバランス等の制御データをパソコンに記憶した場合には、ビデオカメラとの接続を検出することにより、完全に自動化して上記制御データをビデオカメラに送信することも可能である。また、動画を撮影するビデオカメラ以外の静止画を撮影するデジタルカメラ等の撮像装置に適用することも可能である。