以下、添付図面に従って本発明に係る実施形態の一例を詳細に説明する。
図1は実施形態のカメラ制御装置のブロック構成図を示している。図示において1001がカメラ制御装置であって、たとえばパーソナルコンピュータをベースにしている。1003はカメラ制御装置1001の制御対象であるビデオカメラ(以下、単にカメラという)であり、制御内容は撮影条件としてのズームは勿論、パン及びチルト、露出等である。この為、カメラ1003は不図示の雲台を有している。カメラ1003とカメラ制御装置1001とは、たとえばパーソナルコンピュータが通常備えているRS232Cインターフェースで接続されている。
さて、カメラ制御装置1001には以下の構成を備えている。
1017はカメラ1003を上記インターフェースを介して各種制御信号を出力するカメラ制御手段1017、1018はカメラ1003の撮影映像を画像キャプチャ装置などで入力する映像入力手段、1011はネットワークアダプタ等で本装置と他の装置とが情報交換を行うための通信インターフェース手段であり、これらの資源に加え、コンピュータのCPUや記憶装置や補助記憶装置などの各資源を利用したプログラムおよびメモリデータとして実現される、コマンド解釈手段1012、受付コード生成手段1013、時限手段1015、画像記憶手段1019、そして予約登録手段1014を備える。
外部装置1002は、たとえば、WWWサーバやWWWブラウザであり、これらの間は、HTTPプロトコルで通信を行う。すなわち、WWWブラウザからは、文書データやイメージデータの格納先であるWWWサーバに対して、対象とするデータの格納先が示されたURLに従ってその情報を提示する。WWWサーバは、これに応えて、対応する文書データやイメージデータをWWWブラウザに返答する。
本実施形態では、通信インターフェース1011は、WWWサーバで実現されている方式を用いる。すなわち、HTTPプロトコルで通信を行い、本実施形態の制御装置1001は、映像データの応用では、あたかもWWWサーバのようにふるまう。これは、WWWサーバの通信方法を本制御装置でも用いれば実現できる。
一般にWWW文書中にイメージデータを貼り込む時には、以下のような記述が用いられる。
<img src="http://www.foo.co.jp/image001.gif">
この意味は、www.foo.co.jpというWWWサーバのimage001.gifというファイルに格納されたイメージデータの転送を要求することを示しており、ブラウザの画面にその転送されてきた画像の表示が行われることになる。
本実施形態では、このような仕様をそのまま活用しつつ、遠隔でカメラを制御しようとするものである。
すなわち、本実施形態では、上記のファイル名に相当する部分の文字列を、コマンドとして解釈するのである。要するに、カメラアングルを指定するパン、チルト、ズーム等は、それぞれ英字の「P」、「T」、「Z」で表わし、その後に、それぞれの制御量を数字で表す。なお、絞りを制御する、或いは絞りの制御も可能な場合にはたとえば英字「I」を「Z」の後に記述すればよい。ただし、実施形態におけるカメラ制御装置は、この絞りは自動で行っているので、この記述がない場合にはカメラ制御装置側にその制御を委ねることを意味する。
たとえば、パン角度は-50度から50度、チルト角度は、-20度から20度、ズームは1から8の8段階を選べるようなカメラがあるとする。この場合において、たとえば、パン角度を20度、チルトを5度、2倍ズームで撮影し、gif形式の画像データとして貼り込みたい場合は、以下のように記述する。なお、本カメラ制御装置のネットワークアドレスは、cam.foo.co.jpであるとする。
<img src="http://www.foo.co.jp/P20T5Z2.gif">
以上のような、HTML文書記述が外部装置1002からあった場合、WWWブラウザのサーバーであるカメラ制御装置1001は上記のHTML記述の文字列を出力し、画像データを得る。
つまり、通信インターフェース手段1011を介して、カメラ制御装置1001にこの要求が入ると、コマンド解釈手段1012が起動され、要求の解釈(上記HTML文字列)とそれに対する応答の処理が開始される。
実施形態のブラウザ(クライアント側で動作するプログラム)の構成を、図面は前後するが、図11に示す。
図11において、4001はブラウザソフトウェアモジュール、4002は該ソフトウェアモジュールによって用いられるレジスタであって、アクセスしている、又は、これからアクセスしようとするアドレスを記憶する。4004はブックマークファイルであり、例えば前述した様な
<img src ="http://ww.foo.co.jp/P20T5Z2.gif">
の如きアドレスを後に使用者により選択可能にストアしている。
4006は後述のフローにおいて設定されたアドレスのサイトを見つけることができなかった際に、警告表示を行うまでの時間を計時するためのタイマ、4100はブラウザがコンピュータから読み出し可能に格納されている記憶媒体であり、例えば、コンピュータのハードディスク、4200はコンピュータのモータディスプレイ、4300はコンピュータ本体、4400は通信ボードである。
また、101はカメラサーバのWWWインターフェイスであり、HTTPプロトコルに従ってHTMLで記述されたデータを解釈し、動作する。103は映像圧縮配送部105から出力される。
圧縮された画像データをファイルとして配送するための部分である。105は前述の映像圧縮配送部であり、本実施形態においては静止画圧縮機能と動画圧縮機能を有する。
静止画圧縮機能としては、例えばJPEG圧縮109が有り、動画圧縮機能としてはMPEG圧縮或いはH261等の圧縮方式が有る。
圧縮機能としてはこれに限らず、動画圧縮の場合でも同じ圧縮方式、例えばフレーム単位でJPEG圧縮を行うものであってもよい。かかる場合には静止画圧縮の場合と動画圧縮の場合とで、圧縮率を変える様にしてもよい。
111はカメラ制御部であり、静止画配送部103又は後述の動画ヘルパの指示に従いカメラ113を制御するための制御信号、パン、チルト、ズーム等を発生する。115はカメラ113を実際に制御するドライバである。
117はOSであり、本実施形態ではウィンドウズ(登録商標)である。119はハード構成を示し、画像圧縮を一部実行するためのハード、パーソナルコンピュータPC、シリアルインターフェース、ネットワークへデータを入出力するための例えばモデム等のネットワークインターフェース用ハードを含む。
122はクライアントのハード構成を示し、ネットワークインターフェース用ハードとパーソナルコンピュータPCを含む。かかるコンピュータPCの構成については後述する。125は動画ヘルパ/又はプラグインと呼ばれるソフトウェアであり、ウィンドウズ(登録商標)、マックOS、Solaris等の各OSに対応し、いずれのプラットフォームでも動作する。
尚、125は前述の様にHTTPとは異なるプロトコルにて連続して動画像を出力する。4001は実施形態におけるWWWブラウザソフトウェアである。
さて、通信インターフェース手段1011を介して、カメラ制御装置1001に上記要求が入った場合の処理を図2のフローチャートに従って説明する。
まず、ステップS101で、ファイル名として記述されたコマンドを解釈する。すなわち要求の先頭が「P」であれば撮影コマンドと認識し、ステップS102に進む。
なお、かかるステップS102の実行が可能、すなわち、指定されたパン、ズームが行える場合には、クライアント側である外部装置1002へアクノリッジを返す。
ここでは、カメラ制御手段1017を介し、指定されたパン、チルト、ズームの各値でカメラ1003を操作し(ステップS102)、撮影された画像を指定された方法の画像フォーマットに変換し、通信インターフェース手段1011を介して要求元の外部装置1002に返答する。外部装置1002は、この画像データを記憶し、それを本来の発信元に転送することになる。
このとき、通信インターフェース手段1011では、HTTPプロトコルを用いるため、画像フォーマットに応じた内容種別情報やステータス情報等が先頭に付加される。そして、本処理を終了する。
これにより、HTML文書に、あたかもWWWサーバのファイルに格納されたイメージデータのように撮影された映像が貼り込まれて表示されるようになる。また、ステップS101における条件判断で、要求の先頭が「R」であれば撮影日時の予約コマンドと認識され、ステップS104の条件判断を介し、ステップS105に進む。
予約コマンドは、英字「R」で始まり、年、月、日、時、分をそれぞれ整数で表し、それらをピリオドで区切ったものが続く。そして、その後に撮影条件であるパン・チルト・ズームの指示が続き、最後には、画像フォーマットを表す名称を付ける。なお、撮影条件がない場合には、その撮影日時時点でのカメラアングルが採用されることになる。
たとえば、1996年7月6日13時15分にパン角25度、チルト角0度で3倍ズームの映像をgifフォーマットで撮影予約したい場合には、以下のように記述する。すなわち、
<img src="http://www.foo.co.jp/R1996.7.6.13.15.P25T0Z3.gif">
以上のような、予約コマンドが指定された場合、ステップS105では、受付コード生成手段1013より、ユニークな識別番号を受付コードとして受け取る。たとえば、生成要求ごとに+1されるカウンターとして実現してもいいし、要求された年月日の時刻を表す数値によって実現してもよい。
そして、この受付コードと予約時刻と撮影条件と画像フォーマットの情報を予約登録手段1014が有する不図示の記憶装置に登録し(ステップS106)、受付コード(受け付けた旨を報知するコード)を通信インターフェース手段1011を介して要求元の外部装置1002、ひいては本来のエンドユーザに向けて返答する(ステップS107)。
なおこの時も、返答内容が受付コードであることを示すために内容種別情報やステータス情報等が先頭に付加される。そして、本処理を終了する。
単純にこのような撮影予約を含んだHTML文書を作成して、それを、一般のWWWブラウザで表示しようとした場合には、画像データの代わりに受付コードが帰ってくるだけなので、結局のところは画像は表示されない。
しかしながら、WWWサーバのCGIプログラム等によって、カメラ制御装置1001に対して、撮影予約をWWWブラウザと同様の方法で行い、受付コードが得られた後、後述する画像取り出しコマンドでその受付コードを指定したイメージデータ記述を含んだHTML文書を生成するれば、この生成された文書をWWWブラウザで表示すると、予約したとおりに撮影が行われ、その画像データが表示されるようになる。
つまり、カメラ制御装置1001は、予約登録手段1014に登録された予約時間になると、登録されたカメラアングルでカメラ1003を制御し、その撮影を行ない、それを画像記憶手段1019に適当な名前、たとえば予約番号をファイル名とし、指定された形式で記憶する。この後、外部装置1002から取り出しコマンドが送られてくると、その取り出しコマンドに適合する画像データを画像記録手段1019から読出し、それを外部装置1002(エンドユーザの端末に相当する)に、指定された形式で転送されることになる。
なお、取り出しコマンドは、英字「G」で始まり、受付コードが続き、最後には、画像フォーマットを表す名称を付ける。
ここの受付コードは、予約を行ったときに外部装置1002に返答されるものである。たとえば「12543」が受付コードとして返された時、撮影予約した画像を撮影後に取り出す時には、以下のような記述を用いる。すなわち、
<img src="http://www.foo.co.jp/G12543.gif">
である。
予約登録手段1014内の記憶装置には、たとえば、図3のような、表(テーブル)の形式で各種情報が格納される。なお、ここでは予約登録手段1014自身が備える記憶装置を例にしたが、たとえばカメラ制御装置1001の画像記憶手段1019を活用しても構わないし、記憶手段はいかなるものであっても良い。
なお、取り出しコマンドの最後に付加されている画像形成を意味する文字列(この場合には「gif」であるが、原則的に予約したときと同じにする必要がある。ただし、異なる場合には、カメラ制御装置が、画像記憶手段1019に予約番号で格納されている画像を、新たに指示された形式に変換し転送するようにしてもよい。
説明が戻るが、図3は、上記の予約例の場合で、受付コードが「12543」であったときの状態を示している。すなわち、まず、撮影日時情報、受け付けコード、撮影条件、画像形式(画像フォーマット)である。
また、画像記憶手段1019は、たとえば、図4のような、形式で管理されている。ここでは受け付けコード(予約コードに対応し、ファイル名と同様の意味である)、画像形式、そして実際の画像データが格納される。なお、画像記憶手段1019はいかなる形式の記憶装置でもよいが、容量的に十分なものが望まれる。具体的には、ハードディスク装置や光磁気ディスク装置等である。
上記の通りであるが、実際に取り出しコマンドを受信した場合の処理手順を以下に説明する。
ステップS101における条件判断で、要求の先頭が「G」であると、次いでステップS104に進み、ここでの判断も否になるので、ステップS108に進むことになる。ここでは画像取り出しコマンドであると認識することになるから、ステップS109に進み、取り出しコマンドに含まれる予約コードに基づいて、画像記憶手段1019に保存されるデータを検索する。
そして、画像取り出しコマンドとして記述された受付コードと同じ値で格納されているかどうかを判断し(ステップS110)、登録されているならば、その画像データを取り出し、通信インターフェース手段1011を介して要求元の外部装置1002に向けて転送する。
このときも、通信インターフェース手段1011では、HTTPプロトコルを用いるため、画像フォーマットに応じた内容種別情報やステータス情報等が先頭に付加される(ステップS111)。
そして、ステップS112で、いま取り出した画像データが格納されている画像記憶手段1019の欄を消去する。そして、本処理を終了する。
また、ステップS110で、指定された受付コードに対応する画像データが格納されていないと判断したら、対象画像が未撮影、或いは既に転送されて消去されていることになるのでエラー情報を通信インターフェース手段1011を介して要求元の外部装置1002に返答し、本処理を終了する。
また、ステップS108で、外部装置1002よりの要求の先頭が「G」でもない場合は、未定義コマンドであるというエラー情報を通信インターフェース手段1011を介して要求元の外部装置1002に返答し、本処理を終了する。
次に実施形態におけるクライアント側の動作処理を図12、13に従って説明する。
ステップY−1:先ずブラウザであるソフトウェアによって管理されている設定アドレスレジスタ4001に初期アドレスを設定する。
かかる初期アドレスは使用者が予め指定したものでも良いし、また、ブラウザの供給者によって予め設定されていたものでも良い。
ステップY−3:前記設定アドレスレジスタ4001がクリアされているか否かを判別する。クリアされている場合には、指定されたアドレスが無いので、そのまま待機する。
ステップY−5:設定アドレスレジスタ4001に設定されたアドレスのサイトのサーチを開始する。
ステップY−7:設定されたアドレスのサイトが見つかったか否かを判別する。見つかればステップY−21へ、見つからなければステップY−9へ分岐する。
ステップY−9:設定されたアドレスのサイトが見つからない間、タイマ4006により計時を行う。
ステップY−13:サイトが見つからない旨の警告表示をモニタディスプレイ4200上に行う。
ステップY−15:一旦、設定アドレスレジスタをクリアし、ステップY−3に戻る。
ステップY−21:設定アドレスのサイトを見る。即ち、かかるサイトと接続が行われた場合には、かかる設定アドレス内に前述したステップS101において説明したと同様に、「P」があるか否かに応じて、撮影コマンド、カメラの制御パラメータが有るか否かを判別する。“否”の場合にはY−27へフローは分岐する。
ステップY−23:カメラの制御パラメータが有る場合には、かかる制御パラメータに対して設定アドレスのサイトがAcknowlegeを返したかを判別する。
ここで、設定アドレスのサイトが、かかる制御パラメータの実行が可能、即ち例えば、カメラサーバ側が前述の制御パラメータに従ったカメラの制御の実行が可能であれば、前述のステップS101において説明した様にAcknowlegeが返る。
ステップY−25:Acknowlegeがない場合、或いは前述の制御パラメータに従ったカメラの制御が不能である旨の信号がカメラサーバから送られた際にはその旨をディスプレイ4200上に表示する。
ステップY−27:画像データがファイル転送されてしまったか否か(完了したか否か)を判別する。
ステップY−29:ファイル転送が完了していない際には、ユーザから他の指示、例えば別サイトのアクセスが指示されたか否かを判別する。
ステップY−31:かかる指示に従った動作を行う。
ステップY−33:ブックマークにアドレス追加がユーザによって指示されたか否かを判別する。かかる指示がされた際のモニタディスプレイ4200に表示された実施形態のブラウザウインドウの一例を図14に示す。
ステップY−35:指示に従い図14(A)の様にブックマークの追加を実行する。ここで、接続しているサイトは、カメラサーバであるので、図示の如く、通常のブックマークは選択不能状態として表示され、逆にカメラブックマークが選択可能なようにする。
ステップY−36:再びカメラパラメータに対するAcknowlegeが有るか否かを判別する。“否”であれば、前述のY−29へフローは分岐する。
ステップY−37:かかるステップにフローが分岐した場合には、カメラ制御を行うことができるサーバに接続されている。従って、ビデオカメラの制御メニューを図15の様に表示する。
つまり、現在選択されているサイト(図示の場合には○×△CameraView)のアドレスとカメラ制御用の文字列で構成されるファイル転送用の文字列がカメラ用ブックマークに追加されることになる。
ステップY−39:制御指示が使用者によりなされたか否かを判別する。
ステップY−41:制御指示があれば、かかる指示に応じたパラメータを設定アドレスレジスタに組み入れて、Y−3にフローは戻る。
ステップY−43:ブックマークからのユーザに依るアドレス指示が有るか否かを判別する。
ステップY−45:アドレス指定があれば指定されたアドレスを設定アドレスレジスタにセットする。
以上説明したように、本実施形態に依れば、カメラブックマークにサイトのアドレスだけではなく、かかるアドレスに対応するサイトにビデオカメラの如き画像入力手段があれば、かかる画像入力手段の制御用情報も記憶しているので、ユーザーの好みの画角、ズーム比、或いはビデオカメラのシャッタ速度等の制御情報をブラウザ側に登録しておけば、かかるサイトにアクセスするだけでビデオカメラの状態をインターネットを介して自動的に設定でき、使い勝手が向上する。
また、カメラ制御部111が静止画配送部103からのカメラ制御の支持と、動画ヘルパ/プラグイン125からの制御の指示のいずれも受信し、ビデオカメラ113の制御を変えているので、動画伝送と静止画伝送のいずれにもビデオカメラ113を兼用することができる。
図15はカメラ制御メニュー5001がフローチャートのステップY−37において画面上に表示された例を示している。このメニューは対象サイトであるカメラサーバーから制御可能を示すアクノリッジを検出して表示するものである。
同図に示した例では、アクセス中のサイトのアドレスが
http://www.foo.co.jp/P20T5Z2
として示されている。
5000はカメラから得られている画像を示している。又、カメラ制御パネル5001は、ブラウザにアクティブなウインドウとして表示されている最中においては、常に手前側にインポーズ表示されている。
5002は接続されているカメラの撮影可能範囲を示しており、内部の5012はブラウザに表示されている映像のアングルを示している。5014,5016はそれぞれビデオカメラのパン状態、チルト状態をユーザが設定するためのバーであり、ユーザがマウス5050によってその状態を自在に設定できる。かかる設定に従いカメラ制御パラメータが前述したステップY−41においてサイト側に送信されるよう設定されることになる。
5018はビデオカメラの明るさ(アイリス)の調整を行うためのバー、5020はビデオカメラのズーム比を調整するためのバーである。
なお、かかるアイリスの調整の為のパラメータは文字列中の「i」に続く数値で表わされる。たとえば、図15では「I5」としてロケーションの欄に示されている。
従って、もっとも好みのアングルを見つけだした場合には、その先に説明したようにカメラブックマークに登録しておきさえすれば、いつでも同じアングルでの、生の映像を観賞することができる。
以上のようにして、外部装置1002と本発明の制御装置1001との情報交換が行われる。
次に、予約登録手段1014に登録された予約データに基づき、カメラ制御と撮影と撮影結果の格納を行う時限手段1015について説明する。
時限手段1015においては、一定時間間隔、たとえば1分おきに、時限プログラムが起動される。これは、コンピュータのタイマーを利用したりすれば実現できる。
時限プログラムの動作を、図5のフローチャートを用いて説明する。
まず、現在時刻を制御装置1001のタイマーから読み出し(ステップS201)、ステップS202に進む。
ステップS202では、予約登録手段1014から順に一欄づつ登録された予約項目を取り出す。ステップS203で、すべて取り出し終ったと判断できたら本処理を終了し、予約項目が取り出せたなら、ステップS204に進み、対象の予約項目における設定時刻が、現在時刻より未来であるか否かを判定し、現在時刻が設定された時刻に至っていないと判断したら、ステップS202以降の処理を繰り返す。
さて、現在時刻が設定時刻以上になっていると判断した場合には、ステップS205に進み、取り出した予約項目の撮影条件に従って、カメラ制御手段1017を介しカメラ1003を制御し、撮影を行う。そして、撮影された画像を予約項目で指定された方法の画像フォーマットに変換し、この画像データを受付コードと画像フォーマット情報とともに画像記憶手段1019に格納する(ステップS206)。
続いて、現在取り出した、予約項目を予約登録手段1014から消去し(ステップS207)、ステップS202に戻って処理を繰り返す。
以上のようにすることで、予約通りの撮影が行われ、その結果が保管され、後に、画像取り出しコマンドが外部装置1002から要求されると、この画像データが返答されることになる。
以上のように、実施形態におけるカメラ制御装置をWWWシステムのネットワークに接続し、実施形態のカメラ制御装置のアドレスにカメラの撮影条件の記述を加えたURLをイメージデータのソースとして記述するだけで、簡単に遠隔のカメラを操作したライブ画像をWWW文書中に貼り込むことが可能になる。なお、これだけを実現する場合には、受付コード手段1013、時限手段1015、画像記憶手段1019、予約登録手段1014のそれぞれは、不要であり、コマンド解釈手段1012のステップS104以降のステップは不要である。
また、時限手段1015、画像記憶手段1019、予約登録手段1014を設けたことにより、WWWサーバのCGIプログラムなどを利用すれば、カメラ撮影の予約を行い、その結果を後刻WWWページに取り込んで表示を行うことが可能になる。特に、ネットワークが混雑するような時間帯に遠隔のカメラで撮影しようとしても、画像の転送に時間がかかり、思うように画像データを収集できないが、本実施形態によれば、その時間帯でそれぞれ特定のカメラアングルで必要な時刻分だけあらかじめ予約を行っておき、夜間等、ネットワークがすいた時に、蓄積された画像データを取り出して利用することができるようになる。
特に、同一カメラアングルで、短い間隔で複数枚の画像を撮影することが、ネットワークの伝送容量の大きさに関わらず可能となる大きな効果が得られる。
もちろん、ここでは、外部装置1002とのインターフェースをHTTPプロトコルとして説明したが、どういう通信インターフェースを用いても構わない。
なお、本実施形態では、予約に対する撮影データを同定するために受付コードを用いたが、受付コード発生手段を用いずに、画像要求する外部装置1002(エンドユーザ側)側で、ユニークな要求番号を生成し、予約コマンドの一部として要求を行い、制御装置では外部装置1002と要求番号との組みにより、対象となる画像データを同定する方法を用いてもよい。
また、上記の予約コードを発信元に通知する際、パスワードを発行して通知し、次回、取り出す際には予約コードと共にパスワードを付けて初めて転送できるようにしてもよい。少なくとも、このようにすると、第3者がたまたま同じ予約番号を付して転送要求を発したために、そのファイルが削除されてしまう、という問題は回避できる。
また、予約時刻は分単位としたが、秒単位やミリ秒単位まで拡張しても構わない。
また、画像フォーマットは、gifを例に挙げたが、JPEGをjpgというファイルエクステンションで表現し、どちらかを切り替えられるようにしてもよい。
また、ファイル名をコマンドとみなしたが、URLのパラメータ記述を利用してもよい。
たとえば、パン、チルト、ズーム、画像フォーマットをそれぞれ、25度、5度、2倍、gifとしたとき、以下のように記述するようにしてもよい。
<img src="http://cam.foo.co.jp/cameraimage?P=20,T=5,Z=2,F=gif">
また、本制御装置にWWWサーバを同時に実装してもよい。その場合には、たとえば、WWWサーバのCGIプログラムとしてコマンド解釈手段1012のプログラムにcamctl.exeなる名称をつけ、以下のような記述を行うことで、実現できる。
<img src="http://cam.foo.co.jp/cgi-bin/camctl.exe?P=20,T=5,Z=2,F=gif">
更にまた、上記実施形態では、一度予約した画像の転送が完了すると、その画像データ(ファイル)を削除したが、場合によってはこの時点で削除しなくてもよい。
つまり、実際に撮影し、ファイルとして保存してから適当な時間は保管しておき、その時間を経過した場合には転送した、しないに拘わらず削除するのである。このようにすると、少なくとも複数のエンドユーザが同じ画像を見る機会を得ることができるようになる。
また、場合によってはパスワードを付与し、そのパスワードに合致する場合にのみ転送するようにしてもよい。
<変形例>
上述の実施形態においては、ブックマーク内のアドレスにカメラ制御用の文字列を挿入し、かかるアドレスを設定アドレスレジスタに挿入したので、カメラの使用者にとっては図15に示されるようにアクセスしようとしているサイトのアドレス(図15においてはロケーションとして示されている)の欄にカメラ制御文字列が表示されてしまい、使用者から見るとわずらわしくなるという問題が発生する可能性がある。
そこで、かかるロケーションの欄には、カメラ制御用の文字列は表示させることなく、アドレスのみを表示させるようにしても良い。かかる制御のためには、ブラウザのソフトウェアモジュールが図14(A),(B)に示したブックマークとカメラブックマークとを判別するステップを有し、カメラブックマークを判別した場合には、かかるカメラ制御用の文字列を「P」から判断し、それ以降の文字列を表示させない様にすればよい。
かかる方法により、カメラブックマックに指定されたアドレスの表示例を図16に示す。
かかるアドレスの表示方法に従えば、カメラ制御文字列を表示させることがないので、表示が見易くなるという効果を奏する。
また、本実施形態においては、対象サイトのアドレスと画像入力手段の制御情報とをカメラブックマークに登録したが、これに限らず、対象アドレスのみカメラブックマークに登録し、該ブックマークに記憶されたアドレスとは別のファイルとして格納するようにしても、本発明の範疇に含まれる。
要は、対象サイトのアドレスと該画像入力手段の制御情報を関連付けて記憶しておけばよい。
<第2の実施形態>
上記実施形態(第1の実施形態)では、一度に一画像しかカメラ撮影予約ができなかった。
本実施形態においては、予約コマンドを「+」で複数個結合してできたファイル名に画像フォーマットを表すファイルエクステンションを付加して、一度に複数の時刻やカメラアングルの予約を可能にさせようとするものである。
たとえば、1996年7月6日13時15分と30分と45分にパン角25度チルト角0度で3倍ズームで撮影し、3枚の画像をgifフォーマットで後に取り出す場合には、以下のように記述する。
<img src="http://www.foo.co.jp/R1996.7.6.13.15P25T0Z3+R1996.7.6.13.30P25T0Z3+R1996.7.6.13.45P25T0Z3.gif">
ここで、本明細書では、「"」と「"」とで囲まれている文字列が2行以上にまたがって表示されているかもしれないが、実際の記述は、改行を含まない、一行で記述する。
なお、日時や時間が同じであったり、カメラアングルが同じである場合は、それらを省略可能としてもよい。その場合は、上記と同じ予約を以下のように記述できる。
<img src="http://www.foo.co.jp/R1996.7.6.13.15P25T0Z3+R....30+R....45.gif">
なお、この記述でピリオドが連続する部分は、各ピリオドで挟まれる数字は一番最初に設定した数字と同じであることを示している。これにより、同じ日付等であれば情報量を少なくすることが可能になる。
さて、本第2の実施形態の基本構成は、第1実施形態と以下の変更点を除き実質的に同じ構成で実現できる。
すなわちコマンド解釈手段1012における手順プログラムの、ステップS106、ステップS111、ステップS112をそれぞれ上記「+」で示された形式に従って処理するようにする。
なお、これに伴い、図3の予約テーブルにおける受け付けコードを、たとえば“12543-1”、“12543-2”、“12543-3”等のようにし、画像を記憶する際にもこれらの予約コードに従って格納する。そして、取り出しコマンドが来た場合には共通部分の予約コード(この場合には“12543”)を探し出し、ハイフンの後の数字の順序に従って画像データをあらためて、複数枚の画像データが含まれるひとつの画像データとしてフォーマットし直し通信インターフェース手段1011を介して要求元の外部装置1002に返答する。
このときも、通信インターフェース手段1011では、HTTPプロトコルを用いるため、画像フォーマットに応じた内容種別情報やステータス情報等が先頭に付加される。
そして、変更後のステップS112では、取り出した複数の画像データに関して、それぞれに対応する画像記憶手段1019の欄を消去する。
以上のように構成することにより、一度に多くの予約ができ、それらを複数枚の画像からなるひとつの画像データとしてまとめて取り扱うことが可能になり、それぞれの画像データごとに対応する複数の受付コードを管理する手間が省ける。
また、植物の成長記録等、間欠写真撮影などに適用すると、複数枚の撮影画像がひとつの画像データに納まる疑似動画として取り扱うことも可能になる。
また、その他の応用としては、第1の実施形態と同様にしても良いのは勿論である。
<第3の実施形態>
上記第2の実施形態では、同一のカメラアングルで同一時間間隔で間欠撮影する場合にも、撮影する数だけ予約コマンドを連結して指定しなければならなかった。
そこで、本第3の実施形態においては、予約コマンドの時刻指定の直後に、終了時刻と間欠時間を付加し、その後にカメラアングル等の撮影条件や画像フォーマットを指定することで、設定する情報量を削減する。ここでは、終了時刻は英字「t」に続く時刻で指定し、間欠時間は英字「e」に続く分単位の時間で指定する例を説明する。
たとえば、1996年7月6日13時15分と30分と45分にパン角25度チルト角0度で3倍ズームで撮影し、3枚の画像をgifフォーマットで後に取り出す場合には、以下のように記述する。
<img src="http://www.foo.co.jp/R1996.7.6.13.15t1996.7.6.13.45e15P25T0Z3.gif">
ここで、本明細書では、「"」と「"」とで囲まれている文字列が2行以上にまたがって表示されているかもしれないが、実際の記述は、改行を含まない、一行で記述する。
もちろん、この場合も終了時刻の日時や時間が同じであった場合は、先に説明したように省略可能としてもよい。その場合は、上記と同じ予約を以下のように記述できる。
<mg src="http://www.foo.co.jp/R1996.7.6.13.15t....45e15P25T0Z3.gif">
本第3の実施形態の基本構成は、第1実施形態と以下の変更点を除き実質的に同じ構成で実現できる。
すなわちコマンド解釈手段1012が実行するプログラムのステップS106、ステップS111、ステップS112をそれぞれ、上記仕様に合うように変更する。また、同時に時限手段1015におけるステップS207も上記仕様に合うように変更する。
また、この場合における、予約登録手段1014に登録されるテーブル形式は図6のようになる。
すなわち、図3のレコードに新たに、撮影の終了時刻及びその間欠時間を付加することになる。
一方、コマンド解析手段1012は、ステップS106では、要求された予約コマンドが、終了時刻と間欠時刻を持つ形であったら、予約時刻を撮影時刻として、終了時刻、間欠時間、受付コード、撮影条件、画像フォーマットとともに、予約登録手段1014に登録する。
また、要求された予約コマンドが単純な予約であり、終了時刻と間欠時刻を持たなかったら、終了時刻は撮影時刻と同じにし、間欠時刻は1に設定する。
ステップS111では、同じ予約コードで登録されている複数の画像データを取り出し、あらためて、複数枚の画像データが含まれるひとつの画像データとしてフォーマットし直し、通信インターフェース手段1011を介して要求元の外部装置1002に返答すれば良い。
このときも、通信インターフェース手段1011では、HTTPプロトコルを用いるため、画像フォーマットに応じた内容種別情報やステータス情報等が先頭に付加される。
また、ステップS112では、取り出した複数の画像データに関して、それぞれに対応する画像記憶手段1019の欄を消去することになるのは理解できよう。
一方、時限手段1015は、ステップS207で、取り出した予約項目の間欠時間を撮影時刻に加えた情報で、登録された予約情報を更新し、撮影時刻が終了時刻より未来になった場合に、この項目を、予約登録手段2014から消去するようにする。
以上のように構成することで、間欠写真が短いコマンドで、簡単に取れるようになる。
特に、長期間に渡って間欠写真を取る場合、第2の実施形態のような方法だと、コマンドが非常に長くなり、実質的には実現できなくなる場合が多いが、本第3の実施形態によれば、画像データを蓄積する記憶装置の記憶量さえ充分に用意すれば実現できるようになる。
<第4の実施形態>
上記第3の実施形態では、間欠撮影した結果を複数枚の静止画データとして取り出す形態を取ったが、本第4の実施形態では、動画データとして取り出す形態も付加する例を説明する。
動画データとして取り出す時には、ファイルエクステンションをmpgにする。たとえば、以下のように記述する。
<img src="http://www.foo.co.jp/R1996.7.6.13.15t....45e15P25T0Z3.mpg">
本第4の実施形態の基本構成を図7に示す。図示の如く、本第4の実施形態では、上記第1の実施形態と以下の変更点を除き実質的に同じ構成を有する。
すなわちMPEG1圧縮装置等の動画像圧縮手段2021が追加され、ファイルエクステンション“mpg”を解釈できるコマンド解釈手段4012を有する点である。
この場合のプログラムのステップS111では、画像フォーマット指定がjpgやgif等の静止画フォーマットであれば、同じ予約コードで登録されている複数の画像データを取り出し、あらためて、複数枚の画像データが含まれるひとつの画像データとしてフォーマットし直し、通信インターフェース手段1011を介して要求元の外部装置1002に返答する。
また、画像フォーマットが「mpg」と指定されていたら、同じ予約コードで登録されている複数の画像データを取り出しそれぞれの画像を復元し、動画像圧縮手段2021に引渡して圧縮をかけ、その結果の動画像データを通信インターフェース手段1011を介して要求元の外部装置1002に返答する。
このときも、通信インターフェース手段1011では、HTTPプロトコルを用いるため、画像フォーマットに応じた内容種別情報やステータス情報等が先頭に付加される。
以上のように構成することにより、画像フレーム間の関連を用いた圧縮が行われ、特に、余り変化のない間欠写真などでは、大幅な画像データ圧縮が行われるため、後に画像データを取り出す時の通信量を削減でき、通信時間を大幅に短縮することが可能になる。
<第5の実施形態>
第3の実施形態では、撮影するカメラアングルは同一のものであったが、本第5の本実施形態においては、予約コマンドの時刻指定の直前に、制御変数の定義を付加し、その後に時刻指定、その後にカメラアングル等の撮影条件や画像フォーマットを指定した繰り返し撮影が出来るようにする。
制御変数の定義は、「$(」+「定義本体」+「)」の形式を採用する。ここで、定義本体には2つの書き方を定める。1つは初期値と終値、増分を指定するもので、増分が正か負かに依って更に2つの書き方に分かれる。また別の書式は制御変数のとる値を全て書き下す書き方である。すなわち、$(<制御変数>=初期値,upto終値,up増分)$(<制御変数>=初期値,downto終値,down増分)または$(<制御変数>=値1,値2,値3,値4,...値n)である。
ここで<制御変数>は英文字1文字以上からなる文字列で、制御変数の識別子である。
制御変数の参照は、「$(」+参照本体+「)」とする。参照本体は制御変数を含む4則演算式である。
たとえば、1996年7月6日13時15分に、パン角25度チルト角0度で3倍ズーム、パン角30度チルト角0度で3倍ズーム、パン角35度チルト角0度で3倍ズーム、で撮影(パン角が5度ずつ変化させて撮影)し、3枚の画像をgifフォーマットで後に取り出す場合には、以下のように記述する。
"http://www.foo.co.jp/R$(pan=25,upto35,up5)1996.7.6.13.15P$(pan)T0Z3.gif"
又は、
"http://www.foo.co.jp/R$(pan=0,upto10,up5)1996.7.6.13.15P$(pan+25)T0Z3.gif"
又は、
"http://www.foo.co.jp/R$(pan=35,downto25,down5)1996.7.6.13.15P$(pan)T0Z3.gif"
又は
"http://www.foo.co.jp/R$(pan=25,30,35)1996.7.6.13.15P$(pan)T0Z3.gif"
ここで、本明細書では、「"」と「"」とで囲まれている文字列が2行以上にまたがって表示されているかもしれないが、実際の記述は、改行を含まない、一行で記述する。
本第5の実施形態の基本構成は、基本的に第2の実施形態と同様であるが、コマンド解釈手段1012の処理プログラムにおけるステップS106は、図8に示すようになる。なお、「R」の次の文字が$である場合、これは制御変数の定義であるので、第5実施形態の予約コマンドとなる。
まず、ステップS501で「$(」で始まり「)」で終る1つの制御変数定義を取得し、ステップS502で全ての定義を取り出したかを検査する。
制御変数定義を全て取り出した後、ステップS503で制御変数を初期化する。
ステップS504でコマンドの残りの部分をスキャンし「$(」で始まり「)」で終る制御変数参照を検索し、検索された制御変数値で、先に初期化された該当する変数を置き換える。こうして、検索された制御変数の個数分の置き換えが完了すると、処理はステップS506に進み、上記処理で得た文字列を、先に述べた繰り返し撮影の予約コマンドとして解析し、ステップS105で生成された予約コードと画像フォーマット情報は同じにし、それぞれの予約コマンドで指定された予約時刻と撮影条件を、複数の予約として予約登録手段1014に登録する。
そして、ステップS507で次の段階になるよう、繰り返しによる制御変数を更新し、ステップS508で全制御変数が終了値になったと判断するまで、ステップS504以降の処理を繰り返す。
以上のようにすることで、カメラアングルを変化させた間欠写真画像が短いコマンドで、簡単に得ることができるようになる。
また、説明では制御変数の定義を1つだけ使ったが、この定義は複数書くことができる。その場合定義は入れ子になるものとする。
なお、本第5の実施形態では、繰り返し構文の導入について説明したが、同様にして、条件判断構文や変数定義、変数代入や四則演算などの構文を導入することもできる。
すなわち、コマンド解釈手段をプログラムインタプリタとして実現し、URLの内容をプログラムとしてみなして保持し、解釈実行させるようにできる。
このようにすると、複雑なカメラ制御等も自動的に実行できるようになる。
<第6の実施形態>
第5の実施形態では、撮影するカメラアングルの指定は全て同じURLに記述しなくてはならなかった。
そこで、本第6の実施形態においては、予約コマンドの一部をマクロライブラリとして別に登録しておくことができるようにする。
ここでは、時刻指定と撮影条件を記述したデータを外部装置(ネットワーク上の適当なサーバー)に格納しておく例で説明する。
説明のため、たとえば、1996年7月6日13時0分から以下のカメラアングルに1分毎に順に変化させ撮影を行うことを想定する。
パン角25度チルト角0度で3倍ズーム(1996年7月6日13時0分)
パン角30度チルト角0度で3倍ズーム(1996年7月6日13時1分)
パン角35度チルト角0度で3倍ズーム(1996年7月6日13時2分)
パン角35度チルト角1度で4倍ズーム(1996年7月6日13時3分)
パン角35度チルト角2度で4倍ズーム(1996年7月6日13時4分)
パン角35度チルト角3度で5倍ズーム(1996年7月6日13時5分)
パン角35度チルト角4度で5倍ズーム(1996年7月6日13時6分)
パン角35度チルト角5度で6倍ズーム(1996年7月6日13時7分)
パン角35度チルト角5度で7倍ズーム(1996年7月6日13時8分)
パン角35度チルト角5度で8倍ズーム(1996年7月6日13時9分)
これを指示するコマンドが格納されたファイルを、第2の外部装置に、
http://www.bar.co.jp/camcon-a.ctl
として格納しておく。つまり、この第2の外部装置のアドレスはwww.bar.co.jpである。
この場合のファイルの内容は、たとえば、以下のようになる。
R1996.7.6.13.0P25T0Z3+R1996.7.6.13.1P30T0Z3+R1996.7.6.13.2P35T0Z3+R1996.7.6.13.3P35T1Z4+R1996.7.6.13.4P35T2Z4+R1996.7.6.13.5P35T3Z5+R1996.7.6.13.6P35T4Z5+R1996.7.6.13.7P35T5Z6+R1996.7.6.13.8P35T5Z7+R1996.7.6.13.9P35T5Z8.gif
これを利用するためカメラ制御装置に与えるコマンドは、「%23(」で始まり、URLが引続き、「)」で終る形式にする。上記の場合には、そのコマンドファイルのアドレスを知らせることが必要になるので、以下の通りになる。
"http://www.foo.co.jp/%23(httpd%3A//www.bar.co.jp/camcon-a.ctl)"
本実施形態の基本構成は図9に示す通りになる。なお、第5実施形態と比較すると、コマンド解釈手段6012が上記コマンドを解釈できるようになった点と、第2の外部装置(コマンド文字列を有するファイルを記憶保持しているサーバ)と接続状態にある点である。
コマンド解釈手段6012の動作を図10のフローチャートに従って説明する。
ステップS621で、ファイル名として記述されたコマンドを解釈する。
要求の先頭が「%23」であれば外部参照コマンドと認識し、ステップS622に進む。
このステップS622では、「(」と「)」にはさまれた部分を、コマンドが記述されて格納されたファイルの指定のURLとみなし、このURLにしたがってファイル転送要求を発する。上記の例では「www.bar.co.jp」にファイルが格納されているわけであるから、図10における第2の外部装置1004に要求を発することになる。
そして、ステップS623で、返答を待つ。この結果、上記のような、長い予約コマンドが返される。ここで解釈した外部参照コマンドをこれに置き換えるようにして展開し、以降のコマンド解釈に適用できるようにする(ステップS624)。この後ステップS101に進むことになる。
なお、ステップS621で、外部参照コマンドではなかった場合も、ステップS101に進むことになる。これ以降は、第1の実施形態での説明に準じたものであるので、その説明は省略する。
また、第1の実施形態だけでなく、第2〜第5の実施形態にもそれぞれ適用できるのも勿論である。
以上のように構成することで、複雑な時間予約やカメラアングルを複雑に変化させた間欠写真が短いコマンドで、簡単に取れるようになる。
特に、第6の実施形態に従えば、インターネット上に複数のカメラ制御装置(つまり、複数のカメラ)があって、同じ撮影状態での画像を鑑賞する分には、1つのサーバーに撮影手順のコマンドを記述したファイルを格納しておけば、それを活用することが可能になる。
たとえば、カメラ制御装置が諸外国のいたる所に設置しているような場合であっても、それぞれを自分流の撮影条件で鑑賞することは勿論、第3者が登録した撮影条件に従って鑑賞することも可能になる。
また、第6の実施形態では、カメラ制御装置とカメラ制御用ファイルを記憶している外部装置を異なる装置のように説明したが、この2つの装置が同じであってもよい。その場合、URLは以下のように書ける。
"http://www.foo.co.jp/%23(httpd%3A//www.foo.co.jp/camcon-a.ctl)"
又は、URLが同じである場合に限って、
"http://www.foo.co.jp/%23(camcon-a.ctl)"
もちろん、最初に要求をかける外部装置にコマンドが格納されているならば、そのアドレスを用いればよい。その時は、第二の外部装置は不要である。
また、上記実施形態では特に説明しなかったが、一度に複数箇所からカメラ制御件獲得要求があった場合には、その中のいずれか1つに制御権を与えることになる。制御権を与えるのは、制御権のキューに格納された先頭のユーザにするものとするが、特定のユーザ等の場合には優先的に制御権を与えるようにしても良いであろう。
しかし、この制御権に関しては、本願発明に直接は関係がないので、これ以上の説明は省略する。
尚、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用しても良い。
また、本発明の目的は、上述した各実施形態の機能を実現するソフトウェア、たとえばブラウザとしてのソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出して実行することによっても、達成されることは言うまでのもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行ない、その処理によって実施形態の機能が実現される場合も含まれることは言うまでもない。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
以上説明したように本実施形態によれば、たとえばインターネット等の汎用ネットワークを介して、ビデオカメラを容易に遠隔操作する、よりエンドユーザにとって好ましい環境を提供することが可能になる。