以下、図を参照して、本開示の実施の形態について説明する。
図1は、本開示を適用した第1の実施の形態における再生装置1の構成例を示すブロック図である。
コントローラ21は、予め用意されている制御プログラムを実行するか、または、光ディスクドライブ22を制御して光ディスク11に記録されているナビゲーションプログラム(後述)を読み出し、メモリ23に展開して実行することで、再生装置1の全体の動作を制御する。例えば、コントローラ21は、光ディスク11が装着されたとき、所定のメニュー画面を外部の表示装置に表示させることができる。
光ディスクドライブ22は、コントローラ21による制御に従って光ディスク11からデータを読み出し、読み出したデータを、コントローラ21、メモリ23、または、デコーダ26に出力する。光ディスク11から読み出された情報が、ナビゲーションプログラムやPlayListなどであった場合、光ディスクドライブ22により読み出された情報は、コントローラ21、または、メモリ23に出力される。光ディスク11から読み出された情報が、AVストリームやテキストデータであった場合、光ディスクドライブ22により読み出された情報は、デコーダ26に出力される。
図2は、本開示を適用した再生装置1に装着される光ディスク11のアプリケーションフォーマットの例を示す図である。記録媒体は、光ディスク11の他、例えば、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のためにPlayListとClipの2つのレイヤをもつ。ここでは、1つのAVストリームまたはテキストデータとそれに付随する情報であるClip Informationのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームのデータファイルをAVストリームファイルと称する。また、Clip InformationのデータファイルをClip Informationファイルと称する。
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために用いられる。
PlayListはAVストリームの再生区間を示す情報の集合である。あるAVストリーム中の1つの再生区間を示す情報はPlayItemと呼ばれ、PlayItemは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。したがって、PlayListは、図2に示されるように1つ、または複数のPlayItemにより構成される。
図2において、左から1番目に図示されている第1のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側に図示される第1のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目に図示されている第2のPlayListは1つのPlayItemから構成され、それにより、右側に図示されている第2のClipに含まれるAVストリーム全体が参照されている。更に、左から3番目に図示されている第3のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側に図示されている第1のClipに含まれるAVストリームの所定の部分と、右側に図示されている第2のClipに含まれるAVストリームの所定の部分とがそれぞれ参照されている。
ナビゲーションプログラム(Navigation program)は、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を、コントローラ21に実行させるためのプログラムである。また、ナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このナビゲーションプログラムは、例えば、Java(登録商標)などのプログラミング言語で記述され、光ディスク11などの記録媒体に記録される。例えば、ナビゲーションプログラムがコントローラ21により実行されて、そのときの再生位置を表す情報として、図2において左から1番目に図示される第1のPlayListに含まれる第1のPlayItemが指定された場合、そのPlayItemが参照する、左側に図示される第1のClipに含まれるAVストリームの前半部分の再生が行われる。
また、図2を用いて説明したPlayListには、PlayItemにより指定されるメインパス(Main Path)に加えて、図3に示されるようなサブプレイアイテム(Sub Play Item)を用いて指定されるサブパス(Sub path)の情報を含ませるようにすることもできる。SubPlayItemを定義すると、例えば、PlayItemにより指定されるClip(例えば、MPEG2トランスポートストリーム)に多重化されていない、独立したデータストリームをAVストリーム再生に同期して再生させることができる。
例えば、PlayItemにより指定されるメインパス(Main Path)のClip AVストリームに対応させて、テキスト字幕ファイル、および、レンダリングに必要となるフォントファイルから構成される字幕関連情報と、字幕関連情報の再生区間を指定したSubPlayItemを用意することで、Clip AVストリームの再生と同時に、テキスト字幕ファイルに記載されているデータに対応する字幕を、フォントファイルに記載されているフォントデータに基づいた表示フォントで、表示装置に表示させるようにすることができる。
テキスト字幕ファイルおよびレンダリングに必要となるフォントファイルから構成される字幕関連情報や、SubPlayItemは、予め光ディスク11に記録されていても良いし、ネットワーク2を介して、サーバ3からダウンロードされるものであっても良いし、または、リムーバブルメディア(例えば、後述するリムーバブルメディア28)を用いて取得することができるようにしても良い。字幕関連情報およびSubPlayItemをサーバ3からダウンロードする場合の詳細については、図4を用いて後述する。
再び、図1の説明に戻る。
メモリ23は、コントローラ21が各種の処理を実行する上において必要なデータなどを適宜記憶する。ローカルストレージ24は、例えば、HDD(Hard Disk Drive)などより構成される。
インターネットインタフェース25は、有線または無線によりネットワーク2に接続されており、コントローラ21からの制御に従って、ネットワーク2を介して、サーバ3との間で通信を行い、サーバ3からダウンロードされたデータをローカルストレージ24に供給する。サーバ3からは、例えば、そのとき再生装置1に装着されている光ディスク11に記録されている、図2を用いて説明したデータをアップデートさせるデータがコンテンツとしてダウンロードされる。ローカルストレージ24は、サーバ3からネットワーク2経由でダウンロードしたコンテンツを記録することができる。
デコーダ26は、光ディスクドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、デコーダ26によりデコードされた信号に基づいて、例えば、光ディスク11に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。
操作入力部29は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ21に供給する。
また、コントローラ21には、必要に応じてドライブ27も接続されており、ドライブ27には、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVDを含む)、光磁気ディスク(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28が装着される。
次に、再生装置1に装着された光ディスク11に記録されたデータ、および、ローカルストレージ24に記憶されたデータを再生する方法について説明する。
再生装置1はHDD(Hard Disk Drive)などよりなるローカルストレージ24を内部に備える。再生装置1は、有線または無線によりネットワーク2に接続されており、サーバ3からネットワーク2経由でダウンロードしたコンテンツを、このローカルストレージ24に記録することができる。サーバ3からは、例えば、そのとき再生装置1に装着されている光ディスク11に記録されている映画などのコンテンツをアップデートさせるデータをダウンロードすることができる。
ダウンロードされたコンテンツがローカルストレージ24に記録されている状態で、操作入力部29から、光ディスク11に記録されているコンテンツの再生が指示されたとき、コントローラ21は、光ディスク11に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けて、コンテンツの再生処理を実行する。
ここで、光ディスク11に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けて再生する方法について、図4を用いて説明する。
例えば、図2の光ディスク11がパッケージ販売されているメディアであり、ある映画コンテンツが記録されているものとする。また、その映画コンテンツの映像に重畳して表示させることが可能な字幕データファイルとして、英語のテキスト字幕ファイルのみが光ディスク11に記録されているものとする。
例えば、図4において、光ディスク11に記録されている、PlayListのPlayItemが参照するClip1のAVストリームは、映画コンテンツの映像を表示させ、対応する音声を再生させるためのストリームであり、PlayListのSubPlayItemが参照するClip2の字幕関連情報1は、映像の表示に併せて英語の字幕を表示させるためのテキスト字幕ファイルである。
この状態で、英語とは異なる言語の字幕を表示させて、光ディスク11に記録されている映画コンテンツを視聴したい場合、光ディスク11には英語とは異なる言語の字幕データが記録されていないことから、ユーザは、このままでは英語とは異なる言語の字幕データを表示させて、映画を視聴することができない。
そこで、ユーザは、再生装置1に、光ディスク11に記録されている映画の所望の言語のテキスト字幕ファイルをサーバ3からネットワーク2経由でダウンロードさせる(または、リムーバブルメディア28を用いて取得させる)。光ディスク11に予め記録されていない、例えば、アラビア語によるテキスト字幕ファイルのダウンロードが行われた(または、リムーバブルメディア28からローカルストレージ24にコピーされた)状態について説明する。
すなわち、ユーザが、光ディスク11に予め記録されているPlayListに対応する、アラビア語によるテキスト字幕ファイルのダウンロードを指示した場合、再生装置1においては、サーバ3に対するアクセスが行われ、光ディスク11に記録されているコンテンツをアップデートするものとして、そのサーバ3に用意されているファイルのダウンロードが行われる。
図4の例においては、アラビア語のテキスト字幕ファイル(字幕関連情報2)およびそれに付随するClip Informationファイルで構成されるClip3、光ディスク11に予め記録されている、例えば、映画コンテンツの映像Clipおよび音声Clip(AVストリームデータ)と英語のテキスト字幕ファイルに加えて、対応するClip3の字幕データの再生表示を制御することができるPlayListファイル(Updated PlayListファイル)、光ディスク11に記録されているものと比較してアップデートされた新規ナビゲーションプログラムファイルのダウンロードが行われ、それらがローカルストレージ24に記録される。
なお、Updated PlayListには、メインパスを表すPlayItem以外に、サブパスを表すSubPlayItem1およびSubPlayItem2が付加されている。Updated PlayListのPlayItemは、光ディスク11に記録されているAV Streamを含むClip1を参照するものであり、SubPlayItem1は、光ディスク11に記録されている字幕関連情報1を含むClip2を参照するものであり、SubPlayItem2は、Updated PlayListとともにサーバ3からダウンロードされた、アラビア語のテキスト字幕ファイルである字幕関連情報2を含むClip3を参照するものである。
図4の新規ナビゲーションプログラムは、再生区間としてUpdated PlayListのPlayItemとともに、SubPlayItem1またはSubPlayItem2を指定することができるものであり、これにより、例えば、所望の映像および音声データに対応付けて、光ディスク11に予め記録されている英語によるテキスト字幕ファイルにより定義される英語字幕、または、光ディスク11に予め記録されていない、アラビア語によるテキスト字幕ファイルにより定義されるアラビア語字幕のうち、ユーザの所望の言語の字幕を表示させることができる。
このように、サーバ3からのダウンロード(または、リムーバブルメディア28からのコピー)が行われることにより、再生装置1は、英語のテキスト字幕ファイルであるClip2と、光ディスク11に予め用意されていない、アラビア語のテキスト字幕ファイルであるClip3のいずれかを映画の字幕として再生表示することが可能となる。すなわち、ユーザは、表示装置に表示されるメニュー画面に記載される表示可能な字幕の言語から所望の言語を選択することで、英語とアラビア語のうちの所望する言語の字幕によって映画を視聴することができる。
なお、光ディスク11に記録されるAVストリームは、図5に示すような、MPEG2(Moving Picture Experts Group 2)トランスポートストリームの構造を有する。MPEG2トランスポートストリームは、整数個のAligned unitから構成される。Aligned unitの大きさは、6144バイト(2048×3バイト)であり、ソースパケットの第1バイト目から始まる。ソースパケットは、192バイト長である。1つのソースパケットは、TP_extra_headerとトランスポートパケットから構成される。TP_extra_headerは、4バイト長であり、またトランスポートパケットは、188バイト長である。1つのAligned unitは、32個のソースパケットから構成される。ビデオストリームやオーディオストリームのデータは、MPEG2 PES(Packetized Elementary Stream)パケットにパケット化されており、PESパケットは、トランスポートパケットにパケット化される。
図6は、図1のコントローラ21の機能構成例を示すブロック図である。
図6の各構成は、予め用意されている制御プログラムがコントローラ21により実行されることにより、または、光ディスク11に記録されているナビゲーションプログラムがコントローラ21により実行されることにより実現される。
メニュー画面表示制御部31は、光ディスク11に記録されているコンテンツの音声、または字幕の言語や、映像のアングルを選択するときにユーザにより操作されるボタンや、ダウンロードするアップデートファイルを選択するときにユーザにより操作されるボタンなどを含むメニュー画面を外部の表示装置に表示させる。
操作入力取得部32は、操作入力部29から入力された、ユーザからの操作入力を示す信号を取得し、ユーザからの操作入力を示す信号を、メニュー画面表示制御部31、データ取得部33、または、再生制御部37のうちの対応する箇所に出力する。
データ取得部33は、図1のインターネットインタフェース25において行われる通信、または、ドライブ27によるリムーバブルメディア28との情報の授受を制御する。例えば、データ取得部33は、ユーザが指示したアップデートファイルをサーバ3からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部34に出力する。
ローカルストレージディレクトリ管理部34は、ローカルストレージ24のディレクトリを管理し、ローカルストレージ24に対するデータの書き込み、および、ローカルストレージ24からのデータの読み出しを制御する。例えば、ローカルストレージディレクトリ管理部34の制御によりローカルストレージ24から読み出されたPlayListは、メモリ23に出力され、ローカルストレージ24から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ26に出力される。また、ローカルストレージディレクトリ管理部34は、後述するように、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとのマージがファイルシステムマージ処理部36により行われる場合、ローカルストレージ24のファイルシステムに関する情報をファイルシステムマージ処理部36に出力する。
光ディスクディレクトリ管理部35は、光ディスク11のディレクトリを管理し、光ディスク11からの各データの読み出しを制御する。光ディスク11には識別情報であるStudio_idとContent_idが設定されており、光ディスクディレクトリ管理部35の制御により、光ディスク11から読み出されたStudio_idとContent_idは、データ取得部33とローカルストレージディレクトリ管理部34に出力される。また、光ディスクディレクトリ管理部35の制御により、光ディスク11から読み出されたPlayListは、メモリ23に出力され、光ディスク11から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ26に出力される。また、光ディスクディレクトリ管理部35は、後述するように、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとのマージがファイルシステムマージ処理部36により行われる場合、光ディスク11のファイルシステムに関する情報をファイルシステムマージ処理部36に出力する。
ファイルシステムマージ処理部36は、光ディスクディレクトリ管理部35から供給される光ディスク11のファイルシステムと、ローカルストレージディレクトリ管理部34から供給されるローカルストレージ24のファイルシステムをマージし、1つの仮想的なファイルシステムを生成する。ファイルシステムマージ処理部36は、マージすることで生成した仮想的なファイルシステムを再生制御部37に出力する。以下、適宜、第1の実施の形態においてファイルシステムマージ処理部36によりマージされることで生成される1つのファイルシステムを第1の仮想ファイルシステムと称する。
再生制御部37は、ファイルシステムマージ処理部36から供給される第1の仮想ファイルシステムで指定されるナビゲーションプログラムを実行し、コンテンツの再生を制御する。具体的には、再生制御部37はメモリ23に供給され、記憶されたPlayListを参照し、ローカルストレージディレクトリ管理部34または光ディスクディレクトリ管理部35を制御して、光ディスク11またはローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータを読み出させ、図1のデコーダ26を制御して、光ディスク11またはローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータのデコード(再生)を行わせる。
ここで、ファイルシステムマージ処理部36により行われる、光ディスク11のファイルシステムと、サーバ3からダウンロードするなどによりローカルストレージ24に記録されたファイルシステムのマージについて説明する。例えば、このマージは光ディスク11に記録されているコンテンツの再生が指示されたときに行われる。
図7は、光ディスク11のファイルシステム(左側)と、ローカルストレージ24のファイルシステム(右側)の例を示す図である。図に示されるように、各ファイルシステムはディレクトリ構造を有している。
光ディスク11の「root」の下には「BDMV」の名前が設定されたフォルダが用意され、そのフォルダに、「info.bdmv」の名前が設定されたファイルと、「Navigation.class」の名前が設定されたファイルが格納されている。以下、これらのファイルを、適宜、info.bdmvファイル、Navigation.classファイルとそれぞれ称する。他のファイル、フォルダについても同様に、「ファイル名」に「ファイル」を付加した形で、または、「フォルダ名」に「フォルダ」を付加した形で称する。
info.bdmvファイルには、光ディスク11の製作者の識別情報であるStudio_id、コンテンツの識別情報であるContent_idが記述されている。
すなわち、Studio_idとContent_idにより、流通するコンテンツ全体の中から光ディスク11に記録されているコンテンツが識別される。図7の例においては、Studio_idは「xxx」であり、Content_idは「yyy」である。なお、Studio_idとContent_idは、ダウンロードするアップデートファイルを識別するためにも利用される。
Navigation.classファイルは、所定のプログラム言語で記述されたナビゲーションプログラムである。
BDMVフォルダにはまた、「PLAYLIST」の名前が設定されたフォルダ(PLAYLISTフォルダ)、「CLIPINF」の名前が設定されたフォルダ(CLIPINFフォルダ)、「STREAM」の名前が設定されたフォルダ(STREAMフォルダ)が格納されている。
図7においては、PLAYLISTフォルダには、「11111.mpls」の名前が設定されたファイルと「22222.mpls」の名前が設定されたファイルが格納されている。これらのファイルは、AVストリームファイルなどの再生区間をタイムスタンプで表すPlayListである。
CLIPINFフォルダには、「01000.clpi」の名前が設定されたファイルと「02000.clpi」の名前が設定されたファイルなどが格納されている。これらのファイルは、タイムスタンプと、AVストリームファイルまたは字幕関連情報1(図4)のアドレス情報の対応を表すClip Informationである。
STREAMフォルダには、「01000.m2ts」の名前が設定されたファイルと「02000.m2ts」の名前が設定されたファイルなどが格納されている。これらのファイルは、図4のAV streamや字幕関連情報1などである。
一方、ローカルストレージ24の「root」の下には「xxx-yyy」の名前が設定されたフォルダが格納されている。フォルダ名の「xxx-yyy」は、このフォルダに格納されているデータが、光ディスク11に記録されている、Studio_id「xxx」、Content_id「yyy」で識別されるコンテンツに対応するデータであることを表す。後述するように、xxx-yyyフォルダは、Studio_id「xxx」、Content_id「yyy」を有する光ディスク11が再生装置1に装着され、アップデートファイル(xxx-yyyフォルダに格納される各ファイル)のダウンロードが行われたときに作成されるものである。
xxx-yyyフォルダには、info.bdmvファイル、Navigation.classファイルが格納されている。このinfo.bdmvファイルは光ディスク11のinfo.bdmvファイルと同じであり、Navigation.classファイルは、光ディスク11のNavigation.classファイルをアップデートさせたファイルである。すなわち、ローカルストレージ24のNavigation.classファイルは、光ディスク11に記録されているものと較べて、バージョンアップされたナビゲーションプログラムを記述するファイルである。
xxx-yyyフォルダには、更に、PLAYLISTフォルダ、CLIPINFフォルダ、STREAMフォルダが格納されている。
図7においては、ローカルストレージ24のPLAYLISTフォルダに「11111.mpls」の名前が設定されたファイルと「22222.mpls」の名前が設定されたファイルが格納されており、このうちの「22222.mpls」の名前が設定されたファイルは、光ディスク11の同じ名前が設定されているファイルをアップデートしたファイルとされている。例えば、ローカルストレージ24の「22222.mpls」の名前が設定されたファイルは、ダウンロードされたUpdate PlayList(図4)を表し、このファイルに、PlayListにSubPlayItemが付加されたデータが記述される。
ローカルストレージ24のCLIPINFフォルダには、光ディスク11にも記録されている、「01000.clpi」の名前が設定されたファイルと「02000.clpi」の名前が設定されたファイルの他に、「04000.clpi」の名前が設定されたファイルが格納されている。すなわち、「04000.clpi」の名前が設定されたファイルは、ダウンロードにより新たに取得されたファイルであり、例えば、図4のClip3のClip Informationである。
ローカルストレージ24のSTREAMフォルダには、「04000.m2ts」の名前が設定されたファイルが格納されている。このファイルは、ダウンロードにより新たに取得されたファイルであり、例えば、図4のClip3の字幕関連情報2である。
なお、同様に、図7の例においては、ローカルストレージ24の「root」の下には「xxx-aaa」の名前が設定されたフォルダと、「yyy-bbb」の名前が設定されたフォルダが格納されている。これらは、Studio_id「xxx」、Content_id「aaa」で識別される光ディスク、Studio_id「yyy」、Content_id「bbb」で識別される光ディスクが再生装置1に装着されたときにそれぞれ作成されたものであり、それぞれのコンテンツに対応するファイルが格納されている。
このような光ディスク11のファイルシステムとローカルストレージ24のファイルシステムがある場合、コントローラ21のファイルシステムマージ処理部36は、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムをメモリ23上でマージし、第1の仮想ファイルシステムを生成する。
具体的には、ファイルシステムマージ処理部36は、同じ名前のファイルが光ディスク11とローカルストレージ24の両方にある場合、それぞれのファイルに記述されるタイムスタンプ(作成日時)やバージョンに基づいて、ダウンロードにより取得されたファイルがコンテンツの再生時に参照するファイルとされるようにマージを行う。また、ファイルシステムマージ処理部36は、光ディスク11にはなく、ローカルストレージ24にのみあるファイルがコンテンツの再生時に参照するファイルとされるようにマージを行う。
図8は、図7の2つのファイルシステムから得られる第1の仮想ファイルシステムの例を示す図である。
図8においては、光ディスク11に記録されているファイルのうち、Navigation.classファイルと「22222.mpls」の名前が設定されたファイルが、ダウンロードされたファイルによりアップデートされている(置き換えられている)。また、光ディスク11には記録されていない、「04000.clpi」の名前が設定されたファイルと、「04000.m2ts」の名前が設定されたファイルが追加されている。
すなわち、ダウンロードされたファイルに、アップデートされたナビゲーションプログラムやPlayListがある場合、そのファイルによって、光ディスク11の同じ名前のファイルがアップデートされる(置き換えられる)。また、光ディスク11にはないClipのファイル(Clip Informationファイル、AVストリームファイル)がダウンロードされた場合、それがファイルシステムに追加される。
このようにして生成された第1の仮想ファイルシステムを通して、ナビゲーションプログラムに基づくAVストリームへのアクセスが行われる(直接、光ディスク11やローカルストレージ24にアクセスが行われるのではない)。
したがって、新たにダウンロードまたはコピーされた新規ナビゲーションプログラムの処理により、光ディスク11に予め記憶されているデータと、新たにダウンロードまたはコピーされてローカルストレージ24に記憶されたデータとは区別されることなく処理される。図9に示されるように、所定の区間のAVストリームに対応させて字幕を表示させるための字幕関連情報が、複数の言語の字幕に対応するテキスト字幕ファイルを構成するテキストサブタイトルデータと、フォントファイルを構成するフォントデータにより構成されている場合、ユーザの操作入力に基づいて、光ディスク11に予め記憶されている字幕関連情報と、新たにダウンロードまたはコピーされてローカルストレージ24に記憶された字幕関連情報とにより表示可能とされる複数の言語による字幕のうち、ユーザが所望する言語の字幕データが、光ディスク11に予め記憶されているAVストリームに対応付けられて、処理されて表示される。
一方、光ディスクの販売者側(販売者、製作者)は、例えば、アラビア語の字幕情報は後からネットワーク2を介して提供するものとし、英語字幕のみを表示可能な状態で、映画が記録された光ディスク11を販売することができる。すなわち、光ディスクの販売者側は、一度に多言語を翻訳することなく、より早いタイミングでディスクを販売し、必要に応じて、他の言語に対応する字幕関連情報を追加して提供することが可能になる。また、主な言語に対応する地域に光ディスクを先行販売し、他の言語の翻訳処理の終了後、光ディスクの販売地域を後から追加するとともに、対応する言語のテキスト字幕ファイルのダウンロードサービスを開始するようにすることなども可能になる。
光ディスクの販売者側(販売者、製作者)は、光ディスク11に予め記憶されているAVストリームに対応付けて字幕データを表示可能とするために、少なくとも、アップデートされた新規のプレイリストファイルと、テキスト字幕ファイルを配布する必要があり、これに加えて、テキスト字幕ファイルに記載されているテキストデータに対応する字幕の表示形式を定義するためのフォントファイルを配布するようにしても良い。なお、基本的なフォントデータに関しては、再生装置1のメモリ23などに予め記憶されているものとする。
追加して配布される対象となるデータ(すなわち、図4を用いて説明したローカルストレージ24に記憶されるデータに対応する)のアーカイブを図10に示す。
追加して配布するデータには、プレイリストファイル(PlayList_file)、テキストサブタイトルファイルの番号を示す8ビットの番号情報(number_of_TextSubTitle)、および、上述したテキスト字幕ファイルに対応するテキストサブタイトルファイル(text_subtitle_file)が含まれ、更に、フォントファイル(font_file)が含まれる場合がある。
図11は、SubPlayItemのシンタックスを示す図である。
ref_to_STC_idの8ビットのフィールドは、Clipが参照するSTCシーケンスの識別子を指定する。SubPlayItem_IN_timeは、SubPlayItemの再生開始時刻を指定する。SubPlayItem_OUT_timeは、SubPlayItemの再生終了時刻を指定する。すなわち、SubPlayItem_IN_timeおよびSubPlayItem_OUT_timeで、SubPlayItemの再生区間を指定することができる。なお、SubPlayItem_IN_timeおよびSubPlayItem_OUT_timeに記載される時刻情報は、STCで使用されている45kHzのクロックをベースに表現される。
number_of_ClipTextSubtitleの8ビットのフィールドは、SubPlayItem中で定義する字幕のテキストの総数を指定する。language_idの8ビットのフィールドは、字幕として使用する言語の識別子を指定する。language_idフィールドのデータは、ISO/IEC 639-1規格に従うものとする。character_code_idの8ビットのフィールドは、文字データの符号化方式の識別子を指定する。font_format_idの8ビットのフィールドは、フォントフォーマットの識別子を指定する。
font_file_path_lengthの16ビットのフィールドは、font_file_pathに記載されるフォントファイルのパス名称のバイト数を指定する。このフィールドには、font_file_pathのバイト数として、0を指定することができる。0が指定された場合は、再生装置1に予め保存されている内蔵フォントが指定されたものとして処理される。font_file_pathは、字幕データを描画するために使用するフォントファイルのパス名称を指定する。font_file_pathのフィールドに、空文字列が指定された場合、再生装置1に予め保存されている内蔵フォントが指定されたものとして処理される。font_file_path本フィールド値は、ISO/IEC 646方式で符号化されるものとする。
subtitle_file_path_lengthの16ビットのフィールドは、subtitle_file_pathに記載されるテキスト字幕ファイルのパス名称のバイト数を指定する。subtitle_file_pathは、テキスト字幕ファイルのパス名称を指定する。subtitle_file_pathフィールド値は、ISO/IEC 646方式で符号化されるものとする。
comment_lengthの16ビットのフィールドは、commentに記述される情報のバイト数を指定する。Commentには、テキスト字幕に関するコメントが記述される。なお、Commentに記載されるコメントは、文字集合ISO/IEC 646を使用して記述するものとされている。
テキスト字幕ファイルは、図12に示される構文に従って記載される。
versionは、テキスト字幕ファイルのバージョンを指定する16ビットの情報である。markup_typeは、マークアップの形式を指定する8ビットの情報である。subtitle_countは、字幕データの総数を指定する32ビットの情報である。(subtitle_countは、改行コードの総数ではない。)start_PTSは、字幕の表示開始時刻をClip AVストリームのPTSで指定する33ビットの情報である。end_PTSは、字幕の表示終了時刻をClip AVストリームのPTSで指定する33ビットの情報である。subtitle_data_lengthは、subtitle_dataのバイト数(字幕の文字数ではない)を指定する32ビットの情報である。subtitle_dataは、字幕データを指定する情報である。
字幕データは、字幕を構成する文字そのものを示す「文字オブジェクト」と「属性データ(アトリビュート)」から構成される。属性データの設定方法について記述する。
字幕データの属性データには、制御文字による属性設定と、マークアップによるインライン属性設定の2つの属性設定方法がある。
まず、図13および図14を用いて、制御文字による属性設定について説明する。
図13に示される「Tab」という文字は空白文字として取り扱われる。「Tab」以外にも、空白文字として取り扱うことができる文字を複数設定することが可能であることはいうまでもない。
また、図14に示される文字は全て改行文字として取り扱われる。すなわち、「CR」は、復帰を示す記号であるが改行文字として取り扱われ、「LF」は、改行文字として取り扱われ、「CR+LF」は、復帰と改行を示す記号であるが改行文字として取り扱われ、「NEL」は、改行文字として取り扱われ、「VT」は、垂直タブを示す記号であるが改行文字として取り扱われ、「FF」は、改ページを示す記号であるが改行文字として取り扱われ、「LS」は、行区切りを示す記号であるが改行文字として取り扱われ、「PS」は、段落区切りを示す記号であるが改行文字として取り扱われる。
次に、マークアップによるインライン属性設定について説明する。
指定可能な属性に対してそれぞれマークアップが定義される。マークアップの形式は、TLV(Type-Length-Value)エンコード形式でマークアップする場合と、タグ付き言語の要素および属性によりマークアップする場合との2通りがあり、図15に示されるように、マークアップ形式識別子が0x00であるとき、マークアップの形式は、TLVエンコード形式であると定義され、マークアップ形式識別子が0x01であるとき、マークアップの形式は、タグ付き言語であると定義される。いずれの形式においても、マークアップのスコープは、開始マーカー以降の文字全てであり、テキストデータをデコードするデコーダの一方向走査を可能にするために、終了マーカーは定義されない。したがって、属性を局所的に指定したい場合には、直前の属性を明示的に再指定する必要がある。
まず、TLVエンコード方式による属性指定が行われる場合について説明する。TLVエンコード方式による属性指定の場合、字幕データの文字符号化方式は、図11を用いて説明した、SubPlayItem中のcharacter_code_idの指定に従うものとする。
図16を用いて、TLVエンコード方式による属性指定の場合の、subtitle_data()のデータ構造について説明する。
escape_codeの8ビットのフィールドは、図17に示されるように、後に属性が記述されていることを示すエスケープコード0x1Bを指定する。attribute_typeの8ビットのフィールドは、属性種別を指定する。attribute_typeに記載されるコードについては、図18を用いて後述する。attribute_value_lengthの16ビットのフィールドは、後に続く属性データのバイト数を指定する。attribute_valueは、属性データを指定する。char_dataは、文字オブジェクトのバイトシーケンスを指定する。
次に、図18を用いて、attribute_typeに記載される属性種別を示すコードについて説明する。
subtitle_data()のattribute_typeの8ビットのフィールドに0x01が記載されていたとき、記載されている属性の種別は、インデックスデータと代表色データとの変換テーブルであるCLUT(Color Look Up Table)の設定である。CLUTは、図33を用いて後述する字幕グラフィックスプレーン処理部に記憶される変換テーブルである。subtitle_data()のattribute_typeの8ビットのフィールドに0x02が記載されていたとき、記載されている属性の種別は、リージョン原点の指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x03が記載されていたとき、記載されている属性の種別は、行間(Line Space)の指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x04が記載されていたとき、記載されている属性の種別は、レンダリング方向の指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x05が記載されていたとき、記載されている属性の種別は、フォント色の指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x06が記載されていたとき、記載されている属性の種別は、背景色の指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x07が記載されていたとき、記載されている属性の種別は、フォントスタイルの指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x08が記載されていたとき、記載されている属性の種別は、フォントサイズの指定である。
subtitle_data()のattribute_typeの8ビットのフィールドに0x09が記載されていたとき、記載されている属性の種別は、フォント回転角の指定である。subtitle_data()のattribute_typeの8ビットのフィールドに0x0Aが記載されていたとき、記載されている属性の種別は、ブックマークの開始位置である。subtitle_data()のattribute_typeの8ビットのフィールドに0x0Bが記載されていたとき、記載されている属性の種別は、ブックマークの終了位置である。subtitle_data()のattribute_typeの8ビットのフィールドに0x0Cが記載されていたとき、記載されている属性の種別は、ブックマークの付与された文字オブジェクトシーケンスの繰り返しの指定である。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がCLUT設定であるとき、attribute_valueにおいて、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTのインデックスが設定される。図19に、subtitle_data()のattribute_typeにおいて、記載されている属性種別がCLUT設定であるときの、attribute_valueのデータ構造を示す。
CLUT_sizeの8ビットのフィールドには、CLUTのサイズが記載されている。Yは、輝度データを設定する8ビットの情報であり、Cb,Crは、それぞれ、色差データを設定する8ビットの情報であり、Tは、透明度を設定する8ビットの情報である。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がリージョン原点指定であるとき、attribute_valueにおいて、リージョンの原点座標(x, y)が指定される。図20に、subtitle_data()のattribute_typeにおいて、記載されている属性種別がリージョン原点指定であるときのattribute_valueのデータ構造を示す。
x_coordonateは、リージョンの原点のx座標を示す16ビットの情報である。y_coordonateは、リージョンの原点のy座標を示す16ビットの情報である。
また、subtitle_data()のattribute_typeにおいて、記載されている属性種別が行間(Line Space)指定であるとき、attribute_valueにおいて、行間がピクセル単位で指定される。なお、行間(Line Space)指定のデフォルトは、「フォントの高さ」であるものとしてもよい。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がレンダリング方向指定であるとき、attribute_valueには、文字オブジェクトを描画するときのレンダリング方向を指定するためのレンダリング方向指定を示すコードが記載される。図21にレンダリング方向指定を示すコードの例を示す。
すなわち、subtitle_data()のattribute_typeにおいて、記載されている属性種別がレンダリング方向指定である場合、attribute_valueに、0x00が記載されているとき、文字オブジェクトを描画するときのレンダリング方向は、左から右に指定され、attribute_valueに、0x01が記載されているとき、文字オブジェクトを描画するときのレンダリング方向は、右から左に指定され、attribute_valueに、0x02が記載されているとき、文字オブジェクトを描画するときのレンダリング方向は、上から下に指定される。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がフォント色の指定であるとき、attribute_valueには、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTに対する色指定のインデックスが指定される。フォント色を設定するためのattribute_valueの値のデフォルトは、「0」であるものとしてもよい。
subtitle_data()のattribute_typeにおいて、記載されている属性種別が背景色の指定であるとき、attribute_valueには、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTに対する背景色のインデックスが指定される。ただし、指定された背景色で塗りつぶされる表示画面内の領域は、リージョン単位であり、背景色のデフォルトは、無指定(透過)であるものとしてもよい。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がフォントスタイルの指定であるとき、attribute_valueには、図22に示されるコードのうちのいずれかが記載されて、フォントのスタイルが指定される。すなわち、attribute_valueに、0x00が記載されているとき、フォントスタイルは標準に指定され、attribute_valueに、0x01が記載されているとき、フォントスタイルは太字に指定され、attribute_valueに、0x02が記載されているとき、フォントスタイルは斜体に指定される。なお、フォントのスタイルのデフォルトは、「標準」とするようにしてもよい。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がフォントサイズの指定であるとき、attribute_valueには、フォントサイズを示す8以上72以下の値が指定される。なお、フォントサイズを指定する値のデフォルトは、「32」とするようにしてもよい。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がフォント回転角の指定であるとき、attribute_valueには、フォント回転角に対応する0以上360以下の値が指定される。なお、回転方向は、例えば、反時計回りが正方向され、デフォルトは、「0」とするようにしてもよい。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がブックマーク開始位置指定であるとき、attribute_valueには、ブックマーク開始位置が指定される。ブックマークとは、複数回同じ文字が同じ形式で表示される場合にレンダリング処理を省略することができるように、テキスト字幕ファイルの供給元が予め付与する情報である。図23に、subtitle_data()のattribute_typeにおいて、記載されている属性種別がブックマーク開始位置指定であるときのattribute_valueのデータ構造を示す。
bookmark_idの8ビットのフィールドには、ブックマークを固有に区別可能なIDが記載される。なお、ここでは、ブックマークは、最大256個まで指定できる。start_of_bookmark_indicatorの8ビットのフィールドには、ブックマークの開始位置が指定される。
subtitle_data()のattribute_typeにおいて、記載されている属性種別がブックマーク終了位置指定であるとき、attribute_valueには、ブックマーク終了位置が指定される。図24に、subtitle_data()のattribute_typeにおいて、記載されている属性種別がブックマーク終了位置指定であるときのattribute_valueのデータ構造を示す。
bookmark_idの8ビットのフィールドには、ブックマークを固有に区別可能なIDが記載される。end_of_bookmark_indicatorの8ビットのフィールドには、ブックマークの終了位置が指定される。
subtitle_data()のattribute_typeにおいて、記載されている属性種別が文字オブジェクトシーケンス繰り返し指定であるとき、attribute_valueには、ブックマークの付与された文字オブジェクトのシーケンスの繰り返し回数が指定される。図25に、subtitle_data()のattribute_typeにおいて、記載されている属性種別が文字オブジェクトシーケンス繰り返し指定であるときのattribute_valueのデータ構造を示す。
bookmark_idの8ビットのフィールドには、ブックマークを固有に区別可能なIDが記載される。Countの8ビットのフィールドには、ブックマークの繰り返し回数が指定される。
次に、タグ付き言語による属性指定の場合について説明する。タグ付き言語による属性指定の場合、字幕データの文字符号化方式は、SubPlayItem中のcharacter_code_idの指定を無視して、ISO/IEC 646 エンコードであるものとする。
図26を用いて、タグ付き言語による属性指定の場合の、subtitle_data()のデータ構造について説明する。
TaggedAttrは、属性データのタグ付き言語表現を指定する。TaggedAttrは、図27に示されるような、所定の形式に従う。char_dataは、文字オブジェクトのバイトシーケンスを指定する。ただし、バイトシーケンスは、BASE64エンコーディング方式によりISO/IEC 646エンコードするものとする。その際、「<」および「>」は、「0x1B」によりエスケープする。
次に、図28を参照して、タグ付き言語による属性指定の要素および属性種別について説明する。
CLUT設定は、<CLUT size= y= cb= cr= t= >と記載され、属性「size」にCLUTのサイズが指定され、属性「y」、「cb」、「cr」および「t」には、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTのインデックス列が指定される。
リージョン原点指定は、<region x= y=>と記載され、属性「x」および「y」に、リージョンの原点座標(x, y)が指定される。
行間(Line Space)指定は、<linespace d=>と記載され、属性「d」に、行間がピクセル単位で指定される。なお、行間のデフォルトは、「フォントの高さ」とするようにしてもよい。
レンダリング方向指定は、<textflow d=>と記載され、属性「d」に、文字オブジェクトを描画するときの方向が指定される。なお、レンダリング方向のデフォルトは、「左から右へ」とするようにしてもよい。
フォント色指定は、<fontcolor c=>と記載され、属性「c」に、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTに対するインデックスが指定される。なお、フォント色に対応するインデックスのデフォルトは、「0」とするようにしてもよい。
背景色指定は、<backgroundcolor c=>と記載され、属性「c」に、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTに対するインデックスが指定される。ただし、背景色で塗りつぶされる領域は、リージョン単位であり、背景色のデフォルトは、無指定(透過)とするようにしてもよい。
フォントスタイル指定は、<fontstyle s=>と記載され、属性「s」に、太字、斜体、標準などのフォントのスタイルが指定される。なお、フォントのスタイルのデフォルトは、「標準」とするようにしてもよい。
フォントサイズ指定は、<fontsize s=>と記載され、属性「s」に、フォントサイズに対応する8以上72以下の値が指定される。なお、フォントサイズを指定する値のデフォルトは、「32」とするようにしてもよい。
フォント回転角指定は、<fontrotate a=>と記載され、属性「a」に、フォントの回転角に対応する0以上360以下の値が指定される。なお、回転方向は、反時計回りが正方向とされ、フォントの回転角に対応する値のデフォルトは、「0」とするようにしてもよい。
ブックマーク指定は、<mark id=>と記載され、属性「id」に、ブックマークを個別に区別可能な0以上255以下の値が指定される。これにより、本要素のスコープ内の字幕データに対してブックマークが付与されたことになる。ブックマークは、最大256個まで指定することができる。
文字オブジェクトシーケンス繰り返し指定は、<repeat id= c=>と記載され、属性「id」に、ブックマークを個別に区別可能な0以上255以下の値が、属性「c」には繰り返し回数が指定される。これにより、属性「id」により設定された属性値に対応するブックマークが付与された字幕データが、属性「c」に設定された回数繰り返される。
上述したような方法で属性が指定されたテキスト字幕ファイルのテキストデータは、それぞれの属性の設定に基づいて、例えば、図29に示されるように、レンダリング方向が左から右へ指定され、設定された改行位置において下方向に改行されて表示されたり、図30に示されるように、レンダリング方向が右から左へ指定され、設定された改行位置において下方向に改行されて表示されたり、図31に示されるように、レンダリング方向が上から下へ指定され、設定された改行位置において左方向に改行されて表示される。
また、例えば、表示される字幕に対して、フェードインまたはフェードアウトを指定するときには、図33を用いて後述する字幕グラフィックスプレーン処理部におけるCLUTのT値を変更して、文字の透明度を変化させつつ、文字オブジェクトシーケンスを繰り返し指定するようにすればよい。
次に、図32は、ローカルストレージ24の仮想的な記憶領域を示す図である。
ローカルストレージ24には、図4を用いて説明したように、ダウンロードまたはコピーされた各種情報が図7を用いて説明したファイル形式で記憶される。これらのファイルを記憶するために、ローカルストレージ24には、仮想的な記憶領域として、ダウンロードされたナビゲーションプログラムが記憶される領域であるナビゲーションプログラム記憶部51、ダウンロードされたプレイリストが記憶される領域であるプレイリスト記憶部52、ダウンロードされたテキストサブタイトルファイルが記憶される領域であるテキストサブタイトルファイル記憶部53、ダウンロードされたフォントファイルが記憶される領域であるフォントファイル記憶部54が設けられているものとすることができる。ナビゲーションプログラム記憶部51およびプレイリスト記憶部52に記憶されたデータファイルは、図6を用いて説明したローカルストレージディレクトリ管理部34の制御に基づいて読み出されてメモリ23に供給され、テキストサブタイトルファイル記憶部53およびフォントファイル記憶部54、に記憶されたデータファイルは、図6を用いて説明したローカルストレージディレクトリ管理部34の制御に基づいて読み出されてデコーダ26に供給される。
なお、図32に図示されたローカルストレージ24のナビゲーションプログラム記憶部51、プレイリスト記憶部52、テキストサブタイトルファイル記憶部53、および、フォントファイル記憶部54のそれぞれの記憶領域は仮想的なものであるから、ローカルストレージ24の記憶領域は、図32に図示されているように記憶される情報の種類により物理的に分割されていなくても良いことはいうまでもない。
コントローラ21の制御に基づいて、光ディスク11、または、ローカルストレージ24から読み出されたデータは、図示せぬ復調およびECC復号部により復調され、誤り訂正が施され、デコーダ26に供給される。図33は、デコーダ26の詳細な構成を説明するためのブロック図である。
デコーダ26には、制御部81、ディスクデータ取得部82、バッファ83および84、PID(パケットID)フィルタ85、オーディオデコーダ86、MPEG(Moving Picture Experts Group)ビデオデコーダ87、ビデオプレーン処理部88、GUI(Graphic User Interface)データデコーダ89、GUIグラフィックスプレーン処理部90、ストレージデータ取得部91、テキスト字幕処理部92、字幕グラフィックスプレーン処理部93、および、合成処理部94が設けられている。
制御部81は、再生制御部37の制御に基づいて、デコーダ26の各部の処理を制御するものである。ディスクデータ取得部82は、光ディスク11から読み出されたデータのうち、デコーダ26に供給されたデータを取得し、図9を用いて説明したPlayItemにより指定されるAVストリームなどの多重化ストリームを、メインパスを構成するPlayItemにより指定されるデータのリードバッファであるバッファ83に供給し、SubPlayItemにより指定される、テキスト字幕ファイルまたはフォントファイルのデータ(フォントファイルのデータは指定されていない場合がある)を、サブパスを構成するSubPlayItemにより指定されるデータのリードバッファであるバッファ84に供給する。
バッファ83から読み出されたストリームデータは、所定のタイミングで、後段のPIDフィルタ55へ出力される。このPIDフィルタ85は、入力された多重化ストリームを、PIDに応じて、後段の各エレメンタリストリームのデコーダであるオーディオデコーダ86、MPEGビデオデコーダ87、または、GUIデータデコーダ89へ振り分けて出力する。すなわち、PIDフィルタ55は、音声(オーディオ)ストリームをオーディオデコーダ86に供給し、映像(ビデオ)ストリームをMPEGビデオデコーダ87に供給し、ユーザインターフェース関連の画像データをGUIデータデコーダ89に供給する。
オーディオデコーダ86は、オーディオストリームをデコードし、デコードされたオーディオストリームのデータを出力する。MPEGビデオデコーダ87は、ビデオストリームをデコードし、デコードされたビデオデータをビデオプレーン処理部88へ出力する。ビデオプレーン処理部88は、デコードされたビデオデータに基づいて、1ページ(または、1フレーム)に表示される画像(動画像である映像を構成する画像)に対応するビデオプレーンを生成し、合成処理部94に出力する。
GUIデータデコーダ89は、インタラクティブグラフィクスストリームをデコードし、デコードされたGUIデータを、GUIグラフィックスプレーン処理部90に供給する。GUIグラフィックスプレーン処理部90は、1画面に表示されるGUIに対応するグラフィックスプレーンを生成し、合成処理部94に出力する。
ストレージデータ取得部91は、ローカルストレージ24から読み出されたデータのうち、デコーダ26に供給されたデータ(すなわち、テキスト字幕ファイルまたはフォントファイルのデータ)を取得し、テキスト字幕処理部92に供給する。テキスト字幕処理部92は、制御部81の制御に従い、ストレージデータ取得部91から供給される、または、バッファ84から読み出されるテキストデータをデコードし、所定のフォントデータに基づいて、ビットマップなどのラスタデータに変換(ラスタライズ)し、字幕グラフィックスプレーン処理部93に供給する。テキスト字幕処理部92についての詳細は、図34を用いて後述する。字幕グラフィックスプレーン処理部93は、デコードされレンダリングされたテキストデータを基に、1ページ(または、1フレーム)に表示される字幕に対応する字幕グラフィックスプレーンを生成し、合成処理部94に出力する。
合成処理部94は、ビデオプレーン処理部88から供給されたビデオプレーン、GUIグラフィックスプレーン処理部90から供給されたGUIに対応するグラフィックスプレーン、および、字幕グラフィックスプレーン処理部93から供給された字幕グラフィックスプレーンを合成し、ビデオ信号として出力する。
図34は、テキスト字幕処理部92の詳細な構成を説明するためのブロック図である。
テキストデータデコーダ121は、テキスト字幕ファイル(テキストサブタイトルファイル)のデータをデコードし、文字オブジェクトは文字オブジェクトバッファ122に、属性(アトリビュート)は、アトリビュートデータバッファ123に供給する。
アトリビュートデータバッファ123に保存される属性データは、ユーザの操作入力に基づいて、制御部81の制御に従い変更される。例えば、ユーザがフォントサイズや文字色の変更を指令した場合、制御部81の制御により、アトリビュートデータバッファ123に保存される属性データのうち、対応するコードが書き換えられる。
フォントラスタライザ124は、アトリビュートデータバッファ123から読み出した属性の指定と、バッファ84またはストレージデータ取得部91から供給されるフォントデータ、もしくは、予め再生装置1内部に保持されている内臓フォントデータに基づいて、文字オブジェクトバッファ122から読み出した文字オブジェクトをビットマップなどのラスタデータに変換して字幕グラフィックスプレーン処理部93に出力する。例えば、フォントラスタライザ124は、スケーラブルフォントを属性指定に基づいてビットマップ展開し、ラスタデータに変換(ラスタライズ)して出力する。
更に、フォントラスタライザ124は、アトリビュートデータバッファ123から読み出した属性に基づいて、ブックマークが付与されている文字オブジェクトを検出し、ブックマークバッファ125を利用して、同一のブックマークIDが付与されている文字オブジェクトに関しては、重複してラスタライズを行わないようにする。
ブックマークバッファ125は、フォントラスタライザ124の処理により、ブックマークが付与されている文字オブジェクトのラスタデータを保持するとともに、フォントラスタライザ124により、保持しているラスタデータを読み出される。
次に、図35のフローチャートを参照して、サーバ3からアップデートファイルをダウンロードする再生装置1のコントローラ21の処理であるダウンロード処理1について説明する。
この処理は、光ディスク11が再生装置1に装着され、例えば、メニュー画面から、光ディスク11に記録されている英語字幕つきの映画コンテンツに対応するアラビア語テキスト字幕ファイルをダウンロードすることが指示されたときに実行される。
ステップS1において、コントローラ21の光ディスクディレクトリ管理部35は、光ディスクドライブ22を制御し、光ディスク11に記録されているStudio_idとContent_idを読み出す。図7を参照して説明したように、Studio_idとContent_idはinfo.bdmvファイルに記述されている。光ディスクディレクトリ管理部35は、光ディスク11から読み出したStudio_idとContent_idをデータ取得部33とローカルストレージディレクトリ管理部34に出力する。
ステップS2において、データ取得部33は、インターネットインタフェース24を制御し、光ディスクディレクトリ管理部35から供給されたStudio_idとContent_idとを、インターネット2を介してサーバ3に送信する。ここで送信されたStudio_idとContent_idを受信したサーバ3においては、再生装置1に装着されている光ディスク11のコンテンツが識別される。このとき、例えば、アップデート可能なファイルの一覧がサーバ3から再生装置1に通知される。データ取得部33は、サーバ3から送信され、インターネットインタフェース24により受信されたアップデート可能なファイルの一覧を取得し、メニュー画面表示制御部31に供給する。
ステップS3において、メニュー画面表示制御部31は、アップデート用のメニュー画面を表示装置に表示させ、ステップS4に進み、操作入力取得部32から供給される信号に基づいて、メニュー画面のボタンがユーザにより操作され、アップデートの内容が選択されたか否かを判定する。
ステップS4において、メニュー画面表示制御部31は、アップデートの内容が選択されたと判定するまで待機し、アップデートの内容が選択されたと判定した場合、ステップS5に進む。ユーザにより選択されたアップデートの内容を表す情報は、メニュー画面表示制御部31からデータ取得部33に出力される。
ステップS5において、データ取得部33は、インターネットインタフェース24を制御し、アップデートの内容を表す情報をサーバ3に送信させ、ユーザが指定したアップデートファイルのダウンロードを要求する。
ステップS6において、データ取得部33は、インターネットインタフェース24を制御し、サーバ3によりアップデートファイルとして用意されるテキストサブタイトルファイルをダウンロードさせ、テキストサブタイトルファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。
ステップS7において、データ取得部33は、インターネットインタフェース24を制御し、ステップS6でダウンロードしたテキストサブタイトルファイルの再生パスを表すSubPlayItemが、メインのPlayItemに付加されているPlayListをダウンロードさせ、PlayListがダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。ここでダウンロードされたPlayListのSubPlayItemにより、例えば、アラビア語の字幕を表示させるためのテキストサブタイトルファイルが参照される。
ステップS8において、データ取得部33は、インターネットインタフェース24を制御し、アップデートされたナビゲーションプログラムのファイルをダウンロードさせ、ナビゲーションプログラムがダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。
ステップS9において、ローカルストレージディレクトリ管理部34は、光ディスクディレクトリ管理部35から供給されたStudio_idとContent_idに基づいて、それらのIDで識別されるディレクトリをローカルストレージ24に作成する。これにより、例えば、図7に示されるように「xxx」のStudio_idと「yyy」のContent_idを有する光ディスク11に対応するディレクトリとして、「xxx-yyy」の名前が設定されるフォルダ(ディレクトリ)がローカルストレージ24に作成される。
ステップS10において、ローカルストレージディレクトリ管理部34は、ステップS9で作成したディレクトリに、サーバ3からダウンロードされたそれぞれのファイルを展開し、格納させる。
このような処理により、サーバ3からアップデートファイルがダウンロードされるので、例えば、映画などのコンテンツが記録された光ディスク11を購入したユーザが、光ディスク11に予め記録されていない言語の字幕を表示させるために必要なファイルを取得することができる。したがって、ユーザが所望する言語の字幕を表示させてコンテンツを視聴することが可能となる。
なお、ダウンロードされたアップデートファイルはローカルストレージ24に保存され続け、再度、同じ光ディスク11が装着された場合には、保存されているテキスト字幕ファイルが利用され、AVストリームファイルの再生が行われる。例えば、アラビア語の字幕を表示させるために必要なテキスト字幕ファイルが、上述した処理により既にダウンロードされている場合、ユーザは、光ディスク11の映画コンテンツを再生装置1で次に再生させるとき、ダウンロードなどの処理を再生装置1に再度行わせることなく、アラビア語の字幕を表示させるようにすることができる。
また、以上のようなアップデートファイルのダウンロードは、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
更に、メニュー画面から、ユーザが、複数の言語の字幕の表示に必要なテキスト字幕ファイルをダウンロードすることを指示した場合、それぞれの言語の字幕の表示に必要なテキスト字幕ファイルが個別に提供されるのではなく、1つのテキスト字幕ファイルとしてサーバ3側でまとめられ、そのまとめられたテキスト字幕ファイルが提供されるようにしてもよい。この場合、各言語のテキスト字幕ファイルの保存の位置はPlayListにより指定される。
次に、図36のフローチャートを参照して、コントローラ21の再生処理1について説明する。
上述したようにしてダウンロードされたアップデートファイルがローカルストレージ24に記録されている状態で、光ディスク11に記録されているコンテンツの再生が指示された場合、ステップS31において、光ディスクディレクトリ管理部35は、光ディスク11からStudio_idとContent_idを読み出し、読み出したStudio_idとContent_idをローカルストレージディレクトリ管理部34に出力する。
ステップS32において、ローカルストレージディレクトリ管理部34は、光ディスクディレクトリ管理部35から供給されたStudio_idとContent_idに基づいて、光ディスク11のファイルシステムに対応する、ローカルストレージ24のファイルシステムを検索し、ファイルシステムマージ処理部36に供給する。上述したように、光ディスク11のファイルシステムに対応するファイルシステムは、ローカルストレージ24において、Studio_idとContent_idを含む名前が設定されたディレクトリに格納されている(図7)。
このとき、光ディスクディレクトリ管理部35からは、光ディスク11のファイルシステムがファイルシステムマージ処理部36に出力される。
ステップS33において、ファイルシステムマージ処理部36は、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとを、図7および図8を参照して説明したようにしてマージし、第1の仮想ファイルシステムを生成する。生成された第1の仮想ファイルシステムは再生制御部37に出力され、AVストリームファイルの再生に用いられる。
ステップS34において、再生制御部37は、供給されてきた第1の仮想ファイルシステムからナビゲーションプログラムを指定し、実行する。したがって、図8に示されるように、アップデートされたナビゲーションプログラムが第1の仮想ファイルシステムにある場合、そのナビゲーションプログラム(ローカルストレージ24に記録されているナビゲーションプログラム)が実行される。
ステップS35において、再生制御部37は、ナビゲーションプログラムが再生区間として指定するPlayListとSubPlayItemを取得し、ステップS36に進み、ローカルストレージディレクトリ管理部34および光ディスクディレクトリ管理部35を制御して、取得したPlayListとSubPlayItemが参照するファイル(AVファイル、テキスト字幕ファイル、フォントファイルなど)を読み出させて、デコーダ26に供給させる。ここでは、PlayListやSubPlayItemにより表されるタイムスタンプがClip informationによりアドレスに変換され、AVストリームなどに対するアクセスが行われる。
すなわち、再生制御部37は、PlayListやSubPlayItemが参照するAVストリームファイルがローカルストレージ24に存在する場合は、ローカルストレージ24からそのAVストリームファイルを読み出し、存在しない場合、光ディスク11からAVストリームファイルを読み出す。
例えば、再生制御部37が、図8のファイルシステムに従って、ローカルストレージディレクトリ管理部34および光ディスクディレクトリ管理部35を制御して、AVストリームの読み出しを行わせている場合、光ディスク11に予め用意されている「01000.m2ts」のファイル名が設定されているAVストリームファイルや、「02000.m2ts」のファイル名が設定されているAVストリームファイルについては光ディスク11からの読み出しが行われ、ダウンロードにより追加された「04000.m2ts」のファイル名が設定されているAVストリームファイルについては、ローカルストレージ24からの読み出しが行われる。
ステップS37において、図37を用いて後述するコンテンツ再生処理1が実行されて、読み出したAVストリームファイルやテキスト字幕ストリームファイルなどがデコードされ、映像や音声、または字幕が表示装置から出力されて、処理が終了される。
以上のように、第1の仮想ファイルシステムが生成され、コンテンツの再生時に利用されることにより、例えば、SubPlayItemが参照するテキスト字幕ファイルのデータが、AVストリームと同時に読み出されて再生される。
次に、図37のフローチャートを参照して、図36のステップS37において実行される、コンテンツ再生処理1について説明する。
ステップS61において、再生制御部37は、デコーダ26を制御して、PlayItemにより指定されるAVストリームデータを再生させる。
ステップS62において、操作入力取得部32は、字幕データの表示を指令する操作入力を受けたか否かを判断する。ステップS62において、字幕データの表示を指令する操作入力を受けていないと判断された場合、処理は、後述するステップS68に進む。
ステップS62において、字幕データの表示を指令する操作入力を受けたと判断された場合、ステップS63において、操作入力取得部32は、ユーザの操作入力に対応する信号をメニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、表示装置に、表示可能な字幕データの一覧メニューを表示させる。
ステップS64において、操作入力取得部32は、表示させる字幕データの言語を指定する操作入力を受けたか否かを判断する。ステップS64において、表示させる字幕データの言語を指定する操作入力を受けていないと判断された場合、処理は、ステップS63に戻り、それ以降の処理が繰り返される。
ステップS64において、表示させる字幕データの言語を指定する操作入力を受けたと判断された場合、ステップS65において、操作入力取得部32は、ユーザの操作入力に対応する信号を再生制御部37に供給する。再生制御部37は、ローカルストレージディレクトリ管理部34を制御し、ユーザの操作入力に基づいて指定されるSubPlayItemにより参照されるテキストサブタイトルデータを読み出させて、デコーダ26のストレージデータ取得部91に供給させるとともに、必要に応じて、ユーザに指定されたフォントに対応するフォントデータを読み出させて、デコーダ26のストレージデータ取得部91に供給させる。
ステップS66において、デコーダ26により、図38および図39を用いて後述する字幕表示処理1が実行される。
ステップS67において、操作入力取得部32は、表示させる字幕データの言語の変更を指令する操作入力を受けたか否かを判断する。ステップS67において、表示させる字幕データの言語の変更を指令する操作入力を受けたと判断された場合、処理は、ステップS65に戻り、それ以降の処理が繰り返される。
ステップS62において、字幕データの表示を指令する操作入力を受けていないと判断された場合、または、ステップS67において、表示させる字幕データの言語の変更を指令する操作入力を受けていないと判断された場合、ステップS68において、操作入力取得部32は、コンテンツの再生の終了を指令する操作入力を受けたか、または、再生中のAVストリームデータが終了したか否かを判断する。
ステップS68において、コンテンツの再生の終了を指令する操作入力を受けず、かつ、再生中のAVストリームデータが終了していないと判断された場合、ステップS69において、操作入力取得部32は、字幕の表示を中止させる操作入力を受けたか否かを判断する。
ステップS69において、字幕の表示を中止させる操作入力を受けていないと判断された場合、処理は、ステップS66に戻り、それ以降の処理が繰り返される。ステップS69において、字幕の表示を中止させる操作入力を受けたと判断された場合、処理は、ステップS61に戻り、それ以降の処理が繰り返される。
ステップS68において、コンテンツの再生の終了を指令する操作入力を受けたか、再生中のAVストリームデータが終了したと判断された場合、処理が終了される。
このような処理により、予め光ディスク11に記録されている、または、サーバ3からダウンロードされ、ローカルストレージ24に記憶されているテキスト字幕ファイルが用いられて、ユーザが所望した言語の字幕がコンテンツの映像および音声とともに表示され、ユーザの操作入力に基づいて、表示される字幕の言語を変更するために、読み出されるテキスト字幕ファイルが変更される。
次に、図38および図39のフローチャートを参照して、図37のステップS66において実行される字幕表示処理1について説明する。
ステップS91において、デコーダ26のテキスト字幕処理部92のテキストデータデコーダ121は、ストレージデータ取得部91により取得されたテキストサブタイトルデータをデコードする。
ステップS92において、テキスト字幕処理部92のテキストデータデコーダ121は、デコードされたテキストサブタイトルデータに含まれる文字オブジェクトをテキスト字幕処理部92の文字オブジェクトバッファ122に供給するので、文字オブジェクトバッファ122に、文字オブジェクトがバッファリングされる。
ステップS93において、テキストデータデコーダ121は、デコードされたテキストサブタイトルデータに含まれる属性データをテキスト字幕処理部92のアトリビュートデータバッファ123に供給するので、アトリビュートデータバッファ123に属性データがバッファリングされる。
ステップS94において、制御部81は、再生制御部37(コントローラ21)から、例えば、フォントサイズなどの字幕の属性の変更を指令する操作入力を示す信号の入力を受けたか否かを判断する。
ステップS94において、字幕の属性の変更を指令する操作入力を示す信号の入力を受けたと判断された場合、ステップS95において、制御部81は、アトリビュートデータバッファ123に保持されている属性データを変更する。
ステップS94において、字幕の属性の変更を指令する操作入力を示す信号の入力を受けていないと判断された場合、または、ステップS95の処理の終了後、ステップS96において、テキスト字幕処理部92のフォントラスタライザ124は、文字オブジェクトバッファ122およびアトリビュートデータバッファ123から文字オブジェクトおよび属性データを取得する。
ステップS97において、制御部81は、再生制御部37(コントローラ21)からフォントタイプの変更を指令する操作入力を示す信号の入力を受けたか否かを判断する。
ステップS97において、フォントタイプの変更を指令する操作入力を示す信号の入力を受けたと判断された場合、再生制御部37の制御を受けたローカルストレージディレクトリ管理部34(コントローラ21)の処理により、操作入力に基づいて、異なるフォントデータがローカルストレージ24から読み出されるので、ステップS98において、テキスト字幕処理部92のフォントラスタライザ124は、操作入力に基づいた異なるフォントデータを取得する。
ステップS97において、フォントタイプの変更を指令する操作入力を示す信号の入力を受けていないと判断された場合、または、ステップS98の処理の終了後、ステップS99において、フォントラスタライザ124は、ステップS96において取得された属性およびブックマークバッファ125を参照し、ラスタライズしようとしている字幕データは、ブックマークされ、すでにブックマークバッファ125にバッファリングされている字幕データであるか否かを判断する。
ステップS99において、ブックマークされ、バッファリングされている字幕データであると判断された場合、ステップS100において、フォントラスタライザ124は、ブックマークバッファ125から、保存されているブックマーク対象の字幕画像データ(ラスタデータ)を読み出して出力し、処理は、ステップS104に進む。
ステップS99において、すでにブックマークされている字幕データではないと判断された場合、ステップS101において、フォントラスタライザ124は、取得された文字オブジェクトおよび属性データを基に、ラスタライズを実行して字幕グラフィックスプレーン処理部93に出力する。字幕グラフィックスプレーン処理部93は、供給されたラスタデータを基に、字幕グラフィックスプレーンを生成し、合成処理部94に供給する。
ステップS102において、フォントラスタライザ124は、ステップS101においてラスタライズした字幕データの属性データを基に、この属性データには、新たなブックマークが記載されているか否かを判断する。
ステップS102において、ブックマークが記載されていると判断された場合、ステップS103において、フォントラスタライザ124は、ラスタライズされた字幕画像データをブックマークバッファ125に保存する。
ステップS100の処理の終了後、ステップS102において、ブックマークが記載されていないと判断された場合、または、ステップS103の処理の終了後、ステップS104において、合成処理部94は、供給された字幕画像データを映像データと合成して出力し、処理は、図37のステップS67に進む。
このような処理により、ユーザの所望する言語の字幕データが、ユーザの所望する属性で、ユーザの所望するフォントで表示されるように、テキスト字幕ファイルおよびフォントファイルのデータの読み出しが制御されて、必要に応じてバッファリングされている属性データが変更され、ラスタライズされる。
ところで、本開示を適用した再生装置においては、上述した場合に加えて、以下に示すような方法で、光ディスクに記録されているコンテンツと、ローカルストレージに記録されているコンテンツを関連付けて再生することができる。以下、光ディスクに記録されているコンテンツと、ローカルストレージに記録されているコンテンツを関連付けて再生するための第2の実施の形態について説明する。
図40は、本開示を適用した第2の実施の形態における再生装置181の構成例を示すブロック図である。
なお、図40の再生装置181においては、図1を用いて説明した再生装置1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図40の再生装置181は、コントローラ21に代わって、コントローラ191が設けられ、デコーダ26に代わって、デコーダ192が設けられている以外は、基本的に、図1を用いて説明した再生装置1と同様の構成を有するものである。また、再生装置181は、図42を用いて後述するファイル構造を有する光ディスク193に記録されたデータを読み込み、AVストリーム、または、テキストデータをデコードして再生する。
コントローラ191は、予め用意されている制御プログラムを実行して、再生装置181の全体の動作を制御したり、または、光ディスクドライブ22を制御して光ディスク193に記録されている、複数のコマンドで構成されているMovieObject(ムービーオブジェクト:詳細は後述する)を読み出し、メモリ23に展開してコマンドを実行することで、光ディス11およびローカルストレージ24に記憶されているデータの再生動作を制御する。例えば、コントローラ191は、光ディスク193が装着されたとき、所定のメニュー画面を外部の表示装置に表示させることができる。
デコーダ192は、コントローラ191の制御に基づいて、光ディスクドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、デコーダ192によりデコードされた信号に基づいて、例えば、光ディスク193に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。
図41は、図40のコントローラ191の機能構成例を示すブロック図である。
図41の各構成は、予め用意されている制御プログラムがコントローラ191により実行されることにより、または、光ディスク193に記録されているMovieObjectを構成するコマンドがコントローラ191により実行されることにより実現される。
なお、図41に示される機能構成図においては、図6を用いて説明した場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図41に示されるコントローラ191の機能構成は、ローカルストレージディレクトリ管理部34に代わって、ローカルストレージディレクトリ管理部201が設けられ、光ディスクディレクトリ管理部35に代わって、光ディスクディレクトリ管理部202が設けられ、ファイルシステムマージ処理部36に代わって、ファイルシステムマージ処理部203が設けられ、再生制御部37に代わって、再生制御部204が設けられている以外は、図6を用いて説明したコントローラ21の機能構成と基本的に同一である。
ローカルストレージディレクトリ管理部201は、ローカルストレージ24のディレクトリを管理し、ローカルストレージ24に対するデータの書き込み、および、ローカルストレージ24からのデータの読み出しを制御する。例えば、ローカルストレージディレクトリ管理部201の制御によりローカルストレージ24から読み出されたPlayListは、メモリ23に出力され、ローカルストレージ24から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ192に出力される。また、ローカルストレージディレクトリ管理部201は、後述するように、光ディスク193のファイルシステムと、ローカルストレージ24のファイルシステムとのマージがファイルシステムマージ処理部203により行われて、後述する第2の仮想ファイルシステムが生成される場合、ローカルストレージ24のファイルシステムに関する情報をファイルシステムマージ処理部203に出力する。
また、ローカルストレージディレクトリ管理部201は、データ取得部33により、ユーザが指示したアップデートファイルがサーバ3からダウンロードされて取得され、取得されたアップデートファイルが、既に存在するPlayListに対応するアップデートファイルである場合、取得されたアップデートファイルを参照して、既にローカルストレージ24に記録されているデータの更新手続きを実行する。
光ディスクディレクトリ管理部202は、光ディスク193のディレクトリを管理し、光ディスク193からの各データの読み出しを制御する。光ディスク193には、ユーザなどにより書き換えることができないセキュアな識別情報であるauthor_id(または、第1の実施の形態におけるStudio_id)と、disc_id(または、第1の実施の形態におけるContent_id)とが電子的なデータとして、または、物理的にピットによって記載されており、光ディスクディレクトリ管理部202の制御により、光ディスク193から読み出されたauthor_idとdisc_idとは、ローカルストレージディレクトリ管理部201に出力される。また、光ディスクディレクトリ管理部202の制御により、光ディスク193から読み出されたPlayListは、メモリ23に出力され、光ディスク193から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ192に出力される。また、光ディスクディレクトリ管理部202は、後述するように、光ディスク193のファイルシステムと、ローカルストレージ24のファイルシステムとのマージがファイルシステムマージ処理部203により行われて、後述する第2の仮想ファイルシステムが生成される場合、光ディスク193のファイルシステムに関する情報をファイルシステムマージ処理部203に出力する。
ファイルシステムマージ処理部203は、光ディスクディレクトリ管理部202から供給される光ディスク193のファイルシステムと、ローカルストレージディレクトリ管理部201から供給されるローカルストレージ24のファイルシステムをマージし、1つの仮想的なファイルシステムを生成する。ファイルシステムマージ処理部203は、2つのファイルシステムをマージすることで生成した仮想的なファイルシステムを再生制御部204に出力する。以下、第2の実施の形態において、ファイルシステムマージ処理部203により生成される仮想的なファイルシステムを、第2の仮想ファイルシステムと称する。
再生制御部204は、ファイルシステムマージ処理部203から供給される第2の仮想ファイルシステムで指定されるMovieObjectに含まれるコマンドを実行することにより、コンテンツの再生を制御する。具体的には、再生制御部204はメモリ23に供給され、記憶されたPlayListを参照し、ローカルストレージディレクトリ管理部201または光ディスクディレクトリ管理部202を制御して、光ディスク193またはローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータを読み出させ、図40のデコーダ192を制御して、光ディスク193またはローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータのデコード(再生)を行わせる。
なお、第2の実施の形態においても、本開示を適用した再生装置181に装着される光ディスク193のアプリケーションフォーマットの例は、PlayListLayerおよびClipLayerにおいては、図2および図3を用いて説明した光ディスク11における場合と、基本的に同様であるので、その説明は省略する。
第2の実施の形態においても、本開示を適用した再生装置181は、光ディスク193に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けて再生することができるという、上述した第1の実施の形態における場合と同様の作用効果を奏する。したがって、例えば、光ディスク193に記録されている、PlayListのPlayItemが参照するClip1のAVストリームは、映画コンテンツの映像を表示させ、対応する音声を再生させるためのストリームであり、PlayListのSubPlayItemが参照するClip2の字幕関連情報1は、映像の表示に併せて英語の字幕を表示させるためのテキスト字幕ファイルであるとき、ユーザは、再生装置181に、光ディスク193に記録されている映画に対応する所望の言語のテキスト字幕ファイルをサーバ3からネットワーク2経由でダウンロード(または、リムーバブルメディア28を用いて取得)させ、光ディスク193に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けて再生することができる。
すなわち、ユーザが、光ディスク193に予め記録されているPlayListに対応する、アラビア語によるテキスト字幕ファイルのダウンロードを指示した場合、再生装置181においては、ネットワーク2を介して、サーバ3に対するアクセスが行われ、光ディスク193に記録されているコンテンツをアップデートするものとして、そのサーバ3に用意されているファイルのダウンロードが行われる。そして、再生装置181は、光ディスク193に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けるとともに、ClipAVストリームと、テキスト字幕ストリームとを、同期させて再生することができる。
図42は、光ディスク193のファイルシステムの例を示す図である。図42に示されるように、光ディスク193のファイルシステムはディレクトリ構造を有している。
光ディスク193の「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「MovieObject.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、MovieObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Indexファイルは、光ディスク193を再生するメニューに関する情報を含む。再生装置181は、例えば、光ディスク193のコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置181はIndexファイルに設定されているMovieObjectのコマンドを実行する。
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、光ディスク193に記録されているPlayListの再生を制御するコマンドを含み、例えば、再生装置181は、光ディスク193に記録されているMovieObjectの中から1つを選択して、実行することにより、光ディスク193に記録されているコンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、光ディスク193に記録されているファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、Clip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図42の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音のファイルが格納されている。
また、光ディスク193には、製作会社や映画の配給会社などの光ディスク193のコンテンツ製作元であるタイトルオーサを識別するために各タイトルオーサに割り当てられた識別子であるauthor_id(または、第1の実施の形態におけるStudio_id)、および、author_idに示されるタイトルオーサにおいて製作された光ディスク193の種類を識別するために割り当てられた識別子であるdisc_id(または、第1の実施の形態におけるContent_id)が、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
また、本開示の第2の実施の形態においては、字幕データを格納したテキスト字幕ファイルおよびレンダリングに必要となるフォントファイルを指定した、SubPathおよびSubPlayItemを定義しているPlayListファイルとClip Informationファイルとが、新たにダウンロードされることで、Clip AVストリームとテキスト字幕との同期が実現されるようになされている。ダウンロードされる一組のアーカイブファイルには、図43に示されるように、PlayListファイル、Clip Informationファイル、テキスト字幕ストリームファイル、および、フォントファイルが、必須で含まれる。
次に、本開示の第2の実施の形態において追加して配布される対象となるデータのアーカイブを図44に示す
図44に示されるように、ユーザに新たに配布されるアーカイブファイルは、再生装置181におけるファイル追加または更新手続きのために、メタデータが付加された構造となっている。
compression_typeの8ビットのフィールドは、FileArchive()内データの圧縮方式を指定する。compression_typeの8ビットに0が指定された場合、FileArchive()内のデータは、非圧縮形式であるものとする。encryption_typeの8ビットのフィールドは、FileArchive()内データのスクランブル方式(暗号化方式)を指定する。encryption_typeの8ビットのフィールドに0が指定された場合、FileArchive()内のデータは、ノンスクランブル形式(平文形式)であるものとする。なお、FileArchive()内データのスクランブルと圧縮の順序は、圧縮処理が先に行われて、その後、スクランブル処理が行われるものとする。
PlayList_file_nameの8×5ビットのフィールドは、後に続くPlayListファイルのファイル名称を指定する。ファイル名称の符号化方式は、ISO/IEC646規格に従う。PlayList_file_sizeの32ビットのフィールドは、次に続くPlayListファイルのバイト単位でのサイズを指定する。PlayList_file_sizeのフィールドには、0を指定してはならない。
PlayList_fileは、PlayListファイルをバイトシーケンスとして格納する。
number_of_Filesの16ビットのフィールドは、ファイル総数を指定する。number_of_Filesフィールドには0を指定してはならない。また、number_of_Filesフィールドで指定したファイル総数は、直前のPlayList_file中のSubPlayItem内で定義されているSubClip_entryの総数と一致しなければならない。
そして、メタデータには、author_id、disc_id、title_id、version、operation_type、display_name、および、permissionが含まれている。
author_idは、タイトルオーサを特定するための識別子を指定する8ビットのフィールドである。title_idは、タイトルを特定するための識別子を指定する8ビットのフィールドである。disc_idは、ディスクを特定するための識別子を指定する8ビットのフィールドである。versionは、アーカイブ内ファイルの履歴管理のためのバージョン情報を指定する8ビットのフィールドである。
operation_typeは、アーカイブ内ファイルの更新方法を指定する8ビットのフィールドである。operation_typeに指定可能な値と、ファイルの更新方法の具体例については、後述する。
display_nameは、このファイルに対応してGUIにおいて表示される名前を指定する8×128ビットのフィールドである。図1を用いて説明したコントローラ191は、所定のメニュー画面を外部の表示装置に表示させることができる。例えば、ユーザに、ファイルを選択させる操作を行わせるために所定のメニュー画面を外部の表示装置に表示させる場合、メニュー画面に表示されるのがアーカイブ内で定義されているファイル名称では、ユーザはファイルの内容を特定することができないため、所望のファイルを選択するのが困難となる。そのため、display_nameフィールドには、メニュー画面に表示させるための、ユーザがファイルの内容を特定し易い名前を示す情報が記載される。display_nameフィールドに格納されるデータの符号化方式は、ISO/IEC 10646-1規格に従うものとする。
permissionは、このメタデータを付随しているファイルの属性を示すものであり、具体的には、対応するファイルをユーザに対して可視属性にしてよいか、不可視属性にしておくかなどの許認可情報を指定する8ビットのフィールドである。permissionに指定可能な値については、後述する。
そして、clip_information_file_nameは、後に続くClip Informationファイルのファイル名称を指定する8×5ビットのフィールドである。clip_information_file_nameに記載されるファイル名称の符号化方式は、ISO/IEC646規格に従う。
clip_information_file_sizeは、次に続くClip Informationファイルのバイト単位でのサイズを指定する32ビットのフィールドである。clip_information_file_sizeフィールドには0を指定してはならない。
clip_information_fileは、Clip Informationファイルをバイトシーケンスとして格納する。
text_subtitle_file_nameは、後に続くテキスト字幕ストリームファイルのファイル名称を指定する8×5ビットのフィールドである。text_subtitle_file_nameに記載されるファイル名称の符号化方式は、ISO/IEC646規格に従う。
text_subtitle_file_sizeは、次に続くテキスト字幕ストリームファイルのバイト単位でのサイズを指定する32ビットのフィールドである。text_subtitle_file_sizeフィールドには0を指定してはならない。
text_subtitle_fileは、テキスト字幕ストリームファイルをバイトシーケンスとして格納する。テキスト字幕ストリームが格納されるsubtitle_fileの構文については、図54を用いて後述する。また、テキスト字幕ストリームが格納されるコンテナファイルの構造については、図58を用いて後述する。
font_file_nameは、後に続くフォントファイルのファイル名称を指定する8×5ビットのフィールドである。font_file_nameに記載されるファイル名称の符号化方式は、ISO/IEC646規格に従う。
font_file_sizeは、次に続くフォントファイルのバイト単位でのサイズを指定する32ビットのフィールドである。font_file_sizeフィールドには0を指定してはならない。
font_fileは、フォントファイルをバイトシーケンスとして格納する。
追加されて配布されるアップデートファイルのデータに含まれるPlayListは、MainPathおよびSubPathを含む。図45は、SubPathのデータ構造を示す図である。まず、図45の左側に示されるSubPathの最上位層のデータ構造について説明する。
SubPath_typeは、SubPathのアプリケーション種類を示す。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。is_repeat_SubPathは、SubPathの再生方法を示し、MainPathの再生の間にSub Pathの再生を繰り返し行うか、またはSubPathの再生を1回だけ行うかを示すものである。number_of_SubPlayItemsは、SubPathに含まれるSubPlayItemの数(エントリー数)を示す。その後、number_of_SubPlayItemsに含まれる数のSubPlayItemが含まれる。
次に、図45の中央に示されるSubPlayItemのデータ構造について説明する。
Clip_Information_file_nameは、SubPlayItemが参照するサブClipに含まれるClip Informationファイルのファイル名を示す。Clip_codec_identifierは、SubPlayItemが参照するサブClipのコーデック方式を示す。is_multi_Clip_entriesは、このSubPlayItemが複数のサブClipを参照するか否かを示すフラグである。ref_to_STC_idは、STC(System Time Clock)不連続点(システムタイムベースの不連続点)に関する情報を示す。
SubPlayItem_IN_timeとSubPlayItem_OUT_timeは、SubPlayItemが参照するサブClipに含まれるサブストリームの再生区間を示す。sync_PlayItem_idとsync_start_PTS_of_PlayItemは、Main Pathの時間軸上でSubPlayItemが再生を開始する時刻を指定するために用いられる。具体的には、sync_PlayItem_idの値と同じ値のPlayItem_idを持つPlayItemの時間軸上において、sync_start_PTS_of_PlayItemで指定される時刻に、このSubPlayItemの再生が開始される。
number_of_Clip_entriesは、SubPlayItemが参照するサブClipの数を示している。その後、number_of_Clip_entriesにより示される数だけのSubClip_entryが含まれる。
次に、図45の右側に示されるSubClip_entryのデータ構造について説明する。
Clip_Information_file_nameは、SubPlayItemが参照するサブClipに含まれるClip Informationファイルのファイル名を示す。Clip_codec_identifierは、SubPlayItemが参照するサブClipのコーデック方式を示す。ref_to_STC_idは、STC不連続点(システムタイムベースの不連続点)に関する情報を示す。
次に、図46に、図44のメタデータに含まれるoperation_typeに指定可能な値の一覧を示す。
図46に示されるように、operation_typeの8ビットのフィールドに、0x01が記載されていたとき、アーカイブ内ファイルの更新方法は、PlayListの交換である。すなわち、operation_typeの8ビットのフィールドに、0x01が記載されているアップデートファイルがダウンロードされた場合、このアップデートファイルを用いてマージされて作成される第2の仮想ファイルシステムにおいては、ダウンロードされてローカルストレージ24に記録されているPlayListがそのままの状態で参照され、光ディスク193のPlayListは全く参照されない。
また、operation_typeの8ビットのフィールドに、0x02が記載されていたとき、ダウンロードされたファイルから、SubPath要素が抽出され、光ディスク193に記録されているSubPath要素に、抽出されたSubPath要素が加えられるようにファイルシステムがマージされて更新される(第2の仮想的なファイルシステムが生成される)。
例えば、operation_typeの8ビットのフィールドに、0x02が記載され、図47に示されるように、光ディスク193にはSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、例えば、副音声に対応するAudioストリーム#1ファイルが記録され、サーバ3からダウンロードしたコンテンツパッケージには、SubPath#2を有するPlayList#1ファイル、および、テキスト字幕ストリーム#1ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#2が抽出されて、抽出されたSubPath#2が、光ディスク193から読み出された更新元のPlayList#1ファイルに追加された状態にファイルシステムが更新される。
すなわち、図48に示されるように、PlayItemから構成されるMainPath、および、SubPlayItemから構成されるSubPathを有するアップデート前の、すなわち、光ディスク193のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItemが参照し、Clip AVストリーム1と同期して再生される副音声のデータであるAudioストリーム#1が再生されるようになされている。この光ディスク193に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、ClipAVストリーム#1に同期して再生され、かつ、独立して再生区間が設定可能な2つ目のSubPlayItemがSub Pathに追加されるので、PlayItemが参照するClipAVストリーム#1、および、1つ目のSubPlayItemが参照し、ClipAVストリーム#1と同期して再生される副音声のデータであるAudioストリーム#1が再生されるのみならず、Audioストリーム#1とは独立して再生区間が設定可能なテキスト字幕ストリーム#1が再生可能なようになされている。
また、operation_typeの8ビットのフィールドに、0x03が記載されていたとき、ダウンロードされたファイルから、SubPlayItem要素が抽出され、光ディスク193に記録されているSubPlayItem要素に、抽出されたSubPlayItem要素が加えられるようにファイルシステムがマージされて更新される(第2の仮想的なファイルシステムが生成される)。
例えば、operation_typeの8ビットのフィールドに、0x03が記載され、図49に示されるように、光ディスク193にはSubPlayItem#1から構成されるSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、例えば、副音声に対応するAudioストリーム#1ファイルが記録され、サーバ3からダウンロードしたコンテンツパッケージには、SubPlayItem#2から構成されるSubPath#1を有するPlayList#1ファイル、および、テキスト字幕ストリーム#2ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#2が抽出されて、抽出されたSubPlayItem#2が、光ディスク193から読み出された更新元のPlayList#1ファイルのSubPath#1に追加された状態に、ファイルシステムが更新される。
すなわち、図50に示されるように、PlayItemから構成されるMainPath、および、SubPlayItem#1(図中SPI1と記載)から構成されるSub Pathを有するアップデート前のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム#1と同期して所定の第1の区間に再生される副音声のデータであるAudioストリーム#1が再生されるようになされている。この光ディスク193に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム1と同期して所定の第1の区間に再生される再生される副音声のデータであるAudioストリーム#1が再生されるのみならず、SubPlayItem#1と同一のSubPathに含まれるSubPlayItem#2(図中SPI2と記載)が追加されるので、ClipAVストリーム#1と同期して、所定の第2の区間にテキスト字幕ストリーム#1が再生可能なようになされている。
そして、operation_typeの8ビットのフィールドに、0x04が記載されていたとき、ダウンロードされたファイルから、SubClip_entry要素が抽出され、光ディスク193に記録されているSubClip_entry要素に、抽出されたSubClip_entry要素が加えられるようにファイルシステムがマージされて更新される(第2の仮想的なファイルシステムが生成される)。
例えば、operation_typeの8ビットのフィールドに、0x04が記載され、図51に示されるように、光ディスク193にはClip#1が対応付けられているSubPlayItem#1から構成されるSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、例えば、第1の言語の字幕に対応するテキスト字幕ストリーム#1ファイルが記録され、サーバ3からダウンロードしたコンテンツパッケージには、Clip#2が対応付けられているSubPlayItem#1から構成されるSubPath#1を有するPlayList#1ファイル、および、第2の言語の字幕に対応するテキスト字幕ストリーム#2ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#1のClip#2が抽出されて、抽出されたClip#2が、光ディスク193から読み出された更新元のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#1に追加された状態にファイルシステムが更新される。
すなわち、図52に示されるように、PlayItemから構成されるMainPath、および、SubPlayItemから構成されるSubPathを有するアップデート前のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム#1と同期して、第1の言語の字幕に対応するテキスト字幕ストリーム#1が再生されるようになされている。この光ディスク193に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItemが参照し、ClipAVストリーム#1と同期して再生される第1の言語の字幕に対応するテキスト字幕ストリーム#1が再生されるのみならず、SubPathを構成するSubPlayItemに、更に、Clip#2が追加されるので、ClipAVストリーム#1と同期して、SubPlayItemが参照する、第2の言語に対応するテキスト字幕ストリーム#2が、更に再生可能なようになされている。
図53に、図44のメタデータに含まれるpermissionに指定可能な値の一覧を示す。
図53に示されるように、permissionの8ビットのフィールドに、0x00が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して不可視属性であり、permissionの8ビットのフィールドに、0x01が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して可視属性であり、permissionの8ビットのフィールドに、0x03が記載されている場合、このメタデータを付随しているファイルの属性は、上書き禁止属性である。
また、図44を用いて説明したように、subtitle_fileのフィールドには、テキスト字幕ストリームファイルがバイトシーケンスとして格納されている。テキスト字幕ファイルは、図54に示される構文に従うものとする。
基本的に、第2の実施の形態におけるテキスト字幕ファイルの構文は、図12を用いて説明した第2の実施の形態における場合と、基本的に同一である部分が多いが、図54に示される、第2の実施の形態におけるテキスト字幕ファイルの構文は、図12を用いて説明した場合と比較して、メタデータに含まれるversion(バージョン)情報が省略され、start_PTSおよびend_PTSの前が、データ境界を調整するための8ビットのパディングビット(reserved)で区切られ、字幕データを指定する情報であるsubtitle_dataが、バイトシーケンスで格納されるようになされている。
すなわち、markup_typeは、マークアップの形式を指定する8ビットの情報である。subtitle_countは、字幕データの総数を指定する32ビットの情報である。(subtitle_countは、改行コードの総数ではない。)reservedは、データ境界を調整するための8ビットのパディングビットである。start_PTSは、字幕データの表示開始時刻を、PlayListの開始時刻を0とした時間軸でのPTS(Presentation Time Stamp)で指定する33ビットの情報である。end_PTSは、字幕データの表示終了時刻を、PlayListの開始時刻を0とした時間軸でのPTSで指定する33ビットの情報である。PTSには、90kHzで計測された値を使用する。start_PTSおよびend_PTSにおいては、PTSには、90kHzで計測された値が使用される。
subtitle_data_lengthは、subtitle_dataのバイト数を指定する(字幕の文字数ではない)32ビットの情報である。subtitle_dataは、字幕データを指定する情報であり、バイトシーケンスとして格納されている。
また、第2の実施の形態においても、字幕データは、字幕を構成する文字そのものを示す「文字オブジェクト」と「属性データ(アトリビュート)」から構成され、字幕データの属性データには、制御文字による属性設定と、マークアップによるインライン属性設定の2つの属性設定方法がある。
制御文字による属性設定は、図13および図14を用いて説明した場合と同様である。また、マークアップによるインライン属性設定においても、マークアップの形式は、TLV(Type-Length-Value)エンコード形式でマークアップする場合と、タグ付き言語の要素および属性によりマークアップする場合との2通りがあり、図15を用いて説明した場合と同様に、マークアップ形式識別子が0x00であるとき、マークアップの形式は、TLVエンコード形式であると定義され、マークアップ形式識別子が0x01であるとき、マークアップの形式は、タグ付き言語であると定義される。
まず、TLVエンコード方式による属性指定が行われる場合について説明する。TLVエンコード方式による属性指定の場合、字幕データの文字符号化方式は、図11を用いて説明した、SubPlayItem中のcharacter_code_idの指定に従うものとする。
図55を用いて、TLVエンコード方式による属性指定の場合の、subtitle_data()のデータ構造について説明する。
escape_codeの8ビットのフィールドは、図17を用いて説明したように、後に属性が記述されていることを示すエスケープコード0x1Bを指定する。data_typeの8ビットのフィールドは、属性種別を指定する。data_value_lengthの16ビットのフィールドは、後に続く属性データのバイト数を指定する。data_valueは、属性データ、または、文字オブジェクトのバイトシーケンスを指定する。
図56に、data_typeとして指定可能な属性を示す。
subtitle_data()のdata_typeの8ビットのフィールドに0x01が記載されていたとき、記載されている属性の種別は、字幕データとして使用される文字列を指定する字幕文字列の設定である。字幕データは、SubPlayItem()中のcharacter_code_idフィールドで指定された符号化方式で符号化されていなければならない。
subtitle_data()のdata_typeの8ビットのフィールドに0x02が記載されていたとき、記載されている属性の種別は、インデックスデータと代表色データとの変換テーブルであるCLUT(Color Look Up Table)の設定である。CLUTは、図63を用いて後述する字幕グラフィックスプレーン処理部93に記憶される変換テーブルである。subtitle_data()のdata_typeに記載されている属性種別がCLUT設定であるときの、data_valueのデータ構造は、図19を用いて説明した場合と同様である。subtitle_data()のdata_typeの8ビットのフィールドに0x03が記載されていたとき、記載されている属性の種別は、リージョン原点の指定である。subtitle_data()のdata_typeにおいて、記載されている属性種別がリージョン原点指定であるときのdata_valueのデータ構造は、図20を用いて説明した場合と同様である。subtitle_data()のdata_typeの8ビットのフィールドに0x04が記載されていたとき、記載されている属性の種別は、行間(Line Space)の指定である。
subtitle_data()のdata_typeの8ビットのフィールドに0x05が記載されていたとき、記載されている属性の種別は、レンダリング方向の指定である。subtitle_data()のdata_typeにおいて、記載されている属性種別がレンダリング方向指定であるとき、data_valueに記載されるコードは、図21を用いて説明した場合と同様である。subtitle_data()のdata_typeの8ビットのフィールドに0x06が記載されていたとき、記載されている属性の種別は、フォント色の指定である。デフォルトは、「0」であるものとしてもよい。subtitle_data()のdata_typeの8ビットのフィールドに0x07が記載されていたとき、記載されている属性の種別は、背景色の指定である。指定された背景色で塗りつぶされる領域は、リージョン単位である。デフォルトは、無指定(透過)であるものとしてもよい。
subtitle_data()のdata_typeの8ビットのフィールドに0x08が記載されていたとき、記載されている属性の種別は、フォントスタイルの指定である。subtitle_data()のdata_typeにおいて、記載されている属性種別がフォントスタイルの指定であるとき、data_valueには、図22を用いて説明したコードのうちのいずれかが記載されて、フォントのスタイルが指定される。なお、フォントのスタイルのデフォルトは、「標準」とするようにしてもよい。subtitle_data()のdata_typeの8ビットのフィールドに0x09が記載されていたとき、記載されている属性の種別は、フォントサイズの指定である。subtitle_data()のdata_typeにおいて、記載されている属性種別がフォントサイズの指定であるとき、data_valueには、フォントサイズを示す8以上72以下の値が指定される。なお、フォントサイズを指定する値のデフォルトは、「32」とするようにしてもよい。subtitle_data()のdata_typeの8ビットのフィールドに0x0Aが記載されていたとき、記載されている属性の種別は、フォント回転角の指定である。subtitle_data()のdata_typeにおいて、記載されている属性種別がフォント回転角の指定であるとき、data_valueには、フォント回転角に対応する0以上360以下の値が指定される。なお、回転方向は、例えば、反時計回りが正方向され、デフォルトは、「0」とするようにしてもよい。
subtitle_data()のdata_typeの8ビットのフィールドに0x0Bが記載されていたとき、記載されている属性の種別は、ブックマークの開始位置である。ブックマークとは、複数回同じ文字が同じ形式で表示される場合にレンダリング処理を省略することができるように、テキスト字幕ファイルの供給元が予め付与する情報である。subtitle_data()のdata_typeにおいて、記載されている属性種別がブックマーク開始位置指定であるときのdata_valueのデータ構造は、図23を用いて説明した場合と同様である。subtitle_data()のdata_typeの8ビットのフィールドに0x0Cが記載されていたとき、記載されている属性の種別は、ブックマークの終了位置である。subtitle_data()のdata_typeにおいて、記載されている属性種別がブックマーク終了位置指定であるときのdata_valueのデータ構造は、図24を用いて説明した場合と同様である。subtitle_data()のdata_typeの8ビットのフィールドに0x0Dが記載されていたとき、記載されている属性の種別は、ブックマークの付与された文字オブジェクトシーケンスの繰り返しの指定である。subtitle_data()のdata_typeにおいて、記載されている属性種別が文字オブジェクトシーケンス繰り返し指定であるときのdata_valueのデータ構造は、図25を用いて説明した場合と同様である。
次に、タグ付き言語による属性指定の場合について説明する。タグ付き言語による属性指定の場合、字幕データの文字符号化方式は、SubPlayItem中のcharacter_code_idの指定を無視して、ISO/IEC646エンコードであるものとする。タグ付き言語による属性指定の場合の、subtitle_data()のデータ構造は、図26を用いて説明した場合と同様であり、TaggedAttrは、図27を用いて説明したように、所定の形式に従う。char_dataは、文字オブジェクトのバイトシーケンスを指定する。ただし、バイトシーケンスは、BASE64エンコーディング方式によりISO/IEC646エンコードするものとする。その際、「<」および「>」は、「0x1B」によりエスケープする。
次に、図57を参照して、タグ付き言語による属性指定の要素および属性種別について説明する。
CLUT設定は、<CLUT size= y= cb= cr= t= >と記載され、属性「size」にCLUTのサイズが指定され、属性「y」、「cb」、「cr」および「t」には、図63を用いて後述する字幕グラフィックスプレーン処理部93におけるCLUTのインデックス列が指定される。
リージョン原点指定は、<region x= y=>と記載され、属性「x」および「y」に、リージョンの原点座標(x, y)が指定される。
行間(Line Space)指定は、<linespace d=>と記載され、属性「d」に、行間がピクセル単位で指定される。なお、行間のデフォルトは、「フォントの高さ」とするようにしてもよい。
レンダリング方向指定は、<textflow d=>と記載され、属性「d」に、文字オブジェクトを描画するときの方向が指定される。なお、レンダリング方向のデフォルトは、「左から右へ」とするようにしてもよい。
フォント色指定の開始は、<fontcolor c=>と記載され、属性「c」に、図63を用いて後述する字幕グラフィックスプレーン処理部93におけるCLUTに対するインデックスが指定される。なお、フォント色に対応するインデックスのデフォルトは、「0」とするようにしてもよい。そして、フォント色指定の終了は、</fontcolor>と記載される。
背景色指定は、<backgroundcolor c=>と記載され、属性「c」に、図63を用いて後述する字幕グラフィックスプレーン処理部93におけるCLUTに対するインデックスが指定される。ただし、背景色で塗りつぶされる領域は、リージョン単位であり、背景色のデフォルトは、無指定(透過)とするようにしてもよい。
フォントスタイル指定は、<fontstyle s=>と記載され、属性「s」に、太字、斜体、標準などのフォントのスタイルが指定される。なお、フォントのスタイルのデフォルトは、「標準」とするようにしてもよい。そして、フォントスタイル指定の終了は、</fontstyle>と記載される。
フォントサイズ指定は、<fontsize s=>と記載され、属性「s」に、フォントサイズに対応する8以上72以下の値が指定される。なお、フォントサイズを指定する値のデフォルトは、「32」とするようにしてもよい。そして、フォントサイズ指定の終了は、</fontsize>と記載される。
フォント回転角指定は、<fontrotate a=>と記載され、属性「a」に、フォントの回転角に対応する0以上360以下の値が指定される。なお、回転方向は、反時計回りが正方向とされ、フォントの回転角に対応する値のデフォルトは、「0」とするようにしてもよい。そして、フォントの回転角度指定の終了は、</fontrotate>と記載される。
ブックマーク指定は、<mark id=>と記載され、属性「id」に、ブックマークを個別に区別可能な0以上255以下の値が指定される。これにより、本要素のスコープ内の字幕データに対してブックマークが付与されたことになる。ブックマークは、最大256個まで指定することができる。そして、ブックマークを付与する字幕テキストの終了は、</mark>と記載される。
文字オブジェクトシーケンス繰り返し指定は、<repeat id= c=>と記載され、属性「id」に、ブックマークを個別に区別可能な0以上255以下の値が、属性「c」には繰り返し回数が指定される。これにより、属性「id」により設定された属性値に対応するブックマークが付与された字幕データが、属性「c」に設定された回数繰り返される。
上述したような方法で属性が指定されたテキスト字幕ファイルのテキストデータは、それぞれの属性の設定に基づいて、例えば、図29を用いて説明したように、レンダリング方向が左から右へ指定され、設定された改行位置において下方向に改行されて表示されたり、図30を用いて説明したように、レンダリング方向が右から左へ指定され、設定された改行位置において下方向に改行されて表示されたり、図31を用いて説明したように、レンダリング方向が上から下へ指定され、設定された改行位置において左方向に改行されて表示される。
また、例えば、表示される字幕に対して、フェードインまたはフェードアウトを指定するときには、図63を用いて後述する字幕グラフィックスプレーン処理部93におけるCLUTのT値を変更して、文字の透明度を変化させつつ、文字オブジェクトシーケンスを繰り返し指定するようにすればよい。
次に、テキスト字幕ストリームが格納されるコンテナファイルについて説明する。
テキスト字幕ストリームが格納されるコンテナファイルは、Clip AVストリームに多重化されていない別ファイル形式であるものとする。また、コンテナファイルのフォーマットは、BDAV MPEG-2 トランスポートストリームであるものとする。そして、テキスト字幕ストリームの格納されるPES(Packetized Elementary Stream)パケットは、図58に示されるPrivate Stream 2形式に従う。
図58において、packet_start_code_prefixは、パケットの開始を識別するパケット開始コードである24ビットのフィールドであり、値0x000001が設定される。stream_idは、ストリームの種類と番号を規定する8ビットのフィールドであり、値0xBFが設定される。PES_packet_lengthは、直後に続くバイトシーケンスのバイト数を指定する16ビットのフィールドである。そして、PES_packet_data_byteは、テキスト字幕ストリームファイルをバイトシーケンスとして指定する。
また、テキスト字幕ストリームが格納されるコンテナファイルにおいて、PATパケット、PMTパケット、および、SITパケットは、Aligned Unitの先頭に、それぞれ一回だけ出現するようになされており、PCR(Program Clock Reference基準時刻情報)パケットを持たないようになされている。
したがって、テキスト字幕ストリームが格納されるBDAV MPEG-2トランスポートストリームは、例えば、図59に示されるような構成になる。
図59に示されるテキスト字幕ストリームが格納されるBDAV MPEG-2トランスポートストリームにおいては、それぞれのAligned Unitにおいて、ソースパケット#1が、PATパケットを含み、ソースパケット#2が、PMTパケットを含み、ソースパケット#3が、SITパケットを含み、ソースパケット#4乃至ソースパケット#32が、図58を用いて説明したPrivate Stream 2形式でテキスト字幕ストリームファイルが格納されたパケット#1乃至パケット#29を含むものとされている。
このように、第2の実施の形態においては、サーバ3からダウンロードされるなどして、以上説明したアップデートデータが取得されて、ローカルストレージ24に記録される。図60に、ローカルストレージ24に記憶されるデータのデータ構造を示す。
ローカルストレージ24のルートディレクトリの直下に処理対象アップデートデータファイルを記録するauthor_idディレクトリがない場合、ローカルストレージ24のルートディレクトリの直下に処理対象アップデートファイルのauthor_idと同じ名前のauthor_idディレクトリが作成される。そして、author_idディレクトリの下に処理対象アップデートファイルのdisc_idと同じ名前のdisc_idディレクトリが作成される。
そして、作成したdisc_idディレクトリの下に、図42を用いて説明した光ディスク193のBDMVディレクトリより下の階層と同様に、BACKUPディレクトリ、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、およびAUXDATAディレクトリが作成され、PLAYLISTディレクトリにはPlayListファイルが、CLIPINFディレクトリにはClipInformationファイルが、STREAMディレクトリには、テキスト字幕ストリームファイルが、AUXDATAディレクトリには、フォントファイルが、それぞれ格納される。なお、図60の例においては、author_idディレクトリの名称およびdisc_idディレクトリの名称とも「1」である。すなわち、図60に示されるディレクトリの下にはauthor_idおよびdisc_idがともに1であるアップデートファイルが記録されている。
ローカルストレージ24に記録されるアップデートデータファイルの名前は、図60に示されるように、ファイル名と拡張子の間に「.」(ピリオド)と4桁の数字の番号を挿入したものとされる。この4桁の数字はバージョン番号を示し、0000から始まり、新しいバージョンのアップデートファイルが記録されるごとに1ずつ増やされる。例えば、「01001.mpls」の名前のPlayListファイルのアップデートファイルがPLAYLISTディレクトリに記録される場合、PLAYLISTディレクトリに「01001.****.mpls(****はバージョン番号)」のファイル名のファイルが記録されていないとき、すなわち、「01001.mpls」の名前のPlayListファイルのアップデートファイルがまだ存在しないとき、アップデートファイルは「01001.0000.mpls」の名前で記録され、PLAYLISTディレクトリにすでに「01001.0000.mpls」のファイルが記録されているとき、アップデートファイルは「01001.0001.mpls」の名前で記録される。
また、サーバ3からダウンロードされるアップデートデータには、メタデータが含まれている。メタデータは、メタデータが対応するアップデートファイルと同じディレクトリに、アップデートファイルのファイル名の末尾に拡張子「.data」を付加したファイル名で記録される。
そして、図42を用いて説明した、光ディスク193に記録されているデータファイルと、図60を用いて説明した、ローカルストレージ24に記憶されているデータファイルとがマージされて、第2の仮想ファイルシステムが生成される。
図61に、第2の仮想ファイルシステムのデータ構造を示す。
第2の仮想ファイルシステムにおいては、author_idおよびdisc_idが同一である光ディスク193に記録されているデータファイルと、ローカルストレージ24に記憶されているデータファイルとがマージされて、「VBDMV」の名前が設定されたディレクトリが用意され、図42を用いて説明した光ディスク193の「BDMV」ディレクトリに格納されている、「Index.bdmv」の名前が設定されたファイルと、「MovieObject.bdmv」の名前が設定されたファイルが格納されるとともに、BDMVディレクトリより下の階層と同様の構成となるように、BACKUPディレクトリ、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、およびAUXDATAディレクトリが作成され、それぞれ、対応するディレクトリの下に、データファイルが格納されているものとなされている。
第2の仮想ファイルシステムのPLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、およびAUXDATAディレクトリに格納されるデータファイルのうち、実際にはローカルストレージ24に記憶されているデータファイルには、それぞれ、メタデータファイルが対応付けられている。
このようにして、光ディスクに記録されているコンテンツと、ローカルストレージに記録されているコンテンツを関連付けて再生することができるように、第2の仮想ファイルシステムによりデータがマージされる。
また、図2を用いて説明した場合と同様に、第2の実施の形態においても、PlayListには、PlayItemにより指定されるメインパス(Main Path)に加えて、図3に示されるようなサブプレイアイテム(Sub Play Item)を用いて指定されるサブパス(Sub path)の情報を含ませることができ、SubPlayItemを定義すると、例えば、PlayItemにより指定されるClip(例えば、MPEG2トランスポートストリーム)に多重化されていない、独立したデータストリームをAVストリーム再生に同期して再生させることができる。
すなわち、図62に示されるように、PlayItemにより指定されるメインパスのClip AVストリームに対応させて、テキスト字幕ファイル、および、レンダリングに必要となるフォントファイルから構成される字幕関連情報と字幕関連情報の再生区間を指定したSubPlayItemにより構成されるサブパスを用意することで、Clip AVストリームの再生に対して、テキスト字幕ファイルに記載されているデータに対応する字幕を、同期させて表示させるようにすることができる。
ユーザは、テキスト字幕ストリーム用のサブパスおよびサブプレイアイテムを取得することにより、メインパスに設定されているClipAVストリームと、テキスト字幕ストリームとを同期させて再生させることができる。また、ひとつのサブプレイアイテムには、複数のテキスト字幕ストリームを指定することができる。
また、本開示の再生装置181においては、同期再生を行うために、サブパスの再生処理においても、メインパスの再生処理で参照されるSTC(System Time Clock)を参照するものとすることができる。また、サブパスの再生処理において、デコーダ192は、テキスト字幕ストリームを一括プリロードしたり、部分プリロードすることができる。
更に、本開示の再生装置181においては、サブパスの再生処理において、テキスト字幕ストリームを一括プリロードしたり、または、テキスト字幕ファイルに関する、後述するEP_mapを作成することにより、テキスト字幕ファイルに対して、高速なランダムアクセスを実現させることができる。
図63は、同期再生のためのSTCを参照することができ、更に、テキスト字幕ストリームを一括プリロードしたり、部分プリロードすることができるとともに、テキスト字幕ファイルに対してランダムアクセスを実行することができる、本開示を適用した再生装置181のデコーダ192の構成を示すブロック図である。
なお、図63のデコーダ192においては、図33において説明した場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、デコーダ192は、STCカウンタ211、メモリ216、バッファ217、および、バッファ219が新たに設けられ、オーディオデコーダ86に代わって、オーディオデコーダ212が設けられ、MPEGビデオデコーダ87に代わって、MPEGビデオデコーダ213が設けられ、制御部81に代わって、制御部214が設けられ、ディスクデータ取得部82に代わって、ディスクデータ取得部215が設けられ、ストレージデータ取得部91に代わって、ストレージデータ取得部218が設けられ、テキスト字幕処理部92に代わって、テキスト字幕処理部220が設けられている以外は、図33を用いて説明したデコーダ26と、基本的に同様の構成を有するものである。
STCカウンタ211は、STCをカウントする。オーディオデコーダ212は、STCカウンタ211のカウンタ値を参照して、PTS(Program Time Stamp)を計算し、計算されたPTSにしたがって、オーディオストリームをデコードし、デコードされたオーディオストリームのデータを出力する。MPEGビデオデコーダ213は、STCカウンタ211のカウンタ値を参照して、PTSを計算し、計算されたPTSにしたがって、ビデオストリームをデコードし、デコードされたビデオデータをビデオプレーン処理部88へ出力する。
制御部214は、再生制御部204の制御に基づいて、デコーダ192の各部の処理を制御するものであり、例えば、ディスクデータ取得部215またはストレージデータ取得部218を制御して、テキスト字幕ストリームを一括プリロードさせてバッファ217にバッファリングさせることにより、テキスト字幕ストリームのランダムアクセスを制御したり、ディスクデータ取得部215、または、ストレージデータ取得部218から供給されたテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報を基に、テキスト字幕ストリームに対応するEP_mapを生成して、メモリ216に保存し、保存されたEP_mapを参照してテキスト字幕ストリームのランダムアクセスを制御することができる。また、制御部214は、メインパスで指定されるClipAVストリームと、サブパスで指定されるテキスト字幕ストリームとを同期して再生させるために、メインパスにおけるノンシームレス接続条件下でのプレイアイテム切り替えにより発生する、オーディオデコーダ212およびMPEGビデオデコーダ213によるClipAVストリームのデコード動作のギャップなどの情報を、テキスト字幕処理部220に通知する。
ディスクデータ取得部215は、制御部214の制御に基づいて、光ディスク193から読み出されたデータのうち、デコーダ192に供給されたデータを取得し、PlayItemにより指定されるAVストリームなどの多重化ストリームをバッファ83に供給し、SubPlayItemにより指定される、テキスト字幕ファイルまたはフォントファイルのデータをバッファ84に供給する。また、デコーダ192は、テキスト字幕ストリームを一括プリロードしたり、部分プリロードすることができる。ディスクデータ取得部215は、光ディスク193に記録されているテキスト字幕ストリームが一括プリロードされる場合、対応するすべてのテキスト字幕ファイルを読み出して、バッファ217に供給する。また、ディスクデータ取得部215は、光ディスク193に記録されているテキスト字幕ストリームが部分プリロードされる場合、光ディスク193に記録されているテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報を取得して、制御部214に供給する。
メモリ216は、制御部214により生成された、テキスト字幕ストリームに対応するEP_mapを保存する。バッファ217は、ディスクデータ取得部215、または、ストレージデータ取得部218から供給された、一括プリロードされたテキスト字幕ストリームを保存する。
ストレージデータ取得部218は、ローカルストレージ24から読み出されたデータのうち、デコーダ192に供給されたデータ(すなわち、テキスト字幕ファイルまたはフォントファイルのデータ)を取得し、一括プリロードが行われる場合は、バッファ217に、プリロードが行われない場合、または、部分プリロードが行われる場合は、内部のトランスポートストリーム用の図示しないバッファに一時保存し、バッファ219に、取得したデータを供給する。また、ストレージデータ取得部218は、ローカルストレージ24に記録されているテキスト字幕ストリームが部分プリロードされる場合、ローカルストレージ24に記録されているテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報を取得して、制御部214に供給する。
バッファ219は、テキスト字幕処理部220に供給されるテキスト字幕ストリームデータおよびフォントファイルのデータを一時バッファリングする。テキスト字幕処理部220は、テキスト字幕ストリームデータおよびフォントファイルのデータの供給を受け、STCカウンタ211のカウンタ値、および、制御部214から供給されるClipAVストリームのデコード動作のギャップなどの情報を基に、ClipAVストリームと同期して再生されるように、供給されたテキスト字幕ストリームをデコードする。
このように、本開示を適用した再生装置181のデコーダ192においては、テキスト字幕ストリームを一括プリロードしたり、部分プリロードすることができるとともに、テキスト字幕ファイルに対して、高速にランダムアクセスを実行することができる。
一括プリロードは、ディスクデータ取得部215またはストレージデータ取得部218に、再生に必要なテキスト字幕ストリーム全体を取得させ、バッファ217に一度にプリロードする方式である。部分プリロードは、ディスクデータ取得部215またはストレージデータ取得部218に、テキスト字幕ストリームの一部分だけをプリロードさせる方式である。部分プリロードされたテキスト字幕ストリームのトランスポートストリームデータは、トランスポートストリームバッファであるバッファ84、または、ストレージデータ取得部218内部の図示しないバッファのリークレート値に対応した転送レートにて、ソースパケット単位でバッファ219にロードされる(バッファ219にロードされるストリームは、TextSubtitleのエレメンタリストリームである)。
次に、ClipAVストリームの再生時にテキスト字幕ストリームにランダムアクセスする場合について説明する。
Clip AVストリームの場合、PlayItem中で任意のPTS値からソースパケット番号を求めるためにEP_mapを参照する。EP_mapについて図64を用いて説明する。
EP_mapとは、クリップの中のエントリーポイントのタイムスタンプ(PTS_EP_start)と、クリップAVストリームファイルの中でストリームのデコードを開始すべきソースパケット番号(SPN_EP_start)とのペアを格納したテーブルであり、Clip Informationファイル中に定義される。換言すれば、再生装置181は、エントリーポイントのタイムスタンプ(PTS_EP_start)が指定されることにより、ランダムアクセスする対象となる(デコードを開始すべき)ソースパケットのソースパケット番号(SPN_EP_start)を検出することができる。すなわち、再生装置181は、Clip AVストリームのEP_mapを参照することで、Clip AVストリームのランダムアクセス、ファーストフォワード再生、または、ファーストリバース再生に対応することができる。なお、ソースパケット番号とは、AVストリームファイルの中のソースパケットの順番に1ずつインクリメントする番号であり、ファイルの先頭のソースパケット番号がゼロとされる。
しかしながら、テキスト字幕ストリームは、規格上では、ClipAVストリームとは異なり、EP_mapを持たないものとされている。
そのため、制御部214は、ディスクデータ取得部215またはストレージデータ取得部218を制御して、テキスト字幕ストリームを一括プリロードさせてバッファ217にバッファリングさせるとともに、再生装置181でのグローバル時間軸におけるPTS値Tに対して、次の式(1)および式(2)をいずれも満足するような非負整数iを求めることにより、PTS値Tに対応した字幕データが格納されたデータ位置へのランダムアクセスを制御することができる。
start_PTS(i)≦T ・・・(1)
T≦end_PTS(i) ・・・(2)
一方で、テキスト字幕ストリームは、オーディオ/ビデオのClipAVストリームと同様に時系列データの性質を持つことから、常に、次の式(3)に示される関係が成立する。
end_PTS(i)≦start_PTS(i+1)・・・(3)
したがって、制御部214は、任意のPTS値Tに対して、式(1)および式(2)に示される条件を満足するような非負整数iを求める高速なアルゴリズムとして、例えば、B-Treeインデッキシングなどを用いるようにすることにより、字幕データへのランダムアクセスを制御することが可能になる。なお、制御部214は、B-Treeインデッキシング以外のアルゴリズムを用いて、任意のPTS値Tに対して、式(1)および式(2)に示される条件を満足するような非負整数iを求めるようにしてもよいことはいうまでもない。
また、制御部214は、テキスト字幕ストリームが部分プリロードされる場合、ランダムアクセスを許可せず、シーケンシャルアクセスのみを制御するようにしてもよい。また、制御部214は、PlayList再生時に、ディスクデータ取得部215から、光ディスク193に記録されているテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報の供給を受けるか、ストレージデータ取得部218から、ローカルストレージ24に記録されているテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報の供給を受け、図64を用いて説明したEP_mapと同様の、テキスト字幕ストリームのEP_mapを、事前に生成して、メモリ216に記憶させておき、メモリ216に記憶されたテキスト字幕ストリームのEP_mapを参照して、ランダムアクセスを制御することができるようにしてもよい。
図65は、図63のテキスト字幕処理部220の構成を示すブロック図である。
なお、図65のテキスト字幕処理部220においては、図34を用いて説明した場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、テキスト字幕処理部220は、STCカウンタ211のカウンタ値、および、制御部214から供給されるClipAVストリームのデコード動作のギャップなどの情報を取得し、ClipAVストリームと同期してテキスト字幕ストリームが再生されるように、テキストデータデコーダ232の動作の基準となるPTSを計算するSTC処理部231が新たに設けられ、テキストデータデコーダ121に代わって、STC処理部231がSTCを基に計算したPTSに基づいて、供給されたテキスト字幕ストリームをデコードするテキストデータデコーダ232が設けられている以外は、基本的に、図34を用いて説明したテキスト字幕処理部92と同様の構成を有するものである。
テキストデータデコーダ232によるテキストデータのデコード処理においては、MainPathのClipAVストリームが参照するSTCを参照することにより、ClipAVストリームとテキスト字幕ストリームとの同期を図ることができる。しかしながら、ClipAVストリームは、一つのPlayListファイル中で複数のSTCを保持できるため、テキストデータデコーダ232がMainPathのClipAVストリームが参照するSTCを直接参照してしまうと、テキスト字幕ストリームの再生制御が複雑になってしまう要因となる。また、テキスト字幕ストリームは、上述したように、PCRパケットを持たない。
そこで、テキスト字幕ストリームをデコードするテキスト字幕処理部220においては、Main PathのClip AVストリームの再生時に参照されるSTCを基に、再生装置181において一貫したグローバルな時間軸を想定するものとする。STC処理部231は、この時間軸を基準としてタイムスタンプを計算し、テキストデータデコーダ232に供給する。テキストデータデコーダ232は、供給されたタイムスタンプを基準にデコード処理を実行する。
すなわち、図66において示されるように、ClipAVストリームは、一つのPlayListファイル中のそれぞれのPlayItemで、それぞれにSTCを参照する。したがって、STC処理部231は、STCカウンタ211のカウンタ値を積算して、PlayList内でのグローバルな時間軸を構成し、テキストデータデコーダ232の動作の基準となるPTSを計算する。
そのとき、STC処理部231は、図67に示されるように、ノンシームレス接続条件下でのPlayItem切り替えにより発生するギャップを考慮して、STCカウンタ211のカウンタ値を積算する必要がある。したがって、STC処理部231は、制御部214から供給されるClipAVストリームのデコード動作のギャップなどの情報を取得し、その情報を基に、PlayItem切り替えにより発生するギャップを考慮したSTCカウンタ211のカウンタ値の積算を実行して、テキストデータデコーダ232の動作の基準となるPTSを計算する。
テキストデータデコーダ232は、図66および図67を用いて説明したように、PlayItem切り替えにより発生するギャップを考慮して、Main PathのClip AVストリームが参照するSTCカウンタ211のカウンタ値を積算することにより算出されるPTSを基に、供給されるテキスト字幕のエレメンタリストリームをデコードする。
次に、図68のフローチャートを参照して、サーバ3からアップデートファイルをダウンロードする再生装置181コントローラ191の処理であるダウンロード処理2について説明する。
この処理は、光ディスク193が再生装置181に装着されているか否かにかかわらず、ユーザにより、アップデート用データの取得が指令された場合に実行される。
ステップS201において、コントローラ191のデータ取得部33は、インターネットインタフェース24を制御し、インターネット2を介してサーバ3にアクセスし、アップデート用のメニュー画面に対応するデータの送信を要求する。
ステップS202において、データ取得部33は、インターネットインタフェース24を制御し、インターネット2を介してサーバ3から、アップデート用のメニュー画面に対応するデータを受信する。データ取得部33は、サーバ3から送信され、インターネットインタフェース24により受信されたアップデート用のメニュー画面に対応するデータを、メニュー画面表示制御部31に供給する。
ステップS203において、メニュー画面表示制御部31は、アップデート用のメニュー画面を表示装置に表示させ、ステップS204に進み、操作入力取得部32から供給される信号に基づいて、メニュー画面のボタンがユーザにより操作され、アップデートの内容が選択されたか否かを判定する。
ステップS204において、メニュー画面表示制御部31は、アップデートの内容が選択されたと判定するまで待機し、アップデートの内容が選択されたと判定した場合、ステップS205に進む。ユーザにより選択されたアップデートの内容を表す情報は、メニュー画面表示制御部31からデータ取得部33に出力される。
ステップS205において、データ取得部33は、インターネットインタフェース24を制御し、アップデートの内容を表す情報をサーバ3に送信させ、ユーザが指定したアップデートファイルのダウンロードを要求する。
ステップS206において、データ取得部33は、インターネットインタフェース24を制御し、サーバ3によりアップデートファイルとして用意される、PlayListファイル、ClipInformationファイル、テキスト字幕ストリームファイル、および、フォントファイルをダウンロードさせ、これらのファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部201に通知する。
ステップS207において、ローカルストレージディレクトリ管理部201は、ダウンロードされたアップデートデータファイルのメタデータに含まれるauthor_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリをローカルストレージ24に作成する。これにより、例えば、図60を用いて説明した構造のファイルシステムがローカルストレージ24に作成される。
ステップS208において、ローカルストレージディレクトリ管理部201は、ステップS209で作成したディレクトリに、サーバ3からダウンロードされたそれぞれのファイルを展開し、格納させる。
このような処理により、サーバ3からアップデートファイルがダウンロードされて、ローカルストレージ24に記録されるので、例えば、映画などのコンテンツが記録された光ディスク193を購入したユーザが、光ディスク193に予め記録されていない言語の字幕を表示させるために必要なファイルを取得して記録させることができる。したがって、光ディスク193に記録されているAVストリームと同期させて、ユーザが所望する言語の字幕を表示させて、コンテンツを視聴することが可能となる。
また、以上のようなアップデートファイルのダウンロードは、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
次に、図36のフローチャートを参照して、コントローラ191により制御が実行される再生処理2について説明する。
上述したようにしてダウンロードされたアップデートファイルがローカルストレージ24に記録されている状態で、光ディスク193が装着され、記録されているコンテンツの再生が指示された場合、ステップS221において、光ディスクディレクトリ管理部202は、光ディスク193から、ユーザにより書き換え不能なように記録されているauthor_idとdisc_idとを読み出し、読み出したauthor_idとdisc_idとをローカルストレージディレクトリ管理部201に出力する。
ステップS222において、ローカルストレージディレクトリ管理部201は、光ディスクディレクトリ管理部202から供給されたauthor_idとdisc_idに基づいて、光ディスク193のファイルシステムに対応する、ローカルストレージ24のファイルシステムを検索し、ファイルシステムマージ処理部203に供給する。上述したように、光ディスク193のファイルシステムに対応するファイルシステムは、ローカルストレージ24において、author_idとdisc_idを用いて特定可能なディレクトリに格納されている(図60)。
このとき、光ディスクディレクトリ管理部202からは、光ディスク193のファイルシステムがファイルシステムマージ処理部203に出力され、光ディスク193のファイルシステムと、ローカルストレージ24のファイルシステムとが、図61を参照して説明したようにしてマージされる。そして、ステップS223において、図70を用いて後述する仮想ファイルシステム生成処理が実行されて、第2の仮想ファイルシステムが生成される。生成された第2の仮想ファイルシステムは、再生制御部204に出力され、AVストリームファイルの再生に用いられる。
再生制御部204は、ステップS224において、生成された第2の仮想ファイルシステムからMovieObjectを指定し、MovieObjectに含まれる再生コマンドを実行し、ステップS225において、MovieObjectに含まれる再生コマンドにおいて再生区間として指定されるPlayListとSubPlayItemを取得し、ステップS226において、ローカルストレージディレクトリ管理部201および光ディスクディレクトリ管理部202を制御して、取得したPlayListとSubPlayItemが参照するファイル(AVファイル、テキスト字幕ファイル、フォントファイルなど)を読み出させて、デコーダ192に供給させる。
そして、ステップS227において、図71を用いて後述するコンテンツ再生処理2、または、図74を用いて後述するコンテンツ再生処理3が実行されて、読み出されたAVストリームファイルやテキスト字幕ストリームファイルなどがデコードされ、映像や音声、または字幕が表示装置から出力されて、処理が終了される。
以上のように、第2の仮想ファイルシステムが生成され、コンテンツの再生時に利用されることにより、例えば、SubPlayItemが参照するテキスト字幕ファイルのデータが、AVストリームと同時に読み出されて再生される。
次に、図70のフローチャートを参照して、図69のステップS223において実行される仮想ファイルシステム生成処理について説明する。
ファイルシステムマージ処理部203は、光ディスク193のファイルシステムと、ローカルストレージ24のファイルシステムとを、図61を参照して説明したようにしてマージし、第2の仮想ファイルシステムを生成する。
ステップS241において、ファイルシステムマージ処理部203は、処理対象となるアップデートファイル、すなわち、図69のステップS222において検出されたファイルシステムにおけるメタデータのoperation_typeの値が0x01であるか否かを判定する。ステップS241において、アップデートファイルのメタデータのoperation_typeの値が0x01ではないと判定された場合、処理は、後述するステップS243に進む。
ステップS241において、アップデートファイルのメタデータのoperation_typeの値が0x01であると判定された場合、ステップS242において、ファイルシステムマージ処理部203は、光ディスク193のPlayListがアップデートファイルのPlayListに交換されて更新された第2の仮想ファイルシステムを生成し、処理は、図69のステップS223に戻り、ステップS224に進む。すなわち、アップデートファイルのメタデータのoperation_typeの値が0x01であると判定された場合、ダウンロードされてローカルストレージ24に記録されているPlayListがそのままの状態で参照され、光ディスク193のPlayListは全く参照されない。
ステップS241において、アップデートファイルのメタデータのoperation_typeの値が0x01ではないと判定された場合、ステップS243において、ファイルシステムマージ処理部203は、処理対象となるアップデートファイル、すなわち、図69のステップS222において検出されたファイルシステムにおけるメタデータのoperation_typeの値が0x02であるか否かを判定する。ステップS243において、メタデータのoperation_typeの値が0x02ではないと判断された場合、処理は、ステップS225に進む。
ステップS243において、メタデータのoperation_typeの値が0x02であると判断された場合、ステップS244において、ファイルシステムマージ処理部203は、光ディスク193のPlayListファイルに、アップデートファイルのSubPathが追加されて更新された第2の仮想ファイルシステムを生成し、処理は、図69のステップS223に戻り、ステップS224に進む。すなわち、アップデートファイルのメタデータのoperation_typeの値が0x02であると判定された場合、図47および図48を用いて説明したように、ダウンロードされたファイルから、SubPath要素が抽出され、光ディスク193に記録されているSubPath要素に、抽出されたSubPath要素が加えられるようにファイルシステムがマージされて更新される。
ステップS243において、メタデータのoperation_typeの値が0x02ではないと判断された場合、ステップS245において、ファイルシステムマージ処理部203は、処理対象となるアップデートファイル、すなわち、図69のステップS222において検出されたファイルシステムにおけるメタデータのoperation_typeの値が0x03であるか否かを判定する。ステップS245において、メタデータのoperation_typeの値が0x03ではないと判断された場合、処理は、ステップS227に進む。
ステップS245において、メタデータのoperation_typeの値が0x03であると判断された場合、ステップS246において、ファイルシステムマージ処理部203は、光ディスク193のPlayListファイルに、アップデートファイルのSubPlayItemが追加されて更新された第2の仮想ファイルシステムを生成し、処理は、図69のステップS223に戻り、ステップS224に進む。すなわち、アップデートファイルのメタデータのoperation_typeの値が0x03であると判定された場合、図49および図50を用いて説明したように、ダウンロードされたファイルから、SubPlayItem要素が抽出され、光ディスク193に記録されているSubPlayItem要素に、抽出されたSubPlayItem要素が加えられるようにファイルシステムがマージされて更新される。
ステップS245において、メタデータのoperation_typeの値が0x03ではないと判断された場合、すなわち、operation_typeの値が0x04である場合、ステップS247において、ファイルシステムマージ処理部203は、SubClip_entryを追加するSubPlayItemにおいて、is_multi_Clip_entries(図45)の値が1であるか否かを判定する。
ステップS247において、is_multi_Clip_entriesの値が1でないと判定された場合、すなわち、SubClip_entryを追加するSubPlayItemが、現在1つのSubClip_entryのみを参照している場合、ステップS248において、ファイルシステムマージ処理部203は、更新元のPlayListファイル内のSubClip_entryを追加するSubPlayItemのis_multi_Clip_entriesの値を1に設定する。
ステップS247において、is_multi_Clip_entriesの値が1であると判定された場合、または、ステップS248の処理の終了後、ステップS249において、ファイルシステムマージ処理部203は、SubClip_entryを追加するSubPlayItemのnumber_of_Clip_entries(図45)の値を、現在の値から1増やす。すなわち、SubClip_entryを追加するSubPlayItemが参照するサブClipの数の設定値が1つ増加される。
そして、ステップS250において、ファイルシステムマージ処理部203は、光ディスク193のPlayListファイルのSubPlayItemに、アップデートファイルのSubClip_entryが追加されて更新された第2の仮想ファイルシステムを生成し、処理は、図69のステップS223に戻り、ステップS224に進む。すなわち、アップデートファイルのメタデータのoperation_typeの値が0x04であると判定された場合、図45を用いて説明したSubPlayItemのis_multi_Clip_entriesおよびnumber_of_Clip_entriesの値が適宜修正された後、図51および図52を用いて説明したように、ダウンロードされたファイルから、SubClip_entry要素が抽出され、光ディスク193に記録されているSubClip_entry要素に、抽出されたSubClip_entry要素が加えられるようにファイルシステムがマージされて更新される。
このような処理により、メタデータのoperation_typeの値によって定められた方法で、光ディスク193に記録されているデータと、ローカルストレージ24に記録されているデータがマージされて、光ディスク193に記録されているデータが、ローカルストレージ24に記録されているアップデートファイルのデータにより更新されたようにユーザから見えるように、第2の仮想ファイルシステムが生成される。
また、コンテンツの再生のためのテキスト字幕データのロード方法には、上述したように、一括プリロードと部分ロードとの2種類の方法がある。部分ロードが実行される場合、テキスト字幕データのランダムアクセスを可能とするためには、テキスト字幕データに対応するEP_mapを作成する必要がある。
次に、図71のフローチャートを参照して、図68のステップS227において実行される、コンテンツ再生処理2について説明する。コンテンツ再生処理2においては、テキスト字幕データを一括プリロードすることにより、テキスト字幕データのランダムアクセスが可能なようになされている。
ステップS261において、再生制御部204は、デコーダ192を制御して、図70を用いて説明した処理により生成された第2の仮想ファイルシステムのPlayItemにより指定されるAVストリームデータを再生させる。
ステップS262乃至ステップS264において、図37のステップS62乃至ステップS64と基本的に同様の処理が実行される。すなわち、字幕データの表示を指令する操作入力を受けたか否かが判断され、字幕データの表示を指令する操作入力を受けたと判断された場合、ユーザの操作入力に対応する信号がメニュー画面表示制御部31に供給されて、表示装置に表示可能な字幕データの一覧メニューが表示され、表示させる字幕データの言語を指定する操作入力を受けたか否かが判断される。ステップS264において、表示させる字幕データの言語を指定する操作入力を受けていないと判断された場合、処理は、ステップS263に戻り、それ以降の処理が繰り返される。
ステップS264において、表示させる字幕データの言語を指定する操作入力を受けたと判断された場合、ステップS265において、操作入力取得部32は、ユーザの操作入力に対応する信号を再生制御部204に供給する。再生制御部204は、ローカルストレージディレクトリ管理部201を制御し、ユーザの操作入力に基づいて指定されるSubPlayItemにより参照されるテキストサブタイトルデータ、すなわち、テキスト字幕データをデコーダ192のストレージデータ取得部218に供給させて、制御部214の制御に基づいて、バッファ217に一括プリロードさせるとともに、必要に応じて、ユーザに指定されたフォントに対応するフォントデータを読み出させて、デコーダ192のストレージデータ取得部218に供給させる。
ステップS266において、図72および図73を用いて後述する字幕表示処理2が実行される。
ステップS267乃至ステップS269において、図37のステップS67乃至ステップS69と基本的に同様の処理が実行される。すなわち、表示させる字幕データの言語の変更を指令する操作入力を受けたか否かが判断され、表示させる字幕データの言語の変更を指令する操作入力を受けたと判断された場合、処理は、ステップS265に戻り、それ以降の処理が繰り返される。また、ステップS262において、字幕データの表示を指令する操作入力を受けていないと判断された場合、または、ステップS267において、表示させる字幕データの言語の変更を指令する操作入力を受けていないと判断された場合、ステップS268において、コンテンツの再生の終了を指令する操作入力を受けたか、または、再生中のAVストリームデータが終了したか否かが判断され、コンテンツの再生の終了を指令する操作入力を受けず、かつ、再生中のAVストリームデータが終了していないと判断された場合、ステップS269において、字幕の表示を中止させる操作入力を受けたか否かが判断される。字幕の表示を中止させる操作入力を受けていないと判断された場合、処理は、ステップS266に戻り、それ以降の処理が繰り返され、字幕の表示を中止させる操作入力を受けたと判断された場合、処理は、ステップS261に戻り、それ以降の処理が繰り返される。
また、ステップS268において、コンテンツの再生の終了を指令する操作入力を受けたか、再生中のAVストリームデータが終了したと判断された場合、処理は、図68のステップS227に戻り、終了される。
このような処理により、サーバ3からダウンロードされ、ローカルストレージ24に記憶されているテキスト字幕ファイルのうちの、ユーザが所望した言語の字幕に対応するデータがランダムアクセス可能となり、光ディスク193に記録されているコンテンツの映像および音声に同期されて表示されるとともに、ユーザの操作入力に基づいて、表示される字幕の言語を変更するために、読み出されるテキスト字幕ファイルが変更される。
次に、図72および図73のフローチャートを参照して、図71のステップS266において実行される字幕表示処理2について説明する。
ステップS291において、デコーダ192の制御部214は、ランダムアクセスにおけるデコード開始位置を算出する。そして、制御部214は、デコード開始位置の算出結果を基に、一括プリロードされて、バッファ217にバッファリングされているテキストサブタイトルデータ、すなわち、テキスト字幕データを、バッファ219を介して、テキスト字幕処理部220に供給する。
ステップS292において、デコーダ192のテキスト字幕処理部220のテキストデータデコーダ232は、STC処理部231の処理により、ClipAVストリームが参照しているSTCと同一のSTCカウンタのカウントおよび制御部214により供給されるClipAVストリームのデコード動作のギャップなどの情報を基に、PlayItem切り替えにより発生するギャップを考慮して計算されたPTSに基づいて、供給されたテキストサブタイトルデータをデコードする。
ステップS293乃至ステップS305において、図38および図39のステップS92乃至ステップS104において実行された処理と基本的に同様の処理が実行される。すなわち、テキスト字幕処理部220のテキストデータデコーダ232は、デコードされたテキストサブタイトルデータに含まれる文字オブジェクトを、テキスト字幕処理部220の文字オブジェクトバッファ122に供給して、バッファリングさせ、テキストデータデコーダ232は、デコードされたテキストサブタイトルデータに含まれる属性データをテキスト字幕処理部220のアトリビュートデータバッファ123に供給して、アトリビュートデータバッファ123に属性データをバッファリングさせる。
そして、制御部214は、再生制御部204(コントローラ191)から、例えば、フォントサイズなどの字幕の属性の変更を指令する操作入力を示す信号の入力を受けたか否かを判断し、字幕の属性の変更を指令する操作入力を示す信号の入力を受けたと判断された場合、アトリビュートデータバッファ123に保持されている属性データが変更される。
ステップS295において、字幕の属性の変更を指令する操作入力を示す信号の入力を受けていないと判断された場合、または、ステップS296の処理の終了後、文字オブジェクトバッファ122およびアトリビュートデータバッファ123から文字オブジェクトおよび属性データが取得され、再生制御部204(コントローラ191)からフォントタイプの変更を指令する操作入力を示す信号の入力を受けたか否かが判断され、フォントタイプの変更を指令する操作入力を示す信号の入力を受けたと判断された場合、再生制御部204の制御を受けたローカルストレージディレクトリ管理部201(コントローラ191)の処理により、操作入力に基づいて、異なるフォントデータがローカルストレージ24から読み出されて、異なるフォントデータが取得される。
ステップS298において、フォントタイプの変更を指令する操作入力を示す信号の入力を受けていないと判断された場合、または、ステップS299の処理の終了後、取得された属性およびブックマークバッファ125が参照されて、ラスタライズしようとしている字幕データは、ブックマークされ、すでにブックマークバッファ125にバッファリングされている字幕データであるか否かが判断され、ブックマークされ、バッファリングされている字幕データであると判断された場合、フォントラスタライザ124により、ブックマークバッファ125から、保存されているブックマーク対象の字幕画像データ(ラスタデータ)が読み出して出力される。
そして、すでにブックマークされている字幕データではないと判断された場合、取得された文字オブジェクトおよび属性データを基に、ラスタライズが実行されて、字幕グラフィックスプレーン処理部93に出力され、字幕グラフィックスプレーンが生成されて、合成処理部94に供給される。そして、この属性データには、新たなブックマークが記載されているか否かが判断され、ブックマークが記載されていると判断された場合、ラスタライズされた字幕画像データがブックマークバッファ125に保存される。
そして、合成処理部94により、供給された字幕画像データが映像データと合成されて出力され、処理は、図71のステップS266に戻り、ステップS267に進む。
このような処理により、ユーザの所望する言語の字幕データが、ユーザの所望する属性で、ユーザの所望するフォントで表示されるように、一括プリロードされたテキスト字幕ファイルおよびフォントファイルのデータの読み出しが制御されて、必要に応じてバッファリングされている属性データが変更され、ラスタライズされる。
次に、図74のフローチャートを参照して、図68のステップS227において実行される、コンテンツ再生処理3について説明する。コンテンツ再生処理3においては、テキスト字幕データは部分プリロードされ、テキスト字幕ストリームに対応するEP_mapが生成されることにより、テキスト字幕データのランダムアクセスが可能なようになされている。
ステップS361において、再生制御部204は、デコーダ192を制御して、図70を用いて説明した処理により生成された第2の仮想ファイルシステムのPlayItemにより指定されるAVストリームデータを再生させる。
ステップS362乃至ステップS364において、図37のステップS62乃至ステップS64と基本的に同様の処理が実行される。すなわち、字幕データの表示を指令する操作入力を受けたか否かが判断され、字幕データの表示を指令する操作入力を受けたと判断された場合、ユーザの操作入力に対応する信号がメニュー画面表示制御部31に供給されて、表示装置に表示可能な字幕データの一覧メニューが表示され、表示させる字幕データの言語を指定する操作入力を受けたか否かが判断される。ステップS364において、表示させる字幕データの言語を指定する操作入力を受けていないと判断された場合、処理は、ステップS363に戻り、それ以降の処理が繰り返される。
ステップS364において、表示させる字幕データの言語を指定する操作入力を受けたと判断された場合、ステップS365において、デコーダ192の制御部214は、ディスクデータ取得部215から、光ディスク193に記録されているテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報の供給を受けるか、ストレージデータ取得部218から、ローカルストレージ24に記録されているテキスト字幕ストリームに対応するSubPlayItem_IN_timeおよびSubPlayItem_OUT_timeなどの情報の供給を受け、図64を用いて説明したEP_mapと同様の、テキスト字幕ストリームのEP_mapを生成し、メモリ216に記憶させる。
ステップS366において、操作入力取得部32は、ユーザの操作入力に対応する信号を再生制御部204に供給する。再生制御部204は、ローカルストレージディレクトリ管理部201を制御し、ユーザの操作入力に基づいて指定されるSubPlayItemにより参照されるテキストサブタイトルデータ、すなわち、テキスト字幕データをデコーダ192のストレージデータ取得部218に供給させて、制御部214の制御に基づいて、バッファ84にバッファリングさせるか、または、ストレージデータ記憶部218の内部のバッファにバッファリングさせるとともに、必要に応じて、ユーザに指定されたフォントに対応するフォントデータを読み出させて、デコーダ192のストレージデータ取得部218に供給させる。
ステップS367において、デコーダ192により、図75および図76を用いて後述する字幕表示処理3が実行される。
ステップS368乃至ステップS370において、図37のステップS67乃至ステップS69と基本的に同様の処理が実行される。すなわち、表示させる字幕データの言語の変更を指令する操作入力を受けたか否かが判断され、表示させる字幕データの言語の変更を指令する操作入力を受けたと判断された場合、処理は、ステップS365に戻り、それ以降の処理が繰り返される。また、ステップS362において、字幕データの表示を指令する操作入力を受けていないと判断された場合、または、ステップS368において、表示させる字幕データの言語の変更を指令する操作入力を受けていないと判断された場合、ステップS369において、コンテンツの再生の終了を指令する操作入力を受けたか、または、再生中のAVストリームデータが終了したか否かが判断され、コンテンツの再生の終了を指令する操作入力を受けず、かつ、再生中のAVストリームデータが終了していないと判断された場合、ステップS370において、字幕の表示を中止させる操作入力を受けたか否かが判断される。字幕の表示を中止させる操作入力を受けていないと判断された場合、処理は、ステップS367に戻り、それ以降の処理が繰り返され、字幕の表示を中止させる操作入力を受けたと判断された場合、処理は、ステップS361に戻り、それ以降の処理が繰り返される。
また、ステップS369において、コンテンツの再生の終了を指令する操作入力を受けたか、再生中のAVストリームデータが終了したと判断された場合、処理は、図68のステップS227に戻り、処理が終了される。
このような処理により、サーバ3からダウンロードされ、ローカルストレージ24に記憶されているテキスト字幕ストリームに対応するEP_mapが生成され、ユーザが所望した言語の字幕に対応するデータがランダムアクセス可能となり、光ディスク193に記録されているコンテンツの映像および音声に同期されて表示されるとともに、ユーザの操作入力に基づいて、表示される字幕の言語を変更するために、読み出されるテキスト字幕ファイルが変更される。
次に、図75および図76のフローチャートを参照して、図74のステップS367において実行される字幕表示処理3について説明する。
ステップS391において、デコーダ192の制御部214は、図74のステップS365において生成され、メモリ216に記憶されたEP_mapを参照して、バッファ84、または、ストレージデータ取得部218の内部のバッファにバッファリングされているテキストサブタイトルデータすなわち、テキスト字幕データを、バッファ219を介して、テキスト字幕処理部220に供給し、テキスト字幕処理部220を制御して、デコードさせる。デコーダ192のテキスト字幕処理部220のテキストデータデコーダ232は、STC処理部231の処理により、ClipAVストリームが参照しているSTCと同一のSTCカウンタのカウントおよび制御部214により供給されるClipAVストリームのデコード動作のギャップなどの情報を基に、PlayItem切り替えにより発生するギャップを考慮して計算されたPTSに基づいて、供給されたテキストサブタイトルデータをデコードする。
ステップS392乃至ステップS404において、図38および図39のステップS92乃至ステップS104において実行された処理と基本的に同様の処理が実行される。すなわち、テキスト字幕処理部220のテキストデータデコーダ232は、デコードされたテキストサブタイトルデータに含まれる文字オブジェクトを、テキスト字幕処理部220の文字オブジェクトバッファ122に供給して、バッファリングさせ、テキストデータデコーダ232は、デコードされたテキストサブタイトルデータに含まれる属性データをテキスト字幕処理部220のアトリビュートデータバッファ123に供給して、アトリビュートデータバッファ123に属性データをバッファリングさせる。
そして、制御部214は、再生制御部204(コントローラ191)から、例えば、フォントサイズなどの字幕の属性の変更を指令する操作入力を示す信号の入力を受けたか否かを判断し、字幕の属性の変更を指令する操作入力を示す信号の入力を受けたと判断された場合、アトリビュートデータバッファ123に保持されている属性データが変更される。
ステップS394において、字幕の属性の変更を指令する操作入力を示す信号の入力を受けていないと判断された場合、または、ステップS395の処理の終了後、文字オブジェクトバッファ122およびアトリビュートデータバッファ123から文字オブジェクトおよび属性データが取得され、再生制御部204(コントローラ191)からフォントタイプの変更を指令する操作入力を示す信号の入力を受けたか否かが判断され、フォントタイプの変更を指令する操作入力を示す信号の入力を受けたと判断された場合、再生制御部204の制御を受けたローカルストレージディレクトリ管理部201(コントローラ191)の処理により、操作入力に基づいて、異なるフォントデータがローカルストレージ24から読み出されて、異なるフォントデータが取得される。
ステップS397において、フォントタイプの変更を指令する操作入力を示す信号の入力を受けていないと判断された場合、または、ステップS398の処理の終了後、取得された属性およびブックマークバッファ125が参照されて、ラスタライズしようとしている字幕データは、ブックマークされ、すでにブックマークバッファ125にバッファリングされている字幕データであるか否かが判断され、ブックマークされ、バッファリングされている字幕データであると判断された場合、フォントラスタライザ124により、ブックマークバッファ125から、保存されているブックマーク対象の字幕画像データ(ラスタデータ)が読み出して出力される。
そして、すでにブックマークされている字幕データではないと判断された場合、取得された文字オブジェクトおよび属性データを基に、ラスタライズが実行されて、字幕グラフィックスプレーン処理部93に出力され、字幕グラフィックスプレーンが生成されて、合成処理部94に供給される。そして、この属性データには、新たなブックマークが記載されているか否かが判断され、ブックマークが記載されていると判断された場合、ラスタライズされた字幕画像データがブックマークバッファ125に保存される。
そして、合成処理部94により、供給された字幕画像データが映像データと合成されて出力され、処理は、図74のステップS367に戻り、ステップS368に進む。
このような処理により、ユーザの所望する言語の字幕データが、ユーザの所望する属性で、ユーザの所望するフォントで表示されるように、一括プリロードされたテキスト字幕ファイルおよびフォントファイルのデータの読み出しが制御されて、必要に応じてバッファリングされている属性データが変更され、ラスタライズされる。
以上説明したように、本開示の第2の実施の形態においても、光ディスクに記録されているコンテンツと、ダウンロードされてローカルストレージに記録されているコンテンツを関連付けて再生することができる。また、光ディスクに記録されているコンテンツと、ローカルストレージに記録されているコンテンツを関連つけて再生させるための第2の仮想ファイルシステムは、ダウンロードされてローカルストレージに記録されているアーカイブデータのメタデータに含まれるoperation_typeに指定される値に基づいて生成される。
また、本開示の第2の実施の形態において、ダウンロードされてローカルストレージに記録されているコンテンツは、再生時に、一括プリロードされても、部分プリロードされてもよく、本開示を適用することにより、プリロードの形式にかかわらず、光ディスクに記録されているコンテンツと、ローカルストレージに記録されているコンテンツとは、STCを基準として、同期されて再生されるようになされている。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
このプログラム記録媒体は、図1または図40に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMまたはRAMなどのメモリ23や、ハードディスクなどのローカルストレージ24などにより構成される。
また、本明細書において、プログラム記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的または個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。