以下、図面を参照しながら本発明の一実施形態を説明する。
(1)アプリケーションの概要
図1は本発明のオブジェクト・メタデータを動画像と共に利用することにより実現されるアプリケーション(動画像ハイパーメディア)の画面上の表示例である。図1(a)の100は動画像の再生画面、そして101はマウスカーソルである。動画像の再生画面100で再生される動画像のデータは、ローカルにある動画像データ記録媒体に記録されている。102は動画像中に登場するオブジェクトの領域である。ユーザがオブジェクトの領域内にマウスカーソルを移動させてクリック等によりオブジェクトを選択すると、所定の機能が実行される。例えば図1(b)では、ローカル及び/またはネットワーク上にあるドキュメント(クリックされたオブジェクトに関連した情報)103が表示されている。そのほか、動画像の別の場面にジャンプしたり、別の動画像ファイルが再生されたり、再生モードを変更するなどの機能を実行することができる。
オブジェクトの領域102のデータ及びこの領域がクリック等により指定された場合のクライアント装置の動作データなどをまとめて、オブジェクト・メタデータまたはVclickデータと呼ぶことにする。Vclickデータはローカルにある動画像データ記録媒体(光ディスク、ハードディスク、半導体メモリ等)に動画像データと共に記録されていても良いし、ネットワーク上のサーバーに蓄積されていてネットワーク経由でクライアントに送られるようにしても良い。
図44は本発明のVclickデータを動画像と共に利用することにより実現されるアプリケーション(動画像ハイパーメディア)の図1とは別の画面上の表示例である。図1では動画像、関連情報を表示するウインドウはそれぞれ別々であったが、図44では一つのウインドウA01に動画像A02と関連情報A03が表示されている。関連情報としてテキストのみでなく、静止画A04やA02とは別の動画像を表示させることも可能である。
以下ではこれらのアプリケーションがどのように実現されるかについて詳細に説明する。
(2)システム構成
図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等のドキュメントの表示を行うことも可能である。
動画像データ記録媒体231に記録された動画像データに関連したVclickデータは、動
画像データ記録媒体231に動画像データと共に記録されている場合と、サーバー装置201のメタデータ記録媒体219に記録されている場合とがある。Vclickデータがサーバー装置201に存在する場合、クライアント装置200はこのVclickデータとディスク装置230にある動画像データとを利用した再生を以下のように行うことが可能である。まず、サーバー装置201はクライアント装置200からの要求によりネットワーク221を介してクライアント装置200にVclickデータを含むメディアデータM1を送る。クライアント装置200では、送られてきたVcilckデータを動画像の再生と同期させて処理することでハイパーメディアなどの付加機能を実現させる。
動画再生エンジン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とのネットワーク確立時には、制御データやVclickデータ等のメディアデータの送受信を行う。メディアデータにはVclickデータ、HTML等のドキュメントやこれに付随する静止画・動画像データなどが含まれる。
クライアント装置200からサーバー装置201へ送信するデータとしては、セッション構築の要求、セッション終了の要求、Vclickデータ等のメディアデータ送信の要求、OKやエラーなどのステータス情報などがある。また、クライアント装置の状態情報の送信を行うようにしても良い。一方、サーバー装置からクライアント装置へ送信するデータにはVclickデータ等のメディアデータ、OKやエラーなどのステータス情報がある。
ディスク装置マネージャー213は、HTML等のドキュメントや静止画・音声等のデータをバッファ209へ取得する機能及び、動画再生エンジン203へ映像・音声・副映像データD1を送信する機能を持っている。ディスク装置マネージャー213は、メタデータ・マネージャー210からの指示に従ってデータ送信処理を行う。
バッファ209は、ネットワークを介して(ネットワーク・マネージャー経由で)サーバー装置201から送られてきたVclickデータ等のメディアデータM1を一時的に蓄積する。なお、動画像データ記録媒体231にメディアデータM2が記録されている場合にも、同様にディスク装置マネージャー経由でバッファ209へメディアデータM2を蓄積する。
動画像データ記録媒体231にメディアデータM2が記録されている場合は、映像・音声・副映像データD1の再生を開始する前にあらかじめ動画像データ記録媒体231からメディアデータM2を読み出し、バッファ209に記憶しておいてもよい。これは、動画像データ記録媒体231上のメディアデータM2と映像・音声・副映像データD1のデータ記録位置が異なるため、通常の再生を行った場合にはディスクのシーク等が発生してシームレスな再生が保障できなくなってしまうため、これを回避するための手段となる。
以上のように、サーバー装置201からダウンロードしたVclickデータ等のメディアデータM1も、動画像データ記録媒体231に記録されているVclickデータ等のメディアデータM2と同様に、バッファ209に記憶させることにより、映像・音声・副映像データD1とメディアデータを同時に読み出して再生することが可能になる。
なお、バッファ209の記憶容量には限界がある。つまり、バッファ209に記憶できるメディアデータM1、M2のデータサイズには限りがある。このため、メタデータ・マネージャー210、及び/またはバッファ・マネージャー211の制御(バッファ・コントロール)により、不必要なデータの消去を行うことにしてもよい。
メタデータ・マネージャー210は、バッファ209に蓄積されたメタデータを管理しており、インタフェース・ハンドラー207からの動画像の再生に同期させた適切なタイミング(“動画像クロック”信号)を受けて、該当するタイムスタンプを持つメタデータをバッファ209よりメディア・デコーダ216に転送する。
なお、該当するタイムスタンプを持つVcilckデータがバッファ209に存在しない場合は、メディア・デコーダ216に転送しなくてもよい。また、メタデータ・マネージャー210は、バッファ209より送出したVclickデータのサイズ分、または、任意のサイズのデータをサーバー装置201、またはディスク装置230からバッファ209へ読み込むためのコントロールを行う。具体的な処理としては、メタデータ・マネージャー210は、インタフェース・ハンドラー207経由で、ネットワーク・マネージャー208、またはディスク装置マネージャー213に対し、指定サイズ分のVcilckデータ取得要求を行う。ネットワーク・マネージャー208、またはディスク装置マネージャー213は、指定サイズ分のVclickデータをバッファ209に読み込み、Vclickデータ取得済の応答をインタフェース・ハンドラー207経由で、メタデータ・マネージャー210へ通知する。
バッファ・マネージャー211は、バッファ209に蓄積されたVclickデータ以外のデータ(HTML等のドキュメントやこれに付随する静止画・動画像データなど)の管理をしており、インタフェース・ハンドラー207からの動画像の再生に同期させた適切なタイミング(“動画像クロック”信号)を受けてバッファ209に蓄積されたVclickデータ以外のデータをパーサー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に送信するVcilckデータが記録されたハードディスク、半導体メモリ、磁気テープなどである。このVclickデータは、動画像データ記録媒体231に記録されている動画像データに関連したメタデータである。このVclickデータには、後で説明するオブジェクト・メタデータが含まれている。220はサーバーのネットワーク・マネージャーであり、クライアント装置200とネットワーク221を介してデータの送受信を行う。
(3)EDVDデータ構造とIFOファイル
図35は、動画像データ記録媒体231としてエンハンスドDVDビデオディスクを用いた際のデータ構造の一例を示す図である。エンハンスドDVDビデオディスクのDVDビデオエリアは、DVDビデオ規格と同じデータ構造のDVDビデオコンテンツ(MPEG2プログラムストリーム構造を持つ)を格納する。さらに、エンハンスドDVDビデオディスクの他の記録エリアは、ビデオコンテンツの再生をバラエティに富んだものにできるエンハンスド・ナビゲーション(以下ENAVと略記する)コンテンツを格納する。なお、上記記録エリアは、DVDビデオ規格でも存在が認められている。
ここで、DVDビデオディスクの基本的なデータ構造について説明する。すなわち、DVDビデオディスクの記録エリアは、内周から順にリードインエリア、ボリュームスペース、及びリードアウトエリアを含んでいる。ボリュームスペースは、ボリューム/ファイル構造情報エリア、及びDVDビデオエリア(DVDビデオゾーン)を含み、さらにオプションで他の記録エリア(DVDアザーゾーン)を含むことができる。
上記ボリューム/ファイル構造情報エリア2は、UDF(Universal Disk Format)ブリッジ構造のために割り当てられたエリアである。UDFブリッジフォーマットのボリュームは、ISO/IEC13346のパート2に従って認識されるようになっている。このボリュームを認識するスペースは、連続したセクタからなり、図35のボリュームスペースの最初の論理セクタから始まる。その最初の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とは異なる内容を付加して再生したりする仕組みのために用意したのが、図35のエンハンスド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やJavaScriptのようなScript言語などを組み合わせながら用いることができる。
ここで、図35のエンハンスドDVDビデオディスクは、他の記録エリア以外の内容がDVDビデオ規格に従っているので、既に普及しているDVDビデオプレーヤを用いても、DVDビデオエリアに記録されたビデオコンテンツを再生できる(つまり従来のDVDビデオディスクと互換性がある)。他の記録エリアに記録されたENAVコンテンツは従来のDVDビデオプレーヤでは再生できない(あるいは利用できない)が、本発明の一実施形態に係るDVDビデオプレーヤでは再生でき利用できる。従って、本発明の一実施形態に係るDVDビデオプレーヤを用いENAVコンテンツを再生すれば、プロバイダが予め用意したVMG/VTSIの内容だけに限定されることなく、よりバラエティに富んだビデオ再生が可能になる。
特に、図35に示すように、ENAVコンテンツはVclickデータを含み、このVclickデータは、Vclick情報ファイル(Vclickインフォ)、Vclickアクセス・テーブル、Vclickストリーム、Vclick情報ファイル・バックアップ(Vclickインフォ・バックアップ)、Vclickアクセス・テーブル・バックアップを含んで構成される。
Vclick情報ファイルは、後述のVclickストリームが、DVDビデオコンテンツのどの箇所(例えば、DVDビデオコンテンツのタイトル全体、チャプター全体、あるいはその一部等)に付加しているかを表すデータである。Vclickアクセス・テーブルは、後述のVclickストリームごとに存在し、Vclickストリームにアクセスするためのテーブルである。Vclickストリームは、動画像中のオブジェクトの位置情報やオブジェクトがクリックされた際の動作記述等のデータを含むストリームである。Vclick情報ファイル・バックアップは、前述のVclick情報ファイルのバックアップであり、Vclick情報ファイルと常に同じ内容のものである。また、Vclickアクセス・テーブル・バックアップは、前述のVclickアクセス・テーブルのバックアップであり、Vclickアクセス・テーブルと常に同じ内容のものである。図35の例ではVclickデータはエンハンスドDVDビデオディスク上に記録されている。しかし、前述したようにVclickデータはネットワーク上のサーバー装置に置かれている場合もある。
図36は、上述した、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を代わりに読み込むことにより、所望の手続きを行うことができる。
(4)データ構造の概略とアクセス・テーブル
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ストリームがある場合にどのVclickストリームを選択すべきかは、すでに説明したようにVclick情報ファイルを参照して決定できる。
サーバー装置201にVclickデータがある場合、動画像が先頭から再生される場合にはサーバー装置201はVclickストリームを先頭から順にクライアント装置に配信すればよい。しかし、ランダムアクセスが生じた場合にはVclickストリームの途中からデータを配信する必要がある。このときに、Vclickストリーム中の所望の位置に高速にアクセスするためには、Vclickアクセス・テーブルが必要となる。
図6はVclickアクセス・テーブルの例である。このテーブルはあらかじめ作成され、Vclickストリームと共に記録されている。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の自然な再生順序に従って順序関係を定義できるため、タイムスタンプを順番に並べることが可能である。
図6のVclickアクセス・テーブルにおいて、アクセスポイントoffsetはVclickストリーム上の位置を指し示す。例えば、Vclickストリームはファイルであり、offsetは当該ファイルのファイル・ポインタの値を指し示す。タイムスタンプtimeと組になっているアクセスポイントoffsetの関係は次のようになっている:
i)offsetの示す位置は、あるVclick_AUの先頭位置である。
ii)当該AUがもつタイムスタンプの値は、timeの値以下である。
iii)当該AUより一つ前にあるAUがもつタイムスタンプの値は、timeより真に小さい。
Vclickアクセス・テーブルにおけるtimeの並びの間隔は任意で良いし、均等である必要もない。しかし、検索等の便宜を考慮して、均等にとっても良い。
次にサーバー装置・クライアント装置間のプロトコルについて説明する。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データがサーバー装置にある場合の再生手順)
次に、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メソッドをサーバーに送り、セッションを終了させる。
(5)Vclickデータがサーバー装置にある場合のランダムアクセス手順
次に、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ストリームの復号が行われないため、オブジェクトに関する表示が行われなかったり、オブジェクトをクリックしても何も動作が起こらないなどの問題点がある。
なお、動画像の再生中の処理と動画像停止処理は通常の再生処理の場合と同一であるため、説明は省略する。
(6)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ストリームの読み出しの停止命令を出す。この指示により、動画像の再生が終了する。
(7)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ストリームの復号処理が行われる。動画像再生中、及び動画像再生停止処理については通常の再生処理と同一であるため、説明は省略する。
(8)クリックから関連情報表示までの手順
次に、ユーザがマウス等のポインティングデバイスを使ってオブジェクト領域内をクリックした場合のクライアント装置の動作について説明する。ユーザがクリックを行うと、まず動画像上のクリックされた座標位置がインタフェース・ハンドラー207に入力される。インタフェース・ハンドラーはメタデータ・デコーダ217にクリック時の動画像のタイムスタンプと座標を送る。メタデータ・デコーダはタイムスタンプと座標から、ユーザによって指示されたオブジェクトがどれであるかを特定する処理を行う。
メタデータ・デコーダでは、動画像の再生に同期させてVclickストリームをデコードしており、従ってクリックされた時のタイムスタンプにおけるオブジェクトの領域が生成されているため、この処理は容易に実行できる。クリックされた座標に複数のオブジェクト領域が存在する場合には、Vclick_AU内に含まれる階層情報を参照して最も前面にあるオブジェクトを特定する。
ユーザによって指定されたオブジェクトが特定されると、メタデータ・デコーダ217はそのオブジェクト属性情報403に記述されたアクション記述(動作を指示するスクリプト)をスクリプト・インタプリタ212に送る。アクション記述を受け取ったスクリプト・インタプリタはその動作内容を解釈し、実行する。例えば、指定されたHTMLファイルの表示を行ったり、指定された動画像の再生を開始したりする。これらHTMLファイルや動画像データは、クライアント装置200に記録されている場合、サーバー装置201からネットワーク経由で送られてくる場合、ネットワーク上の別のサーバー上に存在している場合のいずれでも良い。
(9)データ構造の詳細
次に、より具体的なデータ構造の構成例について説明する。図5で説明したとおり、Vclickストリーム506はVclickストリームのヘッダと複数のVclick AUから成る。図11はVclickストリームのヘッダのデータ構造の例である。各データ要素の意味は以下の通りである。
vclick_versionは、Vclickストリームのヘッダの始まりを示すとともに、フォーマットのバージョンを指定する。
vclick_lengthは、このVclickストリームにおけるvclick_lengthより後の部分のデータ長をバイトで指定する。
次に、Vclick AUの詳細なデータ構造を説明する。Vclick AUの大まかなデータ構造は図4で説明したとおりである。
図12はVclick AUのヘッダ401のデータ構造の例である。各データ要素の意味は以下の通りである。
vu_start_codeは、各Vclick_AUの始まりを示す。
vau_lengthは、このVclick_AUのヘッダにおけるvau_lengthより後の部分のデータ長をバイトで指定する。
vau_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ビットが"1"である場合、このVclick_AUに記述されたオブジェクト領域と、同一のobject_idを有する前のVclick_AUに記述されたオブジェクト領域とは連続していることを示す。そうでない場合にはこのフラグは"0"となる。2番目のビットは同様に、このVclick_AUに記述されたオブジェクト領域と、同一のobject_idを有する次のVclick_AUに記述されたオブジェクト領域との連続性を示す。
layerは、オブジェクトの階層値を表す。階層値が大きい(または小さい)ほどオブジェクトが画面上で手前にあることを意味する。クリックされた場所に複数のオブジェクトが存在する場合には、最も会装置が大きい(または小さい)オブジェクトがクリックされたものと判定する。
図13はVclick_AUのタイムスタンプ402のデータ構造の例である。この例では、動画像データ記録媒体204としてDVDを用いる場合を仮定している。以下のタイムスタンプを用いることにより、DVD上の動画像の任意の時刻を指定することが可能となり、動画像とVclickデータの同期が実現できる。各データ要素の意味は以下の通りである。
time_typeは、DVD用タイムスタンプの始まりを示す。
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ビット目までのデータを示す。
図14はVclick_AUのタイムスタンプ・スキップのデータ構造の例である。タイムスタンプ・スキップがタイムスタンプの代わりにVclick_AUに記述されている場合、このVclick_AUのタイムスタンプが直前のVclick_AUのタイムスタンプと同一である事を意味している。各データ要素の意味は以下の通りである。
time_typeは、タイムスタンプ・スキップの始まりを示す。
図15はVclick_AUのオブジェクト属性情報403のデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_lengthは、このオブジェクト属性情報のうちattribute_lengthより後の部分のデータ長をバイトで指定する。
data_bytesはオブジェクト属性情報のデータ部である。この部分には図16に示した属性データの1つまたは複数が記述される。図18の最大値の欄には、それぞれの属性について、一つのVclick AU内に記述可能な最大のデータ数の例を示した。attribute_idは各属性データ中に含まれるIDで、属性の種類を見分けるためのデータである。名前属性は、オブジェクトの名前を特定するための情報である。アクション属性は、動画像中のオブジェクト領域がクリックされたときに、どのようなアクションを行うべきかが記述される。輪郭線属性は、オブジェクトの輪郭線をどのように表示させるかの属性を表す。点滅領域属性は、オブジェクト領域を点滅して表示する際の点滅色を特定する。モザイク領域属性は、オブジェクト領域をモザイク化して表示する際のモザイク化の仕方が記述されている。塗りつぶし領域属性は、オブジェクト領域に色を付けて表示させる際の色を特定する。
テキストカテゴリーに属する属性は、動画像に文字を表示させたいときに、表示させる文字に関する属性を定義する。テキスト情報には、表示させるテキストを記述する。テキスト属性は、表示させるテキストの色やフォント等の属性を特定する。ハイライト効果属性は、テキストの一部または全てをハイライト表示させる際に、どの文字をどのようにハイライト表示させるかを特定する。点滅効果属性は、テキストの一部または全てを点滅表示させる際に、どの文字をどのように点滅表示させるかを特定する。スクロール効果属性には、表示させるテキストをスクロールさせる際に、どの方向にどのような速さでスクロールさせるかが記述されている。カラオケ効果属性は、テキストの色を順次変更していく際に、どのようなタイミングでどこの文字の色を変更させるかを特定する。最後に、階層拡張属性は、オブジェクトの階層値がVclick_AU内で変化する場合に、階層値の変化のタイミングとその値を定義するために用いられる。以上の属性のデータ構造について、以下で個々に説明する。
図17はオブジェクトの名前属性のデータ構造の例である。各データ要素の意味は以下の通りである:
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で記述されているオブジェクトに関する注釈を表す。
図18はオブジェクトのアクション属性のデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。アクション属性については、この値は01hとする。
data_lengthは、アクション属性データのうちdata_lengthより後の部分のデータ長をバイトで表す。
script_languageは、script要素に記述されているスクリプト言語の種類を特定する。
script_lengthは、バイト単位でscript要素のデータ長を表す。
scriptは文字列であり、このVclick_AUで記述されているオブジェクトがユーザにより指定された場合に実行すべきアクションをscript_languageで指定されたスクリプト言語で記述されている。
図19はオブジェクトの輪郭線属性のデータ構造の例である。各データ要素の意味は以下の通りである。
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で記述されているオブジェクトの輪郭線の太さをポイントで指定する。
図20はオブジェクトの点滅領域属性のデータ構造の例である。各データ要素の意味は以下の通りである。
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は、点滅の時間間隔を指定する。
図21はオブジェクトのモザイク領域属性のデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。モザイク領域属性データについては、この値は04hとする。
data_lengthは、モザイク領域属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する。
mosaic_sizeは、モザイク・ブロックのサイズをピクセル単位で指定する。
randomnessはモザイク化したブロックの位置を入れ替える場合に、どの程度ランダムに入れ替えるかを表す。
図22はオブジェクトのモザイク領域属性のデータ構造の例である。各データ要素の意味は以下の通りである。
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は透明度を示す。
図23はオブジェクトのテキスト情報のデータ構造の例である。各データ要素の意味は以下の通りである。
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で指定された文字コードを用いて記述されたテキストである。
図24はオブジェクトのテキスト属性のデータ構造の例である。各データ要素の意味は以下の通りである。
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は透過度を示す。
図25はオブジェクトのテキスト・ハイライト効果属性のデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト・ハイライト効果属性データについては、この値は08hとする。
data_lengthは、オブジェクトのテキスト・ハイライト効果属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する。
entryは、このテキスト・ハイライト効果属性データ中のhighlight_effect_entryの数を示す。
highlight_entriesにentry個のhighlight_effect_entryが含まれる。
highlight_effect_entryの仕様は以下に示す通りである。
図26はオブジェクトのテキスト・ハイライト効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである。
start_positionは、強調される文字の開始位置を先頭から当該文字までの文字数により指定する。
end_positionは、強調される文字の終了位置を先頭から当該文字までの文字数により指定する。
color_r、color_g、color_b、color_aは、強調後の文字の表示色を指定する。色はRGBにより表現される。また、color_r、color_g及びcolor_bは、赤、緑及び青の値をそれぞれ指定する。また、color_aは透過度を示す。
図27はオブジェクトのテキスト点滅効果属性のデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト点滅効果属性データについては、この値は09hとする。
data_lengthは、テキスト点滅効果属性データのうちdata_lengthより後の部分のデータ長をバイトで指定する。
entryは、このテキスト点滅効果属性データ中のblink_effect_entryの数を示す。
data_bytesにentry個のblink_effect_entryを含む。
blink_effect_entryの仕様は以下の通りである。
図28はオブジェクトのテキスト点滅効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである。
start_positionは、点滅させる文字の開始位置を先頭から当該文字までの文字数により指定する。
end_positionは、点滅させる文字の終了位置を先頭から当該文字までの文字数により指定する。
color_r、color_g、color_b、color_aは、点滅文字の表示色を指定する。色はRGBにより表現される。また、color_r、color_g及びcolor_bは、赤、緑及び青の値をそれぞれ指定する。また、color_aは透過度を示す。ここで指定された色と、テキスト属性で指定された色とを交互に表示させることで文字を点滅させる。
intervalは、点滅の時間間隔を指定する。
図29はオブジェクトのテキスト・スクロール効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト・スクロール効果属性データについては、この値は0ahとする。
data_lengthは、テキスト・スクロール効果属性データのうちdeta_lengthより後の部分のデータ長をバイト単位で指定する。
directionは文字をスクロールする方向を指定する。例えば、0は右から左を、1は左から右を、2は上から下を、3は下から上を示す。
delayは、スクロールの速度を、表示させる先頭の文字が表示されてから最後の文字が表示されるまでの時間差により指定する。
図30はオブジェクトのテキスト・カラオケ効果属性のエントリーのデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。オブジェクトのテキスト・カラオケ効果属性データについては、この値は0bhとする。
data_lengthは、テキスト・カラオケ効果属性データのうちdeta_lengthより後の部分のデータ長をバイト単位で指定する。
start_timeはこの属性データのdata_bytesに含まれる先頭のkaraoke_effect_entryで指定される文字列の文字色の変更開始時刻を指定する。
entryは、このテキスト・カラオケ効果属性データ中のkaraoke_effect_entryの数を示す;
karaoke_entriesにentry個のkaraoke_effect_entryを含む。
karaoke_effect_entryの仕様は次に示す。
図31はオブジェクトのテキスト・カラオケ効果属性のエントリー(karaoke_effect_entry)のデータ構造の例である。各データ要素の意味は以下の通りである。
end_timeはこのエントリーで指定される文字列の文字色の変更終了時刻を表す。また、このエントリーに続くエントリーがある場合には、次のエントリーで指定される文字列の文字色の変更開始時刻も表す。
start_positionは文字色を変更すべき文字列の先頭文字の位置を、先頭から当該文字までの文字数により指定する。
end_positionは文字色を変更すべき文字列の最後の文字の位置を、先頭から当該文字までの文字数により指定する。
図32はオブジェクトの階層属性拡張のデータ構造の例である。各データ要素の意味は以下の通りである。
attribute_idは、属性データのタイプを指定する。オブジェクトの階層属性拡張データについては、この値は0chとする。
data_lengthは、階層属性拡張データのうちdeta_lengthより後の部分のデータ長をバイト単位で指定する。
start_timeはこの属性データのdata_bytesに含まれる先頭のlayer_extension_entryで指定される階層値が有効となる開始時刻を指定する。
entryは、この階層属性拡張データに含まれるlayer_extension_entryの数を指定する。
layer_entriesにentry個のlayer_extension_entryが含まれる。
layer_extension_entryの仕様を次に説明する。
図33はオブジェクトの階層属性拡張のエントリー(layer_extension_entry)のデータ構造の例である。各データ要素の意味は以下の通りである。
end_timeは、このlayer_extension_entryで指定される階層値が無効になる時刻を指定する。また、このエントリーの次にもエントリーがある場合には、次のエントリーで指定sれる階層値が有効になる開始時刻も同時に指定する。
layerは、オブジェクトの階層値を指定する。
図34はオブジェクト・メタデータのAUのオブジェクト領域データ400のデータ構造の例である。各データ要素の意味は以下の通りである。
vcr_start_codeは、オブジェクト領域データの開始を意味する。
data_lengthは、オブジェクト領域データのうちdata_lengthより後の部分のデータ長をバイトで指定する。
data_bytesはオブジェクト領域が記述されているデータ部である。オブジェクト領域の記述には、例えばMPEG-7のSpatioTemporalLocatorのバイナリフォーマットを用いることができる。
(10)優先的なVclick AUの再生
Vclickストリーム等のVclickデータが作成されている動画像とVclickストリームを再生する際、再生装置の処理能力が不足して全てのVclick AUをリアルタイムに再生できない場合がある。また、全てのVclick AUを再生すると表示や操作が煩雑になり、ユーザの指定によって少数のVclick AUのみを再生したい場合がある。これらの場合、再生装置において、一部のVclick AUのみが再生されることになる。そこで、Vclickデータ制作者が優先的に再生させたいVclickデータが優先して再生されることを可能にするデータ構造について説明する。
(10−1)第1のデータ構造
図45は、図12とは別のVclick AUのヘッダのデータ構造である。図12との違いは、priority_idが新たに加わっていることである。priority_idは、各Vclick AUの再生時の優先度を指定する。データ構造に再生時の優先度を追加することで、次のような再生方法が可能になる。
図46は、再生装置の処理能力が不足して全てのVclick AUをリアルタイムに再生できない場合の再生方法の例である。Vclickストリームが#1、#2、#3、#4、#5のVclick AUから構成され、それぞれのVclick AUヘッダがpriority_idを「1」「5」「2」「4」「3」と有している。ちなみに、ここでの説明では、priority_idの値が小さいほど再生の優先度は高く、priority_idが大きいほど優先度は低いと定義しているが、その逆でも可能である。priority_idとは、Vclickメタデータ制作者が優先的に再生させたい順に、各Vclick AUに割り当てるデータである。
例えば、再生装置の処理能力に応じて、再生可能な再生アクセスユニット数が3個であると決定されたとする。この場合、図46が示すように、Vclickメタデータ制作者が優先的に再生させたいVclickストリームのVclick AU #1、#3、#5が選択されて再生される。
なお、前述した再生アクセスユニット数は、再生装置の処理能力という物理的な制約からだけでなく、表示されるオブジェクト数を少なくしたいというユーザの指定によって決定される場合もある。
(10−2)第2のデータ構造
また、各Vclick AUの優先度は、Vclick AUのヘッダのデータ構造に追加せず、各Vclick AUのオブジェクト属性情報として追加することもできる。図47は図16とは別のVclick AUのオブジェクト属性情報の種類を示す図である。図16との違いは、優先度の属性が新たに加わっていることである。オブジェクトの優先度属性は、図48のように定義できる。この優先度属性を用いても、図46で説明した場合と同様に、再生装置の処理能力やユーザからの指定によって、一部のメタデータしか再生されない場合でも、メタデータ制作者が優先的に再生させたいメタデータを優先して再生させることが可能になる。
(10−1)第3のデータ構造
さらに、前記説明した各Vclick AUの優先度は、Vclick AUヘッダやオブジェクト属性情報に新たに追加しなくても、Vclickストリーム内で、各Vclick AUを再生優先度の高い順、もしくは低い順に並べることでも指定できる。Vclick AUはタイムスタンプ順に並んでいるが、同一のタイムスタンプを持つVclick AUの順番は決められていない。よって、同一のタイムスタンプを持つVclick AUを再生優先度の高い順、もしくは低い順に並べることによって優先度を指定することもできる。
図49は、Vclickストリーム内の同一タイムスタンプを持つVclick AUを、再生優先度順の高い順に並べることによって、優先的に再生する方法を示す図である。Vclickストリームが、このような構成を持つことで、図46で説明した場合と同様に、再生装置の処理能力やユーザからの指定によって、一部のメタデータしか再生されない場合でも、メタデータ制作者が優先的に再生させたいメタデータを優先して再生させることが可能になる。また、再生優先度順の低い順に並べた場合も同様に、メタデータ制作者が優先的に再生させたいメタデータを優先して再生させることが可能である。
(11)変更例
なお、本発明は上記した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。例えば、本発明は現在世界的に普及しているDVD−ROMビデオのみならず、近年急速に需要が伸びている録画再生可能なDVD−VR(ビデオレコーダ)にも適用できる。さらには、近々普及が始まるであろう次世代HD−DVDの再生系または録再系にも適用可能である。
また、上記した実施形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施形態に係る構成要素を適宜組み合わせても良い。