以下、図面を参照しながらこの発明の一実施の形態を説明する。
(アプリケーションの概要)
図1はこの発明のオブジェクト・メタデータを動画像と共に利用することにより実現されるアプリケーション(動画像ハイパーメディア)の画面上の表示例である。図1(a)の100は動画像の再生画面、そして101はマウスカーソルである。動画像の再生画面100で再生される動画像のデータは、ローカルにある動画像データ記録媒体に記録されている。102は動画像中に登場するオブジェクトの領域である。ユーザがオブジェクトの領域内にマウスカーソルを移動させてクリック等によりオブジェクトを選択すると、所定の機能が実行される。例えば図1(b)では、ローカルおよび/またはネットワーク上にあるドキュメント(クリックされたオブジェクトに関連した情報)103が表示されている。そのほか、動画像の別の場面にジャンプしたり、別の動画像ファイルが再生されたり、再生モードを変更するなどの機能を実行することができる。
オブジェクトの領域102のデータ及びこの領域がクリック等により指定された場合のクライアント装置の動作データなどをまとめて、オブジェクト・メタデータまたはVclickデータと呼ぶことにする。オブジェクト・メタデータはローカルにある動画像データ記録媒体(光ディスク、ハードディスク、半導体メモリ等)に動画像データと共に記録されていても良いし、ネットワーク上のサーバーに蓄積されていてネットワーク経由でクライアントに送られるようにしても良い。以下ではこのアプリケーションがどのように実現されるかについて詳細に説明する。
(システムモデル)
図2はこの発明の一実施の形態に係るストリーミング装置(ネットワーク対応ディスクプレーヤ)の概略構成を示す図である。この図を用いて各構成要素の機能について説明する。
200はクライアント装置、201はサーバー装置、221はサーバー装置とクライアント装置を結ぶネットワークである。クライアント装置200は、動画再生エンジン203、Vclickエンジン202、ディスク装置230、ユーザ・インタフェース240、ネットワーク・マネージャー208、ディスク装置マネージャー213、を備えている。また、204から206は動画再生エンジンに含まれる装置、207、209から212、214から218はVclickエンジンに含まれる装置、219と220はサーバー装置に含まれる装置である。クライアント装置200はディスク装置230にある動画像データの再生や、HTML等のマークアップ言語で書かれたドキュメントの表示を行うことができる。また、ネットワーク上にあるHTML等のドキュメントの表示を行うことも可能である。
クライアント装置200にある動画像データに関連したメタデータがサーバー装置201に存在する場合、クライアント装置200はこのメタデータとディスク装置230にある動画像データとを利用した再生を以下のように行うことが可能である。まず、サーバー装置201はクライアント装置200からの要求によりネットワーク221を介してクライアント装置200にメディアデータM1を送る。クライアント装置200では、送られてきたメディアデータを動画像の再生と同期させて処理することでハイパーメディアなどの付加機能を実現させる(ここでの“同期”とは、物理的に完全なタイミングの一致のみに限定されず、多少のタイミングずれも許容している)。
動画再生エンジン203は、ディスク装置230にある動画像データを再生するためのエンジンであり、204、205、206の装置を有している。231は動画像データ記録媒体であり、具体的にはDVD、ビデオCD、ビデオテープ、ハードディスク、半導体メモリなどである。動画像データ記録媒体231にはデジタルおよび/またはアナログの動画像データが記録されている。動画像データに関連したメタデータは、動画像データと共に動画像データ記録媒体231に記録されている場合もある。205は、動画像再生制御用のコントローラであり、Vclickエンジン202のインタフェース・ハンドラー207から出力される“コントロール”信号に応じて、動画像データ記録媒体231からの映像・音声・副映像データD1の再生を制御することもできるように構成されている。
具体的には、動画像再生コントローラ205は、動画像の再生時に、インタフェース・ハンドラー207からあるイベント(例えばユーザ指示によるメニュー・コールやタイトル・ジャンプ)が発生した際に送信される“コントロール”信号に応じて、インタフェース・ハンドラー207に対して、映像・音声・副映像データD1の再生状況を示す“トリガ”信号を出力することができる。その際(トリガ信号の出力と同時に、あるいはその前後の適当なタイミングで)、動画像再生コントローラ205は、プロパティ情報(例えばプレーヤに設定されている音声言語、副映像字幕言語、再生動作、再生位置、各種時間情報、ディスクの内容等)を示す“ステータス”信号をインタフェース・ハンドラー207に出力することができる。これらの信号の送受信により動画像データ読み出しの開始および停止や、動画像データ中の所望の位置へのアクセスが可能となる。
AVデコーダ206は、動画像データ記録媒体231に記録されている映像データ、音声データ、および副映像データをそれぞれデコードし、デコードされた映像データ(前述の映像データと前述の副映像データを合成したもの)と音声データをそれぞれ出力する機能を持っている。これにより、動画再生エンジン203は、既存のDVDビデオ規格に基づいて製造される通常のDVDビデオプレーヤの再生エンジンと同じ機能を持つようになる。つまり、図2のクライアント装置200は、MPEG2プログラムストリーム構造の映像、音声等のデータを通常のDVDビデオプレーヤと同様に再生することができ、これにより既存のDVDビデオディスク(従来のDVDビデオ規格に則ったディスク)の再生が可能となる(既存DVDソフトに対する再生互換確保)。
インタフェース・ハンドラー207は、動画像再生エンジン203、ディスク装置マネージャー213、ネットワーク・マネージャー208、メタデータ・マネージャー210、バッファ・マネージャー211、スクリプト・インタプリタ212、メディア・デコーダ216(メタデータ・デコーダ217を含む)、レイアウト・マネージャー215、AVレンダラー218などのモジュール間のインタフェース制御を行う。また、ユーザ操作(マウス、タッチパネル、キーボード等の入力デバイスへの操作)による入力イベントをユーザ・インタフェース240から受け取り、適切なモジュールにイベントを送信する。
インタフェース・ハンドラー207はVclickアクセス・テーブル(後述)を解釈するアクセステーブル・パーサー、Vclick情報ファイル(後述)を解釈する情報ファイル・パーサー、Vclickエンジンの管理するプロパティを記録しておくプロパティ・バッファ、Vclickエンジンのシステムクロック、動画再生エンジンにある動画像クロック204のクロックをコピーした動画像クロック等を有している。
ネットワーク・マネージャー208は、ネットワークを介してHTML等のドキュメントや静止画・音声等のデータをバッファ209へ取得する機能を持っており、インターネット接続部222の動作を制御する。ネットワーク・マネージャー212は、ユーザ操作または、メタデータ・マネージャー210からの要求を受けたインタフェース・ハンドラー207より、ネットワークへの接続や非接続の指示が来ると、インターネット接続部222の接続・非接続の切替を行う。また、サーバー装置201とインターネット接続部222とのネットワーク確立時には、制御データやメディアデータ(オブジェクト・メタデータ)の送受信を行う。
クライアント装置200からサーバー装置201へ送信するデータとしては、セッション構築の要求、セッション終了の要求、メディアデータ(オブジェクト・メタデータ)送信の要求、OKやエラーなどのステータス情報などがある。また、クライアント装置の状態情報の送信を行うようにしても良い。一方、サーバー装置からクライアント装置へ送信するデータにはメディアデータ(オブジェクト・メタデータ)、OKやエラーなどのステータス情報がある。
ディスク装置マネージャー213は、HTML等のドキュメントや静止画・音声等のデータをバッファ209へ取得する機能及び、動画再生エンジン203へ映像・音声・副映像データD1を送信する機能を持っている。ディスク装置マネージャー213は、メタデータ・マネージャー210からの指示に従ってデータ送信処理を行う。
バッファ209は、ネットワークを介して(ネットワーク・マネージャー経由で)サーバー装置201から送られてきたメディアデータM1を一時的に蓄積する。また、動画像データ記録媒体231にメディアデータM2が記録されていることがあるが、この場合も同様にディスク装置マネージャー経由でバッファ209へメディアデータM2を蓄積することになる。なお、メディアデータにはVclickデータ(オブジェクト・メタデータ)、HTML等のドキュメントやこれに付随する静止画・動画像データなど)が含まれる。
動画像データ記録媒体231にメディアデータM2が記録されている場合は、映像・音声・副映像データD1の再生を開始する前にあらかじめ動画像データ記録媒体231からメディアデータM2を読み出し、バッファ209に記憶しておいてもよい。これは、動画像データ記録媒体231上のメディアデータM2と映像・音声・副映像データD1のデータ記録位置が異なるため、通常の再生を行った場合にはディスクのシーク等が発生してシームレスな再生が保障できなくなってしまうため、これを回避するための手段となる。
以上のように、サーバー装置201からダウンロードしたメディアデータM1も、動画像データ記録媒体231に記録されているメディアデータM2と同様に、バッファ209に記憶させることにより、映像・音声・副映像データD1とメディアデータを同時に読み出して再生することが可能になる。
なお、バッファ209の記憶容量には限界がある。つまり、バッファ209に記憶できるメディアデータM1、M2のデータサイズには限りがある。このため、メタデータ・マネージャー210、および/またはバッファ・マネージャー211の制御(バッファ・コントロール)により、不必要なデータの消去を行うことにしてもよい。
メタデータ・マネージャー210は、バッファ209に蓄積されたメタデータを管理しており、インタフェース・ハンドラー207からの動画像の再生に同期させた適切なタイミング(“動画像クロック”信号)を受けて、該当するタイムスタンプを持つメタデータをバッファ209よりメディア・デコーダ216に転送する。
尚、該当するタイムスタンプを持つメタデータがバッファ209に存在しない場合は、メディア・デコーダ216に転送しなくてもよい。また、メタデータ・マネージャー210は、バッファ209より送出したメタデータのサイズ分、または、任意のサイズのデータをサーバー装置201、またはディスク装置230からバッファ209へ読み込むためのコントロールを行う。具体的な処理としては、メタデータ・マネージャー210は、インタフェース・ハンドラー207経由で、ネットワーク・マネージャー208、またはディスク装置マネージャー213に対し、指定サイズ分のメタデータ取得要求を行う。ネットワーク・マネージャー208、またはディスク装置マネージャー213は、指定サイズ分のメタデータをバッファ209に読み込み、メタデータ取得済の応答をインタフェース・ハンドラー207経由で、メタデータ・マネージャー210へ通知する。
バッファ・マネージャー211は、バッファ209に蓄積されたメタデータ以外のデータ(HTML等のドキュメントやこれに付随する静止画・動画像データなど)の管理をしており、インタフェース・ハンドラー207からの動画像の再生に同期させた適切なタイミング(“動画像クロック”信号)を受けてバッファ209に蓄積されたメタデータ以外のデータをパーサー214やメディア・デコーダ216に送る。バッファ・マネージャー211は、不要になったデータをバッファ209から削除してもよい。
パーサー214は、HTML等のマークアップ言語で書かれたドキュメントの構文解析を行い、スクリプトはスクリプト・インタプリタ212へ、そしてレイアウトに関する情報はレイアウト・マネージャー215に送る。
スクリプト・インタプリタ212は、パーサー214から入力されるスクリプトを解釈し、実行する。スクリプトの実行には、インタフェース・ハンドラー207から入力されるイベントやプロパティの情報を利用することもできる。動画像中のオブジェクトがユーザにより指定された場合には、スクリプトはメタデータ・デコーダ217からスクリプト・インタプリタ212へ入力される。
AVレンダラー218は、映像・音声・テキスト出力を制御する機能をもつ。具体的には、AVレンダラー218は、レイアウト・マネージャー215から出力される“レイアウト・コントロール”信号に応じて、例えば、映像・テキストの表示位置、表示サイズや(これらとともに表示タイミング、表示時間を含むこともある)、音声の大きさ(これらとともに出力タイミング、出力時間を含むこともある)を制御したり、指定されているモニターの種別かつ/または表示する映像の種類に応じて、その映像の画素変換を行う。制御の対象となる映像・音声・テキスト出力は、動画再生エンジン203およびメディア・デコーダ216からの出力である。さらに、AVレンダラー218は、インタフェース・ハンドラー207から出力される“AV出力コントロール”信号に従って、動画再生エンジン203から入力される映像・音声データとメディア・デコーダから入力される映像・音声・テキストデータのミキシング(混合)、スイッチング(切替)を制御する機能をもつ。
レイアウト・マネージャー215は、“レイアウト・コントロール”信号をAVレンダラー218に出力する。“レイアウト・コントロール”信号には、出力する動画・静止画・テキストの大きさやその位置に関する情報(表示開始・終了・継続といった表示時間に関する情報を含む場合もある)が含まれており、どのようなレイアウトで表示すべきかをAVレンダラー218に指示するための情報となっている。また、インタフェース・ハンドラー207から入力されるユーザのクリック等の入力情報に対して、どのオブジェクトが指定されたのかを判定し、指定されたオブジェクトに対して定義された関連情報の表示などの動作命令を取り出すようにメタデータ・デコーダ217に対して指示する。取り出された動作命令は、スクリプト・インタプリタ212に送られ実行される。
メディア・デコーダ216(メタデータデコーダを含む)は、動画・静止画・テキストデータをデコードする。これらデコードされた映像データ、テキスト画像データをメディア・デコーダ216からAVレンダラー218に送信する。また、これらデコードデータは、インタフェース・ハンドラー202からの“メディア・コントロール”信号の指示によりデコードを行うとともに、インタフェース・ハンドラー202からの“タイミング”信号に同期してデコードが行われる。
219はサーバー装置のメタデータ記録媒体であり、クライアント装置200に送信するメタデータが記録されたハードディスク、半導体メモリ、磁気テープなどである。このメタデータは、動画像データ記録媒体231に記録されている動画像データに関連したメタデータである。このメタデータには、後で説明するオブジェクト・メタデータが含まれている。220はサーバーのネットワーク・マネージャーであり、クライアント装置200とネットワーク221を介してデータの送受信を行う。
(EDVDデータ構造とIFOファイル)
図53は、動画像データ記録媒体231としてエンハンスドDVDビデオディスクを用いた際のデータ構造の一例を示す図である。エンハンスドDVDビデオディスクのDVDビデオエリアは、DVDビデオ規格と同じデータ構造のDVDビデオコンテンツ(MPEG2プログラムストリーム構造を持つ)を格納する。さらに、エンハンスドDVDビデオディスクの他の記録エリアは、ビデオコンテンツの再生をバラエティに富んだものにできるエンハンスド・ナビゲーション(以下ENAVと略記する)コンテンツを格納する。なお、上記記録エリアは、DVDビデオ規格でも存在が認められている。
ここで、DVDビデオディスクの基本的なデータ構造について説明する。すなわち、DVDビデオディスクの記録エリアは、内周から順にリードインエリア、ボリュームスペース、およびリードアウトエリアを含んでいる。ボリュームスペースは、ボリューム/ファイル構造情報エリア、およびDVDビデオエリア(DVDビデオゾーン)を含み、さらにオプションで他の記録エリア(DVDアザーゾーン)を含むことができる。
上記ボリューム/ファイル構造情報エリア2は、UDF(Universal Disk Format)ブリッジ構造のために割り当てられたエリアである。UDFブリッジフォーマットのボリュームは、ISO/IEC13346のパート2に従って認識されるようになっている。このボリュームを認識するスペースは、連続したセクタからなり、図53のボリュームスペースの最初の論理セクタから始まる。その最初の16論理セクタは、ISO9660で規定されるシステム使用のために予約されている。従来のDVDビデオ規格との互換性を確保するには、このような内容のボリューム/ファイル構造情報エリアが必要となる。
また、DVDビデオエリアには、ビデオマネージャVMGという管理情報と、ビデオ・タイトルセットVTS(VTS#1〜VTS#n)というビデオコンテンツが1つ以上記録されている。VMGは、DVDビデオエリアに存在する全てのVTSに対する管理情報であり、制御データVMGI、VMGメニュー用データVMGM_VOBS(オプション)、およびVMGのバックアップデータを含んでいる。また、各VTSは、そのVTSの制御データVTSI、VTSメニュー用データVTSM_VOBS(オプション)、そのVTS(タイトル)の内容(映画等)のデータVTSTT_VOBS、およびVTSIのバックアップデータを含んでいる。従来のDVDビデオ規格との互換性を確保するには、このような内容のDVDビデオエリアも必要となる。
各タイトル(VTS#1〜VTS#n)の再生選択メニュー等は、VMGを用いてプロバイダ(DVDビデオディスクの制作者)により予め与えられ、特定タイトル(例えばVTS#1)内での再生チャプター選択メニューや記録内容(セル)の再生手順等は、VTSIを用いてプロバイダにより予め与えられている。従って、ディスクの視聴者(DVDビデオプレーヤのユーザ)は、予めプロバイダにより用意されたVMG/VTSIのメニューやVTSI内の再生制御情報(プログラムチェーン情報PGCI)に従ってそのディスク1の記録内容を楽しむことができる。しかし、DVDビデオ規格では、視聴者(ユーザ)が、プロバイダが用意したVMG/VTSIと異なる方法でVTSの内容(映画や音楽)を再生することはできない。
プロバイダが用意したVMG/VTSIと異なる方法でVTSの内容(映画や音楽)を再生したり、プロバイダが用意したVMG/VTSIとは異なる内容を付加して再生したりする仕組みのために用意したのが、図53のエンハンスドDVDビデオディスクである。このディスクに含まれるENAVコンテンツは、DVDビデオ規格に基づき製造されたDVDビデオプレーヤではアクセスできない(仮にアクセスできたとしてもその内容を利用できない)が、この発明の一実施の形態のDVDビデオプレーヤではアクセスでき、その再生内容を利用できるようになっている。
ENAVコンテンツは、音声、静止画、フォント・テキスト、動画、アニメーション、Vclickデータ等のデータと、これらの再生を制御するための情報であるENAVドキュメント(これはMarkup/Script言語で記述されている)を含むように構成される。この再生を制御するための情報には、ENAVコンテンツ(音声、静止画、フォント・テキスト、動画、アニメーション、Vclick等から構成される)および/またはDVDビデオコンテンツの再生方法(表示方法、再生手順、再生切換手順、再生対象の選択等)がMarkup言語やScript言語を用いて記述されている。例えば、Markup言語として、HTML(Hyper Text Markup Language)/XHTML(eXtensible Hyper Text Markup Language)やSMIL(Synchronized Multimedia Integration Language)、Script言語として、ECMA(European Computer Manufacturers Association)ScriptやJava(登録商標)ScriptのようなScript言語などを組み合わせながら用いることができる。
ここで、図53のエンハンスドDVDビデオディスクは、他の記録エリア以外の内容がDVDビデオ規格に従っているので、既に普及しているDVDビデオプレーヤを用いても、DVDビデオエリアに記録されたビデオコンテンツを再生できる(つまり従来のDVDビデオディスクと互換性がある)。他の記録エリアに記録されたENAVコンテンツは従来のDVDビデオプレーヤでは再生できない(あるいは利用できない)が、この発明の一実施の形態に係るDVDビデオプレーヤでは再生でき利用できる。従って、この発明の一実施の形態に係るDVDビデオプレーヤを用いENAVコンテンツを再生すれば、プロバイダが予め用意したVMG/VTSIの内容だけに限定されることなく、よりバラエティに富んだビデオ再生が可能になる。
特に、図53に示すように、ENAVコンテンツはVclickデータを含み、このVclickデータは、Vclick情報ファイル(Vclickインフォ)、Vclickアクセス・テーブル、Vclickストリーム、Vclick情報ファイル・バックアップ(Vclickインフォ・バックアップ)、Vclickアクセス・テーブル・バックアップを含んで構成される。
Vclick情報ファイルは、後述のVclickストリームが、DVDビデオコンテンツのどの箇所(例えば、DVDビデオコンテンツのタイトル全体、チャプター全体、あるいはその一部等)に付加しているかを表すデータである。Vclickアクセス・テーブルは、後述のVclickストリームごとに存在し、Vclickストリームにアクセスするためのテーブルである。Vclickストリームは、動画像中のオブジェクトの位置情報やオブジェクトがクリックされた際の動作記述等のデータを含むストリームである。Vclick情報ファイル・バックアップは、前述のVclick情報ファイルのバックアップであり、Vclick情報ファイルと常に同じ内容のものである。また、Vclickアクセス・テーブル・バックアップは、前述のVclickアクセス・テーブルのバックアップであり、Vclickアクセス・テーブルと常に同じ内容のものである。図53の例ではVclickデータはエンハンスドDVDビデオディスク上に記録されている。しかし、前述したようにVclickデータはネットワーク上のサーバー装置に置かれている場合もある。
図54は、上述した、Vclick情報ファイル、Vclickアクセス・テーブル、Vclickストリーム、Vclick情報ファイル・バックアップ、Vclickアクセス・テーブル・バックアップを構成するためのファイルの例を示す。Vclick情報ファイルを構成するファイル(VCKINDEX.IFO)は、XML(Extensible Markup Language)言語で記述されており、Vclickストリームと、そのVclickストリームが付加されるDVDビデオコンテンツの位置情報(VTS番号、タイトル番号、PGC番号等)が記述されている。Vclickアクセス・テーブルは、一つ以上のファイルから構成されており(VCKSTR01.IFO〜VCKSTR99.IFO、または、任意のファイル・ネーム)、一つのアクセス・テーブル・ファイルは、一つのVclickストリームに対応する。
Vclickストリーム・ファイルは、Vclickストリームの位置情報(ファイルの先頭からの相対バイト・サイズ)と時間情報(対応する動画像のタイムスタンプもしくはファイルの先頭からの相対時間情報)の関係が記述されており、与えられた時間に対応する再生開始位置を検索することができる。
Vclickストリームは、一つ以上のファイルから構成されており(VCKSTR01.VCK〜VCKSTR99.VCK、または、任意のファイル・ネーム)、前述のVclick情報ファイルの記述を参照して、付加されるDVDビデオコンテンツとともに再生できる。また、複数の属性が存在する場合(例えば、日本語用Vclickデータと英語用Vclickデータ等)、属性ごとに異なるVclickストリーム、つまり異なるファイルとして構成することも可能であり、それぞれの属性をマルチプレクスして、一つのVclickストリーム、つまり一つのファイルとして構成することも可能である。なお、前者(異なる属性を複数のVclickストリームで構成)の場合は、再生装置(プレーヤ)にいったん記憶させるときのバッファ占有容量を少なくすることができる。また、後者(異なる属性を一つのVclickストリームで構成)の場合は、属性を切り替えるとき、ファイルを切り替えずに、一つのファイルを再生したままでよいので、切り替える速度を速くすることができる。
ここで、VclickストリームとVclickアクセス・テーブルの関連付けは、例えば、ファイル名にて行うことが可能である。前述の例においては、一つのVclickストリーム(VCKSTRXX.VCK、XXは01〜99)に対して、一つのVclickアクセス・テーブル(VCKSTRXX.IFO、XXは01〜99)を割り当てており、拡張子以外のファイル名を同じものにすることにより、VclickストリームとVclickアクセス・テーブルの関連付けが識別可能になる。
これ以外にも、Vclick情報ファイルにて、VclickストリームとVclickアクセス・テーブルの関連付けを記述することにより(並行に記述することにより)、VclickストリームとVclickアクセス・テーブルの関連付けが識別可能になる。
Vclick情報ファイル・バックアップはVCKINDEX.BUPファイルにて構成されており、前述のVclick情報ファイル(VCKINDEX.IFO)と全く同じ内容のものである。VCKINDEX.IFOが何らかの理由により(ディスクの傷や汚れ等により)、読み込みが不可能な場合、このVCKINDEX.BUPを代わりに読み込むことにより、所望の手続きを行うことができる。Vclickアクセス・テーブル・バックアップはVCKSTR01.BUP〜VCKSTR99.BUPファイルにて構成されており、前述のVclickアクセス・テーブル(VCKSTR01.IFO〜VCKSTR99.IFO)と全く同じ内容のものである。一つのVclickアクセス・テーブル(VCKSTRXX.IFO、XXは01〜99)に対して、一つのVclickアクセス・テーブル・バックアップ(VCKSTRXX.BUP、XXは01〜99)を割り当てており、拡張子以外のファイル名を同じものにすることにより、Vclickアクセス・テーブルとVclickアクセス・テーブル・バックアップの関連付けが識別可能になる。VCKSTRXX.IFOが何らかの理由により(ディスクの傷や汚れ等により)、読み込みが不可能な場合、このVCKSTRXX.BUPを代わりに読み込むことにより、所望の手続きを行うことができる。
図55〜図57には、Vclick情報ファイルの構成例を示す。Vclick情報ファイルは、XML言語で構成されており、最初に、XML言語であることが宣言され、次にXML言語で構成されたVclick情報ファイルであることが宣言される。更に、<vclickinfo>タグを用いてVclick情報ファイルの内容を記述する。
<vclickinfo>の領域は、0もしくは1つの<vmg>タグと、0もしくは1つ以上の<vts>タグから構成される。<vmg>の領域は、DVDビデオにおけるVMG空間を表しており、<vmg>の領域に記述されたVclickストリームは、VMG空間のDVDビデオデータに付加されることを表している。また、<vts>の領域は、DVDビデオにおけるVTS空間を表しており、<vts>タグ内にnum属性を付加することによりVTS空間の番号を指定している。例えば、<vts num="n">はn番目のVTS空間を示している。<vts num="n">の領域に記述されたVclickストリームは、n番目のVTS空間を構成するDVDビデオデータに付加されることを表している。
<vmg>の領域は、0もしくは1つ以上の<vmgm>タグから構成される。<vmgm>の領域は、VMG空間におけるVMGメニュー・ドメインを表しており、<vmgm>タグ内にnum属性を付加することによりVMGメニュー・ドメインの番号を指定している。例えば、<vmgm num="n">はn番目のVMGメニュー・ドメインを示している。<vmgm num="n">の領域に記述されたVclickストリームは、n番目のVMGメニュー・ドメインを構成するDVDビデオデータに付加されることを表している。
更に、<vmgm>の領域は、0もしくは1つ以上の<pgc>タグから構成される。<pgc>の領域は、VMGメニュー・ドメインにおけるPGC(Program Chain)を表しており、<pgc>タグ内にnum属性を付加することによりPGCの番号を指定している。例えば、<pmg num="n">はn番目のPGCを示している。<pgc num="n">の領域に記述されたVclickストリームは、n番目のPGCを構成するDVDビデオデータに付加されることを表している。
次に、<vts>の領域は、0もしくは1つ以上の<vts_tt>タグと、0もしくは1つ以上の<vtsm>タグとから構成される。<vts_tt>の領域は、VTS空間におけるタイトル・ドメインを表しており、<vts_tt>タグ内にnum属性を付加することによりタイトル・ドメインの番号を指定している。例えば、<vts_tt num="n">はn番目のタイトル・ドメインを示している。<vts_tt num="n">の領域に記述されたVclickストリームは、n番目のタイトル・ドメインを構成するDVDビデオデータに付加されることを表している。
また、<vtsm>の領域は、VTS空間におけるVTSメニュー・ドメインを表しており、<vtsm>タグ内にnum属性を付加することによりVTSメニュー・ドメインの番号を指定している。例えば、<vtsm num="n">はn番目のVTSメニュー・ドメインを示している。<vtsm="n">の領域に記述されたVclickストリームは、n番目のVTSメニュー・ドメインを構成するDVDビデオデータに付加されることを表している。
更に、<vts_tt>の領域もしくは<vtsm>の領域は、0もしくは1つ以上の<pgc>タグから構成される。<pgc>の領域は、タイトル・ドメインもしくVTSメニュー・ドメインにおけるPGC(Program Chain)を表しており、<pgc>タグ内にnum属性を付加することによりPGCの番号を指定している。例えば、<pmg num="n">はn番目のPGCを示している。<pgc num="n">の領域に記述されたVclickストリームは、n番目のPGCを構成するDVDビデオデータに付加されることを表している。
図55〜図57の例においては、6つのVclickストリームが、DVDビデオコンテンツに付加されている。例えば、最初のVclickストリームは、<vmg>での<vmgm num="1">における<pgc num="1">において、<object>タグを用いて指定されている。これは、VMG空間における、1番目のVMGメニュー・ドメインにおける、1番目のPGCに対して、<object>タグにより指定されたVclickストリームが付加されることを示している。
<object>タグでは、"data"属性を用いて、Vclickストリームの存在する場所を示す。例えば、この発明の一実施の形態においては、"file://dvdrom:/dvd_enav/vclick1.vck"においてVclickストリームの存在する場所が指定されている。ここで、"file://dvdrom:/"はVclickストリームがエンハンスドDVDディスク内に存在することを示し、更に、"dvd_enav/"はディスク中の"DVD_ENAV"ディレクトリの下に存在することを示し、"vclick1.vck"はVclickストリームのファイル名を示している。また、Vclickストリームを記述する<object>タグと、Vclickアクセス・テーブルを記述する<object>タグを併記することにより、Vclickストリームに対応したVclickアクセス・テーブルの情報を記述することができる。<object>タグ内において"data"属性を用い、Vclickアクセス・テーブルの存在する場所を示す。例えば、この発明の一実施の形態においては、"file://dvdrom:/dvd_enav/vclick1.ifo"においてVclickアクセス・テーブルの存在する場所が指定されている。ここで、"file://dvdrom:/"はVclickアクセス・テーブルがエンハンスドDVDディスク内に存在することを示し、更に、"dvd_enav/"はディスク中の"DVD_ENAV"ディレクトリの下に存在することを示し、"vclick1.ifo"はVclickアクセス・テーブルのファイル名を示している。
次のVclickストリームは、<vmg>における、<vmgm num="n">において、<object>タグを用いて指定されている。これは、VMG空間における、1番目のVMGメニュー・ドメイン全体に対して、<object>タグにより指定されたVclickストリームが付加されることを示している。<object>タグでは、"data"属性を用いて、Vclickストリームの存在する場所を示す。例えば、この発明の一実施の形態においては、"http//www.vclick.com/dvd_enav/vclick2.vck"においてVclickストリームの存在する場所が指定されている。ここで、"http//www.vclick.com/dvd_enav/"はVclickストリームが外部のサーバー内に存在することを示し、"vclick2.vck"はVclickストリームのファイル名を示している。
Vclickアクセス・テーブルに関しても同様に、<object>タグ内において"data"属性を用い、Vclickアクセス・テーブルの存在する場所を示す。例えば、この発明の一実施の形態においては、"http//www.vclick.com/dvd_enav/vclick2.ifo"においてVclickアクセス・テーブルの存在する場所が指定されている。ここで、"http//www.vclick.com/dvd_enav/"はVclickアクセス・テーブルが外部のサーバー内に存在することを示し、"vclick2.ifo"はVclickアクセス・テーブルのファイル名を示している。
三番目のVclickストリームは、<vts num="1">における、<vts_tt num="1">における、<pgc num="1">において、<object>タグを用いて指定されている。これは、1番目のVTS空間における、1番目のタイトル・ドメインにおける、1番目のPGCに対して、<object>タグにより指定されたVclickストリームが付加されることを示している。<object>タグでは、"data"属性を用いて、Vclickストリームの存在する場所を示す。例えば、この発明の一実施の形態においては、"file://dvdrom:/dvd_enav/vclick3.vck"においてVclickストリームの存在する場所が指定されている。ここで、"file://dvdrom:/dvd_enav/"は、Vclickストリームがディスク中の"DVD_ENAV"ディレクトリの下に存在することを示し、"vclick3.vck"はVclickストリームのファイル名を示している。
四番目のVclickストリームは、<vts num="1">における、<vts_tt num="n">において、<object>タグを用いて指定されている。これは、1番目のVTS空間における、n番目のタイトル・ドメインにおいて、<object>タグにより指定されたVclickストリームが付加されることを示している。<object>タグでは、"data"属性を用いて、Vclickストリームの存在する場所を示す。例えば、この発明の一実施の形態においては、"file://dvdrom:/dvd_enav/vclick4.vck"においてVclickストリームの存在する場所が指定されている。ここで、"file://dvdrom:/dvd_enav/"は、Vclickストリームがディスク中の"DVD_ENAV"ディレクトリの下に存在することを示し、"vclick4.vck"はVclickストリームのファイル名を示している。
五番目のVclickストリームは、<vts num="1">における、<vtsm num="1">において、<object>タグを用いて指定されている。これは、1番目のVTS空間における、1番目のVTSメニュー・ドメインにおいて、<object>タグにより指定されたVclickストリームが付加されることを示している。<object>タグでは、"data"属性を用いて、Vclickストリームの存在する場所を示す。例えば、この発明の一実施の形態においては、"file://dvdrom:/dvd_enav/vclick5.vck"においてVclickストリームの存在する場所が指定されている。ここで、"file://dvdrom:/dvd_enav/"は、Vclickストリームがディスク中の"DVD_ENAV"ディレクトリの下に存在することを示し、"vclick5.vck"はVclickストリームのファイル名を示している。
六番目のVclickストリームは、<vts num="1">における、<vtsm num="1">における、<pgc num="1">において、<object>タグを用いて指定されている。これは、1番目のVTS空間における、1番目のVTSメニュー・ドメインにおける、1番目のPGCに対して、<object>タグにより指定されたVclickストリームが付加されることを示している。<object>タグでは、"data"属性を用いて、Vclickストリームの存在する場所を示す。例えば、この発明の一実施の形態においては、"file://dvdrom:/dvd_enav/vclick6.vck"においてVclickストリームの存在する場所が指定されている。ここで、"file://dvdrom:/dvd_enav/"は、Vclickストリームがディスク中の"DVD_ENAV"ディレクトリの下に存在することを示し、"vclick6.vck"はVclickストリームのファイル名を示している。
図58は、前述のVclickインフォの記述例にて記述されたVclickストリームとDVDビデオコンテンツの関係を示す図である。ここで、1番目のVTS空間における、1番目のVTSメニュー・ドメインにおける、1番目のPGCに対して、前述の五番目のVclickストリームと、六番目のVclickストリームが付加されていることが分かる。これは、DVDビデオコンテンツに対して、二つのVclickストリームが付加されていることを表し、例えば、ユーザによって、あるいはコンテンツ・プロバイダ(コンテンツ・オーサ)によって、切り替えることが可能となる。
ユーザが切り替える場合は、Vclickストリームを切り替えるための"Vclick切り替えボタン"がリモートコントローラ(図示せず)に備え付けてあり、これにより二つもしくはそれ以上のVclickストリームを自由に変更することができる。コンテンツ・プロバイダが変更する場合は、Markup言語にVclick切り替えのためのコマンド("changeVclick()")が記述されており、コンテンツ・プロバイダがMarkup言語にて指定したタイミングでコマンドを発行し、二つもしくはそれ以上のVclickストリームを自由に変更することができる。
図59〜図65には、Vclick情報ファイルの別の記述例(7つ)を示す。最初の例(図59)においては、一つのPGC(PGC#1)に対し、ディスク上に記録されている二つのVclickストリーム(Vclickストリーム#1、Vclickストリーム#2)とサーバー上に記録されている一つのVclickストリーム(Vclickストリーム#3)が付加されている。これは前述のように、ユーザによってVclickストリーム#1、Vclickストリーム#2、Vclickストリーム#3を自由に切り替えさせることもでき、コンテンツ・プロバイダによって切り替えさせることもできる。
コンテンツ・プロバイダによって切り替えさせる場合は、例えば、再生装置がVclickストリーム#3の再生が指示されたが、再生装置が外部サーバーにつながっていない場合や、つながっているがVclickストリーム#3が外部サーバーから取得できない場合は、ティスク上のVclickストリーム#1またはVclickストリーム#2に代替させることができる。また、<object>タグ内の"priority"属性は、それぞれのストリームを切り替える際の順番を示しており、例えば、前述のユーザ("Vclick切り替えボタン"を用いて)やコンテンツ・プロバイダ(Vclick切り替えのためのコマンド"changeVclick()"を用いて)が順次切り替える際に、"priority"属性の順序を参照し、Vclickストリーム#1→Vclickストリーム#2→Vclickストリーム#3→Vclickストリーム#1→....というように切り替えられる。
また、コンテンツ・プロバイダは、Markup言語において、Vclick切り替えのためのコマンド("changeVclick(priority)")を用いることにより、コンテンツ・プロバイダがMarkup言語にて指定したタイミングでコマンドを発行し、任意のVclickストリームを選択することもできる。例えば、"changeVclick(2)"コマンドを発行した場合は、"priority属性"が"2"であるVclickストリーム#2が再生される。
次の例(図60)においては、一つのPGC(PGC#2)に対し、ディスク上に記録されている二つのVclickストリーム(Vclickストリーム#1、Vclickストリーム#2)が付加されている。ここで、<object>タグ内の"audio"属性は、オーディオ・ストリーム番号に対応しており、この例においては、DVDビデオコンテンツのオーディオ・ストリーム#1が再生されている場合は、Vclickストリーム#1(Vclick1.vck)を同期再生し、オーディオ・ストリーム#2が再生されている場合は、Vclickストリーム#2(Vclick2.vck)を同期再生することを示す。
例えば、ビデオコンテンツのオーディオ・ストリーム#1が日本語音声、オーディオ・ストリーム#2が英語音声にて構成されている場合、図68に示すようにVclickストリーム#1を日本語にて(つまりVclickオブジェクトの説明の表示が日本語で記述されている、またはVclickオブジェクトがクリックさせたあとのアクセス先が日本語で構成されているサイトやページ)、図67に示すようにVclickストリーム#2を英語にて(つまりVclickオブジェクトの説明の表示が英語で記述されている、またはVclickオブジェクトがクリックさせたあとのアクセス先が日本語で構成されているサイトやページ)を構成することにより、DVDビデオコンテンツの音声の言語とVclickストリームの言語を合わせることができる。実際には、再生装置は、再生装置内のシステムパラメータであるSPRM(1)(オーディオ・ストリーム番号)を参照し、それに対応したVclickストリームを、このVclick情報ファイルから検索して再生する。
三番目の例(図61)においては、一つのPGC(PGC#3)に対し、ディスク上に記録されている三つのVclickストリーム(Vclickストリーム#1、Vclickストリーム#2、Vclickストリーム#3)が付加されている。ここで、<object>タグ内の"subpic"属性は、サブピクチャ・ストリーム番号(副映像番号)に対応しており、この例においては、DVDビデオコンテンツのサブピクチャ・ストリーム#1が再生されている場合は、Vclickストリーム#1(Vclick1.vck)を同期再生し、サブピクチャ・ストリーム#2が再生されている場合は、Vclickストリーム#2(Vclick2.vck)を同期再生し、サブピクチャ・ストリーム#3が再生されている場合は、Vclickストリーム#3(Vclick3.vck)を同期再生することを示す。
例えば、ビデオコンテンツのサブピクチャ・ストリーム#1が日本語字幕、サブピクチャ・ストリーム#3が英語字幕にて構成されている場合、図70に示すように、Vclickストリーム#1を日本語にて(つまりVclickオブジェクトの説明の表示が日本語で記述されている、またはVclickオブジェクトがクリックさせたあとのアクセス先が日本語で構成されているサイトやページ)、図69に示すように、Vclickストリーム#2を英語にて(つまりVclickオブジェクトの説明の表示が英語で記述されている、またはVclickオブジェクトがクリックさせたあとのアクセス先が日本語で構成されているサイトやページ)を構成することにより、DVDビデオコンテンツの字幕の言語とVclickストリームの言語を合わせることができる。実際には、再生装置は、再生装置内のシステムパラメータであるSPRM(2)(サブピクチャ・ストリーム番号)を参照し、それに対応したVclickストリームを、このVclick情報ファイルから検索して再生する。
四番目の例(図62)においては、一つのPGC(PGC#4)に対し、ディスク上に記録されている二つのVclickストリーム(Vclickストリーム#1、Vclickストリーム#2)が付加されている。ここで、<object>タグ内の"angle"属性は、アングル番号に対応しており、この例においては、ビデオコンテンツのアングル#1が再生されている場合は、Vclickストリーム#1(Vclick1.vck)を同期再生し(図71)、アングル#3が再生されている場合は、Vclickストリーム#2(Vclick2.vck)を同期再生し(図72)、アングル#2が再生されている場合は、Vclickストリームを再生しないことを示す。通常、アングルが異なる場合は、人物などのVclickオブジェクトを付加する対象の位置が異なるため、アングルごとにVclickストリームを構成する必要がある。(一つのVclickストリームにそれぞれのVclickオブジェクト・データをマルチプレクスしてもよい。)実際には、再生装置は、再生装置内のシステムパラメータであるSPRM(3)(アングル番号)を参照し、それに対応したVclickストリームを、このVclick情報ファイルから検索して再生する。
五番目の例(図63)においては、一つのPGC(PGC#5)に対し、ディスク上に記録されている三つのVclickストリーム(Vclickストリーム#1、Vclickストリーム#2、Vclickストリーム#3)が付加されている。ここで、<object>タグ内の"aspect"属性は、(初期)表示アスペクト比に対応しており、<object>タグ内の"display"属性は、(現在)表示モードに対応している。
この例においては、DVDビデオコンテンツ自体が"16:9"のアスペクト比で構成されており、"16:9"のアスペクト比をもつTVモニターには"ワイド(wide)"出力を、"4:3"のアスペクト比をもつTVモニターには"レターボックス(lb)"または"パンスキャン(ps)"出力が許されている例を示す。これに対して、Vclickストリームは、(初期)表示アスペクト比が"16:9"かつ(現在)表示モードが"wide"のときはVclickストリーム#1を同期再生し(図73)、(初期)表示アスペクト比が"4:3"かつ(現在)表示モードが"lb"のときはVclickストリーム#2を同期再生し(図74)、(初期)表示アスペクト比が"4:3"かつ(現在)表示モードが"ps"のときはVclickストリーム#3を同期再生する(図75)。例えば、"16:9"のアスペクト比で表示されていたときに、人物の真横に表示されていたVclickオブジェクトの吹き出しを、"4:3"のアスペクト比の"レターボックス"表示の場合は画面の上下(の黒部分)に表示したり、"4:3"のアスペクト比の"パンスキャン"表示の場合は画面の左右が切れてしまうが、表示が可能な位置に変更することが可能になる。
また、画面の構成に応じて、吹き出しのサイズを小さくしたり、または大きくしたり、吹き出し内の文字のサイズを小さく、または大きくすることが可能になる。これにより、DVDビデオコンテンツの表示状態に応じたVclickオブジェクトの表示を行うことが可能になる。実際には、再生装置は、再生装置内のシステムパラメータであるSPRM(14)(ビデオ用のプレーヤ構成)における“初期表示アスペクト比”と“現在表示モード"を参照し、それに対応したVclickストリームを、このVclick情報ファイルから検索して再生する。
六番目の例(図64)においては、一つのPGC(PGC#6)に対し、ディスク上に記録されている一つのVclickストリーム(Vclickストリーム#1)が付加されている。前例と同様に、<object>タグ内の"aspect"属性は、(初期)表示アスペクト比に対応しており、<object>タグ内の"display"属性は、(現在)表示モードに対応している。この例においては、DVDビデオコンテンツ自体が"4:3"のアスペクト比で構成されており、"4:3"のアスペクト比をもつTVモニターには"通常"モードで出力する場合に適用される。
最後に、前述の機能を組み合わせて用いることが可能であることを示す例(図65)を示す。一つのPGC(PGC#7)に対し、ディスク上に記録されている四つのVclickストリーム(Vclickストリーム#1、Vclickストリーム#2、Vclickストリーム#3、Vclickストリーム#4)が付加されている。この例においては、DVDビデオコンテンツのオーディオ・ストリーム#1が再生され、かつサブピクチャ・ストリーム#1が再生され、かつアングル#1が再生されている場合はVclickストリーム#1(Vclick1.vck)を同期再生し、オーディオ・ストリーム#1が再生され、かつサブピクチャ・ストリーム#2が再生され、かつアングル#1が再生されている場合はVclickストリーム#2(Vclick2.vck)を同期再生し、アングル#2が再生されている場合はVclickストリーム#3(Vclick3.vck)を同期再生し、オーディオ・ストリーム#2が再生され、かつサブピクチャ・ストリーム#2が再生されている場合はVclickストリーム#4(Vclick4.vck)を同期再生する。
以上、7つの例(図59〜図65)に関して、DVDビデオコンテンツのPGCとその属性に対する付加されるVclickストリームの関係を図66に示す。
この発明の一実施の形態における再生装置(エンハンスドDVDプレーヤ)は、DVDビデオコンテンツを再生する前に、Vclick情報ファイルをあらかじめ読み込むことにより、もしくは適宜参照することにより、DVDビデオコンテンツの再生状態に応じて、逐次付加するVclickストリーム・ファイルを変化させることが可能となる。これにより、Vclickストリームを構成するにあたり自由度を持つことができ、オーサリングの負担を軽減することが可能となる。
また、一つのVclickコンテンツのファイル数(ストリーム数)を増やし、そのファイル・サイズを小さくすることにより、再生装置に必要とされるVclickストリームを格納するための領域(バッファ)を小さくすることも可能になる。
また、ファイル・サイズは大きくなるが、ファイル数を減らす(つまり一つのストリームが複数のVclickデータを含む構成にする)ことにより、DVDビデオコンテンツの再生状態が変化した場合、スムーズにVclickデータを切り替えることが可能となる。
(データ構造の概略とアクセス・テーブル)
Vclickストリームには、動画像データ記録媒体231に記録されている動画像に登場する人・物などのオブジェクトの領域に関するデータと、クライアント装置200におけるオブジェクトの表示方法とユーザがそれらオブジェクトを指定したときにクライアント装置が取るべき動作のデータが含まれている。以下では、Vclickデータの構造とその構成要素の概要について説明する。
まず動画像に登場する人・物などのオブジェクトの領域に関するデータであるオブジェクト領域データについて説明する。
図3はオブジェクト領域データの構造を説明する図である。300は、1つのオブジェクトの領域が描く軌跡をX(映像の水平方向の座標値)、Y(映像の垂直方向の座標値)、T(映像の時刻)の3次元座標上に表現したものである。オブジェクト領域はあらかじめ決められた範囲内の時間(例えば0.5秒から1.0秒の間や、2秒から5秒の間、など)ごとにオブジェクト領域データに変換される。図3では1つのオブジェクト領域300が301から305の5つのオブジェクト領域データに変換されており、これらオブジェクト領域データは別々のVclickアクセスユニット(AU)(後述)に格納される。このときの変換方法としては、例えばMPEG−4の形状符号化やMPEG−7の時空間記述子などを使うことができる。MPEG―4形状符号化やMPEG−7時空間記述子はオブジェクト領域の時間的な相関を利用してデータ量を削減する方式であるため、途中からデータが復号できないことや、ある時刻のデータが欠落した場合に周囲の時刻のデータも復号できなくなるという問題がある。図3のように長い時間連続して動画像中に登場しているオブジェクトの領域を時間方向に分割してデータ化することにより、ランダムアクセスを容易にし、一部のデータの欠落の影響を軽減することができる。各Vclick_AUは動画像の中である特定の時間区間でのみ有効である。このVclick_AUが有効な時間区間をVclick_AUの有効期間(lifetime)と呼ぶ。
図4は、この発明の一実施の形態で用いるVclickストリーム中の、独立にアクセス可能な1単位(Vclick_AU)の構造を表したものである。400はオブジェクト領域データである。図3で説明したとおり、ここには1つのオブジェクト領域のある連続した時間区間における軌跡がデータ化されている。このオブジェクト領域が記述されている時間区間をそのVclick_AUのアクティブ期間(active time)と呼ぶ。通常はVclick_AUのアクティブ期間はそのVclick_AUの有効期間と同一である。しかし、Vclick_AUのアクティブ期間をそのVclick_AUの有効期間の一部とすることも可能である。
401はVclick_AUのヘッダである。ヘッダ401には、Vclick_AUを識別するためのIDと、そのAUのデータサイズを特定するデータが含まれる。402はタイムスタンプであり、このVclick_AUの有効期間開始のタイムスタンプを示している。通常はVclick_AUのアクティブ期間と有効期間が同一であるため、オブジェクト領域データ400に記述されたオブジェクト領域が動画像のどの時刻に相当するかも示している。図3に示されるように、オブジェクト領域はある時間範囲に及んでいるため、通常はタイムスタンプ402にはオブジェクト領域の先頭の時刻を記述しておく。もちろんオブジェクト領域データに記述されたオブジェクト領域の時間間隔やオブジェクト領域の末尾の時刻も記述するようにしても良い。403はオブジェクト属性情報であり、例えばオブジェクトの名称、オブジェクトが指定された際の動作記述、オブジェクトの表示属性などが含まれる。これらVclick_AU内のデータに関しては、後でより詳細に説明する。Vclick_AUは、サーバー装置においては送信しやすいようにタイムスタンプ順に並べて記録しておくほうが良い。
図5は複数のAUをタイムスタンプ順に並べてVclickストリームを生成する方法を説明する図である。この図では、カメラアングル1とカメラアングル2の2つのカメラアングルがあり、クライアント装置でカメラアングルを切り替えると表示される動画像も切り替えられることを想定している。また、選択可能な言語モードには日本語と英語の2種類があり、それぞれの言語に対して別々のVclickデータが用意されている場合を想定している。
図5に於いて、カメラアングル1かつ日本語用のVclick_AUは500、501、502であり、カメラアングル2かつ日本語用のVclick_AUのAUは503である。そして英語用のVclick_AUは504と505である。500から505はそれぞれ動画像中の一つのオブジェクトに対応したデータである。すなわち、図3と図4で説明したとおり一つのオブジェクトに関するメタデータは一つまたは複数のVclick_AUで構成されている(図5では1つの長方形が1つのAUを表している)。この図の横軸は動画像中の時間に対応しており、オブジェクトの登場時間に対応させて500から505を表示してある。
各Vclick_AUの時間的な区切りは任意でもよいが、図5に例示されるように、全てのオブジェクトに対してVclick_AUの区切りを揃えておくと、データの管理が容易になる。506は、これらのVclick_AU(500から705)から構成されたVclickストリームである。Vclickストリームは、ヘッダ部507に続いてVclick_AUをタイムスタンプ順にならべることにより構成される。
選択しているカメラアングルはユーザが視聴中に変更する可能性が高いため、このようにVclickストリームに異なるカメラアングルのVclick_AUを多重化してVclickストリームを作った方が良い。これは、クライアント装置で高速な表示切り替えが可能だからである。例えば、Vclickデータがサーバー装置201に置かれているとき、複数のカメラアングルのVclick_AUを含むVclickストリームをそのままクライアント装置に送信すれば、クライアント装置では視聴中のカメラアングルに対応したVclick_AUが常に届いているため、瞬時にカメラアングルの切り替えができる。もちろん、クライアント装置200の設定情報をサーバー装置201に送り、必要なVclick_AUのみをVclickストリームから選択して送信することも可能であるが、この場合はサーバーとの通信を行う必要があるため多少処理が遅くなる(もっとも、通信に光ファイバなどの高速手段を用いればこの処理遅延の問題は解決できる)。
一方、動画像タイトル、DVDビデオのPGC、動画像のアスペクト比、視聴地域等の属性は変更の頻度が低いため、別々のVclickストリームとして作成しておいた方がクライアント装置の処理が軽くなり、ネットワークの付加も軽くなる。複数のVclickストリームがある場合にどのVcklickストリームを選択すべきかは、すでに説明したようにVclick情報ファイルを参照して決定できる。
次に、別のVclick_AUの選択方法について説明する。クライアント装置がサーバー装置から、Vclickストリーム506を取得し、クライアント装置の側で必要なAUのみを利用する場合を考える。この場合、必要なVclick_AUを識別する為のIDが各AUに振られていても良い。これをフィルタIDと呼ぶ。
必要とされるAUの条件は、例えば、Vclick情報ファイル中に次のように記述される。なお、当該Vclick情報ファイルは動画像データ記録媒体231上に存在しても良いし、サーバー装置201からネットワーク経由でダウンロードされるようにしても良い。Vclick情報ファイルは通常、動画像データ記録媒体、サーバー装置など、Vclickストリームと同一の記録媒体から供給される:
<pgc num="7">
//audio/subpictureストリームとangleによるVclickストリームの定義
<object data="file://dvdrom:/dvd_enav/vclick1.vck" audio="1" subpic="1" angle="1"/>
<object data="file://dvdrom:/dvd_enav/vclick1.vck" audio="3" subpic="2" angle="1"/>
</pgc>
ここでは、一つのVclickストリームに対して、二種類のフィルタリング条件が記述されている。これは、クライアントのシステムパラメータの設定に応じて、同一のVclickストリームから異なる属性を有する二種類のVclick_AUが選択可能である事を示している。
AUがフィルタIDを持たない場合、メタデータ・マネージャー210が必要なVclick_AUを識別するには、AUのタイムスタンプや属性などを見て、与えられた条件に適合するAUを選択する。
フィルタIDを用いる例を、上記の記述に即して説明する。audioはオーディオ・ストリーム番号を表しているが、これを4ビットの数値で表現する。同様に、副映像番号subpicとアングル番号angleに、それぞれ4ビットの数値を割り当てる。これにより、三つのパラメータの状態を12ビットの数値で表現する事ができる。即ち、audio="3"、subpic="2"かつangle="1"のパラメータは、16進表記で0x321と表現される。これをフィルタIDとして用いる。即ち、Vclick_AUは12ビットのフィルタIDをVclick_AUヘッダ内に有する(図14のfiltering_id参照)。これは、AUを選別する独立なパラメータ値のそれぞれに数字を割り当て、当該数字の組み合わせによりフィルタIDを定める方法である。なお、フィルタIDはVclick_AUヘッダ以外の場所に記述しても良い。
クライアント装置のフィルタリング動作を図44に示す。まず、メタデータ・マネージャー210がインタフェース・ハンドラー207から、動画像クロック値TとフィルタID xとを受け取る(ステップS4401)。データ・マネージャー210は、バッファ209に格納されているVclickストリームの中から、有効期間が動画像クロック値Tを含むようなVclick_AUを全て見出す(ステップS4402)。このようなAUを見出すには、Vclickアクセス・テーブルを用いて、図45及び図46のような手続きを用いることができる。メタデータ・マネージャー210は、上記Vclick_AUヘッダを調べ、xと同一のフィルタIDを有するAUのみをメディア・デコーダ216に送る(ステップS4403〜S4405)。
以上の手続きによって、バッファ209からメタデータ・デコーダ217に送られるVclick_AUは次の性質を有する:
i)これら全てのAUは同一の有効期間を有するが、動画像クロックTは当該有効期間に含まれる。
ii)これら全てのAUは、同一のフィルタID xを有する。
上記i)及びii)の条件を満足する、当該オブジェクト・メタデータ・ストリーム中のAUは、これらのAU以外には存在しない。
上記では、フィルタIDは、パラメータに割り当てられたの組み合わせによって定義されていたが、Vclick情報ファイルの中でフィルタIDを直接指定するようにしても良い。例えば、IFOファイル中には次のように定められている:
<pgc num="5">
<param angle="1">
<object data="file://dvdrom:/dvd_enav/vclick1.vck" filter_id="3"/>
</param>
<param angle="3">
<object data="file://dvdrom:/dvd_enav/vclick2.vck" filter_id="4"/>
</param>
<param aspect="16:9" display="wide">
<object data="file://dvdrom:/dvd_enav/vclick1.vck" filter_id="2"/>
</param>
</pgc>
上記の記述は、各パラメータの指定によって、VclickストリームとフィルタIDの値が定まる事を示している。フィルタIDによるVclick_AUの選別と、バッファ209からメディア・デコーダ217へのAUの転送は、図44の手続きと同じである。上記Vclick情報ファイルの指定に基づき、プレーヤのアングル番号が3である場合、"vclick2.vck"というファイルに格納されているVclickストリームから、フィルタIDの値が4に等しいVclick_AUのみが、バッファ209からメディア・デコーダ217に送られる。
サーバー装置201にVclickデータがある場合、動画像が先頭から再生される場合にはサーバー装置201はVclickストリームを先頭から順にクライアント装置に配信すればよい。しかし、ランダムアクセスが生じた場合にはVclickストリームの途中からデータを配信する必要がある。このときに、Vclickストリーム中の所望の位置に高速にアクセスするためには、Vclickアクセス・テーブルが必要となる。
図6はVclickアクセス・テーブルの例である。このテーブルはあらかじめ作成され、サーバー装置201内に記録されている。Vclick情報ファイルと同じファイルにしておくことも可能である。600はタイムスタンプの配列であり、動画像のタイムスタンプが列挙されている。601はアクセスポイントの配列であり、動画像のタイムスタンプに対応したVclickストリームの先頭からのオフセット値が列挙されている。動画像のランダムアクセス先のタイムスタンプに対応した値がVclickアクセス・テーブルにない場合は、近い値のタイムスタンプのアクセスポイントを参照し、そのアクセスポイント周辺でVclickストリーム内のタイムスタンプを参照しながら送信開始場所を探索する。もしくは、Vclickアクセス・テーブルから動画像のランダムアクセス先のタイムスタンプよりも手前の時刻のタイムスタンプを探索し、そのタイムスタンプに対応したアクセスポイントからVclickストリームを送信する。
上記Vclickアクセス・テーブルは、サーバー装置が格納しており、サーバー装置がクライアントからのランダムアクセスに応じて、送信すべきVclickデータの検索の便宜に資する為のものである。しかし、サーバー装置が格納しているVclickアクセス・テーブルをクライアント装置にダウンロードして、Vclickストリームの検索をクライアント装置に行わせるようにしても良い。特に、Vclickストリームが、サーバー装置からクライアント装置に一括ダウンロードされる場合、Vclickアクセス・テーブルも又、サーバー装置からクライアント装置に一括ダウンロードされる。
一方、VclickストリームがDVDなどの動画像記録媒体に記録されて提供される場合も考えられる。この場合も、再生コンテンツのランダムアクセスに応じて、利用すべきデータを検索するために、クライアント装置がVclickアクセス・テーブルを利用する事は有効である。この場合Vclickアクセス・テーブルは、Vclickストリーム同様、動画像記録媒体に記録されており、クライアント装置は当該動画像記録媒体から当該Vclickアクセス・テーブルを内部の主記憶等に読み出して利用する。
動画像のランダム再生などに伴って発生する、Vclickストリームのランダム再生は、メタデータ・デコーダ217によって処理される。図6のVclickアクセス・テーブルにおいて、タイムスタンプtimeは、動画像記録媒体に記録された動画像のタイムスタンプの形式を有する時刻情報である。例えば、動画像がMPEG-2で圧縮されて記録されているなら、timeはMPEG-2のPTSの形式をとる。更に、動画像が、例えばDVDのように、タイトルやプログラム・チェーンなどのナビゲーション構造を持つ場合、それらを表現するパラメータ(TTN、VTS_TTN、TT_PGCN、PTTNなど)がtimeの形式に含まれる。
タイムスタンプの値の集合には、何らかの自然な全順序関係が定義されているものと仮定する。例えば、PTSについては時刻としての自然な順序関係が導入可能である。DVDのパラメータを含むタイムスタンプについても、DVDの自然な再生順序に従って、順序関係を導入する事が可能である。Vclickストリームは次の条件を満たしている:
i)Vclickストリーム中のVclick_AUはタイムスタンプの昇順に並べられている。このとき、Vclick_AUの有効期間を次のように決定する:あるAUのタイムスタンプ値をtとおく。Vclickストリームにおいて当該AU以降にあるAUのタイムスタンプ値uについて、上記条件によりu >= tなる関係が成立する。このようなuの中でu≠tである最小の値をt'とおく。時刻tを開始時刻、時刻t'を終了時刻とする期間を、当該AUの有効期間とする。
ii)Vclick_AUのアクティブ期間は、先に定義したとおり、Vclick_AU含まれるオブジェクト領域データに記述されているオブジェクト領域の時間範囲である。
ここで、Vclickストリームについて、アクティブ期間に関する次の制約条件をおく:
Vclick_AUのアクティブ期間は、当該AUの有効期間に含まれている。
上記i)、ii)の制約条件を満たすVclickストリームは、以下に示すような良い性質を有する:第一には、下に述べるように、Vclickストリームのランダムアクセスを高速に行う事が可能である。第二には、Vclickストリームの再生を行う際のバッファ処理を単純化する事が可能となる。バッファにはVclickストリームがVclick_AU単位で格納され、大きいタイムスタンプを持つAUから消去されて行く。もし、上記二つの仮定が無ければ、有効なAUをバッファ上に保持しておく為に、大きなバッファと複雑なバッファ管理が必要になる。以後、Vclickストリームは、上記i)及びii)の二条件を満たすと仮定して説明を行う。
図6のVclickアクセス・テーブルにおいて、アクセスポイントoffsetはVclickストリーム上の位置を指し示す。例えば、Vclickストリームはファイルであり、offsetは当該ファイルのファイル・ポインタの値を指し示す。タイムスタンプtimeと組になっているアクセスポイントoffsetの関係は次のようになっている:
i)offsetの示す位置は、あるVclick_AUの先頭位置である。
ii)当該AUがもつタイムスタンプの値は、timeの値以下である。
iii)当該AUより一つ前にあるAUがもつタイムスタンプの値は、timeより真に小さい。
Vclickアクセス・テーブルにおけるtimeの並びの間隔は任意で良いし、均等である必要もない。しかし、検索等の便宜を考慮して、均等にとっても良い。
Vclickアクセス・テーブルを用いた具体的な検索手順を図45及び図46に示す。Vclickストリームがサーバー装置からバッファ209に予めダウンロードされる場合、Vclickアクセス・テーブルも同様にサーバー装置からダウンロードされ、バッファ209内に格納される。VclickストリームとVclickアクセス・テーブルとが共に動画像データ記録媒体231に蓄積されている場合も同様に、VclickストリームとVclickアクセス・テーブルはディスク装置230からロードされ、バッファ209内に格納される。
メタデータ・マネージャー210は、インタフェース・ハンドラー207から動画像クロックTを受け取ると(ステップS4501)、バッファ209に格納されているVclickアクセス・テーブルのtimeを検索し、t' <= Tなる最大のtime t'を求める(ステップS4502)。ここでの検索のアルゴリズムとして、例えばバイナリ・サーチを用いて、高速に検索を行う事ができる。Vclickアクセス・テーブルにおいて、得られたtime t'と組になっているoffset値を変数hに代入する(ステップS4503)。メタデータ・マネージャー210は、バッファ209に格納されているVclickストリームの先頭からhバイト目に存在するAUxを見出し(ステップS4504)、xのタイムスタンプ値を変数tに代入する(ステップS4505)。上記条件より、tはt'以下であるから、t <= Tが成立する。
メタデータ・マネージャー210は、xから始めて、当該Vclickストリーム中のVclick_AUを順次調べて行き、次のAUを改めてxとおく(ステップS4506)。続いて、変数h'にxのオフセット値を代入し(ステップS4507)、xのタイムスタンプ値を変数uに代入する(ステップS4508)。u > Tであれば(ステップS4509イエス)、バッファ209に対して、Vclickストリームのオフセットhからh'までを、メディア・デコーダ216に送るよう指示を出す(ステップS4510〜S4511)。一方、u <= Tであって(ステップS4509ノー)、かつu > tであれば(ステップS4601イエス)、tの値をuで更新する(即ちt = uとする)(ステップS4602)。そして、変数hの値をh’で更新する(即ちh= h'とする)(ステップS4603)。
Vclickストリーム上に、次のAUが存在すれば(即ち、xが最後のAUでなければ)(ステップS4604イエス)、次のAUを改めてxとおき、上記手続きを繰り返す(図45のステップS4506へ戻る)。ここで、もし、xが当該Vclickストリームの最後のVclick_AUであれば(ステップS4604ノー)、バッファ209に対して、Vclickストリームのオフセットhから最後までを、メディア・デコーダ216に送るよう指示を出す(ステップS4605〜S4606)。
以上の手続きによって、バッファ209からメディア・デコーダ216に送られるVclick_AUは、明らかに次の性質を有する:
i)全てのVclick_AUは同一の有効期間を有する。しかも、動画像クロックTは当該有効期間に含まれる。
ii)上記i)の条件を満足する、当該Vclickストリーム中のVclick_AUは、これらのAU以外には存在しない。
VclickストリームにおけるVclick_AUの有効期間は、当該AUのアクティブ期間を含んでいるが、これらは常に一致しているとは限らない。実際、図47に示すような状況が考えられる。それぞれオブジェクト1及びオブジェクト2を記述するAU#1及びAU#2の有効期間は、AU#3の有効期間の開始時刻までである。しかし、各AUのアクティブ期間は有効期間に一致していない。
いま、AUが#1、#2、#3の順に並んだVclickストリームを考える。動画像クロックTが指定されたとする。図45及び図46に示すような手続きによれば、当該VclickストリームからAU#1とAU#2とがメディア・デコーダ216に送られる。メディア・デコーダ216は受け取ったVclick_AUのアクティブ期間を認識できるため、この処理によりランダムアクセスが実現可能である。しかし実際には、オブジェクトが存在しない時刻Tについても、バッファ209からのデータ転送と、メディア・デコーダ216におけるデコード処理が発生するため、計算の効率が低下するという問題がある。この問題は、NULL_AUと呼ぶ特別なVclick_AUを導入することで解決できる。
NULL_AUの構造を図48に示す。NULL_AUは、通常のVclick_AUが必ず持つオブジェクト領域データを持たない。従って、NULL_AUは有効期間のみを持ち、アクティブ期間は存在しない。NULL_AUのヘッダには当該AUがNULL_AUである事を示すフラグが含まれている。NULL_AUは、Vclickストリームにおいて、オブジェクトのアクティブ期間が存在しない時間範囲に挿入する事ができる。
メタデータ・マネージャー210は、NULL_AUをメディア・デコーダ216に送出しない。NULL_AUを導入した場合、図47は例えば図49の様に変化する。図49のAU#4がNULL_AUである。この場合、Vclickストリームおいて、Vclick_AUは例えばAU#1'、#2'、#4、#3の順に並んでいる。NULL_AUを含むVclickストリームに関して、図45及び図46に相当するメタデータ・マネージャー210の動作を図50、図51及び図52に示す。
すなわち、メタデータマネージャ210がインターフェースマネージャ207から動画像クロックTを受け取り(ステップS5001)、 t' <= Tである最大のt'を求め(ステップS5002)、 t'と組になるoffset値を変数hに代入する(ステップS5003)。続いて、オブジェクトメタデータストリームにおいてオフセット値hにあるアクセスユニットAUをxとおき(ステップS5004)、xのタイムスタンプ値を変数tに格納する(ステップS5005)。ここで、xがNULL_AUであれば(ステップS5006イエス)、xの次のAUを改めてxとおいて(ステップS5007)、ステップS5006に戻る。ここで、xがNULL_AUでなければ(ステップS5006ノー)、xのオフセット値を変数h‘に格納する(ステップS5101)。この後の処理(図51のステップS5102〜S5105および図52のステップS5201〜S5206)は、図45のステップS4508〜S454511および図46のステップS4601〜S4606と同様な処理となる。
次にサーバー装置・クライアント装置間のプロトコルについて説明する。Vclickデータをサーバー装置201からクライアント装置200に送信するときに使用するプロトコルとしては、例えばRTP(Real-time Transport Protocol)がある。RTPはUDP/IPとの相性が良く、リアルタイム性を重視しているためにパケットが欠落する可能性がある。RTPを用いると、Vclickストリームは送信用パケット(RTPパケット)に分割されて送信される。ここではVclickストリームの送信用パケットへの格納方法例を説明する。
図7と図8はそれぞれVclick_AUのデータサイズが小さい場合と大きい場合の送信用パケット構成方法を説明する図である。図7の700はVclickストリームである。送信用パケットはパケットヘッダー701とペイロードからなる。パケットヘッダー701にはパケットのシリアル番号、送信時刻、発信元の特定情報などが含まれている。ペイロードは送信データを格納するデータ領域である。ペイロードにVclick_AU700から順に取り出したVclick_AU(702)を納めていく。ペイロードに次のVclick_AUが入りきらない場合には残りの部分にパディングデータ703を挿入する。パディングデータはデータのサイズを合わせるためのダミーデータであり、例えば0値の連続である。ペイロードのサイズを1つまたは複数のVclick_AUサイズと等しくできる場合にはパディングデータは不要である。
一方、図8はペイロードに1つのVclick_AUが収まりきらない場合の送信用パケットの構成方法である。Vclick_AU(800)はまず1番目の送信用パケットのペイロードに入りきる部分(802)のみペイロードに格納される。残りのデータ(804)は第2の送信用パケットのペイロードに格納され、ペイロードの格納サイズに余りが生じていればパディングデータ805で埋める。一つのVclick_AUを3つ以上のパケットに分割する場合の方法も同様である。
RTP以外のプロトコルとしては、HTTP(Hypertext Transport Protocol)またはHTTPSを用いることができる。HTTPはTCP/IPとの相性が良く、この場合欠落したデータは再送されるため信頼性の高いデータ通信が行えるが、ネットワークのスループットが低い場合にはデータの遅延が生じるおそれがある。HTTPではデータの欠落がないため、Vclickストリームをどのようにパケットに分割して格納するかを特に考慮する必要はない。
(再生手順(ネットワーク))
次に、Vclickストリームがサーバー装置201上にある場合における再生処理の手順について説明する。
図37はユーザが再生開始を指示してから再生が開始されるまでの再生開始処理手順を表す流れ図である。まずステップS3700でユーザにより再生開始の指示が入力される。この入力は、インタフェース・ハンドラー207が受け取り、動画像再生コントローラ205に動画像再生準備の命令を出す。次に、分岐処理ステップS3701として、すでにサーバー装置201とのセッションが構築されているかどうかの判定を行う。セッションがまだ構築されていなければステップS3702に、すでに構築されていればステップS3703に処理を移す。ステップS3702ではサーバーとクライアント間のセッションを構築する処理を行う。
図9はサーバー・クライアント間の通信プロトコルとしてRTP用いた場合の、セッション構築からセッション切断までの通信手順例である。セッションの始めにサーバー・クライアント間でネゴシエーションを行う必要があるが、RTPの場合にはRTSP(Real Time Streaming Protocol)が用いられることが多い。ただし、RTSPの通信には高信頼性が要求されるため、RTSPはTCP/IPで、RTPはUDP/IPで通信を行うのが好ましい。まず、セッションを構築するために、クライアント装置(図2の例では200)はストリーミングされるVclickデータに関する情報提供をサーバー装置(図2の例では201)に要求する(RTSPのDESCRIBEメソッド)。
ここで、再生される動画像に対応したデータを配信するサーバーのアドレスは、例えば動画像データ記録媒体にアドレス情報を記録しておくなどの方法であらかじめクライアントに知らされているものとする。サーバー装置はこの応答としてVclickデータの情報をクライアント装置に送る。具体的には、セッションのプロトコルバージョン、セッション所有者、セッション名、接続情報、セッションの時間情報、メタデータ名、メタデータ属性といった情報がクライアント装置に送られる。これらの情報記述方法としては、例えばSDP(Session Description Protocol)を使用する。次にクライアント装置はサーバー装置にセッションの構築を要求する(RTSPのSETUPメソッド)。サーバー装置はストリーミングの準備を整え、セッションIDをクライアント装置に返す。ここまでの処理がRTPを用いる場合のステップS3702の処理である。
RTPではなくHTTPが使われている場合の通信手順は、例えば図10のように行う。まず、HTTPより下位の階層であるTCPでのセッション構築(3 way handshake)を行う。ここで、先ほどと同様に、再生される動画像に対応したデータを配信するサーバーのアドレスはあらかじめクライアントに知らされているものとする。この後、クライアント装置の状態(例えば、製造国、言語、各種パラメータの選択状態など)をSDP等を用いてサーバー装置に送る処理が行われるようにしてもよい。ここまでがHTTPの場合のステップS3702の処理となる。
ステップS3703では、サーバー装置とクライアント装置間のセッションが構築された状態で、サーバーにVclickデータ送信を要求する処理を行う。これはインタフェース・ハンドラーがネットワーク・マネージャー208に指示を出し、ネットワーク・マネージャー208がサーバーに要求を出すことにより行われる。RTPの場合には、ネットワーク・マネージャー208はRTSPのPLAYメソッドをサーバーに送ることでVclickデータ送信を要求する。サーバー装置は、これまでにクライアントから受け取った情報とサーバー装置内にあるVclickインフォを参照して送信すべきVclickストリームを特定する。さらに、Vclickデータ送信要求に含まれる再生開始位置のタイムスタンプ情報とサーバー装置内にあるVclickアクセス・テーブルを用いてVclickストリーム中の送信開始位置を特定し、Vclickストリームをパケット化してRTPによりクライアント装置に送る。
一方HTTPの場合には、ネットワーク・マネージャー208はHTTPのGETメソッドを送信することによりVclickデータ送信を要求する。この要求には、動画像の再生開始位置のタイムスタンプの情報を含めても良い。サーバー装置は、RTPの時と同様の方法により送信すべきVclickストリームと、このストリーム中の送信開始位置を特定し、VclickストリームをHTTPによりクライアント装置に送る。
次に、ステップS3704では、サーバーから送られてくるVclickストリームをバッファ209にバッファリングする処理を行う。これは、Vclickストリームの再生中にサーバーからのVclickストリーム送信が間に合わず、バッファが空になってしまうことをさけるために行われる。メタデータ・マネージャー210からバッファに十分なVclickストリームが蓄積されたことがインタフェース・ハンドラーに通知されると、ステップS3705の処理に移る。ステップS3705では、インタフェース・ハンドラーがコントローラ205に動画像の再生開始命令を出し、さらにメタデータ・マネージャー210にVclickストリームのメタデータ・デコーダ217への送出を開始するよう命令を出す。
図38は図37とは別の再生開始処理の手順を説明する流れ図である。図37の流れ図で説明される処理では、ネットワークの状態やサーバー、クライアント装置の処理能力により、ステップS3704でのVclickストリームを一定量バッファリングする処理に時間がかかる場合がある。すなわち、ユーザが再生を指示してから実際に再生が始まるまでに時間がかかってしまうことがある。図38の処理手順では、ステップS3800でユーザが再生開始を指示すると、次のステップS3801で直ちに動画像の再生が開始される。すなわち、ユーザからの再生開始指示を受けたインタフェース・ハンドラー207は、直ちにコントローラ205に再生開始命令を出す。これにより、ユーザは再生を指示してから動画像を視聴するまで待たされることがなくなる。次の処理ステップS3802からステップS3805までは、図37のステップS3701からステップS3704と同一の処理である。
ステップS3806では、再生中の動画像に同期させてVclickストリームを復号する処理を行う。すなわち、インタフェース・ハンドラー207は、メタデータ・マネージャー210からバッファに一定量のVclickストリームが蓄積された通知を受け取ると、メタデータ・マネージャー210にVclickストリームのメタデータ・デコーダへの送出開始を命令する。メタデータ・マネージャー210はインタフェース・ハンドラーから再生中の動画像のタイムスタンプを受け取り、バッファに蓄積されたデータからこのタイムスタンプに該当するVclick_AUを特定し、メタデータ・デコーダへ送出する。
図38の処理手順では、ユーザは再生を指示してから動画像を視聴するまで待たされることがないが、再生開始直後はVclickストリームの復号が行われないため、オブジェクトに関する表示が行われなかったり、オブジェクトをクリックしても何も動作が起こらないなどの問題点がある。
動画像の再生中、クライアント装置のネットワーク・マネージャー208はサーバー装置から次々に送られてくるVclickストリームを受信し、バッファ209に蓄積する。蓄積されたオブジェクト・メタデータは適切なタイミングでメタデータ・デコーダ217に送られる。すなわち、メタデータ・マネージャー208は、メタデータ・マネージャー210から送られてくる再生中の動画像のタイムスタンプを参照し、バッファ209に蓄積されているデータからそのタイムスタンプに対応したVclick_AUを特定し、この特定されたオブジェクト・メタデータをAU単位でメタデータ・デコーダ217に送る。メタデータ・デコーダ217は受け取ったデータを復号する。ただし、クライアント装置が現在選択しているカメラアングルと異なるカメラアングル用のデータの復号は行わないようにしても良い。また、再生中の動画像のタイムスタンプに対応したVclick_AUがすでにメタデータ・デコーダ217にあることがわかっている場合には、オブジェクト・メタデータをメタデータ・デコーダに送らないようにしても良い。
再生中の動画像のタイムスタンプは逐次インタフェース・ハンドラーからメタデータ・デコーダ217に送られている。メタデータ・デコーダではこのタイムスタンプに同期させてVclick_AUを復号し、必要なデータをAVレンダラー218に送る。例えば、Vclick_AUに記述された属性情報によりオブジェクト領域の表示が指示されている場合には、オブジェクト領域のマスク画像や輪郭線などを生成し、再生中の動画像のタイムスタンプに合わせてA/Vレンダラー218に送る。また、メタデータ・デコーダは再生中の動画像のタイムスタンプとVclick_AUの有効時刻とを比較し、不要になった古いオブジェクト・メタデータを判定してそのデータを削除する。
図39は再生停止処理の手順を説明する流れ図である。ステップS3900では、ユーザにより動画像の再生中に再生停止が指示される。次にステップS3901で動画像再生を停止する処理が行われる。これはインタフェース・ハンドラー207がコントローラ205に停止命令を出すことにより行われる。また、同時にインタフェース・ハンドラーはメタデータ・マネージャー210にオブジェト・メタデータのメタデータ・デコーダへの送出停止を命令する。
ステップS3902はサーバーとのセッションを切断する処理である。RTPを用いている場合には、図9に示すようにRTSPのTEARDOWNメソッドをサーバーに送る。TEARDOWNのメッセージを受け取ったサーバー装置はデータ送信を中止してセッションを終了し、クライアント装置に確認メッセージを送る。この処理により、セッションに使用していたセッションIDが無効となる。一方、HTTPを用いている場合には、図10に示されているようにHTTPのCloseメソッドをサーバーに送り、セッションを終了させる。
(ランダムアクセス手順(ネットワーク))
次に、Vclickストリームがサーバー装置201上にある場合におけるランダムアクセス再生の手順について説明する。
図40はユーザがランダムアクセス再生の開始を指示してから再生が開始されるまでの処理手順を表す流れ図である。まずステップS4000でユーザによりランダムアクセス再生の開始指示が入力される。入力の方法としては、チャプター等のアクセス可能位置のリストからユーザが選択する方法、動画像のタイムスタンプに対応づけられたスライドバー上からユーザが一点を指定する方法、直接動画像のタイムスタンプを入力する方法などがある。入力されたタイムスタンプは、インタフェース・ハンドラー207が受け取り、動画再生コントローラ205に動画像再生準備の命令を出す。もしもすでに動画像を再生中である場合には、再生中の動画像の再生停止を指示してから動画像再生準備の命令を出す。次に、分岐処理ステップS4001として、すでにサーバー装置201とのセッションが構築されているかどうかの判定を行う。動画像を再生中である場合など、すでにセッションが構築されている場合にはステップS4002のセッション切断処理を行う。セッションがまだ構築されていればステップS4002の処理を行わずにステップS4003に処理を移す。ステップS4003ではサーバーとクライアント間のセッションを構築する処理を行う。この処理は図37のステップS3702と同一の処理である。
次にステップS4004では、サーバー装置とクライアント装置間のセッションが構築された状態で、サーバーに再生開始位置のタイムスタンプを指定してVclickデータ送信を要求する処理を行う。これはインタフェース・ハンドラーがネットワーク・マネージャー208に指示を出し、ネットワーク・マネージャー208がサーバーに要求を出すことにより行われる。RTPの場合には、ネットワーク・マネージャー208はRTSPのPLAYメソッドをサーバーに送ることでVclickデータ送信を要求する。このとき、Range記述を用いるなどの方法で再生開始位置を特定するタイムスタンプもサーバーに送る。サーバー装置は、これまでにクライアントから受け取った情報とサーバー装置内にあるVclickインフォを参照して送信すべきオブジェクト・メタデータ・ストリームを特定する。さらに、Vclickデータ送信要求に含まれる再生開始位置のタイムスタンプ情報とサーバー装置内にあるVclickアクセス・テーブルを用いてVclickストリーム中の送信開始位置を特定し、Vclickストリームをパケット化してRTPによりクライアント装置に送る。
一方HTTPの場合には、ネットワーク・マネージャー208はHTTPのGETメソッドを送信することによりVclickデータ送信を要求する。この要求には、動画像の再生開始位置のタイムスタンプの情報が含まれている。サーバー装置はRTPの時と同様に、Vclick情報ファイルを参照して送信すべきVclickストリームを特定し、さらにタイムスタンプ情報とサーバー装置内にあるVclickアクセス・テーブルを用いてVclickストリーム中の送信開始位置を特定し、VclickストリームをHTTPによりクライアント装置に送る。
次に、ステップS4005では、サーバーから送られてくるVclickストリームをバッファ209にバッファリングする処理を行う。これは、Vclickストリームの再生中にサーバーからのVclickストリーム送信が間に合わず、バッファが空になってしまうことをさけるために行われる。メタデータ・マネージャー210からバッファに十分なVclickストリームが蓄積されたことがインタフェース・ハンドラーに通知されると、ステップS4006の処理に移る。ステップS4006では、インタフェース・ハンドラーがコントローラ205に動画像の再生開始命令を出し、さらにメタデータ・マネージャー210にVclickストリームのメタデータ・デコーダへの送出を開始するよう命令を出す。
図41は図40とは別のランダムアクセス再生開始処理の手順を説明する流れ図である。図40の流れ図で説明される処理では、ネットワークの状態やサーバー、クライアント装置の処理能力により、ステップS4005でのVclickストリームを一定量バッファリングする処理に時間がかかる場合がある。すなわち、ユーザが再生を指示してから実際に再生が始まるまでに時間がかかってしまうことがある。
これに対し、図41の処理手順では、ステップS4100でユーザが再生開始を指示すると、次のステップS4101で直ちに動画像の再生が開始される。すなわち、ユーザからの再生開始指示を受けたインタフェース・ハンドラー207は、直ちにコントローラ205にランダムアクセス再生開始命令を出す。これにより、ユーザは再生を指示してから動画像を視聴するまで待たされることがなくなる。次からの処理ステップS4102からステップS4106までは、図40のステップS4001からステップS4005と同一の処理である。
ステップS4107では、再生中の動画像に同期させてVclickストリームを復号する処理を行う。すなわち、インタフェース・ハンドラー207は、メタデータ・マネージャー210からバッファに一定量のVclickストリームが蓄積された通知を受け取ると、メタデータ・マネージャー210にVclickストリームのメタデータ・デコーダへの送出開始を命令する。メタデータ・マネージャー210はインタフェース・ハンドラーから再生中の動画像のタイムスタンプを受け取り、バッファに蓄積されたデータからこのタイムスタンプに該当するVclick_AUを特定し、メタデータ・デコーダへ送出する。
図41の処理手順では、ユーザは再生を指示してから動画像を視聴するまで待たされることがないが、再生開始直後はVclickストリームの復号が行われないため、オブジェクトに関する表示が行われなかったり、オブジェクトをクリックしても何も動作が起こらないなどの問題点がある。
なお、動画像の再生中の処理と動画像停止処理は通常の再生処理の場合と同一であるため、説明は省略する。
(再生手順(ローカル))
次に、Vclickストリームが動画像データ記録媒体231上にある場合における再生処理の手順について説明する。
図42はユーザが再生開始を指示してから再生が開始されるまでの再生開始処理手順を表す流れ図である。まずステップS4200でユーザにより再生開始の指示が入力される。この入力は、インタフェース・ハンドラー207が受け取り、動画再生コントローラ205に動画像再生準備の命令を出す。次に、ステップS4201では、使用するVclickストリームを特定する処理が行われる。この処理では、インタフェース・ハンドラーは動画像データ記録媒体231上にあるVclick情報ファイルを参照し、ユーザが再生を指定した動画像に対応するVclickストリームを特定する。
ステップS4202では、バッファにVclickストリームを格納する処理が行われる。この処理を行うため、インタフェース・ハンドラー207はまずメタデータ・マネージャー210にバッファを確保する命令を出す。確保すべきバッファのサイズは、特定されたVclickストリームを格納するのに十分なサイズとして決められるが、通常はこのサイズを記述したバッファ初期化用文書が動画像データ記録媒体231に記録されている。初期化用文書がない場合には、あらかじめ決められているサイズを適用する。バッファの確保が完了すると、インタフェース・ハンドラー207はコントローラ205に特定されたVclickストリームを読み出してバッファに格納する命令を出す。
Vclickストリームがバッファに格納されると、次にステップS4203の再生開始処理が行われる。この処理では、インタフェース・ハンドラー207が動画再生コントローラ205に動画像の再生命令を出し、同時にメタデータ・マネージャー210にVclickストリームのメタデータ・デコーダへの送出を開始するよう命令を出す。
動画像の再生中、動画像データ記録媒体231から読み出されたVclick_AUはバッファ209に蓄積される。蓄積されたVclickストリームは適切なタイミングでメタデータ・デコーダ217に送られる。すなわち、メタデータ・マネージャー208は、メタデータ・マネージャー210から送られてくる再生中の動画像のタイムスタンプを参照し、バッファ209に蓄積されているデータからそのタイムスタンプに対応したVclick_AUを特定し、この特定されたVclick_AUをメタデータ・デコーダ217に送る。メタデータ・デコーダ217は受け取ったデータを復号する。ただし、クライアント装置が現在選択しているカメラアングルと異なるカメラアングル用のデータの復号は行わないようにしても良い。また、再生中の動画像のタイムスタンプに対応したVclick_AUがすでにメタデータ・デコーダ217にあることがわかっている場合には、Vclickストリームをメタデータ・デコーダに送らないようにしても良い。
再生中の動画像のタイムスタンプは逐次インタフェース・ハンドラーからメタデータ・デコーダ217に送られている。メタデータ・デコーダではこのタイムスタンプに同期させてVclick_AUを復号し、必要なデータをAVレンダラー218に送る。例えば、オブジェクト・メタデータのAUに記述された属性情報によりオブジェクト領域の表示が指示されている場合には、オブジェクト領域のマスク画像や輪郭線などを生成し、再生中の動画像のタイムスタンプに合わせてA/Vレンダラー218に送る。また、メタデータ・デコーダは再生中の動画像のタイムスタンプとVclick_AUの有効時刻とを比較し、不要になった古いVclick_AUを判定してそのデータを削除する。
ユーザにより動画像の再生中に再生停止が指示されると、インタフェース・ハンドラー207はコントローラ205に動画像再生の停止命令と、Vclickストリームの読み出しの停止命令を出す。この指示により、動画像の再生が終了する。
(ランダムアクセス手順(ローカル))
次に、Vclickストリームが動画像データ記録媒体231上にある場合におけるランダムアクセス再生の処理手順について説明する。
図43はユーザがランダムアクセス再生の開始を指示してから再生が開始されるまでの処理手順を表す流れ図である。まずステップS4300でユーザによりランダムアクセス再生開始の指示が入力される。入力の方法としては、チャプター等のアクセス可能位置のリストからユーザが選択する方法、動画像のタイムスタンプに対応づけられたスライドバー上からユーザが一点を指定する方法、直接動画像のタイムスタンプを入力する方法などがある。入力されたタイムスタンプは、インタフェース・ハンドラー207が受け取り、動画再生コントローラ205に動画像のランダムアクセス再生準備の命令を出す。
次に、ステップS4301では、使用するVclickストリームを特定する処理が行われる。この処理では、インタフェース・ハンドラーは動画像データ記録媒体231上にあるVclick情報ファイルを参照し、ユーザが再生を指定した動画像に対応するVclickストリームを特定する。さらに、動画像データ記録媒体231上にあるVclickアクセス・テーブル、もしくはメモリ上に読み込んであるVclickアクセス・テーブルを参照し、動画像のランダムアクセス先に対応するVclickストリーム中のアクセスポイントを特定する。
ステップS4302は分岐処理であり、特定されたVclickストリームが現在バッファ209に読み込まれているかどうかを判定する。バッファに読み込まれていない場合にはステップS4303の処理を行ってからステップS4304の処理に移る。現在バッファに読み込まれている場合には、ステップS4303の処理は行わずにステップS4304の処理に移る。ステップS4304は動画像のランダムアクセス再生開始、及びVclickストリームの復号開始である。この処理では、インタフェース・ハンドラー207が動画再生コントローラ205に動画像のランダムアクセス再生命令を出し、同時にメタデータ・マネージャー210にVclickストリームのメタデータ・デコーダへの送出を開始するよう命令を出す。その後は動画像の再生に同期させてVclickストリームの復号処理が行われる。動画像再生中、および動画像再生停止処理については通常の再生処理と同一であるため、説明は省略する。
(クリックから関連情報表示までの手順)
次に、ユーザがマウス等のポインティングデバイスを使ってオブジェクト領域内をクリックした場合のクライアント装置の動作について説明する。ユーザがクリックを行うと、まず動画像上のクリックされた座標位置がインタフェース・ハンドラー207に入力される。インタフェース・ハンドラーはメタデータ・デコーダ217にクリック時の動画像のタイムスタンプと座標を送る。メタデータ・デコーダはタイムスタンプと座標から、ユーザによって指示されたオブジェクトがどれであるかを特定する処理を行う。
メタデータ・デコーダでは、動画像の再生に同期させてVclickストリームをデコードしており、従ってクリックされた時のタイムスタンプにおけるオブジェクトの領域が生成されているため、この処理は容易に実行できる。クリックされた座標に複数のオブジェクト領域が存在する場合には、Vclick_AU内に含まれる階層情報を参照して最も前面にあるオブジェクトを特定する。
ユーザによって指定されたオブジェクトが特定されると、メタデータ・デコーダ217はそのオブジェクト属性情報403に記述されたアクション記述(動作を指示するスクリプト)をスクリプト・インタプリタ212に送る。アクション記述を受け取ったスクリプト・インタプリタはその動作内容を解釈し、実行する。例えば、指定されたHTMLファイルの表示を行ったり、指定された動画像の再生を開始したりする。これらHTMLファイルや動画像データは、クライアント装置200に記録されている場合、サーバー装置201からネットワーク経由で送られてくる場合、ネットワーク上の別のサーバー上に存在している場合のいずれでも良い。
(データ構造の詳細)
次に、より具体的なデータ構造の構成例について説明する。図11はVclickストリーム506のデータ構造の例である。各データ要素の意味は以下の通りである:
vcs_start_codeは、Vclickストリームの始まりを示す;
data_lengthは、このVclickストリームにおけるdata_lengthより後の部分のデータ長をバイトで指定する;
data_bytesはVclick_AUのデータ部である。この部分には先頭にVclickストリームのヘッダ507があり、続いて1つまたは複数のVclick_AUやNULL_AU(後述)が並ぶ。
図12はVclickストリームのヘッダ507のデータ構造の例である。各データ要素の意味は以下の通りである:
vcs_header_codeは、Vclickストリームのヘッダの始まりを示す;
data_lengthは、Vclickストリームのヘッダのうち、data_lengthより後の部部のデータ長をバイト単位で表す;
vclick_versionは、フォーマットのバージョンを指定する。この値はこの仕様の中では01hとする;
bit_rateは、このVclickストリームの最大のビット・レートを指定する。
図13はVclick_AUのデータ構造の例である。各データ要素の意味は以下の通りである:
vclick_start_codeは、各Vclick_AUの始まりを示す;
data_lengthは、このVclick_AUのdata_lengthより後の部分のデータ長をバイトで指定する;
data_byteはVclick_AUのデータ部である。この部分にヘッダ401、タイムスタンプ402、オブジェクト属性情報403、オブジェクト領域情報400が含まれる。
図14はVclick_AUのヘッダ401のデータ構造の例である。各データ要素の意味は以下の通りである:
vclick_header_codeは、各Vclick_AUのヘッダの始まりを示す;
data_lengthは、このVclick_AUのヘッダにおけるdata_lengthより後の部分のデータ長をバイトで指定される;
filtering_idはVclick_AUの識別IDである。クライアント装置の属性とこのIDにより、復号すべきVclick_AUかどうかを判定するためのデータである;
object_idはVclickデータで記述されるオブジェクトの識別番号である。object_idの同じ値が2つのVclick_AUの中で使用される場合、両者は意味的に同一のオブジェクト用のデータである;
object_subidはオブジェクトの意味的な連続性を表す。2つのVclick_AUにおいてobject_idおよびobject_subidの両方が同じである場合、両者は連続的なオブジェクトを意味する;
continue_flagはフラグである。このフラグが"1"である場合、このVclick_AUに記述されたオブジェクト領域と、同一のobject_idを有する次のVclick_AUに記述されたオブジェクト領域とは連続していることを示す。そうでない場合にはこのフラグは"0"となる;
layerは、オブジェクトの階層値を表す。階層値が大きいほどオブジェクトが画面上で手前にあることを意味する。
図15はVclick_AUのタイムスタンプ402のデータ構造の例である。この例では、動画像データ記録媒体204としてDVDを用いる場合を仮定している。以下のタイムスタンプを用いることにより、DVD上の動画像の任意の時刻を指定することが可能となり、動画像とVclickデータの同期が実現できる。各データ要素の意味は以下の通りである:
time_typeは、DVD用タイムスタンプの始まりを示す;
data_lengthは、このタイムスタンプのうちdata_lengthより後の部分のデータ長をバイトで指定する;
VTSNは、DVDビデオのVTS(ビデオ・タイトルセット)番号を示す。
TTNは、DVDビデオのタイトル・ドメインにおけるタイトル番号を示す。DVDプレーヤのシステムパラメータSPRM(4)にストアされる値に相当する;
VTS_TTNは、DVDビデオのタイトル・ドメインにおけるVTSタイトル番号を示す。DVDプレーヤのシステムパラメータSPRM(5)にストアされる値に相当する;
TT_PGCNは、DVDビデオのタイトル・ドメインにおけるタイトルPGC(プログラム・チェーン)番号を示す。DVDプレーヤのシステムパラメータSPRM(6)にストアされる値に相当する;
PTTNは、DVDビデオの部分タイト(Part_of_Title)番号を示す。DVDプレーヤのシステムパラメータSPRM(7)にストアされる値に相当する。
CNは、DVDビデオのセル番号を示す;
AGLNは、DVDビデオのアングル番号を示す;
PTS[s .. e]は、DVDビデオの表示タイムスタンプのうち、sビット目からeビット目までのデータを示す。
図16はVclick_AUのタイムスタンプ・スキップのデータ構造の例である。タイムスタンプ・スキップがタイムスタンプの代わりにVclick_AUに記述されている場合、このVclick_AUのタイムスタンプが直前のVclick_AUのタイムスタンプと同一である事を意味している。各データ要素の意味は以下の通りである:
time_typeは、タイムスタンプ・スキップの始まりを示す;
data_lengthは、このタイムスタンプ・スキップのうちdata_lengthより後の部分のデータ長をバイトで指定する。しかし、タイムスタンプ・スキップはtime_typeとdata_lengthのみから構成されるため、この値は常に0となる。
図17はVclick_AUのオブジェクト属性情報403のデータ構造の例である。各データ要素の意味は以下の通りである:
vca_start_codeは、各Vclick_AUのオブジェクト属性情報の始まりを示す;
data_lengthは、このオブジェクト属性情報のうちdata_lengthより後の部分のデータ長をバイトで指定する;
data_bytesはオブジェクト属性情報のデータ部である。この部分には1つまたは複数の属性が記述される。
次に、オブジェクト属性情報403の中に記述される属性情報の詳細について説明する。図18はオブジェクト属性情報403の中で記述可能な属性の種類の一覧である。最大値の欄には、それぞれの属性について、一つのオブジェクト・メタデータAU内に記述可能な最大のデータ数の例を示した。
attribute_idは各属性データ中に含まれるIDで、属性の種類を見分けるためのデータである。名前属性は、オブジェクトの名前を特定するための情報である。アクション属性は、動画像中のオブジェクト領域がクリックされたときに、どのようなアクションを行うべきかが記述される。輪郭線属性は、オブジェクトの輪郭線をどのように表示させるかの属性を表す。点滅領域属性は、オブジェクト領域を点滅して表示する際の点滅色を特定する。モザイク領域属性は、オブジェクト領域をモザイク化して表示する際のモザイク化の仕方が記述されている。塗りつぶし領域属性は、オブジェクト領域に色を付けて表示させる際の色を特定する。
テキストカテゴリーに属する属性は、動画像に文字を表示させたいときに、表示させる文字に関する属性を定義する。テキスト情報には、表示させるテキストを記述する。テキスト属性は、表示させるテキストの色やフォント等の属性を特定する。ハイライト効果属性は、テキストの一部または全てをハイライト表示させる際に、どの文字をどのようにハイライト表示させるかを特定する。点滅効果属性は、テキストの一部または全てを点滅表示させる際に、どの文字をどのように点滅表示させるかを特定する。スクロール効果属性には、表示させるテキストをスクロールさせる際に、どの方向にどのような速さでスクロールさせるかが記述されている。カラオケ効果属性は、テキストの色を順次変更していく際に、どのようなタイミングでどこの文字の色を変更させるかを特定する。
最後に、階層拡張属性は、オブジェクトの階層値がVclick_AU内で変化する場合に、階層値の変化のタイミングとその値を定義するために用いられる。以上の属性のデータ構造について、以下で個々に説明する。
図19はオブジェクトの名前属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。名前属性については、この値は00hとする;
data_lengthは、名前属性データのdata_lengthより後のデータ長をバイトで表す;
languageは、以下の要素(nameとannotation)の記述に用いた言語を特定する。言語の指定にはISO-639「code for the representation of names of languages」を用いる;
name_lengthは、バイトでname要素のデータ長さを指定する;
nameは文字列であり、このVclick_AUで記述されているオブジェクトの名前を表す;
annotation_lengthは、バイトでannotation要素のデータ長を表す;
annotationは文字列であり、このVclick_AUで記述されているオブジェクトに関する注釈を表す。
図20はオブジェクトのアクション属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。アクション属性については、この値は01hとする;
data_lengthは、アクション属性データのうちdata_lengthより後の部分のデータ長をバイトで表す;
script_languageは、script要素に記述されているスクリプト言語の種類を特定する;
script_lengthは、バイト単位でscript要素のデータ長を表す;
scriptは文字列であり、このVclick_AUで記述されているオブジェクトがユーザにより指定された場合に実行すべきアクションをscript_languageで指定されたスクリプト言語で記述されている。
図21はオブジェクトの輪郭線属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性のタイプを指定する。輪郭線属性については、この値は02hとする;
data_lengthは、輪郭線属性データうちdata_lengthより後の部分のデータ長を指定する;
color_r、color_g、color_b、color_aは、このオブジェクト・メタデータAUで記述されているオブジェクトの輪郭の表示色を指定する;
color_r、color_gおよびcolor_bはそれぞれ色のRGB表現における赤、緑および青の値を指定する。一方、color_aは透明度を示す;
line_typeは、このVclick_AUで記述されているオブジェクトの輪郭線の種類(実線、破線など)指定する;
thicknessは、このVclick_AUで記述されているオブジェクトの輪郭線の太さをポイントで指定する。
図22はオブジェクトの点滅領域属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。点滅領域属性データについては、この値は03hとする;
data_lengthは、点滅領域属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する;
color_r、color_g、color_b、color_aは、このVclick_AUで記述されているオブジェクトの領域の表示色を指定する。color_r、color_gおよびcolor_bはそれぞれ色のRGB表現における赤、緑および青の値を指定する。一方、color_aは透明度を示す。オブジェクト領域の点滅は、塗りつぶし領域属性の中で指定された色とこの属性で指定された色とを交互に表示させることにより実現される;
intervalは、点滅の時間間隔を指定する。
図23はオブジェクトのモザイク領域属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。モザイク領域属性データについては、この値は04hとする;
data_lengthは、モザイク領域属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する;
mosaic_sizeは、モザイク・ブロックのサイズをピクセル単位で指定する;
randomnessはモザイク化したブロックの位置を入れ替える場合に、どの程度ランダムに入れ替えるかを表す。
図24はオブジェクトのモザイク領域属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。塗りつぶし領域属性データについては、この値は05hとする;
data_lengthは、塗りつぶし属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する;
color_r、color_g、color_b、color_aは、このVclick_AUで記述されているオブジェクト領域の表示色を指定する。color_r、color_gおよびcolor_bはそれぞれ色のRGB表現における赤、緑および青の値を指定する。一方、color_aは透明度を示す。
図25はオブジェクトのテキスト情報のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト情報については、この値は06hとする;
data_lengthは、オブジェクトのテキスト情報のうちdata_lengthより後の部分のデータ長をバイトで指定する;
languageは、記述されたテキストの言語を示す。言語の指定方法は、例えばISO-639「code for the representation of names of languages」を使うことができる;
char_codeは、テキストのコード種類を特定する。例えば、UTF-8、UTF-16、ASCII、Shift JISなどを指定する;
directionは、文字を並べる際の方向として、左方向、右方向、下方向、上方向を特定する。例えば、英語やフランス語ならば通常文字は左方向に並べる。一方、アラビア語ならば右方向に、日本語ならば左方向か下方向のどちらかに並べる。ただし、言語ごとに決まっている並び方向以外を指定しても良い。また、斜め方向を指定できるようにしても良い;
text_lengthは、バイトでtimed textの長さを指定する;
textは文字列であり、char_codeで指定された文字コードを用いて記述されたテキストである。
図26はオブジェクトのテキスト属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト属性については、この値は07hとする;
data_lengthは、オブジェクトのテキスト属性のうちdata_lengthより後の部分のデータ長をバイトで指定する;
font_lengthは、フォントの記述長をバイト単位で指定する;
fontは文字列であり、テキストを表示する際に用いるフォントを指定する;
color_r、color_g、color_b、color_aは、テキストを表示する際の表示色を指定する。色はRGBにより表現される。また、color_r、color_gおよびcolor_bは、赤、緑および青の値をそれぞれ指定する。また、color_aは透過度を示す。
図27はオブジェクトのテキスト・ハイライト効果属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト・ハイライト効果属性データについては、この値は08hとする;
data_lengthは、オブジェクトのテキスト・ハイライト効果属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する;
entryは、このテキスト・ハイライト効果属性データ中のhighlight_effect_entryの数を示す;
data_bytesにentry個のhighlight_effect_endtryが含まれる;
highlight_effect_endtryの仕様は以下に示す通りである。
図28はオブジェクトのテキスト・ハイライト効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである:
start_positionは、強調される文字の開始位置を先頭から当該文字までの文字数により指定する;
end_positionは、強調される文字の終了位置を先頭から当該文字までの文字数により指定する;
color_r、color_g、color_b、color_aは、強調後の文字の表示色を指定する。色はRGBにより表現される。また、color_r、color_gおよびcolor_bは、赤、緑および青の値をそれぞれ指定する。また、color_aは透過度を示す。
図29はオブジェクトのテキスト点滅効果属性のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト点滅効果属性データについては、この値は09hとする;
data_lengthは、テキスト点滅効果属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する;
entryは、このテキスト点滅効果属性データ中のblink_effect_entryの数を示す;
data_bytesにentry個のblink_effect_entryを含む;
blink_effect_entryの仕様は以下の通りである。
図30はオブジェクトのテキスト点滅効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである:
start_positionは、点滅させる文字の開始位置を先頭から当該文字までの文字数により指定する;
end_positionは、点滅させる文字の終了位置を先頭から当該文字までの文字数により指定する;
color_r、color_g、color_b、color_aは、点滅文字の表示色を指定する。色はRGBにより表現される。また、color_r、color_gおよびcolor_bは、赤、緑および青の値をそれぞれ指定する。また、color_aは透過度を示す。ここで指定された色と、テキスト属性で指定された色とを交互に表示させることで文字を点滅させる;
intervalは、点滅の時間間隔を指定する。
図31はオブジェクトのテキスト・スクロール効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト・スクロール効果属性データについては、この値は0ahとする;
data_lengthは、テキスト・スクロール効果属性データのうちdeta_lengthより後の部分のデータ長をバイト単位で指定する;
directionは文字をスクロールする方向を指定する。例えば、0は右から左を、1は左から右を、2は上から下を、3は下から上を示す;
delayは、スクロールの速度を、表示させる先頭の文字が表示されてから最後の文字が表示されるまでの時間差により指定する。
図32はオブジェクトのテキスト・カラオケ効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト・カラオケ効果属性データについては、この値は0bhとする;
data_lengthは、テキスト・カラオケ効果属性データのうちdeta_lengthより後の部分のデータ長をバイト単位で指定する;
start_timeはこの属性データのdata_bytesに含まれる先頭のkaraoke_effect_entryで指定される文字列の文字色の変更開始時刻を指定する;
entryは、このテキスト・カラオケ効果属性データ中のkaraoke_effect_entryの数を示す;
data_bytesにentry個のkaraoke_effect_entryを含む;
karaoke_effect_entryの仕様は次に示す。
図33はオブジェクトのテキスト・カラオケ効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである:
end_timeはこのエントリーで指定される文字列の文字色の変更終了時刻を表す。また、このエントリーに続くエントリーがある場合には、次のエントリーで指定される文字列の文字色の変更開始時刻も表す;
start_positionは文字色を変更すべき文字列の先頭文字の位置を、先頭から当該文字までの文字数により指定する;
end_positionは文字色を変更すべき文字列の最後の文字の位置を、先頭から当該文字までの文字数により指定する。
図34はオブジェクトの階層属性拡張のデータ構造の例である。各データ要素の意味は以下の通りである:
attribute_idは、属性データのタイプを指定する。オブジェクトの階層属性拡張データについては、この値は0chとする;
data_lengthは、階層属性拡張データのうちdeta_lengthより後の部分のデータ長をバイト単位で指定する;
start_timeはこの属性データのdata_bytesに含まれる先頭のlayer_extension_entryで指定される階層値が有効となる開始時刻を指定する;
entryは、この階層属性拡張データに含まれるlayer_extension_entryの数を指定する;
data_bytesにentry個のlayer_extension_entryが含まれる;
layer_extension_entryの仕様を次に説明する。
図35はオブジェクトの階層属性拡張のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである:
end_timeは、このlayer_extension_entryで指定される階層値が無効になる時刻を指定する。また、このエントリーの次にもエントリーがある場合には、次のエントリーで指定sれる階層値が有効になる開始時刻も同時に指定する;
layerは、オブジェクトの階層値を指定する。
図36はオブジェクト・メタデータのAUのオブジェクト領域データ400のデータ構造の例である。各データ要素の意味は以下の通りである:
vcr_start_codeは、オブジェクト領域データの開始を意味する;
data_lengthは、オブジェクト領域データのうちdata_lengthより後の部分のデータ長をバイトで指定する;
data_bytesはオブジェクト領域が記述されているデータ部である。オブジェクト領域の記述には、例えばMPEG-7のSpatioTemporalLocatorのバイナリフォーマットを用いることができる。
(object_subidの利用)
これまで説明してきたVclickデータを用いて、動画像中に登場するオブジェクトを検索することができる。例えば、オブジェクトの名前属性に含まれるnameやannotationにはオブジェクトの名前や情報がテキストで記述されている。従ってこれらのデータに対してキーワードによる検索を行うことにより、所望のオブジェクトを検索できる。
図80はVclickデータを用いた検索の結果を表示した画面例である。この検索では、入力されたキーワードを含むVclick AU全てを検索対象とした。画像(8000)はサムネイルであり、検索されたVclick AUのタイムスタンプに対応する時刻の画像である。サムネイルの下の説明(8001)は、検索されたVclick AU中のオブジェクトの名前属性に含まれていたnameとannotation、そしてタイムスタンプである。この例では、サムネイルやサムネイルの下の説明をクリックすることで、その場面から動画を再生することができる。
図80のようにVclick AU全てを検索結果としてリストアップした場合、表示される検索結果が多く成りすぎるという問題がある。例えば、ある登場人物が10シーンに登場している動画像に対して検索を行ったと仮定する。さらに、各登場シーンは平均15個のVclick AUに分割されており、この登場人物に対するVclick AUは合計150個含まれているものとする。これらのVclick AUのobject_idは全て同一の値を有する。従って、この登場人物に対応するキーワードで検索すると、150個のVclick AUがヒットする。しかし、その多くは同一のシーンにおける登場場面であるため、図80のようなサムネイルの一覧や、検索された場面の再生を行ってもほとんどが同じような映像になってしまう。また、検索のヒット数が多くなってしまうため、検索結果の中から所望の場面を探すのが難しい。
以上のような、似通った検索結果が多数表示されてしまう問題点は、Vclick AUのヘッダに含まれるobject_idを用いることで解決できる。すなわち、検索結果から同一のobject_idを有するVcilck AUの表示を省略するようにすればよい。図81はそのようにして検索結果を表示した例である。但し、このような方法では、図81からわかるように一つのオブジェクトに対して一つの検索結果しか得られない。これでは、検索対象となっているオブジェクトがいくつかのシーンに登場する場合にはそれぞれのシーンへのアクセスを行うことはできない。
以上のような全てのVclick AUを対象にキーワード検索を行った結果を全て表示すると似通った検索結果が多数表示されてしまうという問題を解決し、また共通のobject_idを持つVclick AUの検索結果を省略すると検索結果が少なくなりすぎる現象を回避するため、object_idに加えてさらにVclick AUのヘッダに含まれるobject_subidを併用して検索を行う。以下、その手法について説明する。
図82は、object_subidを利用したVclick AUのキーワード検索の処理を説明する流れ図の例である。ステップS8200で初期値としてiに0を代入する。次に、ステップS8201でVclickストリーム中のi番目のVclick AUに対してキーワード検索を行う。すなわち、入力されたキーワードがVclick AUのオブジェクトの名前属性に含まれるnameやannotationに含まれているかどうかを調べる。このとき、キーワードそのものだけでなく、キーワードの類義語が含まれているかどうか調べるなどの高度なマッチングを行っても良い。また、入力を単純なキーワードだけでなく、自然言語により入力できるようにしても良い。
ステップS8202は選択処理であり、ステップS8201の検索処理の結果、i番目のVclick AUがヒットしたかどうかを判定する。ヒットした場合はステップS8203に処理を進める。ヒットしなかった場合はステップS8205の処理に移る。
ステップS8203は分岐処理であり、i番目のVclick AUのobject_idおよびobject_subidがこれまでにヒットしたVclick AUのobject_idおよびobject_subidとそれぞれ等しいかどうかを判定する。object_idおよびobject_subid両方がそれぞれ等しい場合には、ステップS8204の処理に移り、i番目のVclick AUを検索結果に登録する処理を行う。そうでない場合には、登録を行わずにステップS8205に移る。
ステップS8205では、処理対象となったi番目のVclick AUがVclickストリームの最後であるかどうかを判定する。最後であれば処理を終了し、最後でなければステップS8206で変数iの更新を行い、ステップS8201からの処理を繰り返す。
Vclick AUでは、同じオブジェクトに対して同じ値のobject_idが付与されるのに対し、object_subidはシーンまで一緒のときに限り同じ値を付与する。従って図82の処理を行えば、シーンごとに一つずつのVclick AUが検索結果として出力される。図83はobject_subidを利用したVclick AUのキーワード検索の結果の画面表示例である。図83からもわかるように、この方法によれば、一つのシーンに対して一つの検索結果しか得られないため、検索されたオブジェクトを一覧させたり、登場場面を再生させたりしたときに同じような場面が表示されることがない。また、検索のヒット数が少なくなり、所望の場面が探しやすくなる。
(continue_flagの利用)
通信プロトコルとしてRTPを用いた場合、通常のモードではデータの再送が行われないため、サーバーからクライアントに届けられるデータの一部が欠落することがある。また、通信プロトコルとして信頼性の高いHTTPを用いた場合でも、通信路の状況が悪いとサーバーからクライアントにデータが正しく届けられるのに遅延が生じ、クライアント側の処理にデータが間に合わなくなることが生じる。このようなことが原因で、Vclick AUの一部がクライアント側に於いて欠落する場合がある。Vclick AUが欠落すると、オブジェクトを指定しても所望のアクションが起こらなかったり、オブジェクトの輪郭を表示している場合に輪郭が現れたり消えたりして見にくくなるなどの悪影響が生じる。ここでは、continue_flagを利用することによってVclick AUの一部欠落の影響を低減する方法について説明する。
図84は、Vclickストリーム中のVclick AUが順次入力されたときに、ある特定のobject_idの値に対応したオブジェクトのデータを処理する際の処理の流れを説明する流れ図である。この処理では、まずVclick AUの欠落を判定し、さらに欠落したデータの補間処理を行うか否かの判断を行う。
まず、ステップS8400で初期化処理として、二つの変数flagとTRに0を代入する。次にステップS8401において、クライアントが受け取ったVclick AUを順次取り出し、このステップ以降の処理を行う。新たなVclick AUがない場合には、そこで処理を終了する。
ステップS8402では処理対象のVclick AUのobject_idを取り出し、処理対象となっている特定のobject_idと同じであるかどうかを判定する。同じである場合にはステップS8403において、このVclick AUに含まれるオブジェクト領域データ400に記述されたオブジェクト領域の先頭時刻TRを取り出す処理を行う。object_idが異なる場合には、ステップS8401に戻る。
ステップS8404では、TRがTLよりも大きいかどうかを判定する。ここでTLは、現在処理しているVclick AUの直前に処理した同一object_idを有するVclick AUのオブジェクト領域終了時刻である。TRがTLよりも大きければ欠落したVclick AUはないものと判断し、通常のVclick AU復号処理(ステップS8407)を行う。一方、TRがTL以下である場合には、ステップS8405に処理を進める。
ステップS8405では、変数flagの値を調べ、1であればVclick AUが欠落していると判定し、ステップS8406の処理を行う。flagの値が0であれば、欠落したVclick AUはないものと判断してステップS8407の処理を行う。
ステップS8408は変数の更新処理であり、変数flagにVclick AUのcontinue_flagの値を代入し、また、このVclick AUに記述されたオブジェクト領域の終了時間をTRに代入し、ステップS8401に戻る。
図85は、ステップS8406で行われる補間処理を説明する図である。ここでは、オブジェクト領域データ400として、各フレームにおけるオブジェクト領域が多角形や楕円で近似表現されている(例えば、MPEG-7の時空間記述子SpatioTemporalLocator)ものと仮定する。図85の横軸は時間、縦軸はオブジェクト領域を表現する多角形のある頂点のX(またはY)座標値である。時刻TRより後の範囲8500の座標値の軌跡は現在処理中のVclick AUに記述されており、時刻TLより前の範囲8501の座標値の軌跡は前のVclick AUに記述されている。時刻TLからTRまでの範囲8502の座標値の軌跡を記述したVclick AUが欠落したことがステップS8403までの処理で判定されている。
このとき、ステップS8404の補間処理では、時刻TLと時刻TRにおける座標値を線形に補間することにより、欠落した時刻TLからTRまでの範囲の座標値を生成する。多角形には複数の頂点があるので、それぞれの頂点のX座標、Y座標について同様の処理を行い、最終的に欠落していた時刻TLからTRまでの範囲のオブジェクト領域を生成する。
これまでcontinue_flagは、そのVclick AUに記述されたオブジェクト領域と、同一のobject_idを有する次のVclick AUに記述されたオブジェクト領域とは時間的に連続しているかどうかを示すフラグとして定義されていた。しかし、次のVclick AUではなく前のVclick AUに記述されたオブジェクト領域との時間的な連続性を示すフラグと定義しても同様の補間処理を行うことができる。
以上の処理では、時間的に連続するオブジェクト領域を記述した複数のVclick AUのうち、途中のVclick AUが欠落したときに正しく欠落判定される。先頭のVclick AUが欠落した場合には補間処理はできない。また、最後のVclick AUが欠落した場合には、時間的に不連続なオブジェクト領域が後に出てくる場合にオブジェクトのない時間区間まで補完してしまう可能性がある。このような誤った補間をさけるための最も簡単な方法は、補間処理を行う時間間隔に上限を設け、その上限以上の時間にわたる補間は行わないようにすることである。また別の方法は、continue_flag一つだけではなく、図86のようにcontinue_f_flagとcontinue_b_flagのように前後の連続性を示す2つのフラグを含むVclick AUヘッダを用いる方法である。
continue_b_flagは、このVclick AUに記述されたオブジェクト領域と、同一のobject_idを有する次のVclick AUに記述されたオブジェクト領域とは時間的に連続しているかどうかを示す。連続であれば”1”、そうでない場合には”0”となる。一方、continue_f_flagは、このVclick AUに記述されたオブジェクト領域と、同一のobject_idを有する前のVclick AUに記述されたオブジェクト領域とは時間的に連続しているかどうかを示す。連続であれば”1”、そうでない場合には”0”となる。
図87は、continue_f_flagとcontinue_b_flagを用いて欠落したVclick AUを補間する処理例を説明する流れ図である。図84との違いは、ステップS8405がステップS8700に置き換わったことである。ステップS8700では、過去のVclick AUに記述されたオブジェクト領域との連続性を表すcontinue_f_の値も考慮して補間処理を行うか否かを決定する。
(テキストの圧縮)
これまでに説明したVclick AUのデータには、いくつかのテキストデータが含まれている。テキストをそのまま文字コードとしてデータ化するのは、データサイズが大きくなるという意味において非効率的である。そこで、記述されるテキストが多い場合には、テキストデータのみを圧縮してVclick AUに格納する方がよい。図88、89、90はそれぞれテキストデータを圧縮可能なオブジェクトの名前属性、オブジェクトのアクション属性、オブジェクトのテキスト情報のデータ構造例である。
図88のオブジェクトの名前属性のデータ構造では、図19のデータ構造に加えname_compressionデータがある。このデータは後に続くオブジェクトの名前データが圧縮されているか非圧縮であるかを特定し、圧縮されている場合にはその圧縮方式も特定する。圧縮されている場合、name_lengthは圧縮されたテキストのデータサイズを表し、圧縮されたテキストデータはnameに格納される。annotationにおいても同様に、annotation_compressionがannotaionデータが非圧縮か圧縮されているかを特定し、圧縮の場合は圧縮方式も特定する。annotation_lengthはannotationのデータサイズを特定する。
図89のオブジェクトのアクション属性のデータ構造は、図20のデータ構造と比べるとscript_compressionデータが付加されている。script_compressionはscriptデータが非圧縮か圧縮されているかを特定し、圧縮の場合は圧縮方式も特定する。script_lengthはscriptのデータサイズを特定する。
図90のオブジェクトのテキスト情報のデータ構造は、図25のデータ構造にtext_compressionデータが付加されている。text_compressionはtextデータが非圧縮か圧縮されているかを特定し、圧縮の場合は圧縮方式も特定する。text_lengthはscriptのデータサイズを特定する。
(アプリケーション・イメージの説明)
図76はこの発明のオブジェクト・メタデータを動画像と共に利用することにより実現されるアプリケーション(動画像ハイパーメディア)の図1とは別の画面上の表示例である。図1では動画像、関連情報を表示するウインドウはそれぞれ別々であったが、図76では一つのウインドウA01に動画像A02と関連情報A03が表示されている。関連情報としてテキストのみでなく、静止画A04やA02とは別の動画像を表示させることも可能である。
(継続時間データを使ったVclick_AUの有効期間指定方法の説明)
図77は、図4とは別のVclick_AUのデータ構造の例である。図4との違いは、Vclick_AUの有効期間を特定するためのデータがタイムスタンプのみではなく、タイムスタンプB01と存続時間または継続時間B02の組み合わせとなっている点である。タイムスタンプB01はVclick_AUの有効期間の開始時刻であり、継続時間B02はVclick_AUの有効期間の開始時刻から終了時刻までの継続時間である。継続時間の具体的な構成は、例えば図79のようにすればよい。ここでtime_typeは図79のデータが継続時間を意味することを特定するためのIDであり、durationが継続時間である。durationはあらかじめ決められた単位(例えば、1ミリ秒や0.1秒など)で継続時間を表す。
このようにVclick_AUを特定するためのデータとして継続時間も記述することの利点は、処理対象のVclick_AUだけを見ればそのVclick_AUの継続時間を知ることができる点である。従って、例えばあるタイムスタンプで有効なVclick_AUを探索しているような場合に、他のVclick_AUのデータを調べることなく、そのVclick_AUが探索対象であるかどうかが判定できる。ただし、図4の場合よりも継続時間B02の分だけデータサイズが大きくなる。
図78は図77とはまた別のVclick_AUのデータ構造の例である。この例では、Vclick_AUの有効期間を特定するためのデータとしてVclick_AUの有効期間の開始時刻を特定するタイムスタンプC01と終了時刻を特定するタイムスタンプC02を使用している。このデータ構造を用いる場合の利点は図77のデータ構造を用いる場合と同じである。
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。例えば、この発明は現在世界的に普及しているDVD−ROMビデオのみならず、近年急速に需要が伸びている録画再生可能なDVD−VR(ビデオレコーダ)にも適用できる。さらには、近々普及が始まるであろう次世代HD−DVDの再生系または録再系にも適用可能である。
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良い。
200…クライアント装置;201…サーバー装置;202…Vclickエンジン;203…動画再生エンジン;221…サーバー装置とクライアント装置を結ぶネットワーク;301〜305…Vclickアクセスユニット;201400…Vclickアクセスユニットのオブジェクト領域データ;401…Vclickアクセスユニットのヘッダ;402…Vclickアクセスユニットのタイムスタンプ;403…Vclickアクセスユニットのオブジェクト属性情報