以下、本発明の実施の形態を図1から図15までを用いて説明する。まず図1を用いて本実施形態で用いるコンピュータ装置を説明する。次に図2、図3、および図4を用いて本実施形態におけるデータ構造を説明する。図5および図11は本実施形態におけるメディアシーン情報表示編集装置の実行画面である。最後に図6〜図15の構造化フローチャートなどを用いて本実施形態の処理方式を説明する。
なお、本実施形態では説明を簡単にするため、映像データにユーザの作成した属性情報を付加する映像シーン情報表示方法について述べるが、本システムは、映像データだけでなく、音声データやスライドショーデータなど時間情報を有した他形式のメディアデータにも容易に適用できる。
まず図1を用いて、本発明の一実施形態で用いるコンピュータ装置を説明する。101はコンピュータ装置の本体であり、内部にCPU装置110とメモリ装置111を有する。また本コンピュータ装置本体101には、外部入出力手段として、キーボードやマウスなどのユーザからの入力を受け取る入力装置115と、CPU装置110で処理した内容をユーザに表示するためのディスプレイ装置113が用意されている。また本コンピュータ装置では、必要に応じて補助記憶装置114から、本実施形態の装置で用いるメディアシーン情報を読み込んだり格納したりすることができる。
本実施形態では、メモリ装置111または補助記憶装置114を用いて、メディアデータとメディアシーン情報群を格納している。また、CPU装置110とメモリ装置111により、メディアシーン情報群を抽出してディスプレイ装置113上に表示するメディアシーン情報抽出手段とメディアシーン情報表示制御手段、メディアシーン情報を加工するメディアシーン情報加工手段、およびユーザ入力に従った表示の変更を行うユーザ指示解析手段を実現している。
図2は、本実施形態で用いるメディアシーン情報のデータ構造の概念図である。本実施形態でのメディアシーン情報は、大きく分けて3つの部分から構成されている。1つ目は、時間情報を有したメディアデータである映像データ201の部分単位であるシーン、すなわち映像201中の部分であるシーンの時間存在位置を示す211,212,213などのデータである。これは、ユーザが属性情報を登録したい部分映像データ(シーン)を直接定義する情報である。2つ目は、ユーザが映像データ中のシーンに対して実際に登録したい属性情報221,222,223である。3つ目は、これら映像データの時間情報211,212,213とユーザが作成した属性情報221,222,223とを関連付けるためのリンク情報231〜234である。このように2つの情報の間をリンクで結ぶというデータ構造を用いることにより、すでにある映像データに対して、ユーザが後から簡単に属性情報を加えることが可能となる。
なお、本実施形態では、211,212,213のような映像データ(または一般的にメディアデータ)に直接関わるデータを「部分空間」(シーン)と呼ぶ。これは、本発明の方式で属性を付加できる映像データの部分は、図2のような時間的な区切りで区切った部分だけでなく、映像データの画面中の一部分に写っている人物の座標位置や3次元CG映像中の一部分である一つの球体の領域など、XY座標空間(3次元の場合はXYZ座標空間)における部分領域も指定可能なためである。本実施の形態では、映像データの時間的な部分を例に説明するので、映像データの時間的な区間を「部分空間」と呼ぶ。
図2内の符号について簡単に説明する。映像データ201は、人のシーン、車のシーン、および家と人のシーンの3つのシーンから構成されている。従来は、これらのシーンの内容を確認するには、映像データ201を再生するしか手段がなかった。また従来は、これらシーンに登場する人物の名前や年齢などのシーン情報を確認する手段はなかった。
本実施形態のシステムでは、このような映像データ201に、たとえばシーン情報として、人物Aの情報221を後から登録できる。人物Aの情報221(本実施形態では「属性情報」と呼ぶ)には、現在、人物の名前が「A」であり、人物の年齢が26歳であることが記録されている。またこの人物は、映像データ201のうち、0:00から0:01までの「部分空間1」(またはシーン1)211と、0:05から0:06までの「部分空間3」(またはシーン3)に登場している。このため、本実施形態のシステムでは、属性情報「Aさん」221と「部分空間1」211との間、および属性情報「Aさん」221と「部分空間3」213との間に、リンク情報「登場」231,232を付加している。
なお、属性情報としては、先の「Aさん」などの文字列以外にも、属性情報222のように「c:/car.doc」などと外部ファイルのリンク情報を埋め込んでもよいし、その他にも車や背景の色情報を光の3元色値(RGB値)で表現した情報や、あるアプリケーションだけが解釈できる特殊なバイト列データなどを埋め込んでも良い。
図3は、図2の概念的なデータ構造を、図1のコンピュータ装置101で実際に扱えるように変換したデータ構造の一例である。本実施形態では、1つの部分空間に関する情報や、1つの属性情報などを、C++プログラミング言語などで用いるオブジェクトデータとして扱う。C++のオブジェクトデータでは、複数の変数をまとめて管理できる。たとえば部分空間211の情報は、オブジェクトデータ311として表現される。部分空間の開始時間「0:00」はオブジェクト内の変数beginに、終了時間「0:01」は同じく変数endに、部分空間のもととなる映像データ201の情報は同じく変数file「sample.mpg」に、展開される。同様に、部分空間212,213も部分空間のオブジェクト312,313として表現される。
属性情報221は、オブジェクトデータ331に変換される。ただし属性情報221は複数の(属性名,属性値)の組を有するため、本実施形態では属性集合オブジェクトの中に「meta(属性名,属性値)」という別オブジェクトを複数持つ構造をとっている。同様にして、属性情報222,223は、属性情報オブジェクト332,333に変換される。
図2のリンク情報は、本実施形態では簡単のため、1本のリンクに対し、1つのリンクオブジェクトを用意している。リンクオブジェクトには、リンクの種別type、リンク元オブジェクトの参照情報src、リンク先オブジェクトの参照情報dstを登録できる。たとえば図2のリンク231は、リンクオブジェクト321に変換されている。リンク231の名称「登場」は、リンクオブジェクト321内の変数typeに格納される。リンクオブジェクト321の変数srcには、リンク231のリンク元である属性情報221を図3のオブジェクトに変換した属性情報オブジェクト331が登録される。本図では、リンク先を分かりやすく図示するために、srcの値を属性情報331の変数idである「Aさん」としているが、実際は属性情報オブジェクト331のメモリ上のアドレス値など、コンピュータ処理に向いた値を登録する。リンクオブジェクト321の変数dstも同様に、リンク231の先に示されている「部分空間1」に対応する部分空間オブジェクト311を示すことになる。以下同様にして、図2のリンク232,233,234は、リンクオブジェクト322,323,324に変換される。
最後に、本実施形態のシステムでは、それぞれ複数個ある部分空間オブジェクト311〜313、リンクオブジェクト321〜324、および属性オブジェクト331〜333を、部分空間の集合データ301、リンクの集合データ302、および属性の集合データ303に格納している。これら集合データを実現するには、C++ Standard Template Libraryなどに含まれているSet型を用いれば良い。これらのライブラリを用いれば、集合データから要素を一つずつ取り出す処理や、和や差などの集合演算の処理を簡単に実現できる。
なお、図2の概念図で示したリンクの実現方法については、本実施形態のリンクオブジェクトを作成する方法以外も適用できる。たとえば、属性情報オブジェクトに、部分空間オブジェクトを参照するポインタを配列として持たせる方法を用いても良い。同様に部分空間オブジェクトにも属性情報をポイントする逆参照を持たせても良い。
図4は、図3に示したデータ構造の仕様をより詳しく説明した図であり、オブジェクトのクラスの関連を表す図である。ここでのクラスとはC++のクラスなどオブジェクト指向プログラミングで用いる用語と同一である。また本図で示したクラスの表記方法は、UML(Uniformed Modeling Laguage)図式に基づいている。
図4において、図3の部分空間オブジェクトのクラスは、本実施形態ではクラス「Frag」404になる。また属性情報オブジェクトのクラスは、クラス「Attr」405になる。リンクオブジェクトのクラスは、クラス「Link」403になる。なお、本実施形態では簡単のため、これらFragとAttrのクラスオブジェクトを統一的に扱えるスーパークラス「Object」402を用意する。Objectを設けることにより、図3の部分空間の集合301と属性の集合303とを1つの集合として簡単に扱うことができる。Objectクラス402には、オブジェクトのクラスがAttrかFragを区別するためのメンバ変数classと、オブジェクトに名前をつけるためのメンバ変数idがある。
また、本実施形態では、オブジェクトの選択状態に応じてオブジェクトごとに色をつけて表示できるようにするため、selectColor変数も設けている。なおselectColorを設ける方法以外に、選択状態変数selectなどを設けて、オブジェクト表示時に選択状態に従って色を選ぶ方法を採っても良い。本実施形態では、さらに、selectColor変数をリスト型として実現することにより、1つのオブジェクトに複数の色を同時に登録できるようにしている。これにより、マウス選択状態の色だけでなく、選択されたオブジェクトに関連づけられている部分空間や属性情報などを別色で画面上に表示したり、ユーザが指定した様々な検索条件ごとに別々の色を登録することもでき、ユーザが画面を見た際に一目でオブジェクトの種別を確認できるようになっている。
Fragクラス404のメンバ変数には、図3で説明したbegin,end,fileがある。クラス「Meta」406は、複数の(属性名,属性値)の情報をAttrクラス405に持たせるためにある。Metaクラス406には、属性名を表すメンバ変数nameと属性値を表すメンバ変数contentsがある。Attrクラス405では、このMetaクラスオブジェクトを複数持つために、集合型のメンバ変数mlistを持っている。
Linkクラス403のメンバ変数には、図3で説明したtype,src,dstがある。srcとdstは、共にObjectクラスオブジェクトを参照できる。
最後にクラス「本システム」401について説明する。クラス「本システム」401には、表示・編集する対象となるシーン情報として、部分空間と属性情報の集合であるメンバ変数Sと、リンクの集合であるメンバ変数Lとを有している。
図5は、本実施形態のシステムの実行画面の一例である。メインウィンドウ501の中には、シーン情報を分かりやすく表示するための3つの(サブ)ウィンドウが表示されている。1つ目はタイムライン表示ウィンドウ502、2つ目はアイコン表示ウィンドウ504、3つ目はテーブル表示ウィンドウ503である。なお、これら以外にもシーン情報を画面上に表現できる手段があれば、これら3種類のウィンドウは表示しなくとも良い。また逆に、これらウィンドウはそれぞれ1枚だけでなくとも、それぞれ複数枚設けても良い。複数枚ウィンドウを設ければ、一つのシーン情報をより多面的に把握することが可能となる。
メインウィンドウ501には、メインメニュー506が設けられており、これによりシーン情報のファイルの読み書きや、編集操作、検索操作などを指示することができる。
以降では、タイムライン表示ウィンドウ502、アイコン表示ウィンドウ504、およびテーブル表示ウィンドウ503の順に内容を説明する。その後、ユーザの操作方法について説明する。
タイムライン表示ウィンドウ502では、画面上の横向きの時間軸に沿ってシーン情報を表示することにより、シーン情報間の時間的な関係を一見にして把握できる。本実施形態では、タイムライン表示ウィンドウ502に、属性付けの対象となる映像データ511、該映像に付随する音声データ512、およびユーザが付加した属性情報や部分空間などの情報を情報の種別ごとに表示したユーザデータ513,514,515が表示されている。なお、タイムライン表示ウィンドウ502では、ユーザデータが1本だけ時間軸上に表示されていれば良く(たとえば513だけ)、他のデータ511,512,514,515などは表示されていなくとも良い。また、時間軸の向きは画面内で設定されていれば、横向きだけでなく、縦向きでも、3次元表示中の奥行き方向でも構わない。図5では、時間として0:00から0:06まで時間区間のシーン情報を表示している。映像データ511では、該時間区間中のフレーム画像を表示している。音声データ512では、該時間区間中の音声波形グラフを表示している。
ユーザデータのうち「部分空間一覧」513では、本システムが格納しているシーン情報のうち、複数の部分空間オブジェクトを時間軸上に表現している。たとえば、図3「部分空間1」311は、時間0:00から0:01までの情報を表すデータであるが、この情報は図5では画面上の0:00から0:01までに表示されている部分空間バー521として表現される。同様に、図3の「部分空間2」312,「部分空間3」313は、部分空間バー522,523として表現される。このように部分空間オブジェクトは、メンバ変数begin,endの値に応じた画面上の座標位置に表示される。この時間座標変換は、タイムライン表示ウィンドウ502の位置と幅、および同ウィンドウ内の表示開始時間と終了時間から、単純な比例関係により計算できる。
なお、ユーザデータを「部分空間一覧」513、「字幕一覧」514、および「ズーム一覧」515のように分類して表示するためには、「部分空間一覧」用と「字幕一覧」用と「ズーム一覧」用の3つのシーン情報データを用意し、それぞれに対応するタイムライン表示ウィンドウを別途作成すれば良い。シーン情報データを別々に用意する簡単な方法としては、3つのシーン情報ファイルを開いたり、1つのシーン情報ファイル中に3つのパートを設けたりする方法がある。その他の方法としては、1つのシーン情報データから、「字幕一覧」に関する情報だけを検索し抽出することとしても良い。これは言い換えると、シーン情報データを図3に示したような集合として考えた場合、「部分空間一覧」用部分集合、「字幕一覧」用部分集合、「ズーム一覧」用部分集合を、抽出・表示することに相当する。
なお、これら複数の部分集合は、互いに背反でなくとも良く、共通部分を持っても良い。たとえば、図3の集合に対し、「Aさん一覧」部分集合と「家一覧」部分集合を定義した場合、「部分空間3」313はどちらの部分空間にも属する。タイムライン表示ウィンドウにて「Aさん一覧」部分集合と、「家一覧」部分集合とを別々に表示すると、「部分空間3」の部分空間バーは、どちらの表示にも現れることになる。
アイコン表示ウィンドウ504は、シーン情報に含まれる部分空間オブジェクト、または属性オブジェクトを、アイコン形式で視覚的に列挙表示するウィンドウである。本ウィンドウを用いることにより、シーン情報に含まれる複数のオブジェクトを視覚的に一覧表示でき、ユーザは一見にしてシーン情報の内容を把握できる。タイムライン表示では全体のうちある時間区間の間のデータしか表示できないが、アイコン表示ウィンドウであれば、ある条件に従ったシーン情報を時間を無視して列挙でき、より少ない画面スペースで多くのシーン情報を閲覧できる。
本実施形態では、アイコン表示ウィンドウに、図3の例で示した3つの部分空間、すなわち「部分空間1」311、「部分空間2」312、および「部分空間3」313の情報を、アイコン541,542,543として表示している。本実施形態の場合、アイコンは、オブジェクトの中身を視覚的に表現する画像データと、それに付随する文字列から構成されている。本実施形態では、部分空間オブジェクトのアイコンの場合、この画像データとして、メンバ変数beginの時間位置での、映像データのフレーム画像を用いている。これにより、部分空間の内容を視覚的に把握できる。属性オブジェクトを表すアイコンの場合や、音声データに対する部分空間を表すアイコンの場合は、映像データから簡単に画像を取得できないので、ある決まった図柄データを用いればよい。
なお、アイコン画像は、1枚の静止画でなくとも良い。たとえばアイコンに動画を用いる場合、部分空間のbeginからendまでの映像を常時再生すれば良い。その他、部分空間のbeginからendまでの任意の4枚程度の画像を並べたり切り換えたりして1つのアイコン画像としても良い。
テーブル表示ウィンドウ503は、シーン情報に含まれる部分空間オブジェクト、属性オブジェクト、およびリンクオブジェクトの内容(内容=メンバ変数の値)を表形式で表示するウィンドウである。本ウィンドウにより、タイムライン表示やアイコン表示では表示しきれなかった詳細な属性情報をより多く表示することができる。ここでは処理方法の詳細を説明しないが、本ウィンドウを用いて、ユーザは、内容の確認だけでなく属性値の追加、削除、および変更などを行うこともできる。
図5は、「部分空間3」523をマウス505で選択したときの画面であり、「部分空間3」に関連する情報がテーブル表示ウィンドウ503にすべて表示されている。たとえば531は、「Aさん」の属性として、「名前がA」で「年齢が26」であることを表している。532は「家」の属性情報を表している。
なお、本ウィンドウ503に属性情報ではなく部分空間オブジェクトの情報を表示する場合は、部分空間の名前と、メンバ変数begin,end,srcなどの値を表示すれば良い。本ウィンドウ503にリンク情報を表示する場合は、メンバ変数type,src,dstの値などを表示すれば良い。なお、部分空間オブジェクトやリンクオブジェクトの詳細を表示すると、表が大きくなり分かり難くなるので、属性情報だけを表に表示するようなオプションを用意しても良い。
また、表を見やすくするために、表の横にツリー構造の表示を追加しても良い。たとえば、現在531では、「attr,Aさん」の行の下にそのまま「名前」と「年齢」を表示しているが、ツリー構造の表示であれば、「attr,Aさん」を親ノードとし、「名前」と「年齢」をその子ノードとすれば、より分かりやすい表示となる。同様にリンクオブジェクトを親ノードとし、リンク先データを子ノードとして表示すれば、ツリー構造表示の操作だけで、リンク先の詳細な内容を確認できるようになる。
図5の最後の説明として、ユーザの操作方法について簡単に説明する。以降ではまずクリック時の選択操作を述べ、次に編集操作方法について述べる。
ユーザは、視覚的に表現されたシーン情報をマウス505を用いて操作することができる。たとえばユーザが「部分空間3」に対応するタイムライン表示(部分空間バー)523をクリックすると、部分空間バー523が選択表示される。この際、本実施形態では、アイコン表示ウィンドウ504に表示されている同一データ543も選択表示される。またこの際、本実施形態では、選択されたオブジェクト自身とそれに関連する属性情報オブジェクトが、テーブル表示ウィンドウ503に表示されるようになっている。
また、本実施形態では、オブジェクトがクリックされて選択状態になると、そのオブジェクトに関連する(すなわち、リンクが張られた)オブジェクトが、関連選択表示という、選択表示とは違う色で表現される。たとえば、「部分空間3」523と「字幕3」551および「ズーム2」552とに「包含」関係のリンクが張られていたとすると、「字幕3」551および「ズーム2」552は、選択中の「部分空間3」523とは別色で表示される。
また、本実施形態では、ある条件に従ったシーン情報だけを別の色で表現することもできる。たとえば、Aさんが現れるシーンを青色に、またあるCM映像だけを緑色に、またエンディングシーンを非表示に(透明に)、またあるシーンに登場する(と関連付けられている)人物をすべて赤色に、それぞれ表示することもできる。この具体的な操作方法や実現方法は、後の構造化フローチャートにて説明する。
以上のように本実施形態では、シーン情報中の複雑な関連情報を色分けして表示することにより、シーン情報をより簡単に把握することができる。
次に、本実施形態のシステムにおける編集操作方法について簡単に説明する。タイムライン表示ウィンドウ502では、ユーザはウィンドウ内の一時間点を指定して部分空間を追加・削除できる。また部分空間バーの時間位置をマウスのドラッグにより変更できる。また複数の部分空間を選択してリンクを設定することができる。アイコン表示ウィンドウ504では、部分空間や属性情報を追加・削除できる。テーブル表示ウィンドウ503では、属性値を変更することができる。部分空間、属性情報、あるいはリンク情報を追加・削除した場合は、図3で示した集合301,302,303に対して要素の追加・削除を行えば良い。オブジェクトの値を変更する場合は、ユーザが選択した座標位置から対応オブジェクト集合を探し出して、オブジェクトの値を変更すれば良い。より具体的な編集操作の実現方法については、図15の構造化フローチャートなどを用いて説明する。
次に、図6、図7、図8、図9、および図10の構造化フローチャートを用いて本実施形態における画面表示の処理方式を説明する。図6は、本実施形態のシステムのメイン処理である。図7は、タイムライン表示処理である。図8は、アイコン表示処理である。図9は、テーブル表示処理とそれに関わるサブルーチンである。図10は、ユーザマウスクリック時の選択処理とそれに関わるサブルーチンである。
まず図6の本実施形態のシステムのメイン処理600を説明する。
システムが起動されると、まずステップ601で、本システムが持つメンバ変数であるObjectの集合S0(=部分空間の集合∪属性の集合)とLinkの集合L0を初期化する。この初期化の方法としては、次のようにする。新規作成の場合、S0=L0=φとして初期化すれば良い。ファイルから読み込む場合は、ユーザが指定したシーン情報のファイルを読み込み、S0とL0に代入すれば良い。その他の方法としては、DBの映像検索結果をシーン情報としてS0とL0に代入したり、(株)日立製作所製の映像解析ライブラリMediachef Componentを用いて解析した映像データのシーン情報をS0とL0に追加したりしても良い。なお、このS0とL0を合わせたものが本実施形態でのメディアシーン情報全体であり、S0とL0を格納するメモリ領域がメディアシーン情報格納手段となっている。
次にステップ602にて、画面の表示処理やマウスの選択処理などで用いるマウス選択オブジェクト集合SS、および関連オブジェクト集合SRと、検索処理で用いる登録条件リストCLを空集合φで初期化する。
次にステップ700にて、タイムライン表示ウィンドウ502を作成して、タイムライン表示処理DrawTimeLine(S0, L0)を呼び出すことにより、タイムライン表示ウィンドウ502を初期描画する。ステップ800にて、アイコン表示ウィンドウ504を作成して、アイコン表示処理DrawIcon(S0, L0)を呼び出すことにより、アイコン表示ウィンドウ504を初期描画する。ステップ900にて、テーブル表示ウィンドウ503を作成して、テーブル表示処理DrawTable(SS, L0)を呼び出すことにより、テーブル表示ウィンドウ503を初期描画する。本実施形態では、DrawTableのパラメタとして現在選択されているシーン情報の集合SSを渡している。これにより、テーブル表示ウィンドウ503では、現在選択中のシーン情報だけについて詳細な内容を表示することができる。
なお、図5の説明でも述べたように、これら3種類のウィンドウは複数作成しても良いし、別の表示手段を用いる場合は表示しなくとも良い。
次にループ処理603にて、ユーザ終了指示があるまで、ステップ621以降のユーザ操作解析処理を繰り返す。ユーザ操作解析処理では、ステップ621で、入力装置115からのユーザ指示を待ち、次にステップ622にて、ユーザ指示に従ったユーザ操作処理を行う。ユーザがマウスなどをクリックした場合は、ステップ1000にて選択処理を呼び出す。ユーザが部分空間や属性情報やリンク情報などのオブジェクトの追加・削除・変更指示をした場合は、ステップ1500にて、その編集指示に従った編集処理を行う。ユーザが検索メニューを選択した場合は、ステップ632にて検索処理を行う。なお、検索処理632のフローチャートについては、検索メニューのうち、条件の登録メニューと、既に登録された条件のメニューのみについて後述する。
次に図7を用いて、タイムライン表示処理DrawTimeLine(S,L)(ステップ700)を説明する。DrawTimeLine()の入力パラメタとして、表示対象となるObjectの集合S(=部分空間の集合∪属性の集合)とLinkの集合Lが渡される。
まずステップ701では、部分空間と属性情報からなるオブジェクトの集合Sから、部分空間だけからなる集合を抽出するために、集合Sの全要素を調べ、集合Sの要素eのメンバ変数classの値が"frag"である要素だけを取り出し、それを集合Fに追加する処理を行う。なお、処理の効率化のため、あらかじめ集合Sを部分空間の集合Fと属性の集合とに分割しておいても良い。次に部分空間の集合Fの全ての要素eに対して、タイムライン表示の部分空間バーを表示するため、ループ処理702を行う。
ループ処理702の中では、まずステップ711にて、e.beginの時間値とe.endの時間値を、画面上の時間軸の座標位置bx,exに変換する。ある時間tを画面上の座標xに変換するには、
座標x=時間to座標変換(t)
=(t−画面上の時間軸の開始時間)÷
(画面上の時間軸の終了時間−開始時間)×
画面上の時間軸の幅+画面上の時間軸開始座標
とすれば良い。
次にステップ712にて、部分空間バーの外枠を描画するために、左上座標(bx,0)、右下座標(ex,10)の四角形を描画する。次に部分空間バーの中に部分空間の名称e.idを表示する。場所は(bx,0)とする。次にステップ713にて、部分空間バーの先頭位置に小さなアイコン画像を表示する。これにより、部分空間バーだけを見てもどのような内容の映像データかを瞬時に確認できるようになる。画像は、e.fileに指定された映像ファイルを開き、その中の時間位置e.beginにあるフレーム画像を表示する。画像の表示位置は座標(bx,30)とし、先の文字列より若干下に表示する。
最後にステップ714にて、ステップ712で表示した四角形を、オブジェクトの表示色情報である、e.selectColorを用いて表示する。たとえば、e.selectColorの色を、図5の選択状態の部分空間523のように四角形の塗りつぶし色として表示しても良いし、同図の関連選択中の部分空間551のように、四角形の枠の色として表示しても良い。なお、selectColorには複数の色が同時に登録されている場合があるが、この場合は、部分空間を複数の別々の色枠で囲ったり、部分空間の上部に小さな旗のようなカラーのアイコンを色の数だけ並べるなどの画面上で識別可能な方法を取れば良い。その他にも、selectColorの色リストが空の場合や、ある決められた透明色などが設定されていた場合は、該当する部分空間を表示しない方法でもよい。加えて言えば、オブジェクトの選択状態や検索結果状態を示すselectColorを、現在は色を用いて画面上のオブジェクトと多重表示させているが、色以外にも画面上で識別可能な表現形式を用いて、これらの識別状態を表現しても良い。たとえば、部分空間の塗りつぶし模様を選択状態によって変化させたり、識別番号や識別文字列や識別アイコンなどを用いた小さな旗状のアイコンを識別状態ごとに画面上に表示しても良い。
なお、図7のタイムライン表示処理700では、部分空間のみをタイムライン表示の対象としたが、属性についても次の方法によりタイムライン表示を適用することができる。そのためにはまず、ある属性aにリンクされているオブジェクトの集合を後述(ステップ902)の関数GetLinkedObj( a, L0 )で取り出した後、この集合を新しいSとして、ステップ701およびループ処理702を行えば良い。表示対象が複数の属性からなる集合の場合は、先の一属性の表示処理を全属性分だけ繰り返せば良い。
次に図8を用いて、アイコン表示処理DrawIcon(S,L)(ステップ800)を説明する。DrawIcon()の入力パラメタには、ステップ700のDrawTimeLine()と同様のObjectの集合SとLinkの集合Lが渡される。
まずステップ801では、ステップ701と同様の方法により、集合Sから部分空間の集合Fを抽出する。次にステップ802で、アイコンの表示座標x,yを左上座標(0,0)に初期化する。次に部分空間の集合Fの全ての要素eに対して、アイコンを表示するため、ループ処理803を行う。
ループ処理803の中では、まずステップ811にて、映像データe.fileのe.beginの時間位置のフレーム画像を、座標(x,y)に表示する。次にステップ812にて、部分空間の名前e.id、開始時間e.begin、および終了時間e.endを文字列にて表示する。文字列の表示位置は画像の下とするため、座標(x,y+画像の高さ)とする。次にステップ813にて、画像と文字列のある所をオブジェクトの選択状態の色e. selectColorを用いて表示する。
次に、アイコンの表示位置を変更する処理を行う。ステップ814では、次のアイコンを右横に表示するため、xにアイコンの幅と、アイコン間のスペースの幅(隙間幅)を足す。この際、xがアイコン表示ウィンドウ504の幅を超えた場合(条件815)、ステップ821にて、xの位置を左に戻し、表示位置を改行すため、x←0とし、yにアイコンの高さ(画像と文字列の高さ)と縦方向スペースの高さを足す。もちろん、y座標がアイコン表示ウィンドウ504の高さを超えた場合はループ803を停止する処理を入れても良い。
本実施形態のアイコン表示処理800は、部分空間のみを表示対象としていたが、以下の処理を追加することにより、属性情報やリンク情報もアイコン表示することが可能である。たとえばステップ803の後に、オブジェクトの集合Sから属性情報の集合Aだけを抜き出す処理(A←S−F)を行い、抜き出した全ての属性情報に対して、一属性情報のアイコン表示処理を繰り返せば良い。一属性情報をアイコンとして表す場合、アイコン画像として、属性を表す既定の図形を用い、アイコン文字列として、属性情報が有するmeta情報(=(属性名,属性値)の集合)を用いれば良い。
表示処理の説明の最後として、図9を用いて、テーブル表示処理DrawTable(S,L)(ステップ900)と、それに関わるサブルーチンを説明する。テーブル表示処理DrawTable()の入力パラメタには、ステップ700のDrawTimeLine()と同じ、Objectの集合SとLinkの集合Lが渡される。
まずステップ901では、オブジェクトの集合Sに関連付けられているオブジェクトをすべて抽出する関数GetLinkedObjSet()を用いて、現在の選択状態Sに関連するオブジェクトを集合Rに代入する。次にループ処理902にて、関連オブジェクトの集合Rのすべての要素eに対して、その内容をテーブルの行として出力する処理を繰り返す。
ループ処理902では、まず条件ステップ911にて、オブジェクトの種別ごとのテーブル出力処理を行う。要素eの種別が属性情報の場合(e.class="attr"の場合)、ステップ921以降にて属性情報の詳細を出力する処理を行う。まずループ処理921で、属性情報eが持つ(属性名,属性値)のmeta集合を出力するため、meta集合e.mlistの全ての要素mに対して、ステップ922の処理を行う。ステップ922では、1つのmetaオブジェクトmをテーブルに追加するために、表の行オブジェクトを作成し、行の「ID」欄をe.id、行の「名前」欄をm.name、行の「値」欄をm.contentsとし、最後にこの行オブジェクトをテーブルに追加している。なお、図5のテーブル表示ウィンドウ503では、「ID」欄を表示していない。
条件ステップ911にて、要素eの種別が部分空間であった場合、ステップ925にて3つの行を追加する。ステップ925で表に追加される行は、映像ファイル名(e.id, "file", e.file)と、開始時間(e.id, "begin", e.begin)と、終了時間(e.id, "end", e.end)である。
ステップ912では、今回ステップ922や925で追加したテーブルの行をオブジェクトの選択状態の色e.selectColorを用いて表示する。
次にサブルーチン関数であるステップ901のGetLinkedObjSet(S,L)の詳細を説明する。この関数の入力パラメタはオブジェクトの集合Sとリンクの集合Lであり、この関数のリターン値は、オブジェクトの集合Sに関連付けられているオブジェクトをすべて抽出した集合である。この処理では、まずステップ941でリターン値となる集合Rを空集合φで初期化し、次に集合Sの全ての要素eに対してループ処理942を行うことにより、結果集合Rを求めていく。ループ処理942では、まずステップ951にて、要素eに関連付けられているObjectの集合をGetLinkedObj(e,L)により求め、SLに代入する。次のステップ952では、求めた集合SLを結果集合Rに追加する。最後にステップ943にて、全ての要素に対して求めた関連オブジェクトの集合Rをリターンする。
図9の最後として、サブルーチンGetLinkedObj(e,L) (ステップ951)の詳細を説明する。この関数の入力パラメタは1つのオブジェクトeとリンクの集合Lであり、この関数のリターン値は、1つのオブジェクトeに関連付けられているオブジェクトをすべて抽出した集合である。この処理では、まずステップ971で、リターン値となる集合SLを空集合φで初期化し、次にリンク集合Lの全ての要素linkに対してループ処理972を行うことにより、結果集合SLを求めていく。ループ処理972では、まずステップ981にて、リンクlinkの内容を調べる。リンクlinkのリンク元が自オブジェクトeの場合、結果集合SLにリンク先のオブジェクトlink.dstを加える(ステップ983)。リンクlinkのリンク先が自オブジェクトeの場合、結果集合SLにリンク元のオブジェクトlink.srcを加える(ステップ985)。最後にステップ973にて、全てのリンク要素に対して求めた関連オブジェクトの集合SLをリターンする。
図10は、ユーザのクリック入力に対する選択処理(ステップ1000)の詳細である。この処理の入力は、ユーザがクリックした座標位置(x,y)である。
まずステップ1001にて、ユーザがクリックした位置の現在の表示形式を調べる。
表示形式がタイムライン表示の場合、ステップ1011以降にて、選択された部分空間を特定する処理を行う。まずステップ1011にて、クリック位置xの座標値を画面時間軸上の時間値に変更し、選択時間tに代入する。この計算は、ステップ711で説明した関数である時間to座標変換(t)の逆関数を用いれば良い。次にステップ1012にて、選択時間tを含む部分空間オブジェクトをオブジェクトの集合S0から抽出するため、関数FindObject()を呼び出し、その結果を新しい選択集合SSnewに代入する。FindObject関数では、検索条件としてユーザがクリックした時間位置tを含むことを表す条件関数Within(*,t,t)をパラメタとして指定している。この指定は、区間t〜t、つまり時点tを含むオブジェクトの抽出を行なうことを指定するものである。条件関数の利用方法およびその定義の詳細は、後述の検索処理の実現方法にて説明する。
ステップ1001において、クリックした位置の表示形式がアイコンであった場合、ステップ1014にて、選択されたアイコンからそれに対応する部分空間オブジェクトを取得し、それを新しい選択集合SSnewに設定する。これを実現するには、アイコンを描画する際に、アイコンの表示位置や画像を覚えておく表示用アイコン情報の中に、対応する部分空間オブジェクトを登録しておけば良い。
ステップ1001において、クリックした位置の表示形式がテーブルであった場合、ステップ1017にて、クリックされた行のみを選択表示し、ステップ1018にて、本選択処理1000を終了する。ここで関数を終了する理由は、他の表示形式と同様にクリック時に選択状態を変更してしまうと、テーブルをクリックしただけで、後の表示の更新処理にて自分自身のテーブルの表示内容が変更されてしまい、正しく情報を操作できないためである。ここでは、テーブルをクリックした場合だけ、選択状態を変更しないようにしている。
ステップ1002では、ユーザが選択したオブジェクトの集合SSnewに関連付けられているオブジェクトの集合を、GetLinkedObject(SSnew,L0)により求めて、関連集合SRnewに代入する。最後にステップ1003にて、マウスの選択状態を本関数で求めたSSnewとSRnewで更新する。
ステップ1003のマウス選択の更新処理NewSelectionについて詳しく説明する。本関数のパラメタは、新しい選択オブジェクトの集合SSnewと、新しい関連オブジェクトの集合SRnewである。
まずステップ1051にて、現在選択されているオブジェクトに登録されているマウス選択色とマウス選択関連色を取り除く。具体的には、グローバル変数SS(選択状態の集合)とSR(関連選択状態の集合)に含まれる全てのオブジェクトobjに対してループを行い、選択色リストobj.selectColorから、マウス選択色とマウス関連選択色を削除する。
次にステップ1052と1053にて、新しい選択状態オブジェクトと新しい関連選択状態オブジェクトのそれぞれに、マウス選択色とマウス関連色を登録する。具体的には、SSnewとSRnewのそれぞれの集合ごとに要素を取り出し、該当するオブジェクトのselectColorに該当する色情報を追加する。
最後にステップ1054にて新しい色情報を用いて画面の再表示を行い、ステップ1055にてグローバル変数SSとSRに新しい選択情報SSnewとSRnewを登録する。
次に図11から図14までを用いて、本実施形態のシステムにおける検索処理を説明する。図11は、検索処理の実行画面である。図12および図13は、検索処理の構造化フローチャートである。図14は、検索処理で用いる検索条件関数の実現方法を示す表である。
まず図11を参照して、検索処理の実行画面について説明する。検索処理は、メインメニュー506のうち、検索メニューを選択することにより行う。検索メニューの中には、検索のための条件の登録を行うメニュー1101と、既に登録された条件を一覧表示するメニュー1102が表示される。条件の登録メニュー1101を選択すると、1105に示すような条件の登録画面が表示される。
条件の登録画面1105では、検索結果の表示方法と検索条件とを指定できる。これらの情報を設定した後、検索ボタン1151を押すことにより、検索処理を実行できる。検索結果は、本条件登録画面で指定した色で画面上に表示される。具体的には、メディア情報に含まれるすべてのオブジェクトのうち、本条件登録画面で指定された条件を満足するオブジェクトだけが、本条件登録画面で指定した色情報で、メインウィンドウ501上に表示される。なお、キャンセルボタン1152を押すと、本検索処理は打ち切られる。
本条件登録画面1105で指定できる検索結果の表示方法では、検索条件の名称1111と検索結果の表示色1112が指定できる。検索条件の名称1111は、後に本条件が検索メニューに登録される際に表示される名称である。また検索結果の表示色1112は、検索条件を満足するオブジェクトを表示する際に用いる色である。この色の選択は、たとえば1112をクリックすることによって決められた色が順々に表れるようにして行うことができる。また応用例として、この選択色の中に透明色を指定可能にしても良い。たとえば透明色が指定された場合、検索結果を表示しないこととなり、ユーザは画面上の冗長なシーン情報を本検索処理によって非表示にすることが可能になり、シーン情報の確認・編集作業をより効率化できる。
本条件登録画面1105で指定できる検索条件としては、ある時間範囲で検索する方法と、ある属性名だけを検索する方法と、ある属性値だけを検索する方法を指定できる。これらは時間検索のチェックボックス1121、属性名検索のチェックボックス1131、および属性値検索のチェックボックス1141を用いて、複数同時に指定することができる。本実施形態では、複数条件が指定された場合、それらの条件はAND条件で結合されていると考える。なお、各チェックボックスがONの場合、それらに対応する条件値として、時間区間の開始位置1122や終了位置1123、属性名1132、および属性値1142の入力領域がそれぞれ有効になり、値を設定できるようになる。
なお、時間の開始位置1122および終了位置1123を指定する別の方法として、図5のタイムライン表示502の画面上に表示時間位置を変更するためのスクロールバーを取りつけ、スクロールバーの移動操作により、検索すべき時間範囲の指定を行う方法を採っても良い。また、逆に言えば、タイムライン表示502とは、ユーザに指定された表示開始時間と表示終了時間に挟まれたシーン情報を検索・表示するためのユーザ操作画面であると考えても良い。また同様に、図10で述べたユーザ選択処理を、ユーザが選択したオブジェクトに関連するオブジェクトを動的に検索するユーザ操作方法と考えても良い。
なお、ここで述べた内容は本発明の一実施形態であり、他にも様々な条件や設定項目を指定させることもできる。たとえば検索条件として、複数の検索条件のORを取ったり、複合検索条件式を入力したり、ある検索結果に関連付けられるオブジェクトだけを抜き出したり(図9のサブルーチン901GetLinkedObjSet()を用いる)、関連オブジェクトの検索の際に関連名称を指定したり、さらには部分空間に登録されているメディアデータのファイルを開いて該当する建物が現れた瞬間を含むシーンを画像解析を用いて検索することなどを指定できるようにしても良い。このような場合、検索条件の一覧リストを表示し動的に検索条件を追加できるようにした方が、処理の実現上、かつ操作性の観点上望ましい。
本実施形態では、検索ボタン1151により検索を行うと、検索されたオブジェクトが、1112で指定した色で表示されると同時に、編集操作対象としてマウス選択状態となる。ユーザは必要に応じて検索結果の更新や削除を行うことができる。また、本実施形態では、検索を行うと過去数件分の検索条件が保存され、検索メニュー上に検索条件名が検索結果表示色と共に表示される。ユーザは検索メニューを見ることにより、画面上のどの色のオブジェクトがどのような条件を満足するオブジェクトであるか、検索結果後に確認できる。また、このメニューを選択することにより、前回指定した検索条件を用いて再度検索処理を実行することができる。
なお、検索操作方法の応用例として、検索メニューに「次の検索結果オブジェクトへ」というメニューを追加しても良い。この場合、検索結果を一度に表示するのではなく、このメニューを何度も選択することにより、ユーザは検索結果のオブジェクトを1つずつ確認しながら編集処理を行うことができる。このメニューはさらに、先述の特定の物体を画像解析手法を用いて検索する場合に非常に有効である。なぜなら、検索実行時にメディアデータを全て解析する必要がなく、ユーザが次の検索結果を望んだ時点で、逐一画像解析を部分的に適用すれば良く、ユーザの待ち時間を大幅に短縮することができるからである。
図12および図13は、本実施形態での検索処理の構造化フローチャートである。ここでは検索メニューのうち「条件の登録」メニュー1101と登録された条件のメニュー1102の処理について述べる。
ステップ1200は、条件の登録メニュー1101が選択された際の処理である。ステップ1211では、まず検索条件の登録画面1105を表示し、ユーザに検索条件を登録させる。次にステップ1212〜1215で、検索条件式を条件関数のリストfuncListとして組み立て、ステップ1202で、組み立てた条件関数のリストfuncListを用いて検索を実行し、検索結果を条件の登録画面1105に指定された色で表示する。最後にステップ1216で、今回指定された検索条件の情報(条件名や色や条件関数リスト)などをグローバル変数である登録条件リストCLに追加し、またステップ1217で、メインメニュー506の検索メニューに今回の条件名と色情報を追加する。
次に検索条件式の実現方法と組み立て方法について説明する。条件関数リストfuncListに登録される条件関数は、メモリ上では(関数アドレス,ユーザパラメタ値)により表現される。本実施形態では、関数アドレスとして、図14に示す条件関数の先頭アドレスを登録可能である。また、これらの条件関数を実行するには、関数パラメタとして、ここで指定されたユーザパラメタ値と共に、条件を判定したいメディアシーン情報オブジェクトのアドレスを追加して、指定された関数アドレスを呼出せば良い。関数の結果は集合値として呼出し処理にリターンされるよう定義する(条件不成立ならφ、成立ならφ以外)。
図14に示した条件関数を用いて、ステップ1212〜1215の条件関数式の組み立て処理を詳しく説明する。まずステップ1212にて、条件関数リストfuncListを空にする。次にステップ1213にて、条件登録画面1105でユーザが時間の検索を指定しているか否か調べ、時間の指定がある場合、ステップ1221にて条件関数リストfuncListに時間条件関数Within()を追加する。この際、条件関数Withinのユーザパラメタとして、ユーザが指定した開始時間と、同終了時間を登録する。属性名の検索についても同様に、ステップ1214にてユーザの検索指示の有無を判別し、属性名検索を行う場合は、ステップ1223にてfuncListに条件関数SameName()を登録する。この際のユーザパラメタは、ユーザが指定した属性名である。属性値の検索についても同様に、ステップ1215にてユーザの検索指示の有無を判別し、属性値検索を行う場合は、ステップ1223にてfuncListに条件関数SameValue()を登録する。この際のユーザパラメタは、ユーザが指定した属性値である。
本実施形態では時間、属性名、および属性値の検索条件について述べたが、その他の条件についても同様に拡張できる。基本的に検索条件を追加する場合は、検索条件ごとに、個別条件設定手段と、オブジェクトとユーザパラメタを入力して集合値を返す条件関数を用意すればよい。検索条件モジュールでは、必要に応じて設定画面を提供し、ユーザから該当する条件指定の有無や詳細な条件値の設定を行えるようにすればよい。
次に検索メニューのうち、すでに登録された検索条件のメニューが選択された場合の処理1201について説明する。検索条件がすでに登録されている場合、ユーザが指定したメニューの番号値などを用いて検索条件リストCLから該当する検索条件の情報condを取得する(ステップ1231)。検索条件情報condの中には検索の実行に必要な検索条件リストと、検索結果の表示に必要な色情報が含まれているので、これらの値を用いて検索実行処理1202を呼び出せば、ユーザが以前設定した条件のままで検索を再実行することができる(ステップ1202)。
最後に検索実行処理1202について説明する。本処理の入力パラメタは、先に設定した検索条件関数のリストと検索結果の表示色からなる。まず検索にあたって、ステップ1241にて、検索結果集合Srを検索対象集合S0で初期化する。本例では検索条件リストをAND条件の並びとして検索するため、Srはまず全オブジェクトを現すグローバル変数S0としている。次に検索条件リストfuncListに含まれる全検索条件関数funcについてループし(ステップ1242)、ステップ1300のFindObject()処理を用いて、検索条件関数funcで結果集合Srを絞り込んでいく。ループ処理1242が終了した段階で、すべての検索条件についてANDをとった条件を満たすオブジェクトの集合がSrに格納される。
次に検索結果Srの全要素objについてループ処理1243を行い、指定された検索結果色colorをオブジェクトの選択表示色リストselectColorに追加する(ステップ1252)。最後にステップ1244にて、後の編集のために検索結果をマウス選択状態と同一に扱えるよう、マウス選択の更新処理を行う。なお、マウス選択更新の処理内にて画面の再描画も行っているため、ループ処理1243で設定した検索結果色も画面に表示される。
次に図13を参照して、ステップ1300の検索条件を満足するオブジェクトの抽出処理FindObject()について説明する。本関数の入力は、検索対象オブジェクトの集合Sと、1つの検索条件関数f()である。また本関数の出力は、Sのうち検索条件関数f()を満足するオブジェクトの集合である。
本関数では、まず検索結果の集合Srを空にし(ステップ1310)、次にループ処理1311にて、S中のすべての検索対象オブジェクトobjについて条件の判定を行う。条件の判定には、オブジェクトobjが検索条件を満たすかどうか調べるために、条件関数f(obj)を呼び出す(ステップ1321)。この際あらかじめ図12のステップ1221などで設定されたユーザパラメタも同時に渡されるものとする。条件関数の判定結果が真である場合、条件関数の結果として検索結果集合Srに追加すべきオブジェクト集合が返されるので、Srに追加する。なお、判定結果が偽の場合、判定関数の結果は空集合φが返されるものとする。ループ処理1311が終了した段階で検索結果がSrに格納されているので、これを本処理の戻り値として設定し、本処理を終了する。
図14は、検索処理で用いる検索条件関数の実現方法を示す表である。
まず、ある時区間を含むオブジェクトを判別する条件関数Within()1401を説明する。Within()は、開始時間tbと終了時間teをユーザパラメタとして持つ。その結果は、関数パラメタとして指定されたオブジェクトが部分空間であり(object.class="flag")、かつ、実数集合[object.begin, object.end]と実数集合[tb,te]とが重なる場合、抽出結果として追加すべき内容として集合{ object }を返す。つまり区間[tb,te]の一部でも部分空間objectが触れたら{ object }を返す。なお、オブジェクトが属性情報の場合は、空集合φを返す。
次に属性名が同一であるかを判定する条件関数SameName()1402について説明する。SameName()のユーザパラメタは属性名nameである。本関数が成立する条件は、関数パラメタとして指定されたオブジェクトが属性であり(object.class="attr")、かつ、その属性オブジェクトが持つMetaクラスリストmlistのいずれか一つのmetaについて属性名meta.nameがnameと等しい場合とし、戻り値として{ object }を返す。
同様に、属性値が同一であるかを判定する条件関数SameValue()1403の場合、ユーザパラメタは属性値contentsであり、関数パラメタとして指定されたオブジェクトが属性であり、かつその属性値meta.contents=contentsとなるmetaがMetaクラスリストに一つ以上存在すれば{ object }を返す。なお、SameName()とSameValue()は、上述した条件が不成立の場合、または、関数パラメタとして指定されたオブジェクトが部分空間の場合は、空集合φとする。
最後に条件関数の応用例として、人物が画面内に入った瞬間の部分空間であれば、その瞬間の部分空間を返す条件関数GotIt()を説明する。GotIt()では、関数パラメタとして指定されたobjectが部分空間の場合、object.fileに示される映像ファイルをオープンし、映像を画像処理を用いて解析し、人物が画面内に入ったことを認識したら、新たに部分空間オブジェクトnewObjを生成し、人物の出現時間をnewObj.beginとnewObj.endに指定し、{ newObj }を返す。この画像処理の実現には、たとえば特開平8−221577号の「移動体検出・抽出装置及び方法」に示す画像認識アルゴリズムを用いればよい。もちろん、複数の人物を検出したら複数の部分空間の要素からなる集合を返してもよい。
図15は、本実施形態における編集処理の構造化フローチャートである。本実施形態では、編集処理として、選択されたオブジェクトを削除する処理と、選択されたすべての部分空間の時間位置をある決まった時間分だけ移動する時間移動処理について、説明する。
まずステップ1501にて、ユーザの編集指示内容を判断する。指示内容が削除の場合、グローバル変数にある選択オブジェクトの集合SSに含まれるすべてのオブジェクトobjについてループ処理1510を行い、オブジェクトobjを全オブジェクトの集合S0と全リンクの集合L0から削除する(ステップ1513)。また編集指示内容が時間移動の場合、まずステップ1520にてユーザに移動時間量dtを指定してもらう。その後、すべての選択オブジェクトSSについてループ処理1521を行い、オブジェクトが部分空間であれば(ステップ1530)、その部分空間の開始時間と終了時間をともにdt分だけ移動する(ステップ1533)。
ここでオブジェクトの削除1513について説明する。まずループ処理1550にてすべてのリンクlinkを調べて、リンクの先端または末尾が削除対象オブジェクトobjであるものを探し、該当するリンクlinkを見つけたら(条件判定ステップ1560)、その場でlinkをリンクの集合Lから削除する(ステップ1563)。ループ処理1550が終了したら、最後に全オブジェクトの集合Sから該当するオブジェクトobjを削除する(ステップ1551)。
501…メインウィンドウ、502…タイムライン表示ウィンドウ、503…テーブル表示ウィンドウ、504…アイコン表示ウィンドウ、505…マウスポインタ、506…メインメニュー、511…ビデオのタイムライン表示、512…オーディオのタイムライン表示、513〜515…ユーザデータのタイムライン表示、521,522…部分空間のバー表示、523…選択状態の部分空間バー、531,532…選択状態の部分空間に関連した属性情報、541,542…部分空間のアイコン表示、543…選択状態の部分空間アイコン、551,552…選択された部分空間に関連した部分空間、1101…検索条件の登録メニュー、1102…すでに登録されている検索条件とその表示色、1105…検索条件登録画面。